diff --git a/README.md b/README.md index b4cd7a5..8195aad 100644 --- a/README.md +++ b/README.md @@ -663,8 +663,9 @@ export default { Major changes comparing to the original emoji-mart-vue: +- [2022-07-12, v11] Updated to emojis v14, thanks [@Hystersis](https://github.com/Hystersis)! - [2021-04-17, v10] Accessibility properties and keyboard controls -- [2021-03-20, v9] Updated to emojis v13, thanks @sgtaziz! +- [2021-03-20, v9] Updated to emojis v13, thanks [@sgtaziz](https://github.com/sgtaziz)! - Updated to emojis v12 (see the breaking change note below) Performance improvements: diff --git a/dist/emoji-mart.js b/dist/emoji-mart.js index 8124be3..4857ceb 100644 --- a/dist/emoji-mart.js +++ b/dist/emoji-mart.js @@ -1,4270 +1 @@ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else if(typeof exports === 'object') - exports["EmojiMart"] = factory(); - else - root["EmojiMart"] = factory(); -})(typeof self !== 'undefined' ? self : this, function() { -return /******/ (function() { // webpackBootstrap -/******/ var __webpack_modules__ = ({ - -/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Emoji.vue?vue&type=script&lang=js&": -/*!************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Emoji.vue?vue&type=script&lang=js& ***! - \************************************************************************************************************************************************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _utils_shared_props__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/shared-props */ "./src/utils/shared-props.js"); -/* harmony import */ var _utils_emoji_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/emoji-data */ "./src/utils/emoji-data.js"); - - -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } - -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } - -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// - - -/* harmony default export */ __webpack_exports__["default"] = ({ - props: _objectSpread(_objectSpread({}, _utils_shared_props__WEBPACK_IMPORTED_MODULE_1__.EmojiProps), {}, { - data: { - type: Object, - required: true - } - }), - computed: { - view: function view() { - return new _utils_emoji_data__WEBPACK_IMPORTED_MODULE_2__.EmojiView(this.emojiObject, this.skin, this.set, this.native, this.fallback, this.tooltip, this.size); - }, - sanitizedData: function sanitizedData() { - return this.emojiObject._sanitized; - }, - title: function title() { - return this.tooltip ? this.emojiObject.short_name : null; - }, - emojiObject: function emojiObject() { - if (typeof this.emoji == 'string') { - return this.data.findEmoji(this.emoji); - } else { - return this.emoji; - } - } - }, - created: function created() {}, - methods: { - onClick: function onClick() { - this.$emit('click', this.emojiObject); - }, - onMouseEnter: function onMouseEnter() { - this.$emit('mouseenter', this.emojiObject); - }, - onMouseLeave: function onMouseLeave() { - this.$emit('mouseleave', this.emojiObject); - } - } -}); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Picker.vue?vue&type=script&lang=js&": -/*!*************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Picker.vue?vue&type=script&lang=js& ***! - \*************************************************************************************************************************************************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _vendor_raf_polyfill__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../vendor/raf-polyfill */ "./src/vendor/raf-polyfill.js"); -/* harmony import */ var _vendor_raf_polyfill__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_vendor_raf_polyfill__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _utils_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/store */ "./src/utils/store.js"); -/* harmony import */ var _utils_frequently__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/frequently */ "./src/utils/frequently.js"); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ "./src/utils/index.js"); -/* harmony import */ var _utils_shared_props__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/shared-props */ "./src/utils/shared-props.js"); -/* harmony import */ var _utils_picker__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/picker */ "./src/utils/picker.js"); -/* harmony import */ var _anchors_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./anchors.vue */ "./src/components/anchors.vue"); -/* harmony import */ var _category_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./category.vue */ "./src/components/category.vue"); -/* harmony import */ var _preview_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./preview.vue */ "./src/components/preview.vue"); -/* harmony import */ var _search_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./search.vue */ "./src/components/search.vue"); - - -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } - -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } - -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// - - - - - - - - - - -var I18N = { - search: 'Search', - notfound: 'No Emoji Found', - categories: { - search: 'Search Results', - recent: 'Frequently Used', - smileys: 'Smileys & Emotion', - people: 'People & Body', - nature: 'Animals & Nature', - foods: 'Food & Drink', - activity: 'Activity', - places: 'Travel & Places', - objects: 'Objects', - symbols: 'Symbols', - flags: 'Flags', - custom: 'Custom' - } -}; -/* harmony default export */ __webpack_exports__["default"] = ({ - props: _objectSpread(_objectSpread({}, _utils_shared_props__WEBPACK_IMPORTED_MODULE_5__.PickerProps), {}, { - data: { - type: Object, - required: true - } - }), - data: function data() { - return { - activeSkin: this.skin || _utils_store__WEBPACK_IMPORTED_MODULE_2__["default"].get('skin') || this.defaultSkin, - view: new _utils_picker__WEBPACK_IMPORTED_MODULE_6__.PickerView(this) - }; - }, - computed: { - customStyles: function customStyles() { - return _objectSpread({ - width: this.calculateWidth + 'px' - }, this.pickerStyles); - }, - emojiProps: function emojiProps() { - return { - native: this.native, - skin: this.activeSkin, - set: this.set, - emojiTooltip: this.emojiTooltip, - emojiSize: this.emojiSize, - selectedEmoji: this.view.previewEmoji, - selectedEmojiCategory: this.view.previewEmojiCategory, - onEnter: this.onEmojiEnter.bind(this), - onLeave: this.onEmojiLeave.bind(this), - onClick: this.onEmojiClick.bind(this) - }; - }, - skinProps: function skinProps() { - return { - skin: this.activeSkin - }; - }, - calculateWidth: function calculateWidth() { - return this.perLine * (this.emojiSize + 12) + 12 + 2 + (0,_utils__WEBPACK_IMPORTED_MODULE_4__.measureScrollbar)(); - }, - // emojisPerRow() { - // const listEl = this.$refs.scrollContent - // const emojiEl = listEl.querySelector('.emoji-mart-emoji') - // return Math.floor(listEl.offsetWidth / emojiEl.offsetWidth) - // }, - filteredCategories: function filteredCategories() { - return this.view.filteredCategories; - }, - mergedI18n: function mergedI18n() { - return Object.freeze((0,_utils__WEBPACK_IMPORTED_MODULE_4__.deepMerge)(I18N, this.i18n)); - }, - idleEmoji: function idleEmoji() { - try { - return this.data.emoji(this.emoji); - } catch (e) { - console.error('Default preview emoji `' + this.emoji + '` is not available, check the Picker `emoji` property'); - console.error(e); - return this.data.firstEmoji(); - } - } - }, - methods: { - onScroll: function onScroll() { - if (this.infiniteScroll && !this.waitingForPaint) { - this.waitingForPaint = true; - window.requestAnimationFrame(this.onScrollPaint.bind(this)); - } - }, - onScrollPaint: function onScrollPaint() { - this.waitingForPaint = false; - this.view.onScroll(); - }, - onAnchorClick: function onAnchorClick(category) { - this.view.onAnchorClick(category); - }, - onSearch: function onSearch(value) { - this.view.onSearch(value); - }, - onEmojiEnter: function onEmojiEnter(emoji) { - this.view.onEmojiEnter(emoji); - }, - onEmojiLeave: function onEmojiLeave(emoji) { - this.view.onEmojiLeave(emoji); - }, - onArrowLeft: function onArrowLeft($event) { - var oldIdx = this.view.previewEmojiIdx; - this.view.onArrowLeft(); - - if ($event && this.view.previewEmojiIdx !== oldIdx) { - // Prevent cursor movement inside the input - $event.preventDefault(); - } - }, - onArrowRight: function onArrowRight() { - this.view.onArrowRight(); - }, - onArrowDown: function onArrowDown() { - this.view.onArrowDown(); - }, - onArrowUp: function onArrowUp($event) { - this.view.onArrowUp(); // Prevent cursor movement inside the input - - $event.preventDefault(); - }, - onEnter: function onEnter(emoji) { - this.$emit('select', this.view.previewEmoji); - _utils_frequently__WEBPACK_IMPORTED_MODULE_3__["default"].add(this.view.previewEmoji); - }, - onEmojiClick: function onEmojiClick(emoji) { - this.$emit('select', emoji); - _utils_frequently__WEBPACK_IMPORTED_MODULE_3__["default"].add(emoji); - }, - onSkinChange: function onSkinChange(skin) { - this.activeSkin = skin; - _utils_store__WEBPACK_IMPORTED_MODULE_2__["default"].update({ - skin: skin - }); - this.$emit('skin-change', skin); - }, - getCategoryComponent: function getCategoryComponent(index) { - var component = this.$refs['categories_' + index]; - - if (component && '0' in component) { - // Vue 2 has $refs under v-for as an array. - return component['0']; - } // Vue 3 does not support $refs as array. - - - return component; - } - }, - components: { - Anchors: _anchors_vue__WEBPACK_IMPORTED_MODULE_7__["default"], - Category: _category_vue__WEBPACK_IMPORTED_MODULE_8__["default"], - Preview: _preview_vue__WEBPACK_IMPORTED_MODULE_9__["default"], - Search: _search_vue__WEBPACK_IMPORTED_MODULE_10__["default"] - } -}); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/anchors.vue?vue&type=script&lang=js&": -/*!**************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/anchors.vue?vue&type=script&lang=js& ***! - \**************************************************************************************************************************************************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _svgs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../svgs */ "./src/svgs/index.js"); -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// - -/* harmony default export */ __webpack_exports__["default"] = ({ - props: { - i18n: { - type: Object, - required: true - }, - color: { - type: String - }, - categories: { - type: Array, - required: true - }, - activeCategory: { - type: Object, - default: function _default() { - return {}; - } - } - }, - created: function created() { - this.svgs = _svgs__WEBPACK_IMPORTED_MODULE_0__["default"]; - } -}); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/category.vue?vue&type=script&lang=js&": -/*!***************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/category.vue?vue&type=script&lang=js& ***! - \***************************************************************************************************************************************************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _utils_emoji_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/emoji-data */ "./src/utils/emoji-data.js"); -/* harmony import */ var _Emoji_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Emoji.vue */ "./src/components/Emoji.vue"); -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// - - -/* harmony default export */ __webpack_exports__["default"] = ({ - props: { - data: { - type: Object, - required: true - }, - i18n: { - type: Object, - required: true - }, - id: { - type: String, - required: true - }, - name: { - type: String, - required: true - }, - emojis: { - type: Array - }, - emojiProps: { - type: Object, - required: true - } - }, - methods: { - activeClass: function activeClass(emojiObject) { - if (!this.emojiProps.selectedEmoji) { - return ''; - } - - if (!this.emojiProps.selectedEmojiCategory) { - return ''; - } - - if (this.emojiProps.selectedEmoji.id == emojiObject.id && this.emojiProps.selectedEmojiCategory.id == this.id) { - return 'emoji-mart-emoji-selected'; - } - - return ''; - } - }, - computed: { - isVisible: function isVisible() { - return !!this.emojis; - }, - isSearch: function isSearch() { - return this.name == 'Search'; - }, - hasResults: function hasResults() { - return this.emojis.length > 0; - }, - emojiObjects: function emojiObjects() { - var _this = this; - - return this.emojis.map(function (emoji) { - var emojiObject = emoji; - var emojiView = new _utils_emoji_data__WEBPACK_IMPORTED_MODULE_0__.EmojiView(emoji, _this.emojiProps.skin, _this.emojiProps.set, _this.emojiProps.native, _this.emojiProps.fallback, _this.emojiProps.emojiTooltip, _this.emojiProps.emojiSize); - return { - emojiObject: emojiObject, - emojiView: emojiView - }; - }); - } - }, - components: { - Emoji: _Emoji_vue__WEBPACK_IMPORTED_MODULE_1__["default"] - } -}); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/preview.vue?vue&type=script&lang=js&": -/*!**************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/preview.vue?vue&type=script&lang=js& ***! - \**************************************************************************************************************************************************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _Emoji_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Emoji.vue */ "./src/components/Emoji.vue"); -/* harmony import */ var _skins_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./skins.vue */ "./src/components/skins.vue"); -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// - - -/* harmony default export */ __webpack_exports__["default"] = ({ - props: { - data: { - type: Object, - required: true - }, - title: { - type: String, - required: true - }, - emoji: { - type: [String, Object] - }, - idleEmoji: { - type: [String, Object], - required: true - }, - showSkinTones: { - type: Boolean, - default: true - }, - emojiProps: { - type: Object, - required: true - }, - skinProps: { - type: Object, - required: true - }, - onSkinChange: { - type: Function, - required: true - } - }, - computed: { - emojiData: function emojiData() { - if (this.emoji) { - return this.emoji; - } else { - return {}; - } - }, - emojiShortNames: function emojiShortNames() { - return this.emojiData.short_names; - }, - emojiEmoticons: function emojiEmoticons() { - return this.emojiData.emoticons; - } - }, - components: { - Emoji: _Emoji_vue__WEBPACK_IMPORTED_MODULE_0__["default"], - Skins: _skins_vue__WEBPACK_IMPORTED_MODULE_1__["default"] - } -}); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/search.vue?vue&type=script&lang=js&": -/*!*************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/search.vue?vue&type=script&lang=js& ***! - \*************************************************************************************************************************************************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -/* harmony default export */ __webpack_exports__["default"] = ({ - props: { - data: { - type: Object, - required: true - }, - i18n: { - type: Object, - required: true - }, - autoFocus: { - type: Boolean, - default: false - }, - onSearch: { - type: Function, - required: true - }, - onArrowLeft: { - type: Function, - required: false - }, - onArrowRight: { - type: Function, - required: false - }, - onArrowDown: { - type: Function, - required: false - }, - onArrowUp: { - type: Function, - required: false - }, - onEnter: { - type: Function, - required: false - } - }, - data: function data() { - return { - value: '' - }; - }, - computed: { - emojiIndex: function emojiIndex() { - return this.data; - } - }, - watch: { - value: function value() { - this.$emit('search', this.value); - } - }, - methods: { - clear: function clear() { - this.value = ''; - } - }, - mounted: function mounted() { - var $input = this.$el.querySelector('input'); - - if (this.autoFocus) { - $input.focus(); - } - } -}); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/skins.vue?vue&type=script&lang=js&": -/*!************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/skins.vue?vue&type=script&lang=js& ***! - \************************************************************************************************************************************************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -// -// -// -// -// -// -// -// -// -// -/* harmony default export */ __webpack_exports__["default"] = ({ - props: { - skin: { - type: Number, - required: true - } - }, - data: function data() { - return { - opened: false - }; - }, - methods: { - onClick: function onClick(skinTone) { - if (this.opened) { - if (skinTone != this.skin) { - this.$emit('change', skinTone); - } - } - - this.opened = !this.opened; - } - } -}); - -/***/ }), - -/***/ "./src/components/index.js": -/*!*********************************!*\ - !*** ./src/components/index.js ***! - \*********************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Anchors": function() { return /* reexport safe */ _anchors_vue__WEBPACK_IMPORTED_MODULE_0__["default"]; }, -/* harmony export */ "Category": function() { return /* reexport safe */ _category_vue__WEBPACK_IMPORTED_MODULE_1__["default"]; }, -/* harmony export */ "Preview": function() { return /* reexport safe */ _preview_vue__WEBPACK_IMPORTED_MODULE_2__["default"]; }, -/* harmony export */ "Search": function() { return /* reexport safe */ _search_vue__WEBPACK_IMPORTED_MODULE_3__["default"]; }, -/* harmony export */ "Skins": function() { return /* reexport safe */ _skins_vue__WEBPACK_IMPORTED_MODULE_4__["default"]; }, -/* harmony export */ "Emoji": function() { return /* reexport safe */ _Emoji_vue__WEBPACK_IMPORTED_MODULE_5__["default"]; }, -/* harmony export */ "Picker": function() { return /* reexport safe */ _Picker_vue__WEBPACK_IMPORTED_MODULE_6__["default"]; } -/* harmony export */ }); -/* harmony import */ var _anchors_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./anchors.vue */ "./src/components/anchors.vue"); -/* harmony import */ var _category_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./category.vue */ "./src/components/category.vue"); -/* harmony import */ var _preview_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./preview.vue */ "./src/components/preview.vue"); -/* harmony import */ var _search_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./search.vue */ "./src/components/search.vue"); -/* harmony import */ var _skins_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./skins.vue */ "./src/components/skins.vue"); -/* harmony import */ var _Emoji_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Emoji.vue */ "./src/components/Emoji.vue"); -/* harmony import */ var _Picker_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Picker.vue */ "./src/components/Picker.vue"); - - - - - - - - -/***/ }), - -/***/ "./src/polyfills/stringFromCodePoint.js": -/*!**********************************************!*\ - !*** ./src/polyfills/stringFromCodePoint.js ***! - \**********************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -var _String = String; -/* harmony default export */ __webpack_exports__["default"] = (_String.fromCodePoint || function stringFromCodePoint() { - var MAX_SIZE = 0x4000; - var codeUnits = []; - var highSurrogate; - var lowSurrogate; - var index = -1; - var length = arguments.length; - - if (!length) { - return ''; - } - - var result = ''; - - while (++index < length) { - var codePoint = Number(arguments[index]); - - if (!isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity` - codePoint < 0 || // not a valid Unicode code point - codePoint > 0x10ffff || // not a valid Unicode code point - Math.floor(codePoint) != codePoint // not an integer - ) { - throw RangeError('Invalid code point: ' + codePoint); - } - - if (codePoint <= 0xffff) { - // BMP code point - codeUnits.push(codePoint); - } else { - // Astral code point; split in surrogate halves - // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae - codePoint -= 0x10000; - highSurrogate = (codePoint >> 10) + 0xd800; - lowSurrogate = codePoint % 0x400 + 0xdc00; - codeUnits.push(highSurrogate, lowSurrogate); - } - - if (index + 1 === length || codeUnits.length > MAX_SIZE) { - result += String.fromCharCode.apply(null, codeUnits); - codeUnits.length = 0; - } - } - - return result; -}); - -/***/ }), - -/***/ "./src/svgs/index.js": -/*!***************************!*\ - !*** ./src/svgs/index.js ***! - \***************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -var SVGs = { - activity: "", - custom: "", - flags: "", - foods: "", - nature: "", - objects: "", - smileys: "", - people: " ", - places: "", - recent: "", - symbols: "" -}; -/* harmony default export */ __webpack_exports__["default"] = (SVGs); - -/***/ }), - -/***/ "./src/utils/data.js": -/*!***************************!*\ - !*** ./src/utils/data.js ***! - \***************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "buildSearch": function() { return /* binding */ buildSearch; }, -/* harmony export */ "uncompress": function() { return /* binding */ uncompress; } -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/esm/typeof.js"); - - -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -var mapping = { - name: 'a', - unified: 'b', - non_qualified: 'c', - has_img_apple: 'd', - has_img_google: 'e', - has_img_twitter: 'f', - has_img_facebook: 'h', - keywords: 'j', - sheet: 'k', - emoticons: 'l', - text: 'm', - short_names: 'n', - added_in: 'o' -}; - -var buildSearch = function buildSearch(emoji) { - var search = []; - - var addToSearch = function addToSearch(strings, split) { - if (!strings) { - return; - } - - ; - (Array.isArray(strings) ? strings : [strings]).forEach(function (string) { - ; - (split ? string.split(/[-|_|\s]+/) : [string]).forEach(function (s) { - s = s.toLowerCase(); - - if (search.indexOf(s) == -1) { - search.push(s); - } - }); - }); - }; - - addToSearch(emoji.short_names, true); - addToSearch(emoji.name, true); - addToSearch(emoji.keywords, false); - addToSearch(emoji.emoticons, false); - return search.join(','); -}; - -function deepFreeze(object) { - // Retrieve the property names defined on object - var propNames = Object.getOwnPropertyNames(object); // Freeze properties before freezing self - - var _iterator = _createForOfIteratorHelper(propNames), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var name = _step.value; - var value = object[name]; - object[name] = value && (0,_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__["default"])(value) === 'object' ? deepFreeze(value) : value; - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - - return Object.freeze(object); -} - -var uncompress = function uncompress(data) { - if (!data.compressed) { - return data; - } - - data.compressed = false; - - for (var id in data.emojis) { - var emoji = data.emojis[id]; - - for (var key in mapping) { - emoji[key] = emoji[mapping[key]]; - delete emoji[mapping[key]]; - } - - if (!emoji.short_names) emoji.short_names = []; - emoji.short_names.unshift(id); - emoji.sheet_x = emoji.sheet[0]; - emoji.sheet_y = emoji.sheet[1]; - delete emoji.sheet; - if (!emoji.text) emoji.text = ''; - if (!emoji.added_in) emoji.added_in = 6; - emoji.added_in = emoji.added_in.toFixed(1); - emoji.search = buildSearch(emoji); - } - - data = deepFreeze(data); - return data; -}; - - - -/***/ }), - -/***/ "./src/utils/emoji-data.js": -/*!*********************************!*\ - !*** ./src/utils/emoji-data.js ***! - \*********************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "EmojiIndex": function() { return /* binding */ EmojiIndex; }, -/* harmony export */ "EmojiData": function() { return /* binding */ EmojiData; }, -/* harmony export */ "EmojiView": function() { return /* binding */ EmojiView; }, -/* harmony export */ "sanitize": function() { return /* binding */ sanitize; } -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index */ "./src/utils/index.js"); -/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./data */ "./src/utils/data.js"); -/* harmony import */ var _frequently__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./frequently */ "./src/utils/frequently.js"); - - - -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - - - - -var SHEET_COLUMNS = 61; -var COLONS_REGEX = /^(?:\:([^\:]+)\:)(?:\:skin-tone-(\d)\:)?$/; // Skin tones - -var SKINS = ['1F3FA', '1F3FB', '1F3FC', '1F3FD', '1F3FE', '1F3FF']; -/** - * Emoji data structure: - * { - * "compressed": false, - * "aliases": { - * collision: "boom" - * cooking: "fried_egg" - * envelope: "email" - * face_with_finger_covering_closed_lips: "shushing_face" - * ... - * }, - * "categories": [ { - * id: "people", - * name: "Smileys & Emotion", - * emojis: [ "grinning", "grin", "joy", ... ] - * }, { - * id: "nature", - * name: "Animals & Nature", - * emojis: [ "monkey_face", "money", "gorilla", ... ] - * }, - * ... - * ], - * "emojis": [ - * smiley: { - * added_in: "6.0", - * emoticons: ["=)", "=-)"], - * has_img_apple: true, - * has_img_facebook: true, - * has_img_google: true, - * has_img_twitter: true, - * keywords: ["face", "happy", "joy", "haha", ":D", ":)", "smile", "funny"], - * name: "Smiling Face with Open Mouth", - * non_qualified: undefined, - * search: "smiley,smiling,face,with,open,mouth,happy,joy,haha,:d,:),smile,funny,=),=-)", - * sheet_x: 30, - * sheet_y: 27, - * short_names: ["smiley"], - * text: ":)", - * unified: "1F603", - * }, { - * +1: { // emoji with skin_variations - * ..., // all the regular fields are present - * name: "Thumbs Up Sign", - * short_names: (2) ["+1", "thumbsup"], - * skin_variations: { - * 1F3FB: // each variation has additional set of fields: - * added_in: "8.0", - * has_img_apple: true, - * has_img_facebook: true, - * has_img_google: true, - * has_img_twitter: true, - * image: "1f44d-1f3fb.png", - * non_qualified: null, - * sheet_x: 14, - * sheet_y: 50, - * unified: "1F44D-1F3FB", - * 1F3FB: {…}, - * 1F3FC: {…}, - * 1F3FD: {…}, - * 1F3FE: {…}, - * 1F3FF: {…} - * }, - * ... - * }, - * a: { // emoji with non_qualified field set - * added_in: "6.0", - * emoticons: undefined, - * has_img_apple: true, - * ... - * non_qualified: "1F170", - * unified: "1F170-FE0F", - * }, - * ... - * ] - * } - */ - -/** - * Wraps raw jason emoji data, serves as data source for - * emoji picker components. - * - * Usage: - * - * import data from '../data/all.json' - * let index = new EmojiIndex(data) - * - */ - -var EmojiIndex = /*#__PURE__*/function () { - /** - * Constructor. - * - * @param {object} data - Raw json data, see the structure above. - * @param {object} options - additional options, as an object: - * @param {Function} emojisToShowFilter - optional, function to filter out - * some emojis, function(emoji) { return true|false } - * where `emoji` is an raw emoji object, see data.emojis above. - * @param {Array} include - optional, a list of category ids to include. - * @param {Array} exclude - optional, a list of category ids to exclude. - * @param {Array} custom - optional, a list custom emojis, each emoji is - * an object, see data.emojis above for examples. - */ - function EmojiIndex(data) { - var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - emojisToShowFilter = _ref.emojisToShowFilter, - include = _ref.include, - exclude = _ref.exclude, - custom = _ref.custom, - recent = _ref.recent, - _ref$recentLength = _ref.recentLength, - recentLength = _ref$recentLength === void 0 ? 20 : _ref$recentLength; - - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__["default"])(this, EmojiIndex); - - this._data = (0,_data__WEBPACK_IMPORTED_MODULE_3__.uncompress)(data); // Callback to exclude specific emojis - - this._emojisFilter = emojisToShowFilter || null; // Categories to include / exclude - - this._include = include || null; - this._exclude = exclude || null; // Custom emojis - - this._custom = custom || []; // Recent emojis - // TODO: make parameter configurable - - this._recent = recent || _frequently__WEBPACK_IMPORTED_MODULE_4__["default"].get(recentLength); - this._emojis = {}; - this._nativeEmojis = {}; - this._emoticons = {}; - this._categories = []; - this._recentCategory = { - id: 'recent', - name: 'Recent', - emojis: [] - }; - this._customCategory = { - id: 'custom', - name: 'Custom', - emojis: [] - }; - this._searchIndex = {}; - this.buildIndex(); - Object.freeze(this); - } - - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__["default"])(EmojiIndex, [{ - key: "buildIndex", - value: function buildIndex() { - var _this = this; - - var allCategories = this._data.categories; - - if (this._include) { - // Remove categories that are not in the include list. - allCategories = allCategories.filter(function (item) { - return _this._include.includes(item.id); - }); // Sort categories according to the include list. - - allCategories = allCategories.sort(function (a, b) { - var indexA = _this._include.indexOf(a.id); - - var indexB = _this._include.indexOf(b.id); - - if (indexA < indexB) { - return -1; - } - - if (indexA > indexB) { - return 1; - } - - return 0; - }); - } - - allCategories.forEach(function (categoryData) { - if (!_this.isCategoryNeeded(categoryData.id)) { - return; - } - - var category = { - id: categoryData.id, - name: categoryData.name, - emojis: [] - }; - categoryData.emojis.forEach(function (emojiId) { - var emoji = _this.addEmoji(emojiId); - - if (emoji) { - category.emojis.push(emoji); - } - }); - - if (category.emojis.length) { - _this._categories.push(category); - } - }); - - if (this.isCategoryNeeded('custom')) { - if (this._custom.length > 0) { - var _iterator = _createForOfIteratorHelper(this._custom), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var customEmoji = _step.value; - this.addCustomEmoji(customEmoji); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - } - - if (this._customCategory.emojis.length) { - this._categories.push(this._customCategory); - } - } - - if (this.isCategoryNeeded('recent')) { - if (this._recent.length) { - this._recent.map(function (id) { - var _iterator2 = _createForOfIteratorHelper(_this._customCategory.emojis), - _step2; - - try { - for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { - var _customEmoji = _step2.value; - - if (_customEmoji.id === id) { - _this._recentCategory.emojis.push(_customEmoji); - - return; - } - } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); - } - - if (_this.hasEmoji(id)) { - _this._recentCategory.emojis.push(_this.emoji(id)); - } - - return; - }); - } // Add recent category to the top - - - if (this._recentCategory.emojis.length) { - this._categories.unshift(this._recentCategory); - } - } - } - /** - * Find the emoji from the string - */ - - }, { - key: "findEmoji", - value: function findEmoji(emoji, skin) { - // 1. Parse as :emoji_name:skin-tone-xx: - var matches = emoji.match(COLONS_REGEX); - - if (matches) { - emoji = matches[1]; - - if (matches[2]) { - skin = parseInt(matches[2], 10); - } - } // 2. Check if the specified emoji is an alias - - - if (this._data.aliases.hasOwnProperty(emoji)) { - emoji = this._data.aliases[emoji]; - } // 3. Check if we have the specified emoji - - - if (this._emojis.hasOwnProperty(emoji)) { - var emojiObject = this._emojis[emoji]; - - if (skin) { - return emojiObject.getSkin(skin); - } - - return emojiObject; - } // 4. Check if we have the specified native emoji - - - if (this._nativeEmojis.hasOwnProperty(emoji)) { - return this._nativeEmojis[emoji]; - } - - return null; - } - }, { - key: "categories", - value: function categories() { - return this._categories; - } - }, { - key: "emoji", - value: function emoji(emojiId) { - if (this._data.aliases.hasOwnProperty(emojiId)) { - emojiId = this._data.aliases[emojiId]; - } - - var emoji = this._emojis[emojiId]; - - if (!emoji) { - throw new Error('Can not find emoji by id: ' + emojiId); - } - - return emoji; - } - }, { - key: "firstEmoji", - value: function firstEmoji() { - var emoji = this._emojis[Object.keys(this._emojis)[0]]; - - if (!emoji) { - throw new Error('Can not get first emoji'); - } - - return emoji; - } - }, { - key: "hasEmoji", - value: function hasEmoji(emojiId) { - if (this._data.aliases.hasOwnProperty(emojiId)) { - emojiId = this._data.aliases[emojiId]; - } - - if (this._emojis[emojiId]) { - return true; - } - - return false; - } - }, { - key: "nativeEmoji", - value: function nativeEmoji(unicodeEmoji) { - if (this._nativeEmojis.hasOwnProperty(unicodeEmoji)) { - return this._nativeEmojis[unicodeEmoji]; - } - - return null; - } - }, { - key: "search", - value: function search(value, maxResults) { - var _this2 = this; - - maxResults || (maxResults = 75); - - if (!value.length) { - return null; - } - - if (value == '-' || value == '-1') { - return [this.emoji('-1')]; - } - - var values = value.toLowerCase().split(/[\s|,|\-|_]+/); - var allResults = []; - - if (values.length > 2) { - values = [values[0], values[1]]; - } - - allResults = values.map(function (value) { - // Start searchin in the global list of emojis - var emojis = _this2._emojis; - var currentIndex = _this2._searchIndex; - var length = 0; - - for (var charIndex = 0; charIndex < value.length; charIndex++) { - var char = value[charIndex]; - length++; - currentIndex[char] || (currentIndex[char] = {}); - currentIndex = currentIndex[char]; - - if (!currentIndex.results) { - (function () { - var scores = {}; - currentIndex.results = []; - currentIndex.emojis = {}; - - for (var emojiId in emojis) { - var emoji = emojis[emojiId]; // search is a comma-separated string with words, related - // to the emoji, for example: - // search: "smiley,smiling,face,joy,haha,:d,:),smile,funny,=),=-)", - - var search = emoji._data.search; - var sub = value.substr(0, length); - var subIndex = search.indexOf(sub); - - if (subIndex != -1) { - var score = subIndex + 1; - if (sub == emojiId) score = 0; - currentIndex.results.push(emoji); - currentIndex.emojis[emojiId] = emoji; - scores[emojiId] = score; - } - } - - currentIndex.results.sort(function (a, b) { - var aScore = scores[a.id], - bScore = scores[b.id]; - return aScore - bScore; - }); - })(); - } // continue search in the reduced set of emojis - - - emojis = currentIndex.emojis; - } - - return currentIndex.results; // The "filter" call removes undefined values from allResults - // array, for example, if we have "test " (with trailing space), - // we will get "[Array, undefined]" for allResults and after - // the "filter" call it will turn into "[Array]" - }).filter(function (a) { - return a; - }); - var results = null; - - if (allResults.length > 1) { - results = _index__WEBPACK_IMPORTED_MODULE_2__.intersect.apply(null, allResults); - } else if (allResults.length) { - results = allResults[0]; - } else { - results = []; - } - - if (results && results.length > maxResults) { - results = results.slice(0, maxResults); - } - - return results; - } - }, { - key: "addCustomEmoji", - value: function addCustomEmoji(customEmoji) { - var emojiData = Object.assign({}, customEmoji, { - id: customEmoji.short_names[0], - custom: true - }); - - if (!emojiData.search) { - emojiData.search = (0,_data__WEBPACK_IMPORTED_MODULE_3__.buildSearch)(emojiData); - } - - var emoji = new EmojiData(emojiData); - this._emojis[emoji.id] = emoji; - - this._customCategory.emojis.push(emoji); - - return emoji; - } - }, { - key: "addEmoji", - value: function addEmoji(emojiId) { - var _this3 = this; - - // We expect the correct emoji id that is present in the emojis data. - var data = this._data.emojis[emojiId]; - - if (!this.isEmojiNeeded(data)) { - return false; - } - - var emoji = new EmojiData(data); - this._emojis[emojiId] = emoji; - - if (emoji.native) { - this._nativeEmojis[emoji.native] = emoji; - } - - if (emoji._skins) { - for (var idx in emoji._skins) { - var skin = emoji._skins[idx]; - - if (skin.native) { - this._nativeEmojis[skin.native] = skin; - } - } - } - - if (emoji.emoticons) { - emoji.emoticons.forEach(function (emoticon) { - if (_this3._emoticons[emoticon]) { - return; - } - - _this3._emoticons[emoticon] = emojiId; - }); - } - - return emoji; - } - /** - * Check if we need to include given category. - * - * @param {string} category_id - The category id. - * @return {boolean} - Whether to include the emoji. - */ - - }, { - key: "isCategoryNeeded", - value: function isCategoryNeeded(category_id) { - var isIncluded = this._include && this._include.length ? this._include.indexOf(category_id) > -1 : true; - var isExcluded = this._exclude && this._exclude.length ? this._exclude.indexOf(category_id) > -1 : false; - - if (!isIncluded || isExcluded) { - return false; - } - - return true; - } - /** - * Check if we need to include given emoji. - * - * @param {object} emoji - The raw emoji object. - * @return {boolean} - Whether to include the emoji. - */ - - }, { - key: "isEmojiNeeded", - value: function isEmojiNeeded(emoji) { - if (this._emojisFilter) { - return this._emojisFilter(emoji); - } - - return true; - } - }]); - - return EmojiIndex; -}(); -var EmojiData = /*#__PURE__*/function () { - function EmojiData(data) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__["default"])(this, EmojiData); - - this._data = Object.assign({}, data); - this._skins = null; - - if (this._data.skin_variations) { - this._skins = []; - - for (var skinIdx in SKINS) { - var skinKey = SKINS[skinIdx]; - var variationData = this._data.skin_variations[skinKey]; - var skinData = Object.assign({}, data); - - for (var k in variationData) { - skinData[k] = variationData[k]; - } - - delete skinData.skin_variations; - skinData['skin_tone'] = parseInt(skinIdx) + 1; - - this._skins.push(new EmojiData(skinData)); - } - } - - this._sanitized = sanitize(this._data); - - for (var key in this._sanitized) { - this[key] = this._sanitized[key]; - } - - this.short_names = this._data.short_names; - this.short_name = this._data.short_names[0]; - Object.freeze(this); - } - - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__["default"])(EmojiData, [{ - key: "getSkin", - value: function getSkin(skinIdx) { - if (skinIdx && skinIdx != 'native' && this._skins) { - return this._skins[skinIdx - 1]; - } - - return this; - } - }, { - key: "getPosition", - value: function getPosition() { - var adjustedColumns = SHEET_COLUMNS - 1, - x = +(100 / adjustedColumns * this._data.sheet_x).toFixed(2), - y = +(100 / adjustedColumns * this._data.sheet_y).toFixed(2); - return "".concat(x, "% ").concat(y, "%"); - } - }, { - key: "ariaLabel", - value: function ariaLabel() { - return [this.native].concat(this.short_names).filter(Boolean).join(', '); - } - }]); - - return EmojiData; -}(); -var EmojiView = /*#__PURE__*/function () { - /** - * emoji - Emoji to display - * set - string, emoji set name - * native - boolean, whether to render native emoji - * fallback - fallback function to render missing emoji, optional - * emojiTooltip - wether we need to show the emoji tooltip, optional - * emojiSize - emoji size in pixels, optional - */ - function EmojiView(emoji, skin, set, native, fallback, emojiTooltip, emojiSize) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__["default"])(this, EmojiView); - - this._emoji = emoji; - this._native = native; - this._skin = skin; - this._set = set; - this._fallback = fallback; - this.canRender = this._canRender(); - this.cssClass = this._cssClass(); - this.cssStyle = this._cssStyle(emojiSize); - this.content = this._content(); - this.title = emojiTooltip === true ? emoji.short_name : null; - this.ariaLabel = emoji.ariaLabel(); - Object.freeze(this); - } - - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__["default"])(EmojiView, [{ - key: "getEmoji", - value: function getEmoji() { - return this._emoji.getSkin(this._skin); - } - }, { - key: "_canRender", - value: function _canRender() { - return this._isCustom() || this._isNative() || this._hasEmoji() || this._fallback; - } - }, { - key: "_cssClass", - value: function _cssClass() { - return ['emoji-set-' + this._set, 'emoji-type-' + this._emojiType()]; - } - }, { - key: "_cssStyle", - value: function _cssStyle(emojiSize) { - var cssStyle = {}; - - if (this._isCustom()) { - cssStyle = { - backgroundImage: 'url(' + this.getEmoji()._data.imageUrl + ')', - backgroundSize: '100%', - width: emojiSize + 'px', - height: emojiSize + 'px' - }; - } else if (this._hasEmoji() && !this._isNative()) { - cssStyle = { - backgroundPosition: this.getEmoji().getPosition() - }; - } - - if (emojiSize) { - if (this._isNative()) { - // Set font-size for native emoji. - cssStyle = Object.assign(cssStyle, { - // font-size is used for native emoji which we need - // to scale with 0.95 factor to have them look approximately - // the same size as image-based emoji. - fontSize: Math.round(emojiSize * 0.95 * 10) / 10 + 'px' - }); - } else { - // Set width/height for image emoji. - cssStyle = Object.assign(cssStyle, { - width: emojiSize + 'px', - height: emojiSize + 'px' - }); - } - } - - return cssStyle; - } - }, { - key: "_content", - value: function _content() { - if (this._isCustom()) { - return ''; - } - - if (this._isNative()) { - return this.getEmoji().native; - } - - if (this._hasEmoji()) { - return ''; - } - - return this._fallback ? this._fallback(this.getEmoji()) : null; - } - }, { - key: "_isNative", - value: function _isNative() { - return this._native; - } - }, { - key: "_isCustom", - value: function _isCustom() { - return this.getEmoji().custom; - } - }, { - key: "_hasEmoji", - value: function _hasEmoji() { - if (!this.getEmoji()._data) { - // Return false if we have no data. - return false; - } - - var hasImage = this.getEmoji()._data['has_img_' + this._set]; - - if (hasImage === undefined) { - // If there is no has_img_xxx in the data, we are working with - // specific data file, like facebook.json, so we assume all - // emojis are available (the :set setting for picker should - // match the data file). - return true; - } // Otherwise, we are using all.json and can switch between different - // sets - in this case the `has_img_{set_name}` is a boolean that - // indicates if there is such image or not for a given set. - - - return hasImage; - } - }, { - key: "_emojiType", - value: function _emojiType() { - if (this._isCustom()) { - return 'custom'; - } - - if (this._isNative()) { - return 'native'; - } - - if (this._hasEmoji()) { - return 'image'; - } - - return 'fallback'; - } - }]); - - return EmojiView; -}(); -function sanitize(emoji) { - var name = emoji.name, - short_names = emoji.short_names, - skin_tone = emoji.skin_tone, - skin_variations = emoji.skin_variations, - emoticons = emoji.emoticons, - unified = emoji.unified, - custom = emoji.custom, - imageUrl = emoji.imageUrl, - id = emoji.id || short_names[0], - colons = ":".concat(id, ":"); - - if (custom) { - return { - id: id, - name: name, - colons: colons, - emoticons: emoticons, - custom: custom, - imageUrl: imageUrl - }; - } - - if (skin_tone) { - colons += ":skin-tone-".concat(skin_tone, ":"); - } - - return { - id: id, - name: name, - colons: colons, - emoticons: emoticons, - unified: unified.toLowerCase(), - skin: skin_tone || (skin_variations ? 1 : null), - native: (0,_index__WEBPACK_IMPORTED_MODULE_2__.unifiedToNative)(unified) - }; -} - -/***/ }), - -/***/ "./src/utils/frequently.js": -/*!*********************************!*\ - !*** ./src/utils/frequently.js ***! - \*********************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./store */ "./src/utils/store.js"); - -var DEFAULTS = ['+1', 'grinning', 'kissing_heart', 'heart_eyes', 'laughing', 'stuck_out_tongue_winking_eye', 'sweat_smile', 'joy', 'scream', 'disappointed', 'unamused', 'weary', 'sob', 'sunglasses', 'heart', 'hankey']; -var frequently, initialized; -var defaults = {}; - -function init() { - initialized = true; - frequently = _store__WEBPACK_IMPORTED_MODULE_0__["default"].get('frequently'); -} - -function add(emoji) { - if (!initialized) init(); - var id = emoji.id; - frequently || (frequently = defaults); - frequently[id] || (frequently[id] = 0); - frequently[id] += 1; - _store__WEBPACK_IMPORTED_MODULE_0__["default"].set('last', id); - _store__WEBPACK_IMPORTED_MODULE_0__["default"].set('frequently', frequently); -} - -function get(maxNumber) { - if (!initialized) init(); - - if (!frequently) { - defaults = {}; - var result = []; - var defaultLength = Math.min(maxNumber, DEFAULTS.length); - - for (var i = 0; i < defaultLength; i++) { - defaults[DEFAULTS[i]] = parseInt((defaultLength - i) / 4, 10) + 1; - result.push(DEFAULTS[i]); - } - - return result; - } - - var quantity = maxNumber; - var frequentlyKeys = []; - - for (var key in frequently) { - if (frequently.hasOwnProperty(key)) { - frequentlyKeys.push(key); - } - } - - var sorted = frequentlyKeys.sort(function (a, b) { - return frequently[a] - frequently[b]; - }).reverse(); - var sliced = sorted.slice(0, quantity); - var last = _store__WEBPACK_IMPORTED_MODULE_0__["default"].get('last'); - - if (last && sliced.indexOf(last) == -1) { - sliced.pop(); - sliced.push(last); - } - - return sliced; -} - -/* harmony default export */ __webpack_exports__["default"] = ({ - add: add, - get: get -}); - -/***/ }), - -/***/ "./src/utils/index.js": -/*!****************************!*\ - !*** ./src/utils/index.js ***! - \****************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "uniq": function() { return /* binding */ uniq; }, -/* harmony export */ "intersect": function() { return /* binding */ intersect; }, -/* harmony export */ "deepMerge": function() { return /* binding */ deepMerge; }, -/* harmony export */ "unifiedToNative": function() { return /* binding */ unifiedToNative; }, -/* harmony export */ "measureScrollbar": function() { return /* binding */ measureScrollbar; } -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/esm/typeof.js"); -/* harmony import */ var _polyfills_stringFromCodePoint__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../polyfills/stringFromCodePoint */ "./src/polyfills/stringFromCodePoint.js"); - - - -function unifiedToNative(unified) { - var unicodes = unified.split('-'), - codePoints = unicodes.map(function (u) { - return "0x".concat(u); - }); - return _polyfills_stringFromCodePoint__WEBPACK_IMPORTED_MODULE_1__["default"].apply(null, codePoints); -} - -function uniq(arr) { - return arr.reduce(function (acc, item) { - if (acc.indexOf(item) === -1) { - acc.push(item); - } - - return acc; - }, []); -} - -function intersect(a, b) { - var uniqA = uniq(a); - var uniqB = uniq(b); - return uniqA.filter(function (item) { - return uniqB.indexOf(item) >= 0; - }); -} - -function deepMerge(a, b) { - var o = {}; - - for (var key in a) { - var originalValue = a[key], - value = originalValue; - - if (b.hasOwnProperty(key)) { - value = b[key]; - } - - if ((0,_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__["default"])(value) === 'object') { - value = deepMerge(originalValue, value); - } - - o[key] = value; - } - - return o; -} // https://github.com/sonicdoe/measure-scrollbar - - -function measureScrollbar() { - if (typeof document == 'undefined') return 0; - var div = document.createElement('div'); - div.style.width = '100px'; - div.style.height = '100px'; - div.style.overflow = 'scroll'; - div.style.position = 'absolute'; - div.style.top = '-9999px'; - document.body.appendChild(div); - var scrollbarWidth = div.offsetWidth - div.clientWidth; - document.body.removeChild(div); - return scrollbarWidth; -} - - - -/***/ }), - -/***/ "./src/utils/picker.js": -/*!*****************************!*\ - !*** ./src/utils/picker.js ***! - \*****************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "PickerView": function() { return /* binding */ PickerView; } -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); - - - -var PickerView = /*#__PURE__*/function () { - function PickerView(pickerComponent) { - var _this$_categories; - - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, PickerView); - - this._vm = pickerComponent; - this._data = pickerComponent.data; - this._perLine = pickerComponent.perLine; - this._categories = []; - - (_this$_categories = this._categories).push.apply(_this$_categories, (0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__["default"])(this._data.categories())); - - this._categories = this._categories.filter(function (category) { - return category.emojis.length > 0; - }); - this._categories[0].first = true; - Object.freeze(this._categories); - this.activeCategory = this._categories[0]; - this.searchEmojis = null; // Preview emoji, shown on mouse over or when we move - // with arrow keys. - - this.previewEmoji = null; // Indexes are used to keep the position when moving - // with arrows: current category and current emoji - // inside the category. - - this.previewEmojiCategoryIdx = 0; - this.previewEmojiIdx = -1; - } - - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(PickerView, [{ - key: "onScroll", - value: function onScroll() { - var scrollElement = this._vm.$refs.scroll; - var scrollTop = scrollElement.scrollTop; - var activeCategory = this.filteredCategories[0]; - - for (var i = 0, l = this.filteredCategories.length; i < l; i++) { - var category = this.filteredCategories[i]; - - var component = this._vm.getCategoryComponent(i); // The `-50` offset switches active category (selected in the - // anchors bar) a bit eariler, before it actually reaches the top. - - - if (component && component.$el.offsetTop - 50 > scrollTop) { - break; - } - - activeCategory = category; - } - - this.activeCategory = activeCategory; - } - }, { - key: "allCategories", - get: function get() { - return this._categories; - } - }, { - key: "filteredCategories", - get: function get() { - if (this.searchEmojis) { - return [{ - id: 'search', - name: 'Search', - emojis: this.searchEmojis - }]; - } - - return this._categories.filter(function (category) { - var hasEmojis = category.emojis.length > 0; - return hasEmojis; - }); - } - }, { - key: "previewEmojiCategory", - get: function get() { - if (this.previewEmojiCategoryIdx >= 0) { - return this.filteredCategories[this.previewEmojiCategoryIdx]; - } - - return null; - } - }, { - key: "onAnchorClick", - value: function onAnchorClick(category) { - var _this = this; - - if (this.searchEmojis) { - // No categories are shown when search is active. - return; - } - - var i = this.filteredCategories.indexOf(category); - - var component = this._vm.getCategoryComponent(i); - - var scrollToComponent = function scrollToComponent() { - if (component) { - var top = component.$el.offsetTop; - - if (category.first) { - top = 0; - } - - _this._vm.$refs.scroll.scrollTop = top; - } - }; - - if (this._vm.infiniteScroll) { - scrollToComponent(); - } else { - this.activeCategory = this.filteredCategories[i]; - } - } - }, { - key: "onSearch", - value: function onSearch(value) { - var emojis = this._data.search(value, this.maxSearchResults); - - this.searchEmojis = emojis; - this.previewEmojiCategoryIdx = 0; - this.previewEmojiIdx = 0; - this.updatePreviewEmoji(); - } - }, { - key: "onEmojiEnter", - value: function onEmojiEnter(emoji) { - this.previewEmoji = emoji; - this.previewEmojiIdx = -1; - this.previewEmojiCategoryIdx = -1; - } - }, { - key: "onEmojiLeave", - value: function onEmojiLeave(emoji) { - this.previewEmoji = null; - } - }, { - key: "onArrowLeft", - value: function onArrowLeft() { - // Moving left, decrease emoji index. - if (this.previewEmojiIdx > 0) { - this.previewEmojiIdx -= 1; - } else { - // If emoji index is zero, go to the previous category. - this.previewEmojiCategoryIdx -= 1; - - if (this.previewEmojiCategoryIdx < 0) { - // If we reached first category, keep it. - this.previewEmojiCategoryIdx = 0; - } else { - // Update emoji index - we moved to the previous category, - // get the last emoji in it. - this.previewEmojiIdx = this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length - 1; - } - } - - this.updatePreviewEmoji(); - } - }, { - key: "onArrowRight", - value: function onArrowRight() { - if (this.previewEmojiIdx < this.emojisLength(this.previewEmojiCategoryIdx) - 1) { - // Moving right within category, increase emoji index. - this.previewEmojiIdx += 1; - } else { - // Go to the next category. - this.previewEmojiCategoryIdx += 1; - - if (this.previewEmojiCategoryIdx >= this.filteredCategories.length) { - // If we reached the last category - keep it. - this.previewEmojiCategoryIdx = this.filteredCategories.length - 1; - } else { - // If we moved to the next category, update emoji index to the - // first emoji in the new category. - this.previewEmojiIdx = 0; - } - } - - this.updatePreviewEmoji(); - } - }, { - key: "onArrowDown", - value: function onArrowDown() { - // If we are out of the emoji control (index is -1), select the first - // emoji in the first category by calling `onArrowRight`. - if (this.previewEmojiIdx == -1) { - return this.onArrowRight(); - } - - var categoryLength = this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length; // When moving down, we can move `_perLine` icons right to - // jump to the same position in the next row. - - var diff = this._perLine; // TODO: previewCategory should match activeCategory - // (so it would be both highlighted in UI and used - // when we start moving with arrows after clicking - // the category). - // Note: probably we can alwasy take current row length - // as a `diff` - it will fit both case of any row and - // special case of the last row. - // Note: it can be also easier to update indexes - // directly here instead of calling onArrowRight. - // Same is true for `onArrowUp`. - // Unless if we are on the last row of the category and - // there are less then `_perLine` emojis in it. - // In this case we use the last row length as diff - // so we go straight down, for example: - // - // 1 2 3 4 5 6 - // 7 8 9 - // A B C D E F - // - // If we go down from `8`, we need to move 3 emojis right - // to lend at `B` (and 3 is the length of the last row of - // this category). - // And if we used 6 instead (row length, `_perLine`), we would - // lend up at `E`. - - if (this.previewEmojiIdx + diff > categoryLength) { - // Calculate the last row length. - diff = categoryLength % this._perLine; - } - - for (var i = 0; i < diff; i++) { - this.onArrowRight(); - } - - this.updatePreviewEmoji(); - } - }, { - key: "onArrowUp", - value: function onArrowUp() { - // Similar to `onArrowDown`, to move up we can move left - // by `_perLine` number of emojis. - var diff = this._perLine; - - if (this.previewEmojiIdx - diff < 0) { - if (this.previewEmojiCategoryIdx > 0) { - // Unless if we are on the first line of the category and - // the last line in the previous category is shorter than - // `_perLine`. - // In this case we use the last row length as diff, so - // we go straight up, for example: - // - // 1 2 3 4 5 - // 6 7 8 - // 9 A B C D - // - // If we go up from `A`, we need to move 3 emojis left to get - // to `7` (and 3 is the length of the last row of the previous - // category). - var prevCategoryLastRowLength = this.filteredCategories[this.previewEmojiCategoryIdx - 1].emojis.length % this._perLine; // diff = this.previewEmojiIdx + prevCategoryLastRowLength - - diff = prevCategoryLastRowLength; - } else { - diff = 0; - } - } - - for (var i = 0; i < diff; i++) { - this.onArrowLeft(); - } - - this.updatePreviewEmoji(); - } - }, { - key: "updatePreviewEmoji", - value: function updatePreviewEmoji() { - var _this2 = this; - - this.previewEmoji = this.filteredCategories[this.previewEmojiCategoryIdx].emojis[this.previewEmojiIdx]; - - this._vm.$nextTick(function () { - // Scroll the view if the `previewEmoji` goes out of the visible area. - var scrollEl = _this2._vm.$refs.scroll; // Note: it would be more Vue-ish to mark all emojis with `ref`s - // and then do something similar here to what we do in the - // `getCategories` instead of using `querySelector` directly, - // but I am not sure if having many refs would affect the performance - // (it might, so I use `querySelector` for now). - - var emojiEl = scrollEl.querySelector('.emoji-mart-emoji-selected'); - var scrollHeight = scrollEl.offsetTop - scrollEl.offsetHeight; - - if (emojiEl && emojiEl.offsetTop + emojiEl.offsetHeight > scrollHeight + scrollEl.scrollTop) { - scrollEl.scrollTop += emojiEl.offsetHeight; - } - - if (emojiEl && emojiEl.offsetTop < scrollEl.scrollTop) { - scrollEl.scrollTop -= emojiEl.offsetHeight; - } - }); - } - }, { - key: "emojisLength", - value: function emojisLength(categoryIdx) { - if (categoryIdx == -1) { - return 0; - } - - return this.filteredCategories[categoryIdx].emojis.length; - } - }]); - - return PickerView; -}(); - -/***/ }), - -/***/ "./src/utils/shared-props.js": -/*!***********************************!*\ - !*** ./src/utils/shared-props.js ***! - \***********************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "EmojiProps": function() { return /* binding */ EmojiProps; }, -/* harmony export */ "PickerProps": function() { return /* binding */ PickerProps; } -/* harmony export */ }); -var EmojiProps = { - native: { - type: Boolean, - default: false - }, - tooltip: { - type: Boolean, - default: false - }, - fallback: { - type: Function - }, - skin: { - type: Number, - default: 1 - }, - set: { - type: String, - default: 'apple' - }, - emoji: { - type: [String, Object], - required: true - }, - size: { - type: Number, - default: null - }, - tag: { - type: String, - default: 'span' - } -}; -var PickerProps = { - perLine: { - type: Number, - default: 9 - }, - maxSearchResults: { - type: Number, - default: 75 - }, - emojiSize: { - type: Number, - default: 24 - }, - title: { - type: String, - default: 'Emoji Mart™' - }, - emoji: { - type: String, - default: 'department_store' - }, - color: { - type: String, - default: '#ae65c5' - }, - set: { - type: String, - default: 'apple' - }, - skin: { - type: Number, - default: null - }, - defaultSkin: { - type: Number, - default: 1 - }, - native: { - type: Boolean, - default: false - }, - emojiTooltip: { - type: Boolean, - default: false - }, - autoFocus: { - type: Boolean, - default: false - }, - i18n: { - type: Object, - default: function _default() { - return {}; - } - }, - showPreview: { - type: Boolean, - default: true - }, - showSearch: { - type: Boolean, - default: true - }, - showCategories: { - type: Boolean, - default: true - }, - showSkinTones: { - type: Boolean, - default: true - }, - infiniteScroll: { - type: Boolean, - default: true - }, - pickerStyles: { - type: Object, - default: function _default() { - return {}; - } - } -}; - - -/***/ }), - -/***/ "./src/utils/store.js": -/*!****************************!*\ - !*** ./src/utils/store.js ***! - \****************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -var NAMESPACE = 'emoji-mart'; -var _JSON = JSON; -var isLocalStorageSupported = typeof window !== 'undefined' && 'localStorage' in window; -var getter; -var setter; - -function setHandlers(handlers) { - handlers || (handlers = {}); - getter = handlers.getter; - setter = handlers.setter; -} - -function setNamespace(namespace) { - NAMESPACE = namespace; -} - -function update(state) { - for (var key in state) { - var value = state[key]; - set(key, value); - } -} - -function set(key, value) { - if (setter) { - setter(key, value); - } else { - if (!isLocalStorageSupported) return; - - try { - window.localStorage["".concat(NAMESPACE, ".").concat(key)] = _JSON.stringify(value); - } catch (e) {} - } -} - -function get(key) { - if (getter) { - return getter(key); - } else { - if (!isLocalStorageSupported) return; - - try { - var value = window.localStorage["".concat(NAMESPACE, ".").concat(key)]; - } catch (e) { - return; - } - - if (value) { - return JSON.parse(value); - } - } -} - -/* harmony default export */ __webpack_exports__["default"] = ({ - update: update, - set: set, - get: get, - setNamespace: setNamespace, - setHandlers: setHandlers -}); - -/***/ }), - -/***/ "./src/vendor/raf-polyfill.js": -/*!************************************!*\ - !*** ./src/vendor/raf-polyfill.js ***! - \************************************/ -/***/ (function() { - -// http://paulirish.com/2011/requestanimationframe-for-smart-animating/ -// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating -// requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel -// MIT license -var isWindowAvailable = typeof window !== 'undefined'; -isWindowAvailable && function () { - var lastTime = 0; - var vendors = ['ms', 'moz', 'webkit', 'o']; - - for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) { - window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame']; - window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame']; - } - - if (!window.requestAnimationFrame) window.requestAnimationFrame = function (callback, element) { - var currTime = new Date().getTime(); - var timeToCall = Math.max(0, 16 - (currTime - lastTime)); - var id = window.setTimeout(function () { - callback(currTime + timeToCall); - }, timeToCall); - lastTime = currTime + timeToCall; - return id; - }; - if (!window.cancelAnimationFrame) window.cancelAnimationFrame = function (id) { - clearTimeout(id); - }; -}(); - -/***/ }), - -/***/ "./src/components/Emoji.vue": -/*!**********************************!*\ - !*** ./src/components/Emoji.vue ***! - \**********************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _Emoji_vue_vue_type_template_id_534ad946___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Emoji.vue?vue&type=template&id=534ad946& */ "./src/components/Emoji.vue?vue&type=template&id=534ad946&"); -/* harmony import */ var _Emoji_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Emoji.vue?vue&type=script&lang=js& */ "./src/components/Emoji.vue?vue&type=script&lang=js&"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - - - -/* normalize component */ -; -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( - _Emoji_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], - _Emoji_vue_vue_type_template_id_534ad946___WEBPACK_IMPORTED_MODULE_0__.render, - _Emoji_vue_vue_type_template_id_534ad946___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - null, - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "src/components/Emoji.vue" -/* harmony default export */ __webpack_exports__["default"] = (component.exports); - -/***/ }), - -/***/ "./src/components/Picker.vue": -/*!***********************************!*\ - !*** ./src/components/Picker.vue ***! - \***********************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _Picker_vue_vue_type_template_id_d16e9084___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Picker.vue?vue&type=template&id=d16e9084& */ "./src/components/Picker.vue?vue&type=template&id=d16e9084&"); -/* harmony import */ var _Picker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Picker.vue?vue&type=script&lang=js& */ "./src/components/Picker.vue?vue&type=script&lang=js&"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - - - -/* normalize component */ -; -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( - _Picker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], - _Picker_vue_vue_type_template_id_d16e9084___WEBPACK_IMPORTED_MODULE_0__.render, - _Picker_vue_vue_type_template_id_d16e9084___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - null, - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "src/components/Picker.vue" -/* harmony default export */ __webpack_exports__["default"] = (component.exports); - -/***/ }), - -/***/ "./src/components/anchors.vue": -/*!************************************!*\ - !*** ./src/components/anchors.vue ***! - \************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _anchors_vue_vue_type_template_id_51188104___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./anchors.vue?vue&type=template&id=51188104& */ "./src/components/anchors.vue?vue&type=template&id=51188104&"); -/* harmony import */ var _anchors_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./anchors.vue?vue&type=script&lang=js& */ "./src/components/anchors.vue?vue&type=script&lang=js&"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - - - -/* normalize component */ -; -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( - _anchors_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], - _anchors_vue_vue_type_template_id_51188104___WEBPACK_IMPORTED_MODULE_0__.render, - _anchors_vue_vue_type_template_id_51188104___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - null, - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "src/components/anchors.vue" -/* harmony default export */ __webpack_exports__["default"] = (component.exports); - -/***/ }), - -/***/ "./src/components/category.vue": -/*!*************************************!*\ - !*** ./src/components/category.vue ***! - \*************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _category_vue_vue_type_template_id_376cda0e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./category.vue?vue&type=template&id=376cda0e& */ "./src/components/category.vue?vue&type=template&id=376cda0e&"); -/* harmony import */ var _category_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./category.vue?vue&type=script&lang=js& */ "./src/components/category.vue?vue&type=script&lang=js&"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - - - -/* normalize component */ -; -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( - _category_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], - _category_vue_vue_type_template_id_376cda0e___WEBPACK_IMPORTED_MODULE_0__.render, - _category_vue_vue_type_template_id_376cda0e___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - null, - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "src/components/category.vue" -/* harmony default export */ __webpack_exports__["default"] = (component.exports); - -/***/ }), - -/***/ "./src/components/preview.vue": -/*!************************************!*\ - !*** ./src/components/preview.vue ***! - \************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _preview_vue_vue_type_template_id_35056c30___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./preview.vue?vue&type=template&id=35056c30& */ "./src/components/preview.vue?vue&type=template&id=35056c30&"); -/* harmony import */ var _preview_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./preview.vue?vue&type=script&lang=js& */ "./src/components/preview.vue?vue&type=script&lang=js&"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - - - -/* normalize component */ -; -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( - _preview_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], - _preview_vue_vue_type_template_id_35056c30___WEBPACK_IMPORTED_MODULE_0__.render, - _preview_vue_vue_type_template_id_35056c30___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - null, - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "src/components/preview.vue" -/* harmony default export */ __webpack_exports__["default"] = (component.exports); - -/***/ }), - -/***/ "./src/components/search.vue": -/*!***********************************!*\ - !*** ./src/components/search.vue ***! - \***********************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _search_vue_vue_type_template_id_4ad41bb8___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./search.vue?vue&type=template&id=4ad41bb8& */ "./src/components/search.vue?vue&type=template&id=4ad41bb8&"); -/* harmony import */ var _search_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./search.vue?vue&type=script&lang=js& */ "./src/components/search.vue?vue&type=script&lang=js&"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - - - -/* normalize component */ -; -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( - _search_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], - _search_vue_vue_type_template_id_4ad41bb8___WEBPACK_IMPORTED_MODULE_0__.render, - _search_vue_vue_type_template_id_4ad41bb8___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - null, - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "src/components/search.vue" -/* harmony default export */ __webpack_exports__["default"] = (component.exports); - -/***/ }), - -/***/ "./src/components/skins.vue": -/*!**********************************!*\ - !*** ./src/components/skins.vue ***! - \**********************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _skins_vue_vue_type_template_id_1c614894___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./skins.vue?vue&type=template&id=1c614894& */ "./src/components/skins.vue?vue&type=template&id=1c614894&"); -/* harmony import */ var _skins_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./skins.vue?vue&type=script&lang=js& */ "./src/components/skins.vue?vue&type=script&lang=js&"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - - - -/* normalize component */ -; -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( - _skins_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], - _skins_vue_vue_type_template_id_1c614894___WEBPACK_IMPORTED_MODULE_0__.render, - _skins_vue_vue_type_template_id_1c614894___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - null, - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "src/components/skins.vue" -/* harmony default export */ __webpack_exports__["default"] = (component.exports); - -/***/ }), - -/***/ "./src/components/Emoji.vue?vue&type=script&lang=js&": -/*!***********************************************************!*\ - !*** ./src/components/Emoji.vue?vue&type=script&lang=js& ***! - \***********************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_1_0_rules_0_use_node_modules_vue_loader_lib_index_js_vue_loader_options_Emoji_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Emoji.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Emoji.vue?vue&type=script&lang=js&"); - /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_clonedRuleSet_1_0_rules_0_use_node_modules_vue_loader_lib_index_js_vue_loader_options_Emoji_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./src/components/Picker.vue?vue&type=script&lang=js&": -/*!************************************************************!*\ - !*** ./src/components/Picker.vue?vue&type=script&lang=js& ***! - \************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_1_0_rules_0_use_node_modules_vue_loader_lib_index_js_vue_loader_options_Picker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Picker.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Picker.vue?vue&type=script&lang=js&"); - /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_clonedRuleSet_1_0_rules_0_use_node_modules_vue_loader_lib_index_js_vue_loader_options_Picker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./src/components/anchors.vue?vue&type=script&lang=js&": -/*!*************************************************************!*\ - !*** ./src/components/anchors.vue?vue&type=script&lang=js& ***! - \*************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_1_0_rules_0_use_node_modules_vue_loader_lib_index_js_vue_loader_options_anchors_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./anchors.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/anchors.vue?vue&type=script&lang=js&"); - /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_clonedRuleSet_1_0_rules_0_use_node_modules_vue_loader_lib_index_js_vue_loader_options_anchors_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./src/components/category.vue?vue&type=script&lang=js&": -/*!**************************************************************!*\ - !*** ./src/components/category.vue?vue&type=script&lang=js& ***! - \**************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_1_0_rules_0_use_node_modules_vue_loader_lib_index_js_vue_loader_options_category_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./category.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/category.vue?vue&type=script&lang=js&"); - /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_clonedRuleSet_1_0_rules_0_use_node_modules_vue_loader_lib_index_js_vue_loader_options_category_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./src/components/preview.vue?vue&type=script&lang=js&": -/*!*************************************************************!*\ - !*** ./src/components/preview.vue?vue&type=script&lang=js& ***! - \*************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_1_0_rules_0_use_node_modules_vue_loader_lib_index_js_vue_loader_options_preview_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./preview.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/preview.vue?vue&type=script&lang=js&"); - /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_clonedRuleSet_1_0_rules_0_use_node_modules_vue_loader_lib_index_js_vue_loader_options_preview_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./src/components/search.vue?vue&type=script&lang=js&": -/*!************************************************************!*\ - !*** ./src/components/search.vue?vue&type=script&lang=js& ***! - \************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_1_0_rules_0_use_node_modules_vue_loader_lib_index_js_vue_loader_options_search_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./search.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/search.vue?vue&type=script&lang=js&"); - /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_clonedRuleSet_1_0_rules_0_use_node_modules_vue_loader_lib_index_js_vue_loader_options_search_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./src/components/skins.vue?vue&type=script&lang=js&": -/*!***********************************************************!*\ - !*** ./src/components/skins.vue?vue&type=script&lang=js& ***! - \***********************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_1_0_rules_0_use_node_modules_vue_loader_lib_index_js_vue_loader_options_skins_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./skins.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-1[0].rules[0].use!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/skins.vue?vue&type=script&lang=js&"); - /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_clonedRuleSet_1_0_rules_0_use_node_modules_vue_loader_lib_index_js_vue_loader_options_skins_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./src/components/Emoji.vue?vue&type=template&id=534ad946&": -/*!*****************************************************************!*\ - !*** ./src/components/Emoji.vue?vue&type=template&id=534ad946& ***! - \*****************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "render": function() { return /* reexport safe */ _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Emoji_vue_vue_type_template_id_534ad946___WEBPACK_IMPORTED_MODULE_0__.render; }, -/* harmony export */ "staticRenderFns": function() { return /* reexport safe */ _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Emoji_vue_vue_type_template_id_534ad946___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns; } -/* harmony export */ }); -/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Emoji_vue_vue_type_template_id_534ad946___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Emoji.vue?vue&type=template&id=534ad946& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Emoji.vue?vue&type=template&id=534ad946&"); - - -/***/ }), - -/***/ "./src/components/Picker.vue?vue&type=template&id=d16e9084&": -/*!******************************************************************!*\ - !*** ./src/components/Picker.vue?vue&type=template&id=d16e9084& ***! - \******************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "render": function() { return /* reexport safe */ _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Picker_vue_vue_type_template_id_d16e9084___WEBPACK_IMPORTED_MODULE_0__.render; }, -/* harmony export */ "staticRenderFns": function() { return /* reexport safe */ _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Picker_vue_vue_type_template_id_d16e9084___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns; } -/* harmony export */ }); -/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_Picker_vue_vue_type_template_id_d16e9084___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Picker.vue?vue&type=template&id=d16e9084& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Picker.vue?vue&type=template&id=d16e9084&"); - - -/***/ }), - -/***/ "./src/components/anchors.vue?vue&type=template&id=51188104&": -/*!*******************************************************************!*\ - !*** ./src/components/anchors.vue?vue&type=template&id=51188104& ***! - \*******************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "render": function() { return /* reexport safe */ _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_anchors_vue_vue_type_template_id_51188104___WEBPACK_IMPORTED_MODULE_0__.render; }, -/* harmony export */ "staticRenderFns": function() { return /* reexport safe */ _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_anchors_vue_vue_type_template_id_51188104___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns; } -/* harmony export */ }); -/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_anchors_vue_vue_type_template_id_51188104___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./anchors.vue?vue&type=template&id=51188104& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/anchors.vue?vue&type=template&id=51188104&"); - - -/***/ }), - -/***/ "./src/components/category.vue?vue&type=template&id=376cda0e&": -/*!********************************************************************!*\ - !*** ./src/components/category.vue?vue&type=template&id=376cda0e& ***! - \********************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "render": function() { return /* reexport safe */ _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_category_vue_vue_type_template_id_376cda0e___WEBPACK_IMPORTED_MODULE_0__.render; }, -/* harmony export */ "staticRenderFns": function() { return /* reexport safe */ _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_category_vue_vue_type_template_id_376cda0e___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns; } -/* harmony export */ }); -/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_category_vue_vue_type_template_id_376cda0e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./category.vue?vue&type=template&id=376cda0e& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/category.vue?vue&type=template&id=376cda0e&"); - - -/***/ }), - -/***/ "./src/components/preview.vue?vue&type=template&id=35056c30&": -/*!*******************************************************************!*\ - !*** ./src/components/preview.vue?vue&type=template&id=35056c30& ***! - \*******************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "render": function() { return /* reexport safe */ _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_preview_vue_vue_type_template_id_35056c30___WEBPACK_IMPORTED_MODULE_0__.render; }, -/* harmony export */ "staticRenderFns": function() { return /* reexport safe */ _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_preview_vue_vue_type_template_id_35056c30___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns; } -/* harmony export */ }); -/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_preview_vue_vue_type_template_id_35056c30___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./preview.vue?vue&type=template&id=35056c30& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/preview.vue?vue&type=template&id=35056c30&"); - - -/***/ }), - -/***/ "./src/components/search.vue?vue&type=template&id=4ad41bb8&": -/*!******************************************************************!*\ - !*** ./src/components/search.vue?vue&type=template&id=4ad41bb8& ***! - \******************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "render": function() { return /* reexport safe */ _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_search_vue_vue_type_template_id_4ad41bb8___WEBPACK_IMPORTED_MODULE_0__.render; }, -/* harmony export */ "staticRenderFns": function() { return /* reexport safe */ _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_search_vue_vue_type_template_id_4ad41bb8___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns; } -/* harmony export */ }); -/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_search_vue_vue_type_template_id_4ad41bb8___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./search.vue?vue&type=template&id=4ad41bb8& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/search.vue?vue&type=template&id=4ad41bb8&"); - - -/***/ }), - -/***/ "./src/components/skins.vue?vue&type=template&id=1c614894&": -/*!*****************************************************************!*\ - !*** ./src/components/skins.vue?vue&type=template&id=1c614894& ***! - \*****************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "render": function() { return /* reexport safe */ _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_skins_vue_vue_type_template_id_1c614894___WEBPACK_IMPORTED_MODULE_0__.render; }, -/* harmony export */ "staticRenderFns": function() { return /* reexport safe */ _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_skins_vue_vue_type_template_id_1c614894___WEBPACK_IMPORTED_MODULE_0__.staticRenderFns; } -/* harmony export */ }); -/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_skins_vue_vue_type_template_id_1c614894___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./skins.vue?vue&type=template&id=1c614894& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/skins.vue?vue&type=template&id=1c614894&"); - - -/***/ }), - -/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Emoji.vue?vue&type=template&id=534ad946&": -/*!********************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Emoji.vue?vue&type=template&id=534ad946& ***! - \********************************************************************************************************************************************************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "render": function() { return /* binding */ render; }, -/* harmony export */ "staticRenderFns": function() { return /* binding */ staticRenderFns; } -/* harmony export */ }); -var render = function () { - var _vm = this - var _h = _vm.$createElement - var _c = _vm._self._c || _h - return _vm.view.canRender - ? _c( - _vm.tag, - { - tag: "component", - staticClass: "emoji-mart-emoji", - attrs: { - title: _vm.view.title, - "aria-label": _vm.view.ariaLabel, - "data-title": _vm.title, - }, - on: { - mouseenter: _vm.onMouseEnter, - mouseleave: _vm.onMouseLeave, - click: _vm.onClick, - }, - }, - [ - _c("span", { class: _vm.view.cssClass, style: _vm.view.cssStyle }, [ - _vm._v(_vm._s(_vm.view.content)), - ]), - ] - ) - : _vm._e() -} -var staticRenderFns = [] -render._withStripped = true - - - -/***/ }), - -/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Picker.vue?vue&type=template&id=d16e9084&": -/*!*********************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/Picker.vue?vue&type=template&id=d16e9084& ***! - \*********************************************************************************************************************************************************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "render": function() { return /* binding */ render; }, -/* harmony export */ "staticRenderFns": function() { return /* binding */ staticRenderFns; } -/* harmony export */ }); -var render = function () { - var _vm = this - var _h = _vm.$createElement - var _c = _vm._self._c || _h - return _c( - "section", - { staticClass: "emoji-mart emoji-mart-static", style: _vm.customStyles }, - [ - _vm.showCategories - ? _c( - "div", - { staticClass: "emoji-mart-bar emoji-mart-bar-anchors" }, - [ - _c("anchors", { - attrs: { - data: _vm.data, - i18n: _vm.mergedI18n, - color: _vm.color, - categories: _vm.view.allCategories, - "active-category": _vm.view.activeCategory, - }, - on: { click: _vm.onAnchorClick }, - }), - ], - 1 - ) - : _vm._e(), - _vm._v(" "), - _vm._t( - "searchTemplate", - function () { - return [ - _vm.showSearch - ? _c("search", { - ref: "search", - attrs: { - data: _vm.data, - i18n: _vm.mergedI18n, - "auto-focus": _vm.autoFocus, - "on-search": _vm.onSearch, - }, - on: { - search: _vm.onSearch, - arrowLeft: _vm.onArrowLeft, - arrowRight: _vm.onArrowRight, - arrowDown: _vm.onArrowDown, - arrowUp: _vm.onArrowUp, - enter: _vm.onEnter, - }, - }) - : _vm._e(), - ] - }, - { - data: _vm.data, - i18n: _vm.i18n, - autoFocus: _vm.autoFocus, - onSearch: _vm.onSearch, - } - ), - _vm._v(" "), - _c( - "div", - { - ref: "scroll", - staticClass: "emoji-mart-scroll", - attrs: { role: "tabpanel" }, - on: { scroll: _vm.onScroll }, - }, - [ - _c( - "div", - { - ref: "scrollContent", - attrs: { - id: "emoji-mart-list", - role: "listbox", - "aria-expanded": "true", - }, - }, - _vm._l(_vm.view.filteredCategories, function (category, idx) { - return _c("category", { - directives: [ - { - name: "show", - rawName: "v-show", - value: - _vm.infiniteScroll || category == _vm.view.activeCategory, - expression: - "infiniteScroll || category == view.activeCategory", - }, - ], - key: category.id, - ref: "categories_" + idx, - refInFor: true, - attrs: { - data: _vm.data, - i18n: _vm.mergedI18n, - id: category.id, - name: category.name, - emojis: category.emojis, - "emoji-props": _vm.emojiProps, - }, - }) - }), - 1 - ), - ] - ), - _vm._v(" "), - _vm._t( - "previewTemplate", - function () { - return [ - _vm.showPreview - ? _c( - "div", - { staticClass: "emoji-mart-bar emoji-mart-bar-preview" }, - [ - _c("preview", { - attrs: { - data: _vm.data, - title: _vm.title, - emoji: _vm.view.previewEmoji, - "idle-emoji": _vm.idleEmoji, - "show-skin-tones": _vm.showSkinTones, - "emoji-props": _vm.emojiProps, - "skin-props": _vm.skinProps, - "on-skin-change": _vm.onSkinChange, - }, - }), - ], - 1 - ) - : _vm._e(), - ] - }, - { - data: _vm.data, - title: _vm.title, - emoji: _vm.view.previewEmoji, - idleEmoji: _vm.idleEmoji, - showSkinTones: _vm.showSkinTones, - emojiProps: _vm.emojiProps, - skinProps: _vm.skinProps, - onSkinChange: _vm.onSkinChange, - } - ), - ], - 2 - ) -} -var staticRenderFns = [] -render._withStripped = true - - - -/***/ }), - -/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/anchors.vue?vue&type=template&id=51188104&": -/*!**********************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/anchors.vue?vue&type=template&id=51188104& ***! - \**********************************************************************************************************************************************************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "render": function() { return /* binding */ render; }, -/* harmony export */ "staticRenderFns": function() { return /* binding */ staticRenderFns; } -/* harmony export */ }); -var render = function () { - var _vm = this - var _h = _vm.$createElement - var _c = _vm._self._c || _h - return _c( - "div", - { staticClass: "emoji-mart-anchors", attrs: { role: "tablist" } }, - _vm._l(_vm.categories, function (category) { - return _c( - "button", - { - key: category.id, - class: { - "emoji-mart-anchor": true, - "emoji-mart-anchor-selected": category.id == _vm.activeCategory.id, - }, - style: { - color: category.id == _vm.activeCategory.id ? _vm.color : "", - }, - attrs: { - role: "tab", - type: "button", - "aria-label": category.name, - "aria-selected": category.id == _vm.activeCategory.id, - "data-title": _vm.i18n.categories[category.id], - }, - on: { - click: function ($event) { - return _vm.$emit("click", category) - }, - }, - }, - [ - _c("div", { - attrs: { "aria-hidden": "true" }, - domProps: { innerHTML: _vm._s(_vm.svgs[category.id]) }, - }), - _vm._v(" "), - _c("span", { - staticClass: "emoji-mart-anchor-bar", - style: { backgroundColor: _vm.color }, - attrs: { "aria-hidden": "true" }, - }), - ] - ) - }), - 0 - ) -} -var staticRenderFns = [] -render._withStripped = true - - - -/***/ }), - -/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/category.vue?vue&type=template&id=376cda0e&": -/*!***********************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/category.vue?vue&type=template&id=376cda0e& ***! - \***********************************************************************************************************************************************************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "render": function() { return /* binding */ render; }, -/* harmony export */ "staticRenderFns": function() { return /* binding */ staticRenderFns; } -/* harmony export */ }); -var render = function () { - var _vm = this - var _h = _vm.$createElement - var _c = _vm._self._c || _h - return _vm.isVisible && (_vm.isSearch || _vm.hasResults) - ? _c( - "section", - { - class: { - "emoji-mart-category": true, - "emoji-mart-no-results": !_vm.hasResults, - }, - attrs: { "aria-label": _vm.i18n.categories[_vm.id] }, - }, - [ - _c("div", { staticClass: "emoji-mart-category-label" }, [ - _c("h3", { staticClass: "emoji-mart-category-label" }, [ - _vm._v(_vm._s(_vm.i18n.categories[_vm.id])), - ]), - ]), - _vm._v(" "), - _vm._l(_vm.emojiObjects, function (ref) { - var emojiObject = ref.emojiObject - var emojiView = ref.emojiView - return [ - emojiView.canRender - ? _c( - "button", - { - key: emojiObject.id, - staticClass: "emoji-mart-emoji", - class: _vm.activeClass(emojiObject), - attrs: { - "aria-label": emojiView.ariaLabel, - role: "option", - "aria-selected": "false", - "aria-posinset": "1", - "aria-setsize": "1812", - type: "button", - "data-title": emojiObject.short_name, - title: emojiView.title, - }, - on: { - mouseenter: function ($event) { - _vm.emojiProps.onEnter(emojiView.getEmoji()) - }, - mouseleave: function ($event) { - _vm.emojiProps.onLeave(emojiView.getEmoji()) - }, - click: function ($event) { - _vm.emojiProps.onClick(emojiView.getEmoji()) - }, - }, - }, - [ - _c( - "span", - { - class: emojiView.cssClass, - style: emojiView.cssStyle, - }, - [_vm._v(_vm._s(emojiView.content))] - ), - ] - ) - : _vm._e(), - ] - }), - _vm._v(" "), - !_vm.hasResults - ? _c( - "div", - [ - _c("emoji", { - attrs: { - data: _vm.data, - emoji: "sleuth_or_spy", - native: _vm.emojiProps.native, - skin: _vm.emojiProps.skin, - set: _vm.emojiProps.set, - }, - }), - _vm._v(" "), - _c("div", { staticClass: "emoji-mart-no-results-label" }, [ - _vm._v(_vm._s(_vm.i18n.notfound)), - ]), - ], - 1 - ) - : _vm._e(), - ], - 2 - ) - : _vm._e() -} -var staticRenderFns = [] -render._withStripped = true - - - -/***/ }), - -/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/preview.vue?vue&type=template&id=35056c30&": -/*!**********************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/preview.vue?vue&type=template&id=35056c30& ***! - \**********************************************************************************************************************************************************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "render": function() { return /* binding */ render; }, -/* harmony export */ "staticRenderFns": function() { return /* binding */ staticRenderFns; } -/* harmony export */ }); -var render = function () { - var _vm = this - var _h = _vm.$createElement - var _c = _vm._self._c || _h - return _c( - "div", - { staticClass: "emoji-mart-preview" }, - [ - _vm.emoji - ? [ - _c( - "div", - { staticClass: "emoji-mart-preview-emoji" }, - [ - _c("emoji", { - attrs: { - data: _vm.data, - emoji: _vm.emoji, - native: _vm.emojiProps.native, - skin: _vm.emojiProps.skin, - set: _vm.emojiProps.set, - }, - }), - ], - 1 - ), - _vm._v(" "), - _c("div", { staticClass: "emoji-mart-preview-data" }, [ - _c("div", { staticClass: "emoji-mart-preview-name" }, [ - _vm._v(_vm._s(_vm.emoji.name)), - ]), - _vm._v(" "), - _c( - "div", - { staticClass: "emoji-mart-preview-shortnames" }, - _vm._l(_vm.emojiShortNames, function (shortName) { - return _c( - "span", - { - key: shortName, - staticClass: "emoji-mart-preview-shortname", - }, - [_vm._v(":" + _vm._s(shortName) + ":")] - ) - }), - 0 - ), - _vm._v(" "), - _c( - "div", - { staticClass: "emoji-mart-preview-emoticons" }, - _vm._l(_vm.emojiEmoticons, function (emoticon) { - return _c( - "span", - { - key: emoticon, - staticClass: "emoji-mart-preview-emoticon", - }, - [_vm._v(_vm._s(emoticon))] - ) - }), - 0 - ), - ]), - ] - : [ - _c( - "div", - { staticClass: "emoji-mart-preview-emoji" }, - [ - _c("emoji", { - attrs: { - data: _vm.data, - emoji: _vm.idleEmoji, - native: _vm.emojiProps.native, - skin: _vm.emojiProps.skin, - set: _vm.emojiProps.set, - }, - }), - ], - 1 - ), - _vm._v(" "), - _c("div", { staticClass: "emoji-mart-preview-data" }, [ - _c("span", { staticClass: "emoji-mart-title-label" }, [ - _vm._v(_vm._s(_vm.title)), - ]), - ]), - _vm._v(" "), - _vm.showSkinTones - ? _c( - "div", - { staticClass: "emoji-mart-preview-skins" }, - [ - _c("skins", { - attrs: { skin: _vm.skinProps.skin }, - on: { - change: function ($event) { - return _vm.onSkinChange($event) - }, - }, - }), - ], - 1 - ) - : _vm._e(), - ], - ], - 2 - ) -} -var staticRenderFns = [] -render._withStripped = true - - - -/***/ }), - -/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/search.vue?vue&type=template&id=4ad41bb8&": -/*!*********************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/search.vue?vue&type=template&id=4ad41bb8& ***! - \*********************************************************************************************************************************************************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "render": function() { return /* binding */ render; }, -/* harmony export */ "staticRenderFns": function() { return /* binding */ staticRenderFns; } -/* harmony export */ }); -var render = function () { - var _vm = this - var _h = _vm.$createElement - var _c = _vm._self._c || _h - return _c("div", { staticClass: "emoji-mart-search" }, [ - _c("input", { - directives: [ - { - name: "model", - rawName: "v-model", - value: _vm.value, - expression: "value", - }, - ], - attrs: { - type: "text", - placeholder: _vm.i18n.search, - role: "textbox", - "aria-autocomplete": "list", - "aria-owns": "emoji-mart-list", - "aria-label": "Search for an emoji", - "aria-describedby": "emoji-mart-search-description", - }, - domProps: { value: _vm.value }, - on: { - keydown: [ - function ($event) { - if ( - !$event.type.indexOf("key") && - _vm._k($event.keyCode, "left", 37, $event.key, [ - "Left", - "ArrowLeft", - ]) - ) { - return null - } - if ("button" in $event && $event.button !== 0) { - return null - } - return function ($event) { - return _vm.$emit("arrowLeft", $event) - }.apply(null, arguments) - }, - function ($event) { - if ( - !$event.type.indexOf("key") && - _vm._k($event.keyCode, "right", 39, $event.key, [ - "Right", - "ArrowRight", - ]) - ) { - return null - } - if ("button" in $event && $event.button !== 2) { - return null - } - return function () { - return _vm.$emit("arrowRight") - }.apply(null, arguments) - }, - function ($event) { - if ( - !$event.type.indexOf("key") && - _vm._k($event.keyCode, "down", 40, $event.key, [ - "Down", - "ArrowDown", - ]) - ) { - return null - } - return function () { - return _vm.$emit("arrowDown") - }.apply(null, arguments) - }, - function ($event) { - if ( - !$event.type.indexOf("key") && - _vm._k($event.keyCode, "up", 38, $event.key, ["Up", "ArrowUp"]) - ) { - return null - } - return function ($event) { - return _vm.$emit("arrowUp", $event) - }.apply(null, arguments) - }, - function ($event) { - if ( - !$event.type.indexOf("key") && - _vm._k($event.keyCode, "enter", 13, $event.key, "Enter") - ) { - return null - } - return function () { - return _vm.$emit("enter") - }.apply(null, arguments) - }, - ], - input: function ($event) { - if ($event.target.composing) { - return - } - _vm.value = $event.target.value - }, - }, - }), - _vm._v(" "), - _c( - "span", - { - staticClass: "hidden", - attrs: { id: "emoji-picker-search-description" }, - }, - [ - _vm._v( - "Use the left, right, up and down arrow keys to navigate the emoji search\n results." - ), - ] - ), - ]) -} -var staticRenderFns = [] -render._withStripped = true - - - -/***/ }), - -/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/skins.vue?vue&type=template&id=1c614894&": -/*!********************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/skins.vue?vue&type=template&id=1c614894& ***! - \********************************************************************************************************************************************************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "render": function() { return /* binding */ render; }, -/* harmony export */ "staticRenderFns": function() { return /* binding */ staticRenderFns; } -/* harmony export */ }); -var render = function () { - var _vm = this - var _h = _vm.$createElement - var _c = _vm._self._c || _h - return _c( - "div", - { - class: { - "emoji-mart-skin-swatches": true, - "emoji-mart-skin-swatches-opened": _vm.opened, - }, - }, - _vm._l(6, function (skinTone) { - return _c( - "span", - { - key: skinTone, - class: { - "emoji-mart-skin-swatch": true, - "emoji-mart-skin-swatch-selected": _vm.skin == skinTone, - }, - }, - [ - _c("span", { - class: "emoji-mart-skin emoji-mart-skin-tone-" + skinTone, - on: { - click: function ($event) { - return _vm.onClick(skinTone) - }, - }, - }), - ] - ) - }), - 0 - ) -} -var staticRenderFns = [] -render._withStripped = true - - - -/***/ }), - -/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": -/*!********************************************************************!*\ - !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! - \********************************************************************/ -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": function() { return /* binding */ normalizeComponent; } -/* harmony export */ }); -/* globals __VUE_SSR_CONTEXT__ */ - -// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). -// This module is a runtime utility for cleaner component module output and will -// be included in the final webpack user bundle. - -function normalizeComponent ( - scriptExports, - render, - staticRenderFns, - functionalTemplate, - injectStyles, - scopeId, - moduleIdentifier, /* server only */ - shadowMode /* vue-cli only */ -) { - // Vue.extend constructor export interop - var options = typeof scriptExports === 'function' - ? scriptExports.options - : scriptExports - - // render functions - if (render) { - options.render = render - options.staticRenderFns = staticRenderFns - options._compiled = true - } - - // functional template - if (functionalTemplate) { - options.functional = true - } - - // scopedId - if (scopeId) { - options._scopeId = 'data-v-' + scopeId - } - - var hook - if (moduleIdentifier) { // server build - hook = function (context) { - // 2.3 injection - context = - context || // cached call - (this.$vnode && this.$vnode.ssrContext) || // stateful - (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional - // 2.2 with runInNewContext: true - if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { - context = __VUE_SSR_CONTEXT__ - } - // inject component styles - if (injectStyles) { - injectStyles.call(this, context) - } - // register component module identifier for async chunk inferrence - if (context && context._registeredComponents) { - context._registeredComponents.add(moduleIdentifier) - } - } - // used by ssr in case component is cached and beforeCreate - // never gets called - options._ssrRegister = hook - } else if (injectStyles) { - hook = shadowMode - ? function () { - injectStyles.call( - this, - (options.functional ? this.parent : this).$root.$options.shadowRoot - ) - } - : injectStyles - } - - if (hook) { - if (options.functional) { - // for template-only hot-reload because in that case the render fn doesn't - // go through the normalizer - options._injectStyles = hook - // register for functional component in vue file - var originalRender = options.render - options.render = function renderWithStyleInjection (h, context) { - hook.call(context) - return originalRender(h, context) - } - } else { - // inject component registration as beforeCreate hook - var existing = options.beforeCreate - options.beforeCreate = existing - ? [].concat(existing, hook) - : [hook] - } - } - - return { - exports: scriptExports, - options: options - } -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***! - \*********************************************************************/ -/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": function() { return /* binding */ _arrayLikeToArray; } -/* harmony export */ }); -function _arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) len = arr.length; - - for (var i = 0, arr2 = new Array(len); i < len; i++) { - arr2[i] = arr[i]; - } - - return arr2; -} - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js": -/*!**********************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***! - \**********************************************************************/ -/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": function() { return /* binding */ _arrayWithoutHoles; } -/* harmony export */ }); -/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); - -function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(arr); -} - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js": -/*!*******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***! - \*******************************************************************/ -/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": function() { return /* binding */ _classCallCheck; } -/* harmony export */ }); -function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -} - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/createClass.js": -/*!****************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/createClass.js ***! - \****************************************************************/ -/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": function() { return /* binding */ _createClass; } -/* harmony export */ }); -function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } -} - -function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - return Constructor; -} - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js": -/*!*******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/defineProperty.js ***! - \*******************************************************************/ -/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": function() { return /* binding */ _defineProperty; } -/* harmony export */ }); -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; -} - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArray.js": -/*!********************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***! - \********************************************************************/ -/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": function() { return /* binding */ _iterableToArray; } -/* harmony export */ }); -function _iterableToArray(iter) { - if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); -} - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js": -/*!**********************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***! - \**********************************************************************/ -/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": function() { return /* binding */ _nonIterableSpread; } -/* harmony export */ }); -function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js": -/*!**********************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***! - \**********************************************************************/ -/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": function() { return /* binding */ _toConsumableArray; } -/* harmony export */ }); -/* harmony import */ var _arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithoutHoles.js */ "./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js"); -/* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray.js */ "./node_modules/@babel/runtime/helpers/esm/iterableToArray.js"); -/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"); -/* harmony import */ var _nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableSpread.js */ "./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js"); - - - - -function _toConsumableArray(arr) { - return (0,_arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__["default"])(arr) || (0,_iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__["default"])(arr) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__["default"])(arr) || (0,_nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__["default"])(); -} - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/typeof.js": -/*!***********************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/typeof.js ***! - \***********************************************************/ -/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": function() { return /* binding */ _typeof; } -/* harmony export */ }); -function _typeof(obj) { - "@babel/helpers - typeof"; - - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - _typeof = function _typeof(obj) { - return typeof obj; - }; - } else { - _typeof = function _typeof(obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }; - } - - return _typeof(obj); -} - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***! - \*******************************************************************************/ -/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": function() { return /* binding */ _unsupportedIterableToArray; } -/* harmony export */ }); -/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); - -function _unsupportedIterableToArray(o, minLen) { - if (!o) return; - if (typeof o === "string") return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(o, minLen); -} - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ !function() { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function() { return module['default']; } : -/******/ function() { return module; }; -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ }(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ !function() { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = function(exports, definition) { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ }(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ !function() { -/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } -/******/ }(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ !function() { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ }(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be in strict mode. -!function() { -"use strict"; -/*!**********************!*\ - !*** ./src/index.js ***! - \**********************/ -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Picker": function() { return /* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_3__.Picker; }, -/* harmony export */ "Emoji": function() { return /* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_3__.Emoji; }, -/* harmony export */ "Anchors": function() { return /* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_3__.Anchors; }, -/* harmony export */ "Preview": function() { return /* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_3__.Preview; }, -/* harmony export */ "Search": function() { return /* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_3__.Search; }, -/* harmony export */ "Category": function() { return /* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_3__.Category; }, -/* harmony export */ "Skins": function() { return /* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_3__.Skins; }, -/* harmony export */ "EmojiIndex": function() { return /* reexport safe */ _utils_emoji_data__WEBPACK_IMPORTED_MODULE_4__.EmojiIndex; }, -/* harmony export */ "EmojiView": function() { return /* reexport safe */ _utils_emoji_data__WEBPACK_IMPORTED_MODULE_4__.EmojiView; }, -/* harmony export */ "EmojiData": function() { return /* reexport safe */ _utils_emoji_data__WEBPACK_IMPORTED_MODULE_4__.EmojiData; }, -/* harmony export */ "sanitize": function() { return /* reexport safe */ _utils_emoji_data__WEBPACK_IMPORTED_MODULE_4__.sanitize; }, -/* harmony export */ "uncompress": function() { return /* reexport safe */ _utils_data__WEBPACK_IMPORTED_MODULE_1__.uncompress; }, -/* harmony export */ "store": function() { return /* reexport safe */ _utils_store__WEBPACK_IMPORTED_MODULE_0__["default"]; }, -/* harmony export */ "frequently": function() { return /* reexport safe */ _utils_frequently__WEBPACK_IMPORTED_MODULE_2__["default"]; } -/* harmony export */ }); -/* harmony import */ var _utils_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/store */ "./src/utils/store.js"); -/* harmony import */ var _utils_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/data */ "./src/utils/data.js"); -/* harmony import */ var _utils_frequently__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/frequently */ "./src/utils/frequently.js"); -/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components */ "./src/components/index.js"); -/* harmony import */ var _utils_emoji_data__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/emoji-data */ "./src/utils/emoji-data.js"); - - - - - - -}(); -/******/ return __webpack_exports__; -/******/ })() -; -}); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamktbWFydC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsTzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNTQTtBQUNBO0FBRUE7QUFDQSx5Q0FDQSwyREFEQTtBQUVBO0FBQ0Esa0JBREE7QUFFQTtBQUZBO0FBRkEsSUFEQTtBQVFBO0FBQ0EsUUFEQSxrQkFDQTtBQUNBLDBFQUNBLGdCQURBLEVBRUEsU0FGQSxFQUdBLFFBSEEsRUFJQSxXQUpBLEVBS0EsYUFMQSxFQU1BLFlBTkEsRUFPQSxTQVBBO0FBU0EsS0FYQTtBQVlBLGlCQVpBLDJCQVlBO0FBQ0E7QUFDQSxLQWRBO0FBZUEsU0FmQSxtQkFlQTtBQUNBO0FBQ0EsS0FqQkE7QUFrQkEsZUFsQkEseUJBa0JBO0FBQ0E7QUFDQTtBQUNBLE9BRkEsTUFFQTtBQUNBO0FBQ0E7QUFDQTtBQXhCQSxHQVJBO0FBa0NBLFNBbENBLHFCQWtDQSxFQWxDQTtBQW1DQTtBQUNBLFdBREEscUJBQ0E7QUFDQTtBQUNBLEtBSEE7QUFJQSxnQkFKQSwwQkFJQTtBQUNBO0FBQ0EsS0FOQTtBQU9BLGdCQVBBLDBCQU9BO0FBQ0E7QUFDQTtBQVRBO0FBbkNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNxRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBLGtCQURBO0FBRUEsNEJBRkE7QUFHQTtBQUNBLDRCQURBO0FBRUEsNkJBRkE7QUFHQSxnQ0FIQTtBQUlBLDJCQUpBO0FBS0EsOEJBTEE7QUFNQSx5QkFOQTtBQU9BLHdCQVBBO0FBUUEsNkJBUkE7QUFTQSxzQkFUQTtBQVVBLHNCQVZBO0FBV0Esa0JBWEE7QUFZQTtBQVpBO0FBSEE7QUFtQkE7QUFDQSx5Q0FDQSw0REFEQTtBQUVBO0FBQ0Esa0JBREE7QUFFQTtBQUZBO0FBRkEsSUFEQTtBQVFBLE1BUkEsa0JBUUE7QUFDQTtBQUNBLG1IQURBO0FBRUE7QUFGQTtBQUlBLEdBYkE7QUFjQTtBQUNBLGdCQURBLDBCQUNBO0FBQ0E7QUFDQTtBQURBLFNBRUEsaUJBRkE7QUFJQSxLQU5BO0FBT0EsY0FQQSx3QkFPQTtBQUNBO0FBQ0EsMkJBREE7QUFFQSw2QkFGQTtBQUdBLHFCQUhBO0FBSUEsdUNBSkE7QUFLQSxpQ0FMQTtBQU1BLDZDQU5BO0FBT0EsNkRBUEE7QUFRQSw2Q0FSQTtBQVNBLDZDQVRBO0FBVUE7QUFWQTtBQVlBLEtBcEJBO0FBcUJBLGFBckJBLHVCQXFCQTtBQUNBO0FBQ0E7QUFEQTtBQUdBLEtBekJBO0FBMEJBLGtCQTFCQSw0QkEwQkE7QUFDQTtBQUNBLEtBNUJBO0FBNkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFsQ0EsZ0NBa0NBO0FBQ0E7QUFDQSxLQXBDQTtBQXFDQSxjQXJDQSx3QkFxQ0E7QUFDQTtBQUNBLEtBdkNBO0FBd0NBLGFBeENBLHVCQXdDQTtBQUNBO0FBQ0E7QUFDQSxPQUZBLENBRUE7QUFDQSxzQkFDQSw0QkFDQSxVQURBLEdBRUEsdURBSEE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQXBEQSxHQWRBO0FBb0VBO0FBQ0EsWUFEQSxzQkFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FOQTtBQU9BLGlCQVBBLDJCQU9BO0FBQ0E7QUFDQTtBQUNBLEtBVkE7QUFXQSxpQkFYQSx5QkFXQSxRQVhBLEVBV0E7QUFDQTtBQUNBLEtBYkE7QUFjQSxZQWRBLG9CQWNBLEtBZEEsRUFjQTtBQUNBO0FBQ0EsS0FoQkE7QUFpQkEsZ0JBakJBLHdCQWlCQSxLQWpCQSxFQWlCQTtBQUNBO0FBQ0EsS0FuQkE7QUFvQkEsZ0JBcEJBLHdCQW9CQSxLQXBCQSxFQW9CQTtBQUNBO0FBQ0EsS0F0QkE7QUF1QkEsZUF2QkEsdUJBdUJBLE1BdkJBLEVBdUJBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBOUJBO0FBK0JBLGdCQS9CQSwwQkErQkE7QUFDQTtBQUNBLEtBakNBO0FBa0NBLGVBbENBLHlCQWtDQTtBQUNBO0FBQ0EsS0FwQ0E7QUFxQ0EsYUFyQ0EscUJBcUNBLE1BckNBLEVBcUNBO0FBQ0EsNEJBREEsQ0FFQTs7QUFDQTtBQUNBLEtBekNBO0FBMENBLFdBMUNBLG1CQTBDQSxLQTFDQSxFQTBDQTtBQUNBO0FBQ0E7QUFDQSxLQTdDQTtBQThDQSxnQkE5Q0Esd0JBOENBLEtBOUNBLEVBOENBO0FBQ0E7QUFDQTtBQUNBLEtBakRBO0FBa0RBLGdCQWxEQSx3QkFrREEsSUFsREEsRUFrREE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUVBO0FBQ0EsS0F2REE7QUF3REEsd0JBeERBLGdDQXdEQSxLQXhEQSxFQXdEQTtBQUNBOztBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BTEEsQ0FNQTs7O0FBQ0E7QUFDQTtBQWhFQSxHQXBFQTtBQXNJQTtBQUNBLGlFQURBO0FBRUEsbUVBRkE7QUFHQSxpRUFIQTtBQUlBO0FBSkE7QUF0SUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUM3RkE7QUFFQTtBQUNBO0FBQ0E7QUFDQSxrQkFEQTtBQUVBO0FBRkEsS0FEQTtBQUtBO0FBQ0E7QUFEQSxLQUxBO0FBUUE7QUFDQSxpQkFEQTtBQUVBO0FBRkEsS0FSQTtBQVlBO0FBQ0Esa0JBREE7QUFFQSxhQUZBLHNCQUVBO0FBQ0E7QUFDQTtBQUpBO0FBWkEsR0FEQTtBQW9CQSxTQXBCQSxxQkFvQkE7QUFDQTtBQUNBO0FBdEJBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDcUJBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQSxrQkFEQTtBQUVBO0FBRkEsS0FEQTtBQUtBO0FBQ0Esa0JBREE7QUFFQTtBQUZBLEtBTEE7QUFTQTtBQUNBLGtCQURBO0FBRUE7QUFGQSxLQVRBO0FBYUE7QUFDQSxrQkFEQTtBQUVBO0FBRkEsS0FiQTtBQWlCQTtBQUNBO0FBREEsS0FqQkE7QUFvQkE7QUFDQSxrQkFEQTtBQUVBO0FBRkE7QUFwQkEsR0FEQTtBQTBCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBO0FBQ0E7QUFDQTs7QUFDQSxVQUNBLHNEQUNBLG1EQUZBLEVBR0E7QUFDQTtBQUNBOztBQUNBO0FBQ0E7QUFmQSxHQTFCQTtBQTJDQTtBQUNBLGFBREEsdUJBQ0E7QUFDQTtBQUNBLEtBSEE7QUFJQSxZQUpBLHNCQUlBO0FBQ0E7QUFDQSxLQU5BO0FBT0EsY0FQQSx3QkFPQTtBQUNBO0FBQ0EsS0FUQTtBQVVBLGdCQVZBLDBCQVVBO0FBQUE7O0FBQ0E7QUFDQTtBQUNBLHFGQUNBLEtBREEsRUFFQSxxQkFGQSxFQUdBLG9CQUhBLEVBSUEsdUJBSkEsRUFLQSx5QkFMQSxFQU1BLDZCQU5BLEVBT0EsMEJBUEE7QUFTQTtBQUFBO0FBQUE7QUFBQTtBQUNBLE9BWkE7QUFhQTtBQXhCQSxHQTNDQTtBQXFFQTtBQUNBO0FBREE7QUFyRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDSkE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBLGtCQURBO0FBRUE7QUFGQSxLQURBO0FBS0E7QUFDQSxrQkFEQTtBQUVBO0FBRkEsS0FMQTtBQVNBO0FBQ0E7QUFEQSxLQVRBO0FBWUE7QUFDQSw0QkFEQTtBQUVBO0FBRkEsS0FaQTtBQWdCQTtBQUNBLG1CQURBO0FBRUE7QUFGQSxLQWhCQTtBQW9CQTtBQUNBLGtCQURBO0FBRUE7QUFGQSxLQXBCQTtBQXdCQTtBQUNBLGtCQURBO0FBRUE7QUFGQSxLQXhCQTtBQTRCQTtBQUNBLG9CQURBO0FBRUE7QUFGQTtBQTVCQSxHQURBO0FBa0NBO0FBQ0EsYUFEQSx1QkFDQTtBQUNBO0FBQ0E7QUFDQSxPQUZBLE1BRUE7QUFDQTtBQUNBO0FBQ0EsS0FQQTtBQVFBLG1CQVJBLDZCQVFBO0FBQ0E7QUFDQSxLQVZBO0FBV0Esa0JBWEEsNEJBV0E7QUFDQTtBQUNBO0FBYkEsR0FsQ0E7QUFpREE7QUFDQSw2REFEQTtBQUVBO0FBRkE7QUFqREE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzVCQTtBQUNBO0FBQ0E7QUFDQSxrQkFEQTtBQUVBO0FBRkEsS0FEQTtBQUtBO0FBQ0Esa0JBREE7QUFFQTtBQUZBLEtBTEE7QUFTQTtBQUNBLG1CQURBO0FBRUE7QUFGQSxLQVRBO0FBYUE7QUFDQSxvQkFEQTtBQUVBO0FBRkEsS0FiQTtBQWlCQTtBQUNBLG9CQURBO0FBRUE7QUFGQSxLQWpCQTtBQXFCQTtBQUNBLG9CQURBO0FBRUE7QUFGQSxLQXJCQTtBQXlCQTtBQUNBLG9CQURBO0FBRUE7QUFGQSxLQXpCQTtBQTZCQTtBQUNBLG9CQURBO0FBRUE7QUFGQSxLQTdCQTtBQWlDQTtBQUNBLG9CQURBO0FBRUE7QUFGQTtBQWpDQSxHQURBO0FBdUNBLE1BdkNBLGtCQXVDQTtBQUNBO0FBQ0E7QUFEQTtBQUdBLEdBM0NBO0FBNENBO0FBQ0EsY0FEQSx3QkFDQTtBQUNBO0FBQ0E7QUFIQSxHQTVDQTtBQWlEQTtBQUNBLFNBREEsbUJBQ0E7QUFDQTtBQUNBO0FBSEEsR0FqREE7QUFzREE7QUFDQSxTQURBLG1CQUNBO0FBQ0E7QUFDQTtBQUhBLEdBdERBO0FBMkRBLFNBM0RBLHFCQTJEQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBakVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDYkE7QUFDQTtBQUNBO0FBQ0Esa0JBREE7QUFFQTtBQUZBO0FBREEsR0FEQTtBQU9BLE1BUEEsa0JBT0E7QUFDQTtBQUNBO0FBREE7QUFHQSxHQVhBO0FBWUE7QUFDQSxXQURBLG1CQUNBLFFBREEsRUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQVRBO0FBWkE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNaQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7QUNMQSxJQUFNUSxPQUFPLEdBQUdDLE1BQWhCO0FBRUEsK0RBQWVELE9BQU8sQ0FBQ0UsYUFBUixJQUNiLFNBQVNDLG1CQUFULEdBQStCO0FBQzdCLE1BQUlDLFFBQVEsR0FBRyxNQUFmO0FBQ0EsTUFBSUMsU0FBUyxHQUFHLEVBQWhCO0FBQ0EsTUFBSUMsYUFBSjtBQUNBLE1BQUlDLFlBQUo7QUFDQSxNQUFJQyxLQUFLLEdBQUcsQ0FBQyxDQUFiO0FBQ0EsTUFBSUMsTUFBTSxHQUFHQyxTQUFTLENBQUNELE1BQXZCOztBQUNBLE1BQUksQ0FBQ0EsTUFBTCxFQUFhO0FBQ1gsV0FBTyxFQUFQO0FBQ0Q7O0FBQ0QsTUFBSUUsTUFBTSxHQUFHLEVBQWI7O0FBQ0EsU0FBTyxFQUFFSCxLQUFGLEdBQVVDLE1BQWpCLEVBQXlCO0FBQ3ZCLFFBQUlHLFNBQVMsR0FBR0MsTUFBTSxDQUFDSCxTQUFTLENBQUNGLEtBQUQsQ0FBVixDQUF0Qjs7QUFDQSxRQUNFLENBQUNNLFFBQVEsQ0FBQ0YsU0FBRCxDQUFULElBQXdCO0FBQ3hCQSxJQUFBQSxTQUFTLEdBQUcsQ0FEWixJQUNpQjtBQUNqQkEsSUFBQUEsU0FBUyxHQUFHLFFBRlosSUFFd0I7QUFDeEJHLElBQUFBLElBQUksQ0FBQ0MsS0FBTCxDQUFXSixTQUFYLEtBQXlCQSxTQUozQixDQUlxQztBQUpyQyxNQUtFO0FBQ0EsWUFBTUssVUFBVSxDQUFDLHlCQUF5QkwsU0FBMUIsQ0FBaEI7QUFDRDs7QUFDRCxRQUFJQSxTQUFTLElBQUksTUFBakIsRUFBeUI7QUFDdkI7QUFDQVAsTUFBQUEsU0FBUyxDQUFDYSxJQUFWLENBQWVOLFNBQWY7QUFDRCxLQUhELE1BR087QUFDTDtBQUNBO0FBQ0FBLE1BQUFBLFNBQVMsSUFBSSxPQUFiO0FBQ0FOLE1BQUFBLGFBQWEsR0FBRyxDQUFDTSxTQUFTLElBQUksRUFBZCxJQUFvQixNQUFwQztBQUNBTCxNQUFBQSxZQUFZLEdBQUlLLFNBQVMsR0FBRyxLQUFiLEdBQXNCLE1BQXJDO0FBQ0FQLE1BQUFBLFNBQVMsQ0FBQ2EsSUFBVixDQUFlWixhQUFmLEVBQThCQyxZQUE5QjtBQUNEOztBQUNELFFBQUlDLEtBQUssR0FBRyxDQUFSLEtBQWNDLE1BQWQsSUFBd0JKLFNBQVMsQ0FBQ0ksTUFBVixHQUFtQkwsUUFBL0MsRUFBeUQ7QUFDdkRPLE1BQUFBLE1BQU0sSUFBSVYsTUFBTSxDQUFDa0IsWUFBUCxDQUFvQkMsS0FBcEIsQ0FBMEIsSUFBMUIsRUFBZ0NmLFNBQWhDLENBQVY7QUFDQUEsTUFBQUEsU0FBUyxDQUFDSSxNQUFWLEdBQW1CLENBQW5CO0FBQ0Q7QUFDRjs7QUFDRCxTQUFPRSxNQUFQO0FBQ0QsQ0F2Q0g7Ozs7Ozs7Ozs7OztBQ0ZBLElBQU1VLElBQUksR0FBRztBQUNYQyxFQUFBQSxRQUFRLDAwQkFERztBQUdYQyxFQUFBQSxNQUFNLDhqQkFISztBQUtYQyxFQUFBQSxLQUFLLGtSQUxNO0FBT1hDLEVBQUFBLEtBQUssbThCQVBNO0FBU1hDLEVBQUFBLE1BQU0seXZEQVRLO0FBV1hDLEVBQUFBLE9BQU8sNGhDQVhJO0FBYVhDLEVBQUFBLE9BQU8sc2JBYkk7QUFlWEMsRUFBQUEsTUFBTSx5eUZBZks7QUFpQlhDLEVBQUFBLE1BQU0sdWxDQWpCSztBQW1CWEMsRUFBQUEsTUFBTSxvVEFuQks7QUFxQlhDLEVBQUFBLE9BQU87QUFyQkksQ0FBYjtBQXdCQSwrREFBZVgsSUFBZjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3hCQSxJQUFNWSxPQUFPLEdBQUc7QUFDZEMsRUFBQUEsSUFBSSxFQUFFLEdBRFE7QUFFZEMsRUFBQUEsT0FBTyxFQUFFLEdBRks7QUFHZEMsRUFBQUEsYUFBYSxFQUFFLEdBSEQ7QUFJZEMsRUFBQUEsYUFBYSxFQUFFLEdBSkQ7QUFLZEMsRUFBQUEsY0FBYyxFQUFFLEdBTEY7QUFNZEMsRUFBQUEsZUFBZSxFQUFFLEdBTkg7QUFPZEMsRUFBQUEsZ0JBQWdCLEVBQUUsR0FQSjtBQVFkQyxFQUFBQSxRQUFRLEVBQUUsR0FSSTtBQVNkQyxFQUFBQSxLQUFLLEVBQUUsR0FUTztBQVVkQyxFQUFBQSxTQUFTLEVBQUUsR0FWRztBQVdkQyxFQUFBQSxJQUFJLEVBQUUsR0FYUTtBQVlkQyxFQUFBQSxXQUFXLEVBQUUsR0FaQztBQWFkQyxFQUFBQSxRQUFRLEVBQUU7QUFiSSxDQUFoQjs7QUFnQkEsSUFBTUMsV0FBVyxHQUFHLFNBQWRBLFdBQWMsQ0FBQ0MsS0FBRCxFQUFXO0FBQzdCLE1BQU1DLE1BQU0sR0FBRyxFQUFmOztBQUVBLE1BQUlDLFdBQVcsR0FBRyxTQUFkQSxXQUFjLENBQUNDLE9BQUQsRUFBVUMsS0FBVixFQUFvQjtBQUNwQyxRQUFJLENBQUNELE9BQUwsRUFBYztBQUNaO0FBQ0Q7O0FBRUQ7QUFBQyxLQUFDRSxLQUFLLENBQUNDLE9BQU4sQ0FBY0gsT0FBZCxJQUF5QkEsT0FBekIsR0FBbUMsQ0FBQ0EsT0FBRCxDQUFwQyxFQUErQ0ksT0FBL0MsQ0FBdUQsVUFBQ0MsTUFBRCxFQUFZO0FBQ2xFO0FBQUMsT0FBQ0osS0FBSyxHQUFHSSxNQUFNLENBQUNKLEtBQVAsQ0FBYSxXQUFiLENBQUgsR0FBK0IsQ0FBQ0ksTUFBRCxDQUFyQyxFQUErQ0QsT0FBL0MsQ0FBdUQsVUFBQ0UsQ0FBRCxFQUFPO0FBQzdEQSxRQUFBQSxDQUFDLEdBQUdBLENBQUMsQ0FBQ0MsV0FBRixFQUFKOztBQUVBLFlBQUlULE1BQU0sQ0FBQ1UsT0FBUCxDQUFlRixDQUFmLEtBQXFCLENBQUMsQ0FBMUIsRUFBNkI7QUFDM0JSLFVBQUFBLE1BQU0sQ0FBQy9CLElBQVAsQ0FBWXVDLENBQVo7QUFDRDtBQUNGLE9BTkE7QUFPRixLQVJBO0FBU0YsR0FkRDs7QUFnQkFQLEVBQUFBLFdBQVcsQ0FBQ0YsS0FBSyxDQUFDSCxXQUFQLEVBQW9CLElBQXBCLENBQVg7QUFDQUssRUFBQUEsV0FBVyxDQUFDRixLQUFLLENBQUNkLElBQVAsRUFBYSxJQUFiLENBQVg7QUFDQWdCLEVBQUFBLFdBQVcsQ0FBQ0YsS0FBSyxDQUFDUCxRQUFQLEVBQWlCLEtBQWpCLENBQVg7QUFDQVMsRUFBQUEsV0FBVyxDQUFDRixLQUFLLENBQUNMLFNBQVAsRUFBa0IsS0FBbEIsQ0FBWDtBQUVBLFNBQU9NLE1BQU0sQ0FBQ1csSUFBUCxDQUFZLEdBQVosQ0FBUDtBQUNELENBekJEOztBQTJCQSxTQUFTQyxVQUFULENBQW9CQyxNQUFwQixFQUE0QjtBQUMxQjtBQUNBLE1BQUlDLFNBQVMsR0FBR0MsTUFBTSxDQUFDQyxtQkFBUCxDQUEyQkgsTUFBM0IsQ0FBaEIsQ0FGMEIsQ0FJMUI7O0FBSjBCLDZDQUtUQyxTQUxTO0FBQUE7O0FBQUE7QUFLMUIsd0RBQTRCO0FBQUEsVUFBbkI3QixJQUFtQjtBQUMxQixVQUFJZ0MsS0FBSyxHQUFHSixNQUFNLENBQUM1QixJQUFELENBQWxCO0FBQ0E0QixNQUFBQSxNQUFNLENBQUM1QixJQUFELENBQU4sR0FDRWdDLEtBQUssSUFBSSwwRUFBT0EsS0FBUCxNQUFpQixRQUExQixHQUFxQ0wsVUFBVSxDQUFDSyxLQUFELENBQS9DLEdBQXlEQSxLQUQzRDtBQUVEO0FBVHlCO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBVTFCLFNBQU9GLE1BQU0sQ0FBQ0csTUFBUCxDQUFjTCxNQUFkLENBQVA7QUFDRDs7QUFFRCxJQUFNTSxVQUFVLEdBQUcsU0FBYkEsVUFBYSxDQUFDQyxJQUFELEVBQVU7QUFDM0IsTUFBSSxDQUFDQSxJQUFJLENBQUNDLFVBQVYsRUFBc0I7QUFDcEIsV0FBT0QsSUFBUDtBQUNEOztBQUNEQSxFQUFBQSxJQUFJLENBQUNDLFVBQUwsR0FBa0IsS0FBbEI7O0FBRUEsT0FBSyxJQUFJQyxFQUFULElBQWVGLElBQUksQ0FBQ0csTUFBcEIsRUFBNEI7QUFDMUIsUUFBSXhCLEtBQUssR0FBR3FCLElBQUksQ0FBQ0csTUFBTCxDQUFZRCxFQUFaLENBQVo7O0FBRUEsU0FBSyxJQUFJRSxHQUFULElBQWdCeEMsT0FBaEIsRUFBeUI7QUFDdkJlLE1BQUFBLEtBQUssQ0FBQ3lCLEdBQUQsQ0FBTCxHQUFhekIsS0FBSyxDQUFDZixPQUFPLENBQUN3QyxHQUFELENBQVIsQ0FBbEI7QUFDQSxhQUFPekIsS0FBSyxDQUFDZixPQUFPLENBQUN3QyxHQUFELENBQVIsQ0FBWjtBQUNEOztBQUVELFFBQUksQ0FBQ3pCLEtBQUssQ0FBQ0gsV0FBWCxFQUF3QkcsS0FBSyxDQUFDSCxXQUFOLEdBQW9CLEVBQXBCO0FBQ3hCRyxJQUFBQSxLQUFLLENBQUNILFdBQU4sQ0FBa0I2QixPQUFsQixDQUEwQkgsRUFBMUI7QUFFQXZCLElBQUFBLEtBQUssQ0FBQzJCLE9BQU4sR0FBZ0IzQixLQUFLLENBQUNOLEtBQU4sQ0FBWSxDQUFaLENBQWhCO0FBQ0FNLElBQUFBLEtBQUssQ0FBQzRCLE9BQU4sR0FBZ0I1QixLQUFLLENBQUNOLEtBQU4sQ0FBWSxDQUFaLENBQWhCO0FBQ0EsV0FBT00sS0FBSyxDQUFDTixLQUFiO0FBRUEsUUFBSSxDQUFDTSxLQUFLLENBQUNKLElBQVgsRUFBaUJJLEtBQUssQ0FBQ0osSUFBTixHQUFhLEVBQWI7QUFFakIsUUFBSSxDQUFDSSxLQUFLLENBQUNGLFFBQVgsRUFBcUJFLEtBQUssQ0FBQ0YsUUFBTixHQUFpQixDQUFqQjtBQUNyQkUsSUFBQUEsS0FBSyxDQUFDRixRQUFOLEdBQWlCRSxLQUFLLENBQUNGLFFBQU4sQ0FBZStCLE9BQWYsQ0FBdUIsQ0FBdkIsQ0FBakI7QUFFQTdCLElBQUFBLEtBQUssQ0FBQ0MsTUFBTixHQUFlRixXQUFXLENBQUNDLEtBQUQsQ0FBMUI7QUFDRDs7QUFDRHFCLEVBQUFBLElBQUksR0FBR1IsVUFBVSxDQUFDUSxJQUFELENBQWpCO0FBQ0EsU0FBT0EsSUFBUDtBQUNELENBOUJEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDeERBO0FBQ0E7QUFDQTtBQUVBLElBQU1ZLGFBQWEsR0FBRyxFQUF0QjtBQUNBLElBQU1DLFlBQVksR0FBRywyQ0FBckIsRUFDQTs7QUFDQSxJQUFNQyxLQUFLLEdBQUcsQ0FBQyxPQUFELEVBQVUsT0FBVixFQUFtQixPQUFuQixFQUE0QixPQUE1QixFQUFxQyxPQUFyQyxFQUE4QyxPQUE5QyxDQUFkO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ08sSUFBTUMsVUFBYjtBQUNFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Usc0JBQ0VmLElBREYsRUFVRTtBQUFBLG1GQURJLEVBQ0o7QUFBQSxRQVBFZ0Isa0JBT0YsUUFQRUEsa0JBT0Y7QUFBQSxRQU5FQyxPQU1GLFFBTkVBLE9BTUY7QUFBQSxRQUxFQyxPQUtGLFFBTEVBLE9BS0Y7QUFBQSxRQUpFaEUsTUFJRixRQUpFQSxNQUlGO0FBQUEsUUFIRVEsTUFHRixRQUhFQSxNQUdGO0FBQUEsaUNBRkV5RCxZQUVGO0FBQUEsUUFGRUEsWUFFRixrQ0FGaUIsRUFFakI7O0FBQUE7O0FBQ0EsU0FBS0MsS0FBTCxHQUFhckIsaURBQVUsQ0FBQ0MsSUFBRCxDQUF2QixDQURBLENBRUE7O0FBQ0EsU0FBS3FCLGFBQUwsR0FBcUJMLGtCQUFrQixJQUFJLElBQTNDLENBSEEsQ0FJQTs7QUFDQSxTQUFLTSxRQUFMLEdBQWdCTCxPQUFPLElBQUksSUFBM0I7QUFDQSxTQUFLTSxRQUFMLEdBQWdCTCxPQUFPLElBQUksSUFBM0IsQ0FOQSxDQU9BOztBQUNBLFNBQUtNLE9BQUwsR0FBZXRFLE1BQU0sSUFBSSxFQUF6QixDQVJBLENBU0E7QUFDQTs7QUFDQSxTQUFLdUUsT0FBTCxHQUFlL0QsTUFBTSxJQUFJaUQsdURBQUEsQ0FBZVEsWUFBZixDQUF6QjtBQUVBLFNBQUtRLE9BQUwsR0FBZSxFQUFmO0FBQ0EsU0FBS0MsYUFBTCxHQUFxQixFQUFyQjtBQUNBLFNBQUtDLFVBQUwsR0FBa0IsRUFBbEI7QUFFQSxTQUFLQyxXQUFMLEdBQW1CLEVBQW5CO0FBQ0EsU0FBS0MsZUFBTCxHQUF1QjtBQUFFN0IsTUFBQUEsRUFBRSxFQUFFLFFBQU47QUFBZ0JyQyxNQUFBQSxJQUFJLEVBQUUsUUFBdEI7QUFBZ0NzQyxNQUFBQSxNQUFNLEVBQUU7QUFBeEMsS0FBdkI7QUFDQSxTQUFLNkIsZUFBTCxHQUF1QjtBQUFFOUIsTUFBQUEsRUFBRSxFQUFFLFFBQU47QUFBZ0JyQyxNQUFBQSxJQUFJLEVBQUUsUUFBdEI7QUFBZ0NzQyxNQUFBQSxNQUFNLEVBQUU7QUFBeEMsS0FBdkI7QUFDQSxTQUFLOEIsWUFBTCxHQUFvQixFQUFwQjtBQUNBLFNBQUtDLFVBQUw7QUFDQXZDLElBQUFBLE1BQU0sQ0FBQ0csTUFBUCxDQUFjLElBQWQ7QUFDRDs7QUEvQ0g7QUFBQTtBQUFBLFdBaURFLHNCQUFhO0FBQUE7O0FBQ1gsVUFBSXFDLGFBQWEsR0FBRyxLQUFLZixLQUFMLENBQVdnQixVQUEvQjs7QUFFQSxVQUFJLEtBQUtkLFFBQVQsRUFBbUI7QUFDakI7QUFDQWEsUUFBQUEsYUFBYSxHQUFHQSxhQUFhLENBQUNFLE1BQWQsQ0FBcUIsVUFBQ0MsSUFBRCxFQUFVO0FBQzdDLGlCQUFPLEtBQUksQ0FBQ2hCLFFBQUwsQ0FBY2lCLFFBQWQsQ0FBdUJELElBQUksQ0FBQ3BDLEVBQTVCLENBQVA7QUFDRCxTQUZlLENBQWhCLENBRmlCLENBS2pCOztBQUNBaUMsUUFBQUEsYUFBYSxHQUFHQSxhQUFhLENBQUNLLElBQWQsQ0FBbUIsVUFBQ0MsQ0FBRCxFQUFJQyxDQUFKLEVBQVU7QUFDM0MsY0FBTUMsTUFBTSxHQUFHLEtBQUksQ0FBQ3JCLFFBQUwsQ0FBY2hDLE9BQWQsQ0FBc0JtRCxDQUFDLENBQUN2QyxFQUF4QixDQUFmOztBQUNBLGNBQU0wQyxNQUFNLEdBQUcsS0FBSSxDQUFDdEIsUUFBTCxDQUFjaEMsT0FBZCxDQUFzQm9ELENBQUMsQ0FBQ3hDLEVBQXhCLENBQWY7O0FBQ0EsY0FBSXlDLE1BQU0sR0FBR0MsTUFBYixFQUFxQjtBQUNuQixtQkFBTyxDQUFDLENBQVI7QUFDRDs7QUFDRCxjQUFJRCxNQUFNLEdBQUdDLE1BQWIsRUFBcUI7QUFDbkIsbUJBQU8sQ0FBUDtBQUNEOztBQUNELGlCQUFPLENBQVA7QUFDRCxTQVZlLENBQWhCO0FBV0Q7O0FBRURULE1BQUFBLGFBQWEsQ0FBQ2pELE9BQWQsQ0FBc0IsVUFBQzJELFlBQUQsRUFBa0I7QUFDdEMsWUFBSSxDQUFDLEtBQUksQ0FBQ0MsZ0JBQUwsQ0FBc0JELFlBQVksQ0FBQzNDLEVBQW5DLENBQUwsRUFBNkM7QUFDM0M7QUFDRDs7QUFDRCxZQUFJNkMsUUFBUSxHQUFHO0FBQ2I3QyxVQUFBQSxFQUFFLEVBQUUyQyxZQUFZLENBQUMzQyxFQURKO0FBRWJyQyxVQUFBQSxJQUFJLEVBQUVnRixZQUFZLENBQUNoRixJQUZOO0FBR2JzQyxVQUFBQSxNQUFNLEVBQUU7QUFISyxTQUFmO0FBS0EwQyxRQUFBQSxZQUFZLENBQUMxQyxNQUFiLENBQW9CakIsT0FBcEIsQ0FBNEIsVUFBQzhELE9BQUQsRUFBYTtBQUN2QyxjQUFJckUsS0FBSyxHQUFHLEtBQUksQ0FBQ3NFLFFBQUwsQ0FBY0QsT0FBZCxDQUFaOztBQUNBLGNBQUlyRSxLQUFKLEVBQVc7QUFDVG9FLFlBQUFBLFFBQVEsQ0FBQzVDLE1BQVQsQ0FBZ0J0RCxJQUFoQixDQUFxQjhCLEtBQXJCO0FBQ0Q7QUFDRixTQUxEOztBQU1BLFlBQUlvRSxRQUFRLENBQUM1QyxNQUFULENBQWdCL0QsTUFBcEIsRUFBNEI7QUFDMUIsZUFBSSxDQUFDMEYsV0FBTCxDQUFpQmpGLElBQWpCLENBQXNCa0csUUFBdEI7QUFDRDtBQUNGLE9BbEJEOztBQW9CQSxVQUFJLEtBQUtELGdCQUFMLENBQXNCLFFBQXRCLENBQUosRUFBcUM7QUFDbkMsWUFBSSxLQUFLdEIsT0FBTCxDQUFhcEYsTUFBYixHQUFzQixDQUExQixFQUE2QjtBQUFBLHFEQUNILEtBQUtvRixPQURGO0FBQUE7O0FBQUE7QUFDM0IsZ0VBQXNDO0FBQUEsa0JBQTdCMEIsV0FBNkI7QUFDcEMsbUJBQUtDLGNBQUwsQ0FBb0JELFdBQXBCO0FBQ0Q7QUFIMEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUk1Qjs7QUFDRCxZQUFJLEtBQUtsQixlQUFMLENBQXFCN0IsTUFBckIsQ0FBNEIvRCxNQUFoQyxFQUF3QztBQUN0QyxlQUFLMEYsV0FBTCxDQUFpQmpGLElBQWpCLENBQXNCLEtBQUttRixlQUEzQjtBQUNEO0FBQ0Y7O0FBRUQsVUFBSSxLQUFLYyxnQkFBTCxDQUFzQixRQUF0QixDQUFKLEVBQXFDO0FBQ25DLFlBQUksS0FBS3JCLE9BQUwsQ0FBYXJGLE1BQWpCLEVBQXlCO0FBQ3ZCLGVBQUtxRixPQUFMLENBQWEyQixHQUFiLENBQWlCLFVBQUNsRCxFQUFELEVBQVE7QUFBQSx3REFDQyxLQUFJLENBQUM4QixlQUFMLENBQXFCN0IsTUFEdEI7QUFBQTs7QUFBQTtBQUN2QixxRUFBcUQ7QUFBQSxvQkFBNUMrQyxZQUE0Qzs7QUFDbkQsb0JBQUlBLFlBQVcsQ0FBQ2hELEVBQVosS0FBbUJBLEVBQXZCLEVBQTJCO0FBQ3pCLHVCQUFJLENBQUM2QixlQUFMLENBQXFCNUIsTUFBckIsQ0FBNEJ0RCxJQUE1QixDQUFpQ3FHLFlBQWpDOztBQUNBO0FBQ0Q7QUFDRjtBQU5zQjtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQU92QixnQkFBSSxLQUFJLENBQUNHLFFBQUwsQ0FBY25ELEVBQWQsQ0FBSixFQUF1QjtBQUNyQixtQkFBSSxDQUFDNkIsZUFBTCxDQUFxQjVCLE1BQXJCLENBQTRCdEQsSUFBNUIsQ0FBaUMsS0FBSSxDQUFDOEIsS0FBTCxDQUFXdUIsRUFBWCxDQUFqQztBQUNEOztBQUNEO0FBQ0QsV0FYRDtBQVlELFNBZGtDLENBZW5DOzs7QUFDQSxZQUFJLEtBQUs2QixlQUFMLENBQXFCNUIsTUFBckIsQ0FBNEIvRCxNQUFoQyxFQUF3QztBQUN0QyxlQUFLMEYsV0FBTCxDQUFpQnpCLE9BQWpCLENBQXlCLEtBQUswQixlQUE5QjtBQUNEO0FBQ0Y7QUFDRjtBQUVEO0FBQ0Y7QUFDQTs7QUE5SEE7QUFBQTtBQUFBLFdBK0hFLG1CQUFVcEQsS0FBVixFQUFpQjJFLElBQWpCLEVBQXVCO0FBQ3JCO0FBQ0EsVUFBSUMsT0FBTyxHQUFHNUUsS0FBSyxDQUFDNkUsS0FBTixDQUFZM0MsWUFBWixDQUFkOztBQUVBLFVBQUkwQyxPQUFKLEVBQWE7QUFDWDVFLFFBQUFBLEtBQUssR0FBRzRFLE9BQU8sQ0FBQyxDQUFELENBQWY7O0FBQ0EsWUFBSUEsT0FBTyxDQUFDLENBQUQsQ0FBWCxFQUFnQjtBQUNkRCxVQUFBQSxJQUFJLEdBQUdHLFFBQVEsQ0FBQ0YsT0FBTyxDQUFDLENBQUQsQ0FBUixFQUFhLEVBQWIsQ0FBZjtBQUNEO0FBQ0YsT0FUb0IsQ0FXckI7OztBQUNBLFVBQUksS0FBS25DLEtBQUwsQ0FBV3NDLE9BQVgsQ0FBbUJDLGNBQW5CLENBQWtDaEYsS0FBbEMsQ0FBSixFQUE4QztBQUM1Q0EsUUFBQUEsS0FBSyxHQUFHLEtBQUt5QyxLQUFMLENBQVdzQyxPQUFYLENBQW1CL0UsS0FBbkIsQ0FBUjtBQUNELE9BZG9CLENBZ0JyQjs7O0FBQ0EsVUFBSSxLQUFLZ0QsT0FBTCxDQUFhZ0MsY0FBYixDQUE0QmhGLEtBQTVCLENBQUosRUFBd0M7QUFDdEMsWUFBSWlGLFdBQVcsR0FBRyxLQUFLakMsT0FBTCxDQUFhaEQsS0FBYixDQUFsQjs7QUFDQSxZQUFJMkUsSUFBSixFQUFVO0FBQ1IsaUJBQU9NLFdBQVcsQ0FBQ0MsT0FBWixDQUFvQlAsSUFBcEIsQ0FBUDtBQUNEOztBQUNELGVBQU9NLFdBQVA7QUFDRCxPQXZCb0IsQ0F5QnJCOzs7QUFDQSxVQUFJLEtBQUtoQyxhQUFMLENBQW1CK0IsY0FBbkIsQ0FBa0NoRixLQUFsQyxDQUFKLEVBQThDO0FBQzVDLGVBQU8sS0FBS2lELGFBQUwsQ0FBbUJqRCxLQUFuQixDQUFQO0FBQ0Q7O0FBQ0QsYUFBTyxJQUFQO0FBQ0Q7QUE3Skg7QUFBQTtBQUFBLFdBK0pFLHNCQUFhO0FBQ1gsYUFBTyxLQUFLbUQsV0FBWjtBQUNEO0FBaktIO0FBQUE7QUFBQSxXQW1LRSxlQUFNa0IsT0FBTixFQUFlO0FBQ2IsVUFBSSxLQUFLNUIsS0FBTCxDQUFXc0MsT0FBWCxDQUFtQkMsY0FBbkIsQ0FBa0NYLE9BQWxDLENBQUosRUFBZ0Q7QUFDOUNBLFFBQUFBLE9BQU8sR0FBRyxLQUFLNUIsS0FBTCxDQUFXc0MsT0FBWCxDQUFtQlYsT0FBbkIsQ0FBVjtBQUNEOztBQUNELFVBQUlyRSxLQUFLLEdBQUcsS0FBS2dELE9BQUwsQ0FBYXFCLE9BQWIsQ0FBWjs7QUFDQSxVQUFJLENBQUNyRSxLQUFMLEVBQVk7QUFDVixjQUFNLElBQUltRixLQUFKLENBQVUsK0JBQStCZCxPQUF6QyxDQUFOO0FBQ0Q7O0FBQ0QsYUFBT3JFLEtBQVA7QUFDRDtBQTVLSDtBQUFBO0FBQUEsV0E4S0Usc0JBQWE7QUFDWCxVQUFJQSxLQUFLLEdBQUcsS0FBS2dELE9BQUwsQ0FBYWhDLE1BQU0sQ0FBQ29FLElBQVAsQ0FBWSxLQUFLcEMsT0FBakIsRUFBMEIsQ0FBMUIsQ0FBYixDQUFaOztBQUNBLFVBQUksQ0FBQ2hELEtBQUwsRUFBWTtBQUNWLGNBQU0sSUFBSW1GLEtBQUosQ0FBVSx5QkFBVixDQUFOO0FBQ0Q7O0FBQ0QsYUFBT25GLEtBQVA7QUFDRDtBQXBMSDtBQUFBO0FBQUEsV0FzTEUsa0JBQVNxRSxPQUFULEVBQWtCO0FBQ2hCLFVBQUksS0FBSzVCLEtBQUwsQ0FBV3NDLE9BQVgsQ0FBbUJDLGNBQW5CLENBQWtDWCxPQUFsQyxDQUFKLEVBQWdEO0FBQzlDQSxRQUFBQSxPQUFPLEdBQUcsS0FBSzVCLEtBQUwsQ0FBV3NDLE9BQVgsQ0FBbUJWLE9BQW5CLENBQVY7QUFDRDs7QUFDRCxVQUFJLEtBQUtyQixPQUFMLENBQWFxQixPQUFiLENBQUosRUFBMkI7QUFDekIsZUFBTyxJQUFQO0FBQ0Q7O0FBQ0QsYUFBTyxLQUFQO0FBQ0Q7QUE5TEg7QUFBQTtBQUFBLFdBZ01FLHFCQUFZZ0IsWUFBWixFQUEwQjtBQUN4QixVQUFJLEtBQUtwQyxhQUFMLENBQW1CK0IsY0FBbkIsQ0FBa0NLLFlBQWxDLENBQUosRUFBcUQ7QUFDbkQsZUFBTyxLQUFLcEMsYUFBTCxDQUFtQm9DLFlBQW5CLENBQVA7QUFDRDs7QUFDRCxhQUFPLElBQVA7QUFDRDtBQXJNSDtBQUFBO0FBQUEsV0F1TUUsZ0JBQU9uRSxLQUFQLEVBQWNvRSxVQUFkLEVBQTBCO0FBQUE7O0FBQ3hCQSxNQUFBQSxVQUFVLEtBQUtBLFVBQVUsR0FBRyxFQUFsQixDQUFWOztBQUNBLFVBQUksQ0FBQ3BFLEtBQUssQ0FBQ3pELE1BQVgsRUFBbUI7QUFDakIsZUFBTyxJQUFQO0FBQ0Q7O0FBQ0QsVUFBSXlELEtBQUssSUFBSSxHQUFULElBQWdCQSxLQUFLLElBQUksSUFBN0IsRUFBbUM7QUFDakMsZUFBTyxDQUFDLEtBQUtsQixLQUFMLENBQVcsSUFBWCxDQUFELENBQVA7QUFDRDs7QUFFRCxVQUFJdUYsTUFBTSxHQUFHckUsS0FBSyxDQUFDUixXQUFOLEdBQW9CTixLQUFwQixDQUEwQixjQUExQixDQUFiO0FBQ0EsVUFBSW9GLFVBQVUsR0FBRyxFQUFqQjs7QUFFQSxVQUFJRCxNQUFNLENBQUM5SCxNQUFQLEdBQWdCLENBQXBCLEVBQXVCO0FBQ3JCOEgsUUFBQUEsTUFBTSxHQUFHLENBQUNBLE1BQU0sQ0FBQyxDQUFELENBQVAsRUFBWUEsTUFBTSxDQUFDLENBQUQsQ0FBbEIsQ0FBVDtBQUNEOztBQUVEQyxNQUFBQSxVQUFVLEdBQUdELE1BQU0sQ0FDaEJkLEdBRFUsQ0FDTixVQUFDdkQsS0FBRCxFQUFXO0FBQ2Q7QUFDQSxZQUFJTSxNQUFNLEdBQUcsTUFBSSxDQUFDd0IsT0FBbEI7QUFDQSxZQUFJeUMsWUFBWSxHQUFHLE1BQUksQ0FBQ25DLFlBQXhCO0FBQ0EsWUFBSTdGLE1BQU0sR0FBRyxDQUFiOztBQUVBLGFBQUssSUFBSWlJLFNBQVMsR0FBRyxDQUFyQixFQUF3QkEsU0FBUyxHQUFHeEUsS0FBSyxDQUFDekQsTUFBMUMsRUFBa0RpSSxTQUFTLEVBQTNELEVBQStEO0FBQzdELGNBQU1DLElBQUksR0FBR3pFLEtBQUssQ0FBQ3dFLFNBQUQsQ0FBbEI7QUFDQWpJLFVBQUFBLE1BQU07QUFFTmdJLFVBQUFBLFlBQVksQ0FBQ0UsSUFBRCxDQUFaLEtBQXVCRixZQUFZLENBQUNFLElBQUQsQ0FBWixHQUFxQixFQUE1QztBQUNBRixVQUFBQSxZQUFZLEdBQUdBLFlBQVksQ0FBQ0UsSUFBRCxDQUEzQjs7QUFFQSxjQUFJLENBQUNGLFlBQVksQ0FBQ0csT0FBbEIsRUFBMkI7QUFBQTtBQUN6QixrQkFBSUMsTUFBTSxHQUFHLEVBQWI7QUFDQUosY0FBQUEsWUFBWSxDQUFDRyxPQUFiLEdBQXVCLEVBQXZCO0FBQ0FILGNBQUFBLFlBQVksQ0FBQ2pFLE1BQWIsR0FBc0IsRUFBdEI7O0FBRUEsbUJBQUssSUFBSTZDLE9BQVQsSUFBb0I3QyxNQUFwQixFQUE0QjtBQUMxQixvQkFBSXhCLEtBQUssR0FBR3dCLE1BQU0sQ0FBQzZDLE9BQUQsQ0FBbEIsQ0FEMEIsQ0FFMUI7QUFDQTtBQUNBOztBQUNBLG9CQUFJcEUsTUFBTSxHQUFHRCxLQUFLLENBQUN5QyxLQUFOLENBQVl4QyxNQUF6QjtBQUNBLG9CQUFJNkYsR0FBRyxHQUFHNUUsS0FBSyxDQUFDNkUsTUFBTixDQUFhLENBQWIsRUFBZ0J0SSxNQUFoQixDQUFWO0FBQ0Esb0JBQUl1SSxRQUFRLEdBQUcvRixNQUFNLENBQUNVLE9BQVAsQ0FBZW1GLEdBQWYsQ0FBZjs7QUFDQSxvQkFBSUUsUUFBUSxJQUFJLENBQUMsQ0FBakIsRUFBb0I7QUFDbEIsc0JBQUlDLEtBQUssR0FBR0QsUUFBUSxHQUFHLENBQXZCO0FBQ0Esc0JBQUlGLEdBQUcsSUFBSXpCLE9BQVgsRUFBb0I0QixLQUFLLEdBQUcsQ0FBUjtBQUVwQlIsa0JBQUFBLFlBQVksQ0FBQ0csT0FBYixDQUFxQjFILElBQXJCLENBQTBCOEIsS0FBMUI7QUFDQXlGLGtCQUFBQSxZQUFZLENBQUNqRSxNQUFiLENBQW9CNkMsT0FBcEIsSUFBK0JyRSxLQUEvQjtBQUVBNkYsa0JBQUFBLE1BQU0sQ0FBQ3hCLE9BQUQsQ0FBTixHQUFrQjRCLEtBQWxCO0FBQ0Q7QUFDRjs7QUFDRFIsY0FBQUEsWUFBWSxDQUFDRyxPQUFiLENBQXFCL0IsSUFBckIsQ0FBMEIsVUFBQ0MsQ0FBRCxFQUFJQyxDQUFKLEVBQVU7QUFDbEMsb0JBQUltQyxNQUFNLEdBQUdMLE1BQU0sQ0FBQy9CLENBQUMsQ0FBQ3ZDLEVBQUgsQ0FBbkI7QUFBQSxvQkFDRTRFLE1BQU0sR0FBR04sTUFBTSxDQUFDOUIsQ0FBQyxDQUFDeEMsRUFBSCxDQURqQjtBQUVBLHVCQUFPMkUsTUFBTSxHQUFHQyxNQUFoQjtBQUNELGVBSkQ7QUF2QnlCO0FBNEIxQixXQW5DNEQsQ0FxQzdEOzs7QUFDQTNFLFVBQUFBLE1BQU0sR0FBR2lFLFlBQVksQ0FBQ2pFLE1BQXRCO0FBQ0Q7O0FBQ0QsZUFBT2lFLFlBQVksQ0FBQ0csT0FBcEIsQ0E5Q2MsQ0ErQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDRCxPQXBEVSxFQXFEVmxDLE1BckRVLENBcURILFVBQUNJLENBQUQ7QUFBQSxlQUFPQSxDQUFQO0FBQUEsT0FyREcsQ0FBYjtBQXVEQSxVQUFJOEIsT0FBTyxHQUFHLElBQWQ7O0FBQ0EsVUFBSUosVUFBVSxDQUFDL0gsTUFBWCxHQUFvQixDQUF4QixFQUEyQjtBQUN6Qm1JLFFBQUFBLE9BQU8sR0FBRzlELG1EQUFBLENBQWdCLElBQWhCLEVBQXNCMEQsVUFBdEIsQ0FBVjtBQUNELE9BRkQsTUFFTyxJQUFJQSxVQUFVLENBQUMvSCxNQUFmLEVBQXVCO0FBQzVCbUksUUFBQUEsT0FBTyxHQUFHSixVQUFVLENBQUMsQ0FBRCxDQUFwQjtBQUNELE9BRk0sTUFFQTtBQUNMSSxRQUFBQSxPQUFPLEdBQUcsRUFBVjtBQUNEOztBQUNELFVBQUlBLE9BQU8sSUFBSUEsT0FBTyxDQUFDbkksTUFBUixHQUFpQjZILFVBQWhDLEVBQTRDO0FBQzFDTSxRQUFBQSxPQUFPLEdBQUdBLE9BQU8sQ0FBQ1EsS0FBUixDQUFjLENBQWQsRUFBaUJkLFVBQWpCLENBQVY7QUFDRDs7QUFDRCxhQUFPTSxPQUFQO0FBQ0Q7QUExUkg7QUFBQTtBQUFBLFdBNFJFLHdCQUFlckIsV0FBZixFQUE0QjtBQUMxQixVQUFJOEIsU0FBUyxHQUFHckYsTUFBTSxDQUFDc0YsTUFBUCxDQUFjLEVBQWQsRUFBa0IvQixXQUFsQixFQUErQjtBQUM3Q2hELFFBQUFBLEVBQUUsRUFBRWdELFdBQVcsQ0FBQzFFLFdBQVosQ0FBd0IsQ0FBeEIsQ0FEeUM7QUFFN0N0QixRQUFBQSxNQUFNLEVBQUU7QUFGcUMsT0FBL0IsQ0FBaEI7O0FBSUEsVUFBSSxDQUFDOEgsU0FBUyxDQUFDcEcsTUFBZixFQUF1QjtBQUNyQm9HLFFBQUFBLFNBQVMsQ0FBQ3BHLE1BQVYsR0FBbUJGLGtEQUFXLENBQUNzRyxTQUFELENBQTlCO0FBQ0Q7O0FBQ0QsVUFBSXJHLEtBQUssR0FBRyxJQUFJdUcsU0FBSixDQUFjRixTQUFkLENBQVo7QUFDQSxXQUFLckQsT0FBTCxDQUFhaEQsS0FBSyxDQUFDdUIsRUFBbkIsSUFBeUJ2QixLQUF6Qjs7QUFDQSxXQUFLcUQsZUFBTCxDQUFxQjdCLE1BQXJCLENBQTRCdEQsSUFBNUIsQ0FBaUM4QixLQUFqQzs7QUFDQSxhQUFPQSxLQUFQO0FBQ0Q7QUF4U0g7QUFBQTtBQUFBLFdBMFNFLGtCQUFTcUUsT0FBVCxFQUFrQjtBQUFBOztBQUNoQjtBQUNBLFVBQUloRCxJQUFJLEdBQUcsS0FBS29CLEtBQUwsQ0FBV2pCLE1BQVgsQ0FBa0I2QyxPQUFsQixDQUFYOztBQUVBLFVBQUksQ0FBQyxLQUFLbUMsYUFBTCxDQUFtQm5GLElBQW5CLENBQUwsRUFBK0I7QUFDN0IsZUFBTyxLQUFQO0FBQ0Q7O0FBRUQsVUFBSXJCLEtBQUssR0FBRyxJQUFJdUcsU0FBSixDQUFjbEYsSUFBZCxDQUFaO0FBQ0EsV0FBSzJCLE9BQUwsQ0FBYXFCLE9BQWIsSUFBd0JyRSxLQUF4Qjs7QUFDQSxVQUFJQSxLQUFLLENBQUN5RyxNQUFWLEVBQWtCO0FBQ2hCLGFBQUt4RCxhQUFMLENBQW1CakQsS0FBSyxDQUFDeUcsTUFBekIsSUFBbUN6RyxLQUFuQztBQUNEOztBQUNELFVBQUlBLEtBQUssQ0FBQzBHLE1BQVYsRUFBa0I7QUFDaEIsYUFBSyxJQUFJQyxHQUFULElBQWdCM0csS0FBSyxDQUFDMEcsTUFBdEIsRUFBOEI7QUFDNUIsY0FBSS9CLElBQUksR0FBRzNFLEtBQUssQ0FBQzBHLE1BQU4sQ0FBYUMsR0FBYixDQUFYOztBQUNBLGNBQUloQyxJQUFJLENBQUM4QixNQUFULEVBQWlCO0FBQ2YsaUJBQUt4RCxhQUFMLENBQW1CMEIsSUFBSSxDQUFDOEIsTUFBeEIsSUFBa0M5QixJQUFsQztBQUNEO0FBQ0Y7QUFDRjs7QUFFRCxVQUFJM0UsS0FBSyxDQUFDTCxTQUFWLEVBQXFCO0FBQ25CSyxRQUFBQSxLQUFLLENBQUNMLFNBQU4sQ0FBZ0JZLE9BQWhCLENBQXdCLFVBQUNxRyxRQUFELEVBQWM7QUFDcEMsY0FBSSxNQUFJLENBQUMxRCxVQUFMLENBQWdCMEQsUUFBaEIsQ0FBSixFQUErQjtBQUM3QjtBQUNEOztBQUNELGdCQUFJLENBQUMxRCxVQUFMLENBQWdCMEQsUUFBaEIsSUFBNEJ2QyxPQUE1QjtBQUNELFNBTEQ7QUFNRDs7QUFDRCxhQUFPckUsS0FBUDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQWhWQTtBQUFBO0FBQUEsV0FpVkUsMEJBQWlCNkcsV0FBakIsRUFBOEI7QUFDNUIsVUFBSUMsVUFBVSxHQUNaLEtBQUtuRSxRQUFMLElBQWlCLEtBQUtBLFFBQUwsQ0FBY2xGLE1BQS9CLEdBQ0ksS0FBS2tGLFFBQUwsQ0FBY2hDLE9BQWQsQ0FBc0JrRyxXQUF0QixJQUFxQyxDQUFDLENBRDFDLEdBRUksSUFITjtBQUlBLFVBQUlFLFVBQVUsR0FDWixLQUFLbkUsUUFBTCxJQUFpQixLQUFLQSxRQUFMLENBQWNuRixNQUEvQixHQUNJLEtBQUttRixRQUFMLENBQWNqQyxPQUFkLENBQXNCa0csV0FBdEIsSUFBcUMsQ0FBQyxDQUQxQyxHQUVJLEtBSE47O0FBSUEsVUFBSSxDQUFDQyxVQUFELElBQWVDLFVBQW5CLEVBQStCO0FBQzdCLGVBQU8sS0FBUDtBQUNEOztBQUNELGFBQU8sSUFBUDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQXJXQTtBQUFBO0FBQUEsV0FzV0UsdUJBQWMvRyxLQUFkLEVBQXFCO0FBQ25CLFVBQUksS0FBSzBDLGFBQVQsRUFBd0I7QUFDdEIsZUFBTyxLQUFLQSxhQUFMLENBQW1CMUMsS0FBbkIsQ0FBUDtBQUNEOztBQUNELGFBQU8sSUFBUDtBQUNEO0FBM1dIOztBQUFBO0FBQUE7QUE4V08sSUFBTXVHLFNBQWI7QUFDRSxxQkFBWWxGLElBQVosRUFBa0I7QUFBQTs7QUFDaEIsU0FBS29CLEtBQUwsR0FBYXpCLE1BQU0sQ0FBQ3NGLE1BQVAsQ0FBYyxFQUFkLEVBQWtCakYsSUFBbEIsQ0FBYjtBQUNBLFNBQUtxRixNQUFMLEdBQWMsSUFBZDs7QUFDQSxRQUFJLEtBQUtqRSxLQUFMLENBQVd1RSxlQUFmLEVBQWdDO0FBQzlCLFdBQUtOLE1BQUwsR0FBYyxFQUFkOztBQUNBLFdBQUssSUFBSU8sT0FBVCxJQUFvQjlFLEtBQXBCLEVBQTJCO0FBQ3pCLFlBQUkrRSxPQUFPLEdBQUcvRSxLQUFLLENBQUM4RSxPQUFELENBQW5CO0FBQ0EsWUFBSUUsYUFBYSxHQUFHLEtBQUsxRSxLQUFMLENBQVd1RSxlQUFYLENBQTJCRSxPQUEzQixDQUFwQjtBQUNBLFlBQUlFLFFBQVEsR0FBR3BHLE1BQU0sQ0FBQ3NGLE1BQVAsQ0FBYyxFQUFkLEVBQWtCakYsSUFBbEIsQ0FBZjs7QUFDQSxhQUFLLElBQUlnRyxDQUFULElBQWNGLGFBQWQsRUFBNkI7QUFDM0JDLFVBQUFBLFFBQVEsQ0FBQ0MsQ0FBRCxDQUFSLEdBQWNGLGFBQWEsQ0FBQ0UsQ0FBRCxDQUEzQjtBQUNEOztBQUNELGVBQU9ELFFBQVEsQ0FBQ0osZUFBaEI7QUFDQUksUUFBQUEsUUFBUSxDQUFDLFdBQUQsQ0FBUixHQUF3QnRDLFFBQVEsQ0FBQ21DLE9BQUQsQ0FBUixHQUFvQixDQUE1Qzs7QUFDQSxhQUFLUCxNQUFMLENBQVl4SSxJQUFaLENBQWlCLElBQUlxSSxTQUFKLENBQWNhLFFBQWQsQ0FBakI7QUFDRDtBQUNGOztBQUNELFNBQUtFLFVBQUwsR0FBa0JDLFFBQVEsQ0FBQyxLQUFLOUUsS0FBTixDQUExQjs7QUFDQSxTQUFLLElBQUloQixHQUFULElBQWdCLEtBQUs2RixVQUFyQixFQUFpQztBQUMvQixXQUFLN0YsR0FBTCxJQUFZLEtBQUs2RixVQUFMLENBQWdCN0YsR0FBaEIsQ0FBWjtBQUNEOztBQUNELFNBQUs1QixXQUFMLEdBQW1CLEtBQUs0QyxLQUFMLENBQVc1QyxXQUE5QjtBQUNBLFNBQUsySCxVQUFMLEdBQWtCLEtBQUsvRSxLQUFMLENBQVc1QyxXQUFYLENBQXVCLENBQXZCLENBQWxCO0FBQ0FtQixJQUFBQSxNQUFNLENBQUNHLE1BQVAsQ0FBYyxJQUFkO0FBQ0Q7O0FBekJIO0FBQUE7QUFBQSxXQTJCRSxpQkFBUThGLE9BQVIsRUFBaUI7QUFDZixVQUFJQSxPQUFPLElBQUlBLE9BQU8sSUFBSSxRQUF0QixJQUFrQyxLQUFLUCxNQUEzQyxFQUFtRDtBQUNqRCxlQUFPLEtBQUtBLE1BQUwsQ0FBWU8sT0FBTyxHQUFHLENBQXRCLENBQVA7QUFDRDs7QUFDRCxhQUFPLElBQVA7QUFDRDtBQWhDSDtBQUFBO0FBQUEsV0FrQ0UsdUJBQWM7QUFDWixVQUFJUSxlQUFlLEdBQUd4RixhQUFhLEdBQUcsQ0FBdEM7QUFBQSxVQUNFeUYsQ0FBQyxHQUFHLENBQUMsQ0FBRSxNQUFNRCxlQUFQLEdBQTBCLEtBQUtoRixLQUFMLENBQVdkLE9BQXRDLEVBQStDRSxPQUEvQyxDQUF1RCxDQUF2RCxDQURQO0FBQUEsVUFFRThGLENBQUMsR0FBRyxDQUFDLENBQUUsTUFBTUYsZUFBUCxHQUEwQixLQUFLaEYsS0FBTCxDQUFXYixPQUF0QyxFQUErQ0MsT0FBL0MsQ0FBdUQsQ0FBdkQsQ0FGUDtBQUdBLHVCQUFVNkYsQ0FBVixlQUFnQkMsQ0FBaEI7QUFDRDtBQXZDSDtBQUFBO0FBQUEsV0F5Q0UscUJBQVk7QUFDVixhQUFPLENBQUMsS0FBS2xCLE1BQU4sRUFBY21CLE1BQWQsQ0FBcUIsS0FBSy9ILFdBQTFCLEVBQXVDNkQsTUFBdkMsQ0FBOENtRSxPQUE5QyxFQUF1RGpILElBQXZELENBQTRELElBQTVELENBQVA7QUFDRDtBQTNDSDs7QUFBQTtBQUFBO0FBOENPLElBQU1rSCxTQUFiO0FBQ0U7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFLHFCQUFZOUgsS0FBWixFQUFtQjJFLElBQW5CLEVBQXlCb0QsR0FBekIsRUFBOEJ0QixNQUE5QixFQUFzQ3VCLFFBQXRDLEVBQWdEQyxZQUFoRCxFQUE4REMsU0FBOUQsRUFBeUU7QUFBQTs7QUFDdkUsU0FBS0MsTUFBTCxHQUFjbkksS0FBZDtBQUNBLFNBQUtvSSxPQUFMLEdBQWUzQixNQUFmO0FBQ0EsU0FBSzRCLEtBQUwsR0FBYTFELElBQWI7QUFDQSxTQUFLMkQsSUFBTCxHQUFZUCxHQUFaO0FBQ0EsU0FBS1EsU0FBTCxHQUFpQlAsUUFBakI7QUFFQSxTQUFLUSxTQUFMLEdBQWlCLEtBQUtDLFVBQUwsRUFBakI7QUFDQSxTQUFLQyxRQUFMLEdBQWdCLEtBQUtDLFNBQUwsRUFBaEI7QUFDQSxTQUFLQyxRQUFMLEdBQWdCLEtBQUtDLFNBQUwsQ0FBZVgsU0FBZixDQUFoQjtBQUNBLFNBQUtZLE9BQUwsR0FBZSxLQUFLQyxRQUFMLEVBQWY7QUFDQSxTQUFLQyxLQUFMLEdBQWFmLFlBQVksS0FBSyxJQUFqQixHQUF3QmpJLEtBQUssQ0FBQ3dILFVBQTlCLEdBQTJDLElBQXhEO0FBQ0EsU0FBS3lCLFNBQUwsR0FBaUJqSixLQUFLLENBQUNpSixTQUFOLEVBQWpCO0FBRUFqSSxJQUFBQSxNQUFNLENBQUNHLE1BQVAsQ0FBYyxJQUFkO0FBQ0Q7O0FBeEJIO0FBQUE7QUFBQSxXQTBCRSxvQkFBVztBQUNULGFBQU8sS0FBS2dILE1BQUwsQ0FBWWpELE9BQVosQ0FBb0IsS0FBS21ELEtBQXpCLENBQVA7QUFDRDtBQTVCSDtBQUFBO0FBQUEsV0E4QkUsc0JBQWE7QUFDWCxhQUNFLEtBQUthLFNBQUwsTUFBb0IsS0FBS0MsU0FBTCxFQUFwQixJQUF3QyxLQUFLQyxTQUFMLEVBQXhDLElBQTRELEtBQUtiLFNBRG5FO0FBR0Q7QUFsQ0g7QUFBQTtBQUFBLFdBb0NFLHFCQUFZO0FBQ1YsYUFBTyxDQUFDLGVBQWUsS0FBS0QsSUFBckIsRUFBMkIsZ0JBQWdCLEtBQUtlLFVBQUwsRUFBM0MsQ0FBUDtBQUNEO0FBdENIO0FBQUE7QUFBQSxXQXdDRSxtQkFBVW5CLFNBQVYsRUFBcUI7QUFDbkIsVUFBSVUsUUFBUSxHQUFHLEVBQWY7O0FBQ0EsVUFBSSxLQUFLTSxTQUFMLEVBQUosRUFBc0I7QUFDcEJOLFFBQUFBLFFBQVEsR0FBRztBQUNUVSxVQUFBQSxlQUFlLEVBQUUsU0FBUyxLQUFLQyxRQUFMLEdBQWdCOUcsS0FBaEIsQ0FBc0IrRyxRQUEvQixHQUEwQyxHQURsRDtBQUVUQyxVQUFBQSxjQUFjLEVBQUUsTUFGUDtBQUdUQyxVQUFBQSxLQUFLLEVBQUV4QixTQUFTLEdBQUcsSUFIVjtBQUlUeUIsVUFBQUEsTUFBTSxFQUFFekIsU0FBUyxHQUFHO0FBSlgsU0FBWDtBQU1ELE9BUEQsTUFPTyxJQUFJLEtBQUtrQixTQUFMLE1BQW9CLENBQUMsS0FBS0QsU0FBTCxFQUF6QixFQUEyQztBQUNoRFAsUUFBQUEsUUFBUSxHQUFHO0FBQ1RnQixVQUFBQSxrQkFBa0IsRUFBRSxLQUFLTCxRQUFMLEdBQWdCTSxXQUFoQjtBQURYLFNBQVg7QUFHRDs7QUFDRCxVQUFJM0IsU0FBSixFQUFlO0FBQ2IsWUFBSSxLQUFLaUIsU0FBTCxFQUFKLEVBQXNCO0FBQ3BCO0FBQ0FQLFVBQUFBLFFBQVEsR0FBRzVILE1BQU0sQ0FBQ3NGLE1BQVAsQ0FBY3NDLFFBQWQsRUFBd0I7QUFDakM7QUFDQTtBQUNBO0FBQ0FrQixZQUFBQSxRQUFRLEVBQUUvTCxJQUFJLENBQUNnTSxLQUFMLENBQVc3QixTQUFTLEdBQUcsSUFBWixHQUFtQixFQUE5QixJQUFvQyxFQUFwQyxHQUF5QztBQUpsQixXQUF4QixDQUFYO0FBTUQsU0FSRCxNQVFPO0FBQ0w7QUFDQVUsVUFBQUEsUUFBUSxHQUFHNUgsTUFBTSxDQUFDc0YsTUFBUCxDQUFjc0MsUUFBZCxFQUF3QjtBQUNqQ2MsWUFBQUEsS0FBSyxFQUFFeEIsU0FBUyxHQUFHLElBRGM7QUFFakN5QixZQUFBQSxNQUFNLEVBQUV6QixTQUFTLEdBQUc7QUFGYSxXQUF4QixDQUFYO0FBSUQ7QUFDRjs7QUFDRCxhQUFPVSxRQUFQO0FBQ0Q7QUF4RUg7QUFBQTtBQUFBLFdBMEVFLG9CQUFXO0FBQ1QsVUFBSSxLQUFLTSxTQUFMLEVBQUosRUFBc0I7QUFDcEIsZUFBTyxFQUFQO0FBQ0Q7O0FBQ0QsVUFBSSxLQUFLQyxTQUFMLEVBQUosRUFBc0I7QUFDcEIsZUFBTyxLQUFLSSxRQUFMLEdBQWdCOUMsTUFBdkI7QUFDRDs7QUFDRCxVQUFJLEtBQUsyQyxTQUFMLEVBQUosRUFBc0I7QUFDcEIsZUFBTyxFQUFQO0FBQ0Q7O0FBQ0QsYUFBTyxLQUFLYixTQUFMLEdBQWlCLEtBQUtBLFNBQUwsQ0FBZSxLQUFLZ0IsUUFBTCxFQUFmLENBQWpCLEdBQW1ELElBQTFEO0FBQ0Q7QUFyRkg7QUFBQTtBQUFBLFdBdUZFLHFCQUFZO0FBQ1YsYUFBTyxLQUFLbkIsT0FBWjtBQUNEO0FBekZIO0FBQUE7QUFBQSxXQTJGRSxxQkFBWTtBQUNWLGFBQU8sS0FBS21CLFFBQUwsR0FBZ0JoTCxNQUF2QjtBQUNEO0FBN0ZIO0FBQUE7QUFBQSxXQStGRSxxQkFBWTtBQUNWLFVBQUksQ0FBQyxLQUFLZ0wsUUFBTCxHQUFnQjlHLEtBQXJCLEVBQTRCO0FBQzFCO0FBQ0EsZUFBTyxLQUFQO0FBQ0Q7O0FBQ0QsVUFBTXVILFFBQVEsR0FBRyxLQUFLVCxRQUFMLEdBQWdCOUcsS0FBaEIsQ0FBc0IsYUFBYSxLQUFLNkYsSUFBeEMsQ0FBakI7O0FBQ0EsVUFBSTBCLFFBQVEsS0FBS0MsU0FBakIsRUFBNEI7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFPLElBQVA7QUFDRCxPQVpTLENBYVY7QUFDQTtBQUNBOzs7QUFDQSxhQUFPRCxRQUFQO0FBQ0Q7QUFoSEg7QUFBQTtBQUFBLFdBa0hFLHNCQUFhO0FBQ1gsVUFBSSxLQUFLZCxTQUFMLEVBQUosRUFBc0I7QUFDcEIsZUFBTyxRQUFQO0FBQ0Q7O0FBQ0QsVUFBSSxLQUFLQyxTQUFMLEVBQUosRUFBc0I7QUFDcEIsZUFBTyxRQUFQO0FBQ0Q7O0FBQ0QsVUFBSSxLQUFLQyxTQUFMLEVBQUosRUFBc0I7QUFDcEIsZUFBTyxPQUFQO0FBQ0Q7O0FBQ0QsYUFBTyxVQUFQO0FBQ0Q7QUE3SEg7O0FBQUE7QUFBQTtBQWdJTyxTQUFTN0IsUUFBVCxDQUFrQnZILEtBQWxCLEVBQXlCO0FBQzlCLE1BQ0lkLElBREosR0FTTWMsS0FUTixDQUNJZCxJQURKO0FBQUEsTUFFSVcsV0FGSixHQVNNRyxLQVROLENBRUlILFdBRko7QUFBQSxNQUdJcUssU0FISixHQVNNbEssS0FUTixDQUdJa0ssU0FISjtBQUFBLE1BSUlsRCxlQUpKLEdBU01oSCxLQVROLENBSUlnSCxlQUpKO0FBQUEsTUFLSXJILFNBTEosR0FTTUssS0FUTixDQUtJTCxTQUxKO0FBQUEsTUFNSVIsT0FOSixHQVNNYSxLQVROLENBTUliLE9BTko7QUFBQSxNQU9JWixNQVBKLEdBU015QixLQVROLENBT0l6QixNQVBKO0FBQUEsTUFRSWlMLFFBUkosR0FTTXhKLEtBVE4sQ0FRSXdKLFFBUko7QUFBQSxNQVVFakksRUFWRixHQVVPdkIsS0FBSyxDQUFDdUIsRUFBTixJQUFZMUIsV0FBVyxDQUFDLENBQUQsQ0FWOUI7QUFBQSxNQVdFc0ssTUFYRixjQVdlNUksRUFYZjs7QUFhQSxNQUFJaEQsTUFBSixFQUFZO0FBQ1YsV0FBTztBQUNMZ0QsTUFBQUEsRUFBRSxFQUFGQSxFQURLO0FBRUxyQyxNQUFBQSxJQUFJLEVBQUpBLElBRks7QUFHTGlMLE1BQUFBLE1BQU0sRUFBTkEsTUFISztBQUlMeEssTUFBQUEsU0FBUyxFQUFUQSxTQUpLO0FBS0xwQixNQUFBQSxNQUFNLEVBQU5BLE1BTEs7QUFNTGlMLE1BQUFBLFFBQVEsRUFBUkE7QUFOSyxLQUFQO0FBUUQ7O0FBRUQsTUFBSVUsU0FBSixFQUFlO0FBQ2JDLElBQUFBLE1BQU0seUJBQWtCRCxTQUFsQixNQUFOO0FBQ0Q7O0FBRUQsU0FBTztBQUNMM0ksSUFBQUEsRUFBRSxFQUFGQSxFQURLO0FBRUxyQyxJQUFBQSxJQUFJLEVBQUpBLElBRks7QUFHTGlMLElBQUFBLE1BQU0sRUFBTkEsTUFISztBQUlMeEssSUFBQUEsU0FBUyxFQUFUQSxTQUpLO0FBS0xSLElBQUFBLE9BQU8sRUFBRUEsT0FBTyxDQUFDdUIsV0FBUixFQUxKO0FBTUxpRSxJQUFBQSxJQUFJLEVBQUV1RixTQUFTLEtBQUtsRCxlQUFlLEdBQUcsQ0FBSCxHQUFPLElBQTNCLENBTlY7QUFPTFAsSUFBQUEsTUFBTSxFQUFFMUUsdURBQWUsQ0FBQzVDLE9BQUQ7QUFQbEIsR0FBUDtBQVNEOzs7Ozs7Ozs7Ozs7O0FDbHFCRDtBQUVBLElBQU1rTCxRQUFRLEdBQUcsQ0FDZixJQURlLEVBRWYsVUFGZSxFQUdmLGVBSGUsRUFJZixZQUplLEVBS2YsVUFMZSxFQU1mLDhCQU5lLEVBT2YsYUFQZSxFQVFmLEtBUmUsRUFTZixRQVRlLEVBVWYsY0FWZSxFQVdmLFVBWGUsRUFZZixPQVplLEVBYWYsS0FiZSxFQWNmLFlBZGUsRUFlZixPQWZlLEVBZ0JmLFFBaEJlLENBQWpCO0FBbUJBLElBQUlySSxVQUFKLEVBQWdCc0ksV0FBaEI7QUFDQSxJQUFJQyxRQUFRLEdBQUcsRUFBZjs7QUFFQSxTQUFTQyxJQUFULEdBQWdCO0FBQ2RGLEVBQUFBLFdBQVcsR0FBRyxJQUFkO0FBQ0F0SSxFQUFBQSxVQUFVLEdBQUdvSSxrREFBQSxDQUFVLFlBQVYsQ0FBYjtBQUNEOztBQUVELFNBQVNLLEdBQVQsQ0FBYXpLLEtBQWIsRUFBb0I7QUFDbEIsTUFBSSxDQUFDc0ssV0FBTCxFQUFrQkUsSUFBSTtBQUN0QixNQUFNakosRUFBTixHQUFhdkIsS0FBYixDQUFNdUIsRUFBTjtBQUVBUyxFQUFBQSxVQUFVLEtBQUtBLFVBQVUsR0FBR3VJLFFBQWxCLENBQVY7QUFDQXZJLEVBQUFBLFVBQVUsQ0FBQ1QsRUFBRCxDQUFWLEtBQW1CUyxVQUFVLENBQUNULEVBQUQsQ0FBVixHQUFpQixDQUFwQztBQUNBUyxFQUFBQSxVQUFVLENBQUNULEVBQUQsQ0FBVixJQUFrQixDQUFsQjtBQUVBNkksRUFBQUEsa0RBQUEsQ0FBVSxNQUFWLEVBQWtCN0ksRUFBbEI7QUFDQTZJLEVBQUFBLGtEQUFBLENBQVUsWUFBVixFQUF3QnBJLFVBQXhCO0FBQ0Q7O0FBRUQsU0FBU2UsR0FBVCxDQUFhMkgsU0FBYixFQUF3QjtBQUN0QixNQUFJLENBQUNKLFdBQUwsRUFBa0JFLElBQUk7O0FBQ3RCLE1BQUksQ0FBQ3hJLFVBQUwsRUFBaUI7QUFDZnVJLElBQUFBLFFBQVEsR0FBRyxFQUFYO0FBRUEsUUFBTTVNLE1BQU0sR0FBRyxFQUFmO0FBRUEsUUFBSWdOLGFBQWEsR0FBRzVNLElBQUksQ0FBQzZNLEdBQUwsQ0FBU0YsU0FBVCxFQUFvQkwsUUFBUSxDQUFDNU0sTUFBN0IsQ0FBcEI7O0FBQ0EsU0FBSyxJQUFJb04sQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR0YsYUFBcEIsRUFBbUNFLENBQUMsRUFBcEMsRUFBd0M7QUFDdENOLE1BQUFBLFFBQVEsQ0FBQ0YsUUFBUSxDQUFDUSxDQUFELENBQVQsQ0FBUixHQUF3Qi9GLFFBQVEsQ0FBQyxDQUFDNkYsYUFBYSxHQUFHRSxDQUFqQixJQUFzQixDQUF2QixFQUEwQixFQUExQixDQUFSLEdBQXdDLENBQWhFO0FBQ0FsTixNQUFBQSxNQUFNLENBQUNPLElBQVAsQ0FBWW1NLFFBQVEsQ0FBQ1EsQ0FBRCxDQUFwQjtBQUNEOztBQUVELFdBQU9sTixNQUFQO0FBQ0Q7O0FBRUQsTUFBTW1OLFFBQVEsR0FBR0osU0FBakI7QUFDQSxNQUFNSyxjQUFjLEdBQUcsRUFBdkI7O0FBRUEsT0FBSyxJQUFJdEosR0FBVCxJQUFnQk8sVUFBaEIsRUFBNEI7QUFDMUIsUUFBSUEsVUFBVSxDQUFDZ0QsY0FBWCxDQUEwQnZELEdBQTFCLENBQUosRUFBb0M7QUFDbENzSixNQUFBQSxjQUFjLENBQUM3TSxJQUFmLENBQW9CdUQsR0FBcEI7QUFDRDtBQUNGOztBQUVELE1BQU11SixNQUFNLEdBQUdELGNBQWMsQ0FDMUJsSCxJQURZLENBQ1AsVUFBQ0MsQ0FBRCxFQUFJQyxDQUFKO0FBQUEsV0FBVS9CLFVBQVUsQ0FBQzhCLENBQUQsQ0FBVixHQUFnQjlCLFVBQVUsQ0FBQytCLENBQUQsQ0FBcEM7QUFBQSxHQURPLEVBRVprSCxPQUZZLEVBQWY7QUFHQSxNQUFNQyxNQUFNLEdBQUdGLE1BQU0sQ0FBQzVFLEtBQVAsQ0FBYSxDQUFiLEVBQWdCMEUsUUFBaEIsQ0FBZjtBQUVBLE1BQU1LLElBQUksR0FBR2Ysa0RBQUEsQ0FBVSxNQUFWLENBQWI7O0FBRUEsTUFBSWUsSUFBSSxJQUFJRCxNQUFNLENBQUN2SyxPQUFQLENBQWV3SyxJQUFmLEtBQXdCLENBQUMsQ0FBckMsRUFBd0M7QUFDdENELElBQUFBLE1BQU0sQ0FBQ0UsR0FBUDtBQUNBRixJQUFBQSxNQUFNLENBQUNoTixJQUFQLENBQVlpTixJQUFaO0FBQ0Q7O0FBRUQsU0FBT0QsTUFBUDtBQUNEOztBQUVELCtEQUFlO0FBQUVULEVBQUFBLEdBQUcsRUFBSEEsR0FBRjtBQUFPMUgsRUFBQUEsR0FBRyxFQUFIQTtBQUFQLENBQWY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNqRkE7O0FBRUEsU0FBU2hCLGVBQVQsQ0FBeUI1QyxPQUF6QixFQUFrQztBQUNoQyxNQUFJa00sUUFBUSxHQUFHbE0sT0FBTyxDQUFDaUIsS0FBUixDQUFjLEdBQWQsQ0FBZjtBQUFBLE1BQ0VrTCxVQUFVLEdBQUdELFFBQVEsQ0FBQzVHLEdBQVQsQ0FBYSxVQUFDOEcsQ0FBRDtBQUFBLHVCQUFZQSxDQUFaO0FBQUEsR0FBYixDQURmO0FBR0EsU0FBT3BPLDRFQUFBLENBQTBCLElBQTFCLEVBQWdDbU8sVUFBaEMsQ0FBUDtBQUNEOztBQUVELFNBQVNFLElBQVQsQ0FBY0MsR0FBZCxFQUFtQjtBQUNqQixTQUFPQSxHQUFHLENBQUNDLE1BQUosQ0FBVyxVQUFDQyxHQUFELEVBQU1oSSxJQUFOLEVBQWU7QUFDL0IsUUFBSWdJLEdBQUcsQ0FBQ2hMLE9BQUosQ0FBWWdELElBQVosTUFBc0IsQ0FBQyxDQUEzQixFQUE4QjtBQUM1QmdJLE1BQUFBLEdBQUcsQ0FBQ3pOLElBQUosQ0FBU3lGLElBQVQ7QUFDRDs7QUFDRCxXQUFPZ0ksR0FBUDtBQUNELEdBTE0sRUFLSixFQUxJLENBQVA7QUFNRDs7QUFFRCxTQUFTN0osU0FBVCxDQUFtQmdDLENBQW5CLEVBQXNCQyxDQUF0QixFQUF5QjtBQUN2QixNQUFNNkgsS0FBSyxHQUFHSixJQUFJLENBQUMxSCxDQUFELENBQWxCO0FBQ0EsTUFBTStILEtBQUssR0FBR0wsSUFBSSxDQUFDekgsQ0FBRCxDQUFsQjtBQUVBLFNBQU82SCxLQUFLLENBQUNsSSxNQUFOLENBQWEsVUFBQ0MsSUFBRDtBQUFBLFdBQVVrSSxLQUFLLENBQUNsTCxPQUFOLENBQWNnRCxJQUFkLEtBQXVCLENBQWpDO0FBQUEsR0FBYixDQUFQO0FBQ0Q7O0FBRUQsU0FBU21JLFNBQVQsQ0FBbUJoSSxDQUFuQixFQUFzQkMsQ0FBdEIsRUFBeUI7QUFDdkIsTUFBSWdJLENBQUMsR0FBRyxFQUFSOztBQUVBLE9BQUssSUFBSXRLLEdBQVQsSUFBZ0JxQyxDQUFoQixFQUFtQjtBQUNqQixRQUFJa0ksYUFBYSxHQUFHbEksQ0FBQyxDQUFDckMsR0FBRCxDQUFyQjtBQUFBLFFBQ0VQLEtBQUssR0FBRzhLLGFBRFY7O0FBR0EsUUFBSWpJLENBQUMsQ0FBQ2lCLGNBQUYsQ0FBaUJ2RCxHQUFqQixDQUFKLEVBQTJCO0FBQ3pCUCxNQUFBQSxLQUFLLEdBQUc2QyxDQUFDLENBQUN0QyxHQUFELENBQVQ7QUFDRDs7QUFFRCxRQUFJLDBFQUFPUCxLQUFQLE1BQWlCLFFBQXJCLEVBQStCO0FBQzdCQSxNQUFBQSxLQUFLLEdBQUc0SyxTQUFTLENBQUNFLGFBQUQsRUFBZ0I5SyxLQUFoQixDQUFqQjtBQUNEOztBQUVENkssSUFBQUEsQ0FBQyxDQUFDdEssR0FBRCxDQUFELEdBQVNQLEtBQVQ7QUFDRDs7QUFFRCxTQUFPNkssQ0FBUDtBQUNELEVBRUQ7OztBQUNBLFNBQVNFLGdCQUFULEdBQTRCO0FBQzFCLE1BQUksT0FBT0MsUUFBUCxJQUFtQixXQUF2QixFQUFvQyxPQUFPLENBQVA7QUFDcEMsTUFBTUMsR0FBRyxHQUFHRCxRQUFRLENBQUNFLGFBQVQsQ0FBdUIsS0FBdkIsQ0FBWjtBQUVBRCxFQUFBQSxHQUFHLENBQUNFLEtBQUosQ0FBVTNDLEtBQVYsR0FBa0IsT0FBbEI7QUFDQXlDLEVBQUFBLEdBQUcsQ0FBQ0UsS0FBSixDQUFVMUMsTUFBVixHQUFtQixPQUFuQjtBQUNBd0MsRUFBQUEsR0FBRyxDQUFDRSxLQUFKLENBQVVDLFFBQVYsR0FBcUIsUUFBckI7QUFDQUgsRUFBQUEsR0FBRyxDQUFDRSxLQUFKLENBQVVFLFFBQVYsR0FBcUIsVUFBckI7QUFDQUosRUFBQUEsR0FBRyxDQUFDRSxLQUFKLENBQVVHLEdBQVYsR0FBZ0IsU0FBaEI7QUFFQU4sRUFBQUEsUUFBUSxDQUFDTyxJQUFULENBQWNDLFdBQWQsQ0FBMEJQLEdBQTFCO0FBQ0EsTUFBTVEsY0FBYyxHQUFHUixHQUFHLENBQUNTLFdBQUosR0FBa0JULEdBQUcsQ0FBQ1UsV0FBN0M7QUFDQVgsRUFBQUEsUUFBUSxDQUFDTyxJQUFULENBQWNLLFdBQWQsQ0FBMEJYLEdBQTFCO0FBRUEsU0FBT1EsY0FBUDtBQUNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzlETSxJQUFNSSxVQUFiO0FBQ0Usc0JBQVlDLGVBQVosRUFBNkI7QUFBQTs7QUFBQTs7QUFDM0IsU0FBS0MsR0FBTCxHQUFXRCxlQUFYO0FBQ0EsU0FBS3ZLLEtBQUwsR0FBYXVLLGVBQWUsQ0FBQzNMLElBQTdCO0FBQ0EsU0FBSzZMLFFBQUwsR0FBZ0JGLGVBQWUsQ0FBQ0csT0FBaEM7QUFFQSxTQUFLaEssV0FBTCxHQUFtQixFQUFuQjs7QUFDQSw4QkFBS0EsV0FBTCxFQUFpQmpGLElBQWpCLCtHQUF5QixLQUFLdUUsS0FBTCxDQUFXZ0IsVUFBWCxFQUF6Qjs7QUFDQSxTQUFLTixXQUFMLEdBQW1CLEtBQUtBLFdBQUwsQ0FBaUJPLE1BQWpCLENBQXdCLFVBQUNVLFFBQUQsRUFBYztBQUN2RCxhQUFPQSxRQUFRLENBQUM1QyxNQUFULENBQWdCL0QsTUFBaEIsR0FBeUIsQ0FBaEM7QUFDRCxLQUZrQixDQUFuQjtBQUlBLFNBQUswRixXQUFMLENBQWlCLENBQWpCLEVBQW9CaUssS0FBcEIsR0FBNEIsSUFBNUI7QUFDQXBNLElBQUFBLE1BQU0sQ0FBQ0csTUFBUCxDQUFjLEtBQUtnQyxXQUFuQjtBQUVBLFNBQUtrSyxjQUFMLEdBQXNCLEtBQUtsSyxXQUFMLENBQWlCLENBQWpCLENBQXRCO0FBQ0EsU0FBS21LLFlBQUwsR0FBb0IsSUFBcEIsQ0FmMkIsQ0FpQjNCO0FBQ0E7O0FBQ0EsU0FBS0MsWUFBTCxHQUFvQixJQUFwQixDQW5CMkIsQ0FvQjNCO0FBQ0E7QUFDQTs7QUFDQSxTQUFLQyx1QkFBTCxHQUErQixDQUEvQjtBQUNBLFNBQUtDLGVBQUwsR0FBdUIsQ0FBQyxDQUF4QjtBQUNEOztBQTFCSDtBQUFBO0FBQUEsV0E0QkUsb0JBQVc7QUFDVCxVQUFNQyxhQUFhLEdBQUcsS0FBS1QsR0FBTCxDQUFTVSxLQUFULENBQWVDLE1BQXJDO0FBQ0EsVUFBTUMsU0FBUyxHQUFHSCxhQUFhLENBQUNHLFNBQWhDO0FBRUEsVUFBSVIsY0FBYyxHQUFHLEtBQUtTLGtCQUFMLENBQXdCLENBQXhCLENBQXJCOztBQUNBLFdBQUssSUFBSWpELENBQUMsR0FBRyxDQUFSLEVBQVdrRCxDQUFDLEdBQUcsS0FBS0Qsa0JBQUwsQ0FBd0JyUSxNQUE1QyxFQUFvRG9OLENBQUMsR0FBR2tELENBQXhELEVBQTJEbEQsQ0FBQyxFQUE1RCxFQUFnRTtBQUM5RCxZQUFJekcsUUFBUSxHQUFHLEtBQUswSixrQkFBTCxDQUF3QmpELENBQXhCLENBQWY7O0FBQ0EsWUFBSW1ELFNBQVMsR0FBRyxLQUFLZixHQUFMLENBQVNnQixvQkFBVCxDQUE4QnBELENBQTlCLENBQWhCLENBRjhELENBRzlEO0FBQ0E7OztBQUNBLFlBQUltRCxTQUFTLElBQUlBLFNBQVMsQ0FBQ0UsR0FBVixDQUFjQyxTQUFkLEdBQTBCLEVBQTFCLEdBQStCTixTQUFoRCxFQUEyRDtBQUN6RDtBQUNEOztBQUNEUixRQUFBQSxjQUFjLEdBQUdqSixRQUFqQjtBQUNEOztBQUNELFdBQUtpSixjQUFMLEdBQXNCQSxjQUF0QjtBQUNEO0FBNUNIO0FBQUE7QUFBQSxTQThDRSxlQUFvQjtBQUNsQixhQUFPLEtBQUtsSyxXQUFaO0FBQ0Q7QUFoREg7QUFBQTtBQUFBLFNBa0RFLGVBQXlCO0FBQ3ZCLFVBQUksS0FBS21LLFlBQVQsRUFBdUI7QUFDckIsZUFBTyxDQUNMO0FBQ0UvTCxVQUFBQSxFQUFFLEVBQUUsUUFETjtBQUVFckMsVUFBQUEsSUFBSSxFQUFFLFFBRlI7QUFHRXNDLFVBQUFBLE1BQU0sRUFBRSxLQUFLOEw7QUFIZixTQURLLENBQVA7QUFPRDs7QUFDRCxhQUFPLEtBQUtuSyxXQUFMLENBQWlCTyxNQUFqQixDQUF3QixVQUFDVSxRQUFELEVBQWM7QUFDM0MsWUFBSWdLLFNBQVMsR0FBR2hLLFFBQVEsQ0FBQzVDLE1BQVQsQ0FBZ0IvRCxNQUFoQixHQUF5QixDQUF6QztBQUNBLGVBQU8yUSxTQUFQO0FBQ0QsT0FITSxDQUFQO0FBSUQ7QUFoRUg7QUFBQTtBQUFBLFNBa0VFLGVBQTJCO0FBQ3pCLFVBQUksS0FBS1osdUJBQUwsSUFBZ0MsQ0FBcEMsRUFBdUM7QUFDckMsZUFBTyxLQUFLTSxrQkFBTCxDQUF3QixLQUFLTix1QkFBN0IsQ0FBUDtBQUNEOztBQUNELGFBQU8sSUFBUDtBQUNEO0FBdkVIO0FBQUE7QUFBQSxXQXlFRSx1QkFBY3BKLFFBQWQsRUFBd0I7QUFBQTs7QUFDdEIsVUFBSSxLQUFLa0osWUFBVCxFQUF1QjtBQUNyQjtBQUNBO0FBQ0Q7O0FBQ0QsVUFBSXpDLENBQUMsR0FBRyxLQUFLaUQsa0JBQUwsQ0FBd0JuTixPQUF4QixDQUFnQ3lELFFBQWhDLENBQVI7O0FBQ0EsVUFBSTRKLFNBQVMsR0FBRyxLQUFLZixHQUFMLENBQVNnQixvQkFBVCxDQUE4QnBELENBQTlCLENBQWhCOztBQUNBLFVBQUl3RCxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQW9CLEdBQU07QUFDNUIsWUFBSUwsU0FBSixFQUFlO0FBQ2IsY0FBSXhCLEdBQUcsR0FBR3dCLFNBQVMsQ0FBQ0UsR0FBVixDQUFjQyxTQUF4Qjs7QUFDQSxjQUFJL0osUUFBUSxDQUFDZ0osS0FBYixFQUFvQjtBQUNsQlosWUFBQUEsR0FBRyxHQUFHLENBQU47QUFDRDs7QUFDRCxlQUFJLENBQUNTLEdBQUwsQ0FBU1UsS0FBVCxDQUFlQyxNQUFmLENBQXNCQyxTQUF0QixHQUFrQ3JCLEdBQWxDO0FBQ0Q7QUFDRixPQVJEOztBQVNBLFVBQUksS0FBS1MsR0FBTCxDQUFTcUIsY0FBYixFQUE2QjtBQUMzQkQsUUFBQUEsaUJBQWlCO0FBQ2xCLE9BRkQsTUFFTztBQUNMLGFBQUtoQixjQUFMLEdBQXNCLEtBQUtTLGtCQUFMLENBQXdCakQsQ0FBeEIsQ0FBdEI7QUFDRDtBQUNGO0FBOUZIO0FBQUE7QUFBQSxXQWdHRSxrQkFBUzNKLEtBQVQsRUFBZ0I7QUFDZCxVQUFJTSxNQUFNLEdBQUcsS0FBS2lCLEtBQUwsQ0FBV3hDLE1BQVgsQ0FBa0JpQixLQUFsQixFQUF5QixLQUFLcU4sZ0JBQTlCLENBQWI7O0FBQ0EsV0FBS2pCLFlBQUwsR0FBb0I5TCxNQUFwQjtBQUVBLFdBQUtnTSx1QkFBTCxHQUErQixDQUEvQjtBQUNBLFdBQUtDLGVBQUwsR0FBdUIsQ0FBdkI7QUFDQSxXQUFLZSxrQkFBTDtBQUNEO0FBdkdIO0FBQUE7QUFBQSxXQXlHRSxzQkFBYXhPLEtBQWIsRUFBb0I7QUFDbEIsV0FBS3VOLFlBQUwsR0FBb0J2TixLQUFwQjtBQUNBLFdBQUt5TixlQUFMLEdBQXVCLENBQUMsQ0FBeEI7QUFDQSxXQUFLRCx1QkFBTCxHQUErQixDQUFDLENBQWhDO0FBQ0Q7QUE3R0g7QUFBQTtBQUFBLFdBK0dFLHNCQUFheE4sS0FBYixFQUFvQjtBQUNsQixXQUFLdU4sWUFBTCxHQUFvQixJQUFwQjtBQUNEO0FBakhIO0FBQUE7QUFBQSxXQW1IRSx1QkFBYztBQUNaO0FBQ0EsVUFBSSxLQUFLRSxlQUFMLEdBQXVCLENBQTNCLEVBQThCO0FBQzVCLGFBQUtBLGVBQUwsSUFBd0IsQ0FBeEI7QUFDRCxPQUZELE1BRU87QUFDTDtBQUNBLGFBQUtELHVCQUFMLElBQWdDLENBQWhDOztBQUNBLFlBQUksS0FBS0EsdUJBQUwsR0FBK0IsQ0FBbkMsRUFBc0M7QUFDcEM7QUFDQSxlQUFLQSx1QkFBTCxHQUErQixDQUEvQjtBQUNELFNBSEQsTUFHTztBQUNMO0FBQ0E7QUFDQSxlQUFLQyxlQUFMLEdBQ0UsS0FBS0ssa0JBQUwsQ0FBd0IsS0FBS04sdUJBQTdCLEVBQXNEaE0sTUFBdEQsQ0FBNkQvRCxNQUE3RCxHQUNBLENBRkY7QUFHRDtBQUNGOztBQUNELFdBQUsrUSxrQkFBTDtBQUNEO0FBdElIO0FBQUE7QUFBQSxXQXdJRSx3QkFBZTtBQUNiLFVBQ0UsS0FBS2YsZUFBTCxHQUNBLEtBQUtnQixZQUFMLENBQWtCLEtBQUtqQix1QkFBdkIsSUFBa0QsQ0FGcEQsRUFHRTtBQUNBO0FBQ0EsYUFBS0MsZUFBTCxJQUF3QixDQUF4QjtBQUNELE9BTkQsTUFNTztBQUNMO0FBQ0EsYUFBS0QsdUJBQUwsSUFBZ0MsQ0FBaEM7O0FBQ0EsWUFBSSxLQUFLQSx1QkFBTCxJQUFnQyxLQUFLTSxrQkFBTCxDQUF3QnJRLE1BQTVELEVBQW9FO0FBQ2xFO0FBQ0EsZUFBSytQLHVCQUFMLEdBQStCLEtBQUtNLGtCQUFMLENBQXdCclEsTUFBeEIsR0FBaUMsQ0FBaEU7QUFDRCxTQUhELE1BR087QUFDTDtBQUNBO0FBQ0EsZUFBS2dRLGVBQUwsR0FBdUIsQ0FBdkI7QUFDRDtBQUNGOztBQUNELFdBQUtlLGtCQUFMO0FBQ0Q7QUE1Skg7QUFBQTtBQUFBLFdBOEpFLHVCQUFjO0FBQ1o7QUFDQTtBQUNBLFVBQUksS0FBS2YsZUFBTCxJQUF3QixDQUFDLENBQTdCLEVBQWdDO0FBQzlCLGVBQU8sS0FBS2lCLFlBQUwsRUFBUDtBQUNEOztBQUVELFVBQU1DLGNBQWMsR0FDbEIsS0FBS2Isa0JBQUwsQ0FBd0IsS0FBS04sdUJBQTdCLEVBQXNEaE0sTUFBdEQsQ0FBNkQvRCxNQUQvRCxDQVBZLENBVVo7QUFDQTs7QUFDQSxVQUFJbVIsSUFBSSxHQUFHLEtBQUsxQixRQUFoQixDQVpZLENBY1o7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLFVBQUksS0FBS08sZUFBTCxHQUF1Qm1CLElBQXZCLEdBQThCRCxjQUFsQyxFQUFrRDtBQUNoRDtBQUNBQyxRQUFBQSxJQUFJLEdBQUdELGNBQWMsR0FBRyxLQUFLekIsUUFBN0I7QUFDRDs7QUFDRCxXQUFLLElBQUlyQyxDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFHK0QsSUFBcEIsRUFBMEIvRCxDQUFDLEVBQTNCLEVBQStCO0FBQzdCLGFBQUs2RCxZQUFMO0FBQ0Q7O0FBQ0QsV0FBS0Ysa0JBQUw7QUFDRDtBQTlNSDtBQUFBO0FBQUEsV0FnTkUscUJBQVk7QUFDVjtBQUNBO0FBQ0EsVUFBSUksSUFBSSxHQUFHLEtBQUsxQixRQUFoQjs7QUFFQSxVQUFJLEtBQUtPLGVBQUwsR0FBdUJtQixJQUF2QixHQUE4QixDQUFsQyxFQUFxQztBQUNuQyxZQUFJLEtBQUtwQix1QkFBTCxHQUErQixDQUFuQyxFQUFzQztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQU1xQix5QkFBeUIsR0FDN0IsS0FBS2Ysa0JBQUwsQ0FBd0IsS0FBS04sdUJBQUwsR0FBK0IsQ0FBdkQsRUFBMERoTSxNQUExRCxDQUNHL0QsTUFESCxHQUNZLEtBQUt5UCxRQUZuQixDQWRvQyxDQWlCcEM7O0FBQ0EwQixVQUFBQSxJQUFJLEdBQUdDLHlCQUFQO0FBQ0QsU0FuQkQsTUFtQk87QUFDTEQsVUFBQUEsSUFBSSxHQUFHLENBQVA7QUFDRDtBQUNGOztBQUNELFdBQUssSUFBSS9ELENBQUMsR0FBRyxDQUFiLEVBQWdCQSxDQUFDLEdBQUcrRCxJQUFwQixFQUEwQi9ELENBQUMsRUFBM0IsRUFBK0I7QUFDN0IsYUFBS2lFLFdBQUw7QUFDRDs7QUFDRCxXQUFLTixrQkFBTDtBQUNEO0FBalBIO0FBQUE7QUFBQSxXQW1QRSw4QkFBcUI7QUFBQTs7QUFDbkIsV0FBS2pCLFlBQUwsR0FDRSxLQUFLTyxrQkFBTCxDQUF3QixLQUFLTix1QkFBN0IsRUFBc0RoTSxNQUF0RCxDQUNFLEtBQUtpTSxlQURQLENBREY7O0FBS0EsV0FBS1IsR0FBTCxDQUFTOEIsU0FBVCxDQUFtQixZQUFNO0FBQ3ZCO0FBQ0EsWUFBTUMsUUFBUSxHQUFHLE1BQUksQ0FBQy9CLEdBQUwsQ0FBU1UsS0FBVCxDQUFlQyxNQUFoQyxDQUZ1QixDQUl2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLFlBQU1xQixPQUFPLEdBQUdELFFBQVEsQ0FBQ0UsYUFBVCxDQUF1Qiw0QkFBdkIsQ0FBaEI7QUFFQSxZQUFNQyxZQUFZLEdBQUdILFFBQVEsQ0FBQ2IsU0FBVCxHQUFxQmEsUUFBUSxDQUFDSSxZQUFuRDs7QUFDQSxZQUNFSCxPQUFPLElBQ1BBLE9BQU8sQ0FBQ2QsU0FBUixHQUFvQmMsT0FBTyxDQUFDRyxZQUE1QixHQUNFRCxZQUFZLEdBQUdILFFBQVEsQ0FBQ25CLFNBSDVCLEVBSUU7QUFDQW1CLFVBQUFBLFFBQVEsQ0FBQ25CLFNBQVQsSUFBc0JvQixPQUFPLENBQUNHLFlBQTlCO0FBQ0Q7O0FBQ0QsWUFBSUgsT0FBTyxJQUFJQSxPQUFPLENBQUNkLFNBQVIsR0FBb0JhLFFBQVEsQ0FBQ25CLFNBQTVDLEVBQXVEO0FBQ3JEbUIsVUFBQUEsUUFBUSxDQUFDbkIsU0FBVCxJQUFzQm9CLE9BQU8sQ0FBQ0csWUFBOUI7QUFDRDtBQUNGLE9BdEJEO0FBdUJEO0FBaFJIO0FBQUE7QUFBQSxXQWtSRSxzQkFBYUMsV0FBYixFQUEwQjtBQUN4QixVQUFJQSxXQUFXLElBQUksQ0FBQyxDQUFwQixFQUF1QjtBQUNyQixlQUFPLENBQVA7QUFDRDs7QUFDRCxhQUFPLEtBQUt2QixrQkFBTCxDQUF3QnVCLFdBQXhCLEVBQXFDN04sTUFBckMsQ0FBNEMvRCxNQUFuRDtBQUNEO0FBdlJIOztBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBQSxJQUFNNlIsVUFBVSxHQUFHO0FBQ2pCN0ksRUFBQUEsTUFBTSxFQUFFO0FBQ044SSxJQUFBQSxJQUFJLEVBQUUxSCxPQURBO0FBRU5yTCxJQUFBQSxPQUFPLEVBQUU7QUFGSCxHQURTO0FBS2pCZ1QsRUFBQUEsT0FBTyxFQUFFO0FBQ1BELElBQUFBLElBQUksRUFBRTFILE9BREM7QUFFUHJMLElBQUFBLE9BQU8sRUFBRTtBQUZGLEdBTFE7QUFTakJ3TCxFQUFBQSxRQUFRLEVBQUU7QUFDUnVILElBQUFBLElBQUksRUFBRUU7QUFERSxHQVRPO0FBWWpCOUssRUFBQUEsSUFBSSxFQUFFO0FBQ0o0SyxJQUFBQSxJQUFJLEVBQUUxUixNQURGO0FBRUpyQixJQUFBQSxPQUFPLEVBQUU7QUFGTCxHQVpXO0FBZ0JqQnVMLEVBQUFBLEdBQUcsRUFBRTtBQUNId0gsSUFBQUEsSUFBSSxFQUFFdFMsTUFESDtBQUVIVCxJQUFBQSxPQUFPLEVBQUU7QUFGTixHQWhCWTtBQW9CakJ3RCxFQUFBQSxLQUFLLEVBQUU7QUFDTHVQLElBQUFBLElBQUksRUFBRSxDQUFDdFMsTUFBRCxFQUFTK0QsTUFBVCxDQUREO0FBRUwwTyxJQUFBQSxRQUFRLEVBQUU7QUFGTCxHQXBCVTtBQXdCakJDLEVBQUFBLElBQUksRUFBRTtBQUNKSixJQUFBQSxJQUFJLEVBQUUxUixNQURGO0FBRUpyQixJQUFBQSxPQUFPLEVBQUU7QUFGTCxHQXhCVztBQTRCakJvVCxFQUFBQSxHQUFHLEVBQUU7QUFDSEwsSUFBQUEsSUFBSSxFQUFFdFMsTUFESDtBQUVIVCxJQUFBQSxPQUFPLEVBQUU7QUFGTjtBQTVCWSxDQUFuQjtBQWtDQSxJQUFNcVQsV0FBVyxHQUFHO0FBQ2xCMUMsRUFBQUEsT0FBTyxFQUFFO0FBQ1BvQyxJQUFBQSxJQUFJLEVBQUUxUixNQURDO0FBRVByQixJQUFBQSxPQUFPLEVBQUU7QUFGRixHQURTO0FBS2xCK1IsRUFBQUEsZ0JBQWdCLEVBQUU7QUFDaEJnQixJQUFBQSxJQUFJLEVBQUUxUixNQURVO0FBRWhCckIsSUFBQUEsT0FBTyxFQUFFO0FBRk8sR0FMQTtBQVNsQjBMLEVBQUFBLFNBQVMsRUFBRTtBQUNUcUgsSUFBQUEsSUFBSSxFQUFFMVIsTUFERztBQUVUckIsSUFBQUEsT0FBTyxFQUFFO0FBRkEsR0FUTztBQWFsQndNLEVBQUFBLEtBQUssRUFBRTtBQUNMdUcsSUFBQUEsSUFBSSxFQUFFdFMsTUFERDtBQUVMVCxJQUFBQSxPQUFPLEVBQUU7QUFGSixHQWJXO0FBaUJsQndELEVBQUFBLEtBQUssRUFBRTtBQUNMdVAsSUFBQUEsSUFBSSxFQUFFdFMsTUFERDtBQUVMVCxJQUFBQSxPQUFPLEVBQUU7QUFGSixHQWpCVztBQXFCbEJzVCxFQUFBQSxLQUFLLEVBQUU7QUFDTFAsSUFBQUEsSUFBSSxFQUFFdFMsTUFERDtBQUVMVCxJQUFBQSxPQUFPLEVBQUU7QUFGSixHQXJCVztBQXlCbEJ1TCxFQUFBQSxHQUFHLEVBQUU7QUFDSHdILElBQUFBLElBQUksRUFBRXRTLE1BREg7QUFFSFQsSUFBQUEsT0FBTyxFQUFFO0FBRk4sR0F6QmE7QUE2QmxCbUksRUFBQUEsSUFBSSxFQUFFO0FBQ0o0SyxJQUFBQSxJQUFJLEVBQUUxUixNQURGO0FBRUpyQixJQUFBQSxPQUFPLEVBQUU7QUFGTCxHQTdCWTtBQWlDbEJ1VCxFQUFBQSxXQUFXLEVBQUU7QUFDWFIsSUFBQUEsSUFBSSxFQUFFMVIsTUFESztBQUVYckIsSUFBQUEsT0FBTyxFQUFFO0FBRkUsR0FqQ0s7QUFxQ2xCaUssRUFBQUEsTUFBTSxFQUFFO0FBQ044SSxJQUFBQSxJQUFJLEVBQUUxSCxPQURBO0FBRU5yTCxJQUFBQSxPQUFPLEVBQUU7QUFGSCxHQXJDVTtBQXlDbEJ5TCxFQUFBQSxZQUFZLEVBQUU7QUFDWnNILElBQUFBLElBQUksRUFBRTFILE9BRE07QUFFWnJMLElBQUFBLE9BQU8sRUFBRTtBQUZHLEdBekNJO0FBNkNsQndULEVBQUFBLFNBQVMsRUFBRTtBQUNUVCxJQUFBQSxJQUFJLEVBQUUxSCxPQURHO0FBRVRyTCxJQUFBQSxPQUFPLEVBQUU7QUFGQSxHQTdDTztBQWlEbEJ5VCxFQUFBQSxJQUFJLEVBQUU7QUFDSlYsSUFBQUEsSUFBSSxFQUFFdk8sTUFERjtBQUVKeEUsSUFBQUEsT0FGSSxzQkFFTTtBQUNSLGFBQU8sRUFBUDtBQUNEO0FBSkcsR0FqRFk7QUF1RGxCMFQsRUFBQUEsV0FBVyxFQUFFO0FBQ1hYLElBQUFBLElBQUksRUFBRTFILE9BREs7QUFFWHJMLElBQUFBLE9BQU8sRUFBRTtBQUZFLEdBdkRLO0FBMkRsQjJULEVBQUFBLFVBQVUsRUFBRTtBQUNWWixJQUFBQSxJQUFJLEVBQUUxSCxPQURJO0FBRVZyTCxJQUFBQSxPQUFPLEVBQUU7QUFGQyxHQTNETTtBQStEbEI0VCxFQUFBQSxjQUFjLEVBQUU7QUFDZGIsSUFBQUEsSUFBSSxFQUFFMUgsT0FEUTtBQUVkckwsSUFBQUEsT0FBTyxFQUFFO0FBRkssR0EvREU7QUFtRWxCNlQsRUFBQUEsYUFBYSxFQUFFO0FBQ2JkLElBQUFBLElBQUksRUFBRTFILE9BRE87QUFFYnJMLElBQUFBLE9BQU8sRUFBRTtBQUZJLEdBbkVHO0FBdUVsQjhSLEVBQUFBLGNBQWMsRUFBRTtBQUNkaUIsSUFBQUEsSUFBSSxFQUFFMUgsT0FEUTtBQUVkckwsSUFBQUEsT0FBTyxFQUFFO0FBRkssR0F2RUU7QUEyRWxCOFQsRUFBQUEsWUFBWSxFQUFFO0FBQ1pmLElBQUFBLElBQUksRUFBRXZPLE1BRE07QUFFWnhFLElBQUFBLE9BRlksc0JBRUY7QUFDUixhQUFPLEVBQVA7QUFDRDtBQUpXO0FBM0VJLENBQXBCOzs7Ozs7Ozs7Ozs7O0FDbENBLElBQUkrVCxTQUFTLEdBQUcsWUFBaEI7QUFFQSxJQUFNQyxLQUFLLEdBQUdDLElBQWQ7QUFFQSxJQUFJQyx1QkFBdUIsR0FDekIsT0FBT0MsTUFBUCxLQUFrQixXQUFsQixJQUFpQyxrQkFBa0JBLE1BRHJEO0FBR0EsSUFBSUMsTUFBSjtBQUNBLElBQUlDLE1BQUo7O0FBRUEsU0FBU0MsV0FBVCxDQUFxQkMsUUFBckIsRUFBK0I7QUFDN0JBLEVBQUFBLFFBQVEsS0FBS0EsUUFBUSxHQUFHLEVBQWhCLENBQVI7QUFFQUgsRUFBQUEsTUFBTSxHQUFHRyxRQUFRLENBQUNILE1BQWxCO0FBQ0FDLEVBQUFBLE1BQU0sR0FBR0UsUUFBUSxDQUFDRixNQUFsQjtBQUNEOztBQUVELFNBQVNHLFlBQVQsQ0FBc0JDLFNBQXRCLEVBQWlDO0FBQy9CVixFQUFBQSxTQUFTLEdBQUdVLFNBQVo7QUFDRDs7QUFFRCxTQUFTQyxNQUFULENBQWdCQyxLQUFoQixFQUF1QjtBQUNyQixPQUFLLElBQUkxUCxHQUFULElBQWdCMFAsS0FBaEIsRUFBdUI7QUFDckIsUUFBSWpRLEtBQUssR0FBR2lRLEtBQUssQ0FBQzFQLEdBQUQsQ0FBakI7QUFDQXNHLElBQUFBLEdBQUcsQ0FBQ3RHLEdBQUQsRUFBTVAsS0FBTixDQUFIO0FBQ0Q7QUFDRjs7QUFFRCxTQUFTNkcsR0FBVCxDQUFhdEcsR0FBYixFQUFrQlAsS0FBbEIsRUFBeUI7QUFDdkIsTUFBSTJQLE1BQUosRUFBWTtBQUNWQSxJQUFBQSxNQUFNLENBQUNwUCxHQUFELEVBQU1QLEtBQU4sQ0FBTjtBQUNELEdBRkQsTUFFTztBQUNMLFFBQUksQ0FBQ3dQLHVCQUFMLEVBQThCOztBQUM5QixRQUFJO0FBQ0ZDLE1BQUFBLE1BQU0sQ0FBQ1MsWUFBUCxXQUF1QmIsU0FBdkIsY0FBb0M5TyxHQUFwQyxLQUE2QytPLEtBQUssQ0FBQ2EsU0FBTixDQUFnQm5RLEtBQWhCLENBQTdDO0FBQ0QsS0FGRCxDQUVFLE9BQU9vUSxDQUFQLEVBQVUsQ0FBRTtBQUNmO0FBQ0Y7O0FBRUQsU0FBU3ZPLEdBQVQsQ0FBYXRCLEdBQWIsRUFBa0I7QUFDaEIsTUFBSW1QLE1BQUosRUFBWTtBQUNWLFdBQU9BLE1BQU0sQ0FBQ25QLEdBQUQsQ0FBYjtBQUNELEdBRkQsTUFFTztBQUNMLFFBQUksQ0FBQ2lQLHVCQUFMLEVBQThCOztBQUM5QixRQUFJO0FBQ0YsVUFBSXhQLEtBQUssR0FBR3lQLE1BQU0sQ0FBQ1MsWUFBUCxXQUF1QmIsU0FBdkIsY0FBb0M5TyxHQUFwQyxFQUFaO0FBQ0QsS0FGRCxDQUVFLE9BQU82UCxDQUFQLEVBQVU7QUFDVjtBQUNEOztBQUVELFFBQUlwUSxLQUFKLEVBQVc7QUFDVCxhQUFPdVAsSUFBSSxDQUFDYyxLQUFMLENBQVdyUSxLQUFYLENBQVA7QUFDRDtBQUNGO0FBQ0Y7O0FBRUQsK0RBQWU7QUFBRWdRLEVBQUFBLE1BQU0sRUFBTkEsTUFBRjtBQUFVbkosRUFBQUEsR0FBRyxFQUFIQSxHQUFWO0FBQWVoRixFQUFBQSxHQUFHLEVBQUhBLEdBQWY7QUFBb0JpTyxFQUFBQSxZQUFZLEVBQVpBLFlBQXBCO0FBQWtDRixFQUFBQSxXQUFXLEVBQVhBO0FBQWxDLENBQWY7Ozs7Ozs7Ozs7QUN4REE7QUFDQTtBQUVBO0FBRUE7QUFFQSxJQUFJVSxpQkFBaUIsR0FBRyxPQUFPYixNQUFQLEtBQWtCLFdBQTFDO0FBRUFhLGlCQUFpQixJQUNkLFlBQVk7QUFDWCxNQUFJQyxRQUFRLEdBQUcsQ0FBZjtBQUNBLE1BQUlDLE9BQU8sR0FBRyxDQUFDLElBQUQsRUFBTyxLQUFQLEVBQWMsUUFBZCxFQUF3QixHQUF4QixDQUFkOztBQUVBLE9BQUssSUFBSWhLLENBQUMsR0FBRyxDQUFiLEVBQWdCQSxDQUFDLEdBQUdnSyxPQUFPLENBQUNqVSxNQUFaLElBQXNCLENBQUNrVCxNQUFNLENBQUNnQixxQkFBOUMsRUFBcUUsRUFBRWpLLENBQXZFLEVBQTBFO0FBQ3hFaUosSUFBQUEsTUFBTSxDQUFDZ0IscUJBQVAsR0FDRWhCLE1BQU0sQ0FBQ2UsT0FBTyxDQUFDaEssQ0FBRCxDQUFQLEdBQWEsdUJBQWQsQ0FEUjtBQUVBaUosSUFBQUEsTUFBTSxDQUFDaUIsb0JBQVAsR0FDRWpCLE1BQU0sQ0FBQ2UsT0FBTyxDQUFDaEssQ0FBRCxDQUFQLEdBQWEsc0JBQWQsQ0FBTixJQUNBaUosTUFBTSxDQUFDZSxPQUFPLENBQUNoSyxDQUFELENBQVAsR0FBYSw2QkFBZCxDQUZSO0FBR0Q7O0FBRUQsTUFBSSxDQUFDaUosTUFBTSxDQUFDZ0IscUJBQVosRUFDRWhCLE1BQU0sQ0FBQ2dCLHFCQUFQLEdBQStCLFVBQVVFLFFBQVYsRUFBb0JDLE9BQXBCLEVBQTZCO0FBQzFELFFBQUlDLFFBQVEsR0FBRyxJQUFJQyxJQUFKLEdBQVdDLE9BQVgsRUFBZjtBQUNBLFFBQUlDLFVBQVUsR0FBR25VLElBQUksQ0FBQ29VLEdBQUwsQ0FBUyxDQUFULEVBQVksTUFBTUosUUFBUSxHQUFHTixRQUFqQixDQUFaLENBQWpCO0FBQ0EsUUFBSWxRLEVBQUUsR0FBR29QLE1BQU0sQ0FBQ3lCLFVBQVAsQ0FBa0IsWUFBWTtBQUNyQ1AsTUFBQUEsUUFBUSxDQUFDRSxRQUFRLEdBQUdHLFVBQVosQ0FBUjtBQUNELEtBRlEsRUFFTkEsVUFGTSxDQUFUO0FBSUFULElBQUFBLFFBQVEsR0FBR00sUUFBUSxHQUFHRyxVQUF0QjtBQUNBLFdBQU8zUSxFQUFQO0FBQ0QsR0FURDtBQVdGLE1BQUksQ0FBQ29QLE1BQU0sQ0FBQ2lCLG9CQUFaLEVBQ0VqQixNQUFNLENBQUNpQixvQkFBUCxHQUE4QixVQUFVclEsRUFBVixFQUFjO0FBQzFDOFEsSUFBQUEsWUFBWSxDQUFDOVEsRUFBRCxDQUFaO0FBQ0QsR0FGRDtBQUdILENBNUJELEVBREY7Ozs7Ozs7Ozs7Ozs7OztBQ1RvRjtBQUMzQjtBQUNMOzs7QUFHcEQ7QUFDQSxDQUEwRjtBQUMxRixnQkFBZ0IsdUdBQVU7QUFDMUIsRUFBRSwyRUFBTTtBQUNSLEVBQUUsNkVBQU07QUFDUixFQUFFLHNGQUFlO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUksS0FBVSxFQUFFLFlBaUJmO0FBQ0Q7QUFDQSwrREFBZTs7Ozs7Ozs7Ozs7Ozs7O0FDdENzRTtBQUMzQjtBQUNMOzs7QUFHckQ7QUFDQSxDQUEwRjtBQUMxRixnQkFBZ0IsdUdBQVU7QUFDMUIsRUFBRSw0RUFBTTtBQUNSLEVBQUUsOEVBQU07QUFDUixFQUFFLHVGQUFlO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUksS0FBVSxFQUFFLFlBaUJmO0FBQ0Q7QUFDQSwrREFBZTs7Ozs7Ozs7Ozs7Ozs7O0FDdEN1RTtBQUMzQjtBQUNMOzs7QUFHdEQ7QUFDQSxDQUEwRjtBQUMxRixnQkFBZ0IsdUdBQVU7QUFDMUIsRUFBRSw2RUFBTTtBQUNSLEVBQUUsK0VBQU07QUFDUixFQUFFLHdGQUFlO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUksS0FBVSxFQUFFLFlBaUJmO0FBQ0Q7QUFDQSwrREFBZTs7Ozs7Ozs7Ozs7Ozs7O0FDdEN3RTtBQUMzQjtBQUNMOzs7QUFHdkQ7QUFDQSxDQUEwRjtBQUMxRixnQkFBZ0IsdUdBQVU7QUFDMUIsRUFBRSw4RUFBTTtBQUNSLEVBQUUsZ0ZBQU07QUFDUixFQUFFLHlGQUFlO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUksS0FBVSxFQUFFLFlBaUJmO0FBQ0Q7QUFDQSwrREFBZTs7Ozs7Ozs7Ozs7Ozs7O0FDdEN1RTtBQUMzQjtBQUNMOzs7QUFHdEQ7QUFDQSxDQUEwRjtBQUMxRixnQkFBZ0IsdUdBQVU7QUFDMUIsRUFBRSw2RUFBTTtBQUNSLEVBQUUsK0VBQU07QUFDUixFQUFFLHdGQUFlO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUksS0FBVSxFQUFFLFlBaUJmO0FBQ0Q7QUFDQSwrREFBZTs7Ozs7Ozs7Ozs7Ozs7O0FDdENzRTtBQUMzQjtBQUNMOzs7QUFHckQ7QUFDQSxDQUEwRjtBQUMxRixnQkFBZ0IsdUdBQVU7QUFDMUIsRUFBRSw0RUFBTTtBQUNSLEVBQUUsOEVBQU07QUFDUixFQUFFLHVGQUFlO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUksS0FBVSxFQUFFLFlBaUJmO0FBQ0Q7QUFDQSwrREFBZTs7Ozs7Ozs7Ozs7Ozs7O0FDdENxRTtBQUMzQjtBQUNMOzs7QUFHcEQ7QUFDQSxDQUEwRjtBQUMxRixnQkFBZ0IsdUdBQVU7QUFDMUIsRUFBRSwyRUFBTTtBQUNSLEVBQUUsNkVBQU07QUFDUixFQUFFLHNGQUFlO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUksS0FBVSxFQUFFLFlBaUJmO0FBQ0Q7QUFDQSwrREFBZTs7Ozs7Ozs7Ozs7OztBQ3RDdUwsQ0FBQywrREFBZSx3TUFBRyxFQUFDOzs7Ozs7Ozs7Ozs7O0FDQW5CLENBQUMsK0RBQWUseU1BQUcsRUFBQzs7Ozs7Ozs7Ozs7OztBQ0FuQixDQUFDLCtEQUFlLDBNQUFHLEVBQUM7Ozs7Ozs7Ozs7Ozs7QUNBbkIsQ0FBQywrREFBZSwyTUFBRyxFQUFDOzs7Ozs7Ozs7Ozs7O0FDQXJCLENBQUMsK0RBQWUsME1BQUcsRUFBQzs7Ozs7Ozs7Ozs7OztBQ0FyQixDQUFDLCtEQUFlLHlNQUFHLEVBQUM7Ozs7Ozs7Ozs7Ozs7QUNBckIsQ0FBQywrREFBZSx3TUFBRyxFQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QVFBMU47QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWCxTQUFTO0FBQ1Q7QUFDQSx1QkFBdUIsb0RBQW9EO0FBQzNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzlCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLHNFQUFzRTtBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsc0RBQXNEO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakIsc0JBQXNCLDBCQUEwQjtBQUNoRCxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQixpQkFBaUI7QUFDakI7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixrQkFBa0I7QUFDckMsZ0JBQWdCLHNCQUFzQjtBQUN0QyxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCLGVBQWU7QUFDZixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHNEQUFzRDtBQUMxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3pKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLDRDQUE0QyxtQkFBbUI7QUFDckU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsV0FBVztBQUNYLFNBQVM7QUFDVDtBQUNBO0FBQ0EscUJBQXFCLHVCQUF1QjtBQUM1Qyx3QkFBd0IsMENBQTBDO0FBQ2xFLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsNEJBQTRCO0FBQ2pELHFCQUFxQix1QkFBdUI7QUFDNUMsV0FBVztBQUNYO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDbERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1gsbUJBQW1CLDJDQUEyQztBQUM5RCxTQUFTO0FBQ1Q7QUFDQSxzQkFBc0IsMENBQTBDO0FBQ2hFLHVCQUF1QiwwQ0FBMEM7QUFDakU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekIsdUJBQXVCO0FBQ3ZCLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQixtQkFBbUI7QUFDbkI7QUFDQSw4QkFBOEIsNENBQTRDO0FBQzFFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNoR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxtQ0FBbUM7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQix5Q0FBeUM7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQixpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0Isd0NBQXdDO0FBQ2hFLDBCQUEwQix3Q0FBd0M7QUFDbEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiw4Q0FBOEM7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiw2Q0FBNkM7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IseUNBQXlDO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkIsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHdDQUF3QztBQUNoRSwyQkFBMkIsdUNBQXVDO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHlDQUF5QztBQUM3RDtBQUNBO0FBQ0EsK0JBQStCLDBCQUEwQjtBQUN6RDtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekIsdUJBQXVCO0FBQ3ZCLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNoSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsa0NBQWtDO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxrQkFBa0Isa0JBQWtCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQix1Q0FBdUM7QUFDeEQsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN6SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1gsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZixhQUFhO0FBQ2IsV0FBVztBQUNYO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN0Q0E7O0FBRUE7QUFDQTtBQUNBOztBQUVlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7QUNqR2U7QUFDZjs7QUFFQSx5Q0FBeUMsU0FBUztBQUNsRDtBQUNBOztBQUVBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7QUNScUQ7QUFDdEM7QUFDZixpQ0FBaUMsZ0VBQWdCO0FBQ2pEOzs7Ozs7Ozs7Ozs7Ozs7QUNIZTtBQUNmO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7QUNKQTtBQUNBLGtCQUFrQixrQkFBa0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7O0FDZGU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTs7Ozs7Ozs7Ozs7Ozs7O0FDYmU7QUFDZjtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7QUNGZTtBQUNmO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNGdUQ7QUFDSjtBQUNzQjtBQUNsQjtBQUN4QztBQUNmLFNBQVMsaUVBQWlCLFNBQVMsK0RBQWUsU0FBUywwRUFBMEIsU0FBUyxpRUFBaUI7QUFDL0c7Ozs7Ozs7Ozs7Ozs7OztBQ05lO0FBQ2Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7Ozs7Ozs7Ozs7Ozs7OztBQ2RxRDtBQUN0QztBQUNmO0FBQ0Esb0NBQW9DLGdFQUFnQjtBQUNwRDtBQUNBO0FBQ0E7QUFDQSxzRkFBc0YsZ0VBQWdCO0FBQ3RHOzs7Ozs7VUNSQTtVQUNBOztVQUVBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBOztVQUVBO1VBQ0E7O1VBRUE7VUFDQTtVQUNBOzs7OztXQ3RCQTtXQUNBO1dBQ0E7V0FDQSxlQUFlLDRCQUE0QjtXQUMzQyxlQUFlO1dBQ2YsaUNBQWlDLFdBQVc7V0FDNUM7V0FDQTs7Ozs7V0NQQTtXQUNBO1dBQ0E7V0FDQTtXQUNBLHlDQUF5Qyx3Q0FBd0M7V0FDakY7V0FDQTtXQUNBOzs7OztXQ1BBLDhDQUE4Qzs7Ozs7V0NBOUM7V0FDQTtXQUNBO1dBQ0EsdURBQXVELGlCQUFpQjtXQUN4RTtXQUNBLGdEQUFnRCxhQUFhO1dBQzdEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNOQTtBQUNBO0FBQ0E7QUFFQTtBQVVBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvc3JjL2NvbXBvbmVudHMvRW1vamkudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC9zcmMvY29tcG9uZW50cy9QaWNrZXIudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC9zcmMvY29tcG9uZW50cy9hbmNob3JzLnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvc3JjL2NvbXBvbmVudHMvY2F0ZWdvcnkudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC9zcmMvY29tcG9uZW50cy9wcmV2aWV3LnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvc3JjL2NvbXBvbmVudHMvc2VhcmNoLnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvc3JjL2NvbXBvbmVudHMvc2tpbnMudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL2luZGV4LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9wb2x5ZmlsbHMvc3RyaW5nRnJvbUNvZGVQb2ludC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvc3Zncy9pbmRleC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdXRpbHMvZGF0YS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdXRpbHMvZW1vamktZGF0YS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdXRpbHMvZnJlcXVlbnRseS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdXRpbHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL3V0aWxzL3BpY2tlci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdXRpbHMvc2hhcmVkLXByb3BzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy91dGlscy9zdG9yZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdmVuZG9yL3JhZi1wb2x5ZmlsbC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9FbW9qaS52dWUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvUGlja2VyLnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9hbmNob3JzLnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9jYXRlZ29yeS52dWUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvcHJldmlldy52dWUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvc2VhcmNoLnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9za2lucy52dWUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvRW1vamkudnVlP2FkODQiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvUGlja2VyLnZ1ZT80OTcwIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL2FuY2hvcnMudnVlP2JiOTYiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvY2F0ZWdvcnkudnVlPzNjN2EiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvcHJldmlldy52dWU/MGM1ZiIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9zZWFyY2gudnVlPzEwNWEiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvc2tpbnMudnVlPzBjMGUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvRW1vamkudnVlPzliOWQiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvUGlja2VyLnZ1ZT9lZGE1Iiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL2FuY2hvcnMudnVlPzRlNTciLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvY2F0ZWdvcnkudnVlPzYwMTIiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvcHJldmlldy52dWU/MDJiNSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9zZWFyY2gudnVlPzBmZDgiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvc2tpbnMudnVlPzE2YTEiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvRW1vamkudnVlPzZhMTQiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvUGlja2VyLnZ1ZT84ZjZjIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL2FuY2hvcnMudnVlP2RjZWYiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvY2F0ZWdvcnkudnVlPzc0ZDUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvcHJldmlldy52dWU/YjU0YSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9zZWFyY2gudnVlPzc3ZGQiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvc2tpbnMudnVlPzU2OWIiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlMaWtlVG9BcnJheS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlXaXRob3V0SG9sZXMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NsYXNzQ2FsbENoZWNrLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVDbGFzcy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZGVmaW5lUHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2l0ZXJhYmxlVG9BcnJheS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vbm9uSXRlcmFibGVTcHJlYWQuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvQ29uc3VtYWJsZUFycmF5LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90eXBlb2YuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wiRW1vamlNYXJ0XCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcIkVtb2ppTWFydFwiXSA9IGZhY3RvcnkoKTtcbn0pKHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJyA/IHNlbGYgOiB0aGlzLCBmdW5jdGlvbigpIHtcbnJldHVybiAiLCI8dGVtcGxhdGU+XHJcbiAgPGNvbXBvbmVudFxyXG4gICAgOmlzPVwidGFnXCJcclxuICAgIHYtaWY9XCJ2aWV3LmNhblJlbmRlclwiXHJcbiAgICA6dGl0bGU9XCJ2aWV3LnRpdGxlXCJcclxuICAgIDphcmlhLWxhYmVsPVwidmlldy5hcmlhTGFiZWxcIlxyXG4gICAgOmRhdGEtdGl0bGU9XCJ0aXRsZVwiXHJcbiAgICBjbGFzcz1cImVtb2ppLW1hcnQtZW1vamlcIlxyXG4gICAgQG1vdXNlZW50ZXI9XCJvbk1vdXNlRW50ZXJcIlxyXG4gICAgQG1vdXNlbGVhdmU9XCJvbk1vdXNlTGVhdmVcIlxyXG4gICAgQGNsaWNrPVwib25DbGlja1wiXHJcbiAgPlxyXG4gICAgPHNwYW4gOmNsYXNzPVwidmlldy5jc3NDbGFzc1wiIDpzdHlsZT1cInZpZXcuY3NzU3R5bGVcIj57e1xyXG4gICAgICB2aWV3LmNvbnRlbnRcclxuICAgIH19PC9zcGFuPlxyXG4gIDwvY29tcG9uZW50PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IHsgRW1vamlQcm9wcyB9IGZyb20gJy4uL3V0aWxzL3NoYXJlZC1wcm9wcydcclxuaW1wb3J0IHsgRW1vamlWaWV3IH0gZnJvbSAnLi4vdXRpbHMvZW1vamktZGF0YSdcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBwcm9wczoge1xyXG4gICAgLi4uRW1vamlQcm9wcyxcclxuICAgIGRhdGE6IHtcclxuICAgICAgdHlwZTogT2JqZWN0LFxyXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBjb21wdXRlZDoge1xyXG4gICAgdmlldygpIHtcclxuICAgICAgcmV0dXJuIG5ldyBFbW9qaVZpZXcoXHJcbiAgICAgICAgdGhpcy5lbW9qaU9iamVjdCxcclxuICAgICAgICB0aGlzLnNraW4sXHJcbiAgICAgICAgdGhpcy5zZXQsXHJcbiAgICAgICAgdGhpcy5uYXRpdmUsXHJcbiAgICAgICAgdGhpcy5mYWxsYmFjayxcclxuICAgICAgICB0aGlzLnRvb2x0aXAsXHJcbiAgICAgICAgdGhpcy5zaXplLFxyXG4gICAgICApXHJcbiAgICB9LFxyXG4gICAgc2FuaXRpemVkRGF0YSgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZW1vamlPYmplY3QuX3Nhbml0aXplZFxyXG4gICAgfSxcclxuICAgIHRpdGxlKCkge1xyXG4gICAgICByZXR1cm4gdGhpcy50b29sdGlwID8gdGhpcy5lbW9qaU9iamVjdC5zaG9ydF9uYW1lIDogbnVsbFxyXG4gICAgfSxcclxuICAgIGVtb2ppT2JqZWN0KCkge1xyXG4gICAgICBpZiAodHlwZW9mIHRoaXMuZW1vamkgPT0gJ3N0cmluZycpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmZpbmRFbW9qaSh0aGlzLmVtb2ppKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVtb2ppXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgfSxcclxuICBjcmVhdGVkKCkge30sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgb25DbGljaygpIHtcclxuICAgICAgdGhpcy4kZW1pdCgnY2xpY2snLCB0aGlzLmVtb2ppT2JqZWN0KVxyXG4gICAgfSxcclxuICAgIG9uTW91c2VFbnRlcigpIHtcclxuICAgICAgdGhpcy4kZW1pdCgnbW91c2VlbnRlcicsIHRoaXMuZW1vamlPYmplY3QpXHJcbiAgICB9LFxyXG4gICAgb25Nb3VzZUxlYXZlKCkge1xyXG4gICAgICB0aGlzLiRlbWl0KCdtb3VzZWxlYXZlJywgdGhpcy5lbW9qaU9iamVjdClcclxuICAgIH0sXHJcbiAgfSxcclxufVxyXG48L3NjcmlwdD5cclxuIiwiPHRlbXBsYXRlPlxyXG4gIDxzZWN0aW9uIGNsYXNzPVwiZW1vamktbWFydCBlbW9qaS1tYXJ0LXN0YXRpY1wiIDpzdHlsZT1cImN1c3RvbVN0eWxlc1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtYmFyIGVtb2ppLW1hcnQtYmFyLWFuY2hvcnNcIiB2LWlmPVwic2hvd0NhdGVnb3JpZXNcIj5cclxuICAgICAgPGFuY2hvcnNcclxuICAgICAgICA6ZGF0YT1cImRhdGFcIlxyXG4gICAgICAgIDppMThuPVwibWVyZ2VkSTE4blwiXHJcbiAgICAgICAgOmNvbG9yPVwiY29sb3JcIlxyXG4gICAgICAgIDpjYXRlZ29yaWVzPVwidmlldy5hbGxDYXRlZ29yaWVzXCJcclxuICAgICAgICA6YWN0aXZlLWNhdGVnb3J5PVwidmlldy5hY3RpdmVDYXRlZ29yeVwiXHJcbiAgICAgICAgQGNsaWNrPVwib25BbmNob3JDbGlja1wiXHJcbiAgICAgIC8+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8c2xvdFxyXG4gICAgICBuYW1lPVwic2VhcmNoVGVtcGxhdGVcIlxyXG4gICAgICA6ZGF0YT1cImRhdGFcIlxyXG4gICAgICA6aTE4bj1cImkxOG5cIlxyXG4gICAgICA6YXV0by1mb2N1cz1cImF1dG9Gb2N1c1wiXHJcbiAgICAgIDpvbi1zZWFyY2g9XCJvblNlYXJjaFwiXHJcbiAgICA+XHJcbiAgICAgIDxzZWFyY2hcclxuICAgICAgICB2LWlmPVwic2hvd1NlYXJjaFwiXHJcbiAgICAgICAgcmVmPVwic2VhcmNoXCJcclxuICAgICAgICA6ZGF0YT1cImRhdGFcIlxyXG4gICAgICAgIDppMThuPVwibWVyZ2VkSTE4blwiXHJcbiAgICAgICAgOmF1dG8tZm9jdXM9XCJhdXRvRm9jdXNcIlxyXG4gICAgICAgIDpvbi1zZWFyY2g9XCJvblNlYXJjaFwiXHJcbiAgICAgICAgQHNlYXJjaD1cIm9uU2VhcmNoXCJcclxuICAgICAgICBAYXJyb3dMZWZ0PVwib25BcnJvd0xlZnRcIlxyXG4gICAgICAgIEBhcnJvd1JpZ2h0PVwib25BcnJvd1JpZ2h0XCJcclxuICAgICAgICBAYXJyb3dEb3duPVwib25BcnJvd0Rvd25cIlxyXG4gICAgICAgIEBhcnJvd1VwPVwib25BcnJvd1VwXCJcclxuICAgICAgICBAZW50ZXI9XCJvbkVudGVyXCJcclxuICAgICAgLz5cclxuICAgIDwvc2xvdD5cclxuXHJcbiAgICA8ZGl2XHJcbiAgICAgIHJvbGU9XCJ0YWJwYW5lbFwiXHJcbiAgICAgIGNsYXNzPVwiZW1vamktbWFydC1zY3JvbGxcIlxyXG4gICAgICByZWY9XCJzY3JvbGxcIlxyXG4gICAgICBAc2Nyb2xsPVwib25TY3JvbGxcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgaWQ9XCJlbW9qaS1tYXJ0LWxpc3RcIlxyXG4gICAgICAgIHJlZj1cInNjcm9sbENvbnRlbnRcIlxyXG4gICAgICAgIHJvbGU9XCJsaXN0Ym94XCJcclxuICAgICAgICBhcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2F0ZWdvcnlcclxuICAgICAgICAgIHYtZm9yPVwiKGNhdGVnb3J5LCBpZHgpIGluIHZpZXcuZmlsdGVyZWRDYXRlZ29yaWVzXCJcclxuICAgICAgICAgIHYtc2hvdz1cImluZmluaXRlU2Nyb2xsIHx8IGNhdGVnb3J5ID09IHZpZXcuYWN0aXZlQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgOnJlZj1cIidjYXRlZ29yaWVzXycgKyBpZHhcIlxyXG4gICAgICAgICAgOmtleT1cImNhdGVnb3J5LmlkXCJcclxuICAgICAgICAgIDpkYXRhPVwiZGF0YVwiXHJcbiAgICAgICAgICA6aTE4bj1cIm1lcmdlZEkxOG5cIlxyXG4gICAgICAgICAgOmlkPVwiY2F0ZWdvcnkuaWRcIlxyXG4gICAgICAgICAgOm5hbWU9XCJjYXRlZ29yeS5uYW1lXCJcclxuICAgICAgICAgIDplbW9qaXM9XCJjYXRlZ29yeS5lbW9qaXNcIlxyXG4gICAgICAgICAgOmVtb2ppLXByb3BzPVwiZW1vamlQcm9wc1wiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8c2xvdFxyXG4gICAgICBuYW1lPVwicHJldmlld1RlbXBsYXRlXCJcclxuICAgICAgOmRhdGE9XCJkYXRhXCJcclxuICAgICAgOnRpdGxlPVwidGl0bGVcIlxyXG4gICAgICA6ZW1vamk9XCJ2aWV3LnByZXZpZXdFbW9qaVwiXHJcbiAgICAgIDppZGxlLWVtb2ppPVwiaWRsZUVtb2ppXCJcclxuICAgICAgOnNob3ctc2tpbi10b25lcz1cInNob3dTa2luVG9uZXNcIlxyXG4gICAgICA6ZW1vamktcHJvcHM9XCJlbW9qaVByb3BzXCJcclxuICAgICAgOnNraW4tcHJvcHM9XCJza2luUHJvcHNcIlxyXG4gICAgICA6b24tc2tpbi1jaGFuZ2U9XCJvblNraW5DaGFuZ2VcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZW1vamktbWFydC1iYXIgZW1vamktbWFydC1iYXItcHJldmlld1wiIHYtaWY9XCJzaG93UHJldmlld1wiPlxyXG4gICAgICAgIDxwcmV2aWV3XHJcbiAgICAgICAgICA6ZGF0YT1cImRhdGFcIlxyXG4gICAgICAgICAgOnRpdGxlPVwidGl0bGVcIlxyXG4gICAgICAgICAgOmVtb2ppPVwidmlldy5wcmV2aWV3RW1vamlcIlxyXG4gICAgICAgICAgOmlkbGUtZW1vamk9XCJpZGxlRW1vamlcIlxyXG4gICAgICAgICAgOnNob3ctc2tpbi10b25lcz1cInNob3dTa2luVG9uZXNcIlxyXG4gICAgICAgICAgOmVtb2ppLXByb3BzPVwiZW1vamlQcm9wc1wiXHJcbiAgICAgICAgICA6c2tpbi1wcm9wcz1cInNraW5Qcm9wc1wiXHJcbiAgICAgICAgICA6b24tc2tpbi1jaGFuZ2U9XCJvblNraW5DaGFuZ2VcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zbG90PlxyXG4gIDwvc2VjdGlvbj5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcbmltcG9ydCAnLi4vdmVuZG9yL3JhZi1wb2x5ZmlsbCdcclxuaW1wb3J0IHN0b3JlIGZyb20gJy4uL3V0aWxzL3N0b3JlJ1xyXG5pbXBvcnQgZnJlcXVlbnRseSBmcm9tICcuLi91dGlscy9mcmVxdWVudGx5J1xyXG5pbXBvcnQgeyBkZWVwTWVyZ2UsIG1lYXN1cmVTY3JvbGxiYXIgfSBmcm9tICcuLi91dGlscydcclxuaW1wb3J0IHsgUGlja2VyUHJvcHMgfSBmcm9tICcuLi91dGlscy9zaGFyZWQtcHJvcHMnXHJcbmltcG9ydCB7IFBpY2tlclZpZXcgfSBmcm9tICcuLi91dGlscy9waWNrZXInXHJcbmltcG9ydCBBbmNob3JzIGZyb20gJy4vYW5jaG9ycy52dWUnXHJcbmltcG9ydCBDYXRlZ29yeSBmcm9tICcuL2NhdGVnb3J5LnZ1ZSdcclxuaW1wb3J0IFByZXZpZXcgZnJvbSAnLi9wcmV2aWV3LnZ1ZSdcclxuaW1wb3J0IFNlYXJjaCBmcm9tICcuL3NlYXJjaC52dWUnXHJcblxyXG5jb25zdCBJMThOID0ge1xyXG4gIHNlYXJjaDogJ1NlYXJjaCcsXHJcbiAgbm90Zm91bmQ6ICdObyBFbW9qaSBGb3VuZCcsXHJcbiAgY2F0ZWdvcmllczoge1xyXG4gICAgc2VhcmNoOiAnU2VhcmNoIFJlc3VsdHMnLFxyXG4gICAgcmVjZW50OiAnRnJlcXVlbnRseSBVc2VkJyxcclxuICAgIHNtaWxleXM6ICdTbWlsZXlzICYgRW1vdGlvbicsXHJcbiAgICBwZW9wbGU6ICdQZW9wbGUgJiBCb2R5JyxcclxuICAgIG5hdHVyZTogJ0FuaW1hbHMgJiBOYXR1cmUnLFxyXG4gICAgZm9vZHM6ICdGb29kICYgRHJpbmsnLFxyXG4gICAgYWN0aXZpdHk6ICdBY3Rpdml0eScsXHJcbiAgICBwbGFjZXM6ICdUcmF2ZWwgJiBQbGFjZXMnLFxyXG4gICAgb2JqZWN0czogJ09iamVjdHMnLFxyXG4gICAgc3ltYm9sczogJ1N5bWJvbHMnLFxyXG4gICAgZmxhZ3M6ICdGbGFncycsXHJcbiAgICBjdXN0b206ICdDdXN0b20nLFxyXG4gIH0sXHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBwcm9wczoge1xyXG4gICAgLi4uUGlja2VyUHJvcHMsXHJcbiAgICBkYXRhOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGFjdGl2ZVNraW46IHRoaXMuc2tpbiB8fCBzdG9yZS5nZXQoJ3NraW4nKSB8fCB0aGlzLmRlZmF1bHRTa2luLFxyXG4gICAgICB2aWV3OiBuZXcgUGlja2VyVmlldyh0aGlzKSxcclxuICAgIH1cclxuICB9LFxyXG4gIGNvbXB1dGVkOiB7XHJcbiAgICBjdXN0b21TdHlsZXMoKSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgd2lkdGg6IHRoaXMuY2FsY3VsYXRlV2lkdGggKyAncHgnLFxyXG4gICAgICAgIC4uLnRoaXMucGlja2VyU3R5bGVzLFxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgZW1vamlQcm9wcygpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBuYXRpdmU6IHRoaXMubmF0aXZlLFxyXG4gICAgICAgIHNraW46IHRoaXMuYWN0aXZlU2tpbixcclxuICAgICAgICBzZXQ6IHRoaXMuc2V0LFxyXG4gICAgICAgIGVtb2ppVG9vbHRpcDogdGhpcy5lbW9qaVRvb2x0aXAsXHJcbiAgICAgICAgZW1vamlTaXplOiB0aGlzLmVtb2ppU2l6ZSxcclxuICAgICAgICBzZWxlY3RlZEVtb2ppOiB0aGlzLnZpZXcucHJldmlld0Vtb2ppLFxyXG4gICAgICAgIHNlbGVjdGVkRW1vamlDYXRlZ29yeTogdGhpcy52aWV3LnByZXZpZXdFbW9qaUNhdGVnb3J5LFxyXG4gICAgICAgIG9uRW50ZXI6IHRoaXMub25FbW9qaUVudGVyLmJpbmQodGhpcyksXHJcbiAgICAgICAgb25MZWF2ZTogdGhpcy5vbkVtb2ppTGVhdmUuYmluZCh0aGlzKSxcclxuICAgICAgICBvbkNsaWNrOiB0aGlzLm9uRW1vamlDbGljay5iaW5kKHRoaXMpLFxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgc2tpblByb3BzKCkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHNraW46IHRoaXMuYWN0aXZlU2tpbixcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGNhbGN1bGF0ZVdpZHRoKCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5wZXJMaW5lICogKHRoaXMuZW1vamlTaXplICsgMTIpICsgMTIgKyAyICsgbWVhc3VyZVNjcm9sbGJhcigpXHJcbiAgICB9LFxyXG4gICAgLy8gZW1vamlzUGVyUm93KCkge1xyXG4gICAgLy8gICBjb25zdCBsaXN0RWwgPSB0aGlzLiRyZWZzLnNjcm9sbENvbnRlbnRcclxuICAgIC8vICAgY29uc3QgZW1vamlFbCA9IGxpc3RFbC5xdWVyeVNlbGVjdG9yKCcuZW1vamktbWFydC1lbW9qaScpXHJcbiAgICAvLyAgIHJldHVybiBNYXRoLmZsb29yKGxpc3RFbC5vZmZzZXRXaWR0aCAvIGVtb2ppRWwub2Zmc2V0V2lkdGgpXHJcbiAgICAvLyB9LFxyXG4gICAgZmlsdGVyZWRDYXRlZ29yaWVzKCkge1xyXG4gICAgICByZXR1cm4gdGhpcy52aWV3LmZpbHRlcmVkQ2F0ZWdvcmllc1xyXG4gICAgfSxcclxuICAgIG1lcmdlZEkxOG4oKSB7XHJcbiAgICAgIHJldHVybiBPYmplY3QuZnJlZXplKGRlZXBNZXJnZShJMThOLCB0aGlzLmkxOG4pKVxyXG4gICAgfSxcclxuICAgIGlkbGVFbW9qaSgpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmVtb2ppKHRoaXMuZW1vamkpXHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKFxyXG4gICAgICAgICAgJ0RlZmF1bHQgcHJldmlldyBlbW9qaSBgJyArXHJcbiAgICAgICAgICAgIHRoaXMuZW1vamkgK1xyXG4gICAgICAgICAgICAnYCBpcyBub3QgYXZhaWxhYmxlLCBjaGVjayB0aGUgUGlja2VyIGBlbW9qaWAgcHJvcGVydHknLFxyXG4gICAgICAgIClcclxuICAgICAgICBjb25zb2xlLmVycm9yKGUpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5maXJzdEVtb2ppKClcclxuICAgICAgfVxyXG4gICAgfSxcclxuICB9LFxyXG4gIG1ldGhvZHM6IHtcclxuICAgIG9uU2Nyb2xsKCkge1xyXG4gICAgICBpZiAodGhpcy5pbmZpbml0ZVNjcm9sbCAmJiAhdGhpcy53YWl0aW5nRm9yUGFpbnQpIHtcclxuICAgICAgICB0aGlzLndhaXRpbmdGb3JQYWludCA9IHRydWVcclxuICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMub25TY3JvbGxQYWludC5iaW5kKHRoaXMpKVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgb25TY3JvbGxQYWludCgpIHtcclxuICAgICAgdGhpcy53YWl0aW5nRm9yUGFpbnQgPSBmYWxzZVxyXG4gICAgICB0aGlzLnZpZXcub25TY3JvbGwoKVxyXG4gICAgfSxcclxuICAgIG9uQW5jaG9yQ2xpY2soY2F0ZWdvcnkpIHtcclxuICAgICAgdGhpcy52aWV3Lm9uQW5jaG9yQ2xpY2soY2F0ZWdvcnkpXHJcbiAgICB9LFxyXG4gICAgb25TZWFyY2godmFsdWUpIHtcclxuICAgICAgdGhpcy52aWV3Lm9uU2VhcmNoKHZhbHVlKVxyXG4gICAgfSxcclxuICAgIG9uRW1vamlFbnRlcihlbW9qaSkge1xyXG4gICAgICB0aGlzLnZpZXcub25FbW9qaUVudGVyKGVtb2ppKVxyXG4gICAgfSxcclxuICAgIG9uRW1vamlMZWF2ZShlbW9qaSkge1xyXG4gICAgICB0aGlzLnZpZXcub25FbW9qaUxlYXZlKGVtb2ppKVxyXG4gICAgfSxcclxuICAgIG9uQXJyb3dMZWZ0KCRldmVudCkge1xyXG4gICAgICBjb25zdCBvbGRJZHggPSB0aGlzLnZpZXcucHJldmlld0Vtb2ppSWR4XHJcbiAgICAgIHRoaXMudmlldy5vbkFycm93TGVmdCgpXHJcbiAgICAgIGlmICgkZXZlbnQgJiYgdGhpcy52aWV3LnByZXZpZXdFbW9qaUlkeCAhPT0gb2xkSWR4KSB7XHJcbiAgICAgICAgLy8gUHJldmVudCBjdXJzb3IgbW92ZW1lbnQgaW5zaWRlIHRoZSBpbnB1dFxyXG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBvbkFycm93UmlnaHQoKSB7XHJcbiAgICAgIHRoaXMudmlldy5vbkFycm93UmlnaHQoKVxyXG4gICAgfSxcclxuICAgIG9uQXJyb3dEb3duKCkge1xyXG4gICAgICB0aGlzLnZpZXcub25BcnJvd0Rvd24oKVxyXG4gICAgfSxcclxuICAgIG9uQXJyb3dVcCgkZXZlbnQpIHtcclxuICAgICAgdGhpcy52aWV3Lm9uQXJyb3dVcCgpXHJcbiAgICAgIC8vIFByZXZlbnQgY3Vyc29yIG1vdmVtZW50IGluc2lkZSB0aGUgaW5wdXRcclxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcclxuICAgIH0sXHJcbiAgICBvbkVudGVyKGVtb2ppKSB7XHJcbiAgICAgIHRoaXMuJGVtaXQoJ3NlbGVjdCcsIHRoaXMudmlldy5wcmV2aWV3RW1vamkpXHJcbiAgICAgIGZyZXF1ZW50bHkuYWRkKHRoaXMudmlldy5wcmV2aWV3RW1vamkpXHJcbiAgICB9LFxyXG4gICAgb25FbW9qaUNsaWNrKGVtb2ppKSB7XHJcbiAgICAgIHRoaXMuJGVtaXQoJ3NlbGVjdCcsIGVtb2ppKVxyXG4gICAgICBmcmVxdWVudGx5LmFkZChlbW9qaSlcclxuICAgIH0sXHJcbiAgICBvblNraW5DaGFuZ2Uoc2tpbikge1xyXG4gICAgICB0aGlzLmFjdGl2ZVNraW4gPSBza2luXHJcbiAgICAgIHN0b3JlLnVwZGF0ZSh7IHNraW4gfSlcclxuXHJcbiAgICAgIHRoaXMuJGVtaXQoJ3NraW4tY2hhbmdlJywgc2tpbilcclxuICAgIH0sXHJcbiAgICBnZXRDYXRlZ29yeUNvbXBvbmVudChpbmRleCkge1xyXG4gICAgICBsZXQgY29tcG9uZW50ID0gdGhpcy4kcmVmc1snY2F0ZWdvcmllc18nICsgaW5kZXhdXHJcbiAgICAgIGlmIChjb21wb25lbnQgJiYgJzAnIGluIGNvbXBvbmVudCkge1xyXG4gICAgICAgIC8vIFZ1ZSAyIGhhcyAkcmVmcyB1bmRlciB2LWZvciBhcyBhbiBhcnJheS5cclxuICAgICAgICByZXR1cm4gY29tcG9uZW50WycwJ11cclxuICAgICAgfVxyXG4gICAgICAvLyBWdWUgMyBkb2VzIG5vdCBzdXBwb3J0ICRyZWZzIGFzIGFycmF5LlxyXG4gICAgICByZXR1cm4gY29tcG9uZW50XHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgY29tcG9uZW50czoge1xyXG4gICAgQW5jaG9ycyxcclxuICAgIENhdGVnb3J5LFxyXG4gICAgUHJldmlldyxcclxuICAgIFNlYXJjaCxcclxuICB9LFxyXG59XHJcbjwvc2NyaXB0PlxyXG4iLCI8dGVtcGxhdGU+XHJcbiAgPGRpdiByb2xlPVwidGFibGlzdFwiIGNsYXNzPVwiZW1vamktbWFydC1hbmNob3JzXCI+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIHYtZm9yPVwiY2F0ZWdvcnkgaW4gY2F0ZWdvcmllc1wiXHJcbiAgICAgIHJvbGU9XCJ0YWJcIlxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgOmFyaWEtbGFiZWw9XCJjYXRlZ29yeS5uYW1lXCJcclxuICAgICAgOmFyaWEtc2VsZWN0ZWQ9XCJjYXRlZ29yeS5pZCA9PSBhY3RpdmVDYXRlZ29yeS5pZFwiXHJcbiAgICAgIDprZXk9XCJjYXRlZ29yeS5pZFwiXHJcbiAgICAgIDpjbGFzcz1cIntcclxuICAgICAgICAnZW1vamktbWFydC1hbmNob3InOiB0cnVlLFxyXG4gICAgICAgICdlbW9qaS1tYXJ0LWFuY2hvci1zZWxlY3RlZCc6IGNhdGVnb3J5LmlkID09IGFjdGl2ZUNhdGVnb3J5LmlkLFxyXG4gICAgICB9XCJcclxuICAgICAgOnN0eWxlPVwieyBjb2xvcjogY2F0ZWdvcnkuaWQgPT0gYWN0aXZlQ2F0ZWdvcnkuaWQgPyBjb2xvciA6ICcnIH1cIlxyXG4gICAgICA6ZGF0YS10aXRsZT1cImkxOG4uY2F0ZWdvcmllc1tjYXRlZ29yeS5pZF1cIlxyXG4gICAgICBAY2xpY2s9XCIkZW1pdCgnY2xpY2snLCBjYXRlZ29yeSlcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHYtaHRtbD1cInN2Z3NbY2F0ZWdvcnkuaWRdXCIgLz5cclxuICAgICAgPHNwYW5cclxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgIGNsYXNzPVwiZW1vamktbWFydC1hbmNob3ItYmFyXCJcclxuICAgICAgICA6c3R5bGU9XCJ7IGJhY2tncm91bmRDb2xvcjogY29sb3IgfVwiXHJcbiAgICAgID48L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcbmltcG9ydCBzdmdzIGZyb20gJy4uL3N2Z3MnXHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgcHJvcHM6IHtcclxuICAgIGkxOG46IHtcclxuICAgICAgdHlwZTogT2JqZWN0LFxyXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBjb2xvcjoge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICB9LFxyXG4gICAgY2F0ZWdvcmllczoge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgYWN0aXZlQ2F0ZWdvcnk6IHtcclxuICAgICAgdHlwZTogT2JqZWN0LFxyXG4gICAgICBkZWZhdWx0KCkge1xyXG4gICAgICAgIHJldHVybiB7fVxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICB9LFxyXG4gIGNyZWF0ZWQoKSB7XHJcbiAgICB0aGlzLnN2Z3MgPSBzdmdzXHJcbiAgfSxcclxufVxyXG48L3NjcmlwdD5cclxuIiwiPHRlbXBsYXRlPlxyXG4gIDxzZWN0aW9uXHJcbiAgICA6Y2xhc3M9XCJ7XHJcbiAgICAgICdlbW9qaS1tYXJ0LWNhdGVnb3J5JzogdHJ1ZSxcclxuICAgICAgJ2Vtb2ppLW1hcnQtbm8tcmVzdWx0cyc6ICFoYXNSZXN1bHRzLFxyXG4gICAgfVwiXHJcbiAgICA6YXJpYS1sYWJlbD1cImkxOG4uY2F0ZWdvcmllc1tpZF1cIlxyXG4gICAgdi1pZj1cImlzVmlzaWJsZSAmJiAoaXNTZWFyY2ggfHwgaGFzUmVzdWx0cylcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LWNhdGVnb3J5LWxhYmVsXCI+XHJcbiAgICAgIDxoMyBjbGFzcz1cImVtb2ppLW1hcnQtY2F0ZWdvcnktbGFiZWxcIj57eyBpMThuLmNhdGVnb3JpZXNbaWRdIH19PC9oMz5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDx0ZW1wbGF0ZSB2LWZvcj1cInsgZW1vamlPYmplY3QsIGVtb2ppVmlldyB9IGluIGVtb2ppT2JqZWN0c1wiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgdi1pZj1cImVtb2ppVmlldy5jYW5SZW5kZXJcIlxyXG4gICAgICAgIDphcmlhLWxhYmVsPVwiZW1vamlWaWV3LmFyaWFMYWJlbFwiXHJcbiAgICAgICAgcm9sZT1cIm9wdGlvblwiXHJcbiAgICAgICAgYXJpYS1zZWxlY3RlZD1cImZhbHNlXCJcclxuICAgICAgICBhcmlhLXBvc2luc2V0PVwiMVwiXHJcbiAgICAgICAgYXJpYS1zZXRzaXplPVwiMTgxMlwiXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgOmRhdGEtdGl0bGU9XCJlbW9qaU9iamVjdC5zaG9ydF9uYW1lXCJcclxuICAgICAgICA6a2V5PVwiZW1vamlPYmplY3QuaWRcIlxyXG4gICAgICAgIDp0aXRsZT1cImVtb2ppVmlldy50aXRsZVwiXHJcbiAgICAgICAgY2xhc3M9XCJlbW9qaS1tYXJ0LWVtb2ppXCJcclxuICAgICAgICA6Y2xhc3M9XCJhY3RpdmVDbGFzcyhlbW9qaU9iamVjdClcIlxyXG4gICAgICAgIEBtb3VzZWVudGVyPVwiZW1vamlQcm9wcy5vbkVudGVyKGVtb2ppVmlldy5nZXRFbW9qaSgpKVwiXHJcbiAgICAgICAgQG1vdXNlbGVhdmU9XCJlbW9qaVByb3BzLm9uTGVhdmUoZW1vamlWaWV3LmdldEVtb2ppKCkpXCJcclxuICAgICAgICBAY2xpY2s9XCJlbW9qaVByb3BzLm9uQ2xpY2soZW1vamlWaWV3LmdldEVtb2ppKCkpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuIDpjbGFzcz1cImVtb2ppVmlldy5jc3NDbGFzc1wiIDpzdHlsZT1cImVtb2ppVmlldy5jc3NTdHlsZVwiPnt7XHJcbiAgICAgICAgICBlbW9qaVZpZXcuY29udGVudFxyXG4gICAgICAgIH19PC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvdGVtcGxhdGU+XHJcblxyXG4gICAgPGRpdiB2LWlmPVwiIWhhc1Jlc3VsdHNcIj5cclxuICAgICAgPGVtb2ppXHJcbiAgICAgICAgOmRhdGE9XCJkYXRhXCJcclxuICAgICAgICBlbW9qaT1cInNsZXV0aF9vcl9zcHlcIlxyXG4gICAgICAgIDpuYXRpdmU9XCJlbW9qaVByb3BzLm5hdGl2ZVwiXHJcbiAgICAgICAgOnNraW49XCJlbW9qaVByb3BzLnNraW5cIlxyXG4gICAgICAgIDpzZXQ9XCJlbW9qaVByb3BzLnNldFwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LW5vLXJlc3VsdHMtbGFiZWxcIj57eyBpMThuLm5vdGZvdW5kIH19PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L3NlY3Rpb24+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQgeyBFbW9qaVZpZXcgfSBmcm9tICcuLi91dGlscy9lbW9qaS1kYXRhJ1xyXG5pbXBvcnQgRW1vamkgZnJvbSAnLi9FbW9qaS52dWUnXHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgcHJvcHM6IHtcclxuICAgIGRhdGE6IHtcclxuICAgICAgdHlwZTogT2JqZWN0LFxyXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBpMThuOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgaWQ6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBuYW1lOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgZW1vamlzOiB7XHJcbiAgICAgIHR5cGU6IEFycmF5LFxyXG4gICAgfSxcclxuICAgIGVtb2ppUHJvcHM6IHtcclxuICAgICAgdHlwZTogT2JqZWN0LFxyXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICBhY3RpdmVDbGFzczogZnVuY3Rpb24oZW1vamlPYmplY3QpIHtcclxuICAgICAgaWYgKCF0aGlzLmVtb2ppUHJvcHMuc2VsZWN0ZWRFbW9qaSkge1xyXG4gICAgICAgIHJldHVybiAnJ1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5lbW9qaVByb3BzLnNlbGVjdGVkRW1vamlDYXRlZ29yeSkge1xyXG4gICAgICAgIHJldHVybiAnJ1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLmVtb2ppUHJvcHMuc2VsZWN0ZWRFbW9qaS5pZCA9PSBlbW9qaU9iamVjdC5pZCAmJlxyXG4gICAgICAgIHRoaXMuZW1vamlQcm9wcy5zZWxlY3RlZEVtb2ppQ2F0ZWdvcnkuaWQgPT0gdGhpcy5pZFxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gJ2Vtb2ppLW1hcnQtZW1vamktc2VsZWN0ZWQnXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuICcnXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHtcclxuICAgIGlzVmlzaWJsZSgpIHtcclxuICAgICAgcmV0dXJuICEhdGhpcy5lbW9qaXNcclxuICAgIH0sXHJcbiAgICBpc1NlYXJjaCgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubmFtZSA9PSAnU2VhcmNoJ1xyXG4gICAgfSxcclxuICAgIGhhc1Jlc3VsdHMoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmVtb2ppcy5sZW5ndGggPiAwXHJcbiAgICB9LFxyXG4gICAgZW1vamlPYmplY3RzKCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5lbW9qaXMubWFwKChlbW9qaSkgPT4ge1xyXG4gICAgICAgIGxldCBlbW9qaU9iamVjdCA9IGVtb2ppXHJcbiAgICAgICAgbGV0IGVtb2ppVmlldyA9IG5ldyBFbW9qaVZpZXcoXHJcbiAgICAgICAgICBlbW9qaSxcclxuICAgICAgICAgIHRoaXMuZW1vamlQcm9wcy5za2luLFxyXG4gICAgICAgICAgdGhpcy5lbW9qaVByb3BzLnNldCxcclxuICAgICAgICAgIHRoaXMuZW1vamlQcm9wcy5uYXRpdmUsXHJcbiAgICAgICAgICB0aGlzLmVtb2ppUHJvcHMuZmFsbGJhY2ssXHJcbiAgICAgICAgICB0aGlzLmVtb2ppUHJvcHMuZW1vamlUb29sdGlwLFxyXG4gICAgICAgICAgdGhpcy5lbW9qaVByb3BzLmVtb2ppU2l6ZSxcclxuICAgICAgICApXHJcbiAgICAgICAgcmV0dXJuIHsgZW1vamlPYmplY3QsIGVtb2ppVmlldyB9XHJcbiAgICAgIH0pXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgY29tcG9uZW50czoge1xyXG4gICAgRW1vamksXHJcbiAgfSxcclxufVxyXG48L3NjcmlwdD5cclxuIiwiPHRlbXBsYXRlPlxyXG5cclxuPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlld1wiPlxyXG4gIDx0ZW1wbGF0ZSB2LWlmPVwiZW1vamlcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1lbW9qaVwiPlxyXG4gICAgICAgIDxlbW9qaVxyXG4gICAgICAgICAgOmRhdGE9XCJkYXRhXCJcclxuICAgICAgICAgIDplbW9qaT1cImVtb2ppXCJcclxuICAgICAgICAgIDpuYXRpdmU9XCJlbW9qaVByb3BzLm5hdGl2ZVwiXHJcbiAgICAgICAgICA6c2tpbj1cImVtb2ppUHJvcHMuc2tpblwiXHJcbiAgICAgICAgICA6c2V0PVwiZW1vamlQcm9wcy5zZXRcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1kYXRhXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1uYW1lXCI+e3sgZW1vamkubmFtZSB9fTwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctc2hvcnRuYW1lc1wiPlxyXG4gICAgICAgICAgPHNwYW4gdi1mb3I9XCJzaG9ydE5hbWUgaW4gZW1vamlTaG9ydE5hbWVzXCIgOmtleT1cInNob3J0TmFtZVwiIGNsYXNzPVwiZW1vamktbWFydC1wcmV2aWV3LXNob3J0bmFtZVwiPjp7eyBzaG9ydE5hbWUgfX06PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctZW1vdGljb25zXCI+XHJcbiAgICAgICAgICA8c3BhbiB2LWZvcj1cImVtb3RpY29uIGluIGVtb2ppRW1vdGljb25zXCIgOmtleT1cImVtb3RpY29uXCIgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctZW1vdGljb25cIj57eyBlbW90aWNvbiB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgPC90ZW1wbGF0ZT5cclxuXHJcbiAgPHRlbXBsYXRlIHYtZWxzZT5cclxuICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctZW1vamlcIj5cclxuICAgICAgPGVtb2ppXHJcbiAgICAgICAgOmRhdGE9XCJkYXRhXCJcclxuICAgICAgICA6ZW1vamk9XCJpZGxlRW1vamlcIlxyXG4gICAgICAgIDpuYXRpdmU9XCJlbW9qaVByb3BzLm5hdGl2ZVwiXHJcbiAgICAgICAgOnNraW49XCJlbW9qaVByb3BzLnNraW5cIlxyXG4gICAgICAgIDpzZXQ9XCJlbW9qaVByb3BzLnNldFwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZW1vamktbWFydC1wcmV2aWV3LWRhdGFcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJlbW9qaS1tYXJ0LXRpdGxlLWxhYmVsXCI+e3sgdGl0bGUgfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IHYtaWY9XCJzaG93U2tpblRvbmVzXCIgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctc2tpbnNcIj5cclxuICAgICAgPHNraW5zIDpza2luPVwic2tpblByb3BzLnNraW5cIiBAY2hhbmdlPVwib25Ta2luQ2hhbmdlKCRldmVudClcIiAvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC90ZW1wbGF0ZT5cclxuPC9kaXY+XHJcblxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHJcbmltcG9ydCBFbW9qaSBmcm9tICcuL0Vtb2ppLnZ1ZSdcclxuaW1wb3J0IFNraW5zIGZyb20gJy4vc2tpbnMudnVlJ1xyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIHByb3BzOiB7XHJcbiAgICBkYXRhOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICB0aXRsZToge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZW1vamk6IHtcclxuICAgICAgdHlwZTogW1N0cmluZywgT2JqZWN0XVxyXG4gICAgfSxcclxuICAgIGlkbGVFbW9qaToge1xyXG4gICAgICB0eXBlOiBbU3RyaW5nLCBPYmplY3RdLFxyXG4gICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHNob3dTa2luVG9uZXM6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGVtb2ppUHJvcHM6IHtcclxuICAgICAgdHlwZTogT2JqZWN0LFxyXG4gICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHNraW5Qcm9wczoge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgb25Ta2luQ2hhbmdlOiB7XHJcbiAgICAgIHR5cGU6IEZ1bmN0aW9uLFxyXG4gICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHtcclxuICAgIGVtb2ppRGF0YSgpIHtcclxuICAgICAgaWYgKHRoaXMuZW1vamkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbW9qaVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB7fVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgZW1vamlTaG9ydE5hbWVzKCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5lbW9qaURhdGEuc2hvcnRfbmFtZXNcclxuICAgIH0sXHJcbiAgICBlbW9qaUVtb3RpY29ucygpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZW1vamlEYXRhLmVtb3RpY29uc1xyXG4gICAgfVxyXG4gIH0sXHJcbiAgY29tcG9uZW50czoge1xyXG4gICAgRW1vamksXHJcbiAgICBTa2luc1xyXG4gIH1cclxufVxyXG5cclxuPC9zY3JpcHQ+XHJcbiIsIjx0ZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwiZW1vamktbWFydC1zZWFyY2hcIj5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIDpwbGFjZWhvbGRlcj1cImkxOG4uc2VhcmNoXCJcclxuICAgICAgcm9sZT1cInRleHRib3hcIlxyXG4gICAgICBhcmlhLWF1dG9jb21wbGV0ZT1cImxpc3RcIlxyXG4gICAgICBhcmlhLW93bnM9XCJlbW9qaS1tYXJ0LWxpc3RcIlxyXG4gICAgICBhcmlhLWxhYmVsPVwiU2VhcmNoIGZvciBhbiBlbW9qaVwiXHJcbiAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJlbW9qaS1tYXJ0LXNlYXJjaC1kZXNjcmlwdGlvblwiXHJcbiAgICAgIEBrZXlkb3duLmxlZnQ9XCIoJGV2ZW50KSA9PiAkZW1pdCgnYXJyb3dMZWZ0JywgJGV2ZW50KVwiXHJcbiAgICAgIEBrZXlkb3duLnJpZ2h0PVwiKCkgPT4gJGVtaXQoJ2Fycm93UmlnaHQnKVwiXHJcbiAgICAgIEBrZXlkb3duLmRvd249XCIoKSA9PiAkZW1pdCgnYXJyb3dEb3duJylcIlxyXG4gICAgICBAa2V5ZG93bi51cD1cIigkZXZlbnQpID0+ICRlbWl0KCdhcnJvd1VwJywgJGV2ZW50KVwiXHJcbiAgICAgIEBrZXlkb3duLmVudGVyPVwiKCkgPT4gJGVtaXQoJ2VudGVyJylcIlxyXG4gICAgICB2LW1vZGVsPVwidmFsdWVcIlxyXG4gICAgLz5cclxuICAgIDxzcGFuIGNsYXNzPVwiaGlkZGVuXCIgaWQ9XCJlbW9qaS1waWNrZXItc2VhcmNoLWRlc2NyaXB0aW9uXCJcclxuICAgICAgPlVzZSB0aGUgbGVmdCwgcmlnaHQsIHVwIGFuZCBkb3duIGFycm93IGtleXMgdG8gbmF2aWdhdGUgdGhlIGVtb2ppIHNlYXJjaFxyXG4gICAgICByZXN1bHRzLjwvc3BhblxyXG4gICAgPlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIHByb3BzOiB7XHJcbiAgICBkYXRhOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgaTE4bjoge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIGF1dG9Gb2N1czoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcclxuICAgIH0sXHJcbiAgICBvblNlYXJjaDoge1xyXG4gICAgICB0eXBlOiBGdW5jdGlvbixcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgb25BcnJvd0xlZnQ6IHtcclxuICAgICAgdHlwZTogRnVuY3Rpb24sXHJcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcclxuICAgIH0sXHJcbiAgICBvbkFycm93UmlnaHQ6IHtcclxuICAgICAgdHlwZTogRnVuY3Rpb24sXHJcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcclxuICAgIH0sXHJcbiAgICBvbkFycm93RG93bjoge1xyXG4gICAgICB0eXBlOiBGdW5jdGlvbixcclxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxyXG4gICAgfSxcclxuICAgIG9uQXJyb3dVcDoge1xyXG4gICAgICB0eXBlOiBGdW5jdGlvbixcclxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxyXG4gICAgfSxcclxuICAgIG9uRW50ZXI6IHtcclxuICAgICAgdHlwZTogRnVuY3Rpb24sXHJcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdmFsdWU6ICcnLFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHtcclxuICAgIGVtb2ppSW5kZXgoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRhdGFcclxuICAgIH0sXHJcbiAgfSxcclxuICB3YXRjaDoge1xyXG4gICAgdmFsdWUoKSB7XHJcbiAgICAgIHRoaXMuJGVtaXQoJ3NlYXJjaCcsIHRoaXMudmFsdWUpXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgY2xlYXIoKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSAnJ1xyXG4gICAgfSxcclxuICB9LFxyXG4gIG1vdW50ZWQoKSB7XHJcbiAgICBsZXQgJGlucHV0ID0gdGhpcy4kZWwucXVlcnlTZWxlY3RvcignaW5wdXQnKVxyXG5cclxuICAgIGlmICh0aGlzLmF1dG9Gb2N1cykge1xyXG4gICAgICAkaW5wdXQuZm9jdXMoKVxyXG4gICAgfVxyXG4gIH0sXHJcbn1cclxuPC9zY3JpcHQ+XHJcbiIsIjx0ZW1wbGF0ZT5cclxuXHJcbjxkaXYgOmNsYXNzPVwieyAnZW1vamktbWFydC1za2luLXN3YXRjaGVzJzogdHJ1ZSwgJ2Vtb2ppLW1hcnQtc2tpbi1zd2F0Y2hlcy1vcGVuZWQnOiBvcGVuZWQgfVwiPlxyXG4gIDxzcGFuIHYtZm9yPVwic2tpblRvbmUgaW4gNlwiIDprZXk9XCJza2luVG9uZVwiIDpjbGFzcz1cInsgJ2Vtb2ppLW1hcnQtc2tpbi1zd2F0Y2gnOiB0cnVlLCAnZW1vamktbWFydC1za2luLXN3YXRjaC1zZWxlY3RlZCc6IHNraW4gPT0gc2tpblRvbmUgfVwiPlxyXG4gICAgPHNwYW4gOmNsYXNzPVwiJ2Vtb2ppLW1hcnQtc2tpbiBlbW9qaS1tYXJ0LXNraW4tdG9uZS0nICsgc2tpblRvbmVcIiBAY2xpY2s9XCJvbkNsaWNrKHNraW5Ub25lKVwiPjwvc3Bhbj5cclxuICA8L3NwYW4+XHJcbjwvZGl2PlxyXG5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgcHJvcHM6IHtcclxuICAgIHNraW46IHtcclxuICAgICAgdHlwZTogTnVtYmVyLFxyXG4gICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG9wZW5lZDogZmFsc2VcclxuICAgIH1cclxuICB9LFxyXG4gIG1ldGhvZHM6IHtcclxuICAgIG9uQ2xpY2soc2tpblRvbmUpIHtcclxuICAgICAgaWYgKHRoaXMub3BlbmVkKSB7XHJcbiAgICAgICAgaWYgKHNraW5Ub25lICE9IHRoaXMuc2tpbikge1xyXG4gICAgICAgICAgdGhpcy4kZW1pdCgnY2hhbmdlJywgc2tpblRvbmUpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLm9wZW5lZCA9ICF0aGlzLm9wZW5lZFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuPC9zY3JpcHQ+XHJcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgQW5jaG9ycyB9IGZyb20gJy4vYW5jaG9ycy52dWUnXHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2F0ZWdvcnkgfSBmcm9tICcuL2NhdGVnb3J5LnZ1ZSdcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBQcmV2aWV3IH0gZnJvbSAnLi9wcmV2aWV3LnZ1ZSdcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBTZWFyY2ggfSBmcm9tICcuL3NlYXJjaC52dWUnXHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2tpbnMgfSBmcm9tICcuL3NraW5zLnZ1ZSdcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBFbW9qaSB9IGZyb20gJy4vRW1vamkudnVlJ1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFBpY2tlciB9IGZyb20gJy4vUGlja2VyLnZ1ZSdcclxuIiwiY29uc3QgX1N0cmluZyA9IFN0cmluZ1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgX1N0cmluZy5mcm9tQ29kZVBvaW50IHx8XHJcbiAgZnVuY3Rpb24gc3RyaW5nRnJvbUNvZGVQb2ludCgpIHtcclxuICAgIHZhciBNQVhfU0laRSA9IDB4NDAwMFxyXG4gICAgdmFyIGNvZGVVbml0cyA9IFtdXHJcbiAgICB2YXIgaGlnaFN1cnJvZ2F0ZVxyXG4gICAgdmFyIGxvd1N1cnJvZ2F0ZVxyXG4gICAgdmFyIGluZGV4ID0gLTFcclxuICAgIHZhciBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoXHJcbiAgICBpZiAoIWxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gJydcclxuICAgIH1cclxuICAgIHZhciByZXN1bHQgPSAnJ1xyXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcclxuICAgICAgdmFyIGNvZGVQb2ludCA9IE51bWJlcihhcmd1bWVudHNbaW5kZXhdKVxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIWlzRmluaXRlKGNvZGVQb2ludCkgfHwgLy8gYE5hTmAsIGArSW5maW5pdHlgLCBvciBgLUluZmluaXR5YFxyXG4gICAgICAgIGNvZGVQb2ludCA8IDAgfHwgLy8gbm90IGEgdmFsaWQgVW5pY29kZSBjb2RlIHBvaW50XHJcbiAgICAgICAgY29kZVBvaW50ID4gMHgxMGZmZmYgfHwgLy8gbm90IGEgdmFsaWQgVW5pY29kZSBjb2RlIHBvaW50XHJcbiAgICAgICAgTWF0aC5mbG9vcihjb2RlUG9pbnQpICE9IGNvZGVQb2ludCAvLyBub3QgYW4gaW50ZWdlclxyXG4gICAgICApIHtcclxuICAgICAgICB0aHJvdyBSYW5nZUVycm9yKCdJbnZhbGlkIGNvZGUgcG9pbnQ6ICcgKyBjb2RlUG9pbnQpXHJcbiAgICAgIH1cclxuICAgICAgaWYgKGNvZGVQb2ludCA8PSAweGZmZmYpIHtcclxuICAgICAgICAvLyBCTVAgY29kZSBwb2ludFxyXG4gICAgICAgIGNvZGVVbml0cy5wdXNoKGNvZGVQb2ludClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBBc3RyYWwgY29kZSBwb2ludDsgc3BsaXQgaW4gc3Vycm9nYXRlIGhhbHZlc1xyXG4gICAgICAgIC8vIGh0dHA6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVzL2phdmFzY3JpcHQtZW5jb2Rpbmcjc3Vycm9nYXRlLWZvcm11bGFlXHJcbiAgICAgICAgY29kZVBvaW50IC09IDB4MTAwMDBcclxuICAgICAgICBoaWdoU3Vycm9nYXRlID0gKGNvZGVQb2ludCA+PiAxMCkgKyAweGQ4MDBcclxuICAgICAgICBsb3dTdXJyb2dhdGUgPSAoY29kZVBvaW50ICUgMHg0MDApICsgMHhkYzAwXHJcbiAgICAgICAgY29kZVVuaXRzLnB1c2goaGlnaFN1cnJvZ2F0ZSwgbG93U3Vycm9nYXRlKVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChpbmRleCArIDEgPT09IGxlbmd0aCB8fCBjb2RlVW5pdHMubGVuZ3RoID4gTUFYX1NJWkUpIHtcclxuICAgICAgICByZXN1bHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLCBjb2RlVW5pdHMpXHJcbiAgICAgICAgY29kZVVuaXRzLmxlbmd0aCA9IDBcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdFxyXG4gIH1cclxuIiwiY29uc3QgU1ZHcyA9IHtcclxuICBhY3Rpdml0eTogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIj48cGF0aCBkPVwiTTEyIDBDNS4zNzMgMCAwIDUuMzcyIDAgMTJjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMiA2LjYyOCAwIDEyLTUuMzczIDEyLTEyIDAtNi42MjgtNS4zNzItMTItMTItMTJtOS45NDkgMTFIMTcuMDVjLjIyNC0yLjUyNyAxLjIzMi00Ljc3MyAxLjk2OC02LjExM0E5Ljk2NiA5Ljk2NiAwIDAgMSAyMS45NDkgMTFNMTMgMTFWMi4wNTFhOS45NDUgOS45NDUgMCAwIDEgNC40MzIgMS41NjRjLS44NTggMS40OTEtMi4xNTYgNC4yMi0yLjM5MiA3LjM4NUgxM3ptLTIgMEg4Ljk2MWMtLjIzOC0zLjE2NS0xLjUzNi01Ljg5NC0yLjM5My03LjM4NUE5Ljk1IDkuOTUgMCAwIDEgMTEgMi4wNTFWMTF6bTAgMnY4Ljk0OWE5LjkzNyA5LjkzNyAwIDAgMS00LjQzMi0xLjU2NGMuODU3LTEuNDkyIDIuMTU1LTQuMjIxIDIuMzkzLTcuMzg1SDExem00LjA0IDBjLjIzNiAzLjE2NCAxLjUzNCA1Ljg5MyAyLjM5MiA3LjM4NUE5LjkyIDkuOTIgMCAwIDEgMTMgMjEuOTQ5VjEzaDIuMDR6TTQuOTgyIDQuODg3QzUuNzE4IDYuMjI3IDYuNzI2IDguNDczIDYuOTUxIDExaC00LjlhOS45NzcgOS45NzcgMCAwIDEgMi45MzEtNi4xMTNNMi4wNTEgMTNoNC45Yy0uMjI2IDIuNTI3LTEuMjMzIDQuNzcxLTEuOTY5IDYuMTEzQTkuOTcyIDkuOTcyIDAgMCAxIDIuMDUxIDEzbTE2Ljk2NyA2LjExM2MtLjczNS0xLjM0Mi0xLjc0NC0zLjU4Ni0xLjk2OC02LjExM2g0Ljg5OWE5Ljk2MSA5Ljk2MSAwIDAgMS0yLjkzMSA2LjExM1wiLz48L3N2Zz5gLFxyXG5cclxuICBjdXN0b206IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCI+PGcgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDIuMDAwMDAwLCAxLjAwMDAwMClcIj48cmVjdCBpZD1cIlJlY3RhbmdsZVwiIHg9XCI4XCIgeT1cIjBcIiB3aWR0aD1cIjNcIiBoZWlnaHQ9XCIyMVwiIHJ4PVwiMS41XCI+PC9yZWN0PjxyZWN0IGlkPVwiUmVjdGFuZ2xlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDkuODQzLCAxMC41NDkpIHJvdGF0ZSg2MCkgdHJhbnNsYXRlKC05Ljg0MywgLTEwLjU0OSkgXCIgeD1cIjguMzQzXCIgeT1cIjAuMDQ5XCIgd2lkdGg9XCIzXCIgaGVpZ2h0PVwiMjFcIiByeD1cIjEuNVwiPjwvcmVjdD48cmVjdCBpZD1cIlJlY3RhbmdsZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSg5Ljg0MywgMTAuNTQ5KSByb3RhdGUoLTYwKSB0cmFuc2xhdGUoLTkuODQzLCAtMTAuNTQ5KSBcIiB4PVwiOC4zNDNcIiB5PVwiMC4wNDlcIiB3aWR0aD1cIjNcIiBoZWlnaHQ9XCIyMVwiIHJ4PVwiMS41XCI+PC9yZWN0PjwvZz48L3N2Zz5gLFxyXG5cclxuICBmbGFnczogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIj48cGF0aCBkPVwiTTAgMGw2LjA4NCAyNEg4TDEuOTE2IDB6TTIxIDVoLTRsLTEtNEg0bDMgMTJoM2wxIDRoMTNMMjEgNXpNNi41NjMgM2g3Ljg3NWwyIDhIOC41NjNsLTItOHptOC44MzIgMTBsLTIuODU2IDEuOTA0TDEyLjA2MyAxM2gzLjMzMnpNMTkgMTNsLTEuNS02aDEuOTM4bDIgOEgxNmwzLTJ6XCIvPjwvc3ZnPmAsXHJcblxyXG4gIGZvb2RzOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjxwYXRoIGQ9XCJNMTcgNC45NzhjLTEuODM4IDAtMi44NzYuMzk2LTMuNjguOTM0LjUxMy0xLjE3MiAxLjc2OC0yLjkzNCA0LjY4LTIuOTM0YTEgMSAwIDAgMCAwLTJjLTIuOTIxIDAtNC42MjkgMS4zNjUtNS41NDcgMi41MTItLjA2NC4wNzgtLjExOS4xNjItLjE4LjI0NEMxMS43MyAxLjgzOCAxMC43OTguMDIzIDkuMjA3LjAyMyA4LjU3OS4wMjIgNy44NS4zMDYgNyAuOTc4IDUuMDI3IDIuNTQgNS4zMjkgMy45MDIgNi40OTIgNC45OTkgMy42MDkgNS4yMjIgMCA3LjM1MiAwIDEyLjk2OWMwIDQuNTgyIDQuOTYxIDExLjAwOSA5IDExLjAwOSAxLjk3NSAwIDIuMzcxLS40ODYgMy0xIC42MjkuNTE0IDEuMDI1IDEgMyAxIDQuMDM5IDAgOS02LjQxOCA5LTExIDAtNS45NTMtNC4wNTUtOC03LThNOC4yNDIgMi41NDZjLjY0MS0uNTA4Ljk0My0uNTIzLjk2NS0uNTIzLjQyNi4xNjkuOTc1IDEuNDA1IDEuMzU3IDMuMDU1LTEuNTI3LS42MjktMi43NDEtMS4zNTItMi45OC0xLjg0Ni4wNTktLjExMi4yNDEtLjM1Ni42NTgtLjY4Nk0xNSAyMS45NzhjLTEuMDggMC0xLjIxLS4xMDktMS41NTktLjQwMmwtLjE3Ni0uMTQ2Yy0uMzY3LS4zMDItLjgxNi0uNDUyLTEuMjY2LS40NTJzLS44OTguMTUtMS4yNjYuNDUybC0uMTc2LjE0NmMtLjM0Ny4yOTItLjQ3Ny40MDItMS41NTcuNDAyLTIuODEzIDAtNy01LjM4OS03LTkuMDA5IDAtNS44MjMgNC40ODgtNS45OTEgNS01Ljk5MSAxLjkzOSAwIDIuNDg0LjQ3MSAzLjM4NyAxLjI1MWwuMzIzLjI3NmExLjk5NSAxLjk5NSAwIDAgMCAyLjU4IDBsLjMyMy0uMjc2Yy45MDItLjc4IDEuNDQ3LTEuMjUxIDMuMzg3LTEuMjUxLjUxMiAwIDUgLjE2OCA1IDYgMCAzLjYxNy00LjE4NyA5LTcgOVwiLz48L3N2Zz5gLFxyXG5cclxuICBuYXR1cmU6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCI+PHBhdGggZD1cIk0xNS41IDhhMS41IDEuNSAwIDEgMCAuMDAxIDMuMDAxQTEuNSAxLjUgMCAwIDAgMTUuNSA4TTguNSA4YTEuNSAxLjUgMCAxIDAgLjAwMSAzLjAwMUExLjUgMS41IDAgMCAwIDguNSA4XCIvPjxwYXRoIGQ9XCJNMTguOTMzIDBoLS4wMjdjLS45NyAwLTIuMTM4Ljc4Ny0zLjAxOCAxLjQ5Ny0xLjI3NC0uMzc0LTIuNjEyLS41MS0zLjg4Ny0uNTEtMS4yODUgMC0yLjYxNi4xMzMtMy44NzQuNTE3QzcuMjQ1Ljc5IDYuMDY5IDAgNS4wOTMgMGgtLjAyN0MzLjM1MiAwIC4wNyAyLjY3LjAwMiA3LjAyNmMtLjAzOSAyLjQ3OS4yNzYgNC4yMzggMS4wNCA1LjAxMy4yNTQuMjU4Ljg4Mi42NzcgMS4yOTUuODgyLjE5MSAzLjE3Ny45MjIgNS4yMzggMi41MzYgNi4zOC44OTcuNjM3IDIuMTg3Ljk0OSAzLjIgMS4xMDJDOC4wNCAyMC42IDggMjAuNzk1IDggMjFjMCAxLjc3MyAyLjM1IDMgNCAzIDEuNjQ4IDAgNC0xLjIyNyA0LTMgMC0uMjAxLS4wMzgtLjM5My0uMDcyLS41ODYgMi41NzMtLjM4NSA1LjQzNS0xLjg3NyA1LjkyNS03LjU4Ny4zOTYtLjIyLjg4Ny0uNTY4IDEuMTA0LS43ODguNzYzLS43NzQgMS4wNzktMi41MzQgMS4wNC01LjAxM0MyMy45MjkgMi42NyAyMC42NDYgMCAxOC45MzMgME0zLjIyMyA5LjEzNWMtLjIzNy4yODEtLjgzNyAxLjE1NS0uODg0IDEuMjM4LS4xNS0uNDEtLjM2OC0xLjM0OS0uMzM3LTMuMjkxLjA1MS0zLjI4MSAyLjQ3OC00Ljk3MiAzLjA5MS01LjAzMS4yNTYuMDE1LjczMS4yNyAxLjI2NS42NDYtMS4xMSAxLjE3MS0yLjI3NSAyLjkxNS0yLjM1MiA1LjEyNS0uMTMzLjU0Ni0uMzk4Ljg1OC0uNzgzIDEuMzEzTTEyIDIyYy0uOTAxIDAtMS45NTQtLjY5My0yLTEgMC0uNjU0LjQ3NS0xLjIzNiAxLTEuNjAyVjIwYTEgMSAwIDEgMCAyIDB2LS42MDJjLjUyNC4zNjUgMSAuOTQ3IDEgMS42MDItLjA0Ni4zMDctMS4wOTkgMS0yIDFtMy0zLjQ4di4wMmE0Ljc1MiA0Ljc1MiAwIDAgMC0xLjI2Mi0xLjAyYzEuMDkyLS41MTYgMi4yMzktMS4zMzQgMi4yMzktMi4yMTcgMC0xLjg0Mi0xLjc4MS0yLjE5NS0zLjk3Ny0yLjE5NS0yLjE5NiAwLTMuOTc4LjM1NC0zLjk3OCAyLjE5NSAwIC44ODMgMS4xNDggMS43MDEgMi4yMzggMi4yMTdBNC44IDQuOCAwIDAgMCA5IDE4LjUzOXYtLjAyNWMtMS0uMDc2LTIuMTgyLS4yODEtMi45NzMtLjg0Mi0xLjMwMS0uOTItMS44MzgtMy4wNDUtMS44NTMtNi40NzhsLjAyMy0uMDQxYy40OTYtLjgyNiAxLjQ5LTEuNDUgMS44MDQtMy4xMDIgMC0yLjA0NyAxLjM1Ny0zLjYzMSAyLjM2Mi00LjUyMkM5LjM3IDMuMTc4IDEwLjU1NSAzIDExLjk0OCAzYzEuNDQ3IDAgMi42ODUuMTkyIDMuNzMzLjU3IDEgLjkgMi4zMTYgMi40NjUgMi4zMTYgNC40OC4zMTMgMS42NTEgMS4zMDcgMi4yNzUgMS44MDMgMy4xMDIuMDM1LjA1OC4wNjguMTE3LjEwMi4xNzgtLjA1OSA1Ljk2Ny0xLjk0OSA3LjAxLTQuOTAyIDcuMTltNi42MjgtOC4yMDJjLS4wMzctLjA2NS0uMDc0LS4xMy0uMTEzLS4xOTVhNy41ODcgNy41ODcgMCAwIDAtLjczOS0uOTg3Yy0uMzg1LS40NTUtLjY0OC0uNzY4LS43ODItMS4zMTMtLjA3Ni0yLjIwOS0xLjI0MS0zLjk1NC0yLjM1My01LjEyNC41MzEtLjM3NiAxLjAwNC0uNjMgMS4yNjEtLjY0Ny42MzYuMDcxIDMuMDQ0IDEuNzY0IDMuMDk2IDUuMDMxLjAyNyAxLjgxLS4zNDcgMy4yMTgtLjM3IDMuMjM1XCIvPjwvc3ZnPmAsXHJcblxyXG4gIG9iamVjdHM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCI+PHBhdGggZD1cIk0xMiAwYTkgOSAwIDAgMC01IDE2LjQ4MlYyMXMyLjAzNSAzIDUgMyA1LTMgNS0zdi00LjUxOEE5IDkgMCAwIDAgMTIgMHptMCAyYzMuODYgMCA3IDMuMTQxIDcgN3MtMy4xNCA3LTcgNy03LTMuMTQxLTctNyAzLjE0LTcgNy03ek05IDE3LjQ3N2MuOTQuMzMyIDEuOTQ2LjUyMyAzIC41MjNzMi4wNi0uMTkgMy0uNTIzdi44MzRjLS45MS40MzYtMS45MjUuNjg5LTMgLjY4OWE2LjkyNCA2LjkyNCAwIDAgMS0zLS42OXYtLjgzM3ptLjIzNiAzLjA3QTguODU0IDguODU0IDAgMCAwIDEyIDIxYy45NjUgMCAxLjg4OC0uMTY3IDIuNzU4LS40NTFDMTQuMTU1IDIxLjE3MyAxMy4xNTMgMjIgMTIgMjJjLTEuMTAyIDAtMi4xMTctLjc4OS0yLjc2NC0xLjQ1M3pcIi8+PHBhdGggZD1cIk0xNC43NDUgMTIuNDQ5aC0uMDA0Yy0uODUyLS4wMjQtMS4xODgtLjg1OC0xLjU3Ny0xLjgyNC0uNDIxLTEuMDYxLS43MDMtMS41NjEtMS4xODItMS41NjZoLS4wMDljLS40ODEgMC0uNzgzLjQ5Ny0xLjIzNSAxLjUzNy0uNDM2Ljk4Mi0uODAxIDEuODExLTEuNjM2IDEuNzkxbC0uMjc2LS4wNDNjLS41NjUtLjE3MS0uODUzLS42OTEtMS4yODQtMS43OTQtLjEyNS0uMzEzLS4yMDItLjYzMi0uMjctLjkxMy0uMDUxLS4yMTMtLjEyNy0uNTMtLjE5NS0uNjM0QzcuMDY3IDkuMDA0IDcuMDM5IDkgNi45OSA5QTEgMSAwIDAgMSA3IDdoLjAxYzEuNjYyLjAxNyAyLjAxNSAxLjM3MyAyLjE5OCAyLjEzNC40ODYtLjk4MSAxLjMwNC0yLjA1OCAyLjc5Ny0yLjA3NSAxLjUzMS4wMTggMi4yOCAxLjE1MyAyLjczMSAyLjE0MWwuMDAyLS4wMDhDMTQuOTQ0IDguNDI0IDE1LjMyNyA3IDE2Ljk3OSA3aC4wMzJBMSAxIDAgMSAxIDE3IDloLS4wMTFjLS4xNDkuMDc2LS4yNTYuNDc0LS4zMTkuNzA5YTYuNDg0IDYuNDg0IDAgMCAxLS4zMTEuOTUxYy0uNDI5Ljk3My0uNzkgMS43ODktMS42MTQgMS43ODlcIi8+PC9zdmc+YCxcclxuXHJcbiAgc21pbGV5czogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIj48cGF0aCBkPVwiTTEyIDBDNS4zNzMgMCAwIDUuMzczIDAgMTJzNS4zNzMgMTIgMTIgMTIgMTItNS4zNzMgMTItMTJTMTguNjI3IDAgMTIgMG0wIDIyQzYuNDg2IDIyIDIgMTcuNTE0IDIgMTJTNi40ODYgMiAxMiAyczEwIDQuNDg2IDEwIDEwLTQuNDg2IDEwLTEwIDEwXCIvPjxwYXRoIGQ9XCJNOCA3YTIgMiAwIDEgMC0uMDAxIDMuOTk5QTIgMiAwIDAgMCA4IDdNMTYgN2EyIDIgMCAxIDAtLjAwMSAzLjk5OUEyIDIgMCAwIDAgMTYgN00xNS4yMzIgMTVjLS42OTMgMS4xOTUtMS44NyAyLTMuMzQ5IDItMS40NzcgMC0yLjY1NS0uODA1LTMuMzQ3LTJIMTVtMy0ySDZhNiA2IDAgMSAwIDEyIDBcIi8+PC9zdmc+YCxcclxuXHJcbiAgcGVvcGxlOiBgPHN2ZyB4bWxuczpzdmc9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGhlaWdodD1cIjI0XCIgd2lkdGg9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj4gPHBhdGggaWQ9XCJwYXRoMzgxNFwiIGQ9XCJtIDMuMzU5MTA4OSwyMS4xNzcyNiBjIDAuMTcyMDM2LDAuMDkzODUgNC4yNjU5OTQsMi4yOTgzNyA4LjgxNDQ0NTEsMi4yOTgzNyA0LjkyNzc2NywwIDguNjcwODk0LC0yLjIxMTg4MyA4LjgyNzgyLC0yLjMwNjAxOSAwLjExMzA3OSwtMC4wNjc4NSAwLjE4MjI2OCwtMC4xOTAwNTEgMC4xODIyNjcsLTAuMzIxOTIzIDAsLTMuMDMxMTkgLTAuOTI5NDk0LC01LjgwNDkzNiAtMi42MTcxOTYsLTcuODEwNzEyIC0xLjE4MDYwMywtMS40MDMxMzQgLTIuNjYxOTE4LC0yLjM1OTUxNiAtNC4yOTU2OTksLTIuNzk5NzkxIDQuNjk5MTE4LC0yLjIzNjI1OCAzLjEwMjMwNiwtOS4yODYxNzE2MiAtMi4wOTcxOTEsLTkuMjg2MTcxNjIgLTUuMTk5NDk3OCwwIC02Ljc5NjMxMDMsNy4wNDk5MTM2MiAtMi4wOTcxOTIsOS4yODYxNzE2MiAtMS42MzM3ODIxLDAuNDQwMjc1IC0zLjExNTA5NzEsMS4zOTY3OTggLTQuMjk1Njk5MSwyLjc5OTc5MSAtMS42ODc3MDMsMi4wMDU3NzYgLTIuNjE3MTk2LDQuNzc5NTIyIC0yLjYxNzE5Niw3LjgxMDcxMiAxLjJlLTYsMC4xMzczNzggMC4wNzUwMzksMC4yNjM3ODUgMC4xOTU2NDEsMC4zMjk1NzIgeiBNIDguMDQzOTMxOSw1LjgzMDg3ODMgQyA4LjA0MzkzMDksMi4xNTE1MjEgMTIuNDkyMTA3LDAuMzA5NTU4MTEgMTUuMDkzNDkxLDIuOTEwOTQxMSAxNy42OTQ4NzQsNS41MTIzMjQxIDE1Ljg1MjkxMSw5Ljk2MDUwMDYgMTIuMTczNTU0LDkuOTYwNSA5Ljg5Mzg5OTEsOS45NTc5MTM1IDguMDQ2NTE4Niw4LjExMDUzMzIgOC4wNDM5MzE5LDUuODMwODc4MyBaIG0gLTEuNjg4NzgyLDcuNjg5NDk3NyBjIDEuNTI0NTM1LC0xLjgxMTQ0OSAzLjU5MDY2MDEsLTIuODA5MDM1IDUuODE4NDA0MSwtMi44MDkwMzUgMi4yMjc3NDQsMCA0LjI5Mzg2OSwwLjk5NzU4NiA1LjgxODQwNCwyLjgwOTAzNSAxLjUzMzYzOSwxLjgyMjU3MSAyLjM5NTkzMiw0LjMzOTg1OCAyLjQzOTE1Miw3LjEwODMwMSAtMC44MDMzNTIsMC40MzQ4NzcgLTQuMTQxNjM2LDIuMDk2MTEyIC04LjI1NzU1NiwyLjA5NjExMiAtMy44MDYyOTIxLDAgLTcuMzkxMDg2MSwtMS42NzEwNDMgLTguMjU3MzY4MSwtMi4xMDQ5ODEgMC4wNDUwNSwtMi43NjUwMTcgMC45MDY5NjgsLTUuMjc4Nzg1IDIuNDM4OTY0LC03LjA5OTQzMiB6XCIgLz4gPHBhdGggaWQ9XCJwYXRoMzgxNlwiIGQ9XCJNIDEyLjE3MzgyOCAwLjM4ODY3MTg4IEMgOS4zMTk4NTEzIDAuMzg4NjcxODcgNy4zNzcwOTg4IDIuMzY3MjI4NSA2Ljg2NTIzNDQgNC42MzA4NTk0IEMgNi40MjE4NjA4IDYuNTkxNjAxNSA3LjExNTM1NjIgOC43Njc2MTE3IDguOTY0ODQzOCAxMC4xMjY5NTMgQyA3LjYxNDEyNDkgMTAuNjc3Mzc2IDYuMzU1MDUxMSAxMS40ODA5NDQgNS4zNDk2MDk0IDEyLjY3NTc4MSBDIDMuNTYyOTMxNyAxNC43OTkxODUgMi42MDE1NjI1IDE3LjcwMTQ3NSAyLjYwMTU2MjUgMjAuODQ3NjU2IEMgMi42MDE1NjU0IDIxLjE4OTg2MSAyLjc4OTQyNzYgMjEuNTA4MDAyIDMuMDg5ODQzOCAyMS42NzE4NzUgQyAzLjMwNDQwNjggMjEuNzg4OTI1IDcuNDQzNjIzOSAyNC4wMzkwNjIgMTIuMTczODI4IDI0LjAzOTA2MiBDIDE3LjI2OTkxOCAyNC4wMzkwNjIgMjEuMDgzNTY4IDIxLjc3Njc4NiAyMS4yOTEwMTYgMjEuNjUyMzQ0IEMgMjEuNTcyODEgMjEuNDgzMjY2IDIxLjc0NjA5NyAyMS4xNzYyODIgMjEuNzQ2MDk0IDIwLjg0NzY1NiBDIDIxLjc0NjA5NCAxNy43MDE0NzUgMjAuNzgyNzcgMTQuNzk5MTg1IDE4Ljk5NjA5NCAxMi42NzU3ODEgQyAxNy45OTA0NTUgMTEuNDgwNTkxIDE2LjczMzgxOCAxMC42NzUzNjIgMTUuMzgyODEyIDEwLjEyNSBDIDE3LjIzMTEzMiA4Ljc2NTU1NTIgMTcuOTI1Njc1IDYuNTkxMDcwMSAxNy40ODI0MjIgNC42MzA4NTk0IEMgMTYuOTcwNTU3IDIuMzY3MjI4NSAxNS4wMjc4MDUgMC4zODg2NzE4OCAxMi4xNzM4MjggMC4zODg2NzE4OCB6IE0gMTIuNzkyOTY5IDIuMzAwNzgxMiBDIDEzLjQ2NjI1MyAyLjQxNjE3OTIgMTQuMTI1MTEzIDIuNzM4Mzk0MSAxNC42OTUzMTIgMy4zMDg1OTM4IEMgMTUuODM1NzEyIDQuNDQ4OTkzMSAxNS45ODU2MDQgNS45NDczNTQ5IDE1LjQ2ODc1IDcuMTk1MzEyNSBDIDE0Ljk1MTg5NiA4LjQ0MzI3MDEgMTMuNzg2ODI4IDkuMzk4NDM3OCAxMi4xNzM4MjggOS4zOTg0Mzc1IEMgMTAuMTk3NzE5IDkuMzk2MTk1NCA4LjYwNzcxMSA3LjgwNjE4NyA4LjYwNTQ2ODggNS44MzAwNzgxIEMgOC42MDU0NjgzIDQuMjE3MDc4NSA5LjU2MDYzNjIgMy4wNTIwMTAyIDEwLjgwODU5NCAyLjUzNTE1NjIgQyAxMS40MzI1NzMgMi4yNzY3MjkzIDEyLjExOTY4NSAyLjE4NTM4MzMgMTIuNzkyOTY5IDIuMzAwNzgxMiB6IE0gMTIuMTczODI4IDExLjI3MzQzOCBDIDE0LjIzMzY0NyAxMS4yNzM0MzggMTYuMTMzNjc0IDEyLjE4NTA4NCAxNy41NjI1IDEzLjg4MjgxMiBDIDE4LjkzMDY5IDE1LjUwODc2NSAxOS42OTgzNDcgMTcuNzc2OTY5IDE5LjgwODU5NCAyMC4yODMyMDMgQyAxOC44MDczOTUgMjAuODAwMjM1IDE1Ljg4NjE1NyAyMi4xNjIxMDkgMTIuMTczODI4IDIyLjE2MjEwOSBDIDguNzYxNDYzMiAyMi4xNjIxMDkgNS42MjQ1NzU0IDIwLjc4NzA2OSA0LjUzOTA2MjUgMjAuMjY1NjI1IEMgNC42NTI1ODk2IDE3Ljc2NjcxNyA1LjQyMDMzMTUgMTUuNTA0NzkxIDYuNzg1MTU2MiAxMy44ODI4MTIgQyA4LjIxMzk4MjcgMTIuMTg1MDg0IDEwLjExNDAxIDExLjI3MzQzOCAxMi4xNzM4MjggMTEuMjczNDM4IHogXCIgLz4gPC9zdmc+YCxcclxuXHJcbiAgcGxhY2VzOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjxwYXRoIGQ9XCJNNi41IDEyQzUuMTIyIDEyIDQgMTMuMTIxIDQgMTQuNVM1LjEyMiAxNyA2LjUgMTcgOSAxNS44NzkgOSAxNC41IDcuODc4IDEyIDYuNSAxMm0wIDNjLS4yNzUgMC0uNS0uMjI1LS41LS41cy4yMjUtLjUuNS0uNS41LjIyNS41LjUtLjIyNS41LS41LjVNMTcuNSAxMmMtMS4zNzggMC0yLjUgMS4xMjEtMi41IDIuNXMxLjEyMiAyLjUgMi41IDIuNSAyLjUtMS4xMjEgMi41LTIuNS0xLjEyMi0yLjUtMi41LTIuNW0wIDNjLS4yNzUgMC0uNS0uMjI1LS41LS41cy4yMjUtLjUuNS0uNS41LjIyNS41LjUtLjIyNS41LS41LjVcIi8+PHBhdGggZD1cIk0yMi40ODIgOS40OTRsLTEuMDM5LS4zNDZMMjEuNCA5aC42Yy41NTIgMCAxLS40MzkgMS0uOTkyIDAtLjAwNi0uMDAzLS4wMDgtLjAwMy0uMDA4SDIzYzAtMS0uODg5LTItMS45ODQtMmgtLjY0MmwtLjczMS0xLjcxN0MxOS4yNjIgMy4wMTIgMTguMDkxIDIgMTYuNzY0IDJINy4yMzZDNS45MDkgMiA0LjczOCAzLjAxMiA0LjM1NyA0LjI4M0wzLjYyNiA2aC0uNjQyQzEuODg5IDYgMSA3IDEgOGguMDAzUzEgOC4wMDIgMSA4LjAwOEMxIDguNTYxIDEuNDQ4IDkgMiA5aC42bC0uMDQzLjE0OC0xLjAzOS4zNDZhMi4wMDEgMi4wMDEgMCAwIDAtMS4zNTkgMi4wOTdsLjc1MSA3LjUwOGExIDEgMCAwIDAgLjk5NC45MDFIM3YxYzAgMS4xMDMuODk2IDIgMiAyaDJjMS4xMDQgMCAyLS44OTcgMi0ydi0xaDZ2MWMwIDEuMTAzLjg5NiAyIDIgMmgyYzEuMTA0IDAgMi0uODk3IDItMnYtMWgxLjA5NmEuOTk5Ljk5OSAwIDAgMCAuOTk0LS45MDFsLjc1MS03LjUwOGEyLjAwMSAyLjAwMSAwIDAgMC0xLjM1OS0yLjA5N002LjI3MyA0Ljg1N0M2LjQwMiA0LjQzIDYuNzg4IDQgNy4yMzYgNGg5LjUyN2MuNDQ4IDAgLjgzNC40My45NjMuODU3TDE5LjMxMyA5SDQuNjg4bDEuNTg1LTQuMTQzek03IDIxSDV2LTFoMnYxem0xMiAwaC0ydi0xaDJ2MXptMi4xODktM0gyLjgxMWwtLjY2Mi02LjYwN0wzIDExaDE4bC44NTIuMzkzTDIxLjE4OSAxOHpcIi8+PC9zdmc+YCxcclxuXHJcbiAgcmVjZW50OiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjxwYXRoIGQ9XCJNMTMgNGgtMmwtLjAwMSA3SDl2MmgydjJoMnYtMmg0di0yaC00elwiLz48cGF0aCBkPVwiTTEyIDBDNS4zNzMgMCAwIDUuMzczIDAgMTJzNS4zNzMgMTIgMTIgMTIgMTItNS4zNzMgMTItMTJTMTguNjI3IDAgMTIgMG0wIDIyQzYuNDg2IDIyIDIgMTcuNTE0IDIgMTJTNi40ODYgMiAxMiAyczEwIDQuNDg2IDEwIDEwLTQuNDg2IDEwLTEwIDEwXCIvPjwvc3ZnPmAsXHJcblxyXG4gIHN5bWJvbHM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCI+PHBhdGggZD1cIk0wIDBoMTF2Mkgwek00IDExaDNWNmg0VjRIMHYyaDR6TTE1LjUgMTdjMS4zODEgMCAyLjUtMS4xMTYgMi41LTIuNDkzcy0xLjExOS0yLjQ5My0yLjUtMi40OTNTMTMgMTMuMTMgMTMgMTQuNTA3IDE0LjExOSAxNyAxNS41IDE3bTAtMi45ODZjLjI3NiAwIC41LjIyMi41LjQ5MyAwIC4yNzItLjIyNC40OTMtLjUuNDkzcy0uNS0uMjIxLS41LS40OTMuMjI0LS40OTMuNS0uNDkzTTIxLjUgMTkuMDE0Yy0xLjM4MSAwLTIuNSAxLjExNi0yLjUgMi40OTNTMjAuMTE5IDI0IDIxLjUgMjRzMi41LTEuMTE2IDIuNS0yLjQ5My0xLjExOS0yLjQ5My0yLjUtMi40OTNtMCAyLjk4NmEuNDk3LjQ5NyAwIDAgMS0uNS0uNDkzYzAtLjI3MS4yMjQtLjQ5My41LS40OTNzLjUuMjIyLjUuNDkzYS40OTcuNDk3IDAgMCAxLS41LjQ5M00yMiAxM2wtOSA5IDEuNTEzIDEuNSA4Ljk5LTkuMDA5ek0xNyAxMWMyLjIwOSAwIDQtMS4xMTkgNC0yLjVWMnMuOTg1LS4xNjEgMS40OTguOTQ5QzIzLjAxIDQuMDU1IDIzIDYgMjMgNnMxLTEuMTE5IDEtMy4xMzVDMjQtLjAyIDIxIDAgMjEgMGgtMnY2LjM0N0E1Ljg1MyA1Ljg1MyAwIDAgMCAxNyA2Yy0yLjIwOSAwLTQgMS4xMTktNCAyLjVzMS43OTEgMi41IDQgMi41TTEwLjI5NyAyMC40ODJsLTEuNDc1LTEuNTg1YTQ3LjU0IDQ3LjU0IDAgMCAxLTEuNDQyIDEuMTI5Yy0uMzA3LS4yODgtLjk4OS0xLjAxNi0yLjA0NS0yLjE4My45MDItLjgzNiAxLjQ3OS0xLjQ2NiAxLjcyOS0xLjg5MnMuMzc2LS44NzEuMzc2LTEuMzM2YzAtLjU5Mi0uMjczLTEuMTc4LS44MTgtMS43NTktLjU0Ni0uNTgxLTEuMzI5LS44NzEtMi4zNDktLjg3MS0xLjAwOCAwLTEuNzkuMjkzLTIuMzQ0Ljg3OS0uNTU2LjU4Ny0uODMyIDEuMTgxLS44MzIgMS43ODQgMCAuODEzLjQxOSAxLjc0OCAxLjI1NiAyLjgwNS0uODQ3LjYxNC0xLjQ0NCAxLjIwOC0xLjc5NCAxLjc4NGEzLjQ2NSAzLjQ2NSAwIDAgMC0uNTIzIDEuODMzYzAgLjg1Ny4zMDggMS41Ni45MjQgMi4xMDcuNjE2LjU0OSAxLjQyMy44MjMgMi40Mi44MjMgMS4xNzMgMCAyLjQ0NC0uMzc5IDMuODEzLTEuMTM3TDguMjM1IDI0aDIuODE5bC0yLjA5LTIuMzgzIDEuMzMzLTEuMTM1em0tNi43MzYtNi4zODlhMS4wMiAxLjAyIDAgMCAxIC43My0uMjg2Yy4zMSAwIC41NTkuMDg1Ljc0Ny4yNTRhLjg0OS44NDkgMCAwIDEgLjI4My42NTljMCAuNTE4LS40MTkgMS4xMTItMS4yNTcgMS43ODQtLjUzNi0uNjUxLS44MDUtMS4yMzEtLjgwNS0xLjc0MmEuOTAxLjkwMSAwIDAgMSAuMzAyLS42NjlNMy43NCAyMmMtLjQyNyAwLS43NzgtLjExNi0xLjA1Ny0uMzQ5LS4yNzktLjIzMi0uNDE4LS40ODctLjQxOC0uNzY2IDAtLjU5NC41MDktMS4yODggMS41MjctMi4wODMuOTY4IDEuMTM0IDEuNzE3IDEuOTQ2IDIuMjQ4IDIuNDM4LS45MjEuNTA3LTEuNjg2Ljc2LTIuMy43NlwiLz48L3N2Zz5gLFxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBTVkdzXHJcbiIsImNvbnN0IG1hcHBpbmcgPSB7XHJcbiAgbmFtZTogJ2EnLFxyXG4gIHVuaWZpZWQ6ICdiJyxcclxuICBub25fcXVhbGlmaWVkOiAnYycsXHJcbiAgaGFzX2ltZ19hcHBsZTogJ2QnLFxyXG4gIGhhc19pbWdfZ29vZ2xlOiAnZScsXHJcbiAgaGFzX2ltZ190d2l0dGVyOiAnZicsXHJcbiAgaGFzX2ltZ19mYWNlYm9vazogJ2gnLFxyXG4gIGtleXdvcmRzOiAnaicsXHJcbiAgc2hlZXQ6ICdrJyxcclxuICBlbW90aWNvbnM6ICdsJyxcclxuICB0ZXh0OiAnbScsXHJcbiAgc2hvcnRfbmFtZXM6ICduJyxcclxuICBhZGRlZF9pbjogJ28nLFxyXG59XHJcblxyXG5jb25zdCBidWlsZFNlYXJjaCA9IChlbW9qaSkgPT4ge1xyXG4gIGNvbnN0IHNlYXJjaCA9IFtdXHJcblxyXG4gIHZhciBhZGRUb1NlYXJjaCA9IChzdHJpbmdzLCBzcGxpdCkgPT4ge1xyXG4gICAgaWYgKCFzdHJpbmdzKSB7XHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG5cclxuICAgIDsoQXJyYXkuaXNBcnJheShzdHJpbmdzKSA/IHN0cmluZ3MgOiBbc3RyaW5nc10pLmZvckVhY2goKHN0cmluZykgPT4ge1xyXG4gICAgICA7KHNwbGl0ID8gc3RyaW5nLnNwbGl0KC9bLXxffFxcc10rLykgOiBbc3RyaW5nXSkuZm9yRWFjaCgocykgPT4ge1xyXG4gICAgICAgIHMgPSBzLnRvTG93ZXJDYXNlKClcclxuXHJcbiAgICAgICAgaWYgKHNlYXJjaC5pbmRleE9mKHMpID09IC0xKSB7XHJcbiAgICAgICAgICBzZWFyY2gucHVzaChzKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBhZGRUb1NlYXJjaChlbW9qaS5zaG9ydF9uYW1lcywgdHJ1ZSlcclxuICBhZGRUb1NlYXJjaChlbW9qaS5uYW1lLCB0cnVlKVxyXG4gIGFkZFRvU2VhcmNoKGVtb2ppLmtleXdvcmRzLCBmYWxzZSlcclxuICBhZGRUb1NlYXJjaChlbW9qaS5lbW90aWNvbnMsIGZhbHNlKVxyXG5cclxuICByZXR1cm4gc2VhcmNoLmpvaW4oJywnKVxyXG59XHJcblxyXG5mdW5jdGlvbiBkZWVwRnJlZXplKG9iamVjdCkge1xyXG4gIC8vIFJldHJpZXZlIHRoZSBwcm9wZXJ0eSBuYW1lcyBkZWZpbmVkIG9uIG9iamVjdFxyXG4gIHZhciBwcm9wTmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QpXHJcblxyXG4gIC8vIEZyZWV6ZSBwcm9wZXJ0aWVzIGJlZm9yZSBmcmVlemluZyBzZWxmXHJcbiAgZm9yIChsZXQgbmFtZSBvZiBwcm9wTmFtZXMpIHtcclxuICAgIGxldCB2YWx1ZSA9IG9iamVjdFtuYW1lXVxyXG4gICAgb2JqZWN0W25hbWVdID1cclxuICAgICAgdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyA/IGRlZXBGcmVlemUodmFsdWUpIDogdmFsdWVcclxuICB9XHJcbiAgcmV0dXJuIE9iamVjdC5mcmVlemUob2JqZWN0KVxyXG59XHJcblxyXG5jb25zdCB1bmNvbXByZXNzID0gKGRhdGEpID0+IHtcclxuICBpZiAoIWRhdGEuY29tcHJlc3NlZCkge1xyXG4gICAgcmV0dXJuIGRhdGFcclxuICB9XHJcbiAgZGF0YS5jb21wcmVzc2VkID0gZmFsc2VcclxuXHJcbiAgZm9yIChsZXQgaWQgaW4gZGF0YS5lbW9qaXMpIHtcclxuICAgIGxldCBlbW9qaSA9IGRhdGEuZW1vamlzW2lkXVxyXG5cclxuICAgIGZvciAobGV0IGtleSBpbiBtYXBwaW5nKSB7XHJcbiAgICAgIGVtb2ppW2tleV0gPSBlbW9qaVttYXBwaW5nW2tleV1dXHJcbiAgICAgIGRlbGV0ZSBlbW9qaVttYXBwaW5nW2tleV1dXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFlbW9qaS5zaG9ydF9uYW1lcykgZW1vamkuc2hvcnRfbmFtZXMgPSBbXVxyXG4gICAgZW1vamkuc2hvcnRfbmFtZXMudW5zaGlmdChpZClcclxuXHJcbiAgICBlbW9qaS5zaGVldF94ID0gZW1vamkuc2hlZXRbMF1cclxuICAgIGVtb2ppLnNoZWV0X3kgPSBlbW9qaS5zaGVldFsxXVxyXG4gICAgZGVsZXRlIGVtb2ppLnNoZWV0XHJcblxyXG4gICAgaWYgKCFlbW9qaS50ZXh0KSBlbW9qaS50ZXh0ID0gJydcclxuXHJcbiAgICBpZiAoIWVtb2ppLmFkZGVkX2luKSBlbW9qaS5hZGRlZF9pbiA9IDZcclxuICAgIGVtb2ppLmFkZGVkX2luID0gZW1vamkuYWRkZWRfaW4udG9GaXhlZCgxKVxyXG5cclxuICAgIGVtb2ppLnNlYXJjaCA9IGJ1aWxkU2VhcmNoKGVtb2ppKVxyXG4gIH1cclxuICBkYXRhID0gZGVlcEZyZWV6ZShkYXRhKVxyXG4gIHJldHVybiBkYXRhXHJcbn1cclxuXHJcbmV4cG9ydCB7IGJ1aWxkU2VhcmNoLCB1bmNvbXByZXNzIH1cclxuIiwiaW1wb3J0IHsgaW50ZXJzZWN0LCB1bmlmaWVkVG9OYXRpdmUgfSBmcm9tICcuL2luZGV4J1xyXG5pbXBvcnQgeyB1bmNvbXByZXNzLCBidWlsZFNlYXJjaCB9IGZyb20gJy4vZGF0YSdcclxuaW1wb3J0IGZyZXF1ZW50bHkgZnJvbSAnLi9mcmVxdWVudGx5J1xyXG5cclxuY29uc3QgU0hFRVRfQ09MVU1OUyA9IDYxXHJcbmNvbnN0IENPTE9OU19SRUdFWCA9IC9eKD86XFw6KFteXFw6XSspXFw6KSg/OlxcOnNraW4tdG9uZS0oXFxkKVxcOik/JC9cclxuLy8gU2tpbiB0b25lc1xyXG5jb25zdCBTS0lOUyA9IFsnMUYzRkEnLCAnMUYzRkInLCAnMUYzRkMnLCAnMUYzRkQnLCAnMUYzRkUnLCAnMUYzRkYnXVxyXG5cclxuLyoqXHJcbiAqIEVtb2ppIGRhdGEgc3RydWN0dXJlOlxyXG4gKiB7XHJcbiAqICAgIFwiY29tcHJlc3NlZFwiOiBmYWxzZSxcclxuICogICAgXCJhbGlhc2VzXCI6IHtcclxuICogICAgICBjb2xsaXNpb246IFwiYm9vbVwiXHJcbiAqICAgICAgY29va2luZzogXCJmcmllZF9lZ2dcIlxyXG4gKiAgICAgIGVudmVsb3BlOiBcImVtYWlsXCJcclxuICogICAgICBmYWNlX3dpdGhfZmluZ2VyX2NvdmVyaW5nX2Nsb3NlZF9saXBzOiBcInNodXNoaW5nX2ZhY2VcIlxyXG4gKiAgICAgIC4uLlxyXG4gKiAgICB9LFxyXG4gKiAgICBcImNhdGVnb3JpZXNcIjogWyB7XHJcbiAqICAgICAgaWQ6IFwicGVvcGxlXCIsXHJcbiAqICAgICAgbmFtZTogXCJTbWlsZXlzICYgRW1vdGlvblwiLFxyXG4gKiAgICAgIGVtb2ppczogWyBcImdyaW5uaW5nXCIsIFwiZ3JpblwiLCBcImpveVwiLCAuLi4gXVxyXG4gKiAgICB9LCB7XHJcbiAqICAgICAgaWQ6IFwibmF0dXJlXCIsXHJcbiAqICAgICAgbmFtZTogXCJBbmltYWxzICYgTmF0dXJlXCIsXHJcbiAqICAgICAgZW1vamlzOiBbIFwibW9ua2V5X2ZhY2VcIiwgXCJtb25leVwiLCBcImdvcmlsbGFcIiwgLi4uIF1cclxuICogICAgfSxcclxuICogICAgLi4uXHJcbiAqICAgIF0sXHJcbiAqICAgIFwiZW1vamlzXCI6IFtcclxuICogICAgICBzbWlsZXk6IHtcclxuICogICAgICAgIGFkZGVkX2luOiBcIjYuMFwiLFxyXG4gKiAgICAgICAgZW1vdGljb25zOiBbXCI9KVwiLCBcIj0tKVwiXSxcclxuICogICAgICAgIGhhc19pbWdfYXBwbGU6IHRydWUsXHJcbiAqICAgICAgICBoYXNfaW1nX2ZhY2Vib29rOiB0cnVlLFxyXG4gKiAgICAgICAgaGFzX2ltZ19nb29nbGU6IHRydWUsXHJcbiAqICAgICAgICBoYXNfaW1nX3R3aXR0ZXI6IHRydWUsXHJcbiAqICAgICAgICBrZXl3b3JkczogW1wiZmFjZVwiLCBcImhhcHB5XCIsIFwiam95XCIsIFwiaGFoYVwiLCBcIjpEXCIsIFwiOilcIiwgXCJzbWlsZVwiLCBcImZ1bm55XCJdLFxyXG4gKiAgICAgICAgbmFtZTogXCJTbWlsaW5nIEZhY2Ugd2l0aCBPcGVuIE1vdXRoXCIsXHJcbiAqICAgICAgICBub25fcXVhbGlmaWVkOiB1bmRlZmluZWQsXHJcbiAqICAgICAgICBzZWFyY2g6IFwic21pbGV5LHNtaWxpbmcsZmFjZSx3aXRoLG9wZW4sbW91dGgsaGFwcHksam95LGhhaGEsOmQsOiksc21pbGUsZnVubnksPSksPS0pXCIsXHJcbiAqICAgICAgICBzaGVldF94OiAzMCxcclxuICogICAgICAgIHNoZWV0X3k6IDI3LFxyXG4gKiAgICAgICAgc2hvcnRfbmFtZXM6IFtcInNtaWxleVwiXSxcclxuICogICAgICAgIHRleHQ6IFwiOilcIixcclxuICogICAgICAgIHVuaWZpZWQ6IFwiMUY2MDNcIixcclxuICogICAgICB9LCB7XHJcbiAqICAgICAgKzE6IHsgICAgLy8gZW1vamkgd2l0aCBza2luX3ZhcmlhdGlvbnNcclxuICogICAgICAgICAgLi4uLCAvLyBhbGwgdGhlIHJlZ3VsYXIgZmllbGRzIGFyZSBwcmVzZW50XHJcbiAqICAgICAgICAgIG5hbWU6IFwiVGh1bWJzIFVwIFNpZ25cIixcclxuICogICAgICAgICAgc2hvcnRfbmFtZXM6ICgyKSBbXCIrMVwiLCBcInRodW1ic3VwXCJdLFxyXG4gKiAgICAgICAgICBza2luX3ZhcmlhdGlvbnM6IHtcclxuICogICAgICAgICAgICAxRjNGQjogICAgICAgICAgICAgLy8gZWFjaCB2YXJpYXRpb24gaGFzIGFkZGl0aW9uYWwgc2V0IG9mIGZpZWxkczpcclxuICogICAgICAgICAgICAgIGFkZGVkX2luOiBcIjguMFwiLFxyXG4gKiAgICAgICAgICAgICAgaGFzX2ltZ19hcHBsZTogdHJ1ZSxcclxuICogICAgICAgICAgICAgIGhhc19pbWdfZmFjZWJvb2s6IHRydWUsXHJcbiAqICAgICAgICAgICAgICBoYXNfaW1nX2dvb2dsZTogdHJ1ZSxcclxuICogICAgICAgICAgICAgIGhhc19pbWdfdHdpdHRlcjogdHJ1ZSxcclxuICogICAgICAgICAgICAgIGltYWdlOiBcIjFmNDRkLTFmM2ZiLnBuZ1wiLFxyXG4gKiAgICAgICAgICAgICAgbm9uX3F1YWxpZmllZDogbnVsbCxcclxuICogICAgICAgICAgICAgIHNoZWV0X3g6IDE0LFxyXG4gKiAgICAgICAgICAgICAgc2hlZXRfeTogNTAsXHJcbiAqICAgICAgICAgICAgICB1bmlmaWVkOiBcIjFGNDRELTFGM0ZCXCIsXHJcbiAqICAgICAgICAgICAgMUYzRkI6IHvigKZ9LFxyXG4gKiAgICAgICAgICAgIDFGM0ZDOiB74oCmfSxcclxuICogICAgICAgICAgICAxRjNGRDoge+KApn0sXHJcbiAqICAgICAgICAgICAgMUYzRkU6IHvigKZ9LFxyXG4gKiAgICAgICAgICAgIDFGM0ZGOiB74oCmfVxyXG4gKiAgICAgICAgICAgIH0sXHJcbiAqICAgICAgICAgIC4uLlxyXG4gKiAgICAgIH0sXHJcbiAqICAgICAgYTogeyAgLy8gZW1vamkgd2l0aCBub25fcXVhbGlmaWVkIGZpZWxkIHNldFxyXG4gKiAgICAgICAgYWRkZWRfaW46IFwiNi4wXCIsXHJcbiAqICAgICAgICBlbW90aWNvbnM6IHVuZGVmaW5lZCxcclxuICogICAgICAgIGhhc19pbWdfYXBwbGU6IHRydWUsXHJcbiAqICAgICAgICAuLi5cclxuICogICAgICAgIG5vbl9xdWFsaWZpZWQ6IFwiMUYxNzBcIixcclxuICogICAgICAgIHVuaWZpZWQ6IFwiMUYxNzAtRkUwRlwiLFxyXG4gKiAgICAgfSxcclxuICogICAgIC4uLlxyXG4gKiAgIF1cclxuICogfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBXcmFwcyByYXcgamFzb24gZW1vamkgZGF0YSwgc2VydmVzIGFzIGRhdGEgc291cmNlIGZvclxyXG4gKiBlbW9qaSBwaWNrZXIgY29tcG9uZW50cy5cclxuICpcclxuICogVXNhZ2U6XHJcbiAqXHJcbiAqICAgaW1wb3J0IGRhdGEgZnJvbSAnLi4vZGF0YS9hbGwuanNvbidcclxuICogICBsZXQgaW5kZXggPSBuZXcgRW1vamlJbmRleChkYXRhKVxyXG4gKlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEVtb2ppSW5kZXgge1xyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdG9yLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtvYmplY3R9IGRhdGEgLSBSYXcganNvbiBkYXRhLCBzZWUgdGhlIHN0cnVjdHVyZSBhYm92ZS5cclxuICAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIGFkZGl0aW9uYWwgb3B0aW9ucywgYXMgYW4gb2JqZWN0OlxyXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGVtb2ppc1RvU2hvd0ZpbHRlciAtIG9wdGlvbmFsLCBmdW5jdGlvbiB0byBmaWx0ZXIgb3V0XHJcbiAgICogICBzb21lIGVtb2ppcywgZnVuY3Rpb24oZW1vamkpIHsgcmV0dXJuIHRydWV8ZmFsc2UgfVxyXG4gICAqICAgd2hlcmUgYGVtb2ppYCBpcyBhbiByYXcgZW1vamkgb2JqZWN0LCBzZWUgZGF0YS5lbW9qaXMgYWJvdmUuXHJcbiAgICogQHBhcmFtIHtBcnJheX0gaW5jbHVkZSAtIG9wdGlvbmFsLCBhIGxpc3Qgb2YgY2F0ZWdvcnkgaWRzIHRvIGluY2x1ZGUuXHJcbiAgICogQHBhcmFtIHtBcnJheX0gZXhjbHVkZSAtIG9wdGlvbmFsLCBhIGxpc3Qgb2YgY2F0ZWdvcnkgaWRzIHRvIGV4Y2x1ZGUuXHJcbiAgICogQHBhcmFtIHtBcnJheX0gY3VzdG9tIC0gb3B0aW9uYWwsIGEgbGlzdCBjdXN0b20gZW1vamlzLCBlYWNoIGVtb2ppIGlzXHJcbiAgICogICBhbiBvYmplY3QsIHNlZSBkYXRhLmVtb2ppcyBhYm92ZSBmb3IgZXhhbXBsZXMuXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBkYXRhLFxyXG4gICAge1xyXG4gICAgICBlbW9qaXNUb1Nob3dGaWx0ZXIsXHJcbiAgICAgIGluY2x1ZGUsXHJcbiAgICAgIGV4Y2x1ZGUsXHJcbiAgICAgIGN1c3RvbSxcclxuICAgICAgcmVjZW50LFxyXG4gICAgICByZWNlbnRMZW5ndGggPSAyMCxcclxuICAgIH0gPSB7fSxcclxuICApIHtcclxuICAgIHRoaXMuX2RhdGEgPSB1bmNvbXByZXNzKGRhdGEpXHJcbiAgICAvLyBDYWxsYmFjayB0byBleGNsdWRlIHNwZWNpZmljIGVtb2ppc1xyXG4gICAgdGhpcy5fZW1vamlzRmlsdGVyID0gZW1vamlzVG9TaG93RmlsdGVyIHx8IG51bGxcclxuICAgIC8vIENhdGVnb3JpZXMgdG8gaW5jbHVkZSAvIGV4Y2x1ZGVcclxuICAgIHRoaXMuX2luY2x1ZGUgPSBpbmNsdWRlIHx8IG51bGxcclxuICAgIHRoaXMuX2V4Y2x1ZGUgPSBleGNsdWRlIHx8IG51bGxcclxuICAgIC8vIEN1c3RvbSBlbW9qaXNcclxuICAgIHRoaXMuX2N1c3RvbSA9IGN1c3RvbSB8fCBbXVxyXG4gICAgLy8gUmVjZW50IGVtb2ppc1xyXG4gICAgLy8gVE9ETzogbWFrZSBwYXJhbWV0ZXIgY29uZmlndXJhYmxlXHJcbiAgICB0aGlzLl9yZWNlbnQgPSByZWNlbnQgfHwgZnJlcXVlbnRseS5nZXQocmVjZW50TGVuZ3RoKVxyXG5cclxuICAgIHRoaXMuX2Vtb2ppcyA9IHt9XHJcbiAgICB0aGlzLl9uYXRpdmVFbW9qaXMgPSB7fVxyXG4gICAgdGhpcy5fZW1vdGljb25zID0ge31cclxuXHJcbiAgICB0aGlzLl9jYXRlZ29yaWVzID0gW11cclxuICAgIHRoaXMuX3JlY2VudENhdGVnb3J5ID0geyBpZDogJ3JlY2VudCcsIG5hbWU6ICdSZWNlbnQnLCBlbW9qaXM6IFtdIH1cclxuICAgIHRoaXMuX2N1c3RvbUNhdGVnb3J5ID0geyBpZDogJ2N1c3RvbScsIG5hbWU6ICdDdXN0b20nLCBlbW9qaXM6IFtdIH1cclxuICAgIHRoaXMuX3NlYXJjaEluZGV4ID0ge31cclxuICAgIHRoaXMuYnVpbGRJbmRleCgpXHJcbiAgICBPYmplY3QuZnJlZXplKHRoaXMpXHJcbiAgfVxyXG5cclxuICBidWlsZEluZGV4KCkge1xyXG4gICAgbGV0IGFsbENhdGVnb3JpZXMgPSB0aGlzLl9kYXRhLmNhdGVnb3JpZXNcclxuXHJcbiAgICBpZiAodGhpcy5faW5jbHVkZSkge1xyXG4gICAgICAvLyBSZW1vdmUgY2F0ZWdvcmllcyB0aGF0IGFyZSBub3QgaW4gdGhlIGluY2x1ZGUgbGlzdC5cclxuICAgICAgYWxsQ2F0ZWdvcmllcyA9IGFsbENhdGVnb3JpZXMuZmlsdGVyKChpdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luY2x1ZGUuaW5jbHVkZXMoaXRlbS5pZClcclxuICAgICAgfSlcclxuICAgICAgLy8gU29ydCBjYXRlZ29yaWVzIGFjY29yZGluZyB0byB0aGUgaW5jbHVkZSBsaXN0LlxyXG4gICAgICBhbGxDYXRlZ29yaWVzID0gYWxsQ2F0ZWdvcmllcy5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW5kZXhBID0gdGhpcy5faW5jbHVkZS5pbmRleE9mKGEuaWQpXHJcbiAgICAgICAgY29uc3QgaW5kZXhCID0gdGhpcy5faW5jbHVkZS5pbmRleE9mKGIuaWQpXHJcbiAgICAgICAgaWYgKGluZGV4QSA8IGluZGV4Qikge1xyXG4gICAgICAgICAgcmV0dXJuIC0xXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpbmRleEEgPiBpbmRleEIpIHtcclxuICAgICAgICAgIHJldHVybiAxXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAwXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgYWxsQ2F0ZWdvcmllcy5mb3JFYWNoKChjYXRlZ29yeURhdGEpID0+IHtcclxuICAgICAgaWYgKCF0aGlzLmlzQ2F0ZWdvcnlOZWVkZWQoY2F0ZWdvcnlEYXRhLmlkKSkge1xyXG4gICAgICAgIHJldHVyblxyXG4gICAgICB9XHJcbiAgICAgIGxldCBjYXRlZ29yeSA9IHtcclxuICAgICAgICBpZDogY2F0ZWdvcnlEYXRhLmlkLFxyXG4gICAgICAgIG5hbWU6IGNhdGVnb3J5RGF0YS5uYW1lLFxyXG4gICAgICAgIGVtb2ppczogW10sXHJcbiAgICAgIH1cclxuICAgICAgY2F0ZWdvcnlEYXRhLmVtb2ppcy5mb3JFYWNoKChlbW9qaUlkKSA9PiB7XHJcbiAgICAgICAgbGV0IGVtb2ppID0gdGhpcy5hZGRFbW9qaShlbW9qaUlkKVxyXG4gICAgICAgIGlmIChlbW9qaSkge1xyXG4gICAgICAgICAgY2F0ZWdvcnkuZW1vamlzLnB1c2goZW1vamkpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICBpZiAoY2F0ZWdvcnkuZW1vamlzLmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMuX2NhdGVnb3JpZXMucHVzaChjYXRlZ29yeSlcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgICBpZiAodGhpcy5pc0NhdGVnb3J5TmVlZGVkKCdjdXN0b20nKSkge1xyXG4gICAgICBpZiAodGhpcy5fY3VzdG9tLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBmb3IgKGxldCBjdXN0b21FbW9qaSBvZiB0aGlzLl9jdXN0b20pIHtcclxuICAgICAgICAgIHRoaXMuYWRkQ3VzdG9tRW1vamkoY3VzdG9tRW1vamkpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLl9jdXN0b21DYXRlZ29yeS5lbW9qaXMubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5fY2F0ZWdvcmllcy5wdXNoKHRoaXMuX2N1c3RvbUNhdGVnb3J5KVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNDYXRlZ29yeU5lZWRlZCgncmVjZW50JykpIHtcclxuICAgICAgaWYgKHRoaXMuX3JlY2VudC5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLl9yZWNlbnQubWFwKChpZCkgPT4ge1xyXG4gICAgICAgICAgZm9yIChsZXQgY3VzdG9tRW1vamkgb2YgdGhpcy5fY3VzdG9tQ2F0ZWdvcnkuZW1vamlzKSB7XHJcbiAgICAgICAgICAgIGlmIChjdXN0b21FbW9qaS5pZCA9PT0gaWQpIHtcclxuICAgICAgICAgICAgICB0aGlzLl9yZWNlbnRDYXRlZ29yeS5lbW9qaXMucHVzaChjdXN0b21FbW9qaSlcclxuICAgICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMuaGFzRW1vamkoaWQpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3JlY2VudENhdGVnb3J5LmVtb2ppcy5wdXNoKHRoaXMuZW1vamkoaWQpKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgICAvLyBBZGQgcmVjZW50IGNhdGVnb3J5IHRvIHRoZSB0b3BcclxuICAgICAgaWYgKHRoaXMuX3JlY2VudENhdGVnb3J5LmVtb2ppcy5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLl9jYXRlZ29yaWVzLnVuc2hpZnQodGhpcy5fcmVjZW50Q2F0ZWdvcnkpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpbmQgdGhlIGVtb2ppIGZyb20gdGhlIHN0cmluZ1xyXG4gICAqL1xyXG4gIGZpbmRFbW9qaShlbW9qaSwgc2tpbikge1xyXG4gICAgLy8gMS4gUGFyc2UgYXMgOmVtb2ppX25hbWU6c2tpbi10b25lLXh4OlxyXG4gICAgbGV0IG1hdGNoZXMgPSBlbW9qaS5tYXRjaChDT0xPTlNfUkVHRVgpXHJcblxyXG4gICAgaWYgKG1hdGNoZXMpIHtcclxuICAgICAgZW1vamkgPSBtYXRjaGVzWzFdXHJcbiAgICAgIGlmIChtYXRjaGVzWzJdKSB7XHJcbiAgICAgICAgc2tpbiA9IHBhcnNlSW50KG1hdGNoZXNbMl0sIDEwKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gMi4gQ2hlY2sgaWYgdGhlIHNwZWNpZmllZCBlbW9qaSBpcyBhbiBhbGlhc1xyXG4gICAgaWYgKHRoaXMuX2RhdGEuYWxpYXNlcy5oYXNPd25Qcm9wZXJ0eShlbW9qaSkpIHtcclxuICAgICAgZW1vamkgPSB0aGlzLl9kYXRhLmFsaWFzZXNbZW1vamldXHJcbiAgICB9XHJcblxyXG4gICAgLy8gMy4gQ2hlY2sgaWYgd2UgaGF2ZSB0aGUgc3BlY2lmaWVkIGVtb2ppXHJcbiAgICBpZiAodGhpcy5fZW1vamlzLmhhc093blByb3BlcnR5KGVtb2ppKSkge1xyXG4gICAgICBsZXQgZW1vamlPYmplY3QgPSB0aGlzLl9lbW9qaXNbZW1vamldXHJcbiAgICAgIGlmIChza2luKSB7XHJcbiAgICAgICAgcmV0dXJuIGVtb2ppT2JqZWN0LmdldFNraW4oc2tpbilcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gZW1vamlPYmplY3RcclxuICAgIH1cclxuXHJcbiAgICAvLyA0LiBDaGVjayBpZiB3ZSBoYXZlIHRoZSBzcGVjaWZpZWQgbmF0aXZlIGVtb2ppXHJcbiAgICBpZiAodGhpcy5fbmF0aXZlRW1vamlzLmhhc093blByb3BlcnR5KGVtb2ppKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fbmF0aXZlRW1vamlzW2Vtb2ppXVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGxcclxuICB9XHJcblxyXG4gIGNhdGVnb3JpZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY2F0ZWdvcmllc1xyXG4gIH1cclxuXHJcbiAgZW1vamkoZW1vamlJZCkge1xyXG4gICAgaWYgKHRoaXMuX2RhdGEuYWxpYXNlcy5oYXNPd25Qcm9wZXJ0eShlbW9qaUlkKSkge1xyXG4gICAgICBlbW9qaUlkID0gdGhpcy5fZGF0YS5hbGlhc2VzW2Vtb2ppSWRdXHJcbiAgICB9XHJcbiAgICBsZXQgZW1vamkgPSB0aGlzLl9lbW9qaXNbZW1vamlJZF1cclxuICAgIGlmICghZW1vamkpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW4gbm90IGZpbmQgZW1vamkgYnkgaWQ6ICcgKyBlbW9qaUlkKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGVtb2ppXHJcbiAgfVxyXG5cclxuICBmaXJzdEVtb2ppKCkge1xyXG4gICAgbGV0IGVtb2ppID0gdGhpcy5fZW1vamlzW09iamVjdC5rZXlzKHRoaXMuX2Vtb2ppcylbMF1dXHJcbiAgICBpZiAoIWVtb2ppKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2FuIG5vdCBnZXQgZmlyc3QgZW1vamknKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGVtb2ppXHJcbiAgfVxyXG5cclxuICBoYXNFbW9qaShlbW9qaUlkKSB7XHJcbiAgICBpZiAodGhpcy5fZGF0YS5hbGlhc2VzLmhhc093blByb3BlcnR5KGVtb2ppSWQpKSB7XHJcbiAgICAgIGVtb2ppSWQgPSB0aGlzLl9kYXRhLmFsaWFzZXNbZW1vamlJZF1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9lbW9qaXNbZW1vamlJZF0pIHtcclxuICAgICAgcmV0dXJuIHRydWVcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZVxyXG4gIH1cclxuXHJcbiAgbmF0aXZlRW1vamkodW5pY29kZUVtb2ppKSB7XHJcbiAgICBpZiAodGhpcy5fbmF0aXZlRW1vamlzLmhhc093blByb3BlcnR5KHVuaWNvZGVFbW9qaSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX25hdGl2ZUVtb2ppc1t1bmljb2RlRW1vamldXHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbFxyXG4gIH1cclxuXHJcbiAgc2VhcmNoKHZhbHVlLCBtYXhSZXN1bHRzKSB7XHJcbiAgICBtYXhSZXN1bHRzIHx8IChtYXhSZXN1bHRzID0gNzUpXHJcbiAgICBpZiAoIXZhbHVlLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gbnVsbFxyXG4gICAgfVxyXG4gICAgaWYgKHZhbHVlID09ICctJyB8fCB2YWx1ZSA9PSAnLTEnKSB7XHJcbiAgICAgIHJldHVybiBbdGhpcy5lbW9qaSgnLTEnKV1cclxuICAgIH1cclxuXHJcbiAgICBsZXQgdmFsdWVzID0gdmFsdWUudG9Mb3dlckNhc2UoKS5zcGxpdCgvW1xcc3wsfFxcLXxfXSsvKVxyXG4gICAgbGV0IGFsbFJlc3VsdHMgPSBbXVxyXG5cclxuICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gMikge1xyXG4gICAgICB2YWx1ZXMgPSBbdmFsdWVzWzBdLCB2YWx1ZXNbMV1dXHJcbiAgICB9XHJcblxyXG4gICAgYWxsUmVzdWx0cyA9IHZhbHVlc1xyXG4gICAgICAubWFwKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIC8vIFN0YXJ0IHNlYXJjaGluIGluIHRoZSBnbG9iYWwgbGlzdCBvZiBlbW9qaXNcclxuICAgICAgICBsZXQgZW1vamlzID0gdGhpcy5fZW1vamlzXHJcbiAgICAgICAgbGV0IGN1cnJlbnRJbmRleCA9IHRoaXMuX3NlYXJjaEluZGV4XHJcbiAgICAgICAgbGV0IGxlbmd0aCA9IDBcclxuXHJcbiAgICAgICAgZm9yIChsZXQgY2hhckluZGV4ID0gMDsgY2hhckluZGV4IDwgdmFsdWUubGVuZ3RoOyBjaGFySW5kZXgrKykge1xyXG4gICAgICAgICAgY29uc3QgY2hhciA9IHZhbHVlW2NoYXJJbmRleF1cclxuICAgICAgICAgIGxlbmd0aCsrXHJcblxyXG4gICAgICAgICAgY3VycmVudEluZGV4W2NoYXJdIHx8IChjdXJyZW50SW5kZXhbY2hhcl0gPSB7fSlcclxuICAgICAgICAgIGN1cnJlbnRJbmRleCA9IGN1cnJlbnRJbmRleFtjaGFyXVxyXG5cclxuICAgICAgICAgIGlmICghY3VycmVudEluZGV4LnJlc3VsdHMpIHtcclxuICAgICAgICAgICAgbGV0IHNjb3JlcyA9IHt9XHJcbiAgICAgICAgICAgIGN1cnJlbnRJbmRleC5yZXN1bHRzID0gW11cclxuICAgICAgICAgICAgY3VycmVudEluZGV4LmVtb2ppcyA9IHt9XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBlbW9qaUlkIGluIGVtb2ppcykge1xyXG4gICAgICAgICAgICAgIGxldCBlbW9qaSA9IGVtb2ppc1tlbW9qaUlkXVxyXG4gICAgICAgICAgICAgIC8vIHNlYXJjaCBpcyBhIGNvbW1hLXNlcGFyYXRlZCBzdHJpbmcgd2l0aCB3b3JkcywgcmVsYXRlZFxyXG4gICAgICAgICAgICAgIC8vIHRvIHRoZSBlbW9qaSwgZm9yIGV4YW1wbGU6XHJcbiAgICAgICAgICAgICAgLy8gc2VhcmNoOiBcInNtaWxleSxzbWlsaW5nLGZhY2Usam95LGhhaGEsOmQsOiksc21pbGUsZnVubnksPSksPS0pXCIsXHJcbiAgICAgICAgICAgICAgbGV0IHNlYXJjaCA9IGVtb2ppLl9kYXRhLnNlYXJjaFxyXG4gICAgICAgICAgICAgIGxldCBzdWIgPSB2YWx1ZS5zdWJzdHIoMCwgbGVuZ3RoKVxyXG4gICAgICAgICAgICAgIGxldCBzdWJJbmRleCA9IHNlYXJjaC5pbmRleE9mKHN1YilcclxuICAgICAgICAgICAgICBpZiAoc3ViSW5kZXggIT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIGxldCBzY29yZSA9IHN1YkluZGV4ICsgMVxyXG4gICAgICAgICAgICAgICAgaWYgKHN1YiA9PSBlbW9qaUlkKSBzY29yZSA9IDBcclxuXHJcbiAgICAgICAgICAgICAgICBjdXJyZW50SW5kZXgucmVzdWx0cy5wdXNoKGVtb2ppKVxyXG4gICAgICAgICAgICAgICAgY3VycmVudEluZGV4LmVtb2ppc1tlbW9qaUlkXSA9IGVtb2ppXHJcblxyXG4gICAgICAgICAgICAgICAgc2NvcmVzW2Vtb2ppSWRdID0gc2NvcmVcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY3VycmVudEluZGV4LnJlc3VsdHMuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAgIHZhciBhU2NvcmUgPSBzY29yZXNbYS5pZF0sXHJcbiAgICAgICAgICAgICAgICBiU2NvcmUgPSBzY29yZXNbYi5pZF1cclxuICAgICAgICAgICAgICByZXR1cm4gYVNjb3JlIC0gYlNjb3JlXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLy8gY29udGludWUgc2VhcmNoIGluIHRoZSByZWR1Y2VkIHNldCBvZiBlbW9qaXNcclxuICAgICAgICAgIGVtb2ppcyA9IGN1cnJlbnRJbmRleC5lbW9qaXNcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRJbmRleC5yZXN1bHRzXHJcbiAgICAgICAgLy8gVGhlIFwiZmlsdGVyXCIgY2FsbCByZW1vdmVzIHVuZGVmaW5lZCB2YWx1ZXMgZnJvbSBhbGxSZXN1bHRzXHJcbiAgICAgICAgLy8gYXJyYXksIGZvciBleGFtcGxlLCBpZiB3ZSBoYXZlIFwidGVzdCBcIiAod2l0aCB0cmFpbGluZyBzcGFjZSksXHJcbiAgICAgICAgLy8gd2Ugd2lsbCBnZXQgXCJbQXJyYXksIHVuZGVmaW5lZF1cIiBmb3IgYWxsUmVzdWx0cyBhbmQgYWZ0ZXJcclxuICAgICAgICAvLyB0aGUgXCJmaWx0ZXJcIiBjYWxsIGl0IHdpbGwgdHVybiBpbnRvIFwiW0FycmF5XVwiXHJcbiAgICAgIH0pXHJcbiAgICAgIC5maWx0ZXIoKGEpID0+IGEpXHJcblxyXG4gICAgdmFyIHJlc3VsdHMgPSBudWxsXHJcbiAgICBpZiAoYWxsUmVzdWx0cy5sZW5ndGggPiAxKSB7XHJcbiAgICAgIHJlc3VsdHMgPSBpbnRlcnNlY3QuYXBwbHkobnVsbCwgYWxsUmVzdWx0cylcclxuICAgIH0gZWxzZSBpZiAoYWxsUmVzdWx0cy5sZW5ndGgpIHtcclxuICAgICAgcmVzdWx0cyA9IGFsbFJlc3VsdHNbMF1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlc3VsdHMgPSBbXVxyXG4gICAgfVxyXG4gICAgaWYgKHJlc3VsdHMgJiYgcmVzdWx0cy5sZW5ndGggPiBtYXhSZXN1bHRzKSB7XHJcbiAgICAgIHJlc3VsdHMgPSByZXN1bHRzLnNsaWNlKDAsIG1heFJlc3VsdHMpXHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0c1xyXG4gIH1cclxuXHJcbiAgYWRkQ3VzdG9tRW1vamkoY3VzdG9tRW1vamkpIHtcclxuICAgIGxldCBlbW9qaURhdGEgPSBPYmplY3QuYXNzaWduKHt9LCBjdXN0b21FbW9qaSwge1xyXG4gICAgICBpZDogY3VzdG9tRW1vamkuc2hvcnRfbmFtZXNbMF0sXHJcbiAgICAgIGN1c3RvbTogdHJ1ZSxcclxuICAgIH0pXHJcbiAgICBpZiAoIWVtb2ppRGF0YS5zZWFyY2gpIHtcclxuICAgICAgZW1vamlEYXRhLnNlYXJjaCA9IGJ1aWxkU2VhcmNoKGVtb2ppRGF0YSlcclxuICAgIH1cclxuICAgIGxldCBlbW9qaSA9IG5ldyBFbW9qaURhdGEoZW1vamlEYXRhKVxyXG4gICAgdGhpcy5fZW1vamlzW2Vtb2ppLmlkXSA9IGVtb2ppXHJcbiAgICB0aGlzLl9jdXN0b21DYXRlZ29yeS5lbW9qaXMucHVzaChlbW9qaSlcclxuICAgIHJldHVybiBlbW9qaVxyXG4gIH1cclxuXHJcbiAgYWRkRW1vamkoZW1vamlJZCkge1xyXG4gICAgLy8gV2UgZXhwZWN0IHRoZSBjb3JyZWN0IGVtb2ppIGlkIHRoYXQgaXMgcHJlc2VudCBpbiB0aGUgZW1vamlzIGRhdGEuXHJcbiAgICBsZXQgZGF0YSA9IHRoaXMuX2RhdGEuZW1vamlzW2Vtb2ppSWRdXHJcblxyXG4gICAgaWYgKCF0aGlzLmlzRW1vamlOZWVkZWQoZGF0YSkpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGVtb2ppID0gbmV3IEVtb2ppRGF0YShkYXRhKVxyXG4gICAgdGhpcy5fZW1vamlzW2Vtb2ppSWRdID0gZW1vamlcclxuICAgIGlmIChlbW9qaS5uYXRpdmUpIHtcclxuICAgICAgdGhpcy5fbmF0aXZlRW1vamlzW2Vtb2ppLm5hdGl2ZV0gPSBlbW9qaVxyXG4gICAgfVxyXG4gICAgaWYgKGVtb2ppLl9za2lucykge1xyXG4gICAgICBmb3IgKGxldCBpZHggaW4gZW1vamkuX3NraW5zKSB7XHJcbiAgICAgICAgbGV0IHNraW4gPSBlbW9qaS5fc2tpbnNbaWR4XVxyXG4gICAgICAgIGlmIChza2luLm5hdGl2ZSkge1xyXG4gICAgICAgICAgdGhpcy5fbmF0aXZlRW1vamlzW3NraW4ubmF0aXZlXSA9IHNraW5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoZW1vamkuZW1vdGljb25zKSB7XHJcbiAgICAgIGVtb2ppLmVtb3RpY29ucy5mb3JFYWNoKChlbW90aWNvbikgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLl9lbW90aWNvbnNbZW1vdGljb25dKSB7XHJcbiAgICAgICAgICByZXR1cm5cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fZW1vdGljb25zW2Vtb3RpY29uXSA9IGVtb2ppSWRcclxuICAgICAgfSlcclxuICAgIH1cclxuICAgIHJldHVybiBlbW9qaVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgd2UgbmVlZCB0byBpbmNsdWRlIGdpdmVuIGNhdGVnb3J5LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNhdGVnb3J5X2lkIC0gVGhlIGNhdGVnb3J5IGlkLlxyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IC0gV2hldGhlciB0byBpbmNsdWRlIHRoZSBlbW9qaS5cclxuICAgKi9cclxuICBpc0NhdGVnb3J5TmVlZGVkKGNhdGVnb3J5X2lkKSB7XHJcbiAgICBsZXQgaXNJbmNsdWRlZCA9XHJcbiAgICAgIHRoaXMuX2luY2x1ZGUgJiYgdGhpcy5faW5jbHVkZS5sZW5ndGhcclxuICAgICAgICA/IHRoaXMuX2luY2x1ZGUuaW5kZXhPZihjYXRlZ29yeV9pZCkgPiAtMVxyXG4gICAgICAgIDogdHJ1ZVxyXG4gICAgbGV0IGlzRXhjbHVkZWQgPVxyXG4gICAgICB0aGlzLl9leGNsdWRlICYmIHRoaXMuX2V4Y2x1ZGUubGVuZ3RoXHJcbiAgICAgICAgPyB0aGlzLl9leGNsdWRlLmluZGV4T2YoY2F0ZWdvcnlfaWQpID4gLTFcclxuICAgICAgICA6IGZhbHNlXHJcbiAgICBpZiAoIWlzSW5jbHVkZWQgfHwgaXNFeGNsdWRlZCkge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiB3ZSBuZWVkIHRvIGluY2x1ZGUgZ2l2ZW4gZW1vamkuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge29iamVjdH0gZW1vamkgLSBUaGUgcmF3IGVtb2ppIG9iamVjdC5cclxuICAgKiBAcmV0dXJuIHtib29sZWFufSAtIFdoZXRoZXIgdG8gaW5jbHVkZSB0aGUgZW1vamkuXHJcbiAgICovXHJcbiAgaXNFbW9qaU5lZWRlZChlbW9qaSkge1xyXG4gICAgaWYgKHRoaXMuX2Vtb2ppc0ZpbHRlcikge1xyXG4gICAgICByZXR1cm4gdGhpcy5fZW1vamlzRmlsdGVyKGVtb2ppKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWVcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFbW9qaURhdGEge1xyXG4gIGNvbnN0cnVjdG9yKGRhdGEpIHtcclxuICAgIHRoaXMuX2RhdGEgPSBPYmplY3QuYXNzaWduKHt9LCBkYXRhKVxyXG4gICAgdGhpcy5fc2tpbnMgPSBudWxsXHJcbiAgICBpZiAodGhpcy5fZGF0YS5za2luX3ZhcmlhdGlvbnMpIHtcclxuICAgICAgdGhpcy5fc2tpbnMgPSBbXVxyXG4gICAgICBmb3IgKHZhciBza2luSWR4IGluIFNLSU5TKSB7XHJcbiAgICAgICAgbGV0IHNraW5LZXkgPSBTS0lOU1tza2luSWR4XVxyXG4gICAgICAgIGxldCB2YXJpYXRpb25EYXRhID0gdGhpcy5fZGF0YS5za2luX3ZhcmlhdGlvbnNbc2tpbktleV1cclxuICAgICAgICBsZXQgc2tpbkRhdGEgPSBPYmplY3QuYXNzaWduKHt9LCBkYXRhKVxyXG4gICAgICAgIGZvciAobGV0IGsgaW4gdmFyaWF0aW9uRGF0YSkge1xyXG4gICAgICAgICAgc2tpbkRhdGFba10gPSB2YXJpYXRpb25EYXRhW2tdXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRlbGV0ZSBza2luRGF0YS5za2luX3ZhcmlhdGlvbnNcclxuICAgICAgICBza2luRGF0YVsnc2tpbl90b25lJ10gPSBwYXJzZUludChza2luSWR4KSArIDFcclxuICAgICAgICB0aGlzLl9za2lucy5wdXNoKG5ldyBFbW9qaURhdGEoc2tpbkRhdGEpKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLl9zYW5pdGl6ZWQgPSBzYW5pdGl6ZSh0aGlzLl9kYXRhKVxyXG4gICAgZm9yIChsZXQga2V5IGluIHRoaXMuX3Nhbml0aXplZCkge1xyXG4gICAgICB0aGlzW2tleV0gPSB0aGlzLl9zYW5pdGl6ZWRba2V5XVxyXG4gICAgfVxyXG4gICAgdGhpcy5zaG9ydF9uYW1lcyA9IHRoaXMuX2RhdGEuc2hvcnRfbmFtZXNcclxuICAgIHRoaXMuc2hvcnRfbmFtZSA9IHRoaXMuX2RhdGEuc2hvcnRfbmFtZXNbMF1cclxuICAgIE9iamVjdC5mcmVlemUodGhpcylcclxuICB9XHJcblxyXG4gIGdldFNraW4oc2tpbklkeCkge1xyXG4gICAgaWYgKHNraW5JZHggJiYgc2tpbklkeCAhPSAnbmF0aXZlJyAmJiB0aGlzLl9za2lucykge1xyXG4gICAgICByZXR1cm4gdGhpcy5fc2tpbnNbc2tpbklkeCAtIDFdXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpc1xyXG4gIH1cclxuXHJcbiAgZ2V0UG9zaXRpb24oKSB7XHJcbiAgICBsZXQgYWRqdXN0ZWRDb2x1bW5zID0gU0hFRVRfQ09MVU1OUyAtIDEsXHJcbiAgICAgIHggPSArKCgxMDAgLyBhZGp1c3RlZENvbHVtbnMpICogdGhpcy5fZGF0YS5zaGVldF94KS50b0ZpeGVkKDIpLFxyXG4gICAgICB5ID0gKygoMTAwIC8gYWRqdXN0ZWRDb2x1bW5zKSAqIHRoaXMuX2RhdGEuc2hlZXRfeSkudG9GaXhlZCgyKVxyXG4gICAgcmV0dXJuIGAke3h9JSAke3l9JWBcclxuICB9XHJcblxyXG4gIGFyaWFMYWJlbCgpIHtcclxuICAgIHJldHVybiBbdGhpcy5uYXRpdmVdLmNvbmNhdCh0aGlzLnNob3J0X25hbWVzKS5maWx0ZXIoQm9vbGVhbikuam9pbignLCAnKVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEVtb2ppVmlldyB7XHJcbiAgLyoqXHJcbiAgICogZW1vamkgLSBFbW9qaSB0byBkaXNwbGF5XHJcbiAgICogc2V0IC0gc3RyaW5nLCBlbW9qaSBzZXQgbmFtZVxyXG4gICAqIG5hdGl2ZSAtIGJvb2xlYW4sIHdoZXRoZXIgdG8gcmVuZGVyIG5hdGl2ZSBlbW9qaVxyXG4gICAqIGZhbGxiYWNrIC0gZmFsbGJhY2sgZnVuY3Rpb24gdG8gcmVuZGVyIG1pc3NpbmcgZW1vamksIG9wdGlvbmFsXHJcbiAgICogZW1vamlUb29sdGlwIC0gd2V0aGVyIHdlIG5lZWQgdG8gc2hvdyB0aGUgZW1vamkgdG9vbHRpcCwgb3B0aW9uYWxcclxuICAgKiBlbW9qaVNpemUgLSBlbW9qaSBzaXplIGluIHBpeGVscywgb3B0aW9uYWxcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihlbW9qaSwgc2tpbiwgc2V0LCBuYXRpdmUsIGZhbGxiYWNrLCBlbW9qaVRvb2x0aXAsIGVtb2ppU2l6ZSkge1xyXG4gICAgdGhpcy5fZW1vamkgPSBlbW9qaVxyXG4gICAgdGhpcy5fbmF0aXZlID0gbmF0aXZlXHJcbiAgICB0aGlzLl9za2luID0gc2tpblxyXG4gICAgdGhpcy5fc2V0ID0gc2V0XHJcbiAgICB0aGlzLl9mYWxsYmFjayA9IGZhbGxiYWNrXHJcblxyXG4gICAgdGhpcy5jYW5SZW5kZXIgPSB0aGlzLl9jYW5SZW5kZXIoKVxyXG4gICAgdGhpcy5jc3NDbGFzcyA9IHRoaXMuX2Nzc0NsYXNzKClcclxuICAgIHRoaXMuY3NzU3R5bGUgPSB0aGlzLl9jc3NTdHlsZShlbW9qaVNpemUpXHJcbiAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLl9jb250ZW50KClcclxuICAgIHRoaXMudGl0bGUgPSBlbW9qaVRvb2x0aXAgPT09IHRydWUgPyBlbW9qaS5zaG9ydF9uYW1lIDogbnVsbFxyXG4gICAgdGhpcy5hcmlhTGFiZWwgPSBlbW9qaS5hcmlhTGFiZWwoKVxyXG5cclxuICAgIE9iamVjdC5mcmVlemUodGhpcylcclxuICB9XHJcblxyXG4gIGdldEVtb2ppKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Vtb2ppLmdldFNraW4odGhpcy5fc2tpbilcclxuICB9XHJcblxyXG4gIF9jYW5SZW5kZXIoKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLl9pc0N1c3RvbSgpIHx8IHRoaXMuX2lzTmF0aXZlKCkgfHwgdGhpcy5faGFzRW1vamkoKSB8fCB0aGlzLl9mYWxsYmFja1xyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgX2Nzc0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIFsnZW1vamktc2V0LScgKyB0aGlzLl9zZXQsICdlbW9qaS10eXBlLScgKyB0aGlzLl9lbW9qaVR5cGUoKV1cclxuICB9XHJcblxyXG4gIF9jc3NTdHlsZShlbW9qaVNpemUpIHtcclxuICAgIGxldCBjc3NTdHlsZSA9IHt9XHJcbiAgICBpZiAodGhpcy5faXNDdXN0b20oKSkge1xyXG4gICAgICBjc3NTdHlsZSA9IHtcclxuICAgICAgICBiYWNrZ3JvdW5kSW1hZ2U6ICd1cmwoJyArIHRoaXMuZ2V0RW1vamkoKS5fZGF0YS5pbWFnZVVybCArICcpJyxcclxuICAgICAgICBiYWNrZ3JvdW5kU2l6ZTogJzEwMCUnLFxyXG4gICAgICAgIHdpZHRoOiBlbW9qaVNpemUgKyAncHgnLFxyXG4gICAgICAgIGhlaWdodDogZW1vamlTaXplICsgJ3B4JyxcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLl9oYXNFbW9qaSgpICYmICF0aGlzLl9pc05hdGl2ZSgpKSB7XHJcbiAgICAgIGNzc1N0eWxlID0ge1xyXG4gICAgICAgIGJhY2tncm91bmRQb3NpdGlvbjogdGhpcy5nZXRFbW9qaSgpLmdldFBvc2l0aW9uKCksXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChlbW9qaVNpemUpIHtcclxuICAgICAgaWYgKHRoaXMuX2lzTmF0aXZlKCkpIHtcclxuICAgICAgICAvLyBTZXQgZm9udC1zaXplIGZvciBuYXRpdmUgZW1vamkuXHJcbiAgICAgICAgY3NzU3R5bGUgPSBPYmplY3QuYXNzaWduKGNzc1N0eWxlLCB7XHJcbiAgICAgICAgICAvLyBmb250LXNpemUgaXMgdXNlZCBmb3IgbmF0aXZlIGVtb2ppIHdoaWNoIHdlIG5lZWRcclxuICAgICAgICAgIC8vIHRvIHNjYWxlIHdpdGggMC45NSBmYWN0b3IgdG8gaGF2ZSB0aGVtIGxvb2sgYXBwcm94aW1hdGVseVxyXG4gICAgICAgICAgLy8gdGhlIHNhbWUgc2l6ZSBhcyBpbWFnZS1iYXNlZCBlbW9qaS5cclxuICAgICAgICAgIGZvbnRTaXplOiBNYXRoLnJvdW5kKGVtb2ppU2l6ZSAqIDAuOTUgKiAxMCkgLyAxMCArICdweCcsXHJcbiAgICAgICAgfSlcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBTZXQgd2lkdGgvaGVpZ2h0IGZvciBpbWFnZSBlbW9qaS5cclxuICAgICAgICBjc3NTdHlsZSA9IE9iamVjdC5hc3NpZ24oY3NzU3R5bGUsIHtcclxuICAgICAgICAgIHdpZHRoOiBlbW9qaVNpemUgKyAncHgnLFxyXG4gICAgICAgICAgaGVpZ2h0OiBlbW9qaVNpemUgKyAncHgnLFxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjc3NTdHlsZVxyXG4gIH1cclxuXHJcbiAgX2NvbnRlbnQoKSB7XHJcbiAgICBpZiAodGhpcy5faXNDdXN0b20oKSkge1xyXG4gICAgICByZXR1cm4gJydcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9pc05hdGl2ZSgpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldEVtb2ppKCkubmF0aXZlXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5faGFzRW1vamkoKSkge1xyXG4gICAgICByZXR1cm4gJydcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9mYWxsYmFjayA/IHRoaXMuX2ZhbGxiYWNrKHRoaXMuZ2V0RW1vamkoKSkgOiBudWxsXHJcbiAgfVxyXG5cclxuICBfaXNOYXRpdmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbmF0aXZlXHJcbiAgfVxyXG5cclxuICBfaXNDdXN0b20oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRFbW9qaSgpLmN1c3RvbVxyXG4gIH1cclxuXHJcbiAgX2hhc0Vtb2ppKCkge1xyXG4gICAgaWYgKCF0aGlzLmdldEVtb2ppKCkuX2RhdGEpIHtcclxuICAgICAgLy8gUmV0dXJuIGZhbHNlIGlmIHdlIGhhdmUgbm8gZGF0YS5cclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICBjb25zdCBoYXNJbWFnZSA9IHRoaXMuZ2V0RW1vamkoKS5fZGF0YVsnaGFzX2ltZ18nICsgdGhpcy5fc2V0XVxyXG4gICAgaWYgKGhhc0ltYWdlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gaGFzX2ltZ194eHggaW4gdGhlIGRhdGEsIHdlIGFyZSB3b3JraW5nIHdpdGhcclxuICAgICAgLy8gc3BlY2lmaWMgZGF0YSBmaWxlLCBsaWtlIGZhY2Vib29rLmpzb24sIHNvIHdlIGFzc3VtZSBhbGxcclxuICAgICAgLy8gZW1vamlzIGFyZSBhdmFpbGFibGUgKHRoZSA6c2V0IHNldHRpbmcgZm9yIHBpY2tlciBzaG91bGRcclxuICAgICAgLy8gbWF0Y2ggdGhlIGRhdGEgZmlsZSkuXHJcbiAgICAgIHJldHVybiB0cnVlXHJcbiAgICB9XHJcbiAgICAvLyBPdGhlcndpc2UsIHdlIGFyZSB1c2luZyBhbGwuanNvbiBhbmQgY2FuIHN3aXRjaCBiZXR3ZWVuIGRpZmZlcmVudFxyXG4gICAgLy8gc2V0cyAtIGluIHRoaXMgY2FzZSB0aGUgYGhhc19pbWdfe3NldF9uYW1lfWAgaXMgYSBib29sZWFuIHRoYXRcclxuICAgIC8vIGluZGljYXRlcyBpZiB0aGVyZSBpcyBzdWNoIGltYWdlIG9yIG5vdCBmb3IgYSBnaXZlbiBzZXQuXHJcbiAgICByZXR1cm4gaGFzSW1hZ2VcclxuICB9XHJcblxyXG4gIF9lbW9qaVR5cGUoKSB7XHJcbiAgICBpZiAodGhpcy5faXNDdXN0b20oKSkge1xyXG4gICAgICByZXR1cm4gJ2N1c3RvbSdcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9pc05hdGl2ZSgpKSB7XHJcbiAgICAgIHJldHVybiAnbmF0aXZlJ1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuX2hhc0Vtb2ppKCkpIHtcclxuICAgICAgcmV0dXJuICdpbWFnZSdcclxuICAgIH1cclxuICAgIHJldHVybiAnZmFsbGJhY2snXHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2FuaXRpemUoZW1vamkpIHtcclxuICB2YXIge1xyXG4gICAgICBuYW1lLFxyXG4gICAgICBzaG9ydF9uYW1lcyxcclxuICAgICAgc2tpbl90b25lLFxyXG4gICAgICBza2luX3ZhcmlhdGlvbnMsXHJcbiAgICAgIGVtb3RpY29ucyxcclxuICAgICAgdW5pZmllZCxcclxuICAgICAgY3VzdG9tLFxyXG4gICAgICBpbWFnZVVybCxcclxuICAgIH0gPSBlbW9qaSxcclxuICAgIGlkID0gZW1vamkuaWQgfHwgc2hvcnRfbmFtZXNbMF0sXHJcbiAgICBjb2xvbnMgPSBgOiR7aWR9OmBcclxuXHJcbiAgaWYgKGN1c3RvbSkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaWQsXHJcbiAgICAgIG5hbWUsXHJcbiAgICAgIGNvbG9ucyxcclxuICAgICAgZW1vdGljb25zLFxyXG4gICAgICBjdXN0b20sXHJcbiAgICAgIGltYWdlVXJsLFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaWYgKHNraW5fdG9uZSkge1xyXG4gICAgY29sb25zICs9IGA6c2tpbi10b25lLSR7c2tpbl90b25lfTpgXHJcbiAgfVxyXG5cclxuICByZXR1cm4ge1xyXG4gICAgaWQsXHJcbiAgICBuYW1lLFxyXG4gICAgY29sb25zLFxyXG4gICAgZW1vdGljb25zLFxyXG4gICAgdW5pZmllZDogdW5pZmllZC50b0xvd2VyQ2FzZSgpLFxyXG4gICAgc2tpbjogc2tpbl90b25lIHx8IChza2luX3ZhcmlhdGlvbnMgPyAxIDogbnVsbCksXHJcbiAgICBuYXRpdmU6IHVuaWZpZWRUb05hdGl2ZSh1bmlmaWVkKSxcclxuICB9XHJcbn1cclxuIiwiaW1wb3J0IHN0b3JlIGZyb20gJy4vc3RvcmUnXHJcblxyXG5jb25zdCBERUZBVUxUUyA9IFtcclxuICAnKzEnLFxyXG4gICdncmlubmluZycsXHJcbiAgJ2tpc3NpbmdfaGVhcnQnLFxyXG4gICdoZWFydF9leWVzJyxcclxuICAnbGF1Z2hpbmcnLFxyXG4gICdzdHVja19vdXRfdG9uZ3VlX3dpbmtpbmdfZXllJyxcclxuICAnc3dlYXRfc21pbGUnLFxyXG4gICdqb3knLFxyXG4gICdzY3JlYW0nLFxyXG4gICdkaXNhcHBvaW50ZWQnLFxyXG4gICd1bmFtdXNlZCcsXHJcbiAgJ3dlYXJ5JyxcclxuICAnc29iJyxcclxuICAnc3VuZ2xhc3NlcycsXHJcbiAgJ2hlYXJ0JyxcclxuICAnaGFua2V5JyxcclxuXVxyXG5cclxubGV0IGZyZXF1ZW50bHksIGluaXRpYWxpemVkXHJcbmxldCBkZWZhdWx0cyA9IHt9XHJcblxyXG5mdW5jdGlvbiBpbml0KCkge1xyXG4gIGluaXRpYWxpemVkID0gdHJ1ZVxyXG4gIGZyZXF1ZW50bHkgPSBzdG9yZS5nZXQoJ2ZyZXF1ZW50bHknKVxyXG59XHJcblxyXG5mdW5jdGlvbiBhZGQoZW1vamkpIHtcclxuICBpZiAoIWluaXRpYWxpemVkKSBpbml0KClcclxuICB2YXIgeyBpZCB9ID0gZW1vamlcclxuXHJcbiAgZnJlcXVlbnRseSB8fCAoZnJlcXVlbnRseSA9IGRlZmF1bHRzKVxyXG4gIGZyZXF1ZW50bHlbaWRdIHx8IChmcmVxdWVudGx5W2lkXSA9IDApXHJcbiAgZnJlcXVlbnRseVtpZF0gKz0gMVxyXG5cclxuICBzdG9yZS5zZXQoJ2xhc3QnLCBpZClcclxuICBzdG9yZS5zZXQoJ2ZyZXF1ZW50bHknLCBmcmVxdWVudGx5KVxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXQobWF4TnVtYmVyKSB7XHJcbiAgaWYgKCFpbml0aWFsaXplZCkgaW5pdCgpXHJcbiAgaWYgKCFmcmVxdWVudGx5KSB7XHJcbiAgICBkZWZhdWx0cyA9IHt9XHJcblxyXG4gICAgY29uc3QgcmVzdWx0ID0gW11cclxuXHJcbiAgICBsZXQgZGVmYXVsdExlbmd0aCA9IE1hdGgubWluKG1heE51bWJlciwgREVGQVVMVFMubGVuZ3RoKVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkZWZhdWx0TGVuZ3RoOyBpKyspIHtcclxuICAgICAgZGVmYXVsdHNbREVGQVVMVFNbaV1dID0gcGFyc2VJbnQoKGRlZmF1bHRMZW5ndGggLSBpKSAvIDQsIDEwKSArIDFcclxuICAgICAgcmVzdWx0LnB1c2goREVGQVVMVFNbaV0pXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdFxyXG4gIH1cclxuXHJcbiAgY29uc3QgcXVhbnRpdHkgPSBtYXhOdW1iZXJcclxuICBjb25zdCBmcmVxdWVudGx5S2V5cyA9IFtdXHJcblxyXG4gIGZvciAobGV0IGtleSBpbiBmcmVxdWVudGx5KSB7XHJcbiAgICBpZiAoZnJlcXVlbnRseS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgIGZyZXF1ZW50bHlLZXlzLnB1c2goa2V5KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3Qgc29ydGVkID0gZnJlcXVlbnRseUtleXNcclxuICAgIC5zb3J0KChhLCBiKSA9PiBmcmVxdWVudGx5W2FdIC0gZnJlcXVlbnRseVtiXSlcclxuICAgIC5yZXZlcnNlKClcclxuICBjb25zdCBzbGljZWQgPSBzb3J0ZWQuc2xpY2UoMCwgcXVhbnRpdHkpXHJcblxyXG4gIGNvbnN0IGxhc3QgPSBzdG9yZS5nZXQoJ2xhc3QnKVxyXG5cclxuICBpZiAobGFzdCAmJiBzbGljZWQuaW5kZXhPZihsYXN0KSA9PSAtMSkge1xyXG4gICAgc2xpY2VkLnBvcCgpXHJcbiAgICBzbGljZWQucHVzaChsYXN0KVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHNsaWNlZFxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7IGFkZCwgZ2V0IH1cclxuIiwiaW1wb3J0IHN0cmluZ0Zyb21Db2RlUG9pbnQgZnJvbSAnLi4vcG9seWZpbGxzL3N0cmluZ0Zyb21Db2RlUG9pbnQnXHJcblxyXG5mdW5jdGlvbiB1bmlmaWVkVG9OYXRpdmUodW5pZmllZCkge1xyXG4gIHZhciB1bmljb2RlcyA9IHVuaWZpZWQuc3BsaXQoJy0nKSxcclxuICAgIGNvZGVQb2ludHMgPSB1bmljb2Rlcy5tYXAoKHUpID0+IGAweCR7dX1gKVxyXG5cclxuICByZXR1cm4gc3RyaW5nRnJvbUNvZGVQb2ludC5hcHBseShudWxsLCBjb2RlUG9pbnRzKVxyXG59XHJcblxyXG5mdW5jdGlvbiB1bmlxKGFycikge1xyXG4gIHJldHVybiBhcnIucmVkdWNlKChhY2MsIGl0ZW0pID0+IHtcclxuICAgIGlmIChhY2MuaW5kZXhPZihpdGVtKSA9PT0gLTEpIHtcclxuICAgICAgYWNjLnB1c2goaXRlbSlcclxuICAgIH1cclxuICAgIHJldHVybiBhY2NcclxuICB9LCBbXSlcclxufVxyXG5cclxuZnVuY3Rpb24gaW50ZXJzZWN0KGEsIGIpIHtcclxuICBjb25zdCB1bmlxQSA9IHVuaXEoYSlcclxuICBjb25zdCB1bmlxQiA9IHVuaXEoYilcclxuXHJcbiAgcmV0dXJuIHVuaXFBLmZpbHRlcigoaXRlbSkgPT4gdW5pcUIuaW5kZXhPZihpdGVtKSA+PSAwKVxyXG59XHJcblxyXG5mdW5jdGlvbiBkZWVwTWVyZ2UoYSwgYikge1xyXG4gIHZhciBvID0ge31cclxuXHJcbiAgZm9yIChsZXQga2V5IGluIGEpIHtcclxuICAgIGxldCBvcmlnaW5hbFZhbHVlID0gYVtrZXldLFxyXG4gICAgICB2YWx1ZSA9IG9yaWdpbmFsVmFsdWVcclxuXHJcbiAgICBpZiAoYi5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgIHZhbHVlID0gYltrZXldXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgdmFsdWUgPSBkZWVwTWVyZ2Uob3JpZ2luYWxWYWx1ZSwgdmFsdWUpXHJcbiAgICB9XHJcblxyXG4gICAgb1trZXldID0gdmFsdWVcclxuICB9XHJcblxyXG4gIHJldHVybiBvXHJcbn1cclxuXHJcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zb25pY2RvZS9tZWFzdXJlLXNjcm9sbGJhclxyXG5mdW5jdGlvbiBtZWFzdXJlU2Nyb2xsYmFyKCkge1xyXG4gIGlmICh0eXBlb2YgZG9jdW1lbnQgPT0gJ3VuZGVmaW5lZCcpIHJldHVybiAwXHJcbiAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcclxuXHJcbiAgZGl2LnN0eWxlLndpZHRoID0gJzEwMHB4J1xyXG4gIGRpdi5zdHlsZS5oZWlnaHQgPSAnMTAwcHgnXHJcbiAgZGl2LnN0eWxlLm92ZXJmbG93ID0gJ3Njcm9sbCdcclxuICBkaXYuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnXHJcbiAgZGl2LnN0eWxlLnRvcCA9ICctOTk5OXB4J1xyXG5cclxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdilcclxuICBjb25zdCBzY3JvbGxiYXJXaWR0aCA9IGRpdi5vZmZzZXRXaWR0aCAtIGRpdi5jbGllbnRXaWR0aFxyXG4gIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZGl2KVxyXG5cclxuICByZXR1cm4gc2Nyb2xsYmFyV2lkdGhcclxufVxyXG5cclxuZXhwb3J0IHsgdW5pcSwgaW50ZXJzZWN0LCBkZWVwTWVyZ2UsIHVuaWZpZWRUb05hdGl2ZSwgbWVhc3VyZVNjcm9sbGJhciB9XHJcbiIsImV4cG9ydCBjbGFzcyBQaWNrZXJWaWV3IHtcclxuICBjb25zdHJ1Y3RvcihwaWNrZXJDb21wb25lbnQpIHtcclxuICAgIHRoaXMuX3ZtID0gcGlja2VyQ29tcG9uZW50XHJcbiAgICB0aGlzLl9kYXRhID0gcGlja2VyQ29tcG9uZW50LmRhdGFcclxuICAgIHRoaXMuX3BlckxpbmUgPSBwaWNrZXJDb21wb25lbnQucGVyTGluZVxyXG5cclxuICAgIHRoaXMuX2NhdGVnb3JpZXMgPSBbXVxyXG4gICAgdGhpcy5fY2F0ZWdvcmllcy5wdXNoKC4uLnRoaXMuX2RhdGEuY2F0ZWdvcmllcygpKVxyXG4gICAgdGhpcy5fY2F0ZWdvcmllcyA9IHRoaXMuX2NhdGVnb3JpZXMuZmlsdGVyKChjYXRlZ29yeSkgPT4ge1xyXG4gICAgICByZXR1cm4gY2F0ZWdvcnkuZW1vamlzLmxlbmd0aCA+IDBcclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy5fY2F0ZWdvcmllc1swXS5maXJzdCA9IHRydWVcclxuICAgIE9iamVjdC5mcmVlemUodGhpcy5fY2F0ZWdvcmllcylcclxuXHJcbiAgICB0aGlzLmFjdGl2ZUNhdGVnb3J5ID0gdGhpcy5fY2F0ZWdvcmllc1swXVxyXG4gICAgdGhpcy5zZWFyY2hFbW9qaXMgPSBudWxsXHJcblxyXG4gICAgLy8gUHJldmlldyBlbW9qaSwgc2hvd24gb24gbW91c2Ugb3ZlciBvciB3aGVuIHdlIG1vdmVcclxuICAgIC8vIHdpdGggYXJyb3cga2V5cy5cclxuICAgIHRoaXMucHJldmlld0Vtb2ppID0gbnVsbFxyXG4gICAgLy8gSW5kZXhlcyBhcmUgdXNlZCB0byBrZWVwIHRoZSBwb3NpdGlvbiB3aGVuIG1vdmluZ1xyXG4gICAgLy8gd2l0aCBhcnJvd3M6IGN1cnJlbnQgY2F0ZWdvcnkgYW5kIGN1cnJlbnQgZW1vamlcclxuICAgIC8vIGluc2lkZSB0aGUgY2F0ZWdvcnkuXHJcbiAgICB0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4ID0gMFxyXG4gICAgdGhpcy5wcmV2aWV3RW1vamlJZHggPSAtMVxyXG4gIH1cclxuXHJcbiAgb25TY3JvbGwoKSB7XHJcbiAgICBjb25zdCBzY3JvbGxFbGVtZW50ID0gdGhpcy5fdm0uJHJlZnMuc2Nyb2xsXHJcbiAgICBjb25zdCBzY3JvbGxUb3AgPSBzY3JvbGxFbGVtZW50LnNjcm9sbFRvcFxyXG5cclxuICAgIGxldCBhY3RpdmVDYXRlZ29yeSA9IHRoaXMuZmlsdGVyZWRDYXRlZ29yaWVzWzBdXHJcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHRoaXMuZmlsdGVyZWRDYXRlZ29yaWVzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICBsZXQgY2F0ZWdvcnkgPSB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllc1tpXVxyXG4gICAgICBsZXQgY29tcG9uZW50ID0gdGhpcy5fdm0uZ2V0Q2F0ZWdvcnlDb21wb25lbnQoaSlcclxuICAgICAgLy8gVGhlIGAtNTBgIG9mZnNldCBzd2l0Y2hlcyBhY3RpdmUgY2F0ZWdvcnkgKHNlbGVjdGVkIGluIHRoZVxyXG4gICAgICAvLyBhbmNob3JzIGJhcikgYSBiaXQgZWFyaWxlciwgYmVmb3JlIGl0IGFjdHVhbGx5IHJlYWNoZXMgdGhlIHRvcC5cclxuICAgICAgaWYgKGNvbXBvbmVudCAmJiBjb21wb25lbnQuJGVsLm9mZnNldFRvcCAtIDUwID4gc2Nyb2xsVG9wKSB7XHJcbiAgICAgICAgYnJlYWtcclxuICAgICAgfVxyXG4gICAgICBhY3RpdmVDYXRlZ29yeSA9IGNhdGVnb3J5XHJcbiAgICB9XHJcbiAgICB0aGlzLmFjdGl2ZUNhdGVnb3J5ID0gYWN0aXZlQ2F0ZWdvcnlcclxuICB9XHJcblxyXG4gIGdldCBhbGxDYXRlZ29yaWVzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NhdGVnb3JpZXNcclxuICB9XHJcblxyXG4gIGdldCBmaWx0ZXJlZENhdGVnb3JpZXMoKSB7XHJcbiAgICBpZiAodGhpcy5zZWFyY2hFbW9qaXMpIHtcclxuICAgICAgcmV0dXJuIFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpZDogJ3NlYXJjaCcsXHJcbiAgICAgICAgICBuYW1lOiAnU2VhcmNoJyxcclxuICAgICAgICAgIGVtb2ppczogdGhpcy5zZWFyY2hFbW9qaXMsXHJcbiAgICAgICAgfSxcclxuICAgICAgXVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX2NhdGVnb3JpZXMuZmlsdGVyKChjYXRlZ29yeSkgPT4ge1xyXG4gICAgICBsZXQgaGFzRW1vamlzID0gY2F0ZWdvcnkuZW1vamlzLmxlbmd0aCA+IDBcclxuICAgICAgcmV0dXJuIGhhc0Vtb2ppc1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldCBwcmV2aWV3RW1vamlDYXRlZ29yeSgpIHtcclxuICAgIGlmICh0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4ID49IDApIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRDYXRlZ29yaWVzW3RoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHhdXHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbFxyXG4gIH1cclxuXHJcbiAgb25BbmNob3JDbGljayhjYXRlZ29yeSkge1xyXG4gICAgaWYgKHRoaXMuc2VhcmNoRW1vamlzKSB7XHJcbiAgICAgIC8vIE5vIGNhdGVnb3JpZXMgYXJlIHNob3duIHdoZW4gc2VhcmNoIGlzIGFjdGl2ZS5cclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICBsZXQgaSA9IHRoaXMuZmlsdGVyZWRDYXRlZ29yaWVzLmluZGV4T2YoY2F0ZWdvcnkpXHJcbiAgICBsZXQgY29tcG9uZW50ID0gdGhpcy5fdm0uZ2V0Q2F0ZWdvcnlDb21wb25lbnQoaSlcclxuICAgIGxldCBzY3JvbGxUb0NvbXBvbmVudCA9ICgpID0+IHtcclxuICAgICAgaWYgKGNvbXBvbmVudCkge1xyXG4gICAgICAgIGxldCB0b3AgPSBjb21wb25lbnQuJGVsLm9mZnNldFRvcFxyXG4gICAgICAgIGlmIChjYXRlZ29yeS5maXJzdCkge1xyXG4gICAgICAgICAgdG9wID0gMFxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl92bS4kcmVmcy5zY3JvbGwuc2Nyb2xsVG9wID0gdG9wXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLl92bS5pbmZpbml0ZVNjcm9sbCkge1xyXG4gICAgICBzY3JvbGxUb0NvbXBvbmVudCgpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFjdGl2ZUNhdGVnb3J5ID0gdGhpcy5maWx0ZXJlZENhdGVnb3JpZXNbaV1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VhcmNoKHZhbHVlKSB7XHJcbiAgICBsZXQgZW1vamlzID0gdGhpcy5fZGF0YS5zZWFyY2godmFsdWUsIHRoaXMubWF4U2VhcmNoUmVzdWx0cylcclxuICAgIHRoaXMuc2VhcmNoRW1vamlzID0gZW1vamlzXHJcblxyXG4gICAgdGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeCA9IDBcclxuICAgIHRoaXMucHJldmlld0Vtb2ppSWR4ID0gMFxyXG4gICAgdGhpcy51cGRhdGVQcmV2aWV3RW1vamkoKVxyXG4gIH1cclxuXHJcbiAgb25FbW9qaUVudGVyKGVtb2ppKSB7XHJcbiAgICB0aGlzLnByZXZpZXdFbW9qaSA9IGVtb2ppXHJcbiAgICB0aGlzLnByZXZpZXdFbW9qaUlkeCA9IC0xXHJcbiAgICB0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4ID0gLTFcclxuICB9XHJcblxyXG4gIG9uRW1vamlMZWF2ZShlbW9qaSkge1xyXG4gICAgdGhpcy5wcmV2aWV3RW1vamkgPSBudWxsXHJcbiAgfVxyXG5cclxuICBvbkFycm93TGVmdCgpIHtcclxuICAgIC8vIE1vdmluZyBsZWZ0LCBkZWNyZWFzZSBlbW9qaSBpbmRleC5cclxuICAgIGlmICh0aGlzLnByZXZpZXdFbW9qaUlkeCA+IDApIHtcclxuICAgICAgdGhpcy5wcmV2aWV3RW1vamlJZHggLT0gMVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gSWYgZW1vamkgaW5kZXggaXMgemVybywgZ28gdG8gdGhlIHByZXZpb3VzIGNhdGVnb3J5LlxyXG4gICAgICB0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4IC09IDFcclxuICAgICAgaWYgKHRoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHggPCAwKSB7XHJcbiAgICAgICAgLy8gSWYgd2UgcmVhY2hlZCBmaXJzdCBjYXRlZ29yeSwga2VlcCBpdC5cclxuICAgICAgICB0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4ID0gMFxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIFVwZGF0ZSBlbW9qaSBpbmRleCAtIHdlIG1vdmVkIHRvIHRoZSBwcmV2aW91cyBjYXRlZ29yeSxcclxuICAgICAgICAvLyBnZXQgdGhlIGxhc3QgZW1vamkgaW4gaXQuXHJcbiAgICAgICAgdGhpcy5wcmV2aWV3RW1vamlJZHggPVxyXG4gICAgICAgICAgdGhpcy5maWx0ZXJlZENhdGVnb3JpZXNbdGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeF0uZW1vamlzLmxlbmd0aCAtXHJcbiAgICAgICAgICAxXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRlUHJldmlld0Vtb2ppKClcclxuICB9XHJcblxyXG4gIG9uQXJyb3dSaWdodCgpIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5wcmV2aWV3RW1vamlJZHggPFxyXG4gICAgICB0aGlzLmVtb2ppc0xlbmd0aCh0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4KSAtIDFcclxuICAgICkge1xyXG4gICAgICAvLyBNb3ZpbmcgcmlnaHQgd2l0aGluIGNhdGVnb3J5LCBpbmNyZWFzZSBlbW9qaSBpbmRleC5cclxuICAgICAgdGhpcy5wcmV2aWV3RW1vamlJZHggKz0gMVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gR28gdG8gdGhlIG5leHQgY2F0ZWdvcnkuXHJcbiAgICAgIHRoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHggKz0gMVxyXG4gICAgICBpZiAodGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeCA+PSB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllcy5sZW5ndGgpIHtcclxuICAgICAgICAvLyBJZiB3ZSByZWFjaGVkIHRoZSBsYXN0IGNhdGVnb3J5IC0ga2VlcCBpdC5cclxuICAgICAgICB0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4ID0gdGhpcy5maWx0ZXJlZENhdGVnb3JpZXMubGVuZ3RoIC0gMVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIElmIHdlIG1vdmVkIHRvIHRoZSBuZXh0IGNhdGVnb3J5LCB1cGRhdGUgZW1vamkgaW5kZXggdG8gdGhlXHJcbiAgICAgICAgLy8gZmlyc3QgZW1vamkgaW4gdGhlIG5ldyBjYXRlZ29yeS5cclxuICAgICAgICB0aGlzLnByZXZpZXdFbW9qaUlkeCA9IDBcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGVQcmV2aWV3RW1vamkoKVxyXG4gIH1cclxuXHJcbiAgb25BcnJvd0Rvd24oKSB7XHJcbiAgICAvLyBJZiB3ZSBhcmUgb3V0IG9mIHRoZSBlbW9qaSBjb250cm9sIChpbmRleCBpcyAtMSksIHNlbGVjdCB0aGUgZmlyc3RcclxuICAgIC8vIGVtb2ppIGluIHRoZSBmaXJzdCBjYXRlZ29yeSBieSBjYWxsaW5nIGBvbkFycm93UmlnaHRgLlxyXG4gICAgaWYgKHRoaXMucHJldmlld0Vtb2ppSWR4ID09IC0xKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm9uQXJyb3dSaWdodCgpXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY2F0ZWdvcnlMZW5ndGggPVxyXG4gICAgICB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllc1t0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4XS5lbW9qaXMubGVuZ3RoXHJcblxyXG4gICAgLy8gV2hlbiBtb3ZpbmcgZG93biwgd2UgY2FuIG1vdmUgYF9wZXJMaW5lYCBpY29ucyByaWdodCB0b1xyXG4gICAgLy8ganVtcCB0byB0aGUgc2FtZSBwb3NpdGlvbiBpbiB0aGUgbmV4dCByb3cuXHJcbiAgICBsZXQgZGlmZiA9IHRoaXMuX3BlckxpbmVcclxuXHJcbiAgICAvLyBUT0RPOiBwcmV2aWV3Q2F0ZWdvcnkgc2hvdWxkIG1hdGNoIGFjdGl2ZUNhdGVnb3J5XHJcbiAgICAvLyAoc28gaXQgd291bGQgYmUgYm90aCBoaWdobGlnaHRlZCBpbiBVSSBhbmQgdXNlZFxyXG4gICAgLy8gd2hlbiB3ZSBzdGFydCBtb3Zpbmcgd2l0aCBhcnJvd3MgYWZ0ZXIgY2xpY2tpbmdcclxuICAgIC8vIHRoZSBjYXRlZ29yeSkuXHJcblxyXG4gICAgLy8gTm90ZTogcHJvYmFibHkgd2UgY2FuIGFsd2FzeSB0YWtlIGN1cnJlbnQgcm93IGxlbmd0aFxyXG4gICAgLy8gYXMgYSBgZGlmZmAgLSBpdCB3aWxsIGZpdCBib3RoIGNhc2Ugb2YgYW55IHJvdyBhbmRcclxuICAgIC8vIHNwZWNpYWwgY2FzZSBvZiB0aGUgbGFzdCByb3cuXHJcbiAgICAvLyBOb3RlOiBpdCBjYW4gYmUgYWxzbyBlYXNpZXIgdG8gdXBkYXRlIGluZGV4ZXNcclxuICAgIC8vIGRpcmVjdGx5IGhlcmUgaW5zdGVhZCBvZiBjYWxsaW5nIG9uQXJyb3dSaWdodC5cclxuICAgIC8vIFNhbWUgaXMgdHJ1ZSBmb3IgYG9uQXJyb3dVcGAuXHJcblxyXG4gICAgLy8gVW5sZXNzIGlmIHdlIGFyZSBvbiB0aGUgbGFzdCByb3cgb2YgdGhlIGNhdGVnb3J5IGFuZFxyXG4gICAgLy8gdGhlcmUgYXJlIGxlc3MgdGhlbiBgX3BlckxpbmVgIGVtb2ppcyBpbiBpdC5cclxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSB1c2UgdGhlIGxhc3Qgcm93IGxlbmd0aCBhcyBkaWZmXHJcbiAgICAvLyBzbyB3ZSBnbyBzdHJhaWdodCBkb3duLCBmb3IgZXhhbXBsZTpcclxuICAgIC8vXHJcbiAgICAvLyAgIDEgMiAzIDQgNSA2XHJcbiAgICAvLyAgIDcgOCA5XHJcbiAgICAvLyAgIEEgQiBDIEQgRSBGXHJcbiAgICAvL1xyXG4gICAgLy8gSWYgd2UgZ28gZG93biBmcm9tIGA4YCwgd2UgbmVlZCB0byBtb3ZlIDMgZW1vamlzIHJpZ2h0XHJcbiAgICAvLyB0byBsZW5kIGF0IGBCYCAoYW5kIDMgaXMgdGhlIGxlbmd0aCBvZiB0aGUgbGFzdCByb3cgb2ZcclxuICAgIC8vIHRoaXMgY2F0ZWdvcnkpLlxyXG4gICAgLy8gQW5kIGlmIHdlIHVzZWQgNiBpbnN0ZWFkIChyb3cgbGVuZ3RoLCBgX3BlckxpbmVgKSwgd2Ugd291bGRcclxuICAgIC8vIGxlbmQgdXAgYXQgYEVgLlxyXG4gICAgaWYgKHRoaXMucHJldmlld0Vtb2ppSWR4ICsgZGlmZiA+IGNhdGVnb3J5TGVuZ3RoKSB7XHJcbiAgICAgIC8vIENhbGN1bGF0ZSB0aGUgbGFzdCByb3cgbGVuZ3RoLlxyXG4gICAgICBkaWZmID0gY2F0ZWdvcnlMZW5ndGggJSB0aGlzLl9wZXJMaW5lXHJcbiAgICB9XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRpZmY7IGkrKykge1xyXG4gICAgICB0aGlzLm9uQXJyb3dSaWdodCgpXHJcbiAgICB9XHJcbiAgICB0aGlzLnVwZGF0ZVByZXZpZXdFbW9qaSgpXHJcbiAgfVxyXG5cclxuICBvbkFycm93VXAoKSB7XHJcbiAgICAvLyBTaW1pbGFyIHRvIGBvbkFycm93RG93bmAsIHRvIG1vdmUgdXAgd2UgY2FuIG1vdmUgbGVmdFxyXG4gICAgLy8gYnkgYF9wZXJMaW5lYCBudW1iZXIgb2YgZW1vamlzLlxyXG4gICAgbGV0IGRpZmYgPSB0aGlzLl9wZXJMaW5lXHJcblxyXG4gICAgaWYgKHRoaXMucHJldmlld0Vtb2ppSWR4IC0gZGlmZiA8IDApIHtcclxuICAgICAgaWYgKHRoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHggPiAwKSB7XHJcbiAgICAgICAgLy8gVW5sZXNzIGlmIHdlIGFyZSBvbiB0aGUgZmlyc3QgbGluZSBvZiB0aGUgY2F0ZWdvcnkgYW5kXHJcbiAgICAgICAgLy8gdGhlIGxhc3QgbGluZSBpbiB0aGUgcHJldmlvdXMgY2F0ZWdvcnkgaXMgc2hvcnRlciB0aGFuXHJcbiAgICAgICAgLy8gYF9wZXJMaW5lYC5cclxuICAgICAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgdXNlIHRoZSBsYXN0IHJvdyBsZW5ndGggYXMgZGlmZiwgc29cclxuICAgICAgICAvLyB3ZSBnbyBzdHJhaWdodCB1cCwgZm9yIGV4YW1wbGU6XHJcbiAgICAgICAgLy9cclxuICAgICAgICAvLyAgIDEgMiAzIDQgNVxyXG4gICAgICAgIC8vICAgNiA3IDhcclxuICAgICAgICAvLyAgIDkgQSBCIEMgRFxyXG4gICAgICAgIC8vXHJcbiAgICAgICAgLy8gSWYgd2UgZ28gdXAgZnJvbSBgQWAsIHdlIG5lZWQgdG8gbW92ZSAzIGVtb2ppcyBsZWZ0IHRvIGdldFxyXG4gICAgICAgIC8vIHRvIGA3YCAoYW5kIDMgaXMgdGhlIGxlbmd0aCBvZiB0aGUgbGFzdCByb3cgb2YgdGhlIHByZXZpb3VzXHJcbiAgICAgICAgLy8gY2F0ZWdvcnkpLlxyXG4gICAgICAgIGNvbnN0IHByZXZDYXRlZ29yeUxhc3RSb3dMZW5ndGggPVxyXG4gICAgICAgICAgdGhpcy5maWx0ZXJlZENhdGVnb3JpZXNbdGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeCAtIDFdLmVtb2ppc1xyXG4gICAgICAgICAgICAubGVuZ3RoICUgdGhpcy5fcGVyTGluZVxyXG4gICAgICAgIC8vIGRpZmYgPSB0aGlzLnByZXZpZXdFbW9qaUlkeCArIHByZXZDYXRlZ29yeUxhc3RSb3dMZW5ndGhcclxuICAgICAgICBkaWZmID0gcHJldkNhdGVnb3J5TGFzdFJvd0xlbmd0aFxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRpZmYgPSAwXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGlmZjsgaSsrKSB7XHJcbiAgICAgIHRoaXMub25BcnJvd0xlZnQoKVxyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGVQcmV2aWV3RW1vamkoKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUHJldmlld0Vtb2ppKCkge1xyXG4gICAgdGhpcy5wcmV2aWV3RW1vamkgPVxyXG4gICAgICB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllc1t0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4XS5lbW9qaXNbXHJcbiAgICAgICAgdGhpcy5wcmV2aWV3RW1vamlJZHhcclxuICAgICAgXVxyXG5cclxuICAgIHRoaXMuX3ZtLiRuZXh0VGljaygoKSA9PiB7XHJcbiAgICAgIC8vIFNjcm9sbCB0aGUgdmlldyBpZiB0aGUgYHByZXZpZXdFbW9qaWAgZ29lcyBvdXQgb2YgdGhlIHZpc2libGUgYXJlYS5cclxuICAgICAgY29uc3Qgc2Nyb2xsRWwgPSB0aGlzLl92bS4kcmVmcy5zY3JvbGxcclxuXHJcbiAgICAgIC8vIE5vdGU6IGl0IHdvdWxkIGJlIG1vcmUgVnVlLWlzaCB0byBtYXJrIGFsbCBlbW9qaXMgd2l0aCBgcmVmYHNcclxuICAgICAgLy8gYW5kIHRoZW4gZG8gc29tZXRoaW5nIHNpbWlsYXIgaGVyZSB0byB3aGF0IHdlIGRvIGluIHRoZVxyXG4gICAgICAvLyBgZ2V0Q2F0ZWdvcmllc2AgaW5zdGVhZCBvZiB1c2luZyBgcXVlcnlTZWxlY3RvcmAgZGlyZWN0bHksXHJcbiAgICAgIC8vIGJ1dCBJIGFtIG5vdCBzdXJlIGlmIGhhdmluZyBtYW55IHJlZnMgd291bGQgYWZmZWN0IHRoZSBwZXJmb3JtYW5jZVxyXG4gICAgICAvLyAoaXQgbWlnaHQsIHNvIEkgdXNlIGBxdWVyeVNlbGVjdG9yYCBmb3Igbm93KS5cclxuICAgICAgY29uc3QgZW1vamlFbCA9IHNjcm9sbEVsLnF1ZXJ5U2VsZWN0b3IoJy5lbW9qaS1tYXJ0LWVtb2ppLXNlbGVjdGVkJylcclxuXHJcbiAgICAgIGNvbnN0IHNjcm9sbEhlaWdodCA9IHNjcm9sbEVsLm9mZnNldFRvcCAtIHNjcm9sbEVsLm9mZnNldEhlaWdodFxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgZW1vamlFbCAmJlxyXG4gICAgICAgIGVtb2ppRWwub2Zmc2V0VG9wICsgZW1vamlFbC5vZmZzZXRIZWlnaHQgPlxyXG4gICAgICAgICAgc2Nyb2xsSGVpZ2h0ICsgc2Nyb2xsRWwuc2Nyb2xsVG9wXHJcbiAgICAgICkge1xyXG4gICAgICAgIHNjcm9sbEVsLnNjcm9sbFRvcCArPSBlbW9qaUVsLm9mZnNldEhlaWdodFxyXG4gICAgICB9XHJcbiAgICAgIGlmIChlbW9qaUVsICYmIGVtb2ppRWwub2Zmc2V0VG9wIDwgc2Nyb2xsRWwuc2Nyb2xsVG9wKSB7XHJcbiAgICAgICAgc2Nyb2xsRWwuc2Nyb2xsVG9wIC09IGVtb2ppRWwub2Zmc2V0SGVpZ2h0XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBlbW9qaXNMZW5ndGgoY2F0ZWdvcnlJZHgpIHtcclxuICAgIGlmIChjYXRlZ29yeUlkeCA9PSAtMSkge1xyXG4gICAgICByZXR1cm4gMFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRDYXRlZ29yaWVzW2NhdGVnb3J5SWR4XS5lbW9qaXMubGVuZ3RoXHJcbiAgfVxyXG59XHJcbiIsImNvbnN0IEVtb2ppUHJvcHMgPSB7XHJcbiAgbmF0aXZlOiB7XHJcbiAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgZGVmYXVsdDogZmFsc2UsXHJcbiAgfSxcclxuICB0b29sdGlwOiB7XHJcbiAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgZGVmYXVsdDogZmFsc2UsXHJcbiAgfSxcclxuICBmYWxsYmFjazoge1xyXG4gICAgdHlwZTogRnVuY3Rpb24sXHJcbiAgfSxcclxuICBza2luOiB7XHJcbiAgICB0eXBlOiBOdW1iZXIsXHJcbiAgICBkZWZhdWx0OiAxLFxyXG4gIH0sXHJcbiAgc2V0OiB7XHJcbiAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICBkZWZhdWx0OiAnYXBwbGUnLFxyXG4gIH0sXHJcbiAgZW1vamk6IHtcclxuICAgIHR5cGU6IFtTdHJpbmcsIE9iamVjdF0sXHJcbiAgICByZXF1aXJlZDogdHJ1ZSxcclxuICB9LFxyXG4gIHNpemU6IHtcclxuICAgIHR5cGU6IE51bWJlcixcclxuICAgIGRlZmF1bHQ6IG51bGwsXHJcbiAgfSxcclxuICB0YWc6IHtcclxuICAgIHR5cGU6IFN0cmluZyxcclxuICAgIGRlZmF1bHQ6ICdzcGFuJyxcclxuICB9LFxyXG59XHJcblxyXG5jb25zdCBQaWNrZXJQcm9wcyA9IHtcclxuICBwZXJMaW5lOiB7XHJcbiAgICB0eXBlOiBOdW1iZXIsXHJcbiAgICBkZWZhdWx0OiA5LFxyXG4gIH0sXHJcbiAgbWF4U2VhcmNoUmVzdWx0czoge1xyXG4gICAgdHlwZTogTnVtYmVyLFxyXG4gICAgZGVmYXVsdDogNzUsXHJcbiAgfSxcclxuICBlbW9qaVNpemU6IHtcclxuICAgIHR5cGU6IE51bWJlcixcclxuICAgIGRlZmF1bHQ6IDI0LFxyXG4gIH0sXHJcbiAgdGl0bGU6IHtcclxuICAgIHR5cGU6IFN0cmluZyxcclxuICAgIGRlZmF1bHQ6ICdFbW9qaSBNYXJ04oSiJyxcclxuICB9LFxyXG4gIGVtb2ppOiB7XHJcbiAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICBkZWZhdWx0OiAnZGVwYXJ0bWVudF9zdG9yZScsXHJcbiAgfSxcclxuICBjb2xvcjoge1xyXG4gICAgdHlwZTogU3RyaW5nLFxyXG4gICAgZGVmYXVsdDogJyNhZTY1YzUnLFxyXG4gIH0sXHJcbiAgc2V0OiB7XHJcbiAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICBkZWZhdWx0OiAnYXBwbGUnLFxyXG4gIH0sXHJcbiAgc2tpbjoge1xyXG4gICAgdHlwZTogTnVtYmVyLFxyXG4gICAgZGVmYXVsdDogbnVsbCxcclxuICB9LFxyXG4gIGRlZmF1bHRTa2luOiB7XHJcbiAgICB0eXBlOiBOdW1iZXIsXHJcbiAgICBkZWZhdWx0OiAxLFxyXG4gIH0sXHJcbiAgbmF0aXZlOiB7XHJcbiAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgZGVmYXVsdDogZmFsc2UsXHJcbiAgfSxcclxuICBlbW9qaVRvb2x0aXA6IHtcclxuICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICBkZWZhdWx0OiBmYWxzZSxcclxuICB9LFxyXG4gIGF1dG9Gb2N1czoge1xyXG4gICAgdHlwZTogQm9vbGVhbixcclxuICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4gIH0sXHJcbiAgaTE4bjoge1xyXG4gICAgdHlwZTogT2JqZWN0LFxyXG4gICAgZGVmYXVsdCgpIHtcclxuICAgICAgcmV0dXJuIHt9XHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgc2hvd1ByZXZpZXc6IHtcclxuICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICBkZWZhdWx0OiB0cnVlLFxyXG4gIH0sXHJcbiAgc2hvd1NlYXJjaDoge1xyXG4gICAgdHlwZTogQm9vbGVhbixcclxuICAgIGRlZmF1bHQ6IHRydWUsXHJcbiAgfSxcclxuICBzaG93Q2F0ZWdvcmllczoge1xyXG4gICAgdHlwZTogQm9vbGVhbixcclxuICAgIGRlZmF1bHQ6IHRydWUsXHJcbiAgfSxcclxuICBzaG93U2tpblRvbmVzOiB7XHJcbiAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgZGVmYXVsdDogdHJ1ZSxcclxuICB9LFxyXG4gIGluZmluaXRlU2Nyb2xsOiB7XHJcbiAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgZGVmYXVsdDogdHJ1ZSxcclxuICB9LFxyXG4gIHBpY2tlclN0eWxlczoge1xyXG4gICAgdHlwZTogT2JqZWN0LFxyXG4gICAgZGVmYXVsdCgpIHtcclxuICAgICAgcmV0dXJuIHt9XHJcbiAgICB9LFxyXG4gIH0sXHJcbn1cclxuXHJcbmV4cG9ydCB7IEVtb2ppUHJvcHMsIFBpY2tlclByb3BzIH1cclxuIiwidmFyIE5BTUVTUEFDRSA9ICdlbW9qaS1tYXJ0J1xyXG5cclxuY29uc3QgX0pTT04gPSBKU09OXHJcblxyXG52YXIgaXNMb2NhbFN0b3JhZ2VTdXBwb3J0ZWQgPVxyXG4gIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmICdsb2NhbFN0b3JhZ2UnIGluIHdpbmRvd1xyXG5cclxubGV0IGdldHRlclxyXG5sZXQgc2V0dGVyXHJcblxyXG5mdW5jdGlvbiBzZXRIYW5kbGVycyhoYW5kbGVycykge1xyXG4gIGhhbmRsZXJzIHx8IChoYW5kbGVycyA9IHt9KVxyXG5cclxuICBnZXR0ZXIgPSBoYW5kbGVycy5nZXR0ZXJcclxuICBzZXR0ZXIgPSBoYW5kbGVycy5zZXR0ZXJcclxufVxyXG5cclxuZnVuY3Rpb24gc2V0TmFtZXNwYWNlKG5hbWVzcGFjZSkge1xyXG4gIE5BTUVTUEFDRSA9IG5hbWVzcGFjZVxyXG59XHJcblxyXG5mdW5jdGlvbiB1cGRhdGUoc3RhdGUpIHtcclxuICBmb3IgKGxldCBrZXkgaW4gc3RhdGUpIHtcclxuICAgIGxldCB2YWx1ZSA9IHN0YXRlW2tleV1cclxuICAgIHNldChrZXksIHZhbHVlKVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gc2V0KGtleSwgdmFsdWUpIHtcclxuICBpZiAoc2V0dGVyKSB7XHJcbiAgICBzZXR0ZXIoa2V5LCB2YWx1ZSlcclxuICB9IGVsc2Uge1xyXG4gICAgaWYgKCFpc0xvY2FsU3RvcmFnZVN1cHBvcnRlZCkgcmV0dXJuXHJcbiAgICB0cnkge1xyXG4gICAgICB3aW5kb3cubG9jYWxTdG9yYWdlW2Ake05BTUVTUEFDRX0uJHtrZXl9YF0gPSBfSlNPTi5zdHJpbmdpZnkodmFsdWUpXHJcbiAgICB9IGNhdGNoIChlKSB7fVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0KGtleSkge1xyXG4gIGlmIChnZXR0ZXIpIHtcclxuICAgIHJldHVybiBnZXR0ZXIoa2V5KVxyXG4gIH0gZWxzZSB7XHJcbiAgICBpZiAoIWlzTG9jYWxTdG9yYWdlU3VwcG9ydGVkKSByZXR1cm5cclxuICAgIHRyeSB7XHJcbiAgICAgIHZhciB2YWx1ZSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2VbYCR7TkFNRVNQQUNFfS4ke2tleX1gXVxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuXHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgcmV0dXJuIEpTT04ucGFyc2UodmFsdWUpXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7IHVwZGF0ZSwgc2V0LCBnZXQsIHNldE5hbWVzcGFjZSwgc2V0SGFuZGxlcnMgfVxyXG4iLCIvLyBodHRwOi8vcGF1bGlyaXNoLmNvbS8yMDExL3JlcXVlc3RhbmltYXRpb25mcmFtZS1mb3Itc21hcnQtYW5pbWF0aW5nL1xyXG4vLyBodHRwOi8vbXkub3BlcmEuY29tL2Vtb2xsZXIvYmxvZy8yMDExLzEyLzIwL3JlcXVlc3RhbmltYXRpb25mcmFtZS1mb3Itc21hcnQtZXItYW5pbWF0aW5nXHJcblxyXG4vLyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgcG9seWZpbGwgYnkgRXJpayBNw7ZsbGVyLiBmaXhlcyBmcm9tIFBhdWwgSXJpc2ggYW5kIFRpbm8gWmlqZGVsXHJcblxyXG4vLyBNSVQgbGljZW5zZVxyXG5cclxudmFyIGlzV2luZG93QXZhaWxhYmxlID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCdcclxuXHJcbmlzV2luZG93QXZhaWxhYmxlICYmXHJcbiAgKGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBsYXN0VGltZSA9IDBcclxuICAgIHZhciB2ZW5kb3JzID0gWydtcycsICdtb3onLCAnd2Via2l0JywgJ28nXVxyXG5cclxuICAgIGZvciAodmFyIHggPSAwOyB4IDwgdmVuZG9ycy5sZW5ndGggJiYgIXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU7ICsreCkge1xyXG4gICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lID1cclxuICAgICAgICB3aW5kb3dbdmVuZG9yc1t4XSArICdSZXF1ZXN0QW5pbWF0aW9uRnJhbWUnXVxyXG4gICAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUgPVxyXG4gICAgICAgIHdpbmRvd1t2ZW5kb3JzW3hdICsgJ0NhbmNlbEFuaW1hdGlvbkZyYW1lJ10gfHxcclxuICAgICAgICB3aW5kb3dbdmVuZG9yc1t4XSArICdDYW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWUnXVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSlcclxuICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSA9IGZ1bmN0aW9uIChjYWxsYmFjaywgZWxlbWVudCkge1xyXG4gICAgICAgIHZhciBjdXJyVGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpXHJcbiAgICAgICAgdmFyIHRpbWVUb0NhbGwgPSBNYXRoLm1heCgwLCAxNiAtIChjdXJyVGltZSAtIGxhc3RUaW1lKSlcclxuICAgICAgICB2YXIgaWQgPSB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICBjYWxsYmFjayhjdXJyVGltZSArIHRpbWVUb0NhbGwpXHJcbiAgICAgICAgfSwgdGltZVRvQ2FsbClcclxuXHJcbiAgICAgICAgbGFzdFRpbWUgPSBjdXJyVGltZSArIHRpbWVUb0NhbGxcclxuICAgICAgICByZXR1cm4gaWRcclxuICAgICAgfVxyXG5cclxuICAgIGlmICghd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKVxyXG4gICAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUgPSBmdW5jdGlvbiAoaWQpIHtcclxuICAgICAgICBjbGVhclRpbWVvdXQoaWQpXHJcbiAgICAgIH1cclxuICB9KSgpXHJcbiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vRW1vamkudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTUzNGFkOTQ2JlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0Vtb2ppLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vRW1vamkudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbFxuICBcbilcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgdmFyIGFwaSA9IHJlcXVpcmUoXCJDOlxcXFxVc2Vyc1xcXFxTdHVhcnRcXFxcRG9jdW1lbnRzXFxcXE1hcmN1c1xcXFxQcm9ncmFtbWluZ1xcXFxQdWxsIFJlcVxcXFxFbW9qaU1hcnRWdWVcXFxcZW1vamktbWFydC12dWVcXFxcbm9kZV9tb2R1bGVzXFxcXHZ1ZS1ob3QtcmVsb2FkLWFwaVxcXFxkaXN0XFxcXGluZGV4LmpzXCIpXG4gIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKVxuICBpZiAoYXBpLmNvbXBhdGlibGUpIHtcbiAgICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnNTM0YWQ5NDYnKSkge1xuICAgICAgYXBpLmNyZWF0ZVJlY29yZCgnNTM0YWQ5NDYnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9IGVsc2Uge1xuICAgICAgYXBpLnJlbG9hZCgnNTM0YWQ5NDYnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL0Vtb2ppLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01MzRhZDk0NiZcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgYXBpLnJlcmVuZGVyKCc1MzRhZDk0NicsIHtcbiAgICAgICAgcmVuZGVyOiByZW5kZXIsXG4gICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zXG4gICAgICB9KVxuICAgIH0pXG4gIH1cbn1cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjL2NvbXBvbmVudHMvRW1vamkudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9QaWNrZXIudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWQxNmU5MDg0JlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1BpY2tlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL1BpY2tlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBudWxsLFxuICBudWxsXG4gIFxuKVxuXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICB2YXIgYXBpID0gcmVxdWlyZShcIkM6XFxcXFVzZXJzXFxcXFN0dWFydFxcXFxEb2N1bWVudHNcXFxcTWFyY3VzXFxcXFByb2dyYW1taW5nXFxcXFB1bGwgUmVxXFxcXEVtb2ppTWFydFZ1ZVxcXFxlbW9qaS1tYXJ0LXZ1ZVxcXFxub2RlX21vZHVsZXNcXFxcdnVlLWhvdC1yZWxvYWQtYXBpXFxcXGRpc3RcXFxcaW5kZXguanNcIilcbiAgYXBpLmluc3RhbGwocmVxdWlyZSgndnVlJykpXG4gIGlmIChhcGkuY29tcGF0aWJsZSkge1xuICAgIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgICBpZiAoIWFwaS5pc1JlY29yZGVkKCdkMTZlOTA4NCcpKSB7XG4gICAgICBhcGkuY3JlYXRlUmVjb3JkKCdkMTZlOTA4NCcsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVsb2FkKCdkMTZlOTA4NCcsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH1cbiAgICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUGlja2VyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kMTZlOTA4NCZcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgYXBpLnJlcmVuZGVyKCdkMTZlOTA4NCcsIHtcbiAgICAgICAgcmVuZGVyOiByZW5kZXIsXG4gICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zXG4gICAgICB9KVxuICAgIH0pXG4gIH1cbn1cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjL2NvbXBvbmVudHMvUGlja2VyLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vYW5jaG9ycy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NTExODgxMDQmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vYW5jaG9ycy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2FuY2hvcnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbFxuICBcbilcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgdmFyIGFwaSA9IHJlcXVpcmUoXCJDOlxcXFxVc2Vyc1xcXFxTdHVhcnRcXFxcRG9jdW1lbnRzXFxcXE1hcmN1c1xcXFxQcm9ncmFtbWluZ1xcXFxQdWxsIFJlcVxcXFxFbW9qaU1hcnRWdWVcXFxcZW1vamktbWFydC12dWVcXFxcbm9kZV9tb2R1bGVzXFxcXHZ1ZS1ob3QtcmVsb2FkLWFwaVxcXFxkaXN0XFxcXGluZGV4LmpzXCIpXG4gIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKVxuICBpZiAoYXBpLmNvbXBhdGlibGUpIHtcbiAgICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnNTExODgxMDQnKSkge1xuICAgICAgYXBpLmNyZWF0ZVJlY29yZCgnNTExODgxMDQnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9IGVsc2Uge1xuICAgICAgYXBpLnJlbG9hZCgnNTExODgxMDQnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL2FuY2hvcnMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTUxMTg4MTA0JlwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBhcGkucmVyZW5kZXIoJzUxMTg4MTA0Jywge1xuICAgICAgICByZW5kZXI6IHJlbmRlcixcbiAgICAgICAgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnNcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxufVxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvY29tcG9uZW50cy9hbmNob3JzLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vY2F0ZWdvcnkudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTM3NmNkYTBlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2NhdGVnb3J5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vY2F0ZWdvcnkudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbFxuICBcbilcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgdmFyIGFwaSA9IHJlcXVpcmUoXCJDOlxcXFxVc2Vyc1xcXFxTdHVhcnRcXFxcRG9jdW1lbnRzXFxcXE1hcmN1c1xcXFxQcm9ncmFtbWluZ1xcXFxQdWxsIFJlcVxcXFxFbW9qaU1hcnRWdWVcXFxcZW1vamktbWFydC12dWVcXFxcbm9kZV9tb2R1bGVzXFxcXHZ1ZS1ob3QtcmVsb2FkLWFwaVxcXFxkaXN0XFxcXGluZGV4LmpzXCIpXG4gIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKVxuICBpZiAoYXBpLmNvbXBhdGlibGUpIHtcbiAgICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnMzc2Y2RhMGUnKSkge1xuICAgICAgYXBpLmNyZWF0ZVJlY29yZCgnMzc2Y2RhMGUnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9IGVsc2Uge1xuICAgICAgYXBpLnJlbG9hZCgnMzc2Y2RhMGUnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL2NhdGVnb3J5LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0zNzZjZGEwZSZcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgYXBpLnJlcmVuZGVyKCczNzZjZGEwZScsIHtcbiAgICAgICAgcmVuZGVyOiByZW5kZXIsXG4gICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zXG4gICAgICB9KVxuICAgIH0pXG4gIH1cbn1cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjL2NvbXBvbmVudHMvY2F0ZWdvcnkudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9wcmV2aWV3LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0zNTA1NmMzMCZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9wcmV2aWV3LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vcHJldmlldy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBudWxsLFxuICBudWxsXG4gIFxuKVxuXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICB2YXIgYXBpID0gcmVxdWlyZShcIkM6XFxcXFVzZXJzXFxcXFN0dWFydFxcXFxEb2N1bWVudHNcXFxcTWFyY3VzXFxcXFByb2dyYW1taW5nXFxcXFB1bGwgUmVxXFxcXEVtb2ppTWFydFZ1ZVxcXFxlbW9qaS1tYXJ0LXZ1ZVxcXFxub2RlX21vZHVsZXNcXFxcdnVlLWhvdC1yZWxvYWQtYXBpXFxcXGRpc3RcXFxcaW5kZXguanNcIilcbiAgYXBpLmluc3RhbGwocmVxdWlyZSgndnVlJykpXG4gIGlmIChhcGkuY29tcGF0aWJsZSkge1xuICAgIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgICBpZiAoIWFwaS5pc1JlY29yZGVkKCczNTA1NmMzMCcpKSB7XG4gICAgICBhcGkuY3JlYXRlUmVjb3JkKCczNTA1NmMzMCcsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVsb2FkKCczNTA1NmMzMCcsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH1cbiAgICBtb2R1bGUuaG90LmFjY2VwdChcIi4vcHJldmlldy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MzUwNTZjMzAmXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFwaS5yZXJlbmRlcignMzUwNTZjMzAnLCB7XG4gICAgICAgIHJlbmRlcjogcmVuZGVyLFxuICAgICAgICBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZuc1xuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy9jb21wb25lbnRzL3ByZXZpZXcudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9zZWFyY2gudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTRhZDQxYmI4JlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3NlYXJjaC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3NlYXJjaC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBudWxsLFxuICBudWxsXG4gIFxuKVxuXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICB2YXIgYXBpID0gcmVxdWlyZShcIkM6XFxcXFVzZXJzXFxcXFN0dWFydFxcXFxEb2N1bWVudHNcXFxcTWFyY3VzXFxcXFByb2dyYW1taW5nXFxcXFB1bGwgUmVxXFxcXEVtb2ppTWFydFZ1ZVxcXFxlbW9qaS1tYXJ0LXZ1ZVxcXFxub2RlX21vZHVsZXNcXFxcdnVlLWhvdC1yZWxvYWQtYXBpXFxcXGRpc3RcXFxcaW5kZXguanNcIilcbiAgYXBpLmluc3RhbGwocmVxdWlyZSgndnVlJykpXG4gIGlmIChhcGkuY29tcGF0aWJsZSkge1xuICAgIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgICBpZiAoIWFwaS5pc1JlY29yZGVkKCc0YWQ0MWJiOCcpKSB7XG4gICAgICBhcGkuY3JlYXRlUmVjb3JkKCc0YWQ0MWJiOCcsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVsb2FkKCc0YWQ0MWJiOCcsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH1cbiAgICBtb2R1bGUuaG90LmFjY2VwdChcIi4vc2VhcmNoLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00YWQ0MWJiOCZcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgYXBpLnJlcmVuZGVyKCc0YWQ0MWJiOCcsIHtcbiAgICAgICAgcmVuZGVyOiByZW5kZXIsXG4gICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zXG4gICAgICB9KVxuICAgIH0pXG4gIH1cbn1cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjL2NvbXBvbmVudHMvc2VhcmNoLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vc2tpbnMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTFjNjE0ODk0JlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3NraW5zLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vc2tpbnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbFxuICBcbilcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgdmFyIGFwaSA9IHJlcXVpcmUoXCJDOlxcXFxVc2Vyc1xcXFxTdHVhcnRcXFxcRG9jdW1lbnRzXFxcXE1hcmN1c1xcXFxQcm9ncmFtbWluZ1xcXFxQdWxsIFJlcVxcXFxFbW9qaU1hcnRWdWVcXFxcZW1vamktbWFydC12dWVcXFxcbm9kZV9tb2R1bGVzXFxcXHZ1ZS1ob3QtcmVsb2FkLWFwaVxcXFxkaXN0XFxcXGluZGV4LmpzXCIpXG4gIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKVxuICBpZiAoYXBpLmNvbXBhdGlibGUpIHtcbiAgICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnMWM2MTQ4OTQnKSkge1xuICAgICAgYXBpLmNyZWF0ZVJlY29yZCgnMWM2MTQ4OTQnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9IGVsc2Uge1xuICAgICAgYXBpLnJlbG9hZCgnMWM2MTQ4OTQnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL3NraW5zLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0xYzYxNDg5NCZcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgYXBpLnJlcmVuZGVyKCcxYzYxNDg5NCcsIHtcbiAgICAgICAgcmVuZGVyOiByZW5kZXIsXG4gICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zXG4gICAgICB9KVxuICAgIH0pXG4gIH1cbn1cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjL2NvbXBvbmVudHMvc2tpbnMudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC0xWzBdLnJ1bGVzWzBdLnVzZSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0Vtb2ppLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC0xWzBdLnJ1bGVzWzBdLnVzZSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0Vtb2ppLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtMVswXS5ydWxlc1swXS51c2UhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9QaWNrZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTFbMF0ucnVsZXNbMF0udXNlIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vUGlja2VyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtMVswXS5ydWxlc1swXS51c2UhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9hbmNob3JzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC0xWzBdLnJ1bGVzWzBdLnVzZSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2FuY2hvcnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC0xWzBdLnJ1bGVzWzBdLnVzZSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2NhdGVnb3J5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC0xWzBdLnJ1bGVzWzBdLnVzZSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2NhdGVnb3J5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtMVswXS5ydWxlc1swXS51c2UhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9wcmV2aWV3LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC0xWzBdLnJ1bGVzWzBdLnVzZSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3ByZXZpZXcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC0xWzBdLnJ1bGVzWzBdLnVzZSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3NlYXJjaC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtMVswXS5ydWxlc1swXS51c2UhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9zZWFyY2gudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC0xWzBdLnJ1bGVzWzBdLnVzZSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3NraW5zLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC0xWzBdLnJ1bGVzWzBdLnVzZSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3NraW5zLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImV4cG9ydCAqIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3RlbXBsYXRlTG9hZGVyLmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9FbW9qaS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NTM0YWQ5NDYmXCIiLCJleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy90ZW1wbGF0ZUxvYWRlci5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vUGlja2VyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kMTZlOTA4NCZcIiIsImV4cG9ydCAqIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3RlbXBsYXRlTG9hZGVyLmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9hbmNob3JzLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01MTE4ODEwNCZcIiIsImV4cG9ydCAqIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3RlbXBsYXRlTG9hZGVyLmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9jYXRlZ29yeS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9Mzc2Y2RhMGUmXCIiLCJleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy90ZW1wbGF0ZUxvYWRlci5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vcHJldmlldy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MzUwNTZjMzAmXCIiLCJleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy90ZW1wbGF0ZUxvYWRlci5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vc2VhcmNoLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00YWQ0MWJiOCZcIiIsImV4cG9ydCAqIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3RlbXBsYXRlTG9hZGVyLmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9za2lucy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MWM2MTQ4OTQmXCIiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfdm0udmlldy5jYW5SZW5kZXJcbiAgICA/IF9jKFxuICAgICAgICBfdm0udGFnLFxuICAgICAgICB7XG4gICAgICAgICAgdGFnOiBcImNvbXBvbmVudFwiLFxuICAgICAgICAgIHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtZW1vamlcIixcbiAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgdGl0bGU6IF92bS52aWV3LnRpdGxlLFxuICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IF92bS52aWV3LmFyaWFMYWJlbCxcbiAgICAgICAgICAgIFwiZGF0YS10aXRsZVwiOiBfdm0udGl0bGUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgbW91c2VlbnRlcjogX3ZtLm9uTW91c2VFbnRlcixcbiAgICAgICAgICAgIG1vdXNlbGVhdmU6IF92bS5vbk1vdXNlTGVhdmUsXG4gICAgICAgICAgICBjbGljazogX3ZtLm9uQ2xpY2ssXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgW1xuICAgICAgICAgIF9jKFwic3BhblwiLCB7IGNsYXNzOiBfdm0udmlldy5jc3NDbGFzcywgc3R5bGU6IF92bS52aWV3LmNzc1N0eWxlIH0sIFtcbiAgICAgICAgICAgIF92bS5fdihfdm0uX3MoX3ZtLnZpZXcuY29udGVudCkpLFxuICAgICAgICAgIF0pLFxuICAgICAgICBdXG4gICAgICApXG4gICAgOiBfdm0uX2UoKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFxuICAgIFwic2VjdGlvblwiLFxuICAgIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydCBlbW9qaS1tYXJ0LXN0YXRpY1wiLCBzdHlsZTogX3ZtLmN1c3RvbVN0eWxlcyB9LFxuICAgIFtcbiAgICAgIF92bS5zaG93Q2F0ZWdvcmllc1xuICAgICAgICA/IF9jKFxuICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1iYXIgZW1vamktbWFydC1iYXItYW5jaG9yc1wiIH0sXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgIF9jKFwiYW5jaG9yc1wiLCB7XG4gICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgIGRhdGE6IF92bS5kYXRhLFxuICAgICAgICAgICAgICAgICAgaTE4bjogX3ZtLm1lcmdlZEkxOG4sXG4gICAgICAgICAgICAgICAgICBjb2xvcjogX3ZtLmNvbG9yLFxuICAgICAgICAgICAgICAgICAgY2F0ZWdvcmllczogX3ZtLnZpZXcuYWxsQ2F0ZWdvcmllcyxcbiAgICAgICAgICAgICAgICAgIFwiYWN0aXZlLWNhdGVnb3J5XCI6IF92bS52aWV3LmFjdGl2ZUNhdGVnb3J5LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb246IHsgY2xpY2s6IF92bS5vbkFuY2hvckNsaWNrIH0sXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIDFcbiAgICAgICAgICApXG4gICAgICAgIDogX3ZtLl9lKCksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX3ZtLl90KFxuICAgICAgICBcInNlYXJjaFRlbXBsYXRlXCIsXG4gICAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgX3ZtLnNob3dTZWFyY2hcbiAgICAgICAgICAgICAgPyBfYyhcInNlYXJjaFwiLCB7XG4gICAgICAgICAgICAgICAgICByZWY6IFwic2VhcmNoXCIsXG4gICAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiBfdm0uZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgaTE4bjogX3ZtLm1lcmdlZEkxOG4sXG4gICAgICAgICAgICAgICAgICAgIFwiYXV0by1mb2N1c1wiOiBfdm0uYXV0b0ZvY3VzLFxuICAgICAgICAgICAgICAgICAgICBcIm9uLXNlYXJjaFwiOiBfdm0ub25TZWFyY2gsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoOiBfdm0ub25TZWFyY2gsXG4gICAgICAgICAgICAgICAgICAgIGFycm93TGVmdDogX3ZtLm9uQXJyb3dMZWZ0LFxuICAgICAgICAgICAgICAgICAgICBhcnJvd1JpZ2h0OiBfdm0ub25BcnJvd1JpZ2h0LFxuICAgICAgICAgICAgICAgICAgICBhcnJvd0Rvd246IF92bS5vbkFycm93RG93bixcbiAgICAgICAgICAgICAgICAgICAgYXJyb3dVcDogX3ZtLm9uQXJyb3dVcCxcbiAgICAgICAgICAgICAgICAgICAgZW50ZXI6IF92bS5vbkVudGVyLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGRhdGE6IF92bS5kYXRhLFxuICAgICAgICAgIGkxOG46IF92bS5pMThuLFxuICAgICAgICAgIGF1dG9Gb2N1czogX3ZtLmF1dG9Gb2N1cyxcbiAgICAgICAgICBvblNlYXJjaDogX3ZtLm9uU2VhcmNoLFxuICAgICAgICB9XG4gICAgICApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFxuICAgICAgICBcImRpdlwiLFxuICAgICAgICB7XG4gICAgICAgICAgcmVmOiBcInNjcm9sbFwiLFxuICAgICAgICAgIHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtc2Nyb2xsXCIsXG4gICAgICAgICAgYXR0cnM6IHsgcm9sZTogXCJ0YWJwYW5lbFwiIH0sXG4gICAgICAgICAgb246IHsgc2Nyb2xsOiBfdm0ub25TY3JvbGwgfSxcbiAgICAgICAgfSxcbiAgICAgICAgW1xuICAgICAgICAgIF9jKFxuICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcmVmOiBcInNjcm9sbENvbnRlbnRcIixcbiAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICBpZDogXCJlbW9qaS1tYXJ0LWxpc3RcIixcbiAgICAgICAgICAgICAgICByb2xlOiBcImxpc3Rib3hcIixcbiAgICAgICAgICAgICAgICBcImFyaWEtZXhwYW5kZWRcIjogXCJ0cnVlXCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3ZtLl9sKF92bS52aWV3LmZpbHRlcmVkQ2F0ZWdvcmllcywgZnVuY3Rpb24gKGNhdGVnb3J5LCBpZHgpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIF9jKFwiY2F0ZWdvcnlcIiwge1xuICAgICAgICAgICAgICAgIGRpcmVjdGl2ZXM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJzaG93XCIsXG4gICAgICAgICAgICAgICAgICAgIHJhd05hbWU6IFwidi1zaG93XCIsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOlxuICAgICAgICAgICAgICAgICAgICAgIF92bS5pbmZpbml0ZVNjcm9sbCB8fCBjYXRlZ29yeSA9PSBfdm0udmlldy5hY3RpdmVDYXRlZ29yeSxcbiAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbjpcbiAgICAgICAgICAgICAgICAgICAgICBcImluZmluaXRlU2Nyb2xsIHx8IGNhdGVnb3J5ID09IHZpZXcuYWN0aXZlQ2F0ZWdvcnlcIixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBrZXk6IGNhdGVnb3J5LmlkLFxuICAgICAgICAgICAgICAgIHJlZjogXCJjYXRlZ29yaWVzX1wiICsgaWR4LFxuICAgICAgICAgICAgICAgIHJlZkluRm9yOiB0cnVlLFxuICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICBkYXRhOiBfdm0uZGF0YSxcbiAgICAgICAgICAgICAgICAgIGkxOG46IF92bS5tZXJnZWRJMThuLFxuICAgICAgICAgICAgICAgICAgaWQ6IGNhdGVnb3J5LmlkLFxuICAgICAgICAgICAgICAgICAgbmFtZTogY2F0ZWdvcnkubmFtZSxcbiAgICAgICAgICAgICAgICAgIGVtb2ppczogY2F0ZWdvcnkuZW1vamlzLFxuICAgICAgICAgICAgICAgICAgXCJlbW9qaS1wcm9wc1wiOiBfdm0uZW1vamlQcm9wcyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAxXG4gICAgICAgICAgKSxcbiAgICAgICAgXVxuICAgICAgKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfdm0uX3QoXG4gICAgICAgIFwicHJldmlld1RlbXBsYXRlXCIsXG4gICAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgX3ZtLnNob3dQcmV2aWV3XG4gICAgICAgICAgICAgID8gX2MoXG4gICAgICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LWJhciBlbW9qaS1tYXJ0LWJhci1wcmV2aWV3XCIgfSxcbiAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgX2MoXCJwcmV2aWV3XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogX3ZtLmRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogX3ZtLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW1vamk6IF92bS52aWV3LnByZXZpZXdFbW9qaSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaWRsZS1lbW9qaVwiOiBfdm0uaWRsZUVtb2ppLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzaG93LXNraW4tdG9uZXNcIjogX3ZtLnNob3dTa2luVG9uZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImVtb2ppLXByb3BzXCI6IF92bS5lbW9qaVByb3BzLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJza2luLXByb3BzXCI6IF92bS5za2luUHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm9uLXNraW4tY2hhbmdlXCI6IF92bS5vblNraW5DaGFuZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBkYXRhOiBfdm0uZGF0YSxcbiAgICAgICAgICB0aXRsZTogX3ZtLnRpdGxlLFxuICAgICAgICAgIGVtb2ppOiBfdm0udmlldy5wcmV2aWV3RW1vamksXG4gICAgICAgICAgaWRsZUVtb2ppOiBfdm0uaWRsZUVtb2ppLFxuICAgICAgICAgIHNob3dTa2luVG9uZXM6IF92bS5zaG93U2tpblRvbmVzLFxuICAgICAgICAgIGVtb2ppUHJvcHM6IF92bS5lbW9qaVByb3BzLFxuICAgICAgICAgIHNraW5Qcm9wczogX3ZtLnNraW5Qcm9wcyxcbiAgICAgICAgICBvblNraW5DaGFuZ2U6IF92bS5vblNraW5DaGFuZ2UsXG4gICAgICAgIH1cbiAgICAgICksXG4gICAgXSxcbiAgICAyXG4gIClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfYyhcbiAgICBcImRpdlwiLFxuICAgIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1hbmNob3JzXCIsIGF0dHJzOiB7IHJvbGU6IFwidGFibGlzdFwiIH0gfSxcbiAgICBfdm0uX2woX3ZtLmNhdGVnb3JpZXMsIGZ1bmN0aW9uIChjYXRlZ29yeSkge1xuICAgICAgcmV0dXJuIF9jKFxuICAgICAgICBcImJ1dHRvblwiLFxuICAgICAgICB7XG4gICAgICAgICAga2V5OiBjYXRlZ29yeS5pZCxcbiAgICAgICAgICBjbGFzczoge1xuICAgICAgICAgICAgXCJlbW9qaS1tYXJ0LWFuY2hvclwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbW9qaS1tYXJ0LWFuY2hvci1zZWxlY3RlZFwiOiBjYXRlZ29yeS5pZCA9PSBfdm0uYWN0aXZlQ2F0ZWdvcnkuaWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgY29sb3I6IGNhdGVnb3J5LmlkID09IF92bS5hY3RpdmVDYXRlZ29yeS5pZCA/IF92bS5jb2xvciA6IFwiXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgcm9sZTogXCJ0YWJcIixcbiAgICAgICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgICAgICBcImFyaWEtbGFiZWxcIjogY2F0ZWdvcnkubmFtZSxcbiAgICAgICAgICAgIFwiYXJpYS1zZWxlY3RlZFwiOiBjYXRlZ29yeS5pZCA9PSBfdm0uYWN0aXZlQ2F0ZWdvcnkuaWQsXG4gICAgICAgICAgICBcImRhdGEtdGl0bGVcIjogX3ZtLmkxOG4uY2F0ZWdvcmllc1tjYXRlZ29yeS5pZF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIF92bS4kZW1pdChcImNsaWNrXCIsIGNhdGVnb3J5KVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBbXG4gICAgICAgICAgX2MoXCJkaXZcIiwge1xuICAgICAgICAgICAgYXR0cnM6IHsgXCJhcmlhLWhpZGRlblwiOiBcInRydWVcIiB9LFxuICAgICAgICAgICAgZG9tUHJvcHM6IHsgaW5uZXJIVE1MOiBfdm0uX3MoX3ZtLnN2Z3NbY2F0ZWdvcnkuaWRdKSB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgX2MoXCJzcGFuXCIsIHtcbiAgICAgICAgICAgIHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtYW5jaG9yLWJhclwiLFxuICAgICAgICAgICAgc3R5bGU6IHsgYmFja2dyb3VuZENvbG9yOiBfdm0uY29sb3IgfSxcbiAgICAgICAgICAgIGF0dHJzOiB7IFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXVxuICAgICAgKVxuICAgIH0pLFxuICAgIDBcbiAgKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF92bS5pc1Zpc2libGUgJiYgKF92bS5pc1NlYXJjaCB8fCBfdm0uaGFzUmVzdWx0cylcbiAgICA/IF9jKFxuICAgICAgICBcInNlY3Rpb25cIixcbiAgICAgICAge1xuICAgICAgICAgIGNsYXNzOiB7XG4gICAgICAgICAgICBcImVtb2ppLW1hcnQtY2F0ZWdvcnlcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW1vamktbWFydC1uby1yZXN1bHRzXCI6ICFfdm0uaGFzUmVzdWx0cyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGF0dHJzOiB7IFwiYXJpYS1sYWJlbFwiOiBfdm0uaTE4bi5jYXRlZ29yaWVzW192bS5pZF0gfSxcbiAgICAgICAgfSxcbiAgICAgICAgW1xuICAgICAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1jYXRlZ29yeS1sYWJlbFwiIH0sIFtcbiAgICAgICAgICAgIF9jKFwiaDNcIiwgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LWNhdGVnb3J5LWxhYmVsXCIgfSwgW1xuICAgICAgICAgICAgICBfdm0uX3YoX3ZtLl9zKF92bS5pMThuLmNhdGVnb3JpZXNbX3ZtLmlkXSkpLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgXSksXG4gICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICBfdm0uX2woX3ZtLmVtb2ppT2JqZWN0cywgZnVuY3Rpb24gKHJlZikge1xuICAgICAgICAgICAgdmFyIGVtb2ppT2JqZWN0ID0gcmVmLmVtb2ppT2JqZWN0XG4gICAgICAgICAgICB2YXIgZW1vamlWaWV3ID0gcmVmLmVtb2ppVmlld1xuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgZW1vamlWaWV3LmNhblJlbmRlclxuICAgICAgICAgICAgICAgID8gX2MoXG4gICAgICAgICAgICAgICAgICAgIFwiYnV0dG9uXCIsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBrZXk6IGVtb2ppT2JqZWN0LmlkLFxuICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtZW1vamlcIixcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzczogX3ZtLmFjdGl2ZUNsYXNzKGVtb2ppT2JqZWN0KSxcbiAgICAgICAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IGVtb2ppVmlldy5hcmlhTGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlOiBcIm9wdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhcmlhLXNlbGVjdGVkXCI6IFwiZmFsc2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYXJpYS1wb3NpbnNldFwiOiBcIjFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYXJpYS1zZXRzaXplXCI6IFwiMTgxMlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGF0YS10aXRsZVwiOiBlbW9qaU9iamVjdC5zaG9ydF9uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGVtb2ppVmlldy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb3VzZWVudGVyOiBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5lbW9qaVByb3BzLm9uRW50ZXIoZW1vamlWaWV3LmdldEVtb2ppKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VsZWF2ZTogZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uZW1vamlQcm9wcy5vbkxlYXZlKGVtb2ppVmlldy5nZXRFbW9qaSgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5lbW9qaVByb3BzLm9uQ2xpY2soZW1vamlWaWV3LmdldEVtb2ppKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic3BhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogZW1vamlWaWV3LmNzc0NsYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogZW1vamlWaWV3LmNzc1N0eWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtfdm0uX3YoX3ZtLl9zKGVtb2ppVmlldy5jb250ZW50KSldXG4gICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogX3ZtLl9lKCksXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSksXG4gICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAhX3ZtLmhhc1Jlc3VsdHNcbiAgICAgICAgICAgID8gX2MoXG4gICAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICBfYyhcImVtb2ppXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBfdm0uZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICBlbW9qaTogXCJzbGV1dGhfb3Jfc3B5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgbmF0aXZlOiBfdm0uZW1vamlQcm9wcy5uYXRpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgc2tpbjogX3ZtLmVtb2ppUHJvcHMuc2tpbixcbiAgICAgICAgICAgICAgICAgICAgICBzZXQ6IF92bS5lbW9qaVByb3BzLnNldCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1uby1yZXN1bHRzLWxhYmVsXCIgfSwgW1xuICAgICAgICAgICAgICAgICAgICBfdm0uX3YoX3ZtLl9zKF92bS5pMThuLm5vdGZvdW5kKSksXG4gICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgXSxcbiAgICAgICAgMlxuICAgICAgKVxuICAgIDogX3ZtLl9lKClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfYyhcbiAgICBcImRpdlwiLFxuICAgIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1wcmV2aWV3XCIgfSxcbiAgICBbXG4gICAgICBfdm0uZW1vamlcbiAgICAgICAgPyBbXG4gICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXByZXZpZXctZW1vamlcIiB9LFxuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgX2MoXCJlbW9qaVwiLCB7XG4gICAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiBfdm0uZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgZW1vamk6IF92bS5lbW9qaSxcbiAgICAgICAgICAgICAgICAgICAgbmF0aXZlOiBfdm0uZW1vamlQcm9wcy5uYXRpdmUsXG4gICAgICAgICAgICAgICAgICAgIHNraW46IF92bS5lbW9qaVByb3BzLnNraW4sXG4gICAgICAgICAgICAgICAgICAgIHNldDogX3ZtLmVtb2ppUHJvcHMuc2V0LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1kYXRhXCIgfSwgW1xuICAgICAgICAgICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1uYW1lXCIgfSwgW1xuICAgICAgICAgICAgICAgIF92bS5fdihfdm0uX3MoX3ZtLmVtb2ppLm5hbWUpKSxcbiAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXByZXZpZXctc2hvcnRuYW1lc1wiIH0sXG4gICAgICAgICAgICAgICAgX3ZtLl9sKF92bS5lbW9qaVNob3J0TmFtZXMsIGZ1bmN0aW9uIChzaG9ydE5hbWUpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBfYyhcbiAgICAgICAgICAgICAgICAgICAgXCJzcGFuXCIsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBrZXk6IHNob3J0TmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXByZXZpZXctc2hvcnRuYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFtfdm0uX3YoXCI6XCIgKyBfdm0uX3Moc2hvcnROYW1lKSArIFwiOlwiKV1cbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAwXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXByZXZpZXctZW1vdGljb25zXCIgfSxcbiAgICAgICAgICAgICAgICBfdm0uX2woX3ZtLmVtb2ppRW1vdGljb25zLCBmdW5jdGlvbiAoZW1vdGljb24pIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBfYyhcbiAgICAgICAgICAgICAgICAgICAgXCJzcGFuXCIsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBrZXk6IGVtb3RpY29uLFxuICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1lbW90aWNvblwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBbX3ZtLl92KF92bS5fcyhlbW90aWNvbikpXVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIDBcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgIF1cbiAgICAgICAgOiBbXG4gICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXByZXZpZXctZW1vamlcIiB9LFxuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgX2MoXCJlbW9qaVwiLCB7XG4gICAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiBfdm0uZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgZW1vamk6IF92bS5pZGxlRW1vamksXG4gICAgICAgICAgICAgICAgICAgIG5hdGl2ZTogX3ZtLmVtb2ppUHJvcHMubmF0aXZlLFxuICAgICAgICAgICAgICAgICAgICBza2luOiBfdm0uZW1vamlQcm9wcy5za2luLFxuICAgICAgICAgICAgICAgICAgICBzZXQ6IF92bS5lbW9qaVByb3BzLnNldCxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXByZXZpZXctZGF0YVwiIH0sIFtcbiAgICAgICAgICAgICAgX2MoXCJzcGFuXCIsIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC10aXRsZS1sYWJlbFwiIH0sIFtcbiAgICAgICAgICAgICAgICBfdm0uX3YoX3ZtLl9zKF92bS50aXRsZSkpLFxuICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgIF92bS5zaG93U2tpblRvbmVzXG4gICAgICAgICAgICAgID8gX2MoXG4gICAgICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXByZXZpZXctc2tpbnNcIiB9LFxuICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICBfYyhcInNraW5zXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICBhdHRyczogeyBza2luOiBfdm0uc2tpblByb3BzLnNraW4gfSxcbiAgICAgICAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlOiBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfdm0ub25Ta2luQ2hhbmdlKCRldmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgICBdLFxuICAgIF0sXG4gICAgMlxuICApXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXNlYXJjaFwiIH0sIFtcbiAgICBfYyhcImlucHV0XCIsIHtcbiAgICAgIGRpcmVjdGl2ZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwibW9kZWxcIixcbiAgICAgICAgICByYXdOYW1lOiBcInYtbW9kZWxcIixcbiAgICAgICAgICB2YWx1ZTogX3ZtLnZhbHVlLFxuICAgICAgICAgIGV4cHJlc3Npb246IFwidmFsdWVcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBhdHRyczoge1xuICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgcGxhY2Vob2xkZXI6IF92bS5pMThuLnNlYXJjaCxcbiAgICAgICAgcm9sZTogXCJ0ZXh0Ym94XCIsXG4gICAgICAgIFwiYXJpYS1hdXRvY29tcGxldGVcIjogXCJsaXN0XCIsXG4gICAgICAgIFwiYXJpYS1vd25zXCI6IFwiZW1vamktbWFydC1saXN0XCIsXG4gICAgICAgIFwiYXJpYS1sYWJlbFwiOiBcIlNlYXJjaCBmb3IgYW4gZW1vamlcIixcbiAgICAgICAgXCJhcmlhLWRlc2NyaWJlZGJ5XCI6IFwiZW1vamktbWFydC1zZWFyY2gtZGVzY3JpcHRpb25cIixcbiAgICAgIH0sXG4gICAgICBkb21Qcm9wczogeyB2YWx1ZTogX3ZtLnZhbHVlIH0sXG4gICAgICBvbjoge1xuICAgICAgICBrZXlkb3duOiBbXG4gICAgICAgICAgZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAhJGV2ZW50LnR5cGUuaW5kZXhPZihcImtleVwiKSAmJlxuICAgICAgICAgICAgICBfdm0uX2soJGV2ZW50LmtleUNvZGUsIFwibGVmdFwiLCAzNywgJGV2ZW50LmtleSwgW1xuICAgICAgICAgICAgICAgIFwiTGVmdFwiLFxuICAgICAgICAgICAgICAgIFwiQXJyb3dMZWZ0XCIsXG4gICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChcImJ1dHRvblwiIGluICRldmVudCAmJiAkZXZlbnQuYnV0dG9uICE9PSAwKSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICByZXR1cm4gX3ZtLiRlbWl0KFwiYXJyb3dMZWZ0XCIsICRldmVudClcbiAgICAgICAgICAgIH0uYXBwbHkobnVsbCwgYXJndW1lbnRzKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAhJGV2ZW50LnR5cGUuaW5kZXhPZihcImtleVwiKSAmJlxuICAgICAgICAgICAgICBfdm0uX2soJGV2ZW50LmtleUNvZGUsIFwicmlnaHRcIiwgMzksICRldmVudC5rZXksIFtcbiAgICAgICAgICAgICAgICBcIlJpZ2h0XCIsXG4gICAgICAgICAgICAgICAgXCJBcnJvd1JpZ2h0XCIsXG4gICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChcImJ1dHRvblwiIGluICRldmVudCAmJiAkZXZlbnQuYnV0dG9uICE9PSAyKSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICByZXR1cm4gX3ZtLiRlbWl0KFwiYXJyb3dSaWdodFwiKVxuICAgICAgICAgICAgfS5hcHBseShudWxsLCBhcmd1bWVudHMpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICEkZXZlbnQudHlwZS5pbmRleE9mKFwia2V5XCIpICYmXG4gICAgICAgICAgICAgIF92bS5faygkZXZlbnQua2V5Q29kZSwgXCJkb3duXCIsIDQwLCAkZXZlbnQua2V5LCBbXG4gICAgICAgICAgICAgICAgXCJEb3duXCIsXG4gICAgICAgICAgICAgICAgXCJBcnJvd0Rvd25cIixcbiAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIF92bS4kZW1pdChcImFycm93RG93blwiKVxuICAgICAgICAgICAgfS5hcHBseShudWxsLCBhcmd1bWVudHMpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICEkZXZlbnQudHlwZS5pbmRleE9mKFwia2V5XCIpICYmXG4gICAgICAgICAgICAgIF92bS5faygkZXZlbnQua2V5Q29kZSwgXCJ1cFwiLCAzOCwgJGV2ZW50LmtleSwgW1wiVXBcIiwgXCJBcnJvd1VwXCJdKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICByZXR1cm4gX3ZtLiRlbWl0KFwiYXJyb3dVcFwiLCAkZXZlbnQpXG4gICAgICAgICAgICB9LmFwcGx5KG51bGwsIGFyZ3VtZW50cylcbiAgICAgICAgICB9LFxuICAgICAgICAgIGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgISRldmVudC50eXBlLmluZGV4T2YoXCJrZXlcIikgJiZcbiAgICAgICAgICAgICAgX3ZtLl9rKCRldmVudC5rZXlDb2RlLCBcImVudGVyXCIsIDEzLCAkZXZlbnQua2V5LCBcIkVudGVyXCIpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHJldHVybiBfdm0uJGVtaXQoXCJlbnRlclwiKVxuICAgICAgICAgICAgfS5hcHBseShudWxsLCBhcmd1bWVudHMpXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgaW5wdXQ6IGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICBpZiAoJGV2ZW50LnRhcmdldC5jb21wb3NpbmcpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgICBfdm0udmFsdWUgPSAkZXZlbnQudGFyZ2V0LnZhbHVlXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIF92bS5fdihcIiBcIiksXG4gICAgX2MoXG4gICAgICBcInNwYW5cIixcbiAgICAgIHtcbiAgICAgICAgc3RhdGljQ2xhc3M6IFwiaGlkZGVuXCIsXG4gICAgICAgIGF0dHJzOiB7IGlkOiBcImVtb2ppLXBpY2tlci1zZWFyY2gtZGVzY3JpcHRpb25cIiB9LFxuICAgICAgfSxcbiAgICAgIFtcbiAgICAgICAgX3ZtLl92KFxuICAgICAgICAgIFwiVXNlIHRoZSBsZWZ0LCByaWdodCwgdXAgYW5kIGRvd24gYXJyb3cga2V5cyB0byBuYXZpZ2F0ZSB0aGUgZW1vamkgc2VhcmNoXFxuICAgIHJlc3VsdHMuXCJcbiAgICAgICAgKSxcbiAgICAgIF1cbiAgICApLFxuICBdKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFxuICAgIFwiZGl2XCIsXG4gICAge1xuICAgICAgY2xhc3M6IHtcbiAgICAgICAgXCJlbW9qaS1tYXJ0LXNraW4tc3dhdGNoZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJlbW9qaS1tYXJ0LXNraW4tc3dhdGNoZXMtb3BlbmVkXCI6IF92bS5vcGVuZWQsXG4gICAgICB9LFxuICAgIH0sXG4gICAgX3ZtLl9sKDYsIGZ1bmN0aW9uIChza2luVG9uZSkge1xuICAgICAgcmV0dXJuIF9jKFxuICAgICAgICBcInNwYW5cIixcbiAgICAgICAge1xuICAgICAgICAgIGtleTogc2tpblRvbmUsXG4gICAgICAgICAgY2xhc3M6IHtcbiAgICAgICAgICAgIFwiZW1vamktbWFydC1za2luLXN3YXRjaFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbW9qaS1tYXJ0LXNraW4tc3dhdGNoLXNlbGVjdGVkXCI6IF92bS5za2luID09IHNraW5Ub25lLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFtcbiAgICAgICAgICBfYyhcInNwYW5cIiwge1xuICAgICAgICAgICAgY2xhc3M6IFwiZW1vamktbWFydC1za2luIGVtb2ppLW1hcnQtc2tpbi10b25lLVwiICsgc2tpblRvbmUsXG4gICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICBjbGljazogZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfdm0ub25DbGljayhza2luVG9uZSlcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIF1cbiAgICAgIClcbiAgICB9KSxcbiAgICAwXG4gIClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCIvKiBnbG9iYWxzIF9fVlVFX1NTUl9DT05URVhUX18gKi9cblxuLy8gSU1QT1JUQU5UOiBEbyBOT1QgdXNlIEVTMjAxNSBmZWF0dXJlcyBpbiB0aGlzIGZpbGUgKGV4Y2VwdCBmb3IgbW9kdWxlcykuXG4vLyBUaGlzIG1vZHVsZSBpcyBhIHJ1bnRpbWUgdXRpbGl0eSBmb3IgY2xlYW5lciBjb21wb25lbnQgbW9kdWxlIG91dHB1dCBhbmQgd2lsbFxuLy8gYmUgaW5jbHVkZWQgaW4gdGhlIGZpbmFsIHdlYnBhY2sgdXNlciBidW5kbGUuXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG5vcm1hbGl6ZUNvbXBvbmVudCAoXG4gIHNjcmlwdEV4cG9ydHMsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmdW5jdGlvbmFsVGVtcGxhdGUsXG4gIGluamVjdFN0eWxlcyxcbiAgc2NvcGVJZCxcbiAgbW9kdWxlSWRlbnRpZmllciwgLyogc2VydmVyIG9ubHkgKi9cbiAgc2hhZG93TW9kZSAvKiB2dWUtY2xpIG9ubHkgKi9cbikge1xuICAvLyBWdWUuZXh0ZW5kIGNvbnN0cnVjdG9yIGV4cG9ydCBpbnRlcm9wXG4gIHZhciBvcHRpb25zID0gdHlwZW9mIHNjcmlwdEV4cG9ydHMgPT09ICdmdW5jdGlvbidcbiAgICA/IHNjcmlwdEV4cG9ydHMub3B0aW9uc1xuICAgIDogc2NyaXB0RXhwb3J0c1xuXG4gIC8vIHJlbmRlciBmdW5jdGlvbnNcbiAgaWYgKHJlbmRlcikge1xuICAgIG9wdGlvbnMucmVuZGVyID0gcmVuZGVyXG4gICAgb3B0aW9ucy5zdGF0aWNSZW5kZXJGbnMgPSBzdGF0aWNSZW5kZXJGbnNcbiAgICBvcHRpb25zLl9jb21waWxlZCA9IHRydWVcbiAgfVxuXG4gIC8vIGZ1bmN0aW9uYWwgdGVtcGxhdGVcbiAgaWYgKGZ1bmN0aW9uYWxUZW1wbGF0ZSkge1xuICAgIG9wdGlvbnMuZnVuY3Rpb25hbCA9IHRydWVcbiAgfVxuXG4gIC8vIHNjb3BlZElkXG4gIGlmIChzY29wZUlkKSB7XG4gICAgb3B0aW9ucy5fc2NvcGVJZCA9ICdkYXRhLXYtJyArIHNjb3BlSWRcbiAgfVxuXG4gIHZhciBob29rXG4gIGlmIChtb2R1bGVJZGVudGlmaWVyKSB7IC8vIHNlcnZlciBidWlsZFxuICAgIGhvb2sgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgLy8gMi4zIGluamVjdGlvblxuICAgICAgY29udGV4dCA9XG4gICAgICAgIGNvbnRleHQgfHwgLy8gY2FjaGVkIGNhbGxcbiAgICAgICAgKHRoaXMuJHZub2RlICYmIHRoaXMuJHZub2RlLnNzckNvbnRleHQpIHx8IC8vIHN0YXRlZnVsXG4gICAgICAgICh0aGlzLnBhcmVudCAmJiB0aGlzLnBhcmVudC4kdm5vZGUgJiYgdGhpcy5wYXJlbnQuJHZub2RlLnNzckNvbnRleHQpIC8vIGZ1bmN0aW9uYWxcbiAgICAgIC8vIDIuMiB3aXRoIHJ1bkluTmV3Q29udGV4dDogdHJ1ZVxuICAgICAgaWYgKCFjb250ZXh0ICYmIHR5cGVvZiBfX1ZVRV9TU1JfQ09OVEVYVF9fICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBjb250ZXh0ID0gX19WVUVfU1NSX0NPTlRFWFRfX1xuICAgICAgfVxuICAgICAgLy8gaW5qZWN0IGNvbXBvbmVudCBzdHlsZXNcbiAgICAgIGlmIChpbmplY3RTdHlsZXMpIHtcbiAgICAgICAgaW5qZWN0U3R5bGVzLmNhbGwodGhpcywgY29udGV4dClcbiAgICAgIH1cbiAgICAgIC8vIHJlZ2lzdGVyIGNvbXBvbmVudCBtb2R1bGUgaWRlbnRpZmllciBmb3IgYXN5bmMgY2h1bmsgaW5mZXJyZW5jZVxuICAgICAgaWYgKGNvbnRleHQgJiYgY29udGV4dC5fcmVnaXN0ZXJlZENvbXBvbmVudHMpIHtcbiAgICAgICAgY29udGV4dC5fcmVnaXN0ZXJlZENvbXBvbmVudHMuYWRkKG1vZHVsZUlkZW50aWZpZXIpXG4gICAgICB9XG4gICAgfVxuICAgIC8vIHVzZWQgYnkgc3NyIGluIGNhc2UgY29tcG9uZW50IGlzIGNhY2hlZCBhbmQgYmVmb3JlQ3JlYXRlXG4gICAgLy8gbmV2ZXIgZ2V0cyBjYWxsZWRcbiAgICBvcHRpb25zLl9zc3JSZWdpc3RlciA9IGhvb2tcbiAgfSBlbHNlIGlmIChpbmplY3RTdHlsZXMpIHtcbiAgICBob29rID0gc2hhZG93TW9kZVxuICAgICAgPyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGluamVjdFN0eWxlcy5jYWxsKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgKG9wdGlvbnMuZnVuY3Rpb25hbCA/IHRoaXMucGFyZW50IDogdGhpcykuJHJvb3QuJG9wdGlvbnMuc2hhZG93Um9vdFxuICAgICAgICApXG4gICAgICB9XG4gICAgICA6IGluamVjdFN0eWxlc1xuICB9XG5cbiAgaWYgKGhvb2spIHtcbiAgICBpZiAob3B0aW9ucy5mdW5jdGlvbmFsKSB7XG4gICAgICAvLyBmb3IgdGVtcGxhdGUtb25seSBob3QtcmVsb2FkIGJlY2F1c2UgaW4gdGhhdCBjYXNlIHRoZSByZW5kZXIgZm4gZG9lc24ndFxuICAgICAgLy8gZ28gdGhyb3VnaCB0aGUgbm9ybWFsaXplclxuICAgICAgb3B0aW9ucy5faW5qZWN0U3R5bGVzID0gaG9va1xuICAgICAgLy8gcmVnaXN0ZXIgZm9yIGZ1bmN0aW9uYWwgY29tcG9uZW50IGluIHZ1ZSBmaWxlXG4gICAgICB2YXIgb3JpZ2luYWxSZW5kZXIgPSBvcHRpb25zLnJlbmRlclxuICAgICAgb3B0aW9ucy5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXJXaXRoU3R5bGVJbmplY3Rpb24gKGgsIGNvbnRleHQpIHtcbiAgICAgICAgaG9vay5jYWxsKGNvbnRleHQpXG4gICAgICAgIHJldHVybiBvcmlnaW5hbFJlbmRlcihoLCBjb250ZXh0KVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpbmplY3QgY29tcG9uZW50IHJlZ2lzdHJhdGlvbiBhcyBiZWZvcmVDcmVhdGUgaG9va1xuICAgICAgdmFyIGV4aXN0aW5nID0gb3B0aW9ucy5iZWZvcmVDcmVhdGVcbiAgICAgIG9wdGlvbnMuYmVmb3JlQ3JlYXRlID0gZXhpc3RpbmdcbiAgICAgICAgPyBbXS5jb25jYXQoZXhpc3RpbmcsIGhvb2spXG4gICAgICAgIDogW2hvb2tdXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBleHBvcnRzOiBzY3JpcHRFeHBvcnRzLFxuICAgIG9wdGlvbnM6IG9wdGlvbnNcbiAgfVxufVxuIiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2FycmF5TGlrZVRvQXJyYXkoYXJyLCBsZW4pIHtcbiAgaWYgKGxlbiA9PSBudWxsIHx8IGxlbiA+IGFyci5sZW5ndGgpIGxlbiA9IGFyci5sZW5ndGg7XG5cbiAgZm9yICh2YXIgaSA9IDAsIGFycjIgPSBuZXcgQXJyYXkobGVuKTsgaSA8IGxlbjsgaSsrKSB7XG4gICAgYXJyMltpXSA9IGFycltpXTtcbiAgfVxuXG4gIHJldHVybiBhcnIyO1xufSIsImltcG9ydCBhcnJheUxpa2VUb0FycmF5IGZyb20gXCIuL2FycmF5TGlrZVRvQXJyYXkuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9hcnJheVdpdGhvdXRIb2xlcyhhcnIpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkgcmV0dXJuIGFycmF5TGlrZVRvQXJyYXkoYXJyKTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7XG4gIGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTtcbiAgfVxufSIsImZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07XG4gICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlO1xuICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTtcbiAgICBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7XG4gIGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpO1xuICBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7XG4gIHJldHVybiBDb25zdHJ1Y3Rvcjtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7XG4gIGlmIChrZXkgaW4gb2JqKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvYmpba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfaXRlcmFibGVUb0FycmF5KGl0ZXIpIHtcbiAgaWYgKHR5cGVvZiBTeW1ib2wgIT09IFwidW5kZWZpbmVkXCIgJiYgaXRlcltTeW1ib2wuaXRlcmF0b3JdICE9IG51bGwgfHwgaXRlcltcIkBAaXRlcmF0b3JcIl0gIT0gbnVsbCkgcmV0dXJuIEFycmF5LmZyb20oaXRlcik7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX25vbkl0ZXJhYmxlU3ByZWFkKCkge1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbn0iLCJpbXBvcnQgYXJyYXlXaXRob3V0SG9sZXMgZnJvbSBcIi4vYXJyYXlXaXRob3V0SG9sZXMuanNcIjtcbmltcG9ydCBpdGVyYWJsZVRvQXJyYXkgZnJvbSBcIi4vaXRlcmFibGVUb0FycmF5LmpzXCI7XG5pbXBvcnQgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkgZnJvbSBcIi4vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanNcIjtcbmltcG9ydCBub25JdGVyYWJsZVNwcmVhZCBmcm9tIFwiLi9ub25JdGVyYWJsZVNwcmVhZC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3RvQ29uc3VtYWJsZUFycmF5KGFycikge1xuICByZXR1cm4gYXJyYXlXaXRob3V0SG9sZXMoYXJyKSB8fCBpdGVyYWJsZVRvQXJyYXkoYXJyKSB8fCB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShhcnIpIHx8IG5vbkl0ZXJhYmxlU3ByZWFkKCk7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikge1xuICAgIF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikge1xuICAgICAgcmV0dXJuIHR5cGVvZiBvYmo7XG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgICAgIHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqO1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gX3R5cGVvZihvYmopO1xufSIsImltcG9ydCBhcnJheUxpa2VUb0FycmF5IGZyb20gXCIuL2FycmF5TGlrZVRvQXJyYXkuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShvLCBtaW5MZW4pIHtcbiAgaWYgKCFvKSByZXR1cm47XG4gIGlmICh0eXBlb2YgbyA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIGFycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTtcbiAgdmFyIG4gPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykuc2xpY2UoOCwgLTEpO1xuICBpZiAobiA9PT0gXCJPYmplY3RcIiAmJiBvLmNvbnN0cnVjdG9yKSBuID0gby5jb25zdHJ1Y3Rvci5uYW1lO1xuICBpZiAobiA9PT0gXCJNYXBcIiB8fCBuID09PSBcIlNldFwiKSByZXR1cm4gQXJyYXkuZnJvbShvKTtcbiAgaWYgKG4gPT09IFwiQXJndW1lbnRzXCIgfHwgL14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7XG59IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHQvLyBubyBtb2R1bGUuaWQgbmVlZGVkXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcblx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG5cdFx0ZnVuY3Rpb24oKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG5cdFx0ZnVuY3Rpb24oKSB7IHJldHVybiBtb2R1bGU7IH07XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuXHRyZXR1cm4gZ2V0dGVyO1xufTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBkZWZpbml0aW9uKSB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iaiwgcHJvcCkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCk7IH0iLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyIsImltcG9ydCBzdG9yZSBmcm9tICcuL3V0aWxzL3N0b3JlJ1xyXG5pbXBvcnQgeyB1bmNvbXByZXNzIH0gZnJvbSAnLi91dGlscy9kYXRhJ1xyXG5pbXBvcnQgZnJlcXVlbnRseSBmcm9tICcuL3V0aWxzL2ZyZXF1ZW50bHknXHJcblxyXG5leHBvcnQge1xyXG4gIFBpY2tlcixcclxuICBFbW9qaSxcclxuICBBbmNob3JzLFxyXG4gIFByZXZpZXcsXHJcbiAgU2VhcmNoLFxyXG4gIENhdGVnb3J5LFxyXG4gIFNraW5zLFxyXG59IGZyb20gJy4vY29tcG9uZW50cydcclxuXHJcbmV4cG9ydCB7IEVtb2ppSW5kZXgsIEVtb2ppVmlldywgRW1vamlEYXRhLCBzYW5pdGl6ZSB9IGZyb20gJy4vdXRpbHMvZW1vamktZGF0YSdcclxuZXhwb3J0IHsgdW5jb21wcmVzcywgc3RvcmUsIGZyZXF1ZW50bHkgfVxyXG4iXSwibmFtZXMiOlsiZGVmYXVsdCIsIkFuY2hvcnMiLCJDYXRlZ29yeSIsIlByZXZpZXciLCJTZWFyY2giLCJTa2lucyIsIkVtb2ppIiwiUGlja2VyIiwiX1N0cmluZyIsIlN0cmluZyIsImZyb21Db2RlUG9pbnQiLCJzdHJpbmdGcm9tQ29kZVBvaW50IiwiTUFYX1NJWkUiLCJjb2RlVW5pdHMiLCJoaWdoU3Vycm9nYXRlIiwibG93U3Vycm9nYXRlIiwiaW5kZXgiLCJsZW5ndGgiLCJhcmd1bWVudHMiLCJyZXN1bHQiLCJjb2RlUG9pbnQiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsIk1hdGgiLCJmbG9vciIsIlJhbmdlRXJyb3IiLCJwdXNoIiwiZnJvbUNoYXJDb2RlIiwiYXBwbHkiLCJTVkdzIiwiYWN0aXZpdHkiLCJjdXN0b20iLCJmbGFncyIsImZvb2RzIiwibmF0dXJlIiwib2JqZWN0cyIsInNtaWxleXMiLCJwZW9wbGUiLCJwbGFjZXMiLCJyZWNlbnQiLCJzeW1ib2xzIiwibWFwcGluZyIsIm5hbWUiLCJ1bmlmaWVkIiwibm9uX3F1YWxpZmllZCIsImhhc19pbWdfYXBwbGUiLCJoYXNfaW1nX2dvb2dsZSIsImhhc19pbWdfdHdpdHRlciIsImhhc19pbWdfZmFjZWJvb2siLCJrZXl3b3JkcyIsInNoZWV0IiwiZW1vdGljb25zIiwidGV4dCIsInNob3J0X25hbWVzIiwiYWRkZWRfaW4iLCJidWlsZFNlYXJjaCIsImVtb2ppIiwic2VhcmNoIiwiYWRkVG9TZWFyY2giLCJzdHJpbmdzIiwic3BsaXQiLCJBcnJheSIsImlzQXJyYXkiLCJmb3JFYWNoIiwic3RyaW5nIiwicyIsInRvTG93ZXJDYXNlIiwiaW5kZXhPZiIsImpvaW4iLCJkZWVwRnJlZXplIiwib2JqZWN0IiwicHJvcE5hbWVzIiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsInZhbHVlIiwiZnJlZXplIiwidW5jb21wcmVzcyIsImRhdGEiLCJjb21wcmVzc2VkIiwiaWQiLCJlbW9qaXMiLCJrZXkiLCJ1bnNoaWZ0Iiwic2hlZXRfeCIsInNoZWV0X3kiLCJ0b0ZpeGVkIiwiaW50ZXJzZWN0IiwidW5pZmllZFRvTmF0aXZlIiwiZnJlcXVlbnRseSIsIlNIRUVUX0NPTFVNTlMiLCJDT0xPTlNfUkVHRVgiLCJTS0lOUyIsIkVtb2ppSW5kZXgiLCJlbW9qaXNUb1Nob3dGaWx0ZXIiLCJpbmNsdWRlIiwiZXhjbHVkZSIsInJlY2VudExlbmd0aCIsIl9kYXRhIiwiX2Vtb2ppc0ZpbHRlciIsIl9pbmNsdWRlIiwiX2V4Y2x1ZGUiLCJfY3VzdG9tIiwiX3JlY2VudCIsImdldCIsIl9lbW9qaXMiLCJfbmF0aXZlRW1vamlzIiwiX2Vtb3RpY29ucyIsIl9jYXRlZ29yaWVzIiwiX3JlY2VudENhdGVnb3J5IiwiX2N1c3RvbUNhdGVnb3J5IiwiX3NlYXJjaEluZGV4IiwiYnVpbGRJbmRleCIsImFsbENhdGVnb3JpZXMiLCJjYXRlZ29yaWVzIiwiZmlsdGVyIiwiaXRlbSIsImluY2x1ZGVzIiwic29ydCIsImEiLCJiIiwiaW5kZXhBIiwiaW5kZXhCIiwiY2F0ZWdvcnlEYXRhIiwiaXNDYXRlZ29yeU5lZWRlZCIsImNhdGVnb3J5IiwiZW1vamlJZCIsImFkZEVtb2ppIiwiY3VzdG9tRW1vamkiLCJhZGRDdXN0b21FbW9qaSIsIm1hcCIsImhhc0Vtb2ppIiwic2tpbiIsIm1hdGNoZXMiLCJtYXRjaCIsInBhcnNlSW50IiwiYWxpYXNlcyIsImhhc093blByb3BlcnR5IiwiZW1vamlPYmplY3QiLCJnZXRTa2luIiwiRXJyb3IiLCJrZXlzIiwidW5pY29kZUVtb2ppIiwibWF4UmVzdWx0cyIsInZhbHVlcyIsImFsbFJlc3VsdHMiLCJjdXJyZW50SW5kZXgiLCJjaGFySW5kZXgiLCJjaGFyIiwicmVzdWx0cyIsInNjb3JlcyIsInN1YiIsInN1YnN0ciIsInN1YkluZGV4Iiwic2NvcmUiLCJhU2NvcmUiLCJiU2NvcmUiLCJzbGljZSIsImVtb2ppRGF0YSIsImFzc2lnbiIsIkVtb2ppRGF0YSIsImlzRW1vamlOZWVkZWQiLCJuYXRpdmUiLCJfc2tpbnMiLCJpZHgiLCJlbW90aWNvbiIsImNhdGVnb3J5X2lkIiwiaXNJbmNsdWRlZCIsImlzRXhjbHVkZWQiLCJza2luX3ZhcmlhdGlvbnMiLCJza2luSWR4Iiwic2tpbktleSIsInZhcmlhdGlvbkRhdGEiLCJza2luRGF0YSIsImsiLCJfc2FuaXRpemVkIiwic2FuaXRpemUiLCJzaG9ydF9uYW1lIiwiYWRqdXN0ZWRDb2x1bW5zIiwieCIsInkiLCJjb25jYXQiLCJCb29sZWFuIiwiRW1vamlWaWV3Iiwic2V0IiwiZmFsbGJhY2siLCJlbW9qaVRvb2x0aXAiLCJlbW9qaVNpemUiLCJfZW1vamkiLCJfbmF0aXZlIiwiX3NraW4iLCJfc2V0IiwiX2ZhbGxiYWNrIiwiY2FuUmVuZGVyIiwiX2NhblJlbmRlciIsImNzc0NsYXNzIiwiX2Nzc0NsYXNzIiwiY3NzU3R5bGUiLCJfY3NzU3R5bGUiLCJjb250ZW50IiwiX2NvbnRlbnQiLCJ0aXRsZSIsImFyaWFMYWJlbCIsIl9pc0N1c3RvbSIsIl9pc05hdGl2ZSIsIl9oYXNFbW9qaSIsIl9lbW9qaVR5cGUiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJnZXRFbW9qaSIsImltYWdlVXJsIiwiYmFja2dyb3VuZFNpemUiLCJ3aWR0aCIsImhlaWdodCIsImJhY2tncm91bmRQb3NpdGlvbiIsImdldFBvc2l0aW9uIiwiZm9udFNpemUiLCJyb3VuZCIsImhhc0ltYWdlIiwidW5kZWZpbmVkIiwic2tpbl90b25lIiwiY29sb25zIiwic3RvcmUiLCJERUZBVUxUUyIsImluaXRpYWxpemVkIiwiZGVmYXVsdHMiLCJpbml0IiwiYWRkIiwibWF4TnVtYmVyIiwiZGVmYXVsdExlbmd0aCIsIm1pbiIsImkiLCJxdWFudGl0eSIsImZyZXF1ZW50bHlLZXlzIiwic29ydGVkIiwicmV2ZXJzZSIsInNsaWNlZCIsImxhc3QiLCJwb3AiLCJ1bmljb2RlcyIsImNvZGVQb2ludHMiLCJ1IiwidW5pcSIsImFyciIsInJlZHVjZSIsImFjYyIsInVuaXFBIiwidW5pcUIiLCJkZWVwTWVyZ2UiLCJvIiwib3JpZ2luYWxWYWx1ZSIsIm1lYXN1cmVTY3JvbGxiYXIiLCJkb2N1bWVudCIsImRpdiIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsIm92ZXJmbG93IiwicG9zaXRpb24iLCJ0b3AiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJzY3JvbGxiYXJXaWR0aCIsIm9mZnNldFdpZHRoIiwiY2xpZW50V2lkdGgiLCJyZW1vdmVDaGlsZCIsIlBpY2tlclZpZXciLCJwaWNrZXJDb21wb25lbnQiLCJfdm0iLCJfcGVyTGluZSIsInBlckxpbmUiLCJmaXJzdCIsImFjdGl2ZUNhdGVnb3J5Iiwic2VhcmNoRW1vamlzIiwicHJldmlld0Vtb2ppIiwicHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHgiLCJwcmV2aWV3RW1vamlJZHgiLCJzY3JvbGxFbGVtZW50IiwiJHJlZnMiLCJzY3JvbGwiLCJzY3JvbGxUb3AiLCJmaWx0ZXJlZENhdGVnb3JpZXMiLCJsIiwiY29tcG9uZW50IiwiZ2V0Q2F0ZWdvcnlDb21wb25lbnQiLCIkZWwiLCJvZmZzZXRUb3AiLCJoYXNFbW9qaXMiLCJzY3JvbGxUb0NvbXBvbmVudCIsImluZmluaXRlU2Nyb2xsIiwibWF4U2VhcmNoUmVzdWx0cyIsInVwZGF0ZVByZXZpZXdFbW9qaSIsImVtb2ppc0xlbmd0aCIsIm9uQXJyb3dSaWdodCIsImNhdGVnb3J5TGVuZ3RoIiwiZGlmZiIsInByZXZDYXRlZ29yeUxhc3RSb3dMZW5ndGgiLCJvbkFycm93TGVmdCIsIiRuZXh0VGljayIsInNjcm9sbEVsIiwiZW1vamlFbCIsInF1ZXJ5U2VsZWN0b3IiLCJzY3JvbGxIZWlnaHQiLCJvZmZzZXRIZWlnaHQiLCJjYXRlZ29yeUlkeCIsIkVtb2ppUHJvcHMiLCJ0eXBlIiwidG9vbHRpcCIsIkZ1bmN0aW9uIiwicmVxdWlyZWQiLCJzaXplIiwidGFnIiwiUGlja2VyUHJvcHMiLCJjb2xvciIsImRlZmF1bHRTa2luIiwiYXV0b0ZvY3VzIiwiaTE4biIsInNob3dQcmV2aWV3Iiwic2hvd1NlYXJjaCIsInNob3dDYXRlZ29yaWVzIiwic2hvd1NraW5Ub25lcyIsInBpY2tlclN0eWxlcyIsIk5BTUVTUEFDRSIsIl9KU09OIiwiSlNPTiIsImlzTG9jYWxTdG9yYWdlU3VwcG9ydGVkIiwid2luZG93IiwiZ2V0dGVyIiwic2V0dGVyIiwic2V0SGFuZGxlcnMiLCJoYW5kbGVycyIsInNldE5hbWVzcGFjZSIsIm5hbWVzcGFjZSIsInVwZGF0ZSIsInN0YXRlIiwibG9jYWxTdG9yYWdlIiwic3RyaW5naWZ5IiwiZSIsInBhcnNlIiwiaXNXaW5kb3dBdmFpbGFibGUiLCJsYXN0VGltZSIsInZlbmRvcnMiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsImNhbGxiYWNrIiwiZWxlbWVudCIsImN1cnJUaW1lIiwiRGF0ZSIsImdldFRpbWUiLCJ0aW1lVG9DYWxsIiwibWF4Iiwic2V0VGltZW91dCIsImNsZWFyVGltZW91dCJdLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.EmojiMart=t():e.EmojiMart=t()}("undefined"!=typeof self?self:this,(function(){return function(){var e={661:function(){"undefined"!=typeof window&&function(){for(var e=0,t=["ms","moz","webkit","o"],i=0;ie.length)&&(t=e.length);for(var i=0,n=new Array(t);i=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,a=!1;return{s:function(){i=i.call(e)},n:function(){var e=i.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw o}}}}(Object.getOwnPropertyNames(e));try{for(i.s();!(t=i.n()).done;){var n=t.value,r=e[n];e[n]=r&&"object"===u(r)?d(r):r}}catch(e){i.e(e)}finally{i.f()}return Object.freeze(e)}var f,p,v=function(e){if(!e.compressed)return e;for(var t in e.compressed=!1,e.emojis){var i=e.emojis[t];for(var n in h)i[n]=i[h[n]],delete i[h[n]];i.short_names||(i.short_names=[]),i.short_names.unshift(t),i.sheet_x=i.sheet[0],i.sheet_y=i.sheet[1],delete i.sheet,i.text||(i.text=""),i.added_in||(i.added_in=6),i.added_in=i.added_in.toFixed(1),i.search=m(i)}return d(e)},j=["+1","grinning","kissing_heart","heart_eyes","laughing","stuck_out_tongue_winking_eye","sweat_smile","joy","scream","disappointed","unamused","weary","sob","sunglasses","heart","hankey"],y={};function g(){p=!0,f=c.get("frequently")}var w={add:function(e){p||g();var t=e.id;f||(f=y),f[t]||(f[t]=0),f[t]+=1,c.set("last",t),c.set("frequently",f)},get:function(e){if(p||g(),!f){y={};for(var t=[],i=Math.min(e,j.length),n=0;n',custom:'',flags:'',foods:'',nature:'',objects:'',smileys:'',people:' ',places:'',recent:'',symbols:''};function C(e,t,i,n,r,o,s,a){var c,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),o&&(u._scopeId="data-v-"+o),s?(c=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(s)},u._ssrRegister=c):r&&(c=a?function(){r.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:r),c)if(u.functional){u._injectStyles=c;var l=u.render;u.render=function(e,t){return c.call(t),l(e,t)}}else{var h=u.beforeCreate;u.beforeCreate=h?[].concat(h,c):[c]}return{exports:e,options:u}}var b=C({props:{i18n:{type:Object,required:!0},color:{type:String},categories:{type:Array,required:!0},activeCategory:{type:Object,default:function(){return{}}}},created:function(){this.svgs=_}},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"emoji-mart-anchors",attrs:{role:"tablist"}},e._l(e.categories,(function(t){return i("button",{key:t.id,class:{"emoji-mart-anchor":!0,"emoji-mart-anchor-selected":t.id==e.activeCategory.id},style:{color:t.id==e.activeCategory.id?e.color:""},attrs:{role:"tab",type:"button","aria-label":t.name,"aria-selected":t.id==e.activeCategory.id,"data-title":e.i18n.categories[t.id]},on:{click:function(i){return e.$emit("click",t)}}},[i("div",{attrs:{"aria-hidden":"true"},domProps:{innerHTML:e._s(e.svgs[t.id])}}),e._v(" "),i("span",{staticClass:"emoji-mart-anchor-bar",style:{backgroundColor:e.color},attrs:{"aria-hidden":"true"}})])})),0)}),[],!1,null,null,null),k=b.exports;function E(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function S(e,t){for(var i=0;i1114111||Math.floor(a)!=a)throw RangeError("Invalid code point: "+a);a<=65535?n.push(a):(e=55296+((a-=65536)>>10),t=a%1024+56320,n.push(e,t)),(r+1===o||n.length>i)&&(s+=String.fromCharCode.apply(null,n),n.length=0)}return s};function P(e){var t=e.split("-").map((function(e){return"0x".concat(e)}));return O.apply(null,t)}function A(e){return e.reduce((function(e,t){return-1===e.indexOf(t)&&e.push(t),e}),[])}function M(e,t){var i=A(e),n=A(t);return i.filter((function(e){return n.indexOf(e)>=0}))}function I(e,t){var i={};for(var n in e){var r=e[n],o=r;t.hasOwnProperty(n)&&(o=t[n]),"object"===u(o)&&(o=I(r,o)),i[n]=o}return i}function F(e,t){var i="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!i){if(Array.isArray(e)||(i=function(e,t){if(e){if("string"==typeof e)return z(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?z(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){i&&(e=i);var n=0,r=function(){};return{s:r,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,a=!1;return{s:function(){i=i.call(e)},n:function(){var e=i.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw o}}}}function z(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i1&&void 0!==arguments[1]?arguments[1]:{},n=i.emojisToShowFilter,r=i.include,o=i.exclude,s=i.custom,a=i.recent,c=i.recentLength,u=void 0===c?20:c;E(this,e),this._data=v(t),this._emojisFilter=n||null,this._include=r||null,this._exclude=o||null,this._custom=s||[],this._recent=a||w.get(u),this._emojis={},this._nativeEmojis={},this._emoticons={},this._categories=[],this._recentCategory={id:"recent",name:"Recent",emojis:[]},this._customCategory={id:"custom",name:"Custom",emojis:[]},this._searchIndex={},this.buildIndex(),Object.freeze(this)}return x(e,[{key:"buildIndex",value:function(){var e=this,t=this._data.categories;if(this._include&&(t=(t=t.filter((function(t){return e._include.includes(t.id)}))).sort((function(t,i){var n=e._include.indexOf(t.id),r=e._include.indexOf(i.id);return nr?1:0}))),t.forEach((function(t){if(e.isCategoryNeeded(t.id)){var i={id:t.id,name:t.name,emojis:[]};t.emojis.forEach((function(t){var n=e.addEmoji(t);n&&i.emojis.push(n)})),i.emojis.length&&e._categories.push(i)}})),this.isCategoryNeeded("custom")){if(this._custom.length>0){var i,n=F(this._custom);try{for(n.s();!(i=n.n()).done;){var r=i.value;this.addCustomEmoji(r)}}catch(e){n.e(e)}finally{n.f()}}this._customCategory.emojis.length&&this._categories.push(this._customCategory)}this.isCategoryNeeded("recent")&&(this._recent.length&&this._recent.map((function(t){var i,n=F(e._customCategory.emojis);try{for(n.s();!(i=n.n()).done;){var r=i.value;if(r.id===t)return void e._recentCategory.emojis.push(r)}}catch(e){n.e(e)}finally{n.f()}e.hasEmoji(t)&&e._recentCategory.emojis.push(e.emoji(t))})),this._recentCategory.emojis.length&&this._categories.unshift(this._recentCategory))}},{key:"findEmoji",value:function(e,t){var i=e.match(L);if(i&&(e=i[1],i[2]&&(t=parseInt(i[2],10))),this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]),this._emojis.hasOwnProperty(e)){var n=this._emojis[e];return t?n.getSkin(t):n}return this._nativeEmojis.hasOwnProperty(e)?this._nativeEmojis[e]:null}},{key:"categories",value:function(){return this._categories}},{key:"emoji",value:function(e){this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]);var t=this._emojis[e];if(!t)throw new Error("Can not find emoji by id: "+e);return t}},{key:"firstEmoji",value:function(){var e=this._emojis[Object.keys(this._emojis)[0]];if(!e)throw new Error("Can not get first emoji");return e}},{key:"hasEmoji",value:function(e){return this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]),!!this._emojis[e]}},{key:"nativeEmoji",value:function(e){return this._nativeEmojis.hasOwnProperty(e)?this._nativeEmojis[e]:null}},{key:"search",value:function(e,t){var i=this;if(t||(t=75),!e.length)return null;if("-"==e||"-1"==e)return[this.emoji("-1")];var n,r=e.toLowerCase().split(/[\s|,|\-|_]+/);r.length>2&&(r=[r[0],r[1]]),n=r.map((function(e){for(var t=i._emojis,n=i._searchIndex,r=0,o=0;o1?M.apply(null,n):n.length?n[0]:[])&&o.length>t&&(o=o.slice(0,t)),o}},{key:"addCustomEmoji",value:function(e){var t=Object.assign({},e,{id:e.short_names[0],custom:!0});t.search||(t.search=m(t));var i=new $(t);return this._emojis[i.id]=i,this._customCategory.emojis.push(i),i}},{key:"addEmoji",value:function(e){var t=this,i=this._data.emojis[e];if(!this.isEmojiNeeded(i))return!1;var n=new $(i);if(this._emojis[e]=n,n.native&&(this._nativeEmojis[n.native]=n),n._skins)for(var r in n._skins){var o=n._skins[r];o.native&&(this._nativeEmojis[o.native]=o)}return n.emoticons&&n.emoticons.forEach((function(i){t._emoticons[i]||(t._emoticons[i]=e)})),n}},{key:"isCategoryNeeded",value:function(e){var t=!this._include||!this._include.length||this._include.indexOf(e)>-1,i=!(!this._exclude||!this._exclude.length)&&this._exclude.indexOf(e)>-1;return!(!t||i)}},{key:"isEmojiNeeded",value:function(e){return!this._emojisFilter||this._emojisFilter(e)}}]),e}(),$=function(){function e(t){if(E(this,e),this._data=Object.assign({},t),this._skins=null,this._data.skin_variations)for(var i in this._skins=[],T){var n=T[i],r=this._data.skin_variations[n],o=Object.assign({},t);for(var s in r)o[s]=r[s];delete o.skin_variations,o.skin_tone=parseInt(i)+1,this._skins.push(new e(o))}for(var a in this._sanitized=N(this._data),this._sanitized)this[a]=this._sanitized[a];this.short_names=this._data.short_names,this.short_name=this._data.short_names[0],Object.freeze(this)}return x(e,[{key:"getSkin",value:function(e){return e&&"native"!=e&&this._skins?this._skins[e-1]:this}},{key:"getPosition",value:function(){var e=+(100/60*this._data.sheet_x).toFixed(2),t=+(100/60*this._data.sheet_y).toFixed(2);return"".concat(e,"% ").concat(t,"%")}},{key:"ariaLabel",value:function(){return[this.native].concat(this.short_names).filter(Boolean).join(", ")}}]),e}(),R=function(){function e(t,i,n,r,o,s,a){E(this,e),this._emoji=t,this._native=r,this._skin=i,this._set=n,this._fallback=o,this.canRender=this._canRender(),this.cssClass=this._cssClass(),this.cssStyle=this._cssStyle(a),this.content=this._content(),this.title=!0===s?t.short_name:null,this.ariaLabel=t.ariaLabel(),Object.freeze(this)}return x(e,[{key:"getEmoji",value:function(){return this._emoji.getSkin(this._skin)}},{key:"_canRender",value:function(){return this._isCustom()||this._isNative()||this._hasEmoji()||this._fallback}},{key:"_cssClass",value:function(){return["emoji-set-"+this._set,"emoji-type-"+this._emojiType()]}},{key:"_cssStyle",value:function(e){var t={};return this._isCustom()?t={backgroundImage:"url("+this.getEmoji()._data.imageUrl+")",backgroundSize:"100%",width:e+"px",height:e+"px"}:this._hasEmoji()&&!this._isNative()&&(t={backgroundPosition:this.getEmoji().getPosition()}),e&&(t=this._isNative()?Object.assign(t,{fontSize:Math.round(.95*e*10)/10+"px"}):Object.assign(t,{width:e+"px",height:e+"px"})),t}},{key:"_content",value:function(){return this._isCustom()?"":this._isNative()?this.getEmoji().native:this._hasEmoji()?"":this._fallback?this._fallback(this.getEmoji()):null}},{key:"_isNative",value:function(){return this._native}},{key:"_isCustom",value:function(){return this.getEmoji().custom}},{key:"_hasEmoji",value:function(){if(!this.getEmoji()._data)return!1;var e=this.getEmoji()._data["has_img_"+this._set];return void 0===e||e}},{key:"_emojiType",value:function(){return this._isCustom()?"custom":this._isNative()?"native":this._hasEmoji()?"image":"fallback"}}]),e}();function N(e){var t=e.name,i=e.short_names,n=e.skin_tone,r=e.skin_variations,o=e.emoticons,s=e.unified,a=e.custom,c=e.imageUrl,u=e.id||i[0],l=":".concat(u,":");return a?{id:u,name:t,colons:l,emoticons:o,custom:a,imageUrl:c}:(n&&(l+=":skin-tone-".concat(n,":")),{id:u,name:t,colons:l,emoticons:o,unified:s.toLowerCase(),skin:n||(r?1:null),native:P(s)})}function D(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var B={native:{type:Boolean,default:!1},tooltip:{type:Boolean,default:!1},fallback:{type:Function},skin:{type:Number,default:1},set:{type:String,default:"apple"},emoji:{type:[String,Object],required:!0},size:{type:Number,default:null},tag:{type:String,default:"span"}},H={perLine:{type:Number,default:9},maxSearchResults:{type:Number,default:75},emojiSize:{type:Number,default:24},title:{type:String,default:"Emoji Mart™"},emoji:{type:String,default:"department_store"},color:{type:String,default:"#ae65c5"},set:{type:String,default:"apple"},skin:{type:Number,default:null},defaultSkin:{type:Number,default:1},native:{type:Boolean,default:!1},emojiTooltip:{type:Boolean,default:!1},autoFocus:{type:Boolean,default:!1},i18n:{type:Object,default:function(){return{}}},showPreview:{type:Boolean,default:!0},showSearch:{type:Boolean,default:!0},showCategories:{type:Boolean,default:!0},showSkinTones:{type:Boolean,default:!0},infiniteScroll:{type:Boolean,default:!0},pickerStyles:{type:Object,default:function(){return{}}}};function U(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function V(e){for(var t=1;t0},emojiObjects:function(){var e=this;return this.emojis.map((function(t){return{emojiObject:t,emojiView:new R(t,e.emojiProps.skin,e.emojiProps.set,e.emojiProps.native,e.emojiProps.fallback,e.emojiProps.emojiTooltip,e.emojiProps.emojiSize)}}))}},components:{Emoji:W}},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return e.isVisible&&(e.isSearch||e.hasResults)?i("section",{class:{"emoji-mart-category":!0,"emoji-mart-no-results":!e.hasResults},attrs:{"aria-label":e.i18n.categories[e.id]}},[i("div",{staticClass:"emoji-mart-category-label"},[i("h3",{staticClass:"emoji-mart-category-label"},[e._v(e._s(e.i18n.categories[e.id]))])]),e._v(" "),e._l(e.emojiObjects,(function(t){var n=t.emojiObject,r=t.emojiView;return[r.canRender?i("button",{key:n.id,staticClass:"emoji-mart-emoji",class:e.activeClass(n),attrs:{"aria-label":r.ariaLabel,role:"option","aria-selected":"false","aria-posinset":"1","aria-setsize":"1812",type:"button","data-title":n.short_name,title:r.title},on:{mouseenter:function(t){e.emojiProps.onEnter(r.getEmoji())},mouseleave:function(t){e.emojiProps.onLeave(r.getEmoji())},click:function(t){e.emojiProps.onClick(r.getEmoji())}}},[i("span",{class:r.cssClass,style:r.cssStyle},[e._v(e._s(r.content))])]):e._e()]})),e._v(" "),e.hasResults?e._e():i("div",[i("emoji",{attrs:{data:e.data,emoji:"sleuth_or_spy",native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}}),e._v(" "),i("div",{staticClass:"emoji-mart-no-results-label"},[e._v(e._s(e.i18n.notfound))])],1)],2):e._e()}),[],!1,null,null,null).exports,X=C({props:{skin:{type:Number,required:!0}},data:function(){return{opened:!1}},methods:{onClick:function(e){this.opened&&e!=this.skin&&this.$emit("change",e),this.opened=!this.opened}}},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{class:{"emoji-mart-skin-swatches":!0,"emoji-mart-skin-swatches-opened":e.opened}},e._l(6,(function(t){return i("span",{key:t,class:{"emoji-mart-skin-swatch":!0,"emoji-mart-skin-swatch-selected":e.skin==t}},[i("span",{class:"emoji-mart-skin emoji-mart-skin-tone-"+t,on:{click:function(i){return e.onClick(t)}}})])})),0)}),[],!1,null,null,null).exports,Z=C({props:{data:{type:Object,required:!0},title:{type:String,required:!0},emoji:{type:[String,Object]},idleEmoji:{type:[String,Object],required:!0},showSkinTones:{type:Boolean,default:!0},emojiProps:{type:Object,required:!0},skinProps:{type:Object,required:!0},onSkinChange:{type:Function,required:!0}},computed:{emojiData:function(){return this.emoji?this.emoji:{}},emojiShortNames:function(){return this.emojiData.short_names},emojiEmoticons:function(){return this.emojiData.emoticons}},components:{Emoji:W,Skins:X}},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"emoji-mart-preview"},[e.emoji?[i("div",{staticClass:"emoji-mart-preview-emoji"},[i("emoji",{attrs:{data:e.data,emoji:e.emoji,native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}})],1),e._v(" "),i("div",{staticClass:"emoji-mart-preview-data"},[i("div",{staticClass:"emoji-mart-preview-name"},[e._v(e._s(e.emoji.name))]),e._v(" "),i("div",{staticClass:"emoji-mart-preview-shortnames"},e._l(e.emojiShortNames,(function(t){return i("span",{key:t,staticClass:"emoji-mart-preview-shortname"},[e._v(":"+e._s(t)+":")])})),0),e._v(" "),i("div",{staticClass:"emoji-mart-preview-emoticons"},e._l(e.emojiEmoticons,(function(t){return i("span",{key:t,staticClass:"emoji-mart-preview-emoticon"},[e._v(e._s(t))])})),0)])]:[i("div",{staticClass:"emoji-mart-preview-emoji"},[i("emoji",{attrs:{data:e.data,emoji:e.idleEmoji,native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}})],1),e._v(" "),i("div",{staticClass:"emoji-mart-preview-data"},[i("span",{staticClass:"emoji-mart-title-label"},[e._v(e._s(e.title))])]),e._v(" "),e.showSkinTones?i("div",{staticClass:"emoji-mart-preview-skins"},[i("skins",{attrs:{skin:e.skinProps.skin},on:{change:function(t){return e.onSkinChange(t)}}})],1):e._e()]],2)}),[],!1,null,null,null).exports,G=C({props:{data:{type:Object,required:!0},i18n:{type:Object,required:!0},autoFocus:{type:Boolean,default:!1},onSearch:{type:Function,required:!0},onArrowLeft:{type:Function,required:!1},onArrowRight:{type:Function,required:!1},onArrowDown:{type:Function,required:!1},onArrowUp:{type:Function,required:!1},onEnter:{type:Function,required:!1}},data:function(){return{value:""}},computed:{emojiIndex:function(){return this.data}},watch:{value:function(){this.$emit("search",this.value)}},methods:{clear:function(){this.value=""}},mounted:function(){var e=this.$el.querySelector("input");this.autoFocus&&e.focus()}},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"emoji-mart-search"},[i("input",{directives:[{name:"model",rawName:"v-model",value:e.value,expression:"value"}],attrs:{type:"text",placeholder:e.i18n.search,role:"textbox","aria-autocomplete":"list","aria-owns":"emoji-mart-list","aria-label":"Search for an emoji","aria-describedby":"emoji-mart-search-description"},domProps:{value:e.value},on:{keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"left",37,t.key,["Left","ArrowLeft"])||"button"in t&&0!==t.button?null:function(t){return e.$emit("arrowLeft",t)}.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"right",39,t.key,["Right","ArrowRight"])||"button"in t&&2!==t.button?null:function(){return e.$emit("arrowRight")}.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])?null:function(){return e.$emit("arrowDown")}.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])?null:function(t){return e.$emit("arrowUp",t)}.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:function(){return e.$emit("enter")}.apply(null,arguments)}],input:function(t){t.target.composing||(e.value=t.target.value)}}}),e._v(" "),i("span",{staticClass:"hidden",attrs:{id:"emoji-picker-search-description"}},[e._v("Use the left, right, up and down arrow keys to navigate the emoji search\n results.")])])}),[],!1,null,null,null),K=G.exports;function Q(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i0})),this._categories[0].first=!0,Object.freeze(this._categories),this.activeCategory=this._categories[0],this.searchEmojis=null,this.previewEmoji=null,this.previewEmojiCategoryIdx=0,this.previewEmojiIdx=-1}return x(e,[{key:"onScroll",value:function(){for(var e=this._vm.$refs.scroll.scrollTop,t=this.filteredCategories[0],i=0,n=this.filteredCategories.length;ie)break;t=r}this.activeCategory=t}},{key:"allCategories",get:function(){return this._categories}},{key:"filteredCategories",get:function(){return this.searchEmojis?[{id:"search",name:"Search",emojis:this.searchEmojis}]:this._categories.filter((function(e){return e.emojis.length>0}))}},{key:"previewEmojiCategory",get:function(){return this.previewEmojiCategoryIdx>=0?this.filteredCategories[this.previewEmojiCategoryIdx]:null}},{key:"onAnchorClick",value:function(e){var t=this;if(!this.searchEmojis){var i=this.filteredCategories.indexOf(e),n=this._vm.getCategoryComponent(i);this._vm.infiniteScroll?function(){if(n){var i=n.$el.offsetTop;e.first&&(i=0),t._vm.$refs.scroll.scrollTop=i}}():this.activeCategory=this.filteredCategories[i]}}},{key:"onSearch",value:function(e){var t=this._data.search(e,this.maxSearchResults);this.searchEmojis=t,this.previewEmojiCategoryIdx=0,this.previewEmojiIdx=0,this.updatePreviewEmoji()}},{key:"onEmojiEnter",value:function(e){this.previewEmoji=e,this.previewEmojiIdx=-1,this.previewEmojiCategoryIdx=-1}},{key:"onEmojiLeave",value:function(e){this.previewEmoji=null}},{key:"onArrowLeft",value:function(){this.previewEmojiIdx>0?this.previewEmojiIdx-=1:(this.previewEmojiCategoryIdx-=1,this.previewEmojiCategoryIdx<0?this.previewEmojiCategoryIdx=0:this.previewEmojiIdx=this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length-1),this.updatePreviewEmoji()}},{key:"onArrowRight",value:function(){this.previewEmojiIdx=this.filteredCategories.length?this.previewEmojiCategoryIdx=this.filteredCategories.length-1:this.previewEmojiIdx=0),this.updatePreviewEmoji()}},{key:"onArrowDown",value:function(){if(-1==this.previewEmojiIdx)return this.onArrowRight();var e=this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length,t=this._perLine;this.previewEmojiIdx+t>e&&(t=e%this._perLine);for(var i=0;i0?this.filteredCategories[this.previewEmojiCategoryIdx-1].emojis.length%this._perLine:0);for(var t=0;tn+t.scrollTop&&(t.scrollTop+=i.offsetHeight),i&&i.offsetTop>>` allows to apply scoped css to child element that is generated\r\n * dynamically\r\n**/\n.modal[data-v-4fbc735b] .modal-scroll {\r\n color: red;\r\n max-height: none;\n}\n.modal .modal-body[data-v-4fbc735b] {\r\n max-height: none;\n}\nh1[data-v-4fbc735b] {\r\n font-family: Courier;\r\n font-size: 2rem;\n}\nh2[data-v-4fbc735b] {\r\n font-family: Courier;\r\n font-size: 1.25rem;\r\n margin-top: 2rem;\n}\n.app .row[data-v-4fbc735b] {\r\n display: block;\n}\n.row + .row[data-v-4fbc735b] {\r\n margin-top: 2em;\n}\n.row-small[data-v-4fbc735b] {\r\n margin-top: 1em;\n}\n.emoji-mart[data-v-4fbc735b] {\r\n margin: 0 auto;\r\n text-align: left;\n}\n.emoji-mart-title-label[data-v-4fbc735b] {\r\n font-size: 21px;\n}\n.popup[data-v-4fbc735b] {\r\n position: fixed;\r\n width: 100%;\r\n height: 100vh;\r\n left: 0;\r\n top: 0;\r\n z-index: 200;\r\n background: rebeccapurple;\r\n opacity: 95%;\n}\n.popup-box[data-v-4fbc735b] {\r\n height: 100%;\r\n overflow: auto;\r\n display: block;\r\n padding-top: 120px;\r\n padding-bottom: 80px;\n}\n.popup-content[data-v-4fbc735b] {\r\n background: white;\r\n -webkit-box-shadow: 0px 24px 54px rgba(20, 28, 49, 0.14);\r\n box-shadow: 0px 24px 54px rgba(20, 28, 49, 0.14);\r\n border-radius: 18px;\r\n padding: 6px 6px 9px 6px;\r\n position: relative;\r\n width: 100%;\r\n max-width: 462px;\r\n margin: 0 auto;\n}\n.popup-close[data-v-4fbc735b] {\r\n position: absolute;\r\n top: 20px;\r\n right: 30px;\r\n cursor: pointer;\n}\n.row-small-picker[data-v-4fbc735b] .emoji-mart-anchors svg {\r\n width: 9px;\r\n height: 9px;\n}\n.row-small-picker[data-v-4fbc735b] .emoji-mart-title-label {\r\n font-size: 9px;\n}\n.row-small-picker[data-v-4fbc735b] .emoji-mart-preview-data {\r\n left: 40px;\r\n font-size: 9px;\n}\n.row-small-picker[data-v-4fbc735b] .emoji-mart-preview-name {\r\n font-size: 9px;\n}\n.row-small-picker[data-v-4fbc735b] .emoji-mart-preview-emoji .emoji-type-native {\r\n font-size: 12px;\r\n width: 12px;\r\n height: 12px;\n}\r\n", "",{"version":3,"sources":["webpack://./docs/app.vue"],"names":[],"mappings":";AA+TA;EACA,kBAAA;AACA;AACA;EACA,oBAAA;EACA,kBAAA;EACA,oCAAA;EACA,gBAAA;EACA,UAAA;EACA,eAAA;AACA;AAEA;EACA,qBAAA;EACA,eAAA;AACA;AAEA;EACA,UAAA;AACA;;AAEA;;;;EAIA;AACA;EACA,UAAA;EACA,gBAAA;AACA;AACA;EACA,gBAAA;AACA;AAEA;EACA,oBAAA;EACA,eAAA;AACA;AAEA;EACA,oBAAA;EACA,kBAAA;EACA,gBAAA;AACA;AAEA;EACA,cAAA;AACA;AAEA;EACA,eAAA;AACA;AAEA;EACA,eAAA;AACA;AAEA;EACA,cAAA;EACA,gBAAA;AACA;AAEA;EACA,eAAA;AACA;AAEA;EACA,eAAA;EACA,WAAA;EACA,aAAA;EACA,OAAA;EACA,MAAA;EACA,YAAA;EACA,yBAAA;EACA,YAAA;AACA;AACA;EACA,YAAA;EACA,cAAA;EACA,cAAA;EACA,kBAAA;EACA,oBAAA;AACA;AACA;EACA,iBAAA;EACA,wDAAA;UAAA,gDAAA;EACA,mBAAA;EACA,wBAAA;EACA,kBAAA;EACA,WAAA;EACA,gBAAA;EACA,cAAA;AACA;AACA;EACA,kBAAA;EACA,SAAA;EACA,WAAA;EACA,eAAA;AACA;AAEA;EACA,UAAA;EACA,WAAA;AACA;AACA;EACA,cAAA;AACA;AACA;EACA,UAAA;EACA,cAAA;AACA;AACA;EACA,cAAA;AACA;AACA;EACA,eAAA;EACA,WAAA;EACA,YAAA;AACA","sourcesContent":["\r\n \r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n {{ emojisOutput }}\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n

QDialog Example

\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n\r\n
\r\n

Custom Dialog Example

\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n X\r\n
\r\n

Emoji Selector

\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n

Custom Search And Preview Templates Example

\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n

Filtered picker example

\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n

I18n picker example

\r\n
\r\n \r\n
\r\n\r\n
\r\n

Custom order example

\r\n
\r\n \r\n
\r\n\r\n
\r\n

Small picker example

\r\n
\r\n \r\n
\r\n \r\n\r\n\r\n\r\n\r\n\r\n"],"sourceRoot":""}]); +___CSS_LOADER_EXPORT___.push([module.id, "\nbutton + button[data-v-4fbc735b] {\n margin-left: 0.5em;\n}\nbutton[data-v-4fbc735b] {\n padding: 0.4em 0.6em;\n border-radius: 5px;\n border: 1px solid rgba(0, 0, 0, 0.1);\n background: #fff;\n outline: 0;\n cursor: pointer;\n}\nbutton[disabled][data-v-4fbc735b] {\n border-color: #ae65c5;\n cursor: default;\n}\n.modal[data-v-4fbc735b] {\n color: red;\n}\n\n/**\n * See https://vue-loader.vuejs.org/guide/scoped-css.html#deep-selectors\n * the `>>>` allows to apply scoped css to child element that is generated\n * dynamically\n**/\n.modal[data-v-4fbc735b] .modal-scroll {\n color: red;\n max-height: none;\n}\n.modal .modal-body[data-v-4fbc735b] {\n max-height: none;\n}\nh1[data-v-4fbc735b] {\n font-family: Courier;\n font-size: 2rem;\n}\nh2[data-v-4fbc735b] {\n font-family: Courier;\n font-size: 1.25rem;\n margin-top: 2rem;\n}\n.app .row[data-v-4fbc735b] {\n display: block;\n}\n.row + .row[data-v-4fbc735b] {\n margin-top: 2em;\n}\n.row-small[data-v-4fbc735b] {\n margin-top: 1em;\n}\n.emoji-mart[data-v-4fbc735b] {\n margin: 0 auto;\n text-align: left;\n}\n.emoji-mart-title-label[data-v-4fbc735b] {\n font-size: 21px;\n}\n.popup[data-v-4fbc735b] {\n position: fixed;\n width: 100%;\n height: 100vh;\n left: 0;\n top: 0;\n z-index: 200;\n background: rebeccapurple;\n opacity: 95%;\n}\n.popup-box[data-v-4fbc735b] {\n height: 100%;\n overflow: auto;\n display: block;\n padding-top: 120px;\n padding-bottom: 80px;\n}\n.popup-content[data-v-4fbc735b] {\n background: white;\n -webkit-box-shadow: 0px 24px 54px rgba(20, 28, 49, 0.14);\n box-shadow: 0px 24px 54px rgba(20, 28, 49, 0.14);\n border-radius: 18px;\n padding: 6px 6px 9px 6px;\n position: relative;\n width: 100%;\n max-width: 462px;\n margin: 0 auto;\n}\n.popup-close[data-v-4fbc735b] {\n position: absolute;\n top: 20px;\n right: 30px;\n cursor: pointer;\n}\n.row-small-picker[data-v-4fbc735b] .emoji-mart-anchors svg {\n width: 9px;\n height: 9px;\n}\n.row-small-picker[data-v-4fbc735b] .emoji-mart-title-label {\n font-size: 9px;\n}\n.row-small-picker[data-v-4fbc735b] .emoji-mart-preview-data {\n left: 40px;\n font-size: 9px;\n}\n.row-small-picker[data-v-4fbc735b] .emoji-mart-preview-name {\n font-size: 9px;\n}\n.row-small-picker[data-v-4fbc735b] .emoji-mart-preview-emoji .emoji-type-native {\n font-size: 12px;\n width: 12px;\n height: 12px;\n}\n", "",{"version":3,"sources":["webpack://./docs/app.vue"],"names":[],"mappings":";AA+TA;EACA,kBAAA;AACA;AACA;EACA,oBAAA;EACA,kBAAA;EACA,oCAAA;EACA,gBAAA;EACA,UAAA;EACA,eAAA;AACA;AAEA;EACA,qBAAA;EACA,eAAA;AACA;AAEA;EACA,UAAA;AACA;;AAEA;;;;EAIA;AACA;EACA,UAAA;EACA,gBAAA;AACA;AACA;EACA,gBAAA;AACA;AAEA;EACA,oBAAA;EACA,eAAA;AACA;AAEA;EACA,oBAAA;EACA,kBAAA;EACA,gBAAA;AACA;AAEA;EACA,cAAA;AACA;AAEA;EACA,eAAA;AACA;AAEA;EACA,eAAA;AACA;AAEA;EACA,cAAA;EACA,gBAAA;AACA;AAEA;EACA,eAAA;AACA;AAEA;EACA,eAAA;EACA,WAAA;EACA,aAAA;EACA,OAAA;EACA,MAAA;EACA,YAAA;EACA,yBAAA;EACA,YAAA;AACA;AACA;EACA,YAAA;EACA,cAAA;EACA,cAAA;EACA,kBAAA;EACA,oBAAA;AACA;AACA;EACA,iBAAA;EACA,wDAAA;UAAA,gDAAA;EACA,mBAAA;EACA,wBAAA;EACA,kBAAA;EACA,WAAA;EACA,gBAAA;EACA,cAAA;AACA;AACA;EACA,kBAAA;EACA,SAAA;EACA,WAAA;EACA,eAAA;AACA;AAEA;EACA,UAAA;EACA,WAAA;AACA;AACA;EACA,cAAA;AACA;AACA;EACA,UAAA;EACA,cAAA;AACA;AACA;EACA,cAAA;AACA;AACA;EACA,eAAA;EACA,WAAA;EACA,YAAA;AACA","sourcesContent":["\n \n\n
\n \n
\n\n
\n \n
\n\n
\n {{ emojisOutput }}\n
\n\n
\n \n
\n\n
\n

QDialog Example

\n
\n \n
\n\n \n \n \n\n
\n

Custom Dialog Example

\n
\n \n
\n\n
\n
\n
\n
\n X\n
\n

Emoji Selector

\n \n
\n
\n
\n\n
\n

Custom Search And Preview Templates Example

\n
\n \n \n \n \n
\n\n
\n

Filtered picker example

\n
\n \n
\n
\n \n
\n\n
\n

I18n picker example

\n
\n \n
\n\n
\n

Custom order example

\n
\n \n
\n\n
\n

Small picker example

\n
\n \n
\n \n\n\n\n\n\n"],"sourceRoot":""}]); // Exports /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___); @@ -17803,4 +17803,4 @@ new vue__WEBPACK_IMPORTED_MODULE_3__["default"]({ /******/ })() ; }); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QVksYUFBYSxhQUFhLE9BQU8sS0FBSyxVQUFVLFlBQVksYUFBYSxXQUFXLFVBQVUsWUFBWSxhQUFhLGFBQWEsT0FBTyxLQUFLLFlBQVksT0FBTyxLQUFLLFVBQVUsVUFBVSxVQUFVLE9BQU8sS0FBSyxNQUFNLE9BQU8sYUFBYSxPQUFPLEtBQUssWUFBWSxNQUFNLE9BQU8sYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxPQUFPLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE9BQU8sS0FBSyxZQUFZLGFBQWEsWUFBWSxVQUFVLFVBQVUsWUFBWSx1QkFBdUIseUJBQXlCLGFBQWEsT0FBTyxLQUFLLFdBQVcsV0FBVyxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsV0FBVyxVQUFVLFVBQVUsT0FBTyxLQUFLLFlBQVksV0FBVyxXQUFXLFdBQVcsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxXQUFXLFlBQVksYUFBYSxhQUFhLE1BQU0sTUFBTSxVQUFVLE9BQU8sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLFdBQVcsVUFBVSxVQUFVLFVBQVUsWUFBWSxPQUFPLEtBQUssWUFBWSxXQUFXLFVBQVUsT0FBTyxLQUFLLFlBQVksYUFBYSxPQUFPLEtBQUssVUFBVSxZQUFZLFlBQVksVUFBVSxVQUFVLFlBQVksdUJBQXVCLHlCQUF5QixhQUFhLE9BQU8sS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLFdBQVcsS0FBSyxLQUFLLFVBQVUsWUFBWSxPQUFPLEtBQUssWUFBWSxPQUFPLEtBQUssVUFBVSxZQUFZLGFBQWEsV0FBVyxPQUFPLE1BQU0sVUFBVSxVQUFVLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsV0FBVyxLQUFLLE1BQU0sVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLFdBQVcsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsT0FBTyxLQUFLLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsT0FBTyxLQUFLLFlBQVksYUFBYSxXQUFXLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxXQUFXLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLFdBQVcsTUFBTSxPQUFPLFlBQVksV0FBVyxZQUFZLGFBQWEsYUFBYSxPQUFPLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksT0FBTyxLQUFLLFVBQVUsWUFBWSxPQUFPLEtBQUssVUFBVSxPQUFPLEtBQUssVUFBVSxVQUFVLEtBQUssT0FBTyxZQUFZLE9BQU8sS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksYUFBYSxPQUFPLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksT0FBTyxLQUFLLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxPQUFPLEtBQUssVUFBVSxVQUFVLE9BQU8sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLFdBQVcsWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxPQUFPLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxPQUFPLEtBQUssWUFBWSxXQUFXLFVBQVUsTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsV0FBVyxZQUFZLGFBQWEsYUFBYSxPQUFPLEtBQUssWUFBWSxXQUFXLFlBQVksV0FBVyxZQUFZLE9BQU8sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZ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QUFjLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsb0JBQW9CLDhCQUE4QixHQUFHLHNCQUFzQiw4QkFBOEIsR0FBRyxzQkFBc0IsOEJBQThCLEdBQUcsc0JBQXNCLDhCQUE4QixHQUFHLHNCQUFzQiw4QkFBOEIsR0FBRyxzQkFBc0IsOEJBQThCLEdBQUcsc0JBQXNCLDhCQUE4QixHQUFHLHNCQUFzQiw4QkFBOEIsR0FBRyxzQkFBc0IsOEJBQThCLEdBQUcsc0JBQXNCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsY0FBYyw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGNBQWMsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxlQUFlLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcscUJBQXFCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyx3QkFBd0IsOEJBQThCLEdBQUcsd0JBQXdCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyx3QkFBd0IsOEJBQThCLEdBQUcsY0FBYyw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxtQkFBbUIsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiwyQkFBMkIsR0FBRyxtQkFBbUIsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLGVBQWUsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixH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Z0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixnQ0FBZ0MsR0FBRyxtQkFBbUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsWUFBWSxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsa0JBQWtCLG1DQUFtQyxHQUFHLG9CQUFvQixtQ0FBbUMsR0FBRyxvQkFBb0IsbUNBQW1DLEdBQUcsb0JBQW9CLG1DQUFtQyxHQUFHLG9CQUFvQixtQ0FBbUMsR0FBRyxvQkFBb0IsbUNBQW1DLEdBQUcsb0JBQW9CLG1DQUFtQyxHQUFHLG9CQUFvQixtQ0FBbUMsR0FBRyxvQkFBb0IsbUNBQW1DLEdBQUcsb0JBQW9CLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcsWUFBWSxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsWUFBWSxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsYUFBYSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLG1CQUFtQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLFlBQVksbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsZ0NBQWdDLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxhQUFhLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLG1CQUFtQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLGFBQWEsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxZQUFZLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLGdDQUFnQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLGdDQUFnQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsbUJBQW1CLG1DQUFtQyxHQUFHLG1CQUFtQixtQ0FBbUMsR0FBRyxtQkFBbUIsbUNBQW1DLEdBQUcsbUJBQW1CLG1DQUFtQyxHQUFHLG1CQUFtQixtQ0FBbUMsR0FBRyxtQkFBbUIsbUNBQW1DLEdBQUcsbUJBQW1CLG1DQUFtQyxHQUFHLG1CQUFtQixtQ0FBbUMsR0FBRyxtQkFB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QWEsTUFBTSxPQUFPLFVBQVUsVUFBVSxNQUFNLE1BQU0sVUFBVSxZQUFZLGFBQWEsTUFBTSxRQUFRLFlBQVksYUFBYSxNQUFNLGdCQUFnQixVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxRQUFRLFlBQVksV0FBVyxNQUFNLEtBQUssWUFBWSxhQUFhLFdBQVcsWUFBWSxNQUFNLFFBQVEsVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sT0FBTyxZQUFZLE1BQU0sTUFBTSxVQUFVLFVBQVUsS0FBSyxNQUFNLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxXQUFXLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxhQUFhLFdBQVcsWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLFdBQVcsVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLE1BQU0sWUFBWSxXQUFXLEtBQUssTUFBTSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLFdBQVcsVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLFdBQVcsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLE1BQU0sVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxXQUFXLFlBQVksV0FBVyxZQUFZLFdBQVcsWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxZQUFZLFdBQVcsWUFBWSxhQUFhLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxXQUFXLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxNQUFNLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLEtBQUssTUFBTSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxPQUFPLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLE1BQU0sWUFBWSxhQUFhLGFBQWEsTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssTUFBTSxVQUFVLFlBQVksTUFBTSxNQUFNLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFlBQVksWUFBWSxVQUFVLFdBQVcsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLFdBQVcsWUFBWSxhQUFhLFdBQVcsS0FBSyxLQUFLLFlBQVksYUFBYSxXQUFXLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxXQUFXLE1BQU0sTUFBTSxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsV0FBVyxVQUFVLFVBQVUsVUFBVSxZQUFZLFdBQVcsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxXQUFXLFlBQVksTUFBTSxLQUFLLFlBQVksWUFBWSxVQUFVLE1BQU0sTUFBTSxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssT0FBTyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLFdBQVcsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksV0FBVyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxXQUFXLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLFlBQVksVUFBVSxNQUFNLEtBQUssWUFBWSxXQUFXLFVBQVUsVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsVUFBVSxZQUFZLFdBQVcsS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLFdBQVcsVUFBVSxZQUFZLGFBQWEsV0FBVyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxZQUFZLFdBQVcsVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxNQUFNLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksV0FBVyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxXQUFXLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxXQUFXLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxXQUFXLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLFdBQVcsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLFdBQVcsTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxLQUFLLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxhQUFhLFdBQVcsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksV0FBVyxZQUFZLFdBQVcsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxXQUFXLFlBQVksV0FBVyxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLFdBQVcsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLE1BQU0sVUFBVSxLQUFLLE1BQU0sVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLFdBQVcsVUFBVSxVQUFVLFlBQVksV0FBVyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLFlBQVksVUFBVSxNQUFNLEtBQUssWUFBWSxZQUFZLFVBQVUsTUFBTSxLQUFLLEtBQUssWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxXQUFXLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsV0FBVyxLQUFLLEtBQUssWUFBWSxhQUFhLFdBQVcsS0FBSyxNQUFNLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsV0FBVyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxXQUFXLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxXQUFXLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsV0FBVyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxXQUFXLE1BQU0sS0FBSyxZQUFZLFdBQVcsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLFFBQVEsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLE9BQU8sVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxPQUFPLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLFlBQVksWUFBWSxhQUFhLE1BQU0sUUFBUSxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsV0FBVyxLQUFLLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxNQUFNLFVBQVUsS0FBSyxNQUFNLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsV0FBVyxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksV0FBVyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sT0FBTyxZQUFZLE1BQU0sT0FBTyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLE9BQU8sVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLFFBQVEsWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sT0FBTyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLE1BQU0sT0FBTyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLFdBQVcsWUFBWSxNQUFNLE9BQU8sWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxXQUFXLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxNQUFNLE9BQU8sVUFBVSxZQUFZLE1BQU0sT0FBTyxVQUFVLEtBQUssT0FBTyxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxNQUFNLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLFdBQVcsWUFBWSxhQUFhLFdBQVcsWUFBWSxhQUFhLGFBQWEsV0FBVyxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxNQUFNLFVBQVUsVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsV0FBVyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLFdBQVcsVUFBVSxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLFVBQVUsWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLFFBQVEsWUFBWSxNQUFNLE1BQU0sVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sU0FBUyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssTUFBTSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sUUFBUSxZQUFZLGFBQWEsTUFBTSxRQUFRLFlBQVksTUFBTSxRQUFRLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLFlBQVksVUFBVSxXQUFXLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxVQUFVLFVBQVUsWUFBWSxNQUFNLE1BQU0sVUFBVSxNQUFNLEtBQUssWUFBWSxXQUFXLFlBQVksV0FBVyxVQUFVLEtBQUssTUFBTSxVQUFVLE1BQU0sS0FBSyxZQUFZLFlBQVksVUFBVSxXQUFXLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsV0FBVyxZQUFZLGFBQWEsYUFBYSxXQUFXLFlBQVksYUFBYSxhQUFhLE1BQU0sT0FBTyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLE1BQU0sWUFBWSxhQUFhLGFBQWEsTUFBTSxNQUFNLFVBQVUsTUFBTSxRQUFRLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksTUFBTSxNQUFNLFlBQVksV0FBVyxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxVQUFVLEtBQUssTUFBTSxVQUFVLFlBQVksTUFBTSxRQUFRLFVBQVUsTUFBTSxNQUFNLFVBQVUsS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxRQUFRLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsV0FBVyxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFVBQVUsS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLE9BQU8sVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLFlBQVksV0FBVyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLE1BQU0sVUFBVSxLQUFLLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxVQUFVLEtBQUssTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLFVBQVUsS0FBSyxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sVUFBVSxLQUFLLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLFdBQVcsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxXQUFXLFVBQVUsTUFBTSxVQUFVLFVBQVUsWUFBWSxhQUFhLFdBQVcsS0FBSyxnQkFBZ0IsVUFBVSxZQUFZLGFBQWEsV0FBVyxLQUFLLGFBQWEsWUFBWSxXQUFXLFVBQVUsVUFBVSxNQUFNLE1BQU0sVUFBVSxLQUFLLE9BQU8sVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLFlBQVksYUFBYSxNQUFNLE1BQU0sWUFBWSxXQUFXLFVBQVUsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxXQUFXLFlBQVksYUFBYSxhQUFhLFdBQVcsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksV0FBVyxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLFlBQVksYUFBYSxNQUFNLE1BQU0sVUFBVSxZQUFZLGFBQWEsV0FBVyxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sT0FBTyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsV0FBVyxVQUFVLFlBQVksYUFBYSxjQUFjLGVBQWUsT0FBTyxNQUFNLFlBQVksV0FBVyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxPQUFPLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxXQUFXLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxXQUFXLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sTUFBTSxVQUFVLEtBQUssS0FBSyxZQUFZLFdBQVcsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLE1BQU0sVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsVUFBVSxZQUFZLGFBQWEsV0FBVyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLFdBQVcsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLFdBQVcsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsV0FBVyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxPQUFPLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLFdBQVcsTUFBTSxNQUFNLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLFVBQVUsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxXQUFXLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxNQUFNLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxPQUFPLFVBQVUsS0FBSyxNQUFNLFlBQVksV0FBVyxVQUFVLFVBQVUsWUFBWSxNQUFNLE1BQU0sVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxVQUFVLFlBQVksV0FBVyxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxNQUFNLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsWUFBWSxXQUFXLFlBQVksTUFBTSxNQUFNLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLFdBQVcsS0FBSyxLQUFLLE1BQU0sWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLEtBQUssTUFBTSxZQUFZLFlBQVksVUFBVSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLFdBQVcsVUFBVSxVQUFVLFVBQVUsS0FBSyxNQUFNLFlBQVksYUFBYSxhQUFhLE1BQU0sTUFBTSxVQUFVLEtBQUssTUFBTSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLFlBQVksVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsWUFBWSxXQUFXLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLFdBQVcsVUFBVSxVQUFVLFVBQVUsVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLFdBQVcsVUFBVSxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxZQUFZLFVBQVUsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLE1BQU0sVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLFdBQVcsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLFdBQVcsVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxPQUFPLFlBQVksV0FBVyxNQUFNLEtBQUssVUFBVSxZQUFZLFdBQVcsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxRQUFRLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxNQUFNLFlBQVksYUFBYSxNQUFNLFFBQVEsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLFdBQVcsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxZQUFZLFdBQVcsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLFdBQVcsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsV0FBVyxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLEtBQUssWUFBWSxXQUFXLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxPQUFPLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxXQUFXLE1BQU0sUUFBUSxVQUFVLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLE1BQU0sVUFBVSxLQUFLLE1BQU0sVUFBVSxZQUFZLGFBQWEsTUFBTSxNQUFNLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLEtBQUssWUFBWSxhQUFhLFdBQVcsVUFBVSxZQUFZLGFBQWEsV0FBVyxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsV0FBVyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxZQUFZLFVBQVUsV0FBVyxVQUFVLFVBQVUsWUFBWSxXQUFXLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxNQUFNLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLFdBQVcsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxNQUFNLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLFdBQVcsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sT0FBTyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLE9BQU8sWUFBWSxhQUFhLFdBQVcsWUFBWSxVQUFVLE1BQU0sT0FBTyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxVQUFVLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLFdBQVcsTUFBTSxLQUFLLFlBQVksYUFBYSxXQUFXLE1BQU0sS0FBSyxZQUFZLGFBQWEsVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxZQUFZLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxZQUFZLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxLQUFLLE1BQU0sVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssb0VBQW9FLFdBQVcsVUFBVSxVQUFVLE1BQU0sb0VBQW9FLFdBQVcsVUFBVSxZQUFZLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxNQUFNLGdDQUFnQyxhQUFhLFlBQVksVUFBVSxNQUFNLE1BQU0sWUFBWSxZQUFZLFVBQVUsTUFBTSxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxVQUFVLEtBQUssTUFBTSxVQUFVLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLFdBQVcsS0FBSyxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLE1BQU0sVUFBVSxVQUFVLEtBQUssTUFBTSxVQUFVLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksV0FBVyxLQUFLLE1BQU0sVUFBVSxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLFdBQVcsS0FBSyxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLE1BQU0sVUFBVSxVQUFVLEtBQUssTUFBTSxVQUFVLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksV0FBVyxLQUFLLE1BQU0sVUFBVSxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLFdBQVcsS0FBSyxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLE1BQU0sVUFBVSxVQUFVLEtBQUssTUFBTSxVQUFVLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksV0FBVyxLQUFLLE1BQU0sVUFBVSxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLFdBQVcsS0FBSyxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLE1BQU0sVUFBVSxVQUFVLEtBQUssS0FBSyxLQUFLLG9DQUFvQyxXQUFXLFVBQVUsVUFBVSxNQUFNLG9DQUFvQyxXQUFXLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxrQkFBa0IsWUFBWSxZQUFZLFVBQVUsTUFBTSxLQUFLLFlBQVksWUFBWSxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssS0FBSyxvQ0FBb0MsV0FBVyxVQUFVLFVBQVUsTUFBTSxvQ0FBb0MsV0FBVyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sa0JBQWtCLFlBQVksWUFBWSxVQUFVLE1BQU0sS0FBSyxZQUFZLFlBQVksVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLEtBQUssb0NBQW9DLFdBQVcsVUFBVSxVQUFVLE1BQU0sb0NBQW9DLFdBQVcsVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLGtCQUFrQixZQUFZLFlBQVksVUFBVSxNQUFNLEtBQUssWUFBWSxZQUFZLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxLQUFLLG9DQUFvQyxXQUFXLFVBQVUsVUFBVSxNQUFNLG9DQUFvQyxXQUFXLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxrQkFBa0IsWUFBWSxZQUFZLFVBQVUsTUFBTSxLQUFLLFlBQVksWUFBWSxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxRQUFRLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLE9BQU8sWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sZUFBZSxVQUFVLE1BQU0sZUFBZSxZQUFZLE1BQU0sTUFBTSxVQUFVLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxVQUFVLFVBQVUsS0FBSyxNQUFNLFVBQVUsVUFBVSxVQUFVLEtBQUssTUFBTSxVQUFVLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxVQUFVLEtBQUssTUFBTSxVQUFVLFVBQVUsS0FBSyxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sTUFBTSxVQUFVLFVBQVUsVUFBVSxVQUFVLEtBQUssTUFBTSxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksV0FBVyxZQUFZLGFBQWEsV0FBVyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksV0FBVyxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxXQUFXLFVBQVUsVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxXQUFXLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxXQUFXLFlBQVksV0FBVyxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxNQUFNLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxNQUFNLFVBQVUsTUFBTSxNQUFNLFVBQVUsTUFBTSxNQUFNLFVBQVUsS0FBSyxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxXQUFXLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxXQUFXLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsV0FBVyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLFdBQVcsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxZQUFZLGFBQWEsV0FBVyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksV0FBVyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLFdBQVcsWUFBWSxhQUFhLFdBQVcsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLE1BQU0sWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxRQUFRLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssYUFBYSxZQUFZLE1BQU0sS0FBSyxLQUFLLGFBQWEsWUFBWSxNQUFNLEtBQUssS0FBSyxhQUFhLFlBQVksTUFBTSxLQUFLLEtBQUssYUFBYSxZQUFZLE1BQU0sS0FBSyxLQUFLLGFBQWEsWUFBWSxNQUFNLEtBQUssS0FBSyxZQUFZLFdBQVcsWUFBWSxXQUFXLFVBQVUsWUFBWSxhQUFhLFdBQVcsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksTUFBTSxPQUFPLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksTUFBTSxPQUFPLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxXQUFXLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxXQUFXLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxLQUFLLEtBQUssVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxLQUFLLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFB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QixHQUFHLHNCQUFzQiw4QkFBOEIsR0FBRyxzQkFBc0IsOEJBQThCLEdBQUcsc0JBQXNCLDhCQUE4QixHQUFHLHNCQUFzQiw4QkFBOEIsR0FBRyxzQkFBc0IsOEJBQThCLEdBQUcsc0JBQXNCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsY0FBYyw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGNBQWMsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxlQUFlLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcscUJBQXFCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyx3QkFBd0IsOEJBQThCLEdBQUcsd0JBQXdCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyx3QkFBd0IsOEJBQThCLEdBQUcsY0FBYyw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixH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QUcsc0JBQXNCLDhCQUE4QixHQUFHLFdBQVcsbUNBQW1DLEdBQUcsYUFBYSxtQ0FBbUMsR0FBRyxhQUFhLG1DQUFtQyxHQUFHLGFBQWEsbUNBQW1DLEdBQUcsYUFBYSxtQ0FBbUMsR0FBRyxhQUFhLG1DQUFtQyxHQUFHLGFBQWEsbUNBQW1DLEdBQUcsYUFBYSxtQ0FBbUMsR0FBRyxhQUFhLG1DQUFtQyxHQUFHLGFBQWEsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLFlBQVksbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixnQ0FBZ0MsR0FBRyxtQkFBbUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsWUFBWSxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsa0JBQWtCLG1DQUFtQyxHQUFHLG9CQUFvQixtQ0FBbUMsR0FBRyxvQkFBb0IsbUNBQW1DLEdBQUcsb0JBQW9CLG1DQUFtQyxHQUFHLG9CQUFvQixtQ0FBbUMsR0FBRyxvQkFBb0IsbUNBQW1DLEdBQUcsb0JBQW9CLG1DQUFtQyxHQUFHLG9CQUFvQixtQ0FBbUMsR0FBRyxvQkFBb0IsbUNBQW1DLEdBQUcsb0JBQW9CLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcsWUFBWSxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsWUFBWSxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsYUFBYSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLG1CQUFtQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLFlBQVksbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsZ0NBQWdDLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxhQUFhLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLG1CQUFtQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLGFBQWEsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFt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QUEyQixrQkFBa0IsR0FBRywyQkFBMkIscUJBQXFCLEdBQUcsWUFBWSxxQkFBcUIsR0FBRyx1QkFBdUIsc0JBQXNCLEdBQUcsdUJBQXVCLHVCQUF1QixHQUFHLHVCQUF1QixxQkFBcUIsR0FBRyx1QkFBdUIsd0JBQXdCLEdBQUcsWUFBWSxvQkFBb0IsR0FBRyx1QkFBdUIscUJBQXFCLEdBQUcsdUJBQXVCLHNCQUFzQixHQUFHLHVCQUF1QixvQkFBb0IsR0FBRyx1QkFBdUIsdUJBQXVCLEdBQUcsWUFBWSxxQkFBcUIsR0FBRyx1QkFBdUIsc0JBQXNCLEdBQUcsdUJBQXVCLHVCQUF1QixHQUFHLHVCQUF1QixxQkFBcUIsR0FBRyx1QkFBdUIsd0JBQXdCLEdBQUcsWUFBWSxvQkFBb0IsR0FBRyx1QkFBdUIscUJBQXFCLEdBQUcsdUJBQXVCLHNCQUFzQixHQUFHLHVCQUF1QixvQkFBb0IsR0FBRyx1QkFBdUIsdUJBQXVCLEdBQUcsWUFBWSx1QkFBdUIsR0FBRyx1QkFBdUIsdUJBQXVCLEdBQUcsdUJBQXVCLHdCQUF3QixHQUFHLHVCQUF1QixzQkFBc0IsR0FBRyx1QkFBdUIseUJBQXlCLEdBQUcsWUFBWSxzQkFBc0IsR0FBRyx1QkFBdUIsc0JBQXNCLEdBQUcsdUJBQXVCLHVCQUF1QixHQUFHLHVCQUF1QixxQkFBcUIsR0FBRyx1QkFBdUIsd0JBQXdCLEdBQUcsWUFBWSx1QkFBdUIsR0FBRyx1QkFBdUIsdUJBQXVCLEdBQUcsdUJBQXVCLHdCQUF3QixHQUFHLHVCQUF1QixzQkFBc0IsR0FBRyx1QkFBdUIseUJBQXlCLEdBQUcsWUFBWSxzQkFBc0IsR0FBRyx1QkFBdUIsc0JBQXNCLEdBQUcsdUJBQXVCLHVCQUF1QixHQUFHLHVCQUF1QixxQkFBcUIsR0FBRyx1QkFBdUIsd0JBQXdCLEdBQUcsWUFBWSx1QkFBdUIsR0FBRyx1QkFBdUIsdUJBQXVCLEdBQUcsdUJBQXVCLHdCQUF3QixHQUFHLHVCQUF1QixzQkFBc0IsR0FBRyx1QkFBdUIseUJBQXlCLEdBQUcsWUFBWSxzQkFBc0IsR0FBRyx1QkFBdUIsc0JB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QUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxJQUFxQztBQUMzQztBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLE9BQU87QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBLHFDQUFxQztBQUNyQztBQUNBLHNDQUFzQztBQUN0QztBQUNBO0FBQ0EsTUFBTSxLQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBRVE7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxLQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixtQkFBbUI7QUFDekM7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxLQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsOENBQThDO0FBQzlDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsSUFBcUM7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNB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QUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsS0FBcUM7QUFDL0M7QUFDQTtBQUNBLDhCQUE4QjtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNkNBQTZDLGNBQWM7QUFDM0QsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxLQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0Esa0RBQWtEO0FBQ2xELDRDQUE0QztBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsNkNBQTZDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FB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O0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLHNGQUFzRjtBQUM1RjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwwQ0FBMEM7QUFDMUMsa0JBQWtCLHlCQUF5QjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRywrQkFBK0I7QUFDbEMsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRLElBQXFDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDLE9BQU87QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFVBQVUsS0FBcUM7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7Ozs7QUFJQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLEtBQXFDO0FBQ3pEO0FBQ0EsTUFBTSxDQUFFO0FBQ1I7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0EsSUFBSTtBQUNKLHlCQUF5QjtBQUN6QjtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLElBQXFDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNLEtBQUssRUFFTjtBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksS0FBcUM7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxLQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQSwrQkFBK0I7O0FBRS9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUSxLQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxTQUFTLElBQXFDO0FBQ3BEO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxLQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLG9CQUFvQjtBQUMxQztBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0EsK0JBQStCO0FBQy9CLE1BQU0sSUFBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVEsS0FBcUM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFxQztBQUM3QztBQUNBLE1BQU0sS0FBSyxFQUVOO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0EscUJBQXFCO0FBQ3JCOztBQUVBO0FBQ0EsUUFBUSxLQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0VBQXNFO0FBQ3RFO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFFBQVEsS0FBcUM7QUFDN0M7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDOztBQUVqQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBLFlBQVksS0FBcUM7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTs7Ozs7O0FBTUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDJDQUEyQyw0QkFBNEI7QUFDdkUsS0FBSztBQUNMO0FBQ0EsMkNBQTJDLDZCQUE2QjtBQUN4RSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDO0FBQ2hDLE1BQU0sSUFBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLE9BQU87QUFDM0M7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLEtBQXFDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNB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QUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHNCQUFzQiwyQkFBMkI7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHNCQUFzQiw4QkFBOEI7QUFDcEQ7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLGlCQUFpQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsNEVBQTRFO0FBQzVFOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QztBQUN4Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7QUFDM0M7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEI7QUFDNUIsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLCtDQUErQztBQUN2RDtBQUNBOztBQUVBO0FBQ0E7QUFDQSxtQ0FBbUM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBLHdDQUF3QyxTQUFTO0FBQ2pEO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQix3QkFBd0I7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EscURBQXFELDZCQUE2QjtBQUNsRixNQUFNO0FBQ047QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCxnQ0FBZ0M7QUFDckYsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQzs7QUFFL0M7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsTUFBTSxLQUFxQztBQUMzQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2REFBNkQ7QUFDN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBLGtDQUFrQyxvQ0FBb0M7O0FBRXRFO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0Qyx3Q0FBd0M7QUFDcEY7QUFDQTtBQUNBO0FBQ0EsOENBQThDLDRDQUE0QztBQUMxRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxLQUFxQztBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QyxPQUFPO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxzQ0FBc0MsK0JBQStCO0FBQ3JFOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLE1BQU07QUFDTjtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxnQ0FBZ0M7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsUUFBUTtBQUNSO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsbUNBQW1DOztBQUVuQyxzQ0FBc0M7O0FBRXRDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsUUFBUSxLQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxRQUFRLEtBQXFDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsOENBQThDO0FBQzlDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNB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O0FBQ1BJLEVBQUFBLEVBQUUsRUFBRSxNQURHO0FBRVBDLEVBQUFBLE1BQU0sRUFBRSxnQkFBQ0MsQ0FBRDtBQUFBLFdBQU9BLENBQUMsQ0FBQ0wsNENBQUQsQ0FBUjtBQUFBO0FBRkQsQ0FBUixFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvZG9jcy9hcHAudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC9zcmMvY29tcG9uZW50cy9FbW9qaS52dWUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3NyYy9jb21wb25lbnRzL1BpY2tlci52dWUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3NyYy9jb21wb25lbnRzL2FuY2hvcnMudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC9zcmMvY29tcG9uZW50cy9jYXRlZ29yeS52dWUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3NyYy9jb21wb25lbnRzL3ByZXZpZXcudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC9zcmMvY29tcG9uZW50cy9zZWFyY2gudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC9zcmMvY29tcG9uZW50cy9za2lucy52dWUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2luZGV4LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9wb2x5ZmlsbHMvc3RyaW5nRnJvbUNvZGVQb2ludC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvc3Zncy9pbmRleC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdXRpbHMvZGF0YS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdXRpbHMvZW1vamktZGF0YS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdXRpbHMvZnJlcXVlbnRseS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdXRpbHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL3V0aWxzL3BpY2tlci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdXRpbHMvc2hhcmVkLXByb3BzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy91dGlscy9zdG9yZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdmVuZG9yL3JhZi1wb2x5ZmlsbC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19hLWZ1bmN0aW9uLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2FkZC10by11bnNjb3BhYmxlcy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19hZHZhbmNlLXN0cmluZy1pbmRleC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19hbi1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fYXJyYXktaW5jbHVkZXMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fYXJyYXktbWV0aG9kcy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19hcnJheS1zcGVjaWVzLWNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2FycmF5LXNwZWNpZXMtY3JlYXRlLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2NsYXNzb2YuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fY29mLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2NvcmUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fY3JlYXRlLXByb3BlcnR5LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2N0eC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19kZWZpbmVkLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2Rlc2NyaXB0b3JzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2RvbS1jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fZW51bS1idWcta2V5cy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19lbnVtLWtleXMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fZXhwb3J0LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2ZhaWxzLWlzLXJlZ2V4cC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19mYWlscy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19maXgtcmUtd2tzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2ZsYWdzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2Z1bmN0aW9uLXRvLXN0cmluZy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19nbG9iYWwuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faGFzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2hpZGUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faHRtbC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pZTgtZG9tLWRlZmluZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pbmhlcml0LWlmLXJlcXVpcmVkLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2lvYmplY3QuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faXMtYXJyYXktaXRlci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pcy1hcnJheS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pcy1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faXMtcmVnZXhwLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2l0ZXItY2FsbC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pdGVyLWNyZWF0ZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pdGVyLWRlZmluZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pdGVyLWRldGVjdC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pdGVyLXN0ZXAuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faXRlcmF0b3JzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2xpYnJhcnkuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fbWV0YS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19vYmplY3QtYXNzaWduLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX29iamVjdC1jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fb2JqZWN0LWRwLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX29iamVjdC1kcHMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fb2JqZWN0LWdvcGQuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fb2JqZWN0LWdvcG4tZXh0LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX29iamVjdC1nb3BuLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX29iamVjdC1nb3BzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX29iamVjdC1ncG8uanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fb2JqZWN0LWtleXMtaW50ZXJuYWwuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fb2JqZWN0LWtleXMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fb2JqZWN0LXBpZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19vYmplY3Qtc2FwLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX293bi1rZXlzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3Byb3BlcnR5LWRlc2MuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fcmVkZWZpbmUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fcmVnZXhwLWV4ZWMtYWJzdHJhY3QuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fcmVnZXhwLWV4ZWMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fc2FtZS12YWx1ZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19zZXQtcHJvdG8uanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fc2V0LXRvLXN0cmluZy10YWcuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fc2hhcmVkLWtleS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19zaGFyZWQuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fc3BlY2llcy1jb25zdHJ1Y3Rvci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19zdHJpY3QtbWV0aG9kLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3N0cmluZy1hdC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19zdHJpbmctY29udGV4dC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19zdHJpbmctdHJpbS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19zdHJpbmctd3MuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fdG8tYWJzb2x1dGUtaW5kZXguanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fdG8taW50ZWdlci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL190by1pb2JqZWN0LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3RvLWxlbmd0aC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL190by1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fdG8tcHJpbWl0aXZlLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3VpZC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL193a3MtZGVmaW5lLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3drcy1leHQuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fd2tzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvY29yZS5nZXQtaXRlcmF0b3ItbWV0aG9kLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LmFycmF5LmZpbHRlci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5hcnJheS5mcm9tLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LmFycmF5Lml0ZXJhdG9yLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LmFycmF5Lm1hcC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5hcnJheS5zbGljZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5hcnJheS5zb3J0LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LmZ1bmN0aW9uLm5hbWUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYubnVtYmVyLmNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm9iamVjdC5hc3NpZ24uanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYub2JqZWN0LmZyZWV6ZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5vYmplY3QuZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm9iamVjdC5nZXQtb3duLXByb3BlcnR5LW5hbWVzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm9iamVjdC5rZXlzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm9iamVjdC50by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYucmVnZXhwLmV4ZWMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYucmVnZXhwLmZsYWdzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnJlZ2V4cC5tYXRjaC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5yZWdleHAuc2VhcmNoLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnJlZ2V4cC5zcGxpdC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5zdHJpbmcuZnJvbS1jb2RlLXBvaW50LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnN0cmluZy5pbmNsdWRlcy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5zdHJpbmcuaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuc3ltYm9sLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM3LmFycmF5LmluY2x1ZGVzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM3Lm9iamVjdC5nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3JzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvd2ViLmRvbS5pdGVyYWJsZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9jc3MvZW1vamktbWFydC5jc3MiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL3F1YXNhci1mcmFtZXdvcmsvZGlzdC91bWQvcXVhc2FyLm1hdC5jc3MiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vZG9jcy9hcHAudnVlPzA3MDMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvZ2V0VXJsLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9xdWFzYXItZnJhbWV3b3JrL2Rpc3QvcXVhc2FyLm1hdC5lc20uanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vZG9jcy9hcHAudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL0Vtb2ppLnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9QaWNrZXIudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL2FuY2hvcnMudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL2NhdGVnb3J5LnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9wcmV2aWV3LnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9zZWFyY2gudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL3NraW5zLnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9kb2NzL2FwcC52dWU/NjRhMiIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9FbW9qaS52dWU/NDg2OCIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9QaWNrZXIudnVlPzExNTEiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvYW5jaG9ycy52dWU/ODJmMyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9jYXRlZ29yeS52dWU/YjA4ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9wcmV2aWV3LnZ1ZT81YjE5Iiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL3NlYXJjaC52dWU/YTdjOSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9za2lucy52dWU/NGVhOSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9kb2NzL2FwcC52dWU/N2UyYiIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9FbW9qaS52dWU/NmExNCIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9QaWNrZXIudnVlPzhmNmMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvYW5jaG9ycy52dWU/ZGNlZiIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9jYXRlZ29yeS52dWU/NzRkNSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9wcmV2aWV3LnZ1ZT9iNTRhIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL3NlYXJjaC52dWU/NzdkZCIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9za2lucy52dWU/NTY5YiIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL2Nzcy9lbW9qaS1tYXJ0LmNzcz9mN2I5Iiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9xdWFzYXItZnJhbWV3b3JrL2Rpc3QvdW1kL3F1YXNhci5tYXQuY3NzPzY0YmYiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vZG9jcy9hcHAudnVlP2EyNWIiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL3Z1ZS1zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlc0NsaWVudC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvdnVlLXN0eWxlLWxvYWRlci9saWIvbGlzdFRvU3R5bGVzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy92dWUvZGlzdC92dWUucnVudGltZS5lc20uanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FycmF5TGlrZVRvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FycmF5V2l0aG91dEhvbGVzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jbGFzc0NhbGxDaGVjay5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlQ2xhc3MuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pdGVyYWJsZVRvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL25vbkl0ZXJhYmxlU3ByZWFkLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90b0NvbnN1bWFibGVBcnJheS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdHlwZW9mLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL0Vtb2ppTWFydC93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3dlYnBhY2svcnVudGltZS9nbG9iYWwiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3dlYnBhY2svcnVudGltZS9qc29ucCBjaHVuayBsb2FkaW5nIiwid2VicGFjazovL0Vtb2ppTWFydC8uL2RvY3MvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wiRW1vamlNYXJ0XCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcIkVtb2ppTWFydFwiXSA9IGZhY3RvcnkoKTtcbn0pKHNlbGYsIGZ1bmN0aW9uKCkge1xucmV0dXJuICIsIjx0ZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwiYXBwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgIDxoMT5FbW9qaSBNYXJ0IFZ1ZSDwn4+sPC9oMT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8ZW1vamkgOmRhdGE9XCJpbmRleFwiIGVtb2ppPVwiOnNhbnRhOjpza2luLXRvbmUtMzpcIiA6c2l6ZT1cIjMyXCIgLz5cclxuICAgICAgPGVtb2ppIDpkYXRhPVwiaW5kZXhcIiBlbW9qaT1cInNhbnRhXCIgc2V0PVwidHdpdHRlclwiIDpzaXplPVwiMzJcIiAvPlxyXG4gICAgICA8ZW1vamkgOmRhdGE9XCJpbmRleFwiIDplbW9qaT1cInNhbnRhRW1vamlPYmplY3RcIiA6c2l6ZT1cIjMyXCIgLz5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgPGJ1dHRvbiBAY2xpY2s9XCJ0b2dnbGVWaXNpYmxlXCI+U2hvdyAvIGhpZGUgdGhlIHBpY2tlcjwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIEBjbGljaz1cInRvZ2dsZVZpc2libGVcIiB2LWh0bWw9XCJzbWlsZVwiPjwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8dGVtcGxhdGVcclxuICAgICAgICB2LWZvcj1cInNldCBpbiBbJ25hdGl2ZScsICdhcHBsZScsICdnb29nbGUnLCAndHdpdHRlcicsICdmYWNlYm9vayddXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIDprZXk9XCJzZXRcIlxyXG4gICAgICAgICAgQGNsaWNrPVwiYWN0aXZlU2V0ID0gc2V0XCJcclxuICAgICAgICAgIDpkaXNhYmxlZD1cImFjdGl2ZVNldCA9PSBzZXRcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IHNldCB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L3RlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiB2LWlmPVwiaXNWaXNpYmxlXCIgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgPHBpY2tlclxyXG4gICAgICAgIDpkYXRhPVwiaW5kZXhcIlxyXG4gICAgICAgIDpzZXQ9XCJhY3RpdmVTZXRcIlxyXG4gICAgICAgIDpuYXRpdmU9XCJuYXRpdmVcIlxyXG4gICAgICAgIDplbW9qaT1cImVtb2ppXCJcclxuICAgICAgICA6ZW1vamlUb29sdGlwPVwidHJ1ZVwiXHJcbiAgICAgICAgOnRpdGxlPVwidGl0bGVcIlxyXG4gICAgICAgIDplbW9qaVNpemU9XCIzMFwiXHJcbiAgICAgICAgQHNlbGVjdD1cInNob3dFbW9qaVwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgIDxlbW9qaVxyXG4gICAgICAgIHYtZm9yPVwiZW1vIGluIHNlbGVjdGVkRW1vamlzXCJcclxuICAgICAgICA6a2V5PVwiZW1vXCJcclxuICAgICAgICA6ZGF0YT1cImluZGV4XCJcclxuICAgICAgICA6ZW1vamk9XCJlbW9cIlxyXG4gICAgICAgIDpzZXQ9XCJhY3RpdmVTZXRcIlxyXG4gICAgICAgIDpuYXRpdmU9XCJuYXRpdmVcIlxyXG4gICAgICAgIDpzaXplPVwiMzJcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICB7eyBlbW9qaXNPdXRwdXQgfX1cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3ctc21hbGxcIj5cclxuICAgICAgPGlmcmFtZVxyXG4gICAgICAgIHNyYz1cImh0dHBzOi8vZ2hidG5zLmNvbS9naXRodWItYnRuLmh0bWw/dXNlcj1zZXJlYnJvdiZyZXBvPWVtb2ppLW1hcnQtdnVlJnR5cGU9c3RhciZjb3VudD10cnVlXCJcclxuICAgICAgICBmcmFtZUJvcmRlcj1cIjBcIlxyXG4gICAgICAgIHNjcm9sbGluZz1cIjBcIlxyXG4gICAgICAgIHdpZHRoPVwiOTBweFwiXHJcbiAgICAgICAgaGVpZ2h0PVwiMjBweFwiXHJcbiAgICAgID48L2lmcmFtZT5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj48L2Rpdj5cclxuICAgIDxoMj5RRGlhbG9nIEV4YW1wbGU8L2gyPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8cS1idG4gbGFiZWw9XCJPcGVuIFFEaWFsb2dcIiBAY2xpY2s9XCJlbW9qaVBpY2tlckRpYWxvZyA9IHRydWVcIiAvPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPHEtZGlhbG9nIHYtbW9kZWw9XCJlbW9qaVBpY2tlckRpYWxvZ1wiPlxyXG4gICAgICA8dGVtcGxhdGUgdi1zbG90OmJvZHkgc3R5bGU9XCJoZWlnaHQ6IDQ1MHB4XCI+XHJcbiAgICAgICAgPHBpY2tlciA6ZGF0YT1cImluZGV4XCIgOmVtb2ppU2l6ZT1cIjI0XCIgOm5hdGl2ZT1cInRydWVcIj48L3BpY2tlcj5cclxuICAgICAgPC90ZW1wbGF0ZT5cclxuICAgIDwvcS1kaWFsb2c+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPjwvZGl2PlxyXG4gICAgPGgyPkN1c3RvbSBEaWFsb2cgRXhhbXBsZTwvaDI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgIDxidXR0b24gQGNsaWNrPVwiZW1vamlQaWNrZXJDdXN0b21EaWFsb2cgPSB0cnVlXCI+XHJcbiAgICAgICAgT3BlbiBDdXN0b20gRGlhbG9nXHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInBvcHVwXCIgdi1pZj1cImVtb2ppUGlja2VyQ3VzdG9tRGlhbG9nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1ib3hcIiBAY2xpY2s9XCJlbW9qaVBpY2tlckN1c3RvbURpYWxvZyA9IGZhbHNlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNvbnRlbnRcIiBAY2xpY2s9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jbG9zZVwiPlxyXG4gICAgICAgICAgICA8YSBAY2xpY2s9XCJlbW9qaVBpY2tlckN1c3RvbURpYWxvZyA9IGZhbHNlXCI+WDwvYT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGgyPkVtb2ppIFNlbGVjdG9yPC9oMj5cclxuICAgICAgICAgIDxwaWNrZXIgOmRhdGE9XCJpbmRleFwiIDplbW9qaVNpemU9XCIyNFwiIDpuYXRpdmU9XCJ0cnVlXCI+PC9waWNrZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPjwvZGl2PlxyXG4gICAgPGgyPkN1c3RvbSBTZWFyY2ggQW5kIFByZXZpZXcgVGVtcGxhdGVzIEV4YW1wbGU8L2gyPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8UGlja2VyIDpkYXRhPVwiaW5kZXhcIiA6bmF0aXZlPVwidHJ1ZVwiPlxyXG4gICAgICAgIDx0ZW1wbGF0ZSBzbG90PVwic2VhcmNoVGVtcGxhdGVcIiBzbG90LXNjb3BlPVwic2xvdFByb3BzXCI+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICA6cGxhY2Vob2xkZXI9XCJzbG90UHJvcHMuaTE4bi5zZWFyY2hcIlxyXG4gICAgICAgICAgICB2LW9uOmlucHV0PVwic2xvdFByb3BzLm9uU2VhcmNoKCRldmVudC50YXJnZXQudmFsdWUpXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICA8dGVtcGxhdGUgc2xvdD1cInByZXZpZXdUZW1wbGF0ZVwiIHNsb3Qtc2NvcGU9XCJzbG90UHJvcHNcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1lbW9qaVwiPlxyXG4gICAgICAgICAgICAgIDxFbW9qaVxyXG4gICAgICAgICAgICAgICAgOmRhdGE9XCJzbG90UHJvcHMuZGF0YVwiXHJcbiAgICAgICAgICAgICAgICA6ZW1vamk9XCJzbG90UHJvcHMuZW1vamkgPyBzbG90UHJvcHMuZW1vamkgOiAncG9pbnRfdXAnXCJcclxuICAgICAgICAgICAgICAgIDpuYXRpdmU9XCJzbG90UHJvcHMuZW1vamlQcm9wcy5uYXRpdmVcIlxyXG4gICAgICAgICAgICAgICAgOnNraW49XCJzbG90UHJvcHMuZW1vamlQcm9wcy5za2luXCJcclxuICAgICAgICAgICAgICAgIDpzZXQ9XCJzbG90UHJvcHMuZW1vamlQcm9wcy5zZXRcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1vamktbWFydC1wcmV2aWV3LWRhdGFcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1vamktbWFydC1wcmV2aWV3LW5hbWVcIj5cclxuICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgIHNsb3RQcm9wcy5lbW9qaVxyXG4gICAgICAgICAgICAgICAgICAgID8gJ34nICsgc2xvdFByb3BzLmVtb2ppLm5hbWUgKyAnfidcclxuICAgICAgICAgICAgICAgICAgICA6ICdDaG9vc2UuLi4nXHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctc2hvcnRuYW1lc1wiPlxyXG4gICAgICAgICAgICAgICAge3sgc2xvdFByb3BzLmVtb2ppID8gc2xvdFByb3BzLmVtb2ppLmNvbG9ucyA6ICcnIH19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgPC9QaWNrZXI+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+PC9kaXY+XHJcbiAgICA8aDI+RmlsdGVyZWQgcGlja2VyIGV4YW1wbGU8L2gyPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiIHYtc2hvdz1cImZsYWdzVmlzaWJsZVwiPlxyXG4gICAgICA8UGlja2VyXHJcbiAgICAgICAgOm5hdGl2ZT1cInRydWVcIlxyXG4gICAgICAgIGVtb2ppPVwiZmxhZy10ZlwiXHJcbiAgICAgICAgOmVtb2ppU2l6ZT1cIjE4XCJcclxuICAgICAgICA6ZGF0YT1cImluZGV4RmlsdGVyZWRcIlxyXG4gICAgICAgIHJlZj1cImZsYWdzXCJcclxuICAgICAgLz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8YnV0dG9uIEBjbGljaz1cInRvZ2dsZUZsYWdzVmlzaWJsZVwiPlxyXG4gICAgICAgIFNob3cgLyBoaWRlIHRoZSBmbGFncyBwaWNrZXIgKHdpdGggdi1zaG93KVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj48L2Rpdj5cclxuICAgIDxoMj5JMThuIHBpY2tlciBleGFtcGxlPC9oMj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgPFBpY2tlciBlbW9qaT1cImRlcGFydG1lbnRfc3RvcmVcIiA6ZGF0YT1cImluZGV4STE4blwiIDppMThuPVwiaTE4blwiIC8+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+PC9kaXY+XHJcbiAgICA8aDI+Q3VzdG9tIG9yZGVyIGV4YW1wbGU8L2gyPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8UGlja2VyIDpkYXRhPVwiaW5kZXhJbmNsdWRlXCIgLz5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj48L2Rpdj5cclxuICAgIDxoMj5TbWFsbCBwaWNrZXIgZXhhbXBsZTwvaDI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IHJvdy1zbWFsbC1waWNrZXJcIj5cclxuICAgICAgPFBpY2tlclxyXG4gICAgICAgIDpkYXRhPVwiaW5kZXhcIlxyXG4gICAgICAgIDpuYXRpdmU9XCJuYXRpdmVcIlxyXG4gICAgICAgIDpzZXQ9XCJhY3RpdmVTZXRcIlxyXG4gICAgICAgIDplbW9qaVNpemU9XCIxMlwiXHJcbiAgICAgICAgOnBlckxpbmU9XCI1XCJcclxuICAgICAgLz5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IGRhdGEgZnJvbSAnLi4vZGF0YS9hbGwuanNvbidcclxuaW1wb3J0IHsgUGlja2VyLCBFbW9qaSwgRW1vamlJbmRleCB9IGZyb20gJy4uL3NyYydcclxuaW1wb3J0ICcuLi9jc3MvZW1vamktbWFydC5jc3MnXHJcblxyXG5pbXBvcnQgeyBRQnRuLCBRRGlhbG9nIH0gZnJvbSAncXVhc2FyLWZyYW1ld29yay9kaXN0L3F1YXNhci5tYXQuZXNtJ1xyXG5cclxuY29uc3QgQ1VTVE9NX0VNT0pJUyA9IFtcclxuICB7XHJcbiAgICBuYW1lOiAnUGFydHkgUGFycm90JyxcclxuICAgIHNob3J0X25hbWVzOiBbJ3BhcnJvdCddLFxyXG4gICAga2V5d29yZHM6IFsncGFydHknXSxcclxuICAgIGltYWdlVXJsOiAnLi9pbWFnZXMvcGFycm90LmdpZicsXHJcbiAgfSxcclxuICB7XHJcbiAgICBuYW1lOiAnT2N0b2NhdCcsXHJcbiAgICBzaG9ydF9uYW1lczogWydvY3RvY2F0J10sXHJcbiAgICBrZXl3b3JkczogWydnaXRodWInXSxcclxuICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9naXRodWIuZ2l0aHViYXNzZXRzLmNvbS9pbWFnZXMvaWNvbnMvZW1vamkvb2N0b2NhdC5wbmcnLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogJ1NxdWlycmVsJyxcclxuICAgIHNob3J0X25hbWVzOiBbJ3NoaXBpdCcsICdzcXVpcnJlbCddLFxyXG4gICAga2V5d29yZHM6IFsnZ2l0aHViJ10sXHJcbiAgICBpbWFnZVVybDogJ2h0dHBzOi8vZ2l0aHViLmdpdGh1YmFzc2V0cy5jb20vaW1hZ2VzL2ljb25zL2Vtb2ppL3NoaXBpdC5wbmcnLFxyXG4gIH0sXHJcbl1cclxuXHJcbmxldCBpbmRleCA9IG5ldyBFbW9qaUluZGV4KGRhdGEsIHtcclxuICBjdXN0b206IENVU1RPTV9FTU9KSVMsXHJcbn0pXHJcblxyXG5sZXQgaW5kZXhGaWx0ZXJlZCA9IG5ldyBFbW9qaUluZGV4KGRhdGEsIHtcclxuICBjdXN0b206IENVU1RPTV9FTU9KSVMsXHJcbiAgZW1vamlzVG9TaG93RmlsdGVyOiAoZW1vamkpID0+IHtcclxuICAgIHJldHVybiBlbW9qaS5zaG9ydF9uYW1lc1swXS5tYXRjaCgvXmZsYWcuKi8pICE9PSBudWxsXHJcbiAgfSxcclxufSlcclxuXHJcbmNvbnN0IGkxOG4gPSB7XHJcbiAgY2F0ZWdvcmllczoge1xyXG4gICAgc2VhcmNoOiAn5pCc57Si57uT5p6cJyxcclxuICAgIHJlY2VudDogJ+e7j+W4uOS9v+eUqCcsXHJcbiAgICBzbWlsZXlzOiAn5b+D5oOFJyxcclxuICAgIHBlb3BsZTogJ+S6uueJqScsXHJcbiAgICBuYXR1cmU6ICfliqjniakgJiDlpKfoh6rnhLYnLFxyXG4gICAgZm9vZHM6ICfpo5/niakgJiDppa7mlpknLFxyXG4gICAgYWN0aXZpdHk6ICfmtLvliqgnLFxyXG4gICAgcGxhY2VzOiAn5peF6KGMICYg5Zyw5qCHJyxcclxuICAgIG9iamVjdHM6ICfniankvZMnLFxyXG4gICAgc3ltYm9sczogJ+espuWPtycsXHJcbiAgICBmbGFnczogJ+WbveaXlycsXHJcbiAgICBjdXN0b206ICfoh6rlrprkuYknLFxyXG4gIH0sXHJcbn1cclxuXHJcbmNvbnN0IGluZGV4STE4biA9IG5ldyBFbW9qaUluZGV4KGRhdGEsIHtcclxuICBleGNsdWRlOiBbXHJcbiAgICAnZmxhZ3MnLFxyXG4gICAgJ3N5bWJvbHMnLFxyXG4gICAgJ29iamVjdHMnLFxyXG4gICAgJ2FjdGl2aXR5JyxcclxuICAgICdmb29kcycsXHJcbiAgICAncGVvcGxlJyxcclxuICAgICdwbGFjZXMnLFxyXG4gIF0sXHJcbn0pXHJcblxyXG5jb25zdCBpbmRleEluY2x1ZGUgPSBuZXcgRW1vamlJbmRleChkYXRhLCB7XHJcbiAgaW5jbHVkZTogWyduYXR1cmUnLCAnc21pbGV5cycsICdyZWNlbnQnXSxcclxufSlcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaW5kZXg6IGluZGV4LFxyXG4gICAgICBpbmRleEZpbHRlcmVkOiBpbmRleEZpbHRlcmVkLFxyXG4gICAgICBpbmRleEluY2x1ZGU6IGluZGV4SW5jbHVkZSxcclxuICAgICAgaW5kZXhJMThuOiBpbmRleEkxOG4sXHJcbiAgICAgIGkxOG46IGkxOG4sXHJcbiAgICAgIGFjdGl2ZVNldDogJ25hdGl2ZScsXHJcbiAgICAgIGVtb2ppOiAncG9pbnRfdXAnLFxyXG4gICAgICB0aXRsZTogJ1BpY2sgeW91ciBlbW9qaeKApicsXHJcbiAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcclxuICAgICAgZW1vamlQaWNrZXJEaWFsb2c6IGZhbHNlLFxyXG4gICAgICBlbW9qaVBpY2tlckN1c3RvbURpYWxvZzogZmFsc2UsXHJcbiAgICAgIGVtb2ppc091dHB1dDogJycsXHJcbiAgICAgIHNlbGVjdGVkRW1vamlzOiBbXSxcclxuICAgICAgZmxhZ3NWaXNpYmxlOiB0cnVlLFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHtcclxuICAgIG5hdGl2ZSgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlU2V0ID09ICduYXRpdmUnXHJcbiAgICB9LFxyXG4gICAgc21pbGUoKSB7XHJcbiAgICAgIC8vIFN0YXRpYyBlbW9qaSBleGFtcGxlXHJcbiAgICAgIGxldCBlbW9qaSA9IGluZGV4LmZpbmRFbW9qaSgnOnNtaWxlOicpXHJcbiAgICAgIC8vIE5vdGUsIHRoYXQgcG9zaXRpb24gaW4gdGhlIGVtb2ppIHNoZWV0IGlzIGNhbGN1bGF0ZWQgYnlcclxuICAgICAgLy8gYGVtb2ppYCBvYmplY3RcclxuICAgICAgbGV0IHN0eWxlID0gYGJhY2tncm91bmQtcG9zaXRpb246ICR7ZW1vamkuZ2V0UG9zaXRpb24oKX07IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwczovL3VucGtnLmNvbS9lbW9qaS1kYXRhc291cmNlLXR3aXR0ZXJAMTQuMC4wL2ltZy90d2l0dGVyL3NoZWV0cy0yNTYvNjQucG5nKTsgd2lkdGg6IDI0cHg7IGhlaWdodDogMjRweDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBiYWNrZ3JvdW5kLXNpemU6IDU3MDAlYFxyXG4gICAgICByZXR1cm4gYDxkaXYgY2xhc3M9J2Vtb2ppJyBzdHlsZT1cIiR7c3R5bGV9XCI+PC9kaXY+YFxyXG4gICAgfSxcclxuICAgIHNhbnRhRW1vamlPYmplY3QoKSB7XHJcbiAgICAgIHJldHVybiBpbmRleC5maW5kRW1vamkoJzpzYW50YTonKVxyXG4gICAgfSxcclxuICB9LFxyXG4gIG1ldGhvZHM6IHtcclxuICAgIHRvZ2dsZVZpc2libGUoKSB7XHJcbiAgICAgIHRoaXMuaXNWaXNpYmxlID0gIXRoaXMuaXNWaXNpYmxlXHJcbiAgICB9LFxyXG4gICAgdG9nZ2xlRmxhZ3NWaXNpYmxlKCkge1xyXG4gICAgICB0aGlzLmZsYWdzVmlzaWJsZSA9ICF0aGlzLmZsYWdzVmlzaWJsZVxyXG4gICAgICBpZiAoIXRoaXMuZmxhZ3NWaXNpYmxlKSB7XHJcbiAgICAgICAgdGhpcy4kcmVmcy5mbGFncy5vbkFuY2hvckNsaWNrKHRoaXMuJHJlZnMuZmxhZ3MuY2F0ZWdvcmllc1swXSlcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIHNob3dFbW9qaShlbW9qaSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRW1vamlzLnB1c2goZW1vamkpXHJcbiAgICAgIGlmIChlbW9qaS5uYXRpdmUpIHtcclxuICAgICAgICB0aGlzLmVtb2ppc091dHB1dCA9IHRoaXMuZW1vamlzT3V0cHV0ICsgZW1vamkubmF0aXZlXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5lbW9qaXNPdXRwdXQgPSB0aGlzLmVtb2ppc091dHB1dCArICc/J1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgY29tcG9uZW50czoge1xyXG4gICAgUGlja2VyLFxyXG4gICAgRW1vamksXHJcbiAgICBRQnRuLFxyXG4gICAgUURpYWxvZyxcclxuICB9LFxyXG59XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIHNjb3BlZD5cclxuYnV0dG9uICsgYnV0dG9uIHtcclxuICBtYXJnaW4tbGVmdDogMC41ZW07XHJcbn1cclxuYnV0dG9uIHtcclxuICBwYWRkaW5nOiAwLjRlbSAwLjZlbTtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG4gIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgb3V0bGluZTogMDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbmJ1dHRvbltkaXNhYmxlZF0ge1xyXG4gIGJvcmRlci1jb2xvcjogI2FlNjVjNTtcclxuICBjdXJzb3I6IGRlZmF1bHQ7XHJcbn1cclxuXHJcbi5tb2RhbCB7XHJcbiAgY29sb3I6IHJlZDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNlZSBodHRwczovL3Z1ZS1sb2FkZXIudnVlanMub3JnL2d1aWRlL3Njb3BlZC1jc3MuaHRtbCNkZWVwLXNlbGVjdG9yc1xyXG4gKiB0aGUgYD4+PmAgYWxsb3dzIHRvIGFwcGx5IHNjb3BlZCBjc3MgdG8gY2hpbGQgZWxlbWVudCB0aGF0IGlzIGdlbmVyYXRlZFxyXG4gKiBkeW5hbWljYWxseVxyXG4qKi9cclxuLm1vZGFsID4+PiAubW9kYWwtc2Nyb2xsIHtcclxuICBjb2xvcjogcmVkO1xyXG4gIG1heC1oZWlnaHQ6IG5vbmU7XHJcbn1cclxuLm1vZGFsIC5tb2RhbC1ib2R5IHtcclxuICBtYXgtaGVpZ2h0OiBub25lO1xyXG59XHJcblxyXG5oMSB7XHJcbiAgZm9udC1mYW1pbHk6IENvdXJpZXI7XHJcbiAgZm9udC1zaXplOiAycmVtO1xyXG59XHJcblxyXG5oMiB7XHJcbiAgZm9udC1mYW1pbHk6IENvdXJpZXI7XHJcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xyXG4gIG1hcmdpbi10b3A6IDJyZW07XHJcbn1cclxuXHJcbi5hcHAgLnJvdyB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi5yb3cgKyAucm93IHtcclxuICBtYXJnaW4tdG9wOiAyZW07XHJcbn1cclxuXHJcbi5yb3ctc21hbGwge1xyXG4gIG1hcmdpbi10b3A6IDFlbTtcclxufVxyXG5cclxuLmVtb2ppLW1hcnQge1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbn1cclxuXHJcbi5lbW9qaS1tYXJ0LXRpdGxlLWxhYmVsIHtcclxuICBmb250LXNpemU6IDIxcHg7XHJcbn1cclxuXHJcbi5wb3B1cCB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwdmg7XHJcbiAgbGVmdDogMDtcclxuICB0b3A6IDA7XHJcbiAgei1pbmRleDogMjAwO1xyXG4gIGJhY2tncm91bmQ6IHJlYmVjY2FwdXJwbGU7XHJcbiAgb3BhY2l0eTogOTUlO1xyXG59XHJcbi5wb3B1cC1ib3gge1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBvdmVyZmxvdzogYXV0bztcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwYWRkaW5nLXRvcDogMTIwcHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDgwcHg7XHJcbn1cclxuLnBvcHVwLWNvbnRlbnQge1xyXG4gIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gIGJveC1zaGFkb3c6IDBweCAyNHB4IDU0cHggcmdiYSgyMCwgMjgsIDQ5LCAwLjE0KTtcclxuICBib3JkZXItcmFkaXVzOiAxOHB4O1xyXG4gIHBhZGRpbmc6IDZweCA2cHggOXB4IDZweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWF4LXdpZHRoOiA0NjJweDtcclxuICBtYXJnaW46IDAgYXV0bztcclxufVxyXG4ucG9wdXAtY2xvc2Uge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDIwcHg7XHJcbiAgcmlnaHQ6IDMwcHg7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4ucm93LXNtYWxsLXBpY2tlciA+Pj4gLmVtb2ppLW1hcnQtYW5jaG9ycyBzdmcge1xyXG4gIHdpZHRoOiA5cHg7XHJcbiAgaGVpZ2h0OiA5cHg7XHJcbn1cclxuLnJvdy1zbWFsbC1waWNrZXIgPj4+IC5lbW9qaS1tYXJ0LXRpdGxlLWxhYmVsIHtcclxuICBmb250LXNpemU6IDlweDtcclxufVxyXG4ucm93LXNtYWxsLXBpY2tlciA+Pj4gLmVtb2ppLW1hcnQtcHJldmlldy1kYXRhIHtcclxuICBsZWZ0OiA0MHB4O1xyXG4gIGZvbnQtc2l6ZTogOXB4O1xyXG59XHJcbi5yb3ctc21hbGwtcGlja2VyID4+PiAuZW1vamktbWFydC1wcmV2aWV3LW5hbWUge1xyXG4gIGZvbnQtc2l6ZTogOXB4O1xyXG59XHJcbi5yb3ctc21hbGwtcGlja2VyID4+PiAuZW1vamktbWFydC1wcmV2aWV3LWVtb2ppIC5lbW9qaS10eXBlLW5hdGl2ZSB7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIHdpZHRoOiAxMnB4O1xyXG4gIGhlaWdodDogMTJweDtcclxufVxyXG48L3N0eWxlPlxyXG4iLCI8dGVtcGxhdGU+XHJcbiAgPGNvbXBvbmVudFxyXG4gICAgOmlzPVwidGFnXCJcclxuICAgIHYtaWY9XCJ2aWV3LmNhblJlbmRlclwiXHJcbiAgICA6dGl0bGU9XCJ2aWV3LnRpdGxlXCJcclxuICAgIDphcmlhLWxhYmVsPVwidmlldy5hcmlhTGFiZWxcIlxyXG4gICAgOmRhdGEtdGl0bGU9XCJ0aXRsZVwiXHJcbiAgICBjbGFzcz1cImVtb2ppLW1hcnQtZW1vamlcIlxyXG4gICAgQG1vdXNlZW50ZXI9XCJvbk1vdXNlRW50ZXJcIlxyXG4gICAgQG1vdXNlbGVhdmU9XCJvbk1vdXNlTGVhdmVcIlxyXG4gICAgQGNsaWNrPVwib25DbGlja1wiXHJcbiAgPlxyXG4gICAgPHNwYW4gOmNsYXNzPVwidmlldy5jc3NDbGFzc1wiIDpzdHlsZT1cInZpZXcuY3NzU3R5bGVcIj57e1xyXG4gICAgICB2aWV3LmNvbnRlbnRcclxuICAgIH19PC9zcGFuPlxyXG4gIDwvY29tcG9uZW50PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IHsgRW1vamlQcm9wcyB9IGZyb20gJy4uL3V0aWxzL3NoYXJlZC1wcm9wcydcclxuaW1wb3J0IHsgRW1vamlWaWV3IH0gZnJvbSAnLi4vdXRpbHMvZW1vamktZGF0YSdcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBwcm9wczoge1xyXG4gICAgLi4uRW1vamlQcm9wcyxcclxuICAgIGRhdGE6IHtcclxuICAgICAgdHlwZTogT2JqZWN0LFxyXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBjb21wdXRlZDoge1xyXG4gICAgdmlldygpIHtcclxuICAgICAgcmV0dXJuIG5ldyBFbW9qaVZpZXcoXHJcbiAgICAgICAgdGhpcy5lbW9qaU9iamVjdCxcclxuICAgICAgICB0aGlzLnNraW4sXHJcbiAgICAgICAgdGhpcy5zZXQsXHJcbiAgICAgICAgdGhpcy5uYXRpdmUsXHJcbiAgICAgICAgdGhpcy5mYWxsYmFjayxcclxuICAgICAgICB0aGlzLnRvb2x0aXAsXHJcbiAgICAgICAgdGhpcy5zaXplLFxyXG4gICAgICApXHJcbiAgICB9LFxyXG4gICAgc2FuaXRpemVkRGF0YSgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZW1vamlPYmplY3QuX3Nhbml0aXplZFxyXG4gICAgfSxcclxuICAgIHRpdGxlKCkge1xyXG4gICAgICByZXR1cm4gdGhpcy50b29sdGlwID8gdGhpcy5lbW9qaU9iamVjdC5zaG9ydF9uYW1lIDogbnVsbFxyXG4gICAgfSxcclxuICAgIGVtb2ppT2JqZWN0KCkge1xyXG4gICAgICBpZiAodHlwZW9mIHRoaXMuZW1vamkgPT0gJ3N0cmluZycpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmZpbmRFbW9qaSh0aGlzLmVtb2ppKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVtb2ppXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgfSxcclxuICBjcmVhdGVkKCkge30sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgb25DbGljaygpIHtcclxuICAgICAgdGhpcy4kZW1pdCgnY2xpY2snLCB0aGlzLmVtb2ppT2JqZWN0KVxyXG4gICAgfSxcclxuICAgIG9uTW91c2VFbnRlcigpIHtcclxuICAgICAgdGhpcy4kZW1pdCgnbW91c2VlbnRlcicsIHRoaXMuZW1vamlPYmplY3QpXHJcbiAgICB9LFxyXG4gICAgb25Nb3VzZUxlYXZlKCkge1xyXG4gICAgICB0aGlzLiRlbWl0KCdtb3VzZWxlYXZlJywgdGhpcy5lbW9qaU9iamVjdClcclxuICAgIH0sXHJcbiAgfSxcclxufVxyXG48L3NjcmlwdD5cclxuIiwiPHRlbXBsYXRlPlxyXG4gIDxzZWN0aW9uIGNsYXNzPVwiZW1vamktbWFydCBlbW9qaS1tYXJ0LXN0YXRpY1wiIDpzdHlsZT1cImN1c3RvbVN0eWxlc1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtYmFyIGVtb2ppLW1hcnQtYmFyLWFuY2hvcnNcIiB2LWlmPVwic2hvd0NhdGVnb3JpZXNcIj5cclxuICAgICAgPGFuY2hvcnNcclxuICAgICAgICA6ZGF0YT1cImRhdGFcIlxyXG4gICAgICAgIDppMThuPVwibWVyZ2VkSTE4blwiXHJcbiAgICAgICAgOmNvbG9yPVwiY29sb3JcIlxyXG4gICAgICAgIDpjYXRlZ29yaWVzPVwidmlldy5hbGxDYXRlZ29yaWVzXCJcclxuICAgICAgICA6YWN0aXZlLWNhdGVnb3J5PVwidmlldy5hY3RpdmVDYXRlZ29yeVwiXHJcbiAgICAgICAgQGNsaWNrPVwib25BbmNob3JDbGlja1wiXHJcbiAgICAgIC8+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8c2xvdFxyXG4gICAgICBuYW1lPVwic2VhcmNoVGVtcGxhdGVcIlxyXG4gICAgICA6ZGF0YT1cImRhdGFcIlxyXG4gICAgICA6aTE4bj1cImkxOG5cIlxyXG4gICAgICA6YXV0by1mb2N1cz1cImF1dG9Gb2N1c1wiXHJcbiAgICAgIDpvbi1zZWFyY2g9XCJvblNlYXJjaFwiXHJcbiAgICA+XHJcbiAgICAgIDxzZWFyY2hcclxuICAgICAgICB2LWlmPVwic2hvd1NlYXJjaFwiXHJcbiAgICAgICAgcmVmPVwic2VhcmNoXCJcclxuICAgICAgICA6ZGF0YT1cImRhdGFcIlxyXG4gICAgICAgIDppMThuPVwibWVyZ2VkSTE4blwiXHJcbiAgICAgICAgOmF1dG8tZm9jdXM9XCJhdXRvRm9jdXNcIlxyXG4gICAgICAgIDpvbi1zZWFyY2g9XCJvblNlYXJjaFwiXHJcbiAgICAgICAgQHNlYXJjaD1cIm9uU2VhcmNoXCJcclxuICAgICAgICBAYXJyb3dMZWZ0PVwib25BcnJvd0xlZnRcIlxyXG4gICAgICAgIEBhcnJvd1JpZ2h0PVwib25BcnJvd1JpZ2h0XCJcclxuICAgICAgICBAYXJyb3dEb3duPVwib25BcnJvd0Rvd25cIlxyXG4gICAgICAgIEBhcnJvd1VwPVwib25BcnJvd1VwXCJcclxuICAgICAgICBAZW50ZXI9XCJvbkVudGVyXCJcclxuICAgICAgLz5cclxuICAgIDwvc2xvdD5cclxuXHJcbiAgICA8ZGl2XHJcbiAgICAgIHJvbGU9XCJ0YWJwYW5lbFwiXHJcbiAgICAgIGNsYXNzPVwiZW1vamktbWFydC1zY3JvbGxcIlxyXG4gICAgICByZWY9XCJzY3JvbGxcIlxyXG4gICAgICBAc2Nyb2xsPVwib25TY3JvbGxcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgaWQ9XCJlbW9qaS1tYXJ0LWxpc3RcIlxyXG4gICAgICAgIHJlZj1cInNjcm9sbENvbnRlbnRcIlxyXG4gICAgICAgIHJvbGU9XCJsaXN0Ym94XCJcclxuICAgICAgICBhcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y2F0ZWdvcnlcclxuICAgICAgICAgIHYtZm9yPVwiKGNhdGVnb3J5LCBpZHgpIGluIHZpZXcuZmlsdGVyZWRDYXRlZ29yaWVzXCJcclxuICAgICAgICAgIHYtc2hvdz1cImluZmluaXRlU2Nyb2xsIHx8IGNhdGVnb3J5ID09IHZpZXcuYWN0aXZlQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgOnJlZj1cIidjYXRlZ29yaWVzXycgKyBpZHhcIlxyXG4gICAgICAgICAgOmtleT1cImNhdGVnb3J5LmlkXCJcclxuICAgICAgICAgIDpkYXRhPVwiZGF0YVwiXHJcbiAgICAgICAgICA6aTE4bj1cIm1lcmdlZEkxOG5cIlxyXG4gICAgICAgICAgOmlkPVwiY2F0ZWdvcnkuaWRcIlxyXG4gICAgICAgICAgOm5hbWU9XCJjYXRlZ29yeS5uYW1lXCJcclxuICAgICAgICAgIDplbW9qaXM9XCJjYXRlZ29yeS5lbW9qaXNcIlxyXG4gICAgICAgICAgOmVtb2ppLXByb3BzPVwiZW1vamlQcm9wc1wiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8c2xvdFxyXG4gICAgICBuYW1lPVwicHJldmlld1RlbXBsYXRlXCJcclxuICAgICAgOmRhdGE9XCJkYXRhXCJcclxuICAgICAgOnRpdGxlPVwidGl0bGVcIlxyXG4gICAgICA6ZW1vamk9XCJ2aWV3LnByZXZpZXdFbW9qaVwiXHJcbiAgICAgIDppZGxlLWVtb2ppPVwiaWRsZUVtb2ppXCJcclxuICAgICAgOnNob3ctc2tpbi10b25lcz1cInNob3dTa2luVG9uZXNcIlxyXG4gICAgICA6ZW1vamktcHJvcHM9XCJlbW9qaVByb3BzXCJcclxuICAgICAgOnNraW4tcHJvcHM9XCJza2luUHJvcHNcIlxyXG4gICAgICA6b24tc2tpbi1jaGFuZ2U9XCJvblNraW5DaGFuZ2VcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZW1vamktbWFydC1iYXIgZW1vamktbWFydC1iYXItcHJldmlld1wiIHYtaWY9XCJzaG93UHJldmlld1wiPlxyXG4gICAgICAgIDxwcmV2aWV3XHJcbiAgICAgICAgICA6ZGF0YT1cImRhdGFcIlxyXG4gICAgICAgICAgOnRpdGxlPVwidGl0bGVcIlxyXG4gICAgICAgICAgOmVtb2ppPVwidmlldy5wcmV2aWV3RW1vamlcIlxyXG4gICAgICAgICAgOmlkbGUtZW1vamk9XCJpZGxlRW1vamlcIlxyXG4gICAgICAgICAgOnNob3ctc2tpbi10b25lcz1cInNob3dTa2luVG9uZXNcIlxyXG4gICAgICAgICAgOmVtb2ppLXByb3BzPVwiZW1vamlQcm9wc1wiXHJcbiAgICAgICAgICA6c2tpbi1wcm9wcz1cInNraW5Qcm9wc1wiXHJcbiAgICAgICAgICA6b24tc2tpbi1jaGFuZ2U9XCJvblNraW5DaGFuZ2VcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zbG90PlxyXG4gIDwvc2VjdGlvbj5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcbmltcG9ydCAnLi4vdmVuZG9yL3JhZi1wb2x5ZmlsbCdcclxuaW1wb3J0IHN0b3JlIGZyb20gJy4uL3V0aWxzL3N0b3JlJ1xyXG5pbXBvcnQgZnJlcXVlbnRseSBmcm9tICcuLi91dGlscy9mcmVxdWVudGx5J1xyXG5pbXBvcnQgeyBkZWVwTWVyZ2UsIG1lYXN1cmVTY3JvbGxiYXIgfSBmcm9tICcuLi91dGlscydcclxuaW1wb3J0IHsgUGlja2VyUHJvcHMgfSBmcm9tICcuLi91dGlscy9zaGFyZWQtcHJvcHMnXHJcbmltcG9ydCB7IFBpY2tlclZpZXcgfSBmcm9tICcuLi91dGlscy9waWNrZXInXHJcbmltcG9ydCBBbmNob3JzIGZyb20gJy4vYW5jaG9ycy52dWUnXHJcbmltcG9ydCBDYXRlZ29yeSBmcm9tICcuL2NhdGVnb3J5LnZ1ZSdcclxuaW1wb3J0IFByZXZpZXcgZnJvbSAnLi9wcmV2aWV3LnZ1ZSdcclxuaW1wb3J0IFNlYXJjaCBmcm9tICcuL3NlYXJjaC52dWUnXHJcblxyXG5jb25zdCBJMThOID0ge1xyXG4gIHNlYXJjaDogJ1NlYXJjaCcsXHJcbiAgbm90Zm91bmQ6ICdObyBFbW9qaSBGb3VuZCcsXHJcbiAgY2F0ZWdvcmllczoge1xyXG4gICAgc2VhcmNoOiAnU2VhcmNoIFJlc3VsdHMnLFxyXG4gICAgcmVjZW50OiAnRnJlcXVlbnRseSBVc2VkJyxcclxuICAgIHNtaWxleXM6ICdTbWlsZXlzICYgRW1vdGlvbicsXHJcbiAgICBwZW9wbGU6ICdQZW9wbGUgJiBCb2R5JyxcclxuICAgIG5hdHVyZTogJ0FuaW1hbHMgJiBOYXR1cmUnLFxyXG4gICAgZm9vZHM6ICdGb29kICYgRHJpbmsnLFxyXG4gICAgYWN0aXZpdHk6ICdBY3Rpdml0eScsXHJcbiAgICBwbGFjZXM6ICdUcmF2ZWwgJiBQbGFjZXMnLFxyXG4gICAgb2JqZWN0czogJ09iamVjdHMnLFxyXG4gICAgc3ltYm9sczogJ1N5bWJvbHMnLFxyXG4gICAgZmxhZ3M6ICdGbGFncycsXHJcbiAgICBjdXN0b206ICdDdXN0b20nLFxyXG4gIH0sXHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBwcm9wczoge1xyXG4gICAgLi4uUGlja2VyUHJvcHMsXHJcbiAgICBkYXRhOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGFjdGl2ZVNraW46IHRoaXMuc2tpbiB8fCBzdG9yZS5nZXQoJ3NraW4nKSB8fCB0aGlzLmRlZmF1bHRTa2luLFxyXG4gICAgICB2aWV3OiBuZXcgUGlja2VyVmlldyh0aGlzKSxcclxuICAgIH1cclxuICB9LFxyXG4gIGNvbXB1dGVkOiB7XHJcbiAgICBjdXN0b21TdHlsZXMoKSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgd2lkdGg6IHRoaXMuY2FsY3VsYXRlV2lkdGggKyAncHgnLFxyXG4gICAgICAgIC4uLnRoaXMucGlja2VyU3R5bGVzLFxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgZW1vamlQcm9wcygpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBuYXRpdmU6IHRoaXMubmF0aXZlLFxyXG4gICAgICAgIHNraW46IHRoaXMuYWN0aXZlU2tpbixcclxuICAgICAgICBzZXQ6IHRoaXMuc2V0LFxyXG4gICAgICAgIGVtb2ppVG9vbHRpcDogdGhpcy5lbW9qaVRvb2x0aXAsXHJcbiAgICAgICAgZW1vamlTaXplOiB0aGlzLmVtb2ppU2l6ZSxcclxuICAgICAgICBzZWxlY3RlZEVtb2ppOiB0aGlzLnZpZXcucHJldmlld0Vtb2ppLFxyXG4gICAgICAgIHNlbGVjdGVkRW1vamlDYXRlZ29yeTogdGhpcy52aWV3LnByZXZpZXdFbW9qaUNhdGVnb3J5LFxyXG4gICAgICAgIG9uRW50ZXI6IHRoaXMub25FbW9qaUVudGVyLmJpbmQodGhpcyksXHJcbiAgICAgICAgb25MZWF2ZTogdGhpcy5vbkVtb2ppTGVhdmUuYmluZCh0aGlzKSxcclxuICAgICAgICBvbkNsaWNrOiB0aGlzLm9uRW1vamlDbGljay5iaW5kKHRoaXMpLFxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgc2tpblByb3BzKCkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHNraW46IHRoaXMuYWN0aXZlU2tpbixcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGNhbGN1bGF0ZVdpZHRoKCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5wZXJMaW5lICogKHRoaXMuZW1vamlTaXplICsgMTIpICsgMTIgKyAyICsgbWVhc3VyZVNjcm9sbGJhcigpXHJcbiAgICB9LFxyXG4gICAgLy8gZW1vamlzUGVyUm93KCkge1xyXG4gICAgLy8gICBjb25zdCBsaXN0RWwgPSB0aGlzLiRyZWZzLnNjcm9sbENvbnRlbnRcclxuICAgIC8vICAgY29uc3QgZW1vamlFbCA9IGxpc3RFbC5xdWVyeVNlbGVjdG9yKCcuZW1vamktbWFydC1lbW9qaScpXHJcbiAgICAvLyAgIHJldHVybiBNYXRoLmZsb29yKGxpc3RFbC5vZmZzZXRXaWR0aCAvIGVtb2ppRWwub2Zmc2V0V2lkdGgpXHJcbiAgICAvLyB9LFxyXG4gICAgZmlsdGVyZWRDYXRlZ29yaWVzKCkge1xyXG4gICAgICByZXR1cm4gdGhpcy52aWV3LmZpbHRlcmVkQ2F0ZWdvcmllc1xyXG4gICAgfSxcclxuICAgIG1lcmdlZEkxOG4oKSB7XHJcbiAgICAgIHJldHVybiBPYmplY3QuZnJlZXplKGRlZXBNZXJnZShJMThOLCB0aGlzLmkxOG4pKVxyXG4gICAgfSxcclxuICAgIGlkbGVFbW9qaSgpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmVtb2ppKHRoaXMuZW1vamkpXHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKFxyXG4gICAgICAgICAgJ0RlZmF1bHQgcHJldmlldyBlbW9qaSBgJyArXHJcbiAgICAgICAgICAgIHRoaXMuZW1vamkgK1xyXG4gICAgICAgICAgICAnYCBpcyBub3QgYXZhaWxhYmxlLCBjaGVjayB0aGUgUGlja2VyIGBlbW9qaWAgcHJvcGVydHknLFxyXG4gICAgICAgIClcclxuICAgICAgICBjb25zb2xlLmVycm9yKGUpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5maXJzdEVtb2ppKClcclxuICAgICAgfVxyXG4gICAgfSxcclxuICB9LFxyXG4gIG1ldGhvZHM6IHtcclxuICAgIG9uU2Nyb2xsKCkge1xyXG4gICAgICBpZiAodGhpcy5pbmZpbml0ZVNjcm9sbCAmJiAhdGhpcy53YWl0aW5nRm9yUGFpbnQpIHtcclxuICAgICAgICB0aGlzLndhaXRpbmdGb3JQYWludCA9IHRydWVcclxuICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMub25TY3JvbGxQYWludC5iaW5kKHRoaXMpKVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgb25TY3JvbGxQYWludCgpIHtcclxuICAgICAgdGhpcy53YWl0aW5nRm9yUGFpbnQgPSBmYWxzZVxyXG4gICAgICB0aGlzLnZpZXcub25TY3JvbGwoKVxyXG4gICAgfSxcclxuICAgIG9uQW5jaG9yQ2xpY2soY2F0ZWdvcnkpIHtcclxuICAgICAgdGhpcy52aWV3Lm9uQW5jaG9yQ2xpY2soY2F0ZWdvcnkpXHJcbiAgICB9LFxyXG4gICAgb25TZWFyY2godmFsdWUpIHtcclxuICAgICAgdGhpcy52aWV3Lm9uU2VhcmNoKHZhbHVlKVxyXG4gICAgfSxcclxuICAgIG9uRW1vamlFbnRlcihlbW9qaSkge1xyXG4gICAgICB0aGlzLnZpZXcub25FbW9qaUVudGVyKGVtb2ppKVxyXG4gICAgfSxcclxuICAgIG9uRW1vamlMZWF2ZShlbW9qaSkge1xyXG4gICAgICB0aGlzLnZpZXcub25FbW9qaUxlYXZlKGVtb2ppKVxyXG4gICAgfSxcclxuICAgIG9uQXJyb3dMZWZ0KCRldmVudCkge1xyXG4gICAgICBjb25zdCBvbGRJZHggPSB0aGlzLnZpZXcucHJldmlld0Vtb2ppSWR4XHJcbiAgICAgIHRoaXMudmlldy5vbkFycm93TGVmdCgpXHJcbiAgICAgIGlmICgkZXZlbnQgJiYgdGhpcy52aWV3LnByZXZpZXdFbW9qaUlkeCAhPT0gb2xkSWR4KSB7XHJcbiAgICAgICAgLy8gUHJldmVudCBjdXJzb3IgbW92ZW1lbnQgaW5zaWRlIHRoZSBpbnB1dFxyXG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBvbkFycm93UmlnaHQoKSB7XHJcbiAgICAgIHRoaXMudmlldy5vbkFycm93UmlnaHQoKVxyXG4gICAgfSxcclxuICAgIG9uQXJyb3dEb3duKCkge1xyXG4gICAgICB0aGlzLnZpZXcub25BcnJvd0Rvd24oKVxyXG4gICAgfSxcclxuICAgIG9uQXJyb3dVcCgkZXZlbnQpIHtcclxuICAgICAgdGhpcy52aWV3Lm9uQXJyb3dVcCgpXHJcbiAgICAgIC8vIFByZXZlbnQgY3Vyc29yIG1vdmVtZW50IGluc2lkZSB0aGUgaW5wdXRcclxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcclxuICAgIH0sXHJcbiAgICBvbkVudGVyKGVtb2ppKSB7XHJcbiAgICAgIHRoaXMuJGVtaXQoJ3NlbGVjdCcsIHRoaXMudmlldy5wcmV2aWV3RW1vamkpXHJcbiAgICAgIGZyZXF1ZW50bHkuYWRkKHRoaXMudmlldy5wcmV2aWV3RW1vamkpXHJcbiAgICB9LFxyXG4gICAgb25FbW9qaUNsaWNrKGVtb2ppKSB7XHJcbiAgICAgIHRoaXMuJGVtaXQoJ3NlbGVjdCcsIGVtb2ppKVxyXG4gICAgICBmcmVxdWVudGx5LmFkZChlbW9qaSlcclxuICAgIH0sXHJcbiAgICBvblNraW5DaGFuZ2Uoc2tpbikge1xyXG4gICAgICB0aGlzLmFjdGl2ZVNraW4gPSBza2luXHJcbiAgICAgIHN0b3JlLnVwZGF0ZSh7IHNraW4gfSlcclxuXHJcbiAgICAgIHRoaXMuJGVtaXQoJ3NraW4tY2hhbmdlJywgc2tpbilcclxuICAgIH0sXHJcbiAgICBnZXRDYXRlZ29yeUNvbXBvbmVudChpbmRleCkge1xyXG4gICAgICBsZXQgY29tcG9uZW50ID0gdGhpcy4kcmVmc1snY2F0ZWdvcmllc18nICsgaW5kZXhdXHJcbiAgICAgIGlmIChjb21wb25lbnQgJiYgJzAnIGluIGNvbXBvbmVudCkge1xyXG4gICAgICAgIC8vIFZ1ZSAyIGhhcyAkcmVmcyB1bmRlciB2LWZvciBhcyBhbiBhcnJheS5cclxuICAgICAgICByZXR1cm4gY29tcG9uZW50WycwJ11cclxuICAgICAgfVxyXG4gICAgICAvLyBWdWUgMyBkb2VzIG5vdCBzdXBwb3J0ICRyZWZzIGFzIGFycmF5LlxyXG4gICAgICByZXR1cm4gY29tcG9uZW50XHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgY29tcG9uZW50czoge1xyXG4gICAgQW5jaG9ycyxcclxuICAgIENhdGVnb3J5LFxyXG4gICAgUHJldmlldyxcclxuICAgIFNlYXJjaCxcclxuICB9LFxyXG59XHJcbjwvc2NyaXB0PlxyXG4iLCI8dGVtcGxhdGU+XHJcbiAgPGRpdiByb2xlPVwidGFibGlzdFwiIGNsYXNzPVwiZW1vamktbWFydC1hbmNob3JzXCI+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIHYtZm9yPVwiY2F0ZWdvcnkgaW4gY2F0ZWdvcmllc1wiXHJcbiAgICAgIHJvbGU9XCJ0YWJcIlxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgOmFyaWEtbGFiZWw9XCJjYXRlZ29yeS5uYW1lXCJcclxuICAgICAgOmFyaWEtc2VsZWN0ZWQ9XCJjYXRlZ29yeS5pZCA9PSBhY3RpdmVDYXRlZ29yeS5pZFwiXHJcbiAgICAgIDprZXk9XCJjYXRlZ29yeS5pZFwiXHJcbiAgICAgIDpjbGFzcz1cIntcclxuICAgICAgICAnZW1vamktbWFydC1hbmNob3InOiB0cnVlLFxyXG4gICAgICAgICdlbW9qaS1tYXJ0LWFuY2hvci1zZWxlY3RlZCc6IGNhdGVnb3J5LmlkID09IGFjdGl2ZUNhdGVnb3J5LmlkLFxyXG4gICAgICB9XCJcclxuICAgICAgOnN0eWxlPVwieyBjb2xvcjogY2F0ZWdvcnkuaWQgPT0gYWN0aXZlQ2F0ZWdvcnkuaWQgPyBjb2xvciA6ICcnIH1cIlxyXG4gICAgICA6ZGF0YS10aXRsZT1cImkxOG4uY2F0ZWdvcmllc1tjYXRlZ29yeS5pZF1cIlxyXG4gICAgICBAY2xpY2s9XCIkZW1pdCgnY2xpY2snLCBjYXRlZ29yeSlcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHYtaHRtbD1cInN2Z3NbY2F0ZWdvcnkuaWRdXCIgLz5cclxuICAgICAgPHNwYW5cclxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgIGNsYXNzPVwiZW1vamktbWFydC1hbmNob3ItYmFyXCJcclxuICAgICAgICA6c3R5bGU9XCJ7IGJhY2tncm91bmRDb2xvcjogY29sb3IgfVwiXHJcbiAgICAgID48L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcbmltcG9ydCBzdmdzIGZyb20gJy4uL3N2Z3MnXHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgcHJvcHM6IHtcclxuICAgIGkxOG46IHtcclxuICAgICAgdHlwZTogT2JqZWN0LFxyXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBjb2xvcjoge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICB9LFxyXG4gICAgY2F0ZWdvcmllczoge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgYWN0aXZlQ2F0ZWdvcnk6IHtcclxuICAgICAgdHlwZTogT2JqZWN0LFxyXG4gICAgICBkZWZhdWx0KCkge1xyXG4gICAgICAgIHJldHVybiB7fVxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICB9LFxyXG4gIGNyZWF0ZWQoKSB7XHJcbiAgICB0aGlzLnN2Z3MgPSBzdmdzXHJcbiAgfSxcclxufVxyXG48L3NjcmlwdD5cclxuIiwiPHRlbXBsYXRlPlxyXG4gIDxzZWN0aW9uXHJcbiAgICA6Y2xhc3M9XCJ7XHJcbiAgICAgICdlbW9qaS1tYXJ0LWNhdGVnb3J5JzogdHJ1ZSxcclxuICAgICAgJ2Vtb2ppLW1hcnQtbm8tcmVzdWx0cyc6ICFoYXNSZXN1bHRzLFxyXG4gICAgfVwiXHJcbiAgICA6YXJpYS1sYWJlbD1cImkxOG4uY2F0ZWdvcmllc1tpZF1cIlxyXG4gICAgdi1pZj1cImlzVmlzaWJsZSAmJiAoaXNTZWFyY2ggfHwgaGFzUmVzdWx0cylcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LWNhdGVnb3J5LWxhYmVsXCI+XHJcbiAgICAgIDxoMyBjbGFzcz1cImVtb2ppLW1hcnQtY2F0ZWdvcnktbGFiZWxcIj57eyBpMThuLmNhdGVnb3JpZXNbaWRdIH19PC9oMz5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDx0ZW1wbGF0ZSB2LWZvcj1cInsgZW1vamlPYmplY3QsIGVtb2ppVmlldyB9IGluIGVtb2ppT2JqZWN0c1wiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgdi1pZj1cImVtb2ppVmlldy5jYW5SZW5kZXJcIlxyXG4gICAgICAgIDphcmlhLWxhYmVsPVwiZW1vamlWaWV3LmFyaWFMYWJlbFwiXHJcbiAgICAgICAgcm9sZT1cIm9wdGlvblwiXHJcbiAgICAgICAgYXJpYS1zZWxlY3RlZD1cImZhbHNlXCJcclxuICAgICAgICBhcmlhLXBvc2luc2V0PVwiMVwiXHJcbiAgICAgICAgYXJpYS1zZXRzaXplPVwiMTgxMlwiXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgOmRhdGEtdGl0bGU9XCJlbW9qaU9iamVjdC5zaG9ydF9uYW1lXCJcclxuICAgICAgICA6a2V5PVwiZW1vamlPYmplY3QuaWRcIlxyXG4gICAgICAgIDp0aXRsZT1cImVtb2ppVmlldy50aXRsZVwiXHJcbiAgICAgICAgY2xhc3M9XCJlbW9qaS1tYXJ0LWVtb2ppXCJcclxuICAgICAgICA6Y2xhc3M9XCJhY3RpdmVDbGFzcyhlbW9qaU9iamVjdClcIlxyXG4gICAgICAgIEBtb3VzZWVudGVyPVwiZW1vamlQcm9wcy5vbkVudGVyKGVtb2ppVmlldy5nZXRFbW9qaSgpKVwiXHJcbiAgICAgICAgQG1vdXNlbGVhdmU9XCJlbW9qaVByb3BzLm9uTGVhdmUoZW1vamlWaWV3LmdldEVtb2ppKCkpXCJcclxuICAgICAgICBAY2xpY2s9XCJlbW9qaVByb3BzLm9uQ2xpY2soZW1vamlWaWV3LmdldEVtb2ppKCkpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuIDpjbGFzcz1cImVtb2ppVmlldy5jc3NDbGFzc1wiIDpzdHlsZT1cImVtb2ppVmlldy5jc3NTdHlsZVwiPnt7XHJcbiAgICAgICAgICBlbW9qaVZpZXcuY29udGVudFxyXG4gICAgICAgIH19PC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvdGVtcGxhdGU+XHJcblxyXG4gICAgPGRpdiB2LWlmPVwiIWhhc1Jlc3VsdHNcIj5cclxuICAgICAgPGVtb2ppXHJcbiAgICAgICAgOmRhdGE9XCJkYXRhXCJcclxuICAgICAgICBlbW9qaT1cInNsZXV0aF9vcl9zcHlcIlxyXG4gICAgICAgIDpuYXRpdmU9XCJlbW9qaVByb3BzLm5hdGl2ZVwiXHJcbiAgICAgICAgOnNraW49XCJlbW9qaVByb3BzLnNraW5cIlxyXG4gICAgICAgIDpzZXQ9XCJlbW9qaVByb3BzLnNldFwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LW5vLXJlc3VsdHMtbGFiZWxcIj57eyBpMThuLm5vdGZvdW5kIH19PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L3NlY3Rpb24+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQgeyBFbW9qaVZpZXcgfSBmcm9tICcuLi91dGlscy9lbW9qaS1kYXRhJ1xyXG5pbXBvcnQgRW1vamkgZnJvbSAnLi9FbW9qaS52dWUnXHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgcHJvcHM6IHtcclxuICAgIGRhdGE6IHtcclxuICAgICAgdHlwZTogT2JqZWN0LFxyXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBpMThuOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgaWQ6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBuYW1lOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgZW1vamlzOiB7XHJcbiAgICAgIHR5cGU6IEFycmF5LFxyXG4gICAgfSxcclxuICAgIGVtb2ppUHJvcHM6IHtcclxuICAgICAgdHlwZTogT2JqZWN0LFxyXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICBhY3RpdmVDbGFzczogZnVuY3Rpb24oZW1vamlPYmplY3QpIHtcclxuICAgICAgaWYgKCF0aGlzLmVtb2ppUHJvcHMuc2VsZWN0ZWRFbW9qaSkge1xyXG4gICAgICAgIHJldHVybiAnJ1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5lbW9qaVByb3BzLnNlbGVjdGVkRW1vamlDYXRlZ29yeSkge1xyXG4gICAgICAgIHJldHVybiAnJ1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLmVtb2ppUHJvcHMuc2VsZWN0ZWRFbW9qaS5pZCA9PSBlbW9qaU9iamVjdC5pZCAmJlxyXG4gICAgICAgIHRoaXMuZW1vamlQcm9wcy5zZWxlY3RlZEVtb2ppQ2F0ZWdvcnkuaWQgPT0gdGhpcy5pZFxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gJ2Vtb2ppLW1hcnQtZW1vamktc2VsZWN0ZWQnXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuICcnXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHtcclxuICAgIGlzVmlzaWJsZSgpIHtcclxuICAgICAgcmV0dXJuICEhdGhpcy5lbW9qaXNcclxuICAgIH0sXHJcbiAgICBpc1NlYXJjaCgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubmFtZSA9PSAnU2VhcmNoJ1xyXG4gICAgfSxcclxuICAgIGhhc1Jlc3VsdHMoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmVtb2ppcy5sZW5ndGggPiAwXHJcbiAgICB9LFxyXG4gICAgZW1vamlPYmplY3RzKCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5lbW9qaXMubWFwKChlbW9qaSkgPT4ge1xyXG4gICAgICAgIGxldCBlbW9qaU9iamVjdCA9IGVtb2ppXHJcbiAgICAgICAgbGV0IGVtb2ppVmlldyA9IG5ldyBFbW9qaVZpZXcoXHJcbiAgICAgICAgICBlbW9qaSxcclxuICAgICAgICAgIHRoaXMuZW1vamlQcm9wcy5za2luLFxyXG4gICAgICAgICAgdGhpcy5lbW9qaVByb3BzLnNldCxcclxuICAgICAgICAgIHRoaXMuZW1vamlQcm9wcy5uYXRpdmUsXHJcbiAgICAgICAgICB0aGlzLmVtb2ppUHJvcHMuZmFsbGJhY2ssXHJcbiAgICAgICAgICB0aGlzLmVtb2ppUHJvcHMuZW1vamlUb29sdGlwLFxyXG4gICAgICAgICAgdGhpcy5lbW9qaVByb3BzLmVtb2ppU2l6ZSxcclxuICAgICAgICApXHJcbiAgICAgICAgcmV0dXJuIHsgZW1vamlPYmplY3QsIGVtb2ppVmlldyB9XHJcbiAgICAgIH0pXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgY29tcG9uZW50czoge1xyXG4gICAgRW1vamksXHJcbiAgfSxcclxufVxyXG48L3NjcmlwdD5cclxuIiwiPHRlbXBsYXRlPlxyXG5cclxuPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlld1wiPlxyXG4gIDx0ZW1wbGF0ZSB2LWlmPVwiZW1vamlcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1lbW9qaVwiPlxyXG4gICAgICAgIDxlbW9qaVxyXG4gICAgICAgICAgOmRhdGE9XCJkYXRhXCJcclxuICAgICAgICAgIDplbW9qaT1cImVtb2ppXCJcclxuICAgICAgICAgIDpuYXRpdmU9XCJlbW9qaVByb3BzLm5hdGl2ZVwiXHJcbiAgICAgICAgICA6c2tpbj1cImVtb2ppUHJvcHMuc2tpblwiXHJcbiAgICAgICAgICA6c2V0PVwiZW1vamlQcm9wcy5zZXRcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1kYXRhXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1uYW1lXCI+e3sgZW1vamkubmFtZSB9fTwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctc2hvcnRuYW1lc1wiPlxyXG4gICAgICAgICAgPHNwYW4gdi1mb3I9XCJzaG9ydE5hbWUgaW4gZW1vamlTaG9ydE5hbWVzXCIgOmtleT1cInNob3J0TmFtZVwiIGNsYXNzPVwiZW1vamktbWFydC1wcmV2aWV3LXNob3J0bmFtZVwiPjp7eyBzaG9ydE5hbWUgfX06PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctZW1vdGljb25zXCI+XHJcbiAgICAgICAgICA8c3BhbiB2LWZvcj1cImVtb3RpY29uIGluIGVtb2ppRW1vdGljb25zXCIgOmtleT1cImVtb3RpY29uXCIgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctZW1vdGljb25cIj57eyBlbW90aWNvbiB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgPC90ZW1wbGF0ZT5cclxuXHJcbiAgPHRlbXBsYXRlIHYtZWxzZT5cclxuICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctZW1vamlcIj5cclxuICAgICAgPGVtb2ppXHJcbiAgICAgICAgOmRhdGE9XCJkYXRhXCJcclxuICAgICAgICA6ZW1vamk9XCJpZGxlRW1vamlcIlxyXG4gICAgICAgIDpuYXRpdmU9XCJlbW9qaVByb3BzLm5hdGl2ZVwiXHJcbiAgICAgICAgOnNraW49XCJlbW9qaVByb3BzLnNraW5cIlxyXG4gICAgICAgIDpzZXQ9XCJlbW9qaVByb3BzLnNldFwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZW1vamktbWFydC1wcmV2aWV3LWRhdGFcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJlbW9qaS1tYXJ0LXRpdGxlLWxhYmVsXCI+e3sgdGl0bGUgfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IHYtaWY9XCJzaG93U2tpblRvbmVzXCIgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctc2tpbnNcIj5cclxuICAgICAgPHNraW5zIDpza2luPVwic2tpblByb3BzLnNraW5cIiBAY2hhbmdlPVwib25Ta2luQ2hhbmdlKCRldmVudClcIiAvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC90ZW1wbGF0ZT5cclxuPC9kaXY+XHJcblxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHJcbmltcG9ydCBFbW9qaSBmcm9tICcuL0Vtb2ppLnZ1ZSdcclxuaW1wb3J0IFNraW5zIGZyb20gJy4vc2tpbnMudnVlJ1xyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIHByb3BzOiB7XHJcbiAgICBkYXRhOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICB0aXRsZToge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgZW1vamk6IHtcclxuICAgICAgdHlwZTogW1N0cmluZywgT2JqZWN0XVxyXG4gICAgfSxcclxuICAgIGlkbGVFbW9qaToge1xyXG4gICAgICB0eXBlOiBbU3RyaW5nLCBPYmplY3RdLFxyXG4gICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHNob3dTa2luVG9uZXM6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGVtb2ppUHJvcHM6IHtcclxuICAgICAgdHlwZTogT2JqZWN0LFxyXG4gICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHNraW5Qcm9wczoge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgb25Ta2luQ2hhbmdlOiB7XHJcbiAgICAgIHR5cGU6IEZ1bmN0aW9uLFxyXG4gICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHtcclxuICAgIGVtb2ppRGF0YSgpIHtcclxuICAgICAgaWYgKHRoaXMuZW1vamkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbW9qaVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB7fVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgZW1vamlTaG9ydE5hbWVzKCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5lbW9qaURhdGEuc2hvcnRfbmFtZXNcclxuICAgIH0sXHJcbiAgICBlbW9qaUVtb3RpY29ucygpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZW1vamlEYXRhLmVtb3RpY29uc1xyXG4gICAgfVxyXG4gIH0sXHJcbiAgY29tcG9uZW50czoge1xyXG4gICAgRW1vamksXHJcbiAgICBTa2luc1xyXG4gIH1cclxufVxyXG5cclxuPC9zY3JpcHQ+XHJcbiIsIjx0ZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwiZW1vamktbWFydC1zZWFyY2hcIj5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIDpwbGFjZWhvbGRlcj1cImkxOG4uc2VhcmNoXCJcclxuICAgICAgcm9sZT1cInRleHRib3hcIlxyXG4gICAgICBhcmlhLWF1dG9jb21wbGV0ZT1cImxpc3RcIlxyXG4gICAgICBhcmlhLW93bnM9XCJlbW9qaS1tYXJ0LWxpc3RcIlxyXG4gICAgICBhcmlhLWxhYmVsPVwiU2VhcmNoIGZvciBhbiBlbW9qaVwiXHJcbiAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJlbW9qaS1tYXJ0LXNlYXJjaC1kZXNjcmlwdGlvblwiXHJcbiAgICAgIEBrZXlkb3duLmxlZnQ9XCIoJGV2ZW50KSA9PiAkZW1pdCgnYXJyb3dMZWZ0JywgJGV2ZW50KVwiXHJcbiAgICAgIEBrZXlkb3duLnJpZ2h0PVwiKCkgPT4gJGVtaXQoJ2Fycm93UmlnaHQnKVwiXHJcbiAgICAgIEBrZXlkb3duLmRvd249XCIoKSA9PiAkZW1pdCgnYXJyb3dEb3duJylcIlxyXG4gICAgICBAa2V5ZG93bi51cD1cIigkZXZlbnQpID0+ICRlbWl0KCdhcnJvd1VwJywgJGV2ZW50KVwiXHJcbiAgICAgIEBrZXlkb3duLmVudGVyPVwiKCkgPT4gJGVtaXQoJ2VudGVyJylcIlxyXG4gICAgICB2LW1vZGVsPVwidmFsdWVcIlxyXG4gICAgLz5cclxuICAgIDxzcGFuIGNsYXNzPVwiaGlkZGVuXCIgaWQ9XCJlbW9qaS1waWNrZXItc2VhcmNoLWRlc2NyaXB0aW9uXCJcclxuICAgICAgPlVzZSB0aGUgbGVmdCwgcmlnaHQsIHVwIGFuZCBkb3duIGFycm93IGtleXMgdG8gbmF2aWdhdGUgdGhlIGVtb2ppIHNlYXJjaFxyXG4gICAgICByZXN1bHRzLjwvc3BhblxyXG4gICAgPlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIHByb3BzOiB7XHJcbiAgICBkYXRhOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgaTE4bjoge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIGF1dG9Gb2N1czoge1xyXG4gICAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcclxuICAgIH0sXHJcbiAgICBvblNlYXJjaDoge1xyXG4gICAgICB0eXBlOiBGdW5jdGlvbixcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgb25BcnJvd0xlZnQ6IHtcclxuICAgICAgdHlwZTogRnVuY3Rpb24sXHJcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcclxuICAgIH0sXHJcbiAgICBvbkFycm93UmlnaHQ6IHtcclxuICAgICAgdHlwZTogRnVuY3Rpb24sXHJcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcclxuICAgIH0sXHJcbiAgICBvbkFycm93RG93bjoge1xyXG4gICAgICB0eXBlOiBGdW5jdGlvbixcclxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxyXG4gICAgfSxcclxuICAgIG9uQXJyb3dVcDoge1xyXG4gICAgICB0eXBlOiBGdW5jdGlvbixcclxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxyXG4gICAgfSxcclxuICAgIG9uRW50ZXI6IHtcclxuICAgICAgdHlwZTogRnVuY3Rpb24sXHJcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdmFsdWU6ICcnLFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHtcclxuICAgIGVtb2ppSW5kZXgoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRhdGFcclxuICAgIH0sXHJcbiAgfSxcclxuICB3YXRjaDoge1xyXG4gICAgdmFsdWUoKSB7XHJcbiAgICAgIHRoaXMuJGVtaXQoJ3NlYXJjaCcsIHRoaXMudmFsdWUpXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgY2xlYXIoKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSAnJ1xyXG4gICAgfSxcclxuICB9LFxyXG4gIG1vdW50ZWQoKSB7XHJcbiAgICBsZXQgJGlucHV0ID0gdGhpcy4kZWwucXVlcnlTZWxlY3RvcignaW5wdXQnKVxyXG5cclxuICAgIGlmICh0aGlzLmF1dG9Gb2N1cykge1xyXG4gICAgICAkaW5wdXQuZm9jdXMoKVxyXG4gICAgfVxyXG4gIH0sXHJcbn1cclxuPC9zY3JpcHQ+XHJcbiIsIjx0ZW1wbGF0ZT5cclxuXHJcbjxkaXYgOmNsYXNzPVwieyAnZW1vamktbWFydC1za2luLXN3YXRjaGVzJzogdHJ1ZSwgJ2Vtb2ppLW1hcnQtc2tpbi1zd2F0Y2hlcy1vcGVuZWQnOiBvcGVuZWQgfVwiPlxyXG4gIDxzcGFuIHYtZm9yPVwic2tpblRvbmUgaW4gNlwiIDprZXk9XCJza2luVG9uZVwiIDpjbGFzcz1cInsgJ2Vtb2ppLW1hcnQtc2tpbi1zd2F0Y2gnOiB0cnVlLCAnZW1vamktbWFydC1za2luLXN3YXRjaC1zZWxlY3RlZCc6IHNraW4gPT0gc2tpblRvbmUgfVwiPlxyXG4gICAgPHNwYW4gOmNsYXNzPVwiJ2Vtb2ppLW1hcnQtc2tpbiBlbW9qaS1tYXJ0LXNraW4tdG9uZS0nICsgc2tpblRvbmVcIiBAY2xpY2s9XCJvbkNsaWNrKHNraW5Ub25lKVwiPjwvc3Bhbj5cclxuICA8L3NwYW4+XHJcbjwvZGl2PlxyXG5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgcHJvcHM6IHtcclxuICAgIHNraW46IHtcclxuICAgICAgdHlwZTogTnVtYmVyLFxyXG4gICAgICByZXF1aXJlZDogdHJ1ZVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG9wZW5lZDogZmFsc2VcclxuICAgIH1cclxuICB9LFxyXG4gIG1ldGhvZHM6IHtcclxuICAgIG9uQ2xpY2soc2tpblRvbmUpIHtcclxuICAgICAgaWYgKHRoaXMub3BlbmVkKSB7XHJcbiAgICAgICAgaWYgKHNraW5Ub25lICE9IHRoaXMuc2tpbikge1xyXG4gICAgICAgICAgdGhpcy4kZW1pdCgnY2hhbmdlJywgc2tpblRvbmUpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLm9wZW5lZCA9ICF0aGlzLm9wZW5lZFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuPC9zY3JpcHQ+XHJcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgQW5jaG9ycyB9IGZyb20gJy4vYW5jaG9ycy52dWUnXHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2F0ZWdvcnkgfSBmcm9tICcuL2NhdGVnb3J5LnZ1ZSdcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBQcmV2aWV3IH0gZnJvbSAnLi9wcmV2aWV3LnZ1ZSdcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBTZWFyY2ggfSBmcm9tICcuL3NlYXJjaC52dWUnXHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2tpbnMgfSBmcm9tICcuL3NraW5zLnZ1ZSdcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBFbW9qaSB9IGZyb20gJy4vRW1vamkudnVlJ1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFBpY2tlciB9IGZyb20gJy4vUGlja2VyLnZ1ZSdcclxuIiwiaW1wb3J0IHN0b3JlIGZyb20gJy4vdXRpbHMvc3RvcmUnXHJcbmltcG9ydCB7IHVuY29tcHJlc3MgfSBmcm9tICcuL3V0aWxzL2RhdGEnXHJcbmltcG9ydCBmcmVxdWVudGx5IGZyb20gJy4vdXRpbHMvZnJlcXVlbnRseSdcclxuXHJcbmV4cG9ydCB7XHJcbiAgUGlja2VyLFxyXG4gIEVtb2ppLFxyXG4gIEFuY2hvcnMsXHJcbiAgUHJldmlldyxcclxuICBTZWFyY2gsXHJcbiAgQ2F0ZWdvcnksXHJcbiAgU2tpbnMsXHJcbn0gZnJvbSAnLi9jb21wb25lbnRzJ1xyXG5cclxuZXhwb3J0IHsgRW1vamlJbmRleCwgRW1vamlWaWV3LCBFbW9qaURhdGEsIHNhbml0aXplIH0gZnJvbSAnLi91dGlscy9lbW9qaS1kYXRhJ1xyXG5leHBvcnQgeyB1bmNvbXByZXNzLCBzdG9yZSwgZnJlcXVlbnRseSB9XHJcbiIsImNvbnN0IF9TdHJpbmcgPSBTdHJpbmdcclxuXHJcbmV4cG9ydCBkZWZhdWx0IF9TdHJpbmcuZnJvbUNvZGVQb2ludCB8fFxyXG4gIGZ1bmN0aW9uIHN0cmluZ0Zyb21Db2RlUG9pbnQoKSB7XHJcbiAgICB2YXIgTUFYX1NJWkUgPSAweDQwMDBcclxuICAgIHZhciBjb2RlVW5pdHMgPSBbXVxyXG4gICAgdmFyIGhpZ2hTdXJyb2dhdGVcclxuICAgIHZhciBsb3dTdXJyb2dhdGVcclxuICAgIHZhciBpbmRleCA9IC0xXHJcbiAgICB2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aFxyXG4gICAgaWYgKCFsZW5ndGgpIHtcclxuICAgICAgcmV0dXJuICcnXHJcbiAgICB9XHJcbiAgICB2YXIgcmVzdWx0ID0gJydcclxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XHJcbiAgICAgIHZhciBjb2RlUG9pbnQgPSBOdW1iZXIoYXJndW1lbnRzW2luZGV4XSlcclxuICAgICAgaWYgKFxyXG4gICAgICAgICFpc0Zpbml0ZShjb2RlUG9pbnQpIHx8IC8vIGBOYU5gLCBgK0luZmluaXR5YCwgb3IgYC1JbmZpbml0eWBcclxuICAgICAgICBjb2RlUG9pbnQgPCAwIHx8IC8vIG5vdCBhIHZhbGlkIFVuaWNvZGUgY29kZSBwb2ludFxyXG4gICAgICAgIGNvZGVQb2ludCA+IDB4MTBmZmZmIHx8IC8vIG5vdCBhIHZhbGlkIFVuaWNvZGUgY29kZSBwb2ludFxyXG4gICAgICAgIE1hdGguZmxvb3IoY29kZVBvaW50KSAhPSBjb2RlUG9pbnQgLy8gbm90IGFuIGludGVnZXJcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhyb3cgUmFuZ2VFcnJvcignSW52YWxpZCBjb2RlIHBvaW50OiAnICsgY29kZVBvaW50KVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChjb2RlUG9pbnQgPD0gMHhmZmZmKSB7XHJcbiAgICAgICAgLy8gQk1QIGNvZGUgcG9pbnRcclxuICAgICAgICBjb2RlVW5pdHMucHVzaChjb2RlUG9pbnQpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gQXN0cmFsIGNvZGUgcG9pbnQ7IHNwbGl0IGluIHN1cnJvZ2F0ZSBoYWx2ZXNcclxuICAgICAgICAvLyBodHRwOi8vbWF0aGlhc2J5bmVucy5iZS9ub3Rlcy9qYXZhc2NyaXB0LWVuY29kaW5nI3N1cnJvZ2F0ZS1mb3JtdWxhZVxyXG4gICAgICAgIGNvZGVQb2ludCAtPSAweDEwMDAwXHJcbiAgICAgICAgaGlnaFN1cnJvZ2F0ZSA9IChjb2RlUG9pbnQgPj4gMTApICsgMHhkODAwXHJcbiAgICAgICAgbG93U3Vycm9nYXRlID0gKGNvZGVQb2ludCAlIDB4NDAwKSArIDB4ZGMwMFxyXG4gICAgICAgIGNvZGVVbml0cy5wdXNoKGhpZ2hTdXJyb2dhdGUsIGxvd1N1cnJvZ2F0ZSlcclxuICAgICAgfVxyXG4gICAgICBpZiAoaW5kZXggKyAxID09PSBsZW5ndGggfHwgY29kZVVuaXRzLmxlbmd0aCA+IE1BWF9TSVpFKSB7XHJcbiAgICAgICAgcmVzdWx0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgY29kZVVuaXRzKVxyXG4gICAgICAgIGNvZGVVbml0cy5sZW5ndGggPSAwXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHRcclxuICB9XHJcbiIsImNvbnN0IFNWR3MgPSB7XHJcbiAgYWN0aXZpdHk6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCI+PHBhdGggZD1cIk0xMiAwQzUuMzczIDAgMCA1LjM3MiAwIDEyYzAgNi42MjcgNS4zNzMgMTIgMTIgMTIgNi42MjggMCAxMi01LjM3MyAxMi0xMiAwLTYuNjI4LTUuMzcyLTEyLTEyLTEybTkuOTQ5IDExSDE3LjA1Yy4yMjQtMi41MjcgMS4yMzItNC43NzMgMS45NjgtNi4xMTNBOS45NjYgOS45NjYgMCAwIDEgMjEuOTQ5IDExTTEzIDExVjIuMDUxYTkuOTQ1IDkuOTQ1IDAgMCAxIDQuNDMyIDEuNTY0Yy0uODU4IDEuNDkxLTIuMTU2IDQuMjItMi4zOTIgNy4zODVIMTN6bS0yIDBIOC45NjFjLS4yMzgtMy4xNjUtMS41MzYtNS44OTQtMi4zOTMtNy4zODVBOS45NSA5Ljk1IDAgMCAxIDExIDIuMDUxVjExem0wIDJ2OC45NDlhOS45MzcgOS45MzcgMCAwIDEtNC40MzItMS41NjRjLjg1Ny0xLjQ5MiAyLjE1NS00LjIyMSAyLjM5My03LjM4NUgxMXptNC4wNCAwYy4yMzYgMy4xNjQgMS41MzQgNS44OTMgMi4zOTIgNy4zODVBOS45MiA5LjkyIDAgMCAxIDEzIDIxLjk0OVYxM2gyLjA0ek00Ljk4MiA0Ljg4N0M1LjcxOCA2LjIyNyA2LjcyNiA4LjQ3MyA2Ljk1MSAxMWgtNC45YTkuOTc3IDkuOTc3IDAgMCAxIDIuOTMxLTYuMTEzTTIuMDUxIDEzaDQuOWMtLjIyNiAyLjUyNy0xLjIzMyA0Ljc3MS0xLjk2OSA2LjExM0E5Ljk3MiA5Ljk3MiAwIDAgMSAyLjA1MSAxM20xNi45NjcgNi4xMTNjLS43MzUtMS4zNDItMS43NDQtMy41ODYtMS45NjgtNi4xMTNoNC44OTlhOS45NjEgOS45NjEgMCAwIDEtMi45MzEgNi4xMTNcIi8+PC9zdmc+YCxcclxuXHJcbiAgY3VzdG9tOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjxnIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgyLjAwMDAwMCwgMS4wMDAwMDApXCI+PHJlY3QgaWQ9XCJSZWN0YW5nbGVcIiB4PVwiOFwiIHk9XCIwXCIgd2lkdGg9XCIzXCIgaGVpZ2h0PVwiMjFcIiByeD1cIjEuNVwiPjwvcmVjdD48cmVjdCBpZD1cIlJlY3RhbmdsZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSg5Ljg0MywgMTAuNTQ5KSByb3RhdGUoNjApIHRyYW5zbGF0ZSgtOS44NDMsIC0xMC41NDkpIFwiIHg9XCI4LjM0M1wiIHk9XCIwLjA0OVwiIHdpZHRoPVwiM1wiIGhlaWdodD1cIjIxXCIgcng9XCIxLjVcIj48L3JlY3Q+PHJlY3QgaWQ9XCJSZWN0YW5nbGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoOS44NDMsIDEwLjU0OSkgcm90YXRlKC02MCkgdHJhbnNsYXRlKC05Ljg0MywgLTEwLjU0OSkgXCIgeD1cIjguMzQzXCIgeT1cIjAuMDQ5XCIgd2lkdGg9XCIzXCIgaGVpZ2h0PVwiMjFcIiByeD1cIjEuNVwiPjwvcmVjdD48L2c+PC9zdmc+YCxcclxuXHJcbiAgZmxhZ3M6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCI+PHBhdGggZD1cIk0wIDBsNi4wODQgMjRIOEwxLjkxNiAwek0yMSA1aC00bC0xLTRINGwzIDEyaDNsMSA0aDEzTDIxIDV6TTYuNTYzIDNoNy44NzVsMiA4SDguNTYzbC0yLTh6bTguODMyIDEwbC0yLjg1NiAxLjkwNEwxMi4wNjMgMTNoMy4zMzJ6TTE5IDEzbC0xLjUtNmgxLjkzOGwyIDhIMTZsMy0yelwiLz48L3N2Zz5gLFxyXG5cclxuICBmb29kczogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIj48cGF0aCBkPVwiTTE3IDQuOTc4Yy0xLjgzOCAwLTIuODc2LjM5Ni0zLjY4LjkzNC41MTMtMS4xNzIgMS43NjgtMi45MzQgNC42OC0yLjkzNGExIDEgMCAwIDAgMC0yYy0yLjkyMSAwLTQuNjI5IDEuMzY1LTUuNTQ3IDIuNTEyLS4wNjQuMDc4LS4xMTkuMTYyLS4xOC4yNDRDMTEuNzMgMS44MzggMTAuNzk4LjAyMyA5LjIwNy4wMjMgOC41NzkuMDIyIDcuODUuMzA2IDcgLjk3OCA1LjAyNyAyLjU0IDUuMzI5IDMuOTAyIDYuNDkyIDQuOTk5IDMuNjA5IDUuMjIyIDAgNy4zNTIgMCAxMi45NjljMCA0LjU4MiA0Ljk2MSAxMS4wMDkgOSAxMS4wMDkgMS45NzUgMCAyLjM3MS0uNDg2IDMtMSAuNjI5LjUxNCAxLjAyNSAxIDMgMSA0LjAzOSAwIDktNi40MTggOS0xMSAwLTUuOTUzLTQuMDU1LTgtNy04TTguMjQyIDIuNTQ2Yy42NDEtLjUwOC45NDMtLjUyMy45NjUtLjUyMy40MjYuMTY5Ljk3NSAxLjQwNSAxLjM1NyAzLjA1NS0xLjUyNy0uNjI5LTIuNzQxLTEuMzUyLTIuOTgtMS44NDYuMDU5LS4xMTIuMjQxLS4zNTYuNjU4LS42ODZNMTUgMjEuOTc4Yy0xLjA4IDAtMS4yMS0uMTA5LTEuNTU5LS40MDJsLS4xNzYtLjE0NmMtLjM2Ny0uMzAyLS44MTYtLjQ1Mi0xLjI2Ni0uNDUycy0uODk4LjE1LTEuMjY2LjQ1MmwtLjE3Ni4xNDZjLS4zNDcuMjkyLS40NzcuNDAyLTEuNTU3LjQwMi0yLjgxMyAwLTctNS4zODktNy05LjAwOSAwLTUuODIzIDQuNDg4LTUuOTkxIDUtNS45OTEgMS45MzkgMCAyLjQ4NC40NzEgMy4zODcgMS4yNTFsLjMyMy4yNzZhMS45OTUgMS45OTUgMCAwIDAgMi41OCAwbC4zMjMtLjI3NmMuOTAyLS43OCAxLjQ0Ny0xLjI1MSAzLjM4Ny0xLjI1MS41MTIgMCA1IC4xNjggNSA2IDAgMy42MTctNC4xODcgOS03IDlcIi8+PC9zdmc+YCxcclxuXHJcbiAgbmF0dXJlOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjxwYXRoIGQ9XCJNMTUuNSA4YTEuNSAxLjUgMCAxIDAgLjAwMSAzLjAwMUExLjUgMS41IDAgMCAwIDE1LjUgOE04LjUgOGExLjUgMS41IDAgMSAwIC4wMDEgMy4wMDFBMS41IDEuNSAwIDAgMCA4LjUgOFwiLz48cGF0aCBkPVwiTTE4LjkzMyAwaC0uMDI3Yy0uOTcgMC0yLjEzOC43ODctMy4wMTggMS40OTctMS4yNzQtLjM3NC0yLjYxMi0uNTEtMy44ODctLjUxLTEuMjg1IDAtMi42MTYuMTMzLTMuODc0LjUxN0M3LjI0NS43OSA2LjA2OSAwIDUuMDkzIDBoLS4wMjdDMy4zNTIgMCAuMDcgMi42Ny4wMDIgNy4wMjZjLS4wMzkgMi40NzkuMjc2IDQuMjM4IDEuMDQgNS4wMTMuMjU0LjI1OC44ODIuNjc3IDEuMjk1Ljg4Mi4xOTEgMy4xNzcuOTIyIDUuMjM4IDIuNTM2IDYuMzguODk3LjYzNyAyLjE4Ny45NDkgMy4yIDEuMTAyQzguMDQgMjAuNiA4IDIwLjc5NSA4IDIxYzAgMS43NzMgMi4zNSAzIDQgMyAxLjY0OCAwIDQtMS4yMjcgNC0zIDAtLjIwMS0uMDM4LS4zOTMtLjA3Mi0uNTg2IDIuNTczLS4zODUgNS40MzUtMS44NzcgNS45MjUtNy41ODcuMzk2LS4yMi44ODctLjU2OCAxLjEwNC0uNzg4Ljc2My0uNzc0IDEuMDc5LTIuNTM0IDEuMDQtNS4wMTNDMjMuOTI5IDIuNjcgMjAuNjQ2IDAgMTguOTMzIDBNMy4yMjMgOS4xMzVjLS4yMzcuMjgxLS44MzcgMS4xNTUtLjg4NCAxLjIzOC0uMTUtLjQxLS4zNjgtMS4zNDktLjMzNy0zLjI5MS4wNTEtMy4yODEgMi40NzgtNC45NzIgMy4wOTEtNS4wMzEuMjU2LjAxNS43MzEuMjcgMS4yNjUuNjQ2LTEuMTEgMS4xNzEtMi4yNzUgMi45MTUtMi4zNTIgNS4xMjUtLjEzMy41NDYtLjM5OC44NTgtLjc4MyAxLjMxM00xMiAyMmMtLjkwMSAwLTEuOTU0LS42OTMtMi0xIDAtLjY1NC40NzUtMS4yMzYgMS0xLjYwMlYyMGExIDEgMCAxIDAgMiAwdi0uNjAyYy41MjQuMzY1IDEgLjk0NyAxIDEuNjAyLS4wNDYuMzA3LTEuMDk5IDEtMiAxbTMtMy40OHYuMDJhNC43NTIgNC43NTIgMCAwIDAtMS4yNjItMS4wMmMxLjA5Mi0uNTE2IDIuMjM5LTEuMzM0IDIuMjM5LTIuMjE3IDAtMS44NDItMS43ODEtMi4xOTUtMy45NzctMi4xOTUtMi4xOTYgMC0zLjk3OC4zNTQtMy45NzggMi4xOTUgMCAuODgzIDEuMTQ4IDEuNzAxIDIuMjM4IDIuMjE3QTQuOCA0LjggMCAwIDAgOSAxOC41Mzl2LS4wMjVjLTEtLjA3Ni0yLjE4Mi0uMjgxLTIuOTczLS44NDItMS4zMDEtLjkyLTEuODM4LTMuMDQ1LTEuODUzLTYuNDc4bC4wMjMtLjA0MWMuNDk2LS44MjYgMS40OS0xLjQ1IDEuODA0LTMuMTAyIDAtMi4wNDcgMS4zNTctMy42MzEgMi4zNjItNC41MjJDOS4zNyAzLjE3OCAxMC41NTUgMyAxMS45NDggM2MxLjQ0NyAwIDIuNjg1LjE5MiAzLjczMy41NyAxIC45IDIuMzE2IDIuNDY1IDIuMzE2IDQuNDguMzEzIDEuNjUxIDEuMzA3IDIuMjc1IDEuODAzIDMuMTAyLjAzNS4wNTguMDY4LjExNy4xMDIuMTc4LS4wNTkgNS45NjctMS45NDkgNy4wMS00LjkwMiA3LjE5bTYuNjI4LTguMjAyYy0uMDM3LS4wNjUtLjA3NC0uMTMtLjExMy0uMTk1YTcuNTg3IDcuNTg3IDAgMCAwLS43MzktLjk4N2MtLjM4NS0uNDU1LS42NDgtLjc2OC0uNzgyLTEuMzEzLS4wNzYtMi4yMDktMS4yNDEtMy45NTQtMi4zNTMtNS4xMjQuNTMxLS4zNzYgMS4wMDQtLjYzIDEuMjYxLS42NDcuNjM2LjA3MSAzLjA0NCAxLjc2NCAzLjA5NiA1LjAzMS4wMjcgMS44MS0uMzQ3IDMuMjE4LS4zNyAzLjIzNVwiLz48L3N2Zz5gLFxyXG5cclxuICBvYmplY3RzOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjxwYXRoIGQ9XCJNMTIgMGE5IDkgMCAwIDAtNSAxNi40ODJWMjFzMi4wMzUgMyA1IDMgNS0zIDUtM3YtNC41MThBOSA5IDAgMCAwIDEyIDB6bTAgMmMzLjg2IDAgNyAzLjE0MSA3IDdzLTMuMTQgNy03IDctNy0zLjE0MS03LTcgMy4xNC03IDctN3pNOSAxNy40NzdjLjk0LjMzMiAxLjk0Ni41MjMgMyAuNTIzczIuMDYtLjE5IDMtLjUyM3YuODM0Yy0uOTEuNDM2LTEuOTI1LjY4OS0zIC42ODlhNi45MjQgNi45MjQgMCAwIDEtMy0uNjl2LS44MzN6bS4yMzYgMy4wN0E4Ljg1NCA4Ljg1NCAwIDAgMCAxMiAyMWMuOTY1IDAgMS44ODgtLjE2NyAyLjc1OC0uNDUxQzE0LjE1NSAyMS4xNzMgMTMuMTUzIDIyIDEyIDIyYy0xLjEwMiAwLTIuMTE3LS43ODktMi43NjQtMS40NTN6XCIvPjxwYXRoIGQ9XCJNMTQuNzQ1IDEyLjQ0OWgtLjAwNGMtLjg1Mi0uMDI0LTEuMTg4LS44NTgtMS41NzctMS44MjQtLjQyMS0xLjA2MS0uNzAzLTEuNTYxLTEuMTgyLTEuNTY2aC0uMDA5Yy0uNDgxIDAtLjc4My40OTctMS4yMzUgMS41MzctLjQzNi45ODItLjgwMSAxLjgxMS0xLjYzNiAxLjc5MWwtLjI3Ni0uMDQzYy0uNTY1LS4xNzEtLjg1My0uNjkxLTEuMjg0LTEuNzk0LS4xMjUtLjMxMy0uMjAyLS42MzItLjI3LS45MTMtLjA1MS0uMjEzLS4xMjctLjUzLS4xOTUtLjYzNEM3LjA2NyA5LjAwNCA3LjAzOSA5IDYuOTkgOUExIDEgMCAwIDEgNyA3aC4wMWMxLjY2Mi4wMTcgMi4wMTUgMS4zNzMgMi4xOTggMi4xMzQuNDg2LS45ODEgMS4zMDQtMi4wNTggMi43OTctMi4wNzUgMS41MzEuMDE4IDIuMjggMS4xNTMgMi43MzEgMi4xNDFsLjAwMi0uMDA4QzE0Ljk0NCA4LjQyNCAxNS4zMjcgNyAxNi45NzkgN2guMDMyQTEgMSAwIDEgMSAxNyA5aC0uMDExYy0uMTQ5LjA3Ni0uMjU2LjQ3NC0uMzE5LjcwOWE2LjQ4NCA2LjQ4NCAwIDAgMS0uMzExLjk1MWMtLjQyOS45NzMtLjc5IDEuNzg5LTEuNjE0IDEuNzg5XCIvPjwvc3ZnPmAsXHJcblxyXG4gIHNtaWxleXM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCI+PHBhdGggZD1cIk0xMiAwQzUuMzczIDAgMCA1LjM3MyAwIDEyczUuMzczIDEyIDEyIDEyIDEyLTUuMzczIDEyLTEyUzE4LjYyNyAwIDEyIDBtMCAyMkM2LjQ4NiAyMiAyIDE3LjUxNCAyIDEyUzYuNDg2IDIgMTIgMnMxMCA0LjQ4NiAxMCAxMC00LjQ4NiAxMC0xMCAxMFwiLz48cGF0aCBkPVwiTTggN2EyIDIgMCAxIDAtLjAwMSAzLjk5OUEyIDIgMCAwIDAgOCA3TTE2IDdhMiAyIDAgMSAwLS4wMDEgMy45OTlBMiAyIDAgMCAwIDE2IDdNMTUuMjMyIDE1Yy0uNjkzIDEuMTk1LTEuODcgMi0zLjM0OSAyLTEuNDc3IDAtMi42NTUtLjgwNS0zLjM0Ny0ySDE1bTMtMkg2YTYgNiAwIDEgMCAxMiAwXCIvPjwvc3ZnPmAsXHJcblxyXG4gIHBlb3BsZTogYDxzdmcgeG1sbnM6c3ZnPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBoZWlnaHQ9XCIyNFwiIHdpZHRoPVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+IDxwYXRoIGlkPVwicGF0aDM4MTRcIiBkPVwibSAzLjM1OTEwODksMjEuMTc3MjYgYyAwLjE3MjAzNiwwLjA5Mzg1IDQuMjY1OTk0LDIuMjk4MzcgOC44MTQ0NDUxLDIuMjk4MzcgNC45Mjc3NjcsMCA4LjY3MDg5NCwtMi4yMTE4ODMgOC44Mjc4MiwtMi4zMDYwMTkgMC4xMTMwNzksLTAuMDY3ODUgMC4xODIyNjgsLTAuMTkwMDUxIDAuMTgyMjY3LC0wLjMyMTkyMyAwLC0zLjAzMTE5IC0wLjkyOTQ5NCwtNS44MDQ5MzYgLTIuNjE3MTk2LC03LjgxMDcxMiAtMS4xODA2MDMsLTEuNDAzMTM0IC0yLjY2MTkxOCwtMi4zNTk1MTYgLTQuMjk1Njk5LC0yLjc5OTc5MSA0LjY5OTExOCwtMi4yMzYyNTggMy4xMDIzMDYsLTkuMjg2MTcxNjIgLTIuMDk3MTkxLC05LjI4NjE3MTYyIC01LjE5OTQ5NzgsMCAtNi43OTYzMTAzLDcuMDQ5OTEzNjIgLTIuMDk3MTkyLDkuMjg2MTcxNjIgLTEuNjMzNzgyMSwwLjQ0MDI3NSAtMy4xMTUwOTcxLDEuMzk2Nzk4IC00LjI5NTY5OTEsMi43OTk3OTEgLTEuNjg3NzAzLDIuMDA1Nzc2IC0yLjYxNzE5Niw0Ljc3OTUyMiAtMi42MTcxOTYsNy44MTA3MTIgMS4yZS02LDAuMTM3Mzc4IDAuMDc1MDM5LDAuMjYzNzg1IDAuMTk1NjQxLDAuMzI5NTcyIHogTSA4LjA0MzkzMTksNS44MzA4NzgzIEMgOC4wNDM5MzA5LDIuMTUxNTIxIDEyLjQ5MjEwNywwLjMwOTU1ODExIDE1LjA5MzQ5MSwyLjkxMDk0MTEgMTcuNjk0ODc0LDUuNTEyMzI0MSAxNS44NTI5MTEsOS45NjA1MDA2IDEyLjE3MzU1NCw5Ljk2MDUgOS44OTM4OTkxLDkuOTU3OTEzNSA4LjA0NjUxODYsOC4xMTA1MzMyIDguMDQzOTMxOSw1LjgzMDg3ODMgWiBtIC0xLjY4ODc4Miw3LjY4OTQ5NzcgYyAxLjUyNDUzNSwtMS44MTE0NDkgMy41OTA2NjAxLC0yLjgwOTAzNSA1LjgxODQwNDEsLTIuODA5MDM1IDIuMjI3NzQ0LDAgNC4yOTM4NjksMC45OTc1ODYgNS44MTg0MDQsMi44MDkwMzUgMS41MzM2MzksMS44MjI1NzEgMi4zOTU5MzIsNC4zMzk4NTggMi40MzkxNTIsNy4xMDgzMDEgLTAuODAzMzUyLDAuNDM0ODc3IC00LjE0MTYzNiwyLjA5NjExMiAtOC4yNTc1NTYsMi4wOTYxMTIgLTMuODA2MjkyMSwwIC03LjM5MTA4NjEsLTEuNjcxMDQzIC04LjI1NzM2ODEsLTIuMTA0OTgxIDAuMDQ1MDUsLTIuNzY1MDE3IDAuOTA2OTY4LC01LjI3ODc4NSAyLjQzODk2NCwtNy4wOTk0MzIgelwiIC8+IDxwYXRoIGlkPVwicGF0aDM4MTZcIiBkPVwiTSAxMi4xNzM4MjggMC4zODg2NzE4OCBDIDkuMzE5ODUxMyAwLjM4ODY3MTg3IDcuMzc3MDk4OCAyLjM2NzIyODUgNi44NjUyMzQ0IDQuNjMwODU5NCBDIDYuNDIxODYwOCA2LjU5MTYwMTUgNy4xMTUzNTYyIDguNzY3NjExNyA4Ljk2NDg0MzggMTAuMTI2OTUzIEMgNy42MTQxMjQ5IDEwLjY3NzM3NiA2LjM1NTA1MTEgMTEuNDgwOTQ0IDUuMzQ5NjA5NCAxMi42NzU3ODEgQyAzLjU2MjkzMTcgMTQuNzk5MTg1IDIuNjAxNTYyNSAxNy43MDE0NzUgMi42MDE1NjI1IDIwLjg0NzY1NiBDIDIuNjAxNTY1NCAyMS4xODk4NjEgMi43ODk0Mjc2IDIxLjUwODAwMiAzLjA4OTg0MzggMjEuNjcxODc1IEMgMy4zMDQ0MDY4IDIxLjc4ODkyNSA3LjQ0MzYyMzkgMjQuMDM5MDYyIDEyLjE3MzgyOCAyNC4wMzkwNjIgQyAxNy4yNjk5MTggMjQuMDM5MDYyIDIxLjA4MzU2OCAyMS43NzY3ODYgMjEuMjkxMDE2IDIxLjY1MjM0NCBDIDIxLjU3MjgxIDIxLjQ4MzI2NiAyMS43NDYwOTcgMjEuMTc2MjgyIDIxLjc0NjA5NCAyMC44NDc2NTYgQyAyMS43NDYwOTQgMTcuNzAxNDc1IDIwLjc4Mjc3IDE0Ljc5OTE4NSAxOC45OTYwOTQgMTIuNjc1NzgxIEMgMTcuOTkwNDU1IDExLjQ4MDU5MSAxNi43MzM4MTggMTAuNjc1MzYyIDE1LjM4MjgxMiAxMC4xMjUgQyAxNy4yMzExMzIgOC43NjU1NTUyIDE3LjkyNTY3NSA2LjU5MTA3MDEgMTcuNDgyNDIyIDQuNjMwODU5NCBDIDE2Ljk3MDU1NyAyLjM2NzIyODUgMTUuMDI3ODA1IDAuMzg4NjcxODggMTIuMTczODI4IDAuMzg4NjcxODggeiBNIDEyLjc5Mjk2OSAyLjMwMDc4MTIgQyAxMy40NjYyNTMgMi40MTYxNzkyIDE0LjEyNTExMyAyLjczODM5NDEgMTQuNjk1MzEyIDMuMzA4NTkzOCBDIDE1LjgzNTcxMiA0LjQ0ODk5MzEgMTUuOTg1NjA0IDUuOTQ3MzU0OSAxNS40Njg3NSA3LjE5NTMxMjUgQyAxNC45NTE4OTYgOC40NDMyNzAxIDEzLjc4NjgyOCA5LjM5ODQzNzggMTIuMTczODI4IDkuMzk4NDM3NSBDIDEwLjE5NzcxOSA5LjM5NjE5NTQgOC42MDc3MTEgNy44MDYxODcgOC42MDU0Njg4IDUuODMwMDc4MSBDIDguNjA1NDY4MyA0LjIxNzA3ODUgOS41NjA2MzYyIDMuMDUyMDEwMiAxMC44MDg1OTQgMi41MzUxNTYyIEMgMTEuNDMyNTczIDIuMjc2NzI5MyAxMi4xMTk2ODUgMi4xODUzODMzIDEyLjc5Mjk2OSAyLjMwMDc4MTIgeiBNIDEyLjE3MzgyOCAxMS4yNzM0MzggQyAxNC4yMzM2NDcgMTEuMjczNDM4IDE2LjEzMzY3NCAxMi4xODUwODQgMTcuNTYyNSAxMy44ODI4MTIgQyAxOC45MzA2OSAxNS41MDg3NjUgMTkuNjk4MzQ3IDE3Ljc3Njk2OSAxOS44MDg1OTQgMjAuMjgzMjAzIEMgMTguODA3Mzk1IDIwLjgwMDIzNSAxNS44ODYxNTcgMjIuMTYyMTA5IDEyLjE3MzgyOCAyMi4xNjIxMDkgQyA4Ljc2MTQ2MzIgMjIuMTYyMTA5IDUuNjI0NTc1NCAyMC43ODcwNjkgNC41MzkwNjI1IDIwLjI2NTYyNSBDIDQuNjUyNTg5NiAxNy43NjY3MTcgNS40MjAzMzE1IDE1LjUwNDc5MSA2Ljc4NTE1NjIgMTMuODgyODEyIEMgOC4yMTM5ODI3IDEyLjE4NTA4NCAxMC4xMTQwMSAxMS4yNzM0MzggMTIuMTczODI4IDExLjI3MzQzOCB6IFwiIC8+IDwvc3ZnPmAsXHJcblxyXG4gIHBsYWNlczogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIj48cGF0aCBkPVwiTTYuNSAxMkM1LjEyMiAxMiA0IDEzLjEyMSA0IDE0LjVTNS4xMjIgMTcgNi41IDE3IDkgMTUuODc5IDkgMTQuNSA3Ljg3OCAxMiA2LjUgMTJtMCAzYy0uMjc1IDAtLjUtLjIyNS0uNS0uNXMuMjI1LS41LjUtLjUuNS4yMjUuNS41LS4yMjUuNS0uNS41TTE3LjUgMTJjLTEuMzc4IDAtMi41IDEuMTIxLTIuNSAyLjVzMS4xMjIgMi41IDIuNSAyLjUgMi41LTEuMTIxIDIuNS0yLjUtMS4xMjItMi41LTIuNS0yLjVtMCAzYy0uMjc1IDAtLjUtLjIyNS0uNS0uNXMuMjI1LS41LjUtLjUuNS4yMjUuNS41LS4yMjUuNS0uNS41XCIvPjxwYXRoIGQ9XCJNMjIuNDgyIDkuNDk0bC0xLjAzOS0uMzQ2TDIxLjQgOWguNmMuNTUyIDAgMS0uNDM5IDEtLjk5MiAwLS4wMDYtLjAwMy0uMDA4LS4wMDMtLjAwOEgyM2MwLTEtLjg4OS0yLTEuOTg0LTJoLS42NDJsLS43MzEtMS43MTdDMTkuMjYyIDMuMDEyIDE4LjA5MSAyIDE2Ljc2NCAySDcuMjM2QzUuOTA5IDIgNC43MzggMy4wMTIgNC4zNTcgNC4yODNMMy42MjYgNmgtLjY0MkMxLjg4OSA2IDEgNyAxIDhoLjAwM1MxIDguMDAyIDEgOC4wMDhDMSA4LjU2MSAxLjQ0OCA5IDIgOWguNmwtLjA0My4xNDgtMS4wMzkuMzQ2YTIuMDAxIDIuMDAxIDAgMCAwLTEuMzU5IDIuMDk3bC43NTEgNy41MDhhMSAxIDAgMCAwIC45OTQuOTAxSDN2MWMwIDEuMTAzLjg5NiAyIDIgMmgyYzEuMTA0IDAgMi0uODk3IDItMnYtMWg2djFjMCAxLjEwMy44OTYgMiAyIDJoMmMxLjEwNCAwIDItLjg5NyAyLTJ2LTFoMS4wOTZhLjk5OS45OTkgMCAwIDAgLjk5NC0uOTAxbC43NTEtNy41MDhhMi4wMDEgMi4wMDEgMCAwIDAtMS4zNTktMi4wOTdNNi4yNzMgNC44NTdDNi40MDIgNC40MyA2Ljc4OCA0IDcuMjM2IDRoOS41MjdjLjQ0OCAwIC44MzQuNDMuOTYzLjg1N0wxOS4zMTMgOUg0LjY4OGwxLjU4NS00LjE0M3pNNyAyMUg1di0xaDJ2MXptMTIgMGgtMnYtMWgydjF6bTIuMTg5LTNIMi44MTFsLS42NjItNi42MDdMMyAxMWgxOGwuODUyLjM5M0wyMS4xODkgMTh6XCIvPjwvc3ZnPmAsXHJcblxyXG4gIHJlY2VudDogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIj48cGF0aCBkPVwiTTEzIDRoLTJsLS4wMDEgN0g5djJoMnYyaDJ2LTJoNHYtMmgtNHpcIi8+PHBhdGggZD1cIk0xMiAwQzUuMzczIDAgMCA1LjM3MyAwIDEyczUuMzczIDEyIDEyIDEyIDEyLTUuMzczIDEyLTEyUzE4LjYyNyAwIDEyIDBtMCAyMkM2LjQ4NiAyMiAyIDE3LjUxNCAyIDEyUzYuNDg2IDIgMTIgMnMxMCA0LjQ4NiAxMCAxMC00LjQ4NiAxMC0xMCAxMFwiLz48L3N2Zz5gLFxyXG5cclxuICBzeW1ib2xzOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjxwYXRoIGQ9XCJNMCAwaDExdjJIMHpNNCAxMWgzVjZoNFY0SDB2Mmg0ek0xNS41IDE3YzEuMzgxIDAgMi41LTEuMTE2IDIuNS0yLjQ5M3MtMS4xMTktMi40OTMtMi41LTIuNDkzUzEzIDEzLjEzIDEzIDE0LjUwNyAxNC4xMTkgMTcgMTUuNSAxN20wLTIuOTg2Yy4yNzYgMCAuNS4yMjIuNS40OTMgMCAuMjcyLS4yMjQuNDkzLS41LjQ5M3MtLjUtLjIyMS0uNS0uNDkzLjIyNC0uNDkzLjUtLjQ5M00yMS41IDE5LjAxNGMtMS4zODEgMC0yLjUgMS4xMTYtMi41IDIuNDkzUzIwLjExOSAyNCAyMS41IDI0czIuNS0xLjExNiAyLjUtMi40OTMtMS4xMTktMi40OTMtMi41LTIuNDkzbTAgMi45ODZhLjQ5Ny40OTcgMCAwIDEtLjUtLjQ5M2MwLS4yNzEuMjI0LS40OTMuNS0uNDkzcy41LjIyMi41LjQ5M2EuNDk3LjQ5NyAwIDAgMS0uNS40OTNNMjIgMTNsLTkgOSAxLjUxMyAxLjUgOC45OS05LjAwOXpNMTcgMTFjMi4yMDkgMCA0LTEuMTE5IDQtMi41VjJzLjk4NS0uMTYxIDEuNDk4Ljk0OUMyMy4wMSA0LjA1NSAyMyA2IDIzIDZzMS0xLjExOSAxLTMuMTM1QzI0LS4wMiAyMSAwIDIxIDBoLTJ2Ni4zNDdBNS44NTMgNS44NTMgMCAwIDAgMTcgNmMtMi4yMDkgMC00IDEuMTE5LTQgMi41czEuNzkxIDIuNSA0IDIuNU0xMC4yOTcgMjAuNDgybC0xLjQ3NS0xLjU4NWE0Ny41NCA0Ny41NCAwIDAgMS0xLjQ0MiAxLjEyOWMtLjMwNy0uMjg4LS45ODktMS4wMTYtMi4wNDUtMi4xODMuOTAyLS44MzYgMS40NzktMS40NjYgMS43MjktMS44OTJzLjM3Ni0uODcxLjM3Ni0xLjMzNmMwLS41OTItLjI3My0xLjE3OC0uODE4LTEuNzU5LS41NDYtLjU4MS0xLjMyOS0uODcxLTIuMzQ5LS44NzEtMS4wMDggMC0xLjc5LjI5My0yLjM0NC44NzktLjU1Ni41ODctLjgzMiAxLjE4MS0uODMyIDEuNzg0IDAgLjgxMy40MTkgMS43NDggMS4yNTYgMi44MDUtLjg0Ny42MTQtMS40NDQgMS4yMDgtMS43OTQgMS43ODRhMy40NjUgMy40NjUgMCAwIDAtLjUyMyAxLjgzM2MwIC44NTcuMzA4IDEuNTYuOTI0IDIuMTA3LjYxNi41NDkgMS40MjMuODIzIDIuNDIuODIzIDEuMTczIDAgMi40NDQtLjM3OSAzLjgxMy0xLjEzN0w4LjIzNSAyNGgyLjgxOWwtMi4wOS0yLjM4MyAxLjMzMy0xLjEzNXptLTYuNzM2LTYuMzg5YTEuMDIgMS4wMiAwIDAgMSAuNzMtLjI4NmMuMzEgMCAuNTU5LjA4NS43NDcuMjU0YS44NDkuODQ5IDAgMCAxIC4yODMuNjU5YzAgLjUxOC0uNDE5IDEuMTEyLTEuMjU3IDEuNzg0LS41MzYtLjY1MS0uODA1LTEuMjMxLS44MDUtMS43NDJhLjkwMS45MDEgMCAwIDEgLjMwMi0uNjY5TTMuNzQgMjJjLS40MjcgMC0uNzc4LS4xMTYtMS4wNTctLjM0OS0uMjc5LS4yMzItLjQxOC0uNDg3LS40MTgtLjc2NiAwLS41OTQuNTA5LTEuMjg4IDEuNTI3LTIuMDgzLjk2OCAxLjEzNCAxLjcxNyAxLjk0NiAyLjI0OCAyLjQzOC0uOTIxLjUwNy0xLjY4Ni43Ni0yLjMuNzZcIi8+PC9zdmc+YCxcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgU1ZHc1xyXG4iLCJjb25zdCBtYXBwaW5nID0ge1xyXG4gIG5hbWU6ICdhJyxcclxuICB1bmlmaWVkOiAnYicsXHJcbiAgbm9uX3F1YWxpZmllZDogJ2MnLFxyXG4gIGhhc19pbWdfYXBwbGU6ICdkJyxcclxuICBoYXNfaW1nX2dvb2dsZTogJ2UnLFxyXG4gIGhhc19pbWdfdHdpdHRlcjogJ2YnLFxyXG4gIGhhc19pbWdfZmFjZWJvb2s6ICdoJyxcclxuICBrZXl3b3JkczogJ2onLFxyXG4gIHNoZWV0OiAnaycsXHJcbiAgZW1vdGljb25zOiAnbCcsXHJcbiAgdGV4dDogJ20nLFxyXG4gIHNob3J0X25hbWVzOiAnbicsXHJcbiAgYWRkZWRfaW46ICdvJyxcclxufVxyXG5cclxuY29uc3QgYnVpbGRTZWFyY2ggPSAoZW1vamkpID0+IHtcclxuICBjb25zdCBzZWFyY2ggPSBbXVxyXG5cclxuICB2YXIgYWRkVG9TZWFyY2ggPSAoc3RyaW5ncywgc3BsaXQpID0+IHtcclxuICAgIGlmICghc3RyaW5ncykge1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuXHJcbiAgICA7KEFycmF5LmlzQXJyYXkoc3RyaW5ncykgPyBzdHJpbmdzIDogW3N0cmluZ3NdKS5mb3JFYWNoKChzdHJpbmcpID0+IHtcclxuICAgICAgOyhzcGxpdCA/IHN0cmluZy5zcGxpdCgvWy18X3xcXHNdKy8pIDogW3N0cmluZ10pLmZvckVhY2goKHMpID0+IHtcclxuICAgICAgICBzID0gcy50b0xvd2VyQ2FzZSgpXHJcblxyXG4gICAgICAgIGlmIChzZWFyY2guaW5kZXhPZihzKSA9PSAtMSkge1xyXG4gICAgICAgICAgc2VhcmNoLnB1c2gocylcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgYWRkVG9TZWFyY2goZW1vamkuc2hvcnRfbmFtZXMsIHRydWUpXHJcbiAgYWRkVG9TZWFyY2goZW1vamkubmFtZSwgdHJ1ZSlcclxuICBhZGRUb1NlYXJjaChlbW9qaS5rZXl3b3JkcywgZmFsc2UpXHJcbiAgYWRkVG9TZWFyY2goZW1vamkuZW1vdGljb25zLCBmYWxzZSlcclxuXHJcbiAgcmV0dXJuIHNlYXJjaC5qb2luKCcsJylcclxufVxyXG5cclxuZnVuY3Rpb24gZGVlcEZyZWV6ZShvYmplY3QpIHtcclxuICAvLyBSZXRyaWV2ZSB0aGUgcHJvcGVydHkgbmFtZXMgZGVmaW5lZCBvbiBvYmplY3RcclxuICB2YXIgcHJvcE5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KVxyXG5cclxuICAvLyBGcmVlemUgcHJvcGVydGllcyBiZWZvcmUgZnJlZXppbmcgc2VsZlxyXG4gIGZvciAobGV0IG5hbWUgb2YgcHJvcE5hbWVzKSB7XHJcbiAgICBsZXQgdmFsdWUgPSBvYmplY3RbbmFtZV1cclxuICAgIG9iamVjdFtuYW1lXSA9XHJcbiAgICAgIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgPyBkZWVwRnJlZXplKHZhbHVlKSA6IHZhbHVlXHJcbiAgfVxyXG4gIHJldHVybiBPYmplY3QuZnJlZXplKG9iamVjdClcclxufVxyXG5cclxuY29uc3QgdW5jb21wcmVzcyA9IChkYXRhKSA9PiB7XHJcbiAgaWYgKCFkYXRhLmNvbXByZXNzZWQpIHtcclxuICAgIHJldHVybiBkYXRhXHJcbiAgfVxyXG4gIGRhdGEuY29tcHJlc3NlZCA9IGZhbHNlXHJcblxyXG4gIGZvciAobGV0IGlkIGluIGRhdGEuZW1vamlzKSB7XHJcbiAgICBsZXQgZW1vamkgPSBkYXRhLmVtb2ppc1tpZF1cclxuXHJcbiAgICBmb3IgKGxldCBrZXkgaW4gbWFwcGluZykge1xyXG4gICAgICBlbW9qaVtrZXldID0gZW1vamlbbWFwcGluZ1trZXldXVxyXG4gICAgICBkZWxldGUgZW1vamlbbWFwcGluZ1trZXldXVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghZW1vamkuc2hvcnRfbmFtZXMpIGVtb2ppLnNob3J0X25hbWVzID0gW11cclxuICAgIGVtb2ppLnNob3J0X25hbWVzLnVuc2hpZnQoaWQpXHJcblxyXG4gICAgZW1vamkuc2hlZXRfeCA9IGVtb2ppLnNoZWV0WzBdXHJcbiAgICBlbW9qaS5zaGVldF95ID0gZW1vamkuc2hlZXRbMV1cclxuICAgIGRlbGV0ZSBlbW9qaS5zaGVldFxyXG5cclxuICAgIGlmICghZW1vamkudGV4dCkgZW1vamkudGV4dCA9ICcnXHJcblxyXG4gICAgaWYgKCFlbW9qaS5hZGRlZF9pbikgZW1vamkuYWRkZWRfaW4gPSA2XHJcbiAgICBlbW9qaS5hZGRlZF9pbiA9IGVtb2ppLmFkZGVkX2luLnRvRml4ZWQoMSlcclxuXHJcbiAgICBlbW9qaS5zZWFyY2ggPSBidWlsZFNlYXJjaChlbW9qaSlcclxuICB9XHJcbiAgZGF0YSA9IGRlZXBGcmVlemUoZGF0YSlcclxuICByZXR1cm4gZGF0YVxyXG59XHJcblxyXG5leHBvcnQgeyBidWlsZFNlYXJjaCwgdW5jb21wcmVzcyB9XHJcbiIsImltcG9ydCB7IGludGVyc2VjdCwgdW5pZmllZFRvTmF0aXZlIH0gZnJvbSAnLi9pbmRleCdcclxuaW1wb3J0IHsgdW5jb21wcmVzcywgYnVpbGRTZWFyY2ggfSBmcm9tICcuL2RhdGEnXHJcbmltcG9ydCBmcmVxdWVudGx5IGZyb20gJy4vZnJlcXVlbnRseSdcclxuXHJcbmNvbnN0IFNIRUVUX0NPTFVNTlMgPSA2MVxyXG5jb25zdCBDT0xPTlNfUkVHRVggPSAvXig/OlxcOihbXlxcOl0rKVxcOikoPzpcXDpza2luLXRvbmUtKFxcZClcXDopPyQvXHJcbi8vIFNraW4gdG9uZXNcclxuY29uc3QgU0tJTlMgPSBbJzFGM0ZBJywgJzFGM0ZCJywgJzFGM0ZDJywgJzFGM0ZEJywgJzFGM0ZFJywgJzFGM0ZGJ11cclxuXHJcbi8qKlxyXG4gKiBFbW9qaSBkYXRhIHN0cnVjdHVyZTpcclxuICoge1xyXG4gKiAgICBcImNvbXByZXNzZWRcIjogZmFsc2UsXHJcbiAqICAgIFwiYWxpYXNlc1wiOiB7XHJcbiAqICAgICAgY29sbGlzaW9uOiBcImJvb21cIlxyXG4gKiAgICAgIGNvb2tpbmc6IFwiZnJpZWRfZWdnXCJcclxuICogICAgICBlbnZlbG9wZTogXCJlbWFpbFwiXHJcbiAqICAgICAgZmFjZV93aXRoX2Zpbmdlcl9jb3ZlcmluZ19jbG9zZWRfbGlwczogXCJzaHVzaGluZ19mYWNlXCJcclxuICogICAgICAuLi5cclxuICogICAgfSxcclxuICogICAgXCJjYXRlZ29yaWVzXCI6IFsge1xyXG4gKiAgICAgIGlkOiBcInBlb3BsZVwiLFxyXG4gKiAgICAgIG5hbWU6IFwiU21pbGV5cyAmIEVtb3Rpb25cIixcclxuICogICAgICBlbW9qaXM6IFsgXCJncmlubmluZ1wiLCBcImdyaW5cIiwgXCJqb3lcIiwgLi4uIF1cclxuICogICAgfSwge1xyXG4gKiAgICAgIGlkOiBcIm5hdHVyZVwiLFxyXG4gKiAgICAgIG5hbWU6IFwiQW5pbWFscyAmIE5hdHVyZVwiLFxyXG4gKiAgICAgIGVtb2ppczogWyBcIm1vbmtleV9mYWNlXCIsIFwibW9uZXlcIiwgXCJnb3JpbGxhXCIsIC4uLiBdXHJcbiAqICAgIH0sXHJcbiAqICAgIC4uLlxyXG4gKiAgICBdLFxyXG4gKiAgICBcImVtb2ppc1wiOiBbXHJcbiAqICAgICAgc21pbGV5OiB7XHJcbiAqICAgICAgICBhZGRlZF9pbjogXCI2LjBcIixcclxuICogICAgICAgIGVtb3RpY29uczogW1wiPSlcIiwgXCI9LSlcIl0sXHJcbiAqICAgICAgICBoYXNfaW1nX2FwcGxlOiB0cnVlLFxyXG4gKiAgICAgICAgaGFzX2ltZ19mYWNlYm9vazogdHJ1ZSxcclxuICogICAgICAgIGhhc19pbWdfZ29vZ2xlOiB0cnVlLFxyXG4gKiAgICAgICAgaGFzX2ltZ190d2l0dGVyOiB0cnVlLFxyXG4gKiAgICAgICAga2V5d29yZHM6IFtcImZhY2VcIiwgXCJoYXBweVwiLCBcImpveVwiLCBcImhhaGFcIiwgXCI6RFwiLCBcIjopXCIsIFwic21pbGVcIiwgXCJmdW5ueVwiXSxcclxuICogICAgICAgIG5hbWU6IFwiU21pbGluZyBGYWNlIHdpdGggT3BlbiBNb3V0aFwiLFxyXG4gKiAgICAgICAgbm9uX3F1YWxpZmllZDogdW5kZWZpbmVkLFxyXG4gKiAgICAgICAgc2VhcmNoOiBcInNtaWxleSxzbWlsaW5nLGZhY2Usd2l0aCxvcGVuLG1vdXRoLGhhcHB5LGpveSxoYWhhLDpkLDopLHNtaWxlLGZ1bm55LD0pLD0tKVwiLFxyXG4gKiAgICAgICAgc2hlZXRfeDogMzAsXHJcbiAqICAgICAgICBzaGVldF95OiAyNyxcclxuICogICAgICAgIHNob3J0X25hbWVzOiBbXCJzbWlsZXlcIl0sXHJcbiAqICAgICAgICB0ZXh0OiBcIjopXCIsXHJcbiAqICAgICAgICB1bmlmaWVkOiBcIjFGNjAzXCIsXHJcbiAqICAgICAgfSwge1xyXG4gKiAgICAgICsxOiB7ICAgIC8vIGVtb2ppIHdpdGggc2tpbl92YXJpYXRpb25zXHJcbiAqICAgICAgICAgIC4uLiwgLy8gYWxsIHRoZSByZWd1bGFyIGZpZWxkcyBhcmUgcHJlc2VudFxyXG4gKiAgICAgICAgICBuYW1lOiBcIlRodW1icyBVcCBTaWduXCIsXHJcbiAqICAgICAgICAgIHNob3J0X25hbWVzOiAoMikgW1wiKzFcIiwgXCJ0aHVtYnN1cFwiXSxcclxuICogICAgICAgICAgc2tpbl92YXJpYXRpb25zOiB7XHJcbiAqICAgICAgICAgICAgMUYzRkI6ICAgICAgICAgICAgIC8vIGVhY2ggdmFyaWF0aW9uIGhhcyBhZGRpdGlvbmFsIHNldCBvZiBmaWVsZHM6XHJcbiAqICAgICAgICAgICAgICBhZGRlZF9pbjogXCI4LjBcIixcclxuICogICAgICAgICAgICAgIGhhc19pbWdfYXBwbGU6IHRydWUsXHJcbiAqICAgICAgICAgICAgICBoYXNfaW1nX2ZhY2Vib29rOiB0cnVlLFxyXG4gKiAgICAgICAgICAgICAgaGFzX2ltZ19nb29nbGU6IHRydWUsXHJcbiAqICAgICAgICAgICAgICBoYXNfaW1nX3R3aXR0ZXI6IHRydWUsXHJcbiAqICAgICAgICAgICAgICBpbWFnZTogXCIxZjQ0ZC0xZjNmYi5wbmdcIixcclxuICogICAgICAgICAgICAgIG5vbl9xdWFsaWZpZWQ6IG51bGwsXHJcbiAqICAgICAgICAgICAgICBzaGVldF94OiAxNCxcclxuICogICAgICAgICAgICAgIHNoZWV0X3k6IDUwLFxyXG4gKiAgICAgICAgICAgICAgdW5pZmllZDogXCIxRjQ0RC0xRjNGQlwiLFxyXG4gKiAgICAgICAgICAgIDFGM0ZCOiB74oCmfSxcclxuICogICAgICAgICAgICAxRjNGQzoge+KApn0sXHJcbiAqICAgICAgICAgICAgMUYzRkQ6IHvigKZ9LFxyXG4gKiAgICAgICAgICAgIDFGM0ZFOiB74oCmfSxcclxuICogICAgICAgICAgICAxRjNGRjoge+KApn1cclxuICogICAgICAgICAgICB9LFxyXG4gKiAgICAgICAgICAuLi5cclxuICogICAgICB9LFxyXG4gKiAgICAgIGE6IHsgIC8vIGVtb2ppIHdpdGggbm9uX3F1YWxpZmllZCBmaWVsZCBzZXRcclxuICogICAgICAgIGFkZGVkX2luOiBcIjYuMFwiLFxyXG4gKiAgICAgICAgZW1vdGljb25zOiB1bmRlZmluZWQsXHJcbiAqICAgICAgICBoYXNfaW1nX2FwcGxlOiB0cnVlLFxyXG4gKiAgICAgICAgLi4uXHJcbiAqICAgICAgICBub25fcXVhbGlmaWVkOiBcIjFGMTcwXCIsXHJcbiAqICAgICAgICB1bmlmaWVkOiBcIjFGMTcwLUZFMEZcIixcclxuICogICAgIH0sXHJcbiAqICAgICAuLi5cclxuICogICBdXHJcbiAqIH1cclxuICovXHJcblxyXG4vKipcclxuICogV3JhcHMgcmF3IGphc29uIGVtb2ppIGRhdGEsIHNlcnZlcyBhcyBkYXRhIHNvdXJjZSBmb3JcclxuICogZW1vamkgcGlja2VyIGNvbXBvbmVudHMuXHJcbiAqXHJcbiAqIFVzYWdlOlxyXG4gKlxyXG4gKiAgIGltcG9ydCBkYXRhIGZyb20gJy4uL2RhdGEvYWxsLmpzb24nXHJcbiAqICAgbGV0IGluZGV4ID0gbmV3IEVtb2ppSW5kZXgoZGF0YSlcclxuICpcclxuICovXHJcbmV4cG9ydCBjbGFzcyBFbW9qaUluZGV4IHtcclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3Rvci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBkYXRhIC0gUmF3IGpzb24gZGF0YSwgc2VlIHRoZSBzdHJ1Y3R1cmUgYWJvdmUuXHJcbiAgICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnMgLSBhZGRpdGlvbmFsIG9wdGlvbnMsIGFzIGFuIG9iamVjdDpcclxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlbW9qaXNUb1Nob3dGaWx0ZXIgLSBvcHRpb25hbCwgZnVuY3Rpb24gdG8gZmlsdGVyIG91dFxyXG4gICAqICAgc29tZSBlbW9qaXMsIGZ1bmN0aW9uKGVtb2ppKSB7IHJldHVybiB0cnVlfGZhbHNlIH1cclxuICAgKiAgIHdoZXJlIGBlbW9qaWAgaXMgYW4gcmF3IGVtb2ppIG9iamVjdCwgc2VlIGRhdGEuZW1vamlzIGFib3ZlLlxyXG4gICAqIEBwYXJhbSB7QXJyYXl9IGluY2x1ZGUgLSBvcHRpb25hbCwgYSBsaXN0IG9mIGNhdGVnb3J5IGlkcyB0byBpbmNsdWRlLlxyXG4gICAqIEBwYXJhbSB7QXJyYXl9IGV4Y2x1ZGUgLSBvcHRpb25hbCwgYSBsaXN0IG9mIGNhdGVnb3J5IGlkcyB0byBleGNsdWRlLlxyXG4gICAqIEBwYXJhbSB7QXJyYXl9IGN1c3RvbSAtIG9wdGlvbmFsLCBhIGxpc3QgY3VzdG9tIGVtb2ppcywgZWFjaCBlbW9qaSBpc1xyXG4gICAqICAgYW4gb2JqZWN0LCBzZWUgZGF0YS5lbW9qaXMgYWJvdmUgZm9yIGV4YW1wbGVzLlxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgZGF0YSxcclxuICAgIHtcclxuICAgICAgZW1vamlzVG9TaG93RmlsdGVyLFxyXG4gICAgICBpbmNsdWRlLFxyXG4gICAgICBleGNsdWRlLFxyXG4gICAgICBjdXN0b20sXHJcbiAgICAgIHJlY2VudCxcclxuICAgICAgcmVjZW50TGVuZ3RoID0gMjAsXHJcbiAgICB9ID0ge30sXHJcbiAgKSB7XHJcbiAgICB0aGlzLl9kYXRhID0gdW5jb21wcmVzcyhkYXRhKVxyXG4gICAgLy8gQ2FsbGJhY2sgdG8gZXhjbHVkZSBzcGVjaWZpYyBlbW9qaXNcclxuICAgIHRoaXMuX2Vtb2ppc0ZpbHRlciA9IGVtb2ppc1RvU2hvd0ZpbHRlciB8fCBudWxsXHJcbiAgICAvLyBDYXRlZ29yaWVzIHRvIGluY2x1ZGUgLyBleGNsdWRlXHJcbiAgICB0aGlzLl9pbmNsdWRlID0gaW5jbHVkZSB8fCBudWxsXHJcbiAgICB0aGlzLl9leGNsdWRlID0gZXhjbHVkZSB8fCBudWxsXHJcbiAgICAvLyBDdXN0b20gZW1vamlzXHJcbiAgICB0aGlzLl9jdXN0b20gPSBjdXN0b20gfHwgW11cclxuICAgIC8vIFJlY2VudCBlbW9qaXNcclxuICAgIC8vIFRPRE86IG1ha2UgcGFyYW1ldGVyIGNvbmZpZ3VyYWJsZVxyXG4gICAgdGhpcy5fcmVjZW50ID0gcmVjZW50IHx8IGZyZXF1ZW50bHkuZ2V0KHJlY2VudExlbmd0aClcclxuXHJcbiAgICB0aGlzLl9lbW9qaXMgPSB7fVxyXG4gICAgdGhpcy5fbmF0aXZlRW1vamlzID0ge31cclxuICAgIHRoaXMuX2Vtb3RpY29ucyA9IHt9XHJcblxyXG4gICAgdGhpcy5fY2F0ZWdvcmllcyA9IFtdXHJcbiAgICB0aGlzLl9yZWNlbnRDYXRlZ29yeSA9IHsgaWQ6ICdyZWNlbnQnLCBuYW1lOiAnUmVjZW50JywgZW1vamlzOiBbXSB9XHJcbiAgICB0aGlzLl9jdXN0b21DYXRlZ29yeSA9IHsgaWQ6ICdjdXN0b20nLCBuYW1lOiAnQ3VzdG9tJywgZW1vamlzOiBbXSB9XHJcbiAgICB0aGlzLl9zZWFyY2hJbmRleCA9IHt9XHJcbiAgICB0aGlzLmJ1aWxkSW5kZXgoKVxyXG4gICAgT2JqZWN0LmZyZWV6ZSh0aGlzKVxyXG4gIH1cclxuXHJcbiAgYnVpbGRJbmRleCgpIHtcclxuICAgIGxldCBhbGxDYXRlZ29yaWVzID0gdGhpcy5fZGF0YS5jYXRlZ29yaWVzXHJcblxyXG4gICAgaWYgKHRoaXMuX2luY2x1ZGUpIHtcclxuICAgICAgLy8gUmVtb3ZlIGNhdGVnb3JpZXMgdGhhdCBhcmUgbm90IGluIHRoZSBpbmNsdWRlIGxpc3QuXHJcbiAgICAgIGFsbENhdGVnb3JpZXMgPSBhbGxDYXRlZ29yaWVzLmZpbHRlcigoaXRlbSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9pbmNsdWRlLmluY2x1ZGVzKGl0ZW0uaWQpXHJcbiAgICAgIH0pXHJcbiAgICAgIC8vIFNvcnQgY2F0ZWdvcmllcyBhY2NvcmRpbmcgdG8gdGhlIGluY2x1ZGUgbGlzdC5cclxuICAgICAgYWxsQ2F0ZWdvcmllcyA9IGFsbENhdGVnb3JpZXMuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgIGNvbnN0IGluZGV4QSA9IHRoaXMuX2luY2x1ZGUuaW5kZXhPZihhLmlkKVxyXG4gICAgICAgIGNvbnN0IGluZGV4QiA9IHRoaXMuX2luY2x1ZGUuaW5kZXhPZihiLmlkKVxyXG4gICAgICAgIGlmIChpbmRleEEgPCBpbmRleEIpIHtcclxuICAgICAgICAgIHJldHVybiAtMVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5kZXhBID4gaW5kZXhCKSB7XHJcbiAgICAgICAgICByZXR1cm4gMVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gMFxyXG4gICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIGFsbENhdGVnb3JpZXMuZm9yRWFjaCgoY2F0ZWdvcnlEYXRhKSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5pc0NhdGVnb3J5TmVlZGVkKGNhdGVnb3J5RGF0YS5pZCkpIHtcclxuICAgICAgICByZXR1cm5cclxuICAgICAgfVxyXG4gICAgICBsZXQgY2F0ZWdvcnkgPSB7XHJcbiAgICAgICAgaWQ6IGNhdGVnb3J5RGF0YS5pZCxcclxuICAgICAgICBuYW1lOiBjYXRlZ29yeURhdGEubmFtZSxcclxuICAgICAgICBlbW9qaXM6IFtdLFxyXG4gICAgICB9XHJcbiAgICAgIGNhdGVnb3J5RGF0YS5lbW9qaXMuZm9yRWFjaCgoZW1vamlJZCkgPT4ge1xyXG4gICAgICAgIGxldCBlbW9qaSA9IHRoaXMuYWRkRW1vamkoZW1vamlJZClcclxuICAgICAgICBpZiAoZW1vamkpIHtcclxuICAgICAgICAgIGNhdGVnb3J5LmVtb2ppcy5wdXNoKGVtb2ppKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICAgaWYgKGNhdGVnb3J5LmVtb2ppcy5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLl9jYXRlZ29yaWVzLnB1c2goY2F0ZWdvcnkpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gICAgaWYgKHRoaXMuaXNDYXRlZ29yeU5lZWRlZCgnY3VzdG9tJykpIHtcclxuICAgICAgaWYgKHRoaXMuX2N1c3RvbS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgZm9yIChsZXQgY3VzdG9tRW1vamkgb2YgdGhpcy5fY3VzdG9tKSB7XHJcbiAgICAgICAgICB0aGlzLmFkZEN1c3RvbUVtb2ppKGN1c3RvbUVtb2ppKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5fY3VzdG9tQ2F0ZWdvcnkuZW1vamlzLmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMuX2NhdGVnb3JpZXMucHVzaCh0aGlzLl9jdXN0b21DYXRlZ29yeSlcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlzQ2F0ZWdvcnlOZWVkZWQoJ3JlY2VudCcpKSB7XHJcbiAgICAgIGlmICh0aGlzLl9yZWNlbnQubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5fcmVjZW50Lm1hcCgoaWQpID0+IHtcclxuICAgICAgICAgIGZvciAobGV0IGN1c3RvbUVtb2ppIG9mIHRoaXMuX2N1c3RvbUNhdGVnb3J5LmVtb2ppcykge1xyXG4gICAgICAgICAgICBpZiAoY3VzdG9tRW1vamkuaWQgPT09IGlkKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5fcmVjZW50Q2F0ZWdvcnkuZW1vamlzLnB1c2goY3VzdG9tRW1vamkpXHJcbiAgICAgICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLmhhc0Vtb2ppKGlkKSkge1xyXG4gICAgICAgICAgICB0aGlzLl9yZWNlbnRDYXRlZ29yeS5lbW9qaXMucHVzaCh0aGlzLmVtb2ppKGlkKSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVyblxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgICAgLy8gQWRkIHJlY2VudCBjYXRlZ29yeSB0byB0aGUgdG9wXHJcbiAgICAgIGlmICh0aGlzLl9yZWNlbnRDYXRlZ29yeS5lbW9qaXMubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5fY2F0ZWdvcmllcy51bnNoaWZ0KHRoaXMuX3JlY2VudENhdGVnb3J5KVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGaW5kIHRoZSBlbW9qaSBmcm9tIHRoZSBzdHJpbmdcclxuICAgKi9cclxuICBmaW5kRW1vamkoZW1vamksIHNraW4pIHtcclxuICAgIC8vIDEuIFBhcnNlIGFzIDplbW9qaV9uYW1lOnNraW4tdG9uZS14eDpcclxuICAgIGxldCBtYXRjaGVzID0gZW1vamkubWF0Y2goQ09MT05TX1JFR0VYKVxyXG5cclxuICAgIGlmIChtYXRjaGVzKSB7XHJcbiAgICAgIGVtb2ppID0gbWF0Y2hlc1sxXVxyXG4gICAgICBpZiAobWF0Y2hlc1syXSkge1xyXG4gICAgICAgIHNraW4gPSBwYXJzZUludChtYXRjaGVzWzJdLCAxMClcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIDIuIENoZWNrIGlmIHRoZSBzcGVjaWZpZWQgZW1vamkgaXMgYW4gYWxpYXNcclxuICAgIGlmICh0aGlzLl9kYXRhLmFsaWFzZXMuaGFzT3duUHJvcGVydHkoZW1vamkpKSB7XHJcbiAgICAgIGVtb2ppID0gdGhpcy5fZGF0YS5hbGlhc2VzW2Vtb2ppXVxyXG4gICAgfVxyXG5cclxuICAgIC8vIDMuIENoZWNrIGlmIHdlIGhhdmUgdGhlIHNwZWNpZmllZCBlbW9qaVxyXG4gICAgaWYgKHRoaXMuX2Vtb2ppcy5oYXNPd25Qcm9wZXJ0eShlbW9qaSkpIHtcclxuICAgICAgbGV0IGVtb2ppT2JqZWN0ID0gdGhpcy5fZW1vamlzW2Vtb2ppXVxyXG4gICAgICBpZiAoc2tpbikge1xyXG4gICAgICAgIHJldHVybiBlbW9qaU9iamVjdC5nZXRTa2luKHNraW4pXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGVtb2ppT2JqZWN0XHJcbiAgICB9XHJcblxyXG4gICAgLy8gNC4gQ2hlY2sgaWYgd2UgaGF2ZSB0aGUgc3BlY2lmaWVkIG5hdGl2ZSBlbW9qaVxyXG4gICAgaWYgKHRoaXMuX25hdGl2ZUVtb2ppcy5oYXNPd25Qcm9wZXJ0eShlbW9qaSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX25hdGl2ZUVtb2ppc1tlbW9qaV1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsXHJcbiAgfVxyXG5cclxuICBjYXRlZ29yaWVzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NhdGVnb3JpZXNcclxuICB9XHJcblxyXG4gIGVtb2ppKGVtb2ppSWQpIHtcclxuICAgIGlmICh0aGlzLl9kYXRhLmFsaWFzZXMuaGFzT3duUHJvcGVydHkoZW1vamlJZCkpIHtcclxuICAgICAgZW1vamlJZCA9IHRoaXMuX2RhdGEuYWxpYXNlc1tlbW9qaUlkXVxyXG4gICAgfVxyXG4gICAgbGV0IGVtb2ppID0gdGhpcy5fZW1vamlzW2Vtb2ppSWRdXHJcbiAgICBpZiAoIWVtb2ppKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2FuIG5vdCBmaW5kIGVtb2ppIGJ5IGlkOiAnICsgZW1vamlJZClcclxuICAgIH1cclxuICAgIHJldHVybiBlbW9qaVxyXG4gIH1cclxuXHJcbiAgZmlyc3RFbW9qaSgpIHtcclxuICAgIGxldCBlbW9qaSA9IHRoaXMuX2Vtb2ppc1tPYmplY3Qua2V5cyh0aGlzLl9lbW9qaXMpWzBdXVxyXG4gICAgaWYgKCFlbW9qaSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NhbiBub3QgZ2V0IGZpcnN0IGVtb2ppJylcclxuICAgIH1cclxuICAgIHJldHVybiBlbW9qaVxyXG4gIH1cclxuXHJcbiAgaGFzRW1vamkoZW1vamlJZCkge1xyXG4gICAgaWYgKHRoaXMuX2RhdGEuYWxpYXNlcy5oYXNPd25Qcm9wZXJ0eShlbW9qaUlkKSkge1xyXG4gICAgICBlbW9qaUlkID0gdGhpcy5fZGF0YS5hbGlhc2VzW2Vtb2ppSWRdXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5fZW1vamlzW2Vtb2ppSWRdKSB7XHJcbiAgICAgIHJldHVybiB0cnVlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2VcclxuICB9XHJcblxyXG4gIG5hdGl2ZUVtb2ppKHVuaWNvZGVFbW9qaSkge1xyXG4gICAgaWYgKHRoaXMuX25hdGl2ZUVtb2ppcy5oYXNPd25Qcm9wZXJ0eSh1bmljb2RlRW1vamkpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9uYXRpdmVFbW9qaXNbdW5pY29kZUVtb2ppXVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGxcclxuICB9XHJcblxyXG4gIHNlYXJjaCh2YWx1ZSwgbWF4UmVzdWx0cykge1xyXG4gICAgbWF4UmVzdWx0cyB8fCAobWF4UmVzdWx0cyA9IDc1KVxyXG4gICAgaWYgKCF2YWx1ZS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIG51bGxcclxuICAgIH1cclxuICAgIGlmICh2YWx1ZSA9PSAnLScgfHwgdmFsdWUgPT0gJy0xJykge1xyXG4gICAgICByZXR1cm4gW3RoaXMuZW1vamkoJy0xJyldXHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHZhbHVlcyA9IHZhbHVlLnRvTG93ZXJDYXNlKCkuc3BsaXQoL1tcXHN8LHxcXC18X10rLylcclxuICAgIGxldCBhbGxSZXN1bHRzID0gW11cclxuXHJcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDIpIHtcclxuICAgICAgdmFsdWVzID0gW3ZhbHVlc1swXSwgdmFsdWVzWzFdXVxyXG4gICAgfVxyXG5cclxuICAgIGFsbFJlc3VsdHMgPSB2YWx1ZXNcclxuICAgICAgLm1hcCgodmFsdWUpID0+IHtcclxuICAgICAgICAvLyBTdGFydCBzZWFyY2hpbiBpbiB0aGUgZ2xvYmFsIGxpc3Qgb2YgZW1vamlzXHJcbiAgICAgICAgbGV0IGVtb2ppcyA9IHRoaXMuX2Vtb2ppc1xyXG4gICAgICAgIGxldCBjdXJyZW50SW5kZXggPSB0aGlzLl9zZWFyY2hJbmRleFxyXG4gICAgICAgIGxldCBsZW5ndGggPSAwXHJcblxyXG4gICAgICAgIGZvciAobGV0IGNoYXJJbmRleCA9IDA7IGNoYXJJbmRleCA8IHZhbHVlLmxlbmd0aDsgY2hhckluZGV4KyspIHtcclxuICAgICAgICAgIGNvbnN0IGNoYXIgPSB2YWx1ZVtjaGFySW5kZXhdXHJcbiAgICAgICAgICBsZW5ndGgrK1xyXG5cclxuICAgICAgICAgIGN1cnJlbnRJbmRleFtjaGFyXSB8fCAoY3VycmVudEluZGV4W2NoYXJdID0ge30pXHJcbiAgICAgICAgICBjdXJyZW50SW5kZXggPSBjdXJyZW50SW5kZXhbY2hhcl1cclxuXHJcbiAgICAgICAgICBpZiAoIWN1cnJlbnRJbmRleC5yZXN1bHRzKSB7XHJcbiAgICAgICAgICAgIGxldCBzY29yZXMgPSB7fVxyXG4gICAgICAgICAgICBjdXJyZW50SW5kZXgucmVzdWx0cyA9IFtdXHJcbiAgICAgICAgICAgIGN1cnJlbnRJbmRleC5lbW9qaXMgPSB7fVxyXG5cclxuICAgICAgICAgICAgZm9yIChsZXQgZW1vamlJZCBpbiBlbW9qaXMpIHtcclxuICAgICAgICAgICAgICBsZXQgZW1vamkgPSBlbW9qaXNbZW1vamlJZF1cclxuICAgICAgICAgICAgICAvLyBzZWFyY2ggaXMgYSBjb21tYS1zZXBhcmF0ZWQgc3RyaW5nIHdpdGggd29yZHMsIHJlbGF0ZWRcclxuICAgICAgICAgICAgICAvLyB0byB0aGUgZW1vamksIGZvciBleGFtcGxlOlxyXG4gICAgICAgICAgICAgIC8vIHNlYXJjaDogXCJzbWlsZXksc21pbGluZyxmYWNlLGpveSxoYWhhLDpkLDopLHNtaWxlLGZ1bm55LD0pLD0tKVwiLFxyXG4gICAgICAgICAgICAgIGxldCBzZWFyY2ggPSBlbW9qaS5fZGF0YS5zZWFyY2hcclxuICAgICAgICAgICAgICBsZXQgc3ViID0gdmFsdWUuc3Vic3RyKDAsIGxlbmd0aClcclxuICAgICAgICAgICAgICBsZXQgc3ViSW5kZXggPSBzZWFyY2guaW5kZXhPZihzdWIpXHJcbiAgICAgICAgICAgICAgaWYgKHN1YkluZGV4ICE9IC0xKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgc2NvcmUgPSBzdWJJbmRleCArIDFcclxuICAgICAgICAgICAgICAgIGlmIChzdWIgPT0gZW1vamlJZCkgc2NvcmUgPSAwXHJcblxyXG4gICAgICAgICAgICAgICAgY3VycmVudEluZGV4LnJlc3VsdHMucHVzaChlbW9qaSlcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRJbmRleC5lbW9qaXNbZW1vamlJZF0gPSBlbW9qaVxyXG5cclxuICAgICAgICAgICAgICAgIHNjb3Jlc1tlbW9qaUlkXSA9IHNjb3JlXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGN1cnJlbnRJbmRleC5yZXN1bHRzLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgICB2YXIgYVNjb3JlID0gc2NvcmVzW2EuaWRdLFxyXG4gICAgICAgICAgICAgICAgYlNjb3JlID0gc2NvcmVzW2IuaWRdXHJcbiAgICAgICAgICAgICAgcmV0dXJuIGFTY29yZSAtIGJTY29yZVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8vIGNvbnRpbnVlIHNlYXJjaCBpbiB0aGUgcmVkdWNlZCBzZXQgb2YgZW1vamlzXHJcbiAgICAgICAgICBlbW9qaXMgPSBjdXJyZW50SW5kZXguZW1vamlzXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjdXJyZW50SW5kZXgucmVzdWx0c1xyXG4gICAgICAgIC8vIFRoZSBcImZpbHRlclwiIGNhbGwgcmVtb3ZlcyB1bmRlZmluZWQgdmFsdWVzIGZyb20gYWxsUmVzdWx0c1xyXG4gICAgICAgIC8vIGFycmF5LCBmb3IgZXhhbXBsZSwgaWYgd2UgaGF2ZSBcInRlc3QgXCIgKHdpdGggdHJhaWxpbmcgc3BhY2UpLFxyXG4gICAgICAgIC8vIHdlIHdpbGwgZ2V0IFwiW0FycmF5LCB1bmRlZmluZWRdXCIgZm9yIGFsbFJlc3VsdHMgYW5kIGFmdGVyXHJcbiAgICAgICAgLy8gdGhlIFwiZmlsdGVyXCIgY2FsbCBpdCB3aWxsIHR1cm4gaW50byBcIltBcnJheV1cIlxyXG4gICAgICB9KVxyXG4gICAgICAuZmlsdGVyKChhKSA9PiBhKVxyXG5cclxuICAgIHZhciByZXN1bHRzID0gbnVsbFxyXG4gICAgaWYgKGFsbFJlc3VsdHMubGVuZ3RoID4gMSkge1xyXG4gICAgICByZXN1bHRzID0gaW50ZXJzZWN0LmFwcGx5KG51bGwsIGFsbFJlc3VsdHMpXHJcbiAgICB9IGVsc2UgaWYgKGFsbFJlc3VsdHMubGVuZ3RoKSB7XHJcbiAgICAgIHJlc3VsdHMgPSBhbGxSZXN1bHRzWzBdXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXN1bHRzID0gW11cclxuICAgIH1cclxuICAgIGlmIChyZXN1bHRzICYmIHJlc3VsdHMubGVuZ3RoID4gbWF4UmVzdWx0cykge1xyXG4gICAgICByZXN1bHRzID0gcmVzdWx0cy5zbGljZSgwLCBtYXhSZXN1bHRzKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdHNcclxuICB9XHJcblxyXG4gIGFkZEN1c3RvbUVtb2ppKGN1c3RvbUVtb2ppKSB7XHJcbiAgICBsZXQgZW1vamlEYXRhID0gT2JqZWN0LmFzc2lnbih7fSwgY3VzdG9tRW1vamksIHtcclxuICAgICAgaWQ6IGN1c3RvbUVtb2ppLnNob3J0X25hbWVzWzBdLFxyXG4gICAgICBjdXN0b206IHRydWUsXHJcbiAgICB9KVxyXG4gICAgaWYgKCFlbW9qaURhdGEuc2VhcmNoKSB7XHJcbiAgICAgIGVtb2ppRGF0YS5zZWFyY2ggPSBidWlsZFNlYXJjaChlbW9qaURhdGEpXHJcbiAgICB9XHJcbiAgICBsZXQgZW1vamkgPSBuZXcgRW1vamlEYXRhKGVtb2ppRGF0YSlcclxuICAgIHRoaXMuX2Vtb2ppc1tlbW9qaS5pZF0gPSBlbW9qaVxyXG4gICAgdGhpcy5fY3VzdG9tQ2F0ZWdvcnkuZW1vamlzLnB1c2goZW1vamkpXHJcbiAgICByZXR1cm4gZW1vamlcclxuICB9XHJcblxyXG4gIGFkZEVtb2ppKGVtb2ppSWQpIHtcclxuICAgIC8vIFdlIGV4cGVjdCB0aGUgY29ycmVjdCBlbW9qaSBpZCB0aGF0IGlzIHByZXNlbnQgaW4gdGhlIGVtb2ppcyBkYXRhLlxyXG4gICAgbGV0IGRhdGEgPSB0aGlzLl9kYXRhLmVtb2ppc1tlbW9qaUlkXVxyXG5cclxuICAgIGlmICghdGhpcy5pc0Vtb2ppTmVlZGVkKGRhdGEpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfVxyXG5cclxuICAgIGxldCBlbW9qaSA9IG5ldyBFbW9qaURhdGEoZGF0YSlcclxuICAgIHRoaXMuX2Vtb2ppc1tlbW9qaUlkXSA9IGVtb2ppXHJcbiAgICBpZiAoZW1vamkubmF0aXZlKSB7XHJcbiAgICAgIHRoaXMuX25hdGl2ZUVtb2ppc1tlbW9qaS5uYXRpdmVdID0gZW1vamlcclxuICAgIH1cclxuICAgIGlmIChlbW9qaS5fc2tpbnMpIHtcclxuICAgICAgZm9yIChsZXQgaWR4IGluIGVtb2ppLl9za2lucykge1xyXG4gICAgICAgIGxldCBza2luID0gZW1vamkuX3NraW5zW2lkeF1cclxuICAgICAgICBpZiAoc2tpbi5uYXRpdmUpIHtcclxuICAgICAgICAgIHRoaXMuX25hdGl2ZUVtb2ppc1tza2luLm5hdGl2ZV0gPSBza2luXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGVtb2ppLmVtb3RpY29ucykge1xyXG4gICAgICBlbW9qaS5lbW90aWNvbnMuZm9yRWFjaCgoZW1vdGljb24pID0+IHtcclxuICAgICAgICBpZiAodGhpcy5fZW1vdGljb25zW2Vtb3RpY29uXSkge1xyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2Vtb3RpY29uc1tlbW90aWNvbl0gPSBlbW9qaUlkXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICByZXR1cm4gZW1vamlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIHdlIG5lZWQgdG8gaW5jbHVkZSBnaXZlbiBjYXRlZ29yeS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjYXRlZ29yeV9pZCAtIFRoZSBjYXRlZ29yeSBpZC5cclxuICAgKiBAcmV0dXJuIHtib29sZWFufSAtIFdoZXRoZXIgdG8gaW5jbHVkZSB0aGUgZW1vamkuXHJcbiAgICovXHJcbiAgaXNDYXRlZ29yeU5lZWRlZChjYXRlZ29yeV9pZCkge1xyXG4gICAgbGV0IGlzSW5jbHVkZWQgPVxyXG4gICAgICB0aGlzLl9pbmNsdWRlICYmIHRoaXMuX2luY2x1ZGUubGVuZ3RoXHJcbiAgICAgICAgPyB0aGlzLl9pbmNsdWRlLmluZGV4T2YoY2F0ZWdvcnlfaWQpID4gLTFcclxuICAgICAgICA6IHRydWVcclxuICAgIGxldCBpc0V4Y2x1ZGVkID1cclxuICAgICAgdGhpcy5fZXhjbHVkZSAmJiB0aGlzLl9leGNsdWRlLmxlbmd0aFxyXG4gICAgICAgID8gdGhpcy5fZXhjbHVkZS5pbmRleE9mKGNhdGVnb3J5X2lkKSA+IC0xXHJcbiAgICAgICAgOiBmYWxzZVxyXG4gICAgaWYgKCFpc0luY2x1ZGVkIHx8IGlzRXhjbHVkZWQpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgd2UgbmVlZCB0byBpbmNsdWRlIGdpdmVuIGVtb2ppLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtvYmplY3R9IGVtb2ppIC0gVGhlIHJhdyBlbW9qaSBvYmplY3QuXHJcbiAgICogQHJldHVybiB7Ym9vbGVhbn0gLSBXaGV0aGVyIHRvIGluY2x1ZGUgdGhlIGVtb2ppLlxyXG4gICAqL1xyXG4gIGlzRW1vamlOZWVkZWQoZW1vamkpIHtcclxuICAgIGlmICh0aGlzLl9lbW9qaXNGaWx0ZXIpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2Vtb2ppc0ZpbHRlcihlbW9qaSlcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlXHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRW1vamlEYXRhIHtcclxuICBjb25zdHJ1Y3RvcihkYXRhKSB7XHJcbiAgICB0aGlzLl9kYXRhID0gT2JqZWN0LmFzc2lnbih7fSwgZGF0YSlcclxuICAgIHRoaXMuX3NraW5zID0gbnVsbFxyXG4gICAgaWYgKHRoaXMuX2RhdGEuc2tpbl92YXJpYXRpb25zKSB7XHJcbiAgICAgIHRoaXMuX3NraW5zID0gW11cclxuICAgICAgZm9yICh2YXIgc2tpbklkeCBpbiBTS0lOUykge1xyXG4gICAgICAgIGxldCBza2luS2V5ID0gU0tJTlNbc2tpbklkeF1cclxuICAgICAgICBsZXQgdmFyaWF0aW9uRGF0YSA9IHRoaXMuX2RhdGEuc2tpbl92YXJpYXRpb25zW3NraW5LZXldXHJcbiAgICAgICAgbGV0IHNraW5EYXRhID0gT2JqZWN0LmFzc2lnbih7fSwgZGF0YSlcclxuICAgICAgICBmb3IgKGxldCBrIGluIHZhcmlhdGlvbkRhdGEpIHtcclxuICAgICAgICAgIHNraW5EYXRhW2tdID0gdmFyaWF0aW9uRGF0YVtrXVxyXG4gICAgICAgIH1cclxuICAgICAgICBkZWxldGUgc2tpbkRhdGEuc2tpbl92YXJpYXRpb25zXHJcbiAgICAgICAgc2tpbkRhdGFbJ3NraW5fdG9uZSddID0gcGFyc2VJbnQoc2tpbklkeCkgKyAxXHJcbiAgICAgICAgdGhpcy5fc2tpbnMucHVzaChuZXcgRW1vamlEYXRhKHNraW5EYXRhKSlcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5fc2FuaXRpemVkID0gc2FuaXRpemUodGhpcy5fZGF0YSlcclxuICAgIGZvciAobGV0IGtleSBpbiB0aGlzLl9zYW5pdGl6ZWQpIHtcclxuICAgICAgdGhpc1trZXldID0gdGhpcy5fc2FuaXRpemVkW2tleV1cclxuICAgIH1cclxuICAgIHRoaXMuc2hvcnRfbmFtZXMgPSB0aGlzLl9kYXRhLnNob3J0X25hbWVzXHJcbiAgICB0aGlzLnNob3J0X25hbWUgPSB0aGlzLl9kYXRhLnNob3J0X25hbWVzWzBdXHJcbiAgICBPYmplY3QuZnJlZXplKHRoaXMpXHJcbiAgfVxyXG5cclxuICBnZXRTa2luKHNraW5JZHgpIHtcclxuICAgIGlmIChza2luSWR4ICYmIHNraW5JZHggIT0gJ25hdGl2ZScgJiYgdGhpcy5fc2tpbnMpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3NraW5zW3NraW5JZHggLSAxXVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXNcclxuICB9XHJcblxyXG4gIGdldFBvc2l0aW9uKCkge1xyXG4gICAgbGV0IGFkanVzdGVkQ29sdW1ucyA9IFNIRUVUX0NPTFVNTlMgLSAxLFxyXG4gICAgICB4ID0gKygoMTAwIC8gYWRqdXN0ZWRDb2x1bW5zKSAqIHRoaXMuX2RhdGEuc2hlZXRfeCkudG9GaXhlZCgyKSxcclxuICAgICAgeSA9ICsoKDEwMCAvIGFkanVzdGVkQ29sdW1ucykgKiB0aGlzLl9kYXRhLnNoZWV0X3kpLnRvRml4ZWQoMilcclxuICAgIHJldHVybiBgJHt4fSUgJHt5fSVgXHJcbiAgfVxyXG5cclxuICBhcmlhTGFiZWwoKSB7XHJcbiAgICByZXR1cm4gW3RoaXMubmF0aXZlXS5jb25jYXQodGhpcy5zaG9ydF9uYW1lcykuZmlsdGVyKEJvb2xlYW4pLmpvaW4oJywgJylcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFbW9qaVZpZXcge1xyXG4gIC8qKlxyXG4gICAqIGVtb2ppIC0gRW1vamkgdG8gZGlzcGxheVxyXG4gICAqIHNldCAtIHN0cmluZywgZW1vamkgc2V0IG5hbWVcclxuICAgKiBuYXRpdmUgLSBib29sZWFuLCB3aGV0aGVyIHRvIHJlbmRlciBuYXRpdmUgZW1vamlcclxuICAgKiBmYWxsYmFjayAtIGZhbGxiYWNrIGZ1bmN0aW9uIHRvIHJlbmRlciBtaXNzaW5nIGVtb2ppLCBvcHRpb25hbFxyXG4gICAqIGVtb2ppVG9vbHRpcCAtIHdldGhlciB3ZSBuZWVkIHRvIHNob3cgdGhlIGVtb2ppIHRvb2x0aXAsIG9wdGlvbmFsXHJcbiAgICogZW1vamlTaXplIC0gZW1vamkgc2l6ZSBpbiBwaXhlbHMsIG9wdGlvbmFsXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoZW1vamksIHNraW4sIHNldCwgbmF0aXZlLCBmYWxsYmFjaywgZW1vamlUb29sdGlwLCBlbW9qaVNpemUpIHtcclxuICAgIHRoaXMuX2Vtb2ppID0gZW1vamlcclxuICAgIHRoaXMuX25hdGl2ZSA9IG5hdGl2ZVxyXG4gICAgdGhpcy5fc2tpbiA9IHNraW5cclxuICAgIHRoaXMuX3NldCA9IHNldFxyXG4gICAgdGhpcy5fZmFsbGJhY2sgPSBmYWxsYmFja1xyXG5cclxuICAgIHRoaXMuY2FuUmVuZGVyID0gdGhpcy5fY2FuUmVuZGVyKClcclxuICAgIHRoaXMuY3NzQ2xhc3MgPSB0aGlzLl9jc3NDbGFzcygpXHJcbiAgICB0aGlzLmNzc1N0eWxlID0gdGhpcy5fY3NzU3R5bGUoZW1vamlTaXplKVxyXG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5fY29udGVudCgpXHJcbiAgICB0aGlzLnRpdGxlID0gZW1vamlUb29sdGlwID09PSB0cnVlID8gZW1vamkuc2hvcnRfbmFtZSA6IG51bGxcclxuICAgIHRoaXMuYXJpYUxhYmVsID0gZW1vamkuYXJpYUxhYmVsKClcclxuXHJcbiAgICBPYmplY3QuZnJlZXplKHRoaXMpXHJcbiAgfVxyXG5cclxuICBnZXRFbW9qaSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9lbW9qaS5nZXRTa2luKHRoaXMuX3NraW4pXHJcbiAgfVxyXG5cclxuICBfY2FuUmVuZGVyKCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5faXNDdXN0b20oKSB8fCB0aGlzLl9pc05hdGl2ZSgpIHx8IHRoaXMuX2hhc0Vtb2ppKCkgfHwgdGhpcy5fZmFsbGJhY2tcclxuICAgIClcclxuICB9XHJcblxyXG4gIF9jc3NDbGFzcygpIHtcclxuICAgIHJldHVybiBbJ2Vtb2ppLXNldC0nICsgdGhpcy5fc2V0LCAnZW1vamktdHlwZS0nICsgdGhpcy5fZW1vamlUeXBlKCldXHJcbiAgfVxyXG5cclxuICBfY3NzU3R5bGUoZW1vamlTaXplKSB7XHJcbiAgICBsZXQgY3NzU3R5bGUgPSB7fVxyXG4gICAgaWYgKHRoaXMuX2lzQ3VzdG9tKCkpIHtcclxuICAgICAgY3NzU3R5bGUgPSB7XHJcbiAgICAgICAgYmFja2dyb3VuZEltYWdlOiAndXJsKCcgKyB0aGlzLmdldEVtb2ppKCkuX2RhdGEuaW1hZ2VVcmwgKyAnKScsXHJcbiAgICAgICAgYmFja2dyb3VuZFNpemU6ICcxMDAlJyxcclxuICAgICAgICB3aWR0aDogZW1vamlTaXplICsgJ3B4JyxcclxuICAgICAgICBoZWlnaHQ6IGVtb2ppU2l6ZSArICdweCcsXHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5faGFzRW1vamkoKSAmJiAhdGhpcy5faXNOYXRpdmUoKSkge1xyXG4gICAgICBjc3NTdHlsZSA9IHtcclxuICAgICAgICBiYWNrZ3JvdW5kUG9zaXRpb246IHRoaXMuZ2V0RW1vamkoKS5nZXRQb3NpdGlvbigpLFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoZW1vamlTaXplKSB7XHJcbiAgICAgIGlmICh0aGlzLl9pc05hdGl2ZSgpKSB7XHJcbiAgICAgICAgLy8gU2V0IGZvbnQtc2l6ZSBmb3IgbmF0aXZlIGVtb2ppLlxyXG4gICAgICAgIGNzc1N0eWxlID0gT2JqZWN0LmFzc2lnbihjc3NTdHlsZSwge1xyXG4gICAgICAgICAgLy8gZm9udC1zaXplIGlzIHVzZWQgZm9yIG5hdGl2ZSBlbW9qaSB3aGljaCB3ZSBuZWVkXHJcbiAgICAgICAgICAvLyB0byBzY2FsZSB3aXRoIDAuOTUgZmFjdG9yIHRvIGhhdmUgdGhlbSBsb29rIGFwcHJveGltYXRlbHlcclxuICAgICAgICAgIC8vIHRoZSBzYW1lIHNpemUgYXMgaW1hZ2UtYmFzZWQgZW1vamkuXHJcbiAgICAgICAgICBmb250U2l6ZTogTWF0aC5yb3VuZChlbW9qaVNpemUgKiAwLjk1ICogMTApIC8gMTAgKyAncHgnLFxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gU2V0IHdpZHRoL2hlaWdodCBmb3IgaW1hZ2UgZW1vamkuXHJcbiAgICAgICAgY3NzU3R5bGUgPSBPYmplY3QuYXNzaWduKGNzc1N0eWxlLCB7XHJcbiAgICAgICAgICB3aWR0aDogZW1vamlTaXplICsgJ3B4JyxcclxuICAgICAgICAgIGhlaWdodDogZW1vamlTaXplICsgJ3B4JyxcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY3NzU3R5bGVcclxuICB9XHJcblxyXG4gIF9jb250ZW50KCkge1xyXG4gICAgaWYgKHRoaXMuX2lzQ3VzdG9tKCkpIHtcclxuICAgICAgcmV0dXJuICcnXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5faXNOYXRpdmUoKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXRFbW9qaSgpLm5hdGl2ZVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuX2hhc0Vtb2ppKCkpIHtcclxuICAgICAgcmV0dXJuICcnXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5fZmFsbGJhY2sgPyB0aGlzLl9mYWxsYmFjayh0aGlzLmdldEVtb2ppKCkpIDogbnVsbFxyXG4gIH1cclxuXHJcbiAgX2lzTmF0aXZlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX25hdGl2ZVxyXG4gIH1cclxuXHJcbiAgX2lzQ3VzdG9tKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0RW1vamkoKS5jdXN0b21cclxuICB9XHJcblxyXG4gIF9oYXNFbW9qaSgpIHtcclxuICAgIGlmICghdGhpcy5nZXRFbW9qaSgpLl9kYXRhKSB7XHJcbiAgICAgIC8vIFJldHVybiBmYWxzZSBpZiB3ZSBoYXZlIG5vIGRhdGEuXHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfVxyXG4gICAgY29uc3QgaGFzSW1hZ2UgPSB0aGlzLmdldEVtb2ppKCkuX2RhdGFbJ2hhc19pbWdfJyArIHRoaXMuX3NldF1cclxuICAgIGlmIChoYXNJbWFnZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGhhc19pbWdfeHh4IGluIHRoZSBkYXRhLCB3ZSBhcmUgd29ya2luZyB3aXRoXHJcbiAgICAgIC8vIHNwZWNpZmljIGRhdGEgZmlsZSwgbGlrZSBmYWNlYm9vay5qc29uLCBzbyB3ZSBhc3N1bWUgYWxsXHJcbiAgICAgIC8vIGVtb2ppcyBhcmUgYXZhaWxhYmxlICh0aGUgOnNldCBzZXR0aW5nIGZvciBwaWNrZXIgc2hvdWxkXHJcbiAgICAgIC8vIG1hdGNoIHRoZSBkYXRhIGZpbGUpLlxyXG4gICAgICByZXR1cm4gdHJ1ZVxyXG4gICAgfVxyXG4gICAgLy8gT3RoZXJ3aXNlLCB3ZSBhcmUgdXNpbmcgYWxsLmpzb24gYW5kIGNhbiBzd2l0Y2ggYmV0d2VlbiBkaWZmZXJlbnRcclxuICAgIC8vIHNldHMgLSBpbiB0aGlzIGNhc2UgdGhlIGBoYXNfaW1nX3tzZXRfbmFtZX1gIGlzIGEgYm9vbGVhbiB0aGF0XHJcbiAgICAvLyBpbmRpY2F0ZXMgaWYgdGhlcmUgaXMgc3VjaCBpbWFnZSBvciBub3QgZm9yIGEgZ2l2ZW4gc2V0LlxyXG4gICAgcmV0dXJuIGhhc0ltYWdlXHJcbiAgfVxyXG5cclxuICBfZW1vamlUeXBlKCkge1xyXG4gICAgaWYgKHRoaXMuX2lzQ3VzdG9tKCkpIHtcclxuICAgICAgcmV0dXJuICdjdXN0b20nXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5faXNOYXRpdmUoKSkge1xyXG4gICAgICByZXR1cm4gJ25hdGl2ZSdcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9oYXNFbW9qaSgpKSB7XHJcbiAgICAgIHJldHVybiAnaW1hZ2UnXHJcbiAgICB9XHJcbiAgICByZXR1cm4gJ2ZhbGxiYWNrJ1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHNhbml0aXplKGVtb2ppKSB7XHJcbiAgdmFyIHtcclxuICAgICAgbmFtZSxcclxuICAgICAgc2hvcnRfbmFtZXMsXHJcbiAgICAgIHNraW5fdG9uZSxcclxuICAgICAgc2tpbl92YXJpYXRpb25zLFxyXG4gICAgICBlbW90aWNvbnMsXHJcbiAgICAgIHVuaWZpZWQsXHJcbiAgICAgIGN1c3RvbSxcclxuICAgICAgaW1hZ2VVcmwsXHJcbiAgICB9ID0gZW1vamksXHJcbiAgICBpZCA9IGVtb2ppLmlkIHx8IHNob3J0X25hbWVzWzBdLFxyXG4gICAgY29sb25zID0gYDoke2lkfTpgXHJcblxyXG4gIGlmIChjdXN0b20pIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGlkLFxyXG4gICAgICBuYW1lLFxyXG4gICAgICBjb2xvbnMsXHJcbiAgICAgIGVtb3RpY29ucyxcclxuICAgICAgY3VzdG9tLFxyXG4gICAgICBpbWFnZVVybCxcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlmIChza2luX3RvbmUpIHtcclxuICAgIGNvbG9ucyArPSBgOnNraW4tdG9uZS0ke3NraW5fdG9uZX06YFxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGlkLFxyXG4gICAgbmFtZSxcclxuICAgIGNvbG9ucyxcclxuICAgIGVtb3RpY29ucyxcclxuICAgIHVuaWZpZWQ6IHVuaWZpZWQudG9Mb3dlckNhc2UoKSxcclxuICAgIHNraW46IHNraW5fdG9uZSB8fCAoc2tpbl92YXJpYXRpb25zID8gMSA6IG51bGwpLFxyXG4gICAgbmF0aXZlOiB1bmlmaWVkVG9OYXRpdmUodW5pZmllZCksXHJcbiAgfVxyXG59XHJcbiIsImltcG9ydCBzdG9yZSBmcm9tICcuL3N0b3JlJ1xyXG5cclxuY29uc3QgREVGQVVMVFMgPSBbXHJcbiAgJysxJyxcclxuICAnZ3Jpbm5pbmcnLFxyXG4gICdraXNzaW5nX2hlYXJ0JyxcclxuICAnaGVhcnRfZXllcycsXHJcbiAgJ2xhdWdoaW5nJyxcclxuICAnc3R1Y2tfb3V0X3Rvbmd1ZV93aW5raW5nX2V5ZScsXHJcbiAgJ3N3ZWF0X3NtaWxlJyxcclxuICAnam95JyxcclxuICAnc2NyZWFtJyxcclxuICAnZGlzYXBwb2ludGVkJyxcclxuICAndW5hbXVzZWQnLFxyXG4gICd3ZWFyeScsXHJcbiAgJ3NvYicsXHJcbiAgJ3N1bmdsYXNzZXMnLFxyXG4gICdoZWFydCcsXHJcbiAgJ2hhbmtleScsXHJcbl1cclxuXHJcbmxldCBmcmVxdWVudGx5LCBpbml0aWFsaXplZFxyXG5sZXQgZGVmYXVsdHMgPSB7fVxyXG5cclxuZnVuY3Rpb24gaW5pdCgpIHtcclxuICBpbml0aWFsaXplZCA9IHRydWVcclxuICBmcmVxdWVudGx5ID0gc3RvcmUuZ2V0KCdmcmVxdWVudGx5JylcclxufVxyXG5cclxuZnVuY3Rpb24gYWRkKGVtb2ppKSB7XHJcbiAgaWYgKCFpbml0aWFsaXplZCkgaW5pdCgpXHJcbiAgdmFyIHsgaWQgfSA9IGVtb2ppXHJcblxyXG4gIGZyZXF1ZW50bHkgfHwgKGZyZXF1ZW50bHkgPSBkZWZhdWx0cylcclxuICBmcmVxdWVudGx5W2lkXSB8fCAoZnJlcXVlbnRseVtpZF0gPSAwKVxyXG4gIGZyZXF1ZW50bHlbaWRdICs9IDFcclxuXHJcbiAgc3RvcmUuc2V0KCdsYXN0JywgaWQpXHJcbiAgc3RvcmUuc2V0KCdmcmVxdWVudGx5JywgZnJlcXVlbnRseSlcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0KG1heE51bWJlcikge1xyXG4gIGlmICghaW5pdGlhbGl6ZWQpIGluaXQoKVxyXG4gIGlmICghZnJlcXVlbnRseSkge1xyXG4gICAgZGVmYXVsdHMgPSB7fVxyXG5cclxuICAgIGNvbnN0IHJlc3VsdCA9IFtdXHJcblxyXG4gICAgbGV0IGRlZmF1bHRMZW5ndGggPSBNYXRoLm1pbihtYXhOdW1iZXIsIERFRkFVTFRTLmxlbmd0aClcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGVmYXVsdExlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGRlZmF1bHRzW0RFRkFVTFRTW2ldXSA9IHBhcnNlSW50KChkZWZhdWx0TGVuZ3RoIC0gaSkgLyA0LCAxMCkgKyAxXHJcbiAgICAgIHJlc3VsdC5wdXNoKERFRkFVTFRTW2ldKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHRcclxuICB9XHJcblxyXG4gIGNvbnN0IHF1YW50aXR5ID0gbWF4TnVtYmVyXHJcbiAgY29uc3QgZnJlcXVlbnRseUtleXMgPSBbXVxyXG5cclxuICBmb3IgKGxldCBrZXkgaW4gZnJlcXVlbnRseSkge1xyXG4gICAgaWYgKGZyZXF1ZW50bHkuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICBmcmVxdWVudGx5S2V5cy5wdXNoKGtleSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0IHNvcnRlZCA9IGZyZXF1ZW50bHlLZXlzXHJcbiAgICAuc29ydCgoYSwgYikgPT4gZnJlcXVlbnRseVthXSAtIGZyZXF1ZW50bHlbYl0pXHJcbiAgICAucmV2ZXJzZSgpXHJcbiAgY29uc3Qgc2xpY2VkID0gc29ydGVkLnNsaWNlKDAsIHF1YW50aXR5KVxyXG5cclxuICBjb25zdCBsYXN0ID0gc3RvcmUuZ2V0KCdsYXN0JylcclxuXHJcbiAgaWYgKGxhc3QgJiYgc2xpY2VkLmluZGV4T2YobGFzdCkgPT0gLTEpIHtcclxuICAgIHNsaWNlZC5wb3AoKVxyXG4gICAgc2xpY2VkLnB1c2gobGFzdClcclxuICB9XHJcblxyXG4gIHJldHVybiBzbGljZWRcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgeyBhZGQsIGdldCB9XHJcbiIsImltcG9ydCBzdHJpbmdGcm9tQ29kZVBvaW50IGZyb20gJy4uL3BvbHlmaWxscy9zdHJpbmdGcm9tQ29kZVBvaW50J1xyXG5cclxuZnVuY3Rpb24gdW5pZmllZFRvTmF0aXZlKHVuaWZpZWQpIHtcclxuICB2YXIgdW5pY29kZXMgPSB1bmlmaWVkLnNwbGl0KCctJyksXHJcbiAgICBjb2RlUG9pbnRzID0gdW5pY29kZXMubWFwKCh1KSA9PiBgMHgke3V9YClcclxuXHJcbiAgcmV0dXJuIHN0cmluZ0Zyb21Db2RlUG9pbnQuYXBwbHkobnVsbCwgY29kZVBvaW50cylcclxufVxyXG5cclxuZnVuY3Rpb24gdW5pcShhcnIpIHtcclxuICByZXR1cm4gYXJyLnJlZHVjZSgoYWNjLCBpdGVtKSA9PiB7XHJcbiAgICBpZiAoYWNjLmluZGV4T2YoaXRlbSkgPT09IC0xKSB7XHJcbiAgICAgIGFjYy5wdXNoKGl0ZW0pXHJcbiAgICB9XHJcbiAgICByZXR1cm4gYWNjXHJcbiAgfSwgW10pXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGludGVyc2VjdChhLCBiKSB7XHJcbiAgY29uc3QgdW5pcUEgPSB1bmlxKGEpXHJcbiAgY29uc3QgdW5pcUIgPSB1bmlxKGIpXHJcblxyXG4gIHJldHVybiB1bmlxQS5maWx0ZXIoKGl0ZW0pID0+IHVuaXFCLmluZGV4T2YoaXRlbSkgPj0gMClcclxufVxyXG5cclxuZnVuY3Rpb24gZGVlcE1lcmdlKGEsIGIpIHtcclxuICB2YXIgbyA9IHt9XHJcblxyXG4gIGZvciAobGV0IGtleSBpbiBhKSB7XHJcbiAgICBsZXQgb3JpZ2luYWxWYWx1ZSA9IGFba2V5XSxcclxuICAgICAgdmFsdWUgPSBvcmlnaW5hbFZhbHVlXHJcblxyXG4gICAgaWYgKGIuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICB2YWx1ZSA9IGJba2V5XVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgIHZhbHVlID0gZGVlcE1lcmdlKG9yaWdpbmFsVmFsdWUsIHZhbHVlKVxyXG4gICAgfVxyXG5cclxuICAgIG9ba2V5XSA9IHZhbHVlXHJcbiAgfVxyXG5cclxuICByZXR1cm4gb1xyXG59XHJcblxyXG4vLyBodHRwczovL2dpdGh1Yi5jb20vc29uaWNkb2UvbWVhc3VyZS1zY3JvbGxiYXJcclxuZnVuY3Rpb24gbWVhc3VyZVNjcm9sbGJhcigpIHtcclxuICBpZiAodHlwZW9mIGRvY3VtZW50ID09ICd1bmRlZmluZWQnKSByZXR1cm4gMFxyXG4gIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXHJcblxyXG4gIGRpdi5zdHlsZS53aWR0aCA9ICcxMDBweCdcclxuICBkaXYuc3R5bGUuaGVpZ2h0ID0gJzEwMHB4J1xyXG4gIGRpdi5zdHlsZS5vdmVyZmxvdyA9ICdzY3JvbGwnXHJcbiAgZGl2LnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJ1xyXG4gIGRpdi5zdHlsZS50b3AgPSAnLTk5OTlweCdcclxuXHJcbiAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYpXHJcbiAgY29uc3Qgc2Nyb2xsYmFyV2lkdGggPSBkaXYub2Zmc2V0V2lkdGggLSBkaXYuY2xpZW50V2lkdGhcclxuICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdilcclxuXHJcbiAgcmV0dXJuIHNjcm9sbGJhcldpZHRoXHJcbn1cclxuXHJcbmV4cG9ydCB7IHVuaXEsIGludGVyc2VjdCwgZGVlcE1lcmdlLCB1bmlmaWVkVG9OYXRpdmUsIG1lYXN1cmVTY3JvbGxiYXIgfVxyXG4iLCJleHBvcnQgY2xhc3MgUGlja2VyVmlldyB7XHJcbiAgY29uc3RydWN0b3IocGlja2VyQ29tcG9uZW50KSB7XHJcbiAgICB0aGlzLl92bSA9IHBpY2tlckNvbXBvbmVudFxyXG4gICAgdGhpcy5fZGF0YSA9IHBpY2tlckNvbXBvbmVudC5kYXRhXHJcbiAgICB0aGlzLl9wZXJMaW5lID0gcGlja2VyQ29tcG9uZW50LnBlckxpbmVcclxuXHJcbiAgICB0aGlzLl9jYXRlZ29yaWVzID0gW11cclxuICAgIHRoaXMuX2NhdGVnb3JpZXMucHVzaCguLi50aGlzLl9kYXRhLmNhdGVnb3JpZXMoKSlcclxuICAgIHRoaXMuX2NhdGVnb3JpZXMgPSB0aGlzLl9jYXRlZ29yaWVzLmZpbHRlcigoY2F0ZWdvcnkpID0+IHtcclxuICAgICAgcmV0dXJuIGNhdGVnb3J5LmVtb2ppcy5sZW5ndGggPiAwXHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMuX2NhdGVnb3JpZXNbMF0uZmlyc3QgPSB0cnVlXHJcbiAgICBPYmplY3QuZnJlZXplKHRoaXMuX2NhdGVnb3JpZXMpXHJcblxyXG4gICAgdGhpcy5hY3RpdmVDYXRlZ29yeSA9IHRoaXMuX2NhdGVnb3JpZXNbMF1cclxuICAgIHRoaXMuc2VhcmNoRW1vamlzID0gbnVsbFxyXG5cclxuICAgIC8vIFByZXZpZXcgZW1vamksIHNob3duIG9uIG1vdXNlIG92ZXIgb3Igd2hlbiB3ZSBtb3ZlXHJcbiAgICAvLyB3aXRoIGFycm93IGtleXMuXHJcbiAgICB0aGlzLnByZXZpZXdFbW9qaSA9IG51bGxcclxuICAgIC8vIEluZGV4ZXMgYXJlIHVzZWQgdG8ga2VlcCB0aGUgcG9zaXRpb24gd2hlbiBtb3ZpbmdcclxuICAgIC8vIHdpdGggYXJyb3dzOiBjdXJyZW50IGNhdGVnb3J5IGFuZCBjdXJyZW50IGVtb2ppXHJcbiAgICAvLyBpbnNpZGUgdGhlIGNhdGVnb3J5LlxyXG4gICAgdGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeCA9IDBcclxuICAgIHRoaXMucHJldmlld0Vtb2ppSWR4ID0gLTFcclxuICB9XHJcblxyXG4gIG9uU2Nyb2xsKCkge1xyXG4gICAgY29uc3Qgc2Nyb2xsRWxlbWVudCA9IHRoaXMuX3ZtLiRyZWZzLnNjcm9sbFxyXG4gICAgY29uc3Qgc2Nyb2xsVG9wID0gc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3BcclxuXHJcbiAgICBsZXQgYWN0aXZlQ2F0ZWdvcnkgPSB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllc1swXVxyXG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcclxuICAgICAgbGV0IGNhdGVnb3J5ID0gdGhpcy5maWx0ZXJlZENhdGVnb3JpZXNbaV1cclxuICAgICAgbGV0IGNvbXBvbmVudCA9IHRoaXMuX3ZtLmdldENhdGVnb3J5Q29tcG9uZW50KGkpXHJcbiAgICAgIC8vIFRoZSBgLTUwYCBvZmZzZXQgc3dpdGNoZXMgYWN0aXZlIGNhdGVnb3J5IChzZWxlY3RlZCBpbiB0aGVcclxuICAgICAgLy8gYW5jaG9ycyBiYXIpIGEgYml0IGVhcmlsZXIsIGJlZm9yZSBpdCBhY3R1YWxseSByZWFjaGVzIHRoZSB0b3AuXHJcbiAgICAgIGlmIChjb21wb25lbnQgJiYgY29tcG9uZW50LiRlbC5vZmZzZXRUb3AgLSA1MCA+IHNjcm9sbFRvcCkge1xyXG4gICAgICAgIGJyZWFrXHJcbiAgICAgIH1cclxuICAgICAgYWN0aXZlQ2F0ZWdvcnkgPSBjYXRlZ29yeVxyXG4gICAgfVxyXG4gICAgdGhpcy5hY3RpdmVDYXRlZ29yeSA9IGFjdGl2ZUNhdGVnb3J5XHJcbiAgfVxyXG5cclxuICBnZXQgYWxsQ2F0ZWdvcmllcygpIHtcclxuICAgIHJldHVybiB0aGlzLl9jYXRlZ29yaWVzXHJcbiAgfVxyXG5cclxuICBnZXQgZmlsdGVyZWRDYXRlZ29yaWVzKCkge1xyXG4gICAgaWYgKHRoaXMuc2VhcmNoRW1vamlzKSB7XHJcbiAgICAgIHJldHVybiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaWQ6ICdzZWFyY2gnLFxyXG4gICAgICAgICAgbmFtZTogJ1NlYXJjaCcsXHJcbiAgICAgICAgICBlbW9qaXM6IHRoaXMuc2VhcmNoRW1vamlzLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9jYXRlZ29yaWVzLmZpbHRlcigoY2F0ZWdvcnkpID0+IHtcclxuICAgICAgbGV0IGhhc0Vtb2ppcyA9IGNhdGVnb3J5LmVtb2ppcy5sZW5ndGggPiAwXHJcbiAgICAgIHJldHVybiBoYXNFbW9qaXNcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXQgcHJldmlld0Vtb2ppQ2F0ZWdvcnkoKSB7XHJcbiAgICBpZiAodGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeCA+PSAwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllc1t0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4XVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGxcclxuICB9XHJcblxyXG4gIG9uQW5jaG9yQ2xpY2soY2F0ZWdvcnkpIHtcclxuICAgIGlmICh0aGlzLnNlYXJjaEVtb2ppcykge1xyXG4gICAgICAvLyBObyBjYXRlZ29yaWVzIGFyZSBzaG93biB3aGVuIHNlYXJjaCBpcyBhY3RpdmUuXHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG4gICAgbGV0IGkgPSB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllcy5pbmRleE9mKGNhdGVnb3J5KVxyXG4gICAgbGV0IGNvbXBvbmVudCA9IHRoaXMuX3ZtLmdldENhdGVnb3J5Q29tcG9uZW50KGkpXHJcbiAgICBsZXQgc2Nyb2xsVG9Db21wb25lbnQgPSAoKSA9PiB7XHJcbiAgICAgIGlmIChjb21wb25lbnQpIHtcclxuICAgICAgICBsZXQgdG9wID0gY29tcG9uZW50LiRlbC5vZmZzZXRUb3BcclxuICAgICAgICBpZiAoY2F0ZWdvcnkuZmlyc3QpIHtcclxuICAgICAgICAgIHRvcCA9IDBcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fdm0uJHJlZnMuc2Nyb2xsLnNjcm9sbFRvcCA9IHRvcFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5fdm0uaW5maW5pdGVTY3JvbGwpIHtcclxuICAgICAgc2Nyb2xsVG9Db21wb25lbnQoKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hY3RpdmVDYXRlZ29yeSA9IHRoaXMuZmlsdGVyZWRDYXRlZ29yaWVzW2ldXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblNlYXJjaCh2YWx1ZSkge1xyXG4gICAgbGV0IGVtb2ppcyA9IHRoaXMuX2RhdGEuc2VhcmNoKHZhbHVlLCB0aGlzLm1heFNlYXJjaFJlc3VsdHMpXHJcbiAgICB0aGlzLnNlYXJjaEVtb2ppcyA9IGVtb2ppc1xyXG5cclxuICAgIHRoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHggPSAwXHJcbiAgICB0aGlzLnByZXZpZXdFbW9qaUlkeCA9IDBcclxuICAgIHRoaXMudXBkYXRlUHJldmlld0Vtb2ppKClcclxuICB9XHJcblxyXG4gIG9uRW1vamlFbnRlcihlbW9qaSkge1xyXG4gICAgdGhpcy5wcmV2aWV3RW1vamkgPSBlbW9qaVxyXG4gICAgdGhpcy5wcmV2aWV3RW1vamlJZHggPSAtMVxyXG4gICAgdGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeCA9IC0xXHJcbiAgfVxyXG5cclxuICBvbkVtb2ppTGVhdmUoZW1vamkpIHtcclxuICAgIHRoaXMucHJldmlld0Vtb2ppID0gbnVsbFxyXG4gIH1cclxuXHJcbiAgb25BcnJvd0xlZnQoKSB7XHJcbiAgICAvLyBNb3ZpbmcgbGVmdCwgZGVjcmVhc2UgZW1vamkgaW5kZXguXHJcbiAgICBpZiAodGhpcy5wcmV2aWV3RW1vamlJZHggPiAwKSB7XHJcbiAgICAgIHRoaXMucHJldmlld0Vtb2ppSWR4IC09IDFcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIElmIGVtb2ppIGluZGV4IGlzIHplcm8sIGdvIHRvIHRoZSBwcmV2aW91cyBjYXRlZ29yeS5cclxuICAgICAgdGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeCAtPSAxXHJcbiAgICAgIGlmICh0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4IDwgMCkge1xyXG4gICAgICAgIC8vIElmIHdlIHJlYWNoZWQgZmlyc3QgY2F0ZWdvcnksIGtlZXAgaXQuXHJcbiAgICAgICAgdGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeCA9IDBcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBVcGRhdGUgZW1vamkgaW5kZXggLSB3ZSBtb3ZlZCB0byB0aGUgcHJldmlvdXMgY2F0ZWdvcnksXHJcbiAgICAgICAgLy8gZ2V0IHRoZSBsYXN0IGVtb2ppIGluIGl0LlxyXG4gICAgICAgIHRoaXMucHJldmlld0Vtb2ppSWR4ID1cclxuICAgICAgICAgIHRoaXMuZmlsdGVyZWRDYXRlZ29yaWVzW3RoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHhdLmVtb2ppcy5sZW5ndGggLVxyXG4gICAgICAgICAgMVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnVwZGF0ZVByZXZpZXdFbW9qaSgpXHJcbiAgfVxyXG5cclxuICBvbkFycm93UmlnaHQoKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucHJldmlld0Vtb2ppSWR4IDxcclxuICAgICAgdGhpcy5lbW9qaXNMZW5ndGgodGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeCkgLSAxXHJcbiAgICApIHtcclxuICAgICAgLy8gTW92aW5nIHJpZ2h0IHdpdGhpbiBjYXRlZ29yeSwgaW5jcmVhc2UgZW1vamkgaW5kZXguXHJcbiAgICAgIHRoaXMucHJldmlld0Vtb2ppSWR4ICs9IDFcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIEdvIHRvIHRoZSBuZXh0IGNhdGVnb3J5LlxyXG4gICAgICB0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4ICs9IDFcclxuICAgICAgaWYgKHRoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHggPj0gdGhpcy5maWx0ZXJlZENhdGVnb3JpZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgLy8gSWYgd2UgcmVhY2hlZCB0aGUgbGFzdCBjYXRlZ29yeSAtIGtlZXAgaXQuXHJcbiAgICAgICAgdGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeCA9IHRoaXMuZmlsdGVyZWRDYXRlZ29yaWVzLmxlbmd0aCAtIDFcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBJZiB3ZSBtb3ZlZCB0byB0aGUgbmV4dCBjYXRlZ29yeSwgdXBkYXRlIGVtb2ppIGluZGV4IHRvIHRoZVxyXG4gICAgICAgIC8vIGZpcnN0IGVtb2ppIGluIHRoZSBuZXcgY2F0ZWdvcnkuXHJcbiAgICAgICAgdGhpcy5wcmV2aWV3RW1vamlJZHggPSAwXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRlUHJldmlld0Vtb2ppKClcclxuICB9XHJcblxyXG4gIG9uQXJyb3dEb3duKCkge1xyXG4gICAgLy8gSWYgd2UgYXJlIG91dCBvZiB0aGUgZW1vamkgY29udHJvbCAoaW5kZXggaXMgLTEpLCBzZWxlY3QgdGhlIGZpcnN0XHJcbiAgICAvLyBlbW9qaSBpbiB0aGUgZmlyc3QgY2F0ZWdvcnkgYnkgY2FsbGluZyBgb25BcnJvd1JpZ2h0YC5cclxuICAgIGlmICh0aGlzLnByZXZpZXdFbW9qaUlkeCA9PSAtMSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5vbkFycm93UmlnaHQoKVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNhdGVnb3J5TGVuZ3RoID1cclxuICAgICAgdGhpcy5maWx0ZXJlZENhdGVnb3JpZXNbdGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeF0uZW1vamlzLmxlbmd0aFxyXG5cclxuICAgIC8vIFdoZW4gbW92aW5nIGRvd24sIHdlIGNhbiBtb3ZlIGBfcGVyTGluZWAgaWNvbnMgcmlnaHQgdG9cclxuICAgIC8vIGp1bXAgdG8gdGhlIHNhbWUgcG9zaXRpb24gaW4gdGhlIG5leHQgcm93LlxyXG4gICAgbGV0IGRpZmYgPSB0aGlzLl9wZXJMaW5lXHJcblxyXG4gICAgLy8gVE9ETzogcHJldmlld0NhdGVnb3J5IHNob3VsZCBtYXRjaCBhY3RpdmVDYXRlZ29yeVxyXG4gICAgLy8gKHNvIGl0IHdvdWxkIGJlIGJvdGggaGlnaGxpZ2h0ZWQgaW4gVUkgYW5kIHVzZWRcclxuICAgIC8vIHdoZW4gd2Ugc3RhcnQgbW92aW5nIHdpdGggYXJyb3dzIGFmdGVyIGNsaWNraW5nXHJcbiAgICAvLyB0aGUgY2F0ZWdvcnkpLlxyXG5cclxuICAgIC8vIE5vdGU6IHByb2JhYmx5IHdlIGNhbiBhbHdhc3kgdGFrZSBjdXJyZW50IHJvdyBsZW5ndGhcclxuICAgIC8vIGFzIGEgYGRpZmZgIC0gaXQgd2lsbCBmaXQgYm90aCBjYXNlIG9mIGFueSByb3cgYW5kXHJcbiAgICAvLyBzcGVjaWFsIGNhc2Ugb2YgdGhlIGxhc3Qgcm93LlxyXG4gICAgLy8gTm90ZTogaXQgY2FuIGJlIGFsc28gZWFzaWVyIHRvIHVwZGF0ZSBpbmRleGVzXHJcbiAgICAvLyBkaXJlY3RseSBoZXJlIGluc3RlYWQgb2YgY2FsbGluZyBvbkFycm93UmlnaHQuXHJcbiAgICAvLyBTYW1lIGlzIHRydWUgZm9yIGBvbkFycm93VXBgLlxyXG5cclxuICAgIC8vIFVubGVzcyBpZiB3ZSBhcmUgb24gdGhlIGxhc3Qgcm93IG9mIHRoZSBjYXRlZ29yeSBhbmRcclxuICAgIC8vIHRoZXJlIGFyZSBsZXNzIHRoZW4gYF9wZXJMaW5lYCBlbW9qaXMgaW4gaXQuXHJcbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgdXNlIHRoZSBsYXN0IHJvdyBsZW5ndGggYXMgZGlmZlxyXG4gICAgLy8gc28gd2UgZ28gc3RyYWlnaHQgZG93biwgZm9yIGV4YW1wbGU6XHJcbiAgICAvL1xyXG4gICAgLy8gICAxIDIgMyA0IDUgNlxyXG4gICAgLy8gICA3IDggOVxyXG4gICAgLy8gICBBIEIgQyBEIEUgRlxyXG4gICAgLy9cclxuICAgIC8vIElmIHdlIGdvIGRvd24gZnJvbSBgOGAsIHdlIG5lZWQgdG8gbW92ZSAzIGVtb2ppcyByaWdodFxyXG4gICAgLy8gdG8gbGVuZCBhdCBgQmAgKGFuZCAzIGlzIHRoZSBsZW5ndGggb2YgdGhlIGxhc3Qgcm93IG9mXHJcbiAgICAvLyB0aGlzIGNhdGVnb3J5KS5cclxuICAgIC8vIEFuZCBpZiB3ZSB1c2VkIDYgaW5zdGVhZCAocm93IGxlbmd0aCwgYF9wZXJMaW5lYCksIHdlIHdvdWxkXHJcbiAgICAvLyBsZW5kIHVwIGF0IGBFYC5cclxuICAgIGlmICh0aGlzLnByZXZpZXdFbW9qaUlkeCArIGRpZmYgPiBjYXRlZ29yeUxlbmd0aCkge1xyXG4gICAgICAvLyBDYWxjdWxhdGUgdGhlIGxhc3Qgcm93IGxlbmd0aC5cclxuICAgICAgZGlmZiA9IGNhdGVnb3J5TGVuZ3RoICUgdGhpcy5fcGVyTGluZVxyXG4gICAgfVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaWZmOyBpKyspIHtcclxuICAgICAgdGhpcy5vbkFycm93UmlnaHQoKVxyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGVQcmV2aWV3RW1vamkoKVxyXG4gIH1cclxuXHJcbiAgb25BcnJvd1VwKCkge1xyXG4gICAgLy8gU2ltaWxhciB0byBgb25BcnJvd0Rvd25gLCB0byBtb3ZlIHVwIHdlIGNhbiBtb3ZlIGxlZnRcclxuICAgIC8vIGJ5IGBfcGVyTGluZWAgbnVtYmVyIG9mIGVtb2ppcy5cclxuICAgIGxldCBkaWZmID0gdGhpcy5fcGVyTGluZVxyXG5cclxuICAgIGlmICh0aGlzLnByZXZpZXdFbW9qaUlkeCAtIGRpZmYgPCAwKSB7XHJcbiAgICAgIGlmICh0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4ID4gMCkge1xyXG4gICAgICAgIC8vIFVubGVzcyBpZiB3ZSBhcmUgb24gdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGNhdGVnb3J5IGFuZFxyXG4gICAgICAgIC8vIHRoZSBsYXN0IGxpbmUgaW4gdGhlIHByZXZpb3VzIGNhdGVnb3J5IGlzIHNob3J0ZXIgdGhhblxyXG4gICAgICAgIC8vIGBfcGVyTGluZWAuXHJcbiAgICAgICAgLy8gSW4gdGhpcyBjYXNlIHdlIHVzZSB0aGUgbGFzdCByb3cgbGVuZ3RoIGFzIGRpZmYsIHNvXHJcbiAgICAgICAgLy8gd2UgZ28gc3RyYWlnaHQgdXAsIGZvciBleGFtcGxlOlxyXG4gICAgICAgIC8vXHJcbiAgICAgICAgLy8gICAxIDIgMyA0IDVcclxuICAgICAgICAvLyAgIDYgNyA4XHJcbiAgICAgICAgLy8gICA5IEEgQiBDIERcclxuICAgICAgICAvL1xyXG4gICAgICAgIC8vIElmIHdlIGdvIHVwIGZyb20gYEFgLCB3ZSBuZWVkIHRvIG1vdmUgMyBlbW9qaXMgbGVmdCB0byBnZXRcclxuICAgICAgICAvLyB0byBgN2AgKGFuZCAzIGlzIHRoZSBsZW5ndGggb2YgdGhlIGxhc3Qgcm93IG9mIHRoZSBwcmV2aW91c1xyXG4gICAgICAgIC8vIGNhdGVnb3J5KS5cclxuICAgICAgICBjb25zdCBwcmV2Q2F0ZWdvcnlMYXN0Um93TGVuZ3RoID1cclxuICAgICAgICAgIHRoaXMuZmlsdGVyZWRDYXRlZ29yaWVzW3RoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHggLSAxXS5lbW9qaXNcclxuICAgICAgICAgICAgLmxlbmd0aCAlIHRoaXMuX3BlckxpbmVcclxuICAgICAgICAvLyBkaWZmID0gdGhpcy5wcmV2aWV3RW1vamlJZHggKyBwcmV2Q2F0ZWdvcnlMYXN0Um93TGVuZ3RoXHJcbiAgICAgICAgZGlmZiA9IHByZXZDYXRlZ29yeUxhc3RSb3dMZW5ndGhcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBkaWZmID0gMFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRpZmY7IGkrKykge1xyXG4gICAgICB0aGlzLm9uQXJyb3dMZWZ0KClcclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRlUHJldmlld0Vtb2ppKClcclxuICB9XHJcblxyXG4gIHVwZGF0ZVByZXZpZXdFbW9qaSgpIHtcclxuICAgIHRoaXMucHJldmlld0Vtb2ppID1cclxuICAgICAgdGhpcy5maWx0ZXJlZENhdGVnb3JpZXNbdGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeF0uZW1vamlzW1xyXG4gICAgICAgIHRoaXMucHJldmlld0Vtb2ppSWR4XHJcbiAgICAgIF1cclxuXHJcbiAgICB0aGlzLl92bS4kbmV4dFRpY2soKCkgPT4ge1xyXG4gICAgICAvLyBTY3JvbGwgdGhlIHZpZXcgaWYgdGhlIGBwcmV2aWV3RW1vamlgIGdvZXMgb3V0IG9mIHRoZSB2aXNpYmxlIGFyZWEuXHJcbiAgICAgIGNvbnN0IHNjcm9sbEVsID0gdGhpcy5fdm0uJHJlZnMuc2Nyb2xsXHJcblxyXG4gICAgICAvLyBOb3RlOiBpdCB3b3VsZCBiZSBtb3JlIFZ1ZS1pc2ggdG8gbWFyayBhbGwgZW1vamlzIHdpdGggYHJlZmBzXHJcbiAgICAgIC8vIGFuZCB0aGVuIGRvIHNvbWV0aGluZyBzaW1pbGFyIGhlcmUgdG8gd2hhdCB3ZSBkbyBpbiB0aGVcclxuICAgICAgLy8gYGdldENhdGVnb3JpZXNgIGluc3RlYWQgb2YgdXNpbmcgYHF1ZXJ5U2VsZWN0b3JgIGRpcmVjdGx5LFxyXG4gICAgICAvLyBidXQgSSBhbSBub3Qgc3VyZSBpZiBoYXZpbmcgbWFueSByZWZzIHdvdWxkIGFmZmVjdCB0aGUgcGVyZm9ybWFuY2VcclxuICAgICAgLy8gKGl0IG1pZ2h0LCBzbyBJIHVzZSBgcXVlcnlTZWxlY3RvcmAgZm9yIG5vdykuXHJcbiAgICAgIGNvbnN0IGVtb2ppRWwgPSBzY3JvbGxFbC5xdWVyeVNlbGVjdG9yKCcuZW1vamktbWFydC1lbW9qaS1zZWxlY3RlZCcpXHJcblxyXG4gICAgICBjb25zdCBzY3JvbGxIZWlnaHQgPSBzY3JvbGxFbC5vZmZzZXRUb3AgLSBzY3JvbGxFbC5vZmZzZXRIZWlnaHRcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGVtb2ppRWwgJiZcclxuICAgICAgICBlbW9qaUVsLm9mZnNldFRvcCArIGVtb2ppRWwub2Zmc2V0SGVpZ2h0ID5cclxuICAgICAgICAgIHNjcm9sbEhlaWdodCArIHNjcm9sbEVsLnNjcm9sbFRvcFxyXG4gICAgICApIHtcclxuICAgICAgICBzY3JvbGxFbC5zY3JvbGxUb3AgKz0gZW1vamlFbC5vZmZzZXRIZWlnaHRcclxuICAgICAgfVxyXG4gICAgICBpZiAoZW1vamlFbCAmJiBlbW9qaUVsLm9mZnNldFRvcCA8IHNjcm9sbEVsLnNjcm9sbFRvcCkge1xyXG4gICAgICAgIHNjcm9sbEVsLnNjcm9sbFRvcCAtPSBlbW9qaUVsLm9mZnNldEhlaWdodFxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZW1vamlzTGVuZ3RoKGNhdGVnb3J5SWR4KSB7XHJcbiAgICBpZiAoY2F0ZWdvcnlJZHggPT0gLTEpIHtcclxuICAgICAgcmV0dXJuIDBcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllc1tjYXRlZ29yeUlkeF0uZW1vamlzLmxlbmd0aFxyXG4gIH1cclxufVxyXG4iLCJjb25zdCBFbW9qaVByb3BzID0ge1xyXG4gIG5hdGl2ZToge1xyXG4gICAgdHlwZTogQm9vbGVhbixcclxuICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4gIH0sXHJcbiAgdG9vbHRpcDoge1xyXG4gICAgdHlwZTogQm9vbGVhbixcclxuICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4gIH0sXHJcbiAgZmFsbGJhY2s6IHtcclxuICAgIHR5cGU6IEZ1bmN0aW9uLFxyXG4gIH0sXHJcbiAgc2tpbjoge1xyXG4gICAgdHlwZTogTnVtYmVyLFxyXG4gICAgZGVmYXVsdDogMSxcclxuICB9LFxyXG4gIHNldDoge1xyXG4gICAgdHlwZTogU3RyaW5nLFxyXG4gICAgZGVmYXVsdDogJ2FwcGxlJyxcclxuICB9LFxyXG4gIGVtb2ppOiB7XHJcbiAgICB0eXBlOiBbU3RyaW5nLCBPYmplY3RdLFxyXG4gICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgfSxcclxuICBzaXplOiB7XHJcbiAgICB0eXBlOiBOdW1iZXIsXHJcbiAgICBkZWZhdWx0OiBudWxsLFxyXG4gIH0sXHJcbiAgdGFnOiB7XHJcbiAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICBkZWZhdWx0OiAnc3BhbicsXHJcbiAgfSxcclxufVxyXG5cclxuY29uc3QgUGlja2VyUHJvcHMgPSB7XHJcbiAgcGVyTGluZToge1xyXG4gICAgdHlwZTogTnVtYmVyLFxyXG4gICAgZGVmYXVsdDogOSxcclxuICB9LFxyXG4gIG1heFNlYXJjaFJlc3VsdHM6IHtcclxuICAgIHR5cGU6IE51bWJlcixcclxuICAgIGRlZmF1bHQ6IDc1LFxyXG4gIH0sXHJcbiAgZW1vamlTaXplOiB7XHJcbiAgICB0eXBlOiBOdW1iZXIsXHJcbiAgICBkZWZhdWx0OiAyNCxcclxuICB9LFxyXG4gIHRpdGxlOiB7XHJcbiAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICBkZWZhdWx0OiAnRW1vamkgTWFydOKEoicsXHJcbiAgfSxcclxuICBlbW9qaToge1xyXG4gICAgdHlwZTogU3RyaW5nLFxyXG4gICAgZGVmYXVsdDogJ2RlcGFydG1lbnRfc3RvcmUnLFxyXG4gIH0sXHJcbiAgY29sb3I6IHtcclxuICAgIHR5cGU6IFN0cmluZyxcclxuICAgIGRlZmF1bHQ6ICcjYWU2NWM1JyxcclxuICB9LFxyXG4gIHNldDoge1xyXG4gICAgdHlwZTogU3RyaW5nLFxyXG4gICAgZGVmYXVsdDogJ2FwcGxlJyxcclxuICB9LFxyXG4gIHNraW46IHtcclxuICAgIHR5cGU6IE51bWJlcixcclxuICAgIGRlZmF1bHQ6IG51bGwsXHJcbiAgfSxcclxuICBkZWZhdWx0U2tpbjoge1xyXG4gICAgdHlwZTogTnVtYmVyLFxyXG4gICAgZGVmYXVsdDogMSxcclxuICB9LFxyXG4gIG5hdGl2ZToge1xyXG4gICAgdHlwZTogQm9vbGVhbixcclxuICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4gIH0sXHJcbiAgZW1vamlUb29sdGlwOiB7XHJcbiAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgZGVmYXVsdDogZmFsc2UsXHJcbiAgfSxcclxuICBhdXRvRm9jdXM6IHtcclxuICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICBkZWZhdWx0OiBmYWxzZSxcclxuICB9LFxyXG4gIGkxOG46IHtcclxuICAgIHR5cGU6IE9iamVjdCxcclxuICAgIGRlZmF1bHQoKSB7XHJcbiAgICAgIHJldHVybiB7fVxyXG4gICAgfSxcclxuICB9LFxyXG4gIHNob3dQcmV2aWV3OiB7XHJcbiAgICB0eXBlOiBCb29sZWFuLFxyXG4gICAgZGVmYXVsdDogdHJ1ZSxcclxuICB9LFxyXG4gIHNob3dTZWFyY2g6IHtcclxuICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICBkZWZhdWx0OiB0cnVlLFxyXG4gIH0sXHJcbiAgc2hvd0NhdGVnb3JpZXM6IHtcclxuICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICBkZWZhdWx0OiB0cnVlLFxyXG4gIH0sXHJcbiAgc2hvd1NraW5Ub25lczoge1xyXG4gICAgdHlwZTogQm9vbGVhbixcclxuICAgIGRlZmF1bHQ6IHRydWUsXHJcbiAgfSxcclxuICBpbmZpbml0ZVNjcm9sbDoge1xyXG4gICAgdHlwZTogQm9vbGVhbixcclxuICAgIGRlZmF1bHQ6IHRydWUsXHJcbiAgfSxcclxuICBwaWNrZXJTdHlsZXM6IHtcclxuICAgIHR5cGU6IE9iamVjdCxcclxuICAgIGRlZmF1bHQoKSB7XHJcbiAgICAgIHJldHVybiB7fVxyXG4gICAgfSxcclxuICB9LFxyXG59XHJcblxyXG5leHBvcnQgeyBFbW9qaVByb3BzLCBQaWNrZXJQcm9wcyB9XHJcbiIsInZhciBOQU1FU1BBQ0UgPSAnZW1vamktbWFydCdcclxuXHJcbmNvbnN0IF9KU09OID0gSlNPTlxyXG5cclxudmFyIGlzTG9jYWxTdG9yYWdlU3VwcG9ydGVkID1cclxuICB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiAnbG9jYWxTdG9yYWdlJyBpbiB3aW5kb3dcclxuXHJcbmxldCBnZXR0ZXJcclxubGV0IHNldHRlclxyXG5cclxuZnVuY3Rpb24gc2V0SGFuZGxlcnMoaGFuZGxlcnMpIHtcclxuICBoYW5kbGVycyB8fCAoaGFuZGxlcnMgPSB7fSlcclxuXHJcbiAgZ2V0dGVyID0gaGFuZGxlcnMuZ2V0dGVyXHJcbiAgc2V0dGVyID0gaGFuZGxlcnMuc2V0dGVyXHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNldE5hbWVzcGFjZShuYW1lc3BhY2UpIHtcclxuICBOQU1FU1BBQ0UgPSBuYW1lc3BhY2VcclxufVxyXG5cclxuZnVuY3Rpb24gdXBkYXRlKHN0YXRlKSB7XHJcbiAgZm9yIChsZXQga2V5IGluIHN0YXRlKSB7XHJcbiAgICBsZXQgdmFsdWUgPSBzdGF0ZVtrZXldXHJcbiAgICBzZXQoa2V5LCB2YWx1ZSlcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNldChrZXksIHZhbHVlKSB7XHJcbiAgaWYgKHNldHRlcikge1xyXG4gICAgc2V0dGVyKGtleSwgdmFsdWUpXHJcbiAgfSBlbHNlIHtcclxuICAgIGlmICghaXNMb2NhbFN0b3JhZ2VTdXBwb3J0ZWQpIHJldHVyblxyXG4gICAgdHJ5IHtcclxuICAgICAgd2luZG93LmxvY2FsU3RvcmFnZVtgJHtOQU1FU1BBQ0V9LiR7a2V5fWBdID0gX0pTT04uc3RyaW5naWZ5KHZhbHVlKVxyXG4gICAgfSBjYXRjaCAoZSkge31cclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldChrZXkpIHtcclxuICBpZiAoZ2V0dGVyKSB7XHJcbiAgICByZXR1cm4gZ2V0dGVyKGtleSlcclxuICB9IGVsc2Uge1xyXG4gICAgaWYgKCFpc0xvY2FsU3RvcmFnZVN1cHBvcnRlZCkgcmV0dXJuXHJcbiAgICB0cnkge1xyXG4gICAgICB2YXIgdmFsdWUgPSB3aW5kb3cubG9jYWxTdG9yYWdlW2Ake05BTUVTUEFDRX0uJHtrZXl9YF1cclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKHZhbHVlKVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgeyB1cGRhdGUsIHNldCwgZ2V0LCBzZXROYW1lc3BhY2UsIHNldEhhbmRsZXJzIH1cclxuIiwiLy8gaHR0cDovL3BhdWxpcmlzaC5jb20vMjAxMS9yZXF1ZXN0YW5pbWF0aW9uZnJhbWUtZm9yLXNtYXJ0LWFuaW1hdGluZy9cclxuLy8gaHR0cDovL215Lm9wZXJhLmNvbS9lbW9sbGVyL2Jsb2cvMjAxMS8xMi8yMC9yZXF1ZXN0YW5pbWF0aW9uZnJhbWUtZm9yLXNtYXJ0LWVyLWFuaW1hdGluZ1xyXG5cclxuLy8gcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHBvbHlmaWxsIGJ5IEVyaWsgTcO2bGxlci4gZml4ZXMgZnJvbSBQYXVsIElyaXNoIGFuZCBUaW5vIFppamRlbFxyXG5cclxuLy8gTUlUIGxpY2Vuc2VcclxuXHJcbnZhciBpc1dpbmRvd0F2YWlsYWJsZSA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnXHJcblxyXG5pc1dpbmRvd0F2YWlsYWJsZSAmJlxyXG4gIChmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgbGFzdFRpbWUgPSAwXHJcbiAgICB2YXIgdmVuZG9ycyA9IFsnbXMnLCAnbW96JywgJ3dlYmtpdCcsICdvJ11cclxuXHJcbiAgICBmb3IgKHZhciB4ID0gMDsgeCA8IHZlbmRvcnMubGVuZ3RoICYmICF3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lOyArK3gpIHtcclxuICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSA9XHJcbiAgICAgICAgd2luZG93W3ZlbmRvcnNbeF0gKyAnUmVxdWVzdEFuaW1hdGlvbkZyYW1lJ11cclxuICAgICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lID1cclxuICAgICAgICB3aW5kb3dbdmVuZG9yc1t4XSArICdDYW5jZWxBbmltYXRpb25GcmFtZSddIHx8XHJcbiAgICAgICAgd2luZG93W3ZlbmRvcnNbeF0gKyAnQ2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lJ11cclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpXHJcbiAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPSBmdW5jdGlvbiAoY2FsbGJhY2ssIGVsZW1lbnQpIHtcclxuICAgICAgICB2YXIgY3VyclRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKVxyXG4gICAgICAgIHZhciB0aW1lVG9DYWxsID0gTWF0aC5tYXgoMCwgMTYgLSAoY3VyclRpbWUgLSBsYXN0VGltZSkpXHJcbiAgICAgICAgdmFyIGlkID0gd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgY2FsbGJhY2soY3VyclRpbWUgKyB0aW1lVG9DYWxsKVxyXG4gICAgICAgIH0sIHRpbWVUb0NhbGwpXHJcblxyXG4gICAgICAgIGxhc3RUaW1lID0gY3VyclRpbWUgKyB0aW1lVG9DYWxsXHJcbiAgICAgICAgcmV0dXJuIGlkXHJcbiAgICAgIH1cclxuXHJcbiAgICBpZiAoIXdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSlcclxuICAgICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lID0gZnVuY3Rpb24gKGlkKSB7XHJcbiAgICAgICAgY2xlYXJUaW1lb3V0KGlkKVxyXG4gICAgICB9XHJcbiAgfSkoKVxyXG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAodHlwZW9mIGl0ICE9ICdmdW5jdGlvbicpIHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGEgZnVuY3Rpb24hJyk7XG4gIHJldHVybiBpdDtcbn07XG4iLCIvLyAyMi4xLjMuMzEgQXJyYXkucHJvdG90eXBlW0BAdW5zY29wYWJsZXNdXG52YXIgVU5TQ09QQUJMRVMgPSByZXF1aXJlKCcuL193a3MnKSgndW5zY29wYWJsZXMnKTtcbnZhciBBcnJheVByb3RvID0gQXJyYXkucHJvdG90eXBlO1xuaWYgKEFycmF5UHJvdG9bVU5TQ09QQUJMRVNdID09IHVuZGVmaW5lZCkgcmVxdWlyZSgnLi9faGlkZScpKEFycmF5UHJvdG8sIFVOU0NPUEFCTEVTLCB7fSk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgQXJyYXlQcm90b1tVTlNDT1BBQkxFU11ba2V5XSA9IHRydWU7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGF0ID0gcmVxdWlyZSgnLi9fc3RyaW5nLWF0JykodHJ1ZSk7XG5cbiAvLyBgQWR2YW5jZVN0cmluZ0luZGV4YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWFkdmFuY2VzdHJpbmdpbmRleFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoUywgaW5kZXgsIHVuaWNvZGUpIHtcbiAgcmV0dXJuIGluZGV4ICsgKHVuaWNvZGUgPyBhdChTLCBpbmRleCkubGVuZ3RoIDogMSk7XG59O1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoIWlzT2JqZWN0KGl0KSkgdGhyb3cgVHlwZUVycm9yKGl0ICsgJyBpcyBub3QgYW4gb2JqZWN0IScpO1xuICByZXR1cm4gaXQ7XG59O1xuIiwiLy8gZmFsc2UgLT4gQXJyYXkjaW5kZXhPZlxuLy8gdHJ1ZSAgLT4gQXJyYXkjaW5jbHVkZXNcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuL190by1sZW5ndGgnKTtcbnZhciB0b0Fic29sdXRlSW5kZXggPSByZXF1aXJlKCcuL190by1hYnNvbHV0ZS1pbmRleCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoSVNfSU5DTFVERVMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgkdGhpcywgZWwsIGZyb21JbmRleCkge1xuICAgIHZhciBPID0gdG9JT2JqZWN0KCR0aGlzKTtcbiAgICB2YXIgbGVuZ3RoID0gdG9MZW5ndGgoTy5sZW5ndGgpO1xuICAgIHZhciBpbmRleCA9IHRvQWJzb2x1dGVJbmRleChmcm9tSW5kZXgsIGxlbmd0aCk7XG4gICAgdmFyIHZhbHVlO1xuICAgIC8vIEFycmF5I2luY2x1ZGVzIHVzZXMgU2FtZVZhbHVlWmVybyBlcXVhbGl0eSBhbGdvcml0aG1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gICAgaWYgKElTX0lOQ0xVREVTICYmIGVsICE9IGVsKSB3aGlsZSAobGVuZ3RoID4gaW5kZXgpIHtcbiAgICAgIHZhbHVlID0gT1tpbmRleCsrXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcbiAgICAgIGlmICh2YWx1ZSAhPSB2YWx1ZSkgcmV0dXJuIHRydWU7XG4gICAgLy8gQXJyYXkjaW5kZXhPZiBpZ25vcmVzIGhvbGVzLCBBcnJheSNpbmNsdWRlcyAtIG5vdFxuICAgIH0gZWxzZSBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykgaWYgKElTX0lOQ0xVREVTIHx8IGluZGV4IGluIE8pIHtcbiAgICAgIGlmIChPW2luZGV4XSA9PT0gZWwpIHJldHVybiBJU19JTkNMVURFUyB8fCBpbmRleCB8fCAwO1xuICAgIH0gcmV0dXJuICFJU19JTkNMVURFUyAmJiAtMTtcbiAgfTtcbn07XG4iLCIvLyAwIC0+IEFycmF5I2ZvckVhY2hcbi8vIDEgLT4gQXJyYXkjbWFwXG4vLyAyIC0+IEFycmF5I2ZpbHRlclxuLy8gMyAtPiBBcnJheSNzb21lXG4vLyA0IC0+IEFycmF5I2V2ZXJ5XG4vLyA1IC0+IEFycmF5I2ZpbmRcbi8vIDYgLT4gQXJyYXkjZmluZEluZGV4XG52YXIgY3R4ID0gcmVxdWlyZSgnLi9fY3R4Jyk7XG52YXIgSU9iamVjdCA9IHJlcXVpcmUoJy4vX2lvYmplY3QnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4vX3RvLW9iamVjdCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi9fdG8tbGVuZ3RoJyk7XG52YXIgYXNjID0gcmVxdWlyZSgnLi9fYXJyYXktc3BlY2llcy1jcmVhdGUnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKFRZUEUsICRjcmVhdGUpIHtcbiAgdmFyIElTX01BUCA9IFRZUEUgPT0gMTtcbiAgdmFyIElTX0ZJTFRFUiA9IFRZUEUgPT0gMjtcbiAgdmFyIElTX1NPTUUgPSBUWVBFID09IDM7XG4gIHZhciBJU19FVkVSWSA9IFRZUEUgPT0gNDtcbiAgdmFyIElTX0ZJTkRfSU5ERVggPSBUWVBFID09IDY7XG4gIHZhciBOT19IT0xFUyA9IFRZUEUgPT0gNSB8fCBJU19GSU5EX0lOREVYO1xuICB2YXIgY3JlYXRlID0gJGNyZWF0ZSB8fCBhc2M7XG4gIHJldHVybiBmdW5jdGlvbiAoJHRoaXMsIGNhbGxiYWNrZm4sIHRoYXQpIHtcbiAgICB2YXIgTyA9IHRvT2JqZWN0KCR0aGlzKTtcbiAgICB2YXIgc2VsZiA9IElPYmplY3QoTyk7XG4gICAgdmFyIGYgPSBjdHgoY2FsbGJhY2tmbiwgdGhhdCwgMyk7XG4gICAgdmFyIGxlbmd0aCA9IHRvTGVuZ3RoKHNlbGYubGVuZ3RoKTtcbiAgICB2YXIgaW5kZXggPSAwO1xuICAgIHZhciByZXN1bHQgPSBJU19NQVAgPyBjcmVhdGUoJHRoaXMsIGxlbmd0aCkgOiBJU19GSUxURVIgPyBjcmVhdGUoJHRoaXMsIDApIDogdW5kZWZpbmVkO1xuICAgIHZhciB2YWwsIHJlcztcbiAgICBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykgaWYgKE5PX0hPTEVTIHx8IGluZGV4IGluIHNlbGYpIHtcbiAgICAgIHZhbCA9IHNlbGZbaW5kZXhdO1xuICAgICAgcmVzID0gZih2YWwsIGluZGV4LCBPKTtcbiAgICAgIGlmIChUWVBFKSB7XG4gICAgICAgIGlmIChJU19NQVApIHJlc3VsdFtpbmRleF0gPSByZXM7ICAgLy8gbWFwXG4gICAgICAgIGVsc2UgaWYgKHJlcykgc3dpdGNoIChUWVBFKSB7XG4gICAgICAgICAgY2FzZSAzOiByZXR1cm4gdHJ1ZTsgICAgICAgICAgICAgLy8gc29tZVxuICAgICAgICAgIGNhc2UgNTogcmV0dXJuIHZhbDsgICAgICAgICAgICAgIC8vIGZpbmRcbiAgICAgICAgICBjYXNlIDY6IHJldHVybiBpbmRleDsgICAgICAgICAgICAvLyBmaW5kSW5kZXhcbiAgICAgICAgICBjYXNlIDI6IHJlc3VsdC5wdXNoKHZhbCk7ICAgICAgICAvLyBmaWx0ZXJcbiAgICAgICAgfSBlbHNlIGlmIChJU19FVkVSWSkgcmV0dXJuIGZhbHNlOyAvLyBldmVyeVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gSVNfRklORF9JTkRFWCA/IC0xIDogSVNfU09NRSB8fCBJU19FVkVSWSA/IElTX0VWRVJZIDogcmVzdWx0O1xuICB9O1xufTtcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIGlzQXJyYXkgPSByZXF1aXJlKCcuL19pcy1hcnJheScpO1xudmFyIFNQRUNJRVMgPSByZXF1aXJlKCcuL193a3MnKSgnc3BlY2llcycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvcmlnaW5hbCkge1xuICB2YXIgQztcbiAgaWYgKGlzQXJyYXkob3JpZ2luYWwpKSB7XG4gICAgQyA9IG9yaWdpbmFsLmNvbnN0cnVjdG9yO1xuICAgIC8vIGNyb3NzLXJlYWxtIGZhbGxiYWNrXG4gICAgaWYgKHR5cGVvZiBDID09ICdmdW5jdGlvbicgJiYgKEMgPT09IEFycmF5IHx8IGlzQXJyYXkoQy5wcm90b3R5cGUpKSkgQyA9IHVuZGVmaW5lZDtcbiAgICBpZiAoaXNPYmplY3QoQykpIHtcbiAgICAgIEMgPSBDW1NQRUNJRVNdO1xuICAgICAgaWYgKEMgPT09IG51bGwpIEMgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9IHJldHVybiBDID09PSB1bmRlZmluZWQgPyBBcnJheSA6IEM7XG59O1xuIiwiLy8gOS40LjIuMyBBcnJheVNwZWNpZXNDcmVhdGUob3JpZ2luYWxBcnJheSwgbGVuZ3RoKVxudmFyIHNwZWNpZXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4vX2FycmF5LXNwZWNpZXMtY29uc3RydWN0b3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob3JpZ2luYWwsIGxlbmd0aCkge1xuICByZXR1cm4gbmV3IChzcGVjaWVzQ29uc3RydWN0b3Iob3JpZ2luYWwpKShsZW5ndGgpO1xufTtcbiIsIi8vIGdldHRpbmcgdGFnIGZyb20gMTkuMS4zLjYgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZygpXG52YXIgY29mID0gcmVxdWlyZSgnLi9fY29mJyk7XG52YXIgVEFHID0gcmVxdWlyZSgnLi9fd2tzJykoJ3RvU3RyaW5nVGFnJyk7XG4vLyBFUzMgd3JvbmcgaGVyZVxudmFyIEFSRyA9IGNvZihmdW5jdGlvbiAoKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSkgPT0gJ0FyZ3VtZW50cyc7XG5cbi8vIGZhbGxiYWNrIGZvciBJRTExIFNjcmlwdCBBY2Nlc3MgRGVuaWVkIGVycm9yXG52YXIgdHJ5R2V0ID0gZnVuY3Rpb24gKGl0LCBrZXkpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gaXRba2V5XTtcbiAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgTywgVCwgQjtcbiAgcmV0dXJuIGl0ID09PSB1bmRlZmluZWQgPyAnVW5kZWZpbmVkJyA6IGl0ID09PSBudWxsID8gJ051bGwnXG4gICAgLy8gQEB0b1N0cmluZ1RhZyBjYXNlXG4gICAgOiB0eXBlb2YgKFQgPSB0cnlHZXQoTyA9IE9iamVjdChpdCksIFRBRykpID09ICdzdHJpbmcnID8gVFxuICAgIC8vIGJ1aWx0aW5UYWcgY2FzZVxuICAgIDogQVJHID8gY29mKE8pXG4gICAgLy8gRVMzIGFyZ3VtZW50cyBmYWxsYmFja1xuICAgIDogKEIgPSBjb2YoTykpID09ICdPYmplY3QnICYmIHR5cGVvZiBPLmNhbGxlZSA9PSAnZnVuY3Rpb24nID8gJ0FyZ3VtZW50cycgOiBCO1xufTtcbiIsInZhciB0b1N0cmluZyA9IHt9LnRvU3RyaW5nO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdG9TdHJpbmcuY2FsbChpdCkuc2xpY2UoOCwgLTEpO1xufTtcbiIsInZhciBjb3JlID0gbW9kdWxlLmV4cG9ydHMgPSB7IHZlcnNpb246ICcyLjYuNScgfTtcbmlmICh0eXBlb2YgX19lID09ICdudW1iZXInKSBfX2UgPSBjb3JlOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG4iLCIndXNlIHN0cmljdCc7XG52YXIgJGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJyk7XG52YXIgY3JlYXRlRGVzYyA9IHJlcXVpcmUoJy4vX3Byb3BlcnR5LWRlc2MnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBpbmRleCwgdmFsdWUpIHtcbiAgaWYgKGluZGV4IGluIG9iamVjdCkgJGRlZmluZVByb3BlcnR5LmYob2JqZWN0LCBpbmRleCwgY3JlYXRlRGVzYygwLCB2YWx1ZSkpO1xuICBlbHNlIG9iamVjdFtpbmRleF0gPSB2YWx1ZTtcbn07XG4iLCIvLyBvcHRpb25hbCAvIHNpbXBsZSBjb250ZXh0IGJpbmRpbmdcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuL19hLWZ1bmN0aW9uJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChmbiwgdGhhdCwgbGVuZ3RoKSB7XG4gIGFGdW5jdGlvbihmbik7XG4gIGlmICh0aGF0ID09PSB1bmRlZmluZWQpIHJldHVybiBmbjtcbiAgc3dpdGNoIChsZW5ndGgpIHtcbiAgICBjYXNlIDE6IHJldHVybiBmdW5jdGlvbiAoYSkge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSk7XG4gICAgfTtcbiAgICBjYXNlIDI6IHJldHVybiBmdW5jdGlvbiAoYSwgYikge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSwgYik7XG4gICAgfTtcbiAgICBjYXNlIDM6IHJldHVybiBmdW5jdGlvbiAoYSwgYiwgYykge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSwgYiwgYyk7XG4gICAgfTtcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24gKC8qIC4uLmFyZ3MgKi8pIHtcbiAgICByZXR1cm4gZm4uYXBwbHkodGhhdCwgYXJndW1lbnRzKTtcbiAgfTtcbn07XG4iLCIvLyA3LjIuMSBSZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGFyZ3VtZW50KVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKGl0ID09IHVuZGVmaW5lZCkgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIFwiICsgaXQpO1xuICByZXR1cm4gaXQ7XG59O1xuIiwiLy8gVGhhbmsncyBJRTggZm9yIGhpcyBmdW5ueSBkZWZpbmVQcm9wZXJ0eVxubW9kdWxlLmV4cG9ydHMgPSAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdhJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSkuYSAhPSA3O1xufSk7XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBkb2N1bWVudCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpLmRvY3VtZW50O1xuLy8gdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgaXMgJ29iamVjdCcgaW4gb2xkIElFXG52YXIgaXMgPSBpc09iamVjdChkb2N1bWVudCkgJiYgaXNPYmplY3QoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXMgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGl0KSA6IHt9O1xufTtcbiIsIi8vIElFIDgtIGRvbid0IGVudW0gYnVnIGtleXNcbm1vZHVsZS5leHBvcnRzID0gKFxuICAnY29uc3RydWN0b3IsaGFzT3duUHJvcGVydHksaXNQcm90b3R5cGVPZixwcm9wZXJ0eUlzRW51bWVyYWJsZSx0b0xvY2FsZVN0cmluZyx0b1N0cmluZyx2YWx1ZU9mJ1xuKS5zcGxpdCgnLCcpO1xuIiwiLy8gYWxsIGVudW1lcmFibGUgb2JqZWN0IGtleXMsIGluY2x1ZGVzIHN5bWJvbHNcbnZhciBnZXRLZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMnKTtcbnZhciBnT1BTID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdvcHMnKTtcbnZhciBwSUUgPSByZXF1aXJlKCcuL19vYmplY3QtcGllJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgcmVzdWx0ID0gZ2V0S2V5cyhpdCk7XG4gIHZhciBnZXRTeW1ib2xzID0gZ09QUy5mO1xuICBpZiAoZ2V0U3ltYm9scykge1xuICAgIHZhciBzeW1ib2xzID0gZ2V0U3ltYm9scyhpdCk7XG4gICAgdmFyIGlzRW51bSA9IHBJRS5mO1xuICAgIHZhciBpID0gMDtcbiAgICB2YXIga2V5O1xuICAgIHdoaWxlIChzeW1ib2xzLmxlbmd0aCA+IGkpIGlmIChpc0VudW0uY2FsbChpdCwga2V5ID0gc3ltYm9sc1tpKytdKSkgcmVzdWx0LnB1c2goa2V5KTtcbiAgfSByZXR1cm4gcmVzdWx0O1xufTtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuL19nbG9iYWwnKTtcbnZhciBjb3JlID0gcmVxdWlyZSgnLi9fY29yZScpO1xudmFyIGhpZGUgPSByZXF1aXJlKCcuL19oaWRlJyk7XG52YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuL19yZWRlZmluZScpO1xudmFyIGN0eCA9IHJlcXVpcmUoJy4vX2N0eCcpO1xudmFyIFBST1RPVFlQRSA9ICdwcm90b3R5cGUnO1xuXG52YXIgJGV4cG9ydCA9IGZ1bmN0aW9uICh0eXBlLCBuYW1lLCBzb3VyY2UpIHtcbiAgdmFyIElTX0ZPUkNFRCA9IHR5cGUgJiAkZXhwb3J0LkY7XG4gIHZhciBJU19HTE9CQUwgPSB0eXBlICYgJGV4cG9ydC5HO1xuICB2YXIgSVNfU1RBVElDID0gdHlwZSAmICRleHBvcnQuUztcbiAgdmFyIElTX1BST1RPID0gdHlwZSAmICRleHBvcnQuUDtcbiAgdmFyIElTX0JJTkQgPSB0eXBlICYgJGV4cG9ydC5CO1xuICB2YXIgdGFyZ2V0ID0gSVNfR0xPQkFMID8gZ2xvYmFsIDogSVNfU1RBVElDID8gZ2xvYmFsW25hbWVdIHx8IChnbG9iYWxbbmFtZV0gPSB7fSkgOiAoZ2xvYmFsW25hbWVdIHx8IHt9KVtQUk9UT1RZUEVdO1xuICB2YXIgZXhwb3J0cyA9IElTX0dMT0JBTCA/IGNvcmUgOiBjb3JlW25hbWVdIHx8IChjb3JlW25hbWVdID0ge30pO1xuICB2YXIgZXhwUHJvdG8gPSBleHBvcnRzW1BST1RPVFlQRV0gfHwgKGV4cG9ydHNbUFJPVE9UWVBFXSA9IHt9KTtcbiAgdmFyIGtleSwgb3duLCBvdXQsIGV4cDtcbiAgaWYgKElTX0dMT0JBTCkgc291cmNlID0gbmFtZTtcbiAgZm9yIChrZXkgaW4gc291cmNlKSB7XG4gICAgLy8gY29udGFpbnMgaW4gbmF0aXZlXG4gICAgb3duID0gIUlTX0ZPUkNFRCAmJiB0YXJnZXQgJiYgdGFyZ2V0W2tleV0gIT09IHVuZGVmaW5lZDtcbiAgICAvLyBleHBvcnQgbmF0aXZlIG9yIHBhc3NlZFxuICAgIG91dCA9IChvd24gPyB0YXJnZXQgOiBzb3VyY2UpW2tleV07XG4gICAgLy8gYmluZCB0aW1lcnMgdG8gZ2xvYmFsIGZvciBjYWxsIGZyb20gZXhwb3J0IGNvbnRleHRcbiAgICBleHAgPSBJU19CSU5EICYmIG93biA/IGN0eChvdXQsIGdsb2JhbCkgOiBJU19QUk9UTyAmJiB0eXBlb2Ygb3V0ID09ICdmdW5jdGlvbicgPyBjdHgoRnVuY3Rpb24uY2FsbCwgb3V0KSA6IG91dDtcbiAgICAvLyBleHRlbmQgZ2xvYmFsXG4gICAgaWYgKHRhcmdldCkgcmVkZWZpbmUodGFyZ2V0LCBrZXksIG91dCwgdHlwZSAmICRleHBvcnQuVSk7XG4gICAgLy8gZXhwb3J0XG4gICAgaWYgKGV4cG9ydHNba2V5XSAhPSBvdXQpIGhpZGUoZXhwb3J0cywga2V5LCBleHApO1xuICAgIGlmIChJU19QUk9UTyAmJiBleHBQcm90b1trZXldICE9IG91dCkgZXhwUHJvdG9ba2V5XSA9IG91dDtcbiAgfVxufTtcbmdsb2JhbC5jb3JlID0gY29yZTtcbi8vIHR5cGUgYml0bWFwXG4kZXhwb3J0LkYgPSAxOyAgIC8vIGZvcmNlZFxuJGV4cG9ydC5HID0gMjsgICAvLyBnbG9iYWxcbiRleHBvcnQuUyA9IDQ7ICAgLy8gc3RhdGljXG4kZXhwb3J0LlAgPSA4OyAgIC8vIHByb3RvXG4kZXhwb3J0LkIgPSAxNjsgIC8vIGJpbmRcbiRleHBvcnQuVyA9IDMyOyAgLy8gd3JhcFxuJGV4cG9ydC5VID0gNjQ7ICAvLyBzYWZlXG4kZXhwb3J0LlIgPSAxMjg7IC8vIHJlYWwgcHJvdG8gbWV0aG9kIGZvciBgbGlicmFyeWBcbm1vZHVsZS5leHBvcnRzID0gJGV4cG9ydDtcbiIsInZhciBNQVRDSCA9IHJlcXVpcmUoJy4vX3drcycpKCdtYXRjaCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoS0VZKSB7XG4gIHZhciByZSA9IC8uLztcbiAgdHJ5IHtcbiAgICAnLy4vJ1tLRVldKHJlKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRyeSB7XG4gICAgICByZVtNQVRDSF0gPSBmYWxzZTtcbiAgICAgIHJldHVybiAhJy8uLydbS0VZXShyZSk7XG4gICAgfSBjYXRjaCAoZikgeyAvKiBlbXB0eSAqLyB9XG4gIH0gcmV0dXJuIHRydWU7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZXhlYykge1xuICB0cnkge1xuICAgIHJldHVybiAhIWV4ZWMoKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xucmVxdWlyZSgnLi9lczYucmVnZXhwLmV4ZWMnKTtcbnZhciByZWRlZmluZSA9IHJlcXVpcmUoJy4vX3JlZGVmaW5lJyk7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4vX2ZhaWxzJyk7XG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcbnZhciB3a3MgPSByZXF1aXJlKCcuL193a3MnKTtcbnZhciByZWdleHBFeGVjID0gcmVxdWlyZSgnLi9fcmVnZXhwLWV4ZWMnKTtcblxudmFyIFNQRUNJRVMgPSB3a3MoJ3NwZWNpZXMnKTtcblxudmFyIFJFUExBQ0VfU1VQUE9SVFNfTkFNRURfR1JPVVBTID0gIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gI3JlcGxhY2UgbmVlZHMgYnVpbHQtaW4gc3VwcG9ydCBmb3IgbmFtZWQgZ3JvdXBzLlxuICAvLyAjbWF0Y2ggd29ya3MgZmluZSBiZWNhdXNlIGl0IGp1c3QgcmV0dXJuIHRoZSBleGVjIHJlc3VsdHMsIGV2ZW4gaWYgaXQgaGFzXG4gIC8vIGEgXCJncm9wc1wiIHByb3BlcnR5LlxuICB2YXIgcmUgPSAvLi87XG4gIHJlLmV4ZWMgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgIHJlc3VsdC5ncm91cHMgPSB7IGE6ICc3JyB9O1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG4gIHJldHVybiAnJy5yZXBsYWNlKHJlLCAnJDxhPicpICE9PSAnNyc7XG59KTtcblxudmFyIFNQTElUX1dPUktTX1dJVEhfT1ZFUldSSVRURU5fRVhFQyA9IChmdW5jdGlvbiAoKSB7XG4gIC8vIENocm9tZSA1MSBoYXMgYSBidWdneSBcInNwbGl0XCIgaW1wbGVtZW50YXRpb24gd2hlbiBSZWdFeHAjZXhlYyAhPT0gbmF0aXZlRXhlY1xuICB2YXIgcmUgPSAvKD86KS87XG4gIHZhciBvcmlnaW5hbEV4ZWMgPSByZS5leGVjO1xuICByZS5leGVjID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gb3JpZ2luYWxFeGVjLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH07XG4gIHZhciByZXN1bHQgPSAnYWInLnNwbGl0KHJlKTtcbiAgcmV0dXJuIHJlc3VsdC5sZW5ndGggPT09IDIgJiYgcmVzdWx0WzBdID09PSAnYScgJiYgcmVzdWx0WzFdID09PSAnYic7XG59KSgpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChLRVksIGxlbmd0aCwgZXhlYykge1xuICB2YXIgU1lNQk9MID0gd2tzKEtFWSk7XG5cbiAgdmFyIERFTEVHQVRFU19UT19TWU1CT0wgPSAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIC8vIFN0cmluZyBtZXRob2RzIGNhbGwgc3ltYm9sLW5hbWVkIFJlZ0VwIG1ldGhvZHNcbiAgICB2YXIgTyA9IHt9O1xuICAgIE9bU1lNQk9MXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH07XG4gICAgcmV0dXJuICcnW0tFWV0oTykgIT0gNztcbiAgfSk7XG5cbiAgdmFyIERFTEVHQVRFU19UT19FWEVDID0gREVMRUdBVEVTX1RPX1NZTUJPTCA/ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgLy8gU3ltYm9sLW5hbWVkIFJlZ0V4cCBtZXRob2RzIGNhbGwgLmV4ZWNcbiAgICB2YXIgZXhlY0NhbGxlZCA9IGZhbHNlO1xuICAgIHZhciByZSA9IC9hLztcbiAgICByZS5leGVjID0gZnVuY3Rpb24gKCkgeyBleGVjQ2FsbGVkID0gdHJ1ZTsgcmV0dXJuIG51bGw7IH07XG4gICAgaWYgKEtFWSA9PT0gJ3NwbGl0Jykge1xuICAgICAgLy8gUmVnRXhwW0BAc3BsaXRdIGRvZXNuJ3QgY2FsbCB0aGUgcmVnZXgncyBleGVjIG1ldGhvZCwgYnV0IGZpcnN0IGNyZWF0ZXNcbiAgICAgIC8vIGEgbmV3IG9uZS4gV2UgbmVlZCB0byByZXR1cm4gdGhlIHBhdGNoZWQgcmVnZXggd2hlbiBjcmVhdGluZyB0aGUgbmV3IG9uZS5cbiAgICAgIHJlLmNvbnN0cnVjdG9yID0ge307XG4gICAgICByZS5jb25zdHJ1Y3RvcltTUEVDSUVTXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHJlOyB9O1xuICAgIH1cbiAgICByZVtTWU1CT0xdKCcnKTtcbiAgICByZXR1cm4gIWV4ZWNDYWxsZWQ7XG4gIH0pIDogdW5kZWZpbmVkO1xuXG4gIGlmIChcbiAgICAhREVMRUdBVEVTX1RPX1NZTUJPTCB8fFxuICAgICFERUxFR0FURVNfVE9fRVhFQyB8fFxuICAgIChLRVkgPT09ICdyZXBsYWNlJyAmJiAhUkVQTEFDRV9TVVBQT1JUU19OQU1FRF9HUk9VUFMpIHx8XG4gICAgKEtFWSA9PT0gJ3NwbGl0JyAmJiAhU1BMSVRfV09SS1NfV0lUSF9PVkVSV1JJVFRFTl9FWEVDKVxuICApIHtcbiAgICB2YXIgbmF0aXZlUmVnRXhwTWV0aG9kID0gLy4vW1NZTUJPTF07XG4gICAgdmFyIGZucyA9IGV4ZWMoXG4gICAgICBkZWZpbmVkLFxuICAgICAgU1lNQk9MLFxuICAgICAgJydbS0VZXSxcbiAgICAgIGZ1bmN0aW9uIG1heWJlQ2FsbE5hdGl2ZShuYXRpdmVNZXRob2QsIHJlZ2V4cCwgc3RyLCBhcmcyLCBmb3JjZVN0cmluZ01ldGhvZCkge1xuICAgICAgICBpZiAocmVnZXhwLmV4ZWMgPT09IHJlZ2V4cEV4ZWMpIHtcbiAgICAgICAgICBpZiAoREVMRUdBVEVTX1RPX1NZTUJPTCAmJiAhZm9yY2VTdHJpbmdNZXRob2QpIHtcbiAgICAgICAgICAgIC8vIFRoZSBuYXRpdmUgU3RyaW5nIG1ldGhvZCBhbHJlYWR5IGRlbGVnYXRlcyB0byBAQG1ldGhvZCAodGhpc1xuICAgICAgICAgICAgLy8gcG9seWZpbGxlZCBmdW5jdGlvbiksIGxlYXNpbmcgdG8gaW5maW5pdGUgcmVjdXJzaW9uLlxuICAgICAgICAgICAgLy8gV2UgYXZvaWQgaXQgYnkgZGlyZWN0bHkgY2FsbGluZyB0aGUgbmF0aXZlIEBAbWV0aG9kIG1ldGhvZC5cbiAgICAgICAgICAgIHJldHVybiB7IGRvbmU6IHRydWUsIHZhbHVlOiBuYXRpdmVSZWdFeHBNZXRob2QuY2FsbChyZWdleHAsIHN0ciwgYXJnMikgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IG5hdGl2ZU1ldGhvZC5jYWxsKHN0ciwgcmVnZXhwLCBhcmcyKSB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGRvbmU6IGZhbHNlIH07XG4gICAgICB9XG4gICAgKTtcbiAgICB2YXIgc3RyZm4gPSBmbnNbMF07XG4gICAgdmFyIHJ4Zm4gPSBmbnNbMV07XG5cbiAgICByZWRlZmluZShTdHJpbmcucHJvdG90eXBlLCBLRVksIHN0cmZuKTtcbiAgICBoaWRlKFJlZ0V4cC5wcm90b3R5cGUsIFNZTUJPTCwgbGVuZ3RoID09IDJcbiAgICAgIC8vIDIxLjIuNS44IFJlZ0V4cC5wcm90b3R5cGVbQEByZXBsYWNlXShzdHJpbmcsIHJlcGxhY2VWYWx1ZSlcbiAgICAgIC8vIDIxLjIuNS4xMSBSZWdFeHAucHJvdG90eXBlW0BAc3BsaXRdKHN0cmluZywgbGltaXQpXG4gICAgICA/IGZ1bmN0aW9uIChzdHJpbmcsIGFyZykgeyByZXR1cm4gcnhmbi5jYWxsKHN0cmluZywgdGhpcywgYXJnKTsgfVxuICAgICAgLy8gMjEuMi41LjYgUmVnRXhwLnByb3RvdHlwZVtAQG1hdGNoXShzdHJpbmcpXG4gICAgICAvLyAyMS4yLjUuOSBSZWdFeHAucHJvdG90eXBlW0BAc2VhcmNoXShzdHJpbmcpXG4gICAgICA6IGZ1bmN0aW9uIChzdHJpbmcpIHsgcmV0dXJuIHJ4Zm4uY2FsbChzdHJpbmcsIHRoaXMpOyB9XG4gICAgKTtcbiAgfVxufTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIDIxLjIuNS4zIGdldCBSZWdFeHAucHJvdG90eXBlLmZsYWdzXG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xuICB2YXIgdGhhdCA9IGFuT2JqZWN0KHRoaXMpO1xuICB2YXIgcmVzdWx0ID0gJyc7XG4gIGlmICh0aGF0Lmdsb2JhbCkgcmVzdWx0ICs9ICdnJztcbiAgaWYgKHRoYXQuaWdub3JlQ2FzZSkgcmVzdWx0ICs9ICdpJztcbiAgaWYgKHRoYXQubXVsdGlsaW5lKSByZXN1bHQgKz0gJ20nO1xuICBpZiAodGhhdC51bmljb2RlKSByZXN1bHQgKz0gJ3UnO1xuICBpZiAodGhhdC5zdGlja3kpIHJlc3VsdCArPSAneSc7XG4gIHJldHVybiByZXN1bHQ7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19zaGFyZWQnKSgnbmF0aXZlLWZ1bmN0aW9uLXRvLXN0cmluZycsIEZ1bmN0aW9uLnRvU3RyaW5nKTtcbiIsIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy84NiNpc3N1ZWNvbW1lbnQtMTE1NzU5MDI4XG52YXIgZ2xvYmFsID0gbW9kdWxlLmV4cG9ydHMgPSB0eXBlb2Ygd2luZG93ICE9ICd1bmRlZmluZWQnICYmIHdpbmRvdy5NYXRoID09IE1hdGhcbiAgPyB3aW5kb3cgOiB0eXBlb2Ygc2VsZiAhPSAndW5kZWZpbmVkJyAmJiBzZWxmLk1hdGggPT0gTWF0aCA/IHNlbGZcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5ldy1mdW5jXG4gIDogRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcbmlmICh0eXBlb2YgX19nID09ICdudW1iZXInKSBfX2cgPSBnbG9iYWw7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcbiIsInZhciBoYXNPd25Qcm9wZXJ0eSA9IHt9Lmhhc093blByb3BlcnR5O1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIGtleSkge1xuICByZXR1cm4gaGFzT3duUHJvcGVydHkuY2FsbChpdCwga2V5KTtcbn07XG4iLCJ2YXIgZFAgPSByZXF1aXJlKCcuL19vYmplY3QtZHAnKTtcbnZhciBjcmVhdGVEZXNjID0gcmVxdWlyZSgnLi9fcHJvcGVydHktZGVzYycpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpID8gZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICByZXR1cm4gZFAuZihvYmplY3QsIGtleSwgY3JlYXRlRGVzYygxLCB2YWx1ZSkpO1xufSA6IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgcmV0dXJuIG9iamVjdDtcbn07XG4iLCJ2YXIgZG9jdW1lbnQgPSByZXF1aXJlKCcuL19nbG9iYWwnKS5kb2N1bWVudDtcbm1vZHVsZS5leHBvcnRzID0gZG9jdW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuIiwibW9kdWxlLmV4cG9ydHMgPSAhcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSAmJiAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVxdWlyZSgnLi9fZG9tLWNyZWF0ZScpKCdkaXYnKSwgJ2EnLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KS5hICE9IDc7XG59KTtcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIHNldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi9fc2V0LXByb3RvJykuc2V0O1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodGhhdCwgdGFyZ2V0LCBDKSB7XG4gIHZhciBTID0gdGFyZ2V0LmNvbnN0cnVjdG9yO1xuICB2YXIgUDtcbiAgaWYgKFMgIT09IEMgJiYgdHlwZW9mIFMgPT0gJ2Z1bmN0aW9uJyAmJiAoUCA9IFMucHJvdG90eXBlKSAhPT0gQy5wcm90b3R5cGUgJiYgaXNPYmplY3QoUCkgJiYgc2V0UHJvdG90eXBlT2YpIHtcbiAgICBzZXRQcm90b3R5cGVPZih0aGF0LCBQKTtcbiAgfSByZXR1cm4gdGhhdDtcbn07XG4iLCIvLyBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIGFuZCBub24tZW51bWVyYWJsZSBvbGQgVjggc3RyaW5nc1xudmFyIGNvZiA9IHJlcXVpcmUoJy4vX2NvZicpO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QoJ3onKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKSA/IE9iamVjdCA6IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gY29mKGl0KSA9PSAnU3RyaW5nJyA/IGl0LnNwbGl0KCcnKSA6IE9iamVjdChpdCk7XG59O1xuIiwiLy8gY2hlY2sgb24gZGVmYXVsdCBBcnJheSBpdGVyYXRvclxudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4vX2l0ZXJhdG9ycycpO1xudmFyIElURVJBVE9SID0gcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyk7XG52YXIgQXJyYXlQcm90byA9IEFycmF5LnByb3RvdHlwZTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ICE9PSB1bmRlZmluZWQgJiYgKEl0ZXJhdG9ycy5BcnJheSA9PT0gaXQgfHwgQXJyYXlQcm90b1tJVEVSQVRPUl0gPT09IGl0KTtcbn07XG4iLCIvLyA3LjIuMiBJc0FycmF5KGFyZ3VtZW50KVxudmFyIGNvZiA9IHJlcXVpcmUoJy4vX2NvZicpO1xubW9kdWxlLmV4cG9ydHMgPSBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uIGlzQXJyYXkoYXJnKSB7XG4gIHJldHVybiBjb2YoYXJnKSA9PSAnQXJyYXknO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0eXBlb2YgaXQgPT09ICdvYmplY3QnID8gaXQgIT09IG51bGwgOiB0eXBlb2YgaXQgPT09ICdmdW5jdGlvbic7XG59O1xuIiwiLy8gNy4yLjggSXNSZWdFeHAoYXJndW1lbnQpXG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBjb2YgPSByZXF1aXJlKCcuL19jb2YnKTtcbnZhciBNQVRDSCA9IHJlcXVpcmUoJy4vX3drcycpKCdtYXRjaCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIGlzUmVnRXhwO1xuICByZXR1cm4gaXNPYmplY3QoaXQpICYmICgoaXNSZWdFeHAgPSBpdFtNQVRDSF0pICE9PSB1bmRlZmluZWQgPyAhIWlzUmVnRXhwIDogY29mKGl0KSA9PSAnUmVnRXhwJyk7XG59O1xuIiwiLy8gY2FsbCBzb21ldGhpbmcgb24gaXRlcmF0b3Igc3RlcCB3aXRoIHNhZmUgY2xvc2luZyBvbiBlcnJvclxudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdGVyYXRvciwgZm4sIHZhbHVlLCBlbnRyaWVzKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGVudHJpZXMgPyBmbihhbk9iamVjdCh2YWx1ZSlbMF0sIHZhbHVlWzFdKSA6IGZuKHZhbHVlKTtcbiAgLy8gNy40LjYgSXRlcmF0b3JDbG9zZShpdGVyYXRvciwgY29tcGxldGlvbilcbiAgfSBjYXRjaCAoZSkge1xuICAgIHZhciByZXQgPSBpdGVyYXRvclsncmV0dXJuJ107XG4gICAgaWYgKHJldCAhPT0gdW5kZWZpbmVkKSBhbk9iamVjdChyZXQuY2FsbChpdGVyYXRvcikpO1xuICAgIHRocm93IGU7XG4gIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY3JlYXRlID0gcmVxdWlyZSgnLi9fb2JqZWN0LWNyZWF0ZScpO1xudmFyIGRlc2NyaXB0b3IgPSByZXF1aXJlKCcuL19wcm9wZXJ0eS1kZXNjJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuL19zZXQtdG8tc3RyaW5nLXRhZycpO1xudmFyIEl0ZXJhdG9yUHJvdG90eXBlID0ge307XG5cbi8vIDI1LjEuMi4xLjEgJUl0ZXJhdG9yUHJvdG90eXBlJVtAQGl0ZXJhdG9yXSgpXG5yZXF1aXJlKCcuL19oaWRlJykoSXRlcmF0b3JQcm90b3R5cGUsIHJlcXVpcmUoJy4vX3drcycpKCdpdGVyYXRvcicpLCBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9KTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIE5BTUUsIG5leHQpIHtcbiAgQ29uc3RydWN0b3IucHJvdG90eXBlID0gY3JlYXRlKEl0ZXJhdG9yUHJvdG90eXBlLCB7IG5leHQ6IGRlc2NyaXB0b3IoMSwgbmV4dCkgfSk7XG4gIHNldFRvU3RyaW5nVGFnKENvbnN0cnVjdG9yLCBOQU1FICsgJyBJdGVyYXRvcicpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBMSUJSQVJZID0gcmVxdWlyZSgnLi9fbGlicmFyeScpO1xudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciByZWRlZmluZSA9IHJlcXVpcmUoJy4vX3JlZGVmaW5lJyk7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuL19pdGVyYXRvcnMnKTtcbnZhciAkaXRlckNyZWF0ZSA9IHJlcXVpcmUoJy4vX2l0ZXItY3JlYXRlJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuL19zZXQtdG8tc3RyaW5nLXRhZycpO1xudmFyIGdldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdwbycpO1xudmFyIElURVJBVE9SID0gcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyk7XG52YXIgQlVHR1kgPSAhKFtdLmtleXMgJiYgJ25leHQnIGluIFtdLmtleXMoKSk7IC8vIFNhZmFyaSBoYXMgYnVnZ3kgaXRlcmF0b3JzIHcvbyBgbmV4dGBcbnZhciBGRl9JVEVSQVRPUiA9ICdAQGl0ZXJhdG9yJztcbnZhciBLRVlTID0gJ2tleXMnO1xudmFyIFZBTFVFUyA9ICd2YWx1ZXMnO1xuXG52YXIgcmV0dXJuVGhpcyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKEJhc2UsIE5BTUUsIENvbnN0cnVjdG9yLCBuZXh0LCBERUZBVUxULCBJU19TRVQsIEZPUkNFRCkge1xuICAkaXRlckNyZWF0ZShDb25zdHJ1Y3RvciwgTkFNRSwgbmV4dCk7XG4gIHZhciBnZXRNZXRob2QgPSBmdW5jdGlvbiAoa2luZCkge1xuICAgIGlmICghQlVHR1kgJiYga2luZCBpbiBwcm90bykgcmV0dXJuIHByb3RvW2tpbmRdO1xuICAgIHN3aXRjaCAoa2luZCkge1xuICAgICAgY2FzZSBLRVlTOiByZXR1cm4gZnVuY3Rpb24ga2V5cygpIHsgcmV0dXJuIG5ldyBDb25zdHJ1Y3Rvcih0aGlzLCBraW5kKTsgfTtcbiAgICAgIGNhc2UgVkFMVUVTOiByZXR1cm4gZnVuY3Rpb24gdmFsdWVzKCkgeyByZXR1cm4gbmV3IENvbnN0cnVjdG9yKHRoaXMsIGtpbmQpOyB9O1xuICAgIH0gcmV0dXJuIGZ1bmN0aW9uIGVudHJpZXMoKSB7IHJldHVybiBuZXcgQ29uc3RydWN0b3IodGhpcywga2luZCk7IH07XG4gIH07XG4gIHZhciBUQUcgPSBOQU1FICsgJyBJdGVyYXRvcic7XG4gIHZhciBERUZfVkFMVUVTID0gREVGQVVMVCA9PSBWQUxVRVM7XG4gIHZhciBWQUxVRVNfQlVHID0gZmFsc2U7XG4gIHZhciBwcm90byA9IEJhc2UucHJvdG90eXBlO1xuICB2YXIgJG5hdGl2ZSA9IHByb3RvW0lURVJBVE9SXSB8fCBwcm90b1tGRl9JVEVSQVRPUl0gfHwgREVGQVVMVCAmJiBwcm90b1tERUZBVUxUXTtcbiAgdmFyICRkZWZhdWx0ID0gJG5hdGl2ZSB8fCBnZXRNZXRob2QoREVGQVVMVCk7XG4gIHZhciAkZW50cmllcyA9IERFRkFVTFQgPyAhREVGX1ZBTFVFUyA/ICRkZWZhdWx0IDogZ2V0TWV0aG9kKCdlbnRyaWVzJykgOiB1bmRlZmluZWQ7XG4gIHZhciAkYW55TmF0aXZlID0gTkFNRSA9PSAnQXJyYXknID8gcHJvdG8uZW50cmllcyB8fCAkbmF0aXZlIDogJG5hdGl2ZTtcbiAgdmFyIG1ldGhvZHMsIGtleSwgSXRlcmF0b3JQcm90b3R5cGU7XG4gIC8vIEZpeCBuYXRpdmVcbiAgaWYgKCRhbnlOYXRpdmUpIHtcbiAgICBJdGVyYXRvclByb3RvdHlwZSA9IGdldFByb3RvdHlwZU9mKCRhbnlOYXRpdmUuY2FsbChuZXcgQmFzZSgpKSk7XG4gICAgaWYgKEl0ZXJhdG9yUHJvdG90eXBlICE9PSBPYmplY3QucHJvdG90eXBlICYmIEl0ZXJhdG9yUHJvdG90eXBlLm5leHQpIHtcbiAgICAgIC8vIFNldCBAQHRvU3RyaW5nVGFnIHRvIG5hdGl2ZSBpdGVyYXRvcnNcbiAgICAgIHNldFRvU3RyaW5nVGFnKEl0ZXJhdG9yUHJvdG90eXBlLCBUQUcsIHRydWUpO1xuICAgICAgLy8gZml4IGZvciBzb21lIG9sZCBlbmdpbmVzXG4gICAgICBpZiAoIUxJQlJBUlkgJiYgdHlwZW9mIEl0ZXJhdG9yUHJvdG90eXBlW0lURVJBVE9SXSAhPSAnZnVuY3Rpb24nKSBoaWRlKEl0ZXJhdG9yUHJvdG90eXBlLCBJVEVSQVRPUiwgcmV0dXJuVGhpcyk7XG4gICAgfVxuICB9XG4gIC8vIGZpeCBBcnJheSN7dmFsdWVzLCBAQGl0ZXJhdG9yfS5uYW1lIGluIFY4IC8gRkZcbiAgaWYgKERFRl9WQUxVRVMgJiYgJG5hdGl2ZSAmJiAkbmF0aXZlLm5hbWUgIT09IFZBTFVFUykge1xuICAgIFZBTFVFU19CVUcgPSB0cnVlO1xuICAgICRkZWZhdWx0ID0gZnVuY3Rpb24gdmFsdWVzKCkgeyByZXR1cm4gJG5hdGl2ZS5jYWxsKHRoaXMpOyB9O1xuICB9XG4gIC8vIERlZmluZSBpdGVyYXRvclxuICBpZiAoKCFMSUJSQVJZIHx8IEZPUkNFRCkgJiYgKEJVR0dZIHx8IFZBTFVFU19CVUcgfHwgIXByb3RvW0lURVJBVE9SXSkpIHtcbiAgICBoaWRlKHByb3RvLCBJVEVSQVRPUiwgJGRlZmF1bHQpO1xuICB9XG4gIC8vIFBsdWcgZm9yIGxpYnJhcnlcbiAgSXRlcmF0b3JzW05BTUVdID0gJGRlZmF1bHQ7XG4gIEl0ZXJhdG9yc1tUQUddID0gcmV0dXJuVGhpcztcbiAgaWYgKERFRkFVTFQpIHtcbiAgICBtZXRob2RzID0ge1xuICAgICAgdmFsdWVzOiBERUZfVkFMVUVTID8gJGRlZmF1bHQgOiBnZXRNZXRob2QoVkFMVUVTKSxcbiAgICAgIGtleXM6IElTX1NFVCA/ICRkZWZhdWx0IDogZ2V0TWV0aG9kKEtFWVMpLFxuICAgICAgZW50cmllczogJGVudHJpZXNcbiAgICB9O1xuICAgIGlmIChGT1JDRUQpIGZvciAoa2V5IGluIG1ldGhvZHMpIHtcbiAgICAgIGlmICghKGtleSBpbiBwcm90bykpIHJlZGVmaW5lKHByb3RvLCBrZXksIG1ldGhvZHNba2V5XSk7XG4gICAgfSBlbHNlICRleHBvcnQoJGV4cG9ydC5QICsgJGV4cG9ydC5GICogKEJVR0dZIHx8IFZBTFVFU19CVUcpLCBOQU1FLCBtZXRob2RzKTtcbiAgfVxuICByZXR1cm4gbWV0aG9kcztcbn07XG4iLCJ2YXIgSVRFUkFUT1IgPSByZXF1aXJlKCcuL193a3MnKSgnaXRlcmF0b3InKTtcbnZhciBTQUZFX0NMT1NJTkcgPSBmYWxzZTtcblxudHJ5IHtcbiAgdmFyIHJpdGVyID0gWzddW0lURVJBVE9SXSgpO1xuICByaXRlclsncmV0dXJuJ10gPSBmdW5jdGlvbiAoKSB7IFNBRkVfQ0xPU0lORyA9IHRydWU7IH07XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby10aHJvdy1saXRlcmFsXG4gIEFycmF5LmZyb20ocml0ZXIsIGZ1bmN0aW9uICgpIHsgdGhyb3cgMjsgfSk7XG59IGNhdGNoIChlKSB7IC8qIGVtcHR5ICovIH1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZXhlYywgc2tpcENsb3NpbmcpIHtcbiAgaWYgKCFza2lwQ2xvc2luZyAmJiAhU0FGRV9DTE9TSU5HKSByZXR1cm4gZmFsc2U7XG4gIHZhciBzYWZlID0gZmFsc2U7XG4gIHRyeSB7XG4gICAgdmFyIGFyciA9IFs3XTtcbiAgICB2YXIgaXRlciA9IGFycltJVEVSQVRPUl0oKTtcbiAgICBpdGVyLm5leHQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB7IGRvbmU6IHNhZmUgPSB0cnVlIH07IH07XG4gICAgYXJyW0lURVJBVE9SXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGl0ZXI7IH07XG4gICAgZXhlYyhhcnIpO1xuICB9IGNhdGNoIChlKSB7IC8qIGVtcHR5ICovIH1cbiAgcmV0dXJuIHNhZmU7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZG9uZSwgdmFsdWUpIHtcbiAgcmV0dXJuIHsgdmFsdWU6IHZhbHVlLCBkb25lOiAhIWRvbmUgfTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHt9O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmYWxzZTtcbiIsInZhciBNRVRBID0gcmVxdWlyZSgnLi9fdWlkJykoJ21ldGEnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIHNldERlc2MgPSByZXF1aXJlKCcuL19vYmplY3QtZHAnKS5mO1xudmFyIGlkID0gMDtcbnZhciBpc0V4dGVuc2libGUgPSBPYmplY3QuaXNFeHRlbnNpYmxlIHx8IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRydWU7XG59O1xudmFyIEZSRUVaRSA9ICFyZXF1aXJlKCcuL19mYWlscycpKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGlzRXh0ZW5zaWJsZShPYmplY3QucHJldmVudEV4dGVuc2lvbnMoe30pKTtcbn0pO1xudmFyIHNldE1ldGEgPSBmdW5jdGlvbiAoaXQpIHtcbiAgc2V0RGVzYyhpdCwgTUVUQSwgeyB2YWx1ZToge1xuICAgIGk6ICdPJyArICsraWQsIC8vIG9iamVjdCBJRFxuICAgIHc6IHt9ICAgICAgICAgIC8vIHdlYWsgY29sbGVjdGlvbnMgSURzXG4gIH0gfSk7XG59O1xudmFyIGZhc3RLZXkgPSBmdW5jdGlvbiAoaXQsIGNyZWF0ZSkge1xuICAvLyByZXR1cm4gcHJpbWl0aXZlIHdpdGggcHJlZml4XG4gIGlmICghaXNPYmplY3QoaXQpKSByZXR1cm4gdHlwZW9mIGl0ID09ICdzeW1ib2wnID8gaXQgOiAodHlwZW9mIGl0ID09ICdzdHJpbmcnID8gJ1MnIDogJ1AnKSArIGl0O1xuICBpZiAoIWhhcyhpdCwgTUVUQSkpIHtcbiAgICAvLyBjYW4ndCBzZXQgbWV0YWRhdGEgdG8gdW5jYXVnaHQgZnJvemVuIG9iamVjdFxuICAgIGlmICghaXNFeHRlbnNpYmxlKGl0KSkgcmV0dXJuICdGJztcbiAgICAvLyBub3QgbmVjZXNzYXJ5IHRvIGFkZCBtZXRhZGF0YVxuICAgIGlmICghY3JlYXRlKSByZXR1cm4gJ0UnO1xuICAgIC8vIGFkZCBtaXNzaW5nIG1ldGFkYXRhXG4gICAgc2V0TWV0YShpdCk7XG4gIC8vIHJldHVybiBvYmplY3QgSURcbiAgfSByZXR1cm4gaXRbTUVUQV0uaTtcbn07XG52YXIgZ2V0V2VhayA9IGZ1bmN0aW9uIChpdCwgY3JlYXRlKSB7XG4gIGlmICghaGFzKGl0LCBNRVRBKSkge1xuICAgIC8vIGNhbid0IHNldCBtZXRhZGF0YSB0byB1bmNhdWdodCBmcm96ZW4gb2JqZWN0XG4gICAgaWYgKCFpc0V4dGVuc2libGUoaXQpKSByZXR1cm4gdHJ1ZTtcbiAgICAvLyBub3QgbmVjZXNzYXJ5IHRvIGFkZCBtZXRhZGF0YVxuICAgIGlmICghY3JlYXRlKSByZXR1cm4gZmFsc2U7XG4gICAgLy8gYWRkIG1pc3NpbmcgbWV0YWRhdGFcbiAgICBzZXRNZXRhKGl0KTtcbiAgLy8gcmV0dXJuIGhhc2ggd2VhayBjb2xsZWN0aW9ucyBJRHNcbiAgfSByZXR1cm4gaXRbTUVUQV0udztcbn07XG4vLyBhZGQgbWV0YWRhdGEgb24gZnJlZXplLWZhbWlseSBtZXRob2RzIGNhbGxpbmdcbnZhciBvbkZyZWV6ZSA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoRlJFRVpFICYmIG1ldGEuTkVFRCAmJiBpc0V4dGVuc2libGUoaXQpICYmICFoYXMoaXQsIE1FVEEpKSBzZXRNZXRhKGl0KTtcbiAgcmV0dXJuIGl0O1xufTtcbnZhciBtZXRhID0gbW9kdWxlLmV4cG9ydHMgPSB7XG4gIEtFWTogTUVUQSxcbiAgTkVFRDogZmFsc2UsXG4gIGZhc3RLZXk6IGZhc3RLZXksXG4gIGdldFdlYWs6IGdldFdlYWssXG4gIG9uRnJlZXplOiBvbkZyZWV6ZVxufTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIDE5LjEuMi4xIE9iamVjdC5hc3NpZ24odGFyZ2V0LCBzb3VyY2UsIC4uLilcbnZhciBnZXRLZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMnKTtcbnZhciBnT1BTID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdvcHMnKTtcbnZhciBwSUUgPSByZXF1aXJlKCcuL19vYmplY3QtcGllJyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL190by1vYmplY3QnKTtcbnZhciBJT2JqZWN0ID0gcmVxdWlyZSgnLi9faW9iamVjdCcpO1xudmFyICRhc3NpZ24gPSBPYmplY3QuYXNzaWduO1xuXG4vLyBzaG91bGQgd29yayB3aXRoIHN5bWJvbHMgYW5kIHNob3VsZCBoYXZlIGRldGVybWluaXN0aWMgcHJvcGVydHkgb3JkZXIgKFY4IGJ1Zylcbm1vZHVsZS5leHBvcnRzID0gISRhc3NpZ24gfHwgcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHZhciBBID0ge307XG4gIHZhciBCID0ge307XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICB2YXIgUyA9IFN5bWJvbCgpO1xuICB2YXIgSyA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdCc7XG4gIEFbU10gPSA3O1xuICBLLnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uIChrKSB7IEJba10gPSBrOyB9KTtcbiAgcmV0dXJuICRhc3NpZ24oe30sIEEpW1NdICE9IDcgfHwgT2JqZWN0LmtleXMoJGFzc2lnbih7fSwgQikpLmpvaW4oJycpICE9IEs7XG59KSA/IGZ1bmN0aW9uIGFzc2lnbih0YXJnZXQsIHNvdXJjZSkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gIHZhciBUID0gdG9PYmplY3QodGFyZ2V0KTtcbiAgdmFyIGFMZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICB2YXIgaW5kZXggPSAxO1xuICB2YXIgZ2V0U3ltYm9scyA9IGdPUFMuZjtcbiAgdmFyIGlzRW51bSA9IHBJRS5mO1xuICB3aGlsZSAoYUxlbiA+IGluZGV4KSB7XG4gICAgdmFyIFMgPSBJT2JqZWN0KGFyZ3VtZW50c1tpbmRleCsrXSk7XG4gICAgdmFyIGtleXMgPSBnZXRTeW1ib2xzID8gZ2V0S2V5cyhTKS5jb25jYXQoZ2V0U3ltYm9scyhTKSkgOiBnZXRLZXlzKFMpO1xuICAgIHZhciBsZW5ndGggPSBrZXlzLmxlbmd0aDtcbiAgICB2YXIgaiA9IDA7XG4gICAgdmFyIGtleTtcbiAgICB3aGlsZSAobGVuZ3RoID4gaikgaWYgKGlzRW51bS5jYWxsKFMsIGtleSA9IGtleXNbaisrXSkpIFRba2V5XSA9IFNba2V5XTtcbiAgfSByZXR1cm4gVDtcbn0gOiAkYXNzaWduO1xuIiwiLy8gMTkuMS4yLjIgLyAxNS4yLjMuNSBPYmplY3QuY3JlYXRlKE8gWywgUHJvcGVydGllc10pXG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBkUHMgPSByZXF1aXJlKCcuL19vYmplY3QtZHBzJyk7XG52YXIgZW51bUJ1Z0tleXMgPSByZXF1aXJlKCcuL19lbnVtLWJ1Zy1rZXlzJyk7XG52YXIgSUVfUFJPVE8gPSByZXF1aXJlKCcuL19zaGFyZWQta2V5JykoJ0lFX1BST1RPJyk7XG52YXIgRW1wdHkgPSBmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH07XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG5cbi8vIENyZWF0ZSBvYmplY3Qgd2l0aCBmYWtlIGBudWxsYCBwcm90b3R5cGU6IHVzZSBpZnJhbWUgT2JqZWN0IHdpdGggY2xlYXJlZCBwcm90b3R5cGVcbnZhciBjcmVhdGVEaWN0ID0gZnVuY3Rpb24gKCkge1xuICAvLyBUaHJhc2gsIHdhc3RlIGFuZCBzb2RvbXk6IElFIEdDIGJ1Z1xuICB2YXIgaWZyYW1lID0gcmVxdWlyZSgnLi9fZG9tLWNyZWF0ZScpKCdpZnJhbWUnKTtcbiAgdmFyIGkgPSBlbnVtQnVnS2V5cy5sZW5ndGg7XG4gIHZhciBsdCA9ICc8JztcbiAgdmFyIGd0ID0gJz4nO1xuICB2YXIgaWZyYW1lRG9jdW1lbnQ7XG4gIGlmcmFtZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICByZXF1aXJlKCcuL19odG1sJykuYXBwZW5kQ2hpbGQoaWZyYW1lKTtcbiAgaWZyYW1lLnNyYyA9ICdqYXZhc2NyaXB0Oic7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tc2NyaXB0LXVybFxuICAvLyBjcmVhdGVEaWN0ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuT2JqZWN0O1xuICAvLyBodG1sLnJlbW92ZUNoaWxkKGlmcmFtZSk7XG4gIGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7XG4gIGlmcmFtZURvY3VtZW50Lm9wZW4oKTtcbiAgaWZyYW1lRG9jdW1lbnQud3JpdGUobHQgKyAnc2NyaXB0JyArIGd0ICsgJ2RvY3VtZW50LkY9T2JqZWN0JyArIGx0ICsgJy9zY3JpcHQnICsgZ3QpO1xuICBpZnJhbWVEb2N1bWVudC5jbG9zZSgpO1xuICBjcmVhdGVEaWN0ID0gaWZyYW1lRG9jdW1lbnQuRjtcbiAgd2hpbGUgKGktLSkgZGVsZXRlIGNyZWF0ZURpY3RbUFJPVE9UWVBFXVtlbnVtQnVnS2V5c1tpXV07XG4gIHJldHVybiBjcmVhdGVEaWN0KCk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5jcmVhdGUgfHwgZnVuY3Rpb24gY3JlYXRlKE8sIFByb3BlcnRpZXMpIHtcbiAgdmFyIHJlc3VsdDtcbiAgaWYgKE8gIT09IG51bGwpIHtcbiAgICBFbXB0eVtQUk9UT1RZUEVdID0gYW5PYmplY3QoTyk7XG4gICAgcmVzdWx0ID0gbmV3IEVtcHR5KCk7XG4gICAgRW1wdHlbUFJPVE9UWVBFXSA9IG51bGw7XG4gICAgLy8gYWRkIFwiX19wcm90b19fXCIgZm9yIE9iamVjdC5nZXRQcm90b3R5cGVPZiBwb2x5ZmlsbFxuICAgIHJlc3VsdFtJRV9QUk9UT10gPSBPO1xuICB9IGVsc2UgcmVzdWx0ID0gY3JlYXRlRGljdCgpO1xuICByZXR1cm4gUHJvcGVydGllcyA9PT0gdW5kZWZpbmVkID8gcmVzdWx0IDogZFBzKHJlc3VsdCwgUHJvcGVydGllcyk7XG59O1xuIiwidmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgSUU4X0RPTV9ERUZJTkUgPSByZXF1aXJlKCcuL19pZTgtZG9tLWRlZmluZScpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi9fdG8tcHJpbWl0aXZlJyk7XG52YXIgZFAgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG5cbmV4cG9ydHMuZiA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBPYmplY3QuZGVmaW5lUHJvcGVydHkgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBQID0gdG9QcmltaXRpdmUoUCwgdHJ1ZSk7XG4gIGFuT2JqZWN0KEF0dHJpYnV0ZXMpO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuIGRQKE8sIFAsIEF0dHJpYnV0ZXMpO1xuICB9IGNhdGNoIChlKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKCdnZXQnIGluIEF0dHJpYnV0ZXMgfHwgJ3NldCcgaW4gQXR0cmlidXRlcykgdGhyb3cgVHlwZUVycm9yKCdBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCEnKTtcbiAgaWYgKCd2YWx1ZScgaW4gQXR0cmlidXRlcykgT1tQXSA9IEF0dHJpYnV0ZXMudmFsdWU7XG4gIHJldHVybiBPO1xufTtcbiIsInZhciBkUCA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgZ2V0S2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzIDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyhPLCBQcm9wZXJ0aWVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICB2YXIga2V5cyA9IGdldEtleXMoUHJvcGVydGllcyk7XG4gIHZhciBsZW5ndGggPSBrZXlzLmxlbmd0aDtcbiAgdmFyIGkgPSAwO1xuICB2YXIgUDtcbiAgd2hpbGUgKGxlbmd0aCA+IGkpIGRQLmYoTywgUCA9IGtleXNbaSsrXSwgUHJvcGVydGllc1tQXSk7XG4gIHJldHVybiBPO1xufTtcbiIsInZhciBwSUUgPSByZXF1aXJlKCcuL19vYmplY3QtcGllJyk7XG52YXIgY3JlYXRlRGVzYyA9IHJlcXVpcmUoJy4vX3Byb3BlcnR5LWRlc2MnKTtcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuL190by1wcmltaXRpdmUnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBJRThfRE9NX0RFRklORSA9IHJlcXVpcmUoJy4vX2llOC1kb20tZGVmaW5lJyk7XG52YXIgZ09QRCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbmV4cG9ydHMuZiA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBnT1BEIDogZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIFApIHtcbiAgTyA9IHRvSU9iamVjdChPKTtcbiAgUCA9IHRvUHJpbWl0aXZlKFAsIHRydWUpO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuIGdPUEQoTywgUCk7XG4gIH0gY2F0Y2ggKGUpIHsgLyogZW1wdHkgKi8gfVxuICBpZiAoaGFzKE8sIFApKSByZXR1cm4gY3JlYXRlRGVzYyghcElFLmYuY2FsbChPLCBQKSwgT1tQXSk7XG59O1xuIiwiLy8gZmFsbGJhY2sgZm9yIElFMTEgYnVnZ3kgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgd2l0aCBpZnJhbWUgYW5kIHdpbmRvd1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciBnT1BOID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdvcG4nKS5mO1xudmFyIHRvU3RyaW5nID0ge30udG9TdHJpbmc7XG5cbnZhciB3aW5kb3dOYW1lcyA9IHR5cGVvZiB3aW5kb3cgPT0gJ29iamVjdCcgJiYgd2luZG93ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzXG4gID8gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMod2luZG93KSA6IFtdO1xuXG52YXIgZ2V0V2luZG93TmFtZXMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZ09QTihpdCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gd2luZG93TmFtZXMuc2xpY2UoKTtcbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMuZiA9IGZ1bmN0aW9uIGdldE93blByb3BlcnR5TmFtZXMoaXQpIHtcbiAgcmV0dXJuIHdpbmRvd05hbWVzICYmIHRvU3RyaW5nLmNhbGwoaXQpID09ICdbb2JqZWN0IFdpbmRvd10nID8gZ2V0V2luZG93TmFtZXMoaXQpIDogZ09QTih0b0lPYmplY3QoaXQpKTtcbn07XG4iLCIvLyAxOS4xLjIuNyAvIDE1LjIuMy40IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKE8pXG52YXIgJGtleXMgPSByZXF1aXJlKCcuL19vYmplY3Qta2V5cy1pbnRlcm5hbCcpO1xudmFyIGhpZGRlbktleXMgPSByZXF1aXJlKCcuL19lbnVtLWJ1Zy1rZXlzJykuY29uY2F0KCdsZW5ndGgnLCAncHJvdG90eXBlJyk7XG5cbmV4cG9ydHMuZiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uIGdldE93blByb3BlcnR5TmFtZXMoTykge1xuICByZXR1cm4gJGtleXMoTywgaGlkZGVuS2V5cyk7XG59O1xuIiwiZXhwb3J0cy5mID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbiIsIi8vIDE5LjEuMi45IC8gMTUuMi4zLjIgT2JqZWN0LmdldFByb3RvdHlwZU9mKE8pXG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL190by1vYmplY3QnKTtcbnZhciBJRV9QUk9UTyA9IHJlcXVpcmUoJy4vX3NoYXJlZC1rZXknKSgnSUVfUFJPVE8nKTtcbnZhciBPYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmdldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIChPKSB7XG4gIE8gPSB0b09iamVjdChPKTtcbiAgaWYgKGhhcyhPLCBJRV9QUk9UTykpIHJldHVybiBPW0lFX1BST1RPXTtcbiAgaWYgKHR5cGVvZiBPLmNvbnN0cnVjdG9yID09ICdmdW5jdGlvbicgJiYgTyBpbnN0YW5jZW9mIE8uY29uc3RydWN0b3IpIHtcbiAgICByZXR1cm4gTy5jb25zdHJ1Y3Rvci5wcm90b3R5cGU7XG4gIH0gcmV0dXJuIE8gaW5zdGFuY2VvZiBPYmplY3QgPyBPYmplY3RQcm90byA6IG51bGw7XG59O1xuIiwidmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciBhcnJheUluZGV4T2YgPSByZXF1aXJlKCcuL19hcnJheS1pbmNsdWRlcycpKGZhbHNlKTtcbnZhciBJRV9QUk9UTyA9IHJlcXVpcmUoJy4vX3NoYXJlZC1rZXknKSgnSUVfUFJPVE8nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBuYW1lcykge1xuICB2YXIgTyA9IHRvSU9iamVjdChvYmplY3QpO1xuICB2YXIgaSA9IDA7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gTykgaWYgKGtleSAhPSBJRV9QUk9UTykgaGFzKE8sIGtleSkgJiYgcmVzdWx0LnB1c2goa2V5KTtcbiAgLy8gRG9uJ3QgZW51bSBidWcgJiBoaWRkZW4ga2V5c1xuICB3aGlsZSAobmFtZXMubGVuZ3RoID4gaSkgaWYgKGhhcyhPLCBrZXkgPSBuYW1lc1tpKytdKSkge1xuICAgIH5hcnJheUluZGV4T2YocmVzdWx0LCBrZXkpIHx8IHJlc3VsdC5wdXNoKGtleSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG4iLCIvLyAxOS4xLjIuMTQgLyAxNS4yLjMuMTQgT2JqZWN0LmtleXMoTylcbnZhciAka2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzLWludGVybmFsJyk7XG52YXIgZW51bUJ1Z0tleXMgPSByZXF1aXJlKCcuL19lbnVtLWJ1Zy1rZXlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmtleXMgfHwgZnVuY3Rpb24ga2V5cyhPKSB7XG4gIHJldHVybiAka2V5cyhPLCBlbnVtQnVnS2V5cyk7XG59O1xuIiwiZXhwb3J0cy5mID0ge30ucHJvcGVydHlJc0VudW1lcmFibGU7XG4iLCIvLyBtb3N0IE9iamVjdCBtZXRob2RzIGJ5IEVTNiBzaG91bGQgYWNjZXB0IHByaW1pdGl2ZXNcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgY29yZSA9IHJlcXVpcmUoJy4vX2NvcmUnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4vX2ZhaWxzJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChLRVksIGV4ZWMpIHtcbiAgdmFyIGZuID0gKGNvcmUuT2JqZWN0IHx8IHt9KVtLRVldIHx8IE9iamVjdFtLRVldO1xuICB2YXIgZXhwID0ge307XG4gIGV4cFtLRVldID0gZXhlYyhmbik7XG4gICRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogZmFpbHMoZnVuY3Rpb24gKCkgeyBmbigxKTsgfSksICdPYmplY3QnLCBleHApO1xufTtcbiIsIi8vIGFsbCBvYmplY3Qga2V5cywgaW5jbHVkZXMgbm9uLWVudW1lcmFibGUgYW5kIHN5bWJvbHNcbnZhciBnT1BOID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdvcG4nKTtcbnZhciBnT1BTID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdvcHMnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIFJlZmxlY3QgPSByZXF1aXJlKCcuL19nbG9iYWwnKS5SZWZsZWN0O1xubW9kdWxlLmV4cG9ydHMgPSBSZWZsZWN0ICYmIFJlZmxlY3Qub3duS2V5cyB8fCBmdW5jdGlvbiBvd25LZXlzKGl0KSB7XG4gIHZhciBrZXlzID0gZ09QTi5mKGFuT2JqZWN0KGl0KSk7XG4gIHZhciBnZXRTeW1ib2xzID0gZ09QUy5mO1xuICByZXR1cm4gZ2V0U3ltYm9scyA/IGtleXMuY29uY2F0KGdldFN5bWJvbHMoaXQpKSA6IGtleXM7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYml0bWFwLCB2YWx1ZSkge1xuICByZXR1cm4ge1xuICAgIGVudW1lcmFibGU6ICEoYml0bWFwICYgMSksXG4gICAgY29uZmlndXJhYmxlOiAhKGJpdG1hcCAmIDIpLFxuICAgIHdyaXRhYmxlOiAhKGJpdG1hcCAmIDQpLFxuICAgIHZhbHVlOiB2YWx1ZVxuICB9O1xufTtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuL19nbG9iYWwnKTtcbnZhciBoaWRlID0gcmVxdWlyZSgnLi9faGlkZScpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIFNSQyA9IHJlcXVpcmUoJy4vX3VpZCcpKCdzcmMnKTtcbnZhciAkdG9TdHJpbmcgPSByZXF1aXJlKCcuL19mdW5jdGlvbi10by1zdHJpbmcnKTtcbnZhciBUT19TVFJJTkcgPSAndG9TdHJpbmcnO1xudmFyIFRQTCA9ICgnJyArICR0b1N0cmluZykuc3BsaXQoVE9fU1RSSU5HKTtcblxucmVxdWlyZSgnLi9fY29yZScpLmluc3BlY3RTb3VyY2UgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuICR0b1N0cmluZy5jYWxsKGl0KTtcbn07XG5cbihtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChPLCBrZXksIHZhbCwgc2FmZSkge1xuICB2YXIgaXNGdW5jdGlvbiA9IHR5cGVvZiB2YWwgPT0gJ2Z1bmN0aW9uJztcbiAgaWYgKGlzRnVuY3Rpb24pIGhhcyh2YWwsICduYW1lJykgfHwgaGlkZSh2YWwsICduYW1lJywga2V5KTtcbiAgaWYgKE9ba2V5XSA9PT0gdmFsKSByZXR1cm47XG4gIGlmIChpc0Z1bmN0aW9uKSBoYXModmFsLCBTUkMpIHx8IGhpZGUodmFsLCBTUkMsIE9ba2V5XSA/ICcnICsgT1trZXldIDogVFBMLmpvaW4oU3RyaW5nKGtleSkpKTtcbiAgaWYgKE8gPT09IGdsb2JhbCkge1xuICAgIE9ba2V5XSA9IHZhbDtcbiAgfSBlbHNlIGlmICghc2FmZSkge1xuICAgIGRlbGV0ZSBPW2tleV07XG4gICAgaGlkZShPLCBrZXksIHZhbCk7XG4gIH0gZWxzZSBpZiAoT1trZXldKSB7XG4gICAgT1trZXldID0gdmFsO1xuICB9IGVsc2Uge1xuICAgIGhpZGUoTywga2V5LCB2YWwpO1xuICB9XG4vLyBhZGQgZmFrZSBGdW5jdGlvbiN0b1N0cmluZyBmb3IgY29ycmVjdCB3b3JrIHdyYXBwZWQgbWV0aG9kcyAvIGNvbnN0cnVjdG9ycyB3aXRoIG1ldGhvZHMgbGlrZSBMb0Rhc2ggaXNOYXRpdmVcbn0pKEZ1bmN0aW9uLnByb3RvdHlwZSwgVE9fU1RSSU5HLCBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgcmV0dXJuIHR5cGVvZiB0aGlzID09ICdmdW5jdGlvbicgJiYgdGhpc1tTUkNdIHx8ICR0b1N0cmluZy5jYWxsKHRoaXMpO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi9fY2xhc3NvZicpO1xudmFyIGJ1aWx0aW5FeGVjID0gUmVnRXhwLnByb3RvdHlwZS5leGVjO1xuXG4gLy8gYFJlZ0V4cEV4ZWNgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtcmVnZXhwZXhlY1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoUiwgUykge1xuICB2YXIgZXhlYyA9IFIuZXhlYztcbiAgaWYgKHR5cGVvZiBleGVjID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdmFyIHJlc3VsdCA9IGV4ZWMuY2FsbChSLCBTKTtcbiAgICBpZiAodHlwZW9mIHJlc3VsdCAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1JlZ0V4cCBleGVjIG1ldGhvZCByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBPYmplY3Qgb3IgbnVsbCcpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIGlmIChjbGFzc29mKFIpICE9PSAnUmVnRXhwJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1JlZ0V4cCNleGVjIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgcmVjZWl2ZXInKTtcbiAgfVxuICByZXR1cm4gYnVpbHRpbkV4ZWMuY2FsbChSLCBTKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciByZWdleHBGbGFncyA9IHJlcXVpcmUoJy4vX2ZsYWdzJyk7XG5cbnZhciBuYXRpdmVFeGVjID0gUmVnRXhwLnByb3RvdHlwZS5leGVjO1xuLy8gVGhpcyBhbHdheXMgcmVmZXJzIHRvIHRoZSBuYXRpdmUgaW1wbGVtZW50YXRpb24sIGJlY2F1c2UgdGhlXG4vLyBTdHJpbmcjcmVwbGFjZSBwb2x5ZmlsbCB1c2VzIC4vZml4LXJlZ2V4cC13ZWxsLWtub3duLXN5bWJvbC1sb2dpYy5qcyxcbi8vIHdoaWNoIGxvYWRzIHRoaXMgZmlsZSBiZWZvcmUgcGF0Y2hpbmcgdGhlIG1ldGhvZC5cbnZhciBuYXRpdmVSZXBsYWNlID0gU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlO1xuXG52YXIgcGF0Y2hlZEV4ZWMgPSBuYXRpdmVFeGVjO1xuXG52YXIgTEFTVF9JTkRFWCA9ICdsYXN0SW5kZXgnO1xuXG52YXIgVVBEQVRFU19MQVNUX0lOREVYX1dST05HID0gKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHJlMSA9IC9hLyxcbiAgICAgIHJlMiA9IC9iKi9nO1xuICBuYXRpdmVFeGVjLmNhbGwocmUxLCAnYScpO1xuICBuYXRpdmVFeGVjLmNhbGwocmUyLCAnYScpO1xuICByZXR1cm4gcmUxW0xBU1RfSU5ERVhdICE9PSAwIHx8IHJlMltMQVNUX0lOREVYXSAhPT0gMDtcbn0pKCk7XG5cbi8vIG5vbnBhcnRpY2lwYXRpbmcgY2FwdHVyaW5nIGdyb3VwLCBjb3BpZWQgZnJvbSBlczUtc2hpbSdzIFN0cmluZyNzcGxpdCBwYXRjaC5cbnZhciBOUENHX0lOQ0xVREVEID0gLygpPz8vLmV4ZWMoJycpWzFdICE9PSB1bmRlZmluZWQ7XG5cbnZhciBQQVRDSCA9IFVQREFURVNfTEFTVF9JTkRFWF9XUk9ORyB8fCBOUENHX0lOQ0xVREVEO1xuXG5pZiAoUEFUQ0gpIHtcbiAgcGF0Y2hlZEV4ZWMgPSBmdW5jdGlvbiBleGVjKHN0cikge1xuICAgIHZhciByZSA9IHRoaXM7XG4gICAgdmFyIGxhc3RJbmRleCwgcmVDb3B5LCBtYXRjaCwgaTtcblxuICAgIGlmIChOUENHX0lOQ0xVREVEKSB7XG4gICAgICByZUNvcHkgPSBuZXcgUmVnRXhwKCdeJyArIHJlLnNvdXJjZSArICckKD8hXFxcXHMpJywgcmVnZXhwRmxhZ3MuY2FsbChyZSkpO1xuICAgIH1cbiAgICBpZiAoVVBEQVRFU19MQVNUX0lOREVYX1dST05HKSBsYXN0SW5kZXggPSByZVtMQVNUX0lOREVYXTtcblxuICAgIG1hdGNoID0gbmF0aXZlRXhlYy5jYWxsKHJlLCBzdHIpO1xuXG4gICAgaWYgKFVQREFURVNfTEFTVF9JTkRFWF9XUk9ORyAmJiBtYXRjaCkge1xuICAgICAgcmVbTEFTVF9JTkRFWF0gPSByZS5nbG9iYWwgPyBtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCA6IGxhc3RJbmRleDtcbiAgICB9XG4gICAgaWYgKE5QQ0dfSU5DTFVERUQgJiYgbWF0Y2ggJiYgbWF0Y2gubGVuZ3RoID4gMSkge1xuICAgICAgLy8gRml4IGJyb3dzZXJzIHdob3NlIGBleGVjYCBtZXRob2RzIGRvbid0IGNvbnNpc3RlbnRseSByZXR1cm4gYHVuZGVmaW5lZGBcbiAgICAgIC8vIGZvciBOUENHLCBsaWtlIElFOC4gTk9URTogVGhpcyBkb2Vzbicgd29yayBmb3IgLyguPyk/L1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWxvb3AtZnVuY1xuICAgICAgbmF0aXZlUmVwbGFjZS5jYWxsKG1hdGNoWzBdLCByZUNvcHksIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZm9yIChpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGggLSAyOyBpKyspIHtcbiAgICAgICAgICBpZiAoYXJndW1lbnRzW2ldID09PSB1bmRlZmluZWQpIG1hdGNoW2ldID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWF0Y2g7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcGF0Y2hlZEV4ZWM7XG4iLCIvLyA3LjIuOSBTYW1lVmFsdWUoeCwgeSlcbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmlzIHx8IGZ1bmN0aW9uIGlzKHgsIHkpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZVxuICByZXR1cm4geCA9PT0geSA/IHggIT09IDAgfHwgMSAvIHggPT09IDEgLyB5IDogeCAhPSB4ICYmIHkgIT0geTtcbn07XG4iLCIvLyBXb3JrcyB3aXRoIF9fcHJvdG9fXyBvbmx5LiBPbGQgdjggY2FuJ3Qgd29yayB3aXRoIG51bGwgcHJvdG8gb2JqZWN0cy5cbi8qIGVzbGludC1kaXNhYmxlIG5vLXByb3RvICovXG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIGNoZWNrID0gZnVuY3Rpb24gKE8sIHByb3RvKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBpZiAoIWlzT2JqZWN0KHByb3RvKSAmJiBwcm90byAhPT0gbnVsbCkgdGhyb3cgVHlwZUVycm9yKHByb3RvICsgXCI6IGNhbid0IHNldCBhcyBwcm90b3R5cGUhXCIpO1xufTtcbm1vZHVsZS5leHBvcnRzID0ge1xuICBzZXQ6IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCAoJ19fcHJvdG9fXycgaW4ge30gPyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgZnVuY3Rpb24gKHRlc3QsIGJ1Z2d5LCBzZXQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNldCA9IHJlcXVpcmUoJy4vX2N0eCcpKEZ1bmN0aW9uLmNhbGwsIHJlcXVpcmUoJy4vX29iamVjdC1nb3BkJykuZihPYmplY3QucHJvdG90eXBlLCAnX19wcm90b19fJykuc2V0LCAyKTtcbiAgICAgICAgc2V0KHRlc3QsIFtdKTtcbiAgICAgICAgYnVnZ3kgPSAhKHRlc3QgaW5zdGFuY2VvZiBBcnJheSk7XG4gICAgICB9IGNhdGNoIChlKSB7IGJ1Z2d5ID0gdHJ1ZTsgfVxuICAgICAgcmV0dXJuIGZ1bmN0aW9uIHNldFByb3RvdHlwZU9mKE8sIHByb3RvKSB7XG4gICAgICAgIGNoZWNrKE8sIHByb3RvKTtcbiAgICAgICAgaWYgKGJ1Z2d5KSBPLl9fcHJvdG9fXyA9IHByb3RvO1xuICAgICAgICBlbHNlIHNldChPLCBwcm90byk7XG4gICAgICAgIHJldHVybiBPO1xuICAgICAgfTtcbiAgICB9KHt9LCBmYWxzZSkgOiB1bmRlZmluZWQpLFxuICBjaGVjazogY2hlY2tcbn07XG4iLCJ2YXIgZGVmID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJykuZjtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBUQUcgPSByZXF1aXJlKCcuL193a3MnKSgndG9TdHJpbmdUYWcnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIHRhZywgc3RhdCkge1xuICBpZiAoaXQgJiYgIWhhcyhpdCA9IHN0YXQgPyBpdCA6IGl0LnByb3RvdHlwZSwgVEFHKSkgZGVmKGl0LCBUQUcsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogdGFnIH0pO1xufTtcbiIsInZhciBzaGFyZWQgPSByZXF1aXJlKCcuL19zaGFyZWQnKSgna2V5cycpO1xudmFyIHVpZCA9IHJlcXVpcmUoJy4vX3VpZCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5KSB7XG4gIHJldHVybiBzaGFyZWRba2V5XSB8fCAoc2hhcmVkW2tleV0gPSB1aWQoa2V5KSk7XG59O1xuIiwidmFyIGNvcmUgPSByZXF1aXJlKCcuL19jb3JlJyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgU0hBUkVEID0gJ19fY29yZS1qc19zaGFyZWRfXyc7XG52YXIgc3RvcmUgPSBnbG9iYWxbU0hBUkVEXSB8fCAoZ2xvYmFsW1NIQVJFRF0gPSB7fSk7XG5cbihtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gIHJldHVybiBzdG9yZVtrZXldIHx8IChzdG9yZVtrZXldID0gdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDoge30pO1xufSkoJ3ZlcnNpb25zJywgW10pLnB1c2goe1xuICB2ZXJzaW9uOiBjb3JlLnZlcnNpb24sXG4gIG1vZGU6IHJlcXVpcmUoJy4vX2xpYnJhcnknKSA/ICdwdXJlJyA6ICdnbG9iYWwnLFxuICBjb3B5cmlnaHQ6ICfCqSAyMDE5IERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpJ1xufSk7XG4iLCIvLyA3LjMuMjAgU3BlY2llc0NvbnN0cnVjdG9yKE8sIGRlZmF1bHRDb25zdHJ1Y3RvcilcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4vX2EtZnVuY3Rpb24nKTtcbnZhciBTUEVDSUVTID0gcmVxdWlyZSgnLi9fd2tzJykoJ3NwZWNpZXMnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE8sIEQpIHtcbiAgdmFyIEMgPSBhbk9iamVjdChPKS5jb25zdHJ1Y3RvcjtcbiAgdmFyIFM7XG4gIHJldHVybiBDID09PSB1bmRlZmluZWQgfHwgKFMgPSBhbk9iamVjdChDKVtTUEVDSUVTXSkgPT0gdW5kZWZpbmVkID8gRCA6IGFGdW5jdGlvbihTKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuL19mYWlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChtZXRob2QsIGFyZykge1xuICByZXR1cm4gISFtZXRob2QgJiYgZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWNhbGxcbiAgICBhcmcgPyBtZXRob2QuY2FsbChudWxsLCBmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH0sIDEpIDogbWV0aG9kLmNhbGwobnVsbCk7XG4gIH0pO1xufTtcbiIsInZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuL190by1pbnRlZ2VyJyk7XG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcbi8vIHRydWUgIC0+IFN0cmluZyNhdFxuLy8gZmFsc2UgLT4gU3RyaW5nI2NvZGVQb2ludEF0XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChUT19TVFJJTkcpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh0aGF0LCBwb3MpIHtcbiAgICB2YXIgcyA9IFN0cmluZyhkZWZpbmVkKHRoYXQpKTtcbiAgICB2YXIgaSA9IHRvSW50ZWdlcihwb3MpO1xuICAgIHZhciBsID0gcy5sZW5ndGg7XG4gICAgdmFyIGEsIGI7XG4gICAgaWYgKGkgPCAwIHx8IGkgPj0gbCkgcmV0dXJuIFRPX1NUUklORyA/ICcnIDogdW5kZWZpbmVkO1xuICAgIGEgPSBzLmNoYXJDb2RlQXQoaSk7XG4gICAgcmV0dXJuIGEgPCAweGQ4MDAgfHwgYSA+IDB4ZGJmZiB8fCBpICsgMSA9PT0gbCB8fCAoYiA9IHMuY2hhckNvZGVBdChpICsgMSkpIDwgMHhkYzAwIHx8IGIgPiAweGRmZmZcbiAgICAgID8gVE9fU1RSSU5HID8gcy5jaGFyQXQoaSkgOiBhXG4gICAgICA6IFRPX1NUUklORyA/IHMuc2xpY2UoaSwgaSArIDIpIDogKGEgLSAweGQ4MDAgPDwgMTApICsgKGIgLSAweGRjMDApICsgMHgxMDAwMDtcbiAgfTtcbn07XG4iLCIvLyBoZWxwZXIgZm9yIFN0cmluZyN7c3RhcnRzV2l0aCwgZW5kc1dpdGgsIGluY2x1ZGVzfVxudmFyIGlzUmVnRXhwID0gcmVxdWlyZSgnLi9faXMtcmVnZXhwJyk7XG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodGhhdCwgc2VhcmNoU3RyaW5nLCBOQU1FKSB7XG4gIGlmIChpc1JlZ0V4cChzZWFyY2hTdHJpbmcpKSB0aHJvdyBUeXBlRXJyb3IoJ1N0cmluZyMnICsgTkFNRSArIFwiIGRvZXNuJ3QgYWNjZXB0IHJlZ2V4IVwiKTtcbiAgcmV0dXJuIFN0cmluZyhkZWZpbmVkKHRoYXQpKTtcbn07XG4iLCJ2YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIGRlZmluZWQgPSByZXF1aXJlKCcuL19kZWZpbmVkJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuL19mYWlscycpO1xudmFyIHNwYWNlcyA9IHJlcXVpcmUoJy4vX3N0cmluZy13cycpO1xudmFyIHNwYWNlID0gJ1snICsgc3BhY2VzICsgJ10nO1xudmFyIG5vbiA9ICdcXHUyMDBiXFx1MDA4NSc7XG52YXIgbHRyaW0gPSBSZWdFeHAoJ14nICsgc3BhY2UgKyBzcGFjZSArICcqJyk7XG52YXIgcnRyaW0gPSBSZWdFeHAoc3BhY2UgKyBzcGFjZSArICcqJCcpO1xuXG52YXIgZXhwb3J0ZXIgPSBmdW5jdGlvbiAoS0VZLCBleGVjLCBBTElBUykge1xuICB2YXIgZXhwID0ge307XG4gIHZhciBGT1JDRSA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gISFzcGFjZXNbS0VZXSgpIHx8IG5vbltLRVldKCkgIT0gbm9uO1xuICB9KTtcbiAgdmFyIGZuID0gZXhwW0tFWV0gPSBGT1JDRSA/IGV4ZWModHJpbSkgOiBzcGFjZXNbS0VZXTtcbiAgaWYgKEFMSUFTKSBleHBbQUxJQVNdID0gZm47XG4gICRleHBvcnQoJGV4cG9ydC5QICsgJGV4cG9ydC5GICogRk9SQ0UsICdTdHJpbmcnLCBleHApO1xufTtcblxuLy8gMSAtPiBTdHJpbmcjdHJpbUxlZnRcbi8vIDIgLT4gU3RyaW5nI3RyaW1SaWdodFxuLy8gMyAtPiBTdHJpbmcjdHJpbVxudmFyIHRyaW0gPSBleHBvcnRlci50cmltID0gZnVuY3Rpb24gKHN0cmluZywgVFlQRSkge1xuICBzdHJpbmcgPSBTdHJpbmcoZGVmaW5lZChzdHJpbmcpKTtcbiAgaWYgKFRZUEUgJiAxKSBzdHJpbmcgPSBzdHJpbmcucmVwbGFjZShsdHJpbSwgJycpO1xuICBpZiAoVFlQRSAmIDIpIHN0cmluZyA9IHN0cmluZy5yZXBsYWNlKHJ0cmltLCAnJyk7XG4gIHJldHVybiBzdHJpbmc7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydGVyO1xuIiwibW9kdWxlLmV4cG9ydHMgPSAnXFx4MDlcXHgwQVxceDBCXFx4MENcXHgwRFxceDIwXFx4QTBcXHUxNjgwXFx1MTgwRVxcdTIwMDBcXHUyMDAxXFx1MjAwMlxcdTIwMDMnICtcbiAgJ1xcdTIwMDRcXHUyMDA1XFx1MjAwNlxcdTIwMDdcXHUyMDA4XFx1MjAwOVxcdTIwMEFcXHUyMDJGXFx1MjA1RlxcdTMwMDBcXHUyMDI4XFx1MjAyOVxcdUZFRkYnO1xuIiwidmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4vX3RvLWludGVnZXInKTtcbnZhciBtYXggPSBNYXRoLm1heDtcbnZhciBtaW4gPSBNYXRoLm1pbjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGluZGV4LCBsZW5ndGgpIHtcbiAgaW5kZXggPSB0b0ludGVnZXIoaW5kZXgpO1xuICByZXR1cm4gaW5kZXggPCAwID8gbWF4KGluZGV4ICsgbGVuZ3RoLCAwKSA6IG1pbihpbmRleCwgbGVuZ3RoKTtcbn07XG4iLCIvLyA3LjEuNCBUb0ludGVnZXJcbnZhciBjZWlsID0gTWF0aC5jZWlsO1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpc05hTihpdCA9ICtpdCkgPyAwIDogKGl0ID4gMCA/IGZsb29yIDogY2VpbCkoaXQpO1xufTtcbiIsIi8vIHRvIGluZGV4ZWQgb2JqZWN0LCB0b09iamVjdCB3aXRoIGZhbGxiYWNrIGZvciBub24tYXJyYXktbGlrZSBFUzMgc3RyaW5nc1xudmFyIElPYmplY3QgPSByZXF1aXJlKCcuL19pb2JqZWN0Jyk7XG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBJT2JqZWN0KGRlZmluZWQoaXQpKTtcbn07XG4iLCIvLyA3LjEuMTUgVG9MZW5ndGhcbnZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuL190by1pbnRlZ2VyJyk7XG52YXIgbWluID0gTWF0aC5taW47XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgPiAwID8gbWluKHRvSW50ZWdlcihpdCksIDB4MWZmZmZmZmZmZmZmZmYpIDogMDsgLy8gcG93KDIsIDUzKSAtIDEgPT0gOTAwNzE5OTI1NDc0MDk5MVxufTtcbiIsIi8vIDcuMS4xMyBUb09iamVjdChhcmd1bWVudClcbnZhciBkZWZpbmVkID0gcmVxdWlyZSgnLi9fZGVmaW5lZCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIE9iamVjdChkZWZpbmVkKGl0KSk7XG59O1xuIiwiLy8gNy4xLjEgVG9QcmltaXRpdmUoaW5wdXQgWywgUHJlZmVycmVkVHlwZV0pXG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbi8vIGluc3RlYWQgb2YgdGhlIEVTNiBzcGVjIHZlcnNpb24sIHdlIGRpZG4ndCBpbXBsZW1lbnQgQEB0b1ByaW1pdGl2ZSBjYXNlXG4vLyBhbmQgdGhlIHNlY29uZCBhcmd1bWVudCAtIGZsYWcgLSBwcmVmZXJyZWQgdHlwZSBpcyBhIHN0cmluZ1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIFMpIHtcbiAgaWYgKCFpc09iamVjdChpdCkpIHJldHVybiBpdDtcbiAgdmFyIGZuLCB2YWw7XG4gIGlmIChTICYmIHR5cGVvZiAoZm4gPSBpdC50b1N0cmluZykgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSByZXR1cm4gdmFsO1xuICBpZiAodHlwZW9mIChmbiA9IGl0LnZhbHVlT2YpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKCFTICYmIHR5cGVvZiAoZm4gPSBpdC50b1N0cmluZykgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSByZXR1cm4gdmFsO1xuICB0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIik7XG59O1xuIiwidmFyIGlkID0gMDtcbnZhciBweCA9IE1hdGgucmFuZG9tKCk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgcmV0dXJuICdTeW1ib2woJy5jb25jYXQoa2V5ID09PSB1bmRlZmluZWQgPyAnJyA6IGtleSwgJylfJywgKCsraWQgKyBweCkudG9TdHJpbmcoMzYpKTtcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgY29yZSA9IHJlcXVpcmUoJy4vX2NvcmUnKTtcbnZhciBMSUJSQVJZID0gcmVxdWlyZSgnLi9fbGlicmFyeScpO1xudmFyIHdrc0V4dCA9IHJlcXVpcmUoJy4vX3drcy1leHQnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmY7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIHZhciAkU3ltYm9sID0gY29yZS5TeW1ib2wgfHwgKGNvcmUuU3ltYm9sID0gTElCUkFSWSA/IHt9IDogZ2xvYmFsLlN5bWJvbCB8fCB7fSk7XG4gIGlmIChuYW1lLmNoYXJBdCgwKSAhPSAnXycgJiYgIShuYW1lIGluICRTeW1ib2wpKSBkZWZpbmVQcm9wZXJ0eSgkU3ltYm9sLCBuYW1lLCB7IHZhbHVlOiB3a3NFeHQuZihuYW1lKSB9KTtcbn07XG4iLCJleHBvcnRzLmYgPSByZXF1aXJlKCcuL193a3MnKTtcbiIsInZhciBzdG9yZSA9IHJlcXVpcmUoJy4vX3NoYXJlZCcpKCd3a3MnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuL191aWQnKTtcbnZhciBTeW1ib2wgPSByZXF1aXJlKCcuL19nbG9iYWwnKS5TeW1ib2w7XG52YXIgVVNFX1NZTUJPTCA9IHR5cGVvZiBTeW1ib2wgPT0gJ2Z1bmN0aW9uJztcblxudmFyICRleHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobmFtZSkge1xuICByZXR1cm4gc3RvcmVbbmFtZV0gfHwgKHN0b3JlW25hbWVdID1cbiAgICBVU0VfU1lNQk9MICYmIFN5bWJvbFtuYW1lXSB8fCAoVVNFX1NZTUJPTCA/IFN5bWJvbCA6IHVpZCkoJ1N5bWJvbC4nICsgbmFtZSkpO1xufTtcblxuJGV4cG9ydHMuc3RvcmUgPSBzdG9yZTtcbiIsInZhciBjbGFzc29mID0gcmVxdWlyZSgnLi9fY2xhc3NvZicpO1xudmFyIElURVJBVE9SID0gcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi9faXRlcmF0b3JzJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2NvcmUnKS5nZXRJdGVyYXRvck1ldGhvZCA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXQgIT0gdW5kZWZpbmVkKSByZXR1cm4gaXRbSVRFUkFUT1JdXG4gICAgfHwgaXRbJ0BAaXRlcmF0b3InXVxuICAgIHx8IEl0ZXJhdG9yc1tjbGFzc29mKGl0KV07XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciAkZmlsdGVyID0gcmVxdWlyZSgnLi9fYXJyYXktbWV0aG9kcycpKDIpO1xuXG4kZXhwb3J0KCRleHBvcnQuUCArICRleHBvcnQuRiAqICFyZXF1aXJlKCcuL19zdHJpY3QtbWV0aG9kJykoW10uZmlsdGVyLCB0cnVlKSwgJ0FycmF5Jywge1xuICAvLyAyMi4xLjMuNyAvIDE1LjQuNC4yMCBBcnJheS5wcm90b3R5cGUuZmlsdGVyKGNhbGxiYWNrZm4gWywgdGhpc0FyZ10pXG4gIGZpbHRlcjogZnVuY3Rpb24gZmlsdGVyKGNhbGxiYWNrZm4gLyogLCB0aGlzQXJnICovKSB7XG4gICAgcmV0dXJuICRmaWx0ZXIodGhpcywgY2FsbGJhY2tmbiwgYXJndW1lbnRzWzFdKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY3R4ID0gcmVxdWlyZSgnLi9fY3R4Jyk7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8tb2JqZWN0Jyk7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4vX2l0ZXItY2FsbCcpO1xudmFyIGlzQXJyYXlJdGVyID0gcmVxdWlyZSgnLi9faXMtYXJyYXktaXRlcicpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi9fdG8tbGVuZ3RoJyk7XG52YXIgY3JlYXRlUHJvcGVydHkgPSByZXF1aXJlKCcuL19jcmVhdGUtcHJvcGVydHknKTtcbnZhciBnZXRJdGVyRm4gPSByZXF1aXJlKCcuL2NvcmUuZ2V0LWl0ZXJhdG9yLW1ldGhvZCcpO1xuXG4kZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICFyZXF1aXJlKCcuL19pdGVyLWRldGVjdCcpKGZ1bmN0aW9uIChpdGVyKSB7IEFycmF5LmZyb20oaXRlcik7IH0pLCAnQXJyYXknLCB7XG4gIC8vIDIyLjEuMi4xIEFycmF5LmZyb20oYXJyYXlMaWtlLCBtYXBmbiA9IHVuZGVmaW5lZCwgdGhpc0FyZyA9IHVuZGVmaW5lZClcbiAgZnJvbTogZnVuY3Rpb24gZnJvbShhcnJheUxpa2UgLyogLCBtYXBmbiA9IHVuZGVmaW5lZCwgdGhpc0FyZyA9IHVuZGVmaW5lZCAqLykge1xuICAgIHZhciBPID0gdG9PYmplY3QoYXJyYXlMaWtlKTtcbiAgICB2YXIgQyA9IHR5cGVvZiB0aGlzID09ICdmdW5jdGlvbicgPyB0aGlzIDogQXJyYXk7XG4gICAgdmFyIGFMZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIHZhciBtYXBmbiA9IGFMZW4gPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xuICAgIHZhciBtYXBwaW5nID0gbWFwZm4gIT09IHVuZGVmaW5lZDtcbiAgICB2YXIgaW5kZXggPSAwO1xuICAgIHZhciBpdGVyRm4gPSBnZXRJdGVyRm4oTyk7XG4gICAgdmFyIGxlbmd0aCwgcmVzdWx0LCBzdGVwLCBpdGVyYXRvcjtcbiAgICBpZiAobWFwcGluZykgbWFwZm4gPSBjdHgobWFwZm4sIGFMZW4gPiAyID8gYXJndW1lbnRzWzJdIDogdW5kZWZpbmVkLCAyKTtcbiAgICAvLyBpZiBvYmplY3QgaXNuJ3QgaXRlcmFibGUgb3IgaXQncyBhcnJheSB3aXRoIGRlZmF1bHQgaXRlcmF0b3IgLSB1c2Ugc2ltcGxlIGNhc2VcbiAgICBpZiAoaXRlckZuICE9IHVuZGVmaW5lZCAmJiAhKEMgPT0gQXJyYXkgJiYgaXNBcnJheUl0ZXIoaXRlckZuKSkpIHtcbiAgICAgIGZvciAoaXRlcmF0b3IgPSBpdGVyRm4uY2FsbChPKSwgcmVzdWx0ID0gbmV3IEMoKTsgIShzdGVwID0gaXRlcmF0b3IubmV4dCgpKS5kb25lOyBpbmRleCsrKSB7XG4gICAgICAgIGNyZWF0ZVByb3BlcnR5KHJlc3VsdCwgaW5kZXgsIG1hcHBpbmcgPyBjYWxsKGl0ZXJhdG9yLCBtYXBmbiwgW3N0ZXAudmFsdWUsIGluZGV4XSwgdHJ1ZSkgOiBzdGVwLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbGVuZ3RoID0gdG9MZW5ndGgoTy5sZW5ndGgpO1xuICAgICAgZm9yIChyZXN1bHQgPSBuZXcgQyhsZW5ndGgpOyBsZW5ndGggPiBpbmRleDsgaW5kZXgrKykge1xuICAgICAgICBjcmVhdGVQcm9wZXJ0eShyZXN1bHQsIGluZGV4LCBtYXBwaW5nID8gbWFwZm4oT1tpbmRleF0sIGluZGV4KSA6IE9baW5kZXhdKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmVzdWx0Lmxlbmd0aCA9IGluZGV4O1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGFkZFRvVW5zY29wYWJsZXMgPSByZXF1aXJlKCcuL19hZGQtdG8tdW5zY29wYWJsZXMnKTtcbnZhciBzdGVwID0gcmVxdWlyZSgnLi9faXRlci1zdGVwJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi9faXRlcmF0b3JzJyk7XG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xuXG4vLyAyMi4xLjMuNCBBcnJheS5wcm90b3R5cGUuZW50cmllcygpXG4vLyAyMi4xLjMuMTMgQXJyYXkucHJvdG90eXBlLmtleXMoKVxuLy8gMjIuMS4zLjI5IEFycmF5LnByb3RvdHlwZS52YWx1ZXMoKVxuLy8gMjIuMS4zLjMwIEFycmF5LnByb3RvdHlwZVtAQGl0ZXJhdG9yXSgpXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2l0ZXItZGVmaW5lJykoQXJyYXksICdBcnJheScsIGZ1bmN0aW9uIChpdGVyYXRlZCwga2luZCkge1xuICB0aGlzLl90ID0gdG9JT2JqZWN0KGl0ZXJhdGVkKTsgLy8gdGFyZ2V0XG4gIHRoaXMuX2kgPSAwOyAgICAgICAgICAgICAgICAgICAvLyBuZXh0IGluZGV4XG4gIHRoaXMuX2sgPSBraW5kOyAgICAgICAgICAgICAgICAvLyBraW5kXG4vLyAyMi4xLjUuMi4xICVBcnJheUl0ZXJhdG9yUHJvdG90eXBlJS5uZXh0KClcbn0sIGZ1bmN0aW9uICgpIHtcbiAgdmFyIE8gPSB0aGlzLl90O1xuICB2YXIga2luZCA9IHRoaXMuX2s7XG4gIHZhciBpbmRleCA9IHRoaXMuX2krKztcbiAgaWYgKCFPIHx8IGluZGV4ID49IE8ubGVuZ3RoKSB7XG4gICAgdGhpcy5fdCA9IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gc3RlcCgxKTtcbiAgfVxuICBpZiAoa2luZCA9PSAna2V5cycpIHJldHVybiBzdGVwKDAsIGluZGV4KTtcbiAgaWYgKGtpbmQgPT0gJ3ZhbHVlcycpIHJldHVybiBzdGVwKDAsIE9baW5kZXhdKTtcbiAgcmV0dXJuIHN0ZXAoMCwgW2luZGV4LCBPW2luZGV4XV0pO1xufSwgJ3ZhbHVlcycpO1xuXG4vLyBhcmd1bWVudHNMaXN0W0BAaXRlcmF0b3JdIGlzICVBcnJheVByb3RvX3ZhbHVlcyUgKDkuNC40LjYsIDkuNC40LjcpXG5JdGVyYXRvcnMuQXJndW1lbnRzID0gSXRlcmF0b3JzLkFycmF5O1xuXG5hZGRUb1Vuc2NvcGFibGVzKCdrZXlzJyk7XG5hZGRUb1Vuc2NvcGFibGVzKCd2YWx1ZXMnKTtcbmFkZFRvVW5zY29wYWJsZXMoJ2VudHJpZXMnKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgJG1hcCA9IHJlcXVpcmUoJy4vX2FycmF5LW1ldGhvZHMnKSgxKTtcblxuJGV4cG9ydCgkZXhwb3J0LlAgKyAkZXhwb3J0LkYgKiAhcmVxdWlyZSgnLi9fc3RyaWN0LW1ldGhvZCcpKFtdLm1hcCwgdHJ1ZSksICdBcnJheScsIHtcbiAgLy8gMjIuMS4zLjE1IC8gMTUuNC40LjE5IEFycmF5LnByb3RvdHlwZS5tYXAoY2FsbGJhY2tmbiBbLCB0aGlzQXJnXSlcbiAgbWFwOiBmdW5jdGlvbiBtYXAoY2FsbGJhY2tmbiAvKiAsIHRoaXNBcmcgKi8pIHtcbiAgICByZXR1cm4gJG1hcCh0aGlzLCBjYWxsYmFja2ZuLCBhcmd1bWVudHNbMV0pO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgaHRtbCA9IHJlcXVpcmUoJy4vX2h0bWwnKTtcbnZhciBjb2YgPSByZXF1aXJlKCcuL19jb2YnKTtcbnZhciB0b0Fic29sdXRlSW5kZXggPSByZXF1aXJlKCcuL190by1hYnNvbHV0ZS1pbmRleCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi9fdG8tbGVuZ3RoJyk7XG52YXIgYXJyYXlTbGljZSA9IFtdLnNsaWNlO1xuXG4vLyBmYWxsYmFjayBmb3Igbm90IGFycmF5LWxpa2UgRVMzIHN0cmluZ3MgYW5kIERPTSBvYmplY3RzXG4kZXhwb3J0KCRleHBvcnQuUCArICRleHBvcnQuRiAqIHJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24gKCkge1xuICBpZiAoaHRtbCkgYXJyYXlTbGljZS5jYWxsKGh0bWwpO1xufSksICdBcnJheScsIHtcbiAgc2xpY2U6IGZ1bmN0aW9uIHNsaWNlKGJlZ2luLCBlbmQpIHtcbiAgICB2YXIgbGVuID0gdG9MZW5ndGgodGhpcy5sZW5ndGgpO1xuICAgIHZhciBrbGFzcyA9IGNvZih0aGlzKTtcbiAgICBlbmQgPSBlbmQgPT09IHVuZGVmaW5lZCA/IGxlbiA6IGVuZDtcbiAgICBpZiAoa2xhc3MgPT0gJ0FycmF5JykgcmV0dXJuIGFycmF5U2xpY2UuY2FsbCh0aGlzLCBiZWdpbiwgZW5kKTtcbiAgICB2YXIgc3RhcnQgPSB0b0Fic29sdXRlSW5kZXgoYmVnaW4sIGxlbik7XG4gICAgdmFyIHVwVG8gPSB0b0Fic29sdXRlSW5kZXgoZW5kLCBsZW4pO1xuICAgIHZhciBzaXplID0gdG9MZW5ndGgodXBUbyAtIHN0YXJ0KTtcbiAgICB2YXIgY2xvbmVkID0gbmV3IEFycmF5KHNpemUpO1xuICAgIHZhciBpID0gMDtcbiAgICBmb3IgKDsgaSA8IHNpemU7IGkrKykgY2xvbmVkW2ldID0ga2xhc3MgPT0gJ1N0cmluZydcbiAgICAgID8gdGhpcy5jaGFyQXQoc3RhcnQgKyBpKVxuICAgICAgOiB0aGlzW3N0YXJ0ICsgaV07XG4gICAgcmV0dXJuIGNsb25lZDtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4vX2EtZnVuY3Rpb24nKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4vX3RvLW9iamVjdCcpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi9fZmFpbHMnKTtcbnZhciAkc29ydCA9IFtdLnNvcnQ7XG52YXIgdGVzdCA9IFsxLCAyLCAzXTtcblxuJGV4cG9ydCgkZXhwb3J0LlAgKyAkZXhwb3J0LkYgKiAoZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBJRTgtXG4gIHRlc3Quc29ydCh1bmRlZmluZWQpO1xufSkgfHwgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gVjggYnVnXG4gIHRlc3Quc29ydChudWxsKTtcbiAgLy8gT2xkIFdlYktpdFxufSkgfHwgIXJlcXVpcmUoJy4vX3N0cmljdC1tZXRob2QnKSgkc29ydCkpLCAnQXJyYXknLCB7XG4gIC8vIDIyLjEuMy4yNSBBcnJheS5wcm90b3R5cGUuc29ydChjb21wYXJlZm4pXG4gIHNvcnQ6IGZ1bmN0aW9uIHNvcnQoY29tcGFyZWZuKSB7XG4gICAgcmV0dXJuIGNvbXBhcmVmbiA9PT0gdW5kZWZpbmVkXG4gICAgICA/ICRzb3J0LmNhbGwodG9PYmplY3QodGhpcykpXG4gICAgICA6ICRzb3J0LmNhbGwodG9PYmplY3QodGhpcyksIGFGdW5jdGlvbihjb21wYXJlZm4pKTtcbiAgfVxufSk7XG4iLCJ2YXIgZFAgPSByZXF1aXJlKCcuL19vYmplY3QtZHAnKS5mO1xudmFyIEZQcm90byA9IEZ1bmN0aW9uLnByb3RvdHlwZTtcbnZhciBuYW1lUkUgPSAvXlxccypmdW5jdGlvbiAoW14gKF0qKS87XG52YXIgTkFNRSA9ICduYW1lJztcblxuLy8gMTkuMi40LjIgbmFtZVxuTkFNRSBpbiBGUHJvdG8gfHwgcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSAmJiBkUChGUHJvdG8sIE5BTUUsIHtcbiAgY29uZmlndXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuICgnJyArIHRoaXMpLm1hdGNoKG5hbWVSRSlbMV07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgY29mID0gcmVxdWlyZSgnLi9fY29mJyk7XG52YXIgaW5oZXJpdElmUmVxdWlyZWQgPSByZXF1aXJlKCcuL19pbmhlcml0LWlmLXJlcXVpcmVkJyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuL190by1wcmltaXRpdmUnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4vX2ZhaWxzJyk7XG52YXIgZ09QTiA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BuJykuZjtcbnZhciBnT1BEID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdvcGQnKS5mO1xudmFyIGRQID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJykuZjtcbnZhciAkdHJpbSA9IHJlcXVpcmUoJy4vX3N0cmluZy10cmltJykudHJpbTtcbnZhciBOVU1CRVIgPSAnTnVtYmVyJztcbnZhciAkTnVtYmVyID0gZ2xvYmFsW05VTUJFUl07XG52YXIgQmFzZSA9ICROdW1iZXI7XG52YXIgcHJvdG8gPSAkTnVtYmVyLnByb3RvdHlwZTtcbi8vIE9wZXJhIH4xMiBoYXMgYnJva2VuIE9iamVjdCN0b1N0cmluZ1xudmFyIEJST0tFTl9DT0YgPSBjb2YocmVxdWlyZSgnLi9fb2JqZWN0LWNyZWF0ZScpKHByb3RvKSkgPT0gTlVNQkVSO1xudmFyIFRSSU0gPSAndHJpbScgaW4gU3RyaW5nLnByb3RvdHlwZTtcblxuLy8gNy4xLjMgVG9OdW1iZXIoYXJndW1lbnQpXG52YXIgdG9OdW1iZXIgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgdmFyIGl0ID0gdG9QcmltaXRpdmUoYXJndW1lbnQsIGZhbHNlKTtcbiAgaWYgKHR5cGVvZiBpdCA9PSAnc3RyaW5nJyAmJiBpdC5sZW5ndGggPiAyKSB7XG4gICAgaXQgPSBUUklNID8gaXQudHJpbSgpIDogJHRyaW0oaXQsIDMpO1xuICAgIHZhciBmaXJzdCA9IGl0LmNoYXJDb2RlQXQoMCk7XG4gICAgdmFyIHRoaXJkLCByYWRpeCwgbWF4Q29kZTtcbiAgICBpZiAoZmlyc3QgPT09IDQzIHx8IGZpcnN0ID09PSA0NSkge1xuICAgICAgdGhpcmQgPSBpdC5jaGFyQ29kZUF0KDIpO1xuICAgICAgaWYgKHRoaXJkID09PSA4OCB8fCB0aGlyZCA9PT0gMTIwKSByZXR1cm4gTmFOOyAvLyBOdW1iZXIoJysweDEnKSBzaG91bGQgYmUgTmFOLCBvbGQgVjggZml4XG4gICAgfSBlbHNlIGlmIChmaXJzdCA9PT0gNDgpIHtcbiAgICAgIHN3aXRjaCAoaXQuY2hhckNvZGVBdCgxKSkge1xuICAgICAgICBjYXNlIDY2OiBjYXNlIDk4OiByYWRpeCA9IDI7IG1heENvZGUgPSA0OTsgYnJlYWs7IC8vIGZhc3QgZXF1YWwgL14wYlswMV0rJC9pXG4gICAgICAgIGNhc2UgNzk6IGNhc2UgMTExOiByYWRpeCA9IDg7IG1heENvZGUgPSA1NTsgYnJlYWs7IC8vIGZhc3QgZXF1YWwgL14wb1swLTddKyQvaVxuICAgICAgICBkZWZhdWx0OiByZXR1cm4gK2l0O1xuICAgICAgfVxuICAgICAgZm9yICh2YXIgZGlnaXRzID0gaXQuc2xpY2UoMiksIGkgPSAwLCBsID0gZGlnaXRzLmxlbmd0aCwgY29kZTsgaSA8IGw7IGkrKykge1xuICAgICAgICBjb2RlID0gZGlnaXRzLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIC8vIHBhcnNlSW50IHBhcnNlcyBhIHN0cmluZyB0byBhIGZpcnN0IHVuYXZhaWxhYmxlIHN5bWJvbFxuICAgICAgICAvLyBidXQgVG9OdW1iZXIgc2hvdWxkIHJldHVybiBOYU4gaWYgYSBzdHJpbmcgY29udGFpbnMgdW5hdmFpbGFibGUgc3ltYm9sc1xuICAgICAgICBpZiAoY29kZSA8IDQ4IHx8IGNvZGUgPiBtYXhDb2RlKSByZXR1cm4gTmFOO1xuICAgICAgfSByZXR1cm4gcGFyc2VJbnQoZGlnaXRzLCByYWRpeCk7XG4gICAgfVxuICB9IHJldHVybiAraXQ7XG59O1xuXG5pZiAoISROdW1iZXIoJyAwbzEnKSB8fCAhJE51bWJlcignMGIxJykgfHwgJE51bWJlcignKzB4MScpKSB7XG4gICROdW1iZXIgPSBmdW5jdGlvbiBOdW1iZXIodmFsdWUpIHtcbiAgICB2YXIgaXQgPSBhcmd1bWVudHMubGVuZ3RoIDwgMSA/IDAgOiB2YWx1ZTtcbiAgICB2YXIgdGhhdCA9IHRoaXM7XG4gICAgcmV0dXJuIHRoYXQgaW5zdGFuY2VvZiAkTnVtYmVyXG4gICAgICAvLyBjaGVjayBvbiAxLi5jb25zdHJ1Y3Rvcihmb28pIGNhc2VcbiAgICAgICYmIChCUk9LRU5fQ09GID8gZmFpbHMoZnVuY3Rpb24gKCkgeyBwcm90by52YWx1ZU9mLmNhbGwodGhhdCk7IH0pIDogY29mKHRoYXQpICE9IE5VTUJFUilcbiAgICAgICAgPyBpbmhlcml0SWZSZXF1aXJlZChuZXcgQmFzZSh0b051bWJlcihpdCkpLCB0aGF0LCAkTnVtYmVyKSA6IHRvTnVtYmVyKGl0KTtcbiAgfTtcbiAgZm9yICh2YXIga2V5cyA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBnT1BOKEJhc2UpIDogKFxuICAgIC8vIEVTMzpcbiAgICAnTUFYX1ZBTFVFLE1JTl9WQUxVRSxOYU4sTkVHQVRJVkVfSU5GSU5JVFksUE9TSVRJVkVfSU5GSU5JVFksJyArXG4gICAgLy8gRVM2IChpbiBjYXNlLCBpZiBtb2R1bGVzIHdpdGggRVM2IE51bWJlciBzdGF0aWNzIHJlcXVpcmVkIGJlZm9yZSk6XG4gICAgJ0VQU0lMT04saXNGaW5pdGUsaXNJbnRlZ2VyLGlzTmFOLGlzU2FmZUludGVnZXIsTUFYX1NBRkVfSU5URUdFUiwnICtcbiAgICAnTUlOX1NBRkVfSU5URUdFUixwYXJzZUZsb2F0LHBhcnNlSW50LGlzSW50ZWdlcidcbiAgKS5zcGxpdCgnLCcpLCBqID0gMCwga2V5OyBrZXlzLmxlbmd0aCA+IGo7IGorKykge1xuICAgIGlmIChoYXMoQmFzZSwga2V5ID0ga2V5c1tqXSkgJiYgIWhhcygkTnVtYmVyLCBrZXkpKSB7XG4gICAgICBkUCgkTnVtYmVyLCBrZXksIGdPUEQoQmFzZSwga2V5KSk7XG4gICAgfVxuICB9XG4gICROdW1iZXIucHJvdG90eXBlID0gcHJvdG87XG4gIHByb3RvLmNvbnN0cnVjdG9yID0gJE51bWJlcjtcbiAgcmVxdWlyZSgnLi9fcmVkZWZpbmUnKShnbG9iYWwsIE5VTUJFUiwgJE51bWJlcik7XG59XG4iLCIvLyAxOS4xLjMuMSBPYmplY3QuYXNzaWduKHRhcmdldCwgc291cmNlKVxudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcblxuJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYsICdPYmplY3QnLCB7IGFzc2lnbjogcmVxdWlyZSgnLi9fb2JqZWN0LWFzc2lnbicpIH0pO1xuIiwiLy8gMTkuMS4yLjUgT2JqZWN0LmZyZWV6ZShPKVxudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG52YXIgbWV0YSA9IHJlcXVpcmUoJy4vX21ldGEnKS5vbkZyZWV6ZTtcblxucmVxdWlyZSgnLi9fb2JqZWN0LXNhcCcpKCdmcmVlemUnLCBmdW5jdGlvbiAoJGZyZWV6ZSkge1xuICByZXR1cm4gZnVuY3Rpb24gZnJlZXplKGl0KSB7XG4gICAgcmV0dXJuICRmcmVlemUgJiYgaXNPYmplY3QoaXQpID8gJGZyZWV6ZShtZXRhKGl0KSkgOiBpdDtcbiAgfTtcbn0pO1xuIiwiLy8gMTkuMS4yLjYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPLCBQKVxudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdvcGQnKS5mO1xuXG5yZXF1aXJlKCcuL19vYmplY3Qtc2FwJykoJ2dldE93blByb3BlcnR5RGVzY3JpcHRvcicsIGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihpdCwga2V5KSB7XG4gICAgcmV0dXJuICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodG9JT2JqZWN0KGl0KSwga2V5KTtcbiAgfTtcbn0pO1xuIiwiLy8gMTkuMS4yLjcgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoTylcbnJlcXVpcmUoJy4vX29iamVjdC1zYXAnKSgnZ2V0T3duUHJvcGVydHlOYW1lcycsIGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHJlcXVpcmUoJy4vX29iamVjdC1nb3BuLWV4dCcpLmY7XG59KTtcbiIsIi8vIDE5LjEuMi4xNCBPYmplY3Qua2V5cyhPKVxudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8tb2JqZWN0Jyk7XG52YXIgJGtleXMgPSByZXF1aXJlKCcuL19vYmplY3Qta2V5cycpO1xuXG5yZXF1aXJlKCcuL19vYmplY3Qtc2FwJykoJ2tleXMnLCBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBmdW5jdGlvbiBrZXlzKGl0KSB7XG4gICAgcmV0dXJuICRrZXlzKHRvT2JqZWN0KGl0KSk7XG4gIH07XG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIDE5LjEuMy42IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcoKVxudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuL19jbGFzc29mJyk7XG52YXIgdGVzdCA9IHt9O1xudGVzdFtyZXF1aXJlKCcuL193a3MnKSgndG9TdHJpbmdUYWcnKV0gPSAneic7XG5pZiAodGVzdCArICcnICE9ICdbb2JqZWN0IHpdJykge1xuICByZXF1aXJlKCcuL19yZWRlZmluZScpKE9iamVjdC5wcm90b3R5cGUsICd0b1N0cmluZycsIGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiAnW29iamVjdCAnICsgY2xhc3NvZih0aGlzKSArICddJztcbiAgfSwgdHJ1ZSk7XG59XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcmVnZXhwRXhlYyA9IHJlcXVpcmUoJy4vX3JlZ2V4cC1leGVjJyk7XG5yZXF1aXJlKCcuL19leHBvcnQnKSh7XG4gIHRhcmdldDogJ1JlZ0V4cCcsXG4gIHByb3RvOiB0cnVlLFxuICBmb3JjZWQ6IHJlZ2V4cEV4ZWMgIT09IC8uLy5leGVjXG59LCB7XG4gIGV4ZWM6IHJlZ2V4cEV4ZWNcbn0pO1xuIiwiLy8gMjEuMi41LjMgZ2V0IFJlZ0V4cC5wcm90b3R5cGUuZmxhZ3MoKVxuaWYgKHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgJiYgLy4vZy5mbGFncyAhPSAnZycpIHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmYoUmVnRXhwLnByb3RvdHlwZSwgJ2ZsYWdzJywge1xuICBjb25maWd1cmFibGU6IHRydWUsXG4gIGdldDogcmVxdWlyZSgnLi9fZmxhZ3MnKVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi9fdG8tbGVuZ3RoJyk7XG52YXIgYWR2YW5jZVN0cmluZ0luZGV4ID0gcmVxdWlyZSgnLi9fYWR2YW5jZS1zdHJpbmctaW5kZXgnKTtcbnZhciByZWdFeHBFeGVjID0gcmVxdWlyZSgnLi9fcmVnZXhwLWV4ZWMtYWJzdHJhY3QnKTtcblxuLy8gQEBtYXRjaCBsb2dpY1xucmVxdWlyZSgnLi9fZml4LXJlLXdrcycpKCdtYXRjaCcsIDEsIGZ1bmN0aW9uIChkZWZpbmVkLCBNQVRDSCwgJG1hdGNoLCBtYXliZUNhbGxOYXRpdmUpIHtcbiAgcmV0dXJuIFtcbiAgICAvLyBgU3RyaW5nLnByb3RvdHlwZS5tYXRjaGAgbWV0aG9kXG4gICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS5tYXRjaFxuICAgIGZ1bmN0aW9uIG1hdGNoKHJlZ2V4cCkge1xuICAgICAgdmFyIE8gPSBkZWZpbmVkKHRoaXMpO1xuICAgICAgdmFyIGZuID0gcmVnZXhwID09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IHJlZ2V4cFtNQVRDSF07XG4gICAgICByZXR1cm4gZm4gIT09IHVuZGVmaW5lZCA/IGZuLmNhbGwocmVnZXhwLCBPKSA6IG5ldyBSZWdFeHAocmVnZXhwKVtNQVRDSF0oU3RyaW5nKE8pKTtcbiAgICB9LFxuICAgIC8vIGBSZWdFeHAucHJvdG90eXBlW0BAbWF0Y2hdYCBtZXRob2RcbiAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZWdleHAucHJvdG90eXBlLUBAbWF0Y2hcbiAgICBmdW5jdGlvbiAocmVnZXhwKSB7XG4gICAgICB2YXIgcmVzID0gbWF5YmVDYWxsTmF0aXZlKCRtYXRjaCwgcmVnZXhwLCB0aGlzKTtcbiAgICAgIGlmIChyZXMuZG9uZSkgcmV0dXJuIHJlcy52YWx1ZTtcbiAgICAgIHZhciByeCA9IGFuT2JqZWN0KHJlZ2V4cCk7XG4gICAgICB2YXIgUyA9IFN0cmluZyh0aGlzKTtcbiAgICAgIGlmICghcnguZ2xvYmFsKSByZXR1cm4gcmVnRXhwRXhlYyhyeCwgUyk7XG4gICAgICB2YXIgZnVsbFVuaWNvZGUgPSByeC51bmljb2RlO1xuICAgICAgcngubGFzdEluZGV4ID0gMDtcbiAgICAgIHZhciBBID0gW107XG4gICAgICB2YXIgbiA9IDA7XG4gICAgICB2YXIgcmVzdWx0O1xuICAgICAgd2hpbGUgKChyZXN1bHQgPSByZWdFeHBFeGVjKHJ4LCBTKSkgIT09IG51bGwpIHtcbiAgICAgICAgdmFyIG1hdGNoU3RyID0gU3RyaW5nKHJlc3VsdFswXSk7XG4gICAgICAgIEFbbl0gPSBtYXRjaFN0cjtcbiAgICAgICAgaWYgKG1hdGNoU3RyID09PSAnJykgcngubGFzdEluZGV4ID0gYWR2YW5jZVN0cmluZ0luZGV4KFMsIHRvTGVuZ3RoKHJ4Lmxhc3RJbmRleCksIGZ1bGxVbmljb2RlKTtcbiAgICAgICAgbisrO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG4gPT09IDAgPyBudWxsIDogQTtcbiAgICB9XG4gIF07XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgc2FtZVZhbHVlID0gcmVxdWlyZSgnLi9fc2FtZS12YWx1ZScpO1xudmFyIHJlZ0V4cEV4ZWMgPSByZXF1aXJlKCcuL19yZWdleHAtZXhlYy1hYnN0cmFjdCcpO1xuXG4vLyBAQHNlYXJjaCBsb2dpY1xucmVxdWlyZSgnLi9fZml4LXJlLXdrcycpKCdzZWFyY2gnLCAxLCBmdW5jdGlvbiAoZGVmaW5lZCwgU0VBUkNILCAkc2VhcmNoLCBtYXliZUNhbGxOYXRpdmUpIHtcbiAgcmV0dXJuIFtcbiAgICAvLyBgU3RyaW5nLnByb3RvdHlwZS5zZWFyY2hgIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUuc2VhcmNoXG4gICAgZnVuY3Rpb24gc2VhcmNoKHJlZ2V4cCkge1xuICAgICAgdmFyIE8gPSBkZWZpbmVkKHRoaXMpO1xuICAgICAgdmFyIGZuID0gcmVnZXhwID09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IHJlZ2V4cFtTRUFSQ0hdO1xuICAgICAgcmV0dXJuIGZuICE9PSB1bmRlZmluZWQgPyBmbi5jYWxsKHJlZ2V4cCwgTykgOiBuZXcgUmVnRXhwKHJlZ2V4cClbU0VBUkNIXShTdHJpbmcoTykpO1xuICAgIH0sXG4gICAgLy8gYFJlZ0V4cC5wcm90b3R5cGVbQEBzZWFyY2hdYCBtZXRob2RcbiAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZWdleHAucHJvdG90eXBlLUBAc2VhcmNoXG4gICAgZnVuY3Rpb24gKHJlZ2V4cCkge1xuICAgICAgdmFyIHJlcyA9IG1heWJlQ2FsbE5hdGl2ZSgkc2VhcmNoLCByZWdleHAsIHRoaXMpO1xuICAgICAgaWYgKHJlcy5kb25lKSByZXR1cm4gcmVzLnZhbHVlO1xuICAgICAgdmFyIHJ4ID0gYW5PYmplY3QocmVnZXhwKTtcbiAgICAgIHZhciBTID0gU3RyaW5nKHRoaXMpO1xuICAgICAgdmFyIHByZXZpb3VzTGFzdEluZGV4ID0gcngubGFzdEluZGV4O1xuICAgICAgaWYgKCFzYW1lVmFsdWUocHJldmlvdXNMYXN0SW5kZXgsIDApKSByeC5sYXN0SW5kZXggPSAwO1xuICAgICAgdmFyIHJlc3VsdCA9IHJlZ0V4cEV4ZWMocngsIFMpO1xuICAgICAgaWYgKCFzYW1lVmFsdWUocngubGFzdEluZGV4LCBwcmV2aW91c0xhc3RJbmRleCkpIHJ4Lmxhc3RJbmRleCA9IHByZXZpb3VzTGFzdEluZGV4O1xuICAgICAgcmV0dXJuIHJlc3VsdCA9PT0gbnVsbCA/IC0xIDogcmVzdWx0LmluZGV4O1xuICAgIH1cbiAgXTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgaXNSZWdFeHAgPSByZXF1aXJlKCcuL19pcy1yZWdleHAnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIHNwZWNpZXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4vX3NwZWNpZXMtY29uc3RydWN0b3InKTtcbnZhciBhZHZhbmNlU3RyaW5nSW5kZXggPSByZXF1aXJlKCcuL19hZHZhbmNlLXN0cmluZy1pbmRleCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi9fdG8tbGVuZ3RoJyk7XG52YXIgY2FsbFJlZ0V4cEV4ZWMgPSByZXF1aXJlKCcuL19yZWdleHAtZXhlYy1hYnN0cmFjdCcpO1xudmFyIHJlZ2V4cEV4ZWMgPSByZXF1aXJlKCcuL19yZWdleHAtZXhlYycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi9fZmFpbHMnKTtcbnZhciAkbWluID0gTWF0aC5taW47XG52YXIgJHB1c2ggPSBbXS5wdXNoO1xudmFyICRTUExJVCA9ICdzcGxpdCc7XG52YXIgTEVOR1RIID0gJ2xlbmd0aCc7XG52YXIgTEFTVF9JTkRFWCA9ICdsYXN0SW5kZXgnO1xudmFyIE1BWF9VSU5UMzIgPSAweGZmZmZmZmZmO1xuXG4vLyBiYWJlbC1taW5pZnkgdHJhbnNwaWxlcyBSZWdFeHAoJ3gnLCAneScpIC0+IC94L3kgYW5kIGl0IGNhdXNlcyBTeW50YXhFcnJvclxudmFyIFNVUFBPUlRTX1kgPSAhZmFpbHMoZnVuY3Rpb24gKCkgeyBSZWdFeHAoTUFYX1VJTlQzMiwgJ3knKTsgfSk7XG5cbi8vIEBAc3BsaXQgbG9naWNcbnJlcXVpcmUoJy4vX2ZpeC1yZS13a3MnKSgnc3BsaXQnLCAyLCBmdW5jdGlvbiAoZGVmaW5lZCwgU1BMSVQsICRzcGxpdCwgbWF5YmVDYWxsTmF0aXZlKSB7XG4gIHZhciBpbnRlcm5hbFNwbGl0O1xuICBpZiAoXG4gICAgJ2FiYmMnWyRTUExJVF0oLyhiKSovKVsxXSA9PSAnYycgfHxcbiAgICAndGVzdCdbJFNQTElUXSgvKD86KS8sIC0xKVtMRU5HVEhdICE9IDQgfHxcbiAgICAnYWInWyRTUExJVF0oLyg/OmFiKSovKVtMRU5HVEhdICE9IDIgfHxcbiAgICAnLidbJFNQTElUXSgvKC4/KSguPykvKVtMRU5HVEhdICE9IDQgfHxcbiAgICAnLidbJFNQTElUXSgvKCkoKS8pW0xFTkdUSF0gPiAxIHx8XG4gICAgJydbJFNQTElUXSgvLj8vKVtMRU5HVEhdXG4gICkge1xuICAgIC8vIGJhc2VkIG9uIGVzNS1zaGltIGltcGxlbWVudGF0aW9uLCBuZWVkIHRvIHJld29yayBpdFxuICAgIGludGVybmFsU3BsaXQgPSBmdW5jdGlvbiAoc2VwYXJhdG9yLCBsaW1pdCkge1xuICAgICAgdmFyIHN0cmluZyA9IFN0cmluZyh0aGlzKTtcbiAgICAgIGlmIChzZXBhcmF0b3IgPT09IHVuZGVmaW5lZCAmJiBsaW1pdCA9PT0gMCkgcmV0dXJuIFtdO1xuICAgICAgLy8gSWYgYHNlcGFyYXRvcmAgaXMgbm90IGEgcmVnZXgsIHVzZSBuYXRpdmUgc3BsaXRcbiAgICAgIGlmICghaXNSZWdFeHAoc2VwYXJhdG9yKSkgcmV0dXJuICRzcGxpdC5jYWxsKHN0cmluZywgc2VwYXJhdG9yLCBsaW1pdCk7XG4gICAgICB2YXIgb3V0cHV0ID0gW107XG4gICAgICB2YXIgZmxhZ3MgPSAoc2VwYXJhdG9yLmlnbm9yZUNhc2UgPyAnaScgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgKHNlcGFyYXRvci5tdWx0aWxpbmUgPyAnbScgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgKHNlcGFyYXRvci51bmljb2RlID8gJ3UnIDogJycpICtcbiAgICAgICAgICAgICAgICAgIChzZXBhcmF0b3Iuc3RpY2t5ID8gJ3knIDogJycpO1xuICAgICAgdmFyIGxhc3RMYXN0SW5kZXggPSAwO1xuICAgICAgdmFyIHNwbGl0TGltaXQgPSBsaW1pdCA9PT0gdW5kZWZpbmVkID8gTUFYX1VJTlQzMiA6IGxpbWl0ID4+PiAwO1xuICAgICAgLy8gTWFrZSBgZ2xvYmFsYCBhbmQgYXZvaWQgYGxhc3RJbmRleGAgaXNzdWVzIGJ5IHdvcmtpbmcgd2l0aCBhIGNvcHlcbiAgICAgIHZhciBzZXBhcmF0b3JDb3B5ID0gbmV3IFJlZ0V4cChzZXBhcmF0b3Iuc291cmNlLCBmbGFncyArICdnJyk7XG4gICAgICB2YXIgbWF0Y2gsIGxhc3RJbmRleCwgbGFzdExlbmd0aDtcbiAgICAgIHdoaWxlIChtYXRjaCA9IHJlZ2V4cEV4ZWMuY2FsbChzZXBhcmF0b3JDb3B5LCBzdHJpbmcpKSB7XG4gICAgICAgIGxhc3RJbmRleCA9IHNlcGFyYXRvckNvcHlbTEFTVF9JTkRFWF07XG4gICAgICAgIGlmIChsYXN0SW5kZXggPiBsYXN0TGFzdEluZGV4KSB7XG4gICAgICAgICAgb3V0cHV0LnB1c2goc3RyaW5nLnNsaWNlKGxhc3RMYXN0SW5kZXgsIG1hdGNoLmluZGV4KSk7XG4gICAgICAgICAgaWYgKG1hdGNoW0xFTkdUSF0gPiAxICYmIG1hdGNoLmluZGV4IDwgc3RyaW5nW0xFTkdUSF0pICRwdXNoLmFwcGx5KG91dHB1dCwgbWF0Y2guc2xpY2UoMSkpO1xuICAgICAgICAgIGxhc3RMZW5ndGggPSBtYXRjaFswXVtMRU5HVEhdO1xuICAgICAgICAgIGxhc3RMYXN0SW5kZXggPSBsYXN0SW5kZXg7XG4gICAgICAgICAgaWYgKG91dHB1dFtMRU5HVEhdID49IHNwbGl0TGltaXQpIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzZXBhcmF0b3JDb3B5W0xBU1RfSU5ERVhdID09PSBtYXRjaC5pbmRleCkgc2VwYXJhdG9yQ29weVtMQVNUX0lOREVYXSsrOyAvLyBBdm9pZCBhbiBpbmZpbml0ZSBsb29wXG4gICAgICB9XG4gICAgICBpZiAobGFzdExhc3RJbmRleCA9PT0gc3RyaW5nW0xFTkdUSF0pIHtcbiAgICAgICAgaWYgKGxhc3RMZW5ndGggfHwgIXNlcGFyYXRvckNvcHkudGVzdCgnJykpIG91dHB1dC5wdXNoKCcnKTtcbiAgICAgIH0gZWxzZSBvdXRwdXQucHVzaChzdHJpbmcuc2xpY2UobGFzdExhc3RJbmRleCkpO1xuICAgICAgcmV0dXJuIG91dHB1dFtMRU5HVEhdID4gc3BsaXRMaW1pdCA/IG91dHB1dC5zbGljZSgwLCBzcGxpdExpbWl0KSA6IG91dHB1dDtcbiAgICB9O1xuICAvLyBDaGFrcmEsIFY4XG4gIH0gZWxzZSBpZiAoJzAnWyRTUExJVF0odW5kZWZpbmVkLCAwKVtMRU5HVEhdKSB7XG4gICAgaW50ZXJuYWxTcGxpdCA9IGZ1bmN0aW9uIChzZXBhcmF0b3IsIGxpbWl0KSB7XG4gICAgICByZXR1cm4gc2VwYXJhdG9yID09PSB1bmRlZmluZWQgJiYgbGltaXQgPT09IDAgPyBbXSA6ICRzcGxpdC5jYWxsKHRoaXMsIHNlcGFyYXRvciwgbGltaXQpO1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgaW50ZXJuYWxTcGxpdCA9ICRzcGxpdDtcbiAgfVxuXG4gIHJldHVybiBbXG4gICAgLy8gYFN0cmluZy5wcm90b3R5cGUuc3BsaXRgIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUuc3BsaXRcbiAgICBmdW5jdGlvbiBzcGxpdChzZXBhcmF0b3IsIGxpbWl0KSB7XG4gICAgICB2YXIgTyA9IGRlZmluZWQodGhpcyk7XG4gICAgICB2YXIgc3BsaXR0ZXIgPSBzZXBhcmF0b3IgPT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogc2VwYXJhdG9yW1NQTElUXTtcbiAgICAgIHJldHVybiBzcGxpdHRlciAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gc3BsaXR0ZXIuY2FsbChzZXBhcmF0b3IsIE8sIGxpbWl0KVxuICAgICAgICA6IGludGVybmFsU3BsaXQuY2FsbChTdHJpbmcoTyksIHNlcGFyYXRvciwgbGltaXQpO1xuICAgIH0sXG4gICAgLy8gYFJlZ0V4cC5wcm90b3R5cGVbQEBzcGxpdF1gIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlZ2V4cC5wcm90b3R5cGUtQEBzcGxpdFxuICAgIC8vXG4gICAgLy8gTk9URTogVGhpcyBjYW5ub3QgYmUgcHJvcGVybHkgcG9seWZpbGxlZCBpbiBlbmdpbmVzIHRoYXQgZG9uJ3Qgc3VwcG9ydFxuICAgIC8vIHRoZSAneScgZmxhZy5cbiAgICBmdW5jdGlvbiAocmVnZXhwLCBsaW1pdCkge1xuICAgICAgdmFyIHJlcyA9IG1heWJlQ2FsbE5hdGl2ZShpbnRlcm5hbFNwbGl0LCByZWdleHAsIHRoaXMsIGxpbWl0LCBpbnRlcm5hbFNwbGl0ICE9PSAkc3BsaXQpO1xuICAgICAgaWYgKHJlcy5kb25lKSByZXR1cm4gcmVzLnZhbHVlO1xuXG4gICAgICB2YXIgcnggPSBhbk9iamVjdChyZWdleHApO1xuICAgICAgdmFyIFMgPSBTdHJpbmcodGhpcyk7XG4gICAgICB2YXIgQyA9IHNwZWNpZXNDb25zdHJ1Y3RvcihyeCwgUmVnRXhwKTtcblxuICAgICAgdmFyIHVuaWNvZGVNYXRjaGluZyA9IHJ4LnVuaWNvZGU7XG4gICAgICB2YXIgZmxhZ3MgPSAocnguaWdub3JlQ2FzZSA/ICdpJyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAocngubXVsdGlsaW5lID8gJ20nIDogJycpICtcbiAgICAgICAgICAgICAgICAgIChyeC51bmljb2RlID8gJ3UnIDogJycpICtcbiAgICAgICAgICAgICAgICAgIChTVVBQT1JUU19ZID8gJ3knIDogJ2cnKTtcblxuICAgICAgLy8gXig/ICsgcnggKyApIGlzIG5lZWRlZCwgaW4gY29tYmluYXRpb24gd2l0aCBzb21lIFMgc2xpY2luZywgdG9cbiAgICAgIC8vIHNpbXVsYXRlIHRoZSAneScgZmxhZy5cbiAgICAgIHZhciBzcGxpdHRlciA9IG5ldyBDKFNVUFBPUlRTX1kgPyByeCA6ICdeKD86JyArIHJ4LnNvdXJjZSArICcpJywgZmxhZ3MpO1xuICAgICAgdmFyIGxpbSA9IGxpbWl0ID09PSB1bmRlZmluZWQgPyBNQVhfVUlOVDMyIDogbGltaXQgPj4+IDA7XG4gICAgICBpZiAobGltID09PSAwKSByZXR1cm4gW107XG4gICAgICBpZiAoUy5sZW5ndGggPT09IDApIHJldHVybiBjYWxsUmVnRXhwRXhlYyhzcGxpdHRlciwgUykgPT09IG51bGwgPyBbU10gOiBbXTtcbiAgICAgIHZhciBwID0gMDtcbiAgICAgIHZhciBxID0gMDtcbiAgICAgIHZhciBBID0gW107XG4gICAgICB3aGlsZSAocSA8IFMubGVuZ3RoKSB7XG4gICAgICAgIHNwbGl0dGVyLmxhc3RJbmRleCA9IFNVUFBPUlRTX1kgPyBxIDogMDtcbiAgICAgICAgdmFyIHogPSBjYWxsUmVnRXhwRXhlYyhzcGxpdHRlciwgU1VQUE9SVFNfWSA/IFMgOiBTLnNsaWNlKHEpKTtcbiAgICAgICAgdmFyIGU7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB6ID09PSBudWxsIHx8XG4gICAgICAgICAgKGUgPSAkbWluKHRvTGVuZ3RoKHNwbGl0dGVyLmxhc3RJbmRleCArIChTVVBQT1JUU19ZID8gMCA6IHEpKSwgUy5sZW5ndGgpKSA9PT0gcFxuICAgICAgICApIHtcbiAgICAgICAgICBxID0gYWR2YW5jZVN0cmluZ0luZGV4KFMsIHEsIHVuaWNvZGVNYXRjaGluZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgQS5wdXNoKFMuc2xpY2UocCwgcSkpO1xuICAgICAgICAgIGlmIChBLmxlbmd0aCA9PT0gbGltKSByZXR1cm4gQTtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSB6Lmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICAgICAgQS5wdXNoKHpbaV0pO1xuICAgICAgICAgICAgaWYgKEEubGVuZ3RoID09PSBsaW0pIHJldHVybiBBO1xuICAgICAgICAgIH1cbiAgICAgICAgICBxID0gcCA9IGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEEucHVzaChTLnNsaWNlKHApKTtcbiAgICAgIHJldHVybiBBO1xuICAgIH1cbiAgXTtcbn0pO1xuIiwidmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciB0b0Fic29sdXRlSW5kZXggPSByZXF1aXJlKCcuL190by1hYnNvbHV0ZS1pbmRleCcpO1xudmFyIGZyb21DaGFyQ29kZSA9IFN0cmluZy5mcm9tQ2hhckNvZGU7XG52YXIgJGZyb21Db2RlUG9pbnQgPSBTdHJpbmcuZnJvbUNvZGVQb2ludDtcblxuLy8gbGVuZ3RoIHNob3VsZCBiZSAxLCBvbGQgRkYgcHJvYmxlbVxuJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiAoISEkZnJvbUNvZGVQb2ludCAmJiAkZnJvbUNvZGVQb2ludC5sZW5ndGggIT0gMSksICdTdHJpbmcnLCB7XG4gIC8vIDIxLjEuMi4yIFN0cmluZy5mcm9tQ29kZVBvaW50KC4uLmNvZGVQb2ludHMpXG4gIGZyb21Db2RlUG9pbnQ6IGZ1bmN0aW9uIGZyb21Db2RlUG9pbnQoeCkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgdmFyIHJlcyA9IFtdO1xuICAgIHZhciBhTGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICB2YXIgaSA9IDA7XG4gICAgdmFyIGNvZGU7XG4gICAgd2hpbGUgKGFMZW4gPiBpKSB7XG4gICAgICBjb2RlID0gK2FyZ3VtZW50c1tpKytdO1xuICAgICAgaWYgKHRvQWJzb2x1dGVJbmRleChjb2RlLCAweDEwZmZmZikgIT09IGNvZGUpIHRocm93IFJhbmdlRXJyb3IoY29kZSArICcgaXMgbm90IGEgdmFsaWQgY29kZSBwb2ludCcpO1xuICAgICAgcmVzLnB1c2goY29kZSA8IDB4MTAwMDBcbiAgICAgICAgPyBmcm9tQ2hhckNvZGUoY29kZSlcbiAgICAgICAgOiBmcm9tQ2hhckNvZGUoKChjb2RlIC09IDB4MTAwMDApID4+IDEwKSArIDB4ZDgwMCwgY29kZSAlIDB4NDAwICsgMHhkYzAwKVxuICAgICAgKTtcbiAgICB9IHJldHVybiByZXMuam9pbignJyk7XG4gIH1cbn0pO1xuIiwiLy8gMjEuMS4zLjcgU3RyaW5nLnByb3RvdHlwZS5pbmNsdWRlcyhzZWFyY2hTdHJpbmcsIHBvc2l0aW9uID0gMClcbid1c2Ugc3RyaWN0JztcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgY29udGV4dCA9IHJlcXVpcmUoJy4vX3N0cmluZy1jb250ZXh0Jyk7XG52YXIgSU5DTFVERVMgPSAnaW5jbHVkZXMnO1xuXG4kZXhwb3J0KCRleHBvcnQuUCArICRleHBvcnQuRiAqIHJlcXVpcmUoJy4vX2ZhaWxzLWlzLXJlZ2V4cCcpKElOQ0xVREVTKSwgJ1N0cmluZycsIHtcbiAgaW5jbHVkZXM6IGZ1bmN0aW9uIGluY2x1ZGVzKHNlYXJjaFN0cmluZyAvKiAsIHBvc2l0aW9uID0gMCAqLykge1xuICAgIHJldHVybiAhIX5jb250ZXh0KHRoaXMsIHNlYXJjaFN0cmluZywgSU5DTFVERVMpXG4gICAgICAuaW5kZXhPZihzZWFyY2hTdHJpbmcsIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJGF0ID0gcmVxdWlyZSgnLi9fc3RyaW5nLWF0JykodHJ1ZSk7XG5cbi8vIDIxLjEuMy4yNyBTdHJpbmcucHJvdG90eXBlW0BAaXRlcmF0b3JdKClcbnJlcXVpcmUoJy4vX2l0ZXItZGVmaW5lJykoU3RyaW5nLCAnU3RyaW5nJywgZnVuY3Rpb24gKGl0ZXJhdGVkKSB7XG4gIHRoaXMuX3QgPSBTdHJpbmcoaXRlcmF0ZWQpOyAvLyB0YXJnZXRcbiAgdGhpcy5faSA9IDA7ICAgICAgICAgICAgICAgIC8vIG5leHQgaW5kZXhcbi8vIDIxLjEuNS4yLjEgJVN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlJS5uZXh0KClcbn0sIGZ1bmN0aW9uICgpIHtcbiAgdmFyIE8gPSB0aGlzLl90O1xuICB2YXIgaW5kZXggPSB0aGlzLl9pO1xuICB2YXIgcG9pbnQ7XG4gIGlmIChpbmRleCA+PSBPLmxlbmd0aCkgcmV0dXJuIHsgdmFsdWU6IHVuZGVmaW5lZCwgZG9uZTogdHJ1ZSB9O1xuICBwb2ludCA9ICRhdChPLCBpbmRleCk7XG4gIHRoaXMuX2kgKz0gcG9pbnQubGVuZ3RoO1xuICByZXR1cm4geyB2YWx1ZTogcG9pbnQsIGRvbmU6IGZhbHNlIH07XG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIEVDTUFTY3JpcHQgNiBzeW1ib2xzIHNoaW1cbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuL19nbG9iYWwnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJyk7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi9fcmVkZWZpbmUnKTtcbnZhciBNRVRBID0gcmVxdWlyZSgnLi9fbWV0YScpLktFWTtcbnZhciAkZmFpbHMgPSByZXF1aXJlKCcuL19mYWlscycpO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4vX3NoYXJlZCcpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi9fc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuL191aWQnKTtcbnZhciB3a3MgPSByZXF1aXJlKCcuL193a3MnKTtcbnZhciB3a3NFeHQgPSByZXF1aXJlKCcuL193a3MtZXh0Jyk7XG52YXIgd2tzRGVmaW5lID0gcmVxdWlyZSgnLi9fd2tzLWRlZmluZScpO1xudmFyIGVudW1LZXlzID0gcmVxdWlyZSgnLi9fZW51bS1rZXlzJyk7XG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJy4vX2lzLWFycmF5Jyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4vX3RvLXByaW1pdGl2ZScpO1xudmFyIGNyZWF0ZURlc2MgPSByZXF1aXJlKCcuL19wcm9wZXJ0eS1kZXNjJyk7XG52YXIgX2NyZWF0ZSA9IHJlcXVpcmUoJy4vX29iamVjdC1jcmVhdGUnKTtcbnZhciBnT1BORXh0ID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdvcG4tZXh0Jyk7XG52YXIgJEdPUEQgPSByZXF1aXJlKCcuL19vYmplY3QtZ29wZCcpO1xudmFyICREUCA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpO1xudmFyICRrZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMnKTtcbnZhciBnT1BEID0gJEdPUEQuZjtcbnZhciBkUCA9ICREUC5mO1xudmFyIGdPUE4gPSBnT1BORXh0LmY7XG52YXIgJFN5bWJvbCA9IGdsb2JhbC5TeW1ib2w7XG52YXIgJEpTT04gPSBnbG9iYWwuSlNPTjtcbnZhciBfc3RyaW5naWZ5ID0gJEpTT04gJiYgJEpTT04uc3RyaW5naWZ5O1xudmFyIFBST1RPVFlQRSA9ICdwcm90b3R5cGUnO1xudmFyIEhJRERFTiA9IHdrcygnX2hpZGRlbicpO1xudmFyIFRPX1BSSU1JVElWRSA9IHdrcygndG9QcmltaXRpdmUnKTtcbnZhciBpc0VudW0gPSB7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcbnZhciBTeW1ib2xSZWdpc3RyeSA9IHNoYXJlZCgnc3ltYm9sLXJlZ2lzdHJ5Jyk7XG52YXIgQWxsU3ltYm9scyA9IHNoYXJlZCgnc3ltYm9scycpO1xudmFyIE9QU3ltYm9scyA9IHNoYXJlZCgnb3Atc3ltYm9scycpO1xudmFyIE9iamVjdFByb3RvID0gT2JqZWN0W1BST1RPVFlQRV07XG52YXIgVVNFX05BVElWRSA9IHR5cGVvZiAkU3ltYm9sID09ICdmdW5jdGlvbic7XG52YXIgUU9iamVjdCA9IGdsb2JhbC5RT2JqZWN0O1xuLy8gRG9uJ3QgdXNlIHNldHRlcnMgaW4gUXQgU2NyaXB0LCBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvMTczXG52YXIgc2V0dGVyID0gIVFPYmplY3QgfHwgIVFPYmplY3RbUFJPVE9UWVBFXSB8fCAhUU9iamVjdFtQUk9UT1RZUEVdLmZpbmRDaGlsZDtcblxuLy8gZmFsbGJhY2sgZm9yIG9sZCBBbmRyb2lkLCBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9Njg3XG52YXIgc2V0U3ltYm9sRGVzYyA9IERFU0NSSVBUT1JTICYmICRmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBfY3JlYXRlKGRQKHt9LCAnYScsIHtcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGRQKHRoaXMsICdhJywgeyB2YWx1ZTogNyB9KS5hOyB9XG4gIH0pKS5hICE9IDc7XG59KSA/IGZ1bmN0aW9uIChpdCwga2V5LCBEKSB7XG4gIHZhciBwcm90b0Rlc2MgPSBnT1BEKE9iamVjdFByb3RvLCBrZXkpO1xuICBpZiAocHJvdG9EZXNjKSBkZWxldGUgT2JqZWN0UHJvdG9ba2V5XTtcbiAgZFAoaXQsIGtleSwgRCk7XG4gIGlmIChwcm90b0Rlc2MgJiYgaXQgIT09IE9iamVjdFByb3RvKSBkUChPYmplY3RQcm90bywga2V5LCBwcm90b0Rlc2MpO1xufSA6IGRQO1xuXG52YXIgd3JhcCA9IGZ1bmN0aW9uICh0YWcpIHtcbiAgdmFyIHN5bSA9IEFsbFN5bWJvbHNbdGFnXSA9IF9jcmVhdGUoJFN5bWJvbFtQUk9UT1RZUEVdKTtcbiAgc3ltLl9rID0gdGFnO1xuICByZXR1cm4gc3ltO1xufTtcblxudmFyIGlzU3ltYm9sID0gVVNFX05BVElWRSAmJiB0eXBlb2YgJFN5bWJvbC5pdGVyYXRvciA9PSAnc3ltYm9sJyA/IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdHlwZW9mIGl0ID09ICdzeW1ib2wnO1xufSA6IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgaW5zdGFuY2VvZiAkU3ltYm9sO1xufTtcblxudmFyICRkZWZpbmVQcm9wZXJ0eSA9IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KGl0LCBrZXksIEQpIHtcbiAgaWYgKGl0ID09PSBPYmplY3RQcm90bykgJGRlZmluZVByb3BlcnR5KE9QU3ltYm9scywga2V5LCBEKTtcbiAgYW5PYmplY3QoaXQpO1xuICBrZXkgPSB0b1ByaW1pdGl2ZShrZXksIHRydWUpO1xuICBhbk9iamVjdChEKTtcbiAgaWYgKGhhcyhBbGxTeW1ib2xzLCBrZXkpKSB7XG4gICAgaWYgKCFELmVudW1lcmFibGUpIHtcbiAgICAgIGlmICghaGFzKGl0LCBISURERU4pKSBkUChpdCwgSElEREVOLCBjcmVhdGVEZXNjKDEsIHt9KSk7XG4gICAgICBpdFtISURERU5dW2tleV0gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaGFzKGl0LCBISURERU4pICYmIGl0W0hJRERFTl1ba2V5XSkgaXRbSElEREVOXVtrZXldID0gZmFsc2U7XG4gICAgICBEID0gX2NyZWF0ZShELCB7IGVudW1lcmFibGU6IGNyZWF0ZURlc2MoMCwgZmFsc2UpIH0pO1xuICAgIH0gcmV0dXJuIHNldFN5bWJvbERlc2MoaXQsIGtleSwgRCk7XG4gIH0gcmV0dXJuIGRQKGl0LCBrZXksIEQpO1xufTtcbnZhciAkZGVmaW5lUHJvcGVydGllcyA9IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoaXQsIFApIHtcbiAgYW5PYmplY3QoaXQpO1xuICB2YXIga2V5cyA9IGVudW1LZXlzKFAgPSB0b0lPYmplY3QoUCkpO1xuICB2YXIgaSA9IDA7XG4gIHZhciBsID0ga2V5cy5sZW5ndGg7XG4gIHZhciBrZXk7XG4gIHdoaWxlIChsID4gaSkgJGRlZmluZVByb3BlcnR5KGl0LCBrZXkgPSBrZXlzW2krK10sIFBba2V5XSk7XG4gIHJldHVybiBpdDtcbn07XG52YXIgJGNyZWF0ZSA9IGZ1bmN0aW9uIGNyZWF0ZShpdCwgUCkge1xuICByZXR1cm4gUCA9PT0gdW5kZWZpbmVkID8gX2NyZWF0ZShpdCkgOiAkZGVmaW5lUHJvcGVydGllcyhfY3JlYXRlKGl0KSwgUCk7XG59O1xudmFyICRwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IGZ1bmN0aW9uIHByb3BlcnR5SXNFbnVtZXJhYmxlKGtleSkge1xuICB2YXIgRSA9IGlzRW51bS5jYWxsKHRoaXMsIGtleSA9IHRvUHJpbWl0aXZlKGtleSwgdHJ1ZSkpO1xuICBpZiAodGhpcyA9PT0gT2JqZWN0UHJvdG8gJiYgaGFzKEFsbFN5bWJvbHMsIGtleSkgJiYgIWhhcyhPUFN5bWJvbHMsIGtleSkpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIEUgfHwgIWhhcyh0aGlzLCBrZXkpIHx8ICFoYXMoQWxsU3ltYm9scywga2V5KSB8fCBoYXModGhpcywgSElEREVOKSAmJiB0aGlzW0hJRERFTl1ba2V5XSA/IEUgOiB0cnVlO1xufTtcbnZhciAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGl0LCBrZXkpIHtcbiAgaXQgPSB0b0lPYmplY3QoaXQpO1xuICBrZXkgPSB0b1ByaW1pdGl2ZShrZXksIHRydWUpO1xuICBpZiAoaXQgPT09IE9iamVjdFByb3RvICYmIGhhcyhBbGxTeW1ib2xzLCBrZXkpICYmICFoYXMoT1BTeW1ib2xzLCBrZXkpKSByZXR1cm47XG4gIHZhciBEID0gZ09QRChpdCwga2V5KTtcbiAgaWYgKEQgJiYgaGFzKEFsbFN5bWJvbHMsIGtleSkgJiYgIShoYXMoaXQsIEhJRERFTikgJiYgaXRbSElEREVOXVtrZXldKSkgRC5lbnVtZXJhYmxlID0gdHJ1ZTtcbiAgcmV0dXJuIEQ7XG59O1xudmFyICRnZXRPd25Qcm9wZXJ0eU5hbWVzID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhpdCkge1xuICB2YXIgbmFtZXMgPSBnT1BOKHRvSU9iamVjdChpdCkpO1xuICB2YXIgcmVzdWx0ID0gW107XG4gIHZhciBpID0gMDtcbiAgdmFyIGtleTtcbiAgd2hpbGUgKG5hbWVzLmxlbmd0aCA+IGkpIHtcbiAgICBpZiAoIWhhcyhBbGxTeW1ib2xzLCBrZXkgPSBuYW1lc1tpKytdKSAmJiBrZXkgIT0gSElEREVOICYmIGtleSAhPSBNRVRBKSByZXN1bHQucHVzaChrZXkpO1xuICB9IHJldHVybiByZXN1bHQ7XG59O1xudmFyICRnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoaXQpIHtcbiAgdmFyIElTX09QID0gaXQgPT09IE9iamVjdFByb3RvO1xuICB2YXIgbmFtZXMgPSBnT1BOKElTX09QID8gT1BTeW1ib2xzIDogdG9JT2JqZWN0KGl0KSk7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGkgPSAwO1xuICB2YXIga2V5O1xuICB3aGlsZSAobmFtZXMubGVuZ3RoID4gaSkge1xuICAgIGlmIChoYXMoQWxsU3ltYm9scywga2V5ID0gbmFtZXNbaSsrXSkgJiYgKElTX09QID8gaGFzKE9iamVjdFByb3RvLCBrZXkpIDogdHJ1ZSkpIHJlc3VsdC5wdXNoKEFsbFN5bWJvbHNba2V5XSk7XG4gIH0gcmV0dXJuIHJlc3VsdDtcbn07XG5cbi8vIDE5LjQuMS4xIFN5bWJvbChbZGVzY3JpcHRpb25dKVxuaWYgKCFVU0VfTkFUSVZFKSB7XG4gICRTeW1ib2wgPSBmdW5jdGlvbiBTeW1ib2woKSB7XG4gICAgaWYgKHRoaXMgaW5zdGFuY2VvZiAkU3ltYm9sKSB0aHJvdyBUeXBlRXJyb3IoJ1N5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciEnKTtcbiAgICB2YXIgdGFnID0gdWlkKGFyZ3VtZW50cy5sZW5ndGggPiAwID8gYXJndW1lbnRzWzBdIDogdW5kZWZpbmVkKTtcbiAgICB2YXIgJHNldCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgaWYgKHRoaXMgPT09IE9iamVjdFByb3RvKSAkc2V0LmNhbGwoT1BTeW1ib2xzLCB2YWx1ZSk7XG4gICAgICBpZiAoaGFzKHRoaXMsIEhJRERFTikgJiYgaGFzKHRoaXNbSElEREVOXSwgdGFnKSkgdGhpc1tISURERU5dW3RhZ10gPSBmYWxzZTtcbiAgICAgIHNldFN5bWJvbERlc2ModGhpcywgdGFnLCBjcmVhdGVEZXNjKDEsIHZhbHVlKSk7XG4gICAgfTtcbiAgICBpZiAoREVTQ1JJUFRPUlMgJiYgc2V0dGVyKSBzZXRTeW1ib2xEZXNjKE9iamVjdFByb3RvLCB0YWcsIHsgY29uZmlndXJhYmxlOiB0cnVlLCBzZXQ6ICRzZXQgfSk7XG4gICAgcmV0dXJuIHdyYXAodGFnKTtcbiAgfTtcbiAgcmVkZWZpbmUoJFN5bWJvbFtQUk9UT1RZUEVdLCAndG9TdHJpbmcnLCBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5faztcbiAgfSk7XG5cbiAgJEdPUEQuZiA9ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG4gICREUC5mID0gJGRlZmluZVByb3BlcnR5O1xuICByZXF1aXJlKCcuL19vYmplY3QtZ29wbicpLmYgPSBnT1BORXh0LmYgPSAkZ2V0T3duUHJvcGVydHlOYW1lcztcbiAgcmVxdWlyZSgnLi9fb2JqZWN0LXBpZScpLmYgPSAkcHJvcGVydHlJc0VudW1lcmFibGU7XG4gIHJlcXVpcmUoJy4vX29iamVjdC1nb3BzJykuZiA9ICRnZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG5cbiAgaWYgKERFU0NSSVBUT1JTICYmICFyZXF1aXJlKCcuL19saWJyYXJ5JykpIHtcbiAgICByZWRlZmluZShPYmplY3RQcm90bywgJ3Byb3BlcnR5SXNFbnVtZXJhYmxlJywgJHByb3BlcnR5SXNFbnVtZXJhYmxlLCB0cnVlKTtcbiAgfVxuXG4gIHdrc0V4dC5mID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgICByZXR1cm4gd3JhcCh3a3MobmFtZSkpO1xuICB9O1xufVxuXG4kZXhwb3J0KCRleHBvcnQuRyArICRleHBvcnQuVyArICRleHBvcnQuRiAqICFVU0VfTkFUSVZFLCB7IFN5bWJvbDogJFN5bWJvbCB9KTtcblxuZm9yICh2YXIgZXM2U3ltYm9scyA9IChcbiAgLy8gMTkuNC4yLjIsIDE5LjQuMi4zLCAxOS40LjIuNCwgMTkuNC4yLjYsIDE5LjQuMi44LCAxOS40LjIuOSwgMTkuNC4yLjEwLCAxOS40LjIuMTEsIDE5LjQuMi4xMiwgMTkuNC4yLjEzLCAxOS40LjIuMTRcbiAgJ2hhc0luc3RhbmNlLGlzQ29uY2F0U3ByZWFkYWJsZSxpdGVyYXRvcixtYXRjaCxyZXBsYWNlLHNlYXJjaCxzcGVjaWVzLHNwbGl0LHRvUHJpbWl0aXZlLHRvU3RyaW5nVGFnLHVuc2NvcGFibGVzJ1xuKS5zcGxpdCgnLCcpLCBqID0gMDsgZXM2U3ltYm9scy5sZW5ndGggPiBqOyl3a3MoZXM2U3ltYm9sc1tqKytdKTtcblxuZm9yICh2YXIgd2VsbEtub3duU3ltYm9scyA9ICRrZXlzKHdrcy5zdG9yZSksIGsgPSAwOyB3ZWxsS25vd25TeW1ib2xzLmxlbmd0aCA+IGs7KSB3a3NEZWZpbmUod2VsbEtub3duU3ltYm9sc1trKytdKTtcblxuJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiAhVVNFX05BVElWRSwgJ1N5bWJvbCcsIHtcbiAgLy8gMTkuNC4yLjEgU3ltYm9sLmZvcihrZXkpXG4gICdmb3InOiBmdW5jdGlvbiAoa2V5KSB7XG4gICAgcmV0dXJuIGhhcyhTeW1ib2xSZWdpc3RyeSwga2V5ICs9ICcnKVxuICAgICAgPyBTeW1ib2xSZWdpc3RyeVtrZXldXG4gICAgICA6IFN5bWJvbFJlZ2lzdHJ5W2tleV0gPSAkU3ltYm9sKGtleSk7XG4gIH0sXG4gIC8vIDE5LjQuMi41IFN5bWJvbC5rZXlGb3Ioc3ltKVxuICBrZXlGb3I6IGZ1bmN0aW9uIGtleUZvcihzeW0pIHtcbiAgICBpZiAoIWlzU3ltYm9sKHN5bSkpIHRocm93IFR5cGVFcnJvcihzeW0gKyAnIGlzIG5vdCBhIHN5bWJvbCEnKTtcbiAgICBmb3IgKHZhciBrZXkgaW4gU3ltYm9sUmVnaXN0cnkpIGlmIChTeW1ib2xSZWdpc3RyeVtrZXldID09PSBzeW0pIHJldHVybiBrZXk7XG4gIH0sXG4gIHVzZVNldHRlcjogZnVuY3Rpb24gKCkgeyBzZXR0ZXIgPSB0cnVlOyB9LFxuICB1c2VTaW1wbGU6IGZ1bmN0aW9uICgpIHsgc2V0dGVyID0gZmFsc2U7IH1cbn0pO1xuXG4kZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICFVU0VfTkFUSVZFLCAnT2JqZWN0Jywge1xuICAvLyAxOS4xLjIuMiBPYmplY3QuY3JlYXRlKE8gWywgUHJvcGVydGllc10pXG4gIGNyZWF0ZTogJGNyZWF0ZSxcbiAgLy8gMTkuMS4yLjQgT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpXG4gIGRlZmluZVByb3BlcnR5OiAkZGVmaW5lUHJvcGVydHksXG4gIC8vIDE5LjEuMi4zIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKE8sIFByb3BlcnRpZXMpXG4gIGRlZmluZVByb3BlcnRpZXM6ICRkZWZpbmVQcm9wZXJ0aWVzLFxuICAvLyAxOS4xLjIuNiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIFApXG4gIGdldE93blByb3BlcnR5RGVzY3JpcHRvcjogJGdldE93blByb3BlcnR5RGVzY3JpcHRvcixcbiAgLy8gMTkuMS4yLjcgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoTylcbiAgZ2V0T3duUHJvcGVydHlOYW1lczogJGdldE93blByb3BlcnR5TmFtZXMsXG4gIC8vIDE5LjEuMi44IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoTylcbiAgZ2V0T3duUHJvcGVydHlTeW1ib2xzOiAkZ2V0T3duUHJvcGVydHlTeW1ib2xzXG59KTtcblxuLy8gMjQuMy4yIEpTT04uc3RyaW5naWZ5KHZhbHVlIFssIHJlcGxhY2VyIFssIHNwYWNlXV0pXG4kSlNPTiAmJiAkZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICghVVNFX05BVElWRSB8fCAkZmFpbHMoZnVuY3Rpb24gKCkge1xuICB2YXIgUyA9ICRTeW1ib2woKTtcbiAgLy8gTVMgRWRnZSBjb252ZXJ0cyBzeW1ib2wgdmFsdWVzIHRvIEpTT04gYXMge31cbiAgLy8gV2ViS2l0IGNvbnZlcnRzIHN5bWJvbCB2YWx1ZXMgdG8gSlNPTiBhcyBudWxsXG4gIC8vIFY4IHRocm93cyBvbiBib3hlZCBzeW1ib2xzXG4gIHJldHVybiBfc3RyaW5naWZ5KFtTXSkgIT0gJ1tudWxsXScgfHwgX3N0cmluZ2lmeSh7IGE6IFMgfSkgIT0gJ3t9JyB8fCBfc3RyaW5naWZ5KE9iamVjdChTKSkgIT0gJ3t9Jztcbn0pKSwgJ0pTT04nLCB7XG4gIHN0cmluZ2lmeTogZnVuY3Rpb24gc3RyaW5naWZ5KGl0KSB7XG4gICAgdmFyIGFyZ3MgPSBbaXRdO1xuICAgIHZhciBpID0gMTtcbiAgICB2YXIgcmVwbGFjZXIsICRyZXBsYWNlcjtcbiAgICB3aGlsZSAoYXJndW1lbnRzLmxlbmd0aCA+IGkpIGFyZ3MucHVzaChhcmd1bWVudHNbaSsrXSk7XG4gICAgJHJlcGxhY2VyID0gcmVwbGFjZXIgPSBhcmdzWzFdO1xuICAgIGlmICghaXNPYmplY3QocmVwbGFjZXIpICYmIGl0ID09PSB1bmRlZmluZWQgfHwgaXNTeW1ib2woaXQpKSByZXR1cm47IC8vIElFOCByZXR1cm5zIHN0cmluZyBvbiB1bmRlZmluZWRcbiAgICBpZiAoIWlzQXJyYXkocmVwbGFjZXIpKSByZXBsYWNlciA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgICBpZiAodHlwZW9mICRyZXBsYWNlciA9PSAnZnVuY3Rpb24nKSB2YWx1ZSA9ICRyZXBsYWNlci5jYWxsKHRoaXMsIGtleSwgdmFsdWUpO1xuICAgICAgaWYgKCFpc1N5bWJvbCh2YWx1ZSkpIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuICAgIGFyZ3NbMV0gPSByZXBsYWNlcjtcbiAgICByZXR1cm4gX3N0cmluZ2lmeS5hcHBseSgkSlNPTiwgYXJncyk7XG4gIH1cbn0pO1xuXG4vLyAxOS40LjMuNCBTeW1ib2wucHJvdG90eXBlW0BAdG9QcmltaXRpdmVdKGhpbnQpXG4kU3ltYm9sW1BST1RPVFlQRV1bVE9fUFJJTUlUSVZFXSB8fCByZXF1aXJlKCcuL19oaWRlJykoJFN5bWJvbFtQUk9UT1RZUEVdLCBUT19QUklNSVRJVkUsICRTeW1ib2xbUFJPVE9UWVBFXS52YWx1ZU9mKTtcbi8vIDE5LjQuMy41IFN5bWJvbC5wcm90b3R5cGVbQEB0b1N0cmluZ1RhZ11cbnNldFRvU3RyaW5nVGFnKCRTeW1ib2wsICdTeW1ib2wnKTtcbi8vIDIwLjIuMS45IE1hdGhbQEB0b1N0cmluZ1RhZ11cbnNldFRvU3RyaW5nVGFnKE1hdGgsICdNYXRoJywgdHJ1ZSk7XG4vLyAyNC4zLjMgSlNPTltAQHRvU3RyaW5nVGFnXVxuc2V0VG9TdHJpbmdUYWcoZ2xvYmFsLkpTT04sICdKU09OJywgdHJ1ZSk7XG4iLCIndXNlIHN0cmljdCc7XG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9BcnJheS5wcm90b3R5cGUuaW5jbHVkZXNcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgJGluY2x1ZGVzID0gcmVxdWlyZSgnLi9fYXJyYXktaW5jbHVkZXMnKSh0cnVlKTtcblxuJGV4cG9ydCgkZXhwb3J0LlAsICdBcnJheScsIHtcbiAgaW5jbHVkZXM6IGZ1bmN0aW9uIGluY2x1ZGVzKGVsIC8qICwgZnJvbUluZGV4ID0gMCAqLykge1xuICAgIHJldHVybiAkaW5jbHVkZXModGhpcywgZWwsIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbiAgfVxufSk7XG5cbnJlcXVpcmUoJy4vX2FkZC10by11bnNjb3BhYmxlcycpKCdpbmNsdWRlcycpO1xuIiwiLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtb2JqZWN0LWdldG93bnByb3BlcnR5ZGVzY3JpcHRvcnNcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgb3duS2V5cyA9IHJlcXVpcmUoJy4vX293bi1rZXlzJyk7XG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xudmFyIGdPUEQgPSByZXF1aXJlKCcuL19vYmplY3QtZ29wZCcpO1xudmFyIGNyZWF0ZVByb3BlcnR5ID0gcmVxdWlyZSgnLi9fY3JlYXRlLXByb3BlcnR5Jyk7XG5cbiRleHBvcnQoJGV4cG9ydC5TLCAnT2JqZWN0Jywge1xuICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzOiBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG9iamVjdCkge1xuICAgIHZhciBPID0gdG9JT2JqZWN0KG9iamVjdCk7XG4gICAgdmFyIGdldERlc2MgPSBnT1BELmY7XG4gICAgdmFyIGtleXMgPSBvd25LZXlzKE8pO1xuICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICB2YXIgaSA9IDA7XG4gICAgdmFyIGtleSwgZGVzYztcbiAgICB3aGlsZSAoa2V5cy5sZW5ndGggPiBpKSB7XG4gICAgICBkZXNjID0gZ2V0RGVzYyhPLCBrZXkgPSBrZXlzW2krK10pO1xuICAgICAgaWYgKGRlc2MgIT09IHVuZGVmaW5lZCkgY3JlYXRlUHJvcGVydHkocmVzdWx0LCBrZXksIGRlc2MpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59KTtcbiIsInZhciAkaXRlcmF0b3JzID0gcmVxdWlyZSgnLi9lczYuYXJyYXkuaXRlcmF0b3InKTtcbnZhciBnZXRLZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMnKTtcbnZhciByZWRlZmluZSA9IHJlcXVpcmUoJy4vX3JlZGVmaW5lJyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuL19pdGVyYXRvcnMnKTtcbnZhciB3a3MgPSByZXF1aXJlKCcuL193a3MnKTtcbnZhciBJVEVSQVRPUiA9IHdrcygnaXRlcmF0b3InKTtcbnZhciBUT19TVFJJTkdfVEFHID0gd2tzKCd0b1N0cmluZ1RhZycpO1xudmFyIEFycmF5VmFsdWVzID0gSXRlcmF0b3JzLkFycmF5O1xuXG52YXIgRE9NSXRlcmFibGVzID0ge1xuICBDU1NSdWxlTGlzdDogdHJ1ZSwgLy8gVE9ETzogTm90IHNwZWMgY29tcGxpYW50LCBzaG91bGQgYmUgZmFsc2UuXG4gIENTU1N0eWxlRGVjbGFyYXRpb246IGZhbHNlLFxuICBDU1NWYWx1ZUxpc3Q6IGZhbHNlLFxuICBDbGllbnRSZWN0TGlzdDogZmFsc2UsXG4gIERPTVJlY3RMaXN0OiBmYWxzZSxcbiAgRE9NU3RyaW5nTGlzdDogZmFsc2UsXG4gIERPTVRva2VuTGlzdDogdHJ1ZSxcbiAgRGF0YVRyYW5zZmVySXRlbUxpc3Q6IGZhbHNlLFxuICBGaWxlTGlzdDogZmFsc2UsXG4gIEhUTUxBbGxDb2xsZWN0aW9uOiBmYWxzZSxcbiAgSFRNTENvbGxlY3Rpb246IGZhbHNlLFxuICBIVE1MRm9ybUVsZW1lbnQ6IGZhbHNlLFxuICBIVE1MU2VsZWN0RWxlbWVudDogZmFsc2UsXG4gIE1lZGlhTGlzdDogdHJ1ZSwgLy8gVE9ETzogTm90IHNwZWMgY29tcGxpYW50LCBzaG91bGQgYmUgZmFsc2UuXG4gIE1pbWVUeXBlQXJyYXk6IGZhbHNlLFxuICBOYW1lZE5vZGVNYXA6IGZhbHNlLFxuICBOb2RlTGlzdDogdHJ1ZSxcbiAgUGFpbnRSZXF1ZXN0TGlzdDogZmFsc2UsXG4gIFBsdWdpbjogZmFsc2UsXG4gIFBsdWdpbkFycmF5OiBmYWxzZSxcbiAgU1ZHTGVuZ3RoTGlzdDogZmFsc2UsXG4gIFNWR051bWJlckxpc3Q6IGZhbHNlLFxuICBTVkdQYXRoU2VnTGlzdDogZmFsc2UsXG4gIFNWR1BvaW50TGlzdDogZmFsc2UsXG4gIFNWR1N0cmluZ0xpc3Q6IGZhbHNlLFxuICBTVkdUcmFuc2Zvcm1MaXN0OiBmYWxzZSxcbiAgU291cmNlQnVmZmVyTGlzdDogZmFsc2UsXG4gIFN0eWxlU2hlZXRMaXN0OiB0cnVlLCAvLyBUT0RPOiBOb3Qgc3BlYyBjb21wbGlhbnQsIHNob3VsZCBiZSBmYWxzZS5cbiAgVGV4dFRyYWNrQ3VlTGlzdDogZmFsc2UsXG4gIFRleHRUcmFja0xpc3Q6IGZhbHNlLFxuICBUb3VjaExpc3Q6IGZhbHNlXG59O1xuXG5mb3IgKHZhciBjb2xsZWN0aW9ucyA9IGdldEtleXMoRE9NSXRlcmFibGVzKSwgaSA9IDA7IGkgPCBjb2xsZWN0aW9ucy5sZW5ndGg7IGkrKykge1xuICB2YXIgTkFNRSA9IGNvbGxlY3Rpb25zW2ldO1xuICB2YXIgZXhwbGljaXQgPSBET01JdGVyYWJsZXNbTkFNRV07XG4gIHZhciBDb2xsZWN0aW9uID0gZ2xvYmFsW05BTUVdO1xuICB2YXIgcHJvdG8gPSBDb2xsZWN0aW9uICYmIENvbGxlY3Rpb24ucHJvdG90eXBlO1xuICB2YXIga2V5O1xuICBpZiAocHJvdG8pIHtcbiAgICBpZiAoIXByb3RvW0lURVJBVE9SXSkgaGlkZShwcm90bywgSVRFUkFUT1IsIEFycmF5VmFsdWVzKTtcbiAgICBpZiAoIXByb3RvW1RPX1NUUklOR19UQUddKSBoaWRlKHByb3RvLCBUT19TVFJJTkdfVEFHLCBOQU1FKTtcbiAgICBJdGVyYXRvcnNbTkFNRV0gPSBBcnJheVZhbHVlcztcbiAgICBpZiAoZXhwbGljaXQpIGZvciAoa2V5IGluICRpdGVyYXRvcnMpIGlmICghcHJvdG9ba2V5XSkgcmVkZWZpbmUocHJvdG8sIGtleSwgJGl0ZXJhdG9yc1trZXldLCB0cnVlKTtcbiAgfVxufVxuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIuZW1vamktbWFydCxcXHJcXG4uZW1vamktbWFydCAqIHtcXHJcXG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcXHJcXG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXHJcXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydCB7XFxyXFxuICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnSGVsdmV0aWNhIE5ldWUnLCBzYW5zLXNlcmlmO1xcclxcbiAgZm9udC1zaXplOiAxNnB4O1xcclxcbiAgLyogZGlzcGxheTogaW5saW5lLWJsb2NrOyAqL1xcclxcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxyXFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXHJcXG4gIGRpc3BsYXk6IGZsZXg7XFxyXFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcclxcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxyXFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxyXFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxyXFxuICBoZWlnaHQ6IDQyMHB4O1xcclxcbiAgY29sb3I6ICMyMjI0Mjc7XFxyXFxuICBib3JkZXI6IDFweCBzb2xpZCAjZDlkOWQ5O1xcclxcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xcclxcbiAgYmFja2dyb3VuZDogI2ZmZjtcXHJcXG59XFxyXFxuXFxyXFxuLmVtb2ppLW1hcnQtZW1vamkge1xcclxcbiAgcGFkZGluZzogNnB4O1xcclxcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcclxcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcclxcbiAgZm9udC1zaXplOiAwO1xcclxcbiAgYm9yZGVyOiBub25lO1xcclxcbiAgYmFja2dyb3VuZDogbm9uZTtcXHJcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXHJcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXHJcXG59XFxyXFxuXFxyXFxuLmVtb2ppLW1hcnQtZW1vamkgc3BhbiB7XFxyXFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LXByZXZpZXctZW1vamkgLmVtb2ppLW1hcnQtZW1vamkgc3BhbiB7XFxyXFxuICB3aWR0aDogMzhweDtcXHJcXG4gIGhlaWdodDogMzhweDtcXHJcXG4gIGZvbnQtc2l6ZTogMzJweDtcXHJcXG59XFxyXFxuXFxyXFxuLmVtb2ppLXR5cGUtbmF0aXZlIHtcXHJcXG4gIGZvbnQtZmFtaWx5OiAnU2Vnb2UgVUkgRW1vamknLCAnU2Vnb2UgVUkgU3ltYm9sJywgJ1NlZ29lIFVJJyxcXHJcXG4gICAgJ0FwcGxlIENvbG9yIEVtb2ppJywgJ1R3ZW1vamkgTW96aWxsYScsICdOb3RvIENvbG9yIEVtb2ppJywgJ0Vtb2ppT25lIENvbG9yJyxcXHJcXG4gICAgJ0FuZHJvaWQgRW1vamknO1xcclxcbiAgd29yZC1icmVhazoga2VlcC1hbGw7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS10eXBlLWltYWdlIHtcXHJcXG4gIC8qIEVtb2ppIHNoZWV0IGhhcyA1NiBjb2x1bW5zLCBzZWUgYWxzbyB1dGlscy9lbW9qaS1kYXRhLmpzLCBTSEVFVF9DT0xVTU5TIHZhcmlhYmxlICovXFxyXFxuICAvKiBIZXJlIHdlIHVzZSAoNTYrMSkgKiAxMDAlIHRvIGF2b2lkIHZpc2libGUgZWRnZXMgb2YgbmVhcmJ5IGljb25zIHdoZW4gc2NhbGluZyBmb3IgZGlmZmVyZW50XFxyXFxuICAgKiBzY3JlZW4gc2l6ZXMgKi9cXHJcXG4gIGJhY2tncm91bmQtc2l6ZTogNjEwMCU7XFxyXFxufVxcclxcbi5lbW9qaS10eXBlLWltYWdlLmVtb2ppLXNldC1hcHBsZSB7XFxyXFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vdW5wa2cuY29tL2Vtb2ppLWRhdGFzb3VyY2UtYXBwbGVAMTQuMC4wL2ltZy9hcHBsZS9zaGVldHMtMjU2LzY0LnBuZycpO1xcclxcbn1cXHJcXG4uZW1vamktdHlwZS1pbWFnZS5lbW9qaS1zZXQtZmFjZWJvb2sge1xcclxcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3VucGtnLmNvbS9lbW9qaS1kYXRhc291cmNlLWZhY2Vib29rQDE0LjAuMC9pbWcvZmFjZWJvb2svc2hlZXRzLTI1Ni82NC5wbmcnKTtcXHJcXG59XFxyXFxuLmVtb2ppLXR5cGUtaW1hZ2UuZW1vamktc2V0LWdvb2dsZSB7XFxyXFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vdW5wa2cuY29tL2Vtb2ppLWRhdGFzb3VyY2UtZ29vZ2xlQDE0LjAuMC9pbWcvZ29vZ2xlL3NoZWV0cy0yNTYvNjQucG5nJyk7XFxyXFxufVxcclxcbi5lbW9qaS10eXBlLWltYWdlLmVtb2ppLXNldC10d2l0dGVyIHtcXHJcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly91bnBrZy5jb20vZW1vamktZGF0YXNvdXJjZS10d2l0dGVyQDE0LjAuMC9pbWcvdHdpdHRlci9zaGVldHMtMjU2LzY0LnBuZycpO1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC1iYXIge1xcclxcbiAgYm9yZGVyOiAwIHNvbGlkICNkOWQ5ZDk7XFxyXFxufVxcclxcbi5lbW9qaS1tYXJ0LWJhcjpmaXJzdC1jaGlsZCB7XFxyXFxuICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XFxyXFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XFxyXFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xcclxcbn1cXHJcXG4uZW1vamktbWFydC1iYXI6bGFzdC1jaGlsZCB7XFxyXFxuICBib3JkZXItdG9wLXdpZHRoOiAxcHg7XFxyXFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA1cHg7XFxyXFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNXB4O1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC1zY3JvbGwge1xcclxcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcclxcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xcclxcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXHJcXG4gICAgICAtbXMtZmxleDogMTtcXHJcXG4gICAgICAgICAgZmxleDogMTtcXHJcXG4gIHBhZGRpbmc6IDAgNnB4IDZweCA2cHg7XFxyXFxuICB6LWluZGV4OiAwOyAvKiBGaXggZm9yIHJlbmRlcmluZyBzdGlja3kgcG9zaXRpb25lZCBjYXRlZ29yeSBsYWJlbHMgb24gQ2hyb21lICovXFxyXFxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOyAvKiBhdm9pZHMgXFxcInJlcGFpbnRzIG9uIHNjcm9sbFxcXCIgaW4gbW9iaWxlIENocm9tZSAqL1xcclxcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC1hbmNob3JzIHtcXHJcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcclxcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxyXFxuICBkaXNwbGF5OiBmbGV4O1xcclxcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcclxcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxyXFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XFxyXFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxyXFxuICAtd2Via2l0LWJveC1wYWNrOiBqdXN0aWZ5O1xcclxcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XFxyXFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXHJcXG4gIHBhZGRpbmc6IDAgNnB4O1xcclxcbiAgY29sb3I6ICM4NTg1ODU7XFxyXFxuICBsaW5lLWhlaWdodDogMDtcXHJcXG59XFxyXFxuXFxyXFxuLmVtb2ppLW1hcnQtYW5jaG9yIHtcXHJcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXHJcXG4gIGRpc3BsYXk6IGJsb2NrO1xcclxcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXHJcXG4gICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxyXFxuICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xcclxcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcclxcbiAgcGFkZGluZzogMTJweCA0cHg7XFxyXFxuICBvdmVyZmxvdzogaGlkZGVuO1xcclxcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2Utb3V0O1xcclxcbiAgLW8tdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlLW91dDtcXHJcXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZS1vdXQ7XFxyXFxuICBib3JkZXI6IG5vbmU7XFxyXFxuICBiYWNrZ3JvdW5kOiBub25lO1xcclxcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcclxcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcclxcbn1cXHJcXG4uZW1vamktbWFydC1hbmNob3I6aG92ZXIsXFxyXFxuLmVtb2ppLW1hcnQtYW5jaG9yLXNlbGVjdGVkIHtcXHJcXG4gIGNvbG9yOiAjNDY0NjQ2O1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC1hbmNob3Itc2VsZWN0ZWQgLmVtb2ppLW1hcnQtYW5jaG9yLWJhciB7XFxyXFxuICBib3R0b206IDA7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LWFuY2hvci1iYXIge1xcclxcbiAgcG9zaXRpb246IGFic29sdXRlO1xcclxcbiAgYm90dG9tOiAtM3B4O1xcclxcbiAgbGVmdDogMDtcXHJcXG4gIHdpZHRoOiAxMDAlO1xcclxcbiAgaGVpZ2h0OiAzcHg7XFxyXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDY0NjQ2O1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC1hbmNob3JzIGkge1xcclxcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcclxcbiAgd2lkdGg6IDEwMCU7XFxyXFxuICBtYXgtd2lkdGg6IDIycHg7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LWFuY2hvcnMgc3ZnIHtcXHJcXG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcXHJcXG4gIG1heC1oZWlnaHQ6IDE4cHg7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0IC5zY3JvbGxlciB7XFxyXFxuICBoZWlnaHQ6IDI1MHB4O1xcclxcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcclxcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXHJcXG4gICAgICAtbXMtZmxleDogMTtcXHJcXG4gICAgICAgICAgZmxleDogMTtcXHJcXG4gIHBhZGRpbmc6IDAgNnB4IDZweCA2cHg7XFxyXFxuICB6LWluZGV4OiAwOyAvKiBGaXggZm9yIHJlbmRlcmluZyBzdGlja3kgcG9zaXRpb25lZCBjYXRlZ29yeSBsYWJlbHMgb24gQ2hyb21lICovXFxyXFxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOyAvKiBhdm9pZHMgXFxcInJlcGFpbnRzIG9uIHNjcm9sbFxcXCIgaW4gbW9iaWxlIENocm9tZSAqL1xcclxcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC1zZWFyY2gge1xcclxcbiAgbWFyZ2luLXRvcDogNnB4O1xcclxcbiAgcGFkZGluZzogMCA2cHg7XFxyXFxufVxcclxcbi5lbW9qaS1tYXJ0LXNlYXJjaCBpbnB1dCB7XFxyXFxuICBmb250LXNpemU6IDE2cHg7XFxyXFxuICBkaXNwbGF5OiBibG9jaztcXHJcXG4gIHdpZHRoOiAxMDAlO1xcclxcbiAgcGFkZGluZzogMC4yZW0gMC42ZW07XFxyXFxuICBib3JkZXItcmFkaXVzOiAyNXB4O1xcclxcbiAgYm9yZGVyOiAxcHggc29saWQgI2Q5ZDlkOTtcXHJcXG4gIG91dGxpbmU6IDA7XFxyXFxufVxcclxcbi5lbW9qaS1tYXJ0LXNlYXJjaC1yZXN1bHRzIHtcXHJcXG4gIGhlaWdodDogMjUwcHg7XFxyXFxuICBvdmVyZmxvdy15OiBzY3JvbGw7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LWNhdGVnb3J5IHtcXHJcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXHJcXG59XFxyXFxuXFxyXFxuLmVtb2ppLW1hcnQtY2F0ZWdvcnkgLmVtb2ppLW1hcnQtZW1vamkgc3BhbiB7XFxyXFxuICB6LWluZGV4OiAxO1xcclxcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcclxcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcclxcbiAgY3Vyc29yOiBkZWZhdWx0O1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC1jYXRlZ29yeSAuZW1vamktbWFydC1lbW9qaTpob3ZlcjpiZWZvcmUsXFxyXFxuLmVtb2ppLW1hcnQtZW1vamktc2VsZWN0ZWQ6YmVmb3JlIHtcXHJcXG4gIHotaW5kZXg6IDA7XFxyXFxuICBjb250ZW50OiAnJztcXHJcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXHJcXG4gIHRvcDogMDtcXHJcXG4gIGxlZnQ6IDA7XFxyXFxuICB3aWR0aDogMTAwJTtcXHJcXG4gIGhlaWdodDogMTAwJTtcXHJcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XFxyXFxuICBib3JkZXItcmFkaXVzOiAxMDAlO1xcclxcbiAgb3BhY2l0eTogMDtcXHJcXG59XFxyXFxuLmVtb2ppLW1hcnQtY2F0ZWdvcnkgLmVtb2ppLW1hcnQtZW1vamk6aG92ZXI6YmVmb3JlLFxcclxcbi5lbW9qaS1tYXJ0LWVtb2ppLXNlbGVjdGVkOmJlZm9yZSB7XFxyXFxuICBvcGFjaXR5OiAxO1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC1jYXRlZ29yeS1sYWJlbCB7XFxyXFxuICBwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7XFxyXFxuICBwb3NpdGlvbjogc3RpY2t5O1xcclxcbiAgdG9wOiAwO1xcclxcbn1cXHJcXG4uZW1vamktbWFydC1zdGF0aWMgLmVtb2ppLW1hcnQtY2F0ZWdvcnktbGFiZWwge1xcclxcbiAgei1pbmRleDogMjtcXHJcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXHJcXG4gIC8qIHBvc2l0aW9uOiBzdGlja3k7ICovXFxyXFxuICAvKiBwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7ICovXFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LWNhdGVnb3J5LWxhYmVsIGgzIHtcXHJcXG4gIGRpc3BsYXk6IGJsb2NrO1xcclxcbiAgZm9udC1zaXplOiAxNnB4O1xcclxcbiAgd2lkdGg6IDEwMCU7XFxyXFxuICBmb250LXdlaWdodDogNTAwO1xcclxcbiAgcGFkZGluZzogNXB4IDZweDtcXHJcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxyXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpO1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC1lbW9qaSB7XFxyXFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxyXFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxyXFxuICBmb250LXNpemU6IDA7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LW5vLXJlc3VsdHMge1xcclxcbiAgZm9udC1zaXplOiAxNHB4O1xcclxcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcclxcbiAgcGFkZGluZy10b3A6IDcwcHg7XFxyXFxuICBjb2xvcjogIzg1ODU4NTtcXHJcXG59XFxyXFxuLmVtb2ppLW1hcnQtbm8tcmVzdWx0cyAuZW1vamktbWFydC1jYXRlZ29yeS1sYWJlbCB7XFxyXFxuICBkaXNwbGF5OiBub25lO1xcclxcbn1cXHJcXG4uZW1vamktbWFydC1uby1yZXN1bHRzIC5lbW9qaS1tYXJ0LW5vLXJlc3VsdHMtbGFiZWwge1xcclxcbiAgbWFyZ2luLXRvcDogMC4yZW07XFxyXFxufVxcclxcbi5lbW9qaS1tYXJ0LW5vLXJlc3VsdHMgLmVtb2ppLW1hcnQtZW1vamk6aG92ZXI6YmVmb3JlIHtcXHJcXG4gIGNvbnRlbnQ6IG5vbmU7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LXByZXZpZXcge1xcclxcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcclxcbiAgaGVpZ2h0OiA3MHB4O1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC1wcmV2aWV3LWVtb2ppLFxcclxcbi5lbW9qaS1tYXJ0LXByZXZpZXctZGF0YSxcXHJcXG4uZW1vamktbWFydC1wcmV2aWV3LXNraW5zIHtcXHJcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXHJcXG4gIHRvcDogNTAlO1xcclxcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxyXFxuICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXHJcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC1wcmV2aWV3LWVtb2ppIHtcXHJcXG4gIGxlZnQ6IDEycHg7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LXByZXZpZXctZGF0YSB7XFxyXFxuICBsZWZ0OiA2OHB4O1xcclxcbiAgcmlnaHQ6IDEycHg7XFxyXFxuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LXByZXZpZXctc2tpbnMge1xcclxcbiAgcmlnaHQ6IDMwcHg7XFxyXFxuICB0ZXh0LWFsaWduOiByaWdodDtcXHJcXG59XFxyXFxuXFxyXFxuLmVtb2ppLW1hcnQtcHJldmlldy1uYW1lIHtcXHJcXG4gIGZvbnQtc2l6ZTogMTRweDtcXHJcXG59XFxyXFxuXFxyXFxuLmVtb2ppLW1hcnQtcHJldmlldy1zaG9ydG5hbWUge1xcclxcbiAgZm9udC1zaXplOiAxMnB4O1xcclxcbiAgY29sb3I6ICM4ODg7XFxyXFxufVxcclxcbi5lbW9qaS1tYXJ0LXByZXZpZXctc2hvcnRuYW1lICsgLmVtb2ppLW1hcnQtcHJldmlldy1zaG9ydG5hbWUsXFxyXFxuLmVtb2ppLW1hcnQtcHJldmlldy1zaG9ydG5hbWUgKyAuZW1vamktbWFydC1wcmV2aWV3LWVtb3RpY29uLFxcclxcbi5lbW9qaS1tYXJ0LXByZXZpZXctZW1vdGljb24gKyAuZW1vamktbWFydC1wcmV2aWV3LWVtb3RpY29uIHtcXHJcXG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcXHJcXG59XFxyXFxuXFxyXFxuLmVtb2ppLW1hcnQtcHJldmlldy1lbW90aWNvbiB7XFxyXFxuICBmb250LXNpemU6IDExcHg7XFxyXFxuICBjb2xvcjogI2JiYjtcXHJcXG59XFxyXFxuXFxyXFxuLmVtb2ppLW1hcnQtdGl0bGUgc3BhbiB7XFxyXFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxyXFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC10aXRsZSAuZW1vamktbWFydC1lbW9qaSB7XFxyXFxuICBwYWRkaW5nOiAwO1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC10aXRsZS1sYWJlbCB7XFxyXFxuICBjb2xvcjogIzk5OWE5YztcXHJcXG4gIGZvbnQtc2l6ZTogMjFweDtcXHJcXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoZXMge1xcclxcbiAgZm9udC1zaXplOiAwO1xcclxcbiAgcGFkZGluZzogMnB4IDA7XFxyXFxuICBib3JkZXI6IDFweCBzb2xpZCAjZDlkOWQ5O1xcclxcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcXHJcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoZXMtb3BlbmVkIC5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoIHtcXHJcXG4gIHdpZHRoOiAxNnB4O1xcclxcbiAgcGFkZGluZzogMCAycHg7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoZXMtb3BlbmVkIC5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoLXNlbGVjdGVkOmFmdGVyIHtcXHJcXG4gIG9wYWNpdHk6IDAuNzU7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoIHtcXHJcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXHJcXG4gIHdpZHRoOiAwO1xcclxcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXHJcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogd2lkdGgsIHBhZGRpbmc7XFxyXFxuICAtby10cmFuc2l0aW9uLXByb3BlcnR5OiB3aWR0aCwgcGFkZGluZztcXHJcXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHdpZHRoLCBwYWRkaW5nO1xcclxcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjEyNXM7XFxyXFxuICAgICAgIC1vLXRyYW5zaXRpb24tZHVyYXRpb246IDAuMTI1cztcXHJcXG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xMjVzO1xcclxcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XFxyXFxuICAgICAgIC1vLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcXHJcXG4gICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC1za2luLXN3YXRjaDpudGgtY2hpbGQoMSkge1xcclxcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiAwcztcXHJcXG4gICAgICAgLW8tdHJhbnNpdGlvbi1kZWxheTogMHM7XFxyXFxuICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xcclxcbn1cXHJcXG4uZW1vamktbWFydC1za2luLXN3YXRjaDpudGgtY2hpbGQoMikge1xcclxcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiAwLjAzcztcXHJcXG4gICAgICAgLW8tdHJhbnNpdGlvbi1kZWxheTogMC4wM3M7XFxyXFxuICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMDNzO1xcclxcbn1cXHJcXG4uZW1vamktbWFydC1za2luLXN3YXRjaDpudGgtY2hpbGQoMykge1xcclxcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiAwLjA2cztcXHJcXG4gICAgICAgLW8tdHJhbnNpdGlvbi1kZWxheTogMC4wNnM7XFxyXFxuICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMDZzO1xcclxcbn1cXHJcXG4uZW1vamktbWFydC1za2luLXN3YXRjaDpudGgtY2hpbGQoNCkge1xcclxcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiAwLjA5cztcXHJcXG4gICAgICAgLW8tdHJhbnNpdGlvbi1kZWxheTogMC4wOXM7XFxyXFxuICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMDlzO1xcclxcbn1cXHJcXG4uZW1vamktbWFydC1za2luLXN3YXRjaDpudGgtY2hpbGQoNSkge1xcclxcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiAwLjEycztcXHJcXG4gICAgICAgLW8tdHJhbnNpdGlvbi1kZWxheTogMC4xMnM7XFxyXFxuICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMTJzO1xcclxcbn1cXHJcXG4uZW1vamktbWFydC1za2luLXN3YXRjaDpudGgtY2hpbGQoNikge1xcclxcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiAwLjE1cztcXHJcXG4gICAgICAgLW8tdHJhbnNpdGlvbi1kZWxheTogMC4xNXM7XFxyXFxuICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMTVzO1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC1za2luLXN3YXRjaC1zZWxlY3RlZCB7XFxyXFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxyXFxuICB3aWR0aDogMTZweDtcXHJcXG4gIHBhZGRpbmc6IDAgMnB4O1xcclxcbn1cXHJcXG4uZW1vamktbWFydC1za2luLXN3YXRjaC1zZWxlY3RlZDphZnRlciB7XFxyXFxuICBjb250ZW50OiAnJztcXHJcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXHJcXG4gIHRvcDogNTAlO1xcclxcbiAgbGVmdDogNTAlO1xcclxcbiAgd2lkdGg6IDRweDtcXHJcXG4gIGhlaWdodDogNHB4O1xcclxcbiAgbWFyZ2luOiAtMnB4IDAgMCAtMnB4O1xcclxcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXHJcXG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XFxyXFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXHJcXG4gIG9wYWNpdHk6IDA7XFxyXFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLW91dDtcXHJcXG4gIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLW91dDtcXHJcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLW91dDtcXHJcXG59XFxyXFxuXFxyXFxuLmVtb2ppLW1hcnQtc2tpbiB7XFxyXFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxyXFxuICB3aWR0aDogMTAwJTtcXHJcXG4gIHBhZGRpbmctdG9wOiAxMDAlO1xcclxcbiAgbWF4LXdpZHRoOiAxMnB4O1xcclxcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcXHJcXG59XFxyXFxuXFxyXFxuLmVtb2ppLW1hcnQtc2tpbi10b25lLTEge1xcclxcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYzkzYTtcXHJcXG59XFxyXFxuLmVtb2ppLW1hcnQtc2tpbi10b25lLTIge1xcclxcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZGNiYztcXHJcXG59XFxyXFxuLmVtb2ppLW1hcnQtc2tpbi10b25lLTMge1xcclxcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwYmI5NTtcXHJcXG59XFxyXFxuLmVtb2ppLW1hcnQtc2tpbi10b25lLTQge1xcclxcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JmOGY2ODtcXHJcXG59XFxyXFxuLmVtb2ppLW1hcnQtc2tpbi10b25lLTUge1xcclxcbiAgYmFja2dyb3VuZC1jb2xvcjogIzliNjQzZDtcXHJcXG59XFxyXFxuLmVtb2ppLW1hcnQtc2tpbi10b25lLTYge1xcclxcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU5NDUzOTtcXHJcXG59XFxyXFxuXFxyXFxuLyogdnVlLXZpcnR1YWwtc2Nyb2xsZXIvZGlzdC92dWUtdmlydHVhbC1zY3JvbGxlci5jc3MgKi9cXHJcXG4uZW1vamktbWFydCAudnVlLXJlY3ljbGUtc2Nyb2xsZXIge1xcclxcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcclxcbn1cXHJcXG4uZW1vamktbWFydCAudnVlLXJlY3ljbGUtc2Nyb2xsZXIuZGlyZWN0aW9uLXZlcnRpY2FsOm5vdCgucGFnZS1tb2RlKSB7XFxyXFxuICBvdmVyZmxvdy15OiBhdXRvO1xcclxcbn1cXHJcXG4uZW1vamktbWFydCAudnVlLXJlY3ljbGUtc2Nyb2xsZXIuZGlyZWN0aW9uLWhvcml6b250YWw6bm90KC5wYWdlLW1vZGUpIHtcXHJcXG4gIG92ZXJmbG93LXg6IGF1dG87XFxyXFxufVxcclxcbi5lbW9qaS1tYXJ0IC52dWUtcmVjeWNsZS1zY3JvbGxlci5kaXJlY3Rpb24taG9yaXpvbnRhbCB7XFxyXFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXHJcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcclxcbiAgZGlzcGxheTogZmxleDtcXHJcXG59XFxyXFxuLmVtb2ppLW1hcnQgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyX19zbG90IHtcXHJcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxyXFxuICAgICAgLW1zLWZsZXg6IGF1dG8gMCAwcHg7XFxyXFxuICAgICAgICAgIGZsZXg6IGF1dG8gMCAwO1xcclxcbn1cXHJcXG4uZW1vamktbWFydCAudnVlLXJlY3ljbGUtc2Nyb2xsZXJfX2l0ZW0td3JhcHBlciB7XFxyXFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcclxcbiAgICAgIC1tcy1mbGV4OiAxO1xcclxcbiAgICAgICAgICBmbGV4OiAxO1xcclxcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xcclxcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcclxcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXHJcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXHJcXG59XFxyXFxuLmVtb2ppLW1hcnQgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyLnJlYWR5IC52dWUtcmVjeWNsZS1zY3JvbGxlcl9faXRlbS12aWV3IHtcXHJcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXHJcXG4gIHRvcDogMDtcXHJcXG4gIGxlZnQ6IDA7XFxyXFxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xcclxcbn1cXHJcXG4uZW1vamktbWFydFxcclxcbiAgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyLmRpcmVjdGlvbi12ZXJ0aWNhbFxcclxcbiAgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyX19pdGVtLXdyYXBwZXIge1xcclxcbiAgd2lkdGg6IDEwMCU7XFxyXFxufVxcclxcbi5lbW9qaS1tYXJ0XFxyXFxuICAudnVlLXJlY3ljbGUtc2Nyb2xsZXIuZGlyZWN0aW9uLWhvcml6b250YWxcXHJcXG4gIC52dWUtcmVjeWNsZS1zY3JvbGxlcl9faXRlbS13cmFwcGVyIHtcXHJcXG4gIGhlaWdodDogMTAwJTtcXHJcXG59XFxyXFxuLmVtb2ppLW1hcnRcXHJcXG4gIC52dWUtcmVjeWNsZS1zY3JvbGxlci5yZWFkeS5kaXJlY3Rpb24tdmVydGljYWxcXHJcXG4gIC52dWUtcmVjeWNsZS1zY3JvbGxlcl9faXRlbS12aWV3IHtcXHJcXG4gIHdpZHRoOiAxMDAlO1xcclxcbn1cXHJcXG4uZW1vamktbWFydFxcclxcbiAgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyLnJlYWR5LmRpcmVjdGlvbi1ob3Jpem9udGFsXFxyXFxuICAudnVlLXJlY3ljbGUtc2Nyb2xsZXJfX2l0ZW0tdmlldyB7XFxyXFxuICBoZWlnaHQ6IDEwMCU7XFxyXFxufVxcclxcbi5lbW9qaS1tYXJ0IC5yZXNpemUtb2JzZXJ2ZXJbZGF0YS12LWIzMjllZTRjXSB7XFxyXFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxyXFxuICB0b3A6IDA7XFxyXFxuICBsZWZ0OiAwO1xcclxcbiAgei1pbmRleDogLTE7XFxyXFxuICB3aWR0aDogMTAwJTtcXHJcXG4gIGhlaWdodDogMTAwJTtcXHJcXG4gIGJvcmRlcjogbm9uZTtcXHJcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcclxcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxyXFxuICBkaXNwbGF5OiBibG9jaztcXHJcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxyXFxuICBvcGFjaXR5OiAwO1xcclxcbn1cXHJcXG4uZW1vamktbWFydCAucmVzaXplLW9ic2VydmVyW2RhdGEtdi1iMzI5ZWU0Y10gb2JqZWN0IHtcXHJcXG4gIGRpc3BsYXk6IGJsb2NrO1xcclxcbiAgcG9zaXRpb246IGFic29sdXRlO1xcclxcbiAgdG9wOiAwO1xcclxcbiAgbGVmdDogMDtcXHJcXG4gIGhlaWdodDogMTAwJTtcXHJcXG4gIHdpZHRoOiAxMDAlO1xcclxcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXHJcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcclxcbiAgei1pbmRleDogLTE7XFxyXFxufVxcclxcbi5lbW9qaS1tYXJ0LXNlYXJjaCAuaGlkZGVuIHtcXHJcXG4gIGRpc3BsYXk6IG5vbmU7XFxyXFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxyXFxufVxcclxcblwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL2Nzcy9lbW9qaS1tYXJ0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amktbWFydCAqIHtcXHJcXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxyXFxuICBsaW5lLWhlaWdodDogMS4xNTtcXHJcXG59XFxyXFxuXFxyXFxuLmVtb2ppLW1hcnQge1xcclxcbiAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjtcXHJcXG4gIGZvbnQtc2l6ZTogMTZweDtcXHJcXG4gIC8qIGRpc3BsYXk6IGlubGluZS1ibG9jazsgKi9cXHJcXG4gIGRpc3BsYXk6IGZsZXg7XFxyXFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcclxcbiAgaGVpZ2h0OiA0MjBweDtcXHJcXG4gIGNvbG9yOiAjMjIyNDI3O1xcclxcbiAgYm9yZGVyOiAxcHggc29saWQgI2Q5ZDlkOTtcXHJcXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcXHJcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LWVtb2ppIHtcXHJcXG4gIHBhZGRpbmc6IDZweDtcXHJcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXHJcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXHJcXG4gIGZvbnQtc2l6ZTogMDtcXHJcXG4gIGJvcmRlcjogbm9uZTtcXHJcXG4gIGJhY2tncm91bmQ6IG5vbmU7XFxyXFxuICBib3gtc2hhZG93OiBub25lO1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC1lbW9qaSBzcGFuIHtcXHJcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXHJcXG59XFxyXFxuXFxyXFxuLmVtb2ppLW1hcnQtcHJldmlldy1lbW9qaSAuZW1vamktbWFydC1lbW9qaSBzcGFuIHtcXHJcXG4gIHdpZHRoOiAzOHB4O1xcclxcbiAgaGVpZ2h0OiAzOHB4O1xcclxcbiAgZm9udC1zaXplOiAzMnB4O1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktdHlwZS1uYXRpdmUge1xcclxcbiAgZm9udC1mYW1pbHk6ICdTZWdvZSBVSSBFbW9qaScsICdTZWdvZSBVSSBTeW1ib2wnLCAnU2Vnb2UgVUknLFxcclxcbiAgICAnQXBwbGUgQ29sb3IgRW1vamknLCAnVHdlbW9qaSBNb3ppbGxhJywgJ05vdG8gQ29sb3IgRW1vamknLCAnRW1vamlPbmUgQ29sb3InLFxcclxcbiAgICAnQW5kcm9pZCBFbW9qaSc7XFxyXFxuICB3b3JkLWJyZWFrOiBrZWVwLWFsbDtcXHJcXG59XFxyXFxuXFxyXFxuLmVtb2ppLXR5cGUtaW1hZ2Uge1xcclxcbiAgLyogRW1vamkgc2hlZXQgaGFzIDU2IGNvbHVtbnMsIHNlZSBhbHNvIHV0aWxzL2Vtb2ppLWRhdGEuanMsIFNIRUVUX0NPTFVNTlMgdmFyaWFibGUgKi9cXHJcXG4gIC8qIEhlcmUgd2UgdXNlICg1NisxKSAqIDEwMCUgdG8gYXZvaWQgdmlzaWJsZSBlZGdlcyBvZiBuZWFyYnkgaWNvbnMgd2hlbiBzY2FsaW5nIGZvciBkaWZmZXJlbnRcXHJcXG4gICAqIHNjcmVlbiBzaXplcyAqL1xcclxcbiAgYmFja2dyb3VuZC1zaXplOiA2MTAwJTtcXHJcXG59XFxyXFxuLmVtb2ppLXR5cGUtaW1hZ2UuZW1vamktc2V0LWFwcGxlIHtcXHJcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly91bnBrZy5jb20vZW1vamktZGF0YXNvdXJjZS1hcHBsZUAxNC4wLjAvaW1nL2FwcGxlL3NoZWV0cy0yNTYvNjQucG5nJyk7XFxyXFxufVxcclxcbi5lbW9qaS10eXBlLWltYWdlLmVtb2ppLXNldC1mYWNlYm9vayB7XFxyXFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vdW5wa2cuY29tL2Vtb2ppLWRhdGFzb3VyY2UtZmFjZWJvb2tAMTQuMC4wL2ltZy9mYWNlYm9vay9zaGVldHMtMjU2LzY0LnBuZycpO1xcclxcbn1cXHJcXG4uZW1vamktdHlwZS1pbWFnZS5lbW9qaS1zZXQtZ29vZ2xlIHtcXHJcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly91bnBrZy5jb20vZW1vamktZGF0YXNvdXJjZS1nb29nbGVAMTQuMC4wL2ltZy9nb29nbGUvc2hlZXRzLTI1Ni82NC5wbmcnKTtcXHJcXG59XFxyXFxuLmVtb2ppLXR5cGUtaW1hZ2UuZW1vamktc2V0LXR3aXR0ZXIge1xcclxcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3VucGtnLmNvbS9lbW9qaS1kYXRhc291cmNlLXR3aXR0ZXJAMTQuMC4wL2ltZy90d2l0dGVyL3NoZWV0cy0yNTYvNjQucG5nJyk7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LWJhciB7XFxyXFxuICBib3JkZXI6IDAgc29saWQgI2Q5ZDlkOTtcXHJcXG59XFxyXFxuLmVtb2ppLW1hcnQtYmFyOmZpcnN0LWNoaWxkIHtcXHJcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcXHJcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDVweDtcXHJcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7XFxyXFxufVxcclxcbi5lbW9qaS1tYXJ0LWJhcjpsYXN0LWNoaWxkIHtcXHJcXG4gIGJvcmRlci10b3Atd2lkdGg6IDFweDtcXHJcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDVweDtcXHJcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA1cHg7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LXNjcm9sbCB7XFxyXFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxyXFxuICBvdmVyZmxvdy15OiBzY3JvbGw7XFxyXFxuICBmbGV4OiAxO1xcclxcbiAgcGFkZGluZzogMCA2cHggNnB4IDZweDtcXHJcXG4gIHotaW5kZXg6IDA7IC8qIEZpeCBmb3IgcmVuZGVyaW5nIHN0aWNreSBwb3NpdGlvbmVkIGNhdGVnb3J5IGxhYmVscyBvbiBDaHJvbWUgKi9cXHJcXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IC8qIGF2b2lkcyBcXFwicmVwYWludHMgb24gc2Nyb2xsXFxcIiBpbiBtb2JpbGUgQ2hyb21lICovXFxyXFxuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LWFuY2hvcnMge1xcclxcbiAgZGlzcGxheTogZmxleDtcXHJcXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxyXFxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxyXFxuICBwYWRkaW5nOiAwIDZweDtcXHJcXG4gIGNvbG9yOiAjODU4NTg1O1xcclxcbiAgbGluZS1oZWlnaHQ6IDA7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LWFuY2hvciB7XFxyXFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxyXFxuICBkaXNwbGF5OiBibG9jaztcXHJcXG4gIGZsZXg6IDEgMSBhdXRvO1xcclxcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcclxcbiAgcGFkZGluZzogMTJweCA0cHg7XFxyXFxuICBvdmVyZmxvdzogaGlkZGVuO1xcclxcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlLW91dDtcXHJcXG4gIGJvcmRlcjogbm9uZTtcXHJcXG4gIGJhY2tncm91bmQ6IG5vbmU7XFxyXFxuICBib3gtc2hhZG93OiBub25lO1xcclxcbn1cXHJcXG4uZW1vamktbWFydC1hbmNob3I6aG92ZXIsXFxyXFxuLmVtb2ppLW1hcnQtYW5jaG9yLXNlbGVjdGVkIHtcXHJcXG4gIGNvbG9yOiAjNDY0NjQ2O1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC1hbmNob3Itc2VsZWN0ZWQgLmVtb2ppLW1hcnQtYW5jaG9yLWJhciB7XFxyXFxuICBib3R0b206IDA7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LWFuY2hvci1iYXIge1xcclxcbiAgcG9zaXRpb246IGFic29sdXRlO1xcclxcbiAgYm90dG9tOiAtM3B4O1xcclxcbiAgbGVmdDogMDtcXHJcXG4gIHdpZHRoOiAxMDAlO1xcclxcbiAgaGVpZ2h0OiAzcHg7XFxyXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDY0NjQ2O1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC1hbmNob3JzIGkge1xcclxcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcclxcbiAgd2lkdGg6IDEwMCU7XFxyXFxuICBtYXgtd2lkdGg6IDIycHg7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LWFuY2hvcnMgc3ZnIHtcXHJcXG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcXHJcXG4gIG1heC1oZWlnaHQ6IDE4cHg7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0IC5zY3JvbGxlciB7XFxyXFxuICBoZWlnaHQ6IDI1MHB4O1xcclxcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcclxcbiAgZmxleDogMTtcXHJcXG4gIHBhZGRpbmc6IDAgNnB4IDZweCA2cHg7XFxyXFxuICB6LWluZGV4OiAwOyAvKiBGaXggZm9yIHJlbmRlcmluZyBzdGlja3kgcG9zaXRpb25lZCBjYXRlZ29yeSBsYWJlbHMgb24gQ2hyb21lICovXFxyXFxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOyAvKiBhdm9pZHMgXFxcInJlcGFpbnRzIG9uIHNjcm9sbFxcXCIgaW4gbW9iaWxlIENocm9tZSAqL1xcclxcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC1zZWFyY2gge1xcclxcbiAgbWFyZ2luLXRvcDogNnB4O1xcclxcbiAgcGFkZGluZzogMCA2cHg7XFxyXFxufVxcclxcbi5lbW9qaS1tYXJ0LXNlYXJjaCBpbnB1dCB7XFxyXFxuICBmb250LXNpemU6IDE2cHg7XFxyXFxuICBkaXNwbGF5OiBibG9jaztcXHJcXG4gIHdpZHRoOiAxMDAlO1xcclxcbiAgcGFkZGluZzogMC4yZW0gMC42ZW07XFxyXFxuICBib3JkZXItcmFkaXVzOiAyNXB4O1xcclxcbiAgYm9yZGVyOiAxcHggc29saWQgI2Q5ZDlkOTtcXHJcXG4gIG91dGxpbmU6IDA7XFxyXFxufVxcclxcbi5lbW9qaS1tYXJ0LXNlYXJjaC1yZXN1bHRzIHtcXHJcXG4gIGhlaWdodDogMjUwcHg7XFxyXFxuICBvdmVyZmxvdy15OiBzY3JvbGw7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LWNhdGVnb3J5IHtcXHJcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXHJcXG59XFxyXFxuXFxyXFxuLmVtb2ppLW1hcnQtY2F0ZWdvcnkgLmVtb2ppLW1hcnQtZW1vamkgc3BhbiB7XFxyXFxuICB6LWluZGV4OiAxO1xcclxcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcclxcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcclxcbiAgY3Vyc29yOiBkZWZhdWx0O1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC1jYXRlZ29yeSAuZW1vamktbWFydC1lbW9qaTpob3ZlcjpiZWZvcmUsXFxyXFxuLmVtb2ppLW1hcnQtZW1vamktc2VsZWN0ZWQ6YmVmb3JlIHtcXHJcXG4gIHotaW5kZXg6IDA7XFxyXFxuICBjb250ZW50OiAnJztcXHJcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXHJcXG4gIHRvcDogMDtcXHJcXG4gIGxlZnQ6IDA7XFxyXFxuICB3aWR0aDogMTAwJTtcXHJcXG4gIGhlaWdodDogMTAwJTtcXHJcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XFxyXFxuICBib3JkZXItcmFkaXVzOiAxMDAlO1xcclxcbiAgb3BhY2l0eTogMDtcXHJcXG59XFxyXFxuLmVtb2ppLW1hcnQtY2F0ZWdvcnkgLmVtb2ppLW1hcnQtZW1vamk6aG92ZXI6YmVmb3JlLFxcclxcbi5lbW9qaS1tYXJ0LWVtb2ppLXNlbGVjdGVkOmJlZm9yZSB7XFxyXFxuICBvcGFjaXR5OiAxO1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC1jYXRlZ29yeS1sYWJlbCB7XFxyXFxuICBwb3NpdGlvbjogc3RpY2t5O1xcclxcbiAgdG9wOiAwO1xcclxcbn1cXHJcXG4uZW1vamktbWFydC1zdGF0aWMgLmVtb2ppLW1hcnQtY2F0ZWdvcnktbGFiZWwge1xcclxcbiAgei1pbmRleDogMjtcXHJcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXHJcXG4gIC8qIHBvc2l0aW9uOiBzdGlja3k7ICovXFxyXFxuICAvKiBwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7ICovXFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LWNhdGVnb3J5LWxhYmVsIGgzIHtcXHJcXG4gIGRpc3BsYXk6IGJsb2NrO1xcclxcbiAgZm9udC1zaXplOiAxNnB4O1xcclxcbiAgd2lkdGg6IDEwMCU7XFxyXFxuICBmb250LXdlaWdodDogNTAwO1xcclxcbiAgcGFkZGluZzogNXB4IDZweDtcXHJcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxyXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpO1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC1lbW9qaSB7XFxyXFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxyXFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxyXFxuICBmb250LXNpemU6IDA7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LW5vLXJlc3VsdHMge1xcclxcbiAgZm9udC1zaXplOiAxNHB4O1xcclxcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcclxcbiAgcGFkZGluZy10b3A6IDcwcHg7XFxyXFxuICBjb2xvcjogIzg1ODU4NTtcXHJcXG59XFxyXFxuLmVtb2ppLW1hcnQtbm8tcmVzdWx0cyAuZW1vamktbWFydC1jYXRlZ29yeS1sYWJlbCB7XFxyXFxuICBkaXNwbGF5OiBub25lO1xcclxcbn1cXHJcXG4uZW1vamktbWFydC1uby1yZXN1bHRzIC5lbW9qaS1tYXJ0LW5vLXJlc3VsdHMtbGFiZWwge1xcclxcbiAgbWFyZ2luLXRvcDogMC4yZW07XFxyXFxufVxcclxcbi5lbW9qaS1tYXJ0LW5vLXJlc3VsdHMgLmVtb2ppLW1hcnQtZW1vamk6aG92ZXI6YmVmb3JlIHtcXHJcXG4gIGNvbnRlbnQ6IG5vbmU7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LXByZXZpZXcge1xcclxcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcclxcbiAgaGVpZ2h0OiA3MHB4O1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC1wcmV2aWV3LWVtb2ppLFxcclxcbi5lbW9qaS1tYXJ0LXByZXZpZXctZGF0YSxcXHJcXG4uZW1vamktbWFydC1wcmV2aWV3LXNraW5zIHtcXHJcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXHJcXG4gIHRvcDogNTAlO1xcclxcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC1wcmV2aWV3LWVtb2ppIHtcXHJcXG4gIGxlZnQ6IDEycHg7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LXByZXZpZXctZGF0YSB7XFxyXFxuICBsZWZ0OiA2OHB4O1xcclxcbiAgcmlnaHQ6IDEycHg7XFxyXFxuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LXByZXZpZXctc2tpbnMge1xcclxcbiAgcmlnaHQ6IDMwcHg7XFxyXFxuICB0ZXh0LWFsaWduOiByaWdodDtcXHJcXG59XFxyXFxuXFxyXFxuLmVtb2ppLW1hcnQtcHJldmlldy1uYW1lIHtcXHJcXG4gIGZvbnQtc2l6ZTogMTRweDtcXHJcXG59XFxyXFxuXFxyXFxuLmVtb2ppLW1hcnQtcHJldmlldy1zaG9ydG5hbWUge1xcclxcbiAgZm9udC1zaXplOiAxMnB4O1xcclxcbiAgY29sb3I6ICM4ODg7XFxyXFxufVxcclxcbi5lbW9qaS1tYXJ0LXByZXZpZXctc2hvcnRuYW1lICsgLmVtb2ppLW1hcnQtcHJldmlldy1zaG9ydG5hbWUsXFxyXFxuLmVtb2ppLW1hcnQtcHJldmlldy1zaG9ydG5hbWUgKyAuZW1vamktbWFydC1wcmV2aWV3LWVtb3RpY29uLFxcclxcbi5lbW9qaS1tYXJ0LXByZXZpZXctZW1vdGljb24gKyAuZW1vamktbWFydC1wcmV2aWV3LWVtb3RpY29uIHtcXHJcXG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcXHJcXG59XFxyXFxuXFxyXFxuLmVtb2ppLW1hcnQtcHJldmlldy1lbW90aWNvbiB7XFxyXFxuICBmb250LXNpemU6IDExcHg7XFxyXFxuICBjb2xvcjogI2JiYjtcXHJcXG59XFxyXFxuXFxyXFxuLmVtb2ppLW1hcnQtdGl0bGUgc3BhbiB7XFxyXFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxyXFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC10aXRsZSAuZW1vamktbWFydC1lbW9qaSB7XFxyXFxuICBwYWRkaW5nOiAwO1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC10aXRsZS1sYWJlbCB7XFxyXFxuICBjb2xvcjogIzk5OWE5YztcXHJcXG4gIGZvbnQtc2l6ZTogMjFweDtcXHJcXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoZXMge1xcclxcbiAgZm9udC1zaXplOiAwO1xcclxcbiAgcGFkZGluZzogMnB4IDA7XFxyXFxuICBib3JkZXI6IDFweCBzb2xpZCAjZDlkOWQ5O1xcclxcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcXHJcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoZXMtb3BlbmVkIC5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoIHtcXHJcXG4gIHdpZHRoOiAxNnB4O1xcclxcbiAgcGFkZGluZzogMCAycHg7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoZXMtb3BlbmVkIC5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoLXNlbGVjdGVkOmFmdGVyIHtcXHJcXG4gIG9wYWNpdHk6IDAuNzU7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoIHtcXHJcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXHJcXG4gIHdpZHRoOiAwO1xcclxcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXHJcXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHdpZHRoLCBwYWRkaW5nO1xcclxcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xMjVzO1xcclxcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC1za2luLXN3YXRjaDpudGgtY2hpbGQoMSkge1xcclxcbiAgdHJhbnNpdGlvbi1kZWxheTogMHM7XFxyXFxufVxcclxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoOm50aC1jaGlsZCgyKSB7XFxyXFxuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjAzcztcXHJcXG59XFxyXFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2g6bnRoLWNoaWxkKDMpIHtcXHJcXG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMDZzO1xcclxcbn1cXHJcXG4uZW1vamktbWFydC1za2luLXN3YXRjaDpudGgtY2hpbGQoNCkge1xcclxcbiAgdHJhbnNpdGlvbi1kZWxheTogMC4wOXM7XFxyXFxufVxcclxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoOm50aC1jaGlsZCg1KSB7XFxyXFxuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjEycztcXHJcXG59XFxyXFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2g6bnRoLWNoaWxkKDYpIHtcXHJcXG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMTVzO1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydC1za2luLXN3YXRjaC1zZWxlY3RlZCB7XFxyXFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxyXFxuICB3aWR0aDogMTZweDtcXHJcXG4gIHBhZGRpbmc6IDAgMnB4O1xcclxcbn1cXHJcXG4uZW1vamktbWFydC1za2luLXN3YXRjaC1zZWxlY3RlZDphZnRlciB7XFxyXFxuICBjb250ZW50OiAnJztcXHJcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXHJcXG4gIHRvcDogNTAlO1xcclxcbiAgbGVmdDogNTAlO1xcclxcbiAgd2lkdGg6IDRweDtcXHJcXG4gIGhlaWdodDogNHB4O1xcclxcbiAgbWFyZ2luOiAtMnB4IDAgMCAtMnB4O1xcclxcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXHJcXG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XFxyXFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXHJcXG4gIG9wYWNpdHk6IDA7XFxyXFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZS1vdXQ7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LXNraW4ge1xcclxcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcclxcbiAgd2lkdGg6IDEwMCU7XFxyXFxuICBwYWRkaW5nLXRvcDogMTAwJTtcXHJcXG4gIG1heC13aWR0aDogMTJweDtcXHJcXG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LXNraW4tdG9uZS0xIHtcXHJcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmM5M2E7XFxyXFxufVxcclxcbi5lbW9qaS1tYXJ0LXNraW4tdG9uZS0yIHtcXHJcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWRjYmM7XFxyXFxufVxcclxcbi5lbW9qaS1tYXJ0LXNraW4tdG9uZS0zIHtcXHJcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlMGJiOTU7XFxyXFxufVxcclxcbi5lbW9qaS1tYXJ0LXNraW4tdG9uZS00IHtcXHJcXG4gIGJhY2tncm91bmQtY29sb3I6ICNiZjhmNjg7XFxyXFxufVxcclxcbi5lbW9qaS1tYXJ0LXNraW4tdG9uZS01IHtcXHJcXG4gIGJhY2tncm91bmQtY29sb3I6ICM5YjY0M2Q7XFxyXFxufVxcclxcbi5lbW9qaS1tYXJ0LXNraW4tdG9uZS02IHtcXHJcXG4gIGJhY2tncm91bmQtY29sb3I6ICM1OTQ1Mzk7XFxyXFxufVxcclxcblxcclxcbi8qIHZ1ZS12aXJ0dWFsLXNjcm9sbGVyL2Rpc3QvdnVlLXZpcnR1YWwtc2Nyb2xsZXIuY3NzICovXFxyXFxuLmVtb2ppLW1hcnQgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyIHtcXHJcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXHJcXG59XFxyXFxuLmVtb2ppLW1hcnQgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyLmRpcmVjdGlvbi12ZXJ0aWNhbDpub3QoLnBhZ2UtbW9kZSkge1xcclxcbiAgb3ZlcmZsb3cteTogYXV0bztcXHJcXG59XFxyXFxuLmVtb2ppLW1hcnQgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyLmRpcmVjdGlvbi1ob3Jpem9udGFsOm5vdCgucGFnZS1tb2RlKSB7XFxyXFxuICBvdmVyZmxvdy14OiBhdXRvO1xcclxcbn1cXHJcXG4uZW1vamktbWFydCAudnVlLXJlY3ljbGUtc2Nyb2xsZXIuZGlyZWN0aW9uLWhvcml6b250YWwge1xcclxcbiAgZGlzcGxheTogZmxleDtcXHJcXG59XFxyXFxuLmVtb2ppLW1hcnQgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyX19zbG90IHtcXHJcXG4gIGZsZXg6IGF1dG8gMCAwO1xcclxcbn1cXHJcXG4uZW1vamktbWFydCAudnVlLXJlY3ljbGUtc2Nyb2xsZXJfX2l0ZW0td3JhcHBlciB7XFxyXFxuICBmbGV4OiAxO1xcclxcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXHJcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxyXFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxyXFxufVxcclxcbi5lbW9qaS1tYXJ0IC52dWUtcmVjeWNsZS1zY3JvbGxlci5yZWFkeSAudnVlLXJlY3ljbGUtc2Nyb2xsZXJfX2l0ZW0tdmlldyB7XFxyXFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxyXFxuICB0b3A6IDA7XFxyXFxuICBsZWZ0OiAwO1xcclxcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcXHJcXG59XFxyXFxuLmVtb2ppLW1hcnRcXHJcXG4gIC52dWUtcmVjeWNsZS1zY3JvbGxlci5kaXJlY3Rpb24tdmVydGljYWxcXHJcXG4gIC52dWUtcmVjeWNsZS1zY3JvbGxlcl9faXRlbS13cmFwcGVyIHtcXHJcXG4gIHdpZHRoOiAxMDAlO1xcclxcbn1cXHJcXG4uZW1vamktbWFydFxcclxcbiAgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyLmRpcmVjdGlvbi1ob3Jpem9udGFsXFxyXFxuICAudnVlLXJlY3ljbGUtc2Nyb2xsZXJfX2l0ZW0td3JhcHBlciB7XFxyXFxuICBoZWlnaHQ6IDEwMCU7XFxyXFxufVxcclxcbi5lbW9qaS1tYXJ0XFxyXFxuICAudnVlLXJlY3ljbGUtc2Nyb2xsZXIucmVhZHkuZGlyZWN0aW9uLXZlcnRpY2FsXFxyXFxuICAudnVlLXJlY3ljbGUtc2Nyb2xsZXJfX2l0ZW0tdmlldyB7XFxyXFxuICB3aWR0aDogMTAwJTtcXHJcXG59XFxyXFxuLmVtb2ppLW1hcnRcXHJcXG4gIC52dWUtcmVjeWNsZS1zY3JvbGxlci5yZWFkeS5kaXJlY3Rpb24taG9yaXpvbnRhbFxcclxcbiAgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyX19pdGVtLXZpZXcge1xcclxcbiAgaGVpZ2h0OiAxMDAlO1xcclxcbn1cXHJcXG4uZW1vamktbWFydCAucmVzaXplLW9ic2VydmVyW2RhdGEtdi1iMzI5ZWU0Y10ge1xcclxcbiAgcG9zaXRpb246IGFic29sdXRlO1xcclxcbiAgdG9wOiAwO1xcclxcbiAgbGVmdDogMDtcXHJcXG4gIHotaW5kZXg6IC0xO1xcclxcbiAgd2lkdGg6IDEwMCU7XFxyXFxuICBoZWlnaHQ6IDEwMCU7XFxyXFxuICBib3JkZXI6IG5vbmU7XFxyXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXHJcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcclxcbiAgZGlzcGxheTogYmxvY2s7XFxyXFxuICBvdmVyZmxvdzogaGlkZGVuO1xcclxcbiAgb3BhY2l0eTogMDtcXHJcXG59XFxyXFxuLmVtb2ppLW1hcnQgLnJlc2l6ZS1vYnNlcnZlcltkYXRhLXYtYjMyOWVlNGNdIG9iamVjdCB7XFxyXFxuICBkaXNwbGF5OiBibG9jaztcXHJcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXHJcXG4gIHRvcDogMDtcXHJcXG4gIGxlZnQ6IDA7XFxyXFxuICBoZWlnaHQ6IDEwMCU7XFxyXFxuICB3aWR0aDogMTAwJTtcXHJcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxyXFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXHJcXG4gIHotaW5kZXg6IC0xO1xcclxcbn1cXHJcXG4uZW1vamktbWFydC1zZWFyY2ggLmhpZGRlbiB7XFxyXFxuICBkaXNwbGF5OiBub25lO1xcclxcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xcclxcbn1cXHJcXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2dldFVybC5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8wX19fID0gbmV3IFVSTChcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQWdBQUFBSUNBWUFBQURFRDc2TEFBQUFIMGxFUVZRb1UyTmtZR0F3WmtBRlo1RzVqUFJSZ09ZRVZEZUIzRUJqQlFCT1p3VFZ1Z0lHeUFBQUFBQkpSVTVFcmtKZ2dnPT1cIiwgaW1wb3J0Lm1ldGEudXJsKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMV9fXyA9IG5ldyBVUkwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lqOCtDanh6ZG1jZ2QybGtkR2c5SWpFeUlpQm9aV2xuYUhROUlqUWlJSFpwWlhkUWIzSjBQU0l3SURBZ01USWdOQ0lnZG1WeWMybHZiajBpTVM0eElpQjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaVBnb2dJRHhsYkd4cGNITmxJR040UFNJeUlpQmplVDBpTWlJZ2NuZzlJaklpSUhKNVBTSXlJajRLSUNBZ0lEeGhibWx0WVhSbElHRjBkSEpwWW5WMFpVNWhiV1U5SW1ONElpQm1jbTl0UFNJeUlpQjBiejBpTFRFd0lpQmtkWEk5SWpBdU5uTWlJSEpsY0dWaGRFTnZkVzUwUFNKcGJtUmxabWx1YVhSbElpQXZQZ29nSUR3dlpXeHNhWEJ6WlQ0S0lDQThaV3hzYVhCelpTQmplRDBpTVRRaUlHTjVQU0l5SWlCeWVEMGlNaUlnY25rOUlqSWlJR05zWVhOelBTSnNiMkZrWlhJaVBnb2dJQ0FnUEdGdWFXMWhkR1VnWVhSMGNtbGlkWFJsVG1GdFpUMGlZM2dpSUdaeWIyMDlJakUwSWlCMGJ6MGlNaUlnWkhWeVBTSXdMalp6SWlCeVpYQmxZWFJEYjNWdWREMGlhVzVrWldacGJtbDBaU0lnTHo0S0lDQThMMlZzYkdsd2MyVStDand2YzNablBnbz1cIiwgaW1wb3J0Lm1ldGEudXJsKTtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8wX19fID0gX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMF9fXyk7XG52YXIgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMV9fXyA9IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzFfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiLypcXG4gKiBRdWFzYXIgRnJhbWV3b3JrIHYwLjE3LjIwXFxuICogKGMpIDIwMTYtcHJlc2VudCBSYXp2YW4gU3RvZW5lc2N1XFxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxcbiAqL1xcbiosXFxuKjpiZWZvcmUsXFxuKjphZnRlciB7XFxuICAtd2Via2l0LWJveC1zaXppbmc6IGluaGVyaXQ7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XFxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgLW1vei10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuaHRtbCxcXG5ib2R5LFxcbiNxLWFwcCB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGRpcmVjdGlvbjogbHRyO1xcbn1cXG5odG1sLFxcbmJvZHkge1xcbiAgbWFyZ2luOiAwO1xcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbn1cXG5pbnB1dFt0eXBlPSd0ZXh0J10sXFxuaW5wdXRbdHlwZT0nZW1haWwnXSxcXG5pbnB1dFt0eXBlPSdzZWFyY2gnXSxcXG5pbnB1dFt0eXBlPSdwYXNzd29yZCddIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZSAvKiBtb2JpbGUgZmlyZWZveCB0b28hICovO1xcbn1cXG5hcnRpY2xlLFxcbmFzaWRlLFxcbmRldGFpbHMsXFxuZmlnY2FwdGlvbixcXG5maWd1cmUsXFxuZm9vdGVyLFxcbmhlYWRlcixcXG5tYWluLFxcbm1lbnUsXFxubmF2LFxcbnNlY3Rpb24sXFxuc3VtbWFyeSB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuYXVkaW86bm90KFtjb250cm9sc10pIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxuICBoZWlnaHQ6IDA7XFxufVxcbmFiYnJbdGl0bGVdIHtcXG4gIGJvcmRlci1ib3R0b206IG5vbmU7XFxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XFxufVxcbmRmbiB7XFxuICBmb250LXN0eWxlOiBpdGFsaWM7XFxufVxcbmltZyB7XFxuICBib3JkZXItc3R5bGU6IG5vbmU7XFxufVxcbnN2Zzpub3QoOnJvb3QpIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbmNvZGUsXFxua2JkLFxcbnByZSxcXG5zYW1wIHtcXG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcXG4gIGZvbnQtc2l6ZTogMWVtO1xcbn1cXG5ociB7XFxuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbiAgICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG4gIGhlaWdodDogMDtcXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xcbn1cXG5idXR0b24sXFxuaW5wdXQsXFxuc2VsZWN0LFxcbnRleHRhcmVhIHtcXG4gIGZvbnQ6IGluaGVyaXQ7XFxuICBtYXJnaW46IDA7XFxufVxcbm9wdGdyb3VwIHtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xcbn1cXG5idXR0b24sXFxuaW5wdXQsXFxuc2VsZWN0IHtcXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xcbn1cXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xcbiAgYm9yZGVyOiAwO1xcbiAgcGFkZGluZzogMDtcXG59XFxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxcbmlucHV0Oi1tb3otZm9jdXNyaW5nIHtcXG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcXG59XFxudGV4dGFyZWEge1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxufVxcbmlucHV0W3R5cGU9J3NlYXJjaCddIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xcbn1cXG5pbnB1dFt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcXG5pbnB1dFt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XFxufVxcbi5xLWljb24ge1xcbiAgbGluZS1oZWlnaHQ6IDE7XFxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgd29yZC13cmFwOiBub3JtYWw7XFxuICBkaXJlY3Rpb246IGx0cjtcXG59XFxuLnEtaWNvbixcXG4ubWF0ZXJpYWwtaWNvbnMge1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIGN1cnNvcjogaW5oZXJpdDtcXG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcXG4gIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG4ucS1hY3Rpb25zaGVldC10aXRsZSB7XFxuICBtaW4taGVpZ2h0OiA1NnB4O1xcbiAgcGFkZGluZzogMCAxNnB4O1xcbiAgY29sb3I6ICM3Nzc7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1mYWRlZCk7XFxufVxcbi5xLWFjdGlvbnNoZWV0LWJvZHkge1xcbiAgbWF4LWhlaWdodDogNTAwcHg7XFxufVxcbi5xLWFjdGlvbnNoZWV0LWdyaWQge1xcbiAgcGFkZGluZzogOHB4IDE2cHg7XFxufVxcbi5xLWFjdGlvbnNoZWV0LWdyaWQgLnEtaXRlbS1zZXBhcmF0b3ItY29tcG9uZW50IHtcXG4gIG1hcmdpbjogMjRweCAwO1xcbn1cXG4ucS1hY3Rpb25zaGVldC1ncmlkLWl0ZW0ge1xcbiAgcGFkZGluZzogOHB4IDE2cHg7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcztcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcztcXG59XFxuLnEtYWN0aW9uc2hlZXQtZ3JpZC1pdGVtOmhvdmVyLFxcbi5xLWFjdGlvbnNoZWV0LWdyaWQtaXRlbTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kOiAjZDBkMGQwO1xcbiAgb3V0bGluZTogMDtcXG59XFxuLnEtYWN0aW9uc2hlZXQtZ3JpZC1pdGVtIGksXFxuLnEtYWN0aW9uc2hlZXQtZ3JpZC1pdGVtIGltZyB7XFxuICBmb250LXNpemU6IDQ4cHg7XFxuICBtYXJnaW4tYm90dG9tOiA4cHg7XFxufVxcbi5xLWFjdGlvbnNoZWV0LWdyaWQtaXRlbSAuYXZhdGFyIHtcXG4gIHdpZHRoOiA0OHB4O1xcbiAgaGVpZ2h0OiA0OHB4O1xcbn1cXG4ucS1hY3Rpb25zaGVldC1ncmlkLWl0ZW0gc3BhbiB7XFxuICBjb2xvcjogIzc3NztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWZhZGVkKTtcXG59XFxuLnEtbG9hZGluZy1iYXIge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgei1pbmRleDogOTk5ODtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjVzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjVzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksIG9wYWNpdHkgMC41cztcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpLCBvcGFjaXR5IDAuNXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XFxufVxcbi5xLWxvYWRpbmctYmFyLnRvcCB7XFxuICBsZWZ0OiAwIC8qIHJ0bDppZ25vcmUgKi87XFxuICByaWdodDogMCAvKiBydGw6aWdub3JlICovO1xcbiAgdG9wOiAwO1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi5xLWxvYWRpbmctYmFyLmJvdHRvbSB7XFxuICBsZWZ0OiAwIC8qIHJ0bDppZ25vcmUgKi87XFxuICByaWdodDogMCAvKiBydGw6aWdub3JlICovO1xcbiAgYm90dG9tOiAwO1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi5xLWxvYWRpbmctYmFyLnJpZ2h0IHtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG4ucS1sb2FkaW5nLWJhci5sZWZ0IHtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5xLWFsZXJ0IHtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuLnEtYWxlcnQgLmF2YXRhciB7XFxuICB3aWR0aDogMzJweDtcXG4gIGhlaWdodDogMzJweDtcXG59XFxuLnEtYWxlcnQtc2lkZSxcXG4ucS1hbGVydC1jb250ZW50IHtcXG4gIHBhZGRpbmc6IDEycHg7XFxuICBmb250LXNpemU6IDE2cHg7XFxuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xcbn1cXG4ucS1hbGVydC1zaWRlIHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xKTtcXG59XFxuLnEtYWxlcnQtYWN0aW9ucyB7XFxuICBwYWRkaW5nOiAxMnB4IDEycHggMTJweCAwO1xcbn1cXG4ucS1hbGVydC1kZXRhaWwge1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbn1cXG4ucS1icmVhZGNydW1icyAucS1pY29uLFxcbi5xLWJyZWFkY3J1bWJzIC5xLWJyZWFkY3J1bWJzLXNlcGFyYXRvciB7XFxuICBmb250LXNpemU6IDE1MCU7XFxufVxcbi5xLWJyZWFkY3J1bWJzLWxhc3QgYSB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuW2Rpcj1ydGxdIC5xLWJyZWFkY3J1bWJzLXNlcGFyYXRvciAucS1pY29uIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoLTEpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1idG4ge1xcbiAgb3V0bGluZTogMDtcXG4gIGJvcmRlcjogMDtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBwYWRkaW5nOiA0cHggMTZweDtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIG1pbi1oZWlnaHQ6IDIuNTcyZW07XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xcbn1cXG5idXR0b24ucS1idG4ge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XFxufVxcbmEucS1idG4ge1xcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxufVxcbi5xLWJ0biAucS1pY29uLFxcbi5xLWJ0biAucS1zcGlubmVyIHtcXG4gIGZvbnQtc2l6ZTogMS40ZW07XFxufVxcbi5xLWJ0biAucS1idG4taW5uZXIge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNnM7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNnM7XFxufVxcbi5xLWJ0biAucS1idG4taW5uZXItLWhpZGRlbiB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1idG4gLnEtYnRuLWlubmVyOmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG59XFxuLnEtYnRuLmRpc2FibGVkIHtcXG4gIG9wYWNpdHk6IDAuNyAhaW1wb3J0YW50O1xcbn1cXG4ucS1idG46bm90KC5kaXNhYmxlZCk6bm90KC5xLWJ0bi1mbGF0KTpub3QoLnEtYnRuLW91dGxpbmUpOm5vdCgucS1idG4tcHVzaCk6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG4gIHotaW5kZXg6IC0xO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxufVxcbi5xLWJ0bjpub3QoLmRpc2FibGVkKTpub3QoLnEtYnRuLWZsYXQpOm5vdCgucS1idG4tb3V0bGluZSk6bm90KC5xLWJ0bi1wdXNoKTphY3RpdmU6YmVmb3JlLFxcbi5xLWJ0bjpub3QoLmRpc2FibGVkKTpub3QoLnEtYnRuLWZsYXQpOm5vdCgucS1idG4tb3V0bGluZSk6bm90KC5xLWJ0bi1wdXNoKS5hY3RpdmU6YmVmb3JlIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA1cHggNXB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIDhweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxNHB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDVweCA1cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgOHB4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDE0cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLWJ0bi1wcm9ncmVzcyB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpO1xcbn1cXG4ucS1idG4tcHJvZ3Jlc3MucS1idG4tZGFyay1wcm9ncmVzcyB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMik7XFxufVxcbi5xLWJ0bi1uby11cHBlcmNhc2Uge1xcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XFxufVxcbi5xLWJ0bi1yZWN0YW5nbGUge1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbn1cXG4ucS1idG4tb3V0bGluZSB7XFxuICBib3JkZXI6IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcbn1cXG4ucS1idG4tcHVzaCB7XFxuICBib3JkZXItcmFkaXVzOiA3cHg7XFxuICBib3JkZXItYm90dG9tOiAzcHggc29saWQgcmdiYSgwLDAsMCwwLjE1KTtcXG59XFxuLnEtYnRuLXB1c2g6YWN0aXZlOm5vdCguZGlzYWJsZWQpLFxcbi5xLWJ0bi1wdXNoLmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgzcHgpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoM3B4KTtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4ucS1idG4tcHVzaCAucS1mb2N1cy1oZWxwZXIsXFxuLnEtYnRuLXB1c2ggLnEtcmlwcGxlLWNvbnRhaW5lciB7XFxuICBoZWlnaHQ6IGF1dG87XFxuICBib3R0b206IC0zcHg7XFxufVxcbi5xLWJ0bi1yb3VuZGVkIHtcXG4gIGJvcmRlci1yYWRpdXM6IDI4cHg7XFxufVxcbi5xLWJ0bi1yb3VuZCB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBwYWRkaW5nOiAwO1xcbiAgbWluLWhlaWdodDogMDtcXG4gIGhlaWdodDogM2VtO1xcbiAgd2lkdGg6IDNlbTtcXG59XFxuLnEtYnRuLWZsYXQsXFxuLnEtYnRuLW91dGxpbmUge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbn1cXG4ucS1idG4tZGVuc2Uge1xcbiAgcGFkZGluZzogMC4yODVlbTtcXG4gIG1pbi1oZWlnaHQ6IDJlbTtcXG59XFxuLnEtYnRuLWRlbnNlLnEtYnRuLXJvdW5kIHtcXG4gIHBhZGRpbmc6IDA7XFxuICBoZWlnaHQ6IDIuNGVtO1xcbiAgd2lkdGg6IDIuNGVtO1xcbn1cXG4ucS1idG4tZGVuc2UgLm9uLWxlZnQge1xcbiAgbWFyZ2luLXJpZ2h0OiA2cHg7XFxufVxcbi5xLWJ0bi1kZW5zZSAub24tcmlnaHQge1xcbiAgbWFyZ2luLWxlZnQ6IDZweDtcXG59XFxuLnEtYnRuLWZhYiAucS1pY29uLFxcbi5xLWJ0bi1mYWItbWluaSAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG59XFxuLnEtYnRuLWZhYiB7XFxuICBoZWlnaHQ6IDU2cHg7XFxuICB3aWR0aDogNTZweDtcXG59XFxuLnEtYnRuLWZhYi1taW5pIHtcXG4gIGhlaWdodDogNDBweDtcXG4gIHdpZHRoOiA0MHB4O1xcbn1cXG4ucS10cmFuc2l0aW9uLS1mYWRlLWxlYXZlLWFjdGl2ZSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxufVxcbi5xLXRyYW5zaXRpb24tLWZhZGUtZW50ZXItYWN0aXZlLFxcbi5xLXRyYW5zaXRpb24tLWZhZGUtbGVhdmUtYWN0aXZlIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzIGVhc2Utb3V0O1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzIGVhc2Utb3V0O1xcbn1cXG4ucS10cmFuc2l0aW9uLS1mYWRlLWVudGVyLFxcbi5xLXRyYW5zaXRpb24tLWZhZGUtbGVhdmUsXFxuLnEtdHJhbnNpdGlvbi0tZmFkZS1sZWF2ZS10byB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1idG4tZHJvcGRvd24tc3BsaXQgLnEtYnRuLWRyb3Bkb3duLWFycm93IHtcXG4gIHBhZGRpbmc6IDAgNHB4O1xcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMyk7XFxufVxcbi5xLWJ0bi1ncm91cCB7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcbi5xLWJ0bi1ncm91cCA+IC5xLWJ0bi1pdGVtIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuLnEtYnRuLWdyb3VwID4gLnEtYnRuLWdyb3VwID4gLnEtYnRuOmZpcnN0LWNoaWxkIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGluaGVyaXQ7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xcbn1cXG4ucS1idG4tZ3JvdXAgPiAucS1idG4tZ3JvdXAgPiAucS1idG46bGFzdC1jaGlsZCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xcbn1cXG4ucS1idG4tZ3JvdXAgPiAucS1idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCkgPiAucS1idG46Zmlyc3QtY2hpbGQge1xcbiAgYm9yZGVyLWxlZnQ6IDA7XFxufVxcbi5xLWJ0bi1ncm91cCA+IC5xLWJ0bi1ncm91cDpub3QoOmxhc3QtY2hpbGQpID4gLnEtYnRuOmxhc3QtY2hpbGQge1xcbiAgYm9yZGVyLXJpZ2h0OiAwO1xcbn1cXG4ucS1idG4tZ3JvdXAgPiAucS1idG4taXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XFxufVxcbi5xLWJ0bi1ncm91cCA+IC5xLWJ0bi1pdGVtICsgLnEtYnRuLWl0ZW0ge1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XFxufVxcbi5xLWJ0bi1ncm91cC1wdXNoIHtcXG4gIGJvcmRlci1yYWRpdXM6IDdweDtcXG59XFxuLnEtYnRuLWdyb3VwLXB1c2ggPiAucS1idG4tcHVzaCAucS1idG4taW5uZXIge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxufVxcbi5xLWJ0bi1ncm91cC1wdXNoID4gLnEtYnRuLXB1c2g6YWN0aXZlOm5vdCguZGlzYWJsZWQpLFxcbi5xLWJ0bi1ncm91cC1wdXNoID4gLnEtYnRuLXB1c2guYWN0aXZlOm5vdCguZGlzYWJsZWQpIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwwLDAsMC4xNSk7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbn1cXG4ucS1idG4tZ3JvdXAtcHVzaCA+IC5xLWJ0bi1wdXNoOmFjdGl2ZTpub3QoLmRpc2FibGVkKSAucS1idG4taW5uZXIsXFxuLnEtYnRuLWdyb3VwLXB1c2ggPiAucS1idG4tcHVzaC5hY3RpdmU6bm90KC5kaXNhYmxlZCkgLnEtYnRuLWlubmVyIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDNweCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzcHgpO1xcbn1cXG4ucS1idG4tZ3JvdXAtcm91bmRlZCB7XFxuICBib3JkZXItcmFkaXVzOiAyOHB4O1xcbn1cXG4ucS1idG4tZ3JvdXAtZmxhdCxcXG4ucS1idG4tZ3JvdXAtb3V0bGluZSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcbi5xLWJ0bi1ncm91cC1vdXRsaW5lID4gLnEtYnRuLWl0ZW0gKyAucS1idG4taXRlbSB7XFxuICBib3JkZXItbGVmdDogMDtcXG59XFxuLnEtYnRuLWdyb3VwLW91dGxpbmUgPiAucS1idG4taXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcXG4gIGJvcmRlci1yaWdodDogMDtcXG59XFxuLnEtY2FyZCB7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XFxufVxcbi5xLWNhcmQgPiBkaXY6Zmlyc3QtY2hpbGQge1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogaW5oZXJpdDtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xcbn1cXG4ucS1jYXJkID4gZGl2Omxhc3QtY2hpbGQge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogaW5oZXJpdDtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xcbn1cXG4ucS1jYXJkID4gLnEtbGlzdCB7XFxuICBib3JkZXI6IDA7XFxufVxcbi5xLWNhcmQtc2VwYXJhdG9yIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xKTtcXG4gIGhlaWdodDogMXB4O1xcbn1cXG4ucS1jYXJkLXNlcGFyYXRvci5pbnNldCB7XFxuICBtYXJnaW46IDAgMTZweDtcXG59XFxuLnEtY2FyZC1jb250YWluZXIge1xcbiAgcGFkZGluZzogMTZweDtcXG59XFxuLnEtY2FyZC10aXRsZSB7XFxuICBmb250LXNpemU6IDE4cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG4gIGxpbmUtaGVpZ2h0OiAycmVtO1xcbn1cXG4ucS1jYXJkLXRpdGxlOmVtcHR5IHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLWNhcmQtc3VidGl0bGUsXFxuLnEtY2FyZC10aXRsZS1leHRyYSB7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjQpO1xcbn1cXG4ucS1jYXJkLXN1YnRpdGxlIC5xLWljb24sXFxuLnEtY2FyZC10aXRsZS1leHRyYSAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG59XFxuLnEtY2FyZC1tYWluIHtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG59XFxuLnEtY2FyZC1wcmltYXJ5ICsgLnEtY2FyZC1tYWluIHtcXG4gIHBhZGRpbmctdG9wOiAwO1xcbn1cXG4ucS1jYXJkLWFjdGlvbnMge1xcbiAgcGFkZGluZzogOHB4O1xcbn1cXG4ucS1jYXJkLWFjdGlvbnMgLnEtYnRuIHtcXG4gIHBhZGRpbmc6IDAgOHB4O1xcbn1cXG4ucS1jYXJkLWFjdGlvbnMtaG9yaXogLnEtYnRuOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxufVxcbi5xLWNhcmQtYWN0aW9ucy12ZXJ0IC5xLWJ0biArIC5xLWJ0biB7XFxuICBtYXJnaW4tdG9wOiA0cHg7XFxufVxcbi5xLWNhcmQtbWVkaWEge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnEtY2FyZC1tZWRpYSA+IGltZyB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgYm9yZGVyOiAwO1xcbn1cXG4ucS1jYXJkLW1lZGlhLW92ZXJsYXkge1xcbiAgY29sb3I6ICNmZmY7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNDcpO1xcbn1cXG4ucS1jYXJkLW1lZGlhLW92ZXJsYXkgLnEtY2FyZC1zdWJ0aXRsZSB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtY2FyZC1kYXJrIC5xLWNhcmQtc2VwYXJhdG9yIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcXG59XFxuLnEtY2FyZC1kYXJrIC5xLWNhcmQtc3VidGl0bGUsXFxuLnEtY2FyZC1kYXJrIC5xLWNhcmQtdGl0bGUtZXh0cmEge1xcbiAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC42KTtcXG59XFxuLnEtY2Fyb3VzZWwge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLnEtY2Fyb3VzZWwtaW5uZXIge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG4ucS1jYXJvdXNlbC1zbGlkZSB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgIC1tcy1mbGV4OiAwIDAgMTAwJTtcXG4gICAgICAgICAgZmxleDogMCAwIDEwMCU7XFxuICBtYXJnaW46IDA7XFxuICBwYWRkaW5nOiAxOHB4O1xcbn1cXG4ucS1jYXJvdXNlbC10cmFjayB7XFxuICBwYWRkaW5nOiAwO1xcbiAgbWFyZ2luOiAwO1xcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLW1zLWZsZXgtd3JhcDogbm93cmFwO1xcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG4ucS1jYXJvdXNlbC10cmFjay5pbmZpbml0ZS1sZWZ0ID4gZGl2Om50aC1sYXN0LWNoaWxkKDIpIHtcXG4gIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IC05OTk7XFxuICAgICAgLW1zLWZsZXgtb3JkZXI6IC0xMDAwO1xcbiAgICAgICAgICBvcmRlcjogLTEwMDA7XFxuICBtYXJnaW4tbGVmdDogLTEwMCU7XFxufVxcbi5xLWNhcm91c2VsLXRyYWNrLmluZmluaXRlLXJpZ2h0ID4gZGl2Om50aC1jaGlsZCgyKSB7XFxuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAxMDAxO1xcbiAgICAgIC1tcy1mbGV4LW9yZGVyOiAxMDAwO1xcbiAgICAgICAgICBvcmRlcjogMTAwMDtcXG59XFxuLnEtY2Fyb3VzZWwtbGVmdC1hcnJvdyxcXG4ucS1jYXJvdXNlbC1yaWdodC1hcnJvdyB7XFxuICB0b3A6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMyk7XFxufVxcbi5xLWNhcm91c2VsLWxlZnQtYXJyb3cge1xcbiAgbGVmdDogNXB4O1xcbn1cXG4ucS1jYXJvdXNlbC1yaWdodC1hcnJvdyB7XFxuICByaWdodDogNXB4O1xcbn1cXG4ucS1jYXJvdXNlbC1xdWljay1uYXYge1xcbiAgcGFkZGluZzogMnB4IDA7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMyk7XFxufVxcbi5xLWNhcm91c2VsLXF1aWNrLW5hdiAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMThweCAhaW1wb3J0YW50O1xcbn1cXG4ucS1jYXJvdXNlbC1xdWljay1uYXYgLnEtYnRuLmluYWN0aXZlIHtcXG4gIG9wYWNpdHk6IDAuNTtcXG59XFxuLnEtY2Fyb3VzZWwtcXVpY2stbmF2IC5xLWJ0bi5pbmFjdGl2ZSAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xcbn1cXG4ucS1jYXJvdXNlbC10aHVtYm5haWxzIHtcXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XFxuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuM3M7XFxuICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjNzO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcywgLXdlYmtpdC10cmFuc2Zvcm0gMC4zcztcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwNSUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTA1JSk7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogYXV0bztcXG4gIG1heC1oZWlnaHQ6IDYwJTtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbiAgYmFja2dyb3VuZDogIzAwMDtcXG4gIHBhZGRpbmc6IDAuNXJlbTtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtM3B4IDZweCByZ2JhKDAsMCwwLDAuMTYpLCAwIC01cHggNnB4IHJnYmEoMCwwLDAsMC4yMyk7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTNweCA2cHggcmdiYSgwLDAsMCwwLjE2KSwgMCAtNXB4IDZweCByZ2JhKDAsMCwwLDAuMjMpO1xcbn1cXG4ucS1jYXJvdXNlbC10aHVtYm5haWxzLmFjdGl2ZSB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbn1cXG4ucS1jYXJvdXNlbC10aHVtYm5haWxzIGltZyB7XFxuICBoZWlnaHQ6IGF1dG87XFxuICB3aWR0aDogMTAwJTtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgb3BhY2l0eTogMC41O1xcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7XFxufVxcbi5xLWNhcm91c2VsLXRodW1ibmFpbHMgPiBkaXYgPiBkaXYge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAtbXMtZmxleDogMCAwIDEwOHB4O1xcbiAgICAgICAgICBmbGV4OiAwIDAgMTA4cHg7XFxufVxcbi5xLWNhcm91c2VsLXRodW1ibmFpbHMgPiBkaXYgPiBkaXYuYWN0aXZlIGltZyxcXG4ucS1jYXJvdXNlbC10aHVtYm5haWxzID4gZGl2ID4gZGl2IGltZy5hY3RpdmUge1xcbiAgb3BhY2l0eTogMTtcXG4gIGJvcmRlci1jb2xvcjogI2ZmZjtcXG59XFxuLnEtY2Fyb3VzZWwtdGh1bWJuYWlsLWJ0biB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMyk7XFxuICB0b3A6IDVweDtcXG4gIHJpZ2h0OiA1cHg7XFxufVxcbmJvZHkuZGVza3RvcCAucS1jYXJvdXNlbC10aHVtYm5haWxzIGltZzpob3ZlciB7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4ucS1tZXNzYWdlLW5hbWUsXFxuLnEtbWVzc2FnZS1zdGFtcCxcXG4ucS1tZXNzYWdlLWxhYmVsIHtcXG4gIGZvbnQtc2l6ZTogc21hbGw7XFxufVxcbi5xLW1lc3NhZ2UtbGFiZWwge1xcbiAgbWFyZ2luOiAyNHB4IDA7XFxufVxcbi5xLW1lc3NhZ2Utc3RhbXAge1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBtYXJnaW4tdG9wOiA0cHg7XFxuICBvcGFjaXR5OiAwLjY7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1tZXNzYWdlLWF2YXRhciB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICB3aWR0aDogNDhweDtcXG4gIGhlaWdodDogNDhweDtcXG59XFxuLnEtbWVzc2FnZSB7XFxuICBtYXJnaW4tYm90dG9tOiA4cHg7XFxufVxcbi5xLW1lc3NhZ2U6Zmlyc3QtY2hpbGQgLnEtbWVzc2FnZS1sYWJlbCB7XFxuICBtYXJnaW4tdG9wOiAwO1xcbn1cXG4ucS1tZXNzYWdlLXJlY2VpdmVkIC5xLW1lc3NhZ2UtYXZhdGFyIHtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbn1cXG4ucS1tZXNzYWdlLXJlY2VpdmVkIC5xLW1lc3NhZ2UtdGV4dCB7XFxuICBjb2xvcjogIzgxYzc4NDtcXG4gIGJvcmRlci1yYWRpdXM6IDNweCAzcHggM3B4IDA7XFxufVxcbi5xLW1lc3NhZ2UtcmVjZWl2ZWQgLnEtbWVzc2FnZS10ZXh0Omxhc3QtY2hpbGQ6YmVmb3JlIHtcXG4gIHJpZ2h0OiAxMDAlO1xcbiAgYm9yZGVyLXJpZ2h0OiAwIHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLWxlZnQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1ib3R0b206IDhweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxufVxcbi5xLW1lc3NhZ2UtcmVjZWl2ZWQgLnEtbWVzc2FnZS10ZXh0LWNvbnRlbnQge1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLW1lc3NhZ2Utc2VudCAucS1tZXNzYWdlLW5hbWUge1xcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XFxufVxcbi5xLW1lc3NhZ2Utc2VudCAucS1tZXNzYWdlLWF2YXRhciB7XFxuICBtYXJnaW4tbGVmdDogOHB4O1xcbn1cXG4ucS1tZXNzYWdlLXNlbnQgLnEtbWVzc2FnZS1jb250YWluZXIge1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG59XFxuLnEtbWVzc2FnZS1zZW50IC5xLW1lc3NhZ2UtdGV4dCB7XFxuICBjb2xvcjogI2UwZTBlMDtcXG4gIGJvcmRlci1yYWRpdXM6IDNweCAzcHggMCAzcHg7XFxufVxcbi5xLW1lc3NhZ2Utc2VudCAucS1tZXNzYWdlLXRleHQ6bGFzdC1jaGlsZDpiZWZvcmUge1xcbiAgbGVmdDogMTAwJTtcXG4gIGJvcmRlci1sZWZ0OiAwIHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLXJpZ2h0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItYm90dG9tOiA4cHggc29saWQgY3VycmVudENvbG9yO1xcbn1cXG4ucS1tZXNzYWdlLXNlbnQgLnEtbWVzc2FnZS10ZXh0LWNvbnRlbnQge1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLW1lc3NhZ2UtdGV4dCB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxuICBwYWRkaW5nOiA4cHg7XFxuICBsaW5lLWhlaWdodDogMS4yO1xcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXG59XFxuLnEtbWVzc2FnZS10ZXh0ICsgLnEtbWVzc2FnZS10ZXh0IHtcXG4gIG1hcmdpbi10b3A6IDNweDtcXG59XFxuLnEtbWVzc2FnZS10ZXh0Omxhc3QtY2hpbGQge1xcbiAgbWluLWhlaWdodDogNDhweDtcXG59XFxuLnEtbWVzc2FnZS10ZXh0Omxhc3QtY2hpbGQgLnEtbWVzc2FnZS1zdGFtcCB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuLnEtbWVzc2FnZS10ZXh0Omxhc3QtY2hpbGQ6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgYm90dG9tOiAwO1xcbiAgd2lkdGg6IDA7XFxuICBoZWlnaHQ6IDA7XFxufVxcbi5xLWNoZWNrYm94LWljb24ge1xcbiAgaGVpZ2h0OiAyMXB4O1xcbiAgd2lkdGg6IDIxcHg7XFxuICBmb250LXNpemU6IDIxcHg7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1jaGlwIHtcXG4gIG1pbi1oZWlnaHQ6IDMycHg7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBwYWRkaW5nOiAwIDEycHg7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBib3JkZXI6ICNlMGUwZTA7XFxuICBib3JkZXItcmFkaXVzOiAycmVtO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gIGNvbG9yOiAjMDAwO1xcbiAgYmFja2dyb3VuZDogI2VlZTtcXG59XFxuLnEtY2hpcDpmb2N1cyAucS1jaGlwLWNsb3NlIHtcXG4gIG9wYWNpdHk6IDAuODtcXG59XFxuLnEtY2hpcCAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG4gIGxpbmUtaGVpZ2h0OiAxO1xcbn1cXG4ucS1jaGlwLW1haW4ge1xcbiAgbGluZS1oZWlnaHQ6IGluaXRpYWw7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICAgICAgZmxleDogMSAxIGF1dG87XFxufVxcbi5xLWNoaXAtc2lkZSB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBoZWlnaHQ6IDMycHg7XFxuICB3aWR0aDogMzJweDtcXG4gIG1pbi13aWR0aDogMzJweDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5xLWNoaXAtc2lkZSBpbWcge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5xLWNoaXAtbGVmdCB7XFxuICBtYXJnaW4tbGVmdDogLTEycHg7XFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcXG59XFxuLnEtY2hpcC1yaWdodCB7XFxuICBtYXJnaW4tbGVmdDogMnB4O1xcbiAgbWFyZ2luLXJpZ2h0OiAtMTJweDtcXG59XFxuLnEtY2hpcC1zcXVhcmUge1xcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbn1cXG4ucS1jaGlwLWZsb2F0aW5nIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogLTAuM2VtO1xcbiAgcmlnaHQ6IC0wLjNlbTtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgei1pbmRleDogMTtcXG59XFxuLnEtY2hpcC10YWcge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgcGFkZGluZy1sZWZ0OiAxLjdyZW07XFxufVxcbi5xLWNoaXAtdGFnOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAwLjVyZW07XFxuICBtYXJnaW4tdG9wOiAtMC4yNXJlbTtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICB3aWR0aDogMC41cmVtO1xcbiAgaGVpZ2h0OiAwLjVyZW07XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTFweCAxcHggMCByZ2JhKDAsMCwwLDAuMyk7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTFweCAxcHggMCByZ2JhKDAsMCwwLDAuMyk7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxufVxcbi5xLWNoaXAtcG9pbnRpbmcge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgei1pbmRleDogMDtcXG59XFxuLnEtY2hpcC1wb2ludGluZzpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxuICB6LWluZGV4OiAtMTtcXG4gIGJhY2tncm91bmQ6IGluaGVyaXQ7XFxuICB3aWR0aDogMTZweDtcXG4gIGhlaWdodDogMTZweDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuLnEtY2hpcC1wb2ludGluZy11cCB7XFxuICBtYXJnaW4tdG9wOiAwLjhyZW07XFxufVxcbi5xLWNoaXAtcG9pbnRpbmctdXA6YmVmb3JlIHtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTIyJSkgcm90YXRlKDQ1ZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTIyJSkgcm90YXRlKDQ1ZGVnKTtcXG59XFxuLnEtY2hpcC1wb2ludGluZy1kb3duIHtcXG4gIG1hcmdpbi1ib3R0b206IDAuOHJlbTtcXG59XFxuLnEtY2hpcC1wb2ludGluZy1kb3duOmJlZm9yZSB7XFxuICByaWdodDogYXV0bztcXG4gIHRvcDogMTAwJTtcXG4gIGxlZnQ6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTc4JSkgcm90YXRlKDQ1ZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTc4JSkgcm90YXRlKDQ1ZGVnKTtcXG59XFxuLnEtY2hpcC1wb2ludGluZy1yaWdodCB7XFxuICBtYXJnaW4tcmlnaHQ6IDAuOHJlbTtcXG59XFxuLnEtY2hpcC1wb2ludGluZy1yaWdodDpiZWZvcmUge1xcbiAgdG9wOiA1MCU7XFxuICByaWdodDogMnB4O1xcbiAgYm90dG9tOiBhdXRvO1xcbiAgbGVmdDogYXV0bztcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDMzJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzMlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XFxufVxcbi5xLWNoaXAtcG9pbnRpbmctbGVmdCB7XFxuICBtYXJnaW4tbGVmdDogMC44cmVtO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nLWxlZnQ6YmVmb3JlIHtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMnB4O1xcbiAgYm90dG9tOiBhdXRvO1xcbiAgcmlnaHQ6IGF1dG87XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzMlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzMlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XFxufVxcbi5xLWNoaXAtZGV0YWlsIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xKTtcXG4gIG9wYWNpdHk6IDAuODtcXG4gIHBhZGRpbmc6IDAgNXB4O1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XFxufVxcbi5xLWNoaXAtc21hbGwge1xcbiAgbWluLWhlaWdodDogMjZweDtcXG59XFxuLnEtY2hpcC1zbWFsbCAucS1jaGlwLW1haW4ge1xcbiAgcGFkZGluZzogNHB4IDFweDtcXG4gIGxpbmUtaGVpZ2h0OiBpbml0aWFsO1xcbn1cXG4ucS1jaGlwLXNtYWxsIC5xLWNoaXAtc2lkZSB7XFxuICBoZWlnaHQ6IDI2cHg7XFxuICB3aWR0aDogMjZweDtcXG4gIG1pbi13aWR0aDogMjZweDtcXG59XFxuLnEtY2hpcC1zbWFsbCAucS1jaGlwLWljb24ge1xcbiAgZm9udC1zaXplOiAxNnB4O1xcbn1cXG4ucS1jaGlwLWRlbnNlIHtcXG4gIG1pbi1oZWlnaHQ6IDFweDtcXG4gIHBhZGRpbmc6IDAgM3B4O1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbn1cXG4ucS1jaGlwLWRlbnNlLnEtY2hpcC10YWcge1xcbiAgcGFkZGluZy1sZWZ0OiAxLjNyZW07XFxufVxcbi5xLWNoaXAtZGVuc2UucS1jaGlwLXBvaW50aW5nOmJlZm9yZSB7XFxuICB3aWR0aDogOXB4O1xcbiAgaGVpZ2h0OiA5cHg7XFxufVxcbi5xLWNoaXAtZGVuc2UgLnEtY2hpcC1tYWluIHtcXG4gIHBhZGRpbmc6IDFweDtcXG59XFxuLnEtY2hpcC1kZW5zZSAucS1jaGlwLXNpZGUge1xcbiAgaGVpZ2h0OiAxOHB4O1xcbiAgd2lkdGg6IDE4cHg7XFxuICBtaW4td2lkdGg6IDE2cHg7XFxuICBmb250LXNpemU6IDE0cHg7XFxufVxcbi5xLWNoaXAtZGVuc2UgLnEtY2hpcC1sZWZ0IHtcXG4gIG1hcmdpbi1sZWZ0OiAtM3B4O1xcbiAgbWFyZ2luLXJpZ2h0OiAycHg7XFxufVxcbi5xLWNoaXAtZGVuc2UgLnEtY2hpcC1yaWdodCB7XFxuICBtYXJnaW4tbGVmdDogMnB4O1xcbiAgbWFyZ2luLXJpZ2h0OiAtMnB4O1xcbn1cXG4ucS1jaGlwLWRlbnNlIC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAxNnB4O1xcbn1cXG4ucS1pbnB1dC1jaGlwcyB7XFxuICBtYXJnaW4tdG9wOiAtMXB4O1xcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcXG59XFxuLnEtaW5wdXQtY2hpcHMgLnEtY2hpcCB7XFxuICBtYXJnaW46IDFweDtcXG59XFxuLnEtaW5wdXQtY2hpcHMgaW5wdXQucS1pbnB1dC10YXJnZXQge1xcbiAgbWluLXdpZHRoOiA3MHB4ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXN1Yi1pdGVtIHtcXG4gIHBhZGRpbmc6IDhweCAxNnB4O1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1zdWItaXRlbS5pbmRlbnQge1xcbiAgcGFkZGluZy1sZWZ0OiA0OHB4O1xcbiAgcGFkZGluZy1yaWdodDogMDtcXG59XFxuLnEtY29sbGFwc2libGUtc3ViLWl0ZW0gLnEtY2FyZCB7XFxuICBtYXJnaW4tYm90dG9tOiAwO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS5yb3V0ZXItbGluay1hY3RpdmUgPiAucS1pdGVtIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMTg5LDE4OSwxODksMC40KTtcXG59XFxuLnEtY29sbGFwc2libGUge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBwYWRkaW5nIDAuNXM7XFxuICB0cmFuc2l0aW9uOiBwYWRkaW5nIDAuNXM7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXBvcHVwLWNsb3NlZCB7XFxuICBwYWRkaW5nOiAwIDE1cHg7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXBvcHVwLWNsb3NlZCAucS1jb2xsYXBzaWJsZS1pbm5lciB7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1wb3B1cC1jbG9zZWQgKyAucS1jb2xsYXBzaWJsZS1wb3B1cC1jbG9zZWQgLnEtY29sbGFwc2libGUtaW5uZXIge1xcbiAgYm9yZGVyLXRvcDogMDtcXG59XFxuLnEtY29sbGFwc2libGUtcG9wdXAtb3BlbmVkIHtcXG4gIHBhZGRpbmc6IDE1cHggMDtcXG59XFxuLnEtY29sbGFwc2libGUtcG9wdXAtb3BlbmVkIC5xLWNvbGxhcHNpYmxlLWlubmVyIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1wb3B1cC1vcGVuZWQgKyAucS1jb2xsYXBzaWJsZS1wb3B1cC1vcGVuZWQsXFxuLnEtY29sbGFwc2libGUtcG9wdXAtb3BlbmVkOmZpcnN0LWNoaWxkIHtcXG4gIHBhZGRpbmctdG9wOiAwO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1wb3B1cC1vcGVuZWQ6bGFzdC1jaGlsZCB7XFxuICBwYWRkaW5nLWJvdHRvbTogMDtcXG59XFxuLnEtY29sbGFwc2libGUtY3Vyc29yLXBvaW50ZXIgPiAucS1jb2xsYXBzaWJsZS1pbm5lciA+IC5xLWl0ZW0ge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS10b2dnbGUtaWNvbiB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICB3aWR0aDogMWVtO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG4ucS1jb2xvciB7XFxuICBtYXgtd2lkdGg6IDEwMHZ3O1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG59XFxuLnEtY29sb3Itc2F0dXJhdGlvbiB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTIzcHg7XFxufVxcbi5xLWNvbG9yLXNhdHVyYXRpb24td2hpdGUge1xcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGZyb20oI2ZmZiksIHRvKHJnYmEoMjU1LDI1NSwyNTUsMCkpKTtcXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2ZmZiwgcmdiYSgyNTUsMjU1LDI1NSwwKSk7XFxufVxcbi5xLWNvbG9yLXNhdHVyYXRpb24tYmxhY2sge1xcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgYm90dG9tLCBsZWZ0IHRvcCwgZnJvbSgjMDAwKSwgdG8ocmdiYSgwLDAsMCwwKSkpO1xcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgIzAwMCwgcmdiYSgwLDAsMCwwKSk7XFxufVxcbi5xLWNvbG9yLXNhdHVyYXRpb24tY2lyY2xlIHtcXG4gIHdpZHRoOiAxMHB4O1xcbiAgaGVpZ2h0OiAxMHB4O1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCAxLjVweCAjZmZmLCBpbnNldCAwIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMyksIDAgMCAxcHggMnB4IHJnYmEoMCwwLDAsMC40KTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMS41cHggI2ZmZiwgaW5zZXQgMCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjMpLCAwIDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuNCk7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIC01cHgpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNXB4LCAtNXB4KTtcXG59XFxuLnEtY29sb3Itc3dhdGNoLFxcbi5xLWNvbG9yLWFscGhhIC5xLXNsaWRlci10cmFjayB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIgKyBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8wX19fICsgXCIpICFpbXBvcnRhbnQ7XFxufVxcbi5xLWNvbG9yLXN3YXRjaCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB3aWR0aDogMzJweDtcXG4gIGhlaWdodDogMzJweDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xcbn1cXG4ucS1jb2xvci1odWUgLnEtc2xpZGVyLXRyYWNrIHtcXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBmcm9tKCNmMDApLCBjb2xvci1zdG9wKDE3JSwgI2ZmMCksIGNvbG9yLXN0b3AoMzMlLCAjMGYwKSwgY29sb3Itc3RvcCg1MCUsICMwZmYpLCBjb2xvci1zdG9wKDY3JSwgIzAwZiksIGNvbG9yLXN0b3AoODMlLCAjZjBmKSwgdG8oI2YwMCkpO1xcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjZjAwIDAlLCAjZmYwIDE3JSwgIzBmMCAzMyUsICMwZmYgNTAlLCAjMDBmIDY3JSwgI2YwZiA4MyUsICNmMDAgMTAwJSk7XFxuICBvcGFjaXR5OiAxO1xcbiAgaGVpZ2h0OiA4cHg7XFxufVxcbi5xLWNvbG9yLWh1ZSAucS1zbGlkZXItdHJhY2suYWN0aXZlLXRyYWNrIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLWNvbG9yLWFscGhhIC5xLXNsaWRlci10cmFjayB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgb3BhY2l0eTogMTtcXG4gIGhlaWdodDogOHB4O1xcbn1cXG4ucS1jb2xvci1hbHBoYSAucS1zbGlkZXItdHJhY2s6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgZnJvbShyZ2JhKDI1NSwyNTUsMjU1LDApKSwgdG8oIzc1NzU3NSkpO1xcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDI1NSwyNTUsMjU1LDApLCAjNzU3NTc1KTtcXG59XFxuLnEtY29sb3ItYWxwaGEgLnEtc2xpZGVyLXRyYWNrLmFjdGl2ZS10cmFjayB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1jb2xvci1zbGlkZXJzIHtcXG4gIGhlaWdodDogNTZweDtcXG59XFxuLnEtY29sb3Itc2xpZGVycyAucS1zbGlkZXIge1xcbiAgaGVpZ2h0OiAyMHB4O1xcbn1cXG4ucS1jb2xvci1zbGlkZXJzIC5xLXNsaWRlci1oYW5kbGUge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA0cHggMCByZ2JhKDAsMCwwLDAuMzcpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA0cHggMCByZ2JhKDAsMCwwLDAuMzcpO1xcbn1cXG4ucS1jb2xvci1zbGlkZXJzIC5xLXNsaWRlci1yaW5nIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLWNvbG9yLWlucHV0cyB7XFxuICBmb250LXNpemU6IDExcHg7XFxuICBjb2xvcjogIzc1NzU3NTtcXG59XFxuLnEtY29sb3ItaW5wdXRzIGlucHV0IHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XFxuICBvdXRsaW5lOiAwO1xcbn1cXG4ucS1jb2xvci1wYWRkaW5nIHtcXG4gIHBhZGRpbmc6IDAgMnB4O1xcbn1cXG4ucS1jb2xvci1sYWJlbCB7XFxuICBwYWRkaW5nLXRvcDogNHB4O1xcbn1cXG4ucS1jb2xvci1kYXJrIHtcXG4gIGJhY2tncm91bmQ6ICMwMDA7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjNDI0MjQyO1xcbn1cXG4ucS1jb2xvci1kYXJrIGlucHV0IHtcXG4gIGJhY2tncm91bmQ6ICMwMDA7XFxuICBjb2xvcjogI2JkYmRiZDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWxpZ2h0KTtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICM0MjQyNDI7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1xLWNvbG9yLWRhcmspO1xcbn1cXG4ucS1jb2xvci1kYXJrIC5xLWNvbG9yLWlucHV0cyB7XFxuICBjb2xvcjogI2JkYmRiZDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWxpZ2h0KTtcXG59XFxuLnEtY29sb3ItZGFyayAucS1jb2xvci1zd2F0Y2gge1xcbiAgYm9yZGVyOiAxcHggc29saWQgIzQyNDI0MjtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXEtY29sb3ItZGFyayk7XFxufVxcbi5xLWRhdGV0aW1lLWlucHV0IHtcXG4gIG1pbi13aWR0aDogNzBweDtcXG59XFxuLnEtZGF0ZXRpbWUtY29udHJvbHMge1xcbiAgcGFkZGluZzogMCAxMHB4IDhweDtcXG59XFxuLnEtZGF0ZXRpbWUge1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIGxpbmUtaGVpZ2h0OiBpbml0aWFsO1xcbn1cXG4ucS1kYXRldGltZSAubW9kYWwtYnV0dG9ucyB7XFxuICBwYWRkaW5nLXRvcDogOHB4O1xcbn1cXG4ucS1kYXRldGltZTpub3QoLm5vLWJvcmRlcik6bm90KC5xLWRhdGV0aW1lLWRhcmspIC5xLWRhdGV0aW1lLWNvbnRlbnQge1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcXG59XFxuLnEtZGF0ZXRpbWU6bm90KC5uby1ib3JkZXIpLnEtZGF0ZXRpbWUtZGFyayB7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjNDI0MjQyO1xcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcS1jb2xvci1kYXJrKTtcXG59XFxuLnEtZGF0ZXRpbWUtaGVhZGVyIHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtZGF0ZXRpbWUtaGVhZGVyID4gZGl2IHtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi5tb2RhbC1jb250ZW50ID4gLnEtZGF0ZXRpbWUgPiAucS1kYXRldGltZS1oZWFkZXIsXFxuLnEtcG9wb3ZlciA+IC5xLWRhdGV0aW1lID4gLnEtZGF0ZXRpbWUtaGVhZGVyIHtcXG4gIG1pbi13aWR0aDogMTc1cHg7XFxufVxcbi5xLWRhdGV0aW1lLXdlZWtkYXlzdHJpbmcge1xcbiAgZm9udC1zaXplOiAwLjhyZW07XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMSk7XFxuICBwYWRkaW5nOiA1cHggMDtcXG59XFxuLnEtZGF0ZXRpbWUtdGltZSB7XFxuICBwYWRkaW5nOiAxMHB4IDA7XFxuICB3aWxsLWNoYW5nZTogc2Nyb2xsLXBvc2l0aW9uO1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxufVxcbi5xLWRhdGV0aW1lLWFtcG0ge1xcbiAgZm9udC1zaXplOiAwLjlyZW07XFxuICBwYWRkaW5nOiA1cHg7XFxufVxcbi5xLWRhdGV0aW1lLWRhdGVzdHJpbmcge1xcbiAgcGFkZGluZzogMTBweCAwO1xcbn1cXG4ucS1kYXRldGltZS1kYXRlc3RyaW5nIC5xLWRhdGV0aW1lLWxpbmsge1xcbiAgZm9udC1zaXplOiAyLjdyZW07XFxufVxcbi5xLWRhdGV0aW1lLWRhdGVzdHJpbmcgLnEtZGF0ZXRpbWUtbGluayBzcGFuIHtcXG4gIHBhZGRpbmc6IDAgNXB4O1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi5xLWRhdGV0aW1lLWRhdGVzdHJpbmcgLnEtZGF0ZXRpbWUtbGluay5zbWFsbCB7XFxuICBtYXJnaW46IDAgNXB4O1xcbiAgZm9udC1zaXplOiAxLjJyZW07XFxufVxcbi5xLWRhdGV0aW1lLWRhdGVzdHJpbmcgLnEtZGF0ZXRpbWUtbGluay5zbWFsbCBzcGFuIHtcXG4gIHBhZGRpbmc6IDVweDtcXG59XFxuLnEtZGF0ZXRpbWUtbGluayB7XFxuICBvcGFjaXR5OiAwLjY7XFxufVxcbi5xLWRhdGV0aW1lLWxpbmsgPiBzcGFuIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5xLWRhdGV0aW1lLWxpbmsuYWN0aXZlIHtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbi5xLWRhdGV0aW1lLWNsb2Nrc3RyaW5nIHtcXG4gIG1pbi13aWR0aDogMjEwcHg7XFxuICBmb250LXNpemU6IDIuN3JlbTtcXG4gIGRpcmVjdGlvbjogbHRyIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLXNlbGVjdG9yIHtcXG4gIG1pbi13aWR0aDogMjkwcHg7XFxuICBoZWlnaHQ6IDMxMHB4O1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxufVxcbi5xLWRhdGV0aW1lLXZpZXctZGF5IHtcXG4gIHdpZHRoOiAyNTBweDtcXG4gIGhlaWdodDogMjg1cHg7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtZGF0ZXRpbWUtdmlldy15ZWFyID4gLnEtYnRuOm5vdCguYWN0aXZlKSxcXG4ucS1kYXRldGltZS12aWV3LW1vbnRoID4gLnEtYnRuOm5vdCguYWN0aXZlKSB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtZGF0ZXRpbWUtbW9udGgtc3RhbXAge1xcbiAgZm9udC1zaXplOiAxNnB4O1xcbn1cXG4ucS1kYXRldGltZS13ZWVrZGF5cyB7XFxuICBtYXJnaW4tYm90dG9tOiA1cHg7XFxufVxcbi5xLWRhdGV0aW1lLXdlZWtkYXlzIGRpdiB7XFxuICBvcGFjaXR5OiAwLjY7XFxuICB3aWR0aDogMzVweDtcXG4gIGhlaWdodDogMzVweDtcXG4gIGxpbmUtaGVpZ2h0OiAzNXB4O1xcbiAgbWFyZ2luOiAwO1xcbiAgcGFkZGluZzogMDtcXG4gIG1pbi13aWR0aDogMDtcXG4gIG1pbi1oZWlnaHQ6IDA7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG59XFxuLnEtZGF0ZXRpbWUtZGF5cyBkaXYge1xcbiAgbWFyZ2luOiAxcHg7XFxuICBsaW5lLWhlaWdodDogMzNweDtcXG4gIHdpZHRoOiAzM3B4O1xcbiAgaGVpZ2h0OiAzM3B4O1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbn1cXG4ucS1kYXRldGltZS1kYXlzIGRpdi5xLWRhdGV0aW1lLWRheS1hY3RpdmUge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1kYXRldGltZS1kYXlzIGRpdi5xLWRhdGV0aW1lLWRheS1hY3RpdmUgPiBzcGFuIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1kYXRldGltZS1kYXlzIGRpdi5xLWRhdGV0aW1lLWRheS10b2RheSB7XFxuICBjb2xvcjogY3VycmVudENvbG9yO1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgYm9yZGVyOiAxcHggc29saWQgY3VycmVudENvbG9yO1xcbn1cXG4ucS1kYXRldGltZS1kYXlzIGRpdjpub3QoLnEtZGF0ZXRpbWUtZmlsbGVyZGF5KTpub3QoLmRpc2FibGVkKTpub3QoLnEtZGF0ZXRpbWUtZGF5LWFjdGl2ZSk6aG92ZXIge1xcbiAgYmFja2dyb3VuZDogI2UwZTBlMDtcXG59XFxuLnEtZGF0ZXRpbWUtYnRuIHtcXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxufVxcbi5xLWRhdGV0aW1lLWJ0bi5hY3RpdmUge1xcbiAgZm9udC1zaXplOiAxLjVyZW07XFxuICBwYWRkaW5nLXRvcDogMXJlbTtcXG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jayB7XFxuICB3aWR0aDogMjUwcHg7XFxuICBoZWlnaHQ6IDI1MHB4O1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgYmFja2dyb3VuZDogI2UwZTBlMDtcXG4gIHBhZGRpbmc6IDI0cHg7XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLWNpcmNsZSB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1wb3AgMC41cyAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtcG9wIDAuNXMgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stY2VudGVyIHtcXG4gIGhlaWdodDogNnB4O1xcbiAgd2lkdGg6IDZweDtcXG4gIHRvcDogMDtcXG4gIG1hcmdpbjogYXV0bztcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIG1pbi1oZWlnaHQ6IDA7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvaW50ZXIge1xcbiAgd2lkdGg6IDFweDtcXG4gIGhlaWdodDogNTAlO1xcbiAgbWFyZ2luOiAwIGF1dG87XFxuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXIgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlciAvKiBydGw6aWdub3JlICovO1xcbiAgbWluLWhlaWdodDogMDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9pbnRlciBzcGFuIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIHdpZHRoOiA4cHg7XFxuICBoZWlnaHQ6IDhweDtcXG4gIGJvdHRvbTogLThweDtcXG4gIGxlZnQ6IDA7XFxuICBtaW4td2lkdGg6IDA7XFxuICBtaW4taGVpZ2h0OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLWRhdGV0aW1lLWFycm93IHtcXG4gIGNvbG9yOiAjNzU3NTc1O1xcbn1cXG4ucS1kYXRldGltZS1kYXJrIHtcXG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLWRhcmspO1xcbn1cXG4ucS1kYXRldGltZS1kYXJrIC5xLWRhdGV0aW1lLWFycm93IHtcXG4gIGNvbG9yOiAjYmRiZGJkO1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbGlnaHQpO1xcbn1cXG4ucS1kYXRldGltZS1kYXJrIC5xLWRhdGV0aW1lLWhlYWRlcixcXG4ucS1kYXRldGltZS1kYXJrIC5xLWRhdGV0aW1lLWNsb2NrIHtcXG4gIGJhY2tncm91bmQ6ICM2MTYxNjE7XFxufVxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtdmlldy1kYXkge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtdmlldy15ZWFyID4gLnEtYnRuOm5vdCguYWN0aXZlKSxcXG4ucS1kYXRldGltZS1kYXJrIC5xLWRhdGV0aW1lLXZpZXctbW9udGggPiAucS1idG46bm90KC5hY3RpdmUpIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1kYXRldGltZS1kYXJrIC5xLWRhdGV0aW1lLWRheXMgZGl2LnEtZGF0ZXRpbWUtZGF5LWFjdGl2ZSA+IHNwYW4sXFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS1kYXlzIGRpdjpub3QoLnEtZGF0ZXRpbWUtZmlsbGVyZGF5KTpub3QoLmRpc2FibGVkKTpub3QoLnEtZGF0ZXRpbWUtZGF5LWFjdGl2ZSk6aG92ZXIge1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbmJvZHkuZGVza3RvcCAucS1kYXRldGltZS1jbG9jay1wb3NpdGlvbjpub3QoLmFjdGl2ZSk6aG92ZXIge1xcbiAgYmFja2dyb3VuZDogI2Y1ZjVmNSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5LmRlc2t0b3AgLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS1jbG9jay1wb3NpdGlvbjpub3QoLmFjdGl2ZSk6aG92ZXIge1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvc2l0aW9uIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIG1pbi1oZWlnaHQ6IDMycHg7XFxuICB3aWR0aDogMzJweDtcXG4gIGhlaWdodDogMzJweDtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xcbiAgbWFyZ2luOiAwO1xcbiAgcGFkZGluZzogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgLyogcnRsOmlnbm9yZSAqLztcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zaXRpb246bm90KC5hY3RpdmUpIHtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1kYXRldGltZS1kYXJrIC5xLWRhdGV0aW1lLWNsb2NrLXBvc2l0aW9uOm5vdCguYWN0aXZlKSB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zaXRpb24uYWN0aXZlIHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zaXRpb24uYWN0aXZlID4gc3BhbiB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTAge1xcbiAgdG9wOiAwJTtcXG4gIGxlZnQ6IDUwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMSB7XFxuICB0b3A6IDYuNyU7XFxuICBsZWZ0OiA3NSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTIge1xcbiAgdG9wOiAyNSU7XFxuICBsZWZ0OiA5My4zJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMyB7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDEwMCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTQge1xcbiAgdG9wOiA3NSU7XFxuICBsZWZ0OiA5My4zJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtNSB7XFxuICB0b3A6IDkzLjMlO1xcbiAgbGVmdDogNzUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy02IHtcXG4gIHRvcDogMTAwJTtcXG4gIGxlZnQ6IDUwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtNyB7XFxuICB0b3A6IDkzLjMlO1xcbiAgbGVmdDogMjUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy04IHtcXG4gIHRvcDogNzUlO1xcbiAgbGVmdDogNi43JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtOSB7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xMCB7XFxuICB0b3A6IDI1JTtcXG4gIGxlZnQ6IDYuNyUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTExIHtcXG4gIHRvcDogNi43JTtcXG4gIGxlZnQ6IDI1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTIge1xcbiAgdG9wOiAwJTtcXG4gIGxlZnQ6IDUwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMS5mbXQyNCB7XFxuICB0b3A6IDYuNyU7XFxuICBsZWZ0OiA3NSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTIuZm10MjQge1xcbiAgdG9wOiAyNSU7XFxuICBsZWZ0OiA5My4zJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMy5mbXQyNCB7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDEwMCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTQuZm10MjQge1xcbiAgdG9wOiA3NSU7XFxuICBsZWZ0OiA5My4zJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtNS5mbXQyNCB7XFxuICB0b3A6IDkzLjMlO1xcbiAgbGVmdDogNzUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy02LmZtdDI0IHtcXG4gIHRvcDogMTAwJTtcXG4gIGxlZnQ6IDUwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtNy5mbXQyNCB7XFxuICB0b3A6IDkzLjMlO1xcbiAgbGVmdDogMjUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy04LmZtdDI0IHtcXG4gIHRvcDogNzUlO1xcbiAgbGVmdDogNi43JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtOS5mbXQyNCB7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xMC5mbXQyNCB7XFxuICB0b3A6IDI1JTtcXG4gIGxlZnQ6IDYuNyUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTExLmZtdDI0IHtcXG4gIHRvcDogNi43JTtcXG4gIGxlZnQ6IDI1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTIuZm10MjQge1xcbiAgdG9wOiAwJTtcXG4gIGxlZnQ6IDUwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTMuZm10MjQge1xcbiAgdG9wOiAxOS42OSU7XFxuICBsZWZ0OiA2Ny41JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTQuZm10MjQge1xcbiAgdG9wOiAzMi41JTtcXG4gIGxlZnQ6IDgwLjMxJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTUuZm10MjQge1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiA4NSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTE2LmZtdDI0IHtcXG4gIHRvcDogNjcuNSU7XFxuICBsZWZ0OiA4MC4zMSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTE3LmZtdDI0IHtcXG4gIHRvcDogODAuMzElO1xcbiAgbGVmdDogNjcuNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTE4LmZtdDI0IHtcXG4gIHRvcDogODUlO1xcbiAgbGVmdDogNTAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xOS5mbXQyNCB7XFxuICB0b3A6IDgwLjMxJTtcXG4gIGxlZnQ6IDMyLjUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0yMC5mbXQyNCB7XFxuICB0b3A6IDY3LjUlO1xcbiAgbGVmdDogMTkuNjklIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0yMS5mbXQyNCB7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDE1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMjIuZm10MjQge1xcbiAgdG9wOiAzMi41JTtcXG4gIGxlZnQ6IDE5LjY5JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMjMuZm10MjQge1xcbiAgdG9wOiAxOS42OSU7XFxuICBsZWZ0OiAzMi41JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMC5mbXQyNCB7XFxuICB0b3A6IDE1JTtcXG4gIGxlZnQ6IDUwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1yYW5nZS5yb3cgLnEtZGF0ZXRpbWUtcmFuZ2UtbGVmdCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xcbn1cXG4ucS1kYXRldGltZS1yYW5nZS5yb3cgLnEtZGF0ZXRpbWUtcmFuZ2UtcmlnaHQge1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XFxufVxcbi5xLWRhdGV0aW1lLXJhbmdlLmNvbHVtbiA+IGRpdiArIGRpdiB7XFxuICBtYXJnaW4tdG9wOiAxMHB4O1xcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIC5xLWRhdGV0aW1lIHtcXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbCAhaW1wb3J0YW50O1xcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbCAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgLnEtZGF0ZXRpbWUtaGVhZGVyIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcXG4gIH1cXG4gIC5xLWRhdGV0aW1lLWNvbnRlbnQge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAyO1xcbiAgICAgICAgLW1zLWZsZXg6IDIgMiBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDIgMiBhdXRvO1xcbiAgfVxcbn1cXG4ucS1kb3Qge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAtMnB4O1xcbiAgcmlnaHQ6IC0xMHB4O1xcbiAgaGVpZ2h0OiAxMHB4O1xcbiAgd2lkdGg6IDEwcHg7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xcbiAgb3BhY2l0eTogMC44O1xcbn1cXG4ucS1lZGl0b3Ige1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcXG59XFxuLnEtZWRpdG9yLmRpc2FibGVkIHtcXG4gIGJvcmRlci1zdHlsZTogZGFzaGVkO1xcbn1cXG4ucS1lZGl0b3IuZnVsbHNjcmVlbiB7XFxuICBib3JkZXI6IDAgIWltcG9ydGFudDtcXG59XFxuLnEtZWRpdG9yLWNvbnRlbnQge1xcbiAgb3V0bGluZTogMDtcXG4gIHBhZGRpbmc6IDEwcHg7XFxuICBtaW4taGVpZ2h0OiAxMGVtO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG59XFxuLnEtZWRpdG9yLWNvbnRlbnQgaHIge1xcbiAgYm9yZGVyOiAwO1xcbiAgb3V0bGluZTogMDtcXG4gIG1hcmdpbjogMXB4O1xcbiAgaGVpZ2h0OiAxcHg7XFxuICBiYWNrZ3JvdW5kOiAjY2NjO1xcbn1cXG4ucS1lZGl0b3ItdG9vbGJhci1wYWRkaW5nIHtcXG4gIHBhZGRpbmc6IDRweDtcXG59XFxuLnEtZWRpdG9yLXRvb2xiYXIge1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XFxuICBiYWNrZ3JvdW5kOiAjZTBlMGUwO1xcbiAgbWluLWhlaWdodDogMzdweDtcXG59XFxuLnEtZWRpdG9yLXRvb2xiYXIgLnEtYnRuLWdyb3VwIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuLnEtZWRpdG9yLXRvb2xiYXIgLnEtYnRuLWdyb3VwICsgLnEtYnRuLWdyb3VwIHtcXG4gIG1hcmdpbi1sZWZ0OiA1cHg7XFxufVxcbi5xLWVkaXRvci10b29sYmFyLXNlcGFyYXRvciAucS1idG4tZ3JvdXAgKyAucS1idG4tZ3JvdXAge1xcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XFxufVxcbi5xLWVkaXRvci10b29sYmFyLXNlcGFyYXRvciAucS1idG4tZ3JvdXAgKyAucS1idG4tZ3JvdXA6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMDtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGhlaWdodDogMTAwJTtcXG4gIHdpZHRoOiAxcHg7XFxuICBiYWNrZ3JvdW5kOiAjY2NjO1xcbn1cXG4ucS1lZGl0b3ItaW5wdXQgaW5wdXQge1xcbiAgY29sb3I6IGluaGVyaXQ7XFxufVxcbi5xLWZhYiB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG4uei1mYWIge1xcbiAgei1pbmRleDogOTkwO1xcbn1cXG4ucS1mYWItb3BlbmVkIC5xLWZhYi1hY3Rpb25zIHtcXG4gIG9wYWNpdHk6IDE7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDEpIHNjYWxlWSgxKSB0cmFuc2xhdGVYKDApIHRyYW5zbGF0ZVkoMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpIHNjYWxlWSgxKSB0cmFuc2xhdGVYKDApIHRyYW5zbGF0ZVkoMCk7XFxuICBwb2ludGVyLWV2ZW50czogYWxsO1xcbn1cXG4ucS1mYWItb3BlbmVkIC5xLWZhYi1pY29uIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAxODBkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDE4MGRlZyk7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1mYWItb3BlbmVkIC5xLWZhYi1hY3RpdmUtaWNvbiB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMGRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMGRlZyk7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4ucS1mYWItaWNvbixcXG4ucS1mYWItYWN0aXZlLWljb24ge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNHM7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNHM7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMsIHRyYW5zZm9ybSAwLjRzO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzLCB0cmFuc2Zvcm0gMC40cywgLXdlYmtpdC10cmFuc2Zvcm0gMC40cztcXG59XFxuLnEtZmFiLWljb24ge1xcbiAgb3BhY2l0eTogMTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAwZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAwZGVnKTtcXG59XFxuLnEtZmFiLWFjdGl2ZS1pY29uIHtcXG4gIG9wYWNpdHk6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTE4MGRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTE4MGRlZyk7XFxufVxcbi5xLWZhYi1hY3Rpb25zIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIG9wYWNpdHk6IDA7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW47XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcbi5xLWZhYi1hY3Rpb25zIC5xLWJ0biB7XFxuICBtYXJnaW46IDVweDtcXG59XFxuLnEtZmFiLXJpZ2h0IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoMC40KSBzY2FsZVkoMC40KSB0cmFuc2xhdGVYKC0xMDAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMC40KSBzY2FsZVkoMC40KSB0cmFuc2xhdGVYKC0xMDAlKTtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDEyMCU7XFxufVxcbi5xLWZhYi1sZWZ0IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoMC40KSBzY2FsZVkoMC40KSB0cmFuc2xhdGVYKDEwMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjQpIHNjYWxlWSgwLjQpIHRyYW5zbGF0ZVgoMTAwJSk7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICByaWdodDogMTIwJTtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZTtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XFxufVxcbi5xLWZhYi11cCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDAuNCkgc2NhbGVZKDAuNCkgdHJhbnNsYXRlWSgxMDAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMC40KSBzY2FsZVkoMC40KSB0cmFuc2xhdGVZKDEwMCUpO1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZTtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGJvdHRvbTogMTIwJTtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG59XFxuLnEtZmFiLWRvd24ge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgwLjQpIHNjYWxlWSgwLjQpIHRyYW5zbGF0ZVkoLTEwMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjQpIHNjYWxlWSgwLjQpIHRyYW5zbGF0ZVkoLTEwMCUpO1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICB0b3A6IDEyMCU7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxufVxcbi5xLWZpZWxkLWljb24ge1xcbiAgd2lkdGg6IDI4cHg7XFxuICBoZWlnaHQ6IDI4cHg7XFxuICBtaW4td2lkdGg6IDI4cHg7XFxuICBmb250LXNpemU6IDI4cHg7XFxuICBtYXJnaW4tcmlnaHQ6IDE2cHg7XFxuICBjb2xvcjogIzk3OTc5NztcXG59XFxuLnEtZmllbGQtbGFiZWwge1xcbiAgcGFkZGluZy1yaWdodDogOHB4O1xcbiAgY29sb3I6ICM5Nzk3OTc7XFxufVxcbi5xLWZpZWxkLWxhYmVsLWlubmVyIHtcXG4gIG1pbi1oZWlnaHQ6IDI4cHg7XFxufVxcbi5xLWZpZWxkLWxhYmVsLWhpbnQge1xcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XFxufVxcbi5xLWZpZWxkLWJvdHRvbSB7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBwYWRkaW5nLXRvcDogOHB4O1xcbiAgY29sb3I6ICM5Nzk3OTc7XFxufVxcbi5xLWZpZWxkLW5vLWlucHV0IC5xLWZpZWxkLWJvdHRvbSB7XFxuICBtYXJnaW4tdG9wOiA4cHg7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtZmllbGQtY291bnRlciB7XFxuICBjb2xvcjogIzk3OTc5NztcXG4gIHBhZGRpbmctbGVmdDogOHB4O1xcbn1cXG4ucS1maWVsZC1kYXJrIC5xLWZpZWxkLWxhYmVsLFxcbi5xLWZpZWxkLWRhcmsgLnEtZmllbGQtaWNvbixcXG4ucS1maWVsZC1kYXJrIC5xLWZpZWxkLWNvdW50ZXIsXFxuLnEtZmllbGQtZGFyayAucS1maWVsZC1ib3R0b20ge1xcbiAgY29sb3I6ICNhN2E3YTc7XFxufVxcbi5xLWZpZWxkLWRhcmsgLnEtZmllbGQtbm8taW5wdXQgLnEtZmllbGQtYm90dG9tIHtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjOTc5Nzk3O1xcbn1cXG4ucS1maWVsZC13aXRoLWVycm9yIC5xLWZpZWxkLWljb24sXFxuLnEtZmllbGQtd2l0aC1lcnJvciAucS1maWVsZC1sYWJlbCxcXG4ucS1maWVsZC13aXRoLWVycm9yIC5xLWZpZWxkLWJvdHRvbSB7XFxuICBjb2xvcjogI2RiMjgyODtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLW5lZ2F0aXZlKTtcXG59XFxuLnEtZmllbGQtd2l0aC1lcnJvciAucS1maWVsZC1uby1pbnB1dCAucS1maWVsZC1ib3R0b20ge1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkYjI4Mjg7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tcS1jb2xvci1uZWdhdGl2ZSk7XFxufVxcbi5xLWZpZWxkLXdpdGgtd2FybmluZyAucS1maWVsZC1pY29uLFxcbi5xLWZpZWxkLXdpdGgtd2FybmluZyAucS1maWVsZC1sYWJlbCxcXG4ucS1maWVsZC13aXRoLXdhcm5pbmcgLnEtZmllbGQtYm90dG9tIHtcXG4gIGNvbG9yOiAjZjJjMDM3O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3Itd2FybmluZyk7XFxufVxcbi5xLWZpZWxkLXdpdGgtd2FybmluZyAucS1maWVsZC1uby1pbnB1dCAucS1maWVsZC1ib3R0b20ge1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNmMmMwMzc7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tcS1jb2xvci13YXJuaW5nKTtcXG59XFxuLnEtZmllbGQtbWFyZ2luIHtcXG4gIG1hcmdpbi10b3A6IDVweDtcXG59XFxuLnEtZmllbGQtZmxvYXRpbmcgLnEtZmllbGQtbWFyZ2luIHtcXG4gIG1hcmdpbi10b3A6IDIzcHg7XFxufVxcbi5xLWZpZWxkLW5vLWlucHV0IC5xLWZpZWxkLW1hcmdpbiB7XFxuICBtYXJnaW4tdG9wOiAzcHg7XFxufVxcbi5xLWZpZWxkLWNvbnRlbnQgLnEtaWYucS1pZi1oYXMtbGFiZWw6bm90KC5xLWlmLXN0YW5kYXJkKSB7XFxuICBtYXJnaW4tdG9wOiA5cHg7XFxufVxcbi5xLWZpZWxkLWNvbnRlbnQgLnEtaWYtc3RhbmRhcmQ6bm90KC5xLWlmLWhhcy1sYWJlbCkge1xcbiAgcGFkZGluZy10b3A6IDZweDtcXG59XFxuLnEtZmllbGQtY29udGVudCAucS1vcHRpb24tZ3JvdXAge1xcbiAgcGFkZGluZy10b3A6IDA7XFxufVxcbi5xLWZpZWxkLW5vLWlucHV0IC5xLWZpZWxkLWNvbnRlbnQge1xcbiAgcGFkZGluZy10b3A6IDZweDtcXG59XFxuLnEtZmllbGQtdmVydGljYWw6bm90KC5xLWZpZWxkLW5vLWxhYmVsKSAucS1maWVsZC1tYXJnaW4ge1xcbiAgbWFyZ2luLXRvcDogMDtcXG59XFxuLnEtZmllbGQtdmVydGljYWw6bm90KC5xLWZpZWxkLW5vLWxhYmVsKSAucS1pZi1zdGFuZGFyZDpub3QoLnEtaWYtaGFzLWxhYmVsKSB7XFxuICBwYWRkaW5nLXRvcDogMDtcXG59XFxuLnEtZmllbGQtdmVydGljYWw6bm90KC5xLWZpZWxkLW5vLWxhYmVsKSAucS1pZi5xLWlmLWhhcy1sYWJlbDpub3QoLnEtaWYtc3RhbmRhcmQpIHtcXG4gIG1hcmdpbi10b3A6IDBweDtcXG59XFxuLnEtZmllbGQtdmVydGljYWwucS1maWVsZC1uby1sYWJlbCAucS1maWVsZC1sYWJlbCB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHtcXG4gIC5xLWZpZWxkLXJlc3BvbnNpdmU6bm90KC5xLWZpZWxkLW5vLWxhYmVsKSAucS1maWVsZC1tYXJnaW4ge1xcbiAgICBtYXJnaW4tdG9wOiAwO1xcbiAgfVxcbiAgLnEtZmllbGQtcmVzcG9uc2l2ZTpub3QoLnEtZmllbGQtbm8tbGFiZWwpIC5xLWlmLXN0YW5kYXJkOm5vdCgucS1pZi1oYXMtbGFiZWwpIHtcXG4gICAgcGFkZGluZy10b3A6IDA7XFxuICB9XFxuICAucS1maWVsZC1yZXNwb25zaXZlOm5vdCgucS1maWVsZC1uby1sYWJlbCkgLnEtaWYucS1pZi1oYXMtbGFiZWw6bm90KC5xLWlmLXN0YW5kYXJkKSB7XFxuICAgIG1hcmdpbi10b3A6IDBweDtcXG4gIH1cXG4gIC5xLWZpZWxkLXJlc3BvbnNpdmUucS1maWVsZC1uby1sYWJlbCAucS1maWVsZC1sYWJlbCB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICB9XFxufVxcbi5xLWlubmVyLWxvYWRpbmcge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjYpO1xcbn1cXG4ucS1pbm5lci1sb2FkaW5nLmRhcmsge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjQpO1xcbn1cXG4ucS1pZixcXG4ucS1pZjpiZWZvcmUsXFxuLnEtaWYtbGFiZWwsXFxuLnEtaWYtYWRkb24sXFxuLnEtZmllbGQtaWNvbixcXG4ucS1maWVsZC1sYWJlbCxcXG4ucS1pZi1jb250cm9sLFxcbi5xLWZpZWxkLWJvdHRvbSB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSksIGRpc3BsYXkgMHMgMHM7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpLCBkaXNwbGF5IDBzIDBzO1xcbn1cXG4ucS1pZi5xLWlmLWhpZGUtdW5kZXJsaW5lOmJlZm9yZSxcXG4ucS1pZi5xLWlmLWludmVydGVkOmJlZm9yZSxcXG4ucS1pZi5xLWlmLWhpZGUtdW5kZXJsaW5lOmFmdGVyLFxcbi5xLWlmLnEtaWYtaW52ZXJ0ZWQ6YWZ0ZXIge1xcbiAgY29udGVudDogbm9uZTtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQge1xcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XFxuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XFxufVxcbi5xLWlmLWludmVydGVkIC5xLWlmLWlubmVyIHtcXG4gIG1hcmdpbi10b3A6IDdweDtcXG4gIG1hcmdpbi1ib3R0b206IDdweDtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQucS1pZi1oYXMtbGFiZWwgLnEtaWYtaW5uZXIge1xcbiAgbWFyZ2luLXRvcDogMjVweDtcXG59XFxuLnEtaWY6YmVmb3JlLFxcbi5xLWlmOmFmdGVyIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG4gIGJvcmRlcjogMXB4IGhpZGRlbiBjdXJyZW50Q29sb3I7XFxuICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBjb250ZW50OiAnJztcXG59XFxuLnEtaWY6YmVmb3JlIHtcXG4gIGNvbG9yOiAjYmRiZGJkO1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbGlnaHQpO1xcbn1cXG4ucS1pZjphZnRlciB7XFxuICBib3JkZXItd2lkdGg6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXIgMDtcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlciAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XFxufVxcbi5xLWlmOm5vdCgucS1pZi1kaXNhYmxlZCk6bm90KC5xLWlmLWVycm9yKTpub3QoLnEtaWYtd2FybmluZyk6aG92ZXI6YmVmb3JlLFxcbi5xLWlmLnEtaWYtcmVhZG9ubHk6bm90KC5xLWlmLWVycm9yKTpub3QoLnEtaWYtd2FybmluZyk6YWZ0ZXIge1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLWlmLWRhcmsucS1pZjpub3QoLnEtaWYtZGlzYWJsZWQpOm5vdCgucS1pZi1lcnJvcik6bm90KC5xLWlmLXdhcm5pbmcpOmhvdmVyOmJlZm9yZSxcXG4ucS1pZi1kYXJrLnEtaWYucS1pZi1yZWFkb25seTpub3QoLnEtaWYtZXJyb3IpOm5vdCgucS1pZi13YXJuaW5nKTphZnRlciB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtaWYtZm9jdXNlZDphZnRlciB7XFxuICBib3JkZXItd2lkdGg6IDJweDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoMSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBib3JkZXItbGVmdC13aWR0aCAwcyAwLjQ1cywgYm9yZGVyLXJpZ2h0LXdpZHRoIDBzIDAuNDVzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICB0cmFuc2l0aW9uOiBib3JkZXItbGVmdC13aWR0aCAwcyAwLjQ1cywgYm9yZGVyLXJpZ2h0LXdpZHRoIDBzIDAuNDVzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpLCBib3JkZXItbGVmdC13aWR0aCAwcyAwLjQ1cywgYm9yZGVyLXJpZ2h0LXdpZHRoIDBzIDAuNDVzO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSwgYm9yZGVyLWxlZnQtd2lkdGggMHMgMC40NXMsIGJvcmRlci1yaWdodC13aWR0aCAwcyAwLjQ1cywgLXdlYmtpdC10cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbn1cXG4ucS1pZiB7XFxuICBvdXRsaW5lOiAwO1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgZm9udC1zaXplOiAxcmVtO1xcbn1cXG4ucS1pZiAucS1pZi1pbm5lciB7XFxuICBtaW4taGVpZ2h0OiAyNHB4O1xcbn1cXG4ucS1pZi1zdGFuZGFyZCB7XFxuICBwYWRkaW5nLXRvcDogN3B4O1xcbiAgcGFkZGluZy1ib3R0b206IDdweDtcXG59XFxuLnEtaWYtc3RhbmRhcmQucS1pZi1oYXMtbGFiZWwge1xcbiAgcGFkZGluZy10b3A6IDI1cHg7XFxufVxcbi5xLWlmLWhpZGUtdW5kZXJsaW5lIHtcXG4gIHBhZGRpbmctdG9wOiAwO1xcbiAgcGFkZGluZy1ib3R0b206IDA7XFxufVxcbi5xLWlmLWhpZGUtdW5kZXJsaW5lLnEtaWYtaGFzLWxhYmVsIHtcXG4gIHBhZGRpbmctdG9wOiAxOHB4O1xcbn1cXG4ucS1pZi1zdGFuZGFyZCAucS1pZi1sYWJlbCxcXG4ucS1pZi1pbnZlcnRlZCAucS1pZi1sYWJlbCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcXG59XFxuLnEtaWYtc3RhbmRhcmQgLnEtaWYtbGFiZWwucS1pZi1sYWJlbC1hYm92ZSxcXG4ucS1pZi1pbnZlcnRlZCAucS1pZi1sYWJlbC5xLWlmLWxhYmVsLWFib3ZlIHtcXG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTEwMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTAwJSk7XFxuICBsaW5lLWhlaWdodDogMThweDtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxufVxcbi5xLWlmLWludmVydGVkIC5xLWlmLWxhYmVsIHtcXG4gIHRvcDogNTAlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjFweCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0yMXB4KTtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaWYtbGFiZWwucS1pZi1sYWJlbC1hYm92ZSB7XFxuICB0b3A6IDRweDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTEyNSUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTI1JSk7XFxufVxcbi5xLWlmLWludmVydGVkIC5xLWlucHV0LXRhcmdldCB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLnEtaWYtZm9jdXNlZDpub3QoLnEtaWYtcmVhZG9ubHkpIC5xLWlmLWxhYmVsLFxcbi5xLWlmLWZvY3VzZWQ6bm90KC5xLWlmLXJlYWRvbmx5KSAucS1pZi1hZGRvbixcXG4ucS1pZi1mb2N1c2VkOm5vdCgucS1pZi1yZWFkb25seSkgLnEtaWYtY29udHJvbCB7XFxuICBjb2xvcjogY3VycmVudENvbG9yO1xcbn1cXG4ucS1pZi13YXJuaW5nOmJlZm9yZSxcXG4ucS1pZi13YXJuaW5nOmFmdGVyLFxcbi5xLWlmLXdhcm5pbmc6bm90KC5xLWlmLWludmVydGVkKSAucS1pZi1sYWJlbCB7XFxuICBjb2xvcjogI2YyYzAzNztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXdhcm5pbmcpO1xcbn1cXG4ucS1pZi13YXJuaW5nOmhvdmVyOmJlZm9yZSB7XFxuICBjb2xvcjogI2Y4ZGQ5MztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXdhcm5pbmctbCk7XFxufVxcbi5xLWlmLWVycm9yOmJlZm9yZSxcXG4ucS1pZi1lcnJvcjphZnRlcixcXG4ucS1pZi1lcnJvcjpub3QoLnEtaWYtaW52ZXJ0ZWQpIC5xLWlmLWxhYmVsIHtcXG4gIGNvbG9yOiAjZGIyODI4O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbmVnYXRpdmUpO1xcbn1cXG4ucS1pZi1lcnJvcjpob3ZlcjpiZWZvcmUge1xcbiAgY29sb3I6ICNlYzhiOGI7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1uZWdhdGl2ZS1sKTtcXG59XFxuLnEtaWYtZGlzYWJsZWQge1xcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gIG9wYWNpdHk6IDAuNjtcXG59XFxuLnEtaWYtZGlzYWJsZWQgLnEtaWYtbGFiZWwsXFxuLnEtaWYtZGlzYWJsZWQgLnEtaWYtY29udHJvbCxcXG4ucS1pZi1kaXNhYmxlZCAucS1pbnB1dC10YXJnZXQsXFxuLnEtaWYtZGlzYWJsZWQgLnEtY2hpcCB7XFxuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbn1cXG4ucS1pZi1kYXJrOm5vdCgucS1pZi1pbnZlcnRlZC1saWdodCkgLnEtaW5wdXQtdGFyZ2V0Om5vdCgucS1pbnB1dC10YXJnZXQtcGxhY2Vob2xkZXIpIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1pZi1mb2N1c2FibGUge1xcbiAgb3V0bGluZTogMDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnEtaWYtbGFiZWwsXFxuLnEtaW5wdXQtdGFyZ2V0LFxcbi5xLWlucHV0LXRhcmdldC1wbGFjZWhvbGRlciB7XFxuICBsaW5lLWhlaWdodDogMjRweDtcXG59XFxuLnEtaWYtY29udHJvbCB7XFxuICBmb250LXNpemU6IDI0cHg7XFxuICB3aWR0aDogMjRweDtcXG4gIGhlaWdodDogMjRweDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnEtaWYtY29udHJvbCArIC5xLWlmLWNvbnRyb2wsXFxuLnEtaWYtY29udHJvbCArIC5xLWlmLWlubmVyLFxcbi5xLWlmLWlubmVyICsgLnEtaWYtY29udHJvbCB7XFxuICBtYXJnaW4tbGVmdDogNHB4O1xcbn1cXG4ucS1pZi1jb250cm9sOmhvdmVyIHtcXG4gIG9wYWNpdHk6IDAuNztcXG59XFxuLnEtaWYtYmFzZWxpbmUge1xcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XFxuICB3aWR0aDogMDtcXG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLnEtaWYtbGFiZWwtaW5uZXIsXFxuLnEtaWYtbGFiZWwtc3BhY2VyLFxcbi5xLWlmLWJhc2VsaW5lIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG59XFxuLnEtaWYtbGFiZWwtc3BhY2VyIHtcXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gIGhlaWdodDogMCAhaW1wb3J0YW50O1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIG1heC13aWR0aDogMTAwJTtcXG59XFxuLnEtaWYtbGFiZWwge1xcbiAgY3Vyc29yOiB0ZXh0O1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnEtaWYtbGFiZWwsXFxuLnEtaWYtYWRkb24sXFxuLnEtaWYtY29udHJvbCB7XFxuICBjb2xvcjogIzk3OTc5NztcXG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbn1cXG4ucS1pZi1pbnZlcnRlZCAucS1pZi1sYWJlbCxcXG4ucS1pZi1pbnZlcnRlZCAucS1pZi1hZGRvbixcXG4ucS1pZi1pbnZlcnRlZCAucS1pZi1jb250cm9sIHtcXG4gIGNvbG9yOiAjZGRkO1xcbn1cXG4ucS1pZi1pbnZlcnRlZC1saWdodCAucS1pZi1sYWJlbCxcXG4ucS1pZi1pbnZlcnRlZC1saWdodCAucS1pZi1hZGRvbixcXG4ucS1pZi1pbnZlcnRlZC1saWdodCAucS1pZi1jb250cm9sIHtcXG4gIGNvbG9yOiAjNjU2NTY1O1xcbn1cXG4ucS1pZi1hZGRvbiB7XFxuICBvcGFjaXR5OiAwO1xcbiAgY3Vyc29yOiBpbmhlcml0O1xcbn1cXG4ucS1pZi1hZGRvbjpub3QoLnEtaWYtYWRkb24tdmlzaWJsZSkge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtaWYtYWRkb24tbGVmdCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxcHg7XFxufVxcbi5xLWlmLWFkZG9uLXJpZ2h0IHtcXG4gIHBhZGRpbmctbGVmdDogMXB4O1xcbn1cXG4ucS1pZi1hZGRvbi12aXNpYmxlIHtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbi5xLWlucHV0LXRhcmdldCxcXG4ucS1pbnB1dC1zaGFkb3cge1xcbiAgYm9yZGVyOiAwO1xcbiAgb3V0bGluZTogMDtcXG4gIHBhZGRpbmc6IDA7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbiAgZm9udC1zaXplOiBpbmhlcml0O1xcbiAgcmVzaXplOiBub25lO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtaW5wdXQtdGFyZ2V0Oi13ZWJraXQtYXV0b2ZpbGwge1xcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogd2Via2l0LWF1dG9maWxsLW9uO1xcbiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xcbn1cXG4ucS1pbnB1dC10YXJnZXQucS1pbnB1dC1hdXRvZmlsbDpub3QoOi13ZWJraXQtYXV0b2ZpbGwpIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHdlYmtpdC1hdXRvZmlsbC1vZmY7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XFxufVxcbi5xLWlucHV0LXRhcmdldDo6LW1zLWNsZWFyLFxcbi5xLWlucHV0LXRhcmdldDo6LW1zLXJldmVhbCB7XFxuICBkaXNwbGF5OiBub25lO1xcbiAgd2lkdGg6IDA7XFxuICBoZWlnaHQ6IDA7XFxufVxcbi5xLWlucHV0LXRhcmdldDppbnZhbGlkIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5oZXJpdDtcXG4gICAgICAgICAgYm94LXNoYWRvdzogaW5oZXJpdDtcXG59XFxuLnEtaW5wdXQtdGFyZ2V0OmJlZm9yZSB7XFxuICBjb250ZW50OiAnfCc7XFxuICBsaW5lLWhlaWdodDogMjRweDtcXG4gIHdpZHRoOiAwO1xcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG5pbnB1dC5xLWlucHV0LXRhcmdldCB7XFxuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xcbiAgaGVpZ2h0OiAyNHB4O1xcbiAgb3V0bGluZTogMDtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG59XFxuLnEtaWYgLnEtaW5wdXQtdGFyZ2V0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmIC5xLWlucHV0LXRhcmdldDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogIzk3OTc5NyAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZiAucS1pbnB1dC10YXJnZXQ6Oi1tb3otcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICM5Nzk3OTcgIWltcG9ydGFudDtcXG59XFxuLnEtaWYgLnEtaW5wdXQtdGFyZ2V0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogIzk3OTc5NyAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZi1kYXJrIC5xLWlucHV0LXRhcmdldC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogIzk3OTc5NyAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZi1kYXJrIC5xLWlucHV0LXRhcmdldDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogIzk3OTc5NyAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZi1kYXJrIC5xLWlucHV0LXRhcmdldDo6LW1vei1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogIzk3OTc5NyAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZi1kYXJrIC5xLWlucHV0LXRhcmdldDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICM5Nzk3OTcgIWltcG9ydGFudDtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQ6bm90KC5xLWlmLWludmVydGVkLWxpZ2h0KSAucS1pbnB1dC10YXJnZXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICNkZGQgIWltcG9ydGFudDtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQ6bm90KC5xLWlmLWludmVydGVkLWxpZ2h0KSAucS1pbnB1dC10YXJnZXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICNkZGQgIWltcG9ydGFudDtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQ6bm90KC5xLWlmLWludmVydGVkLWxpZ2h0KSAucS1pbnB1dC10YXJnZXQ6Oi1tb3otcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICNkZGQgIWltcG9ydGFudDtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQ6bm90KC5xLWlmLWludmVydGVkLWxpZ2h0KSAucS1pbnB1dC10YXJnZXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjZGRkICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlucHV0LXNoYWRvdyB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBoZWlnaHQ6IGF1dG87XFxuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xcbn1cXG4ucS1qdW1ib3Ryb24ge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgcGFkZGluZzogMnJlbSAxcmVtO1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XFxuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xcbn1cXG4ucS1qdW1ib3Ryb24tZGFyayB7XFxuICBjb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM3NTc1NzU7XFxufVxcbi5xLWp1bWJvdHJvbi1kYXJrIGhyLnEtaHIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjM2KTtcXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAucS1qdW1ib3Ryb24ge1xcbiAgICBwYWRkaW5nOiA0cmVtIDJyZW07XFxuICB9XFxufVxcbi5xLWtub2IsXFxuLnEta25vYiA+IGRpdiB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxufVxcbi5xLWtub2IgPiBkaXYge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5xLWtub2ItbGFiZWwge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG59XFxuLnEta25vYi1sYWJlbCBpIHtcXG4gIGZvbnQtc2l6ZTogMTMwJTtcXG59XFxuLnEtbGF5b3V0IHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgbWluLWhlaWdodDogMTAwdmg7XFxufVxcbi5xLWxheW91dC1jb250YWluZXIgLnEtbGF5b3V0IHtcXG4gIG1pbi1oZWlnaHQ6IDEwMCU7XFxufVxcbi5xLWxheW91dC1jb250YWluZXIgPiBkaXYge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcbn1cXG4ucS1sYXlvdXQtY29udGFpbmVyID4gZGl2ID4gZGl2IHtcXG4gIG1pbi1oZWlnaHQ6IDA7XFxuICBtYXgtaGVpZ2h0OiAxMDAlO1xcbn1cXG4ucS1sYXlvdXQtaGVhZGVyIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggOHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAzcHggNHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDhweCByZ2JhKDAsMCwwLDAuMiksIDAgM3B4IDRweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAzcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS1sYXlvdXQtaGVhZGVyLWhpZGRlbiB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTEwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTEwJSk7XFxufVxcbi5xLWxheW91dC1mb290ZXIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xcHggOHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtM3B4IDRweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggM3B4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMXB4IDhweCByZ2JhKDAsMCwwLDAuMiksIDAgLTNweCA0cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLWxheW91dC1mb290ZXItaGlkZGVuIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDExMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTEwJSk7XFxufVxcbi5xLWxheW91dC1kcmF3ZXIge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIHotaW5kZXg6IDEwMDA7XFxufVxcbi5xLWxheW91dC1kcmF3ZXIub24tdG9wIHtcXG4gIHotaW5kZXg6IDMwMDA7XFxufVxcbi5xLWxheW91dC1kcmF3ZXItZGVsaW1pdGVyIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAzcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIDVweCA4cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAxcHggMTRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgNXB4IDhweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDFweCAxNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLWxheW91dC1kcmF3ZXItbGVmdCB7XFxuICBsZWZ0OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLXJpZ2h0IHtcXG4gIHJpZ2h0OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcXG59XFxuLnEtbGF5b3V0LFxcbi5xLWxheW91dC1oZWFkZXIsXFxuLnEtbGF5b3V0LWZvb3RlcixcXG4ucS1sYXlvdXQtcGFnZSB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5xLWxheW91dC1oZWFkZXIsXFxuLnEtbGF5b3V0LWZvb3RlciB7XFxuICB6LWluZGV4OiAyMDAwO1xcbn1cXG4ucS1sYXlvdXQtYmFja2Ryb3Age1xcbiAgei1pbmRleDogMjk5OSAhaW1wb3J0YW50O1xcbiAgd2lsbC1jaGFuZ2U6IGJhY2tncm91bmQtY29sb3I7XFxufVxcbi5xLWxheW91dC1kcmF3ZXItbWluaSB7XFxuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XFxufVxcbi5xLWxheW91dC1kcmF3ZXItbWluaSAucS1pdGVtLFxcbi5xLWxheW91dC1kcmF3ZXItbWluaSAucS1pdGVtLXNpZGUge1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxufVxcbi5xLWxheW91dC1kcmF3ZXItbWluaSAucS1taW5pLWRyYXdlci1oaWRlLFxcbi5xLWxheW91dC1kcmF3ZXItbWluaSAucS1jb2xsYXBzaWJsZS1pbm5lciA+IGRpdjpsYXN0LW9mLXR5cGUsXFxuLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLWxpc3QtaGVhZGVyLFxcbi5xLWxheW91dC1kcmF3ZXItbWluaSAucS1pdGVtLW1haW4sXFxuLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLWl0ZW0tc2lkZS1yaWdodCB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLW5vcm1hbCAucS1taW5pLWRyYXdlci1vbmx5IHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLWxheW91dC1kcmF3ZXItbW9iaWxlIC5xLW1pbmktZHJhd2VyLW9ubHksXFxuLnEtbGF5b3V0LWRyYXdlci1tb2JpbGUgLnEtbWluaS1kcmF3ZXItaGlkZSB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLW9wZW5lciB7XFxuICB6LWluZGV4OiAyMDAxO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgd2lkdGg6IDE1cHg7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbn1cXG4ucS1wYWdlLXN0aWNreS1zaHJpbmsge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcbi5xLXBhZ2Utc3RpY2t5LXNocmluayA+IHNwYW4ge1xcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XFxufVxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXBhZGRpbmcgLnEtbGF5b3V0IC5xLWxheW91dC1oZWFkZXIgPiAucS10b29sYmFyOm50aC1jaGlsZCgyKSxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci1wYWRkaW5nIC5xLWxheW91dCAucS1sYXlvdXQtaGVhZGVyID4gLnEtdGFiczpudGgtY2hpbGQoMikgLnEtdGFicy1oZWFkLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXBhZGRpbmcgLnEtbGF5b3V0IC5xLWxheW91dC1kcmF3ZXIudG9wLXBhZGRpbmcsXFxuYm9keS5xLWlvcy1zdGF0dXNiYXItcGFkZGluZyAubW9kYWw6bm90KC5taW5pbWl6ZWQpIC5xLWxheW91dC1oZWFkZXIgPiAucS10b29sYmFyOm50aC1jaGlsZCgxKSB7XFxuICBwYWRkaW5nLXRvcDogMjBweDtcXG4gIG1pbi1oZWlnaHQ6IDcwcHg7XFxufVxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLnEtbGF5b3V0IC5xLWxheW91dC1oZWFkZXIgPiAucS10b29sYmFyOm50aC1jaGlsZCgyKSxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLWxheW91dCAucS1sYXlvdXQtaGVhZGVyID4gLnEtdGFiczpudGgtY2hpbGQoMikgLnEtdGFicy1oZWFkLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLnEtbGF5b3V0IC5xLWxheW91dC1kcmF3ZXIudG9wLXBhZGRpbmcsXFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAubW9kYWw6bm90KC5taW5pbWl6ZWQpIC5xLWxheW91dC1oZWFkZXIgPiAucS10b29sYmFyOm50aC1jaGlsZCgxKSB7XFxuICBwYWRkaW5nLXRvcDogZW52KHNhZmUtYXJlYS1pbnNldC10b3ApO1xcbn1cXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLWxheW91dCAucS1sYXlvdXQtZm9vdGVyID4gLnEtdG9vbGJhcjpsYXN0LWNoaWxkLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLnEtbGF5b3V0IC5xLWxheW91dC1mb290ZXIgPiAucS10YWJzOmxhc3QtY2hpbGQgLnEtdGFicy1oZWFkLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLnEtbGF5b3V0IC5xLWxheW91dC1kcmF3ZXIudG9wLXBhZGRpbmcsXFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAubW9kYWw6bm90KC5taW5pbWl6ZWQpIC5xLWxheW91dC1mb290ZXIgPiAucS10b29sYmFyOmxhc3QtY2hpbGQge1xcbiAgcGFkZGluZy1ib3R0b206IGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTtcXG4gIG1pbi1oZWlnaHQ6IDcwcHg7XFxufVxcbi5xLWxheW91dC1hbmltYXRlIC5xLWxheW91dC10cmFuc2l0aW9uIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMTJzIGVhc2UtaW4gIWltcG9ydGFudDtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjEycyBlYXNlLWluICFpbXBvcnRhbnQ7XFxufVxcbi5xLWJvZHktZHJhd2VyLXRvZ2dsZSB7XFxuICBvdmVyZmxvdy14OiBoaWRkZW4gIWltcG9ydGFudDtcXG59XFxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICAubGF5b3V0LXBhZGRpbmcge1xcbiAgICBwYWRkaW5nOiAxLjVyZW0gMC41cmVtO1xcbiAgfVxcbiAgLmxheW91dC1wYWRkaW5nLmhvcml6b250YWwge1xcbiAgICBwYWRkaW5nOiAwIDAuNXJlbTtcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcXG4gIC5sYXlvdXQtcGFkZGluZyB7XFxuICAgIHBhZGRpbmc6IDEuNXJlbSAycmVtO1xcbiAgICBtYXJnaW46IGF1dG87XFxuICB9XFxuICAubGF5b3V0LXBhZGRpbmcuaG9yaXpvbnRhbCB7XFxuICAgIHBhZGRpbmc6IDAgMnJlbTtcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XFxuICAubGF5b3V0LXBhZGRpbmcge1xcbiAgICBwYWRkaW5nOiAyLjVyZW0gM3JlbTtcXG4gICAgbWFyZ2luOiBhdXRvO1xcbiAgfVxcbiAgLmxheW91dC1wYWRkaW5nLmhvcml6b250YWwge1xcbiAgICBwYWRkaW5nOiAwIDNyZW07XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcXG4gIC5sYXlvdXQtcGFkZGluZyB7XFxuICAgIHBhZGRpbmc6IDNyZW0gNHJlbTtcXG4gICAgbWFyZ2luOiBhdXRvO1xcbiAgfVxcbiAgLmxheW91dC1wYWRkaW5nLmhvcml6b250YWwge1xcbiAgICBwYWRkaW5nOiAwIDRyZW07XFxuICB9XFxufVxcbi5xLWl0ZW0tc3RhbXAge1xcbiAgZm9udC1zaXplOiAwLjhyZW07XFxuICBsaW5lLWhlaWdodDogMC44cmVtO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIG1hcmdpbjogMC4zcmVtIDA7XFxufVxcbi5xLWl0ZW0tc2lkZSB7XFxuICBjb2xvcjogIzczNzM3MztcXG4gIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvO1xcbiAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcXG4gIG1pbi13aWR0aDogMzhweDtcXG59XFxuLnEtaXRlbS1zaWRlLXJpZ2h0IHtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXG4ucS1pdGVtLWF2YXRhcixcXG4ucS1pdGVtLWF2YXRhciBpbWcge1xcbiAgd2lkdGg6IDM4cHg7XFxuICBoZWlnaHQ6IDM4cHg7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxufVxcbi5xLWl0ZW0tbGV0dGVyLFxcbi5xLWl0ZW0taWNvbiB7XFxuICBmb250LXNpemU6IDI0cHg7XFxufVxcbi5xLWl0ZW0taW52ZXJ0ZWQge1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgY29sb3I6ICNmZmY7XFxuICBiYWNrZ3JvdW5kOiAjNzM3MzczO1xcbiAgaGVpZ2h0OiAzOHB4O1xcbiAgd2lkdGg6IDM4cHg7XFxufVxcbi5xLWl0ZW0taW52ZXJ0ZWQsXFxuLnEtaXRlbS1pbnZlcnRlZCAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMjBweDtcXG59XFxuLnEtaXRlbS1tYWluIHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcXG4gIG1pbi13aWR0aDogMDtcXG59XFxuLnEtaXRlbS1tYWluLWluc2V0IHtcXG4gIG1hcmdpbi1sZWZ0OiA0OHB4O1xcbn1cXG4ucS1pdGVtLWxhYmVsIHtcXG4gIGxpbmUtaGVpZ2h0OiAxLjI7XFxufVxcbi5xLWl0ZW0tbGFiZWwgPiBzcGFuIHtcXG4gIGNvbG9yOiAjNzU3NTc1O1xcbn1cXG4ucS1pdGVtLXN1YmxhYmVsIHtcXG4gIGNvbG9yOiAjNzU3NTc1O1xcbiAgZm9udC1zaXplOiA5MCU7XFxuICBtYXJnaW4tdG9wOiAwLjJyZW07XFxufVxcbi5xLWl0ZW0tc3VibGFiZWwgPiBzcGFuIHtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxufVxcbi5xLWl0ZW0tc2VjdGlvbiArIC5xLWl0ZW0tc2VjdGlvbiB7XFxuICBtYXJnaW4tbGVmdDogMTBweDtcXG59XFxuLnEtaXRlbSB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxuICBwYWRkaW5nOiA4cHggMTZweDtcXG4gIG1pbi1oZWlnaHQ6IDQwcHg7XFxufVxcbi5xLWl0ZW0uYWN0aXZlLFxcbi5xLWl0ZW0ucm91dGVyLWxpbmstYWN0aXZlLFxcbi5xLWl0ZW06Zm9jdXMge1xcbiAgYmFja2dyb3VuZDogcmdiYSgxODksMTg5LDE4OSwwLjQpO1xcbn1cXG4ucS1pdGVtOmZvY3VzIHtcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5xLWl0ZW0taW1hZ2Uge1xcbiAgbWluLXdpZHRoOiAxMTRweDtcXG4gIG1heC13aWR0aDogMTE0cHg7XFxuICBtYXgtaGVpZ2h0OiAxMTRweDtcXG59XFxuLnEtbGlzdC1tdWx0aWxpbmUgPiAucS1pdGVtLFxcbi5xLWl0ZW0tbXVsdGlsaW5lIHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xcbn1cXG4ucS1saXN0LWxpbmsgPiAucS1pdGVtLFxcbi5xLWl0ZW0tbGluayB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLWxpc3QtaGlnaGxpZ2h0ID4gLnEtaXRlbTpob3ZlcixcXG4ucS1pdGVtLWhpZ2hsaWdodDpob3ZlcixcXG4ucS1saXN0LWxpbmsgPiAucS1pdGVtOmhvdmVyLFxcbi5xLWl0ZW0tbGluazpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDE4OSwxODksMTg5LDAuNSk7XFxufVxcbi5xLWxpc3Qtc2VwYXJhdG9yID4gLnEtaXRlbS1kaXZpc2lvbiArIC5xLWl0ZW0tZGl2aXNpb24sXFxuLnEtaXRlbS1kaXZpc2lvbiArIC5xLWl0ZW0tc2VwYXJhdG9yIHtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTBlMGUwO1xcbn1cXG4ucS1saXN0LWluc2V0LXNlcGFyYXRvciA+IC5xLWl0ZW0tZGl2aXNpb24gKyAucS1pdGVtLWRpdmlzaW9uOmFmdGVyLFxcbi5xLWl0ZW0tZGl2aXNpb24gKyAucS1pdGVtLWluc2V0LXNlcGFyYXRvcjphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgbGVmdDogNjRweDtcXG4gIGhlaWdodDogMXB4O1xcbiAgYmFja2dyb3VuZDogI2UwZTBlMDtcXG59XFxuLnEtbGlzdC1kZW5zZSA+IC5xLWl0ZW0sXFxuLnEtaXRlbS1kZW5zZSB7XFxuICBwYWRkaW5nOiAzcHggMTZweDtcXG4gIG1pbi1oZWlnaHQ6IDhweDtcXG59XFxuLnEtbGlzdC1zcGFyc2UgPiAucS1pdGVtLFxcbi5xLWl0ZW0tc3BhcnNlIHtcXG4gIHBhZGRpbmc6IDIyLjRweCAxNnB4O1xcbiAgbWluLWhlaWdodDogNTZweDtcXG59XFxuLnEtbGlzdC1zdHJpcGVkID4gLnEtaXRlbTpudGgtY2hpbGQoZXZlbikge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxODksMTg5LDE4OSwwLjY1KTtcXG59XFxuLnEtbGlzdC1zdHJpcGVkLW9kZCA+IC5xLWl0ZW06bnRoLWNoaWxkKG9kZCkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxODksMTg5LDE4OSwwLjY1KTtcXG59XFxuLnEtbGlzdCB7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xcbiAgcGFkZGluZzogOHB4IDA7XFxufVxcbi5xLWl0ZW0tc2VwYXJhdG9yLWNvbXBvbmVudCB7XFxuICBtYXJnaW46IDhweCAwO1xcbiAgaGVpZ2h0OiAxcHg7XFxuICBib3JkZXI6IDA7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xcbn1cXG4ucS1pdGVtLXNlcGFyYXRvci1jb21wb25lbnQ6bGFzdC1jaGlsZCB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1pdGVtLXNlcGFyYXRvci1jb21wb25lbnQgKyAucS1saXN0LWhlYWRlciB7XFxuICBtYXJnaW4tdG9wOiAtOHB4O1xcbn1cXG4ucS1pdGVtLXNlcGFyYXRvci1pbnNldC1jb21wb25lbnQge1xcbiAgbWFyZ2luLWxlZnQ6IDY0cHg7XFxufVxcbi5xLWxpc3QtaGVhZGVyIHtcXG4gIGNvbG9yOiAjNzU3NTc1O1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xcbiAgbWluLWhlaWdodDogNDhweDtcXG4gIHBhZGRpbmc6IDE1cHggMTZweDtcXG59XFxuLnEtbGlzdC1oZWFkZXItaW5zZXQge1xcbiAgcGFkZGluZy1sZWZ0OiA2NHB4O1xcbn1cXG4ucS1saXN0LWRhcmsgLnEtaXRlbS1zaWRlLFxcbi5xLWl0ZW0tZGFyayAucS1pdGVtLXNpZGUge1xcbiAgY29sb3I6ICNiYmI7XFxufVxcbi5xLWxpc3QtZGFyayAucS1pdGVtLWludmVydGVkLFxcbi5xLWl0ZW0tZGFyayAucS1pdGVtLWludmVydGVkIHtcXG4gIGNvbG9yOiAjMDAwO1xcbiAgYmFja2dyb3VuZDogI2JiYjtcXG59XFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0tbGFiZWwgPiBzcGFuLFxcbi5xLWl0ZW0tZGFyayAucS1pdGVtLWxhYmVsID4gc3BhbixcXG4ucS1saXN0LWRhcmsgLnEtaXRlbS1zdWJsYWJlbCxcXG4ucS1pdGVtLWRhcmsgLnEtaXRlbS1zdWJsYWJlbCB7XFxuICBjb2xvcjogI2JkYmRiZDtcXG59XFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0sXFxuLnEtaXRlbS1kYXJrIC5xLWl0ZW0ge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLWxpc3QtZGFyayAucS1pdGVtLmFjdGl2ZSxcXG4ucS1pdGVtLWRhcmsgLnEtaXRlbS5hY3RpdmUsXFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0ucm91dGVyLWxpbmstYWN0aXZlLFxcbi5xLWl0ZW0tZGFyayAucS1pdGVtLnJvdXRlci1saW5rLWFjdGl2ZSxcXG4ucS1saXN0LWRhcmsgLnEtaXRlbTpmb2N1cyxcXG4ucS1pdGVtLWRhcmsgLnEtaXRlbTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDExNywxMTcsMTE3LDAuMik7XFxufVxcbi5xLWxpc3QtZGFyayB7XFxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMzIpO1xcbn1cXG4ucS1saXN0LWRhcmsucS1saXN0LXNlcGFyYXRvciA+IC5xLWl0ZW0tZGl2aXNpb24gKyAucS1pdGVtLWRpdmlzaW9uLFxcbi5xLWxpc3QtZGFyayAucS1pdGVtLWRpdmlzaW9uICsgLnEtaXRlbS1zZXBhcmF0b3Ige1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4zMik7XFxufVxcbi5xLWxpc3QtZGFyay5xLWxpc3QtaW5zZXQtc2VwYXJhdG9yID4gLnEtaXRlbS1kaXZpc2lvbiArIC5xLWl0ZW0tZGl2aXNpb246YWZ0ZXIsXFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0tZGl2aXNpb24gKyAucS1pdGVtLWluc2V0LXNlcGFyYXRvcjphZnRlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMzIpO1xcbn1cXG4ucS1saXN0LWRhcmsucS1saXN0LXN0cmlwZWQgPiAucS1pdGVtOm50aC1jaGlsZChldmVuKSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDExNywxMTcsMTE3LDAuNDUpO1xcbn1cXG4ucS1saXN0LWRhcmsucS1saXN0LXN0cmlwZWQtb2RkID4gLnEtaXRlbTpudGgtY2hpbGQob2RkKSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDExNywxMTcsMTE3LDAuNDUpO1xcbn1cXG4ucS1saXN0LWRhcmsgLnEtaXRlbS1zZXBhcmF0b3ItY29tcG9uZW50IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4zMik7XFxufVxcbi5xLWxpc3QtZGFyayAucS1saXN0LWhlYWRlciB7XFxuICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjY0KTtcXG59XFxuLnEtbGlzdC1kYXJrLnEtbGlzdC1oaWdobGlnaHQgPiAucS1pdGVtOmhvdmVyLFxcbi5xLWxpc3QtZGFyayAucS1pdGVtLWhpZ2hsaWdodDpob3ZlcixcXG4ucS1saXN0LWRhcmsucS1saXN0LWxpbmsgPiAucS1pdGVtOmhvdmVyLFxcbi5xLWxpc3QtZGFyayAucS1pdGVtLWxpbms6aG92ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgxMTcsMTE3LDExNywwLjMpO1xcbn1cXG5ib2R5LndpdGgtbG9hZGluZyB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucS1sb2FkaW5nIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC40KTtcXG59XFxuLnEtbG9hZGluZyA+IGRpdiB7XFxuICBtYXJnaW46IDQwcHggMjBweCAwO1xcbiAgbWF4LXdpZHRoOiA0NTBweDtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIHRleHQtc2hhZG93OiAwIDAgN3B4ICMwMDA7XFxufVxcbi5tb2RhbC1iYWNrZHJvcCB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNCk7XFxufVxcbi5tb2RhbC5tYXhpbWl6ZWQgLm1vZGFsLWJhY2tkcm9wIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5tb2RhbC1jb250ZW50IHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxuICB3aWxsLWNoYW5nZTogc2Nyb2xsLXBvc2l0aW9uO1xcbiAgbWluLXdpZHRoOiAyODBweDtcXG4gIG1heC1oZWlnaHQ6IDgwdmg7XFxuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5tb2RhbCB7XFxuICB6LWluZGV4OiA1MDAwO1xcbn1cXG4ubW9kYWwubWluaW1pemVkIC5tb2RhbC1jb250ZW50IHtcXG4gIG1heC13aWR0aDogODB2dztcXG4gIG1heC1oZWlnaHQ6IDgwdmg7XFxufVxcbi5tb2RhbC5tYXhpbWl6ZWQgLm1vZGFsLWNvbnRlbnQge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBtYXgtaGVpZ2h0OiAxMDAlO1xcbiAgYm9yZGVyLXJhZGl1czogMDtcXG59XFxuLm1vZGFsLm1heGltaXplZCAubW9kYWwtY29udGVudCAucS1sYXlvdXQtY29udGFpbmVyIHtcXG4gIG1pbi1oZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7XFxufVxcbi5xLW1vZGFsLWVudGVyLFxcbi5xLW1vZGFsLWxlYXZlLWFjdGl2ZSB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gIC5tb2RhbDpub3QoLm1heGltaXplZCkucS1tb2RhbC1lbnRlciAubW9kYWwtY29udGVudCB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcXG4gIH1cXG4gIC5tb2RhbDpub3QoLm1heGltaXplZCkucS1tb2RhbC1sZWF2ZS1hY3RpdmUgLm1vZGFsLWNvbnRlbnQge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC44KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XFxuICB9XFxuICAubW9kYWwubWF4aW1pemVkLnEtbW9kYWwtZW50ZXIgLm1vZGFsLWNvbnRlbnQsXFxuICAubW9kYWwubWF4aW1pemVkLnEtbW9kYWwtbGVhdmUtYWN0aXZlIC5tb2RhbC1jb250ZW50IHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzAlKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzAlKTtcXG4gIH1cXG59XFxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICAucS1yZXNwb25zaXZlLW1vZGFsIHtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIH1cXG4gIC5tb2RhbDpub3QoLm1pbmltaXplZCkgLm1vZGFsLWNvbnRlbnQge1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XFxuICAgIGJvcmRlci1yYWRpdXM6IDA7XFxuICB9XFxuICAubW9kYWw6bm90KC5taW5pbWl6ZWQpIC5tb2RhbC1jb250ZW50IC5xLWxheW91dC1jb250YWluZXIge1xcbiAgICBtaW4taGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50O1xcbiAgfVxcbiAgLm1vZGFsOm5vdCgubWluaW1pemVkKS5xLW1vZGFsLWVudGVyIC5tb2RhbC1jb250ZW50LFxcbiAgLm1vZGFsOm5vdCgubWluaW1pemVkKS5xLW1vZGFsLWxlYXZlLWFjdGl2ZSAubW9kYWwtY29udGVudCB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwJSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwJSk7XFxuICB9XFxuICAubW9kYWwubWluaW1pemVkLnEtbW9kYWwtZW50ZXIgLm1vZGFsLWNvbnRlbnQge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4yKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XFxuICB9XFxuICAubW9kYWwubWluaW1pemVkLnEtbW9kYWwtbGVhdmUtYWN0aXZlIC5tb2RhbC1jb250ZW50IHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuOCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xcbiAgfVxcbn1cXG4ucS1tYXhpbWl6ZWQtbW9kYWwge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLm1vZGFsLFxcbi5tb2RhbC1jb250ZW50IHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcXG59XFxuLm1vZGFsLWhlYWRlciB7XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgcGFkZGluZzogMjRweCAyNHB4IDEwcHggMjRweDtcXG4gIGZvbnQtc2l6ZTogMS42cmVtO1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG59XFxuLm1vZGFsLWJvZHkge1xcbiAgcGFkZGluZzogMTBweCAyNHB4O1xcbiAgY29sb3I6IHJnYmEoMCwwLDAsMC41KTtcXG59XFxuLnNtYWxsLW1vZGFsLXNjcm9sbCxcXG4ubW9kYWwtc2Nyb2xsLFxcbi5iaWctbW9kYWwtc2Nyb2xsIHtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xcbiAgd2lsbC1jaGFuZ2U6IHNjcm9sbC1wb3NpdGlvbjtcXG59XFxuLnNtYWxsLW1vZGFsLXNjcm9sbCB7XFxuICBtYXgtaGVpZ2h0OiAxNTZweDtcXG59XFxuLm1vZGFsLXNjcm9sbCB7XFxuICBtYXgtaGVpZ2h0OiAyNDBweDtcXG59XFxuLmJpZy1tb2RhbC1zY3JvbGwge1xcbiAgbWF4LWhlaWdodDogNDgwcHg7XFxufVxcbi5tb2RhbC1idXR0b25zIHtcXG4gIHBhZGRpbmc6IDIycHggOHB4IDhweDtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGVuZDtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBlbmQ7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XFxuICBjb2xvcjogIzAyN2JlMztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXByaW1hcnkpO1xcbn1cXG4ubW9kYWwtYnV0dG9ucy5yb3cgLnEtYnRuICsgLnEtYnRuIHtcXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XFxufVxcbi5tb2RhbC1idXR0b25zLmNvbHVtbiB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogZW5kO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcXG59XFxuLm1vZGFsLWJ1dHRvbnMuY29sdW1uIC5xLWJ0biArIC5xLWJ0biB7XFxuICBtYXJnaW4tdG9wOiA4cHg7XFxufVxcbi5xLW1vZGFsLWJvdHRvbS1lbnRlcixcXG4ucS1tb2RhbC1ib3R0b20tbGVhdmUtYWN0aXZlIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLW1vZGFsLWJvdHRvbS1lbnRlciAubW9kYWwtY29udGVudCxcXG4ucS1tb2RhbC1ib3R0b20tbGVhdmUtYWN0aXZlIC5tb2RhbC1jb250ZW50IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMCUpO1xcbn1cXG4ucS1tb2RhbC10b3AtZW50ZXIsXFxuLnEtbW9kYWwtdG9wLWxlYXZlLWFjdGl2ZSB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1tb2RhbC10b3AtZW50ZXIgLm1vZGFsLWNvbnRlbnQsXFxuLnEtbW9kYWwtdG9wLWxlYXZlLWFjdGl2ZSAubW9kYWwtY29udGVudCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMCUpO1xcbn1cXG4ucS1tb2RhbC1yaWdodC1lbnRlcixcXG4ucS1tb2RhbC1yaWdodC1sZWF2ZS1hY3RpdmUge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtbW9kYWwtcmlnaHQtZW50ZXIgLm1vZGFsLWNvbnRlbnQsXFxuLnEtbW9kYWwtcmlnaHQtbGVhdmUtYWN0aXZlIC5tb2RhbC1jb250ZW50IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDMwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMCUpO1xcbn1cXG4ucS1tb2RhbC1sZWZ0LWVudGVyLFxcbi5xLW1vZGFsLWxlZnQtbGVhdmUtYWN0aXZlIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLW1vZGFsLWxlZnQtZW50ZXIgLm1vZGFsLWNvbnRlbnQsXFxuLnEtbW9kYWwtbGVmdC1sZWF2ZS1hY3RpdmUgLm1vZGFsLWNvbnRlbnQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzAlKTtcXG59XFxuLnEtbm90aWZpY2F0aW9ucyA+IGRpdiB7XFxuICB6LWluZGV4OiA5NTAwO1xcbn1cXG4ucS1ub3RpZmljYXRpb24tbGlzdCB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5xLW5vdGlmaWNhdGlvbi1saXN0LWNlbnRlciB7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxufVxcbi5xLW5vdGlmaWNhdGlvbi1saXN0LXRvcCB7XFxuICB0b3A6IDA7XFxufVxcbi5xLW5vdGlmaWNhdGlvbi1saXN0LWJvdHRvbSB7XFxuICBib3R0b206IDA7XFxufVxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLnEtbm90aWZpY2F0aW9uLWxpc3QtY2VudGVyLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLnEtbm90aWZpY2F0aW9uLWxpc3QtdG9wIHtcXG4gIHRvcDogZW52KHNhZmUtYXJlYS1pbnNldC10b3ApO1xcbn1cXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLW5vdGlmaWNhdGlvbi1saXN0LWNlbnRlcixcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLW5vdGlmaWNhdGlvbi1saXN0LWJvdHRvbSB7XFxuICBib3R0b206IGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTtcXG59XFxuLnEtbm90aWZpY2F0aW9uIHtcXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcXG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBtYXJnaW46IDEwcHggMTBweCAwO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMXM7XFxuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDFzO1xcbiAgei1pbmRleDogOTUwMDtcXG4gIG1heC13aWR0aDogMTAwJTtcXG59XFxuLnEtbm90aWZpY2F0aW9uLXRvcC1sZWZ0LWVudGVyLFxcbi5xLW5vdGlmaWNhdGlvbi10b3AtbGVmdC1sZWF2ZS10byxcXG4ucS1ub3RpZmljYXRpb24tdG9wLWVudGVyLFxcbi5xLW5vdGlmaWNhdGlvbi10b3AtbGVhdmUtdG8sXFxuLnEtbm90aWZpY2F0aW9uLXRvcC1yaWdodC1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tdG9wLXJpZ2h0LWxlYXZlLXRvIHtcXG4gIG9wYWNpdHk6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTBweCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTBweCk7XFxuICB6LWluZGV4OiA5NDk5O1xcbn1cXG4ucS1ub3RpZmljYXRpb24tbGVmdC1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tbGVmdC1sZWF2ZS10byxcXG4ucS1ub3RpZmljYXRpb24tY2VudGVyLWVudGVyLFxcbi5xLW5vdGlmaWNhdGlvbi1jZW50ZXItbGVhdmUtdG8sXFxuLnEtbm90aWZpY2F0aW9uLXJpZ2h0LWVudGVyLFxcbi5xLW5vdGlmaWNhdGlvbi1yaWdodC1sZWF2ZS10byxcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLWxlZnQtZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1sZWZ0LWxlYXZlLXRvLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1sZWF2ZS10byxcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLXJpZ2h0LWVudGVyLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tcmlnaHQtbGVhdmUtdG8ge1xcbiAgb3BhY2l0eTogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwcHgpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTBweCk7XFxuICB6LWluZGV4OiA5NDk5O1xcbn1cXG4ucS1ub3RpZmljYXRpb24tdG9wLWxlZnQtbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi10b3AtbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi10b3AtcmlnaHQtbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1sZWZ0LWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tY2VudGVyLWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tcmlnaHQtbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tbGVmdC1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1yaWdodC1sZWF2ZS1hY3RpdmUge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgei1pbmRleDogOTQ5OTtcXG4gIG1hcmdpbi1sZWZ0OiAwO1xcbiAgbWFyZ2luLXJpZ2h0OiAwO1xcbn1cXG4ucS1ub3RpZmljYXRpb24tdG9wLWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tY2VudGVyLWxlYXZlLWFjdGl2ZSB7XFxuICB0b3A6IDA7XFxufVxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tbGVmdC1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1yaWdodC1sZWF2ZS1hY3RpdmUge1xcbiAgYm90dG9tOiAwO1xcbn1cXG4ucS1vcHRpb24taW5uZXIge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgbGluZS1oZWlnaHQ6IDA7XFxufVxcbi5xLW9wdGlvbi1pbm5lciArIC5xLW9wdGlvbi1sYWJlbCB7XFxuICBtYXJnaW4tbGVmdDogOHB4O1xcbn1cXG4ucS1vcHRpb24ge1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG59XFxuLnEtb3B0aW9uIGlucHV0IHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuLnEtb3B0aW9uLnJldmVyc2UgLnEtb3B0aW9uLWlubmVyICsgLnEtb3B0aW9uLWxhYmVsIHtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbiAgbWFyZ2luLWxlZnQ6IDA7XFxufVxcbi5xLW9wdGlvbi1ncm91cC1pbmxpbmUtb3B0cyA+IGRpdiB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XFxuICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG59XFxuLnEtb3B0aW9uLWdyb3VwIHtcXG4gIG1hcmdpbjogLTVweDtcXG4gIHBhZGRpbmc6IDVweCAwO1xcbn1cXG4ucS1wYWdpbmF0aW9uIGlucHV0IHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuLnEtcGFnaW5hdGlvbiAucS1idG4ge1xcbiAgcGFkZGluZzogMCA1cHggIWltcG9ydGFudDtcXG59XFxuLnEtcGFnaW5hdGlvbiAucS1idG4uZGlzYWJsZWQge1xcbiAgY29sb3I6ICM3Nzc7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1mYWRlZCk7XFxufVxcbi5xLXBhcmFsbGF4IHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxufVxcbi5xLXBhcmFsbGF4LW1lZGlhID4gaW1nLFxcbi5xLXBhcmFsbGF4LW1lZGlhID4gdmlkZW8ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogNTAlO1xcbiAgYm90dG9tOiAwO1xcbiAgbWluLXdpZHRoOiAxMDAlO1xcbiAgbWluLWhlaWdodDogMTAwJTtcXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XFxufVxcbi5xLXBhcmFsbGF4LXRleHQge1xcbiAgdGV4dC1zaGFkb3c6IDAgMCA1cHggI2ZmZjtcXG59XFxuLnEtcG9wb3ZlciB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICB6LWluZGV4OiA4MDAwO1xcbiAgb3ZlcmZsb3cteTogYXV0bztcXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcXG4gIG1heC13aWR0aDogMTAwdnc7XFxuICBvdXRsaW5lOiAwO1xcbn1cXG4ucS1wb3BvdmVyID4gLnEtbGlzdDpvbmx5LWNoaWxkIHtcXG4gIGJvcmRlcjogbm9uZTtcXG59XFxuYm9keSBkaXYgLnEtcG9wb3ZlciB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1wcm9ncmVzcyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBoZWlnaHQ6IDVweDtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnEtcHJvZ3Jlc3MtbW9kZWwge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1wcm9ncmVzcy1tb2RlbC5hbmltYXRlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXByb2dyZXNzLXN0cmlwZXMgMnMgbGluZWFyIGluZmluaXRlO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtcHJvZ3Jlc3Mtc3RyaXBlcyAycyBsaW5lYXIgaW5maW5pdGU7XFxufVxcbi5xLXByb2dyZXNzLW1vZGVsOm5vdCguaW5kZXRlcm1pbmF0ZSkge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGxpbmVhcjtcXG4gIHRyYW5zaXRpb246IHdpZHRoIDAuM3MgbGluZWFyO1xcbn1cXG4ucS1wcm9ncmVzcy1tb2RlbC5pbmRldGVybWluYXRlOmJlZm9yZSxcXG4ucS1wcm9ncmVzcy1tb2RlbC5pbmRldGVybWluYXRlOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgYmFja2dyb3VuZDogaW5oZXJpdDtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICBib3R0b206IDA7XFxuICB3aWxsLWNoYW5nZTogbGVmdCwgcmlnaHQ7XFxufVxcbi5xLXByb2dyZXNzLW1vZGVsLmluZGV0ZXJtaW5hdGU6YmVmb3JlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUgMi4xcyBjdWJpYy1iZXppZXIoMC42NSwgMC44MTUsIDAuNzM1LCAwLjM5NSkgaW5maW5pdGU7XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1wcm9ncmVzcy1pbmRldGVybWluYXRlIDIuMXMgY3ViaWMtYmV6aWVyKDAuNjUsIDAuODE1LCAwLjczNSwgMC4zOTUpIGluZmluaXRlO1xcbn1cXG4ucS1wcm9ncmVzcy1tb2RlbC5pbmRldGVybWluYXRlOmFmdGVyIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUtc2hvcnQgMi4xcyBjdWJpYy1iZXppZXIoMC4xNjUsIDAuODQsIDAuNDQsIDEpIGluZmluaXRlO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZS1zaG9ydCAyLjFzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSkgaW5maW5pdGU7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMS4xNXM7XFxuICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogMS4xNXM7XFxufVxcbi5xLXByb2dyZXNzLW1vZGVsLnN0cmlwZSxcXG4ucS1wcm9ncmVzcy1tb2RlbC5zdHJpcGU6YmVmb3JlLFxcbi5xLXByb2dyZXNzLW1vZGVsLnN0cmlwZTphZnRlciB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KSAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZC1zaXplOiA0MHB4IDQwcHggIWltcG9ydGFudDtcXG59XFxuLnEtcHJvZ3Jlc3MtdHJhY2sge1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogd2lkdGggMC4zcyBsaW5lYXI7XFxuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGxpbmVhcjtcXG59XFxuLnEtcHJvZ3Jlc3MtYnVmZmVyIHtcXG4gIHRvcDogNTAlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG4gIGhlaWdodDogNHB4O1xcbiAgcmlnaHQ6IDA7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IHdpZHRoIDAuM3MgbGluZWFyO1xcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBsaW5lYXI7XFxuICAtd2Via2l0LW1hc2s6IHVybChcIiArIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzFfX18gKyBcIik7XFxuICAgICAgICAgIG1hc2s6IHVybChcIiArIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzFfX18gKyBcIik7XFxufVxcbi5xLXByb2dyZXNzLXRyYWNrLFxcbi5xLXByb2dyZXNzLWJ1ZmZlciB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxuICBvcGFjaXR5OiAwLjI7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxufVxcbi5wdWxsLXRvLXJlZnJlc2gge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4ucHVsbC10by1yZWZyZXNoLW1lc3NhZ2Uge1xcbiAgaGVpZ2h0OiA2NXB4O1xcbiAgZm9udC1zaXplOiAxcmVtO1xcbn1cXG4ucHVsbC10by1yZWZyZXNoLW1lc3NhZ2UgLnEtaWNvbiB7XFxuICBmb250LXNpemU6IDJyZW07XFxuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XFxufVxcbi5xLXJhZGlvLXVuY2hlY2tlZCxcXG4ucS1yYWRpby1jaGVja2VkLFxcbi5xLXJhZGlvIC5xLW9wdGlvbi1pbm5lciB7XFxuICBoZWlnaHQ6IDIxcHg7XFxuICB3aWR0aDogMjFweDtcXG4gIG1pbi13aWR0aDogMjFweDtcXG4gIGZvbnQtc2l6ZTogMjFweDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSksIC13ZWJraXQtdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbi5xLXJhZGlvLXVuY2hlY2tlZCB7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4ucS1yYWRpby1jaGVja2VkIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJSAwO1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlIDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XFxufVxcbi5xLXJhZGlvIC5xLW9wdGlvbi1pbm5lci5hY3RpdmUgLnEtcmFkaW8tdW5jaGVja2VkIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLXJhZGlvIC5xLW9wdGlvbi1pbm5lci5hY3RpdmUgLnEtcmFkaW8tY2hlY2tlZCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxufVxcbi5xLXJhdGluZyB7XFxuICBjb2xvcjogI2ZmZWIzYjtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcbi5xLXJhdGluZyBzcGFuIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgZGlzcGxheTogaW5oZXJpdDtcXG59XFxuLnEtcmF0aW5nIGkge1xcbiAgY29sb3I6IGN1cnJlbnRDb2xvcjtcXG4gIHRleHQtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjEyKSwgMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4yNCk7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxuICBvcGFjaXR5OiAwLjQ7XFxuICBwb2ludGVyLWV2ZW50czogYWxsO1xcbn1cXG4ucS1yYXRpbmcgaS5ob3ZlcmVkIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjMpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMyk7XFxufVxcbi5xLXJhdGluZyBpLmV4c2VsZWN0ZWQge1xcbiAgb3BhY2l0eTogMC43O1xcbn1cXG4ucS1yYXRpbmcgaS5hY3RpdmUge1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLnEtcmF0aW5nIGkgKyBpIHtcXG4gIG1hcmdpbi1sZWZ0OiAwLjNyZW07XFxufVxcbi5xLXJhdGluZy5lZGl0YWJsZSBpIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnEtcmF0aW5nOm5vdCguZWRpdGFibGUpIHNwYW4sXFxuLnEtcmF0aW5nIGkge1xcbiAgb3V0bGluZTogMDtcXG59XFxuLnEtc2Nyb2xsYXJlYS10aHVtYiB7XFxuICBiYWNrZ3JvdW5kOiAjMDAwO1xcbiAgd2lkdGg6IDEwcHg7XFxuICByaWdodDogMDtcXG4gIG9wYWNpdHk6IDAuMjtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xcbn1cXG4ucS1zY3JvbGxhcmVhLXRodW1iLmludmlzaWJsZS10aHVtYiB7XFxuICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XFxufVxcbi5xLXNjcm9sbGFyZWEtdGh1bWI6aG92ZXIge1xcbiAgb3BhY2l0eTogMC4zO1xcbn1cXG4ucS1zY3JvbGxhcmVhLXRodW1iOmFjdGl2ZSB7XFxuICBvcGFjaXR5OiAwLjU7XFxufVxcbi5xLXRvb2xiYXIgLnEtc2VhcmNoIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4yNSk7XFxufVxcbi5xLXNsaWRlci10cmFjayxcXG4ucS1zbGlkZXItbWFyayB7XFxuICBvcGFjaXR5OiAwLjQ7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXNsaWRlci10cmFjayB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgaGVpZ2h0OiAycHg7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLnEtc2xpZGVyLXRyYWNrOm5vdCguZHJhZ2dpbmcpIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XFxufVxcbi5xLXNsaWRlci10cmFjay5hY3RpdmUtdHJhY2sge1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLnEtc2xpZGVyLXRyYWNrLnRyYWNrLWRyYWdnYWJsZS5kcmFnZ2luZyB7XFxuICBoZWlnaHQ6IDRweDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogaGVpZ2h0IDAuM3MgZWFzZTtcXG4gIHRyYW5zaXRpb246IGhlaWdodCAwLjNzIGVhc2U7XFxufVxcbi5xLXNsaWRlci10cmFjay5oYW5kbGUtYXQtbWluaW11bSB7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG59XFxuLnEtc2xpZGVyLW1hcmsge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICBoZWlnaHQ6IDEwcHg7XFxuICB3aWR0aDogMnB4O1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XFxufVxcbi5xLXNsaWRlci1oYW5kbGUtY29udGFpbmVyIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIG1hcmdpbi1sZWZ0OiA2cHg7XFxuICBtYXJnaW4tcmlnaHQ6IDZweDtcXG59XFxuLnEtc2xpZGVyLWxhYmVsIHtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDZweDtcXG4gIG9wYWNpdHk6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDApIHNjYWxlKDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgwKSBzY2FsZSgwKTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnM7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcXG4gIHBhZGRpbmc6IDJweCA0cHg7XFxufVxcbi5xLXNsaWRlci1sYWJlbC5sYWJlbC1hbHdheXMge1xcbiAgb3BhY2l0eTogMTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTEzOSUpIHNjYWxlKDEpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtMTM5JSkgc2NhbGUoMSk7XFxufVxcbi5xLXNsaWRlci1oYW5kbGUge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XFxuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcXG4gIHdpZHRoOiAxMnB4O1xcbiAgaGVpZ2h0OiAxMnB4O1xcbiAgb3V0bGluZTogMDtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtc2xpZGVyLWhhbmRsZSAucS1jaGlwIHtcXG4gIG1heC13aWR0aDogdW5zZXQ7XFxufVxcbi5xLXNsaWRlci1oYW5kbGUuZHJhZ2dpbmcge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApIHNjYWxlKDEuMyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCkgc2NhbGUoMS4zKTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UsIC13ZWJraXQtdHJhbnNmb3JtIDAuM3MgZWFzZTtcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLCAtd2Via2l0LXRyYW5zZm9ybSAwLjNzIGVhc2U7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuM3MgZWFzZTtcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLCB0cmFuc2Zvcm0gMC4zcyBlYXNlLCAtd2Via2l0LXRyYW5zZm9ybSAwLjNzIGVhc2U7XFxufVxcbi5xLXNsaWRlci1oYW5kbGUuZHJhZ2dpbmcgLnEtc2xpZGVyLWxhYmVsIHtcXG4gIG9wYWNpdHk6IDE7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC0xMzklKSBzY2FsZSgxKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTEzOSUpIHNjYWxlKDEpO1xcbn1cXG4ucS1zbGlkZXItaGFuZGxlLmhhbmRsZS1hdC1taW5pbXVtIHtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxufVxcbi5xLXNsaWRlci1oYW5kbGUuaGFuZGxlLWF0LW1pbmltdW06YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxuICBib3JkZXI6IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXNsaWRlci1yaW5nIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogLTUwJTtcXG4gIGxlZnQ6IC01MCU7XFxuICB3aWR0aDogMjAwJTtcXG4gIGhlaWdodDogMjAwJTtcXG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIG9wYWNpdHk6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW47XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluO1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1zbGlkZXI6bm90KC5kaXNhYmxlZCk6bm90KC5yZWFkb25seSkgLnEtc2xpZGVyLWhhbmRsZS5kcmFnZ2luZyAucS1zbGlkZXItcmluZyxcXG4ucS1zbGlkZXI6bm90KC5kaXNhYmxlZCk6bm90KC5yZWFkb25seSkgLnEtc2xpZGVyLWhhbmRsZTpmb2N1cyAucS1zbGlkZXItcmluZyxcXG5ib2R5LmRlc2t0b3AgLnEtc2xpZGVyOm5vdCguZGlzYWJsZWQpOm5vdCgucmVhZG9ubHkpOmhvdmVyIC5xLXNsaWRlci1yaW5nIHtcXG4gIG9wYWNpdHk6IDAuNDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG59XFxuLnEtc2xpZGVyLmRpc2FibGVkIC5xLXNsaWRlci1oYW5kbGUge1xcbiAgYm9yZGVyOiAycHggc29saWQgI2ZmZjtcXG59XFxuLnEtc2xpZGVyLmRpc2FibGVkIC5xLXNsaWRlci1oYW5kbGUuaGFuZGxlLWF0LW1pbmltdW0ge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1zbGlkZXIge1xcbiAgaGVpZ2h0OiAyOHB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBjb2xvcjogIzAyN2JlMztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXByaW1hcnkpO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS1zbGlkZXIubGFiZWwtYWx3YXlzLFxcbi5xLXNsaWRlci53aXRoLXBhZGRpbmcge1xcbiAgcGFkZGluZzogMzZweCAwIDhweDtcXG4gIGhlaWdodDogNjRweDtcXG59XFxuLnEtc2xpZGVyLmhhcy1lcnJvciB7XFxuICBjb2xvcjogI2RiMjgyODtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLW5lZ2F0aXZlKTtcXG59XFxuLnEtc2xpZGVyLmhhcy13YXJuaW5nIHtcXG4gIGNvbG9yOiAjZjJjMDM3O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3Itd2FybmluZyk7XFxufVxcbi5xLXNwaW5uZXIge1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG59XFxuLnEtc3Bpbm5lci1tYXQge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtc3BpbiAycyBsaW5lYXIgaW5maW5pdGUgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXNwaW4gMnMgbGluZWFyIGluZmluaXRlIC8qIHJ0bDppZ25vcmUgKi87XFxuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXIgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlciAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1zcGlubmVyLW1hdCAucGF0aCB7XFxuICBzdHJva2UtZGFzaGFycmF5OiAxLCAyMDA7XFxuICBzdHJva2UtZGFzaG9mZnNldDogMDtcXG4gIHN0cm9rZS1saW5lY2FwOiByb3VuZDtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLW1hdC1kYXNoIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGUgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLW1hdC1kYXNoIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtc3RlcHBlciB7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtc3RlcHBlci10aXRsZSB7XFxuICBmb250LXNpemU6IDE0cHg7XFxufVxcbi5xLXN0ZXBwZXItc3VidGl0bGUge1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgb3BhY2l0eTogMC43O1xcbn1cXG4ucS1zdGVwcGVyLWRvdCB7XFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIHdpZHRoOiAyNHB4O1xcbiAgaGVpZ2h0OiAyNHB4O1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1zdGVwcGVyLWRvdCBzcGFuIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1zdGVwcGVyLXRhYiB7XFxuICBwYWRkaW5nOiAyNHB4O1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGNvbG9yIDAuMjhzLCBiYWNrZ3JvdW5kIDAuMjhzO1xcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4yOHMsIGJhY2tncm91bmQgMC4yOHM7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtd2FpdGluZyB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC13YWl0aW5nIC5xLXN0ZXBwZXItZG90IHtcXG4gIGNvbG9yOiByZ2JhKDAsMCwwLDAuNDIpO1xcbn1cXG4ucS1zdGVwcGVyLXRhYi5zdGVwLW5hdmlnYXRpb24ge1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC1jb2xvciB7XFxuICBjb2xvcjogY3VycmVudENvbG9yO1xcbn1cXG4ucS1zdGVwcGVyLXRhYi5zdGVwLWFjdGl2ZSAucS1zdGVwcGVyLXRpdGxlIHtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xcbn1cXG4ucS1zdGVwcGVyLXRhYi5zdGVwLWRpc2FibGVkIHtcXG4gIGNvbG9yOiByZ2JhKDAsMCwwLDAuNDIpO1xcbn1cXG4ucS1zdGVwcGVyLXRhYi5zdGVwLWVycm9yIHtcXG4gIGNvbG9yOiAjZGIyODI4O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbmVnYXRpdmUpO1xcbn1cXG4ucS1zdGVwcGVyLXRhYi5zdGVwLWVycm9yIC5xLXN0ZXBwZXItZG90IHtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG4ucS1zdGVwcGVyLXRhYi5zdGVwLWVycm9yIC5xLXN0ZXBwZXItZG90IHNwYW4ge1xcbiAgY29sb3I6ICNkYjI4Mjg7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1uZWdhdGl2ZSk7XFxuICBmb250LXNpemU6IDI0cHg7XFxufVxcbi5xLXN0ZXBwZXItaGVhZGVyIHtcXG4gIG1pbi1oZWlnaHQ6IDcycHg7XFxufVxcbi5xLXN0ZXBwZXItaGVhZGVyOm5vdCguYWx0ZXJuYXRpdmUtbGFiZWxzKSAucS1zdGVwcGVyLXRhYiB7XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuLnEtc3RlcHBlci1oZWFkZXI6bm90KC5hbHRlcm5hdGl2ZS1sYWJlbHMpIC5xLXN0ZXBwZXItZG90OmFmdGVyIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXN0ZXBwZXItaGVhZGVyLmFsdGVybmF0aXZlLWxhYmVscyB7XFxuICBtaW4taGVpZ2h0OiAxMDRweDtcXG59XFxuLnEtc3RlcHBlci1oZWFkZXIuYWx0ZXJuYXRpdmUtbGFiZWxzIC5xLXN0ZXBwZXItdGFiIHtcXG4gIHBhZGRpbmc6IDI0cHggMzJweDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIC13ZWJraXQtYm94LXBhY2s6IHN0YXJ0O1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XFxufVxcbi5xLXN0ZXBwZXItaGVhZGVyLmFsdGVybmF0aXZlLWxhYmVscyAucS1zdGVwcGVyLWRvdCB7XFxuICBtYXJnaW4tcmlnaHQ6IDA7XFxufVxcbi5xLXN0ZXBwZXItaGVhZGVyLmFsdGVybmF0aXZlLWxhYmVscyAucS1zdGVwcGVyLWxhYmVsIHtcXG4gIG1hcmdpbi10b3A6IDhweDtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuLnEtc3RlcHBlci1oZWFkZXIuYWx0ZXJuYXRpdmUtbGFiZWxzIC5xLXN0ZXBwZXItbGFiZWw6YmVmb3JlLFxcbi5xLXN0ZXBwZXItaGVhZGVyLmFsdGVybmF0aXZlLWxhYmVscyAucS1zdGVwcGVyLWxhYmVsOmFmdGVyIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXN0ZXBwZXItc3RlcC1jb250ZW50IHtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLXRhYiB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWZpcnN0IC5xLXN0ZXBwZXItZG90OmJlZm9yZSxcXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWxhc3QgLnEtc3RlcHBlci1sYWJlbDphZnRlcixcXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWxhc3QgLnEtc3RlcHBlci1kb3Q6YWZ0ZXIge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1saW5lOmJlZm9yZSxcXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWxpbmU6YWZ0ZXIge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICBoZWlnaHQ6IDFweDtcXG4gIHdpZHRoOiAxMDB2dztcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItbGFiZWw6YWZ0ZXIsXFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1kb3Q6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBsZWZ0OiAxMDAlO1xcbiAgbWFyZ2luLWxlZnQ6IDhweDtcXG59XFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1kb3Q6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcmlnaHQ6IDEwMCU7XFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcXG59XFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1uYXYge1xcbiAgbWFyZ2luOiAwIDE2cHggOHB4O1xcbn1cXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLXN0ZXAgLnEtc3RlcHBlci1uYXYge1xcbiAgbWFyZ2luOiAxNnB4IDAgMDtcXG59XFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1zdGVwIC5xLXN0ZXBwZXItbmF2ID4gZGl2LmNvbCB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXN0ZXAtY29udGVudCA+IC5xLXN0ZXBwZXItc3RlcC1pbm5lciB7XFxuICBwYWRkaW5nOiAyNHB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsIHtcXG4gIHBhZGRpbmc6IDhweCAwIDE4cHg7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLW5hdiB7XFxuICBtYXJnaW4tdG9wOiAxNnB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1uYXYgPiBkaXYuY29sIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItc3RlcC1jb250ZW50ID4gLnEtc3RlcHBlci1zdGVwLWlubmVyIHtcXG4gIHBhZGRpbmc6IDAgMjRweCAyNHB4IDQ4cHg7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYiB7XFxuICBwYWRkaW5nOiAxMnB4IDE2cHg7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYiAucS1zdGVwcGVyLWRvdDpiZWZvcmUsXFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItdGFiIC5xLXN0ZXBwZXItZG90OmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogNTAlO1xcbiAgd2lkdGg6IDFweDtcXG4gIGhlaWdodDogMTAwdmg7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIgLnEtc3RlcHBlci1kb3Q6YmVmb3JlIHtcXG4gIGJvdHRvbTogMTAwJTtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItdGFiIC5xLXN0ZXBwZXItZG90OmFmdGVyIHtcXG4gIHRvcDogMTAwJTtcXG4gIG1hcmdpbi10b3A6IDhweDtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItdGFiIC5xLXN0ZXBwZXItbGFiZWwge1xcbiAgcGFkZGluZy10b3A6IDRweDtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItdGFiIC5xLXN0ZXBwZXItbGFiZWwgLnEtc3RlcHBlci10aXRsZSB7XFxuICBsaW5lLWhlaWdodDogMThweDtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItdGFiLnEtc3RlcHBlci1maXJzdCAucS1zdGVwcGVyLWRvdDpiZWZvcmUsXFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItdGFiLnEtc3RlcHBlci1sYXN0IC5xLXN0ZXBwZXItZG90OmFmdGVyIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbmJvZHkuZGVza3RvcCAucS1zdGVwcGVyLXRhYi5zdGVwLW5hdmlnYXRpb246aG92ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjA1KTtcXG59XFxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICAucS1zdGVwcGVyLWhvcml6b250YWwucS1zdGVwcGVyLWNvbnRyYWN0YWJsZSA+IC5xLXN0ZXBwZXItaGVhZGVyIHtcXG4gICAgbWluLWhlaWdodDogNzJweDtcXG4gIH1cXG4gIC5xLXN0ZXBwZXItaG9yaXpvbnRhbC5xLXN0ZXBwZXItY29udHJhY3RhYmxlID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci10YWIge1xcbiAgICBwYWRkaW5nOiAyNHB4IDA7XFxuICB9XFxuICAucS1zdGVwcGVyLWhvcml6b250YWwucS1zdGVwcGVyLWNvbnRyYWN0YWJsZSA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItdGFiOm5vdCg6bGFzdC1jaGlsZCkgLnEtc3RlcHBlci1kb3Q6YWZ0ZXIge1xcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xcbiAgfVxcbiAgLnEtc3RlcHBlci1ob3Jpem9udGFsLnEtc3RlcHBlci1jb250cmFjdGFibGUgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWRvdCB7XFxuICAgIG1hcmdpbjogMDtcXG4gIH1cXG4gIC5xLXN0ZXBwZXItaG9yaXpvbnRhbC5xLXN0ZXBwZXItY29udHJhY3RhYmxlID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1sYWJlbCB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICB9XFxufVxcbi5xLXRhYnMge1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbn1cXG4ucS1sYXlvdXQtbWFyZ2luYWwgLnEtdGFicyB7XFxuICBib3JkZXItcmFkaXVzOiAwO1xcbn1cXG4ucS10YWJzLXNjcm9sbGVyIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5xLXRhYi1wYW5lIHtcXG4gIHBhZGRpbmc6IDEycHg7XFxufVxcbi5xLXRhYnMtcGFuZXM6ZW1wdHkge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtdGFicy1ub3JtYWwgLnEtdGFiLWljb24sXFxuLnEtdGFicy1ub3JtYWwgLnEtdGFiLWxhYmVsIHtcXG4gIG9wYWNpdHk6IDAuNztcXG59XFxuLnEtdGFiIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogY29sb3IgMC4zcywgYmFja2dyb3VuZCAwLjNzO1xcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4zcywgYmFja2dyb3VuZCAwLjNzO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICBwYWRkaW5nOiA4cHggMTBweDtcXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XFxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xcbn1cXG4ucS10YWIgLnEtdGFiLWljb24tcGFyZW50ICsgLnEtdGFiLWxhYmVsLXBhcmVudCB7XFxuICBtYXJnaW4tdG9wOiA0cHg7XFxufVxcbi5xLXRhYiAucS1jaGlwIHtcXG4gIHRvcDogLThweDtcXG4gIHJpZ2h0OiAtMTBweDtcXG4gIGxlZnQ6IGF1dG87XFxuICBtaW4taGVpZ2h0OiBhdXRvO1xcbiAgY29sb3I6ICNmZmY7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI0NCw2Nyw1NCwwLjc1KTtcXG59XFxuLnEtdGFiLmFjdGl2ZSAucS10YWItaWNvbixcXG4ucS10YWIuYWN0aXZlIC5xLXRhYi1sYWJlbCB7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4ucS10YWItbGFiZWwge1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG4ucS10YWItaWNvbiB7XFxuICBmb250LXNpemU6IDI3cHg7XFxufVxcbi5xLXRhYi1mb2N1cy1oZWxwZXIge1xcbiAgei1pbmRleDogLTE7XFxuICBvdXRsaW5lOiAwO1xcbn1cXG4ucS10YWItZm9jdXMtaGVscGVyOmZvY3VzIHtcXG4gIHotaW5kZXg6IHVuc2V0O1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbiAgb3BhY2l0eTogMC4xO1xcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIC5xLXRhYi5oaWRlLWljb24gLnEtdGFiLWljb24tcGFyZW50LFxcbiAgLnEtdGFiLmhpZGUtbGFiZWwgLnEtdGFiLWxhYmVsLXBhcmVudCB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG4gIC5xLXRhYi5oaWRlLWljb24gLnEtdGFiLWxhYmVsIHtcXG4gICAgbWFyZ2luLXRvcDogMDtcXG4gIH1cXG4gIC5xLXRhYi1mdWxsLmhpZGUtbm9uZSAucS10YWItbGFiZWwtcGFyZW50IC5xLXRhYi1tZXRhIHtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAucS10YWItZnVsbCAucS10YWItbGFiZWwtcGFyZW50IC5xLXRhYi1tZXRhIHtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gIH1cXG59XFxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KSB7XFxuICAucS10YWJzLWhlYWQ6bm90KC5zY3JvbGxhYmxlKSAucS10YWJzLXNjcm9sbGVyLFxcbiAgLnEtdGFicy1oZWFkOm5vdCguc2Nyb2xsYWJsZSkgLnEtdGFiIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XFxuICAucS10YWIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDI1cHg7XFxuICB9XFxuICAucS1sYXlvdXQtbWFyZ2luYWwgLnEtdGFicy1oZWFkOm5vdCguc2Nyb2xsYWJsZSkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7XFxuICB9XFxufVxcbi5xLXRhYnMtaGVhZCB7XFxuICBtaW4taGVpZ2h0OiA0OHB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGZvbnQtc2l6ZTogMC45NXJlbTtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGNvbG9yIDAuMThzIGVhc2UtaW4sIC13ZWJraXQtYm94LXNoYWRvdyAwLjE4cyBlYXNlLWluO1xcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xOHMgZWFzZS1pbiwgLXdlYmtpdC1ib3gtc2hhZG93IDAuMThzIGVhc2UtaW47XFxuICB0cmFuc2l0aW9uOiBjb2xvciAwLjE4cyBlYXNlLWluLCBib3gtc2hhZG93IDAuMThzIGVhc2UtaW47XFxuICB0cmFuc2l0aW9uOiBjb2xvciAwLjE4cyBlYXNlLWluLCBib3gtc2hhZG93IDAuMThzIGVhc2UtaW4sIC13ZWJraXQtYm94LXNoYWRvdyAwLjE4cyBlYXNlLWluO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4ucS10YWJzLWhlYWQ6bm90KC5zY3JvbGxhYmxlKSAucS10YWJzLWxlZnQtc2Nyb2xsLFxcbi5xLXRhYnMtaGVhZDpub3QoLnNjcm9sbGFibGUpIC5xLXRhYnMtcmlnaHQtc2Nyb2xsIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuLnEtdGFicy1sZWZ0LXNjcm9sbCxcXG4ucS10YWJzLXJpZ2h0LXNjcm9sbCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBjb2xvcjogI2ZmZjtcXG4gIHRvcDogMDtcXG59XFxuLnEtdGFicy1sZWZ0LXNjcm9sbCAucS1pY29uLFxcbi5xLXRhYnMtcmlnaHQtc2Nyb2xsIC5xLWljb24ge1xcbiAgdGV4dC1zaGFkb3c6IDAgMCAxMHB4ICMwMDA7XFxuICBmb250LXNpemU6IDMyLjRweDtcXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcXG59XFxuLnEtdGFicy1sZWZ0LXNjcm9sbC5kaXNhYmxlZCxcXG4ucS10YWJzLXJpZ2h0LXNjcm9sbC5kaXNhYmxlZCB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS10YWJzOmhvdmVyIC5xLXRhYnMtbGVmdC1zY3JvbGwgLnEtaWNvbixcXG4ucS10YWJzOmhvdmVyIC5xLXRhYnMtcmlnaHQtc2Nyb2xsIC5xLWljb24ge1xcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcXG59XFxuLnEtdGFicy1sZWZ0LXNjcm9sbCB7XFxuICBsZWZ0OiAwIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLXRhYnMtcmlnaHQtc2Nyb2xsIHtcXG4gIHJpZ2h0OiAwIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLXRhYnMtYWxpZ24tanVzdGlmeSAucS10YWJzLXNjcm9sbGVyLFxcbi5xLXRhYnMtYWxpZ24tanVzdGlmeSAucS10YWIge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xcbn1cXG4ucS10YWJzLWFsaWduLWNlbnRlciB7XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuLnEtdGFicy1hbGlnbi1yaWdodCB7XFxuICAtd2Via2l0LWJveC1wYWNrOiBlbmQ7XFxuICAgICAgLW1zLWZsZXgtcGFjazogZW5kO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xcbn1cXG4ucS10YWJzLWJhciB7XFxuICBib3JkZXI6IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxuICBib3JkZXItd2lkdGg6IDA7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBoZWlnaHQ6IDA7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxufVxcbi5xLXRhYnMtZ2xvYmFsLWJhciB7XFxuICB3aWR0aDogMXB4O1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjtcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtO1xcbiAgdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm07XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm07XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0sIC13ZWJraXQtdHJhbnNmb3JtO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1cztcXG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xNXM7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTtcXG4gICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpO1xcbn1cXG4ucS10YWJzLWdsb2JhbC1iYXIuY29udHJhY3Qge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE4cztcXG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xOHM7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcXG4gICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xcbn1cXG4ucS10YWJzLWdsb2JhbC1iYXItY29udGFpbmVyLmhpZ2hsaWdodCA+IC5xLXRhYnMtZ2xvYmFsLWJhciB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS10YWJzLXR3by1saW5lcyAucS10YWIge1xcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcXG59XFxuLnEtdGFicy10d28tbGluZXMgLnEtdGFiIC5xLXRhYi1sYWJlbCB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xcbn1cXG4ucS10YWJzLXBvc2l0aW9uLXRvcCA+IC5xLXRhYnMtaGVhZCAucS10YWJzLWJhciB7XFxuICBib3R0b206IDA7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XFxufVxcbi5xLXRhYnMtcG9zaXRpb24tYm90dG9tID4gLnEtdGFicy1oZWFkIC5xLXRhYnMtYmFyIHtcXG4gIHRvcDogMDtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDJweDtcXG59XFxuLnEtdGFicy1wb3NpdGlvbi1ib3R0b20gPiAucS10YWJzLXBhbmVzIHtcXG4gIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDA7XFxuICAgICAgLW1zLWZsZXgtb3JkZXI6IC0xO1xcbiAgICAgICAgICBvcmRlcjogLTE7XFxufVxcbi5xLXRhYnMtaW52ZXJ0ZWQgLnEtdGFicy1oZWFkIHtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxufVxcbi5xLXRhYnMtaW52ZXJ0ZWQucS10YWJzLXBvc2l0aW9uLXRvcCA+IC5xLXRhYnMtcGFuZXMge1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTtcXG59XFxuLnEtdGFicy1pbnZlcnRlZC5xLXRhYnMtcG9zaXRpb24tdG9wID4gLnEtdGFiLXBhbmUge1xcbiAgYm9yZGVyLXRvcDogMDtcXG59XFxuLnEtdGFicy1pbnZlcnRlZC5xLXRhYnMtcG9zaXRpb24tYm90dG9tID4gLnEtdGFicy1wYW5lcyB7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpO1xcbn1cXG4ucS10YWJzLWludmVydGVkLnEtdGFicy1wb3NpdGlvbi1ib3R0b20gPiAucS10YWItcGFuZSB7XFxuICBib3JkZXItYm90dG9tOiAwO1xcbn1cXG5ib2R5Lm1vYmlsZSAucS10YWJzLXNjcm9sbGVyIHtcXG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcXG4gIG92ZXJmbG93LXg6IGF1dG87XFxuICB3aWxsLWNoYW5nZTogc2Nyb2xsLXBvc2l0aW9uO1xcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xcbn1cXG5ib2R5LmRlc2t0b3AgLnEtdGFiOmJlZm9yZSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICBvcGFjaXR5OiAwLjE7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbmJvZHkuZGVza3RvcCAucS10YWI6aG92ZXI6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbn1cXG4ucS10YWJsZS1jb250YWluZXIge1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5xLXRhYmxlLWNvbnRhaW5lci5mdWxsc2NyZWVuIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XFxufVxcbi5xLXRhYmxlLXRvcCB7XFxuICBtaW4taGVpZ2h0OiA2NHB4O1xcbiAgcGFkZGluZzogOHB4IDI0cHg7XFxufVxcbi5xLXRhYmxlLXRvcDpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIG9wYWNpdHk6IDAuMjtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbn1cXG4ucS10YWJsZS10b3AgLnEtdGFibGUtY29udHJvbCB7XFxuICBtaW4taGVpZ2h0OiAzNnB4O1xcbiAgcGFkZGluZzogOHB4IDA7XFxuICAtbXMtZmxleC13cmFwOiB3cmFwO1xcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcXG59XFxuLnEtdGFibGUtdGl0bGUge1xcbiAgZm9udC1zaXplOiAyMHB4O1xcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDA1ZW07XFxuICBmb250LXdlaWdodDogNDAwO1xcbn1cXG4ucS10YWJsZS1zZXBhcmF0b3Ige1xcbiAgbWluLXdpZHRoOiA4cHggIWltcG9ydGFudDtcXG59XFxuLnEtdGFibGUtbm9kYXRhIC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAyMDAlO1xcbiAgcGFkZGluZy1yaWdodDogMTVweDtcXG59XFxuLnEtdGFibGUtcHJvZ3Jlc3Mge1xcbiAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XFxufVxcbi5xLXRhYmxlLXByb2dyZXNzIHRkIHtcXG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcbn1cXG4ucS10YWJsZS1wcm9ncmVzcyAucS1wcm9ncmVzcyB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBoZWlnaHQ6IDJweDtcXG4gIGJvdHRvbTogMDtcXG59XFxuLnEtdGFibGUtbWlkZGxlIHtcXG4gIG1heC13aWR0aDogMTAwJTtcXG59XFxuLnEtdGFibGUtYm90dG9tIHtcXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XFxuICBwYWRkaW5nOiA0cHggMTRweCA0cHggMjRweDtcXG59XFxuLnEtdGFibGUtYm90dG9tLFxcbi5xLXRhYmxlLWJvdHRvbSAucS1pZiB7XFxuICBmb250LXNpemU6IDEycHg7XFxufVxcbi5xLXRhYmxlLWJvdHRvbSAucS10YWJsZS1jb250cm9sIHtcXG4gIG1pbi1oZWlnaHQ6IDI0cHg7XFxufVxcbi5xLXRhYmxlLWNvbnRyb2wge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxufVxcbi5xLXRhYmxlLXNvcnQtaWNvbiB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5LCB0cmFuc2Zvcm07XFxuICBvcGFjaXR5OiAwO1xcbiAgZm9udC1zaXplOiAxMjAlO1xcbn1cXG4ucS10YWJsZS1zb3J0LWljb24tbGVmdCxcXG4ucS10YWJsZS1zb3J0LWljb24tY2VudGVyIHtcXG4gIG1hcmdpbi1sZWZ0OiA0cHg7XFxufVxcbi5xLXRhYmxlLXNvcnQtaWNvbi1yaWdodCB7XFxuICBtYXJnaW4tcmlnaHQ6IDRweDtcXG59XFxuLnEtdGFibGUge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XFxufVxcbi5xLXRhYmxlIHRoZWFkIHRyIHtcXG4gIGhlaWdodDogNTZweDtcXG59XFxuLnEtdGFibGUgdGgge1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG59XFxuLnEtdGFibGUgdGguc29ydGFibGUge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS10YWJsZSB0aC5zb3J0YWJsZTpob3ZlciAucS10YWJsZS1zb3J0LWljb24ge1xcbiAgb3BhY2l0eTogMC41O1xcbn1cXG4ucS10YWJsZSB0aC5zb3J0ZWQgLnEtdGFibGUtc29ydC1pY29uIHtcXG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcXG59XFxuLnEtdGFibGUgdGguc29ydC1kZXNjIC5xLXRhYmxlLXNvcnQtaWNvbiB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XFxufVxcbi5xLXRhYmxlIHRib2R5IHRyIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgd2lsbC1jaGFuZ2U6IGJhY2tncm91bmQ7XFxufVxcbi5xLXRhYmxlIHRoLFxcbi5xLXRhYmxlIHRkIHtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICBwYWRkaW5nOiA3cHggMjRweDtcXG59XFxuLnEtdGFibGUgdGhlYWQsXFxuLnEtdGFibGUgdGQsXFxuLnEtdGFibGUgdGgge1xcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcXG4gIGJvcmRlci13aWR0aDogMDtcXG59XFxuLnEtdGFibGUgdGJvZHkgdGQge1xcbiAgaGVpZ2h0OiA0OHB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGZvbnQtc2l6ZTogMTNweDtcXG59XFxuLnEtdGFibGUtY29sLWF1dG8td2lkdGgge1xcbiAgd2lkdGg6IDFweDtcXG59XFxuLnEtdGFibGUtYm90dG9tLWl0ZW0ge1xcbiAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xcbn1cXG4ucS10YWJsZS1ncmlkIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuLnEtdGFibGUtZ3JpZCAucS10YWJsZS1ib3R0b20ge1xcbiAgYm9yZGVyLXRvcDogMDtcXG59XFxuLnEtdGFibGUtZ3JpZCAucS10YWJsZSB7XFxuICBoZWlnaHQ6IDJweDtcXG59XFxuLnEtdGFibGUtZ3JpZCAucS10YWJsZSB0aGVhZCB7XFxuICBib3JkZXI6IDA7XFxufVxcbi5xLXRhYmxlLWhvcml6b250YWwtc2VwYXJhdG9yIHRoZWFkLFxcbi5xLXRhYmxlLWhvcml6b250YWwtc2VwYXJhdG9yIHRib2R5IHRkIHtcXG4gIGJvcmRlci13aWR0aDogMCAwIDFweCAwO1xcbn1cXG4ucS10YWJsZS12ZXJ0aWNhbC1zZXBhcmF0b3IgdGhlYWQge1xcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4IDA7XFxufVxcbi5xLXRhYmxlLXZlcnRpY2FsLXNlcGFyYXRvciB0ZCB7XFxuICBib3JkZXItd2lkdGg6IDAgMCAwIDFweDtcXG59XFxuLnEtdGFibGUtdmVydGljYWwtc2VwYXJhdG9yIHRkOmZpcnN0LWNoaWxkIHtcXG4gIGJvcmRlci1sZWZ0OiAwO1xcbn1cXG4ucS10YWJsZS1jZWxsLXNlcGFyYXRvciB0ZCB7XFxuICBib3JkZXItd2lkdGg6IDFweDtcXG59XFxuLnEtdGFibGUtY2VsbC1zZXBhcmF0b3IgdGQ6Zmlyc3QtY2hpbGQge1xcbiAgYm9yZGVyLWxlZnQ6IDA7XFxufVxcbi5xLXRhYmxlLWNlbGwtc2VwYXJhdG9yIHRkOmxhc3QtY2hpbGQge1xcbiAgYm9yZGVyLXJpZ2h0OiAwO1xcbn1cXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZS10b3Age1xcbiAgbWluLWhlaWdodDogNDhweDtcXG59XFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUtdG9wLFxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlLWJvdHRvbSB7XFxuICBwYWRkaW5nLWxlZnQ6IDhweDtcXG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcXG59XFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUtYm90dG9tIHtcXG4gIG1pbi1oZWlnaHQ6IDQycHg7XFxufVxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlLXNvcnQtaWNvbiB7XFxuICBmb250LXNpemU6IDExMCU7XFxufVxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlIHRoLFxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlIHRkIHtcXG4gIHBhZGRpbmc6IDRweCA4cHg7XFxufVxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlIHRoZWFkIHRyIHtcXG4gIGhlaWdodDogNDBweDtcXG59XFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUgdGJvZHkgdGQge1xcbiAgaGVpZ2h0OiAyOHB4O1xcbn1cXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZS1ib3R0b20taXRlbSB7XFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcXG59XFxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICAucS10YWJsZS10b3Age1xcbiAgICBtaW4taGVpZ2h0OiA0OHB4O1xcbiAgfVxcbiAgLnEtdGFibGUtdG9wLFxcbiAgLnEtdGFibGUtYm90dG9tIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcXG4gIH1cXG4gIC5xLXRhYmxlLWJvdHRvbSB7XFxuICAgIG1pbi1oZWlnaHQ6IDQycHg7XFxuICB9XFxuICAucS10YWJsZS1zb3J0LWljb24ge1xcbiAgICBmb250LXNpemU6IDExMCU7XFxuICB9XFxuICAucS10YWJsZSB0aCxcXG4gIC5xLXRhYmxlIHRkIHtcXG4gICAgcGFkZGluZzogNHB4IDhweDtcXG4gIH1cXG4gIC5xLXRhYmxlIHRoZWFkIHRyIHtcXG4gICAgaGVpZ2h0OiA0MHB4O1xcbiAgfVxcbiAgLnEtdGFibGUgdGJvZHkgdGQge1xcbiAgICBoZWlnaHQ6IDI4cHg7XFxuICB9XFxuICAucS10YWJsZS1ib3R0b20taXRlbSB7XFxuICAgIG1hcmdpbi1yaWdodDogOHB4O1xcbiAgfVxcbn1cXG4ucS10YWJsZS1ib3R0b20ge1xcbiAgY29sb3I6IHJnYmEoMCwwLDAsMC41NCk7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtdGFibGUge1xcbiAgY29sb3I6IHJnYmEoMCwwLDAsMC44Nyk7XFxufVxcbi5xLXRhYmxlIHRoZWFkLFxcbi5xLXRhYmxlIHRyLFxcbi5xLXRhYmxlIHRoLFxcbi5xLXRhYmxlIHRkIHtcXG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtdGFibGUgdGgge1xcbiAgY29sb3I6IHJnYmEoMCwwLDAsMC41NCk7XFxufVxcbi5xLXRhYmxlIHRoLnNvcnRhYmxlOmhvdmVyLFxcbi5xLXRhYmxlIHRoLnNvcnRlZCB7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjg3KTtcXG59XFxuLnEtdGFibGUgdGJvZHkgdHIuc2VsZWN0ZWQge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjA2KTtcXG59XFxuLnEtdGFibGUgdGJvZHkgdHI6aG92ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjAzKTtcXG59XFxuLnEtdGFibGUtZGFyayB7XFxuICBjb2xvcjogI2VlZTtcXG59XFxuLnEtdGFibGUtZGFyayAucS10YWJsZS1ib3R0b20sXFxuLnEtdGFibGUtZGFyayAucS10YWJsZS10b3Age1xcbiAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC42NCk7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjEyKTtcXG59XFxuLnEtdGFibGUtZGFyayB0aGVhZCxcXG4ucS10YWJsZS1kYXJrIHRyLFxcbi5xLXRhYmxlLWRhcmsgdGgsXFxuLnEtdGFibGUtZGFyayB0ZCB7XFxuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4xMik7XFxufVxcbi5xLXRhYmxlLWRhcmsgdGgge1xcbiAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC42NCk7XFxufVxcbi5xLXRhYmxlLWRhcmsgdGguc29ydGFibGU6aG92ZXIsXFxuLnEtdGFibGUtZGFyayB0aC5zb3J0ZWQge1xcbiAgY29sb3I6ICNlZWU7XFxufVxcbi5xLXRhYmxlLWRhcmsgdGJvZHkgdHIuc2VsZWN0ZWQge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjIpO1xcbn1cXG4ucS10YWJsZS1kYXJrIHRib2R5IHRyOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4xKTtcXG59XFxuLnEtdGltZWxpbmUge1xcbiAgcGFkZGluZzogMDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgbGlzdC1zdHlsZTogbm9uZTtcXG59XFxuLnEtdGltZWxpbmUgaDYge1xcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxufVxcbi5xLXRpbWVsaW5lLXRpdGxlIHtcXG4gIG1hcmdpbi10b3A6IDA7XFxuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xcbn1cXG4ucS10aW1lbGluZS1zdWJ0aXRsZSB7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBtYXJnaW4tYm90dG9tOiA4cHg7XFxuICBvcGFjaXR5OiAwLjQ7XFxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XFxufVxcbi5xLXRpbWVsaW5lLWRvdCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgd2lkdGg6IDE1cHg7XFxufVxcbi5xLXRpbWVsaW5lLWRvdDpiZWZvcmUsXFxuLnEtdGltZWxpbmUtZG90OmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxufVxcbi5xLXRpbWVsaW5lLWRvdDpiZWZvcmUge1xcbiAgYm9yZGVyOiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItcmFkaXVzOiAxMDAlO1xcbiAgaGVpZ2h0OiAxNXB4O1xcbiAgd2lkdGg6IDE1cHg7XFxuICB0b3A6IDRweDtcXG4gIGxlZnQ6IDA7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcyBlYXNlLWluLW91dCwgYm9yZGVyIDAuM3MgZWFzZS1pbi1vdXQ7XFxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3MgZWFzZS1pbi1vdXQsIGJvcmRlciAwLjNzIGVhc2UtaW4tb3V0O1xcbn1cXG4ucS10aW1lbGluZS1kb3Q6YWZ0ZXIge1xcbiAgd2lkdGg6IDNweDtcXG4gIG9wYWNpdHk6IDAuNDtcXG4gIHRvcDogMjRweDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDZweDtcXG59XFxuLnEtdGltZWxpbmUtZW50cnktd2l0aC1pY29uIC5xLXRpbWVsaW5lLWRvdCB7XFxuICB3aWR0aDogMzFweDtcXG4gIGxlZnQ6IC04cHg7XFxufVxcbi5xLXRpbWVsaW5lLWVudHJ5LXdpdGgtaWNvbiAucS10aW1lbGluZS1kb3Q6YmVmb3JlIHtcXG4gIGhlaWdodDogMzFweDtcXG4gIHdpZHRoOiAzMXB4O1xcbn1cXG4ucS10aW1lbGluZS1lbnRyeS13aXRoLWljb24gLnEtdGltZWxpbmUtZG90OmFmdGVyIHtcXG4gIHRvcDogNDFweDtcXG4gIGxlZnQ6IDE0cHg7XFxufVxcbi5xLXRpbWVsaW5lLWVudHJ5LXdpdGgtaWNvbiAucS10aW1lbGluZS1zdWJ0aXRsZSB7XFxuICBwYWRkaW5nLXRvcDogOHB4O1xcbn1cXG4ucS10aW1lbGluZS1kb3QgLnEtaWNvbiB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XFxuICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG4gIGhlaWdodDogMzhweDtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2UtaW4tb3V0O1xcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlLWluLW91dDtcXG59XFxuLnEtdGltZWxpbmUtZGFyayB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtdGltZWxpbmUtZGFyayAucS10aW1lbGluZS1zdWJ0aXRsZSB7XFxuICBvcGFjaXR5OiAwLjc7XFxufVxcbi5xLXRpbWVsaW5lLWVudHJ5IHtcXG4gIHBhZGRpbmctbGVmdDogNDBweDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xcbn1cXG4ucS10aW1lbGluZS1lbnRyeTpsYXN0LWNoaWxkIHtcXG4gIHBhZGRpbmctYm90dG9tOiAwO1xcbn1cXG4ucS10aW1lbGluZS1lbnRyeTpsYXN0LWNoaWxkIC5xLXRpbWVsaW5lLWRvdDphZnRlciB7XFxuICBjb250ZW50OiBub25lO1xcbn1cXG4ucS10aW1lbGluZS1ob3ZlciAucS10aW1lbGluZS1lbnRyeTpob3ZlciAucS10aW1lbGluZS1kb3Q6YmVmb3JlIHtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyOiAzcHggc29saWQgY3VycmVudENvbG9yO1xcbn1cXG4ucS10aW1lbGluZS1ob3ZlciAucS10aW1lbGluZS1lbnRyeS5xLXRpbWVsaW5lLWVudHJ5LXdpdGgtaWNvbjpob3ZlciAucS10aW1lbGluZS1kb3QgLnEtaWNvbiB7XFxuICBjb2xvcjogY3VycmVudENvbG9yO1xcbn1cXG4ucS10aW1lbGluZS1jb250ZW50IHtcXG4gIHBhZGRpbmctYm90dG9tOiAyNHB4O1xcbn1cXG4ucS10aW1lbGluZS1oZWFkaW5nIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLnEtdGltZWxpbmUtaGVhZGluZzpmaXJzdC1jaGlsZCAucS10aW1lbGluZS1oZWFkaW5nLXRpdGxlIHtcXG4gIHBhZGRpbmctdG9wOiAwO1xcbn1cXG4ucS10aW1lbGluZS1oZWFkaW5nOmxhc3QtY2hpbGQgLnEtdGltZWxpbmUtaGVhZGluZy10aXRsZSB7XFxuICBwYWRkaW5nLWJvdHRvbTogMDtcXG59XFxuLnEtdGltZWxpbmUtaGVhZGluZy10aXRsZSB7XFxuICBwYWRkaW5nOiAzMnB4IDA7XFxuICBtYXJnaW46IDA7XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWhlYWRpbmcge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XFxuICAgIGZvbnQtc2l6ZTogMjAwJTtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtaGVhZGluZyA+IGRpdiB7XFxuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWhlYWRpbmctdGl0bGUge1xcbiAgICBtYXJnaW4tbGVmdDogLTUwcHg7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lIHtcXG4gICAgZGlzcGxheTogdGFibGU7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5IHtcXG4gICAgZGlzcGxheTogdGFibGUtcm93O1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1zdWJ0aXRsZSxcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZG90LFxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1jb250ZW50IHtcXG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtc3VidGl0bGUge1xcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcXG4gICAgd2lkdGg6IDM1JTtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZG90IHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1jb250ZW50IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeS13aXRoLWljb24gLnEtdGltZWxpbmUtY29udGVudCB7XFxuICAgIHBhZGRpbmctdG9wOiA4cHg7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLXN1YnRpdGxlIHtcXG4gICAgcGFkZGluZy1yaWdodDogMzBweDtcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWhlYWRpbmctdGl0bGUge1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgIG1hcmdpbi1sZWZ0OiAwO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeSxcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtc3VidGl0bGUsXFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWRvdCxcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtY29udGVudCB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWRvdCB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgbGVmdDogNTAlO1xcbiAgICBtYXJnaW4tbGVmdDogLTcuMTVweDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnktd2l0aC1pY29uIC5xLXRpbWVsaW5lLWRvdCB7XFxuICAgIGxlZnQ6IDUwJTtcXG4gICAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1zdWJ0aXRsZSxcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtY29udGVudCB7XFxuICAgIHdpZHRoOiA1MCU7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5LWxlZnQgLnEtdGltZWxpbmUtY29udGVudCxcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnktcmlnaHQgLnEtdGltZWxpbmUtc3VidGl0bGUge1xcbiAgICBmbG9hdDogbGVmdDtcXG4gICAgcGFkZGluZy1yaWdodDogMzBweDtcXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5LWxlZnQgLnEtdGltZWxpbmUtc3VidGl0bGUsXFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5LXJpZ2h0IC5xLXRpbWVsaW5lLWNvbnRlbnQge1xcbiAgICBmbG9hdDogcmlnaHQ7XFxuICAgIHRleHQtYWxpZ246IGxlZnQ7XFxuICAgIHBhZGRpbmctbGVmdDogMzBweDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnktd2l0aC1pY29uIC5xLXRpbWVsaW5lLWNvbnRlbnQge1xcbiAgICBwYWRkaW5nLXRvcDogOHB4O1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeSB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAyNHB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgfVxcbn1cXG4ucS10b2dnbGUtYmFzZSB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEycHg7XFxuICBib3JkZXItcmFkaXVzOiAzMHB4O1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbiAgb3BhY2l0eTogMC41O1xcbn1cXG4ucS10b2dnbGUtaGFuZGxlIHtcXG4gIGJhY2tncm91bmQ6ICNmNWY1ZjU7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCA0NTBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICB0cmFuc2l0aW9uOiBhbGwgNDUwbXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgd2lkdGg6IDIxcHg7XFxuICBoZWlnaHQ6IDIxcHg7XFxuICBsaW5lLWhlaWdodDogMjFweDtcXG59XFxuLnEtdG9nZ2xlIC5xLW9wdGlvbi1pbm5lciB7XFxuICBoZWlnaHQ6IDIxcHg7XFxuICB3aWR0aDogNDBweDtcXG4gIG1pbi13aWR0aDogNDBweDtcXG4gIHBhZGRpbmc6IDVweCAwO1xcbn1cXG4ucS10b2dnbGUgLnEtb3B0aW9uLWlubmVyLmFjdGl2ZSAucS10b2dnbGUtaGFuZGxlIHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG4gIGxlZnQ6IDE5cHg7XFxufVxcbi5xLXRvZ2dsZSAucS1vcHRpb24taW5uZXIuYWN0aXZlIC5xLXRvZ2dsZS1pY29uIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS10b29sYmFyIHtcXG4gIHBhZGRpbmc6IDRweCAxMnB4O1xcbiAgbWluLWhlaWdodDogNTBweDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLnEtdG9vbGJhci1pbnZlcnRlZCB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbn1cXG4ucS10b29sYmFyLXRpdGxlIHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDEgMSAwJTtcXG4gICAgICAgICAgZmxleDogMSAxIDAlO1xcbiAgbWluLXdpZHRoOiAxcHg7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBmb250LXNpemU6IDE4cHg7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgcGFkZGluZzogMCAxMnB4O1xcbn1cXG4ucS10b29sYmFyLXN1YnRpdGxlIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIG9wYWNpdHk6IDAuNztcXG59XFxuLnEtdG9vbGJhci10aXRsZSxcXG4ucS10b29sYmFyLXN1YnRpdGxlIHtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5xLXRvb2x0aXAge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgY29sb3I6ICNmYWZhZmE7XFxuICBiYWNrZ3JvdW5kOiAjNzQ3NDc0O1xcbiAgei1pbmRleDogOTAwMDtcXG4gIHBhZGRpbmc6IDEwcHg7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcbi5xLXRyZWUtbm9kZSB7XFxuICBtYXJnaW46IDA7XFxuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBwYWRkaW5nOiAwIDAgM3B4IDIycHg7XFxufVxcbi5xLXRyZWUtbm9kZTphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogLTNweDtcXG4gIGJvdHRvbTogMDtcXG4gIHdpZHRoOiAxcHg7XFxuICByaWdodDogYXV0bztcXG4gIGxlZnQ6IC0xM3B4O1xcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXRyZWUtbm9kZTpsYXN0LWNoaWxkOmFmdGVyIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXRyZWUtbm9kZS1oZWFkZXI6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAtM3B4O1xcbiAgYm90dG9tOiA1MCU7XFxuICB3aWR0aDogMzVweDtcXG4gIGxlZnQ6IC0zNXB4O1xcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgY3VycmVudENvbG9yO1xcbn1cXG4ucS10cmVlLWNoaWxkcmVuIHtcXG4gIHBhZGRpbmctbGVmdDogMjVweDtcXG59XFxuLnEtdHJlZS1jaGlsZHJlbi5kaXNhYmxlZCB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLnEtdHJlZS1ub2RlLWJvZHkge1xcbiAgcGFkZGluZzogNXB4IDAgOHB4IDVweDtcXG59XFxuLnEtdHJlZS1ub2RlLXBhcmVudCB7XFxuICBwYWRkaW5nLWxlZnQ6IDJweDtcXG59XFxuLnEtdHJlZS1ub2RlLXBhcmVudCA+IC5xLXRyZWUtbm9kZS1oZWFkZXI6YmVmb3JlIHtcXG4gIHdpZHRoOiAxNXB4O1xcbiAgbGVmdDogLTE1cHg7XFxufVxcbi5xLXRyZWUtbm9kZS1wYXJlbnQgPiAucS10cmVlLW5vZGUtY29sbGFwc2libGUgPiAucS10cmVlLW5vZGUtYm9keSB7XFxuICBwYWRkaW5nOiA1cHggMCA4cHggMjdweDtcXG59XFxuLnEtdHJlZS1ub2RlLXBhcmVudCA+IC5xLXRyZWUtbm9kZS1jb2xsYXBzaWJsZSA+IC5xLXRyZWUtbm9kZS1ib2R5OmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgd2lkdGg6IDFweDtcXG4gIGhlaWdodDogMTAwJTtcXG4gIHJpZ2h0OiBhdXRvO1xcbiAgbGVmdDogMTJweDtcXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgY3VycmVudENvbG9yO1xcbiAgYm90dG9tOiA1MHB4O1xcbn1cXG4ucS10cmVlLW5vZGUtbGluayB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLXRyZWUtbm9kZS1zZWxlY3RlZCB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMTUpO1xcbn1cXG4ucS10cmVlLWRhcmsgLnEtdHJlZS1ub2RlLXNlbGVjdGVkIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC40KTtcXG59XFxuYm9keS5kZXNrdG9wIC5xLXRyZWUtbm9kZS1saW5rOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xKTtcXG59XFxuYm9keS5kZXNrdG9wIC5xLXRyZWUtZGFyayAucS10cmVlLW5vZGUtbGluazpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMyk7XFxufVxcbi5xLXRyZWUtbm9kZS1oZWFkZXIge1xcbiAgcGFkZGluZzogNHB4O1xcbiAgbWFyZ2luLXRvcDogM3B4O1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbn1cXG4ucS10cmVlLW5vZGUtaGVhZGVyLmRpc2FibGVkIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4ucS10cmVlLWljb24ge1xcbiAgZm9udC1zaXplOiAxLjVlbTtcXG59XFxuLnEtdHJlZS1pbWcge1xcbiAgaGVpZ2h0OiAzZW07XFxufVxcbi5xLXRyZWUtaW1nLmF2YXRhciB7XFxuICB3aWR0aDogMmVtO1xcbiAgaGVpZ2h0OiAyZW07XFxufVxcbi5xLXRyZWUtYXJyb3cge1xcbiAgZm9udC1zaXplOiAxcmVtO1xcbiAgd2lkdGg6IDFyZW07XFxuICBoZWlnaHQ6IDFyZW07XFxufVxcbi5xLXRyZWUtYXJyb3ctcm90YXRlIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XFxufVxcbltkaXI9cnRsXSAucS10cmVlLWFycm93IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbltkaXI9cnRsXSAucS10cmVlLWFycm93LXJvdGF0ZSB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtdHJlZSA+IC5xLXRyZWUtbm9kZSB7XFxuICBwYWRkaW5nOiAwO1xcbn1cXG4ucS10cmVlID4gLnEtdHJlZS1ub2RlOmFmdGVyLFxcbi5xLXRyZWUgPiAucS10cmVlLW5vZGUgPiAucS10cmVlLW5vZGUtaGVhZGVyOmJlZm9yZSB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS10cmVlID4gLnEtdHJlZS1ub2RlLWNoaWxkID4gLnEtdHJlZS1ub2RlLWhlYWRlciB7XFxuICBwYWRkaW5nLWxlZnQ6IDI0cHg7XFxufVxcbi5xLXVwbG9hZGVyLWV4cGFuZGVkIC5xLWlmIHtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcXG59XFxuLnEtdXBsb2FkZXItaW5wdXQge1xcbiAgb3BhY2l0eTogMDtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgZm9udC1zaXplOiAwO1xcbn1cXG4ucS11cGxvYWRlci1waWNrLWJ1dHRvbltkaXNhYmxlZF0gLnEtdXBsb2FkZXItaW5wdXQge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtdXBsb2FkZXItZmlsZXMge1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIG1heC1oZWlnaHQ6IDUwMHB4O1xcbn1cXG4ucS11cGxvYWRlci1maWxlcy1uby1ib3JkZXIgLnEtdXBsb2FkZXItZmlsZXMge1xcbiAgYm9yZGVyLXRvcDogMCAhaW1wb3J0YW50O1xcbn1cXG4ucS11cGxvYWRlci1maWxlOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMGUwZTA7XFxufVxcbi5xLXVwbG9hZGVyLXByb2dyZXNzLWJnLFxcbi5xLXVwbG9hZGVyLXByb2dyZXNzLXRleHQge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcbi5xLXVwbG9hZGVyLXByb2dyZXNzLWJnIHtcXG4gIGhlaWdodDogMTAwJTtcXG4gIG9wYWNpdHk6IDAuMjtcXG59XFxuLnEtdXBsb2FkZXItcHJvZ3Jlc3MtdGV4dCB7XFxuICBmb250LXNpemU6IDQwcHg7XFxuICBvcGFjaXR5OiAwLjE7XFxuICByaWdodDogNDRweDtcXG4gIGJvdHRvbTogMDtcXG59XFxuLnEtdXBsb2FkZXItZG5kIHtcXG4gIG91dGxpbmU6IDJweCBkYXNoZWQgY3VycmVudENvbG9yO1xcbiAgb3V0bGluZS1vZmZzZXQ6IC02cHg7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuNik7XFxufVxcbi5xLXVwbG9hZGVyLWRuZC5pbnZlcnRlZCB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMyk7XFxufVxcbi5xLXVwbG9hZGVyLWRhcmsgLnEtdXBsb2FkZXItZmlsZXMge1xcbiAgY29sb3I6ICNmZmY7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjYTdhN2E3O1xcbn1cXG4ucS11cGxvYWRlci1kYXJrIC5xLXVwbG9hZGVyLWJnIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS11cGxvYWRlci1kYXJrIC5xLXVwbG9hZGVyLXByb2dyZXNzLXRleHQge1xcbiAgb3BhY2l0eTogMC4yO1xcbn1cXG4ucS11cGxvYWRlci1kYXJrIC5xLXVwbG9hZGVyLWZpbGU6bm90KDpsYXN0LWNoaWxkKSB7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzQyNDI0MjtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1xLWNvbG9yLWRhcmspO1xcbn1cXG5pbWcucmVzcG9uc2l2ZSB7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IGF1dG87XFxufVxcbmltZy5hdmF0YXIge1xcbiAgd2lkdGg6IDUwcHg7XFxuICBoZWlnaHQ6IDUwcHg7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcbi5xLXZpZGVvIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbn1cXG4ucS12aWRlbyBpZnJhbWUsXFxuLnEtdmlkZW8gb2JqZWN0LFxcbi5xLXZpZGVvIGVtYmVkIHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG46cm9vdCB7XFxuICAtLXEtY29sb3ItcHJpbWFyeTogIzAyN2JlMztcXG4gIC0tcS1jb2xvci1zZWNvbmRhcnk6ICMyNmE2OWE7XFxuICAtLXEtY29sb3ItdGVydGlhcnk6ICM1NTU7XFxuICAtLXEtY29sb3ItcG9zaXRpdmU6ICMyMWJhNDU7XFxuICAtLXEtY29sb3ItbmVnYXRpdmU6ICNkYjI4Mjg7XFxuICAtLXEtY29sb3ItbmVnYXRpdmUtbDogI2VjOGI4YjtcXG4gIC0tcS1jb2xvci1pbmZvOiAjMzFjY2VjO1xcbiAgLS1xLWNvbG9yLXdhcm5pbmc6ICNmMmMwMzc7XFxuICAtLXEtY29sb3Itd2FybmluZy1sOiAjZjhkZDkzO1xcbiAgLS1xLWNvbG9yLWxpZ2h0OiAjYmRiZGJkO1xcbiAgLS1xLWNvbG9yLWxpZ2h0LWQ6ICNhYWE7XFxuICAtLXEtY29sb3ItZmFkZWQ6ICM3Nzc7XFxuICAtLXEtY29sb3ItZGFyazogIzQyNDI0MjtcXG59XFxuLnRleHQtcHJpbWFyeSB7XFxuICBjb2xvcjogIzAyN2JlMyAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItcHJpbWFyeSkgIWltcG9ydGFudDtcXG59XFxuLmJnLXByaW1hcnkge1xcbiAgYmFja2dyb3VuZDogIzAyN2JlMyAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci1wcmltYXJ5KSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1zZWNvbmRhcnkge1xcbiAgY29sb3I6ICMyNmE2OWEgIWltcG9ydGFudDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXNlY29uZGFyeSkgIWltcG9ydGFudDtcXG59XFxuLmJnLXNlY29uZGFyeSB7XFxuICBiYWNrZ3JvdW5kOiAjMjZhNjlhICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLXNlY29uZGFyeSkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVydGlhcnkge1xcbiAgY29sb3I6ICM1NTUgIWltcG9ydGFudDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXRlcnRpYXJ5KSAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVydGlhcnkge1xcbiAgYmFja2dyb3VuZDogIzU1NSAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci10ZXJ0aWFyeSkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZmFkZWQge1xcbiAgY29sb3I6ICM3NzcgIWltcG9ydGFudDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWZhZGVkKSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZmFkZWQge1xcbiAgYmFja2dyb3VuZDogIzc3NyAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci1mYWRlZCkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcG9zaXRpdmUge1xcbiAgY29sb3I6ICMyMWJhNDUgIWltcG9ydGFudDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXBvc2l0aXZlKSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcG9zaXRpdmUge1xcbiAgYmFja2dyb3VuZDogIzIxYmE0NSAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci1wb3NpdGl2ZSkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbmVnYXRpdmUge1xcbiAgY29sb3I6ICNkYjI4MjggIWltcG9ydGFudDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLW5lZ2F0aXZlKSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbmVnYXRpdmUge1xcbiAgYmFja2dyb3VuZDogI2RiMjgyOCAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci1uZWdhdGl2ZSkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5mbyB7XFxuICBjb2xvcjogIzMxY2NlYyAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItaW5mbykgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZm8ge1xcbiAgYmFja2dyb3VuZDogIzMxY2NlYyAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci1pbmZvKSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC13YXJuaW5nIHtcXG4gIGNvbG9yOiAjZjJjMDM3ICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci13YXJuaW5nKSAhaW1wb3J0YW50O1xcbn1cXG4uYmctd2FybmluZyB7XFxuICBiYWNrZ3JvdW5kOiAjZjJjMDM3ICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLXdhcm5pbmcpICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXdoaXRlIHtcXG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy13aGl0ZSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsYWNrIHtcXG4gIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibGFjayB7XFxuICBiYWNrZ3JvdW5kOiAjMDAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0IHtcXG4gIGNvbG9yOiAjYmRiZGJkICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1saWdodCkgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0IHtcXG4gIGJhY2tncm91bmQ6ICNiZGJkYmQgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItbGlnaHQpICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRhcmsge1xcbiAgY29sb3I6ICM0MjQyNDIgIWltcG9ydGFudDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWRhcmspICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kYXJrIHtcXG4gIGJhY2tncm91bmQ6ICM0MjQyNDIgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItZGFyaykgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdHJhbnNwYXJlbnQge1xcbiAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10cmFuc3BhcmVudCB7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQge1xcbiAgY29sb3I6ICNmNDQzMzYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTEge1xcbiAgY29sb3I6ICNmZmViZWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTIge1xcbiAgY29sb3I6ICNmZmNkZDIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTMge1xcbiAgY29sb3I6ICNlZjlhOWEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTQge1xcbiAgY29sb3I6ICNlNTczNzMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTUge1xcbiAgY29sb3I6ICNlZjUzNTAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTYge1xcbiAgY29sb3I6ICNmNDQzMzYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTcge1xcbiAgY29sb3I6ICNlNTM5MzUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTgge1xcbiAgY29sb3I6ICNkMzJmMmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTkge1xcbiAgY29sb3I6ICNjNjI4MjggIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTEwIHtcXG4gIGNvbG9yOiAjYjcxYzFjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC0xMSB7XFxuICBjb2xvcjogI2ZmOGE4MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtMTIge1xcbiAgY29sb3I6ICNmZjUyNTIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTEzIHtcXG4gIGNvbG9yOiAjZmYxNzQ0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC0xNCB7XFxuICBjb2xvcjogI2Q1MDAwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rIHtcXG4gIGNvbG9yOiAjZTkxZTYzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstMSB7XFxuICBjb2xvcjogI2ZjZTRlYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTIge1xcbiAgY29sb3I6ICNmOGJiZDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay0zIHtcXG4gIGNvbG9yOiAjZjQ4ZmIxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstNCB7XFxuICBjb2xvcjogI2YwNjI5MiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTUge1xcbiAgY29sb3I6ICNlYzQwN2EgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay02IHtcXG4gIGNvbG9yOiAjZTkxZTYzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstNyB7XFxuICBjb2xvcjogI2Q4MWI2MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTgge1xcbiAgY29sb3I6ICNjMjE4NWIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay05IHtcXG4gIGNvbG9yOiAjYWQxNDU3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstMTAge1xcbiAgY29sb3I6ICM4ODBlNGYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay0xMSB7XFxuICBjb2xvcjogI2ZmODBhYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTEyIHtcXG4gIGNvbG9yOiAjZmY0MDgxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstMTMge1xcbiAgY29sb3I6ICNmNTAwNTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay0xNCB7XFxuICBjb2xvcjogI2M1MTE2MiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUge1xcbiAgY29sb3I6ICM5YzI3YjAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTEge1xcbiAgY29sb3I6ICNmM2U1ZjUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTIge1xcbiAgY29sb3I6ICNlMWJlZTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTMge1xcbiAgY29sb3I6ICNjZTkzZDggIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTQge1xcbiAgY29sb3I6ICNiYTY4YzggIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTUge1xcbiAgY29sb3I6ICNhYjQ3YmMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTYge1xcbiAgY29sb3I6ICM5YzI3YjAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTcge1xcbiAgY29sb3I6ICM4ZTI0YWEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTgge1xcbiAgY29sb3I6ICM3YjFmYTIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTkge1xcbiAgY29sb3I6ICM2YTFiOWEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTEwIHtcXG4gIGNvbG9yOiAjNGExNDhjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS0xMSB7XFxuICBjb2xvcjogI2VhODBmYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtMTIge1xcbiAgY29sb3I6ICNlMDQwZmIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTEzIHtcXG4gIGNvbG9yOiAjZDUwMGY5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS0xNCB7XFxuICBjb2xvcjogI2EwZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZSB7XFxuICBjb2xvcjogIzY3M2FiNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS0xIHtcXG4gIGNvbG9yOiAjZWRlN2Y2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTIge1xcbiAgY29sb3I6ICNkMWM0ZTkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtMyB7XFxuICBjb2xvcjogI2IzOWRkYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS00IHtcXG4gIGNvbG9yOiAjOTU3NWNkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTUge1xcbiAgY29sb3I6ICM3ZTU3YzIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtNiB7XFxuICBjb2xvcjogIzY3M2FiNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS03IHtcXG4gIGNvbG9yOiAjNWUzNWIxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTgge1xcbiAgY29sb3I6ICM1MTJkYTggIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtOSB7XFxuICBjb2xvcjogIzQ1MjdhMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS0xMCB7XFxuICBjb2xvcjogIzMxMWI5MiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS0xMSB7XFxuICBjb2xvcjogI2IzODhmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS0xMiB7XFxuICBjb2xvcjogIzdjNGRmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS0xMyB7XFxuICBjb2xvcjogIzY1MWZmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS0xNCB7XFxuICBjb2xvcjogIzYyMDBlYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28ge1xcbiAgY29sb3I6ICMzZjUxYjUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTEge1xcbiAgY29sb3I6ICNlOGVhZjYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTIge1xcbiAgY29sb3I6ICNjNWNhZTkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTMge1xcbiAgY29sb3I6ICM5ZmE4ZGEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTQge1xcbiAgY29sb3I6ICM3OTg2Y2IgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTUge1xcbiAgY29sb3I6ICM1YzZiYzAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTYge1xcbiAgY29sb3I6ICMzZjUxYjUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTcge1xcbiAgY29sb3I6ICMzOTQ5YWIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTgge1xcbiAgY29sb3I6ICMzMDNmOWYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTkge1xcbiAgY29sb3I6ICMyODM1OTMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTEwIHtcXG4gIGNvbG9yOiAjMWEyMzdlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby0xMSB7XFxuICBjb2xvcjogIzhjOWVmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tMTIge1xcbiAgY29sb3I6ICM1MzZkZmUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTEzIHtcXG4gIGNvbG9yOiAjM2Q1YWZlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby0xNCB7XFxuICBjb2xvcjogIzMwNGZmZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlIHtcXG4gIGNvbG9yOiAjMjE5NmYzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtMSB7XFxuICBjb2xvcjogI2UzZjJmZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTIge1xcbiAgY29sb3I6ICNiYmRlZmIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS0zIHtcXG4gIGNvbG9yOiAjOTBjYWY5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtNCB7XFxuICBjb2xvcjogIzY0YjVmNiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTUge1xcbiAgY29sb3I6ICM0MmE1ZjUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS02IHtcXG4gIGNvbG9yOiAjMjE5NmYzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtNyB7XFxuICBjb2xvcjogIzFlODhlNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTgge1xcbiAgY29sb3I6ICMxOTc2ZDIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS05IHtcXG4gIGNvbG9yOiAjMTU2NWMwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtMTAge1xcbiAgY29sb3I6ICMwZDQ3YTEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS0xMSB7XFxuICBjb2xvcjogIzgyYjFmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTEyIHtcXG4gIGNvbG9yOiAjNDQ4YWZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtMTMge1xcbiAgY29sb3I6ICMyOTc5ZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS0xNCB7XFxuICBjb2xvcjogIzI5NjJmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlIHtcXG4gIGNvbG9yOiAjMDNhOWY0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtMSB7XFxuICBjb2xvcjogI2UxZjVmZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTIge1xcbiAgY29sb3I6ICNiM2U1ZmMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS0zIHtcXG4gIGNvbG9yOiAjODFkNGZhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtNCB7XFxuICBjb2xvcjogIzRmYzNmNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTUge1xcbiAgY29sb3I6ICMyOWI2ZjYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS02IHtcXG4gIGNvbG9yOiAjMDNhOWY0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtNyB7XFxuICBjb2xvcjogIzAzOWJlNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTgge1xcbiAgY29sb3I6ICMwMjg4ZDEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS05IHtcXG4gIGNvbG9yOiAjMDI3N2JkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtMTAge1xcbiAgY29sb3I6ICMwMTU3OWIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS0xMSB7XFxuICBjb2xvcjogIzgwZDhmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTEyIHtcXG4gIGNvbG9yOiAjNDBjNGZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtMTMge1xcbiAgY29sb3I6ICMwMGIwZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS0xNCB7XFxuICBjb2xvcjogIzAwOTFlYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuIHtcXG4gIGNvbG9yOiAjMDBiY2Q0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tMSB7XFxuICBjb2xvcjogI2UwZjdmYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTIge1xcbiAgY29sb3I6ICNiMmViZjIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi0zIHtcXG4gIGNvbG9yOiAjODBkZWVhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tNCB7XFxuICBjb2xvcjogIzRkZDBlMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTUge1xcbiAgY29sb3I6ICMyNmM2ZGEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi02IHtcXG4gIGNvbG9yOiAjMDBiY2Q0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tNyB7XFxuICBjb2xvcjogIzAwYWNjMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTgge1xcbiAgY29sb3I6ICMwMDk3YTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi05IHtcXG4gIGNvbG9yOiAjMDA4MzhmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tMTAge1xcbiAgY29sb3I6ICMwMDYwNjQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi0xMSB7XFxuICBjb2xvcjogIzg0ZmZmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTEyIHtcXG4gIGNvbG9yOiAjMThmZmZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tMTMge1xcbiAgY29sb3I6ICMwMGU1ZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi0xNCB7XFxuICBjb2xvcjogIzAwYjhkNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsIHtcXG4gIGNvbG9yOiAjMDA5Njg4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtMSB7XFxuICBjb2xvcjogI2UwZjJmMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTIge1xcbiAgY29sb3I6ICNiMmRmZGIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC0zIHtcXG4gIGNvbG9yOiAjODBjYmM0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtNCB7XFxuICBjb2xvcjogIzRkYjZhYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTUge1xcbiAgY29sb3I6ICMyNmE2OWEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC02IHtcXG4gIGNvbG9yOiAjMDA5Njg4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtNyB7XFxuICBjb2xvcjogIzAwODk3YiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTgge1xcbiAgY29sb3I6ICMwMDc5NmIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC05IHtcXG4gIGNvbG9yOiAjMDA2OTVjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtMTAge1xcbiAgY29sb3I6ICMwMDRkNDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC0xMSB7XFxuICBjb2xvcjogI2E3ZmZlYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTEyIHtcXG4gIGNvbG9yOiAjNjRmZmRhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtMTMge1xcbiAgY29sb3I6ICMxZGU5YjYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC0xNCB7XFxuICBjb2xvcjogIzAwYmZhNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbiB7XFxuICBjb2xvcjogIzRjYWY1MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi0xIHtcXG4gIGNvbG9yOiAjZThmNWU5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTIge1xcbiAgY29sb3I6ICNjOGU2YzkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tMyB7XFxuICBjb2xvcjogI2E1ZDZhNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi00IHtcXG4gIGNvbG9yOiAjODFjNzg0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTUge1xcbiAgY29sb3I6ICM2NmJiNmEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tNiB7XFxuICBjb2xvcjogIzRjYWY1MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi03IHtcXG4gIGNvbG9yOiAjNDNhMDQ3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTgge1xcbiAgY29sb3I6ICMzODhlM2MgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tOSB7XFxuICBjb2xvcjogIzJlN2QzMiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi0xMCB7XFxuICBjb2xvcjogIzFiNWUyMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi0xMSB7XFxuICBjb2xvcjogI2I5ZjZjYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi0xMiB7XFxuICBjb2xvcjogIzY5ZjBhZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi0xMyB7XFxuICBjb2xvcjogIzAwZTY3NiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi0xNCB7XFxuICBjb2xvcjogIzAwYzg1MyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbiB7XFxuICBjb2xvcjogIzhiYzM0YSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi0xIHtcXG4gIGNvbG9yOiAjZjFmOGU5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTIge1xcbiAgY29sb3I6ICNkY2VkYzggIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tMyB7XFxuICBjb2xvcjogI2M1ZTFhNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi00IHtcXG4gIGNvbG9yOiAjYWVkNTgxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTUge1xcbiAgY29sb3I6ICM5Y2NjNjUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tNiB7XFxuICBjb2xvcjogIzhiYzM0YSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi03IHtcXG4gIGNvbG9yOiAjN2NiMzQyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTgge1xcbiAgY29sb3I6ICM2ODlmMzggIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tOSB7XFxuICBjb2xvcjogIzU1OGIyZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi0xMCB7XFxuICBjb2xvcjogIzMzNjkxZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi0xMSB7XFxuICBjb2xvcjogI2NjZmY5MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi0xMiB7XFxuICBjb2xvcjogI2IyZmY1OSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi0xMyB7XFxuICBjb2xvcjogIzc2ZmYwMyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi0xNCB7XFxuICBjb2xvcjogIzY0ZGQxNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lIHtcXG4gIGNvbG9yOiAjY2RkYzM5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtMSB7XFxuICBjb2xvcjogI2Y5ZmJlNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTIge1xcbiAgY29sb3I6ICNmMGY0YzMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS0zIHtcXG4gIGNvbG9yOiAjZTZlZTljICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtNCB7XFxuICBjb2xvcjogI2RjZTc3NSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTUge1xcbiAgY29sb3I6ICNkNGUxNTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS02IHtcXG4gIGNvbG9yOiAjY2RkYzM5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtNyB7XFxuICBjb2xvcjogI2MwY2EzMyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTgge1xcbiAgY29sb3I6ICNhZmI0MmIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS05IHtcXG4gIGNvbG9yOiAjOWU5ZDI0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtMTAge1xcbiAgY29sb3I6ICM4Mjc3MTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS0xMSB7XFxuICBjb2xvcjogI2Y0ZmY4MSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTEyIHtcXG4gIGNvbG9yOiAjZWVmZjQxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtMTMge1xcbiAgY29sb3I6ICNjNmZmMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS0xNCB7XFxuICBjb2xvcjogI2FlZWEwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3cge1xcbiAgY29sb3I6ICNmZmViM2IgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTEge1xcbiAgY29sb3I6ICNmZmZkZTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTIge1xcbiAgY29sb3I6ICNmZmY5YzQgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTMge1xcbiAgY29sb3I6ICNmZmY1OWQgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTQge1xcbiAgY29sb3I6ICNmZmYxNzYgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTUge1xcbiAgY29sb3I6ICNmZmVlNTggIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTYge1xcbiAgY29sb3I6ICNmZmViM2IgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTcge1xcbiAgY29sb3I6ICNmZGQ4MzUgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTgge1xcbiAgY29sb3I6ICNmYmMwMmQgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTkge1xcbiAgY29sb3I6ICNmOWE4MjUgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTEwIHtcXG4gIGNvbG9yOiAjZjU3ZjE3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy0xMSB7XFxuICBjb2xvcjogI2ZmZmY4ZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctMTIge1xcbiAgY29sb3I6ICNmZjAgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTEzIHtcXG4gIGNvbG9yOiAjZmZlYTAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy0xNCB7XFxuICBjb2xvcjogI2ZmZDYwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlciB7XFxuICBjb2xvcjogI2ZmYzEwNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci0xIHtcXG4gIGNvbG9yOiAjZmZmOGUxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTIge1xcbiAgY29sb3I6ICNmZmVjYjMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItMyB7XFxuICBjb2xvcjogI2ZmZTA4MiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci00IHtcXG4gIGNvbG9yOiAjZmZkNTRmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTUge1xcbiAgY29sb3I6ICNmZmNhMjggIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItNiB7XFxuICBjb2xvcjogI2ZmYzEwNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci03IHtcXG4gIGNvbG9yOiAjZmZiMzAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTgge1xcbiAgY29sb3I6ICNmZmEwMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItOSB7XFxuICBjb2xvcjogI2ZmOGYwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci0xMCB7XFxuICBjb2xvcjogI2ZmNmYwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci0xMSB7XFxuICBjb2xvcjogI2ZmZTU3ZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci0xMiB7XFxuICBjb2xvcjogI2ZmZDc0MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci0xMyB7XFxuICBjb2xvcjogI2ZmYzQwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci0xNCB7XFxuICBjb2xvcjogI2ZmYWIwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2Uge1xcbiAgY29sb3I6ICNmZjk4MDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTEge1xcbiAgY29sb3I6ICNmZmYzZTAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTIge1xcbiAgY29sb3I6ICNmZmUwYjIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTMge1xcbiAgY29sb3I6ICNmZmNjODAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTQge1xcbiAgY29sb3I6ICNmZmI3NGQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTUge1xcbiAgY29sb3I6ICNmZmE3MjYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTYge1xcbiAgY29sb3I6ICNmZjk4MDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTcge1xcbiAgY29sb3I6ICNmYjhjMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTgge1xcbiAgY29sb3I6ICNmNTdjMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTkge1xcbiAgY29sb3I6ICNlZjZjMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTEwIHtcXG4gIGNvbG9yOiAjZTY1MTAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS0xMSB7XFxuICBjb2xvcjogI2ZmZDE4MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtMTIge1xcbiAgY29sb3I6ICNmZmFiNDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTEzIHtcXG4gIGNvbG9yOiAjZmY5MTAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS0xNCB7XFxuICBjb2xvcjogI2ZmNmQwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZSB7XFxuICBjb2xvcjogI2ZmNTcyMiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS0xIHtcXG4gIGNvbG9yOiAjZmJlOWU3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTIge1xcbiAgY29sb3I6ICNmZmNjYmMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtMyB7XFxuICBjb2xvcjogI2ZmYWI5MSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS00IHtcXG4gIGNvbG9yOiAjZmY4YTY1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTUge1xcbiAgY29sb3I6ICNmZjcwNDMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtNiB7XFxuICBjb2xvcjogI2ZmNTcyMiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS03IHtcXG4gIGNvbG9yOiAjZjQ1MTFlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTgge1xcbiAgY29sb3I6ICNlNjRhMTkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtOSB7XFxuICBjb2xvcjogI2Q4NDMxNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS0xMCB7XFxuICBjb2xvcjogI2JmMzYwYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS0xMSB7XFxuICBjb2xvcjogI2ZmOWU4MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS0xMiB7XFxuICBjb2xvcjogI2ZmNmU0MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS0xMyB7XFxuICBjb2xvcjogI2ZmM2QwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS0xNCB7XFxuICBjb2xvcjogI2RkMmMwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93biB7XFxuICBjb2xvcjogIzc5NTU0OCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi0xIHtcXG4gIGNvbG9yOiAjZWZlYmU5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTIge1xcbiAgY29sb3I6ICNkN2NjYzggIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tMyB7XFxuICBjb2xvcjogI2JjYWFhNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi00IHtcXG4gIGNvbG9yOiAjYTE4ODdmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTUge1xcbiAgY29sb3I6ICM4ZDZlNjMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tNiB7XFxuICBjb2xvcjogIzc5NTU0OCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi03IHtcXG4gIGNvbG9yOiAjNmQ0YzQxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTgge1xcbiAgY29sb3I6ICM1ZDQwMzcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tOSB7XFxuICBjb2xvcjogIzRlMzQyZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi0xMCB7XFxuICBjb2xvcjogIzNlMjcyMyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi0xMSB7XFxuICBjb2xvcjogI2Q3Y2NjOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi0xMiB7XFxuICBjb2xvcjogI2JjYWFhNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi0xMyB7XFxuICBjb2xvcjogIzhkNmU2MyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi0xNCB7XFxuICBjb2xvcjogIzVkNDAzNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5IHtcXG4gIGNvbG9yOiAjOWU5ZTllICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktMSB7XFxuICBjb2xvcjogI2ZhZmFmYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTIge1xcbiAgY29sb3I6ICNmNWY1ZjUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS0zIHtcXG4gIGNvbG9yOiAjZWVlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktNCB7XFxuICBjb2xvcjogI2UwZTBlMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTUge1xcbiAgY29sb3I6ICNiZGJkYmQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS02IHtcXG4gIGNvbG9yOiAjOWU5ZTllICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktNyB7XFxuICBjb2xvcjogIzc1NzU3NSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTgge1xcbiAgY29sb3I6ICM2MTYxNjEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS05IHtcXG4gIGNvbG9yOiAjNDI0MjQyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktMTAge1xcbiAgY29sb3I6ICMyMTIxMjEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS0xMSB7XFxuICBjb2xvcjogI2Y1ZjVmNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTEyIHtcXG4gIGNvbG9yOiAjZWVlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktMTMge1xcbiAgY29sb3I6ICNiZGJkYmQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS0xNCB7XFxuICBjb2xvcjogIzYxNjE2MSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXkge1xcbiAgY29sb3I6ICM2MDdkOGIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTEge1xcbiAgY29sb3I6ICNlY2VmZjEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTIge1xcbiAgY29sb3I6ICNjZmQ4ZGMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTMge1xcbiAgY29sb3I6ICNiMGJlYzUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTQge1xcbiAgY29sb3I6ICM5MGE0YWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTUge1xcbiAgY29sb3I6ICM3ODkwOWMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTYge1xcbiAgY29sb3I6ICM2MDdkOGIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTcge1xcbiAgY29sb3I6ICM1NDZlN2EgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTgge1xcbiAgY29sb3I6ICM0NTVhNjQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTkge1xcbiAgY29sb3I6ICMzNzQ3NGYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTEwIHtcXG4gIGNvbG9yOiAjMjYzMjM4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS0xMSB7XFxuICBjb2xvcjogI2NmZDhkYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktMTIge1xcbiAgY29sb3I6ICNiMGJlYzUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTEzIHtcXG4gIGNvbG9yOiAjNzg5MDljICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS0xNCB7XFxuICBjb2xvcjogIzQ1NWE2NCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkIHtcXG4gIGJhY2tncm91bmQ6ICNmNDQzMzYgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC0xIHtcXG4gIGJhY2tncm91bmQ6ICNmZmViZWUgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC0yIHtcXG4gIGJhY2tncm91bmQ6ICNmZmNkZDIgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC0zIHtcXG4gIGJhY2tncm91bmQ6ICNlZjlhOWEgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC00IHtcXG4gIGJhY2tncm91bmQ6ICNlNTczNzMgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC01IHtcXG4gIGJhY2tncm91bmQ6ICNlZjUzNTAgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC02IHtcXG4gIGJhY2tncm91bmQ6ICNmNDQzMzYgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC03IHtcXG4gIGJhY2tncm91bmQ6ICNlNTM5MzUgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC04IHtcXG4gIGJhY2tncm91bmQ6ICNkMzJmMmYgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC05IHtcXG4gIGJhY2tncm91bmQ6ICNjNjI4MjggIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjYjcxYzFjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtMTEge1xcbiAgYmFja2dyb3VuZDogI2ZmOGE4MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTEyIHtcXG4gIGJhY2tncm91bmQ6ICNmZjUyNTIgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjZmYxNzQ0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtMTQge1xcbiAgYmFja2dyb3VuZDogI2Q1MDAwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluayB7XFxuICBiYWNrZ3JvdW5kOiAjZTkxZTYzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTEge1xcbiAgYmFja2dyb3VuZDogI2ZjZTRlYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay0yIHtcXG4gIGJhY2tncm91bmQ6ICNmOGJiZDAgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstMyB7XFxuICBiYWNrZ3JvdW5kOiAjZjQ4ZmIxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTQge1xcbiAgYmFja2dyb3VuZDogI2YwNjI5MiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay01IHtcXG4gIGJhY2tncm91bmQ6ICNlYzQwN2EgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstNiB7XFxuICBiYWNrZ3JvdW5kOiAjZTkxZTYzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTcge1xcbiAgYmFja2dyb3VuZDogI2Q4MWI2MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay04IHtcXG4gIGJhY2tncm91bmQ6ICNjMjE4NWIgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstOSB7XFxuICBiYWNrZ3JvdW5kOiAjYWQxNDU3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTEwIHtcXG4gIGJhY2tncm91bmQ6ICM4ODBlNGYgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstMTEge1xcbiAgYmFja2dyb3VuZDogI2ZmODBhYiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmY0MDgxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTEzIHtcXG4gIGJhY2tncm91bmQ6ICNmNTAwNTcgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstMTQge1xcbiAgYmFja2dyb3VuZDogI2M1MTE2MiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlIHtcXG4gIGJhY2tncm91bmQ6ICM5YzI3YjAgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS0xIHtcXG4gIGJhY2tncm91bmQ6ICNmM2U1ZjUgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS0yIHtcXG4gIGJhY2tncm91bmQ6ICNlMWJlZTcgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS0zIHtcXG4gIGJhY2tncm91bmQ6ICNjZTkzZDggIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS00IHtcXG4gIGJhY2tncm91bmQ6ICNiYTY4YzggIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS01IHtcXG4gIGJhY2tncm91bmQ6ICNhYjQ3YmMgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS02IHtcXG4gIGJhY2tncm91bmQ6ICM5YzI3YjAgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS03IHtcXG4gIGJhY2tncm91bmQ6ICM4ZTI0YWEgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS04IHtcXG4gIGJhY2tncm91bmQ6ICM3YjFmYTIgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS05IHtcXG4gIGJhY2tncm91bmQ6ICM2YTFiOWEgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjNGExNDhjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtMTEge1xcbiAgYmFja2dyb3VuZDogI2VhODBmYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTEyIHtcXG4gIGJhY2tncm91bmQ6ICNlMDQwZmIgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjZDUwMGY5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtMTQge1xcbiAgYmFja2dyb3VuZDogI2EwZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUge1xcbiAgYmFja2dyb3VuZDogIzY3M2FiNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZWRlN2Y2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS0yIHtcXG4gIGJhY2tncm91bmQ6ICNkMWM0ZTkgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTMge1xcbiAgYmFja2dyb3VuZDogI2IzOWRkYiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtNCB7XFxuICBiYWNrZ3JvdW5kOiAjOTU3NWNkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS01IHtcXG4gIGJhY2tncm91bmQ6ICM3ZTU3YzIgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTYge1xcbiAgYmFja2dyb3VuZDogIzY3M2FiNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtNyB7XFxuICBiYWNrZ3JvdW5kOiAjNWUzNWIxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS04IHtcXG4gIGJhY2tncm91bmQ6ICM1MTJkYTggIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTkge1xcbiAgYmFja2dyb3VuZDogIzQ1MjdhMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtMTAge1xcbiAgYmFja2dyb3VuZDogIzMxMWI5MiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtMTEge1xcbiAgYmFja2dyb3VuZDogI2IzODhmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtMTIge1xcbiAgYmFja2dyb3VuZDogIzdjNGRmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtMTMge1xcbiAgYmFja2dyb3VuZDogIzY1MWZmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtMTQge1xcbiAgYmFja2dyb3VuZDogIzYyMDBlYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvIHtcXG4gIGJhY2tncm91bmQ6ICMzZjUxYjUgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby0xIHtcXG4gIGJhY2tncm91bmQ6ICNlOGVhZjYgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby0yIHtcXG4gIGJhY2tncm91bmQ6ICNjNWNhZTkgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby0zIHtcXG4gIGJhY2tncm91bmQ6ICM5ZmE4ZGEgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby00IHtcXG4gIGJhY2tncm91bmQ6ICM3OTg2Y2IgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby01IHtcXG4gIGJhY2tncm91bmQ6ICM1YzZiYzAgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby02IHtcXG4gIGJhY2tncm91bmQ6ICMzZjUxYjUgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby03IHtcXG4gIGJhY2tncm91bmQ6ICMzOTQ5YWIgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby04IHtcXG4gIGJhY2tncm91bmQ6ICMzMDNmOWYgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby05IHtcXG4gIGJhY2tncm91bmQ6ICMyODM1OTMgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMWEyMzdlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tMTEge1xcbiAgYmFja2dyb3VuZDogIzhjOWVmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTEyIHtcXG4gIGJhY2tncm91bmQ6ICM1MzZkZmUgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjM2Q1YWZlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tMTQge1xcbiAgYmFja2dyb3VuZDogIzMwNGZmZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZSB7XFxuICBiYWNrZ3JvdW5kOiAjMjE5NmYzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTEge1xcbiAgYmFja2dyb3VuZDogI2UzZjJmZCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS0yIHtcXG4gIGJhY2tncm91bmQ6ICNiYmRlZmIgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtMyB7XFxuICBiYWNrZ3JvdW5kOiAjOTBjYWY5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTQge1xcbiAgYmFja2dyb3VuZDogIzY0YjVmNiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS01IHtcXG4gIGJhY2tncm91bmQ6ICM0MmE1ZjUgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtNiB7XFxuICBiYWNrZ3JvdW5kOiAjMjE5NmYzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTcge1xcbiAgYmFja2dyb3VuZDogIzFlODhlNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS04IHtcXG4gIGJhY2tncm91bmQ6ICMxOTc2ZDIgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtOSB7XFxuICBiYWNrZ3JvdW5kOiAjMTU2NWMwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTEwIHtcXG4gIGJhY2tncm91bmQ6ICMwZDQ3YTEgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtMTEge1xcbiAgYmFja2dyb3VuZDogIzgyYjFmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjNDQ4YWZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTEzIHtcXG4gIGJhY2tncm91bmQ6ICMyOTc5ZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtMTQge1xcbiAgYmFja2dyb3VuZDogIzI5NjJmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZSB7XFxuICBiYWNrZ3JvdW5kOiAjMDNhOWY0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTEge1xcbiAgYmFja2dyb3VuZDogI2UxZjVmZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS0yIHtcXG4gIGJhY2tncm91bmQ6ICNiM2U1ZmMgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtMyB7XFxuICBiYWNrZ3JvdW5kOiAjODFkNGZhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTQge1xcbiAgYmFja2dyb3VuZDogIzRmYzNmNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS01IHtcXG4gIGJhY2tncm91bmQ6ICMyOWI2ZjYgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtNiB7XFxuICBiYWNrZ3JvdW5kOiAjMDNhOWY0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTcge1xcbiAgYmFja2dyb3VuZDogIzAzOWJlNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS04IHtcXG4gIGJhY2tncm91bmQ6ICMwMjg4ZDEgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtOSB7XFxuICBiYWNrZ3JvdW5kOiAjMDI3N2JkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTEwIHtcXG4gIGJhY2tncm91bmQ6ICMwMTU3OWIgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtMTEge1xcbiAgYmFja2dyb3VuZDogIzgwZDhmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjNDBjNGZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTEzIHtcXG4gIGJhY2tncm91bmQ6ICMwMGIwZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtMTQge1xcbiAgYmFja2dyb3VuZDogIzAwOTFlYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbiB7XFxuICBiYWNrZ3JvdW5kOiAjMDBiY2Q0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTEge1xcbiAgYmFja2dyb3VuZDogI2UwZjdmYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi0yIHtcXG4gIGJhY2tncm91bmQ6ICNiMmViZjIgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tMyB7XFxuICBiYWNrZ3JvdW5kOiAjODBkZWVhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTQge1xcbiAgYmFja2dyb3VuZDogIzRkZDBlMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi01IHtcXG4gIGJhY2tncm91bmQ6ICMyNmM2ZGEgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tNiB7XFxuICBiYWNrZ3JvdW5kOiAjMDBiY2Q0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTcge1xcbiAgYmFja2dyb3VuZDogIzAwYWNjMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi04IHtcXG4gIGJhY2tncm91bmQ6ICMwMDk3YTcgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tOSB7XFxuICBiYWNrZ3JvdW5kOiAjMDA4MzhmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTEwIHtcXG4gIGJhY2tncm91bmQ6ICMwMDYwNjQgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tMTEge1xcbiAgYmFja2dyb3VuZDogIzg0ZmZmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjMThmZmZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTEzIHtcXG4gIGJhY2tncm91bmQ6ICMwMGU1ZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tMTQge1xcbiAgYmFja2dyb3VuZDogIzAwYjhkNCAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbCB7XFxuICBiYWNrZ3JvdW5kOiAjMDA5Njg4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTEge1xcbiAgYmFja2dyb3VuZDogI2UwZjJmMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC0yIHtcXG4gIGJhY2tncm91bmQ6ICNiMmRmZGIgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtMyB7XFxuICBiYWNrZ3JvdW5kOiAjODBjYmM0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTQge1xcbiAgYmFja2dyb3VuZDogIzRkYjZhYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC01IHtcXG4gIGJhY2tncm91bmQ6ICMyNmE2OWEgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtNiB7XFxuICBiYWNrZ3JvdW5kOiAjMDA5Njg4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTcge1xcbiAgYmFja2dyb3VuZDogIzAwODk3YiAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC04IHtcXG4gIGJhY2tncm91bmQ6ICMwMDc5NmIgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtOSB7XFxuICBiYWNrZ3JvdW5kOiAjMDA2OTVjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTEwIHtcXG4gIGJhY2tncm91bmQ6ICMwMDRkNDAgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtMTEge1xcbiAgYmFja2dyb3VuZDogI2E3ZmZlYiAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjNjRmZmRhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTEzIHtcXG4gIGJhY2tncm91bmQ6ICMxZGU5YjYgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtMTQge1xcbiAgYmFja2dyb3VuZDogIzAwYmZhNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4ge1xcbiAgYmFja2dyb3VuZDogIzRjYWY1MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tMSB7XFxuICBiYWNrZ3JvdW5kOiAjZThmNWU5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi0yIHtcXG4gIGJhY2tncm91bmQ6ICNjOGU2YzkgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTMge1xcbiAgYmFja2dyb3VuZDogI2E1ZDZhNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tNCB7XFxuICBiYWNrZ3JvdW5kOiAjODFjNzg0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi01IHtcXG4gIGJhY2tncm91bmQ6ICM2NmJiNmEgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTYge1xcbiAgYmFja2dyb3VuZDogIzRjYWY1MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tNyB7XFxuICBiYWNrZ3JvdW5kOiAjNDNhMDQ3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi04IHtcXG4gIGJhY2tncm91bmQ6ICMzODhlM2MgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTkge1xcbiAgYmFja2dyb3VuZDogIzJlN2QzMiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tMTAge1xcbiAgYmFja2dyb3VuZDogIzFiNWUyMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tMTEge1xcbiAgYmFja2dyb3VuZDogI2I5ZjZjYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tMTIge1xcbiAgYmFja2dyb3VuZDogIzY5ZjBhZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tMTMge1xcbiAgYmFja2dyb3VuZDogIzAwZTY3NiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tMTQge1xcbiAgYmFja2dyb3VuZDogIzAwYzg1MyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4ge1xcbiAgYmFja2dyb3VuZDogIzhiYzM0YSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tMSB7XFxuICBiYWNrZ3JvdW5kOiAjZjFmOGU5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi0yIHtcXG4gIGJhY2tncm91bmQ6ICNkY2VkYzggIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTMge1xcbiAgYmFja2dyb3VuZDogI2M1ZTFhNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tNCB7XFxuICBiYWNrZ3JvdW5kOiAjYWVkNTgxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi01IHtcXG4gIGJhY2tncm91bmQ6ICM5Y2NjNjUgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTYge1xcbiAgYmFja2dyb3VuZDogIzhiYzM0YSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tNyB7XFxuICBiYWNrZ3JvdW5kOiAjN2NiMzQyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi04IHtcXG4gIGJhY2tncm91bmQ6ICM2ODlmMzggIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTkge1xcbiAgYmFja2dyb3VuZDogIzU1OGIyZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tMTAge1xcbiAgYmFja2dyb3VuZDogIzMzNjkxZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tMTEge1xcbiAgYmFja2dyb3VuZDogI2NjZmY5MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tMTIge1xcbiAgYmFja2dyb3VuZDogI2IyZmY1OSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tMTMge1xcbiAgYmFja2dyb3VuZDogIzc2ZmYwMyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tMTQge1xcbiAgYmFja2dyb3VuZDogIzY0ZGQxNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZSB7XFxuICBiYWNrZ3JvdW5kOiAjY2RkYzM5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTEge1xcbiAgYmFja2dyb3VuZDogI2Y5ZmJlNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS0yIHtcXG4gIGJhY2tncm91bmQ6ICNmMGY0YzMgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtMyB7XFxuICBiYWNrZ3JvdW5kOiAjZTZlZTljICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTQge1xcbiAgYmFja2dyb3VuZDogI2RjZTc3NSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS01IHtcXG4gIGJhY2tncm91bmQ6ICNkNGUxNTcgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtNiB7XFxuICBiYWNrZ3JvdW5kOiAjY2RkYzM5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTcge1xcbiAgYmFja2dyb3VuZDogI2MwY2EzMyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS04IHtcXG4gIGJhY2tncm91bmQ6ICNhZmI0MmIgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtOSB7XFxuICBiYWNrZ3JvdW5kOiAjOWU5ZDI0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTEwIHtcXG4gIGJhY2tncm91bmQ6ICM4Mjc3MTcgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtMTEge1xcbiAgYmFja2dyb3VuZDogI2Y0ZmY4MSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjZWVmZjQxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTEzIHtcXG4gIGJhY2tncm91bmQ6ICNjNmZmMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtMTQge1xcbiAgYmFja2dyb3VuZDogI2FlZWEwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93IHtcXG4gIGJhY2tncm91bmQ6ICNmZmViM2IgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy0xIHtcXG4gIGJhY2tncm91bmQ6ICNmZmZkZTcgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy0yIHtcXG4gIGJhY2tncm91bmQ6ICNmZmY5YzQgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy0zIHtcXG4gIGJhY2tncm91bmQ6ICNmZmY1OWQgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy00IHtcXG4gIGJhY2tncm91bmQ6ICNmZmYxNzYgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy01IHtcXG4gIGJhY2tncm91bmQ6ICNmZmVlNTggIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy02IHtcXG4gIGJhY2tncm91bmQ6ICNmZmViM2IgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy03IHtcXG4gIGJhY2tncm91bmQ6ICNmZGQ4MzUgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy04IHtcXG4gIGJhY2tncm91bmQ6ICNmYmMwMmQgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy05IHtcXG4gIGJhY2tncm91bmQ6ICNmOWE4MjUgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjZjU3ZjE3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctMTEge1xcbiAgYmFja2dyb3VuZDogI2ZmZmY4ZCAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTEyIHtcXG4gIGJhY2tncm91bmQ6ICNmZjAgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlYTAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctMTQge1xcbiAgYmFja2dyb3VuZDogI2ZmZDYwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXIge1xcbiAgYmFja2dyb3VuZDogI2ZmYzEwNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmOGUxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci0yIHtcXG4gIGJhY2tncm91bmQ6ICNmZmVjYjMgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTMge1xcbiAgYmFja2dyb3VuZDogI2ZmZTA4MiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItNCB7XFxuICBiYWNrZ3JvdW5kOiAjZmZkNTRmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci01IHtcXG4gIGJhY2tncm91bmQ6ICNmZmNhMjggIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTYge1xcbiAgYmFja2dyb3VuZDogI2ZmYzEwNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItNyB7XFxuICBiYWNrZ3JvdW5kOiAjZmZiMzAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci04IHtcXG4gIGJhY2tncm91bmQ6ICNmZmEwMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTkge1xcbiAgYmFja2dyb3VuZDogI2ZmOGYwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItMTAge1xcbiAgYmFja2dyb3VuZDogI2ZmNmYwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItMTEge1xcbiAgYmFja2dyb3VuZDogI2ZmZTU3ZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItMTIge1xcbiAgYmFja2dyb3VuZDogI2ZmZDc0MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItMTMge1xcbiAgYmFja2dyb3VuZDogI2ZmYzQwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItMTQge1xcbiAgYmFja2dyb3VuZDogI2ZmYWIwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlIHtcXG4gIGJhY2tncm91bmQ6ICNmZjk4MDAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS0xIHtcXG4gIGJhY2tncm91bmQ6ICNmZmYzZTAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS0yIHtcXG4gIGJhY2tncm91bmQ6ICNmZmUwYjIgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS0zIHtcXG4gIGJhY2tncm91bmQ6ICNmZmNjODAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS00IHtcXG4gIGJhY2tncm91bmQ6ICNmZmI3NGQgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS01IHtcXG4gIGJhY2tncm91bmQ6ICNmZmE3MjYgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS02IHtcXG4gIGJhY2tncm91bmQ6ICNmZjk4MDAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS03IHtcXG4gIGJhY2tncm91bmQ6ICNmYjhjMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS04IHtcXG4gIGJhY2tncm91bmQ6ICNmNTdjMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS05IHtcXG4gIGJhY2tncm91bmQ6ICNlZjZjMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjZTY1MTAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtMTEge1xcbiAgYmFja2dyb3VuZDogI2ZmZDE4MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTEyIHtcXG4gIGJhY2tncm91bmQ6ICNmZmFiNDAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjZmY5MTAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtMTQge1xcbiAgYmFja2dyb3VuZDogI2ZmNmQwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2Uge1xcbiAgYmFja2dyb3VuZDogI2ZmNTcyMiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmJlOWU3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS0yIHtcXG4gIGJhY2tncm91bmQ6ICNmZmNjYmMgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTMge1xcbiAgYmFja2dyb3VuZDogI2ZmYWI5MSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtNCB7XFxuICBiYWNrZ3JvdW5kOiAjZmY4YTY1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS01IHtcXG4gIGJhY2tncm91bmQ6ICNmZjcwNDMgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTYge1xcbiAgYmFja2dyb3VuZDogI2ZmNTcyMiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtNyB7XFxuICBiYWNrZ3JvdW5kOiAjZjQ1MTFlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS04IHtcXG4gIGJhY2tncm91bmQ6ICNlNjRhMTkgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTkge1xcbiAgYmFja2dyb3VuZDogI2Q4NDMxNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtMTAge1xcbiAgYmFja2dyb3VuZDogI2JmMzYwYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtMTEge1xcbiAgYmFja2dyb3VuZDogI2ZmOWU4MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtMTIge1xcbiAgYmFja2dyb3VuZDogI2ZmNmU0MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtMTMge1xcbiAgYmFja2dyb3VuZDogI2ZmM2QwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtMTQge1xcbiAgYmFja2dyb3VuZDogI2RkMmMwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24ge1xcbiAgYmFja2dyb3VuZDogIzc5NTU0OCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tMSB7XFxuICBiYWNrZ3JvdW5kOiAjZWZlYmU5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi0yIHtcXG4gIGJhY2tncm91bmQ6ICNkN2NjYzggIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTMge1xcbiAgYmFja2dyb3VuZDogI2JjYWFhNCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tNCB7XFxuICBiYWNrZ3JvdW5kOiAjYTE4ODdmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi01IHtcXG4gIGJhY2tncm91bmQ6ICM4ZDZlNjMgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTYge1xcbiAgYmFja2dyb3VuZDogIzc5NTU0OCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tNyB7XFxuICBiYWNrZ3JvdW5kOiAjNmQ0YzQxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi04IHtcXG4gIGJhY2tncm91bmQ6ICM1ZDQwMzcgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTkge1xcbiAgYmFja2dyb3VuZDogIzRlMzQyZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tMTAge1xcbiAgYmFja2dyb3VuZDogIzNlMjcyMyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tMTEge1xcbiAgYmFja2dyb3VuZDogI2Q3Y2NjOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tMTIge1xcbiAgYmFja2dyb3VuZDogI2JjYWFhNCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tMTMge1xcbiAgYmFja2dyb3VuZDogIzhkNmU2MyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tMTQge1xcbiAgYmFja2dyb3VuZDogIzVkNDAzNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleSB7XFxuICBiYWNrZ3JvdW5kOiAjOWU5ZTllICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTEge1xcbiAgYmFja2dyb3VuZDogI2ZhZmFmYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS0yIHtcXG4gIGJhY2tncm91bmQ6ICNmNWY1ZjUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktMyB7XFxuICBiYWNrZ3JvdW5kOiAjZWVlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTQge1xcbiAgYmFja2dyb3VuZDogI2UwZTBlMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS01IHtcXG4gIGJhY2tncm91bmQ6ICNiZGJkYmQgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktNiB7XFxuICBiYWNrZ3JvdW5kOiAjOWU5ZTllICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTcge1xcbiAgYmFja2dyb3VuZDogIzc1NzU3NSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS04IHtcXG4gIGJhY2tncm91bmQ6ICM2MTYxNjEgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktOSB7XFxuICBiYWNrZ3JvdW5kOiAjNDI0MjQyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTEwIHtcXG4gIGJhY2tncm91bmQ6ICMyMTIxMjEgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktMTEge1xcbiAgYmFja2dyb3VuZDogI2Y1ZjVmNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjZWVlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTEzIHtcXG4gIGJhY2tncm91bmQ6ICNiZGJkYmQgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktMTQge1xcbiAgYmFja2dyb3VuZDogIzYxNjE2MSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5IHtcXG4gIGJhY2tncm91bmQ6ICM2MDdkOGIgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS0xIHtcXG4gIGJhY2tncm91bmQ6ICNlY2VmZjEgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS0yIHtcXG4gIGJhY2tncm91bmQ6ICNjZmQ4ZGMgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS0zIHtcXG4gIGJhY2tncm91bmQ6ICNiMGJlYzUgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS00IHtcXG4gIGJhY2tncm91bmQ6ICM5MGE0YWUgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS01IHtcXG4gIGJhY2tncm91bmQ6ICM3ODkwOWMgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS02IHtcXG4gIGJhY2tncm91bmQ6ICM2MDdkOGIgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS03IHtcXG4gIGJhY2tncm91bmQ6ICM1NDZlN2EgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS04IHtcXG4gIGJhY2tncm91bmQ6ICM0NTVhNjQgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS05IHtcXG4gIGJhY2tncm91bmQ6ICMzNzQ3NGYgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMjYzMjM4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktMTEge1xcbiAgYmFja2dyb3VuZDogI2NmZDhkYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTEyIHtcXG4gIGJhY2tncm91bmQ6ICNiMGJlYzUgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjNzg5MDljICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktMTQge1xcbiAgYmFja2dyb3VuZDogIzQ1NWE2NCAhaW1wb3J0YW50O1xcbn1cXG4uc2hhZG93LXRyYW5zaXRpb24ge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LWJveC1zaGFkb3cgMC4yOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50O1xcbiAgdHJhbnNpdGlvbjogLXdlYmtpdC1ib3gtc2hhZG93IDAuMjhzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWltcG9ydGFudDtcXG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4yOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50O1xcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjI4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCAtd2Via2l0LWJveC1zaGFkb3cgMC4yOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50O1xcbn1cXG4uc2hhZG93LTEge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0ycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0yIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDhweCByZ2JhKDAsMCwwLDAuMiksIDAgM3B4IDRweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAzcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA4cHggcmdiYSgwLDAsMCwwLjIpLCAwIDNweCA0cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggM3B4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0zIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMXB4IDhweCByZ2JhKDAsMCwwLDAuMiksIDAgLTNweCA0cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTFweCA4cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0zcHggNHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAzcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTQge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDJweCA0cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgNHB4IDVweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDFweCAxMHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCA0cHggNXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMXB4IDEwcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC00IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMnB4IDRweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtNHB4IDVweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0xcHggMTBweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0ycHggNHB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIC00cHggNXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTFweCAxMHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctNSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCA1cHggOHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMXB4IDE0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAzcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIDVweCA4cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAxcHggMTRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTUge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0zcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIC01cHggOHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTFweCAxNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgLTVweCA4cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMXB4IDE0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy02IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAzcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIDZweCAxMHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMXB4IDE4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAzcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIDZweCAxMHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMXB4IDE4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC02IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtNnB4IDEwcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMXB4IDE4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtNnB4IDEwcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMXB4IDE4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy03IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA0cHggNXB4IC0ycHggcmdiYSgwLDAsMCwwLjIpLCAwIDdweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxNnB4IDFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDRweCA1cHggLTJweCByZ2JhKDAsMCwwLDAuMiksIDAgN3B4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDE2cHggMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtNyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTRweCA1cHggLTJweCByZ2JhKDAsMCwwLDAuMiksIDAgLTdweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0ycHggMTZweCAxcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtNHB4IDVweCAtMnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtN3B4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTJweCAxNnB4IDFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTgge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDVweCA1cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgOHB4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDE0cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDVweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCA4cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMTRweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC04IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtNXB4IDVweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtOHB4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAxNHB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC01cHggNXB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIC04cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDE0cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctOSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNXB4IDZweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCA5cHggMTJweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMTZweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA1cHggNnB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIDlweCAxMnB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxNnB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTkge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC01cHggNnB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIC05cHggMTJweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDE2cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTVweCA2cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgLTlweCAxMnB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggMTZweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0xMCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNnB4IDZweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxMHB4IDE0cHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNHB4IDE4cHggM3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgNnB4IDZweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxMHB4IDE0cHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNHB4IDE4cHggM3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTAge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC02cHggNnB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xMHB4IDE0cHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTRweCAxOHB4IDNweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC02cHggNnB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xMHB4IDE0cHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTRweCAxOHB4IDNweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTExIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA2cHggN3B4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIDExcHggMTVweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA0cHggMjBweCAzcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA2cHggN3B4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIDExcHggMTVweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA0cHggMjBweCAzcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xMSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTZweCA3cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgLTExcHggMTVweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNHB4IDIwcHggM3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTZweCA3cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgLTExcHggMTVweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNHB4IDIwcHggM3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDdweCA4cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgMTJweCAxN3B4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDVweCAyMnB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDdweCA4cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgMTJweCAxN3B4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDVweCAyMnB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTEyIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtN3B4IDhweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTJweCAxN3B4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC01cHggMjJweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtN3B4IDhweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTJweCAxN3B4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC01cHggMjJweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0xMyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgN3B4IDhweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxM3B4IDE5cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNXB4IDI0cHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgN3B4IDhweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxM3B4IDE5cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNXB4IDI0cHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTMge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC03cHggOHB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xM3B4IDE5cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTVweCAyNHB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC03cHggOHB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xM3B4IDE5cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTVweCAyNHB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTE0IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA3cHggOXB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE0cHggMjFweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA1cHggMjZweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA3cHggOXB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE0cHggMjFweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA1cHggMjZweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xNCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTdweCA5cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE0cHggMjFweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNXB4IDI2cHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTdweCA5cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE0cHggMjFweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNXB4IDI2cHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTUge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDhweCA5cHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgMTVweCAyMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDZweCAyOHB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDhweCA5cHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgMTVweCAyMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDZweCAyOHB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTE1IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtOHB4IDlweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTVweCAyMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC02cHggMjhweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtOHB4IDlweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTVweCAyMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC02cHggMjhweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0xNiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgOHB4IDEwcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgMTZweCAyNHB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDZweCAzMHB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDhweCAxMHB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE2cHggMjRweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA2cHggMzBweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xNiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLThweCAxMHB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xNnB4IDI0cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTZweCAzMHB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC04cHggMTBweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTZweCAyNHB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC02cHggMzBweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0xNyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgOHB4IDExcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgMTdweCAyNnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDZweCAzMnB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDhweCAxMXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE3cHggMjZweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA2cHggMzJweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xNyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLThweCAxMXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xN3B4IDI2cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTZweCAzMnB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC04cHggMTFweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTdweCAyNnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC02cHggMzJweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0xOCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgOXB4IDExcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgMThweCAyOHB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDdweCAzNHB4IDZweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDlweCAxMXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE4cHggMjhweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA3cHggMzRweCA2cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xOCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTlweCAxMXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xOHB4IDI4cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTdweCAzNHB4IDZweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC05cHggMTFweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMThweCAyOHB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC03cHggMzRweCA2cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0xOSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgOXB4IDEycHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgMTlweCAyOXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDdweCAzNnB4IDZweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDlweCAxMnB4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE5cHggMjlweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA3cHggMzZweCA2cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xOSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTlweCAxMnB4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xOXB4IDI5cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTdweCAzNnB4IDZweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC05cHggMTJweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTlweCAyOXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC03cHggMzZweCA2cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0yMCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMTBweCAxM3B4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIDIwcHggMzFweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA4cHggMzhweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDEzcHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgMjBweCAzMXB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDhweCAzOHB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTIwIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMTBweCAxM3B4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yMHB4IDMxcHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLThweCAzOHB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xMHB4IDEzcHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgLTIwcHggMzFweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOHB4IDM4cHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMjEge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDEwcHggMTNweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAyMXB4IDMzcHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOHB4IDQwcHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAxM3B4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIDIxcHggMzNweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA4cHggNDBweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0yMSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTEwcHggMTNweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjFweCAzM3B4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC04cHggNDBweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMTBweCAxM3B4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yMXB4IDMzcHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLThweCA0MHB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTIyIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxMHB4IDE0cHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgMjJweCAzNXB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDhweCA0MnB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMTRweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAyMnB4IDM1cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOHB4IDQycHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMjIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xMHB4IDE0cHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgLTIycHggMzVweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOHB4IDQycHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTEwcHggMTRweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjJweCAzNXB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC04cHggNDJweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0yMyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMTFweCAxNHB4IC03cHggcmdiYSgwLDAsMCwwLjIpLCAwIDIzcHggMzZweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA5cHggNDRweCA4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxMXB4IDE0cHggLTdweCByZ2JhKDAsMCwwLDAuMiksIDAgMjNweCAzNnB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDlweCA0NHB4IDhweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTIzIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMTFweCAxNHB4IC03cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yM3B4IDM2cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTlweCA0NHB4IDhweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xMXB4IDE0cHggLTdweCByZ2JhKDAsMCwwLDAuMiksIDAgLTIzcHggMzZweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOXB4IDQ0cHggOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMjQge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDExcHggMTVweCAtN3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAyNHB4IDM4cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOXB4IDQ2cHggOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTFweCAxNXB4IC03cHggcmdiYSgwLDAsMCwwLjIpLCAwIDI0cHggMzhweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA5cHggNDZweCA4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0yNCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTExcHggMTVweCAtN3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjRweCAzOHB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC05cHggNDZweCA4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMTFweCAxNXB4IC03cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yNHB4IDM4cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTlweCA0NnB4IDhweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ubm8tc2hhZG93LFxcbi5zaGFkb3ctMCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4uaW5zZXQtc2hhZG93IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA3cHggOXB4IC03cHggcmdiYSgwLDAsMCwwLjcpIGluc2V0ICFpbXBvcnRhbnQ7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgN3B4IDlweCAtN3B4IHJnYmEoMCwwLDAsMC43KSBpbnNldCAhaW1wb3J0YW50O1xcbn1cXG4uei1tYXJnaW5hbHMge1xcbiAgei1pbmRleDogMjAwMDtcXG59XFxuLnotbm90aWZ5IHtcXG4gIHotaW5kZXg6IDk1MDA7XFxufVxcbi56LWZ1bGxzY3JlZW4ge1xcbiAgei1pbmRleDogNjAwMDtcXG59XFxuLnotaW5oZXJpdCB7XFxuICB6LWluZGV4OiBpbmhlcml0ICFpbXBvcnRhbnQ7XFxufVxcbi5yb3csXFxuLmNvbHVtbixcXG4uZmxleCB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC1tcy1mbGV4LXdyYXA6IHdyYXA7XFxuICAgICAgZmxleC13cmFwOiB3cmFwO1xcbn1cXG4ucm93LmlubGluZSxcXG4uY29sdW1uLmlubGluZSxcXG4uZmxleC5pbmxpbmUge1xcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxufVxcbi5yb3cucmV2ZXJzZSB7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2U7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbn1cXG4uY29sdW1uIHtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG59XFxuLmNvbHVtbi5yZXZlcnNlIHtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2U7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xcbn1cXG4ud3JhcCB7XFxuICAtbXMtZmxleC13cmFwOiB3cmFwO1xcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcXG59XFxuLm5vLXdyYXAge1xcbiAgLW1zLWZsZXgtd3JhcDogbm93cmFwO1xcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xcbn1cXG4ucmV2ZXJzZS13cmFwIHtcXG4gIC1tcy1mbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTtcXG4gICAgICBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTtcXG59XFxuLm9yZGVyLWZpcnN0IHtcXG4gIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IC05OTk5O1xcbiAgICAgIC1tcy1mbGV4LW9yZGVyOiAtMTAwMDA7XFxuICAgICAgICAgIG9yZGVyOiAtMTAwMDA7XFxufVxcbi5vcmRlci1sYXN0IHtcXG4gIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDEwMDAxO1xcbiAgICAgIC1tcy1mbGV4LW9yZGVyOiAxMDAwMDtcXG4gICAgICAgICAgb3JkZXI6IDEwMDAwO1xcbn1cXG4ub3JkZXItbm9uZSB7XFxuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAxO1xcbiAgICAgIC1tcy1mbGV4LW9yZGVyOiAwO1xcbiAgICAgICAgICBvcmRlcjogMDtcXG59XFxuLmp1c3RpZnktc3RhcnQge1xcbiAgLXdlYmtpdC1ib3gtcGFjazogc3RhcnQ7XFxuICAgICAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcXG59XFxuLmp1c3RpZnktZW5kIHtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGVuZDtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBlbmQ7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XFxufVxcbi5qdXN0aWZ5LWNlbnRlcixcXG4uZmxleC1jZW50ZXIge1xcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxufVxcbi5qdXN0aWZ5LWJldHdlZW4ge1xcbiAgLXdlYmtpdC1ib3gtcGFjazoganVzdGlmeTtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5O1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxufVxcbi5qdXN0aWZ5LWFyb3VuZCB7XFxuICAtbXMtZmxleC1wYWNrOiBkaXN0cmlidXRlO1xcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xcbn1cXG4uaXRlbXMtc3RhcnQge1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0O1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBzdGFydDtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XFxufVxcbi5pdGVtcy1lbmQge1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGVuZDtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogZW5kO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XFxufVxcbi5pdGVtcy1jZW50ZXIsXFxuLmZsZXgtY2VudGVyIHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG59XFxuLml0ZW1zLWJhc2VsaW5lIHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBiYXNlbGluZTtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogYmFzZWxpbmU7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcXG59XFxuLml0ZW1zLXN0cmV0Y2gge1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IHN0cmV0Y2g7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2g7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xcbn1cXG4uY29udGVudC1zdGFydCB7XFxuICAtbXMtZmxleC1saW5lLXBhY2s6IHN0YXJ0O1xcbiAgICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XFxufVxcbi5jb250ZW50LWVuZCB7XFxuICAtbXMtZmxleC1saW5lLXBhY2s6IGVuZDtcXG4gICAgICBhbGlnbi1jb250ZW50OiBmbGV4LWVuZDtcXG59XFxuLmNvbnRlbnQtY2VudGVyIHtcXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogY2VudGVyO1xcbiAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuLmNvbnRlbnQtc3RyZXRjaCB7XFxuICAtbXMtZmxleC1saW5lLXBhY2s6IHN0cmV0Y2g7XFxuICAgICAgYWxpZ24tY29udGVudDogc3RyZXRjaDtcXG59XFxuLmNvbnRlbnQtYmV0d2VlbiB7XFxuICAtbXMtZmxleC1saW5lLXBhY2s6IGp1c3RpZnk7XFxuICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG59XFxuLmNvbnRlbnQtYXJvdW5kIHtcXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogZGlzdHJpYnV0ZTtcXG4gICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQ7XFxufVxcbi5zZWxmLXN0YXJ0IHtcXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246IHN0YXJ0O1xcbiAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XFxufVxcbi5zZWxmLWVuZCB7XFxuICAtbXMtZmxleC1pdGVtLWFsaWduOiBlbmQ7XFxuICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XFxufVxcbi5zZWxmLWNlbnRlciB7XFxuICAtbXMtZmxleC1pdGVtLWFsaWduOiBjZW50ZXI7XFxuICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xcbn1cXG4uc2VsZi1iYXNlbGluZSB7XFxuICAtbXMtZmxleC1pdGVtLWFsaWduOiBiYXNlbGluZTtcXG4gICAgICBhbGlnbi1zZWxmOiBiYXNlbGluZTtcXG59XFxuLnNlbGYtc3RyZXRjaCB7XFxuICAtbXMtZmxleC1pdGVtLWFsaWduOiBzdHJldGNoO1xcbiAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XFxufVxcbi5ndXR0ZXIteC1ub25lLFxcbi5ndXR0ZXItbm9uZSB7XFxuICBtYXJnaW4tbGVmdDogMDtcXG59XFxuLmd1dHRlci14LW5vbmUgPiBkaXYsXFxuLmd1dHRlci1ub25lID4gZGl2IHtcXG4gIHBhZGRpbmctbGVmdDogMDtcXG59XFxuLmd1dHRlci15LW5vbmUsXFxuLmd1dHRlci1ub25lIHtcXG4gIG1hcmdpbi10b3A6IDA7XFxufVxcbi5ndXR0ZXIteS1ub25lID4gZGl2LFxcbi5ndXR0ZXItbm9uZSA+IGRpdiB7XFxuICBwYWRkaW5nLXRvcDogMDtcXG59XFxuLmd1dHRlci14LXhzLFxcbi5ndXR0ZXIteHMge1xcbiAgbWFyZ2luLWxlZnQ6IC04cHg7XFxufVxcbi5ndXR0ZXIteC14cyA+IGRpdixcXG4uZ3V0dGVyLXhzID4gZGl2IHtcXG4gIHBhZGRpbmctbGVmdDogOHB4O1xcbn1cXG4uZ3V0dGVyLXkteHMsXFxuLmd1dHRlci14cyB7XFxuICBtYXJnaW4tdG9wOiAtOHB4O1xcbn1cXG4uZ3V0dGVyLXkteHMgPiBkaXYsXFxuLmd1dHRlci14cyA+IGRpdiB7XFxuICBwYWRkaW5nLXRvcDogOHB4O1xcbn1cXG4uZ3V0dGVyLXgtc20sXFxuLmd1dHRlci1zbSB7XFxuICBtYXJnaW4tbGVmdDogLTE2cHg7XFxufVxcbi5ndXR0ZXIteC1zbSA+IGRpdixcXG4uZ3V0dGVyLXNtID4gZGl2IHtcXG4gIHBhZGRpbmctbGVmdDogMTZweDtcXG59XFxuLmd1dHRlci15LXNtLFxcbi5ndXR0ZXItc20ge1xcbiAgbWFyZ2luLXRvcDogLTE2cHg7XFxufVxcbi5ndXR0ZXIteS1zbSA+IGRpdixcXG4uZ3V0dGVyLXNtID4gZGl2IHtcXG4gIHBhZGRpbmctdG9wOiAxNnB4O1xcbn1cXG4uZ3V0dGVyLXgtbWQsXFxuLmd1dHRlci1tZCB7XFxuICBtYXJnaW4tbGVmdDogLTMycHg7XFxufVxcbi5ndXR0ZXIteC1tZCA+IGRpdixcXG4uZ3V0dGVyLW1kID4gZGl2IHtcXG4gIHBhZGRpbmctbGVmdDogMzJweDtcXG59XFxuLmd1dHRlci15LW1kLFxcbi5ndXR0ZXItbWQge1xcbiAgbWFyZ2luLXRvcDogLTMycHg7XFxufVxcbi5ndXR0ZXIteS1tZCA+IGRpdixcXG4uZ3V0dGVyLW1kID4gZGl2IHtcXG4gIHBhZGRpbmctdG9wOiAzMnB4O1xcbn1cXG4uZ3V0dGVyLXgtbGcsXFxuLmd1dHRlci1sZyB7XFxuICBtYXJnaW4tbGVmdDogLTQ4cHg7XFxufVxcbi5ndXR0ZXIteC1sZyA+IGRpdixcXG4uZ3V0dGVyLWxnID4gZGl2IHtcXG4gIHBhZGRpbmctbGVmdDogNDhweDtcXG59XFxuLmd1dHRlci15LWxnLFxcbi5ndXR0ZXItbGcge1xcbiAgbWFyZ2luLXRvcDogLTQ4cHg7XFxufVxcbi5ndXR0ZXIteS1sZyA+IGRpdixcXG4uZ3V0dGVyLWxnID4gZGl2IHtcXG4gIHBhZGRpbmctdG9wOiA0OHB4O1xcbn1cXG4uZ3V0dGVyLXgteGwsXFxuLmd1dHRlci14bCB7XFxuICBtYXJnaW4tbGVmdDogLTY0cHg7XFxufVxcbi5ndXR0ZXIteC14bCA+IGRpdixcXG4uZ3V0dGVyLXhsID4gZGl2IHtcXG4gIHBhZGRpbmctbGVmdDogNjRweDtcXG59XFxuLmd1dHRlci15LXhsLFxcbi5ndXR0ZXIteGwge1xcbiAgbWFyZ2luLXRvcDogLTY0cHg7XFxufVxcbi5ndXR0ZXIteS14bCA+IGRpdixcXG4uZ3V0dGVyLXhsID4gZGl2IHtcXG4gIHBhZGRpbmctdG9wOiA2NHB4O1xcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogMCkge1xcbiAgLnJvdyA+IC5jb2wsXFxuICAucm93ID4gLmNvbC14cyxcXG4gIC5yb3cgPiAuY29sLWF1dG8sXFxuICAucm93ID4gLmNvbC14cy1hdXRvLFxcbiAgLnJvdyA+IC5jb2wtZ3JvdyxcXG4gIC5yb3cgPiAuY29sLXhzLWdyb3csXFxuICAucm93ID4gLmNvbC0wLFxcbiAgLnJvdyA+IC5jb2wteHMtMCxcXG4gIC5yb3cgPiAuY29sLTEsXFxuICAucm93ID4gLmNvbC14cy0xLFxcbiAgLnJvdyA+IC5jb2wtMixcXG4gIC5yb3cgPiAuY29sLXhzLTIsXFxuICAucm93ID4gLmNvbC0zLFxcbiAgLnJvdyA+IC5jb2wteHMtMyxcXG4gIC5yb3cgPiAuY29sLTQsXFxuICAucm93ID4gLmNvbC14cy00LFxcbiAgLnJvdyA+IC5jb2wtNSxcXG4gIC5yb3cgPiAuY29sLXhzLTUsXFxuICAucm93ID4gLmNvbC02LFxcbiAgLnJvdyA+IC5jb2wteHMtNixcXG4gIC5yb3cgPiAuY29sLTcsXFxuICAucm93ID4gLmNvbC14cy03LFxcbiAgLnJvdyA+IC5jb2wtOCxcXG4gIC5yb3cgPiAuY29sLXhzLTgsXFxuICAucm93ID4gLmNvbC05LFxcbiAgLnJvdyA+IC5jb2wteHMtOSxcXG4gIC5yb3cgPiAuY29sLTEwLFxcbiAgLnJvdyA+IC5jb2wteHMtMTAsXFxuICAucm93ID4gLmNvbC0xMSxcXG4gIC5yb3cgPiAuY29sLXhzLTExLFxcbiAgLnJvdyA+IC5jb2wtMTIsXFxuICAucm93ID4gLmNvbC14cy0xMixcXG4gIC5mbGV4ID4gLmNvbCxcXG4gIC5mbGV4ID4gLmNvbC14cyxcXG4gIC5mbGV4ID4gLmNvbC1hdXRvLFxcbiAgLmZsZXggPiAuY29sLXhzLWF1dG8sXFxuICAuZmxleCA+IC5jb2wtZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC14cy1ncm93LFxcbiAgLmZsZXggPiAuY29sLTAsXFxuICAuZmxleCA+IC5jb2wteHMtMCxcXG4gIC5mbGV4ID4gLmNvbC0xLFxcbiAgLmZsZXggPiAuY29sLXhzLTEsXFxuICAuZmxleCA+IC5jb2wtMixcXG4gIC5mbGV4ID4gLmNvbC14cy0yLFxcbiAgLmZsZXggPiAuY29sLTMsXFxuICAuZmxleCA+IC5jb2wteHMtMyxcXG4gIC5mbGV4ID4gLmNvbC00LFxcbiAgLmZsZXggPiAuY29sLXhzLTQsXFxuICAuZmxleCA+IC5jb2wtNSxcXG4gIC5mbGV4ID4gLmNvbC14cy01LFxcbiAgLmZsZXggPiAuY29sLTYsXFxuICAuZmxleCA+IC5jb2wteHMtNixcXG4gIC5mbGV4ID4gLmNvbC03LFxcbiAgLmZsZXggPiAuY29sLXhzLTcsXFxuICAuZmxleCA+IC5jb2wtOCxcXG4gIC5mbGV4ID4gLmNvbC14cy04LFxcbiAgLmZsZXggPiAuY29sLTksXFxuICAuZmxleCA+IC5jb2wteHMtOSxcXG4gIC5mbGV4ID4gLmNvbC0xMCxcXG4gIC5mbGV4ID4gLmNvbC14cy0xMCxcXG4gIC5mbGV4ID4gLmNvbC0xMSxcXG4gIC5mbGV4ID4gLmNvbC14cy0xMSxcXG4gIC5mbGV4ID4gLmNvbC0xMixcXG4gIC5mbGV4ID4gLmNvbC14cy0xMiB7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICBtaW4td2lkdGg6IDA7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMsXFxuICAuY29sdW1uID4gLmNvbC1hdXRvLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtYXV0byxcXG4gIC5jb2x1bW4gPiAuY29sLWdyb3csXFxuICAuY29sdW1uID4gLmNvbC14cy1ncm93LFxcbiAgLmNvbHVtbiA+IC5jb2wtMCxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTAsXFxuICAuY29sdW1uID4gLmNvbC0xLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMSxcXG4gIC5jb2x1bW4gPiAuY29sLTIsXFxuICAuY29sdW1uID4gLmNvbC14cy0yLFxcbiAgLmNvbHVtbiA+IC5jb2wtMyxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTMsXFxuICAuY29sdW1uID4gLmNvbC00LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtNCxcXG4gIC5jb2x1bW4gPiAuY29sLTUsXFxuICAuY29sdW1uID4gLmNvbC14cy01LFxcbiAgLmNvbHVtbiA+IC5jb2wtNixcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTYsXFxuICAuY29sdW1uID4gLmNvbC03LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtNyxcXG4gIC5jb2x1bW4gPiAuY29sLTgsXFxuICAuY29sdW1uID4gLmNvbC14cy04LFxcbiAgLmNvbHVtbiA+IC5jb2wtOSxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTksXFxuICAuY29sdW1uID4gLmNvbC0xMCxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTEwLFxcbiAgLmNvbHVtbiA+IC5jb2wtMTEsXFxuICAuY29sdW1uID4gLmNvbC14cy0xMSxcXG4gIC5jb2x1bW4gPiAuY29sLTEyLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMTIsXFxuICAuZmxleCA+IC5jb2wsXFxuICAuZmxleCA+IC5jb2wteHMsXFxuICAuZmxleCA+IC5jb2wtYXV0byxcXG4gIC5mbGV4ID4gLmNvbC14cy1hdXRvLFxcbiAgLmZsZXggPiAuY29sLWdyb3csXFxuICAuZmxleCA+IC5jb2wteHMtZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC0wLFxcbiAgLmZsZXggPiAuY29sLXhzLTAsXFxuICAuZmxleCA+IC5jb2wtMSxcXG4gIC5mbGV4ID4gLmNvbC14cy0xLFxcbiAgLmZsZXggPiAuY29sLTIsXFxuICAuZmxleCA+IC5jb2wteHMtMixcXG4gIC5mbGV4ID4gLmNvbC0zLFxcbiAgLmZsZXggPiAuY29sLXhzLTMsXFxuICAuZmxleCA+IC5jb2wtNCxcXG4gIC5mbGV4ID4gLmNvbC14cy00LFxcbiAgLmZsZXggPiAuY29sLTUsXFxuICAuZmxleCA+IC5jb2wteHMtNSxcXG4gIC5mbGV4ID4gLmNvbC02LFxcbiAgLmZsZXggPiAuY29sLXhzLTYsXFxuICAuZmxleCA+IC5jb2wtNyxcXG4gIC5mbGV4ID4gLmNvbC14cy03LFxcbiAgLmZsZXggPiAuY29sLTgsXFxuICAuZmxleCA+IC5jb2wteHMtOCxcXG4gIC5mbGV4ID4gLmNvbC05LFxcbiAgLmZsZXggPiAuY29sLXhzLTksXFxuICAuZmxleCA+IC5jb2wtMTAsXFxuICAuZmxleCA+IC5jb2wteHMtMTAsXFxuICAuZmxleCA+IC5jb2wtMTEsXFxuICAuZmxleCA+IC5jb2wteHMtMTEsXFxuICAuZmxleCA+IC5jb2wtMTIsXFxuICAuZmxleCA+IC5jb2wteHMtMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIG1pbi1oZWlnaHQ6IDA7XFxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XFxuICB9XFxuICAuY29sLFxcbiAgLmNvbC14cyB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDEwMDAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDEwMDAwIDEgMCU7XFxuICAgICAgICAgICAgZmxleDogMTAwMDAgMSAwJTtcXG4gIH1cXG4gIC5jb2wtYXV0byxcXG4gIC5jb2wteHMtYXV0byxcXG4gIC5jb2wtMCxcXG4gIC5jb2wteHMtMCxcXG4gIC5jb2wtMSxcXG4gIC5jb2wteHMtMSxcXG4gIC5jb2wtMixcXG4gIC5jb2wteHMtMixcXG4gIC5jb2wtMyxcXG4gIC5jb2wteHMtMyxcXG4gIC5jb2wtNCxcXG4gIC5jb2wteHMtNCxcXG4gIC5jb2wtNSxcXG4gIC5jb2wteHMtNSxcXG4gIC5jb2wtNixcXG4gIC5jb2wteHMtNixcXG4gIC5jb2wtNyxcXG4gIC5jb2wteHMtNyxcXG4gIC5jb2wtOCxcXG4gIC5jb2wteHMtOCxcXG4gIC5jb2wtOSxcXG4gIC5jb2wteHMtOSxcXG4gIC5jb2wtMTAsXFxuICAuY29sLXhzLTEwLFxcbiAgLmNvbC0xMSxcXG4gIC5jb2wteHMtMTEsXFxuICAuY29sLTEyLFxcbiAgLmNvbC14cy0xMiB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XFxuICB9XFxuICAuY29sLWdyb3csXFxuICAuY29sLXhzLWdyb3cge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXg6IDEgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtMCxcXG4gIC5yb3cgPiAuY29sLXhzLTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTAsXFxuICAucm93ID4gLm9mZnNldC14cy0wIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtMCxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTAge1xcbiAgICBoZWlnaHQ6IDAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTEsXFxuICAucm93ID4gLmNvbC14cy0xIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTEsXFxuICAucm93ID4gLm9mZnNldC14cy0xIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC0xLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMSB7XFxuICAgIGhlaWdodDogOC4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC0yLFxcbiAgLnJvdyA+IC5jb2wteHMtMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDE2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtMixcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC0yLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMiB7XFxuICAgIGhlaWdodDogMTYuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtMyxcXG4gIC5yb3cgPiAuY29sLXhzLTMge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAyNSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC0zLFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtMyB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC0zLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMyB7XFxuICAgIGhlaWdodDogMjUlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTQsXFxuICAucm93ID4gLmNvbC14cy00IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMzMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC00LFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtNCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTQsXFxuICAuY29sdW1uID4gLmNvbC14cy00IHtcXG4gICAgaGVpZ2h0OiAzMy4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC01LFxcbiAgLnJvdyA+IC5jb2wteHMtNSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDQxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtNSxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTUge1xcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC01LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtNSB7XFxuICAgIGhlaWdodDogNDEuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtNixcXG4gIC5yb3cgPiAuY29sLXhzLTYge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1MCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC02LFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtNiB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC02LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtNiB7XFxuICAgIGhlaWdodDogNTAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTcsXFxuICAucm93ID4gLmNvbC14cy03IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC03LFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtNyB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTcsXFxuICAuY29sdW1uID4gLmNvbC14cy03IHtcXG4gICAgaGVpZ2h0OiA1OC4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC04LFxcbiAgLnJvdyA+IC5jb2wteHMtOCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDY2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtOCxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTgge1xcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC04LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtOCB7XFxuICAgIGhlaWdodDogNjYuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtOSxcXG4gIC5yb3cgPiAuY29sLXhzLTkge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA3NSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC05LFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtOSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC05LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtOSB7XFxuICAgIGhlaWdodDogNzUlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTEwLFxcbiAgLnJvdyA+IC5jb2wteHMtMTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4My4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTEwLFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtMTAge1xcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC0xMCxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTEwIHtcXG4gICAgaGVpZ2h0OiA4My4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC0xMSxcXG4gIC5yb3cgPiAuY29sLXhzLTExIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOTEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC0xMSxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTExIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtMTEsXFxuICAuY29sdW1uID4gLmNvbC14cy0xMSB7XFxuICAgIGhlaWdodDogOTEuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtMTIsXFxuICAucm93ID4gLmNvbC14cy0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDEwMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC0xMixcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTEyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC0xMixcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTEyIHtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XFxuICAucm93ID4gLmNvbC1zbSxcXG4gIC5yb3cgPiAuY29sLXNtLWF1dG8sXFxuICAucm93ID4gLmNvbC1zbS1ncm93LFxcbiAgLnJvdyA+IC5jb2wtc20tMCxcXG4gIC5yb3cgPiAuY29sLXNtLTEsXFxuICAucm93ID4gLmNvbC1zbS0yLFxcbiAgLnJvdyA+IC5jb2wtc20tMyxcXG4gIC5yb3cgPiAuY29sLXNtLTQsXFxuICAucm93ID4gLmNvbC1zbS01LFxcbiAgLnJvdyA+IC5jb2wtc20tNixcXG4gIC5yb3cgPiAuY29sLXNtLTcsXFxuICAucm93ID4gLmNvbC1zbS04LFxcbiAgLnJvdyA+IC5jb2wtc20tOSxcXG4gIC5yb3cgPiAuY29sLXNtLTEwLFxcbiAgLnJvdyA+IC5jb2wtc20tMTEsXFxuICAucm93ID4gLmNvbC1zbS0xMixcXG4gIC5mbGV4ID4gLmNvbC1zbSxcXG4gIC5mbGV4ID4gLmNvbC1zbS1hdXRvLFxcbiAgLmZsZXggPiAuY29sLXNtLWdyb3csXFxuICAuZmxleCA+IC5jb2wtc20tMCxcXG4gIC5mbGV4ID4gLmNvbC1zbS0xLFxcbiAgLmZsZXggPiAuY29sLXNtLTIsXFxuICAuZmxleCA+IC5jb2wtc20tMyxcXG4gIC5mbGV4ID4gLmNvbC1zbS00LFxcbiAgLmZsZXggPiAuY29sLXNtLTUsXFxuICAuZmxleCA+IC5jb2wtc20tNixcXG4gIC5mbGV4ID4gLmNvbC1zbS03LFxcbiAgLmZsZXggPiAuY29sLXNtLTgsXFxuICAuZmxleCA+IC5jb2wtc20tOSxcXG4gIC5mbGV4ID4gLmNvbC1zbS0xMCxcXG4gIC5mbGV4ID4gLmNvbC1zbS0xMSxcXG4gIC5mbGV4ID4gLmNvbC1zbS0xMiB7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICBtaW4td2lkdGg6IDA7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tYXV0byxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLWdyb3csXFxuICAuY29sdW1uID4gLmNvbC1zbS0wLFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMSxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTIsXFxuICAuY29sdW1uID4gLmNvbC1zbS0zLFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tNCxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTUsXFxuICAuY29sdW1uID4gLmNvbC1zbS02LFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tNyxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTgsXFxuICAuY29sdW1uID4gLmNvbC1zbS05LFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMTAsXFxuICAuY29sdW1uID4gLmNvbC1zbS0xMSxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTEyLFxcbiAgLmZsZXggPiAuY29sLXNtLFxcbiAgLmZsZXggPiAuY29sLXNtLWF1dG8sXFxuICAuZmxleCA+IC5jb2wtc20tZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC1zbS0wLFxcbiAgLmZsZXggPiAuY29sLXNtLTEsXFxuICAuZmxleCA+IC5jb2wtc20tMixcXG4gIC5mbGV4ID4gLmNvbC1zbS0zLFxcbiAgLmZsZXggPiAuY29sLXNtLTQsXFxuICAuZmxleCA+IC5jb2wtc20tNSxcXG4gIC5mbGV4ID4gLmNvbC1zbS02LFxcbiAgLmZsZXggPiAuY29sLXNtLTcsXFxuICAuZmxleCA+IC5jb2wtc20tOCxcXG4gIC5mbGV4ID4gLmNvbC1zbS05LFxcbiAgLmZsZXggPiAuY29sLXNtLTEwLFxcbiAgLmZsZXggPiAuY29sLXNtLTExLFxcbiAgLmZsZXggPiAuY29sLXNtLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICBtaW4taGVpZ2h0OiAwO1xcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbC1zbSB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDEwMDAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDEwMDAwIDEgMCU7XFxuICAgICAgICAgICAgZmxleDogMTAwMDAgMSAwJTtcXG4gIH1cXG4gIC5jb2wtc20tYXV0byxcXG4gIC5jb2wtc20tMCxcXG4gIC5jb2wtc20tMSxcXG4gIC5jb2wtc20tMixcXG4gIC5jb2wtc20tMyxcXG4gIC5jb2wtc20tNCxcXG4gIC5jb2wtc20tNSxcXG4gIC5jb2wtc20tNixcXG4gIC5jb2wtc20tNyxcXG4gIC5jb2wtc20tOCxcXG4gIC5jb2wtc20tOSxcXG4gIC5jb2wtc20tMTAsXFxuICAuY29sLXNtLTExLFxcbiAgLmNvbC1zbS0xMiB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XFxuICB9XFxuICAuY29sLXNtLWdyb3cge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXg6IDEgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTAge1xcbiAgICBoZWlnaHQ6IDAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMSB7XFxuICAgIGhlaWdodDogOC4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS0yIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTYuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS0yIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMiB7XFxuICAgIGhlaWdodDogMTYuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tMyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDI1JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTMge1xcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMyB7XFxuICAgIGhlaWdodDogMjUlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTQge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTQge1xcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS00IHtcXG4gICAgaGVpZ2h0OiAzMy4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS01IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNDEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS01IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tNSB7XFxuICAgIGhlaWdodDogNDEuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tNiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDUwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTYge1xcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tNiB7XFxuICAgIGhlaWdodDogNTAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTcge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTcge1xcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS03IHtcXG4gICAgaGVpZ2h0OiA1OC4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS04IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNjYuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS04IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tOCB7XFxuICAgIGhlaWdodDogNjYuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tOSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDc1JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTkge1xcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tOSB7XFxuICAgIGhlaWdodDogNzUlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTEwIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogODMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS0xMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTEwIHtcXG4gICAgaGVpZ2h0OiA4My4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS0xMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDkxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tMTEge1xcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS0xMSB7XFxuICAgIGhlaWdodDogOTEuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tMTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTEyIHtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAucm93ID4gLmNvbC1tZCxcXG4gIC5yb3cgPiAuY29sLW1kLWF1dG8sXFxuICAucm93ID4gLmNvbC1tZC1ncm93LFxcbiAgLnJvdyA+IC5jb2wtbWQtMCxcXG4gIC5yb3cgPiAuY29sLW1kLTEsXFxuICAucm93ID4gLmNvbC1tZC0yLFxcbiAgLnJvdyA+IC5jb2wtbWQtMyxcXG4gIC5yb3cgPiAuY29sLW1kLTQsXFxuICAucm93ID4gLmNvbC1tZC01LFxcbiAgLnJvdyA+IC5jb2wtbWQtNixcXG4gIC5yb3cgPiAuY29sLW1kLTcsXFxuICAucm93ID4gLmNvbC1tZC04LFxcbiAgLnJvdyA+IC5jb2wtbWQtOSxcXG4gIC5yb3cgPiAuY29sLW1kLTEwLFxcbiAgLnJvdyA+IC5jb2wtbWQtMTEsXFxuICAucm93ID4gLmNvbC1tZC0xMixcXG4gIC5mbGV4ID4gLmNvbC1tZCxcXG4gIC5mbGV4ID4gLmNvbC1tZC1hdXRvLFxcbiAgLmZsZXggPiAuY29sLW1kLWdyb3csXFxuICAuZmxleCA+IC5jb2wtbWQtMCxcXG4gIC5mbGV4ID4gLmNvbC1tZC0xLFxcbiAgLmZsZXggPiAuY29sLW1kLTIsXFxuICAuZmxleCA+IC5jb2wtbWQtMyxcXG4gIC5mbGV4ID4gLmNvbC1tZC00LFxcbiAgLmZsZXggPiAuY29sLW1kLTUsXFxuICAuZmxleCA+IC5jb2wtbWQtNixcXG4gIC5mbGV4ID4gLmNvbC1tZC03LFxcbiAgLmZsZXggPiAuY29sLW1kLTgsXFxuICAuZmxleCA+IC5jb2wtbWQtOSxcXG4gIC5mbGV4ID4gLmNvbC1tZC0xMCxcXG4gIC5mbGV4ID4gLmNvbC1tZC0xMSxcXG4gIC5mbGV4ID4gLmNvbC1tZC0xMiB7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICBtaW4td2lkdGg6IDA7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtYXV0byxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLWdyb3csXFxuICAuY29sdW1uID4gLmNvbC1tZC0wLFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMSxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTIsXFxuICAuY29sdW1uID4gLmNvbC1tZC0zLFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtNCxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTUsXFxuICAuY29sdW1uID4gLmNvbC1tZC02LFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtNyxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTgsXFxuICAuY29sdW1uID4gLmNvbC1tZC05LFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMTAsXFxuICAuY29sdW1uID4gLmNvbC1tZC0xMSxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTEyLFxcbiAgLmZsZXggPiAuY29sLW1kLFxcbiAgLmZsZXggPiAuY29sLW1kLWF1dG8sXFxuICAuZmxleCA+IC5jb2wtbWQtZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC1tZC0wLFxcbiAgLmZsZXggPiAuY29sLW1kLTEsXFxuICAuZmxleCA+IC5jb2wtbWQtMixcXG4gIC5mbGV4ID4gLmNvbC1tZC0zLFxcbiAgLmZsZXggPiAuY29sLW1kLTQsXFxuICAuZmxleCA+IC5jb2wtbWQtNSxcXG4gIC5mbGV4ID4gLmNvbC1tZC02LFxcbiAgLmZsZXggPiAuY29sLW1kLTcsXFxuICAuZmxleCA+IC5jb2wtbWQtOCxcXG4gIC5mbGV4ID4gLmNvbC1tZC05LFxcbiAgLmZsZXggPiAuY29sLW1kLTEwLFxcbiAgLmZsZXggPiAuY29sLW1kLTExLFxcbiAgLmZsZXggPiAuY29sLW1kLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICBtaW4taGVpZ2h0OiAwO1xcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbC1tZCB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDEwMDAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDEwMDAwIDEgMCU7XFxuICAgICAgICAgICAgZmxleDogMTAwMDAgMSAwJTtcXG4gIH1cXG4gIC5jb2wtbWQtYXV0byxcXG4gIC5jb2wtbWQtMCxcXG4gIC5jb2wtbWQtMSxcXG4gIC5jb2wtbWQtMixcXG4gIC5jb2wtbWQtMyxcXG4gIC5jb2wtbWQtNCxcXG4gIC5jb2wtbWQtNSxcXG4gIC5jb2wtbWQtNixcXG4gIC5jb2wtbWQtNyxcXG4gIC5jb2wtbWQtOCxcXG4gIC5jb2wtbWQtOSxcXG4gIC5jb2wtbWQtMTAsXFxuICAuY29sLW1kLTExLFxcbiAgLmNvbC1tZC0xMiB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XFxuICB9XFxuICAuY29sLW1kLWdyb3cge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXg6IDEgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTAge1xcbiAgICBoZWlnaHQ6IDAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMSB7XFxuICAgIGhlaWdodDogOC4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC0yIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTYuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC0yIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMiB7XFxuICAgIGhlaWdodDogMTYuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtMyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDI1JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTMge1xcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMyB7XFxuICAgIGhlaWdodDogMjUlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTQge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTQge1xcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC00IHtcXG4gICAgaGVpZ2h0OiAzMy4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC01IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNDEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC01IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtNSB7XFxuICAgIGhlaWdodDogNDEuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtNiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDUwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTYge1xcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtNiB7XFxuICAgIGhlaWdodDogNTAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTcge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTcge1xcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC03IHtcXG4gICAgaGVpZ2h0OiA1OC4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC04IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNjYuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC04IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtOCB7XFxuICAgIGhlaWdodDogNjYuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtOSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDc1JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTkge1xcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtOSB7XFxuICAgIGhlaWdodDogNzUlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTEwIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogODMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC0xMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTEwIHtcXG4gICAgaGVpZ2h0OiA4My4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC0xMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDkxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtMTEge1xcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC0xMSB7XFxuICAgIGhlaWdodDogOTEuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtMTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTEyIHtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XFxuICAucm93ID4gLmNvbC1sZyxcXG4gIC5yb3cgPiAuY29sLWxnLWF1dG8sXFxuICAucm93ID4gLmNvbC1sZy1ncm93LFxcbiAgLnJvdyA+IC5jb2wtbGctMCxcXG4gIC5yb3cgPiAuY29sLWxnLTEsXFxuICAucm93ID4gLmNvbC1sZy0yLFxcbiAgLnJvdyA+IC5jb2wtbGctMyxcXG4gIC5yb3cgPiAuY29sLWxnLTQsXFxuICAucm93ID4gLmNvbC1sZy01LFxcbiAgLnJvdyA+IC5jb2wtbGctNixcXG4gIC5yb3cgPiAuY29sLWxnLTcsXFxuICAucm93ID4gLmNvbC1sZy04LFxcbiAgLnJvdyA+IC5jb2wtbGctOSxcXG4gIC5yb3cgPiAuY29sLWxnLTEwLFxcbiAgLnJvdyA+IC5jb2wtbGctMTEsXFxuICAucm93ID4gLmNvbC1sZy0xMixcXG4gIC5mbGV4ID4gLmNvbC1sZyxcXG4gIC5mbGV4ID4gLmNvbC1sZy1hdXRvLFxcbiAgLmZsZXggPiAuY29sLWxnLWdyb3csXFxuICAuZmxleCA+IC5jb2wtbGctMCxcXG4gIC5mbGV4ID4gLmNvbC1sZy0xLFxcbiAgLmZsZXggPiAuY29sLWxnLTIsXFxuICAuZmxleCA+IC5jb2wtbGctMyxcXG4gIC5mbGV4ID4gLmNvbC1sZy00LFxcbiAgLmZsZXggPiAuY29sLWxnLTUsXFxuICAuZmxleCA+IC5jb2wtbGctNixcXG4gIC5mbGV4ID4gLmNvbC1sZy03LFxcbiAgLmZsZXggPiAuY29sLWxnLTgsXFxuICAuZmxleCA+IC5jb2wtbGctOSxcXG4gIC5mbGV4ID4gLmNvbC1sZy0xMCxcXG4gIC5mbGV4ID4gLmNvbC1sZy0xMSxcXG4gIC5mbGV4ID4gLmNvbC1sZy0xMiB7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICBtaW4td2lkdGg6IDA7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctYXV0byxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLWdyb3csXFxuICAuY29sdW1uID4gLmNvbC1sZy0wLFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMSxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTIsXFxuICAuY29sdW1uID4gLmNvbC1sZy0zLFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctNCxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTUsXFxuICAuY29sdW1uID4gLmNvbC1sZy02LFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctNyxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTgsXFxuICAuY29sdW1uID4gLmNvbC1sZy05LFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMTAsXFxuICAuY29sdW1uID4gLmNvbC1sZy0xMSxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTEyLFxcbiAgLmZsZXggPiAuY29sLWxnLFxcbiAgLmZsZXggPiAuY29sLWxnLWF1dG8sXFxuICAuZmxleCA+IC5jb2wtbGctZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC1sZy0wLFxcbiAgLmZsZXggPiAuY29sLWxnLTEsXFxuICAuZmxleCA+IC5jb2wtbGctMixcXG4gIC5mbGV4ID4gLmNvbC1sZy0zLFxcbiAgLmZsZXggPiAuY29sLWxnLTQsXFxuICAuZmxleCA+IC5jb2wtbGctNSxcXG4gIC5mbGV4ID4gLmNvbC1sZy02LFxcbiAgLmZsZXggPiAuY29sLWxnLTcsXFxuICAuZmxleCA+IC5jb2wtbGctOCxcXG4gIC5mbGV4ID4gLmNvbC1sZy05LFxcbiAgLmZsZXggPiAuY29sLWxnLTEwLFxcbiAgLmZsZXggPiAuY29sLWxnLTExLFxcbiAgLmZsZXggPiAuY29sLWxnLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICBtaW4taGVpZ2h0OiAwO1xcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbC1sZyB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDEwMDAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDEwMDAwIDEgMCU7XFxuICAgICAgICAgICAgZmxleDogMTAwMDAgMSAwJTtcXG4gIH1cXG4gIC5jb2wtbGctYXV0byxcXG4gIC5jb2wtbGctMCxcXG4gIC5jb2wtbGctMSxcXG4gIC5jb2wtbGctMixcXG4gIC5jb2wtbGctMyxcXG4gIC5jb2wtbGctNCxcXG4gIC5jb2wtbGctNSxcXG4gIC5jb2wtbGctNixcXG4gIC5jb2wtbGctNyxcXG4gIC5jb2wtbGctOCxcXG4gIC5jb2wtbGctOSxcXG4gIC5jb2wtbGctMTAsXFxuICAuY29sLWxnLTExLFxcbiAgLmNvbC1sZy0xMiB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XFxuICB9XFxuICAuY29sLWxnLWdyb3cge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXg6IDEgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTAge1xcbiAgICBoZWlnaHQ6IDAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMSB7XFxuICAgIGhlaWdodDogOC4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy0yIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTYuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy0yIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMiB7XFxuICAgIGhlaWdodDogMTYuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctMyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDI1JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTMge1xcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMyB7XFxuICAgIGhlaWdodDogMjUlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTQge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTQge1xcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy00IHtcXG4gICAgaGVpZ2h0OiAzMy4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy01IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNDEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy01IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctNSB7XFxuICAgIGhlaWdodDogNDEuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctNiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDUwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTYge1xcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctNiB7XFxuICAgIGhlaWdodDogNTAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTcge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTcge1xcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy03IHtcXG4gICAgaGVpZ2h0OiA1OC4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy04IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNjYuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy04IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctOCB7XFxuICAgIGhlaWdodDogNjYuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctOSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDc1JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTkge1xcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctOSB7XFxuICAgIGhlaWdodDogNzUlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTEwIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogODMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy0xMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTEwIHtcXG4gICAgaGVpZ2h0OiA4My4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy0xMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDkxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctMTEge1xcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy0xMSB7XFxuICAgIGhlaWdodDogOTEuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctMTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTEyIHtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xcbiAgLnJvdyA+IC5jb2wteGwsXFxuICAucm93ID4gLmNvbC14bC1hdXRvLFxcbiAgLnJvdyA+IC5jb2wteGwtZ3JvdyxcXG4gIC5yb3cgPiAuY29sLXhsLTAsXFxuICAucm93ID4gLmNvbC14bC0xLFxcbiAgLnJvdyA+IC5jb2wteGwtMixcXG4gIC5yb3cgPiAuY29sLXhsLTMsXFxuICAucm93ID4gLmNvbC14bC00LFxcbiAgLnJvdyA+IC5jb2wteGwtNSxcXG4gIC5yb3cgPiAuY29sLXhsLTYsXFxuICAucm93ID4gLmNvbC14bC03LFxcbiAgLnJvdyA+IC5jb2wteGwtOCxcXG4gIC5yb3cgPiAuY29sLXhsLTksXFxuICAucm93ID4gLmNvbC14bC0xMCxcXG4gIC5yb3cgPiAuY29sLXhsLTExLFxcbiAgLnJvdyA+IC5jb2wteGwtMTIsXFxuICAuZmxleCA+IC5jb2wteGwsXFxuICAuZmxleCA+IC5jb2wteGwtYXV0byxcXG4gIC5mbGV4ID4gLmNvbC14bC1ncm93LFxcbiAgLmZsZXggPiAuY29sLXhsLTAsXFxuICAuZmxleCA+IC5jb2wteGwtMSxcXG4gIC5mbGV4ID4gLmNvbC14bC0yLFxcbiAgLmZsZXggPiAuY29sLXhsLTMsXFxuICAuZmxleCA+IC5jb2wteGwtNCxcXG4gIC5mbGV4ID4gLmNvbC14bC01LFxcbiAgLmZsZXggPiAuY29sLXhsLTYsXFxuICAuZmxleCA+IC5jb2wteGwtNyxcXG4gIC5mbGV4ID4gLmNvbC14bC04LFxcbiAgLmZsZXggPiAuY29sLXhsLTksXFxuICAuZmxleCA+IC5jb2wteGwtMTAsXFxuICAuZmxleCA+IC5jb2wteGwtMTEsXFxuICAuZmxleCA+IC5jb2wteGwtMTIge1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgbWluLXdpZHRoOiAwO1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bCxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLWF1dG8sXFxuICAuY29sdW1uID4gLmNvbC14bC1ncm93LFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMCxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTEsXFxuICAuY29sdW1uID4gLmNvbC14bC0yLFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMyxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTQsXFxuICAuY29sdW1uID4gLmNvbC14bC01LFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtNixcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTcsXFxuICAuY29sdW1uID4gLmNvbC14bC04LFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtOSxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTEwLFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMTEsXFxuICAuY29sdW1uID4gLmNvbC14bC0xMixcXG4gIC5mbGV4ID4gLmNvbC14bCxcXG4gIC5mbGV4ID4gLmNvbC14bC1hdXRvLFxcbiAgLmZsZXggPiAuY29sLXhsLWdyb3csXFxuICAuZmxleCA+IC5jb2wteGwtMCxcXG4gIC5mbGV4ID4gLmNvbC14bC0xLFxcbiAgLmZsZXggPiAuY29sLXhsLTIsXFxuICAuZmxleCA+IC5jb2wteGwtMyxcXG4gIC5mbGV4ID4gLmNvbC14bC00LFxcbiAgLmZsZXggPiAuY29sLXhsLTUsXFxuICAuZmxleCA+IC5jb2wteGwtNixcXG4gIC5mbGV4ID4gLmNvbC14bC03LFxcbiAgLmZsZXggPiAuY29sLXhsLTgsXFxuICAuZmxleCA+IC5jb2wteGwtOSxcXG4gIC5mbGV4ID4gLmNvbC14bC0xMCxcXG4gIC5mbGV4ID4gLmNvbC14bC0xMSxcXG4gIC5mbGV4ID4gLmNvbC14bC0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgbWluLWhlaWdodDogMDtcXG4gICAgbWF4LWhlaWdodDogMTAwJTtcXG4gIH1cXG4gIC5jb2wteGwge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxMDAwMDtcXG4gICAgICAgIC1tcy1mbGV4OiAxMDAwMCAxIDAlO1xcbiAgICAgICAgICAgIGZsZXg6IDEwMDAwIDEgMCU7XFxuICB9XFxuICAuY29sLXhsLWF1dG8sXFxuICAuY29sLXhsLTAsXFxuICAuY29sLXhsLTEsXFxuICAuY29sLXhsLTIsXFxuICAuY29sLXhsLTMsXFxuICAuY29sLXhsLTQsXFxuICAuY29sLXhsLTUsXFxuICAuY29sLXhsLTYsXFxuICAuY29sLXhsLTcsXFxuICAuY29sLXhsLTgsXFxuICAuY29sLXhsLTksXFxuICAuY29sLXhsLTEwLFxcbiAgLmNvbC14bC0xMSxcXG4gIC5jb2wteGwtMTIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xcbiAgfVxcbiAgLmNvbC14bC1ncm93IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4OiAxIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAxIDAgYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTAge1xcbiAgICBtYXJnaW4tbGVmdDogMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC0wIHtcXG4gICAgaGVpZ2h0OiAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC0xIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTEge1xcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTEge1xcbiAgICBoZWlnaHQ6IDguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDE2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTIge1xcbiAgICBoZWlnaHQ6IDE2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTMge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAyNSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC0zIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTMge1xcbiAgICBoZWlnaHQ6IDI1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC00IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMzMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC00IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtNCB7XFxuICAgIGhlaWdodDogMzMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtNSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDQxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtNSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTUge1xcbiAgICBoZWlnaHQ6IDQxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTYge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1MCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC02IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTYge1xcbiAgICBoZWlnaHQ6IDUwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC03IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC03IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtNyB7XFxuICAgIGhlaWdodDogNTguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtOCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDY2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtOCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTgge1xcbiAgICBoZWlnaHQ6IDY2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTkge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA3NSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC05IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTkge1xcbiAgICBoZWlnaHQ6IDc1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC0xMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtMTAge1xcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC0xMCB7XFxuICAgIGhlaWdodDogODMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtMTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA5MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTExIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMTEge1xcbiAgICBoZWlnaHQ6IDkxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTEyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC0xMiB7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxufVxcbi5iYWNrZHJvcCB7XFxuICBkaXNwbGF5OiBub25lO1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgd2lkdGg6IDEwMHZ3O1xcbiAgaGVpZ2h0OiAxMDB2aDtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMjhzIGVhc2UtaW47XFxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMjhzIGVhc2UtaW47XFxufVxcbi5iYWNrZHJvcC5hY3RpdmUge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMyk7XFxufVxcbi5yb3VuZC1ib3JkZXJzIHtcXG4gIGJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50O1xcbn1cXG4uZ2VuZXJpYy1tYXJnaW4sXFxuLmdyb3VwID4gKiB7XFxuICBtYXJnaW46IDVweDtcXG59XFxuLm5vLXRyYW5zaXRpb24ge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XFxuICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi50cmFuc2l0aW9uLTAge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwcyAhaW1wb3J0YW50O1xcbiAgdHJhbnNpdGlvbjogMHMgIWltcG9ydGFudDtcXG59XFxuLmdsb3NzeSB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBmcm9tKHJnYmEoMjU1LDI1NSwyNTUsMC4zKSksIGNvbG9yLXN0b3AoNTAlLCByZ2JhKDI1NSwyNTUsMjU1LDApKSwgY29sb3Itc3RvcCg1MSUsIHJnYmEoMCwwLDAsMC4xMikpLCB0byhyZ2JhKDAsMCwwLDAuMDQpKSkgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMjU1LDI1NSwyNTUsMC4zKSwgcmdiYSgyNTUsMjU1LDI1NSwwKSA1MCUsIHJnYmEoMCwwLDAsMC4xMikgNTElLCByZ2JhKDAsMCwwLDAuMDQpKSAhaW1wb3J0YW50O1xcbn1cXG4ucS1wbGFjZWhvbGRlcjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIG9wYWNpdHk6IDAuNTtcXG59XFxuLnEtcGxhY2Vob2xkZXI6Oi1tb3otcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBvcGFjaXR5OiAwLjU7XFxufVxcbi5xLXBsYWNlaG9sZGVyOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIG9wYWNpdHk6IDAuNTtcXG59XFxuLnEtYm9keS1mdWxsc2NyZWVuLW1peGluLFxcbi5xLWJvZHktcHJldmVudC1zY3JvbGwge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xcbn1cXG4ucS1uby1pbnB1dC1zcGlubmVyIHtcXG4gIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkICFpbXBvcnRhbnQ7XFxufVxcbi5xLW5vLWlucHV0LXNwaW5uZXI6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXFxuLnEtbm8taW5wdXQtc3Bpbm5lcjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XFxuICBtYXJnaW46IDA7XFxufVxcbmEucS1saW5rIHtcXG4gIG91dGxpbmU6IDA7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG59XFxuLnEtc2VsZWN0LWhpZ2hsaWdodCB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDE4OSwxODksMTg5LDAuNSkgIWltcG9ydGFudDtcXG59XFxuLmhpZ2hsaWdodC1hbmQtZmFkZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1oaWdobGlnaHQgMnMgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLWhpZ2hsaWdodCAycyAvKiBydGw6aWdub3JlICovO1xcbn1cXG4udHJhbnNpdGlvbi1nZW5lcmljIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3M7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcXG59XFxuLmFuaW1hdGUtc3BpbixcXG4uYW5pbWF0ZS1zcGluLXJldmVyc2Uge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXIgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXNwaW4gMnMgaW5maW5pdGUgbGluZWFyIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5hbmltYXRlLXNwaW4tcmV2ZXJzZSB7XFxuICBhbmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlO1xcbn1cXG4uYW5pbWF0ZS1ibGluayB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1ibGluayAxcyBzdGVwcyg1LCBzdGFydCkgaW5maW5pdGUgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLWJsaW5rIDFzIHN0ZXBzKDUsIHN0YXJ0KSBpbmZpbml0ZSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uYW5pbWF0ZS1wb3Age1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtcG9wIDAuMnMgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXBvcCAwLjJzIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5hbmltYXRlLXNjYWxlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXNjYWxlIDAuMnMgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXNjYWxlIDAuMnMgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLmFuaW1hdGUtZmFkZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1mYWRlIDAuMnMgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLWZhZGUgMC4ycyAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uYW5pbWF0ZS1ib3VuY2Uge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtYm91bmNlIDJzIGluZmluaXRlIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1ib3VuY2UgMnMgaW5maW5pdGUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLmFuaW1hdGUtc2hha2Uge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtc2hha2UgMC4xNXM7XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1zaGFrZSAwLjE1cztcXG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7XFxuICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO1xcbn1cXG4uYW5pbWF0ZS1wb3B1cC11cCxcXG4uYW5pbWF0ZS1wb3B1cC1kb3duIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxufVxcbi5hbmltYXRlLXBvcHVwLXVwID4gKixcXG4uYW5pbWF0ZS1wb3B1cC1kb3duID4gKiB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1mYWRlIDAuODJzIGN1YmljLWJlemllcigwLjc4NSwgMC4xMzUsIDAuMTUsIDAuODYpO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtZmFkZSAwLjgycyBjdWJpYy1iZXppZXIoMC43ODUsIDAuMTM1LCAwLjE1LCAwLjg2KTtcXG59XFxuLmFuaW1hdGUtcG9wdXAtZG93biB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1wb3B1cC1kb3duIDAuMzZzIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1wb3B1cC1kb3duIDAuMzZzIC8qIHJ0bDppZ25vcmUgKi87XFxuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wIDBweCAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcCAwcHggLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLmFuaW1hdGUtcG9wdXAtdXAge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtcG9wdXAtdXAgMC4zNnMgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXBvcHVwLXVwIDAuMzZzIC8qIHJ0bDppZ25vcmUgKi87XFxuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tIDBweCAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbSAwcHggLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLmFuaW1hdGUtZmFkZS1sZWZ0IHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLWZhZGUgMC4zNnMgY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44NiksIHEtc2xpZGUtbGVmdCAwLjM2cyBlYXNlO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtZmFkZSAwLjM2cyBjdWJpYy1iZXppZXIoMC43ODUsIDAuMTM1LCAwLjE1LCAwLjg2KSwgcS1zbGlkZS1sZWZ0IDAuMzZzIGVhc2U7XFxufVxcbi5hbmltYXRlLWZhZGUtcmlnaHQge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtZmFkZSAwLjM2cyBjdWJpYy1iZXppZXIoMC43ODUsIDAuMTM1LCAwLjE1LCAwLjg2KSwgcS1zbGlkZS1yaWdodCAwLjM2cyBlYXNlO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtZmFkZSAwLjM2cyBjdWJpYy1iZXppZXIoMC43ODUsIDAuMTM1LCAwLjE1LCAwLjg2KSwgcS1zbGlkZS1yaWdodCAwLjM2cyBlYXNlO1xcbn1cXG4uYW5pbWF0ZWQge1xcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDFzO1xcbiAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xcbiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xcbiAgICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xcbn1cXG4uYW5pbWF0ZWQuaW5maW5pdGUge1xcbiAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcXG4gICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XFxufVxcbi5hbmltYXRlZC5oaW5nZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMnM7XFxuICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMnM7XFxufVxcbi5hbmltYXRlZC5mbGlwT3V0WCxcXG4uYW5pbWF0ZWQuZmxpcE91dFksXFxuLmFuaW1hdGVkLmJvdW5jZUluLFxcbi5hbmltYXRlZC5ib3VuY2VPdXQge1xcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDAuNzVzO1xcbiAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDAuNzVzO1xcbn1cXG4ubm9uLXNlbGVjdGFibGUge1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZSAhaW1wb3J0YW50O1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZSAhaW1wb3J0YW50O1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZSAhaW1wb3J0YW50O1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4uc2Nyb2xsIHtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbn1cXG4uc2Nyb2xsLFxcbi5zY3JvbGwteCxcXG4uc2Nyb2xsLXkge1xcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xcbiAgd2lsbC1jaGFuZ2U6IHNjcm9sbC1wb3NpdGlvbjtcXG59XFxuLnNjcm9sbC14IHtcXG4gIG92ZXJmbG93LXg6IGF1dG87XFxufVxcbi5zY3JvbGwteSB7XFxuICBvdmVyZmxvdy15OiBhdXRvO1xcbn1cXG4ubm8tc2Nyb2xsIHtcXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcXG59XFxuLm5vLXBvaW50ZXItZXZlbnRzIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi5hbGwtcG9pbnRlci1ldmVudHMge1xcbiAgcG9pbnRlci1ldmVudHM6IGFsbCAhaW1wb3J0YW50O1xcbn1cXG4uY3Vyc29yLXBvaW50ZXIge1xcbiAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XFxufVxcbi5jdXJzb3Itbm90LWFsbG93ZWQge1xcbiAgY3Vyc29yOiBub3QtYWxsb3dlZCAhaW1wb3J0YW50O1xcbn1cXG4uY3Vyc29yLWluaGVyaXQge1xcbiAgY3Vyc29yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XFxufVxcbi5yb3RhdGUtNDUge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5yb3RhdGUtOTAge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5yb3RhdGUtMTM1IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5yb3RhdGUtMTgwIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5yb3RhdGUtMjA1IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjA1ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyMDVkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5yb3RhdGUtMjcwIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5yb3RhdGUtMzE1IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzE1ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMTVkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5mbGlwLWhvcml6b250YWwge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XFxufVxcbi5mbGlwLXZlcnRpY2FsIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xcbn1cXG4uZmxvYXQtbGVmdCB7XFxuICBmbG9hdDogbGVmdDtcXG59XFxuLmZsb2F0LXJpZ2h0IHtcXG4gIGZsb2F0OiByaWdodDtcXG59XFxuLnJlbGF0aXZlLXBvc2l0aW9uIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLmZpeGVkLFxcbi5mdWxsc2NyZWVuLFxcbi5maXhlZC1jZW50ZXIsXFxuLmZpeGVkLWJvdHRvbSxcXG4uZml4ZWQtbGVmdCxcXG4uZml4ZWQtcmlnaHQsXFxuLmZpeGVkLXRvcCxcXG4uZml4ZWQtdG9wLWxlZnQsXFxuLmZpeGVkLXRvcC1yaWdodCxcXG4uZml4ZWQtYm90dG9tLWxlZnQsXFxuLmZpeGVkLWJvdHRvbS1yaWdodCB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxufVxcbi5hYnNvbHV0ZSxcXG4uYWJzb2x1dGUtZnVsbCxcXG4uYWJzb2x1dGUtY2VudGVyLFxcbi5hYnNvbHV0ZS1ib3R0b20sXFxuLmFic29sdXRlLWxlZnQsXFxuLmFic29sdXRlLXJpZ2h0LFxcbi5hYnNvbHV0ZS10b3AsXFxuLmFic29sdXRlLXRvcC1sZWZ0LFxcbi5hYnNvbHV0ZS10b3AtcmlnaHQsXFxuLmFic29sdXRlLWJvdHRvbS1sZWZ0LFxcbi5hYnNvbHV0ZS1ib3R0b20tcmlnaHQge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbn1cXG4uZml4ZWQtdG9wLFxcbi5hYnNvbHV0ZS10b3Age1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbn1cXG4uZml4ZWQtcmlnaHQsXFxuLmFic29sdXRlLXJpZ2h0IHtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbn1cXG4uZml4ZWQtYm90dG9tLFxcbi5hYnNvbHV0ZS1ib3R0b20ge1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbn1cXG4uZml4ZWQtbGVmdCxcXG4uYWJzb2x1dGUtbGVmdCB7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbn1cXG4uZml4ZWQtdG9wLWxlZnQsXFxuLmFic29sdXRlLXRvcC1sZWZ0IHtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxufVxcbi5maXhlZC10b3AtcmlnaHQsXFxuLmFic29sdXRlLXRvcC1yaWdodCB7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG59XFxuLmZpeGVkLWJvdHRvbS1sZWZ0LFxcbi5hYnNvbHV0ZS1ib3R0b20tbGVmdCB7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbn1cXG4uZml4ZWQtYm90dG9tLXJpZ2h0LFxcbi5hYnNvbHV0ZS1ib3R0b20tcmlnaHQge1xcbiAgYm90dG9tOiAwO1xcbiAgcmlnaHQ6IDA7XFxufVxcbi5mdWxsc2NyZWVuIHtcXG4gIHotaW5kZXg6IDYwMDA7XFxuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XFxuICBtYXgtd2lkdGg6IDEwMHZ3O1xcbiAgbWF4LWhlaWdodDogMTAwdmg7XFxufVxcbi5hYnNvbHV0ZS1mdWxsLFxcbi5mdWxsc2NyZWVuIHtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG59XFxuLmZpeGVkLWNlbnRlcixcXG4uYWJzb2x1dGUtY2VudGVyIHtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogNTAlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XFxufVxcbi52ZXJ0aWNhbC10b3Age1xcbiAgdmVydGljYWwtYWxpZ246IHRvcCAhaW1wb3J0YW50O1xcbn1cXG4udmVydGljYWwtbWlkZGxlIHtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcXG59XFxuLnZlcnRpY2FsLWJvdHRvbSB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tICFpbXBvcnRhbnQ7XFxufVxcbi5vbi1sZWZ0IHtcXG4gIG1hcmdpbi1yaWdodDogMTJweDtcXG59XFxuLm9uLXJpZ2h0IHtcXG4gIG1hcmdpbi1sZWZ0OiAxMnB4O1xcbn1cXG4ucS1yaXBwbGUtY29udGFpbmVyIHtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB6LWluZGV4OiAwO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcbi5xLXJpcHBsZS1hbmltYXRpb24ge1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMCAvKiBydGw6aWdub3JlICovO1xcbiAgb3BhY2l0eTogMDtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjNzIG9wYWNpdHkgY3ViaWMtYmV6aWVyKDAuMiwgMC40LCAwLjQsIDAuMSksIDAuM3MgLXdlYmtpdC10cmFuc2Zvcm0gY3ViaWMtYmV6aWVyKDAuMiwgMC40LCAwLjQsIDAuOSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIG9wYWNpdHkgY3ViaWMtYmV6aWVyKDAuMiwgMC40LCAwLjQsIDAuMSksIDAuM3MgLXdlYmtpdC10cmFuc2Zvcm0gY3ViaWMtYmV6aWVyKDAuMiwgMC40LCAwLjQsIDAuOSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIHRyYW5zZm9ybSBjdWJpYy1iZXppZXIoMC4yLCAwLjQsIDAuNCwgMC45KSwgMC4zcyBvcGFjaXR5IGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjEpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyB0cmFuc2Zvcm0gY3ViaWMtYmV6aWVyKDAuMiwgMC40LCAwLjQsIDAuOSksIDAuM3Mgb3BhY2l0eSBjdWJpYy1iZXppZXIoMC4yLCAwLjQsIDAuNCwgMC4xKSwgMC4zcyAtd2Via2l0LXRyYW5zZm9ybSBjdWJpYy1iZXppZXIoMC4yLCAwLjQsIDAuNCwgMC45KTtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7XFxufVxcbi5xLXJpcHBsZS1hbmltYXRpb24tZW50ZXIge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lO1xcbiAgdHJhbnNpdGlvbjogbm9uZTtcXG59XFxuLnEtcmlwcGxlLWFuaW1hdGlvbi12aXNpYmxlIHtcXG4gIG9wYWNpdHk6IDAuMTU7XFxufVxcbi5xLXJhZGlhbC1yaXBwbGUge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAtNTAlO1xcbiAgbGVmdDogLTUwJTtcXG4gIHdpZHRoOiAyMDAlO1xcbiAgaGVpZ2h0OiAyMDAlO1xcbn1cXG4ucS1yYWRpYWwtcmlwcGxlOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCBjdXJyZW50Q29sb3IgMTAlLCB0cmFuc3BhcmVudCAxMC4wMSUpO1xcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcXG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxMCwgMTApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEwLCAxMCk7XFxuICBvcGFjaXR5OiAwO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDFzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjVzO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxcywgLXdlYmtpdC10cmFuc2Zvcm0gMC41cztcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzLCBvcGFjaXR5IDFzO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMsIG9wYWNpdHkgMXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNXM7XFxufVxcbi5xLXJhZGlhbC1yaXBwbGUuYWN0aXZlOmFmdGVyIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLCAwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLCAwKTtcXG4gIG9wYWNpdHk6IDAuNDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMHM7XFxuICB0cmFuc2l0aW9uOiAwcztcXG59XFxuOnJvb3Qge1xcbiAgLS1xLXNpemUteHM6IDA7XFxuICAtLXEtc2l6ZS1zbTogNTc2cHg7XFxuICAtLXEtc2l6ZS1tZDogNzY4cHg7XFxuICAtLXEtc2l6ZS1sZzogOTkycHg7XFxuICAtLXEtc2l6ZS14bDogMTIwMHB4O1xcbn1cXG4uZml0IHtcXG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XFxuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcXG59XFxuLmZ1bGwtaGVpZ2h0IHtcXG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xcbn1cXG4uZnVsbC13aWR0aCB7XFxuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xcbiAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcXG4gIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xcbn1cXG4ud2luZG93LWhlaWdodCB7XFxuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XFxuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XFxuICBoZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7XFxufVxcbi53aW5kb3ctd2lkdGgge1xcbiAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcXG4gIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xcbiAgd2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnQ7XFxufVxcbi5ibG9jayB7XFxuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xcbn1cXG4uaW5saW5lLWJsb2NrIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xcbn1cXG4ucS1wYS1ub25lIHtcXG4gIHBhZGRpbmc6IDAgMDtcXG59XFxuLnEtcGwtbm9uZSxcXG4ucS1weC1ub25lIHtcXG4gIHBhZGRpbmctbGVmdDogMDtcXG59XFxuLnEtcHItbm9uZSxcXG4ucS1weC1ub25lIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDA7XFxufVxcbi5xLXB0LW5vbmUsXFxuLnEtcHktbm9uZSB7XFxuICBwYWRkaW5nLXRvcDogMDtcXG59XFxuLnEtcGItbm9uZSxcXG4ucS1weS1ub25lIHtcXG4gIHBhZGRpbmctYm90dG9tOiAwO1xcbn1cXG4ucS1tYS1ub25lIHtcXG4gIG1hcmdpbjogMCAwO1xcbn1cXG4ucS1tbC1ub25lLFxcbi5xLW14LW5vbmUge1xcbiAgbWFyZ2luLWxlZnQ6IDA7XFxufVxcbi5xLW1yLW5vbmUsXFxuLnEtbXgtbm9uZSB7XFxuICBtYXJnaW4tcmlnaHQ6IDA7XFxufVxcbi5xLW10LW5vbmUsXFxuLnEtbXktbm9uZSB7XFxuICBtYXJnaW4tdG9wOiAwO1xcbn1cXG4ucS1tYi1ub25lLFxcbi5xLW15LW5vbmUge1xcbiAgbWFyZ2luLWJvdHRvbTogMDtcXG59XFxuLnEtcGEteHMge1xcbiAgcGFkZGluZzogNHB4IDRweDtcXG59XFxuLnEtcGwteHMsXFxuLnEtcHgteHMge1xcbiAgcGFkZGluZy1sZWZ0OiA0cHg7XFxufVxcbi5xLXByLXhzLFxcbi5xLXB4LXhzIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDRweDtcXG59XFxuLnEtcHQteHMsXFxuLnEtcHkteHMge1xcbiAgcGFkZGluZy10b3A6IDRweDtcXG59XFxuLnEtcGIteHMsXFxuLnEtcHkteHMge1xcbiAgcGFkZGluZy1ib3R0b206IDRweDtcXG59XFxuLnEtbWEteHMge1xcbiAgbWFyZ2luOiA0cHggNHB4O1xcbn1cXG4ucS1tbC14cyxcXG4ucS1teC14cyB7XFxuICBtYXJnaW4tbGVmdDogNHB4O1xcbn1cXG4ucS1tci14cyxcXG4ucS1teC14cyB7XFxuICBtYXJnaW4tcmlnaHQ6IDRweDtcXG59XFxuLnEtbXQteHMsXFxuLnEtbXkteHMge1xcbiAgbWFyZ2luLXRvcDogNHB4O1xcbn1cXG4ucS1tYi14cyxcXG4ucS1teS14cyB7XFxuICBtYXJnaW4tYm90dG9tOiA0cHg7XFxufVxcbi5xLXBhLXNtIHtcXG4gIHBhZGRpbmc6IDhweCA4cHg7XFxufVxcbi5xLXBsLXNtLFxcbi5xLXB4LXNtIHtcXG4gIHBhZGRpbmctbGVmdDogOHB4O1xcbn1cXG4ucS1wci1zbSxcXG4ucS1weC1zbSB7XFxuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XFxufVxcbi5xLXB0LXNtLFxcbi5xLXB5LXNtIHtcXG4gIHBhZGRpbmctdG9wOiA4cHg7XFxufVxcbi5xLXBiLXNtLFxcbi5xLXB5LXNtIHtcXG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XFxufVxcbi5xLW1hLXNtIHtcXG4gIG1hcmdpbjogOHB4IDhweDtcXG59XFxuLnEtbWwtc20sXFxuLnEtbXgtc20ge1xcbiAgbWFyZ2luLWxlZnQ6IDhweDtcXG59XFxuLnEtbXItc20sXFxuLnEtbXgtc20ge1xcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxufVxcbi5xLW10LXNtLFxcbi5xLW15LXNtIHtcXG4gIG1hcmdpbi10b3A6IDhweDtcXG59XFxuLnEtbWItc20sXFxuLnEtbXktc20ge1xcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbn1cXG4ucS1wYS1tZCB7XFxuICBwYWRkaW5nOiAxNnB4IDE2cHg7XFxufVxcbi5xLXBsLW1kLFxcbi5xLXB4LW1kIHtcXG4gIHBhZGRpbmctbGVmdDogMTZweDtcXG59XFxuLnEtcHItbWQsXFxuLnEtcHgtbWQge1xcbiAgcGFkZGluZy1yaWdodDogMTZweDtcXG59XFxuLnEtcHQtbWQsXFxuLnEtcHktbWQge1xcbiAgcGFkZGluZy10b3A6IDE2cHg7XFxufVxcbi5xLXBiLW1kLFxcbi5xLXB5LW1kIHtcXG4gIHBhZGRpbmctYm90dG9tOiAxNnB4O1xcbn1cXG4ucS1tYS1tZCB7XFxuICBtYXJnaW46IDE2cHggMTZweDtcXG59XFxuLnEtbWwtbWQsXFxuLnEtbXgtbWQge1xcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XFxufVxcbi5xLW1yLW1kLFxcbi5xLW14LW1kIHtcXG4gIG1hcmdpbi1yaWdodDogMTZweDtcXG59XFxuLnEtbXQtbWQsXFxuLnEtbXktbWQge1xcbiAgbWFyZ2luLXRvcDogMTZweDtcXG59XFxuLnEtbWItbWQsXFxuLnEtbXktbWQge1xcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcXG59XFxuLnEtcGEtbGcge1xcbiAgcGFkZGluZzogMjRweCAyNHB4O1xcbn1cXG4ucS1wbC1sZyxcXG4ucS1weC1sZyB7XFxuICBwYWRkaW5nLWxlZnQ6IDI0cHg7XFxufVxcbi5xLXByLWxnLFxcbi5xLXB4LWxnIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDI0cHg7XFxufVxcbi5xLXB0LWxnLFxcbi5xLXB5LWxnIHtcXG4gIHBhZGRpbmctdG9wOiAyNHB4O1xcbn1cXG4ucS1wYi1sZyxcXG4ucS1weS1sZyB7XFxuICBwYWRkaW5nLWJvdHRvbTogMjRweDtcXG59XFxuLnEtbWEtbGcge1xcbiAgbWFyZ2luOiAyNHB4IDI0cHg7XFxufVxcbi5xLW1sLWxnLFxcbi5xLW14LWxnIHtcXG4gIG1hcmdpbi1sZWZ0OiAyNHB4O1xcbn1cXG4ucS1tci1sZyxcXG4ucS1teC1sZyB7XFxuICBtYXJnaW4tcmlnaHQ6IDI0cHg7XFxufVxcbi5xLW10LWxnLFxcbi5xLW15LWxnIHtcXG4gIG1hcmdpbi10b3A6IDI0cHg7XFxufVxcbi5xLW1iLWxnLFxcbi5xLW15LWxnIHtcXG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XFxufVxcbi5xLXBhLXhsIHtcXG4gIHBhZGRpbmc6IDQ4cHggNDhweDtcXG59XFxuLnEtcGwteGwsXFxuLnEtcHgteGwge1xcbiAgcGFkZGluZy1sZWZ0OiA0OHB4O1xcbn1cXG4ucS1wci14bCxcXG4ucS1weC14bCB7XFxuICBwYWRkaW5nLXJpZ2h0OiA0OHB4O1xcbn1cXG4ucS1wdC14bCxcXG4ucS1weS14bCB7XFxuICBwYWRkaW5nLXRvcDogNDhweDtcXG59XFxuLnEtcGIteGwsXFxuLnEtcHkteGwge1xcbiAgcGFkZGluZy1ib3R0b206IDQ4cHg7XFxufVxcbi5xLW1hLXhsIHtcXG4gIG1hcmdpbjogNDhweCA0OHB4O1xcbn1cXG4ucS1tbC14bCxcXG4ucS1teC14bCB7XFxuICBtYXJnaW4tbGVmdDogNDhweDtcXG59XFxuLnEtbXIteGwsXFxuLnEtbXgteGwge1xcbiAgbWFyZ2luLXJpZ2h0OiA0OHB4O1xcbn1cXG4ucS1tdC14bCxcXG4ucS1teS14bCB7XFxuICBtYXJnaW4tdG9wOiA0OHB4O1xcbn1cXG4ucS1tYi14bCxcXG4ucS1teS14bCB7XFxuICBtYXJnaW4tYm90dG9tOiA0OHB4O1xcbn1cXG4ucS1tbC1hdXRvLFxcbi5xLW14LWF1dG8ge1xcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XFxufVxcbi5xLW1yLWF1dG8sXFxuLnEtbXgtYXV0byB7XFxuICBtYXJnaW4tcmlnaHQ6IGF1dG87XFxufVxcbi5xLW15LWZvcm0ge1xcbiAgbWFyZ2luLXRvcDogMTZweDtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG59XFxuLnEtdG91Y2gge1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIHVzZXItZHJhZzogbm9uZTtcXG4gIC1raHRtbC11c2VyLWRyYWc6IG5vbmU7XFxuICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTtcXG59XFxuLnEtdG91Y2gteCB7XFxuICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teDtcXG4gICAgICB0b3VjaC1hY3Rpb246IHBhbi14O1xcbn1cXG4ucS10b3VjaC15IHtcXG4gIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xcbiAgICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XFxufVxcbmJvZHkge1xcbiAgbWluLXdpZHRoOiAxMDBweDtcXG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgJy1hcHBsZS1zeXN0ZW0nLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xcbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XFxuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XFxuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICBmb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgY29sb3I6ICMwYzBjMGM7XFxuICBtaW4taGVpZ2h0OiAxMDB2aDtcXG59XFxuaDEge1xcbiAgZm9udC1zaXplOiAxMTJweDtcXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XFxuICBsaW5lLWhlaWdodDogMS4xMjtcXG4gIGxldHRlci1zcGFjaW5nOiAtMC4wNGVtO1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgaDEge1xcbiAgICBmb250LXNpemU6IDY3LjJweDtcXG4gIH1cXG59XFxuaDIge1xcbiAgZm9udC1zaXplOiA1NnB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICBoMiB7XFxuICAgIGZvbnQtc2l6ZTogMzMuNnB4O1xcbiAgfVxcbn1cXG5oMyB7XFxuICBmb250LXNpemU6IDQ1cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGluZS1oZWlnaHQ6IDQ4cHg7XFxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgaDMge1xcbiAgICBmb250LXNpemU6IDI3cHg7XFxuICB9XFxufVxcbmg0IHtcXG4gIGZvbnQtc2l6ZTogMzRweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBsaW5lLWhlaWdodDogNDBweDtcXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICBoNCB7XFxuICAgIGZvbnQtc2l6ZTogMjAuNHB4O1xcbiAgfVxcbn1cXG5oNSB7XFxuICBmb250LXNpemU6IDI0cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGluZS1oZWlnaHQ6IDMycHg7XFxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgaDUge1xcbiAgICBmb250LXNpemU6IDE0LjM5OTk5OTk5OTk5OTk5OXB4O1xcbiAgfVxcbn1cXG5oNiB7XFxuICBmb250LXNpemU6IDIwcHg7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuMTI7XFxuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgaDYge1xcbiAgICBmb250LXNpemU6IDEycHg7XFxuICB9XFxufVxcbi5xLWRpc3BsYXktNC1vcGFjaXR5IHtcXG4gIG9wYWNpdHk6IDAuNTQ7XFxufVxcbi5xLWRpc3BsYXktNCB7XFxuICBmb250LXNpemU6IDExMnB4O1xcbiAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjEyO1xcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjA0ZW07XFxufVxcbi5xLWRpc3BsYXktMy1vcGFjaXR5IHtcXG4gIG9wYWNpdHk6IDAuNTQ7XFxufVxcbi5xLWRpc3BsYXktMyB7XFxuICBmb250LXNpemU6IDU2cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XFxuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcXG59XFxuLnEtZGlzcGxheS0yLW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC41NDtcXG59XFxuLnEtZGlzcGxheS0yIHtcXG4gIGZvbnQtc2l6ZTogNDVweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBsaW5lLWhlaWdodDogNDhweDtcXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxufVxcbi5xLWRpc3BsYXktMS1vcGFjaXR5IHtcXG4gIG9wYWNpdHk6IDAuNTQ7XFxufVxcbi5xLWRpc3BsYXktMSB7XFxuICBmb250LXNpemU6IDM0cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XFxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xcbn1cXG4ucS1oZWFkbGluZS1vcGFjaXR5IHtcXG4gIG9wYWNpdHk6IDAuODc7XFxufVxcbi5xLWhlYWRsaW5lIHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBsaW5lLWhlaWdodDogMzJweDtcXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxufVxcbi5xLXRpdGxlLW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC44NztcXG59XFxuLnEtdGl0bGUge1xcbiAgZm9udC1zaXplOiAyMHB4O1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjEyO1xcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcXG59XFxuLnEtc3ViaGVhZGluZy1vcGFjaXR5IHtcXG4gIG9wYWNpdHk6IDAuODc7XFxufVxcbi5xLXN1YmhlYWRpbmcge1xcbiAgZm9udC1zaXplOiAxNnB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG59XFxuLnEtYm9keS0yLW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC44NztcXG59XFxuLnEtYm9keS0yIHtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxufVxcbi5xLWJvZHktMS1vcGFjaXR5IHtcXG4gIG9wYWNpdHk6IDAuODc7XFxufVxcbi5xLWJvZHktMSB7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbn1cXG4ucS1jYXB0aW9uLW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC41NDtcXG59XFxuLnEtY2FwdGlvbiB7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbn1cXG5wIHtcXG4gIG1hcmdpbjogMCAwIDE2cHg7XFxufVxcbi5jYXB0aW9uIHtcXG4gIGNvbG9yOiAjNDI0MjQyO1xcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XFxuICBsaW5lLWhlaWdodDogMjRweDtcXG4gIHBhZGRpbmc6IDA7XFxuICBmb250LXdlaWdodDogMzAwO1xcbn1cXG4udXBwZXJjYXNlIHtcXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxufVxcbi5sb3dlcmNhc2Uge1xcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcXG59XFxuLmNhcGl0YWxpemUge1xcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XFxufVxcbi50ZXh0LWNlbnRlciB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi50ZXh0LWxlZnQge1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG59XFxuLnRleHQtcmlnaHQge1xcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XFxufVxcbi50ZXh0LWp1c3RpZnkge1xcbiAgdGV4dC1hbGlnbjoganVzdGlmeTtcXG4gIC13ZWJraXQtaHlwaGVuczogYXV0bztcXG4gICAgICAtbXMtaHlwaGVuczogYXV0bztcXG4gICAgICAgICAgaHlwaGVuczogYXV0bztcXG59XFxuLnRleHQtaXRhbGljIHtcXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcXG59XFxuLnRleHQtYm9sZCB7XFxuICBmb250LXdlaWdodDogYm9sZDtcXG59XFxuLnRleHQtbm8td3JhcCB7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbn1cXG4udGV4dC13ZWlnaHQtdGhpbiB7XFxuICBmb250LXdlaWdodDogMTAwO1xcbn1cXG4udGV4dC13ZWlnaHQtbGlnaHQge1xcbiAgZm9udC13ZWlnaHQ6IDMwMDtcXG59XFxuLnRleHQtd2VpZ2h0LXJlZ3VsYXIge1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG59XFxuLnRleHQtd2VpZ2h0LW1lZGl1bSB7XFxuICBmb250LXdlaWdodDogNTAwO1xcbn1cXG4udGV4dC13ZWlnaHQtYm9sZCB7XFxuICBmb250LXdlaWdodDogNzAwO1xcbn1cXG4udGV4dC13ZWlnaHQtYm9sZGVyIHtcXG4gIGZvbnQtd2VpZ2h0OiA5MDA7XFxufVxcbnNtYWxsIHtcXG4gIGZvbnQtc2l6ZTogODAlO1xcbn1cXG5iaWcge1xcbiAgZm9udC1zaXplOiAxNzAlO1xcbn1cXG5zdWIge1xcbiAgYm90dG9tOiAtMC4yNWVtO1xcbn1cXG5zdXAge1xcbiAgdG9wOiAtMC41ZW07XFxufVxcbmJsb2NrcXVvdGUge1xcbiAgcGFkZGluZzogOHB4IDE2cHg7XFxuICBtYXJnaW46IDA7XFxuICBmb250LXNpemU6IDE2cHg7XFxuICBib3JkZXItbGVmdDogNHB4IHNvbGlkICMwMjdiZTM7XFxuICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLXEtY29sb3ItcHJpbWFyeSk7XFxufVxcbmJsb2NrcXVvdGUudGV4dC1yaWdodCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xcbiAgcGFkZGluZy1sZWZ0OiAwO1xcbiAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgIzAyN2JlMztcXG4gIGJvcmRlci1yaWdodDogNHB4IHNvbGlkIHZhcigtLXEtY29sb3ItcHJpbWFyeSk7XFxuICBib3JkZXItbGVmdDogMDtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXG5ibG9ja3F1b3RlIHNtYWxsIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgbGluZS1oZWlnaHQ6IDEuNDtcXG4gIGNvbG9yOiAjNzc3O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItZmFkZWQpO1xcbn1cXG5ibG9ja3F1b3RlIHNtYWxsOmJlZm9yZSB7XFxuICBjb250ZW50OiAnXFxcXDIwMTQgXFxcXDAwQTAnO1xcbn1cXG4ucXVvdGUge1xcbiAgcGFkZGluZzogMTBweCAyMHB4O1xcbiAgbWFyZ2luOiAwIDAgMjBweDtcXG4gIGJvcmRlci1sZWZ0OiA1cHggc29saWQgIzAyN2JlMztcXG4gIGJvcmRlci1sZWZ0OiA1cHggc29saWQgdmFyKC0tcS1jb2xvci1wcmltYXJ5KTtcXG59XFxuLnF1b3RlLnRleHQtcmlnaHQge1xcbiAgcGFkZGluZy1yaWdodDogMTVweDtcXG4gIHBhZGRpbmctbGVmdDogMDtcXG4gIGJvcmRlci1yaWdodDogNXB4IHNvbGlkICMwMjdiZTM7XFxuICBib3JkZXItcmlnaHQ6IDVweCBzb2xpZCB2YXIoLS1xLWNvbG9yLXByaW1hcnkpO1xcbiAgYm9yZGVyLWxlZnQ6IDA7XFxuICB0ZXh0LWFsaWduOiByaWdodDtcXG59XFxuZHQge1xcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxufVxcbmRkIHtcXG4gIG1hcmdpbi1sZWZ0OiAwO1xcbn1cXG5kdCxcXG5kZCB7XFxuICBsaW5lLWhlaWdodDogMS40O1xcbn1cXG5kbCB7XFxuICBtYXJnaW4tdG9wOiAwO1xcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcXG59XFxuZGwuaG9yaXpvbnRhbCBkdCB7XFxuICBmbG9hdDogbGVmdDtcXG4gIHdpZHRoOiAyNSU7XFxuICBjbGVhcjogbGVmdDtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG59XFxuZGwuaG9yaXpvbnRhbCBkZCB7XFxuICBtYXJnaW4tbGVmdDogMzAlO1xcbn1cXG5oci5xLWhyLFxcbmhyLnEtaHItZGFyayB7XFxuICBoZWlnaHQ6IDFweDtcXG4gIG1pbi1oZWlnaHQ6IDFweDtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgYm9yZGVyOiBub25lO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG5oci5xLWhyLWRhcmsge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjM2KTtcXG59XFxuLm5vLW1hcmdpbiB7XFxuICBtYXJnaW46IDAgIWltcG9ydGFudDtcXG59XFxuLm5vLXBhZGRpbmcge1xcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xcbn1cXG4ubm8tYm9yZGVyIHtcXG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xcbn1cXG4ubm8tYm9yZGVyLXJhZGl1cyB7XFxuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XFxufVxcbi5uby1ib3gtc2hhZG93IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi5uby1vdXRsaW5lIHtcXG4gIG91dGxpbmU6IDAgIWltcG9ydGFudDtcXG59XFxuLmVsbGlwc2lzIHtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5lbGxpcHNpcy0yLWxpbmVzLFxcbi5lbGxpcHNpcy0zLWxpbmVzIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxufVxcbi5lbGxpcHNpcy0yLWxpbmVzIHtcXG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcXG59XFxuLmVsbGlwc2lzLTMtbGluZXMge1xcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xcbn1cXG4ucmVhZG9ubHkge1xcbiAgY3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7XFxufVxcbi5kaXNhYmxlZCxcXG5bZGlzYWJsZWRdLFxcbi5kaXNhYmxlZCAqLFxcbltkaXNhYmxlZF0gKiB7XFxuICBjdXJzb3I6IG5vdC1hbGxvd2VkICFpbXBvcnRhbnQ7XFxufVxcbi5kaXNhYmxlZCxcXG5bZGlzYWJsZWRdIHtcXG4gIG9wYWNpdHk6IDAuNiAhaW1wb3J0YW50O1xcbn1cXG4uaGlkZGVuIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuLmludmlzaWJsZSB7XFxuICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcXG59XFxuLnRyYW5zcGFyZW50IHtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxufVxcbi5vdmVyZmxvdy1hdXRvIHtcXG4gIG92ZXJmbG93OiBhdXRvICFpbXBvcnRhbnQ7XFxufVxcbi5vdmVyZmxvdy1oaWRkZW4ge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xcbn1cXG4ub3ZlcmZsb3ctaGlkZGVuLXkge1xcbiAgb3ZlcmZsb3cteTogaGlkZGVuICFpbXBvcnRhbnQ7XFxufVxcbi5kaW1tZWQ6YWZ0ZXIsXFxuLmxpZ2h0LWRpbW1lZDphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG59XFxuLmRpbW1lZDphZnRlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNCkgIWltcG9ydGFudDtcXG59XFxuLmxpZ2h0LWRpbW1lZDphZnRlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuNikgIWltcG9ydGFudDtcXG59XFxuLnotdG9wIHtcXG4gIHotaW5kZXg6IDcwMDAgIWltcG9ydGFudDtcXG59XFxuLnotbWF4IHtcXG4gIHotaW5kZXg6IDk5OTggIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLmRlc2t0b3ApIC5kZXNrdG9wLW9ubHksXFxuYm9keS5kZXNrdG9wIC5kZXNrdG9wLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCgubW9iaWxlKSAubW9iaWxlLW9ubHksXFxuYm9keS5tb2JpbGUgLm1vYmlsZS1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLmNvcmRvdmEpIC5jb3Jkb3ZhLW9ubHksXFxuYm9keS5jb3Jkb3ZhIC5jb3Jkb3ZhLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCguZWxlY3Ryb24pIC5lbGVjdHJvbi1vbmx5LFxcbmJvZHkuZWxlY3Ryb24gLmVsZWN0cm9uLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCguaW9zKSAuaW9zLW9ubHksXFxuYm9keS5pb3MgLmlvcy1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLm1hdCkgLm1hdC1vbmx5LFxcbmJvZHkubWF0IC5tYXQtaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC50b3VjaCkgLnRvdWNoLW9ubHksXFxuYm9keS50b3VjaCAudG91Y2gtaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC53aXRoaW4taWZyYW1lKSAud2l0aGluLWlmcmFtZS1vbmx5LFxcbmJvZHkud2l0aGluLWlmcmFtZSAud2l0aGluLWlmcmFtZS1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLnBsYXRmb3JtLWlvcykgLnBsYXRmb3JtLWlvcy1vbmx5LFxcbmJvZHkucGxhdGZvcm0taW9zIC5wbGF0Zm9ybS1pb3MtaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC5wbGF0Zm9ybS1hbmRyb2lkKSAucGxhdGZvcm0tYW5kcm9pZC1vbmx5LFxcbmJvZHkucGxhdGZvcm0tYW5kcm9pZCAucGxhdGZvcm0tYW5kcm9pZC1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuQG1lZGlhIGFsbCBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xcbiAgLm9yaWVudGF0aW9uLWxhbmRzY2FwZSB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuQG1lZGlhIGFsbCBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcXG4gIC5vcmllbnRhdGlvbi1wb3J0cmFpdCB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuQG1lZGlhIHNjcmVlbiB7XFxuICAucHJpbnQtb25seSB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuQG1lZGlhIHByaW50IHtcXG4gIC5wcmludC1oaWRlIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHtcXG4gIC54cy1oaWRlLFxcbiAgLmd0LXhzLFxcbiAgLnNtLFxcbiAgLmd0LXNtLFxcbiAgLm1kLFxcbiAgLmd0LW1kLFxcbiAgLmxnLFxcbiAgLmd0LWxnLFxcbiAgLnhsIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgLnNtLWhpZGUsXFxuICAueHMsXFxuICAubHQtc20sXFxuICAuZ3Qtc20sXFxuICAubWQsXFxuICAuZ3QtbWQsXFxuICAubGcsXFxuICAuZ3QtbGcsXFxuICAueGwge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XFxuICAubWQtaGlkZSxcXG4gIC54cyxcXG4gIC5sdC1zbSxcXG4gIC5zbSxcXG4gIC5sdC1tZCxcXG4gIC5ndC1tZCxcXG4gIC5sZyxcXG4gIC5ndC1sZyxcXG4gIC54bCB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XFxuICAubGctaGlkZSxcXG4gIC54cyxcXG4gIC5sdC1zbSxcXG4gIC5zbSxcXG4gIC5sdC1tZCxcXG4gIC5tZCxcXG4gIC5sdC1sZyxcXG4gIC5ndC1sZyxcXG4gIC54bCB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xcbiAgLnhsLWhpZGUsXFxuICAueHMsXFxuICAubHQtc20sXFxuICAuc20sXFxuICAubHQtbWQsXFxuICAubWQsXFxuICAubHQtbGcsXFxuICAubGcsXFxuICAubHQteGwge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbi5xLWZvY3VzLWhlbHBlciB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwIC8qIHJ0bDppZ25vcmUgKi87XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG4gIG9wYWNpdHk6IDAuMTU7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxufVxcbi5xLWZvY3VzLWhlbHBlci1yb3VuZGVkIHtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG59XFxuLnEtZm9jdXMtaGVscGVyLXJvdW5kIHtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG59XFxuYm9keS5kZXNrdG9wIC5xLWZvY3VzYWJsZTpmb2N1cyAucS1mb2N1cy1oZWxwZXIsXFxuYm9keS5kZXNrdG9wIC5xLWhvdmVyYWJsZTpob3ZlciAucS1mb2N1cy1oZWxwZXIge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG5ib2R5LmlvcyAucS1ob3ZlcmFibGU6YWN0aXZlIC5xLWZvY3VzLWhlbHBlciB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxuICBvcGFjaXR5OiAwLjM7XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSB7XFxuICAucS1pZiA+IC5xLWlmLWlubmVyIHtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IGF1dG87XFxuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICB9XFxuICAucS1pZiA+IC5xLWlmLWlubmVyID4gZGl2ID4gLnEtaW5wdXQtdGFyZ2V0IHtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IGF1dG87XFxuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xcbiAgfVxcbiAgLnEtaWYgPiAucS1pZi1pbm5lciA+IGRpdiA+IGlucHV0LnEtaW5wdXQtdGFyZ2V0IHtcXG4gICAgbWluLXdpZHRoOiAzcmVtO1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMCUgIWltcG9ydGFudDtcXG4gICAgICAgIGZsZXgtYmFzaXM6IDAlICFpbXBvcnRhbnQ7XFxuICB9XFxuICAucS1pbnB1dC10YXJnZXQ6YmVmb3JlIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICB9XFxuICAucS1pZi1sYWJlbC1zcGFjZXIge1xcbiAgICB3aWR0aDogMDtcXG4gIH1cXG4gIC5xLWVkaXRvci10b29sYmFyIC5xLWJ0bi1ncm91cC5yb3cuaW5saW5lIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICB9XFxuICAucS10b29sYmFyLFxcbiAgLnEtYWN0aW9uc2hlZXQtdGl0bGUsXFxuICAucS1maWVsZC1sYWJlbC1pbm5lciB7XFxuICAgIGhlaWdodDogMHB4O1xcbiAgfVxcbiAgLnEtY2Fyb3VzZWwtc2xpZGUge1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICB9XFxuICAucm93ID4gLmNvbC5xLWFsZXJ0LWNvbnRlbnQge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogYXV0bztcXG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XFxuICB9XFxuICAucS1zbGlkZXItaGFuZGxlID4gLnEtY2hpcC5pbmxpbmUucm93IHtcXG4gICAgZGlzcGxheTogdGFibGU7XFxuICB9XFxuICBhLnEtYnRuOm5vdCgucS1idG4tcm91bmQpIHtcXG4gICAgaGVpZ2h0OiAwcHg7XFxuICB9XFxuICAucS1idG4gLnEtYnRuLWlubmVyIHtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IGF1dG87XFxuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xcbiAgfVxcbiAgLnEtYnRuOmFjdGl2ZSAucS1idG4taW5uZXIsXFxuICAucS1idG4uYWN0aXZlIC5xLWJ0bi1pbm5lciB7XFxuICAgIG1hcmdpbjogLTFweCAxcHggMXB4IC0xcHg7XFxuICB9XFxuICAucS1idG46YWN0aXZlLnEtYnRuLXB1c2ggLnEtYnRuLWlubmVyLFxcbiAgLnEtYnRuLmFjdGl2ZS5xLWJ0bi1wdXNoIC5xLWJ0bi1pbm5lciB7XFxuICAgIG1hcmdpbjogMXB4IDFweCAtMXB4IC0xcHg7XFxuICB9XFxuICAucS1idG46YWN0aXZlLnEtYnRuLXB1c2guZGlzYWJsZWQgLnEtYnRuLWlubmVyLFxcbiAgLnEtYnRuLmFjdGl2ZS5xLWJ0bi1wdXNoLmRpc2FibGVkIC5xLWJ0bi1pbm5lciB7XFxuICAgIG1hcmdpbjogLTFweCAxcHggMXB4IC0xcHg7XFxuICB9XFxuICAucS1idG4tZ3JvdXAgPiAucS1idG4ucS1idG4tcHVzaDpub3QoLmRpc2FibGVkKTphY3RpdmUgLnEtYnRuLWlubmVyLFxcbiAgLnEtYnRuLWdyb3VwID4gLnEtYnRuLnEtYnRuLXB1c2g6bm90KC5kaXNhYmxlZCkuYWN0aXZlIC5xLWJ0bi1pbm5lciB7XFxuICAgIG1hcmdpbjogMDtcXG4gIH1cXG4gIC5xLWNoaXA6bm90KC5xLWNoaXAtc21hbGwpOm5vdCgucS1jaGlwLWRlbnNlKSAucS1jaGlwLW1haW4ge1xcbiAgICBsaW5lLWhlaWdodDogMzJweDtcXG4gIH1cXG4gIC5xLWJ0biAucS1jaGlwIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgfVxcbiAgLnEtdGFiIC5xLWNoaXAgLnEtY2hpcC1tYWluIHtcXG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcXG4gIH1cXG4gIC5xLWZhYi1hY3Rpb25zLnEtZmFiLWxlZnQsXFxuICAucS1mYWItYWN0aW9ucy5xLWZhYi1yaWdodCB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgfVxcbiAgLnEtaXRlbS1tYWluIHtcXG4gICAgbWluLXdpZHRoOiAxcHg7XFxuICB9XFxuICAucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtaXRlbSB7XFxuICAgIHBhZGRpbmctbGVmdDogMDtcXG4gICAgcGFkZGluZy1yaWdodDogMDtcXG4gIH1cXG4gIC5xLW1vZGFsLWxheW91dCB7XFxuICAgIG1pbi1oZWlnaHQ6IDgwdmggIWltcG9ydGFudDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIH1cXG59XFxuQHN1cHBvcnRzICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XFxuICAucS1pZiA+IC5xLWlmLWlubmVyIHtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IGF1dG87XFxuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICB9XFxuICAucS1pZiA+IC5xLWlmLWlubmVyID4gZGl2ID4gLnEtaW5wdXQtdGFyZ2V0IHtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IGF1dG87XFxuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xcbiAgfVxcbiAgLnEtaWYgPiAucS1pZi1pbm5lciA+IGRpdiA+IGlucHV0LnEtaW5wdXQtdGFyZ2V0IHtcXG4gICAgbWluLXdpZHRoOiAzcmVtO1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMCUgIWltcG9ydGFudDtcXG4gICAgICAgIGZsZXgtYmFzaXM6IDAlICFpbXBvcnRhbnQ7XFxuICB9XFxuICAucS1pbnB1dC10YXJnZXQ6YmVmb3JlIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICB9XFxuICAucS1pZi1sYWJlbC1zcGFjZXIge1xcbiAgICB3aWR0aDogMDtcXG4gIH1cXG4gIC5xLWVkaXRvci10b29sYmFyIC5xLWJ0bi1ncm91cC5yb3cuaW5saW5lIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICB9XFxuICAucS10b29sYmFyLFxcbiAgLnEtYWN0aW9uc2hlZXQtdGl0bGUsXFxuICAucS1maWVsZC1sYWJlbC1pbm5lciB7XFxuICAgIGhlaWdodDogMHB4O1xcbiAgfVxcbiAgLnEtY2Fyb3VzZWwtc2xpZGUge1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICB9XFxuICAucm93ID4gLmNvbC5xLWFsZXJ0LWNvbnRlbnQge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogYXV0bztcXG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XFxuICB9XFxuICAucS1zbGlkZXItaGFuZGxlID4gLnEtY2hpcC5pbmxpbmUucm93IHtcXG4gICAgZGlzcGxheTogdGFibGU7XFxuICB9XFxuICBhLnEtYnRuOm5vdCgucS1idG4tcm91bmQpIHtcXG4gICAgaGVpZ2h0OiAwcHg7XFxuICB9XFxuICAucS1idG4gLnEtYnRuLWlubmVyIHtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IGF1dG87XFxuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xcbiAgfVxcbiAgLnEtYnRuOmFjdGl2ZSAucS1idG4taW5uZXIsXFxuICAucS1idG4uYWN0aXZlIC5xLWJ0bi1pbm5lciB7XFxuICAgIG1hcmdpbjogLTFweCAxcHggMXB4IC0xcHg7XFxuICB9XFxuICAucS1idG46YWN0aXZlLnEtYnRuLXB1c2ggLnEtYnRuLWlubmVyLFxcbiAgLnEtYnRuLmFjdGl2ZS5xLWJ0bi1wdXNoIC5xLWJ0bi1pbm5lciB7XFxuICAgIG1hcmdpbjogMXB4IDFweCAtMXB4IC0xcHg7XFxuICB9XFxuICAucS1idG46YWN0aXZlLnEtYnRuLXB1c2guZGlzYWJsZWQgLnEtYnRuLWlubmVyLFxcbiAgLnEtYnRuLmFjdGl2ZS5xLWJ0bi1wdXNoLmRpc2FibGVkIC5xLWJ0bi1pbm5lciB7XFxuICAgIG1hcmdpbjogLTFweCAxcHggMXB4IC0xcHg7XFxuICB9XFxuICAucS1idG4tZ3JvdXAgPiAucS1idG4ucS1idG4tcHVzaDpub3QoLmRpc2FibGVkKTphY3RpdmUgLnEtYnRuLWlubmVyLFxcbiAgLnEtYnRuLWdyb3VwID4gLnEtYnRuLnEtYnRuLXB1c2g6bm90KC5kaXNhYmxlZCkuYWN0aXZlIC5xLWJ0bi1pbm5lciB7XFxuICAgIG1hcmdpbjogMDtcXG4gIH1cXG4gIC5xLWNoaXA6bm90KC5xLWNoaXAtc21hbGwpOm5vdCgucS1jaGlwLWRlbnNlKSAucS1jaGlwLW1haW4ge1xcbiAgICBsaW5lLWhlaWdodDogMzJweDtcXG4gIH1cXG4gIC5xLWJ0biAucS1jaGlwIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgfVxcbiAgLnEtdGFiIC5xLWNoaXAgLnEtY2hpcC1tYWluIHtcXG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcXG4gIH1cXG4gIC5xLWZhYi1hY3Rpb25zLnEtZmFiLWxlZnQsXFxuICAucS1mYWItYWN0aW9ucy5xLWZhYi1yaWdodCB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgfVxcbiAgLnEtaXRlbS1tYWluIHtcXG4gICAgbWluLXdpZHRoOiAxcHg7XFxuICB9XFxuICAucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtaXRlbSB7XFxuICAgIHBhZGRpbmctbGVmdDogMDtcXG4gICAgcGFkZGluZy1yaWdodDogMDtcXG4gIH1cXG4gIC5xLW1vZGFsLWxheW91dCB7XFxuICAgIG1pbi1oZWlnaHQ6IDgwdmggIWltcG9ydGFudDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHdlYmtpdC1hdXRvZmlsbC1vbiB7XFxuICB0byB7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgICBjb2xvcjogI2ZmOTgwMDtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyB3ZWJraXQtYXV0b2ZpbGwtb24ge1xcbiAgdG8ge1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gICAgY29sb3I6ICNmZjk4MDA7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyB3ZWJraXQtYXV0b2ZpbGwtb2ZmIHtcXG4gIHRvIHtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgd2Via2l0LWF1dG9maWxsLW9mZiB7XFxuICB0byB7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1wcm9ncmVzcy1pbmRldGVybWluYXRlIHtcXG4gIDAlIHtcXG4gICAgbGVmdDogLTM1JTtcXG4gICAgcmlnaHQ6IDEwMCU7XFxuICB9XFxuICA2MCUge1xcbiAgICBsZWZ0OiAxMDAlO1xcbiAgICByaWdodDogLTkwJTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBsZWZ0OiAxMDAlO1xcbiAgICByaWdodDogLTkwJTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUge1xcbiAgMCUge1xcbiAgICBsZWZ0OiAtMzUlO1xcbiAgICByaWdodDogMTAwJTtcXG4gIH1cXG4gIDYwJSB7XFxuICAgIGxlZnQ6IDEwMCU7XFxuICAgIHJpZ2h0OiAtOTAlO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIGxlZnQ6IDEwMCU7XFxuICAgIHJpZ2h0OiAtOTAlO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1wcm9ncmVzcy1pbmRldGVybWluYXRlLXNob3J0IHtcXG4gIDAlIHtcXG4gICAgbGVmdDogLTIwMCU7XFxuICAgIHJpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgNjAlIHtcXG4gICAgbGVmdDogMTA3JTtcXG4gICAgcmlnaHQ6IC04JTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBsZWZ0OiAxMDclO1xcbiAgICByaWdodDogLTglO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZS1zaG9ydCB7XFxuICAwJSB7XFxuICAgIGxlZnQ6IC0yMDAlO1xcbiAgICByaWdodDogMTAwJTtcXG4gIH1cXG4gIDYwJSB7XFxuICAgIGxlZnQ6IDEwNyU7XFxuICAgIHJpZ2h0OiAtOCU7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgbGVmdDogMTA3JTtcXG4gICAgcmlnaHQ6IC04JTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtcHJvZ3Jlc3Mtc3RyaXBlcyB7XFxuICBmcm9tIHtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNDBweCAwO1xcbiAgfVxcbiAgdG8ge1xcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1wcm9ncmVzcy1zdHJpcGVzIHtcXG4gIGZyb20ge1xcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0MHB4IDA7XFxuICB9XFxuICB0byB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtbWF0LWRhc2gge1xcbiAgMCUge1xcbiAgICBzdHJva2UtZGFzaGFycmF5OiAxLCAyMDA7XFxuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xcbiAgfVxcbiAgNTAlIHtcXG4gICAgc3Ryb2tlLWRhc2hhcnJheTogODksIDIwMDtcXG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0zNXB4O1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDg5LCAyMDA7XFxuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtMTI0cHg7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1tYXQtZGFzaCB7XFxuICAwJSB7XFxuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDEsIDIwMDtcXG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XFxuICB9XFxuICA1MCUge1xcbiAgICBzdHJva2UtZGFzaGFycmF5OiA4OSwgMjAwO1xcbiAgICBzdHJva2UtZGFzaG9mZnNldDogLTM1cHg7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgc3Ryb2tlLWRhc2hhcnJheTogODksIDIwMDtcXG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0xMjRweDtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtaGlnaGxpZ2h0IHtcXG4gIDAlIHtcXG4gICAgYmFja2dyb3VuZDogI2NkZGMzOTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLWhpZ2hsaWdodCB7XFxuICAwJSB7XFxuICAgIGJhY2tncm91bmQ6ICNjZGRjMzk7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXJvdGF0ZSB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCkgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgMjUlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDUwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDc1JSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1yb3RhdGUge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCkgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDI1JSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICA1MCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICA3NSUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1ibGluayB7XFxuICB0byB7XFxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLWJsaW5rIHtcXG4gIHRvIHtcXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1zcGluIHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtc3BpbiB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM1OWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtcG9wIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xcbiAgfVxcbiAgNzAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMDcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNyk7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1wb3Age1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC43KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNyk7XFxuICB9XFxuICA3MCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wNyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA3KTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtZmFkZSB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLWZhZGUge1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXNjYWxlIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtc2NhbGUge1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC43KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNyk7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLWJvdW5jZSB7XFxuICAwJSwgMjAlLCA1MCUsIDgwJSwgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG4gIH1cXG4gIDQwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpO1xcbiAgfVxcbiAgNjAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1cHgpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1ib3VuY2Uge1xcbiAgMCUsIDIwJSwgNTAlLCA4MCUsIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxuICB9XFxuICA0MCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTtcXG4gIH1cXG4gIDYwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1cHgpO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1zaGFrZSB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgfVxcbiAgNTAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1zaGFrZSB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgfVxcbiAgNTAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXBvcHVwLWRvd24ge1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCkgc2NhbGVZKDAuMyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KSBzY2FsZVkoMC4zKTtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICB9XFxuICAzMCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtcG9wdXAtZG93biB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KSBzY2FsZVkoMC4zKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpIHNjYWxlWSgwLjMpO1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIH1cXG4gIDMwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXBvcHVwLXVwIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCkgc2NhbGVZKDAuMyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpIHNjYWxlWSgwLjMpO1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIH1cXG4gIDMwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1wb3B1cC11cCB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpIHNjYWxlWSgwLjMpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KSBzY2FsZVkoMC4zKTtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICB9XFxuICAzMCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1zbGlkZS1sZWZ0IHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTcwJSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03MCUpO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtc2xpZGUtbGVmdCB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03MCUpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNzAlKTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtc2xpZGUtcmlnaHQge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg3MCUpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg3MCUpO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtc2xpZGUtcmlnaHQge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg3MCUpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg3MCUpO1xcbiAgfVxcbn1cXG5cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9ub2RlX21vZHVsZXMvcXVhc2FyLWZyYW1ld29yay9kaXN0L3VtZC9xdWFzYXIubWF0LmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTs7OztFQUlFO0FBQ0Y7OztFQUdFLDJCQUEyQjtVQUNuQixtQkFBbUI7RUFDM0Isd0NBQXdDO0VBQ3hDLHFDQUFxQztBQUN2QztBQUNBOzs7RUFHRSxXQUFXO0VBQ1gsY0FBYztBQUNoQjtBQUNBOztFQUVFLFNBQVM7RUFDVCw4QkFBOEI7VUFDdEIsc0JBQXNCO0FBQ2hDO0FBQ0E7Ozs7RUFJRSx3QkFBd0I7RUFDeEIsK0NBQStDO0FBQ2pEO0FBQ0E7Ozs7Ozs7Ozs7OztFQVlFLGNBQWM7QUFDaEI7QUFDQTtFQUNFLGFBQWE7RUFDYixTQUFTO0FBQ1g7QUFDQTtFQUNFLG1CQUFtQjtFQUNuQiwwQkFBMEI7RUFDMUIseUNBQXlDO1VBQ2pDLGlDQUFpQztBQUMzQztBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBOzs7O0VBSUUsaUNBQWlDO0VBQ2pDLGNBQWM7QUFDaEI7QUFDQTtFQUNFLCtCQUErQjtVQUN2Qix1QkFBdUI7RUFDL0IsU0FBUztFQUNULGlCQUFpQjtBQUNuQjtBQUNBOzs7O0VBSUUsYUFBYTtFQUNiLFNBQVM7QUFDWDtBQUNBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7OztFQUdFLGlCQUFpQjtBQUNuQjtBQUNBOztFQUVFLFNBQVM7RUFDVCxVQUFVO0FBQ1o7QUFDQTs7RUFFRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLGNBQWM7QUFDaEI7QUFDQTtFQUNFLDZCQUE2QjtBQUMvQjtBQUNBOztFQUVFLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0UsY0FBYztFQUNkLHNCQUFzQjtFQUN0QixvQkFBb0I7RUFDcEIsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQixjQUFjO0FBQ2hCO0FBQ0E7O0VBRUUseUJBQXlCO0tBQ3RCLHNCQUFzQjtNQUNyQixxQkFBcUI7VUFDakIsaUJBQWlCO0VBQ3pCLGVBQWU7RUFDZixrQkFBa0I7RUFDbEIsMkJBQTJCO0VBQzNCLDJCQUEyQjtFQUMzQixvQkFBb0I7RUFDcEIseUJBQXlCO01BQ3JCLHNCQUFzQjtVQUNsQixtQkFBbUI7RUFDM0Isd0JBQXdCO01BQ3BCLHFCQUFxQjtVQUNqQix1QkFBdUI7RUFDL0Isc0JBQXNCO0FBQ3hCO0FBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsZUFBZTtFQUNmLFdBQVc7RUFDWCwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxpQkFBaUI7RUFDakIsbUNBQW1DO0VBQ25DLDJCQUEyQjtBQUM3QjtBQUNBOztFQUVFLG1CQUFtQjtFQUNuQixVQUFVO0FBQ1o7QUFDQTs7RUFFRSxlQUFlO0VBQ2Ysa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsWUFBWTtBQUNkO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSxlQUFlO0VBQ2YsYUFBYTtFQUNiLG1GQUFtRjtFQUNuRiwyRUFBMkU7RUFDM0UsbUVBQW1FO0VBQ25FLHNIQUFzSDtBQUN4SDtBQUNBO0VBQ0Usd0JBQXdCO0VBQ3hCLHlCQUF5QjtFQUN6QixNQUFNO0VBQ04sV0FBVztBQUNiO0FBQ0E7RUFDRSx3QkFBd0I7RUFDeEIseUJBQXlCO0VBQ3pCLFNBQVM7RUFDVCxXQUFXO0FBQ2I7QUFDQTtFQUNFLE1BQU07RUFDTixTQUFTO0VBQ1QsUUFBUTtFQUNSLFlBQVk7QUFDZDtBQUNBO0VBQ0UsTUFBTTtFQUNOLFNBQVM7RUFDVCxPQUFPO0VBQ1AsWUFBWTtBQUNkO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsd0JBQXdCO1VBQ2hCLGdCQUFnQjtBQUMxQjtBQUNBO0VBQ0UsV0FBVztFQUNYLFlBQVk7QUFDZDtBQUNBOztFQUVFLGFBQWE7RUFDYixlQUFlO0VBQ2Ysc0JBQXNCO0FBQ3hCO0FBQ0E7RUFDRSxlQUFlO0VBQ2YsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLGVBQWU7QUFDakI7QUFDQTs7RUFFRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLDhDQUE4QztVQUN0QyxzQ0FBc0M7QUFDaEQ7QUFDQTtFQUNFLFVBQVU7RUFDVixTQUFTO0VBQ1Qsc0JBQXNCO0VBQ3RCLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsZUFBZTtFQUNmLHFCQUFxQjtFQUNyQixjQUFjO0VBQ2QsdUJBQXVCO0VBQ3ZCLHdEQUF3RDtFQUN4RCxnREFBZ0Q7RUFDaEQsbUJBQW1CO0VBQ25CLDBHQUEwRztVQUNsRyxrR0FBa0c7RUFDMUcsZ0JBQWdCO0VBQ2hCLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsMEJBQTBCO0FBQzVCO0FBQ0E7RUFDRSwyQkFBMkI7RUFDM0IsMkJBQTJCO0VBQzNCLG9CQUFvQjtBQUN0QjtBQUNBOztFQUVFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZ0NBQWdDO0VBQ2hDLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0UsVUFBVTtBQUNaO0FBQ0E7RUFDRSxXQUFXO0FBQ2I7QUFDQTtFQUNFLHVCQUF1QjtBQUN6QjtBQUNBO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sUUFBUTtFQUNSLFNBQVM7RUFDVCxPQUFPO0VBQ1Asc0JBQXNCO0VBQ3RCLFdBQVc7RUFDWCx3REFBd0Q7RUFDeEQsZ0RBQWdEO0FBQ2xEO0FBQ0E7O0VBRUUsb0hBQW9IO1VBQzVHLDRHQUE0RztBQUN0SDtBQUNBO0VBQ0UsNEJBQTRCO0VBQzVCLG9CQUFvQjtFQUNwQixZQUFZO0VBQ1osa0NBQWtDO0FBQ3BDO0FBQ0E7RUFDRSwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSw4QkFBOEI7RUFDOUIsa0NBQWtDO0FBQ3BDO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIseUNBQXlDO0FBQzNDO0FBQ0E7O0VBRUUsd0JBQXdCO1VBQ2hCLGdCQUFnQjtFQUN4QixrQ0FBa0M7VUFDMUIsMEJBQTBCO0VBQ2xDLGdDQUFnQztBQUNsQztBQUNBOztFQUVFLFlBQVk7RUFDWixZQUFZO0FBQ2Q7QUFDQTtFQUNFLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLFVBQVU7RUFDVixhQUFhO0VBQ2IsV0FBVztFQUNYLFVBQVU7QUFDWjtBQUNBOztFQUVFLHdCQUF3QjtVQUNoQixnQkFBZ0I7QUFDMUI7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsYUFBYTtFQUNiLFlBQVk7QUFDZDtBQUNBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTs7RUFFRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiO0FBQ0E7RUFDRSxZQUFZO0VBQ1osV0FBVztBQUNiO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTs7RUFFRSx5Q0FBeUM7RUFDekMsaUNBQWlDO0FBQ25DO0FBQ0E7OztFQUdFLFVBQVU7QUFDWjtBQUNBO0VBQ0UsY0FBYztFQUNkLDRDQUE0QztBQUM5QztBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLDBHQUEwRztVQUNsRyxrR0FBa0c7RUFDMUcsc0JBQXNCO0FBQ3hCO0FBQ0E7RUFDRSx3QkFBd0I7VUFDaEIsZ0JBQWdCO0FBQzFCO0FBQ0E7RUFDRSwrQkFBK0I7RUFDL0Isa0NBQWtDO0FBQ3BDO0FBQ0E7RUFDRSxnQ0FBZ0M7RUFDaEMsbUNBQW1DO0FBQ3JDO0FBQ0E7RUFDRSxjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSwwQkFBMEI7RUFDMUIsNkJBQTZCO0FBQy9CO0FBQ0E7RUFDRSx5QkFBeUI7RUFDekIsNEJBQTRCO0FBQzlCO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLHdEQUF3RDtFQUN4RCxnREFBZ0Q7QUFDbEQ7QUFDQTs7RUFFRSxxQ0FBcUM7RUFDckMsZ0NBQWdDO1VBQ3hCLHdCQUF3QjtBQUNsQztBQUNBOztFQUVFLGtDQUFrQztVQUMxQiwwQkFBMEI7QUFDcEM7QUFDQTtFQUNFLG1CQUFtQjtBQUNyQjtBQUNBOztFQUVFLHdCQUF3QjtVQUNoQixnQkFBZ0I7QUFDMUI7QUFDQTtFQUNFLGNBQWM7QUFDaEI7QUFDQTtFQUNFLGVBQWU7QUFDakI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQiwwR0FBMEc7VUFDbEcsa0dBQWtHO0VBQzFHLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsK0JBQStCO0VBQy9CLGdDQUFnQztBQUNsQztBQUNBO0VBQ0Usa0NBQWtDO0VBQ2xDLG1DQUFtQztBQUNyQztBQUNBO0VBQ0UsU0FBUztBQUNYO0FBQ0E7RUFDRSwyQkFBMkI7RUFDM0IsV0FBVztBQUNiO0FBQ0E7RUFDRSxjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsc0JBQXNCO0VBQ3RCLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7O0VBRUUsZUFBZTtFQUNmLHNCQUFzQjtBQUN4QjtBQUNBOztFQUVFLGVBQWU7QUFDakI7QUFDQTtFQUNFLGVBQWU7QUFDakI7QUFDQTtFQUNFLGNBQWM7QUFDaEI7QUFDQTtFQUNFLFlBQVk7QUFDZDtBQUNBO0VBQ0UsY0FBYztBQUNoQjtBQUNBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGNBQWM7RUFDZCxXQUFXO0VBQ1gsZUFBZTtFQUNmLFNBQVM7QUFDWDtBQUNBO0VBQ0UsV0FBVztFQUNYLDRCQUE0QjtBQUM5QjtBQUNBO0VBQ0UsV0FBVztBQUNiO0FBQ0E7RUFDRSxpQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSw0QkFBNEI7QUFDOUI7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixZQUFZO0FBQ2Q7QUFDQTtFQUNFLG1CQUFtQjtNQUNmLGtCQUFrQjtVQUNkLGNBQWM7RUFDdEIsU0FBUztFQUNULGFBQWE7QUFDZjtBQUNBO0VBQ0UsVUFBVTtFQUNWLFNBQVM7RUFDVCxzQkFBc0I7RUFDdEIsb0JBQW9CO0VBQ3BCLG9CQUFvQjtFQUNwQixhQUFhO0VBQ2IscUJBQXFCO01BQ2pCLGlCQUFpQjtFQUNyQixZQUFZO0FBQ2Q7QUFDQTtFQUNFLCtCQUErQjtNQUMzQixxQkFBcUI7VUFDakIsWUFBWTtFQUNwQixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLCtCQUErQjtNQUMzQixvQkFBb0I7VUFDaEIsV0FBVztBQUNyQjtBQUNBOztFQUVFLFFBQVE7RUFDUixtQ0FBbUM7VUFDM0IsMkJBQTJCO0VBQ25DLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsU0FBUztBQUNYO0FBQ0E7RUFDRSxVQUFVO0FBQ1o7QUFDQTtFQUNFLGNBQWM7RUFDZCwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsWUFBWTtBQUNkO0FBQ0E7RUFDRSwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLHNCQUFzQjtFQUN0QiwwQ0FBMEM7RUFDMUMsa0NBQWtDO0VBQ2xDLDBCQUEwQjtFQUMxQixrREFBa0Q7RUFDbEQsbUNBQW1DO1VBQzNCLDJCQUEyQjtFQUNuQyxXQUFXO0VBQ1gsWUFBWTtFQUNaLGVBQWU7RUFDZixjQUFjO0VBQ2QsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZixrQkFBa0I7RUFDbEIsNEVBQTRFO1VBQ3BFLG9FQUFvRTtBQUM5RTtBQUNBO0VBQ0UsZ0NBQWdDO1VBQ3hCLHdCQUF3QjtBQUNsQztBQUNBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7RUFDWCxjQUFjO0VBQ2QsWUFBWTtFQUNaLG9CQUFvQjtFQUNwQixnQ0FBZ0M7RUFDaEMsd0JBQXdCO0VBQ3hCLGVBQWU7RUFDZixzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLG1CQUFtQjtNQUNmLG1CQUFtQjtVQUNmLGVBQWU7QUFDekI7QUFDQTs7RUFFRSxVQUFVO0VBQ1Ysa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSwyQkFBMkI7RUFDM0IsUUFBUTtFQUNSLFVBQVU7QUFDWjtBQUNBO0VBQ0UsVUFBVTtBQUNaO0FBQ0E7OztFQUdFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsY0FBYztBQUNoQjtBQUNBO0VBQ0UsY0FBYztFQUNkLGVBQWU7RUFDZixZQUFZO0VBQ1osYUFBYTtBQUNmO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsV0FBVztFQUNYLFlBQVk7QUFDZDtBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsY0FBYztFQUNkLDRCQUE0QjtBQUM5QjtBQUNBO0VBQ0UsV0FBVztFQUNYLGlDQUFpQztFQUNqQyxrQ0FBa0M7RUFDbEMscUNBQXFDO0FBQ3ZDO0FBQ0E7RUFDRSxXQUFXO0FBQ2I7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSw4QkFBOEI7RUFDOUIsOEJBQThCO01BQzFCLCtCQUErQjtVQUMzQiwyQkFBMkI7QUFDckM7QUFDQTtFQUNFLGNBQWM7RUFDZCw0QkFBNEI7QUFDOUI7QUFDQTtFQUNFLFVBQVU7RUFDVixnQ0FBZ0M7RUFDaEMsbUNBQW1DO0VBQ25DLHFDQUFxQztBQUN2QztBQUNBO0VBQ0UsV0FBVztBQUNiO0FBQ0E7RUFDRSx3QkFBd0I7RUFDeEIsWUFBWTtFQUNaLGdCQUFnQjtFQUNoQixzQkFBc0I7RUFDdEIsa0JBQWtCO0VBQ2xCLHVDQUF1QztVQUMvQiwrQkFBK0I7QUFDekM7QUFDQTtFQUNFLGVBQWU7QUFDakI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsY0FBYztBQUNoQjtBQUNBO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixTQUFTO0VBQ1QsUUFBUTtFQUNSLFNBQVM7QUFDWDtBQUNBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7RUFDWCxlQUFlO0VBQ2YsVUFBVTtBQUNaO0FBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsZUFBZTtFQUNmLGVBQWU7RUFDZixlQUFlO0VBQ2YsZUFBZTtFQUNmLG1CQUFtQjtFQUNuQixzQkFBc0I7RUFDdEIsV0FBVztFQUNYLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsWUFBWTtBQUNkO0FBQ0E7RUFDRSxlQUFlO0VBQ2YsY0FBYztBQUNoQjtBQUNBO0VBQ0Usb0JBQW9CO0VBQ3BCLG1CQUFtQjtNQUNmLGtCQUFrQjtVQUNkLGNBQWM7QUFDeEI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osV0FBVztFQUNYLGVBQWU7RUFDZixnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLFdBQVc7RUFDWCxZQUFZO0FBQ2Q7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxhQUFhO0VBQ2Isb0JBQW9CO0VBQ3BCLFVBQVU7QUFDWjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixRQUFRO0VBQ1IsWUFBWTtFQUNaLG9CQUFvQjtFQUNwQixnQkFBZ0I7RUFDaEIsYUFBYTtFQUNiLGNBQWM7RUFDZCxnREFBZ0Q7VUFDeEMsd0NBQXdDO0VBQ2hELGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLFVBQVU7QUFDWjtBQUNBO0VBQ0UsV0FBVztFQUNYLFdBQVc7RUFDWCxtQkFBbUI7RUFDbkIsV0FBVztFQUNYLFlBQVk7RUFDWixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsTUFBTTtFQUNOLFNBQVM7RUFDVCxrRUFBa0U7VUFDMUQsMERBQTBEO0FBQ3BFO0FBQ0E7RUFDRSxxQkFBcUI7QUFDdkI7QUFDQTtFQUNFLFdBQVc7RUFDWCxTQUFTO0VBQ1QsU0FBUztFQUNULGtFQUFrRTtVQUMxRCwwREFBMEQ7QUFDcEU7QUFDQTtFQUNFLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0UsUUFBUTtFQUNSLFVBQVU7RUFDVixZQUFZO0VBQ1osVUFBVTtFQUNWLGlFQUFpRTtVQUN6RCx5REFBeUQ7QUFDbkU7QUFDQTtFQUNFLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsUUFBUTtFQUNSLFNBQVM7RUFDVCxZQUFZO0VBQ1osV0FBVztFQUNYLGtFQUFrRTtVQUMxRCwwREFBMEQ7QUFDcEU7QUFDQTtFQUNFLDJCQUEyQjtFQUMzQixZQUFZO0VBQ1osY0FBYztFQUNkLHNCQUFzQjtFQUN0QiwwQkFBMEI7RUFDMUIsNkJBQTZCO0FBQy9CO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLFlBQVk7RUFDWixXQUFXO0VBQ1gsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsZUFBZTtFQUNmLGNBQWM7RUFDZCxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLFVBQVU7RUFDVixXQUFXO0FBQ2I7QUFDQTtFQUNFLFlBQVk7QUFDZDtBQUNBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7RUFDWCxlQUFlO0VBQ2YsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsaUJBQWlCO0VBQ2pCLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsV0FBVztBQUNiO0FBQ0E7RUFDRSwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxpQ0FBaUM7QUFDbkM7QUFDQTtFQUNFLGdDQUFnQztFQUNoQyx3QkFBd0I7QUFDMUI7QUFDQTtFQUNFLGVBQWU7QUFDakI7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSwwR0FBMEc7VUFDbEcsa0dBQWtHO0FBQzVHO0FBQ0E7O0VBRUUsY0FBYztBQUNoQjtBQUNBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLHlCQUF5QjtFQUN6QixxQkFBcUI7RUFDckIsV0FBVztFQUNYLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsV0FBVztFQUNYLGFBQWE7QUFDZjtBQUNBO0VBRUUsOEZBQWdFO0VBQWhFLGdFQUFnRTtBQUNsRTtBQUNBO0VBRUUsMEZBQXdEO0VBQXhELHdEQUF3RDtBQUMxRDtBQUNBO0VBQ0UsV0FBVztFQUNYLFlBQVk7RUFDWixvR0FBb0c7VUFDNUYsNEZBQTRGO0VBQ3BHLGtCQUFrQjtFQUNsQix3Q0FBd0M7VUFDaEMsZ0NBQWdDO0FBQzFDO0FBQ0E7O0VBRUUsb0VBQWtMO0FBQ3BMO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsV0FBVztFQUNYLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0Usa0JBQWtCO0VBRWxCLGtNQUEyRztFQUEzRywyR0FBMkc7RUFDM0csVUFBVTtFQUNWLFdBQVc7QUFDYjtBQUNBO0VBQ0UsVUFBVTtBQUNaO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLFVBQVU7RUFDVixXQUFXO0FBQ2I7QUFDQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsT0FBTztFQUNQLFFBQVE7RUFDUixNQUFNO0VBQ04sU0FBUztFQUVULGlHQUFnRTtFQUFoRSxnRUFBZ0U7QUFDbEU7QUFDQTtFQUNFLFVBQVU7QUFDWjtBQUNBO0VBQ0UsWUFBWTtBQUNkO0FBQ0E7RUFDRSxZQUFZO0FBQ2Q7QUFDQTtFQUNFLGdEQUFnRDtVQUN4Qyx3Q0FBd0M7QUFDbEQ7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0UsZUFBZTtFQUNmLGNBQWM7QUFDaEI7QUFDQTtFQUNFLHlCQUF5QjtFQUN6QixVQUFVO0FBQ1o7QUFDQTtFQUNFLGNBQWM7QUFDaEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGNBQWM7RUFDZCwyQkFBMkI7RUFDM0IseUJBQXlCO0VBQ3pCLHFDQUFxQztBQUN2QztBQUNBO0VBQ0UsY0FBYztFQUNkLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UseUJBQXlCO0VBQ3pCLHFDQUFxQztBQUN2QztBQUNBO0VBQ0UsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxlQUFlO0VBQ2Ysa0JBQWtCO0VBQ2xCLHlCQUF5QjtLQUN0QixzQkFBc0I7TUFDckIscUJBQXFCO1VBQ2pCLGlCQUFpQjtFQUN6QixvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7RUFDekIscUNBQXFDO0FBQ3ZDO0FBQ0E7RUFDRSx3QkFBd0I7QUFDMUI7QUFDQTtFQUNFLFdBQVc7RUFDWCxXQUFXO0FBQ2I7QUFDQTs7RUFFRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGlCQUFpQjtFQUNqQiwyQkFBMkI7RUFDM0IsY0FBYztBQUNoQjtBQUNBO0VBQ0UsZUFBZTtFQUNmLDRCQUE0QjtFQUM1QixjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxpQkFBaUI7RUFDakIsWUFBWTtBQUNkO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLGNBQWM7RUFDZCxXQUFXO0FBQ2I7QUFDQTtFQUNFLGFBQWE7RUFDYixpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLFlBQVk7QUFDZDtBQUNBO0VBQ0UsWUFBWTtBQUNkO0FBQ0E7RUFDRSxlQUFlO0VBQ2YscUJBQXFCO0VBQ3JCLFVBQVU7QUFDWjtBQUNBO0VBQ0UsVUFBVTtBQUNaO0FBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLCtCQUErQjtBQUNqQztBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYixjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxZQUFZO0VBQ1osYUFBYTtFQUNiLFdBQVc7QUFDYjtBQUNBOztFQUVFLFdBQVc7QUFDYjtBQUNBO0VBQ0UsZUFBZTtBQUNqQjtBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxZQUFZO0VBQ1osV0FBVztFQUNYLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsU0FBUztFQUNULFVBQVU7RUFDVixZQUFZO0VBQ1osYUFBYTtFQUNiLHVCQUF1QjtBQUN6QjtBQUNBO0VBQ0UsV0FBVztFQUNYLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gsWUFBWTtFQUNaLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0Usd0JBQXdCO0FBQzFCO0FBQ0E7RUFDRSxXQUFXO0FBQ2I7QUFDQTtFQUNFLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSxtQkFBbUI7QUFDckI7QUFDQTtFQUNFLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsaUJBQWlCO0VBQ2pCLGlCQUFpQjtFQUNqQixvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLFlBQVk7RUFDWixhQUFhO0VBQ2Isa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQixhQUFhO0FBQ2Y7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQiw4Q0FBOEM7VUFDdEMsc0NBQXNDO0FBQ2hEO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsVUFBVTtFQUNWLE1BQU07RUFDTixZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYixrQkFBa0I7RUFDbEIsT0FBTztFQUNQLFFBQVE7RUFDUixTQUFTO0VBQ1Qsd0JBQXdCO0FBQzFCO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsV0FBVztFQUNYLGNBQWM7RUFDZCxxREFBcUQ7VUFDN0MsNkNBQTZDO0VBQ3JELGFBQWE7RUFDYixrQkFBa0I7RUFDbEIsT0FBTztFQUNQLFFBQVE7RUFDUixTQUFTO0VBQ1Qsd0JBQXdCO0FBQzFCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLFVBQVU7RUFDVixXQUFXO0VBQ1gsWUFBWTtFQUNaLE9BQU87RUFDUCxZQUFZO0VBQ1osYUFBYTtFQUNiLHdDQUF3QztVQUNoQyxnQ0FBZ0M7RUFDeEMsd0JBQXdCO0FBQzFCO0FBQ0E7RUFDRSxjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxtQkFBbUI7RUFDbkIsK0JBQStCO0FBQ2pDO0FBQ0E7RUFDRSxjQUFjO0VBQ2QsMkJBQTJCO0FBQzdCO0FBQ0E7O0VBRUUsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxXQUFXO0FBQ2I7QUFDQTs7RUFFRSxXQUFXO0FBQ2I7QUFDQTs7RUFFRSxXQUFXO0FBQ2I7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsV0FBVztBQUNiO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxZQUFZO0VBQ1osZUFBZTtFQUNmLGlCQUFpQjtFQUNqQixTQUFTO0VBQ1QsVUFBVTtFQUNWLHlEQUF5RDtVQUNqRCxpREFBaUQ7RUFDekQsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxXQUFXO0FBQ2I7QUFDQTtFQUNFLFdBQVc7QUFDYjtBQUNBO0VBQ0Usd0JBQXdCO0FBQzFCO0FBQ0E7RUFDRSxXQUFXO0FBQ2I7QUFDQTtFQUNFLE9BQU87RUFDUCwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLFNBQVM7RUFDVCwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLFFBQVE7RUFDUiw0QkFBNEI7QUFDOUI7QUFDQTtFQUNFLFFBQVE7RUFDUiwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLFFBQVE7RUFDUiw0QkFBNEI7QUFDOUI7QUFDQTtFQUNFLFVBQVU7RUFDViwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLFNBQVM7RUFDVCwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLFVBQVU7RUFDViwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLFFBQVE7RUFDUiwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLFFBQVE7RUFDUix5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLFFBQVE7RUFDUiwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLFNBQVM7RUFDVCwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLE9BQU87RUFDUCwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLFNBQVM7RUFDVCwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLFFBQVE7RUFDUiw0QkFBNEI7QUFDOUI7QUFDQTtFQUNFLFFBQVE7RUFDUiwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLFFBQVE7RUFDUiw0QkFBNEI7QUFDOUI7QUFDQTtFQUNFLFVBQVU7RUFDViwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLFNBQVM7RUFDVCwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLFVBQVU7RUFDViwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLFFBQVE7RUFDUiwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLFFBQVE7RUFDUix5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLFFBQVE7RUFDUiwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLFNBQVM7RUFDVCwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLE9BQU87RUFDUCwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLFdBQVc7RUFDWCw0QkFBNEI7QUFDOUI7QUFDQTtFQUNFLFVBQVU7RUFDViw2QkFBNkI7QUFDL0I7QUFDQTtFQUNFLFFBQVE7RUFDUiwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLFVBQVU7RUFDViw2QkFBNkI7QUFDL0I7QUFDQTtFQUNFLFdBQVc7RUFDWCw0QkFBNEI7QUFDOUI7QUFDQTtFQUNFLFFBQVE7RUFDUiwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLFdBQVc7RUFDWCw0QkFBNEI7QUFDOUI7QUFDQTtFQUNFLFVBQVU7RUFDViw2QkFBNkI7QUFDL0I7QUFDQTtFQUNFLFFBQVE7RUFDUiwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLFVBQVU7RUFDViw2QkFBNkI7QUFDL0I7QUFDQTtFQUNFLFdBQVc7RUFDWCw0QkFBNEI7QUFDOUI7QUFDQTtFQUNFLFFBQVE7RUFDUiwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLDBCQUEwQjtFQUMxQiw2QkFBNkI7QUFDL0I7QUFDQTtFQUNFLHlCQUF5QjtFQUN6Qiw0QkFBNEI7QUFDOUI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0U7SUFDRSx1Q0FBdUM7SUFDdkMsd0NBQXdDO1FBQ3BDLHFDQUFxQztZQUNqQyxpQ0FBaUM7RUFDM0M7QUFDRjtBQUNBO0VBQ0U7SUFDRSxtQkFBbUI7UUFDZixrQkFBa0I7WUFDZCxjQUFjO0VBQ3hCO0VBQ0E7SUFDRSxtQkFBbUI7UUFDZixrQkFBa0I7WUFDZCxjQUFjO0VBQ3hCO0FBQ0Y7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixTQUFTO0VBQ1QsWUFBWTtFQUNaLFlBQVk7RUFDWixXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQixZQUFZO0FBQ2Q7QUFDQTtFQUNFLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLFVBQVU7RUFDVixhQUFhO0VBQ2IsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsU0FBUztFQUNULFVBQVU7RUFDVixXQUFXO0VBQ1gsV0FBVztFQUNYLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsWUFBWTtBQUNkO0FBQ0E7RUFDRSw2QkFBNkI7RUFDN0IsbUJBQW1CO0VBQ25CLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0Usd0JBQXdCO1VBQ2hCLGdCQUFnQjtBQUMxQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsT0FBTztFQUNQLE1BQU07RUFDTixTQUFTO0VBQ1QsWUFBWTtFQUNaLFVBQVU7RUFDVixnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGNBQWM7QUFDaEI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLFlBQVk7QUFDZDtBQUNBO0VBQ0UsVUFBVTtFQUNWLGtFQUFrRTtVQUMxRCwwREFBMEQ7RUFDbEUsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSw0Q0FBNEM7VUFDcEMsb0NBQW9DO0VBQzVDLFVBQVU7QUFDWjtBQUNBO0VBQ0UsMENBQTBDO1VBQ2xDLGtDQUFrQztFQUMxQyxVQUFVO0FBQ1o7QUFDQTs7RUFFRSx3REFBd0Q7RUFDeEQsZ0RBQWdEO0VBQ2hELHdDQUF3QztFQUN4QyxnRUFBZ0U7QUFDbEU7QUFDQTtFQUNFLFVBQVU7RUFDViwwQ0FBMEM7VUFDbEMsa0NBQWtDO0FBQzVDO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsNkNBQTZDO1VBQ3JDLHFDQUFxQztBQUMvQztBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLFVBQVU7RUFDVixvQ0FBb0M7RUFDcEMsNEJBQTRCO0VBQzVCLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0UsV0FBVztBQUNiO0FBQ0E7RUFDRSw0REFBNEQ7VUFDcEQsb0RBQW9EO0VBQzVELE1BQU07RUFDTixTQUFTO0VBQ1QsVUFBVTtBQUNaO0FBQ0E7RUFDRSwyREFBMkQ7VUFDbkQsbURBQW1EO0VBQzNELE1BQU07RUFDTixTQUFTO0VBQ1QsV0FBVztFQUNYLDhCQUE4QjtFQUM5Qiw4QkFBOEI7TUFDMUIsK0JBQStCO1VBQzNCLDJCQUEyQjtBQUNyQztBQUNBO0VBQ0UsMkRBQTJEO1VBQ25ELG1EQUFtRDtFQUMzRCw0QkFBNEI7RUFDNUIsOEJBQThCO01BQzFCLGtDQUFrQztVQUM5Qiw4QkFBOEI7RUFDdEMsd0JBQXdCO01BQ3BCLHFCQUFxQjtVQUNqQix1QkFBdUI7RUFDL0IsWUFBWTtFQUNaLE9BQU87RUFDUCxRQUFRO0FBQ1Y7QUFDQTtFQUNFLDREQUE0RDtVQUNwRCxvREFBb0Q7RUFDNUQsNEJBQTRCO0VBQzVCLDZCQUE2QjtNQUN6QiwwQkFBMEI7VUFDdEIsc0JBQXNCO0VBQzlCLHdCQUF3QjtNQUNwQixxQkFBcUI7VUFDakIsdUJBQXVCO0VBQy9CLFNBQVM7RUFDVCxPQUFPO0VBQ1AsUUFBUTtBQUNWO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsWUFBWTtFQUNaLGVBQWU7RUFDZixlQUFlO0VBQ2Ysa0JBQWtCO0VBQ2xCLGNBQWM7QUFDaEI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxlQUFlO0VBQ2Ysc0NBQXNDO0FBQ3hDO0FBQ0E7RUFDRSxjQUFjO0VBQ2QsaUJBQWlCO0FBQ25CO0FBQ0E7Ozs7RUFJRSxjQUFjO0FBQ2hCO0FBQ0E7RUFDRSw2QkFBNkI7QUFDL0I7QUFDQTs7O0VBR0UsY0FBYztFQUNkLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsNkJBQTZCO0VBQzdCLDZDQUE2QztBQUMvQztBQUNBOzs7RUFHRSxjQUFjO0VBQ2QsNkJBQTZCO0FBQy9CO0FBQ0E7RUFDRSw2QkFBNkI7RUFDN0IsNENBQTRDO0FBQzlDO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWU7QUFDakI7QUFDQTtFQUNFLGVBQWU7QUFDakI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsY0FBYztBQUNoQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLGNBQWM7QUFDaEI7QUFDQTtFQUNFLGVBQWU7QUFDakI7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0U7SUFDRSxhQUFhO0VBQ2Y7RUFDQTtJQUNFLGNBQWM7RUFDaEI7RUFDQTtJQUNFLGVBQWU7RUFDakI7RUFDQTtJQUNFLGFBQWE7RUFDZjtBQUNGO0FBQ0E7RUFDRSxpQ0FBaUM7QUFDbkM7QUFDQTtFQUNFLDJCQUEyQjtBQUM3QjtBQUNBOzs7Ozs7OztFQVFFLDJFQUEyRTtFQUMzRSxtRUFBbUU7QUFDckU7QUFDQTs7OztFQUlFLGFBQWE7QUFDZjtBQUNBO0VBQ0UsaUJBQWlCO0VBQ2pCLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsZUFBZTtFQUNmLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7O0VBRUUsa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7RUFDUiwrQkFBK0I7RUFDL0IsMEJBQTBCO0VBQzFCLHVCQUF1QjtFQUN2QixvQkFBb0I7RUFDcEIsV0FBVztBQUNiO0FBQ0E7RUFDRSxjQUFjO0VBQ2QsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSxlQUFlO0VBQ2YseUNBQXlDO1VBQ2pDLGlDQUFpQztFQUN6Qyw0QkFBNEI7VUFDcEIsb0JBQW9CO0FBQzlCO0FBQ0E7O0VBRUUsV0FBVztBQUNiO0FBQ0E7O0VBRUUsV0FBVztBQUNiO0FBQ0E7RUFDRSxpQkFBaUI7RUFDakIsNEJBQTRCO1VBQ3BCLG9CQUFvQjtFQUM1QixtSUFBbUk7RUFDbkksMkhBQTJIO0VBQzNILG1IQUFtSDtFQUNuSCwyS0FBMks7QUFDN0s7QUFDQTtFQUNFLFVBQVU7RUFDVix5QkFBeUI7TUFDckIsc0JBQXNCO1VBQ2xCLG1CQUFtQjtFQUMzQixlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsY0FBYztFQUNkLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7O0VBRUUsa0JBQWtCO0VBQ2xCLE9BQU87RUFDUCxrQ0FBa0M7VUFDMUIsMEJBQTBCO0VBQ2xDLGtDQUFrQztVQUMxQiwwQkFBMEI7QUFDcEM7QUFDQTs7RUFFRSxrQkFBa0I7RUFDbEIsc0NBQXNDO1VBQzlCLDhCQUE4QjtFQUN0QyxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLDBHQUEwRztVQUNsRyxrR0FBa0c7RUFDMUcsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxRQUFRO0VBQ1Isc0NBQXNDO1VBQzlCLDhCQUE4QjtBQUN4QztBQUNBO0VBQ0UsUUFBUTtFQUNSLHNDQUFzQztVQUM5Qiw4QkFBOEI7QUFDeEM7QUFDQTtFQUNFLGNBQWM7QUFDaEI7QUFDQTs7O0VBR0UsbUJBQW1CO0FBQ3JCO0FBQ0E7OztFQUdFLGNBQWM7RUFDZCw2QkFBNkI7QUFDL0I7QUFDQTtFQUNFLGNBQWM7RUFDZCwrQkFBK0I7QUFDakM7QUFDQTs7O0VBR0UsY0FBYztFQUNkLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsY0FBYztFQUNkLGdDQUFnQztBQUNsQztBQUNBO0VBQ0UsbUJBQW1CO0VBQ25CLFlBQVk7QUFDZDtBQUNBOzs7O0VBSUUsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxXQUFXO0FBQ2I7QUFDQTtFQUNFLFVBQVU7RUFDVixlQUFlO0FBQ2pCO0FBQ0E7OztFQUdFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsZUFBZTtFQUNmLFdBQVc7RUFDWCxZQUFZO0VBQ1osZUFBZTtBQUNqQjtBQUNBOzs7RUFHRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLFlBQVk7QUFDZDtBQUNBO0VBQ0UsaUJBQWlCO0VBQ2pCLFFBQVE7RUFDUixrQkFBa0I7QUFDcEI7QUFDQTs7O0VBR0Usb0JBQW9CO0VBQ3BCLHlCQUF5QjtLQUN0QixzQkFBc0I7TUFDckIscUJBQXFCO1VBQ2pCLGlCQUFpQjtBQUMzQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsWUFBWTtFQUNaLGVBQWU7RUFDZixnQkFBZ0I7QUFDbEI7QUFDQTs7O0VBR0UsY0FBYztFQUNkLGlCQUFpQjtBQUNuQjtBQUNBOzs7RUFHRSxXQUFXO0FBQ2I7QUFDQTs7O0VBR0UsY0FBYztBQUNoQjtBQUNBO0VBQ0UsVUFBVTtFQUNWLGVBQWU7QUFDakI7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLFVBQVU7QUFDWjtBQUNBOztFQUVFLFNBQVM7RUFDVCxVQUFVO0VBQ1YsVUFBVTtFQUNWLHVCQUF1QjtFQUN2QixpQkFBaUI7RUFDakIsa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixvQkFBb0I7RUFDcEIsb0JBQW9CO0VBQ3BCLGFBQWE7RUFDYix5QkFBeUI7TUFDckIsc0JBQXNCO1VBQ2xCLG1CQUFtQjtFQUMzQixXQUFXO0FBQ2I7QUFDQTtFQUNFLDBDQUEwQztFQUMxQyxpQ0FBaUM7QUFDbkM7QUFDQTtFQUNFLDJDQUEyQztFQUMzQyxpQ0FBaUM7QUFDbkM7QUFDQTs7RUFFRSxhQUFhO0VBQ2IsUUFBUTtFQUNSLFNBQVM7QUFDWDtBQUNBO0VBQ0UsMkJBQTJCO1VBQ25CLG1CQUFtQjtBQUM3QjtBQUNBO0VBQ0UsWUFBWTtFQUNaLGlCQUFpQjtFQUNqQixRQUFRO0VBQ1Isa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxzQkFBc0I7RUFDdEIsWUFBWTtFQUNaLFVBQVU7RUFDVixxQkFBcUI7RUFDckIsd0JBQXdCO0FBQzFCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0Usc0JBQXNCO0FBQ3hCO0FBQ0E7RUFDRSxzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0Usc0JBQXNCO0FBQ3hCO0FBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLG9CQUFvQjtFQUNwQixZQUFZO0VBQ1osc0JBQXNCO0FBQ3hCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixzQkFBc0I7RUFDdEIsNEJBQTRCO0VBQzVCLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0UsV0FBVztFQUNYLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0Usa0NBQWtDO0FBQ3BDO0FBQ0E7RUFDRTtJQUNFLGtCQUFrQjtFQUNwQjtBQUNGO0FBQ0E7O0VBRUUsa0JBQWtCO0VBQ2xCLHFCQUFxQjtBQUN2QjtBQUNBO0VBQ0UsV0FBVztFQUNYLFlBQVk7QUFDZDtBQUNBO0VBQ0UsV0FBVztFQUNYLG9CQUFvQjtFQUNwQixrQkFBa0I7RUFDbEIsT0FBTztFQUNQLFFBQVE7RUFDUixNQUFNO0VBQ04sU0FBUztBQUNYO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLHVDQUF1QztVQUMvQiwrQkFBK0I7QUFDekM7QUFDQTtFQUNFLGFBQWE7RUFDYixnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLDBHQUEwRztVQUNsRyxrR0FBa0c7QUFDNUc7QUFDQTtFQUNFLG9DQUFvQztVQUM1Qiw0QkFBNEI7QUFDdEM7QUFDQTtFQUNFLDZHQUE2RztVQUNyRyxxR0FBcUc7QUFDL0c7QUFDQTtFQUNFLG1DQUFtQztVQUMzQiwyQkFBMkI7QUFDckM7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sU0FBUztFQUNULGdCQUFnQjtFQUNoQixhQUFhO0FBQ2Y7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0UsMkdBQTJHO1VBQ25HLG1HQUFtRztBQUM3RztBQUNBO0VBQ0UsT0FBTztFQUNQLG9DQUFvQztVQUM1Qiw0QkFBNEI7QUFDdEM7QUFDQTtFQUNFLFFBQVE7RUFDUixtQ0FBbUM7VUFDM0IsMkJBQTJCO0FBQ3JDO0FBQ0E7Ozs7RUFJRSxrQkFBa0I7QUFDcEI7QUFDQTs7RUFFRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLHdCQUF3QjtFQUN4Qiw2QkFBNkI7QUFDL0I7QUFDQTtFQUNFLHFCQUFxQjtBQUN2QjtBQUNBOztFQUVFLGtCQUFrQjtFQUNsQix3QkFBd0I7TUFDcEIscUJBQXFCO1VBQ2pCLHVCQUF1QjtBQUNqQztBQUNBOzs7OztFQUtFLGFBQWE7QUFDZjtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7O0VBRUUsYUFBYTtBQUNmO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsWUFBWTtFQUNaLFdBQVc7RUFDWCx5QkFBeUI7S0FDdEIsc0JBQXNCO01BQ3JCLHFCQUFxQjtVQUNqQixpQkFBaUI7QUFDM0I7QUFDQTtFQUNFLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7Ozs7RUFJRSxpQkFBaUI7RUFDakIsZ0JBQWdCO0FBQ2xCO0FBQ0E7Ozs7RUFJRSxxQ0FBcUM7QUFDdkM7QUFDQTs7OztFQUlFLDJDQUEyQztFQUMzQyxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGdEQUFnRDtFQUNoRCx3Q0FBd0M7QUFDMUM7QUFDQTtFQUNFLDZCQUE2QjtBQUMvQjtBQUNBO0VBQ0U7SUFDRSxzQkFBc0I7RUFDeEI7RUFDQTtJQUNFLGlCQUFpQjtFQUNuQjtBQUNGO0FBQ0E7RUFDRTtJQUNFLG9CQUFvQjtJQUNwQixZQUFZO0VBQ2Q7RUFDQTtJQUNFLGVBQWU7RUFDakI7QUFDRjtBQUNBO0VBQ0U7SUFDRSxvQkFBb0I7SUFDcEIsWUFBWTtFQUNkO0VBQ0E7SUFDRSxlQUFlO0VBQ2pCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0Usa0JBQWtCO0lBQ2xCLFlBQVk7RUFDZDtFQUNBO0lBQ0UsZUFBZTtFQUNqQjtBQUNGO0FBQ0E7RUFDRSxpQkFBaUI7RUFDakIsbUJBQW1CO0VBQ25CLG1CQUFtQjtFQUNuQixnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGNBQWM7RUFDZCxtQkFBbUI7TUFDZixrQkFBa0I7VUFDZCxjQUFjO0VBQ3RCLGVBQWU7QUFDakI7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBOztFQUVFLFdBQVc7RUFDWCxZQUFZO0VBQ1osa0JBQWtCO0FBQ3BCO0FBQ0E7O0VBRUUsZUFBZTtBQUNqQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxtQkFBbUI7RUFDbkIsWUFBWTtFQUNaLFdBQVc7QUFDYjtBQUNBOztFQUVFLGVBQWU7QUFDakI7QUFDQTtFQUNFLG1CQUFtQjtNQUNmLGtCQUFrQjtVQUNkLGNBQWM7RUFDdEIsWUFBWTtBQUNkO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsY0FBYztBQUNoQjtBQUNBO0VBQ0UsY0FBYztFQUNkLGNBQWM7RUFDZCxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsb0JBQW9CO0VBQ3BCLG9CQUFvQjtFQUNwQixhQUFhO0VBQ2IseUJBQXlCO01BQ3JCLHNCQUFzQjtVQUNsQixtQkFBbUI7RUFDM0IsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsZ0JBQWdCO0FBQ2xCO0FBQ0E7OztFQUdFLGlDQUFpQztBQUNuQztBQUNBO0VBQ0UsVUFBVTtBQUNaO0FBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtBQUNuQjtBQUNBOztFQUVFLHdCQUF3QjtNQUNwQixxQkFBcUI7VUFDakIsdUJBQXVCO0FBQ2pDO0FBQ0E7O0VBRUUsZUFBZTtBQUNqQjtBQUNBOzs7O0VBSUUsaUNBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsNkJBQTZCO0FBQy9CO0FBQ0E7O0VBRUUsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sUUFBUTtFQUNSLFVBQVU7RUFDVixXQUFXO0VBQ1gsbUJBQW1CO0FBQ3JCO0FBQ0E7O0VBRUUsaUJBQWlCO0VBQ2pCLGVBQWU7QUFDakI7QUFDQTs7RUFFRSxvQkFBb0I7RUFDcEIsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSx3Q0FBd0M7QUFDMUM7QUFDQTtFQUNFLHdDQUF3QztBQUMxQztBQUNBO0VBQ0UseUJBQXlCO0VBQ3pCLGNBQWM7QUFDaEI7QUFDQTtFQUNFLGFBQWE7RUFDYixXQUFXO0VBQ1gsU0FBUztFQUNULHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsY0FBYztFQUNkLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBOztFQUVFLFdBQVc7QUFDYjtBQUNBOztFQUVFLFdBQVc7RUFDWCxnQkFBZ0I7QUFDbEI7QUFDQTs7OztFQUlFLGNBQWM7QUFDaEI7QUFDQTs7RUFFRSxXQUFXO0FBQ2I7QUFDQTs7Ozs7O0VBTUUsaUNBQWlDO0FBQ25DO0FBQ0E7RUFDRSx3Q0FBd0M7QUFDMUM7QUFDQTs7RUFFRSw0Q0FBNEM7QUFDOUM7QUFDQTs7RUFFRSxrQ0FBa0M7QUFDcEM7QUFDQTtFQUNFLHdDQUF3QztBQUMxQztBQUNBO0VBQ0Usd0NBQXdDO0FBQzFDO0FBQ0E7RUFDRSx3Q0FBd0M7QUFDMUM7QUFDQTtFQUNFLDZCQUE2QjtBQUMvQjtBQUNBOzs7O0VBSUUsaUNBQWlDO0FBQ25DO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsbUJBQW1CO0VBQ25CLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQiwwR0FBMEc7VUFDbEcsa0dBQWtHO0VBQzFHLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsNEJBQTRCO0VBQzVCLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsbUNBQW1DO0VBQ25DLFVBQVU7QUFDWjtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSxlQUFlO0VBQ2YsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsWUFBWTtFQUNaLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSw0QkFBNEI7QUFDOUI7QUFDQTs7RUFFRSxVQUFVO0FBQ1o7QUFDQTtFQUNFO0lBQ0UsNkJBQTZCO1lBQ3JCLHFCQUFxQjtFQUMvQjtFQUNBO0lBQ0UsNkJBQTZCO1lBQ3JCLHFCQUFxQjtFQUMvQjtFQUNBOztJQUVFLGtDQUFrQztZQUMxQiwwQkFBMEI7RUFDcEM7QUFDRjtBQUNBO0VBQ0U7SUFDRSxnQkFBZ0I7RUFDbEI7RUFDQTtJQUNFLFdBQVc7SUFDWCxZQUFZO0lBQ1osZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixnQkFBZ0I7RUFDbEI7RUFDQTtJQUNFLDRCQUE0QjtFQUM5QjtFQUNBOztJQUVFLGtDQUFrQztZQUMxQiwwQkFBMEI7RUFDcEM7RUFDQTtJQUNFLDZCQUE2QjtZQUNyQixxQkFBcUI7RUFDL0I7RUFDQTtJQUNFLDZCQUE2QjtZQUNyQixxQkFBcUI7RUFDL0I7QUFDRjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7O0VBRUUsd0NBQXdDO0VBQ3hDLGdDQUFnQztBQUNsQztBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLDRCQUE0QjtFQUM1QixpQkFBaUI7RUFDakIsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsc0JBQXNCO0FBQ3hCO0FBQ0E7OztFQUdFLGNBQWM7RUFDZCxpQ0FBaUM7RUFDakMsNEJBQTRCO0FBQzlCO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxxQkFBcUI7RUFDckIscUJBQXFCO01BQ2pCLGtCQUFrQjtVQUNkLHlCQUF5QjtFQUNqQyxjQUFjO0VBQ2QsNkJBQTZCO0FBQy9CO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLHNCQUFzQjtNQUNsQixtQkFBbUI7VUFDZixxQkFBcUI7QUFDL0I7QUFDQTtFQUNFLGVBQWU7QUFDakI7QUFDQTs7RUFFRSxVQUFVO0FBQ1o7QUFDQTs7RUFFRSxrQ0FBa0M7VUFDMUIsMEJBQTBCO0FBQ3BDO0FBQ0E7O0VBRUUsVUFBVTtBQUNaO0FBQ0E7O0VBRUUsbUNBQW1DO1VBQzNCLDJCQUEyQjtBQUNyQztBQUNBOztFQUVFLFVBQVU7QUFDWjtBQUNBOztFQUVFLGtDQUFrQztVQUMxQiwwQkFBMEI7QUFDcEM7QUFDQTs7RUFFRSxVQUFVO0FBQ1o7QUFDQTs7RUFFRSxtQ0FBbUM7VUFDM0IsMkJBQTJCO0FBQ3JDO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLG9CQUFvQjtFQUNwQixPQUFPO0VBQ1AsUUFBUTtFQUNSLG1CQUFtQjtFQUNuQixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLE1BQU07RUFDTixTQUFTO0FBQ1g7QUFDQTtFQUNFLE1BQU07QUFDUjtBQUNBO0VBQ0UsU0FBUztBQUNYO0FBQ0E7O0VBRUUsNkJBQTZCO0FBQy9CO0FBQ0E7O0VBRUUsbUNBQW1DO0FBQ3JDO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLHFCQUFxQjtFQUNyQixtQkFBbUI7RUFDbkIsdURBQXVEO0VBQ3ZELCtDQUErQztFQUMvQyx1Q0FBdUM7RUFDdkMsMERBQTBEO0VBQzFELCtCQUErQjtVQUN2Qix1QkFBdUI7RUFDL0IsYUFBYTtFQUNiLGVBQWU7QUFDakI7QUFDQTs7Ozs7O0VBTUUsVUFBVTtFQUNWLG9DQUFvQztVQUM1Qiw0QkFBNEI7RUFDcEMsYUFBYTtBQUNmO0FBQ0E7Ozs7Ozs7Ozs7OztFQVlFLFVBQVU7RUFDVixtQ0FBbUM7VUFDM0IsMkJBQTJCO0VBQ25DLGFBQWE7QUFDZjtBQUNBOzs7Ozs7Ozs7RUFTRSxrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLGNBQWM7RUFDZCxlQUFlO0FBQ2pCO0FBQ0E7O0VBRUUsTUFBTTtBQUNSO0FBQ0E7OztFQUdFLFNBQVM7QUFDWDtBQUNBO0VBQ0UscUJBQXFCO0VBQ3JCLGNBQWM7QUFDaEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0Usc0JBQXNCO0FBQ3hCO0FBQ0E7RUFDRSx3QkFBd0I7QUFDMUI7QUFDQTtFQUNFLGlCQUFpQjtFQUNqQixjQUFjO0FBQ2hCO0FBQ0E7RUFDRSwyQkFBMkI7RUFDM0IsMkJBQTJCO0VBQzNCLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0UsWUFBWTtFQUNaLGNBQWM7QUFDaEI7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsV0FBVztFQUNYLGdCQUFnQjtFQUNoQixzQkFBc0I7QUFDeEI7QUFDQTs7RUFFRSxrQkFBa0I7RUFDbEIsU0FBUztFQUNULFNBQVM7RUFDVCxlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxlQUFlO0VBQ2YsMEdBQTBHO1VBQ2xHLGtHQUFrRztFQUMxRyxrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYixnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixVQUFVO0FBQ1o7QUFDQTtFQUNFLFlBQVk7QUFDZDtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsV0FBVztFQUNYLGNBQWM7RUFDZCxXQUFXO0VBQ1gsNEJBQTRCO0VBQzVCLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0Usd0JBQXdCO0FBQzFCO0FBQ0E7RUFDRSx3REFBd0Q7VUFDaEQsZ0RBQWdEO0FBQzFEO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLFNBQVM7RUFDVCxxQ0FBcUM7RUFDckMsNkJBQTZCO0FBQy9CO0FBQ0E7O0VBRUUsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsTUFBTTtFQUNOLE9BQU87RUFDUCxTQUFTO0VBQ1Qsd0JBQXdCO0FBQzFCO0FBQ0E7RUFDRSxpR0FBaUc7VUFDekYseUZBQXlGO0FBQ25HO0FBQ0E7RUFDRSxrR0FBa0c7VUFDMUYsMEZBQTBGO0VBQ2xHLDhCQUE4QjtVQUN0QixzQkFBc0I7QUFDaEM7QUFDQTs7O0VBR0UsdU1BQXVNO0VBQ3ZNLHFDQUFxQztBQUN2QztBQUNBO0VBQ0UsTUFBTTtFQUNOLE9BQU87RUFDUCxTQUFTO0VBQ1QscUNBQXFDO0VBQ3JDLDZCQUE2QjtBQUMvQjtBQUNBO0VBQ0UsUUFBUTtFQUNSLG1DQUFtQztVQUMzQiwyQkFBMkI7RUFDbkMsV0FBVztFQUNYLFFBQVE7RUFDUixxQ0FBcUM7RUFDckMsNkJBQTZCO0VBQzdCLHFEQUF1bUI7VUFDL2xCLDZDQUErbEI7QUFDem1CO0FBQ0E7O0VBRUUsd0JBQXdCO0VBQ3hCLFlBQVk7RUFDWixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsWUFBWTtFQUNaLGVBQWU7QUFDakI7QUFDQTtFQUNFLGVBQWU7RUFDZixrQkFBa0I7RUFDbEIsNEJBQTRCO0VBQzVCLG9CQUFvQjtBQUN0QjtBQUNBOzs7RUFHRSxZQUFZO0VBQ1osV0FBVztFQUNYLGVBQWU7RUFDZixlQUFlO0VBQ2YsMEVBQTBFO0VBQzFFLGtFQUFrRTtFQUNsRSwwREFBMEQ7RUFDMUQsa0hBQWtIO0VBQ2xILFVBQVU7QUFDWjtBQUNBO0VBQ0UsVUFBVTtBQUNaO0FBQ0E7RUFDRSxtQ0FBbUM7VUFDM0IsMkJBQTJCO0VBQ25DLDJCQUEyQjtVQUNuQixtQkFBbUI7QUFDN0I7QUFDQTtFQUNFLFVBQVU7QUFDWjtBQUNBO0VBQ0UsMkJBQTJCO1VBQ25CLG1CQUFtQjtBQUM3QjtBQUNBO0VBQ0UsY0FBYztFQUNkLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0Usb0JBQW9CO0VBQ3BCLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsbUJBQW1CO0VBQ25CLG1FQUFtRTtFQUNuRSxrQkFBa0I7RUFDbEIsZUFBZTtFQUNmLFlBQVk7RUFDWixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLDZCQUE2QjtVQUNyQixxQkFBcUI7QUFDL0I7QUFDQTtFQUNFLFlBQVk7QUFDZDtBQUNBO0VBQ0UsVUFBVTtBQUNaO0FBQ0E7RUFDRSxtQkFBbUI7QUFDckI7QUFDQTtFQUNFLGVBQWU7QUFDakI7QUFDQTs7RUFFRSxVQUFVO0FBQ1o7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixXQUFXO0VBQ1gsUUFBUTtFQUNSLFlBQVk7RUFDWixnQ0FBZ0M7RUFDaEMsd0JBQXdCO0FBQzFCO0FBQ0E7RUFDRSxxQkFBcUI7QUFDdkI7QUFDQTtFQUNFLFlBQVk7QUFDZDtBQUNBO0VBQ0UsWUFBWTtBQUNkO0FBQ0E7RUFDRSxrQ0FBa0M7QUFDcEM7QUFDQTs7RUFFRSxZQUFZO0VBQ1osd0JBQXdCO0FBQzFCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsUUFBUTtFQUNSLE9BQU87RUFDUCxtQ0FBbUM7VUFDM0IsMkJBQTJCO0VBQ25DLFdBQVc7RUFDWCxXQUFXO0FBQ2I7QUFDQTtFQUNFLGlDQUFpQztFQUNqQyx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLFVBQVU7QUFDWjtBQUNBO0VBQ0UsV0FBVztFQUNYLG9DQUFvQztFQUNwQyw0QkFBNEI7QUFDOUI7QUFDQTtFQUNFLHVCQUF1QjtBQUN6QjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLFFBQVE7RUFDUixZQUFZO0VBQ1osVUFBVTtFQUNWLG9EQUFvRDtVQUM1Qyw0Q0FBNEM7QUFDdEQ7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsTUFBTTtFQUNOLFNBQVM7RUFDVCxVQUFVO0VBQ1YsMERBQTBEO1VBQ2xELGtEQUFrRDtFQUMxRCw0QkFBNEI7RUFDNUIsb0JBQW9CO0VBQ3BCLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsVUFBVTtFQUNWLDhEQUE4RDtVQUN0RCxzREFBc0Q7QUFDaEU7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixRQUFRO0VBQ1IsNkNBQTZDO1VBQ3JDLHFDQUFxQztFQUM3QyxnQ0FBZ0M7VUFDeEIsd0JBQXdCO0VBQ2hDLGlDQUFpQztFQUNqQyx5QkFBeUI7RUFDekIsV0FBVztFQUNYLFlBQVk7RUFDWixVQUFVO0VBQ1Ysd0JBQXdCO0FBQzFCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLHdEQUF3RDtVQUNoRCxnREFBZ0Q7RUFDeEQsa0VBQWtFO0VBQ2xFLDBEQUEwRDtFQUMxRCxrREFBa0Q7RUFDbEQsK0VBQStFO0FBQ2pGO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsOERBQThEO1VBQ3RELHNEQUFzRDtBQUNoRTtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixRQUFRO0VBQ1IsU0FBUztFQUNULE9BQU87RUFDUCx1QkFBdUI7RUFDdkIsc0JBQXNCO0VBQ3RCLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxVQUFVO0VBQ1YsV0FBVztFQUNYLFlBQVk7RUFDWixzQkFBc0I7RUFDdEIsb0JBQW9CO0VBQ3BCLFVBQVU7RUFDViwyQkFBMkI7VUFDbkIsbUJBQW1CO0VBQzNCLG9DQUFvQztFQUNwQyw0QkFBNEI7RUFDNUIsd0JBQXdCO0FBQzFCO0FBQ0E7OztFQUdFLFlBQVk7RUFDWiwyQkFBMkI7VUFDbkIsbUJBQW1CO0FBQzdCO0FBQ0E7RUFDRSxzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7RUFDWCxjQUFjO0VBQ2QsNkJBQTZCO0VBQzdCLGVBQWU7QUFDakI7QUFDQTs7RUFFRSxtQkFBbUI7RUFDbkIsWUFBWTtBQUNkO0FBQ0E7RUFDRSxjQUFjO0VBQ2QsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSxjQUFjO0VBQ2QsNkJBQTZCO0FBQy9CO0FBQ0E7RUFDRSxzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLDZEQUE2RDtVQUNyRCxxREFBcUQ7RUFDN0Qsd0RBQXdEO1VBQ2hELGdEQUFnRDtBQUMxRDtBQUNBO0VBQ0Usd0JBQXdCO0VBQ3hCLG9CQUFvQjtFQUNwQixxQkFBcUI7RUFDckIsd0VBQXdFO1VBQ2hFLGdFQUFnRTtBQUMxRTtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLDBHQUEwRztVQUNsRyxrR0FBa0c7QUFDNUc7QUFDQTtFQUNFLGVBQWU7QUFDakI7QUFDQTtFQUNFLGVBQWU7RUFDZixZQUFZO0FBQ2Q7QUFDQTtFQUNFLGlCQUFpQjtFQUNqQixlQUFlO0VBQ2YsV0FBVztFQUNYLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsd0JBQXdCO0FBQzFCO0FBQ0E7RUFDRSxXQUFXO0FBQ2I7QUFDQTtFQUNFLGFBQWE7RUFDYixlQUFlO0VBQ2YsOEJBQThCO0VBQzlCLDZCQUE2QjtNQUN6Qix1QkFBdUI7VUFDbkIsbUJBQW1CO0VBQzNCLGlEQUFpRDtFQUNqRCx5Q0FBeUM7QUFDM0M7QUFDQTtFQUNFLFdBQVc7QUFDYjtBQUNBO0VBQ0UsdUJBQXVCO0FBQ3pCO0FBQ0E7RUFDRSx5QkFBeUI7S0FDdEIsc0JBQXNCO01BQ3JCLHFCQUFxQjtVQUNqQixpQkFBaUI7RUFDekIsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLHVCQUF1QjtBQUN6QjtBQUNBO0VBQ0UsY0FBYztFQUNkLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsdUJBQXVCO0FBQ3pCO0FBQ0E7RUFDRSxjQUFjO0VBQ2QsOEJBQThCO0VBQzlCLGVBQWU7QUFDakI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0Usd0JBQXdCO01BQ3BCLHFCQUFxQjtVQUNqQix1QkFBdUI7QUFDakM7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsNEJBQTRCO0VBQzVCLDZCQUE2QjtNQUN6QiwwQkFBMEI7VUFDdEIsc0JBQXNCO0VBQzlCLHVCQUF1QjtNQUNuQixvQkFBb0I7VUFDaEIsMkJBQTJCO0FBQ3JDO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxlQUFlO0VBQ2Ysa0JBQWtCO0FBQ3BCO0FBQ0E7O0VBRUUsYUFBYTtBQUNmO0FBQ0E7RUFDRSxXQUFXO0FBQ2I7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBOzs7RUFHRSxhQUFhO0FBQ2Y7QUFDQTs7RUFFRSxrQkFBa0I7RUFDbEIsUUFBUTtFQUNSLFdBQVc7RUFDWCxZQUFZO0VBQ1osNEJBQTRCO0FBQzlCO0FBQ0E7O0VBRUUsV0FBVztFQUNYLFVBQVU7RUFDVixnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLFdBQVc7RUFDWCxXQUFXO0VBQ1gsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTs7RUFFRSxXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxVQUFVO0VBQ1YsYUFBYTtFQUNiLDRCQUE0QjtBQUM5QjtBQUNBO0VBQ0UsWUFBWTtFQUNaLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsU0FBUztFQUNULGVBQWU7QUFDakI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7O0VBRUUsYUFBYTtBQUNmO0FBQ0E7RUFDRSw0QkFBNEI7QUFDOUI7QUFDQTtFQUNFO0lBQ0UsZ0JBQWdCO0VBQ2xCO0VBQ0E7SUFDRSxlQUFlO0VBQ2pCO0VBQ0E7SUFDRSx5QkFBeUI7RUFDM0I7RUFDQTtJQUNFLFNBQVM7RUFDWDtFQUNBO0lBQ0UsYUFBYTtFQUNmO0FBQ0Y7QUFDQTtFQUNFLDRCQUE0QjtFQUM1Qiw2QkFBNkI7TUFDekIsMEJBQTBCO1VBQ3RCLHNCQUFzQjtFQUM5QixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBOztFQUVFLFlBQVk7QUFDZDtBQUNBO0VBQ0UsZUFBZTtFQUNmLCtDQUErQztFQUMvQyx1Q0FBdUM7RUFDdkMsbUJBQW1CO0VBQ25CLHlCQUF5QjtLQUN0QixzQkFBc0I7TUFDckIscUJBQXFCO1VBQ2pCLGlCQUFpQjtFQUN6QixpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsU0FBUztFQUNULFlBQVk7RUFDWixVQUFVO0VBQ1YsZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxnQ0FBZ0M7QUFDbEM7QUFDQTs7RUFFRSxVQUFVO0FBQ1o7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsV0FBVztFQUNYLFVBQVU7QUFDWjtBQUNBO0VBQ0UsY0FBYztFQUNkLHdCQUF3QjtFQUN4QixZQUFZO0FBQ2Q7QUFDQTtFQUNFOztJQUVFLHdCQUF3QjtFQUMxQjtFQUNBO0lBQ0UsYUFBYTtFQUNmO0VBQ0E7SUFDRSxhQUFhO0VBQ2Y7QUFDRjtBQUNBO0VBQ0U7SUFDRSxhQUFhO0VBQ2Y7QUFDRjtBQUNBO0VBQ0U7O0lBRUUsbUJBQW1CO1FBQ2Ysa0JBQWtCO1lBQ2QsY0FBYztFQUN4QjtBQUNGO0FBQ0E7RUFDRTtJQUNFLGtCQUFrQjtJQUNsQixtQkFBbUI7RUFDckI7RUFDQTtJQUNFLGtCQUFrQjtJQUNsQixtQkFBbUI7RUFDckI7QUFDRjtBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLHlFQUF5RTtFQUN6RSxpRUFBaUU7RUFDakUseURBQXlEO0VBQ3pELDJGQUEyRjtFQUMzRixrQkFBa0I7QUFDcEI7QUFDQTs7RUFFRSx3QkFBd0I7QUFDMUI7QUFDQTs7RUFFRSxrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLGVBQWU7RUFDZixXQUFXO0VBQ1gsTUFBTTtBQUNSO0FBQ0E7O0VBRUUsMEJBQTBCO0VBQzFCLGlCQUFpQjtFQUNqQixrQkFBa0I7QUFDcEI7QUFDQTs7RUFFRSxhQUFhO0FBQ2Y7QUFDQTs7RUFFRSxtQkFBbUI7QUFDckI7QUFDQTtFQUNFLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7O0VBRUUsbUJBQW1CO01BQ2Ysa0JBQWtCO1VBQ2QsY0FBYztBQUN4QjtBQUNBO0VBQ0Usd0JBQXdCO01BQ3BCLHFCQUFxQjtVQUNqQix1QkFBdUI7QUFDakM7QUFDQTtFQUNFLHFCQUFxQjtNQUNqQixrQkFBa0I7VUFDZCx5QkFBeUI7QUFDbkM7QUFDQTtFQUNFLDhCQUE4QjtFQUM5QixlQUFlO0VBQ2Ysa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxPQUFPO0VBQ1AsUUFBUTtBQUNWO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsMkJBQTJCO1VBQ25CLG1CQUFtQjtFQUMzQixxQ0FBcUM7VUFDN0IsNkJBQTZCO0VBQ3JDLHFDQUFxQztFQUNyQyw2QkFBNkI7RUFDN0IscUJBQXFCO0VBQ3JCLHdDQUF3QztFQUN4QyxrQ0FBa0M7VUFDMUIsMEJBQTBCO0VBQ2xDLDhEQUE4RDtVQUN0RCxzREFBc0Q7QUFDaEU7QUFDQTtFQUNFLGtDQUFrQztVQUMxQiwwQkFBMEI7RUFDbEMsOERBQThEO1VBQ3RELHNEQUFzRDtBQUNoRTtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSxtQkFBbUI7QUFDckI7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixvQkFBb0I7RUFDcEIsNEJBQTRCO0VBQzVCLHFCQUFxQjtBQUN2QjtBQUNBO0VBQ0UsU0FBUztFQUNULHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0UsTUFBTTtFQUNOLHFCQUFxQjtBQUN2QjtBQUNBO0VBQ0UsNEJBQTRCO01BQ3hCLGtCQUFrQjtVQUNkLFNBQVM7QUFDbkI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UscUNBQXFDO0FBQ3ZDO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLHdDQUF3QztBQUMxQztBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLDRCQUE0QjtFQUM1QixpQ0FBaUM7QUFDbkM7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sUUFBUTtFQUNSLFNBQVM7RUFDVCxPQUFPO0VBQ1AsWUFBWTtFQUNaLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0UsV0FBVztBQUNiO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsMEdBQTBHO1VBQ2xHLGtHQUFrRztFQUMxRyxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixvQkFBb0I7RUFDcEIsTUFBTTtFQUNOLFFBQVE7RUFDUixTQUFTO0VBQ1QsT0FBTztFQUNQLFlBQVk7RUFDWix3REFBd0Q7RUFDeEQsZ0RBQWdEO0FBQ2xEO0FBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsY0FBYztFQUNkLG1CQUFtQjtNQUNmLGVBQWU7QUFDckI7QUFDQTtFQUNFLGVBQWU7RUFDZix1QkFBdUI7RUFDdkIsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLGVBQWU7RUFDZixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0UscUJBQXFCO0VBQ3JCLCtDQUErQztBQUNqRDtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxTQUFTO0FBQ1g7QUFDQTtFQUNFLGVBQWU7QUFDakI7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQiwwQkFBMEI7QUFDNUI7QUFDQTs7RUFFRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLG9CQUFvQjtFQUNwQixvQkFBb0I7RUFDcEIsYUFBYTtFQUNiLHlCQUF5QjtNQUNyQixzQkFBc0I7VUFDbEIsbUJBQW1CO0FBQzdCO0FBQ0E7RUFDRSx3REFBd0Q7RUFDeEQsZ0RBQWdEO0VBQ2hELCtCQUErQjtFQUMvQixVQUFVO0VBQ1YsZUFBZTtBQUNqQjtBQUNBOztFQUVFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsZUFBZTtFQUNmLHlCQUF5QjtFQUN6QixpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLFlBQVk7QUFDZDtBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZix3REFBd0Q7RUFDeEQsZ0RBQWdEO0VBQ2hELHlCQUF5QjtLQUN0QixzQkFBc0I7TUFDckIscUJBQXFCO1VBQ2pCLGlCQUFpQjtBQUMzQjtBQUNBO0VBQ0UsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsWUFBWTtBQUNkO0FBQ0E7RUFDRSxxQkFBcUI7QUFDdkI7QUFDQTtFQUNFLGlDQUFpQztVQUN6Qix5QkFBeUI7QUFDbkM7QUFDQTtFQUNFLHdEQUF3RDtFQUN4RCxnREFBZ0Q7RUFDaEQsdUJBQXVCO0FBQ3pCO0FBQ0E7O0VBRUUsbUJBQW1CO0VBQ25CLGlCQUFpQjtBQUNuQjtBQUNBOzs7RUFHRSxtQkFBbUI7RUFDbkIsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsWUFBWTtFQUNaLGdCQUFnQjtFQUNoQixlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxVQUFVO0FBQ1o7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0Usd0JBQXdCO1VBQ2hCLGdCQUFnQjtBQUMxQjtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSxXQUFXO0FBQ2I7QUFDQTtFQUNFLFNBQVM7QUFDWDtBQUNBOztFQUVFLHVCQUF1QjtBQUN6QjtBQUNBO0VBQ0UsdUJBQXVCO0FBQ3pCO0FBQ0E7RUFDRSx1QkFBdUI7QUFDekI7QUFDQTtFQUNFLGNBQWM7QUFDaEI7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsY0FBYztBQUNoQjtBQUNBO0VBQ0UsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7O0VBRUUsaUJBQWlCO0VBQ2pCLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7O0VBRUUsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxZQUFZO0FBQ2Q7QUFDQTtFQUNFLFlBQVk7QUFDZDtBQUNBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRTtJQUNFLGdCQUFnQjtFQUNsQjtFQUNBOztJQUVFLGlCQUFpQjtJQUNqQixrQkFBa0I7RUFDcEI7RUFDQTtJQUNFLGdCQUFnQjtFQUNsQjtFQUNBO0lBQ0UsZUFBZTtFQUNqQjtFQUNBOztJQUVFLGdCQUFnQjtFQUNsQjtFQUNBO0lBQ0UsWUFBWTtFQUNkO0VBQ0E7SUFDRSxZQUFZO0VBQ2Q7RUFDQTtJQUNFLGlCQUFpQjtFQUNuQjtBQUNGO0FBQ0E7RUFDRSx1QkFBdUI7RUFDdkIsc0NBQXNDO0FBQ3hDO0FBQ0E7RUFDRSx1QkFBdUI7QUFDekI7QUFDQTs7OztFQUlFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsdUJBQXVCO0FBQ3pCO0FBQ0E7O0VBRUUsdUJBQXVCO0FBQ3pCO0FBQ0E7RUFDRSw0QkFBNEI7QUFDOUI7QUFDQTtFQUNFLDRCQUE0QjtBQUM5QjtBQUNBO0VBQ0UsV0FBVztBQUNiO0FBQ0E7O0VBRUUsNkJBQTZCO0VBQzdCLDRDQUE0QztBQUM5QztBQUNBOzs7O0VBSUUsb0NBQW9DO0FBQ3RDO0FBQ0E7RUFDRSw2QkFBNkI7QUFDL0I7QUFDQTs7RUFFRSxXQUFXO0FBQ2I7QUFDQTtFQUNFLGlDQUFpQztBQUNuQztBQUNBO0VBQ0UsaUNBQWlDO0FBQ25DO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsV0FBVztFQUNYLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxlQUFlO0VBQ2Ysa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWix5QkFBeUI7RUFDekIsbUJBQW1CO0VBQ25CLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixTQUFTO0VBQ1QsT0FBTztFQUNQLFdBQVc7QUFDYjtBQUNBOztFQUVFLFdBQVc7RUFDWCx3QkFBd0I7RUFDeEIsY0FBYztFQUNkLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsNkJBQTZCO0VBQzdCLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1osV0FBVztFQUNYLFFBQVE7RUFDUixPQUFPO0VBQ1Asd0VBQXdFO0VBQ3hFLGdFQUFnRTtBQUNsRTtBQUNBO0VBQ0UsVUFBVTtFQUNWLFlBQVk7RUFDWixTQUFTO0VBQ1QsU0FBUztFQUNULFNBQVM7QUFDWDtBQUNBO0VBQ0UsV0FBVztFQUNYLFVBQVU7QUFDWjtBQUNBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjtBQUNBO0VBQ0UsU0FBUztFQUNULFVBQVU7QUFDWjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsMkJBQTJCO0VBQzNCLDJCQUEyQjtFQUMzQixvQkFBb0I7RUFDcEIsTUFBTTtFQUNOLE9BQU87RUFDUCxRQUFRO0VBQ1IsZUFBZTtFQUNmLFlBQVk7RUFDWixXQUFXO0VBQ1gsMENBQTBDO0VBQzFDLGtDQUFrQztBQUNwQztBQUNBO0VBQ0UsV0FBVztBQUNiO0FBQ0E7RUFDRSxZQUFZO0FBQ2Q7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0UsdUJBQXVCO0VBQ3ZCLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsY0FBYztBQUNoQjtBQUNBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxlQUFlO0VBQ2YsU0FBUztBQUNYO0FBQ0E7RUFDRTtJQUNFLGtCQUFrQjtJQUNsQixlQUFlO0VBQ2pCO0VBQ0E7SUFDRSxtQkFBbUI7RUFDckI7RUFDQTtJQUNFLGtCQUFrQjtFQUNwQjtFQUNBO0lBQ0UsY0FBYztFQUNoQjtFQUNBO0lBQ0Usa0JBQWtCO0lBQ2xCLFVBQVU7RUFDWjtFQUNBOzs7SUFHRSxtQkFBbUI7SUFDbkIsbUJBQW1CO0VBQ3JCO0VBQ0E7SUFDRSxpQkFBaUI7SUFDakIsVUFBVTtFQUNaO0VBQ0E7SUFDRSxrQkFBa0I7RUFDcEI7RUFDQTtJQUNFLGtCQUFrQjtFQUNwQjtFQUNBO0lBQ0UsZ0JBQWdCO0VBQ2xCO0VBQ0E7SUFDRSxtQkFBbUI7RUFDckI7QUFDRjtBQUNBO0VBQ0U7SUFDRSxrQkFBa0I7SUFDbEIsY0FBYztFQUNoQjtFQUNBOzs7O0lBSUUsY0FBYztJQUNkLFNBQVM7SUFDVCxVQUFVO0VBQ1o7RUFDQTtJQUNFLGtCQUFrQjtJQUNsQixTQUFTO0lBQ1Qsb0JBQW9CO0VBQ3RCO0VBQ0E7SUFDRSxTQUFTO0lBQ1Qsa0JBQWtCO0VBQ3BCO0VBQ0E7O0lBRUUsVUFBVTtFQUNaO0VBQ0E7O0lBRUUsV0FBVztJQUNYLG1CQUFtQjtJQUNuQixpQkFBaUI7RUFDbkI7RUFDQTs7SUFFRSxZQUFZO0lBQ1osZ0JBQWdCO0lBQ2hCLGtCQUFrQjtFQUNwQjtFQUNBO0lBQ0UsZ0JBQWdCO0VBQ2xCO0VBQ0E7SUFDRSxvQkFBb0I7SUFDcEIsZ0JBQWdCO0VBQ2xCO0FBQ0Y7QUFDQTtFQUNFLDREQUE0RDtFQUM1RCxvREFBb0Q7RUFDcEQsV0FBVztFQUNYLFlBQVk7RUFDWixtQkFBbUI7RUFDbkIsd0JBQXdCO0VBQ3hCLFlBQVk7QUFDZDtBQUNBO0VBQ0UsbUJBQW1CO0VBQ25CLDREQUE0RDtFQUM1RCxvREFBb0Q7RUFDcEQsMEdBQTBHO1VBQ2xHLGtHQUFrRztFQUMxRyxrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBQ1AsV0FBVztFQUNYLFlBQVk7RUFDWixpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLFlBQVk7RUFDWixXQUFXO0VBQ1gsZUFBZTtFQUNmLGNBQWM7QUFDaEI7QUFDQTtFQUNFLHdCQUF3QjtFQUN4QixVQUFVO0FBQ1o7QUFDQTtFQUNFLFdBQVc7QUFDYjtBQUNBO0VBQ0UsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsV0FBVztBQUNiO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLG1CQUFtQjtNQUNmLGdCQUFnQjtVQUNaLFlBQVk7RUFDcEIsY0FBYztFQUNkLGVBQWU7RUFDZixlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLGVBQWU7QUFDakI7QUFDQTtFQUNFLGVBQWU7RUFDZixZQUFZO0FBQ2Q7QUFDQTs7RUFFRSx1QkFBdUI7RUFDdkIsbUJBQW1CO0VBQ25CLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZTtFQUNmLGVBQWU7RUFDZixjQUFjO0VBQ2QsbUJBQW1CO0VBQ25CLGFBQWE7RUFDYixhQUFhO0VBQ2Isa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxTQUFTO0VBQ1QscUJBQXFCO0VBQ3JCLGtCQUFrQjtFQUNsQixxQkFBcUI7QUFDdkI7QUFDQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsU0FBUztFQUNULFNBQVM7RUFDVCxVQUFVO0VBQ1YsV0FBVztFQUNYLFdBQVc7RUFDWCxtQ0FBbUM7QUFDckM7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixTQUFTO0VBQ1QsV0FBVztFQUNYLFdBQVc7RUFDWCxXQUFXO0VBQ1gsbUNBQW1DO0VBQ25DLHFDQUFxQztBQUN2QztBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsV0FBVztBQUNiO0FBQ0E7RUFDRSx1QkFBdUI7QUFDekI7QUFDQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLFVBQVU7RUFDVixZQUFZO0VBQ1osV0FBVztFQUNYLFVBQVU7RUFDVixtQ0FBbUM7RUFDbkMsWUFBWTtBQUNkO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSw0QkFBNEI7QUFDOUI7QUFDQTtFQUNFLGlDQUFpQztBQUNuQztBQUNBO0VBQ0UsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSxpQ0FBaUM7QUFDbkM7QUFDQTtFQUNFLFlBQVk7RUFDWixlQUFlO0VBQ2Ysa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsV0FBVztBQUNiO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsV0FBVztBQUNiO0FBQ0E7RUFDRSxlQUFlO0VBQ2YsV0FBVztFQUNYLFlBQVk7QUFDZDtBQUNBO0VBQ0UsZ0NBQWdDO1VBQ3hCLHdCQUF3QjtBQUNsQztBQUNBO0VBQ0Usa0RBQWtEO1VBQzFDLDBDQUEwQztBQUNwRDtBQUNBO0VBQ0UsaURBQWlEO1VBQ3pDLHlDQUF5QztBQUNuRDtBQUNBO0VBQ0UsVUFBVTtBQUNaO0FBQ0E7O0VBRUUsYUFBYTtBQUNmO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLDRCQUE0QjtFQUM1Qiw2QkFBNkI7QUFDL0I7QUFDQTtFQUNFLFVBQVU7RUFDVixlQUFlO0VBQ2YsWUFBWTtFQUNaLFdBQVc7RUFDWCxZQUFZO0FBQ2Q7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0UseUJBQXlCO0VBQ3pCLGVBQWU7RUFDZixpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0UsZ0NBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxZQUFZO0VBQ1osWUFBWTtBQUNkO0FBQ0E7RUFDRSxlQUFlO0VBQ2YsWUFBWTtFQUNaLFdBQVc7RUFDWCxTQUFTO0FBQ1g7QUFDQTtFQUNFLGdDQUFnQztFQUNoQyxvQkFBb0I7RUFDcEIsaUNBQWlDO0FBQ25DO0FBQ0E7RUFDRSwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLFdBQVc7RUFDWCx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLFdBQVc7QUFDYjtBQUNBO0VBQ0UsWUFBWTtBQUNkO0FBQ0E7RUFDRSxnQ0FBZ0M7RUFDaEMsNENBQTRDO0FBQzlDO0FBQ0E7RUFDRSxlQUFlO0VBQ2YsWUFBWTtBQUNkO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQiwwR0FBMEc7VUFDbEcsa0dBQWtHO0VBQzFHLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixzQkFBc0I7QUFDeEI7QUFDQTs7O0VBR0UsV0FBVztFQUNYLFlBQVk7QUFDZDtBQUNBO0VBQ0UsMEJBQTBCO0VBQzFCLDRCQUE0QjtFQUM1Qix3QkFBd0I7RUFDeEIsMkJBQTJCO0VBQzNCLDJCQUEyQjtFQUMzQiw2QkFBNkI7RUFDN0IsdUJBQXVCO0VBQ3ZCLDBCQUEwQjtFQUMxQiw0QkFBNEI7RUFDNUIsd0JBQXdCO0VBQ3hCLHVCQUF1QjtFQUN2QixxQkFBcUI7RUFDckIsdUJBQXVCO0FBQ3pCO0FBQ0E7RUFDRSx5QkFBeUI7RUFDekIsd0NBQXdDO0FBQzFDO0FBQ0E7RUFDRSw4QkFBOEI7RUFDOUIsNkNBQTZDO0FBQy9DO0FBQ0E7RUFDRSx5QkFBeUI7RUFDekIsMENBQTBDO0FBQzVDO0FBQ0E7RUFDRSw4QkFBOEI7RUFDOUIsK0NBQStDO0FBQ2pEO0FBQ0E7RUFDRSxzQkFBc0I7RUFDdEIseUNBQXlDO0FBQzNDO0FBQ0E7RUFDRSwyQkFBMkI7RUFDM0IsOENBQThDO0FBQ2hEO0FBQ0E7RUFDRSxzQkFBc0I7RUFDdEIsc0NBQXNDO0FBQ3hDO0FBQ0E7RUFDRSwyQkFBMkI7RUFDM0IsMkNBQTJDO0FBQzdDO0FBQ0E7RUFDRSx5QkFBeUI7RUFDekIseUNBQXlDO0FBQzNDO0FBQ0E7RUFDRSw4QkFBOEI7RUFDOUIsOENBQThDO0FBQ2hEO0FBQ0E7RUFDRSx5QkFBeUI7RUFDekIseUNBQXlDO0FBQzNDO0FBQ0E7RUFDRSw4QkFBOEI7RUFDOUIsOENBQThDO0FBQ2hEO0FBQ0E7RUFDRSx5QkFBeUI7RUFDekIscUNBQXFDO0FBQ3ZDO0FBQ0E7RUFDRSw4QkFBOEI7RUFDOUIsMENBQTBDO0FBQzVDO0FBQ0E7RUFDRSx5QkFBeUI7RUFDekIsd0NBQXdDO0FBQzFDO0FBQ0E7RUFDRSw4QkFBOEI7RUFDOUIsNkNBQTZDO0FBQy9DO0FBQ0E7RUFDRSxzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0Usc0JBQXNCO0FBQ3hCO0FBQ0E7RUFDRSwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLHlCQUF5QjtFQUN6QixzQ0FBc0M7QUFDeEM7QUFDQTtFQUNFLDhCQUE4QjtFQUM5QiwyQ0FBMkM7QUFDN0M7QUFDQTtFQUNFLHlCQUF5QjtFQUN6QixxQ0FBcUM7QUFDdkM7QUFDQTtFQUNFLDhCQUE4QjtFQUM5QiwwQ0FBMEM7QUFDNUM7QUFDQTtFQUNFLDZCQUE2QjtBQUMvQjtBQUNBO0VBQ0Usa0NBQWtDO0FBQ3BDO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0Usc0JBQXNCO0FBQ3hCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSxvRkFBb0Y7RUFDcEYsNEVBQTRFO0VBQzVFLG9FQUFvRTtFQUNwRSwySEFBMkg7QUFDN0g7QUFDQTtFQUNFLDBHQUEwRztVQUNsRyxrR0FBa0c7QUFDNUc7QUFDQTtFQUNFLDZHQUE2RztVQUNyRyxxR0FBcUc7QUFDL0c7QUFDQTtFQUNFLDBHQUEwRztVQUNsRyxrR0FBa0c7QUFDNUc7QUFDQTtFQUNFLDZHQUE2RztVQUNyRyxxR0FBcUc7QUFDL0c7QUFDQTtFQUNFLDBHQUEwRztVQUNsRyxrR0FBa0c7QUFDNUc7QUFDQTtFQUNFLDZHQUE2RztVQUNyRyxxR0FBcUc7QUFDL0c7QUFDQTtFQUNFLDJHQUEyRztVQUNuRyxtR0FBbUc7QUFDN0c7QUFDQTtFQUNFLDhHQUE4RztVQUN0RyxzR0FBc0c7QUFDaEg7QUFDQTtFQUNFLDJHQUEyRztVQUNuRyxtR0FBbUc7QUFDN0c7QUFDQTtFQUNFLDhHQUE4RztVQUN0RyxzR0FBc0c7QUFDaEg7QUFDQTtFQUNFLDRHQUE0RztVQUNwRyxvR0FBb0c7QUFDOUc7QUFDQTtFQUNFLCtHQUErRztVQUN2Ryx1R0FBdUc7QUFDakg7QUFDQTtFQUNFLG9IQUFvSDtVQUM1Ryw0R0FBNEc7QUFDdEg7QUFDQTtFQUNFLHVIQUF1SDtVQUMvRywrR0FBK0c7QUFDekg7QUFDQTtFQUNFLG9IQUFvSDtVQUM1Ryw0R0FBNEc7QUFDdEg7QUFDQTtFQUNFLHVIQUF1SDtVQUMvRywrR0FBK0c7QUFDekg7QUFDQTtFQUNFLG9IQUFvSDtVQUM1Ryw0R0FBNEc7QUFDdEg7QUFDQTtFQUNFLHVIQUF1SDtVQUMvRywrR0FBK0c7QUFDekg7QUFDQTtFQUNFLHFIQUFxSDtVQUM3Ryw2R0FBNkc7QUFDdkg7QUFDQTtFQUNFLHdIQUF3SDtVQUNoSCxnSEFBZ0g7QUFDMUg7QUFDQTtFQUNFLHFIQUFxSDtVQUM3Ryw2R0FBNkc7QUFDdkg7QUFDQTtFQUNFLHdIQUF3SDtVQUNoSCxnSEFBZ0g7QUFDMUg7QUFDQTtFQUNFLHFIQUFxSDtVQUM3Ryw2R0FBNkc7QUFDdkg7QUFDQTtFQUNFLHdIQUF3SDtVQUNoSCxnSEFBZ0g7QUFDMUg7QUFDQTtFQUNFLHFIQUFxSDtVQUM3Ryw2R0FBNkc7QUFDdkg7QUFDQTtFQUNFLHdIQUF3SDtVQUNoSCxnSEFBZ0g7QUFDMUg7QUFDQTtFQUNFLHFIQUFxSDtVQUM3Ryw2R0FBNkc7QUFDdkg7QUFDQTtFQUNFLHdIQUF3SDtVQUNoSCxnSEFBZ0g7QUFDMUg7QUFDQTtFQUNFLHFIQUFxSDtVQUM3Ryw2R0FBNkc7QUFDdkg7QUFDQTtFQUNFLHdIQUF3SDtVQUNoSCxnSEFBZ0g7QUFDMUg7QUFDQTtFQUNFLHNIQUFzSDtVQUM5Ryw4R0FBOEc7QUFDeEg7QUFDQTtFQUNFLHlIQUF5SDtVQUNqSCxpSEFBaUg7QUFDM0g7QUFDQTtFQUNFLHNIQUFzSDtVQUM5Ryw4R0FBOEc7QUFDeEg7QUFDQTtFQUNFLHlIQUF5SDtVQUNqSCxpSEFBaUg7QUFDM0g7QUFDQTtFQUNFLHNIQUFzSDtVQUM5Ryw4R0FBOEc7QUFDeEg7QUFDQTtFQUNFLHlIQUF5SDtVQUNqSCxpSEFBaUg7QUFDM0g7QUFDQTtFQUNFLHNIQUFzSDtVQUM5Ryw4R0FBOEc7QUFDeEg7QUFDQTtFQUNFLHlIQUF5SDtVQUNqSCxpSEFBaUg7QUFDM0g7QUFDQTtFQUNFLHVIQUF1SDtVQUMvRywrR0FBK0c7QUFDekg7QUFDQTtFQUNFLDBIQUEwSDtVQUNsSCxrSEFBa0g7QUFDNUg7QUFDQTtFQUNFLHVIQUF1SDtVQUMvRywrR0FBK0c7QUFDekg7QUFDQTtFQUNFLDBIQUEwSDtVQUNsSCxrSEFBa0g7QUFDNUg7QUFDQTtFQUNFLHVIQUF1SDtVQUMvRywrR0FBK0c7QUFDekg7QUFDQTtFQUNFLDBIQUEwSDtVQUNsSCxrSEFBa0g7QUFDNUg7QUFDQTtFQUNFLHVIQUF1SDtVQUMvRywrR0FBK0c7QUFDekg7QUFDQTtFQUNFLDBIQUEwSDtVQUNsSCxrSEFBa0g7QUFDNUg7QUFDQTtFQUNFLHVIQUF1SDtVQUMvRywrR0FBK0c7QUFDekg7QUFDQTtFQUNFLDBIQUEwSDtVQUNsSCxrSEFBa0g7QUFDNUg7QUFDQTs7RUFFRSxtQ0FBbUM7VUFDM0IsMkJBQTJCO0FBQ3JDO0FBQ0E7RUFDRSxtRUFBbUU7VUFDM0QsMkRBQTJEO0FBQ3JFO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSwyQkFBMkI7QUFDN0I7QUFDQTs7O0VBR0Usb0JBQW9CO0VBQ3BCLG9CQUFvQjtFQUNwQixhQUFhO0VBQ2IsbUJBQW1CO01BQ2YsZUFBZTtBQUNyQjtBQUNBOzs7RUFHRSwyQkFBMkI7RUFDM0IsMkJBQTJCO0VBQzNCLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0UsOEJBQThCO0VBQzlCLDhCQUE4QjtNQUMxQiwrQkFBK0I7VUFDM0IsMkJBQTJCO0FBQ3JDO0FBQ0E7RUFDRSw0QkFBNEI7RUFDNUIsNkJBQTZCO01BQ3pCLDBCQUEwQjtVQUN0QixzQkFBc0I7QUFDaEM7QUFDQTtFQUNFLDRCQUE0QjtFQUM1Qiw4QkFBOEI7TUFDMUIsa0NBQWtDO1VBQzlCLDhCQUE4QjtBQUN4QztBQUNBO0VBQ0UsbUJBQW1CO01BQ2YsZUFBZTtBQUNyQjtBQUNBO0VBQ0UscUJBQXFCO01BQ2pCLGlCQUFpQjtBQUN2QjtBQUNBO0VBQ0UsMkJBQTJCO01BQ3ZCLHVCQUF1QjtBQUM3QjtBQUNBO0VBQ0UsZ0NBQWdDO01BQzVCLHNCQUFzQjtVQUNsQixhQUFhO0FBQ3ZCO0FBQ0E7RUFDRSxnQ0FBZ0M7TUFDNUIscUJBQXFCO1VBQ2pCLFlBQVk7QUFDdEI7QUFDQTtFQUNFLDRCQUE0QjtNQUN4QixpQkFBaUI7VUFDYixRQUFRO0FBQ2xCO0FBQ0E7RUFDRSx1QkFBdUI7TUFDbkIsb0JBQW9CO1VBQ2hCLDJCQUEyQjtBQUNyQztBQUNBO0VBQ0UscUJBQXFCO01BQ2pCLGtCQUFrQjtVQUNkLHlCQUF5QjtBQUNuQztBQUNBOztFQUVFLHdCQUF3QjtNQUNwQixxQkFBcUI7VUFDakIsdUJBQXVCO0FBQ2pDO0FBQ0E7RUFDRSx5QkFBeUI7TUFDckIsc0JBQXNCO1VBQ2xCLDhCQUE4QjtBQUN4QztBQUNBO0VBQ0UseUJBQXlCO01BQ3JCLDZCQUE2QjtBQUNuQztBQUNBO0VBQ0Usd0JBQXdCO01BQ3BCLHFCQUFxQjtVQUNqQix1QkFBdUI7QUFDakM7QUFDQTtFQUNFLHNCQUFzQjtNQUNsQixtQkFBbUI7VUFDZixxQkFBcUI7QUFDL0I7QUFDQTs7RUFFRSx5QkFBeUI7TUFDckIsc0JBQXNCO1VBQ2xCLG1CQUFtQjtBQUM3QjtBQUNBO0VBQ0UsMkJBQTJCO01BQ3ZCLHdCQUF3QjtVQUNwQixxQkFBcUI7QUFDL0I7QUFDQTtFQUNFLDBCQUEwQjtNQUN0Qix1QkFBdUI7VUFDbkIsb0JBQW9CO0FBQzlCO0FBQ0E7RUFDRSx5QkFBeUI7TUFDckIseUJBQXlCO0FBQy9CO0FBQ0E7RUFDRSx1QkFBdUI7TUFDbkIsdUJBQXVCO0FBQzdCO0FBQ0E7RUFDRSwwQkFBMEI7TUFDdEIscUJBQXFCO0FBQzNCO0FBQ0E7RUFDRSwyQkFBMkI7TUFDdkIsc0JBQXNCO0FBQzVCO0FBQ0E7RUFDRSwyQkFBMkI7TUFDdkIsNEJBQTRCO0FBQ2xDO0FBQ0E7RUFDRSw4QkFBOEI7TUFDMUIsMkJBQTJCO0FBQ2pDO0FBQ0E7RUFDRSwwQkFBMEI7TUFDdEIsc0JBQXNCO0FBQzVCO0FBQ0E7RUFDRSx3QkFBd0I7TUFDcEIsb0JBQW9CO0FBQzFCO0FBQ0E7RUFDRSwyQkFBMkI7TUFDdkIsa0JBQWtCO0FBQ3hCO0FBQ0E7RUFDRSw2QkFBNkI7TUFDekIsb0JBQW9CO0FBQzFCO0FBQ0E7RUFDRSw0QkFBNEI7TUFDeEIsbUJBQW1CO0FBQ3pCO0FBQ0E7O0VBRUUsY0FBYztBQUNoQjtBQUNBOztFQUVFLGVBQWU7QUFDakI7QUFDQTs7RUFFRSxhQUFhO0FBQ2Y7QUFDQTs7RUFFRSxjQUFjO0FBQ2hCO0FBQ0E7O0VBRUUsaUJBQWlCO0FBQ25CO0FBQ0E7O0VBRUUsaUJBQWlCO0FBQ25CO0FBQ0E7O0VBRUUsZ0JBQWdCO0FBQ2xCO0FBQ0E7O0VBRUUsZ0JBQWdCO0FBQ2xCO0FBQ0E7O0VBRUUsa0JBQWtCO0FBQ3BCO0FBQ0E7O0VBRUUsa0JBQWtCO0FBQ3BCO0FBQ0E7O0VBRUUsaUJBQWlCO0FBQ25CO0FBQ0E7O0VBRUUsaUJBQWlCO0FBQ25CO0FBQ0E7O0VBRUUsa0JBQWtCO0FBQ3BCO0FBQ0E7O0VBRUUsa0JBQWtCO0FBQ3BCO0FBQ0E7O0VBRUUsaUJBQWlCO0FBQ25CO0FBQ0E7O0VBRUUsaUJBQWlCO0FBQ25CO0FBQ0E7O0VBRUUsa0JBQWtCO0FBQ3BCO0FBQ0E7O0VBRUUsa0JBQWtCO0FBQ3BCO0FBQ0E7O0VBRUUsaUJBQWlCO0FBQ25CO0FBQ0E7O0VBRUUsaUJBQWlCO0FBQ25CO0FBQ0E7O0VBRUUsa0JBQWtCO0FBQ3BCO0FBQ0E7O0VBRUUsa0JBQWtCO0FBQ3BCO0FBQ0E7O0VBRUUsaUJBQWlCO0FBQ25CO0FBQ0E7O0VBRUUsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQWdFRSxXQUFXO0lBQ1gsWUFBWTtJQUNaLGVBQWU7RUFDakI7RUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQWdFRSxZQUFZO0lBQ1osYUFBYTtJQUNiLGdCQUFnQjtFQUNsQjtFQUNBOztJQUVFLHVCQUF1QjtRQUNuQixvQkFBb0I7WUFDaEIsZ0JBQWdCO0VBQzFCO0VBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUE0QkUsbUJBQW1CO1FBQ2Ysa0JBQWtCO1lBQ2QsY0FBYztFQUN4QjtFQUNBOztJQUVFLG1CQUFtQjtRQUNmLGtCQUFrQjtZQUNkLGNBQWM7RUFDeEI7RUFDQTs7SUFFRSxZQUFZO0lBQ1osU0FBUztFQUNYO0VBQ0E7O0lBRUUsZUFBZTtFQUNqQjtFQUNBOztJQUVFLFVBQVU7SUFDVixXQUFXO0VBQ2I7RUFDQTs7SUFFRSxZQUFZO0lBQ1osY0FBYztFQUNoQjtFQUNBOztJQUVFLG9CQUFvQjtFQUN0QjtFQUNBOztJQUVFLGVBQWU7SUFDZixXQUFXO0VBQ2I7RUFDQTs7SUFFRSxZQUFZO0lBQ1osZUFBZTtFQUNqQjtFQUNBOztJQUVFLHFCQUFxQjtFQUN2QjtFQUNBOztJQUVFLGdCQUFnQjtJQUNoQixXQUFXO0VBQ2I7RUFDQTs7SUFFRSxZQUFZO0lBQ1osVUFBVTtFQUNaO0VBQ0E7O0lBRUUsZ0JBQWdCO0VBQ2xCO0VBQ0E7O0lBRUUsV0FBVztJQUNYLFdBQVc7RUFDYjtFQUNBOztJQUVFLFlBQVk7SUFDWixlQUFlO0VBQ2pCO0VBQ0E7O0lBRUUscUJBQXFCO0VBQ3ZCO0VBQ0E7O0lBRUUsZ0JBQWdCO0lBQ2hCLFdBQVc7RUFDYjtFQUNBOztJQUVFLFlBQVk7SUFDWixlQUFlO0VBQ2pCO0VBQ0E7O0lBRUUscUJBQXFCO0VBQ3ZCO0VBQ0E7O0lBRUUsZ0JBQWdCO0lBQ2hCLFdBQVc7RUFDYjtFQUNBOztJQUVFLFlBQVk7SUFDWixVQUFVO0VBQ1o7RUFDQTs7SUFFRSxnQkFBZ0I7RUFDbEI7RUFDQTs7SUFFRSxXQUFXO0lBQ1gsV0FBVztFQUNiO0VBQ0E7O0lBRUUsWUFBWTtJQUNaLGVBQWU7RUFDakI7RUFDQTs7SUFFRSxxQkFBcUI7RUFDdkI7RUFDQTs7SUFFRSxnQkFBZ0I7SUFDaEIsV0FBVztFQUNiO0VBQ0E7O0lBRUUsWUFBWTtJQUNaLGVBQWU7RUFDakI7RUFDQTs7SUFFRSxxQkFBcUI7RUFDdkI7RUFDQTs7SUFFRSxnQkFBZ0I7SUFDaEIsV0FBVztFQUNiO0VBQ0E7O0lBRUUsWUFBWTtJQUNaLFVBQVU7RUFDWjtFQUNBOztJQUVFLGdCQUFnQjtFQUNsQjtFQUNBOztJQUVFLFdBQVc7SUFDWCxXQUFXO0VBQ2I7RUFDQTs7SUFFRSxZQUFZO0lBQ1osZUFBZTtFQUNqQjtFQUNBOztJQUVFLHFCQUFxQjtFQUN2QjtFQUNBOztJQUVFLGdCQUFnQjtJQUNoQixXQUFXO0VBQ2I7RUFDQTs7SUFFRSxZQUFZO0lBQ1osZUFBZTtFQUNqQjtFQUNBOztJQUVFLHFCQUFxQjtFQUN2QjtFQUNBOztJQUVFLGdCQUFnQjtJQUNoQixXQUFXO0VBQ2I7RUFDQTs7SUFFRSxZQUFZO0lBQ1osV0FBVztFQUNiO0VBQ0E7O0lBRUUsaUJBQWlCO0VBQ25CO0VBQ0E7O0lBRUUsWUFBWTtJQUNaLFdBQVc7RUFDYjtBQUNGO0FBQ0E7RUFDRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFnQ0UsV0FBVztJQUNYLFlBQVk7SUFDWixlQUFlO0VBQ2pCO0VBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBZ0NFLFlBQVk7SUFDWixhQUFhO0lBQ2IsZ0JBQWdCO0VBQ2xCO0VBQ0E7SUFDRSx1QkFBdUI7UUFDbkIsb0JBQW9CO1lBQ2hCLGdCQUFnQjtFQUMxQjtFQUNBOzs7Ozs7Ozs7Ozs7OztJQWNFLG1CQUFtQjtRQUNmLGtCQUFrQjtZQUNkLGNBQWM7RUFDeEI7RUFDQTtJQUNFLG1CQUFtQjtRQUNmLGtCQUFrQjtZQUNkLGNBQWM7RUFDeEI7RUFDQTtJQUNFLFlBQVk7SUFDWixTQUFTO0VBQ1g7RUFDQTtJQUNFLGVBQWU7RUFDakI7RUFDQTtJQUNFLFVBQVU7SUFDVixXQUFXO0VBQ2I7RUFDQTtJQUNFLFlBQVk7SUFDWixjQUFjO0VBQ2hCO0VBQ0E7SUFDRSxvQkFBb0I7RUFDdEI7RUFDQTtJQUNFLGVBQWU7SUFDZixXQUFXO0VBQ2I7RUFDQTtJQUNFLFlBQVk7SUFDWixlQUFlO0VBQ2pCO0VBQ0E7SUFDRSxxQkFBcUI7RUFDdkI7RUFDQTtJQUNFLGdCQUFnQjtJQUNoQixXQUFXO0VBQ2I7RUFDQTtJQUNFLFlBQVk7SUFDWixVQUFVO0VBQ1o7RUFDQTtJQUNFLGdCQUFnQjtFQUNsQjtFQUNBO0lBQ0UsV0FBVztJQUNYLFdBQVc7RUFDYjtFQUNBO0lBQ0UsWUFBWTtJQUNaLGVBQWU7RUFDakI7RUFDQTtJQUNFLHFCQUFxQjtFQUN2QjtFQUNBO0lBQ0UsZ0JBQWdCO0lBQ2hCLFdBQVc7RUFDYjtFQUNBO0lBQ0UsWUFBWTtJQUNaLGVBQWU7RUFDakI7RUFDQTtJQUNFLHFCQUFxQjtFQUN2QjtFQUNBO0lBQ0UsZ0JBQWdCO0lBQ2hCLFdBQVc7RUFDYjtFQUNBO0lBQ0UsWUFBWTtJQUNaLFVBQVU7RUFDWjtFQUNBO0lBQ0UsZ0JBQWdCO0VBQ2xCO0VBQ0E7SUFDRSxXQUFXO0lBQ1gsV0FBVztFQUNiO0VBQ0E7SUFDRSxZQUFZO0lBQ1osZUFBZTtFQUNqQjtFQUNBO0lBQ0UscUJBQXFCO0VBQ3ZCO0VBQ0E7SUFDRSxnQkFBZ0I7SUFDaEIsV0FBVztFQUNiO0VBQ0E7SUFDRSxZQUFZO0lBQ1osZUFBZTtFQUNqQjtFQUNBO0lBQ0UscUJBQXFCO0VBQ3ZCO0VBQ0E7SUFDRSxnQkFBZ0I7SUFDaEIsV0FBVztFQUNiO0VBQ0E7SUFDRSxZQUFZO0lBQ1osVUFBVTtFQUNaO0VBQ0E7SUFDRSxnQkFBZ0I7RUFDbEI7RUFDQTtJQUNFLFdBQVc7SUFDWCxXQUFXO0VBQ2I7RUFDQTtJQUNFLFlBQVk7SUFDWixlQUFlO0VBQ2pCO0VBQ0E7SUFDRSxxQkFBcUI7RUFDdkI7RUFDQTtJQUNFLGdCQUFnQjtJQUNoQixXQUFXO0VBQ2I7RUFDQTtJQUNFLFlBQVk7SUFDWixlQUFlO0VBQ2pCO0VBQ0E7SUFDRSxxQkFBcUI7RUFDdkI7RUFDQTtJQUNFLGdCQUFnQjtJQUNoQixXQUFXO0VBQ2I7RUFDQTtJQUNFLFlBQVk7SUFDWixXQUFXO0VBQ2I7RUFDQTtJQUNFLGlCQUFpQjtFQUNuQjtFQUNBO0lBQ0UsWUFBWTtJQUNaLFdBQVc7RUFDYjtBQUNGO0FBQ0E7RUFDRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFnQ0UsV0FBVztJQUNYLFlBQVk7SUFDWixlQUFlO0VBQ2pCO0VBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBZ0NFLFlBQVk7SUFDWixhQUFhO0lBQ2IsZ0JBQWdCO0VBQ2xCO0VBQ0E7SUFDRSx1QkFBdUI7UUFDbkIsb0JBQW9CO1lBQ2hCLGdCQUFnQjtFQUMxQjtFQUNBOzs7Ozs7Ozs7Ozs7OztJQWNFLG1CQUFtQjtRQUNmLGtCQUFrQjtZQUNkLGNBQWM7RUFDeEI7RUFDQTtJQUNFLG1CQUFtQjtRQUNmLGtCQUFrQjtZQUNkLGNBQWM7RUFDeEI7RUFDQTtJQUNFLFlBQVk7SUFDWixTQUFTO0VBQ1g7RUFDQTtJQUNFLGVBQWU7RUFDakI7RUFDQTtJQUNFLFVBQVU7SUFDVixXQUFXO0VBQ2I7RUFDQTtJQUNFLFlBQVk7SUFDWixjQUFjO0VBQ2hCO0VBQ0E7SUFDRSxvQkFBb0I7RUFDdEI7RUFDQTtJQUNFLGVBQWU7SUFDZixXQUFXO0VBQ2I7RUFDQTtJQUNFLFlBQVk7SUFDWixlQUFlO0VBQ2pCO0VBQ0E7SUFDRSxxQkFBcUI7RUFDdkI7RUFDQTtJQUNFLGdCQUFnQjtJQUNoQixXQUFXO0VBQ2I7RUFDQTtJQUNFLFlBQVk7SUFDWixVQUFVO0VBQ1o7RUFDQTtJQUNFLGdCQUFnQjtFQUNsQjtFQUNBO0lBQ0UsV0FBVztJQUNYLFdBQVc7RUFDYjtFQUNBO0lBQ0UsWUFBWTtJQUNaLGVBQWU7RUFDakI7RUFDQTtJQUNFLHFCQUFxQjtFQUN2QjtFQUNBO0lBQ0UsZ0JBQWdCO0lBQ2hCLFdBQVc7RUFDYjtFQUNBO0lBQ0UsWUFBWTtJQUNaLGVBQWU7RUFDakI7RUFDQTtJQUNFLHFCQUFxQjtFQUN2QjtFQUNBO0lBQ0UsZ0JBQWdCO0lBQ2hCLFdBQVc7RUFDYjtFQUNBO0lBQ0UsWUFBWTtJQUNaLFVBQVU7RUFDWjtFQUNBO0lBQ0UsZ0JBQWdCO0VBQ2xCO0VBQ0E7SUFDRSxXQUFXO0lBQ1gsV0FBVztFQUNiO0VBQ0E7SUFDRSxZQUFZO0lBQ1osZUFBZTtFQUNqQjtFQUNBO0lBQ0UscUJBQXFCO0VBQ3ZCO0VBQ0E7SUFDRSxnQkFBZ0I7SUFDaEIsV0FBVztFQUNiO0VBQ0E7SUFDRSxZQUFZO0lBQ1osZUFBZTtFQUNqQjtFQUNBO0lBQ0UscUJBQXFCO0VBQ3ZCO0VBQ0E7SUFDRSxnQkFBZ0I7SUFDaEIsV0FBVztFQUNiO0VBQ0E7SUFDRSxZQUFZO0lBQ1osVUFBVTtFQUNaO0VBQ0E7SUFDRSxnQkFBZ0I7RUFDbEI7RUFDQTtJQUNFLFdBQVc7SUFDWCxXQUFXO0VBQ2I7RUFDQTtJQUNFLFlBQVk7SUFDWixlQUFlO0VBQ2pCO0VBQ0E7SUFDRSxxQkFBcUI7RUFDdkI7RUFDQTtJQUNFLGdCQUFnQjtJQUNoQixXQUFXO0VBQ2I7RUFDQTtJQUNFLFlBQVk7SUFDWixlQUFlO0VBQ2pCO0VBQ0E7SUFDRSxxQkFBcUI7RUFDdkI7RUFDQTtJQUNFLGdCQUFnQjtJQUNoQixXQUFXO0VBQ2I7RUFDQTtJQUNFLFlBQVk7SUFDWixXQUFXO0VBQ2I7RUFDQTtJQUNFLGlCQUFpQjtFQUNuQjtFQUNBO0lBQ0UsWUFBWTtJQUNaLFdBQVc7RUFDYjtBQUNGO0FBQ0E7RUFDRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFnQ0UsV0FBVztJQUNYLFlBQVk7SUFDWixlQUFlO0VBQ2pCO0VBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBZ0NFLFlBQVk7SUFDWixhQUFhO0lBQ2IsZ0JBQWdCO0VBQ2xCO0VBQ0E7SUFDRSx1QkFBdUI7UUFDbkIsb0JBQW9CO1lBQ2hCLGdCQUFnQjtFQUMxQjtFQUNBOzs7Ozs7Ozs7Ozs7OztJQWNFLG1CQUFtQjtRQUNmLGtCQUFrQjtZQUNkLGNBQWM7RUFDeEI7RUFDQTtJQUNFLG1CQUFtQjtRQUNmLGtCQUFrQjtZQUNkLGNBQWM7RUFDeEI7RUFDQTtJQUNFLFlBQVk7SUFDWixTQUFTO0VBQ1g7RUFDQTtJQUNFLGVBQWU7RUFDakI7RUFDQTtJQUNFLFVBQVU7SUFDVixXQUFXO0VBQ2I7RUFDQTtJQUNFLFlBQVk7SUFDWixjQUFjO0VBQ2hCO0VBQ0E7SUFDRSxvQkFBb0I7RUFDdEI7RUFDQTtJQUNFLGVBQWU7SUFDZixXQUFXO0VBQ2I7RUFDQTtJQUNFLFlBQVk7SUFDWixlQUFlO0VBQ2pCO0VBQ0E7SUFDRSxxQkFBcUI7RUFDdkI7RUFDQTtJQUNFLGdCQUFnQjtJQUNoQixXQUFXO0VBQ2I7RUFDQTtJQUNFLFlBQVk7SUFDWixVQUFVO0VBQ1o7RUFDQTtJQUNFLGdCQUFnQjtFQUNsQjtFQUNBO0lBQ0UsV0FBVztJQUNYLFdBQVc7RUFDYjtFQUNBO0lBQ0UsWUFBWTtJQUNaLGVBQWU7RUFDakI7RUFDQTtJQUNFLHFCQUFxQjtFQUN2QjtFQUNBO0lBQ0UsZ0JBQWdCO0lBQ2hCLFdBQVc7RUFDYjtFQUNBO0lBQ0UsWUFBWTtJQUNaLGVBQWU7RUFDakI7RUFDQTtJQUNFLHFCQUFxQjtFQUN2QjtFQUNBO0lBQ0UsZ0JBQWdCO0lBQ2hCLFdBQVc7RUFDYjtFQUNBO0lBQ0UsWUFBWTtJQUNaLFVBQVU7RUFDWjtFQUNBO0lBQ0UsZ0JBQWdCO0VBQ2xCO0VBQ0E7SUFDRSxXQUFXO0lBQ1gsV0FBVztFQUNiO0VBQ0E7SUFDRSxZQUFZO0lBQ1osZUFBZTtFQUNqQjtFQUNBO0lBQ0UscUJBQXFCO0VBQ3ZCO0VBQ0E7SUFDRSxnQkFBZ0I7SUFDaEIsV0FBVztFQUNiO0VBQ0E7SUFDRSxZQUFZO0lBQ1osZUFBZTtFQUNqQjtFQUNBO0lBQ0UscUJBQXFCO0VBQ3ZCO0VBQ0E7SUFDRSxnQkFBZ0I7SUFDaEIsV0FBVztFQUNiO0VBQ0E7SUFDRSxZQUFZO0lBQ1osVUFBVTtFQUNaO0VBQ0E7SUFDRSxnQkFBZ0I7RUFDbEI7RUFDQTtJQUNFLFdBQVc7SUFDWCxXQUFXO0VBQ2I7RUFDQTtJQUNFLFlBQVk7SUFDWixlQUFlO0VBQ2pCO0VBQ0E7SUFDRSxxQkFBcUI7RUFDdkI7RUFDQTtJQUNFLGdCQUFnQjtJQUNoQixXQUFXO0VBQ2I7RUFDQTtJQUNFLFlBQVk7SUFDWixlQUFlO0VBQ2pCO0VBQ0E7SUFDRSxxQkFBcUI7RUFDdkI7RUFDQTtJQUNFLGdCQUFnQjtJQUNoQixXQUFXO0VBQ2I7RUFDQTtJQUNFLFlBQVk7SUFDWixXQUFXO0VBQ2I7RUFDQTtJQUNFLGlCQUFpQjtFQUNuQjtFQUNBO0lBQ0UsWUFBWTtJQUNaLFdBQVc7RUFDYjtBQUNGO0FBQ0E7RUFDRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFnQ0UsV0FBVztJQUNYLFlBQVk7SUFDWixlQUFlO0VBQ2pCO0VBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBZ0NFLFlBQVk7SUFDWixhQUFhO0lBQ2IsZ0JBQWdCO0VBQ2xCO0VBQ0E7SUFDRSx1QkFBdUI7UUFDbkIsb0JBQW9CO1lBQ2hCLGdCQUFnQjtFQUMxQjtFQUNBOzs7Ozs7Ozs7Ozs7OztJQWNFLG1CQUFtQjtRQUNmLGtCQUFrQjtZQUNkLGNBQWM7RUFDeEI7RUFDQTtJQUNFLG1CQUFtQjtRQUNmLGtCQUFrQjtZQUNkLGNBQWM7RUFDeEI7RUFDQTtJQUNFLFlBQVk7SUFDWixTQUFTO0VBQ1g7RUFDQTtJQUNFLGVBQWU7RUFDakI7RUFDQTtJQUNFLFVBQVU7SUFDVixXQUFXO0VBQ2I7RUFDQTtJQUNFLFlBQVk7SUFDWixjQUFjO0VBQ2hCO0VBQ0E7SUFDRSxvQkFBb0I7RUFDdEI7RUFDQTtJQUNFLGVBQWU7SUFDZixXQUFXO0VBQ2I7RUFDQTtJQUNFLFlBQVk7SUFDWixlQUFlO0VBQ2pCO0VBQ0E7SUFDRSxxQkFBcUI7RUFDdkI7RUFDQTtJQUNFLGdCQUFnQjtJQUNoQixXQUFXO0VBQ2I7RUFDQTtJQUNFLFlBQVk7SUFDWixVQUFVO0VBQ1o7RUFDQTtJQUNFLGdCQUFnQjtFQUNsQjtFQUNBO0lBQ0UsV0FBVztJQUNYLFdBQVc7RUFDYjtFQUNBO0lBQ0UsWUFBWTtJQUNaLGVBQWU7RUFDakI7RUFDQTtJQUNFLHFCQUFxQjtFQUN2QjtFQUNBO0lBQ0UsZ0JBQWdCO0lBQ2hCLFdBQVc7RUFDYjtFQUNBO0lBQ0UsWUFBWTtJQUNaLGVBQWU7RUFDakI7RUFDQTtJQUNFLHFCQUFxQjtFQUN2QjtFQUNBO0lBQ0UsZ0JBQWdCO0lBQ2hCLFdBQVc7RUFDYjtFQUNBO0lBQ0UsWUFBWTtJQUNaLFVBQVU7RUFDWjtFQUNBO0lBQ0UsZ0JBQWdCO0VBQ2xCO0VBQ0E7SUFDRSxXQUFXO0lBQ1gsV0FBVztFQUNiO0VBQ0E7SUFDRSxZQUFZO0lBQ1osZUFBZTtFQUNqQjtFQUNBO0lBQ0UscUJBQXFCO0VBQ3ZCO0VBQ0E7SUFDRSxnQkFBZ0I7SUFDaEIsV0FBVztFQUNiO0VBQ0E7SUFDRSxZQUFZO0lBQ1osZUFBZTtFQUNqQjtFQUNBO0lBQ0UscUJBQXFCO0VBQ3ZCO0VBQ0E7SUFDRSxnQkFBZ0I7SUFDaEIsV0FBVztFQUNiO0VBQ0E7SUFDRSxZQUFZO0lBQ1osVUFBVTtFQUNaO0VBQ0E7SUFDRSxnQkFBZ0I7RUFDbEI7RUFDQTtJQUNFLFdBQVc7SUFDWCxXQUFXO0VBQ2I7RUFDQTtJQUNFLFlBQVk7SUFDWixlQUFlO0VBQ2pCO0VBQ0E7SUFDRSxxQkFBcUI7RUFDdkI7RUFDQTtJQUNFLGdCQUFnQjtJQUNoQixXQUFXO0VBQ2I7RUFDQTtJQUNFLFlBQVk7SUFDWixlQUFlO0VBQ2pCO0VBQ0E7SUFDRSxxQkFBcUI7RUFDdkI7RUFDQTtJQUNFLGdCQUFnQjtJQUNoQixXQUFXO0VBQ2I7RUFDQTtJQUNFLFlBQVk7SUFDWixXQUFXO0VBQ2I7RUFDQTtJQUNFLGlCQUFpQjtFQUNuQjtFQUNBO0lBQ0UsWUFBWTtJQUNaLFdBQVc7RUFDYjtBQUNGO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsZUFBZTtFQUNmLE1BQU07RUFDTixRQUFRO0VBQ1IsU0FBUztFQUNULE9BQU87RUFDUCxZQUFZO0VBQ1osYUFBYTtFQUNiLHVCQUF1QjtFQUN2Qiw0Q0FBNEM7RUFDNUMsb0NBQW9DO0FBQ3RDO0FBQ0E7RUFDRSxjQUFjO0VBQ2QsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSw2QkFBNkI7QUFDL0I7QUFDQTs7RUFFRSxXQUFXO0FBQ2I7QUFDQTtFQUNFLG1DQUFtQztFQUNuQywyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLGlDQUFpQztFQUNqQyx5QkFBeUI7QUFDM0I7QUFDQTtFQUVFLHdNQUErSTtFQUEvSSwrSUFBK0k7QUFDako7QUFDQTtFQUNFLGNBQWM7RUFDZCxZQUFZO0FBQ2Q7QUFDQTtFQUNFLGNBQWM7RUFDZCxZQUFZO0FBQ2Q7QUFDQTtFQUNFLGNBQWM7RUFDZCxZQUFZO0FBQ2Q7QUFDQTs7RUFFRSwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLHFDQUFxQztBQUN2QztBQUNBOztFQUVFLHdCQUF3QjtFQUN4QixTQUFTO0FBQ1g7QUFDQTtFQUNFLFVBQVU7RUFDVixjQUFjO0VBQ2QscUJBQXFCO0FBQ3ZCO0FBQ0E7RUFDRSw0Q0FBNEM7QUFDOUM7QUFDQTtFQUNFLGtEQUFrRDtVQUMxQywwQ0FBMEM7QUFDcEQ7QUFDQTtFQUNFLDRCQUE0QjtFQUM1QixvQkFBb0I7QUFDdEI7QUFDQTs7RUFFRSw2REFBNkQ7VUFDckQscURBQXFEO0FBQy9EO0FBQ0E7RUFDRSw0QkFBNEI7QUFDOUI7QUFDQTtFQUNFLHVFQUF1RTtVQUMvRCwrREFBK0Q7QUFDekU7QUFDQTtFQUNFLDhDQUE4QztVQUN0QyxzQ0FBc0M7QUFDaEQ7QUFDQTtFQUNFLGdEQUFnRDtVQUN4Qyx3Q0FBd0M7QUFDbEQ7QUFDQTtFQUNFLCtDQUErQztVQUN2Qyx1Q0FBdUM7QUFDakQ7QUFDQTtFQUNFLHdEQUF3RDtVQUNoRCxnREFBZ0Q7QUFDMUQ7QUFDQTtFQUNFLGdDQUFnQztVQUN4Qix3QkFBd0I7RUFDaEMsbUVBQW1FO1VBQzNELDJEQUEyRDtBQUNyRTtBQUNBOztFQUVFLGlFQUFpRTtVQUN6RCx5REFBeUQ7QUFDbkU7QUFDQTs7RUFFRSxzRUFBc0U7VUFDOUQsOERBQThEO0FBQ3hFO0FBQ0E7RUFDRSxzREFBc0Q7VUFDOUMsOENBQThDO0VBQ3RELHVEQUF1RDtVQUMvQywrQ0FBK0M7QUFDekQ7QUFDQTtFQUNFLG9EQUFvRDtVQUM1Qyw0Q0FBNEM7RUFDcEQsMERBQTBEO1VBQ2xELGtEQUFrRDtBQUM1RDtBQUNBO0VBQ0UsK0ZBQStGO1VBQ3ZGLHVGQUF1RjtBQUNqRztBQUNBO0VBQ0UsZ0dBQWdHO1VBQ3hGLHdGQUF3RjtBQUNsRztBQUNBO0VBQ0UsOEJBQThCO1VBQ3RCLHNCQUFzQjtFQUM5QixpQ0FBaUM7VUFDekIseUJBQXlCO0FBQ25DO0FBQ0E7RUFDRSwyQ0FBMkM7VUFDbkMsbUNBQW1DO0FBQzdDO0FBQ0E7RUFDRSw4QkFBOEI7VUFDdEIsc0JBQXNCO0FBQ2hDO0FBQ0E7Ozs7RUFJRSxpQ0FBaUM7VUFDekIseUJBQXlCO0FBQ25DO0FBQ0E7RUFDRSxvQ0FBb0M7S0FDakMsaUNBQWlDO01BQ2hDLGdDQUFnQztVQUM1Qiw0QkFBNEI7QUFDdEM7QUFDQTtFQUNFLGNBQWM7QUFDaEI7QUFDQTs7O0VBR0UsaUNBQWlDO0VBQ2pDLDRCQUE0QjtBQUM5QjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsK0JBQStCO0FBQ2pDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLGlEQUFpRDtVQUN6Qyx5Q0FBeUM7QUFDbkQ7QUFDQTtFQUNFLGlEQUFpRDtVQUN6Qyx5Q0FBeUM7QUFDbkQ7QUFDQTtFQUNFLGtEQUFrRDtVQUMxQywwQ0FBMEM7QUFDcEQ7QUFDQTtFQUNFLGtEQUFrRDtVQUMxQywwQ0FBMEM7QUFDcEQ7QUFDQTtFQUNFLGtEQUFrRDtVQUMxQywwQ0FBMEM7QUFDcEQ7QUFDQTtFQUNFLGtEQUFrRDtVQUMxQywwQ0FBMEM7QUFDcEQ7QUFDQTtFQUNFLGtEQUFrRDtVQUMxQywwQ0FBMEM7QUFDcEQ7QUFDQTtFQUNFLCtCQUErQjtVQUN2Qix1QkFBdUI7QUFDakM7QUFDQTtFQUNFLCtCQUErQjtVQUN2Qix1QkFBdUI7QUFDakM7QUFDQTtFQUNFLFdBQVc7QUFDYjtBQUNBO0VBQ0UsWUFBWTtBQUNkO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTs7Ozs7Ozs7Ozs7RUFXRSxlQUFlO0FBQ2pCO0FBQ0E7Ozs7Ozs7Ozs7O0VBV0Usa0JBQWtCO0FBQ3BCO0FBQ0E7O0VBRUUsTUFBTTtFQUNOLE9BQU87RUFDUCxRQUFRO0FBQ1Y7QUFDQTs7RUFFRSxNQUFNO0VBQ04sUUFBUTtFQUNSLFNBQVM7QUFDWDtBQUNBOztFQUVFLFFBQVE7RUFDUixTQUFTO0VBQ1QsT0FBTztBQUNUO0FBQ0E7O0VBRUUsTUFBTTtFQUNOLFNBQVM7RUFDVCxPQUFPO0FBQ1Q7QUFDQTs7RUFFRSxNQUFNO0VBQ04sT0FBTztBQUNUO0FBQ0E7O0VBRUUsTUFBTTtFQUNOLFFBQVE7QUFDVjtBQUNBOztFQUVFLFNBQVM7RUFDVCxPQUFPO0FBQ1Q7QUFDQTs7RUFFRSxTQUFTO0VBQ1QsUUFBUTtBQUNWO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsMkJBQTJCO0VBQzNCLGdCQUFnQjtFQUNoQixpQkFBaUI7QUFDbkI7QUFDQTs7RUFFRSxNQUFNO0VBQ04sUUFBUTtFQUNSLFNBQVM7RUFDVCxPQUFPO0FBQ1Q7QUFDQTs7RUFFRSxRQUFRO0VBQ1IsU0FBUztFQUNULHdDQUF3QztVQUNoQyxnQ0FBZ0M7QUFDMUM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsaUNBQWlDO0FBQ25DO0FBQ0E7RUFDRSxpQ0FBaUM7QUFDbkM7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxNQUFNO0VBQ04sT0FBTztFQUNQLFdBQVc7RUFDWCxZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCxzQkFBc0I7RUFDdEIsZ0JBQWdCO0VBQ2hCLFVBQVU7RUFDVixvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLE1BQU07RUFDTix3QkFBd0I7RUFDeEIsVUFBVTtFQUNWLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLHdCQUF3QjtFQUN4QiwwSEFBMEg7RUFDMUgsa0hBQWtIO0VBQ2xILDBHQUEwRztFQUMxRyxtS0FBbUs7RUFDbkssb0JBQW9CO0VBQ3BCLGdCQUFnQjtFQUNoQiwrQkFBK0I7QUFDakM7QUFDQTtFQUNFLHdCQUF3QjtFQUN4QixnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtFQUNsQixvQkFBb0I7RUFDcEIsa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxVQUFVO0VBQ1YsV0FBVztFQUNYLFlBQVk7QUFDZDtBQUNBO0VBQ0UsV0FBVztFQUNYLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxRQUFRO0VBQ1IsU0FBUztFQUNULCtFQUErRTtFQUMvRSw0QkFBNEI7RUFDNUIsd0JBQXdCO0VBQ3hCLGdDQUFnQztVQUN4Qix3QkFBd0I7RUFDaEMsVUFBVTtFQUNWLHNEQUFzRDtFQUN0RCw4Q0FBOEM7RUFDOUMsc0NBQXNDO0VBQ3RDLDhEQUE4RDtBQUNoRTtBQUNBO0VBQ0UsOEJBQThCO1VBQ3RCLHNCQUFzQjtFQUM5QixZQUFZO0VBQ1osc0JBQXNCO0VBQ3RCLGNBQWM7QUFDaEI7QUFDQTtFQUNFLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLHNCQUFzQjtFQUN0Qix1QkFBdUI7QUFDekI7QUFDQTtFQUNFLHVCQUF1QjtBQUN6QjtBQUNBO0VBQ0Usc0JBQXNCO0VBQ3RCLHlCQUF5QjtFQUN6QiwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLHdCQUF3QjtFQUN4QiwyQkFBMkI7RUFDM0Isd0JBQXdCO0FBQzFCO0FBQ0E7RUFDRSx5QkFBeUI7RUFDekIsMEJBQTBCO0VBQzFCLHVCQUF1QjtBQUN6QjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxnQ0FBZ0M7QUFDbEM7QUFDQTtFQUNFLFlBQVk7QUFDZDtBQUNBOztFQUVFLGVBQWU7QUFDakI7QUFDQTs7RUFFRSxnQkFBZ0I7QUFDbEI7QUFDQTs7RUFFRSxjQUFjO0FBQ2hCO0FBQ0E7O0VBRUUsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxXQUFXO0FBQ2I7QUFDQTs7RUFFRSxjQUFjO0FBQ2hCO0FBQ0E7O0VBRUUsZUFBZTtBQUNqQjtBQUNBOztFQUVFLGFBQWE7QUFDZjtBQUNBOztFQUVFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7O0VBRUUsaUJBQWlCO0FBQ25CO0FBQ0E7O0VBRUUsa0JBQWtCO0FBQ3BCO0FBQ0E7O0VBRUUsZ0JBQWdCO0FBQ2xCO0FBQ0E7O0VBRUUsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7O0VBRUUsZ0JBQWdCO0FBQ2xCO0FBQ0E7O0VBRUUsaUJBQWlCO0FBQ25CO0FBQ0E7O0VBRUUsZUFBZTtBQUNqQjtBQUNBOztFQUVFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7O0VBRUUsaUJBQWlCO0FBQ25CO0FBQ0E7O0VBRUUsa0JBQWtCO0FBQ3BCO0FBQ0E7O0VBRUUsZ0JBQWdCO0FBQ2xCO0FBQ0E7O0VBRUUsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7O0VBRUUsZ0JBQWdCO0FBQ2xCO0FBQ0E7O0VBRUUsaUJBQWlCO0FBQ25CO0FBQ0E7O0VBRUUsZUFBZTtBQUNqQjtBQUNBOztFQUVFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7O0VBRUUsa0JBQWtCO0FBQ3BCO0FBQ0E7O0VBRUUsbUJBQW1CO0FBQ3JCO0FBQ0E7O0VBRUUsaUJBQWlCO0FBQ25CO0FBQ0E7O0VBRUUsb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7QUFDQTs7RUFFRSxpQkFBaUI7QUFDbkI7QUFDQTs7RUFFRSxrQkFBa0I7QUFDcEI7QUFDQTs7RUFFRSxnQkFBZ0I7QUFDbEI7QUFDQTs7RUFFRSxtQkFBbUI7QUFDckI7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBOztFQUVFLGtCQUFrQjtBQUNwQjtBQUNBOztFQUVFLG1CQUFtQjtBQUNyQjtBQUNBOztFQUVFLGlCQUFpQjtBQUNuQjtBQUNBOztFQUVFLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7O0VBRUUsaUJBQWlCO0FBQ25CO0FBQ0E7O0VBRUUsa0JBQWtCO0FBQ3BCO0FBQ0E7O0VBRUUsZ0JBQWdCO0FBQ2xCO0FBQ0E7O0VBRUUsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTs7RUFFRSxrQkFBa0I7QUFDcEI7QUFDQTs7RUFFRSxtQkFBbUI7QUFDckI7QUFDQTs7RUFFRSxpQkFBaUI7QUFDbkI7QUFDQTs7RUFFRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBOztFQUVFLGlCQUFpQjtBQUNuQjtBQUNBOztFQUVFLGtCQUFrQjtBQUNwQjtBQUNBOztFQUVFLGdCQUFnQjtBQUNsQjtBQUNBOztFQUVFLG1CQUFtQjtBQUNyQjtBQUNBOztFQUVFLGlCQUFpQjtBQUNuQjtBQUNBOztFQUVFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UseUJBQXlCO0tBQ3RCLHNCQUFzQjtNQUNyQixxQkFBcUI7VUFDakIsaUJBQWlCO0VBQ3pCLGVBQWU7RUFDZixzQkFBc0I7RUFDdEIsdUJBQXVCO0FBQ3pCO0FBQ0E7RUFDRSx1QkFBdUI7TUFDbkIsbUJBQW1CO0FBQ3pCO0FBQ0E7RUFDRSx1QkFBdUI7TUFDbkIsbUJBQW1CO0FBQ3pCO0FBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsc0ZBQXNGO0VBQ3RGLDBCQUEwQjtFQUMxQiw4QkFBOEI7RUFDOUIsbUNBQW1DO0VBQ25DLGtDQUFrQztFQUNsQywyQkFBMkI7RUFDM0IsZ0JBQWdCO0VBQ2hCLGNBQWM7RUFDZCxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLHVCQUF1QjtBQUN6QjtBQUNBO0VBQ0U7SUFDRSxpQkFBaUI7RUFDbkI7QUFDRjtBQUNBO0VBQ0UsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsdUJBQXVCO0FBQ3pCO0FBQ0E7RUFDRTtJQUNFLGlCQUFpQjtFQUNuQjtBQUNGO0FBQ0E7RUFDRSxlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixzQkFBc0I7QUFDeEI7QUFDQTtFQUNFO0lBQ0UsZUFBZTtFQUNqQjtBQUNGO0FBQ0E7RUFDRSxlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixzQkFBc0I7QUFDeEI7QUFDQTtFQUNFO0lBQ0UsaUJBQWlCO0VBQ25CO0FBQ0Y7QUFDQTtFQUNFLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0U7SUFDRSwrQkFBK0I7RUFDakM7QUFDRjtBQUNBO0VBQ0UsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsc0JBQXNCO0FBQ3hCO0FBQ0E7RUFDRTtJQUNFLGVBQWU7RUFDakI7QUFDRjtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQix1QkFBdUI7QUFDekI7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0UsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsdUJBQXVCO0FBQ3pCO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSxlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0UsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsc0JBQXNCO0FBQ3hCO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSxlQUFlO0VBQ2YsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLGVBQWU7RUFDZixnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0UsZUFBZTtFQUNmLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSxlQUFlO0VBQ2YsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsaUJBQWlCO0VBQ2pCLFVBQVU7RUFDVixnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLG1CQUFtQjtFQUNuQixxQkFBcUI7TUFDakIsaUJBQWlCO1VBQ2IsYUFBYTtBQUN2QjtBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsY0FBYztBQUNoQjtBQUNBO0VBQ0UsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsV0FBVztBQUNiO0FBQ0E7RUFDRSxpQkFBaUI7RUFDakIsU0FBUztFQUNULGVBQWU7RUFDZiw4QkFBOEI7RUFDOUIsNkNBQTZDO0FBQy9DO0FBQ0E7RUFDRSxtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLCtCQUErQjtFQUMvQiw4Q0FBOEM7RUFDOUMsY0FBYztFQUNkLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsY0FBYztFQUNkLGdCQUFnQjtFQUNoQixXQUFXO0VBQ1gsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSxzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsOEJBQThCO0VBQzlCLDZDQUE2QztBQUMvQztBQUNBO0VBQ0UsbUJBQW1CO0VBQ25CLGVBQWU7RUFDZiwrQkFBK0I7RUFDL0IsOENBQThDO0VBQzlDLGNBQWM7RUFDZCxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsY0FBYztBQUNoQjtBQUNBOztFQUVFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsV0FBVztFQUNYLFVBQVU7RUFDVixXQUFXO0VBQ1gsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQix1QkFBdUI7RUFDdkIsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTs7RUFFRSxXQUFXO0VBQ1gsZUFBZTtFQUNmLGNBQWM7RUFDZCxZQUFZO0VBQ1osV0FBVztFQUNYLDRCQUE0QjtBQUM5QjtBQUNBO0VBQ0Usa0NBQWtDO0FBQ3BDO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLHFCQUFxQjtBQUN2QjtBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLG1DQUFtQztVQUMzQiwyQkFBMkI7QUFDckM7QUFDQTtFQUNFLHFCQUFxQjtBQUN2QjtBQUNBO0VBQ0UsdUJBQXVCO0VBQ3ZCLG1CQUFtQjtFQUNuQixnQkFBZ0I7QUFDbEI7QUFDQTs7RUFFRSxnQkFBZ0I7RUFDaEIsb0JBQW9CO0VBQ3BCLDRCQUE0QjtBQUM5QjtBQUNBO0VBQ0UscUJBQXFCO0FBQ3ZCO0FBQ0E7RUFDRSxxQkFBcUI7QUFDdkI7QUFDQTtFQUNFLDBCQUEwQjtBQUM1QjtBQUNBOzs7O0VBSUUsOEJBQThCO0FBQ2hDO0FBQ0E7O0VBRUUsdUJBQXVCO0FBQ3pCO0FBQ0E7RUFDRSx3QkFBd0I7QUFDMUI7QUFDQTtFQUNFLDZCQUE2QjtBQUMvQjtBQUNBO0VBQ0Usa0NBQWtDO0FBQ3BDO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsNkJBQTZCO0FBQy9CO0FBQ0E7O0VBRUUsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sUUFBUTtFQUNSLFNBQVM7RUFDVCxPQUFPO0FBQ1Q7QUFDQTtFQUNFLHNDQUFzQztBQUN4QztBQUNBO0VBQ0UsNENBQTRDO0FBQzlDO0FBQ0E7RUFDRSx3QkFBd0I7QUFDMUI7QUFDQTtFQUNFLHdCQUF3QjtBQUMxQjtBQUNBOztFQUVFLHdCQUF3QjtBQUMxQjtBQUNBOztFQUVFLHdCQUF3QjtBQUMxQjtBQUNBOztFQUVFLHdCQUF3QjtBQUMxQjtBQUNBOztFQUVFLHdCQUF3QjtBQUMxQjtBQUNBOztFQUVFLHdCQUF3QjtBQUMxQjtBQUNBOztFQUVFLHdCQUF3QjtBQUMxQjtBQUNBOztFQUVFLHdCQUF3QjtBQUMxQjtBQUNBOztFQUVFLHdCQUF3QjtBQUMxQjtBQUNBOztFQUVFLHdCQUF3QjtBQUMxQjtBQUNBOztFQUVFLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0U7SUFDRSx3QkFBd0I7RUFDMUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSx3QkFBd0I7RUFDMUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSx3QkFBd0I7RUFDMUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSx3QkFBd0I7RUFDMUI7QUFDRjtBQUNBO0VBQ0U7Ozs7Ozs7OztJQVNFLHdCQUF3QjtFQUMxQjtBQUNGO0FBQ0E7RUFDRTs7Ozs7Ozs7O0lBU0Usd0JBQXdCO0VBQzFCO0FBQ0Y7QUFDQTtFQUNFOzs7Ozs7Ozs7SUFTRSx3QkFBd0I7RUFDMUI7QUFDRjtBQUNBO0VBQ0U7Ozs7Ozs7OztJQVNFLHdCQUF3QjtFQUMxQjtBQUNGO0FBQ0E7RUFDRTs7Ozs7Ozs7O0lBU0Usd0JBQXdCO0VBQzFCO0FBQ0Y7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sd0JBQXdCO0VBQ3hCLFdBQVc7RUFDWCxZQUFZO0VBQ1osb0JBQW9CO0VBQ3BCLHNCQUFzQjtFQUN0QixhQUFhO0VBQ2IseUVBQXlFO0VBQ3pFLGlFQUFpRTtBQUNuRTtBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTs7RUFFRSx3QkFBd0I7QUFDMUI7QUFDQTtFQUNFLHdCQUF3QjtFQUN4QixZQUFZO0FBQ2Q7QUFDQTtFQUNFO0lBQ0UsNkJBQTZCO1FBQ3pCLGdCQUFnQjtJQUNwQiwyQkFBMkI7SUFDM0IsMkJBQTJCO0lBQzNCLG9CQUFvQjtFQUN0QjtFQUNBO0lBQ0UsNkJBQTZCO1FBQ3pCLGdCQUFnQjtFQUN0QjtFQUNBO0lBQ0UsZUFBZTtJQUNmLHNDQUFzQztRQUNsQyx5QkFBeUI7RUFDL0I7RUFDQTtJQUNFLGNBQWM7RUFDaEI7RUFDQTtJQUNFLFFBQVE7RUFDVjtFQUNBO0lBQ0UsY0FBYztJQUNkLG1CQUFtQjtFQUNyQjtFQUNBOzs7SUFHRSxXQUFXO0VBQ2I7RUFDQTtJQUNFLGVBQWU7RUFDakI7RUFDQTtJQUNFLDZCQUE2QjtRQUN6QixnQkFBZ0I7RUFDdEI7RUFDQTtJQUNFLGNBQWM7RUFDaEI7RUFDQTtJQUNFLFdBQVc7RUFDYjtFQUNBO0lBQ0UsNkJBQTZCO1FBQ3pCLGdCQUFnQjtFQUN0QjtFQUNBOztJQUVFLHlCQUF5QjtFQUMzQjtFQUNBOztJQUVFLHlCQUF5QjtFQUMzQjtFQUNBOztJQUVFLHlCQUF5QjtFQUMzQjtFQUNBOztJQUVFLFNBQVM7RUFDWDtFQUNBO0lBQ0UsaUJBQWlCO0VBQ25CO0VBQ0E7SUFDRSxxQkFBcUI7RUFDdkI7RUFDQTtJQUNFLG1CQUFtQjtFQUNyQjtFQUNBOztJQUVFLGNBQWM7SUFDZCxtQkFBbUI7RUFDckI7RUFDQTtJQUNFLGNBQWM7RUFDaEI7RUFDQTtJQUNFLGVBQWU7SUFDZixnQkFBZ0I7RUFDbEI7RUFDQTtJQUNFLDJCQUEyQjtJQUMzQixnQkFBZ0I7RUFDbEI7QUFDRjtBQUNBO0VBQ0U7SUFDRSw2QkFBNkI7UUFDekIsZ0JBQWdCO0lBQ3BCLDJCQUEyQjtJQUMzQiwyQkFBMkI7SUFDM0Isb0JBQW9CO0VBQ3RCO0VBQ0E7SUFDRSw2QkFBNkI7UUFDekIsZ0JBQWdCO0VBQ3RCO0VBQ0E7SUFDRSxlQUFlO0lBQ2Ysc0NBQXNDO1FBQ2xDLHlCQUF5QjtFQUMvQjtFQUNBO0lBQ0UsY0FBYztFQUNoQjtFQUNBO0lBQ0UsUUFBUTtFQUNWO0VBQ0E7SUFDRSxjQUFjO0lBQ2QsbUJBQW1CO0VBQ3JCO0VBQ0E7OztJQUdFLFdBQVc7RUFDYjtFQUNBO0lBQ0UsZUFBZTtFQUNqQjtFQUNBO0lBQ0UsNkJBQTZCO1FBQ3pCLGdCQUFnQjtFQUN0QjtFQUNBO0lBQ0UsY0FBYztFQUNoQjtFQUNBO0lBQ0UsV0FBVztFQUNiO0VBQ0E7SUFDRSw2QkFBNkI7UUFDekIsZ0JBQWdCO0VBQ3RCO0VBQ0E7O0lBRUUseUJBQXlCO0VBQzNCO0VBQ0E7O0lBRUUseUJBQXlCO0VBQzNCO0VBQ0E7O0lBRUUseUJBQXlCO0VBQzNCO0VBQ0E7O0lBRUUsU0FBUztFQUNYO0VBQ0E7SUFDRSxpQkFBaUI7RUFDbkI7RUFDQTtJQUNFLHFCQUFxQjtFQUN2QjtFQUNBO0lBQ0UsbUJBQW1CO0VBQ3JCO0VBQ0E7O0lBRUUsY0FBYztJQUNkLG1CQUFtQjtFQUNyQjtFQUNBO0lBQ0UsY0FBYztFQUNoQjtFQUNBO0lBQ0UsZUFBZTtJQUNmLGdCQUFnQjtFQUNsQjtFQUNBO0lBQ0UsMkJBQTJCO0lBQzNCLGdCQUFnQjtFQUNsQjtBQUNGO0FBQ0E7RUFDRTtJQUNFLHVCQUF1QjtJQUN2QixjQUFjO0VBQ2hCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsdUJBQXVCO0lBQ3ZCLGNBQWM7RUFDaEI7QUFDRjtBQUNBO0VBQ0U7SUFDRSx1QkFBdUI7RUFDekI7QUFDRjtBQUNBO0VBQ0U7SUFDRSx1QkFBdUI7RUFDekI7QUFDRjtBQUNBO0VBQ0U7SUFDRSxVQUFVO0lBQ1YsV0FBVztFQUNiO0VBQ0E7SUFDRSxVQUFVO0lBQ1YsV0FBVztFQUNiO0VBQ0E7SUFDRSxVQUFVO0lBQ1YsV0FBVztFQUNiO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsVUFBVTtJQUNWLFdBQVc7RUFDYjtFQUNBO0lBQ0UsVUFBVTtJQUNWLFdBQVc7RUFDYjtFQUNBO0lBQ0UsVUFBVTtJQUNWLFdBQVc7RUFDYjtBQUNGO0FBQ0E7RUFDRTtJQUNFLFdBQVc7SUFDWCxXQUFXO0VBQ2I7RUFDQTtJQUNFLFVBQVU7SUFDVixVQUFVO0VBQ1o7RUFDQTtJQUNFLFVBQVU7SUFDVixVQUFVO0VBQ1o7QUFDRjtBQUNBO0VBQ0U7SUFDRSxXQUFXO0lBQ1gsV0FBVztFQUNiO0VBQ0E7SUFDRSxVQUFVO0lBQ1YsVUFBVTtFQUNaO0VBQ0E7SUFDRSxVQUFVO0lBQ1YsVUFBVTtFQUNaO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0VBQ0E7SUFDRSx3QkFBd0I7RUFDMUI7QUFDRjtBQUNBO0VBQ0U7SUFDRSwyQkFBMkI7RUFDN0I7RUFDQTtJQUNFLHdCQUF3QjtFQUMxQjtBQUNGO0FBQ0E7RUFDRTtJQUNFLHdCQUF3QjtJQUN4QixvQkFBb0I7RUFDdEI7RUFDQTtJQUNFLHlCQUF5QjtJQUN6Qix3QkFBd0I7RUFDMUI7RUFDQTtJQUNFLHlCQUF5QjtJQUN6Qix5QkFBeUI7RUFDM0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSx3QkFBd0I7SUFDeEIsb0JBQW9CO0VBQ3RCO0VBQ0E7SUFDRSx5QkFBeUI7SUFDekIsd0JBQXdCO0VBQzFCO0VBQ0E7SUFDRSx5QkFBeUI7SUFDekIseUJBQXlCO0VBQzNCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsbUJBQW1CO0VBQ3JCO0VBQ0E7SUFDRSx1QkFBdUI7RUFDekI7QUFDRjtBQUNBO0VBQ0U7SUFDRSxtQkFBbUI7RUFDckI7RUFDQTtJQUNFLHVCQUF1QjtFQUN6QjtBQUNGO0FBQ0E7RUFDRTtJQUNFLDZDQUE2QztZQUNyQyxxQ0FBcUM7RUFDL0M7RUFDQTtJQUNFLGlEQUFpRDtZQUN6Qyx5Q0FBeUM7RUFDbkQ7RUFDQTtJQUNFLGtEQUFrRDtZQUMxQywwQ0FBMEM7RUFDcEQ7RUFDQTtJQUNFLGtEQUFrRDtZQUMxQywwQ0FBMEM7RUFDcEQ7RUFDQTtJQUNFLGtEQUFrRDtZQUMxQywwQ0FBMEM7RUFDcEQ7QUFDRjtBQUNBO0VBQ0U7SUFDRSw2Q0FBNkM7WUFDckMscUNBQXFDO0VBQy9DO0VBQ0E7SUFDRSxpREFBaUQ7WUFDekMseUNBQXlDO0VBQ25EO0VBQ0E7SUFDRSxrREFBa0Q7WUFDMUMsMENBQTBDO0VBQ3BEO0VBQ0E7SUFDRSxrREFBa0Q7WUFDMUMsMENBQTBDO0VBQ3BEO0VBQ0E7SUFDRSxrREFBa0Q7WUFDMUMsMENBQTBDO0VBQ3BEO0FBQ0Y7QUFDQTtFQUNFO0lBQ0Usa0JBQWtCO0VBQ3BCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0Usa0JBQWtCO0VBQ3BCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsZ0RBQWdEO1lBQ3hDLHdDQUF3QztFQUNsRDtFQUNBO0lBQ0Usa0RBQWtEO1lBQzFDLDBDQUEwQztFQUNwRDtBQUNGO0FBQ0E7RUFDRTtJQUNFLGdEQUFnRDtZQUN4Qyx3Q0FBd0M7RUFDbEQ7RUFDQTtJQUNFLGtEQUFrRDtZQUMxQywwQ0FBMEM7RUFDcEQ7QUFDRjtBQUNBO0VBQ0U7SUFDRSxVQUFVO0lBQ1YsNkJBQTZCO1lBQ3JCLHFCQUFxQjtFQUMvQjtFQUNBO0lBQ0UsVUFBVTtJQUNWLDhCQUE4QjtZQUN0QixzQkFBc0I7RUFDaEM7RUFDQTtJQUNFLDJCQUEyQjtZQUNuQixtQkFBbUI7RUFDN0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSxVQUFVO0lBQ1YsNkJBQTZCO1lBQ3JCLHFCQUFxQjtFQUMvQjtFQUNBO0lBQ0UsVUFBVTtJQUNWLDhCQUE4QjtZQUN0QixzQkFBc0I7RUFDaEM7RUFDQTtJQUNFLDJCQUEyQjtZQUNuQixtQkFBbUI7RUFDN0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSxVQUFVO0VBQ1o7RUFDQTtJQUNFLFVBQVU7RUFDWjtBQUNGO0FBQ0E7RUFDRTtJQUNFLFVBQVU7RUFDWjtFQUNBO0lBQ0UsVUFBVTtFQUNaO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsVUFBVTtJQUNWLDZCQUE2QjtZQUNyQixxQkFBcUI7RUFDL0I7RUFDQTtJQUNFLFVBQVU7SUFDViwyQkFBMkI7WUFDbkIsbUJBQW1CO0VBQzdCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsVUFBVTtJQUNWLDZCQUE2QjtZQUNyQixxQkFBcUI7RUFDL0I7RUFDQTtJQUNFLFVBQVU7SUFDViwyQkFBMkI7WUFDbkIsbUJBQW1CO0VBQzdCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsZ0NBQWdDO1lBQ3hCLHdCQUF3QjtFQUNsQztFQUNBO0lBQ0Usb0NBQW9DO1lBQzVCLDRCQUE0QjtFQUN0QztFQUNBO0lBQ0Usb0NBQW9DO1lBQzVCLDRCQUE0QjtFQUN0QztBQUNGO0FBQ0E7RUFDRTtJQUNFLGdDQUFnQztZQUN4Qix3QkFBd0I7RUFDbEM7RUFDQTtJQUNFLG9DQUFvQztZQUM1Qiw0QkFBNEI7RUFDdEM7RUFDQTtJQUNFLG9DQUFvQztZQUM1Qiw0QkFBNEI7RUFDdEM7QUFDRjtBQUNBO0VBQ0U7SUFDRSwyQkFBMkI7WUFDbkIsbUJBQW1CO0VBQzdCO0VBQ0E7SUFDRSw4QkFBOEI7WUFDdEIsc0JBQXNCO0VBQ2hDO0VBQ0E7SUFDRSwyQkFBMkI7WUFDbkIsbUJBQW1CO0VBQzdCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsMkJBQTJCO1lBQ25CLG1CQUFtQjtFQUM3QjtFQUNBO0lBQ0UsOEJBQThCO1lBQ3RCLHNCQUFzQjtFQUNoQztFQUNBO0lBQ0UsMkJBQTJCO1lBQ25CLG1CQUFtQjtFQUM3QjtBQUNGO0FBQ0E7RUFDRTtJQUNFLFVBQVU7SUFDVixnREFBZ0Q7WUFDeEMsd0NBQXdDO0lBQ2hELG9CQUFvQjtFQUN0QjtFQUNBO0lBQ0UsVUFBVTtFQUNaO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsVUFBVTtJQUNWLGdEQUFnRDtZQUN4Qyx3Q0FBd0M7SUFDaEQsb0JBQW9CO0VBQ3RCO0VBQ0E7SUFDRSxVQUFVO0VBQ1o7QUFDRjtBQUNBO0VBQ0U7SUFDRSxVQUFVO0lBQ1YsK0NBQStDO1lBQ3ZDLHVDQUF1QztJQUMvQyxvQkFBb0I7RUFDdEI7RUFDQTtJQUNFLFVBQVU7RUFDWjtBQUNGO0FBQ0E7RUFDRTtJQUNFLFVBQVU7SUFDViwrQ0FBK0M7WUFDdkMsdUNBQXVDO0lBQy9DLG9CQUFvQjtFQUN0QjtFQUNBO0lBQ0UsVUFBVTtFQUNaO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsbUNBQW1DO1lBQzNCLDJCQUEyQjtFQUNyQztBQUNGO0FBQ0E7RUFDRTtJQUNFLG1DQUFtQztZQUMzQiwyQkFBMkI7RUFDckM7QUFDRjtBQUNBO0VBQ0U7SUFDRSxrQ0FBa0M7WUFDMUIsMEJBQTBCO0VBQ3BDO0FBQ0Y7QUFDQTtFQUNFO0lBQ0Usa0NBQWtDO1lBQzFCLDBCQUEwQjtFQUNwQztBQUNGXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi8qXFxuICogUXVhc2FyIEZyYW1ld29yayB2MC4xNy4yMFxcbiAqIChjKSAyMDE2LXByZXNlbnQgUmF6dmFuIFN0b2VuZXNjdVxcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cXG4gKi9cXG4qLFxcbio6YmVmb3JlLFxcbio6YWZ0ZXIge1xcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBpbmhlcml0O1xcbiAgICAgICAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIC1tb3otdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbmh0bWwsXFxuYm9keSxcXG4jcS1hcHAge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBkaXJlY3Rpb246IGx0cjtcXG59XFxuaHRtbCxcXG5ib2R5IHtcXG4gIG1hcmdpbjogMDtcXG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG59XFxuaW5wdXRbdHlwZT0ndGV4dCddLFxcbmlucHV0W3R5cGU9J2VtYWlsJ10sXFxuaW5wdXRbdHlwZT0nc2VhcmNoJ10sXFxuaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XFxuICAtbW96LWFwcGVhcmFuY2U6IG5vbmUgLyogbW9iaWxlIGZpcmVmb3ggdG9vISAqLztcXG59XFxuYXJ0aWNsZSxcXG5hc2lkZSxcXG5kZXRhaWxzLFxcbmZpZ2NhcHRpb24sXFxuZmlndXJlLFxcbmZvb3RlcixcXG5oZWFkZXIsXFxubWFpbixcXG5tZW51LFxcbm5hdixcXG5zZWN0aW9uLFxcbnN1bW1hcnkge1xcbiAgZGlzcGxheTogYmxvY2s7XFxufVxcbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XFxuICBkaXNwbGF5OiBub25lO1xcbiAgaGVpZ2h0OiAwO1xcbn1cXG5hYmJyW3RpdGxlXSB7XFxuICBib3JkZXItYm90dG9tOiBub25lO1xcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XFxuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbn1cXG5kZm4ge1xcbiAgZm9udC1zdHlsZTogaXRhbGljO1xcbn1cXG5pbWcge1xcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xcbn1cXG5zdmc6bm90KDpyb290KSB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG5jb2RlLFxcbmtiZCxcXG5wcmUsXFxuc2FtcCB7XFxuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XFxuICBmb250LXNpemU6IDFlbTtcXG59XFxuaHIge1xcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG4gICAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICBoZWlnaHQ6IDA7XFxuICBvdmVyZmxvdzogdmlzaWJsZTtcXG59XFxuYnV0dG9uLFxcbmlucHV0LFxcbnNlbGVjdCxcXG50ZXh0YXJlYSB7XFxuICBmb250OiBpbmhlcml0O1xcbiAgbWFyZ2luOiAwO1xcbn1cXG5vcHRncm91cCB7XFxuICBmb250LXdlaWdodDogYm9sZDtcXG59XFxuYnV0dG9uLFxcbmlucHV0LFxcbnNlbGVjdCB7XFxuICBvdmVyZmxvdzogdmlzaWJsZTtcXG59XFxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcXG4gIGJvcmRlcjogMDtcXG4gIHBhZGRpbmc6IDA7XFxufVxcbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcXG5pbnB1dDotbW96LWZvY3VzcmluZyB7XFxuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XFxufVxcbnRleHRhcmVhIHtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbn1cXG5pbnB1dFt0eXBlPSdzZWFyY2gnXSB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcXG59XFxuaW5wdXRbdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXFxuaW5wdXRbdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbn1cXG4ucS1pY29uIHtcXG4gIGxpbmUtaGVpZ2h0OiAxO1xcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIHdvcmQtd3JhcDogbm9ybWFsO1xcbiAgZGlyZWN0aW9uOiBsdHI7XFxufVxcbi5xLWljb24sXFxuLm1hdGVyaWFsLWljb25zIHtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICBjdXJzb3I6IGluaGVyaXQ7XFxuICBmb250LXNpemU6IGluaGVyaXQ7XFxuICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XFxuICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG59XFxuLnEtYWN0aW9uc2hlZXQtdGl0bGUge1xcbiAgbWluLWhlaWdodDogNTZweDtcXG4gIHBhZGRpbmc6IDAgMTZweDtcXG4gIGNvbG9yOiAjNzc3O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItZmFkZWQpO1xcbn1cXG4ucS1hY3Rpb25zaGVldC1ib2R5IHtcXG4gIG1heC1oZWlnaHQ6IDUwMHB4O1xcbn1cXG4ucS1hY3Rpb25zaGVldC1ncmlkIHtcXG4gIHBhZGRpbmc6IDhweCAxNnB4O1xcbn1cXG4ucS1hY3Rpb25zaGVldC1ncmlkIC5xLWl0ZW0tc2VwYXJhdG9yLWNvbXBvbmVudCB7XFxuICBtYXJnaW46IDI0cHggMDtcXG59XFxuLnEtYWN0aW9uc2hlZXQtZ3JpZC1pdGVtIHtcXG4gIHBhZGRpbmc6IDhweCAxNnB4O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3M7XFxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3M7XFxufVxcbi5xLWFjdGlvbnNoZWV0LWdyaWQtaXRlbTpob3ZlcixcXG4ucS1hY3Rpb25zaGVldC1ncmlkLWl0ZW06Zm9jdXMge1xcbiAgYmFja2dyb3VuZDogI2QwZDBkMDtcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5xLWFjdGlvbnNoZWV0LWdyaWQtaXRlbSBpLFxcbi5xLWFjdGlvbnNoZWV0LWdyaWQtaXRlbSBpbWcge1xcbiAgZm9udC1zaXplOiA0OHB4O1xcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbn1cXG4ucS1hY3Rpb25zaGVldC1ncmlkLWl0ZW0gLmF2YXRhciB7XFxuICB3aWR0aDogNDhweDtcXG4gIGhlaWdodDogNDhweDtcXG59XFxuLnEtYWN0aW9uc2hlZXQtZ3JpZC1pdGVtIHNwYW4ge1xcbiAgY29sb3I6ICM3Nzc7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1mYWRlZCk7XFxufVxcbi5xLWxvYWRpbmctYmFyIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIHotaW5kZXg6IDk5OTg7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC41cywgLXdlYmtpdC10cmFuc2Zvcm0gMC41cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cywgLXdlYmtpdC10cmFuc2Zvcm0gMC41cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpLCBvcGFjaXR5IDAuNXM7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSwgb3BhY2l0eSAwLjVzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjVzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xcbn1cXG4ucS1sb2FkaW5nLWJhci50b3Age1xcbiAgbGVmdDogMCAvKiBydGw6aWdub3JlICovO1xcbiAgcmlnaHQ6IDAgLyogcnRsOmlnbm9yZSAqLztcXG4gIHRvcDogMDtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXG4ucS1sb2FkaW5nLWJhci5ib3R0b20ge1xcbiAgbGVmdDogMCAvKiBydGw6aWdub3JlICovO1xcbiAgcmlnaHQ6IDAgLyogcnRsOmlnbm9yZSAqLztcXG4gIGJvdHRvbTogMDtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXG4ucS1sb2FkaW5nLWJhci5yaWdodCB7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICByaWdodDogMDtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuLnEtbG9hZGluZy1iYXIubGVmdCB7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG4ucS1hbGVydCB7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcbi5xLWFsZXJ0IC5hdmF0YXIge1xcbiAgd2lkdGg6IDMycHg7XFxuICBoZWlnaHQ6IDMycHg7XFxufVxcbi5xLWFsZXJ0LXNpZGUsXFxuLnEtYWxlcnQtY29udGVudCB7XFxuICBwYWRkaW5nOiAxMnB4O1xcbiAgZm9udC1zaXplOiAxNnB4O1xcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcXG59XFxuLnEtYWxlcnQtc2lkZSB7XFxuICBmb250LXNpemU6IDI0cHg7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMSk7XFxufVxcbi5xLWFsZXJ0LWFjdGlvbnMge1xcbiAgcGFkZGluZzogMTJweCAxMnB4IDEycHggMDtcXG59XFxuLnEtYWxlcnQtZGV0YWlsIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG59XFxuLnEtYnJlYWRjcnVtYnMgLnEtaWNvbixcXG4ucS1icmVhZGNydW1icyAucS1icmVhZGNydW1icy1zZXBhcmF0b3Ige1xcbiAgZm9udC1zaXplOiAxNTAlO1xcbn1cXG4ucS1icmVhZGNydW1icy1sYXN0IGEge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcbltkaXI9cnRsXSAucS1icmVhZGNydW1icy1zZXBhcmF0b3IgLnEtaWNvbiB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKC0xKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSkgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtYnRuIHtcXG4gIG91dGxpbmU6IDA7XFxuICBib3JkZXI6IDA7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgcGFkZGluZzogNHB4IDE2cHg7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICBtaW4taGVpZ2h0OiAyLjU3MmVtO1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcXG59XFxuYnV0dG9uLnEtYnRuIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xcbn1cXG5hLnEtYnRuIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbn1cXG4ucS1idG4gLnEtaWNvbixcXG4ucS1idG4gLnEtc3Bpbm5lciB7XFxuICBmb250LXNpemU6IDEuNGVtO1xcbn1cXG4ucS1idG4gLnEtYnRuLWlubmVyIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzO1xcbn1cXG4ucS1idG4gLnEtYnRuLWlubmVyLS1oaWRkZW4ge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtYnRuIC5xLWJ0bi1pbm5lcjpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxufVxcbi5xLWJ0bi5kaXNhYmxlZCB7XFxuICBvcGFjaXR5OiAwLjcgIWltcG9ydGFudDtcXG59XFxuLnEtYnRuOm5vdCguZGlzYWJsZWQpOm5vdCgucS1idG4tZmxhdCk6bm90KC5xLWJ0bi1vdXRsaW5lKTpub3QoLnEtYnRuLXB1c2gpOmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxuICB6LWluZGV4OiAtMTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbn1cXG4ucS1idG46bm90KC5kaXNhYmxlZCk6bm90KC5xLWJ0bi1mbGF0KTpub3QoLnEtYnRuLW91dGxpbmUpOm5vdCgucS1idG4tcHVzaCk6YWN0aXZlOmJlZm9yZSxcXG4ucS1idG46bm90KC5kaXNhYmxlZCk6bm90KC5xLWJ0bi1mbGF0KTpub3QoLnEtYnRuLW91dGxpbmUpOm5vdCgucS1idG4tcHVzaCkuYWN0aXZlOmJlZm9yZSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNXB4IDVweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCA4cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMTRweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA1cHggNXB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIDhweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxNHB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS1idG4tcHJvZ3Jlc3Mge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcztcXG4gIHRyYW5zaXRpb246IGFsbCAwLjNzO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjI1KTtcXG59XFxuLnEtYnRuLXByb2dyZXNzLnEtYnRuLWRhcmstcHJvZ3Jlc3Mge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjIpO1xcbn1cXG4ucS1idG4tbm8tdXBwZXJjYXNlIHtcXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xcbn1cXG4ucS1idG4tcmVjdGFuZ2xlIHtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG59XFxuLnEtYnRuLW91dGxpbmUge1xcbiAgYm9yZGVyOiAxcHggc29saWQgY3VycmVudENvbG9yO1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG59XFxuLnEtYnRuLXB1c2gge1xcbiAgYm9yZGVyLXJhZGl1czogN3B4O1xcbiAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkIHJnYmEoMCwwLDAsMC4xNSk7XFxufVxcbi5xLWJ0bi1wdXNoOmFjdGl2ZTpub3QoLmRpc2FibGVkKSxcXG4ucS1idG4tcHVzaC5hY3RpdmU6bm90KC5kaXNhYmxlZCkge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoM3B4KTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDNweCk7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLnEtYnRuLXB1c2ggLnEtZm9jdXMtaGVscGVyLFxcbi5xLWJ0bi1wdXNoIC5xLXJpcHBsZS1jb250YWluZXIge1xcbiAgaGVpZ2h0OiBhdXRvO1xcbiAgYm90dG9tOiAtM3B4O1xcbn1cXG4ucS1idG4tcm91bmRlZCB7XFxuICBib3JkZXItcmFkaXVzOiAyOHB4O1xcbn1cXG4ucS1idG4tcm91bmQge1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgcGFkZGluZzogMDtcXG4gIG1pbi1oZWlnaHQ6IDA7XFxuICBoZWlnaHQ6IDNlbTtcXG4gIHdpZHRoOiAzZW07XFxufVxcbi5xLWJ0bi1mbGF0LFxcbi5xLWJ0bi1vdXRsaW5lIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuLnEtYnRuLWRlbnNlIHtcXG4gIHBhZGRpbmc6IDAuMjg1ZW07XFxuICBtaW4taGVpZ2h0OiAyZW07XFxufVxcbi5xLWJ0bi1kZW5zZS5xLWJ0bi1yb3VuZCB7XFxuICBwYWRkaW5nOiAwO1xcbiAgaGVpZ2h0OiAyLjRlbTtcXG4gIHdpZHRoOiAyLjRlbTtcXG59XFxuLnEtYnRuLWRlbnNlIC5vbi1sZWZ0IHtcXG4gIG1hcmdpbi1yaWdodDogNnB4O1xcbn1cXG4ucS1idG4tZGVuc2UgLm9uLXJpZ2h0IHtcXG4gIG1hcmdpbi1sZWZ0OiA2cHg7XFxufVxcbi5xLWJ0bi1mYWIgLnEtaWNvbixcXG4ucS1idG4tZmFiLW1pbmkgLnEtaWNvbiB7XFxuICBmb250LXNpemU6IDI0cHg7XFxufVxcbi5xLWJ0bi1mYWIge1xcbiAgaGVpZ2h0OiA1NnB4O1xcbiAgd2lkdGg6IDU2cHg7XFxufVxcbi5xLWJ0bi1mYWItbWluaSB7XFxuICBoZWlnaHQ6IDQwcHg7XFxuICB3aWR0aDogNDBweDtcXG59XFxuLnEtdHJhbnNpdGlvbi0tZmFkZS1sZWF2ZS1hY3RpdmUge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbn1cXG4ucS10cmFuc2l0aW9uLS1mYWRlLWVudGVyLWFjdGl2ZSxcXG4ucS10cmFuc2l0aW9uLS1mYWRlLWxlYXZlLWFjdGl2ZSB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLW91dDtcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLW91dDtcXG59XFxuLnEtdHJhbnNpdGlvbi0tZmFkZS1lbnRlcixcXG4ucS10cmFuc2l0aW9uLS1mYWRlLWxlYXZlLFxcbi5xLXRyYW5zaXRpb24tLWZhZGUtbGVhdmUtdG8ge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtYnRuLWRyb3Bkb3duLXNwbGl0IC5xLWJ0bi1kcm9wZG93bi1hcnJvdyB7XFxuICBwYWRkaW5nOiAwIDRweDtcXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjMpO1xcbn1cXG4ucS1idG4tZ3JvdXAge1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG4ucS1idG4tZ3JvdXAgPiAucS1idG4taXRlbSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcbi5xLWJ0bi1ncm91cCA+IC5xLWJ0bi1ncm91cCA+IC5xLWJ0bjpmaXJzdC1jaGlsZCB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogaW5oZXJpdDtcXG59XFxuLnEtYnRuLWdyb3VwID4gLnEtYnRuLWdyb3VwID4gLnEtYnRuOmxhc3QtY2hpbGQge1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcXG59XFxuLnEtYnRuLWdyb3VwID4gLnEtYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpID4gLnEtYnRuOmZpcnN0LWNoaWxkIHtcXG4gIGJvcmRlci1sZWZ0OiAwO1xcbn1cXG4ucS1idG4tZ3JvdXAgPiAucS1idG4tZ3JvdXA6bm90KDpsYXN0LWNoaWxkKSA+IC5xLWJ0bjpsYXN0LWNoaWxkIHtcXG4gIGJvcmRlci1yaWdodDogMDtcXG59XFxuLnEtYnRuLWdyb3VwID4gLnEtYnRuLWl0ZW06bm90KDpsYXN0LWNoaWxkKSB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xcbn1cXG4ucS1idG4tZ3JvdXAgPiAucS1idG4taXRlbSArIC5xLWJ0bi1pdGVtIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xcbn1cXG4ucS1idG4tZ3JvdXAtcHVzaCB7XFxuICBib3JkZXItcmFkaXVzOiA3cHg7XFxufVxcbi5xLWJ0bi1ncm91cC1wdXNoID4gLnEtYnRuLXB1c2ggLnEtYnRuLWlubmVyIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbn1cXG4ucS1idG4tZ3JvdXAtcHVzaCA+IC5xLWJ0bi1wdXNoOmFjdGl2ZTpub3QoLmRpc2FibGVkKSxcXG4ucS1idG4tZ3JvdXAtcHVzaCA+IC5xLWJ0bi1wdXNoLmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsMCwwLDAuMTUpO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG59XFxuLnEtYnRuLWdyb3VwLXB1c2ggPiAucS1idG4tcHVzaDphY3RpdmU6bm90KC5kaXNhYmxlZCkgLnEtYnRuLWlubmVyLFxcbi5xLWJ0bi1ncm91cC1wdXNoID4gLnEtYnRuLXB1c2guYWN0aXZlOm5vdCguZGlzYWJsZWQpIC5xLWJ0bi1pbm5lciB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgzcHgpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoM3B4KTtcXG59XFxuLnEtYnRuLWdyb3VwLXJvdW5kZWQge1xcbiAgYm9yZGVyLXJhZGl1czogMjhweDtcXG59XFxuLnEtYnRuLWdyb3VwLWZsYXQsXFxuLnEtYnRuLWdyb3VwLW91dGxpbmUge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbn1cXG4ucS1idG4tZ3JvdXAtb3V0bGluZSA+IC5xLWJ0bi1pdGVtICsgLnEtYnRuLWl0ZW0ge1xcbiAgYm9yZGVyLWxlZnQ6IDA7XFxufVxcbi5xLWJ0bi1ncm91cC1vdXRsaW5lID4gLnEtYnRuLWl0ZW06bm90KDpsYXN0LWNoaWxkKSB7XFxuICBib3JkZXItcmlnaHQ6IDA7XFxufVxcbi5xLWNhcmQge1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbn1cXG4ucS1jYXJkID4gZGl2OmZpcnN0LWNoaWxkIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGluaGVyaXQ7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcXG59XFxuLnEtY2FyZCA+IGRpdjpsYXN0LWNoaWxkIHtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGluaGVyaXQ7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcXG59XFxuLnEtY2FyZCA+IC5xLWxpc3Qge1xcbiAgYm9yZGVyOiAwO1xcbn1cXG4ucS1jYXJkLXNlcGFyYXRvciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMSk7XFxuICBoZWlnaHQ6IDFweDtcXG59XFxuLnEtY2FyZC1zZXBhcmF0b3IuaW5zZXQge1xcbiAgbWFyZ2luOiAwIDE2cHg7XFxufVxcbi5xLWNhcmQtY29udGFpbmVyIHtcXG4gIHBhZGRpbmc6IDE2cHg7XFxufVxcbi5xLWNhcmQtdGl0bGUge1xcbiAgZm9udC1zaXplOiAxOHB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxuICBsaW5lLWhlaWdodDogMnJlbTtcXG59XFxuLnEtY2FyZC10aXRsZTplbXB0eSB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1jYXJkLXN1YnRpdGxlLFxcbi5xLWNhcmQtdGl0bGUtZXh0cmEge1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgY29sb3I6IHJnYmEoMCwwLDAsMC40KTtcXG59XFxuLnEtY2FyZC1zdWJ0aXRsZSAucS1pY29uLFxcbi5xLWNhcmQtdGl0bGUtZXh0cmEgLnEtaWNvbiB7XFxuICBmb250LXNpemU6IDI0cHg7XFxufVxcbi5xLWNhcmQtbWFpbiB7XFxuICBmb250LXNpemU6IDE0cHg7XFxufVxcbi5xLWNhcmQtcHJpbWFyeSArIC5xLWNhcmQtbWFpbiB7XFxuICBwYWRkaW5nLXRvcDogMDtcXG59XFxuLnEtY2FyZC1hY3Rpb25zIHtcXG4gIHBhZGRpbmc6IDhweDtcXG59XFxuLnEtY2FyZC1hY3Rpb25zIC5xLWJ0biB7XFxuICBwYWRkaW5nOiAwIDhweDtcXG59XFxuLnEtY2FyZC1hY3Rpb25zLWhvcml6IC5xLWJ0bjpub3QoOmxhc3QtY2hpbGQpIHtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbn1cXG4ucS1jYXJkLWFjdGlvbnMtdmVydCAucS1idG4gKyAucS1idG4ge1xcbiAgbWFyZ2luLXRvcDogNHB4O1xcbn1cXG4ucS1jYXJkLW1lZGlhIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5xLWNhcmQtbWVkaWEgPiBpbWcge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIGJvcmRlcjogMDtcXG59XFxuLnEtY2FyZC1tZWRpYS1vdmVybGF5IHtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjQ3KTtcXG59XFxuLnEtY2FyZC1tZWRpYS1vdmVybGF5IC5xLWNhcmQtc3VidGl0bGUge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLWNhcmQtZGFyayAucS1jYXJkLXNlcGFyYXRvciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMik7XFxufVxcbi5xLWNhcmQtZGFyayAucS1jYXJkLXN1YnRpdGxlLFxcbi5xLWNhcmQtZGFyayAucS1jYXJkLXRpdGxlLWV4dHJhIHtcXG4gIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNik7XFxufVxcbi5xLWNhcm91c2VsIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5xLWNhcm91c2VsLWlubmVyIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuLnEtY2Fyb3VzZWwtc2xpZGUge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAtbXMtZmxleDogMCAwIDEwMCU7XFxuICAgICAgICAgIGZsZXg6IDAgMCAxMDAlO1xcbiAgbWFyZ2luOiAwO1xcbiAgcGFkZGluZzogMThweDtcXG59XFxuLnEtY2Fyb3VzZWwtdHJhY2sge1xcbiAgcGFkZGluZzogMDtcXG4gIG1hcmdpbjogMDtcXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC1tcy1mbGV4LXdyYXA6IG5vd3JhcDtcXG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuLnEtY2Fyb3VzZWwtdHJhY2suaW5maW5pdGUtbGVmdCA+IGRpdjpudGgtbGFzdC1jaGlsZCgyKSB7XFxuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAtOTk5O1xcbiAgICAgIC1tcy1mbGV4LW9yZGVyOiAtMTAwMDtcXG4gICAgICAgICAgb3JkZXI6IC0xMDAwO1xcbiAgbWFyZ2luLWxlZnQ6IC0xMDAlO1xcbn1cXG4ucS1jYXJvdXNlbC10cmFjay5pbmZpbml0ZS1yaWdodCA+IGRpdjpudGgtY2hpbGQoMikge1xcbiAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMTAwMTtcXG4gICAgICAtbXMtZmxleC1vcmRlcjogMTAwMDtcXG4gICAgICAgICAgb3JkZXI6IDEwMDA7XFxufVxcbi5xLWNhcm91c2VsLWxlZnQtYXJyb3csXFxuLnEtY2Fyb3VzZWwtcmlnaHQtYXJyb3cge1xcbiAgdG9wOiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjMpO1xcbn1cXG4ucS1jYXJvdXNlbC1sZWZ0LWFycm93IHtcXG4gIGxlZnQ6IDVweDtcXG59XFxuLnEtY2Fyb3VzZWwtcmlnaHQtYXJyb3cge1xcbiAgcmlnaHQ6IDVweDtcXG59XFxuLnEtY2Fyb3VzZWwtcXVpY2stbmF2IHtcXG4gIHBhZGRpbmc6IDJweCAwO1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjMpO1xcbn1cXG4ucS1jYXJvdXNlbC1xdWljay1uYXYgLnEtaWNvbiB7XFxuICBmb250LXNpemU6IDE4cHggIWltcG9ydGFudDtcXG59XFxuLnEtY2Fyb3VzZWwtcXVpY2stbmF2IC5xLWJ0bi5pbmFjdGl2ZSB7XFxuICBvcGFjaXR5OiAwLjU7XFxufVxcbi5xLWNhcm91c2VsLXF1aWNrLW5hdiAucS1idG4uaW5hY3RpdmUgLnEtaWNvbiB7XFxuICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcXG59XFxuLnEtY2Fyb3VzZWwtdGh1bWJuYWlscyB7XFxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjNzO1xcbiAgdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4zcztcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MsIC13ZWJraXQtdHJhbnNmb3JtIDAuM3M7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDUlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwNSUpO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IGF1dG87XFxuICBtYXgtaGVpZ2h0OiA2MCU7XFxuICBvdmVyZmxvdzogYXV0bztcXG4gIGJhY2tncm91bmQ6ICMwMDA7XFxuICBwYWRkaW5nOiAwLjVyZW07XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTNweCA2cHggcmdiYSgwLDAsMCwwLjE2KSwgMCAtNXB4IDZweCByZ2JhKDAsMCwwLDAuMjMpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0zcHggNnB4IHJnYmEoMCwwLDAsMC4xNiksIDAgLTVweCA2cHggcmdiYSgwLDAsMCwwLjIzKTtcXG59XFxuLnEtY2Fyb3VzZWwtdGh1bWJuYWlscy5hY3RpdmUge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG59XFxuLnEtY2Fyb3VzZWwtdGh1bWJuYWlscyBpbWcge1xcbiAgaGVpZ2h0OiBhdXRvO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIG9wYWNpdHk6IDAuNTtcXG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xcbn1cXG4ucS1jYXJvdXNlbC10aHVtYm5haWxzID4gZGl2ID4gZGl2IHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgLW1zLWZsZXg6IDAgMCAxMDhweDtcXG4gICAgICAgICAgZmxleDogMCAwIDEwOHB4O1xcbn1cXG4ucS1jYXJvdXNlbC10aHVtYm5haWxzID4gZGl2ID4gZGl2LmFjdGl2ZSBpbWcsXFxuLnEtY2Fyb3VzZWwtdGh1bWJuYWlscyA+IGRpdiA+IGRpdiBpbWcuYWN0aXZlIHtcXG4gIG9wYWNpdHk6IDE7XFxuICBib3JkZXItY29sb3I6ICNmZmY7XFxufVxcbi5xLWNhcm91c2VsLXRodW1ibmFpbC1idG4ge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjMpO1xcbiAgdG9wOiA1cHg7XFxuICByaWdodDogNXB4O1xcbn1cXG5ib2R5LmRlc2t0b3AgLnEtY2Fyb3VzZWwtdGh1bWJuYWlscyBpbWc6aG92ZXIge1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLnEtbWVzc2FnZS1uYW1lLFxcbi5xLW1lc3NhZ2Utc3RhbXAsXFxuLnEtbWVzc2FnZS1sYWJlbCB7XFxuICBmb250LXNpemU6IHNtYWxsO1xcbn1cXG4ucS1tZXNzYWdlLWxhYmVsIHtcXG4gIG1hcmdpbjogMjRweCAwO1xcbn1cXG4ucS1tZXNzYWdlLXN0YW1wIHtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgbWFyZ2luLXRvcDogNHB4O1xcbiAgb3BhY2l0eTogMC42O1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtbWVzc2FnZS1hdmF0YXIge1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgd2lkdGg6IDQ4cHg7XFxuICBoZWlnaHQ6IDQ4cHg7XFxufVxcbi5xLW1lc3NhZ2Uge1xcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbn1cXG4ucS1tZXNzYWdlOmZpcnN0LWNoaWxkIC5xLW1lc3NhZ2UtbGFiZWwge1xcbiAgbWFyZ2luLXRvcDogMDtcXG59XFxuLnEtbWVzc2FnZS1yZWNlaXZlZCAucS1tZXNzYWdlLWF2YXRhciB7XFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcXG59XFxuLnEtbWVzc2FnZS1yZWNlaXZlZCAucS1tZXNzYWdlLXRleHQge1xcbiAgY29sb3I6ICM4MWM3ODQ7XFxuICBib3JkZXItcmFkaXVzOiAzcHggM3B4IDNweCAwO1xcbn1cXG4ucS1tZXNzYWdlLXJlY2VpdmVkIC5xLW1lc3NhZ2UtdGV4dDpsYXN0LWNoaWxkOmJlZm9yZSB7XFxuICByaWdodDogMTAwJTtcXG4gIGJvcmRlci1yaWdodDogMCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1sZWZ0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItYm90dG9tOiA4cHggc29saWQgY3VycmVudENvbG9yO1xcbn1cXG4ucS1tZXNzYWdlLXJlY2VpdmVkIC5xLW1lc3NhZ2UtdGV4dC1jb250ZW50IHtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1tZXNzYWdlLXNlbnQgLnEtbWVzc2FnZS1uYW1lIHtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXG4ucS1tZXNzYWdlLXNlbnQgLnEtbWVzc2FnZS1hdmF0YXIge1xcbiAgbWFyZ2luLWxlZnQ6IDhweDtcXG59XFxuLnEtbWVzc2FnZS1zZW50IC5xLW1lc3NhZ2UtY29udGFpbmVyIHtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZTtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XFxufVxcbi5xLW1lc3NhZ2Utc2VudCAucS1tZXNzYWdlLXRleHQge1xcbiAgY29sb3I6ICNlMGUwZTA7XFxuICBib3JkZXItcmFkaXVzOiAzcHggM3B4IDAgM3B4O1xcbn1cXG4ucS1tZXNzYWdlLXNlbnQgLnEtbWVzc2FnZS10ZXh0Omxhc3QtY2hpbGQ6YmVmb3JlIHtcXG4gIGxlZnQ6IDEwMCU7XFxuICBib3JkZXItbGVmdDogMCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1yaWdodDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLWJvdHRvbTogOHB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtbWVzc2FnZS1zZW50IC5xLW1lc3NhZ2UtdGV4dC1jb250ZW50IHtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1tZXNzYWdlLXRleHQge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbiAgcGFkZGluZzogOHB4O1xcbiAgbGluZS1oZWlnaHQ6IDEuMjtcXG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XFxufVxcbi5xLW1lc3NhZ2UtdGV4dCArIC5xLW1lc3NhZ2UtdGV4dCB7XFxuICBtYXJnaW4tdG9wOiAzcHg7XFxufVxcbi5xLW1lc3NhZ2UtdGV4dDpsYXN0LWNoaWxkIHtcXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XFxufVxcbi5xLW1lc3NhZ2UtdGV4dDpsYXN0LWNoaWxkIC5xLW1lc3NhZ2Utc3RhbXAge1xcbiAgZGlzcGxheTogYmxvY2s7XFxufVxcbi5xLW1lc3NhZ2UtdGV4dDpsYXN0LWNoaWxkOmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGJvdHRvbTogMDtcXG4gIHdpZHRoOiAwO1xcbiAgaGVpZ2h0OiAwO1xcbn1cXG4ucS1jaGVja2JveC1pY29uIHtcXG4gIGhlaWdodDogMjFweDtcXG4gIHdpZHRoOiAyMXB4O1xcbiAgZm9udC1zaXplOiAyMXB4O1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtY2hpcCB7XFxuICBtaW4taGVpZ2h0OiAzMnB4O1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgcGFkZGluZzogMCAxMnB4O1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgYm9yZGVyOiAjZTBlMGUwO1xcbiAgYm9yZGVyLXJhZGl1czogMnJlbTtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICBjb2xvcjogIzAwMDtcXG4gIGJhY2tncm91bmQ6ICNlZWU7XFxufVxcbi5xLWNoaXA6Zm9jdXMgLnEtY2hpcC1jbG9zZSB7XFxuICBvcGFjaXR5OiAwLjg7XFxufVxcbi5xLWNoaXAgLnEtaWNvbiB7XFxuICBmb250LXNpemU6IDI0cHg7XFxuICBsaW5lLWhlaWdodDogMTtcXG59XFxuLnEtY2hpcC1tYWluIHtcXG4gIGxpbmUtaGVpZ2h0OiBpbml0aWFsO1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xcbn1cXG4ucS1jaGlwLXNpZGUge1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgaGVpZ2h0OiAzMnB4O1xcbiAgd2lkdGg6IDMycHg7XFxuICBtaW4td2lkdGg6IDMycHg7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucS1jaGlwLXNpZGUgaW1nIHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG4ucS1jaGlwLWxlZnQge1xcbiAgbWFyZ2luLWxlZnQ6IC0xMnB4O1xcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxufVxcbi5xLWNoaXAtcmlnaHQge1xcbiAgbWFyZ2luLWxlZnQ6IDJweDtcXG4gIG1hcmdpbi1yaWdodDogLTEycHg7XFxufVxcbi5xLWNoaXAtc3F1YXJlIHtcXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcXG59XFxuLnEtY2hpcC1mbG9hdGluZyB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IC0wLjNlbTtcXG4gIHJpZ2h0OiAtMC4zZW07XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIHotaW5kZXg6IDE7XFxufVxcbi5xLWNoaXAtdGFnIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHBhZGRpbmctbGVmdDogMS43cmVtO1xcbn1cXG4ucS1jaGlwLXRhZzphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMC41cmVtO1xcbiAgbWFyZ2luLXRvcDogLTAuMjVyZW07XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgd2lkdGg6IDAuNXJlbTtcXG4gIGhlaWdodDogMC41cmVtO1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xcHggMXB4IDAgcmdiYSgwLDAsMCwwLjMpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xcHggMXB4IDAgcmdiYSgwLDAsMCwwLjMpO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHotaW5kZXg6IDA7XFxufVxcbi5xLWNoaXAtcG9pbnRpbmc6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgei1pbmRleDogLTE7XFxuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xcbiAgd2lkdGg6IDE2cHg7XFxuICBoZWlnaHQ6IDE2cHg7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxufVxcbi5xLWNoaXAtcG9pbnRpbmctdXAge1xcbiAgbWFyZ2luLXRvcDogMC44cmVtO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nLXVwOmJlZm9yZSB7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC0yMiUpIHJvdGF0ZSg0NWRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC0yMiUpIHJvdGF0ZSg0NWRlZyk7XFxufVxcbi5xLWNoaXAtcG9pbnRpbmctZG93biB7XFxuICBtYXJnaW4tYm90dG9tOiAwLjhyZW07XFxufVxcbi5xLWNoaXAtcG9pbnRpbmctZG93bjpiZWZvcmUge1xcbiAgcmlnaHQ6IGF1dG87XFxuICB0b3A6IDEwMCU7XFxuICBsZWZ0OiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC03OCUpIHJvdGF0ZSg0NWRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC03OCUpIHJvdGF0ZSg0NWRlZyk7XFxufVxcbi5xLWNoaXAtcG9pbnRpbmctcmlnaHQge1xcbiAgbWFyZ2luLXJpZ2h0OiAwLjhyZW07XFxufVxcbi5xLWNoaXAtcG9pbnRpbmctcmlnaHQ6YmVmb3JlIHtcXG4gIHRvcDogNTAlO1xcbiAgcmlnaHQ6IDJweDtcXG4gIGJvdHRvbTogYXV0bztcXG4gIGxlZnQ6IGF1dG87XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMyUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDMzJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nLWxlZnQge1xcbiAgbWFyZ2luLWxlZnQ6IDAuOHJlbTtcXG59XFxuLnEtY2hpcC1wb2ludGluZy1sZWZ0OmJlZm9yZSB7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDJweDtcXG4gIGJvdHRvbTogYXV0bztcXG4gIHJpZ2h0OiBhdXRvO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMzJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMzJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xcbn1cXG4ucS1jaGlwLWRldGFpbCB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMSk7XFxuICBvcGFjaXR5OiAwLjg7XFxuICBwYWRkaW5nOiAwIDVweDtcXG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xcbn1cXG4ucS1jaGlwLXNtYWxsIHtcXG4gIG1pbi1oZWlnaHQ6IDI2cHg7XFxufVxcbi5xLWNoaXAtc21hbGwgLnEtY2hpcC1tYWluIHtcXG4gIHBhZGRpbmc6IDRweCAxcHg7XFxuICBsaW5lLWhlaWdodDogaW5pdGlhbDtcXG59XFxuLnEtY2hpcC1zbWFsbCAucS1jaGlwLXNpZGUge1xcbiAgaGVpZ2h0OiAyNnB4O1xcbiAgd2lkdGg6IDI2cHg7XFxuICBtaW4td2lkdGg6IDI2cHg7XFxufVxcbi5xLWNoaXAtc21hbGwgLnEtY2hpcC1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG59XFxuLnEtY2hpcC1kZW5zZSB7XFxuICBtaW4taGVpZ2h0OiAxcHg7XFxuICBwYWRkaW5nOiAwIDNweDtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG59XFxuLnEtY2hpcC1kZW5zZS5xLWNoaXAtdGFnIHtcXG4gIHBhZGRpbmctbGVmdDogMS4zcmVtO1xcbn1cXG4ucS1jaGlwLWRlbnNlLnEtY2hpcC1wb2ludGluZzpiZWZvcmUge1xcbiAgd2lkdGg6IDlweDtcXG4gIGhlaWdodDogOXB4O1xcbn1cXG4ucS1jaGlwLWRlbnNlIC5xLWNoaXAtbWFpbiB7XFxuICBwYWRkaW5nOiAxcHg7XFxufVxcbi5xLWNoaXAtZGVuc2UgLnEtY2hpcC1zaWRlIHtcXG4gIGhlaWdodDogMThweDtcXG4gIHdpZHRoOiAxOHB4O1xcbiAgbWluLXdpZHRoOiAxNnB4O1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbn1cXG4ucS1jaGlwLWRlbnNlIC5xLWNoaXAtbGVmdCB7XFxuICBtYXJnaW4tbGVmdDogLTNweDtcXG4gIG1hcmdpbi1yaWdodDogMnB4O1xcbn1cXG4ucS1jaGlwLWRlbnNlIC5xLWNoaXAtcmlnaHQge1xcbiAgbWFyZ2luLWxlZnQ6IDJweDtcXG4gIG1hcmdpbi1yaWdodDogLTJweDtcXG59XFxuLnEtY2hpcC1kZW5zZSAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG59XFxuLnEtaW5wdXQtY2hpcHMge1xcbiAgbWFyZ2luLXRvcDogLTFweDtcXG4gIG1hcmdpbi1ib3R0b206IC0xcHg7XFxufVxcbi5xLWlucHV0LWNoaXBzIC5xLWNoaXAge1xcbiAgbWFyZ2luOiAxcHg7XFxufVxcbi5xLWlucHV0LWNoaXBzIGlucHV0LnEtaW5wdXQtdGFyZ2V0IHtcXG4gIG1pbi13aWR0aDogNzBweCAhaW1wb3J0YW50O1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1zdWItaXRlbSB7XFxuICBwYWRkaW5nOiA4cHggMTZweDtcXG59XFxuLnEtY29sbGFwc2libGUtc3ViLWl0ZW0uaW5kZW50IHtcXG4gIHBhZGRpbmctbGVmdDogNDhweDtcXG4gIHBhZGRpbmctcmlnaHQ6IDA7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXN1Yi1pdGVtIC5xLWNhcmQge1xcbiAgbWFyZ2luLWJvdHRvbTogMDtcXG59XFxuLnEtY29sbGFwc2libGUucm91dGVyLWxpbmstYWN0aXZlID4gLnEtaXRlbSB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDE4OSwxODksMTg5LDAuNCk7XFxufVxcbi5xLWNvbGxhcHNpYmxlIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogcGFkZGluZyAwLjVzO1xcbiAgdHJhbnNpdGlvbjogcGFkZGluZyAwLjVzO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1wb3B1cC1jbG9zZWQge1xcbiAgcGFkZGluZzogMCAxNXB4O1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1wb3B1cC1jbG9zZWQgLnEtY29sbGFwc2libGUtaW5uZXIge1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcXG59XFxuLnEtY29sbGFwc2libGUtcG9wdXAtY2xvc2VkICsgLnEtY29sbGFwc2libGUtcG9wdXAtY2xvc2VkIC5xLWNvbGxhcHNpYmxlLWlubmVyIHtcXG4gIGJvcmRlci10b3A6IDA7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXBvcHVwLW9wZW5lZCB7XFxuICBwYWRkaW5nOiAxNXB4IDA7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXBvcHVwLW9wZW5lZCAucS1jb2xsYXBzaWJsZS1pbm5lciB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtY29sbGFwc2libGUtcG9wdXAtb3BlbmVkICsgLnEtY29sbGFwc2libGUtcG9wdXAtb3BlbmVkLFxcbi5xLWNvbGxhcHNpYmxlLXBvcHVwLW9wZW5lZDpmaXJzdC1jaGlsZCB7XFxuICBwYWRkaW5nLXRvcDogMDtcXG59XFxuLnEtY29sbGFwc2libGUtcG9wdXAtb3BlbmVkOmxhc3QtY2hpbGQge1xcbiAgcGFkZGluZy1ib3R0b206IDA7XFxufVxcbi5xLWNvbGxhcHNpYmxlLWN1cnNvci1wb2ludGVyID4gLnEtY29sbGFwc2libGUtaW5uZXIgPiAucS1pdGVtIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnEtY29sbGFwc2libGUtdG9nZ2xlLWljb24ge1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgd2lkdGg6IDFlbTtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuLnEtY29sb3Ige1xcbiAgbWF4LXdpZHRoOiAxMDB2dztcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB3aWR0aDogMTAwJTtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxufVxcbi5xLWNvbG9yLXNhdHVyYXRpb24ge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEyM3B4O1xcbn1cXG4ucS1jb2xvci1zYXR1cmF0aW9uLXdoaXRlIHtcXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBmcm9tKCNmZmYpLCB0byhyZ2JhKDI1NSwyNTUsMjU1LDApKSk7XFxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNmZmYsIHJnYmEoMjU1LDI1NSwyNTUsMCkpO1xcbn1cXG4ucS1jb2xvci1zYXR1cmF0aW9uLWJsYWNrIHtcXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IGJvdHRvbSwgbGVmdCB0b3AsIGZyb20oIzAwMCksIHRvKHJnYmEoMCwwLDAsMCkpKTtcXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsICMwMDAsIHJnYmEoMCwwLDAsMCkpO1xcbn1cXG4ucS1jb2xvci1zYXR1cmF0aW9uLWNpcmNsZSB7XFxuICB3aWR0aDogMTBweDtcXG4gIGhlaWdodDogMTBweDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMS41cHggI2ZmZiwgaW5zZXQgMCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjMpLCAwIDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuNCk7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDEuNXB4ICNmZmYsIGluc2V0IDAgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4zKSwgMCAwIDFweCAycHggcmdiYSgwLDAsMCwwLjQpO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNXB4LCAtNXB4KTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgLTVweCk7XFxufVxcbi5xLWNvbG9yLXN3YXRjaCxcXG4ucS1jb2xvci1hbHBoYSAucS1zbGlkZXItdHJhY2sge1xcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFxcXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFnQUFBQUlDQVlBQUFERUQ3NkxBQUFBSDBsRVFWUW9VMk5rWUdBd1prQUZaNUc1alBSUmdPWUVWRGVCM0VCakJRQk9ad1RWdWdJR3lBQUFBQUJKUlU1RXJrSmdnZz09XFxcIikgIWltcG9ydGFudDtcXG59XFxuLnEtY29sb3Itc3dhdGNoIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHdpZHRoOiAzMnB4O1xcbiAgaGVpZ2h0OiAzMnB4O1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XFxufVxcbi5xLWNvbG9yLWh1ZSAucS1zbGlkZXItdHJhY2sge1xcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGZyb20oI2YwMCksIGNvbG9yLXN0b3AoMTclLCAjZmYwKSwgY29sb3Itc3RvcCgzMyUsICMwZjApLCBjb2xvci1zdG9wKDUwJSwgIzBmZiksIGNvbG9yLXN0b3AoNjclLCAjMDBmKSwgY29sb3Itc3RvcCg4MyUsICNmMGYpLCB0bygjZjAwKSk7XFxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNmMDAgMCUsICNmZjAgMTclLCAjMGYwIDMzJSwgIzBmZiA1MCUsICMwMGYgNjclLCAjZjBmIDgzJSwgI2YwMCAxMDAlKTtcXG4gIG9wYWNpdHk6IDE7XFxuICBoZWlnaHQ6IDhweDtcXG59XFxuLnEtY29sb3ItaHVlIC5xLXNsaWRlci10cmFjay5hY3RpdmUtdHJhY2sge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtY29sb3ItYWxwaGEgLnEtc2xpZGVyLXRyYWNrIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICBvcGFjaXR5OiAxO1xcbiAgaGVpZ2h0OiA4cHg7XFxufVxcbi5xLWNvbG9yLWFscGhhIC5xLXNsaWRlci10cmFjazphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBmcm9tKHJnYmEoMjU1LDI1NSwyNTUsMCkpLCB0bygjNzU3NTc1KSk7XFxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMCksICM3NTc1NzUpO1xcbn1cXG4ucS1jb2xvci1hbHBoYSAucS1zbGlkZXItdHJhY2suYWN0aXZlLXRyYWNrIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLWNvbG9yLXNsaWRlcnMge1xcbiAgaGVpZ2h0OiA1NnB4O1xcbn1cXG4ucS1jb2xvci1zbGlkZXJzIC5xLXNsaWRlciB7XFxuICBoZWlnaHQ6IDIwcHg7XFxufVxcbi5xLWNvbG9yLXNsaWRlcnMgLnEtc2xpZGVyLWhhbmRsZSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDRweCAwIHJnYmEoMCwwLDAsMC4zNyk7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDRweCAwIHJnYmEoMCwwLDAsMC4zNyk7XFxufVxcbi5xLWNvbG9yLXNsaWRlcnMgLnEtc2xpZGVyLXJpbmcge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtY29sb3ItaW5wdXRzIHtcXG4gIGZvbnQtc2l6ZTogMTFweDtcXG4gIGNvbG9yOiAjNzU3NTc1O1xcbn1cXG4ucS1jb2xvci1pbnB1dHMgaW5wdXQge1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5xLWNvbG9yLXBhZGRpbmcge1xcbiAgcGFkZGluZzogMCAycHg7XFxufVxcbi5xLWNvbG9yLWxhYmVsIHtcXG4gIHBhZGRpbmctdG9wOiA0cHg7XFxufVxcbi5xLWNvbG9yLWRhcmsge1xcbiAgYmFja2dyb3VuZDogIzAwMDtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICM0MjQyNDI7XFxufVxcbi5xLWNvbG9yLWRhcmsgaW5wdXQge1xcbiAgYmFja2dyb3VuZDogIzAwMDtcXG4gIGNvbG9yOiAjYmRiZGJkO1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbGlnaHQpO1xcbiAgYm9yZGVyOiAxcHggc29saWQgIzQyNDI0MjtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXEtY29sb3ItZGFyayk7XFxufVxcbi5xLWNvbG9yLWRhcmsgLnEtY29sb3ItaW5wdXRzIHtcXG4gIGNvbG9yOiAjYmRiZGJkO1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbGlnaHQpO1xcbn1cXG4ucS1jb2xvci1kYXJrIC5xLWNvbG9yLXN3YXRjaCB7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjNDI0MjQyO1xcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcS1jb2xvci1kYXJrKTtcXG59XFxuLnEtZGF0ZXRpbWUtaW5wdXQge1xcbiAgbWluLXdpZHRoOiA3MHB4O1xcbn1cXG4ucS1kYXRldGltZS1jb250cm9scyB7XFxuICBwYWRkaW5nOiAwIDEwcHggOHB4O1xcbn1cXG4ucS1kYXRldGltZSB7XFxuICBmb250LXNpemU6IDEycHg7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgbGluZS1oZWlnaHQ6IGluaXRpYWw7XFxufVxcbi5xLWRhdGV0aW1lIC5tb2RhbC1idXR0b25zIHtcXG4gIHBhZGRpbmctdG9wOiA4cHg7XFxufVxcbi5xLWRhdGV0aW1lOm5vdCgubm8tYm9yZGVyKTpub3QoLnEtZGF0ZXRpbWUtZGFyaykgLnEtZGF0ZXRpbWUtY29udGVudCB7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xcbn1cXG4ucS1kYXRldGltZTpub3QoLm5vLWJvcmRlcikucS1kYXRldGltZS1kYXJrIHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICM0MjQyNDI7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1xLWNvbG9yLWRhcmspO1xcbn1cXG4ucS1kYXRldGltZS1oZWFkZXIge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1kYXRldGltZS1oZWFkZXIgPiBkaXYge1xcbiAgY29sb3I6ICNmZmY7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLm1vZGFsLWNvbnRlbnQgPiAucS1kYXRldGltZSA+IC5xLWRhdGV0aW1lLWhlYWRlcixcXG4ucS1wb3BvdmVyID4gLnEtZGF0ZXRpbWUgPiAucS1kYXRldGltZS1oZWFkZXIge1xcbiAgbWluLXdpZHRoOiAxNzVweDtcXG59XFxuLnEtZGF0ZXRpbWUtd2Vla2RheXN0cmluZyB7XFxuICBmb250LXNpemU6IDAuOHJlbTtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xKTtcXG4gIHBhZGRpbmc6IDVweCAwO1xcbn1cXG4ucS1kYXRldGltZS10aW1lIHtcXG4gIHBhZGRpbmc6IDEwcHggMDtcXG4gIHdpbGwtY2hhbmdlOiBzY3JvbGwtcG9zaXRpb247XFxuICBvdmVyZmxvdzogYXV0bztcXG59XFxuLnEtZGF0ZXRpbWUtYW1wbSB7XFxuICBmb250LXNpemU6IDAuOXJlbTtcXG4gIHBhZGRpbmc6IDVweDtcXG59XFxuLnEtZGF0ZXRpbWUtZGF0ZXN0cmluZyB7XFxuICBwYWRkaW5nOiAxMHB4IDA7XFxufVxcbi5xLWRhdGV0aW1lLWRhdGVzdHJpbmcgLnEtZGF0ZXRpbWUtbGluayB7XFxuICBmb250LXNpemU6IDIuN3JlbTtcXG59XFxuLnEtZGF0ZXRpbWUtZGF0ZXN0cmluZyAucS1kYXRldGltZS1saW5rIHNwYW4ge1xcbiAgcGFkZGluZzogMCA1cHg7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLnEtZGF0ZXRpbWUtZGF0ZXN0cmluZyAucS1kYXRldGltZS1saW5rLnNtYWxsIHtcXG4gIG1hcmdpbjogMCA1cHg7XFxuICBmb250LXNpemU6IDEuMnJlbTtcXG59XFxuLnEtZGF0ZXRpbWUtZGF0ZXN0cmluZyAucS1kYXRldGltZS1saW5rLnNtYWxsIHNwYW4ge1xcbiAgcGFkZGluZzogNXB4O1xcbn1cXG4ucS1kYXRldGltZS1saW5rIHtcXG4gIG9wYWNpdHk6IDAuNjtcXG59XFxuLnEtZGF0ZXRpbWUtbGluayA+IHNwYW4ge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgb3V0bGluZTogMDtcXG59XFxuLnEtZGF0ZXRpbWUtbGluay5hY3RpdmUge1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2tzdHJpbmcge1xcbiAgbWluLXdpZHRoOiAyMTBweDtcXG4gIGZvbnQtc2l6ZTogMi43cmVtO1xcbiAgZGlyZWN0aW9uOiBsdHIgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtc2VsZWN0b3Ige1xcbiAgbWluLXdpZHRoOiAyOTBweDtcXG4gIGhlaWdodDogMzEwcHg7XFxuICBvdmVyZmxvdzogYXV0bztcXG59XFxuLnEtZGF0ZXRpbWUtdmlldy1kYXkge1xcbiAgd2lkdGg6IDI1MHB4O1xcbiAgaGVpZ2h0OiAyODVweDtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1kYXRldGltZS12aWV3LXllYXIgPiAucS1idG46bm90KC5hY3RpdmUpLFxcbi5xLWRhdGV0aW1lLXZpZXctbW9udGggPiAucS1idG46bm90KC5hY3RpdmUpIHtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1kYXRldGltZS1tb250aC1zdGFtcCB7XFxuICBmb250LXNpemU6IDE2cHg7XFxufVxcbi5xLWRhdGV0aW1lLXdlZWtkYXlzIHtcXG4gIG1hcmdpbi1ib3R0b206IDVweDtcXG59XFxuLnEtZGF0ZXRpbWUtd2Vla2RheXMgZGl2IHtcXG4gIG9wYWNpdHk6IDAuNjtcXG4gIHdpZHRoOiAzNXB4O1xcbiAgaGVpZ2h0OiAzNXB4O1xcbiAgbGluZS1oZWlnaHQ6IDM1cHg7XFxuICBtYXJnaW46IDA7XFxuICBwYWRkaW5nOiAwO1xcbiAgbWluLXdpZHRoOiAwO1xcbiAgbWluLWhlaWdodDogMDtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG4ucS1kYXRldGltZS1kYXlzIGRpdiB7XFxuICBtYXJnaW46IDFweDtcXG4gIGxpbmUtaGVpZ2h0OiAzM3B4O1xcbiAgd2lkdGg6IDMzcHg7XFxuICBoZWlnaHQ6IDMzcHg7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxufVxcbi5xLWRhdGV0aW1lLWRheXMgZGl2LnEtZGF0ZXRpbWUtZGF5LWFjdGl2ZSB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLWRhdGV0aW1lLWRheXMgZGl2LnEtZGF0ZXRpbWUtZGF5LWFjdGl2ZSA+IHNwYW4ge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLWRhdGV0aW1lLWRheXMgZGl2LnEtZGF0ZXRpbWUtZGF5LXRvZGF5IHtcXG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBib3JkZXI6IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxufVxcbi5xLWRhdGV0aW1lLWRheXMgZGl2Om5vdCgucS1kYXRldGltZS1maWxsZXJkYXkpOm5vdCguZGlzYWJsZWQpOm5vdCgucS1kYXRldGltZS1kYXktYWN0aXZlKTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiAjZTBlMGUwO1xcbn1cXG4ucS1kYXRldGltZS1idG4ge1xcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG59XFxuLnEtZGF0ZXRpbWUtYnRuLmFjdGl2ZSB7XFxuICBmb250LXNpemU6IDEuNXJlbTtcXG4gIHBhZGRpbmctdG9wOiAxcmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrIHtcXG4gIHdpZHRoOiAyNTBweDtcXG4gIGhlaWdodDogMjUwcHg7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBiYWNrZ3JvdW5kOiAjZTBlMGUwO1xcbiAgcGFkZGluZzogMjRweDtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stY2lyY2xlIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXBvcCAwLjVzIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1wb3AgMC41cyAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1jZW50ZXIge1xcbiAgaGVpZ2h0OiA2cHg7XFxuICB3aWR0aDogNnB4O1xcbiAgdG9wOiAwO1xcbiAgbWFyZ2luOiBhdXRvO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgbWluLWhlaWdodDogMDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9pbnRlciB7XFxuICB3aWR0aDogMXB4O1xcbiAgaGVpZ2h0OiA1MCU7XFxuICBtYXJnaW46IDAgYXV0bztcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlciAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyIC8qIHJ0bDppZ25vcmUgKi87XFxuICBtaW4taGVpZ2h0OiAwO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb2ludGVyIHNwYW4ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgd2lkdGg6IDhweDtcXG4gIGhlaWdodDogOHB4O1xcbiAgYm90dG9tOiAtOHB4O1xcbiAgbGVmdDogMDtcXG4gIG1pbi13aWR0aDogMDtcXG4gIG1pbi1oZWlnaHQ6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtZGF0ZXRpbWUtYXJyb3cge1xcbiAgY29sb3I6ICM3NTc1NzU7XFxufVxcbi5xLWRhdGV0aW1lLWRhcmsge1xcbiAgYmFja2dyb3VuZDogIzQyNDI0MjtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItZGFyayk7XFxufVxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtYXJyb3cge1xcbiAgY29sb3I6ICNiZGJkYmQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1saWdodCk7XFxufVxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtaGVhZGVyLFxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtY2xvY2sge1xcbiAgYmFja2dyb3VuZDogIzYxNjE2MTtcXG59XFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS12aWV3LWRheSB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS12aWV3LXllYXIgPiAucS1idG46bm90KC5hY3RpdmUpLFxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtdmlldy1tb250aCA+IC5xLWJ0bjpub3QoLmFjdGl2ZSkge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtZGF5cyBkaXYucS1kYXRldGltZS1kYXktYWN0aXZlID4gc3BhbixcXG4ucS1kYXRldGltZS1kYXJrIC5xLWRhdGV0aW1lLWRheXMgZGl2Om5vdCgucS1kYXRldGltZS1maWxsZXJkYXkpOm5vdCguZGlzYWJsZWQpOm5vdCgucS1kYXRldGltZS1kYXktYWN0aXZlKTpob3ZlciB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuYm9keS5kZXNrdG9wIC5xLWRhdGV0aW1lLWNsb2NrLXBvc2l0aW9uOm5vdCguYWN0aXZlKTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiAjZjVmNWY1ICFpbXBvcnRhbnQ7XFxufVxcbmJvZHkuZGVza3RvcCAucS1kYXRldGltZS1kYXJrIC5xLWRhdGV0aW1lLWNsb2NrLXBvc2l0aW9uOm5vdCguYWN0aXZlKTpob3ZlciB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zaXRpb24ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbWluLWhlaWdodDogMzJweDtcXG4gIHdpZHRoOiAzMnB4O1xcbiAgaGVpZ2h0OiAzMnB4O1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgbGluZS1oZWlnaHQ6IDMycHg7XFxuICBtYXJnaW46IDA7XFxuICBwYWRkaW5nOiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSAvKiBydGw6aWdub3JlICovO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3NpdGlvbjpub3QoLmFjdGl2ZSkge1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtY2xvY2stcG9zaXRpb246bm90KC5hY3RpdmUpIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3NpdGlvbi5hY3RpdmUge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3NpdGlvbi5hY3RpdmUgPiBzcGFuIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMCB7XFxuICB0b3A6IDAlO1xcbiAgbGVmdDogNTAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xIHtcXG4gIHRvcDogNi43JTtcXG4gIGxlZnQ6IDc1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMiB7XFxuICB0b3A6IDI1JTtcXG4gIGxlZnQ6IDkzLjMlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0zIHtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMTAwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtNCB7XFxuICB0b3A6IDc1JTtcXG4gIGxlZnQ6IDkzLjMlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy01IHtcXG4gIHRvcDogOTMuMyU7XFxuICBsZWZ0OiA3NSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTYge1xcbiAgdG9wOiAxMDAlO1xcbiAgbGVmdDogNTAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy03IHtcXG4gIHRvcDogOTMuMyU7XFxuICBsZWZ0OiAyNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTgge1xcbiAgdG9wOiA3NSU7XFxuICBsZWZ0OiA2LjclIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy05IHtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTEwIHtcXG4gIHRvcDogMjUlO1xcbiAgbGVmdDogNi43JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTEge1xcbiAgdG9wOiA2LjclO1xcbiAgbGVmdDogMjUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xMiB7XFxuICB0b3A6IDAlO1xcbiAgbGVmdDogNTAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xLmZtdDI0IHtcXG4gIHRvcDogNi43JTtcXG4gIGxlZnQ6IDc1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMi5mbXQyNCB7XFxuICB0b3A6IDI1JTtcXG4gIGxlZnQ6IDkzLjMlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0zLmZtdDI0IHtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMTAwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtNC5mbXQyNCB7XFxuICB0b3A6IDc1JTtcXG4gIGxlZnQ6IDkzLjMlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy01LmZtdDI0IHtcXG4gIHRvcDogOTMuMyU7XFxuICBsZWZ0OiA3NSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTYuZm10MjQge1xcbiAgdG9wOiAxMDAlO1xcbiAgbGVmdDogNTAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy03LmZtdDI0IHtcXG4gIHRvcDogOTMuMyU7XFxuICBsZWZ0OiAyNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTguZm10MjQge1xcbiAgdG9wOiA3NSU7XFxuICBsZWZ0OiA2LjclIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy05LmZtdDI0IHtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTEwLmZtdDI0IHtcXG4gIHRvcDogMjUlO1xcbiAgbGVmdDogNi43JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTEuZm10MjQge1xcbiAgdG9wOiA2LjclO1xcbiAgbGVmdDogMjUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xMi5mbXQyNCB7XFxuICB0b3A6IDAlO1xcbiAgbGVmdDogNTAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xMy5mbXQyNCB7XFxuICB0b3A6IDE5LjY5JTtcXG4gIGxlZnQ6IDY3LjUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xNC5mbXQyNCB7XFxuICB0b3A6IDMyLjUlO1xcbiAgbGVmdDogODAuMzElIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xNS5mbXQyNCB7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDg1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTYuZm10MjQge1xcbiAgdG9wOiA2Ny41JTtcXG4gIGxlZnQ6IDgwLjMxJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTcuZm10MjQge1xcbiAgdG9wOiA4MC4zMSU7XFxuICBsZWZ0OiA2Ny41JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTguZm10MjQge1xcbiAgdG9wOiA4NSU7XFxuICBsZWZ0OiA1MCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTE5LmZtdDI0IHtcXG4gIHRvcDogODAuMzElO1xcbiAgbGVmdDogMzIuNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTIwLmZtdDI0IHtcXG4gIHRvcDogNjcuNSU7XFxuICBsZWZ0OiAxOS42OSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTIxLmZtdDI0IHtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMTUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0yMi5mbXQyNCB7XFxuICB0b3A6IDMyLjUlO1xcbiAgbGVmdDogMTkuNjklIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0yMy5mbXQyNCB7XFxuICB0b3A6IDE5LjY5JTtcXG4gIGxlZnQ6IDMyLjUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0wLmZtdDI0IHtcXG4gIHRvcDogMTUlO1xcbiAgbGVmdDogNTAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLXJhbmdlLnJvdyAucS1kYXRldGltZS1yYW5nZS1sZWZ0IHtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XFxufVxcbi5xLWRhdGV0aW1lLXJhbmdlLnJvdyAucS1kYXRldGltZS1yYW5nZS1yaWdodCB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcXG59XFxuLnEtZGF0ZXRpbWUtcmFuZ2UuY29sdW1uID4gZGl2ICsgZGl2IHtcXG4gIG1hcmdpbi10b3A6IDEwcHg7XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgLnEtZGF0ZXRpbWUge1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsICFpbXBvcnRhbnQ7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAucS1kYXRldGltZS1oZWFkZXIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgfVxcbiAgLnEtZGF0ZXRpbWUtY29udGVudCB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDI7XFxuICAgICAgICAtbXMtZmxleDogMiAyIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMiAyIGF1dG87XFxuICB9XFxufVxcbi5xLWRvdCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IC0ycHg7XFxuICByaWdodDogLTEwcHg7XFxuICBoZWlnaHQ6IDEwcHg7XFxuICB3aWR0aDogMTBweDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XFxuICBvcGFjaXR5OiAwLjg7XFxufVxcbi5xLWVkaXRvciB7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xcbn1cXG4ucS1lZGl0b3IuZGlzYWJsZWQge1xcbiAgYm9yZGVyLXN0eWxlOiBkYXNoZWQ7XFxufVxcbi5xLWVkaXRvci5mdWxsc2NyZWVuIHtcXG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xcbn1cXG4ucS1lZGl0b3ItY29udGVudCB7XFxuICBvdXRsaW5lOiAwO1xcbiAgcGFkZGluZzogMTBweDtcXG4gIG1pbi1oZWlnaHQ6IDEwZW07XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbn1cXG4ucS1lZGl0b3ItY29udGVudCBociB7XFxuICBib3JkZXI6IDA7XFxuICBvdXRsaW5lOiAwO1xcbiAgbWFyZ2luOiAxcHg7XFxuICBoZWlnaHQ6IDFweDtcXG4gIGJhY2tncm91bmQ6ICNjY2M7XFxufVxcbi5xLWVkaXRvci10b29sYmFyLXBhZGRpbmcge1xcbiAgcGFkZGluZzogNHB4O1xcbn1cXG4ucS1lZGl0b3ItdG9vbGJhciB7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gIGJhY2tncm91bmQ6ICNlMGUwZTA7XFxuICBtaW4taGVpZ2h0OiAzN3B4O1xcbn1cXG4ucS1lZGl0b3ItdG9vbGJhciAucS1idG4tZ3JvdXAge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbn1cXG4ucS1lZGl0b3ItdG9vbGJhciAucS1idG4tZ3JvdXAgKyAucS1idG4tZ3JvdXAge1xcbiAgbWFyZ2luLWxlZnQ6IDVweDtcXG59XFxuLnEtZWRpdG9yLXRvb2xiYXItc2VwYXJhdG9yIC5xLWJ0bi1ncm91cCArIC5xLWJ0bi1ncm91cCB7XFxuICBwYWRkaW5nLWxlZnQ6IDVweDtcXG59XFxuLnEtZWRpdG9yLXRvb2xiYXItc2VwYXJhdG9yIC5xLWJ0bi1ncm91cCArIC5xLWJ0bi1ncm91cDpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiAwO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgd2lkdGg6IDFweDtcXG4gIGJhY2tncm91bmQ6ICNjY2M7XFxufVxcbi5xLWVkaXRvci1pbnB1dCBpbnB1dCB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLnEtZmFiIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcbi56LWZhYiB7XFxuICB6LWluZGV4OiA5OTA7XFxufVxcbi5xLWZhYi1vcGVuZWQgLnEtZmFiLWFjdGlvbnMge1xcbiAgb3BhY2l0eTogMTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoMSkgc2NhbGVZKDEpIHRyYW5zbGF0ZVgoMCkgdHJhbnNsYXRlWSgwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSkgc2NhbGVZKDEpIHRyYW5zbGF0ZVgoMCkgdHJhbnNsYXRlWSgwKTtcXG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XFxufVxcbi5xLWZhYi1vcGVuZWQgLnEtZmFiLWljb24ge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDE4MGRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMTgwZGVnKTtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLWZhYi1vcGVuZWQgLnEtZmFiLWFjdGl2ZS1pY29uIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAwZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAwZGVnKTtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbi5xLWZhYi1pY29uLFxcbi5xLWZhYi1hY3RpdmUtaWNvbiB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC40cywgLXdlYmtpdC10cmFuc2Zvcm0gMC40cztcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cywgLXdlYmtpdC10cmFuc2Zvcm0gMC40cztcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cywgdHJhbnNmb3JtIDAuNHM7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMsIHRyYW5zZm9ybSAwLjRzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjRzO1xcbn1cXG4ucS1mYWItaWNvbiB7XFxuICBvcGFjaXR5OiAxO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDBkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDBkZWcpO1xcbn1cXG4ucS1mYWItYWN0aXZlLWljb24ge1xcbiAgb3BhY2l0eTogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtMTgwZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtMTgwZGVnKTtcXG59XFxuLnEtZmFiLWFjdGlvbnMge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgb3BhY2l0eTogMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbjtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW47XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLnEtZmFiLWFjdGlvbnMgLnEtYnRuIHtcXG4gIG1hcmdpbjogNXB4O1xcbn1cXG4ucS1mYWItcmlnaHQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgwLjQpIHNjYWxlWSgwLjQpIHRyYW5zbGF0ZVgoLTEwMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjQpIHNjYWxlWSgwLjQpIHRyYW5zbGF0ZVgoLTEwMCUpO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMTIwJTtcXG59XFxuLnEtZmFiLWxlZnQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgwLjQpIHNjYWxlWSgwLjQpIHRyYW5zbGF0ZVgoMTAwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuNCkgc2NhbGVZKDAuNCkgdHJhbnNsYXRlWCgxMDAlKTtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIHJpZ2h0OiAxMjAlO1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG59XFxuLnEtZmFiLXVwIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoMC40KSBzY2FsZVkoMC40KSB0cmFuc2xhdGVZKDEwMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjQpIHNjYWxlWSgwLjQpIHRyYW5zbGF0ZVkoMTAwJSk7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgYm90dG9tOiAxMjAlO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbn1cXG4ucS1mYWItZG93biB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDAuNCkgc2NhbGVZKDAuNCkgdHJhbnNsYXRlWSgtMTAwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuNCkgc2NhbGVZKDAuNCkgdHJhbnNsYXRlWSgtMTAwJSk7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIHRvcDogMTIwJTtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG59XFxuLnEtZmllbGQtaWNvbiB7XFxuICB3aWR0aDogMjhweDtcXG4gIGhlaWdodDogMjhweDtcXG4gIG1pbi13aWR0aDogMjhweDtcXG4gIGZvbnQtc2l6ZTogMjhweDtcXG4gIG1hcmdpbi1yaWdodDogMTZweDtcXG4gIGNvbG9yOiAjOTc5Nzk3O1xcbn1cXG4ucS1maWVsZC1sYWJlbCB7XFxuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XFxuICBjb2xvcjogIzk3OTc5NztcXG59XFxuLnEtZmllbGQtbGFiZWwtaW5uZXIge1xcbiAgbWluLWhlaWdodDogMjhweDtcXG59XFxuLnEtZmllbGQtbGFiZWwtaGludCB7XFxuICBwYWRkaW5nLWxlZnQ6IDhweDtcXG59XFxuLnEtZmllbGQtYm90dG9tIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIHBhZGRpbmctdG9wOiA4cHg7XFxuICBjb2xvcjogIzk3OTc5NztcXG59XFxuLnEtZmllbGQtbm8taW5wdXQgLnEtZmllbGQtYm90dG9tIHtcXG4gIG1hcmdpbi10b3A6IDhweDtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS1maWVsZC1jb3VudGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3O1xcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XFxufVxcbi5xLWZpZWxkLWRhcmsgLnEtZmllbGQtbGFiZWwsXFxuLnEtZmllbGQtZGFyayAucS1maWVsZC1pY29uLFxcbi5xLWZpZWxkLWRhcmsgLnEtZmllbGQtY291bnRlcixcXG4ucS1maWVsZC1kYXJrIC5xLWZpZWxkLWJvdHRvbSB7XFxuICBjb2xvcjogI2E3YTdhNztcXG59XFxuLnEtZmllbGQtZGFyayAucS1maWVsZC1uby1pbnB1dCAucS1maWVsZC1ib3R0b20ge1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM5Nzk3OTc7XFxufVxcbi5xLWZpZWxkLXdpdGgtZXJyb3IgLnEtZmllbGQtaWNvbixcXG4ucS1maWVsZC13aXRoLWVycm9yIC5xLWZpZWxkLWxhYmVsLFxcbi5xLWZpZWxkLXdpdGgtZXJyb3IgLnEtZmllbGQtYm90dG9tIHtcXG4gIGNvbG9yOiAjZGIyODI4O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbmVnYXRpdmUpO1xcbn1cXG4ucS1maWVsZC13aXRoLWVycm9yIC5xLWZpZWxkLW5vLWlucHV0IC5xLWZpZWxkLWJvdHRvbSB7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RiMjgyODtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1xLWNvbG9yLW5lZ2F0aXZlKTtcXG59XFxuLnEtZmllbGQtd2l0aC13YXJuaW5nIC5xLWZpZWxkLWljb24sXFxuLnEtZmllbGQtd2l0aC13YXJuaW5nIC5xLWZpZWxkLWxhYmVsLFxcbi5xLWZpZWxkLXdpdGgtd2FybmluZyAucS1maWVsZC1ib3R0b20ge1xcbiAgY29sb3I6ICNmMmMwMzc7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci13YXJuaW5nKTtcXG59XFxuLnEtZmllbGQtd2l0aC13YXJuaW5nIC5xLWZpZWxkLW5vLWlucHV0IC5xLWZpZWxkLWJvdHRvbSB7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2YyYzAzNztcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1xLWNvbG9yLXdhcm5pbmcpO1xcbn1cXG4ucS1maWVsZC1tYXJnaW4ge1xcbiAgbWFyZ2luLXRvcDogNXB4O1xcbn1cXG4ucS1maWVsZC1mbG9hdGluZyAucS1maWVsZC1tYXJnaW4ge1xcbiAgbWFyZ2luLXRvcDogMjNweDtcXG59XFxuLnEtZmllbGQtbm8taW5wdXQgLnEtZmllbGQtbWFyZ2luIHtcXG4gIG1hcmdpbi10b3A6IDNweDtcXG59XFxuLnEtZmllbGQtY29udGVudCAucS1pZi5xLWlmLWhhcy1sYWJlbDpub3QoLnEtaWYtc3RhbmRhcmQpIHtcXG4gIG1hcmdpbi10b3A6IDlweDtcXG59XFxuLnEtZmllbGQtY29udGVudCAucS1pZi1zdGFuZGFyZDpub3QoLnEtaWYtaGFzLWxhYmVsKSB7XFxuICBwYWRkaW5nLXRvcDogNnB4O1xcbn1cXG4ucS1maWVsZC1jb250ZW50IC5xLW9wdGlvbi1ncm91cCB7XFxuICBwYWRkaW5nLXRvcDogMDtcXG59XFxuLnEtZmllbGQtbm8taW5wdXQgLnEtZmllbGQtY29udGVudCB7XFxuICBwYWRkaW5nLXRvcDogNnB4O1xcbn1cXG4ucS1maWVsZC12ZXJ0aWNhbDpub3QoLnEtZmllbGQtbm8tbGFiZWwpIC5xLWZpZWxkLW1hcmdpbiB7XFxuICBtYXJnaW4tdG9wOiAwO1xcbn1cXG4ucS1maWVsZC12ZXJ0aWNhbDpub3QoLnEtZmllbGQtbm8tbGFiZWwpIC5xLWlmLXN0YW5kYXJkOm5vdCgucS1pZi1oYXMtbGFiZWwpIHtcXG4gIHBhZGRpbmctdG9wOiAwO1xcbn1cXG4ucS1maWVsZC12ZXJ0aWNhbDpub3QoLnEtZmllbGQtbm8tbGFiZWwpIC5xLWlmLnEtaWYtaGFzLWxhYmVsOm5vdCgucS1pZi1zdGFuZGFyZCkge1xcbiAgbWFyZ2luLXRvcDogMHB4O1xcbn1cXG4ucS1maWVsZC12ZXJ0aWNhbC5xLWZpZWxkLW5vLWxhYmVsIC5xLWZpZWxkLWxhYmVsIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCkge1xcbiAgLnEtZmllbGQtcmVzcG9uc2l2ZTpub3QoLnEtZmllbGQtbm8tbGFiZWwpIC5xLWZpZWxkLW1hcmdpbiB7XFxuICAgIG1hcmdpbi10b3A6IDA7XFxuICB9XFxuICAucS1maWVsZC1yZXNwb25zaXZlOm5vdCgucS1maWVsZC1uby1sYWJlbCkgLnEtaWYtc3RhbmRhcmQ6bm90KC5xLWlmLWhhcy1sYWJlbCkge1xcbiAgICBwYWRkaW5nLXRvcDogMDtcXG4gIH1cXG4gIC5xLWZpZWxkLXJlc3BvbnNpdmU6bm90KC5xLWZpZWxkLW5vLWxhYmVsKSAucS1pZi5xLWlmLWhhcy1sYWJlbDpub3QoLnEtaWYtc3RhbmRhcmQpIHtcXG4gICAgbWFyZ2luLXRvcDogMHB4O1xcbiAgfVxcbiAgLnEtZmllbGQtcmVzcG9uc2l2ZS5xLWZpZWxkLW5vLWxhYmVsIC5xLWZpZWxkLWxhYmVsIHtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gIH1cXG59XFxuLnEtaW5uZXItbG9hZGluZyB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuNik7XFxufVxcbi5xLWlubmVyLWxvYWRpbmcuZGFyayB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNCk7XFxufVxcbi5xLWlmLFxcbi5xLWlmOmJlZm9yZSxcXG4ucS1pZi1sYWJlbCxcXG4ucS1pZi1hZGRvbixcXG4ucS1maWVsZC1pY29uLFxcbi5xLWZpZWxkLWxhYmVsLFxcbi5xLWlmLWNvbnRyb2wsXFxuLnEtZmllbGQtYm90dG9tIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSwgZGlzcGxheSAwcyAwcztcXG4gIHRyYW5zaXRpb246IGFsbCAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSksIGRpc3BsYXkgMHMgMHM7XFxufVxcbi5xLWlmLnEtaWYtaGlkZS11bmRlcmxpbmU6YmVmb3JlLFxcbi5xLWlmLnEtaWYtaW52ZXJ0ZWQ6YmVmb3JlLFxcbi5xLWlmLnEtaWYtaGlkZS11bmRlcmxpbmU6YWZ0ZXIsXFxuLnEtaWYucS1pZi1pbnZlcnRlZDphZnRlciB7XFxuICBjb250ZW50OiBub25lO1xcbn1cXG4ucS1pZi1pbnZlcnRlZCB7XFxuICBwYWRkaW5nLWxlZnQ6IDhweDtcXG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaWYtaW5uZXIge1xcbiAgbWFyZ2luLXRvcDogN3B4O1xcbiAgbWFyZ2luLWJvdHRvbTogN3B4O1xcbn1cXG4ucS1pZi1pbnZlcnRlZC5xLWlmLWhhcy1sYWJlbCAucS1pZi1pbm5lciB7XFxuICBtYXJnaW4tdG9wOiAyNXB4O1xcbn1cXG4ucS1pZjpiZWZvcmUsXFxuLnEtaWY6YWZ0ZXIge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm9yZGVyOiAxcHggaGlkZGVuIGN1cnJlbnRDb2xvcjtcXG4gIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIGNvbnRlbnQ6ICcnO1xcbn1cXG4ucS1pZjpiZWZvcmUge1xcbiAgY29sb3I6ICNiZGJkYmQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1saWdodCk7XFxufVxcbi5xLWlmOmFmdGVyIHtcXG4gIGJvcmRlci13aWR0aDogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlciAwO1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyIDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcXG59XFxuLnEtaWY6bm90KC5xLWlmLWRpc2FibGVkKTpub3QoLnEtaWYtZXJyb3IpOm5vdCgucS1pZi13YXJuaW5nKTpob3ZlcjpiZWZvcmUsXFxuLnEtaWYucS1pZi1yZWFkb25seTpub3QoLnEtaWYtZXJyb3IpOm5vdCgucS1pZi13YXJuaW5nKTphZnRlciB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtaWYtZGFyay5xLWlmOm5vdCgucS1pZi1kaXNhYmxlZCk6bm90KC5xLWlmLWVycm9yKTpub3QoLnEtaWYtd2FybmluZyk6aG92ZXI6YmVmb3JlLFxcbi5xLWlmLWRhcmsucS1pZi5xLWlmLXJlYWRvbmx5Om5vdCgucS1pZi1lcnJvcik6bm90KC5xLWlmLXdhcm5pbmcpOmFmdGVyIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1pZi1mb2N1c2VkOmFmdGVyIHtcXG4gIGJvcmRlci13aWR0aDogMnB4O1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgxKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlci1sZWZ0LXdpZHRoIDBzIDAuNDVzLCBib3JkZXItcmlnaHQtd2lkdGggMHMgMC40NXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIHRyYW5zaXRpb246IGJvcmRlci1sZWZ0LXdpZHRoIDBzIDAuNDVzLCBib3JkZXItcmlnaHQtd2lkdGggMHMgMC40NXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSksIGJvcmRlci1sZWZ0LXdpZHRoIDBzIDAuNDVzLCBib3JkZXItcmlnaHQtd2lkdGggMHMgMC40NXM7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpLCBib3JkZXItbGVmdC13aWR0aCAwcyAwLjQ1cywgYm9yZGVyLXJpZ2h0LXdpZHRoIDBzIDAuNDVzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxufVxcbi5xLWlmIHtcXG4gIG91dGxpbmU6IDA7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBmb250LXNpemU6IDFyZW07XFxufVxcbi5xLWlmIC5xLWlmLWlubmVyIHtcXG4gIG1pbi1oZWlnaHQ6IDI0cHg7XFxufVxcbi5xLWlmLXN0YW5kYXJkIHtcXG4gIHBhZGRpbmctdG9wOiA3cHg7XFxuICBwYWRkaW5nLWJvdHRvbTogN3B4O1xcbn1cXG4ucS1pZi1zdGFuZGFyZC5xLWlmLWhhcy1sYWJlbCB7XFxuICBwYWRkaW5nLXRvcDogMjVweDtcXG59XFxuLnEtaWYtaGlkZS11bmRlcmxpbmUge1xcbiAgcGFkZGluZy10b3A6IDA7XFxuICBwYWRkaW5nLWJvdHRvbTogMDtcXG59XFxuLnEtaWYtaGlkZS11bmRlcmxpbmUucS1pZi1oYXMtbGFiZWwge1xcbiAgcGFkZGluZy10b3A6IDE4cHg7XFxufVxcbi5xLWlmLXN0YW5kYXJkIC5xLWlmLWxhYmVsLFxcbi5xLWlmLWludmVydGVkIC5xLWlmLWxhYmVsIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xcbn1cXG4ucS1pZi1zdGFuZGFyZCAucS1pZi1sYWJlbC5xLWlmLWxhYmVsLWFib3ZlLFxcbi5xLWlmLWludmVydGVkIC5xLWlmLWxhYmVsLnEtaWYtbGFiZWwtYWJvdmUge1xcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTAwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xMDAlKTtcXG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xcbn1cXG4ucS1pZi1pbnZlcnRlZCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaWYtbGFiZWwge1xcbiAgdG9wOiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0yMXB4KTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTIxcHgpO1xcbn1cXG4ucS1pZi1pbnZlcnRlZCAucS1pZi1sYWJlbC5xLWlmLWxhYmVsLWFib3ZlIHtcXG4gIHRvcDogNHB4O1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTI1JSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xMjUlKTtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaW5wdXQtdGFyZ2V0IHtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbn1cXG4ucS1pZi1mb2N1c2VkOm5vdCgucS1pZi1yZWFkb25seSkgLnEtaWYtbGFiZWwsXFxuLnEtaWYtZm9jdXNlZDpub3QoLnEtaWYtcmVhZG9ubHkpIC5xLWlmLWFkZG9uLFxcbi5xLWlmLWZvY3VzZWQ6bm90KC5xLWlmLXJlYWRvbmx5KSAucS1pZi1jb250cm9sIHtcXG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLWlmLXdhcm5pbmc6YmVmb3JlLFxcbi5xLWlmLXdhcm5pbmc6YWZ0ZXIsXFxuLnEtaWYtd2FybmluZzpub3QoLnEtaWYtaW52ZXJ0ZWQpIC5xLWlmLWxhYmVsIHtcXG4gIGNvbG9yOiAjZjJjMDM3O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3Itd2FybmluZyk7XFxufVxcbi5xLWlmLXdhcm5pbmc6aG92ZXI6YmVmb3JlIHtcXG4gIGNvbG9yOiAjZjhkZDkzO1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3Itd2FybmluZy1sKTtcXG59XFxuLnEtaWYtZXJyb3I6YmVmb3JlLFxcbi5xLWlmLWVycm9yOmFmdGVyLFxcbi5xLWlmLWVycm9yOm5vdCgucS1pZi1pbnZlcnRlZCkgLnEtaWYtbGFiZWwge1xcbiAgY29sb3I6ICNkYjI4Mjg7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1uZWdhdGl2ZSk7XFxufVxcbi5xLWlmLWVycm9yOmhvdmVyOmJlZm9yZSB7XFxuICBjb2xvcjogI2VjOGI4YjtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLW5lZ2F0aXZlLWwpO1xcbn1cXG4ucS1pZi1kaXNhYmxlZCB7XFxuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgb3BhY2l0eTogMC42O1xcbn1cXG4ucS1pZi1kaXNhYmxlZCAucS1pZi1sYWJlbCxcXG4ucS1pZi1kaXNhYmxlZCAucS1pZi1jb250cm9sLFxcbi5xLWlmLWRpc2FibGVkIC5xLWlucHV0LXRhcmdldCxcXG4ucS1pZi1kaXNhYmxlZCAucS1jaGlwIHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxufVxcbi5xLWlmLWRhcms6bm90KC5xLWlmLWludmVydGVkLWxpZ2h0KSAucS1pbnB1dC10YXJnZXQ6bm90KC5xLWlucHV0LXRhcmdldC1wbGFjZWhvbGRlcikge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLWlmLWZvY3VzYWJsZSB7XFxuICBvdXRsaW5lOiAwO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS1pZi1sYWJlbCxcXG4ucS1pbnB1dC10YXJnZXQsXFxuLnEtaW5wdXQtdGFyZ2V0LXBsYWNlaG9sZGVyIHtcXG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbn1cXG4ucS1pZi1jb250cm9sIHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG4gIHdpZHRoOiAyNHB4O1xcbiAgaGVpZ2h0OiAyNHB4O1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS1pZi1jb250cm9sICsgLnEtaWYtY29udHJvbCxcXG4ucS1pZi1jb250cm9sICsgLnEtaWYtaW5uZXIsXFxuLnEtaWYtaW5uZXIgKyAucS1pZi1jb250cm9sIHtcXG4gIG1hcmdpbi1sZWZ0OiA0cHg7XFxufVxcbi5xLWlmLWNvbnRyb2w6aG92ZXIge1xcbiAgb3BhY2l0eTogMC43O1xcbn1cXG4ucS1pZi1iYXNlbGluZSB7XFxuICBsaW5lLWhlaWdodDogMjRweDtcXG4gIHdpZHRoOiAwO1xcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4ucS1pZi1sYWJlbC1pbm5lcixcXG4ucS1pZi1sYWJlbC1zcGFjZXIsXFxuLnEtaWYtYmFzZWxpbmUge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbn1cXG4ucS1pZi1sYWJlbC1zcGFjZXIge1xcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbn1cXG4ucS1pZi1sYWJlbCB7XFxuICBjdXJzb3I6IHRleHQ7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucS1pZi1sYWJlbCxcXG4ucS1pZi1hZGRvbixcXG4ucS1pZi1jb250cm9sIHtcXG4gIGNvbG9yOiAjOTc5Nzk3O1xcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XFxufVxcbi5xLWlmLWludmVydGVkIC5xLWlmLWxhYmVsLFxcbi5xLWlmLWludmVydGVkIC5xLWlmLWFkZG9uLFxcbi5xLWlmLWludmVydGVkIC5xLWlmLWNvbnRyb2wge1xcbiAgY29sb3I6ICNkZGQ7XFxufVxcbi5xLWlmLWludmVydGVkLWxpZ2h0IC5xLWlmLWxhYmVsLFxcbi5xLWlmLWludmVydGVkLWxpZ2h0IC5xLWlmLWFkZG9uLFxcbi5xLWlmLWludmVydGVkLWxpZ2h0IC5xLWlmLWNvbnRyb2wge1xcbiAgY29sb3I6ICM2NTY1NjU7XFxufVxcbi5xLWlmLWFkZG9uIHtcXG4gIG9wYWNpdHk6IDA7XFxuICBjdXJzb3I6IGluaGVyaXQ7XFxufVxcbi5xLWlmLWFkZG9uOm5vdCgucS1pZi1hZGRvbi12aXNpYmxlKSB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1pZi1hZGRvbi1sZWZ0IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDFweDtcXG59XFxuLnEtaWYtYWRkb24tcmlnaHQge1xcbiAgcGFkZGluZy1sZWZ0OiAxcHg7XFxufVxcbi5xLWlmLWFkZG9uLXZpc2libGUge1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLnEtaW5wdXQtdGFyZ2V0LFxcbi5xLWlucHV0LXNoYWRvdyB7XFxuICBib3JkZXI6IDA7XFxuICBvdXRsaW5lOiAwO1xcbiAgcGFkZGluZzogMDtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XFxuICBmb250LXNpemU6IGluaGVyaXQ7XFxuICByZXNpemU6IG5vbmU7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1pbnB1dC10YXJnZXQ6LXdlYmtpdC1hdXRvZmlsbCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB3ZWJraXQtYXV0b2ZpbGwtb247XFxuICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XFxufVxcbi5xLWlucHV0LXRhcmdldC5xLWlucHV0LWF1dG9maWxsOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCkge1xcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogd2Via2l0LWF1dG9maWxsLW9mZjtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcXG59XFxuLnEtaW5wdXQtdGFyZ2V0OjotbXMtY2xlYXIsXFxuLnEtaW5wdXQtdGFyZ2V0OjotbXMtcmV2ZWFsIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxuICB3aWR0aDogMDtcXG4gIGhlaWdodDogMDtcXG59XFxuLnEtaW5wdXQtdGFyZ2V0OmludmFsaWQge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbmhlcml0O1xcbiAgICAgICAgICBib3gtc2hhZG93OiBpbmhlcml0O1xcbn1cXG4ucS1pbnB1dC10YXJnZXQ6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICd8JztcXG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbiAgd2lkdGg6IDA7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbmlucHV0LnEtaW5wdXQtdGFyZ2V0IHtcXG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XFxuICBoZWlnaHQ6IDI0cHg7XFxuICBvdXRsaW5lOiAwO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbn1cXG4ucS1pZiAucS1pbnB1dC10YXJnZXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICM5Nzk3OTcgIWltcG9ydGFudDtcXG59XFxuLnEtaWYgLnEtaW5wdXQtdGFyZ2V0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmIC5xLWlucHV0LXRhcmdldDo6LW1vei1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogIzk3OTc5NyAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZiAucS1pbnB1dC10YXJnZXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmLWRhcmsgLnEtaW5wdXQtdGFyZ2V0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmLWRhcmsgLnEtaW5wdXQtdGFyZ2V0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmLWRhcmsgLnEtaW5wdXQtdGFyZ2V0OjotbW96LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmLWRhcmsgLnEtaW5wdXQtdGFyZ2V0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogIzk3OTc5NyAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZi1pbnZlcnRlZDpub3QoLnEtaWYtaW52ZXJ0ZWQtbGlnaHQpIC5xLWlucHV0LXRhcmdldC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogI2RkZCAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZi1pbnZlcnRlZDpub3QoLnEtaWYtaW52ZXJ0ZWQtbGlnaHQpIC5xLWlucHV0LXRhcmdldDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogI2RkZCAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZi1pbnZlcnRlZDpub3QoLnEtaWYtaW52ZXJ0ZWQtbGlnaHQpIC5xLWlucHV0LXRhcmdldDo6LW1vei1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogI2RkZCAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZi1pbnZlcnRlZDpub3QoLnEtaWYtaW52ZXJ0ZWQtbGlnaHQpIC5xLWlucHV0LXRhcmdldDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICNkZGQgIWltcG9ydGFudDtcXG59XFxuLnEtaW5wdXQtc2hhZG93IHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIGhlaWdodDogYXV0bztcXG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XFxufVxcbi5xLWp1bWJvdHJvbiB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBwYWRkaW5nOiAycmVtIDFyZW07XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcXG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XFxufVxcbi5xLWp1bWJvdHJvbi1kYXJrIHtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc1NzU3NTtcXG59XFxuLnEtanVtYm90cm9uLWRhcmsgaHIucS1ociB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMzYpO1xcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gIC5xLWp1bWJvdHJvbiB7XFxuICAgIHBhZGRpbmc6IDRyZW0gMnJlbTtcXG4gIH1cXG59XFxuLnEta25vYixcXG4ucS1rbm9iID4gZGl2IHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG59XFxuLnEta25vYiA+IGRpdiB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuLnEta25vYi1sYWJlbCB7XFxuICB3aWR0aDogMTAwJTtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbn1cXG4ucS1rbm9iLWxhYmVsIGkge1xcbiAgZm9udC1zaXplOiAxMzAlO1xcbn1cXG4ucS1sYXlvdXQge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBtaW4taGVpZ2h0OiAxMDB2aDtcXG59XFxuLnEtbGF5b3V0LWNvbnRhaW5lciAucS1sYXlvdXQge1xcbiAgbWluLWhlaWdodDogMTAwJTtcXG59XFxuLnEtbGF5b3V0LWNvbnRhaW5lciA+IGRpdiB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XFxufVxcbi5xLWxheW91dC1jb250YWluZXIgPiBkaXYgPiBkaXYge1xcbiAgbWluLWhlaWdodDogMDtcXG4gIG1heC1oZWlnaHQ6IDEwMCU7XFxufVxcbi5xLWxheW91dC1oZWFkZXIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA4cHggcmdiYSgwLDAsMCwwLjIpLCAwIDNweCA0cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggM3B4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggOHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAzcHggNHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLWxheW91dC1oZWFkZXItaGlkZGVuIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMTAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMTAlKTtcXG59XFxuLnEtbGF5b3V0LWZvb3RlciB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTFweCA4cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0zcHggNHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAzcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xcHggOHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtM3B4IDRweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggM3B4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtbGF5b3V0LWZvb3Rlci1oaWRkZW4ge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTEwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMTAlKTtcXG59XFxuLnEtbGF5b3V0LWRyYXdlciB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgei1pbmRleDogMTAwMDtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci5vbi10b3Age1xcbiAgei1pbmRleDogMzAwMDtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1kZWxpbWl0ZXIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgNXB4IDhweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDFweCAxNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCA1cHggOHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMXB4IDE0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1sZWZ0IHtcXG4gIGxlZnQ6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XFxufVxcbi5xLWxheW91dC1kcmF3ZXItcmlnaHQge1xcbiAgcmlnaHQ6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xcbn1cXG4ucS1sYXlvdXQsXFxuLnEtbGF5b3V0LWhlYWRlcixcXG4ucS1sYXlvdXQtZm9vdGVyLFxcbi5xLWxheW91dC1wYWdlIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLnEtbGF5b3V0LWhlYWRlcixcXG4ucS1sYXlvdXQtZm9vdGVyIHtcXG4gIHotaW5kZXg6IDIwMDA7XFxufVxcbi5xLWxheW91dC1iYWNrZHJvcCB7XFxuICB6LWluZGV4OiAyOTk5ICFpbXBvcnRhbnQ7XFxuICB3aWxsLWNoYW5nZTogYmFja2dyb3VuZC1jb2xvcjtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1taW5pIHtcXG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLWl0ZW0sXFxuLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLWl0ZW0tc2lkZSB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLW1pbmktZHJhd2VyLWhpZGUsXFxuLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLWNvbGxhcHNpYmxlLWlubmVyID4gZGl2Omxhc3Qtb2YtdHlwZSxcXG4ucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtbGlzdC1oZWFkZXIsXFxuLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLWl0ZW0tbWFpbixcXG4ucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtaXRlbS1zaWRlLXJpZ2h0IHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLWxheW91dC1kcmF3ZXItbm9ybWFsIC5xLW1pbmktZHJhd2VyLW9ubHkge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1tb2JpbGUgLnEtbWluaS1kcmF3ZXItb25seSxcXG4ucS1sYXlvdXQtZHJhd2VyLW1vYmlsZSAucS1taW5pLWRyYXdlci1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLWxheW91dC1kcmF3ZXItb3BlbmVyIHtcXG4gIHotaW5kZXg6IDIwMDE7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICB3aWR0aDogMTVweDtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxufVxcbi5xLXBhZ2Utc3RpY2t5LXNocmluayB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLnEtcGFnZS1zdGlja3ktc2hyaW5rID4gc3BhbiB7XFxuICBwb2ludGVyLWV2ZW50czogYXV0bztcXG59XFxuYm9keS5xLWlvcy1zdGF0dXNiYXItcGFkZGluZyAucS1sYXlvdXQgLnEtbGF5b3V0LWhlYWRlciA+IC5xLXRvb2xiYXI6bnRoLWNoaWxkKDIpLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXBhZGRpbmcgLnEtbGF5b3V0IC5xLWxheW91dC1oZWFkZXIgPiAucS10YWJzOm50aC1jaGlsZCgyKSAucS10YWJzLWhlYWQsXFxuYm9keS5xLWlvcy1zdGF0dXNiYXItcGFkZGluZyAucS1sYXlvdXQgLnEtbGF5b3V0LWRyYXdlci50b3AtcGFkZGluZyxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci1wYWRkaW5nIC5tb2RhbDpub3QoLm1pbmltaXplZCkgLnEtbGF5b3V0LWhlYWRlciA+IC5xLXRvb2xiYXI6bnRoLWNoaWxkKDEpIHtcXG4gIHBhZGRpbmctdG9wOiAyMHB4O1xcbiAgbWluLWhlaWdodDogNzBweDtcXG59XFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1sYXlvdXQgLnEtbGF5b3V0LWhlYWRlciA+IC5xLXRvb2xiYXI6bnRoLWNoaWxkKDIpLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLnEtbGF5b3V0IC5xLWxheW91dC1oZWFkZXIgPiAucS10YWJzOm50aC1jaGlsZCgyKSAucS10YWJzLWhlYWQsXFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1sYXlvdXQgLnEtbGF5b3V0LWRyYXdlci50b3AtcGFkZGluZyxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5tb2RhbDpub3QoLm1pbmltaXplZCkgLnEtbGF5b3V0LWhlYWRlciA+IC5xLXRvb2xiYXI6bnRoLWNoaWxkKDEpIHtcXG4gIHBhZGRpbmctdG9wOiBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCk7XFxufVxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLnEtbGF5b3V0IC5xLWxheW91dC1mb290ZXIgPiAucS10b29sYmFyOmxhc3QtY2hpbGQsXFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1sYXlvdXQgLnEtbGF5b3V0LWZvb3RlciA+IC5xLXRhYnM6bGFzdC1jaGlsZCAucS10YWJzLWhlYWQsXFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1sYXlvdXQgLnEtbGF5b3V0LWRyYXdlci50b3AtcGFkZGluZyxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5tb2RhbDpub3QoLm1pbmltaXplZCkgLnEtbGF5b3V0LWZvb3RlciA+IC5xLXRvb2xiYXI6bGFzdC1jaGlsZCB7XFxuICBwYWRkaW5nLWJvdHRvbTogZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO1xcbiAgbWluLWhlaWdodDogNzBweDtcXG59XFxuLnEtbGF5b3V0LWFuaW1hdGUgLnEtbGF5b3V0LXRyYW5zaXRpb24ge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4xMnMgZWFzZS1pbiAhaW1wb3J0YW50O1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuMTJzIGVhc2UtaW4gIWltcG9ydGFudDtcXG59XFxuLnEtYm9keS1kcmF3ZXItdG9nZ2xlIHtcXG4gIG92ZXJmbG93LXg6IGhpZGRlbiAhaW1wb3J0YW50O1xcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIC5sYXlvdXQtcGFkZGluZyB7XFxuICAgIHBhZGRpbmc6IDEuNXJlbSAwLjVyZW07XFxuICB9XFxuICAubGF5b3V0LXBhZGRpbmcuaG9yaXpvbnRhbCB7XFxuICAgIHBhZGRpbmc6IDAgMC41cmVtO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xcbiAgLmxheW91dC1wYWRkaW5nIHtcXG4gICAgcGFkZGluZzogMS41cmVtIDJyZW07XFxuICAgIG1hcmdpbjogYXV0bztcXG4gIH1cXG4gIC5sYXlvdXQtcGFkZGluZy5ob3Jpem9udGFsIHtcXG4gICAgcGFkZGluZzogMCAycmVtO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcXG4gIC5sYXlvdXQtcGFkZGluZyB7XFxuICAgIHBhZGRpbmc6IDIuNXJlbSAzcmVtO1xcbiAgICBtYXJnaW46IGF1dG87XFxuICB9XFxuICAubGF5b3V0LXBhZGRpbmcuaG9yaXpvbnRhbCB7XFxuICAgIHBhZGRpbmc6IDAgM3JlbTtcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xcbiAgLmxheW91dC1wYWRkaW5nIHtcXG4gICAgcGFkZGluZzogM3JlbSA0cmVtO1xcbiAgICBtYXJnaW46IGF1dG87XFxuICB9XFxuICAubGF5b3V0LXBhZGRpbmcuaG9yaXpvbnRhbCB7XFxuICAgIHBhZGRpbmc6IDAgNHJlbTtcXG4gIH1cXG59XFxuLnEtaXRlbS1zdGFtcCB7XFxuICBmb250LXNpemU6IDAuOHJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAwLjhyZW07XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgbWFyZ2luOiAwLjNyZW0gMDtcXG59XFxuLnEtaXRlbS1zaWRlIHtcXG4gIGNvbG9yOiAjNzM3MzczO1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAtbXMtZmxleDogMCAwIGF1dG87XFxuICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xcbiAgbWluLXdpZHRoOiAzOHB4O1xcbn1cXG4ucS1pdGVtLXNpZGUtcmlnaHQge1xcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XFxufVxcbi5xLWl0ZW0tYXZhdGFyLFxcbi5xLWl0ZW0tYXZhdGFyIGltZyB7XFxuICB3aWR0aDogMzhweDtcXG4gIGhlaWdodDogMzhweDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG59XFxuLnEtaXRlbS1sZXR0ZXIsXFxuLnEtaXRlbS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG59XFxuLnEtaXRlbS1pbnZlcnRlZCB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBjb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQ6ICM3MzczNzM7XFxuICBoZWlnaHQ6IDM4cHg7XFxuICB3aWR0aDogMzhweDtcXG59XFxuLnEtaXRlbS1pbnZlcnRlZCxcXG4ucS1pdGVtLWludmVydGVkIC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAyMHB4O1xcbn1cXG4ucS1pdGVtLW1haW4ge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgbWluLXdpZHRoOiAwO1xcbn1cXG4ucS1pdGVtLW1haW4taW5zZXQge1xcbiAgbWFyZ2luLWxlZnQ6IDQ4cHg7XFxufVxcbi5xLWl0ZW0tbGFiZWwge1xcbiAgbGluZS1oZWlnaHQ6IDEuMjtcXG59XFxuLnEtaXRlbS1sYWJlbCA+IHNwYW4ge1xcbiAgY29sb3I6ICM3NTc1NzU7XFxufVxcbi5xLWl0ZW0tc3VibGFiZWwge1xcbiAgY29sb3I6ICM3NTc1NzU7XFxuICBmb250LXNpemU6IDkwJTtcXG4gIG1hcmdpbi10b3A6IDAuMnJlbTtcXG59XFxuLnEtaXRlbS1zdWJsYWJlbCA+IHNwYW4ge1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG59XFxuLnEtaXRlbS1zZWN0aW9uICsgLnEtaXRlbS1zZWN0aW9uIHtcXG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xcbn1cXG4ucS1pdGVtIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgZm9udC1zaXplOiAxcmVtO1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG4gIHBhZGRpbmc6IDhweCAxNnB4O1xcbiAgbWluLWhlaWdodDogNDBweDtcXG59XFxuLnEtaXRlbS5hY3RpdmUsXFxuLnEtaXRlbS5yb3V0ZXItbGluay1hY3RpdmUsXFxuLnEtaXRlbTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDE4OSwxODksMTg5LDAuNCk7XFxufVxcbi5xLWl0ZW06Zm9jdXMge1xcbiAgb3V0bGluZTogMDtcXG59XFxuLnEtaXRlbS1pbWFnZSB7XFxuICBtaW4td2lkdGg6IDExNHB4O1xcbiAgbWF4LXdpZHRoOiAxMTRweDtcXG4gIG1heC1oZWlnaHQ6IDExNHB4O1xcbn1cXG4ucS1saXN0LW11bHRpbGluZSA+IC5xLWl0ZW0sXFxuLnEtaXRlbS1tdWx0aWxpbmUge1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0O1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBzdGFydDtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XFxufVxcbi5xLWxpc3QtbGluayA+IC5xLWl0ZW0sXFxuLnEtaXRlbS1saW5rIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnEtbGlzdC1oaWdobGlnaHQgPiAucS1pdGVtOmhvdmVyLFxcbi5xLWl0ZW0taGlnaGxpZ2h0OmhvdmVyLFxcbi5xLWxpc3QtbGluayA+IC5xLWl0ZW06aG92ZXIsXFxuLnEtaXRlbS1saW5rOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMTg5LDE4OSwxODksMC41KTtcXG59XFxuLnEtbGlzdC1zZXBhcmF0b3IgPiAucS1pdGVtLWRpdmlzaW9uICsgLnEtaXRlbS1kaXZpc2lvbixcXG4ucS1pdGVtLWRpdmlzaW9uICsgLnEtaXRlbS1zZXBhcmF0b3Ige1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMGUwZTA7XFxufVxcbi5xLWxpc3QtaW5zZXQtc2VwYXJhdG9yID4gLnEtaXRlbS1kaXZpc2lvbiArIC5xLWl0ZW0tZGl2aXNpb246YWZ0ZXIsXFxuLnEtaXRlbS1kaXZpc2lvbiArIC5xLWl0ZW0taW5zZXQtc2VwYXJhdG9yOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBsZWZ0OiA2NHB4O1xcbiAgaGVpZ2h0OiAxcHg7XFxuICBiYWNrZ3JvdW5kOiAjZTBlMGUwO1xcbn1cXG4ucS1saXN0LWRlbnNlID4gLnEtaXRlbSxcXG4ucS1pdGVtLWRlbnNlIHtcXG4gIHBhZGRpbmc6IDNweCAxNnB4O1xcbiAgbWluLWhlaWdodDogOHB4O1xcbn1cXG4ucS1saXN0LXNwYXJzZSA+IC5xLWl0ZW0sXFxuLnEtaXRlbS1zcGFyc2Uge1xcbiAgcGFkZGluZzogMjIuNHB4IDE2cHg7XFxuICBtaW4taGVpZ2h0OiA1NnB4O1xcbn1cXG4ucS1saXN0LXN0cmlwZWQgPiAucS1pdGVtOm50aC1jaGlsZChldmVuKSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE4OSwxODksMTg5LDAuNjUpO1xcbn1cXG4ucS1saXN0LXN0cmlwZWQtb2RkID4gLnEtaXRlbTpudGgtY2hpbGQob2RkKSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE4OSwxODksMTg5LDAuNjUpO1xcbn1cXG4ucS1saXN0IHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XFxuICBwYWRkaW5nOiA4cHggMDtcXG59XFxuLnEtaXRlbS1zZXBhcmF0b3ItY29tcG9uZW50IHtcXG4gIG1hcmdpbjogOHB4IDA7XFxuICBoZWlnaHQ6IDFweDtcXG4gIGJvcmRlcjogMDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTA7XFxufVxcbi5xLWl0ZW0tc2VwYXJhdG9yLWNvbXBvbmVudDpsYXN0LWNoaWxkIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLWl0ZW0tc2VwYXJhdG9yLWNvbXBvbmVudCArIC5xLWxpc3QtaGVhZGVyIHtcXG4gIG1hcmdpbi10b3A6IC04cHg7XFxufVxcbi5xLWl0ZW0tc2VwYXJhdG9yLWluc2V0LWNvbXBvbmVudCB7XFxuICBtYXJnaW4tbGVmdDogNjRweDtcXG59XFxuLnEtbGlzdC1oZWFkZXIge1xcbiAgY29sb3I6ICM3NTc1NzU7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XFxuICBtaW4taGVpZ2h0OiA0OHB4O1xcbiAgcGFkZGluZzogMTVweCAxNnB4O1xcbn1cXG4ucS1saXN0LWhlYWRlci1pbnNldCB7XFxuICBwYWRkaW5nLWxlZnQ6IDY0cHg7XFxufVxcbi5xLWxpc3QtZGFyayAucS1pdGVtLXNpZGUsXFxuLnEtaXRlbS1kYXJrIC5xLWl0ZW0tc2lkZSB7XFxuICBjb2xvcjogI2JiYjtcXG59XFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0taW52ZXJ0ZWQsXFxuLnEtaXRlbS1kYXJrIC5xLWl0ZW0taW52ZXJ0ZWQge1xcbiAgY29sb3I6ICMwMDA7XFxuICBiYWNrZ3JvdW5kOiAjYmJiO1xcbn1cXG4ucS1saXN0LWRhcmsgLnEtaXRlbS1sYWJlbCA+IHNwYW4sXFxuLnEtaXRlbS1kYXJrIC5xLWl0ZW0tbGFiZWwgPiBzcGFuLFxcbi5xLWxpc3QtZGFyayAucS1pdGVtLXN1YmxhYmVsLFxcbi5xLWl0ZW0tZGFyayAucS1pdGVtLXN1YmxhYmVsIHtcXG4gIGNvbG9yOiAjYmRiZGJkO1xcbn1cXG4ucS1saXN0LWRhcmsgLnEtaXRlbSxcXG4ucS1pdGVtLWRhcmsgLnEtaXRlbSB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0uYWN0aXZlLFxcbi5xLWl0ZW0tZGFyayAucS1pdGVtLmFjdGl2ZSxcXG4ucS1saXN0LWRhcmsgLnEtaXRlbS5yb3V0ZXItbGluay1hY3RpdmUsXFxuLnEtaXRlbS1kYXJrIC5xLWl0ZW0ucm91dGVyLWxpbmstYWN0aXZlLFxcbi5xLWxpc3QtZGFyayAucS1pdGVtOmZvY3VzLFxcbi5xLWl0ZW0tZGFyayAucS1pdGVtOmZvY3VzIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMTE3LDExNywxMTcsMC4yKTtcXG59XFxuLnEtbGlzdC1kYXJrIHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4zMik7XFxufVxcbi5xLWxpc3QtZGFyay5xLWxpc3Qtc2VwYXJhdG9yID4gLnEtaXRlbS1kaXZpc2lvbiArIC5xLWl0ZW0tZGl2aXNpb24sXFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0tZGl2aXNpb24gKyAucS1pdGVtLXNlcGFyYXRvciB7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjMyKTtcXG59XFxuLnEtbGlzdC1kYXJrLnEtbGlzdC1pbnNldC1zZXBhcmF0b3IgPiAucS1pdGVtLWRpdmlzaW9uICsgLnEtaXRlbS1kaXZpc2lvbjphZnRlcixcXG4ucS1saXN0LWRhcmsgLnEtaXRlbS1kaXZpc2lvbiArIC5xLWl0ZW0taW5zZXQtc2VwYXJhdG9yOmFmdGVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4zMik7XFxufVxcbi5xLWxpc3QtZGFyay5xLWxpc3Qtc3RyaXBlZCA+IC5xLWl0ZW06bnRoLWNoaWxkKGV2ZW4pIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTE3LDExNywxMTcsMC40NSk7XFxufVxcbi5xLWxpc3QtZGFyay5xLWxpc3Qtc3RyaXBlZC1vZGQgPiAucS1pdGVtOm50aC1jaGlsZChvZGQpIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTE3LDExNywxMTcsMC40NSk7XFxufVxcbi5xLWxpc3QtZGFyayAucS1pdGVtLXNlcGFyYXRvci1jb21wb25lbnQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjMyKTtcXG59XFxuLnEtbGlzdC1kYXJrIC5xLWxpc3QtaGVhZGVyIHtcXG4gIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNjQpO1xcbn1cXG4ucS1saXN0LWRhcmsucS1saXN0LWhpZ2hsaWdodCA+IC5xLWl0ZW06aG92ZXIsXFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0taGlnaGxpZ2h0OmhvdmVyLFxcbi5xLWxpc3QtZGFyay5xLWxpc3QtbGluayA+IC5xLWl0ZW06aG92ZXIsXFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0tbGluazpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDExNywxMTcsMTE3LDAuMyk7XFxufVxcbmJvZHkud2l0aC1sb2FkaW5nIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5xLWxvYWRpbmcge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjQpO1xcbn1cXG4ucS1sb2FkaW5nID4gZGl2IHtcXG4gIG1hcmdpbjogNDBweCAyMHB4IDA7XFxuICBtYXgtd2lkdGg6IDQ1MHB4O1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgdGV4dC1zaGFkb3c6IDAgMCA3cHggIzAwMDtcXG59XFxuLm1vZGFsLWJhY2tkcm9wIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC40KTtcXG59XFxuLm1vZGFsLm1heGltaXplZCAubW9kYWwtYmFja2Ryb3Age1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLm1vZGFsLWNvbnRlbnQge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgb3ZlcmZsb3cteTogYXV0bztcXG4gIHdpbGwtY2hhbmdlOiBzY3JvbGwtcG9zaXRpb247XFxuICBtaW4td2lkdGg6IDI4MHB4O1xcbiAgbWF4LWhlaWdodDogODB2aDtcXG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgb3V0bGluZTogMDtcXG59XFxuLm1vZGFsIHtcXG4gIHotaW5kZXg6IDUwMDA7XFxufVxcbi5tb2RhbC5taW5pbWl6ZWQgLm1vZGFsLWNvbnRlbnQge1xcbiAgbWF4LXdpZHRoOiA4MHZ3O1xcbiAgbWF4LWhlaWdodDogODB2aDtcXG59XFxuLm1vZGFsLm1heGltaXplZCAubW9kYWwtY29udGVudCB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIG1heC1oZWlnaHQ6IDEwMCU7XFxuICBib3JkZXItcmFkaXVzOiAwO1xcbn1cXG4ubW9kYWwubWF4aW1pemVkIC5tb2RhbC1jb250ZW50IC5xLWxheW91dC1jb250YWluZXIge1xcbiAgbWluLWhlaWdodDogMTAwdmggIWltcG9ydGFudDtcXG59XFxuLnEtbW9kYWwtZW50ZXIsXFxuLnEtbW9kYWwtbGVhdmUtYWN0aXZlIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgLm1vZGFsOm5vdCgubWF4aW1pemVkKS5xLW1vZGFsLWVudGVyIC5tb2RhbC1jb250ZW50IHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMik7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xcbiAgfVxcbiAgLm1vZGFsOm5vdCgubWF4aW1pemVkKS5xLW1vZGFsLWxlYXZlLWFjdGl2ZSAubW9kYWwtY29udGVudCB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC44KTtcXG4gIH1cXG4gIC5tb2RhbC5tYXhpbWl6ZWQucS1tb2RhbC1lbnRlciAubW9kYWwtY29udGVudCxcXG4gIC5tb2RhbC5tYXhpbWl6ZWQucS1tb2RhbC1sZWF2ZS1hY3RpdmUgLm1vZGFsLWNvbnRlbnQge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMCUpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMCUpO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIC5xLXJlc3BvbnNpdmUtbW9kYWwge1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgfVxcbiAgLm1vZGFsOm5vdCgubWluaW1pemVkKSAubW9kYWwtY29udGVudCB7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gICAgbWF4LWhlaWdodDogMTAwJTtcXG4gICAgYm9yZGVyLXJhZGl1czogMDtcXG4gIH1cXG4gIC5tb2RhbDpub3QoLm1pbmltaXplZCkgLm1vZGFsLWNvbnRlbnQgLnEtbGF5b3V0LWNvbnRhaW5lciB7XFxuICAgIG1pbi1oZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7XFxuICB9XFxuICAubW9kYWw6bm90KC5taW5pbWl6ZWQpLnEtbW9kYWwtZW50ZXIgLm1vZGFsLWNvbnRlbnQsXFxuICAubW9kYWw6bm90KC5taW5pbWl6ZWQpLnEtbW9kYWwtbGVhdmUtYWN0aXZlIC5tb2RhbC1jb250ZW50IHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzAlKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzAlKTtcXG4gIH1cXG4gIC5tb2RhbC5taW5pbWl6ZWQucS1tb2RhbC1lbnRlciAubW9kYWwtY29udGVudCB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcXG4gIH1cXG4gIC5tb2RhbC5taW5pbWl6ZWQucS1tb2RhbC1sZWF2ZS1hY3RpdmUgLm1vZGFsLWNvbnRlbnQge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC44KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XFxuICB9XFxufVxcbi5xLW1heGltaXplZC1tb2RhbCB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ubW9kYWwsXFxuLm1vZGFsLWNvbnRlbnQge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xcbn1cXG4ubW9kYWwtaGVhZGVyIHtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxuICBwYWRkaW5nOiAyNHB4IDI0cHggMTBweCAyNHB4O1xcbiAgZm9udC1zaXplOiAxLjZyZW07XFxuICBmb250LXdlaWdodDogNTAwO1xcbn1cXG4ubW9kYWwtYm9keSB7XFxuICBwYWRkaW5nOiAxMHB4IDI0cHg7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjUpO1xcbn1cXG4uc21hbGwtbW9kYWwtc2Nyb2xsLFxcbi5tb2RhbC1zY3JvbGwsXFxuLmJpZy1tb2RhbC1zY3JvbGwge1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XFxuICB3aWxsLWNoYW5nZTogc2Nyb2xsLXBvc2l0aW9uO1xcbn1cXG4uc21hbGwtbW9kYWwtc2Nyb2xsIHtcXG4gIG1heC1oZWlnaHQ6IDE1NnB4O1xcbn1cXG4ubW9kYWwtc2Nyb2xsIHtcXG4gIG1heC1oZWlnaHQ6IDI0MHB4O1xcbn1cXG4uYmlnLW1vZGFsLXNjcm9sbCB7XFxuICBtYXgtaGVpZ2h0OiA0ODBweDtcXG59XFxuLm1vZGFsLWJ1dHRvbnMge1xcbiAgcGFkZGluZzogMjJweCA4cHggOHB4O1xcbiAgLXdlYmtpdC1ib3gtcGFjazogZW5kO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZDtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcXG4gIGNvbG9yOiAjMDI3YmUzO1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItcHJpbWFyeSk7XFxufVxcbi5tb2RhbC1idXR0b25zLnJvdyAucS1idG4gKyAucS1idG4ge1xcbiAgbWFyZ2luLWxlZnQ6IDhweDtcXG59XFxuLm1vZGFsLWJ1dHRvbnMuY29sdW1uIHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBlbmQ7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGVuZDtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xcbn1cXG4ubW9kYWwtYnV0dG9ucy5jb2x1bW4gLnEtYnRuICsgLnEtYnRuIHtcXG4gIG1hcmdpbi10b3A6IDhweDtcXG59XFxuLnEtbW9kYWwtYm90dG9tLWVudGVyLFxcbi5xLW1vZGFsLWJvdHRvbS1sZWF2ZS1hY3RpdmUge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtbW9kYWwtYm90dG9tLWVudGVyIC5tb2RhbC1jb250ZW50LFxcbi5xLW1vZGFsLWJvdHRvbS1sZWF2ZS1hY3RpdmUgLm1vZGFsLWNvbnRlbnQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwJSk7XFxufVxcbi5xLW1vZGFsLXRvcC1lbnRlcixcXG4ucS1tb2RhbC10b3AtbGVhdmUtYWN0aXZlIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLW1vZGFsLXRvcC1lbnRlciAubW9kYWwtY29udGVudCxcXG4ucS1tb2RhbC10b3AtbGVhdmUtYWN0aXZlIC5tb2RhbC1jb250ZW50IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwJSk7XFxufVxcbi5xLW1vZGFsLXJpZ2h0LWVudGVyLFxcbi5xLW1vZGFsLXJpZ2h0LWxlYXZlLWFjdGl2ZSB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1tb2RhbC1yaWdodC1lbnRlciAubW9kYWwtY29udGVudCxcXG4ucS1tb2RhbC1yaWdodC1sZWF2ZS1hY3RpdmUgLm1vZGFsLWNvbnRlbnQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDMwJSk7XFxufVxcbi5xLW1vZGFsLWxlZnQtZW50ZXIsXFxuLnEtbW9kYWwtbGVmdC1sZWF2ZS1hY3RpdmUge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtbW9kYWwtbGVmdC1lbnRlciAubW9kYWwtY29udGVudCxcXG4ucS1tb2RhbC1sZWZ0LWxlYXZlLWFjdGl2ZSAubW9kYWwtY29udGVudCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMCUpO1xcbn1cXG4ucS1ub3RpZmljYXRpb25zID4gZGl2IHtcXG4gIHotaW5kZXg6IDk1MDA7XFxufVxcbi5xLW5vdGlmaWNhdGlvbi1saXN0IHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLnEtbm90aWZpY2F0aW9uLWxpc3QtY2VudGVyIHtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG59XFxuLnEtbm90aWZpY2F0aW9uLWxpc3QtdG9wIHtcXG4gIHRvcDogMDtcXG59XFxuLnEtbm90aWZpY2F0aW9uLWxpc3QtYm90dG9tIHtcXG4gIGJvdHRvbTogMDtcXG59XFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1ub3RpZmljYXRpb24tbGlzdC1jZW50ZXIsXFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1ub3RpZmljYXRpb24tbGlzdC10b3Age1xcbiAgdG9wOiBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCk7XFxufVxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLnEtbm90aWZpY2F0aW9uLWxpc3QtY2VudGVyLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLnEtbm90aWZpY2F0aW9uLWxpc3QtYm90dG9tIHtcXG4gIGJvdHRvbTogZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO1xcbn1cXG4ucS1ub3RpZmljYXRpb24ge1xcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIG1hcmdpbjogMTBweCAxMHB4IDA7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XFxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XFxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAxcztcXG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMXM7XFxuICB6LWluZGV4OiA5NTAwO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbn1cXG4ucS1ub3RpZmljYXRpb24tdG9wLWxlZnQtZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLXRvcC1sZWZ0LWxlYXZlLXRvLFxcbi5xLW5vdGlmaWNhdGlvbi10b3AtZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLXRvcC1sZWF2ZS10byxcXG4ucS1ub3RpZmljYXRpb24tdG9wLXJpZ2h0LWVudGVyLFxcbi5xLW5vdGlmaWNhdGlvbi10b3AtcmlnaHQtbGVhdmUtdG8ge1xcbiAgb3BhY2l0eTogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MHB4KTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MHB4KTtcXG4gIHotaW5kZXg6IDk0OTk7XFxufVxcbi5xLW5vdGlmaWNhdGlvbi1sZWZ0LWVudGVyLFxcbi5xLW5vdGlmaWNhdGlvbi1sZWZ0LWxlYXZlLXRvLFxcbi5xLW5vdGlmaWNhdGlvbi1jZW50ZXItZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLWNlbnRlci1sZWF2ZS10byxcXG4ucS1ub3RpZmljYXRpb24tcmlnaHQtZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLXJpZ2h0LWxlYXZlLXRvLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tbGVmdC1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLWxlZnQtbGVhdmUtdG8sXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLWxlYXZlLXRvLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tcmlnaHQtZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1yaWdodC1sZWF2ZS10byB7XFxuICBvcGFjaXR5OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTBweCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MHB4KTtcXG4gIHotaW5kZXg6IDk0OTk7XFxufVxcbi5xLW5vdGlmaWNhdGlvbi10b3AtbGVmdC1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLXRvcC1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLXRvcC1yaWdodC1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLWxlZnQtbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1jZW50ZXItbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1yaWdodC1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1sZWZ0LWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLXJpZ2h0LWxlYXZlLWFjdGl2ZSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB6LWluZGV4OiA5NDk5O1xcbiAgbWFyZ2luLWxlZnQ6IDA7XFxuICBtYXJnaW4tcmlnaHQ6IDA7XFxufVxcbi5xLW5vdGlmaWNhdGlvbi10b3AtbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1jZW50ZXItbGVhdmUtYWN0aXZlIHtcXG4gIHRvcDogMDtcXG59XFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1sZWZ0LWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLXJpZ2h0LWxlYXZlLWFjdGl2ZSB7XFxuICBib3R0b206IDA7XFxufVxcbi5xLW9wdGlvbi1pbm5lciB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBsaW5lLWhlaWdodDogMDtcXG59XFxuLnEtb3B0aW9uLWlubmVyICsgLnEtb3B0aW9uLWxhYmVsIHtcXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XFxufVxcbi5xLW9wdGlvbiB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG4ucS1vcHRpb24gaW5wdXQge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4ucS1vcHRpb24ucmV2ZXJzZSAucS1vcHRpb24taW5uZXIgKyAucS1vcHRpb24tbGFiZWwge1xcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxuICBtYXJnaW4tbGVmdDogMDtcXG59XFxuLnEtb3B0aW9uLWdyb3VwLWlubGluZS1vcHRzID4gZGl2IHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbn1cXG4ucS1vcHRpb24tZ3JvdXAge1xcbiAgbWFyZ2luOiAtNXB4O1xcbiAgcGFkZGluZzogNXB4IDA7XFxufVxcbi5xLXBhZ2luYXRpb24gaW5wdXQge1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG4ucS1wYWdpbmF0aW9uIC5xLWJ0biB7XFxuICBwYWRkaW5nOiAwIDVweCAhaW1wb3J0YW50O1xcbn1cXG4ucS1wYWdpbmF0aW9uIC5xLWJ0bi5kaXNhYmxlZCB7XFxuICBjb2xvcjogIzc3NztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWZhZGVkKTtcXG59XFxuLnEtcGFyYWxsYXgge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG59XFxuLnEtcGFyYWxsYXgtbWVkaWEgPiBpbWcsXFxuLnEtcGFyYWxsYXgtbWVkaWEgPiB2aWRlbyB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiA1MCU7XFxuICBib3R0b206IDA7XFxuICBtaW4td2lkdGg6IDEwMCU7XFxuICBtaW4taGVpZ2h0OiAxMDAlO1xcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcXG59XFxuLnEtcGFyYWxsYXgtdGV4dCB7XFxuICB0ZXh0LXNoYWRvdzogMCAwIDVweCAjZmZmO1xcbn1cXG4ucS1wb3BvdmVyIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIHotaW5kZXg6IDgwMDA7XFxuICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xcbiAgbWF4LXdpZHRoOiAxMDB2dztcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5xLXBvcG92ZXIgPiAucS1saXN0Om9ubHktY2hpbGQge1xcbiAgYm9yZGVyOiBub25lO1xcbn1cXG5ib2R5IGRpdiAucS1wb3BvdmVyIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXByb2dyZXNzIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGhlaWdodDogNXB4O1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICB3aWR0aDogMTAwJTtcXG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucS1wcm9ncmVzcy1tb2RlbCB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXByb2dyZXNzLW1vZGVsLmFuaW1hdGUge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtcHJvZ3Jlc3Mtc3RyaXBlcyAycyBsaW5lYXIgaW5maW5pdGU7XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1wcm9ncmVzcy1zdHJpcGVzIDJzIGxpbmVhciBpbmZpbml0ZTtcXG59XFxuLnEtcHJvZ3Jlc3MtbW9kZWw6bm90KC5pbmRldGVybWluYXRlKSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IHdpZHRoIDAuM3MgbGluZWFyO1xcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBsaW5lYXI7XFxufVxcbi5xLXByb2dyZXNzLW1vZGVsLmluZGV0ZXJtaW5hdGU6YmVmb3JlLFxcbi5xLXByb2dyZXNzLW1vZGVsLmluZGV0ZXJtaW5hdGU6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIHdpbGwtY2hhbmdlOiBsZWZ0LCByaWdodDtcXG59XFxuLnEtcHJvZ3Jlc3MtbW9kZWwuaW5kZXRlcm1pbmF0ZTpiZWZvcmUge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZSAyLjFzIGN1YmljLWJlemllcigwLjY1LCAwLjgxNSwgMC43MzUsIDAuMzk1KSBpbmZpbml0ZTtcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUgMi4xcyBjdWJpYy1iZXppZXIoMC42NSwgMC44MTUsIDAuNzM1LCAwLjM5NSkgaW5maW5pdGU7XFxufVxcbi5xLXByb2dyZXNzLW1vZGVsLmluZGV0ZXJtaW5hdGU6YWZ0ZXIge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZS1zaG9ydCAyLjFzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSkgaW5maW5pdGU7XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1wcm9ncmVzcy1pbmRldGVybWluYXRlLXNob3J0IDIuMXMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKSBpbmZpbml0ZTtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAxLjE1cztcXG4gICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAxLjE1cztcXG59XFxuLnEtcHJvZ3Jlc3MtbW9kZWwuc3RyaXBlLFxcbi5xLXByb2dyZXNzLW1vZGVsLnN0cmlwZTpiZWZvcmUsXFxuLnEtcHJvZ3Jlc3MtbW9kZWwuc3RyaXBlOmFmdGVyIHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kLXNpemU6IDQwcHggNDBweCAhaW1wb3J0YW50O1xcbn1cXG4ucS1wcm9ncmVzcy10cmFjayB7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGxpbmVhcjtcXG4gIHRyYW5zaXRpb246IHdpZHRoIDAuM3MgbGluZWFyO1xcbn1cXG4ucS1wcm9ncmVzcy1idWZmZXIge1xcbiAgdG9wOiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgaGVpZ2h0OiA0cHg7XFxuICByaWdodDogMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogd2lkdGggMC4zcyBsaW5lYXI7XFxuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGxpbmVhcjtcXG4gIC13ZWJraXQtbWFzazogdXJsKFxcXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lqOCtDanh6ZG1jZ2QybGtkR2c5SWpFeUlpQm9aV2xuYUhROUlqUWlJSFpwWlhkUWIzSjBQU0l3SURBZ01USWdOQ0lnZG1WeWMybHZiajBpTVM0eElpQjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaVBnb2dJRHhsYkd4cGNITmxJR040UFNJeUlpQmplVDBpTWlJZ2NuZzlJaklpSUhKNVBTSXlJajRLSUNBZ0lEeGhibWx0WVhSbElHRjBkSEpwWW5WMFpVNWhiV1U5SW1ONElpQm1jbTl0UFNJeUlpQjBiejBpTFRFd0lpQmtkWEk5SWpBdU5uTWlJSEpsY0dWaGRFTnZkVzUwUFNKcGJtUmxabWx1YVhSbElpQXZQZ29nSUR3dlpXeHNhWEJ6WlQ0S0lDQThaV3hzYVhCelpTQmplRDBpTVRRaUlHTjVQU0l5SWlCeWVEMGlNaUlnY25rOUlqSWlJR05zWVhOelBTSnNiMkZrWlhJaVBnb2dJQ0FnUEdGdWFXMWhkR1VnWVhSMGNtbGlkWFJsVG1GdFpUMGlZM2dpSUdaeWIyMDlJakUwSWlCMGJ6MGlNaUlnWkhWeVBTSXdMalp6SWlCeVpYQmxZWFJEYjNWdWREMGlhVzVrWldacGJtbDBaU0lnTHo0S0lDQThMMlZzYkdsd2MyVStDand2YzNablBnbz1cXFwiKTtcXG4gICAgICAgICAgbWFzazogdXJsKFxcXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lqOCtDanh6ZG1jZ2QybGtkR2c5SWpFeUlpQm9aV2xuYUhROUlqUWlJSFpwWlhkUWIzSjBQU0l3SURBZ01USWdOQ0lnZG1WeWMybHZiajBpTVM0eElpQjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaVBnb2dJRHhsYkd4cGNITmxJR040UFNJeUlpQmplVDBpTWlJZ2NuZzlJaklpSUhKNVBTSXlJajRLSUNBZ0lEeGhibWx0WVhSbElHRjBkSEpwWW5WMFpVNWhiV1U5SW1ONElpQm1jbTl0UFNJeUlpQjBiejBpTFRFd0lpQmtkWEk5SWpBdU5uTWlJSEpsY0dWaGRFTnZkVzUwUFNKcGJtUmxabWx1YVhSbElpQXZQZ29nSUR3dlpXeHNhWEJ6WlQ0S0lDQThaV3hzYVhCelpTQmplRDBpTVRRaUlHTjVQU0l5SWlCeWVEMGlNaUlnY25rOUlqSWlJR05zWVhOelBTSnNiMkZrWlhJaVBnb2dJQ0FnUEdGdWFXMWhkR1VnWVhSMGNtbGlkWFJsVG1GdFpUMGlZM2dpSUdaeWIyMDlJakUwSWlCMGJ6MGlNaUlnWkhWeVBTSXdMalp6SWlCeVpYQmxZWFJEYjNWdWREMGlhVzVrWldacGJtbDBaU0lnTHo0S0lDQThMMlZzYkdsd2MyVStDand2YzNablBnbz1cXFwiKTtcXG59XFxuLnEtcHJvZ3Jlc3MtdHJhY2ssXFxuLnEtcHJvZ3Jlc3MtYnVmZmVyIHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG4gIG9wYWNpdHk6IDAuMjtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuLnB1bGwtdG8tcmVmcmVzaCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5wdWxsLXRvLXJlZnJlc2gtbWVzc2FnZSB7XFxuICBoZWlnaHQ6IDY1cHg7XFxuICBmb250LXNpemU6IDFyZW07XFxufVxcbi5wdWxsLXRvLXJlZnJlc2gtbWVzc2FnZSAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMnJlbTtcXG4gIG1hcmdpbi1yaWdodDogMTVweDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3M7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcXG59XFxuLnEtcmFkaW8tdW5jaGVja2VkLFxcbi5xLXJhZGlvLWNoZWNrZWQsXFxuLnEtcmFkaW8gLnEtb3B0aW9uLWlubmVyIHtcXG4gIGhlaWdodDogMjFweDtcXG4gIHdpZHRoOiAyMXB4O1xcbiAgbWluLXdpZHRoOiAyMXB4O1xcbiAgZm9udC1zaXplOiAyMXB4O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSwgLXdlYmtpdC10cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLnEtcmFkaW8tdW5jaGVja2VkIHtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbi5xLXJhZGlvLWNoZWNrZWQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlIDA7XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCUgMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcXG59XFxuLnEtcmFkaW8gLnEtb3B0aW9uLWlubmVyLmFjdGl2ZSAucS1yYWRpby11bmNoZWNrZWQge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtcmFkaW8gLnEtb3B0aW9uLWlubmVyLmFjdGl2ZSAucS1yYWRpby1jaGVja2VkIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG59XFxuLnEtcmF0aW5nIHtcXG4gIGNvbG9yOiAjZmZlYjNiO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG59XFxuLnEtcmF0aW5nIHNwYW4ge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBkaXNwbGF5OiBpbmhlcml0O1xcbn1cXG4ucS1yYXRpbmcgaSB7XFxuICBjb2xvcjogY3VycmVudENvbG9yO1xcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMTIpLCAwIDFweCAycHggcmdiYSgwLDAsMCwwLjI0KTtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGN1cnNvcjogZGVmYXVsdDtcXG4gIG9wYWNpdHk6IDAuNDtcXG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XFxufVxcbi5xLXJhdGluZyBpLmhvdmVyZWQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zKTtcXG59XFxuLnEtcmF0aW5nIGkuZXhzZWxlY3RlZCB7XFxuICBvcGFjaXR5OiAwLjc7XFxufVxcbi5xLXJhdGluZyBpLmFjdGl2ZSB7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4ucS1yYXRpbmcgaSArIGkge1xcbiAgbWFyZ2luLWxlZnQ6IDAuM3JlbTtcXG59XFxuLnEtcmF0aW5nLmVkaXRhYmxlIGkge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS1yYXRpbmc6bm90KC5lZGl0YWJsZSkgc3BhbixcXG4ucS1yYXRpbmcgaSB7XFxuICBvdXRsaW5lOiAwO1xcbn1cXG4ucS1zY3JvbGxhcmVhLXRodW1iIHtcXG4gIGJhY2tncm91bmQ6ICMwMDA7XFxuICB3aWR0aDogMTBweDtcXG4gIHJpZ2h0OiAwO1xcbiAgb3BhY2l0eTogMC4yO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XFxufVxcbi5xLXNjcm9sbGFyZWEtdGh1bWIuaW52aXNpYmxlLXRodW1iIHtcXG4gIG9wYWNpdHk6IDAgIWltcG9ydGFudDtcXG59XFxuLnEtc2Nyb2xsYXJlYS10aHVtYjpob3ZlciB7XFxuICBvcGFjaXR5OiAwLjM7XFxufVxcbi5xLXNjcm9sbGFyZWEtdGh1bWI6YWN0aXZlIHtcXG4gIG9wYWNpdHk6IDAuNTtcXG59XFxuLnEtdG9vbGJhciAucS1zZWFyY2gge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjI1KTtcXG59XFxuLnEtc2xpZGVyLXRyYWNrLFxcbi5xLXNsaWRlci1tYXJrIHtcXG4gIG9wYWNpdHk6IDAuNDtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtc2xpZGVyLXRyYWNrIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxuICBoZWlnaHQ6IDJweDtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXG4ucS1zbGlkZXItdHJhY2s6bm90KC5kcmFnZ2luZykge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcXG59XFxuLnEtc2xpZGVyLXRyYWNrLmFjdGl2ZS10cmFjayB7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4ucS1zbGlkZXItdHJhY2sudHJhY2stZHJhZ2dhYmxlLmRyYWdnaW5nIHtcXG4gIGhlaWdodDogNHB4O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBoZWlnaHQgMC4zcyBlYXNlO1xcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuM3MgZWFzZTtcXG59XFxuLnEtc2xpZGVyLXRyYWNrLmhhbmRsZS1hdC1taW5pbXVtIHtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG4ucS1zbGlkZXItbWFyayB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIGhlaWdodDogMTBweDtcXG4gIHdpZHRoOiAycHg7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcXG59XFxuLnEtc2xpZGVyLWhhbmRsZS1jb250YWluZXIge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgbWFyZ2luLWxlZnQ6IDZweDtcXG4gIG1hcmdpbi1yaWdodDogNnB4O1xcbn1cXG4ucS1zbGlkZXItbGFiZWwge1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogNnB4O1xcbiAgb3BhY2l0eTogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMCkgc2NhbGUoMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDApIHNjYWxlKDApO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycztcXG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xcbiAgcGFkZGluZzogMnB4IDRweDtcXG59XFxuLnEtc2xpZGVyLWxhYmVsLmxhYmVsLWFsd2F5cyB7XFxuICBvcGFjaXR5OiAxO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtMTM5JSkgc2NhbGUoMSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC0xMzklKSBzY2FsZSgxKTtcXG59XFxuLnEtc2xpZGVyLWhhbmRsZSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xcbiAgd2lkdGg6IDEycHg7XFxuICBoZWlnaHQ6IDEycHg7XFxuICBvdXRsaW5lOiAwO1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1zbGlkZXItaGFuZGxlIC5xLWNoaXAge1xcbiAgbWF4LXdpZHRoOiB1bnNldDtcXG59XFxuLnEtc2xpZGVyLWhhbmRsZS5kcmFnZ2luZyB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCkgc2NhbGUoMS4zKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSBzY2FsZSgxLjMpO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgLXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBlYXNlO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UsIC13ZWJraXQtdHJhbnNmb3JtIDAuM3MgZWFzZTtcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLCB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UsIHRyYW5zZm9ybSAwLjNzIGVhc2UsIC13ZWJraXQtdHJhbnNmb3JtIDAuM3MgZWFzZTtcXG59XFxuLnEtc2xpZGVyLWhhbmRsZS5kcmFnZ2luZyAucS1zbGlkZXItbGFiZWwge1xcbiAgb3BhY2l0eTogMTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTEzOSUpIHNjYWxlKDEpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtMTM5JSkgc2NhbGUoMSk7XFxufVxcbi5xLXNsaWRlci1oYW5kbGUuaGFuZGxlLWF0LW1pbmltdW0ge1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG59XFxuLnEtc2xpZGVyLWhhbmRsZS5oYW5kbGUtYXQtbWluaW11bTphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG4gIGJvcmRlcjogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtc2xpZGVyLXJpbmcge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAtNTAlO1xcbiAgbGVmdDogLTUwJTtcXG4gIHdpZHRoOiAyMDAlO1xcbiAgaGVpZ2h0OiAyMDAlO1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgb3BhY2l0eTogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbjtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW47XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXNsaWRlcjpub3QoLmRpc2FibGVkKTpub3QoLnJlYWRvbmx5KSAucS1zbGlkZXItaGFuZGxlLmRyYWdnaW5nIC5xLXNsaWRlci1yaW5nLFxcbi5xLXNsaWRlcjpub3QoLmRpc2FibGVkKTpub3QoLnJlYWRvbmx5KSAucS1zbGlkZXItaGFuZGxlOmZvY3VzIC5xLXNsaWRlci1yaW5nLFxcbmJvZHkuZGVza3RvcCAucS1zbGlkZXI6bm90KC5kaXNhYmxlZCk6bm90KC5yZWFkb25seSk6aG92ZXIgLnEtc2xpZGVyLXJpbmcge1xcbiAgb3BhY2l0eTogMC40O1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbn1cXG4ucS1zbGlkZXIuZGlzYWJsZWQgLnEtc2xpZGVyLWhhbmRsZSB7XFxuICBib3JkZXI6IDJweCBzb2xpZCAjZmZmO1xcbn1cXG4ucS1zbGlkZXIuZGlzYWJsZWQgLnEtc2xpZGVyLWhhbmRsZS5oYW5kbGUtYXQtbWluaW11bSB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXNsaWRlciB7XFxuICBoZWlnaHQ6IDI4cHg7XFxuICB3aWR0aDogMTAwJTtcXG4gIGNvbG9yOiAjMDI3YmUzO1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItcHJpbWFyeSk7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLXNsaWRlci5sYWJlbC1hbHdheXMsXFxuLnEtc2xpZGVyLndpdGgtcGFkZGluZyB7XFxuICBwYWRkaW5nOiAzNnB4IDAgOHB4O1xcbiAgaGVpZ2h0OiA2NHB4O1xcbn1cXG4ucS1zbGlkZXIuaGFzLWVycm9yIHtcXG4gIGNvbG9yOiAjZGIyODI4O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbmVnYXRpdmUpO1xcbn1cXG4ucS1zbGlkZXIuaGFzLXdhcm5pbmcge1xcbiAgY29sb3I6ICNmMmMwMzc7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci13YXJuaW5nKTtcXG59XFxuLnEtc3Bpbm5lciB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG4ucS1zcGlubmVyLW1hdCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1zcGluIDJzIGxpbmVhciBpbmZpbml0ZSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtc3BpbiAycyBsaW5lYXIgaW5maW5pdGUgLyogcnRsOmlnbm9yZSAqLztcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlciAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLXNwaW5uZXItbWF0IC5wYXRoIHtcXG4gIHN0cm9rZS1kYXNoYXJyYXk6IDEsIDIwMDtcXG4gIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xcbiAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtbWF0LWRhc2ggMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtbWF0LWRhc2ggMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1zdGVwcGVyIHtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS1zdGVwcGVyLXRpdGxlIHtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG59XFxuLnEtc3RlcHBlci1zdWJ0aXRsZSB7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBvcGFjaXR5OiAwLjc7XFxufVxcbi5xLXN0ZXBwZXItZG90IHtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgd2lkdGg6IDI0cHg7XFxuICBoZWlnaHQ6IDI0cHg7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXN0ZXBwZXItZG90IHNwYW4ge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLXN0ZXBwZXItdGFiIHtcXG4gIHBhZGRpbmc6IDI0cHg7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogY29sb3IgMC4yOHMsIGJhY2tncm91bmQgMC4yOHM7XFxuICB0cmFuc2l0aW9uOiBjb2xvciAwLjI4cywgYmFja2dyb3VuZCAwLjI4cztcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC13YWl0aW5nIHtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1zdGVwcGVyLXRhYi5zdGVwLXdhaXRpbmcgLnEtc3RlcHBlci1kb3Qge1xcbiAgY29sb3I6IHJnYmEoMCwwLDAsMC40Mik7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtbmF2aWdhdGlvbiB7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS1zdGVwcGVyLXRhYi5zdGVwLWNvbG9yIHtcXG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtYWN0aXZlIC5xLXN0ZXBwZXItdGl0bGUge1xcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtZGlzYWJsZWQge1xcbiAgY29sb3I6IHJnYmEoMCwwLDAsMC40Mik7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtZXJyb3Ige1xcbiAgY29sb3I6ICNkYjI4Mjg7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1uZWdhdGl2ZSk7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtZXJyb3IgLnEtc3RlcHBlci1kb3Qge1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtZXJyb3IgLnEtc3RlcHBlci1kb3Qgc3BhbiB7XFxuICBjb2xvcjogI2RiMjgyODtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLW5lZ2F0aXZlKTtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG59XFxuLnEtc3RlcHBlci1oZWFkZXIge1xcbiAgbWluLWhlaWdodDogNzJweDtcXG59XFxuLnEtc3RlcHBlci1oZWFkZXI6bm90KC5hbHRlcm5hdGl2ZS1sYWJlbHMpIC5xLXN0ZXBwZXItdGFiIHtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbn1cXG4ucS1zdGVwcGVyLWhlYWRlcjpub3QoLmFsdGVybmF0aXZlLWxhYmVscykgLnEtc3RlcHBlci1kb3Q6YWZ0ZXIge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtc3RlcHBlci1oZWFkZXIuYWx0ZXJuYXRpdmUtbGFiZWxzIHtcXG4gIG1pbi1oZWlnaHQ6IDEwNHB4O1xcbn1cXG4ucS1zdGVwcGVyLWhlYWRlci5hbHRlcm5hdGl2ZS1sYWJlbHMgLnEtc3RlcHBlci10YWIge1xcbiAgcGFkZGluZzogMjRweCAzMnB4O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgLXdlYmtpdC1ib3gtcGFjazogc3RhcnQ7XFxuICAgICAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcXG59XFxuLnEtc3RlcHBlci1oZWFkZXIuYWx0ZXJuYXRpdmUtbGFiZWxzIC5xLXN0ZXBwZXItZG90IHtcXG4gIG1hcmdpbi1yaWdodDogMDtcXG59XFxuLnEtc3RlcHBlci1oZWFkZXIuYWx0ZXJuYXRpdmUtbGFiZWxzIC5xLXN0ZXBwZXItbGFiZWwge1xcbiAgbWFyZ2luLXRvcDogOHB4O1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG4ucS1zdGVwcGVyLWhlYWRlci5hbHRlcm5hdGl2ZS1sYWJlbHMgLnEtc3RlcHBlci1sYWJlbDpiZWZvcmUsXFxuLnEtc3RlcHBlci1oZWFkZXIuYWx0ZXJuYXRpdmUtbGFiZWxzIC5xLXN0ZXBwZXItbGFiZWw6YWZ0ZXIge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtc3RlcHBlci1zdGVwLWNvbnRlbnQge1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItdGFiIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItZmlyc3QgLnEtc3RlcHBlci1kb3Q6YmVmb3JlLFxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItbGFzdCAucS1zdGVwcGVyLWxhYmVsOmFmdGVyLFxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItbGFzdCAucS1zdGVwcGVyLWRvdDphZnRlciB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWxpbmU6YmVmb3JlLFxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItbGluZTphZnRlciB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIGhlaWdodDogMXB4O1xcbiAgd2lkdGg6IDEwMHZ3O1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1sYWJlbDphZnRlcixcXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWRvdDphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIGxlZnQ6IDEwMCU7XFxuICBtYXJnaW4tbGVmdDogOHB4O1xcbn1cXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWRvdDpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxuICByaWdodDogMTAwJTtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbn1cXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLW5hdiB7XFxuICBtYXJnaW46IDAgMTZweCA4cHg7XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItc3RlcCAucS1zdGVwcGVyLW5hdiB7XFxuICBtYXJnaW46IDE2cHggMCAwO1xcbn1cXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLXN0ZXAgLnEtc3RlcHBlci1uYXYgPiBkaXYuY29sIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItc3RlcC1jb250ZW50ID4gLnEtc3RlcHBlci1zdGVwLWlubmVyIHtcXG4gIHBhZGRpbmc6IDI0cHg7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwge1xcbiAgcGFkZGluZzogOHB4IDAgMThweDtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItbmF2IHtcXG4gIG1hcmdpbi10b3A6IDE2cHg7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLW5hdiA+IGRpdi5jb2wge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci1zdGVwLWNvbnRlbnQgPiAucS1zdGVwcGVyLXN0ZXAtaW5uZXIge1xcbiAgcGFkZGluZzogMCAyNHB4IDI0cHggNDhweDtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItdGFiIHtcXG4gIHBhZGRpbmc6IDEycHggMTZweDtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItdGFiIC5xLXN0ZXBwZXItZG90OmJlZm9yZSxcXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIgLnEtc3RlcHBlci1kb3Q6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiA1MCU7XFxuICB3aWR0aDogMXB4O1xcbiAgaGVpZ2h0OiAxMDB2aDtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYiAucS1zdGVwcGVyLWRvdDpiZWZvcmUge1xcbiAgYm90dG9tOiAxMDAlO1xcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIgLnEtc3RlcHBlci1kb3Q6YWZ0ZXIge1xcbiAgdG9wOiAxMDAlO1xcbiAgbWFyZ2luLXRvcDogOHB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIgLnEtc3RlcHBlci1sYWJlbCB7XFxuICBwYWRkaW5nLXRvcDogNHB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIgLnEtc3RlcHBlci1sYWJlbCAucS1zdGVwcGVyLXRpdGxlIHtcXG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIucS1zdGVwcGVyLWZpcnN0IC5xLXN0ZXBwZXItZG90OmJlZm9yZSxcXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIucS1zdGVwcGVyLWxhc3QgLnEtc3RlcHBlci1kb3Q6YWZ0ZXIge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuYm9keS5kZXNrdG9wIC5xLXN0ZXBwZXItdGFiLnN0ZXAtbmF2aWdhdGlvbjpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDUpO1xcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIC5xLXN0ZXBwZXItaG9yaXpvbnRhbC5xLXN0ZXBwZXItY29udHJhY3RhYmxlID4gLnEtc3RlcHBlci1oZWFkZXIge1xcbiAgICBtaW4taGVpZ2h0OiA3MnB4O1xcbiAgfVxcbiAgLnEtc3RlcHBlci1ob3Jpem9udGFsLnEtc3RlcHBlci1jb250cmFjdGFibGUgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLXRhYiB7XFxuICAgIHBhZGRpbmc6IDI0cHggMDtcXG4gIH1cXG4gIC5xLXN0ZXBwZXItaG9yaXpvbnRhbC5xLXN0ZXBwZXItY29udHJhY3RhYmxlID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci10YWI6bm90KDpsYXN0LWNoaWxkKSAucS1zdGVwcGVyLWRvdDphZnRlciB7XFxuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XFxuICB9XFxuICAucS1zdGVwcGVyLWhvcml6b250YWwucS1zdGVwcGVyLWNvbnRyYWN0YWJsZSA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItZG90IHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcbiAgLnEtc3RlcHBlci1ob3Jpem9udGFsLnEtc3RlcHBlci1jb250cmFjdGFibGUgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWxhYmVsIHtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gIH1cXG59XFxuLnEtdGFicyB7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxufVxcbi5xLWxheW91dC1tYXJnaW5hbCAucS10YWJzIHtcXG4gIGJvcmRlci1yYWRpdXM6IDA7XFxufVxcbi5xLXRhYnMtc2Nyb2xsZXIge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnEtdGFiLXBhbmUge1xcbiAgcGFkZGluZzogMTJweDtcXG59XFxuLnEtdGFicy1wYW5lczplbXB0eSB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS10YWJzLW5vcm1hbCAucS10YWItaWNvbixcXG4ucS10YWJzLW5vcm1hbCAucS10YWItbGFiZWwge1xcbiAgb3BhY2l0eTogMC43O1xcbn1cXG4ucS10YWIge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAwLjNzLCBiYWNrZ3JvdW5kIDAuM3M7XFxuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzLCBiYWNrZ3JvdW5kIDAuM3M7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIHBhZGRpbmc6IDhweCAxMHB4O1xcbiAgbWluLWhlaWdodDogNDhweDtcXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxufVxcbi5xLXRhYiAucS10YWItaWNvbi1wYXJlbnQgKyAucS10YWItbGFiZWwtcGFyZW50IHtcXG4gIG1hcmdpbi10b3A6IDRweDtcXG59XFxuLnEtdGFiIC5xLWNoaXAge1xcbiAgdG9wOiAtOHB4O1xcbiAgcmlnaHQ6IC0xMHB4O1xcbiAgbGVmdDogYXV0bztcXG4gIG1pbi1oZWlnaHQ6IGF1dG87XFxuICBjb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjQ0LDY3LDU0LDAuNzUpO1xcbn1cXG4ucS10YWIuYWN0aXZlIC5xLXRhYi1pY29uLFxcbi5xLXRhYi5hY3RpdmUgLnEtdGFiLWxhYmVsIHtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbi5xLXRhYi1sYWJlbCB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi5xLXRhYi1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMjdweDtcXG59XFxuLnEtdGFiLWZvY3VzLWhlbHBlciB7XFxuICB6LWluZGV4OiAtMTtcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5xLXRhYi1mb2N1cy1oZWxwZXI6Zm9jdXMge1xcbiAgei1pbmRleDogdW5zZXQ7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxuICBvcGFjaXR5OiAwLjE7XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgLnEtdGFiLmhpZGUtaWNvbiAucS10YWItaWNvbi1wYXJlbnQsXFxuICAucS10YWIuaGlkZS1sYWJlbCAucS10YWItbGFiZWwtcGFyZW50IHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbiAgLnEtdGFiLmhpZGUtaWNvbiAucS10YWItbGFiZWwge1xcbiAgICBtYXJnaW4tdG9wOiAwO1xcbiAgfVxcbiAgLnEtdGFiLWZ1bGwuaGlkZS1ub25lIC5xLXRhYi1sYWJlbC1wYXJlbnQgLnEtdGFiLW1ldGEge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gIC5xLXRhYi1mdWxsIC5xLXRhYi1sYWJlbC1wYXJlbnQgLnEtdGFiLW1ldGEge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcXG4gIC5xLXRhYnMtaGVhZDpub3QoLnNjcm9sbGFibGUpIC5xLXRhYnMtc2Nyb2xsZXIsXFxuICAucS10YWJzLWhlYWQ6bm90KC5zY3JvbGxhYmxlKSAucS10YWIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcXG4gIC5xLXRhYiB7XFxuICAgIHBhZGRpbmctbGVmdDogMjVweDtcXG4gICAgcGFkZGluZy1yaWdodDogMjVweDtcXG4gIH1cXG4gIC5xLWxheW91dC1tYXJnaW5hbCAucS10YWJzLWhlYWQ6bm90KC5zY3JvbGxhYmxlKSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTJweDtcXG4gICAgcGFkZGluZy1yaWdodDogMTJweDtcXG4gIH1cXG59XFxuLnEtdGFicy1oZWFkIHtcXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogY29sb3IgMC4xOHMgZWFzZS1pbiwgLXdlYmtpdC1ib3gtc2hhZG93IDAuMThzIGVhc2UtaW47XFxuICB0cmFuc2l0aW9uOiBjb2xvciAwLjE4cyBlYXNlLWluLCAtd2Via2l0LWJveC1zaGFkb3cgMC4xOHMgZWFzZS1pbjtcXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMThzIGVhc2UtaW4sIGJveC1zaGFkb3cgMC4xOHMgZWFzZS1pbjtcXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMThzIGVhc2UtaW4sIGJveC1zaGFkb3cgMC4xOHMgZWFzZS1pbiwgLXdlYmtpdC1ib3gtc2hhZG93IDAuMThzIGVhc2UtaW47XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5xLXRhYnMtaGVhZDpub3QoLnNjcm9sbGFibGUpIC5xLXRhYnMtbGVmdC1zY3JvbGwsXFxuLnEtdGFicy1oZWFkOm5vdCguc2Nyb2xsYWJsZSkgLnEtdGFicy1yaWdodC1zY3JvbGwge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4ucS10YWJzLWxlZnQtc2Nyb2xsLFxcbi5xLXRhYnMtcmlnaHQtc2Nyb2xsIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgdG9wOiAwO1xcbn1cXG4ucS10YWJzLWxlZnQtc2Nyb2xsIC5xLWljb24sXFxuLnEtdGFicy1yaWdodC1zY3JvbGwgLnEtaWNvbiB7XFxuICB0ZXh0LXNoYWRvdzogMCAwIDEwcHggIzAwMDtcXG4gIGZvbnQtc2l6ZTogMzIuNHB4O1xcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbn1cXG4ucS10YWJzLWxlZnQtc2Nyb2xsLmRpc2FibGVkLFxcbi5xLXRhYnMtcmlnaHQtc2Nyb2xsLmRpc2FibGVkIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXRhYnM6aG92ZXIgLnEtdGFicy1sZWZ0LXNjcm9sbCAucS1pY29uLFxcbi5xLXRhYnM6aG92ZXIgLnEtdGFicy1yaWdodC1zY3JvbGwgLnEtaWNvbiB7XFxuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xcbn1cXG4ucS10YWJzLWxlZnQtc2Nyb2xsIHtcXG4gIGxlZnQ6IDAgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtdGFicy1yaWdodC1zY3JvbGwge1xcbiAgcmlnaHQ6IDAgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtdGFicy1hbGlnbi1qdXN0aWZ5IC5xLXRhYnMtc2Nyb2xsZXIsXFxuLnEtdGFicy1hbGlnbi1qdXN0aWZ5IC5xLXRhYiB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICAgICAgZmxleDogMSAxIGF1dG87XFxufVxcbi5xLXRhYnMtYWxpZ24tY2VudGVyIHtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbn1cXG4ucS10YWJzLWFsaWduLXJpZ2h0IHtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGVuZDtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBlbmQ7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XFxufVxcbi5xLXRhYnMtYmFyIHtcXG4gIGJvcmRlcjogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG4gIGJvcmRlci13aWR0aDogMDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGhlaWdodDogMDtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG59XFxuLnEtdGFicy1nbG9iYWwtYmFyIHtcXG4gIHdpZHRoOiAxcHg7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XFxuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm07XFxuICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSwgLXdlYmtpdC10cmFuc2Zvcm07XFxuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzO1xcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1cztcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpO1xcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7XFxufVxcbi5xLXRhYnMtZ2xvYmFsLWJhci5jb250cmFjdCB7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDAuMThzO1xcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE4cztcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XFxufVxcbi5xLXRhYnMtZ2xvYmFsLWJhci1jb250YWluZXIuaGlnaGxpZ2h0ID4gLnEtdGFicy1nbG9iYWwtYmFyIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXRhYnMtdHdvLWxpbmVzIC5xLXRhYiB7XFxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xcbn1cXG4ucS10YWJzLXR3by1saW5lcyAucS10YWIgLnEtdGFiLWxhYmVsIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XFxufVxcbi5xLXRhYnMtcG9zaXRpb24tdG9wID4gLnEtdGFicy1oZWFkIC5xLXRhYnMtYmFyIHtcXG4gIGJvdHRvbTogMDtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDJweDtcXG59XFxuLnEtdGFicy1wb3NpdGlvbi1ib3R0b20gPiAucS10YWJzLWhlYWQgLnEtdGFicy1iYXIge1xcbiAgdG9wOiAwO1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMnB4O1xcbn1cXG4ucS10YWJzLXBvc2l0aW9uLWJvdHRvbSA+IC5xLXRhYnMtcGFuZXMge1xcbiAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMDtcXG4gICAgICAtbXMtZmxleC1vcmRlcjogLTE7XFxuICAgICAgICAgIG9yZGVyOiAtMTtcXG59XFxuLnEtdGFicy1pbnZlcnRlZCAucS10YWJzLWhlYWQge1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG59XFxuLnEtdGFicy1pbnZlcnRlZC5xLXRhYnMtcG9zaXRpb24tdG9wID4gLnEtdGFicy1wYW5lcyB7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpO1xcbn1cXG4ucS10YWJzLWludmVydGVkLnEtdGFicy1wb3NpdGlvbi10b3AgPiAucS10YWItcGFuZSB7XFxuICBib3JkZXItdG9wOiAwO1xcbn1cXG4ucS10YWJzLWludmVydGVkLnEtdGFicy1wb3NpdGlvbi1ib3R0b20gPiAucS10YWJzLXBhbmVzIHtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7XFxufVxcbi5xLXRhYnMtaW52ZXJ0ZWQucS10YWJzLXBvc2l0aW9uLWJvdHRvbSA+IC5xLXRhYi1wYW5lIHtcXG4gIGJvcmRlci1ib3R0b206IDA7XFxufVxcbmJvZHkubW9iaWxlIC5xLXRhYnMtc2Nyb2xsZXIge1xcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xcbiAgb3ZlcmZsb3cteDogYXV0bztcXG4gIHdpbGwtY2hhbmdlOiBzY3JvbGwtcG9zaXRpb247XFxuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XFxufVxcbmJvZHkuZGVza3RvcCAucS10YWI6YmVmb3JlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIG9wYWNpdHk6IDAuMTtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuYm9keS5kZXNrdG9wIC5xLXRhYjpob3ZlcjpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxufVxcbi5xLXRhYmxlLWNvbnRhaW5lciB7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLnEtdGFibGUtY29udGFpbmVyLmZ1bGxzY3JlZW4ge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcXG59XFxuLnEtdGFibGUtdG9wIHtcXG4gIG1pbi1oZWlnaHQ6IDY0cHg7XFxuICBwYWRkaW5nOiA4cHggMjRweDtcXG59XFxuLnEtdGFibGUtdG9wOmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgb3BhY2l0eTogMC4yO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxufVxcbi5xLXRhYmxlLXRvcCAucS10YWJsZS1jb250cm9sIHtcXG4gIG1pbi1oZWlnaHQ6IDM2cHg7XFxuICBwYWRkaW5nOiA4cHggMDtcXG4gIC1tcy1mbGV4LXdyYXA6IHdyYXA7XFxuICAgICAgZmxleC13cmFwOiB3cmFwO1xcbn1cXG4ucS10YWJsZS10aXRsZSB7XFxuICBmb250LXNpemU6IDIwcHg7XFxuICBsZXR0ZXItc3BhY2luZzogMC4wMDVlbTtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxufVxcbi5xLXRhYmxlLXNlcGFyYXRvciB7XFxuICBtaW4td2lkdGg6IDhweCAhaW1wb3J0YW50O1xcbn1cXG4ucS10YWJsZS1ub2RhdGEgLnEtaWNvbiB7XFxuICBmb250LXNpemU6IDIwMCU7XFxuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xcbn1cXG4ucS10YWJsZS1wcm9ncmVzcyB7XFxuICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcXG59XFxuLnEtdGFibGUtcHJvZ3Jlc3MgdGQge1xcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxufVxcbi5xLXRhYmxlLXByb2dyZXNzIC5xLXByb2dyZXNzIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGhlaWdodDogMnB4O1xcbiAgYm90dG9tOiAwO1xcbn1cXG4ucS10YWJsZS1taWRkbGUge1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbn1cXG4ucS10YWJsZS1ib3R0b20ge1xcbiAgbWluLWhlaWdodDogNDhweDtcXG4gIHBhZGRpbmc6IDRweCAxNHB4IDRweCAyNHB4O1xcbn1cXG4ucS10YWJsZS1ib3R0b20sXFxuLnEtdGFibGUtYm90dG9tIC5xLWlmIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG59XFxuLnEtdGFibGUtYm90dG9tIC5xLXRhYmxlLWNvbnRyb2wge1xcbiAgbWluLWhlaWdodDogMjRweDtcXG59XFxuLnEtdGFibGUtY29udHJvbCB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG59XFxuLnEtdGFibGUtc29ydC1pY29uIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybTtcXG4gIG9wYWNpdHk6IDA7XFxuICBmb250LXNpemU6IDEyMCU7XFxufVxcbi5xLXRhYmxlLXNvcnQtaWNvbi1sZWZ0LFxcbi5xLXRhYmxlLXNvcnQtaWNvbi1jZW50ZXIge1xcbiAgbWFyZ2luLWxlZnQ6IDRweDtcXG59XFxuLnEtdGFibGUtc29ydC1pY29uLXJpZ2h0IHtcXG4gIG1hcmdpbi1yaWdodDogNHB4O1xcbn1cXG4ucS10YWJsZSB7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XFxuICBib3JkZXItc3BhY2luZzogMDtcXG59XFxuLnEtdGFibGUgdGhlYWQgdHIge1xcbiAgaGVpZ2h0OiA1NnB4O1xcbn1cXG4ucS10YWJsZSB0aCB7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbn1cXG4ucS10YWJsZSB0aC5zb3J0YWJsZSB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLXRhYmxlIHRoLnNvcnRhYmxlOmhvdmVyIC5xLXRhYmxlLXNvcnQtaWNvbiB7XFxuICBvcGFjaXR5OiAwLjU7XFxufVxcbi5xLXRhYmxlIHRoLnNvcnRlZCAucS10YWJsZS1zb3J0LWljb24ge1xcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xcbn1cXG4ucS10YWJsZSB0aC5zb3J0LWRlc2MgLnEtdGFibGUtc29ydC1pY29uIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcXG59XFxuLnEtdGFibGUgdGJvZHkgdHIge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB3aWxsLWNoYW5nZTogYmFja2dyb3VuZDtcXG59XFxuLnEtdGFibGUgdGgsXFxuLnEtdGFibGUgdGQge1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIHBhZGRpbmc6IDdweCAyNHB4O1xcbn1cXG4ucS10YWJsZSB0aGVhZCxcXG4ucS10YWJsZSB0ZCxcXG4ucS10YWJsZSB0aCB7XFxuICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgYm9yZGVyLXdpZHRoOiAwO1xcbn1cXG4ucS10YWJsZSB0Ym9keSB0ZCB7XFxuICBoZWlnaHQ6IDQ4cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgZm9udC1zaXplOiAxM3B4O1xcbn1cXG4ucS10YWJsZS1jb2wtYXV0by13aWR0aCB7XFxuICB3aWR0aDogMXB4O1xcbn1cXG4ucS10YWJsZS1ib3R0b20taXRlbSB7XFxuICBtYXJnaW4tcmlnaHQ6IDI0cHg7XFxufVxcbi5xLXRhYmxlLWdyaWQge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbn1cXG4ucS10YWJsZS1ncmlkIC5xLXRhYmxlLWJvdHRvbSB7XFxuICBib3JkZXItdG9wOiAwO1xcbn1cXG4ucS10YWJsZS1ncmlkIC5xLXRhYmxlIHtcXG4gIGhlaWdodDogMnB4O1xcbn1cXG4ucS10YWJsZS1ncmlkIC5xLXRhYmxlIHRoZWFkIHtcXG4gIGJvcmRlcjogMDtcXG59XFxuLnEtdGFibGUtaG9yaXpvbnRhbC1zZXBhcmF0b3IgdGhlYWQsXFxuLnEtdGFibGUtaG9yaXpvbnRhbC1zZXBhcmF0b3IgdGJvZHkgdGQge1xcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4IDA7XFxufVxcbi5xLXRhYmxlLXZlcnRpY2FsLXNlcGFyYXRvciB0aGVhZCB7XFxuICBib3JkZXItd2lkdGg6IDAgMCAxcHggMDtcXG59XFxuLnEtdGFibGUtdmVydGljYWwtc2VwYXJhdG9yIHRkIHtcXG4gIGJvcmRlci13aWR0aDogMCAwIDAgMXB4O1xcbn1cXG4ucS10YWJsZS12ZXJ0aWNhbC1zZXBhcmF0b3IgdGQ6Zmlyc3QtY2hpbGQge1xcbiAgYm9yZGVyLWxlZnQ6IDA7XFxufVxcbi5xLXRhYmxlLWNlbGwtc2VwYXJhdG9yIHRkIHtcXG4gIGJvcmRlci13aWR0aDogMXB4O1xcbn1cXG4ucS10YWJsZS1jZWxsLXNlcGFyYXRvciB0ZDpmaXJzdC1jaGlsZCB7XFxuICBib3JkZXItbGVmdDogMDtcXG59XFxuLnEtdGFibGUtY2VsbC1zZXBhcmF0b3IgdGQ6bGFzdC1jaGlsZCB7XFxuICBib3JkZXItcmlnaHQ6IDA7XFxufVxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlLXRvcCB7XFxuICBtaW4taGVpZ2h0OiA0OHB4O1xcbn1cXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZS10b3AsXFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUtYm90dG9tIHtcXG4gIHBhZGRpbmctbGVmdDogOHB4O1xcbiAgcGFkZGluZy1yaWdodDogOHB4O1xcbn1cXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZS1ib3R0b20ge1xcbiAgbWluLWhlaWdodDogNDJweDtcXG59XFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUtc29ydC1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMTEwJTtcXG59XFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUgdGgsXFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUgdGQge1xcbiAgcGFkZGluZzogNHB4IDhweDtcXG59XFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUgdGhlYWQgdHIge1xcbiAgaGVpZ2h0OiA0MHB4O1xcbn1cXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZSB0Ym9keSB0ZCB7XFxuICBoZWlnaHQ6IDI4cHg7XFxufVxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlLWJvdHRvbS1pdGVtIHtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIC5xLXRhYmxlLXRvcCB7XFxuICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XFxuICB9XFxuICAucS10YWJsZS10b3AsXFxuICAucS10YWJsZS1ib3R0b20ge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcXG4gICAgcGFkZGluZy1yaWdodDogOHB4O1xcbiAgfVxcbiAgLnEtdGFibGUtYm90dG9tIHtcXG4gICAgbWluLWhlaWdodDogNDJweDtcXG4gIH1cXG4gIC5xLXRhYmxlLXNvcnQtaWNvbiB7XFxuICAgIGZvbnQtc2l6ZTogMTEwJTtcXG4gIH1cXG4gIC5xLXRhYmxlIHRoLFxcbiAgLnEtdGFibGUgdGQge1xcbiAgICBwYWRkaW5nOiA0cHggOHB4O1xcbiAgfVxcbiAgLnEtdGFibGUgdGhlYWQgdHIge1xcbiAgICBoZWlnaHQ6IDQwcHg7XFxuICB9XFxuICAucS10YWJsZSB0Ym9keSB0ZCB7XFxuICAgIGhlaWdodDogMjhweDtcXG4gIH1cXG4gIC5xLXRhYmxlLWJvdHRvbS1pdGVtIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxuICB9XFxufVxcbi5xLXRhYmxlLWJvdHRvbSB7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjU0KTtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS10YWJsZSB7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjg3KTtcXG59XFxuLnEtdGFibGUgdGhlYWQsXFxuLnEtdGFibGUgdHIsXFxuLnEtdGFibGUgdGgsXFxuLnEtdGFibGUgdGQge1xcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS10YWJsZSB0aCB7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjU0KTtcXG59XFxuLnEtdGFibGUgdGguc29ydGFibGU6aG92ZXIsXFxuLnEtdGFibGUgdGguc29ydGVkIHtcXG4gIGNvbG9yOiByZ2JhKDAsMCwwLDAuODcpO1xcbn1cXG4ucS10YWJsZSB0Ym9keSB0ci5zZWxlY3RlZCB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDYpO1xcbn1cXG4ucS10YWJsZSB0Ym9keSB0cjpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDMpO1xcbn1cXG4ucS10YWJsZS1kYXJrIHtcXG4gIGNvbG9yOiAjZWVlO1xcbn1cXG4ucS10YWJsZS1kYXJrIC5xLXRhYmxlLWJvdHRvbSxcXG4ucS10YWJsZS1kYXJrIC5xLXRhYmxlLXRvcCB7XFxuICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjY0KTtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpO1xcbn1cXG4ucS10YWJsZS1kYXJrIHRoZWFkLFxcbi5xLXRhYmxlLWRhcmsgdHIsXFxuLnEtdGFibGUtZGFyayB0aCxcXG4ucS10YWJsZS1kYXJrIHRkIHtcXG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjEyKTtcXG59XFxuLnEtdGFibGUtZGFyayB0aCB7XFxuICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjY0KTtcXG59XFxuLnEtdGFibGUtZGFyayB0aC5zb3J0YWJsZTpob3ZlcixcXG4ucS10YWJsZS1kYXJrIHRoLnNvcnRlZCB7XFxuICBjb2xvcjogI2VlZTtcXG59XFxuLnEtdGFibGUtZGFyayB0Ym9keSB0ci5zZWxlY3RlZCB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMik7XFxufVxcbi5xLXRhYmxlLWRhcmsgdGJvZHkgdHI6aG92ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjEpO1xcbn1cXG4ucS10aW1lbGluZSB7XFxuICBwYWRkaW5nOiAwO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBsaXN0LXN0eWxlOiBub25lO1xcbn1cXG4ucS10aW1lbGluZSBoNiB7XFxuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG59XFxuLnEtdGltZWxpbmUtdGl0bGUge1xcbiAgbWFyZ2luLXRvcDogMDtcXG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XFxufVxcbi5xLXRpbWVsaW5lLXN1YnRpdGxlIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG4gIG9wYWNpdHk6IDAuNDtcXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxuICBsZXR0ZXItc3BhY2luZzogMXB4O1xcbiAgZm9udC13ZWlnaHQ6IDcwMDtcXG59XFxuLnEtdGltZWxpbmUtZG90IHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMTVweDtcXG59XFxuLnEtdGltZWxpbmUtZG90OmJlZm9yZSxcXG4ucS10aW1lbGluZS1kb3Q6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuLnEtdGltZWxpbmUtZG90OmJlZm9yZSB7XFxuICBib3JkZXI6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XFxuICBoZWlnaHQ6IDE1cHg7XFxuICB3aWR0aDogMTVweDtcXG4gIHRvcDogNHB4O1xcbiAgbGVmdDogMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzIGVhc2UtaW4tb3V0LCBib3JkZXIgMC4zcyBlYXNlLWluLW91dDtcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcyBlYXNlLWluLW91dCwgYm9yZGVyIDAuM3MgZWFzZS1pbi1vdXQ7XFxufVxcbi5xLXRpbWVsaW5lLWRvdDphZnRlciB7XFxuICB3aWR0aDogM3B4O1xcbiAgb3BhY2l0eTogMC40O1xcbiAgdG9wOiAyNHB4O1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogNnB4O1xcbn1cXG4ucS10aW1lbGluZS1lbnRyeS13aXRoLWljb24gLnEtdGltZWxpbmUtZG90IHtcXG4gIHdpZHRoOiAzMXB4O1xcbiAgbGVmdDogLThweDtcXG59XFxuLnEtdGltZWxpbmUtZW50cnktd2l0aC1pY29uIC5xLXRpbWVsaW5lLWRvdDpiZWZvcmUge1xcbiAgaGVpZ2h0OiAzMXB4O1xcbiAgd2lkdGg6IDMxcHg7XFxufVxcbi5xLXRpbWVsaW5lLWVudHJ5LXdpdGgtaWNvbiAucS10aW1lbGluZS1kb3Q6YWZ0ZXIge1xcbiAgdG9wOiA0MXB4O1xcbiAgbGVmdDogMTRweDtcXG59XFxuLnEtdGltZWxpbmUtZW50cnktd2l0aC1pY29uIC5xLXRpbWVsaW5lLXN1YnRpdGxlIHtcXG4gIHBhZGRpbmctdG9wOiA4cHg7XFxufVxcbi5xLXRpbWVsaW5lLWRvdCAucS1pY29uIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgZm9udC1zaXplOiAxNnB4O1xcbiAgaGVpZ2h0OiAzOHB4O1xcbiAgY29sb3I6ICNmZmY7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZS1pbi1vdXQ7XFxuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2UtaW4tb3V0O1xcbn1cXG4ucS10aW1lbGluZS1kYXJrIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS10aW1lbGluZS1kYXJrIC5xLXRpbWVsaW5lLXN1YnRpdGxlIHtcXG4gIG9wYWNpdHk6IDAuNztcXG59XFxuLnEtdGltZWxpbmUtZW50cnkge1xcbiAgcGFkZGluZy1sZWZ0OiA0MHB4O1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgbGluZS1oZWlnaHQ6IDIycHg7XFxufVxcbi5xLXRpbWVsaW5lLWVudHJ5Omxhc3QtY2hpbGQge1xcbiAgcGFkZGluZy1ib3R0b206IDA7XFxufVxcbi5xLXRpbWVsaW5lLWVudHJ5Omxhc3QtY2hpbGQgLnEtdGltZWxpbmUtZG90OmFmdGVyIHtcXG4gIGNvbnRlbnQ6IG5vbmU7XFxufVxcbi5xLXRpbWVsaW5lLWhvdmVyIC5xLXRpbWVsaW5lLWVudHJ5OmhvdmVyIC5xLXRpbWVsaW5lLWRvdDpiZWZvcmUge1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXI6IDNweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXRpbWVsaW5lLWhvdmVyIC5xLXRpbWVsaW5lLWVudHJ5LnEtdGltZWxpbmUtZW50cnktd2l0aC1pY29uOmhvdmVyIC5xLXRpbWVsaW5lLWRvdCAucS1pY29uIHtcXG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXRpbWVsaW5lLWNvbnRlbnQge1xcbiAgcGFkZGluZy1ib3R0b206IDI0cHg7XFxufVxcbi5xLXRpbWVsaW5lLWhlYWRpbmcge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4ucS10aW1lbGluZS1oZWFkaW5nOmZpcnN0LWNoaWxkIC5xLXRpbWVsaW5lLWhlYWRpbmctdGl0bGUge1xcbiAgcGFkZGluZy10b3A6IDA7XFxufVxcbi5xLXRpbWVsaW5lLWhlYWRpbmc6bGFzdC1jaGlsZCAucS10aW1lbGluZS1oZWFkaW5nLXRpdGxlIHtcXG4gIHBhZGRpbmctYm90dG9tOiAwO1xcbn1cXG4ucS10aW1lbGluZS1oZWFkaW5nLXRpdGxlIHtcXG4gIHBhZGRpbmc6IDMycHggMDtcXG4gIG1hcmdpbjogMDtcXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtaGVhZGluZyB7XFxuICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcXG4gICAgZm9udC1zaXplOiAyMDAlO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1oZWFkaW5nID4gZGl2IHtcXG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtaGVhZGluZy10aXRsZSB7XFxuICAgIG1hcmdpbi1sZWZ0OiAtNTBweDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUge1xcbiAgICBkaXNwbGF5OiB0YWJsZTtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnkge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XFxuICAgIHBhZGRpbmc6IDA7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLXN1YnRpdGxlLFxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1kb3QsXFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWNvbnRlbnQge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1zdWJ0aXRsZSB7XFxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xcbiAgICB3aWR0aDogMzUlO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1kb3Qge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWNvbnRlbnQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5LXdpdGgtaWNvbiAucS10aW1lbGluZS1jb250ZW50IHtcXG4gICAgcGFkZGluZy10b3A6IDhweDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtc3VidGl0bGUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtaGVhZGluZy10aXRsZSB7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgbWFyZ2luLWxlZnQ6IDA7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5LFxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1zdWJ0aXRsZSxcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZG90LFxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1jb250ZW50IHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZG90IHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICBsZWZ0OiA1MCU7XFxuICAgIG1hcmdpbi1sZWZ0OiAtNy4xNXB4O1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeS13aXRoLWljb24gLnEtdGltZWxpbmUtZG90IHtcXG4gICAgbGVmdDogNTAlO1xcbiAgICBtYXJnaW4tbGVmdDogLTE1cHg7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLXN1YnRpdGxlLFxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1jb250ZW50IHtcXG4gICAgd2lkdGg6IDUwJTtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnktbGVmdCAucS10aW1lbGluZS1jb250ZW50LFxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeS1yaWdodCAucS10aW1lbGluZS1zdWJ0aXRsZSB7XFxuICAgIGZsb2F0OiBsZWZ0O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnktbGVmdCAucS10aW1lbGluZS1zdWJ0aXRsZSxcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnktcmlnaHQgLnEtdGltZWxpbmUtY29udGVudCB7XFxuICAgIGZsb2F0OiByaWdodDtcXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcXG4gICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeS13aXRoLWljb24gLnEtdGltZWxpbmUtY29udGVudCB7XFxuICAgIHBhZGRpbmctdG9wOiA4cHg7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5IHtcXG4gICAgcGFkZGluZy1ib3R0b206IDI0cHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICB9XFxufVxcbi5xLXRvZ2dsZS1iYXNlIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTJweDtcXG4gIGJvcmRlci1yYWRpdXM6IDMwcHg7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxuICBvcGFjaXR5OiAwLjU7XFxufVxcbi5xLXRvZ2dsZS1oYW5kbGUge1xcbiAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDQ1MG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIHRyYW5zaXRpb246IGFsbCA0NTBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMjFweDtcXG4gIGhlaWdodDogMjFweDtcXG4gIGxpbmUtaGVpZ2h0OiAyMXB4O1xcbn1cXG4ucS10b2dnbGUgLnEtb3B0aW9uLWlubmVyIHtcXG4gIGhlaWdodDogMjFweDtcXG4gIHdpZHRoOiA0MHB4O1xcbiAgbWluLXdpZHRoOiA0MHB4O1xcbiAgcGFkZGluZzogNXB4IDA7XFxufVxcbi5xLXRvZ2dsZSAucS1vcHRpb24taW5uZXIuYWN0aXZlIC5xLXRvZ2dsZS1oYW5kbGUge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbiAgbGVmdDogMTlweDtcXG59XFxuLnEtdG9nZ2xlIC5xLW9wdGlvbi1pbm5lci5hY3RpdmUgLnEtdG9nZ2xlLWljb24ge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLXRvb2xiYXIge1xcbiAgcGFkZGluZzogNHB4IDEycHg7XFxuICBtaW4taGVpZ2h0OiA1MHB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXG4ucS10b29sYmFyLWludmVydGVkIHtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxufVxcbi5xLXRvb2xiYXItdGl0bGUge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAtbXMtZmxleDogMSAxIDAlO1xcbiAgICAgICAgICBmbGV4OiAxIDEgMCU7XFxuICBtaW4td2lkdGg6IDFweDtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIGZvbnQtc2l6ZTogMThweDtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBwYWRkaW5nOiAwIDEycHg7XFxufVxcbi5xLXRvb2xiYXItc3VidGl0bGUge1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgb3BhY2l0eTogMC43O1xcbn1cXG4ucS10b29sYmFyLXRpdGxlLFxcbi5xLXRvb2xiYXItc3VidGl0bGUge1xcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnEtdG9vbHRpcCB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBjb2xvcjogI2ZhZmFmYTtcXG4gIGJhY2tncm91bmQ6ICM3NDc0NzQ7XFxuICB6LWluZGV4OiA5MDAwO1xcbiAgcGFkZGluZzogMTBweDtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxuICBvdmVyZmxvdy14OiBoaWRkZW47XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLnEtdHJlZS1ub2RlIHtcXG4gIG1hcmdpbjogMDtcXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHBhZGRpbmc6IDAgMCAzcHggMjJweDtcXG59XFxuLnEtdHJlZS1ub2RlOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAtM3B4O1xcbiAgYm90dG9tOiAwO1xcbiAgd2lkdGg6IDFweDtcXG4gIHJpZ2h0OiBhdXRvO1xcbiAgbGVmdDogLTEzcHg7XFxuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtdHJlZS1ub2RlOmxhc3QtY2hpbGQ6YWZ0ZXIge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtdHJlZS1ub2RlLWhlYWRlcjpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IC0zcHg7XFxuICBib3R0b206IDUwJTtcXG4gIHdpZHRoOiAzNXB4O1xcbiAgbGVmdDogLTM1cHg7XFxuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXRyZWUtY2hpbGRyZW4ge1xcbiAgcGFkZGluZy1sZWZ0OiAyNXB4O1xcbn1cXG4ucS10cmVlLWNoaWxkcmVuLmRpc2FibGVkIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4ucS10cmVlLW5vZGUtYm9keSB7XFxuICBwYWRkaW5nOiA1cHggMCA4cHggNXB4O1xcbn1cXG4ucS10cmVlLW5vZGUtcGFyZW50IHtcXG4gIHBhZGRpbmctbGVmdDogMnB4O1xcbn1cXG4ucS10cmVlLW5vZGUtcGFyZW50ID4gLnEtdHJlZS1ub2RlLWhlYWRlcjpiZWZvcmUge1xcbiAgd2lkdGg6IDE1cHg7XFxuICBsZWZ0OiAtMTVweDtcXG59XFxuLnEtdHJlZS1ub2RlLXBhcmVudCA+IC5xLXRyZWUtbm9kZS1jb2xsYXBzaWJsZSA+IC5xLXRyZWUtbm9kZS1ib2R5IHtcXG4gIHBhZGRpbmc6IDVweCAwIDhweCAyN3B4O1xcbn1cXG4ucS10cmVlLW5vZGUtcGFyZW50ID4gLnEtdHJlZS1ub2RlLWNvbGxhcHNpYmxlID4gLnEtdHJlZS1ub2RlLWJvZHk6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICB3aWR0aDogMXB4O1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgcmlnaHQ6IGF1dG87XFxuICBsZWZ0OiAxMnB4O1xcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxuICBib3R0b206IDUwcHg7XFxufVxcbi5xLXRyZWUtbm9kZS1saW5rIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnEtdHJlZS1ub2RlLXNlbGVjdGVkIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xNSk7XFxufVxcbi5xLXRyZWUtZGFyayAucS10cmVlLW5vZGUtc2VsZWN0ZWQge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjQpO1xcbn1cXG5ib2R5LmRlc2t0b3AgLnEtdHJlZS1ub2RlLWxpbms6aG92ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEpO1xcbn1cXG5ib2R5LmRlc2t0b3AgLnEtdHJlZS1kYXJrIC5xLXRyZWUtbm9kZS1saW5rOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4zKTtcXG59XFxuLnEtdHJlZS1ub2RlLWhlYWRlciB7XFxuICBwYWRkaW5nOiA0cHg7XFxuICBtYXJnaW4tdG9wOiAzcHg7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxufVxcbi5xLXRyZWUtbm9kZS1oZWFkZXIuZGlzYWJsZWQge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcbi5xLXRyZWUtaWNvbiB7XFxuICBmb250LXNpemU6IDEuNWVtO1xcbn1cXG4ucS10cmVlLWltZyB7XFxuICBoZWlnaHQ6IDNlbTtcXG59XFxuLnEtdHJlZS1pbWcuYXZhdGFyIHtcXG4gIHdpZHRoOiAyZW07XFxuICBoZWlnaHQ6IDJlbTtcXG59XFxuLnEtdHJlZS1hcnJvdyB7XFxuICBmb250LXNpemU6IDFyZW07XFxuICB3aWR0aDogMXJlbTtcXG4gIGhlaWdodDogMXJlbTtcXG59XFxuLnEtdHJlZS1hcnJvdy1yb3RhdGUge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcXG59XFxuW2Rpcj1ydGxdIC5xLXRyZWUtYXJyb3cge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuW2Rpcj1ydGxdIC5xLXRyZWUtYXJyb3ctcm90YXRlIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS10cmVlID4gLnEtdHJlZS1ub2RlIHtcXG4gIHBhZGRpbmc6IDA7XFxufVxcbi5xLXRyZWUgPiAucS10cmVlLW5vZGU6YWZ0ZXIsXFxuLnEtdHJlZSA+IC5xLXRyZWUtbm9kZSA+IC5xLXRyZWUtbm9kZS1oZWFkZXI6YmVmb3JlIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXRyZWUgPiAucS10cmVlLW5vZGUtY2hpbGQgPiAucS10cmVlLW5vZGUtaGVhZGVyIHtcXG4gIHBhZGRpbmctbGVmdDogMjRweDtcXG59XFxuLnEtdXBsb2FkZXItZXhwYW5kZWQgLnEtaWYge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xcbn1cXG4ucS11cGxvYWRlci1pbnB1dCB7XFxuICBvcGFjaXR5OiAwO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBmb250LXNpemU6IDA7XFxufVxcbi5xLXVwbG9hZGVyLXBpY2stYnV0dG9uW2Rpc2FibGVkXSAucS11cGxvYWRlci1pbnB1dCB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS11cGxvYWRlci1maWxlcyB7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgbWF4LWhlaWdodDogNTAwcHg7XFxufVxcbi5xLXVwbG9hZGVyLWZpbGVzLW5vLWJvcmRlciAucS11cGxvYWRlci1maWxlcyB7XFxuICBib3JkZXItdG9wOiAwICFpbXBvcnRhbnQ7XFxufVxcbi5xLXVwbG9hZGVyLWZpbGU6bm90KDpsYXN0LWNoaWxkKSB7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UwZTBlMDtcXG59XFxuLnEtdXBsb2FkZXItcHJvZ3Jlc3MtYmcsXFxuLnEtdXBsb2FkZXItcHJvZ3Jlc3MtdGV4dCB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLnEtdXBsb2FkZXItcHJvZ3Jlc3MtYmcge1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgb3BhY2l0eTogMC4yO1xcbn1cXG4ucS11cGxvYWRlci1wcm9ncmVzcy10ZXh0IHtcXG4gIGZvbnQtc2l6ZTogNDBweDtcXG4gIG9wYWNpdHk6IDAuMTtcXG4gIHJpZ2h0OiA0NHB4O1xcbiAgYm90dG9tOiAwO1xcbn1cXG4ucS11cGxvYWRlci1kbmQge1xcbiAgb3V0bGluZTogMnB4IGRhc2hlZCBjdXJyZW50Q29sb3I7XFxuICBvdXRsaW5lLW9mZnNldDogLTZweDtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC42KTtcXG59XFxuLnEtdXBsb2FkZXItZG5kLmludmVydGVkIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4zKTtcXG59XFxuLnEtdXBsb2FkZXItZGFyayAucS11cGxvYWRlci1maWxlcyB7XFxuICBjb2xvcjogI2ZmZjtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNhN2E3YTc7XFxufVxcbi5xLXVwbG9hZGVyLWRhcmsgLnEtdXBsb2FkZXItYmcge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLXVwbG9hZGVyLWRhcmsgLnEtdXBsb2FkZXItcHJvZ3Jlc3MtdGV4dCB7XFxuICBvcGFjaXR5OiAwLjI7XFxufVxcbi5xLXVwbG9hZGVyLWRhcmsgLnEtdXBsb2FkZXItZmlsZTpub3QoOmxhc3QtY2hpbGQpIHtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNDI0MjQyO1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXEtY29sb3ItZGFyayk7XFxufVxcbmltZy5yZXNwb25zaXZlIHtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIGhlaWdodDogYXV0bztcXG59XFxuaW1nLmF2YXRhciB7XFxuICB3aWR0aDogNTBweDtcXG4gIGhlaWdodDogNTBweDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG59XFxuLnEtdmlkZW8ge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxufVxcbi5xLXZpZGVvIGlmcmFtZSxcXG4ucS12aWRlbyBvYmplY3QsXFxuLnEtdmlkZW8gZW1iZWQge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbjpyb290IHtcXG4gIC0tcS1jb2xvci1wcmltYXJ5OiAjMDI3YmUzO1xcbiAgLS1xLWNvbG9yLXNlY29uZGFyeTogIzI2YTY5YTtcXG4gIC0tcS1jb2xvci10ZXJ0aWFyeTogIzU1NTtcXG4gIC0tcS1jb2xvci1wb3NpdGl2ZTogIzIxYmE0NTtcXG4gIC0tcS1jb2xvci1uZWdhdGl2ZTogI2RiMjgyODtcXG4gIC0tcS1jb2xvci1uZWdhdGl2ZS1sOiAjZWM4YjhiO1xcbiAgLS1xLWNvbG9yLWluZm86ICMzMWNjZWM7XFxuICAtLXEtY29sb3Itd2FybmluZzogI2YyYzAzNztcXG4gIC0tcS1jb2xvci13YXJuaW5nLWw6ICNmOGRkOTM7XFxuICAtLXEtY29sb3ItbGlnaHQ6ICNiZGJkYmQ7XFxuICAtLXEtY29sb3ItbGlnaHQtZDogI2FhYTtcXG4gIC0tcS1jb2xvci1mYWRlZDogIzc3NztcXG4gIC0tcS1jb2xvci1kYXJrOiAjNDI0MjQyO1xcbn1cXG4udGV4dC1wcmltYXJ5IHtcXG4gIGNvbG9yOiAjMDI3YmUzICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1wcmltYXJ5KSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHJpbWFyeSB7XFxuICBiYWNrZ3JvdW5kOiAjMDI3YmUzICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLXByaW1hcnkpICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXNlY29uZGFyeSB7XFxuICBjb2xvcjogIzI2YTY5YSAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3Itc2Vjb25kYXJ5KSAhaW1wb3J0YW50O1xcbn1cXG4uYmctc2Vjb25kYXJ5IHtcXG4gIGJhY2tncm91bmQ6ICMyNmE2OWEgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3Itc2Vjb25kYXJ5KSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZXJ0aWFyeSB7XFxuICBjb2xvcjogIzU1NSAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItdGVydGlhcnkpICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZXJ0aWFyeSB7XFxuICBiYWNrZ3JvdW5kOiAjNTU1ICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLXRlcnRpYXJ5KSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1mYWRlZCB7XFxuICBjb2xvcjogIzc3NyAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItZmFkZWQpICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1mYWRlZCB7XFxuICBiYWNrZ3JvdW5kOiAjNzc3ICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLWZhZGVkKSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wb3NpdGl2ZSB7XFxuICBjb2xvcjogIzIxYmE0NSAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItcG9zaXRpdmUpICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wb3NpdGl2ZSB7XFxuICBiYWNrZ3JvdW5kOiAjMjFiYTQ1ICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLXBvc2l0aXZlKSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1uZWdhdGl2ZSB7XFxuICBjb2xvcjogI2RiMjgyOCAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbmVnYXRpdmUpICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1uZWdhdGl2ZSB7XFxuICBiYWNrZ3JvdW5kOiAjZGIyODI4ICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLW5lZ2F0aXZlKSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmZvIHtcXG4gIGNvbG9yOiAjMzFjY2VjICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1pbmZvKSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5mbyB7XFxuICBiYWNrZ3JvdW5kOiAjMzFjY2VjICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLWluZm8pICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXdhcm5pbmcge1xcbiAgY29sb3I6ICNmMmMwMzcgIWltcG9ydGFudDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXdhcm5pbmcpICFpbXBvcnRhbnQ7XFxufVxcbi5iZy13YXJuaW5nIHtcXG4gIGJhY2tncm91bmQ6ICNmMmMwMzcgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3Itd2FybmluZykgIWltcG9ydGFudDtcXG59XFxuLnRleHQtd2hpdGUge1xcbiAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLXdoaXRlIHtcXG4gIGJhY2tncm91bmQ6ICNmZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmxhY2sge1xcbiAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsYWNrIHtcXG4gIGJhY2tncm91bmQ6ICMwMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQge1xcbiAgY29sb3I6ICNiZGJkYmQgIWltcG9ydGFudDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWxpZ2h0KSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQge1xcbiAgYmFja2dyb3VuZDogI2JkYmRiZCAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci1saWdodCkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGFyayB7XFxuICBjb2xvcjogIzQyNDI0MiAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItZGFyaykgIWltcG9ydGFudDtcXG59XFxuLmJnLWRhcmsge1xcbiAgYmFja2dyb3VuZDogIzQyNDI0MiAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci1kYXJrKSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10cmFuc3BhcmVudCB7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG59XFxuLmJnLXRyYW5zcGFyZW50IHtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZCB7XFxuICBjb2xvcjogI2Y0NDMzNiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtMSB7XFxuICBjb2xvcjogI2ZmZWJlZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtMiB7XFxuICBjb2xvcjogI2ZmY2RkMiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtMyB7XFxuICBjb2xvcjogI2VmOWE5YSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtNCB7XFxuICBjb2xvcjogI2U1NzM3MyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtNSB7XFxuICBjb2xvcjogI2VmNTM1MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtNiB7XFxuICBjb2xvcjogI2Y0NDMzNiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtNyB7XFxuICBjb2xvcjogI2U1MzkzNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtOCB7XFxuICBjb2xvcjogI2QzMmYyZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtOSB7XFxuICBjb2xvcjogI2M2MjgyOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtMTAge1xcbiAgY29sb3I6ICNiNzFjMWMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTExIHtcXG4gIGNvbG9yOiAjZmY4YTgwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC0xMiB7XFxuICBjb2xvcjogI2ZmNTI1MiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtMTMge1xcbiAgY29sb3I6ICNmZjE3NDQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTE0IHtcXG4gIGNvbG9yOiAjZDUwMDAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmsge1xcbiAgY29sb3I6ICNlOTFlNjMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay0xIHtcXG4gIGNvbG9yOiAjZmNlNGVjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstMiB7XFxuICBjb2xvcjogI2Y4YmJkMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTMge1xcbiAgY29sb3I6ICNmNDhmYjEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay00IHtcXG4gIGNvbG9yOiAjZjA2MjkyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstNSB7XFxuICBjb2xvcjogI2VjNDA3YSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTYge1xcbiAgY29sb3I6ICNlOTFlNjMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay03IHtcXG4gIGNvbG9yOiAjZDgxYjYwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstOCB7XFxuICBjb2xvcjogI2MyMTg1YiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTkge1xcbiAgY29sb3I6ICNhZDE0NTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay0xMCB7XFxuICBjb2xvcjogIzg4MGU0ZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTExIHtcXG4gIGNvbG9yOiAjZmY4MGFiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstMTIge1xcbiAgY29sb3I6ICNmZjQwODEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay0xMyB7XFxuICBjb2xvcjogI2Y1MDA1NyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTE0IHtcXG4gIGNvbG9yOiAjYzUxMTYyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZSB7XFxuICBjb2xvcjogIzljMjdiMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtMSB7XFxuICBjb2xvcjogI2YzZTVmNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtMiB7XFxuICBjb2xvcjogI2UxYmVlNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtMyB7XFxuICBjb2xvcjogI2NlOTNkOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtNCB7XFxuICBjb2xvcjogI2JhNjhjOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtNSB7XFxuICBjb2xvcjogI2FiNDdiYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtNiB7XFxuICBjb2xvcjogIzljMjdiMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtNyB7XFxuICBjb2xvcjogIzhlMjRhYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtOCB7XFxuICBjb2xvcjogIzdiMWZhMiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtOSB7XFxuICBjb2xvcjogIzZhMWI5YSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtMTAge1xcbiAgY29sb3I6ICM0YTE0OGMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTExIHtcXG4gIGNvbG9yOiAjZWE4MGZjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS0xMiB7XFxuICBjb2xvcjogI2UwNDBmYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtMTMge1xcbiAgY29sb3I6ICNkNTAwZjkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTE0IHtcXG4gIGNvbG9yOiAjYTBmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlIHtcXG4gIGNvbG9yOiAjNjczYWI3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTEge1xcbiAgY29sb3I6ICNlZGU3ZjYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtMiB7XFxuICBjb2xvcjogI2QxYzRlOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS0zIHtcXG4gIGNvbG9yOiAjYjM5ZGRiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTQge1xcbiAgY29sb3I6ICM5NTc1Y2QgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtNSB7XFxuICBjb2xvcjogIzdlNTdjMiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS02IHtcXG4gIGNvbG9yOiAjNjczYWI3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTcge1xcbiAgY29sb3I6ICM1ZTM1YjEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtOCB7XFxuICBjb2xvcjogIzUxMmRhOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS05IHtcXG4gIGNvbG9yOiAjNDUyN2EwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTEwIHtcXG4gIGNvbG9yOiAjMzExYjkyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTExIHtcXG4gIGNvbG9yOiAjYjM4OGZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTEyIHtcXG4gIGNvbG9yOiAjN2M0ZGZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTEzIHtcXG4gIGNvbG9yOiAjNjUxZmZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTE0IHtcXG4gIGNvbG9yOiAjNjIwMGVhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnbyB7XFxuICBjb2xvcjogIzNmNTFiNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tMSB7XFxuICBjb2xvcjogI2U4ZWFmNiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tMiB7XFxuICBjb2xvcjogI2M1Y2FlOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tMyB7XFxuICBjb2xvcjogIzlmYThkYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tNCB7XFxuICBjb2xvcjogIzc5ODZjYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tNSB7XFxuICBjb2xvcjogIzVjNmJjMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tNiB7XFxuICBjb2xvcjogIzNmNTFiNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tNyB7XFxuICBjb2xvcjogIzM5NDlhYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tOCB7XFxuICBjb2xvcjogIzMwM2Y5ZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tOSB7XFxuICBjb2xvcjogIzI4MzU5MyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tMTAge1xcbiAgY29sb3I6ICMxYTIzN2UgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTExIHtcXG4gIGNvbG9yOiAjOGM5ZWZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby0xMiB7XFxuICBjb2xvcjogIzUzNmRmZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tMTMge1xcbiAgY29sb3I6ICMzZDVhZmUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTE0IHtcXG4gIGNvbG9yOiAjMzA0ZmZlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUge1xcbiAgY29sb3I6ICMyMTk2ZjMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS0xIHtcXG4gIGNvbG9yOiAjZTNmMmZkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtMiB7XFxuICBjb2xvcjogI2JiZGVmYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTMge1xcbiAgY29sb3I6ICM5MGNhZjkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS00IHtcXG4gIGNvbG9yOiAjNjRiNWY2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtNSB7XFxuICBjb2xvcjogIzQyYTVmNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTYge1xcbiAgY29sb3I6ICMyMTk2ZjMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS03IHtcXG4gIGNvbG9yOiAjMWU4OGU1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtOCB7XFxuICBjb2xvcjogIzE5NzZkMiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTkge1xcbiAgY29sb3I6ICMxNTY1YzAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS0xMCB7XFxuICBjb2xvcjogIzBkNDdhMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTExIHtcXG4gIGNvbG9yOiAjODJiMWZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtMTIge1xcbiAgY29sb3I6ICM0NDhhZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS0xMyB7XFxuICBjb2xvcjogIzI5NzlmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTE0IHtcXG4gIGNvbG9yOiAjMjk2MmZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUge1xcbiAgY29sb3I6ICMwM2E5ZjQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS0xIHtcXG4gIGNvbG9yOiAjZTFmNWZlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtMiB7XFxuICBjb2xvcjogI2IzZTVmYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTMge1xcbiAgY29sb3I6ICM4MWQ0ZmEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS00IHtcXG4gIGNvbG9yOiAjNGZjM2Y3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtNSB7XFxuICBjb2xvcjogIzI5YjZmNiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTYge1xcbiAgY29sb3I6ICMwM2E5ZjQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS03IHtcXG4gIGNvbG9yOiAjMDM5YmU1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtOCB7XFxuICBjb2xvcjogIzAyODhkMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTkge1xcbiAgY29sb3I6ICMwMjc3YmQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS0xMCB7XFxuICBjb2xvcjogIzAxNTc5YiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTExIHtcXG4gIGNvbG9yOiAjODBkOGZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtMTIge1xcbiAgY29sb3I6ICM0MGM0ZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS0xMyB7XFxuICBjb2xvcjogIzAwYjBmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTE0IHtcXG4gIGNvbG9yOiAjMDA5MWVhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4ge1xcbiAgY29sb3I6ICMwMGJjZDQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi0xIHtcXG4gIGNvbG9yOiAjZTBmN2ZhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tMiB7XFxuICBjb2xvcjogI2IyZWJmMiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTMge1xcbiAgY29sb3I6ICM4MGRlZWEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi00IHtcXG4gIGNvbG9yOiAjNGRkMGUxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tNSB7XFxuICBjb2xvcjogIzI2YzZkYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTYge1xcbiAgY29sb3I6ICMwMGJjZDQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi03IHtcXG4gIGNvbG9yOiAjMDBhY2MxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tOCB7XFxuICBjb2xvcjogIzAwOTdhNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTkge1xcbiAgY29sb3I6ICMwMDgzOGYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi0xMCB7XFxuICBjb2xvcjogIzAwNjA2NCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTExIHtcXG4gIGNvbG9yOiAjODRmZmZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tMTIge1xcbiAgY29sb3I6ICMxOGZmZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi0xMyB7XFxuICBjb2xvcjogIzAwZTVmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTE0IHtcXG4gIGNvbG9yOiAjMDBiOGQ0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwge1xcbiAgY29sb3I6ICMwMDk2ODggIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC0xIHtcXG4gIGNvbG9yOiAjZTBmMmYxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtMiB7XFxuICBjb2xvcjogI2IyZGZkYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTMge1xcbiAgY29sb3I6ICM4MGNiYzQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC00IHtcXG4gIGNvbG9yOiAjNGRiNmFjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtNSB7XFxuICBjb2xvcjogIzI2YTY5YSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTYge1xcbiAgY29sb3I6ICMwMDk2ODggIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC03IHtcXG4gIGNvbG9yOiAjMDA4OTdiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtOCB7XFxuICBjb2xvcjogIzAwNzk2YiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTkge1xcbiAgY29sb3I6ICMwMDY5NWMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC0xMCB7XFxuICBjb2xvcjogIzAwNGQ0MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTExIHtcXG4gIGNvbG9yOiAjYTdmZmViICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtMTIge1xcbiAgY29sb3I6ICM2NGZmZGEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC0xMyB7XFxuICBjb2xvcjogIzFkZTliNiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTE0IHtcXG4gIGNvbG9yOiAjMDBiZmE1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuIHtcXG4gIGNvbG9yOiAjNGNhZjUwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTEge1xcbiAgY29sb3I6ICNlOGY1ZTkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tMiB7XFxuICBjb2xvcjogI2M4ZTZjOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi0zIHtcXG4gIGNvbG9yOiAjYTVkNmE3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTQge1xcbiAgY29sb3I6ICM4MWM3ODQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tNSB7XFxuICBjb2xvcjogIzY2YmI2YSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi02IHtcXG4gIGNvbG9yOiAjNGNhZjUwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTcge1xcbiAgY29sb3I6ICM0M2EwNDcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tOCB7XFxuICBjb2xvcjogIzM4OGUzYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi05IHtcXG4gIGNvbG9yOiAjMmU3ZDMyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTEwIHtcXG4gIGNvbG9yOiAjMWI1ZTIwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTExIHtcXG4gIGNvbG9yOiAjYjlmNmNhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTEyIHtcXG4gIGNvbG9yOiAjNjlmMGFlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTEzIHtcXG4gIGNvbG9yOiAjMDBlNjc2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTE0IHtcXG4gIGNvbG9yOiAjMDBjODUzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuIHtcXG4gIGNvbG9yOiAjOGJjMzRhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTEge1xcbiAgY29sb3I6ICNmMWY4ZTkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tMiB7XFxuICBjb2xvcjogI2RjZWRjOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi0zIHtcXG4gIGNvbG9yOiAjYzVlMWE1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTQge1xcbiAgY29sb3I6ICNhZWQ1ODEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tNSB7XFxuICBjb2xvcjogIzljY2M2NSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi02IHtcXG4gIGNvbG9yOiAjOGJjMzRhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTcge1xcbiAgY29sb3I6ICM3Y2IzNDIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tOCB7XFxuICBjb2xvcjogIzY4OWYzOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi05IHtcXG4gIGNvbG9yOiAjNTU4YjJmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTEwIHtcXG4gIGNvbG9yOiAjMzM2OTFlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTExIHtcXG4gIGNvbG9yOiAjY2NmZjkwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTEyIHtcXG4gIGNvbG9yOiAjYjJmZjU5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTEzIHtcXG4gIGNvbG9yOiAjNzZmZjAzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTE0IHtcXG4gIGNvbG9yOiAjNjRkZDE3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUge1xcbiAgY29sb3I6ICNjZGRjMzkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS0xIHtcXG4gIGNvbG9yOiAjZjlmYmU3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtMiB7XFxuICBjb2xvcjogI2YwZjRjMyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTMge1xcbiAgY29sb3I6ICNlNmVlOWMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS00IHtcXG4gIGNvbG9yOiAjZGNlNzc1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtNSB7XFxuICBjb2xvcjogI2Q0ZTE1NyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTYge1xcbiAgY29sb3I6ICNjZGRjMzkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS03IHtcXG4gIGNvbG9yOiAjYzBjYTMzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtOCB7XFxuICBjb2xvcjogI2FmYjQyYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTkge1xcbiAgY29sb3I6ICM5ZTlkMjQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS0xMCB7XFxuICBjb2xvcjogIzgyNzcxNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTExIHtcXG4gIGNvbG9yOiAjZjRmZjgxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtMTIge1xcbiAgY29sb3I6ICNlZWZmNDEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS0xMyB7XFxuICBjb2xvcjogI2M2ZmYwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTE0IHtcXG4gIGNvbG9yOiAjYWVlYTAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdyB7XFxuICBjb2xvcjogI2ZmZWIzYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctMSB7XFxuICBjb2xvcjogI2ZmZmRlNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctMiB7XFxuICBjb2xvcjogI2ZmZjljNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctMyB7XFxuICBjb2xvcjogI2ZmZjU5ZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctNCB7XFxuICBjb2xvcjogI2ZmZjE3NiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctNSB7XFxuICBjb2xvcjogI2ZmZWU1OCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctNiB7XFxuICBjb2xvcjogI2ZmZWIzYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctNyB7XFxuICBjb2xvcjogI2ZkZDgzNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctOCB7XFxuICBjb2xvcjogI2ZiYzAyZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctOSB7XFxuICBjb2xvcjogI2Y5YTgyNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctMTAge1xcbiAgY29sb3I6ICNmNTdmMTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTExIHtcXG4gIGNvbG9yOiAjZmZmZjhkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy0xMiB7XFxuICBjb2xvcjogI2ZmMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctMTMge1xcbiAgY29sb3I6ICNmZmVhMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTE0IHtcXG4gIGNvbG9yOiAjZmZkNjAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyIHtcXG4gIGNvbG9yOiAjZmZjMTA3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTEge1xcbiAgY29sb3I6ICNmZmY4ZTEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItMiB7XFxuICBjb2xvcjogI2ZmZWNiMyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci0zIHtcXG4gIGNvbG9yOiAjZmZlMDgyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTQge1xcbiAgY29sb3I6ICNmZmQ1NGYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItNSB7XFxuICBjb2xvcjogI2ZmY2EyOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci02IHtcXG4gIGNvbG9yOiAjZmZjMTA3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTcge1xcbiAgY29sb3I6ICNmZmIzMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItOCB7XFxuICBjb2xvcjogI2ZmYTAwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci05IHtcXG4gIGNvbG9yOiAjZmY4ZjAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTEwIHtcXG4gIGNvbG9yOiAjZmY2ZjAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTExIHtcXG4gIGNvbG9yOiAjZmZlNTdmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTEyIHtcXG4gIGNvbG9yOiAjZmZkNzQwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTEzIHtcXG4gIGNvbG9yOiAjZmZjNDAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTE0IHtcXG4gIGNvbG9yOiAjZmZhYjAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZSB7XFxuICBjb2xvcjogI2ZmOTgwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtMSB7XFxuICBjb2xvcjogI2ZmZjNlMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtMiB7XFxuICBjb2xvcjogI2ZmZTBiMiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtMyB7XFxuICBjb2xvcjogI2ZmY2M4MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtNCB7XFxuICBjb2xvcjogI2ZmYjc0ZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtNSB7XFxuICBjb2xvcjogI2ZmYTcyNiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtNiB7XFxuICBjb2xvcjogI2ZmOTgwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtNyB7XFxuICBjb2xvcjogI2ZiOGMwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtOCB7XFxuICBjb2xvcjogI2Y1N2MwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtOSB7XFxuICBjb2xvcjogI2VmNmMwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtMTAge1xcbiAgY29sb3I6ICNlNjUxMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTExIHtcXG4gIGNvbG9yOiAjZmZkMTgwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS0xMiB7XFxuICBjb2xvcjogI2ZmYWI0MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtMTMge1xcbiAgY29sb3I6ICNmZjkxMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTE0IHtcXG4gIGNvbG9yOiAjZmY2ZDAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlIHtcXG4gIGNvbG9yOiAjZmY1NzIyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTEge1xcbiAgY29sb3I6ICNmYmU5ZTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtMiB7XFxuICBjb2xvcjogI2ZmY2NiYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS0zIHtcXG4gIGNvbG9yOiAjZmZhYjkxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTQge1xcbiAgY29sb3I6ICNmZjhhNjUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtNSB7XFxuICBjb2xvcjogI2ZmNzA0MyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS02IHtcXG4gIGNvbG9yOiAjZmY1NzIyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTcge1xcbiAgY29sb3I6ICNmNDUxMWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtOCB7XFxuICBjb2xvcjogI2U2NGExOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS05IHtcXG4gIGNvbG9yOiAjZDg0MzE1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTEwIHtcXG4gIGNvbG9yOiAjYmYzNjBjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTExIHtcXG4gIGNvbG9yOiAjZmY5ZTgwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTEyIHtcXG4gIGNvbG9yOiAjZmY2ZTQwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTEzIHtcXG4gIGNvbG9yOiAjZmYzZDAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTE0IHtcXG4gIGNvbG9yOiAjZGQyYzAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duIHtcXG4gIGNvbG9yOiAjNzk1NTQ4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTEge1xcbiAgY29sb3I6ICNlZmViZTkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tMiB7XFxuICBjb2xvcjogI2Q3Y2NjOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi0zIHtcXG4gIGNvbG9yOiAjYmNhYWE0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTQge1xcbiAgY29sb3I6ICNhMTg4N2YgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tNSB7XFxuICBjb2xvcjogIzhkNmU2MyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi02IHtcXG4gIGNvbG9yOiAjNzk1NTQ4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTcge1xcbiAgY29sb3I6ICM2ZDRjNDEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tOCB7XFxuICBjb2xvcjogIzVkNDAzNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi05IHtcXG4gIGNvbG9yOiAjNGUzNDJlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTEwIHtcXG4gIGNvbG9yOiAjM2UyNzIzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTExIHtcXG4gIGNvbG9yOiAjZDdjY2M4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTEyIHtcXG4gIGNvbG9yOiAjYmNhYWE0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTEzIHtcXG4gIGNvbG9yOiAjOGQ2ZTYzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTE0IHtcXG4gIGNvbG9yOiAjNWQ0MDM3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXkge1xcbiAgY29sb3I6ICM5ZTllOWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS0xIHtcXG4gIGNvbG9yOiAjZmFmYWZhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktMiB7XFxuICBjb2xvcjogI2Y1ZjVmNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTMge1xcbiAgY29sb3I6ICNlZWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS00IHtcXG4gIGNvbG9yOiAjZTBlMGUwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktNSB7XFxuICBjb2xvcjogI2JkYmRiZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTYge1xcbiAgY29sb3I6ICM5ZTllOWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS03IHtcXG4gIGNvbG9yOiAjNzU3NTc1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktOCB7XFxuICBjb2xvcjogIzYxNjE2MSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTkge1xcbiAgY29sb3I6ICM0MjQyNDIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS0xMCB7XFxuICBjb2xvcjogIzIxMjEyMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTExIHtcXG4gIGNvbG9yOiAjZjVmNWY1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktMTIge1xcbiAgY29sb3I6ICNlZWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS0xMyB7XFxuICBjb2xvcjogI2JkYmRiZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTE0IHtcXG4gIGNvbG9yOiAjNjE2MTYxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleSB7XFxuICBjb2xvcjogIzYwN2Q4YiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktMSB7XFxuICBjb2xvcjogI2VjZWZmMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktMiB7XFxuICBjb2xvcjogI2NmZDhkYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktMyB7XFxuICBjb2xvcjogI2IwYmVjNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktNCB7XFxuICBjb2xvcjogIzkwYTRhZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktNSB7XFxuICBjb2xvcjogIzc4OTA5YyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktNiB7XFxuICBjb2xvcjogIzYwN2Q4YiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktNyB7XFxuICBjb2xvcjogIzU0NmU3YSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktOCB7XFxuICBjb2xvcjogIzQ1NWE2NCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktOSB7XFxuICBjb2xvcjogIzM3NDc0ZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktMTAge1xcbiAgY29sb3I6ICMyNjMyMzggIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTExIHtcXG4gIGNvbG9yOiAjY2ZkOGRjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS0xMiB7XFxuICBjb2xvcjogI2IwYmVjNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktMTMge1xcbiAgY29sb3I6ICM3ODkwOWMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTE0IHtcXG4gIGNvbG9yOiAjNDU1YTY0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQge1xcbiAgYmFja2dyb3VuZDogI2Y0NDMzNiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTEge1xcbiAgYmFja2dyb3VuZDogI2ZmZWJlZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTIge1xcbiAgYmFja2dyb3VuZDogI2ZmY2RkMiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTMge1xcbiAgYmFja2dyb3VuZDogI2VmOWE5YSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTQge1xcbiAgYmFja2dyb3VuZDogI2U1NzM3MyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTUge1xcbiAgYmFja2dyb3VuZDogI2VmNTM1MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTYge1xcbiAgYmFja2dyb3VuZDogI2Y0NDMzNiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTcge1xcbiAgYmFja2dyb3VuZDogI2U1MzkzNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTgge1xcbiAgYmFja2dyb3VuZDogI2QzMmYyZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTkge1xcbiAgYmFja2dyb3VuZDogI2M2MjgyOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTEwIHtcXG4gIGJhY2tncm91bmQ6ICNiNzFjMWMgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmY4YTgwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtMTIge1xcbiAgYmFja2dyb3VuZDogI2ZmNTI1MiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTEzIHtcXG4gIGJhY2tncm91bmQ6ICNmZjE3NDQgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjZDUwMDAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rIHtcXG4gIGJhY2tncm91bmQ6ICNlOTFlNjMgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmNlNGVjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTIge1xcbiAgYmFja2dyb3VuZDogI2Y4YmJkMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay0zIHtcXG4gIGJhY2tncm91bmQ6ICNmNDhmYjEgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstNCB7XFxuICBiYWNrZ3JvdW5kOiAjZjA2MjkyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTUge1xcbiAgYmFja2dyb3VuZDogI2VjNDA3YSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay02IHtcXG4gIGJhY2tncm91bmQ6ICNlOTFlNjMgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstNyB7XFxuICBiYWNrZ3JvdW5kOiAjZDgxYjYwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTgge1xcbiAgYmFja2dyb3VuZDogI2MyMTg1YiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay05IHtcXG4gIGJhY2tncm91bmQ6ICNhZDE0NTcgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstMTAge1xcbiAgYmFja2dyb3VuZDogIzg4MGU0ZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmY4MGFiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTEyIHtcXG4gIGJhY2tncm91bmQ6ICNmZjQwODEgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstMTMge1xcbiAgYmFja2dyb3VuZDogI2Y1MDA1NyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjYzUxMTYyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUge1xcbiAgYmFja2dyb3VuZDogIzljMjdiMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTEge1xcbiAgYmFja2dyb3VuZDogI2YzZTVmNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTIge1xcbiAgYmFja2dyb3VuZDogI2UxYmVlNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTMge1xcbiAgYmFja2dyb3VuZDogI2NlOTNkOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTQge1xcbiAgYmFja2dyb3VuZDogI2JhNjhjOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTUge1xcbiAgYmFja2dyb3VuZDogI2FiNDdiYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTYge1xcbiAgYmFja2dyb3VuZDogIzljMjdiMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTcge1xcbiAgYmFja2dyb3VuZDogIzhlMjRhYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTgge1xcbiAgYmFja2dyb3VuZDogIzdiMWZhMiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTkge1xcbiAgYmFja2dyb3VuZDogIzZhMWI5YSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTEwIHtcXG4gIGJhY2tncm91bmQ6ICM0YTE0OGMgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZWE4MGZjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtMTIge1xcbiAgYmFja2dyb3VuZDogI2UwNDBmYiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTEzIHtcXG4gIGJhY2tncm91bmQ6ICNkNTAwZjkgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjYTBmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZSB7XFxuICBiYWNrZ3JvdW5kOiAjNjczYWI3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS0xIHtcXG4gIGJhY2tncm91bmQ6ICNlZGU3ZjYgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTIge1xcbiAgYmFja2dyb3VuZDogI2QxYzRlOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtMyB7XFxuICBiYWNrZ3JvdW5kOiAjYjM5ZGRiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS00IHtcXG4gIGJhY2tncm91bmQ6ICM5NTc1Y2QgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTUge1xcbiAgYmFja2dyb3VuZDogIzdlNTdjMiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtNiB7XFxuICBiYWNrZ3JvdW5kOiAjNjczYWI3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS03IHtcXG4gIGJhY2tncm91bmQ6ICM1ZTM1YjEgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTgge1xcbiAgYmFja2dyb3VuZDogIzUxMmRhOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtOSB7XFxuICBiYWNrZ3JvdW5kOiAjNDUyN2EwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMzExYjkyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjYjM4OGZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjN2M0ZGZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjNjUxZmZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjNjIwMGVhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28ge1xcbiAgYmFja2dyb3VuZDogIzNmNTFiNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTEge1xcbiAgYmFja2dyb3VuZDogI2U4ZWFmNiAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTIge1xcbiAgYmFja2dyb3VuZDogI2M1Y2FlOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTMge1xcbiAgYmFja2dyb3VuZDogIzlmYThkYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTQge1xcbiAgYmFja2dyb3VuZDogIzc5ODZjYiAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTUge1xcbiAgYmFja2dyb3VuZDogIzVjNmJjMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTYge1xcbiAgYmFja2dyb3VuZDogIzNmNTFiNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTcge1xcbiAgYmFja2dyb3VuZDogIzM5NDlhYiAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTgge1xcbiAgYmFja2dyb3VuZDogIzMwM2Y5ZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTkge1xcbiAgYmFja2dyb3VuZDogIzI4MzU5MyAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTEwIHtcXG4gIGJhY2tncm91bmQ6ICMxYTIzN2UgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjOGM5ZWZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tMTIge1xcbiAgYmFja2dyb3VuZDogIzUzNmRmZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTEzIHtcXG4gIGJhY2tncm91bmQ6ICMzZDVhZmUgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjMzA0ZmZlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlIHtcXG4gIGJhY2tncm91bmQ6ICMyMTk2ZjMgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZTNmMmZkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTIge1xcbiAgYmFja2dyb3VuZDogI2JiZGVmYiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS0zIHtcXG4gIGJhY2tncm91bmQ6ICM5MGNhZjkgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtNCB7XFxuICBiYWNrZ3JvdW5kOiAjNjRiNWY2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTUge1xcbiAgYmFja2dyb3VuZDogIzQyYTVmNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS02IHtcXG4gIGJhY2tncm91bmQ6ICMyMTk2ZjMgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtNyB7XFxuICBiYWNrZ3JvdW5kOiAjMWU4OGU1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTgge1xcbiAgYmFja2dyb3VuZDogIzE5NzZkMiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS05IHtcXG4gIGJhY2tncm91bmQ6ICMxNTY1YzAgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtMTAge1xcbiAgYmFja2dyb3VuZDogIzBkNDdhMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjODJiMWZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTEyIHtcXG4gIGJhY2tncm91bmQ6ICM0NDhhZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtMTMge1xcbiAgYmFja2dyb3VuZDogIzI5NzlmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjMjk2MmZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlIHtcXG4gIGJhY2tncm91bmQ6ICMwM2E5ZjQgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZTFmNWZlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTIge1xcbiAgYmFja2dyb3VuZDogI2IzZTVmYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS0zIHtcXG4gIGJhY2tncm91bmQ6ICM4MWQ0ZmEgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtNCB7XFxuICBiYWNrZ3JvdW5kOiAjNGZjM2Y3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTUge1xcbiAgYmFja2dyb3VuZDogIzI5YjZmNiAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS02IHtcXG4gIGJhY2tncm91bmQ6ICMwM2E5ZjQgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtNyB7XFxuICBiYWNrZ3JvdW5kOiAjMDM5YmU1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTgge1xcbiAgYmFja2dyb3VuZDogIzAyODhkMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS05IHtcXG4gIGJhY2tncm91bmQ6ICMwMjc3YmQgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtMTAge1xcbiAgYmFja2dyb3VuZDogIzAxNTc5YiAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjODBkOGZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTEyIHtcXG4gIGJhY2tncm91bmQ6ICM0MGM0ZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtMTMge1xcbiAgYmFja2dyb3VuZDogIzAwYjBmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjMDA5MWVhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuIHtcXG4gIGJhY2tncm91bmQ6ICMwMGJjZDQgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tMSB7XFxuICBiYWNrZ3JvdW5kOiAjZTBmN2ZhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTIge1xcbiAgYmFja2dyb3VuZDogI2IyZWJmMiAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi0zIHtcXG4gIGJhY2tncm91bmQ6ICM4MGRlZWEgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tNCB7XFxuICBiYWNrZ3JvdW5kOiAjNGRkMGUxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTUge1xcbiAgYmFja2dyb3VuZDogIzI2YzZkYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi02IHtcXG4gIGJhY2tncm91bmQ6ICMwMGJjZDQgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tNyB7XFxuICBiYWNrZ3JvdW5kOiAjMDBhY2MxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTgge1xcbiAgYmFja2dyb3VuZDogIzAwOTdhNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi05IHtcXG4gIGJhY2tncm91bmQ6ICMwMDgzOGYgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tMTAge1xcbiAgYmFja2dyb3VuZDogIzAwNjA2NCAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjODRmZmZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTEyIHtcXG4gIGJhY2tncm91bmQ6ICMxOGZmZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tMTMge1xcbiAgYmFja2dyb3VuZDogIzAwZTVmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjMDBiOGQ0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsIHtcXG4gIGJhY2tncm91bmQ6ICMwMDk2ODggIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZTBmMmYxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTIge1xcbiAgYmFja2dyb3VuZDogI2IyZGZkYiAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC0zIHtcXG4gIGJhY2tncm91bmQ6ICM4MGNiYzQgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtNCB7XFxuICBiYWNrZ3JvdW5kOiAjNGRiNmFjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTUge1xcbiAgYmFja2dyb3VuZDogIzI2YTY5YSAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC02IHtcXG4gIGJhY2tncm91bmQ6ICMwMDk2ODggIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtNyB7XFxuICBiYWNrZ3JvdW5kOiAjMDA4OTdiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTgge1xcbiAgYmFja2dyb3VuZDogIzAwNzk2YiAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC05IHtcXG4gIGJhY2tncm91bmQ6ICMwMDY5NWMgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtMTAge1xcbiAgYmFja2dyb3VuZDogIzAwNGQ0MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjYTdmZmViICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTEyIHtcXG4gIGJhY2tncm91bmQ6ICM2NGZmZGEgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtMTMge1xcbiAgYmFja2dyb3VuZDogIzFkZTliNiAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjMDBiZmE1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbiB7XFxuICBiYWNrZ3JvdW5kOiAjNGNhZjUwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi0xIHtcXG4gIGJhY2tncm91bmQ6ICNlOGY1ZTkgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTIge1xcbiAgYmFja2dyb3VuZDogI2M4ZTZjOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tMyB7XFxuICBiYWNrZ3JvdW5kOiAjYTVkNmE3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi00IHtcXG4gIGJhY2tncm91bmQ6ICM4MWM3ODQgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTUge1xcbiAgYmFja2dyb3VuZDogIzY2YmI2YSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tNiB7XFxuICBiYWNrZ3JvdW5kOiAjNGNhZjUwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi03IHtcXG4gIGJhY2tncm91bmQ6ICM0M2EwNDcgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTgge1xcbiAgYmFja2dyb3VuZDogIzM4OGUzYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tOSB7XFxuICBiYWNrZ3JvdW5kOiAjMmU3ZDMyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMWI1ZTIwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjYjlmNmNhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjNjlmMGFlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjMDBlNjc2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjMDBjODUzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbiB7XFxuICBiYWNrZ3JvdW5kOiAjOGJjMzRhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi0xIHtcXG4gIGJhY2tncm91bmQ6ICNmMWY4ZTkgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTIge1xcbiAgYmFja2dyb3VuZDogI2RjZWRjOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tMyB7XFxuICBiYWNrZ3JvdW5kOiAjYzVlMWE1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi00IHtcXG4gIGJhY2tncm91bmQ6ICNhZWQ1ODEgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTUge1xcbiAgYmFja2dyb3VuZDogIzljY2M2NSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tNiB7XFxuICBiYWNrZ3JvdW5kOiAjOGJjMzRhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi03IHtcXG4gIGJhY2tncm91bmQ6ICM3Y2IzNDIgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTgge1xcbiAgYmFja2dyb3VuZDogIzY4OWYzOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tOSB7XFxuICBiYWNrZ3JvdW5kOiAjNTU4YjJmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMzM2OTFlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjY2NmZjkwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjYjJmZjU5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjNzZmZjAzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjNjRkZDE3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lIHtcXG4gIGJhY2tncm91bmQ6ICNjZGRjMzkgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZjlmYmU3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTIge1xcbiAgYmFja2dyb3VuZDogI2YwZjRjMyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS0zIHtcXG4gIGJhY2tncm91bmQ6ICNlNmVlOWMgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtNCB7XFxuICBiYWNrZ3JvdW5kOiAjZGNlNzc1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTUge1xcbiAgYmFja2dyb3VuZDogI2Q0ZTE1NyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS02IHtcXG4gIGJhY2tncm91bmQ6ICNjZGRjMzkgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtNyB7XFxuICBiYWNrZ3JvdW5kOiAjYzBjYTMzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTgge1xcbiAgYmFja2dyb3VuZDogI2FmYjQyYiAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS05IHtcXG4gIGJhY2tncm91bmQ6ICM5ZTlkMjQgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtMTAge1xcbiAgYmFja2dyb3VuZDogIzgyNzcxNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZjRmZjgxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTEyIHtcXG4gIGJhY2tncm91bmQ6ICNlZWZmNDEgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtMTMge1xcbiAgYmFja2dyb3VuZDogI2M2ZmYwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjYWVlYTAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3cge1xcbiAgYmFja2dyb3VuZDogI2ZmZWIzYiAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTEge1xcbiAgYmFja2dyb3VuZDogI2ZmZmRlNyAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTIge1xcbiAgYmFja2dyb3VuZDogI2ZmZjljNCAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTMge1xcbiAgYmFja2dyb3VuZDogI2ZmZjU5ZCAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTQge1xcbiAgYmFja2dyb3VuZDogI2ZmZjE3NiAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTUge1xcbiAgYmFja2dyb3VuZDogI2ZmZWU1OCAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTYge1xcbiAgYmFja2dyb3VuZDogI2ZmZWIzYiAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTcge1xcbiAgYmFja2dyb3VuZDogI2ZkZDgzNSAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTgge1xcbiAgYmFja2dyb3VuZDogI2ZiYzAyZCAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTkge1xcbiAgYmFja2dyb3VuZDogI2Y5YTgyNSAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTEwIHtcXG4gIGJhY2tncm91bmQ6ICNmNTdmMTcgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmZjhkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctMTIge1xcbiAgYmFja2dyb3VuZDogI2ZmMCAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTEzIHtcXG4gIGJhY2tncm91bmQ6ICNmZmVhMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjZmZkNjAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlciB7XFxuICBiYWNrZ3JvdW5kOiAjZmZjMTA3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci0xIHtcXG4gIGJhY2tncm91bmQ6ICNmZmY4ZTEgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTIge1xcbiAgYmFja2dyb3VuZDogI2ZmZWNiMyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItMyB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlMDgyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci00IHtcXG4gIGJhY2tncm91bmQ6ICNmZmQ1NGYgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTUge1xcbiAgYmFja2dyb3VuZDogI2ZmY2EyOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItNiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZjMTA3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci03IHtcXG4gIGJhY2tncm91bmQ6ICNmZmIzMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTgge1xcbiAgYmFja2dyb3VuZDogI2ZmYTAwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItOSB7XFxuICBiYWNrZ3JvdW5kOiAjZmY4ZjAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjZmY2ZjAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlNTdmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZkNzQwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjZmZjNDAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjZmZhYjAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2Uge1xcbiAgYmFja2dyb3VuZDogI2ZmOTgwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTEge1xcbiAgYmFja2dyb3VuZDogI2ZmZjNlMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTIge1xcbiAgYmFja2dyb3VuZDogI2ZmZTBiMiAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTMge1xcbiAgYmFja2dyb3VuZDogI2ZmY2M4MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTQge1xcbiAgYmFja2dyb3VuZDogI2ZmYjc0ZCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTUge1xcbiAgYmFja2dyb3VuZDogI2ZmYTcyNiAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTYge1xcbiAgYmFja2dyb3VuZDogI2ZmOTgwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTcge1xcbiAgYmFja2dyb3VuZDogI2ZiOGMwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTgge1xcbiAgYmFja2dyb3VuZDogI2Y1N2MwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTkge1xcbiAgYmFja2dyb3VuZDogI2VmNmMwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTEwIHtcXG4gIGJhY2tncm91bmQ6ICNlNjUxMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZkMTgwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtMTIge1xcbiAgYmFja2dyb3VuZDogI2ZmYWI0MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTEzIHtcXG4gIGJhY2tncm91bmQ6ICNmZjkxMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjZmY2ZDAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZSB7XFxuICBiYWNrZ3JvdW5kOiAjZmY1NzIyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS0xIHtcXG4gIGJhY2tncm91bmQ6ICNmYmU5ZTcgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTIge1xcbiAgYmFja2dyb3VuZDogI2ZmY2NiYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtMyB7XFxuICBiYWNrZ3JvdW5kOiAjZmZhYjkxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS00IHtcXG4gIGJhY2tncm91bmQ6ICNmZjhhNjUgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTUge1xcbiAgYmFja2dyb3VuZDogI2ZmNzA0MyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtNiB7XFxuICBiYWNrZ3JvdW5kOiAjZmY1NzIyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS03IHtcXG4gIGJhY2tncm91bmQ6ICNmNDUxMWUgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTgge1xcbiAgYmFja2dyb3VuZDogI2U2NGExOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtOSB7XFxuICBiYWNrZ3JvdW5kOiAjZDg0MzE1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjYmYzNjBjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmY5ZTgwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmY2ZTQwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjZmYzZDAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjZGQyYzAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93biB7XFxuICBiYWNrZ3JvdW5kOiAjNzk1NTQ4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi0xIHtcXG4gIGJhY2tncm91bmQ6ICNlZmViZTkgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTIge1xcbiAgYmFja2dyb3VuZDogI2Q3Y2NjOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tMyB7XFxuICBiYWNrZ3JvdW5kOiAjYmNhYWE0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi00IHtcXG4gIGJhY2tncm91bmQ6ICNhMTg4N2YgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTUge1xcbiAgYmFja2dyb3VuZDogIzhkNmU2MyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tNiB7XFxuICBiYWNrZ3JvdW5kOiAjNzk1NTQ4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi03IHtcXG4gIGJhY2tncm91bmQ6ICM2ZDRjNDEgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTgge1xcbiAgYmFja2dyb3VuZDogIzVkNDAzNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tOSB7XFxuICBiYWNrZ3JvdW5kOiAjNGUzNDJlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjM2UyNzIzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZDdjY2M4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjYmNhYWE0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjOGQ2ZTYzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjNWQ0MDM3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5IHtcXG4gIGJhY2tncm91bmQ6ICM5ZTllOWUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmFmYWZhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTIge1xcbiAgYmFja2dyb3VuZDogI2Y1ZjVmNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS0zIHtcXG4gIGJhY2tncm91bmQ6ICNlZWUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktNCB7XFxuICBiYWNrZ3JvdW5kOiAjZTBlMGUwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTUge1xcbiAgYmFja2dyb3VuZDogI2JkYmRiZCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS02IHtcXG4gIGJhY2tncm91bmQ6ICM5ZTllOWUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktNyB7XFxuICBiYWNrZ3JvdW5kOiAjNzU3NTc1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTgge1xcbiAgYmFja2dyb3VuZDogIzYxNjE2MSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS05IHtcXG4gIGJhY2tncm91bmQ6ICM0MjQyNDIgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktMTAge1xcbiAgYmFja2dyb3VuZDogIzIxMjEyMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZjVmNWY1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTEyIHtcXG4gIGJhY2tncm91bmQ6ICNlZWUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktMTMge1xcbiAgYmFja2dyb3VuZDogI2JkYmRiZCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjNjE2MTYxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXkge1xcbiAgYmFja2dyb3VuZDogIzYwN2Q4YiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTEge1xcbiAgYmFja2dyb3VuZDogI2VjZWZmMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTIge1xcbiAgYmFja2dyb3VuZDogI2NmZDhkYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTMge1xcbiAgYmFja2dyb3VuZDogI2IwYmVjNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTQge1xcbiAgYmFja2dyb3VuZDogIzkwYTRhZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTUge1xcbiAgYmFja2dyb3VuZDogIzc4OTA5YyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTYge1xcbiAgYmFja2dyb3VuZDogIzYwN2Q4YiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTcge1xcbiAgYmFja2dyb3VuZDogIzU0NmU3YSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTgge1xcbiAgYmFja2dyb3VuZDogIzQ1NWE2NCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTkge1xcbiAgYmFja2dyb3VuZDogIzM3NDc0ZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTEwIHtcXG4gIGJhY2tncm91bmQ6ICMyNjMyMzggIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjY2ZkOGRjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktMTIge1xcbiAgYmFja2dyb3VuZDogI2IwYmVjNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTEzIHtcXG4gIGJhY2tncm91bmQ6ICM3ODkwOWMgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjNDU1YTY0ICFpbXBvcnRhbnQ7XFxufVxcbi5zaGFkb3ctdHJhbnNpdGlvbiB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtYm94LXNoYWRvdyAwLjI4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7XFxuICB0cmFuc2l0aW9uOiAtd2Via2l0LWJveC1zaGFkb3cgMC4yOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50O1xcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjI4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7XFxuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMjhzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIC13ZWJraXQtYm94LXNoYWRvdyAwLjI4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7XFxufVxcbi5zaGFkb3ctMSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgLTFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0ycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0zIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggOHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAzcHggNHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDhweCByZ2JhKDAsMCwwLDAuMiksIDAgM3B4IDRweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAzcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTMge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xcHggOHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtM3B4IDRweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggM3B4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMXB4IDhweCByZ2JhKDAsMCwwLDAuMiksIDAgLTNweCA0cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctNCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMnB4IDRweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCA0cHggNXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMXB4IDEwcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIDRweCA1cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAxcHggMTBweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTQge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0ycHggNHB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIC00cHggNXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTFweCAxMHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTJweCA0cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgLTRweCA1cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMXB4IDEwcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy01IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAzcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIDVweCA4cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAxcHggMTRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgNXB4IDhweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDFweCAxNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtNSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgLTVweCA4cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMXB4IDE0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtNXB4IDhweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0xcHggMTRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTYge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgNnB4IDEwcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAxcHggMThweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgNnB4IDEwcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAxcHggMThweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTYge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0zcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIC02cHggMTBweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0xcHggMThweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0zcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIC02cHggMTBweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0xcHggMThweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTcge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDRweCA1cHggLTJweCByZ2JhKDAsMCwwLDAuMiksIDAgN3B4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDE2cHggMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDVweCAtMnB4IHJnYmEoMCwwLDAsMC4yKSwgMCA3cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMTZweCAxcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC03IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtNHB4IDVweCAtMnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtN3B4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTJweCAxNnB4IDFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC00cHggNXB4IC0ycHggcmdiYSgwLDAsMCwwLjIpLCAwIC03cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMnB4IDE2cHggMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctOCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNXB4IDVweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCA4cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMTRweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA1cHggNXB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIDhweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxNHB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTgge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC01cHggNXB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIC04cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDE0cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTVweCA1cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgLThweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggMTRweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy05IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA1cHggNnB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIDlweCAxMnB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxNnB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDVweCA2cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgOXB4IDEycHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDE2cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtOSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTVweCA2cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgLTlweCAxMnB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggMTZweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtNXB4IDZweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtOXB4IDEycHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAxNnB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTEwIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA2cHggNnB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIDEwcHggMTRweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA0cHggMThweCAzcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA2cHggNnB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIDEwcHggMTRweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA0cHggMThweCAzcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xMCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTZweCA2cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgLTEwcHggMTRweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNHB4IDE4cHggM3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTZweCA2cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgLTEwcHggMTRweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNHB4IDE4cHggM3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTEge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDZweCA3cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgMTFweCAxNXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDRweCAyMHB4IDNweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDZweCA3cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgMTFweCAxNXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDRweCAyMHB4IDNweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTExIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtNnB4IDdweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTFweCAxNXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC00cHggMjBweCAzcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtNnB4IDdweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTFweCAxNXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC00cHggMjBweCAzcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0xMiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgN3B4IDhweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxMnB4IDE3cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNXB4IDIycHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgN3B4IDhweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxMnB4IDE3cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNXB4IDIycHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC03cHggOHB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xMnB4IDE3cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTVweCAyMnB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC03cHggOHB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xMnB4IDE3cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTVweCAyMnB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTEzIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA3cHggOHB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIDEzcHggMTlweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA1cHggMjRweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA3cHggOHB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIDEzcHggMTlweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA1cHggMjRweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xMyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTdweCA4cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgLTEzcHggMTlweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNXB4IDI0cHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTdweCA4cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgLTEzcHggMTlweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNXB4IDI0cHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTQge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDdweCA5cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgMTRweCAyMXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDVweCAyNnB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDdweCA5cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgMTRweCAyMXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDVweCAyNnB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTE0IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtN3B4IDlweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTRweCAyMXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC01cHggMjZweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtN3B4IDlweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTRweCAyMXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC01cHggMjZweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0xNSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgOHB4IDlweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxNXB4IDIycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNnB4IDI4cHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDlweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxNXB4IDIycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNnB4IDI4cHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTUge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC04cHggOXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xNXB4IDIycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTZweCAyOHB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC04cHggOXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xNXB4IDIycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTZweCAyOHB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTE2IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA4cHggMTBweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxNnB4IDI0cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNnB4IDMwcHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDEwcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgMTZweCAyNHB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDZweCAzMHB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTE2IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtOHB4IDEwcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE2cHggMjRweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNnB4IDMwcHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLThweCAxMHB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xNnB4IDI0cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTZweCAzMHB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTE3IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA4cHggMTFweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxN3B4IDI2cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNnB4IDMycHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDExcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgMTdweCAyNnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDZweCAzMnB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTE3IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtOHB4IDExcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE3cHggMjZweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNnB4IDMycHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLThweCAxMXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xN3B4IDI2cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTZweCAzMnB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTE4IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA5cHggMTFweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxOHB4IDI4cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgN3B4IDM0cHggNnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgOXB4IDExcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgMThweCAyOHB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDdweCAzNHB4IDZweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTE4IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtOXB4IDExcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE4cHggMjhweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtN3B4IDM0cHggNnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTlweCAxMXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xOHB4IDI4cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTdweCAzNHB4IDZweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTE5IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA5cHggMTJweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxOXB4IDI5cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgN3B4IDM2cHggNnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgOXB4IDEycHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgMTlweCAyOXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDdweCAzNnB4IDZweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTE5IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtOXB4IDEycHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE5cHggMjlweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtN3B4IDM2cHggNnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTlweCAxMnB4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xOXB4IDI5cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTdweCAzNnB4IDZweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTIwIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxMHB4IDEzcHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgMjBweCAzMXB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDhweCAzOHB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMTNweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAyMHB4IDMxcHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOHB4IDM4cHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMjAge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xMHB4IDEzcHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgLTIwcHggMzFweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOHB4IDM4cHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTEwcHggMTNweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjBweCAzMXB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC04cHggMzhweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0yMSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMTBweCAxM3B4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIDIxcHggMzNweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA4cHggNDBweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDEzcHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgMjFweCAzM3B4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDhweCA0MHB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTIxIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMTBweCAxM3B4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yMXB4IDMzcHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLThweCA0MHB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xMHB4IDEzcHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgLTIxcHggMzNweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOHB4IDQwcHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMjIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDEwcHggMTRweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAyMnB4IDM1cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOHB4IDQycHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAxNHB4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIDIycHggMzVweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA4cHggNDJweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0yMiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTEwcHggMTRweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjJweCAzNXB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC04cHggNDJweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMTBweCAxNHB4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yMnB4IDM1cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLThweCA0MnB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTIzIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxMXB4IDE0cHggLTdweCByZ2JhKDAsMCwwLDAuMiksIDAgMjNweCAzNnB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDlweCA0NHB4IDhweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDExcHggMTRweCAtN3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAyM3B4IDM2cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOXB4IDQ0cHggOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMjMge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xMXB4IDE0cHggLTdweCByZ2JhKDAsMCwwLDAuMiksIDAgLTIzcHggMzZweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOXB4IDQ0cHggOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTExcHggMTRweCAtN3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjNweCAzNnB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC05cHggNDRweCA4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0yNCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMTFweCAxNXB4IC03cHggcmdiYSgwLDAsMCwwLjIpLCAwIDI0cHggMzhweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA5cHggNDZweCA4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxMXB4IDE1cHggLTdweCByZ2JhKDAsMCwwLDAuMiksIDAgMjRweCAzOHB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDlweCA0NnB4IDhweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTI0IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMTFweCAxNXB4IC03cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yNHB4IDM4cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTlweCA0NnB4IDhweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xMXB4IDE1cHggLTdweCByZ2JhKDAsMCwwLDAuMiksIDAgLTI0cHggMzhweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOXB4IDQ2cHggOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5uby1zaGFkb3csXFxuLnNoYWRvdy0wIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi5pbnNldC1zaGFkb3cge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDdweCA5cHggLTdweCByZ2JhKDAsMCwwLDAuNykgaW5zZXQgIWltcG9ydGFudDtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA3cHggOXB4IC03cHggcmdiYSgwLDAsMCwwLjcpIGluc2V0ICFpbXBvcnRhbnQ7XFxufVxcbi56LW1hcmdpbmFscyB7XFxuICB6LWluZGV4OiAyMDAwO1xcbn1cXG4uei1ub3RpZnkge1xcbiAgei1pbmRleDogOTUwMDtcXG59XFxuLnotZnVsbHNjcmVlbiB7XFxuICB6LWluZGV4OiA2MDAwO1xcbn1cXG4uei1pbmhlcml0IHtcXG4gIHotaW5kZXg6IGluaGVyaXQgIWltcG9ydGFudDtcXG59XFxuLnJvdyxcXG4uY29sdW1uLFxcbi5mbGV4IHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLW1zLWZsZXgtd3JhcDogd3JhcDtcXG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XFxufVxcbi5yb3cuaW5saW5lLFxcbi5jb2x1bW4uaW5saW5lLFxcbi5mbGV4LmlubGluZSB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XFxuICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG59XFxuLnJvdy5yZXZlcnNlIHtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZTtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XFxufVxcbi5jb2x1bW4ge1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbn1cXG4uY29sdW1uLnJldmVyc2Uge1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZTtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XFxufVxcbi53cmFwIHtcXG4gIC1tcy1mbGV4LXdyYXA6IHdyYXA7XFxuICAgICAgZmxleC13cmFwOiB3cmFwO1xcbn1cXG4ubm8td3JhcCB7XFxuICAtbXMtZmxleC13cmFwOiBub3dyYXA7XFxuICAgICAgZmxleC13cmFwOiBub3dyYXA7XFxufVxcbi5yZXZlcnNlLXdyYXAge1xcbiAgLW1zLWZsZXgtd3JhcDogd3JhcC1yZXZlcnNlO1xcbiAgICAgIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlO1xcbn1cXG4ub3JkZXItZmlyc3Qge1xcbiAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogLTk5OTk7XFxuICAgICAgLW1zLWZsZXgtb3JkZXI6IC0xMDAwMDtcXG4gICAgICAgICAgb3JkZXI6IC0xMDAwMDtcXG59XFxuLm9yZGVyLWxhc3Qge1xcbiAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMTAwMDE7XFxuICAgICAgLW1zLWZsZXgtb3JkZXI6IDEwMDAwO1xcbiAgICAgICAgICBvcmRlcjogMTAwMDA7XFxufVxcbi5vcmRlci1ub25lIHtcXG4gIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDE7XFxuICAgICAgLW1zLWZsZXgtb3JkZXI6IDA7XFxuICAgICAgICAgIG9yZGVyOiAwO1xcbn1cXG4uanVzdGlmeS1zdGFydCB7XFxuICAtd2Via2l0LWJveC1wYWNrOiBzdGFydDtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBzdGFydDtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xcbn1cXG4uanVzdGlmeS1lbmQge1xcbiAgLXdlYmtpdC1ib3gtcGFjazogZW5kO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZDtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcXG59XFxuLmp1c3RpZnktY2VudGVyLFxcbi5mbGV4LWNlbnRlciB7XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuLmp1c3RpZnktYmV0d2VlbiB7XFxuICAtd2Via2l0LWJveC1wYWNrOiBqdXN0aWZ5O1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG59XFxuLmp1c3RpZnktYXJvdW5kIHtcXG4gIC1tcy1mbGV4LXBhY2s6IGRpc3RyaWJ1dGU7XFxuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XFxufVxcbi5pdGVtcy1zdGFydCB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogc3RhcnQ7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXG59XFxuLml0ZW1zLWVuZCB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogZW5kO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcXG59XFxuLml0ZW1zLWNlbnRlcixcXG4uZmxleC1jZW50ZXIge1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG4uaXRlbXMtYmFzZWxpbmUge1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGJhc2VsaW5lO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBiYXNlbGluZTtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xcbn1cXG4uaXRlbXMtc3RyZXRjaCB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaDtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogc3RyZXRjaDtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XFxufVxcbi5jb250ZW50LXN0YXJ0IHtcXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogc3RhcnQ7XFxuICAgICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcXG59XFxuLmNvbnRlbnQtZW5kIHtcXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogZW5kO1xcbiAgICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kO1xcbn1cXG4uY29udGVudC1jZW50ZXIge1xcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiBjZW50ZXI7XFxuICAgICAgYWxpZ24tY29udGVudDogY2VudGVyO1xcbn1cXG4uY29udGVudC1zdHJldGNoIHtcXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogc3RyZXRjaDtcXG4gICAgICBhbGlnbi1jb250ZW50OiBzdHJldGNoO1xcbn1cXG4uY29udGVudC1iZXR3ZWVuIHtcXG4gIC1tcy1mbGV4LWxpbmUtcGFjazoganVzdGlmeTtcXG4gICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbn1cXG4uY29udGVudC1hcm91bmQge1xcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiBkaXN0cmlidXRlO1xcbiAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcXG59XFxuLnNlbGYtc3RhcnQge1xcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RhcnQ7XFxuICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcXG59XFxuLnNlbGYtZW5kIHtcXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGVuZDtcXG4gICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcXG59XFxuLnNlbGYtY2VudGVyIHtcXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlcjtcXG4gICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XFxufVxcbi5zZWxmLWJhc2VsaW5lIHtcXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGJhc2VsaW5lO1xcbiAgICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lO1xcbn1cXG4uc2VsZi1zdHJldGNoIHtcXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246IHN0cmV0Y2g7XFxuICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcXG59XFxuLmd1dHRlci14LW5vbmUsXFxuLmd1dHRlci1ub25lIHtcXG4gIG1hcmdpbi1sZWZ0OiAwO1xcbn1cXG4uZ3V0dGVyLXgtbm9uZSA+IGRpdixcXG4uZ3V0dGVyLW5vbmUgPiBkaXYge1xcbiAgcGFkZGluZy1sZWZ0OiAwO1xcbn1cXG4uZ3V0dGVyLXktbm9uZSxcXG4uZ3V0dGVyLW5vbmUge1xcbiAgbWFyZ2luLXRvcDogMDtcXG59XFxuLmd1dHRlci15LW5vbmUgPiBkaXYsXFxuLmd1dHRlci1ub25lID4gZGl2IHtcXG4gIHBhZGRpbmctdG9wOiAwO1xcbn1cXG4uZ3V0dGVyLXgteHMsXFxuLmd1dHRlci14cyB7XFxuICBtYXJnaW4tbGVmdDogLThweDtcXG59XFxuLmd1dHRlci14LXhzID4gZGl2LFxcbi5ndXR0ZXIteHMgPiBkaXYge1xcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XFxufVxcbi5ndXR0ZXIteS14cyxcXG4uZ3V0dGVyLXhzIHtcXG4gIG1hcmdpbi10b3A6IC04cHg7XFxufVxcbi5ndXR0ZXIteS14cyA+IGRpdixcXG4uZ3V0dGVyLXhzID4gZGl2IHtcXG4gIHBhZGRpbmctdG9wOiA4cHg7XFxufVxcbi5ndXR0ZXIteC1zbSxcXG4uZ3V0dGVyLXNtIHtcXG4gIG1hcmdpbi1sZWZ0OiAtMTZweDtcXG59XFxuLmd1dHRlci14LXNtID4gZGl2LFxcbi5ndXR0ZXItc20gPiBkaXYge1xcbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xcbn1cXG4uZ3V0dGVyLXktc20sXFxuLmd1dHRlci1zbSB7XFxuICBtYXJnaW4tdG9wOiAtMTZweDtcXG59XFxuLmd1dHRlci15LXNtID4gZGl2LFxcbi5ndXR0ZXItc20gPiBkaXYge1xcbiAgcGFkZGluZy10b3A6IDE2cHg7XFxufVxcbi5ndXR0ZXIteC1tZCxcXG4uZ3V0dGVyLW1kIHtcXG4gIG1hcmdpbi1sZWZ0OiAtMzJweDtcXG59XFxuLmd1dHRlci14LW1kID4gZGl2LFxcbi5ndXR0ZXItbWQgPiBkaXYge1xcbiAgcGFkZGluZy1sZWZ0OiAzMnB4O1xcbn1cXG4uZ3V0dGVyLXktbWQsXFxuLmd1dHRlci1tZCB7XFxuICBtYXJnaW4tdG9wOiAtMzJweDtcXG59XFxuLmd1dHRlci15LW1kID4gZGl2LFxcbi5ndXR0ZXItbWQgPiBkaXYge1xcbiAgcGFkZGluZy10b3A6IDMycHg7XFxufVxcbi5ndXR0ZXIteC1sZyxcXG4uZ3V0dGVyLWxnIHtcXG4gIG1hcmdpbi1sZWZ0OiAtNDhweDtcXG59XFxuLmd1dHRlci14LWxnID4gZGl2LFxcbi5ndXR0ZXItbGcgPiBkaXYge1xcbiAgcGFkZGluZy1sZWZ0OiA0OHB4O1xcbn1cXG4uZ3V0dGVyLXktbGcsXFxuLmd1dHRlci1sZyB7XFxuICBtYXJnaW4tdG9wOiAtNDhweDtcXG59XFxuLmd1dHRlci15LWxnID4gZGl2LFxcbi5ndXR0ZXItbGcgPiBkaXYge1xcbiAgcGFkZGluZy10b3A6IDQ4cHg7XFxufVxcbi5ndXR0ZXIteC14bCxcXG4uZ3V0dGVyLXhsIHtcXG4gIG1hcmdpbi1sZWZ0OiAtNjRweDtcXG59XFxuLmd1dHRlci14LXhsID4gZGl2LFxcbi5ndXR0ZXIteGwgPiBkaXYge1xcbiAgcGFkZGluZy1sZWZ0OiA2NHB4O1xcbn1cXG4uZ3V0dGVyLXkteGwsXFxuLmd1dHRlci14bCB7XFxuICBtYXJnaW4tdG9wOiAtNjRweDtcXG59XFxuLmd1dHRlci15LXhsID4gZGl2LFxcbi5ndXR0ZXIteGwgPiBkaXYge1xcbiAgcGFkZGluZy10b3A6IDY0cHg7XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiAwKSB7XFxuICAucm93ID4gLmNvbCxcXG4gIC5yb3cgPiAuY29sLXhzLFxcbiAgLnJvdyA+IC5jb2wtYXV0byxcXG4gIC5yb3cgPiAuY29sLXhzLWF1dG8sXFxuICAucm93ID4gLmNvbC1ncm93LFxcbiAgLnJvdyA+IC5jb2wteHMtZ3JvdyxcXG4gIC5yb3cgPiAuY29sLTAsXFxuICAucm93ID4gLmNvbC14cy0wLFxcbiAgLnJvdyA+IC5jb2wtMSxcXG4gIC5yb3cgPiAuY29sLXhzLTEsXFxuICAucm93ID4gLmNvbC0yLFxcbiAgLnJvdyA+IC5jb2wteHMtMixcXG4gIC5yb3cgPiAuY29sLTMsXFxuICAucm93ID4gLmNvbC14cy0zLFxcbiAgLnJvdyA+IC5jb2wtNCxcXG4gIC5yb3cgPiAuY29sLXhzLTQsXFxuICAucm93ID4gLmNvbC01LFxcbiAgLnJvdyA+IC5jb2wteHMtNSxcXG4gIC5yb3cgPiAuY29sLTYsXFxuICAucm93ID4gLmNvbC14cy02LFxcbiAgLnJvdyA+IC5jb2wtNyxcXG4gIC5yb3cgPiAuY29sLXhzLTcsXFxuICAucm93ID4gLmNvbC04LFxcbiAgLnJvdyA+IC5jb2wteHMtOCxcXG4gIC5yb3cgPiAuY29sLTksXFxuICAucm93ID4gLmNvbC14cy05LFxcbiAgLnJvdyA+IC5jb2wtMTAsXFxuICAucm93ID4gLmNvbC14cy0xMCxcXG4gIC5yb3cgPiAuY29sLTExLFxcbiAgLnJvdyA+IC5jb2wteHMtMTEsXFxuICAucm93ID4gLmNvbC0xMixcXG4gIC5yb3cgPiAuY29sLXhzLTEyLFxcbiAgLmZsZXggPiAuY29sLFxcbiAgLmZsZXggPiAuY29sLXhzLFxcbiAgLmZsZXggPiAuY29sLWF1dG8sXFxuICAuZmxleCA+IC5jb2wteHMtYXV0byxcXG4gIC5mbGV4ID4gLmNvbC1ncm93LFxcbiAgLmZsZXggPiAuY29sLXhzLWdyb3csXFxuICAuZmxleCA+IC5jb2wtMCxcXG4gIC5mbGV4ID4gLmNvbC14cy0wLFxcbiAgLmZsZXggPiAuY29sLTEsXFxuICAuZmxleCA+IC5jb2wteHMtMSxcXG4gIC5mbGV4ID4gLmNvbC0yLFxcbiAgLmZsZXggPiAuY29sLXhzLTIsXFxuICAuZmxleCA+IC5jb2wtMyxcXG4gIC5mbGV4ID4gLmNvbC14cy0zLFxcbiAgLmZsZXggPiAuY29sLTQsXFxuICAuZmxleCA+IC5jb2wteHMtNCxcXG4gIC5mbGV4ID4gLmNvbC01LFxcbiAgLmZsZXggPiAuY29sLXhzLTUsXFxuICAuZmxleCA+IC5jb2wtNixcXG4gIC5mbGV4ID4gLmNvbC14cy02LFxcbiAgLmZsZXggPiAuY29sLTcsXFxuICAuZmxleCA+IC5jb2wteHMtNyxcXG4gIC5mbGV4ID4gLmNvbC04LFxcbiAgLmZsZXggPiAuY29sLXhzLTgsXFxuICAuZmxleCA+IC5jb2wtOSxcXG4gIC5mbGV4ID4gLmNvbC14cy05LFxcbiAgLmZsZXggPiAuY29sLTEwLFxcbiAgLmZsZXggPiAuY29sLXhzLTEwLFxcbiAgLmZsZXggPiAuY29sLTExLFxcbiAgLmZsZXggPiAuY29sLXhzLTExLFxcbiAgLmZsZXggPiAuY29sLTEyLFxcbiAgLmZsZXggPiAuY29sLXhzLTEyIHtcXG4gICAgd2lkdGg6IGF1dG87XFxuICAgIG1pbi13aWR0aDogMDtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wsXFxuICAuY29sdW1uID4gLmNvbC14cyxcXG4gIC5jb2x1bW4gPiAuY29sLWF1dG8sXFxuICAuY29sdW1uID4gLmNvbC14cy1hdXRvLFxcbiAgLmNvbHVtbiA+IC5jb2wtZ3JvdyxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLWdyb3csXFxuICAuY29sdW1uID4gLmNvbC0wLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMCxcXG4gIC5jb2x1bW4gPiAuY29sLTEsXFxuICAuY29sdW1uID4gLmNvbC14cy0xLFxcbiAgLmNvbHVtbiA+IC5jb2wtMixcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTIsXFxuICAuY29sdW1uID4gLmNvbC0zLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMyxcXG4gIC5jb2x1bW4gPiAuY29sLTQsXFxuICAuY29sdW1uID4gLmNvbC14cy00LFxcbiAgLmNvbHVtbiA+IC5jb2wtNSxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTUsXFxuICAuY29sdW1uID4gLmNvbC02LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtNixcXG4gIC5jb2x1bW4gPiAuY29sLTcsXFxuICAuY29sdW1uID4gLmNvbC14cy03LFxcbiAgLmNvbHVtbiA+IC5jb2wtOCxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTgsXFxuICAuY29sdW1uID4gLmNvbC05LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtOSxcXG4gIC5jb2x1bW4gPiAuY29sLTEwLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMTAsXFxuICAuY29sdW1uID4gLmNvbC0xMSxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTExLFxcbiAgLmNvbHVtbiA+IC5jb2wtMTIsXFxuICAuY29sdW1uID4gLmNvbC14cy0xMixcXG4gIC5mbGV4ID4gLmNvbCxcXG4gIC5mbGV4ID4gLmNvbC14cyxcXG4gIC5mbGV4ID4gLmNvbC1hdXRvLFxcbiAgLmZsZXggPiAuY29sLXhzLWF1dG8sXFxuICAuZmxleCA+IC5jb2wtZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC14cy1ncm93LFxcbiAgLmZsZXggPiAuY29sLTAsXFxuICAuZmxleCA+IC5jb2wteHMtMCxcXG4gIC5mbGV4ID4gLmNvbC0xLFxcbiAgLmZsZXggPiAuY29sLXhzLTEsXFxuICAuZmxleCA+IC5jb2wtMixcXG4gIC5mbGV4ID4gLmNvbC14cy0yLFxcbiAgLmZsZXggPiAuY29sLTMsXFxuICAuZmxleCA+IC5jb2wteHMtMyxcXG4gIC5mbGV4ID4gLmNvbC00LFxcbiAgLmZsZXggPiAuY29sLXhzLTQsXFxuICAuZmxleCA+IC5jb2wtNSxcXG4gIC5mbGV4ID4gLmNvbC14cy01LFxcbiAgLmZsZXggPiAuY29sLTYsXFxuICAuZmxleCA+IC5jb2wteHMtNixcXG4gIC5mbGV4ID4gLmNvbC03LFxcbiAgLmZsZXggPiAuY29sLXhzLTcsXFxuICAuZmxleCA+IC5jb2wtOCxcXG4gIC5mbGV4ID4gLmNvbC14cy04LFxcbiAgLmZsZXggPiAuY29sLTksXFxuICAuZmxleCA+IC5jb2wteHMtOSxcXG4gIC5mbGV4ID4gLmNvbC0xMCxcXG4gIC5mbGV4ID4gLmNvbC14cy0xMCxcXG4gIC5mbGV4ID4gLmNvbC0xMSxcXG4gIC5mbGV4ID4gLmNvbC14cy0xMSxcXG4gIC5mbGV4ID4gLmNvbC0xMixcXG4gIC5mbGV4ID4gLmNvbC14cy0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgbWluLWhlaWdodDogMDtcXG4gICAgbWF4LWhlaWdodDogMTAwJTtcXG4gIH1cXG4gIC5jb2wsXFxuICAuY29sLXhzIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTAwMDA7XFxuICAgICAgICAtbXMtZmxleDogMTAwMDAgMSAwJTtcXG4gICAgICAgICAgICBmbGV4OiAxMDAwMCAxIDAlO1xcbiAgfVxcbiAgLmNvbC1hdXRvLFxcbiAgLmNvbC14cy1hdXRvLFxcbiAgLmNvbC0wLFxcbiAgLmNvbC14cy0wLFxcbiAgLmNvbC0xLFxcbiAgLmNvbC14cy0xLFxcbiAgLmNvbC0yLFxcbiAgLmNvbC14cy0yLFxcbiAgLmNvbC0zLFxcbiAgLmNvbC14cy0zLFxcbiAgLmNvbC00LFxcbiAgLmNvbC14cy00LFxcbiAgLmNvbC01LFxcbiAgLmNvbC14cy01LFxcbiAgLmNvbC02LFxcbiAgLmNvbC14cy02LFxcbiAgLmNvbC03LFxcbiAgLmNvbC14cy03LFxcbiAgLmNvbC04LFxcbiAgLmNvbC14cy04LFxcbiAgLmNvbC05LFxcbiAgLmNvbC14cy05LFxcbiAgLmNvbC0xMCxcXG4gIC5jb2wteHMtMTAsXFxuICAuY29sLTExLFxcbiAgLmNvbC14cy0xMSxcXG4gIC5jb2wtMTIsXFxuICAuY29sLXhzLTEyIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcXG4gIH1cXG4gIC5jb2wtZ3JvdyxcXG4gIC5jb2wteHMtZ3JvdyB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC0wLFxcbiAgLnJvdyA+IC5jb2wteHMtMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtMCxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTAge1xcbiAgICBtYXJnaW4tbGVmdDogMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC0wLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMCB7XFxuICAgIGhlaWdodDogMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtMSxcXG4gIC5yb3cgPiAuY29sLXhzLTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtMSxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTEge1xcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTEsXFxuICAuY29sdW1uID4gLmNvbC14cy0xIHtcXG4gICAgaGVpZ2h0OiA4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTIsXFxuICAucm93ID4gLmNvbC14cy0yIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTYuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC0yLFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTIsXFxuICAuY29sdW1uID4gLmNvbC14cy0yIHtcXG4gICAgaGVpZ2h0OiAxNi42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC0zLFxcbiAgLnJvdyA+IC5jb2wteHMtMyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDI1JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTMsXFxuICAucm93ID4gLm9mZnNldC14cy0zIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTMsXFxuICAuY29sdW1uID4gLmNvbC14cy0zIHtcXG4gICAgaGVpZ2h0OiAyNSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtNCxcXG4gIC5yb3cgPiAuY29sLXhzLTQge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTQsXFxuICAucm93ID4gLm9mZnNldC14cy00IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtNCxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTQge1xcbiAgICBoZWlnaHQ6IDMzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTUsXFxuICAucm93ID4gLmNvbC14cy01IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNDEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC01LFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtNSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTUsXFxuICAuY29sdW1uID4gLmNvbC14cy01IHtcXG4gICAgaGVpZ2h0OiA0MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC02LFxcbiAgLnJvdyA+IC5jb2wteHMtNiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDUwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTYsXFxuICAucm93ID4gLm9mZnNldC14cy02IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTYsXFxuICAuY29sdW1uID4gLmNvbC14cy02IHtcXG4gICAgaGVpZ2h0OiA1MCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtNyxcXG4gIC5yb3cgPiAuY29sLXhzLTcge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTcsXFxuICAucm93ID4gLm9mZnNldC14cy03IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtNyxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTcge1xcbiAgICBoZWlnaHQ6IDU4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTgsXFxuICAucm93ID4gLmNvbC14cy04IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNjYuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC04LFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtOCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTgsXFxuICAuY29sdW1uID4gLmNvbC14cy04IHtcXG4gICAgaGVpZ2h0OiA2Ni42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC05LFxcbiAgLnJvdyA+IC5jb2wteHMtOSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDc1JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTksXFxuICAucm93ID4gLm9mZnNldC14cy05IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTksXFxuICAuY29sdW1uID4gLmNvbC14cy05IHtcXG4gICAgaGVpZ2h0OiA3NSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtMTAsXFxuICAucm93ID4gLmNvbC14cy0xMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtMTAsXFxuICAucm93ID4gLm9mZnNldC14cy0xMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTEwLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMTAge1xcbiAgICBoZWlnaHQ6IDgzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTExLFxcbiAgLnJvdyA+IC5jb2wteHMtMTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA5MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTExLFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtMTEge1xcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC0xMSxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTExIHtcXG4gICAgaGVpZ2h0OiA5MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC0xMixcXG4gIC5yb3cgPiAuY29sLXhzLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTEyLFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtMTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTEyLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMTIge1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcXG4gIC5yb3cgPiAuY29sLXNtLFxcbiAgLnJvdyA+IC5jb2wtc20tYXV0byxcXG4gIC5yb3cgPiAuY29sLXNtLWdyb3csXFxuICAucm93ID4gLmNvbC1zbS0wLFxcbiAgLnJvdyA+IC5jb2wtc20tMSxcXG4gIC5yb3cgPiAuY29sLXNtLTIsXFxuICAucm93ID4gLmNvbC1zbS0zLFxcbiAgLnJvdyA+IC5jb2wtc20tNCxcXG4gIC5yb3cgPiAuY29sLXNtLTUsXFxuICAucm93ID4gLmNvbC1zbS02LFxcbiAgLnJvdyA+IC5jb2wtc20tNyxcXG4gIC5yb3cgPiAuY29sLXNtLTgsXFxuICAucm93ID4gLmNvbC1zbS05LFxcbiAgLnJvdyA+IC5jb2wtc20tMTAsXFxuICAucm93ID4gLmNvbC1zbS0xMSxcXG4gIC5yb3cgPiAuY29sLXNtLTEyLFxcbiAgLmZsZXggPiAuY29sLXNtLFxcbiAgLmZsZXggPiAuY29sLXNtLWF1dG8sXFxuICAuZmxleCA+IC5jb2wtc20tZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC1zbS0wLFxcbiAgLmZsZXggPiAuY29sLXNtLTEsXFxuICAuZmxleCA+IC5jb2wtc20tMixcXG4gIC5mbGV4ID4gLmNvbC1zbS0zLFxcbiAgLmZsZXggPiAuY29sLXNtLTQsXFxuICAuZmxleCA+IC5jb2wtc20tNSxcXG4gIC5mbGV4ID4gLmNvbC1zbS02LFxcbiAgLmZsZXggPiAuY29sLXNtLTcsXFxuICAuZmxleCA+IC5jb2wtc20tOCxcXG4gIC5mbGV4ID4gLmNvbC1zbS05LFxcbiAgLmZsZXggPiAuY29sLXNtLTEwLFxcbiAgLmZsZXggPiAuY29sLXNtLTExLFxcbiAgLmZsZXggPiAuY29sLXNtLTEyIHtcXG4gICAgd2lkdGg6IGF1dG87XFxuICAgIG1pbi13aWR0aDogMDtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20sXFxuICAuY29sdW1uID4gLmNvbC1zbS1hdXRvLFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tZ3JvdyxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTAsXFxuICAuY29sdW1uID4gLmNvbC1zbS0xLFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMixcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTMsXFxuICAuY29sdW1uID4gLmNvbC1zbS00LFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tNSxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTYsXFxuICAuY29sdW1uID4gLmNvbC1zbS03LFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tOCxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTksXFxuICAuY29sdW1uID4gLmNvbC1zbS0xMCxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTExLFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMTIsXFxuICAuZmxleCA+IC5jb2wtc20sXFxuICAuZmxleCA+IC5jb2wtc20tYXV0byxcXG4gIC5mbGV4ID4gLmNvbC1zbS1ncm93LFxcbiAgLmZsZXggPiAuY29sLXNtLTAsXFxuICAuZmxleCA+IC5jb2wtc20tMSxcXG4gIC5mbGV4ID4gLmNvbC1zbS0yLFxcbiAgLmZsZXggPiAuY29sLXNtLTMsXFxuICAuZmxleCA+IC5jb2wtc20tNCxcXG4gIC5mbGV4ID4gLmNvbC1zbS01LFxcbiAgLmZsZXggPiAuY29sLXNtLTYsXFxuICAuZmxleCA+IC5jb2wtc20tNyxcXG4gIC5mbGV4ID4gLmNvbC1zbS04LFxcbiAgLmZsZXggPiAuY29sLXNtLTksXFxuICAuZmxleCA+IC5jb2wtc20tMTAsXFxuICAuZmxleCA+IC5jb2wtc20tMTEsXFxuICAuZmxleCA+IC5jb2wtc20tMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIG1pbi1oZWlnaHQ6IDA7XFxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XFxuICB9XFxuICAuY29sLXNtIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTAwMDA7XFxuICAgICAgICAtbXMtZmxleDogMTAwMDAgMSAwJTtcXG4gICAgICAgICAgICBmbGV4OiAxMDAwMCAxIDAlO1xcbiAgfVxcbiAgLmNvbC1zbS1hdXRvLFxcbiAgLmNvbC1zbS0wLFxcbiAgLmNvbC1zbS0xLFxcbiAgLmNvbC1zbS0yLFxcbiAgLmNvbC1zbS0zLFxcbiAgLmNvbC1zbS00LFxcbiAgLmNvbC1zbS01LFxcbiAgLmNvbC1zbS02LFxcbiAgLmNvbC1zbS03LFxcbiAgLmNvbC1zbS04LFxcbiAgLmNvbC1zbS05LFxcbiAgLmNvbC1zbS0xMCxcXG4gIC5jb2wtc20tMTEsXFxuICAuY29sLXNtLTEyIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcXG4gIH1cXG4gIC5jb2wtc20tZ3JvdyB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS0wIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS0wIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMCB7XFxuICAgIGhlaWdodDogMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS0xIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS0xIHtcXG4gICAgaGVpZ2h0OiA4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxNi42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS0yIHtcXG4gICAgaGVpZ2h0OiAxNi42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS0zIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMjUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tMyB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS0zIHtcXG4gICAgaGVpZ2h0OiAyNSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tNCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tNCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTQge1xcbiAgICBoZWlnaHQ6IDMzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTUge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA0MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTUge1xcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS01IHtcXG4gICAgaGVpZ2h0OiA0MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS02IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tNiB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS02IHtcXG4gICAgaGVpZ2h0OiA1MCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tNyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tNyB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTcge1xcbiAgICBoZWlnaHQ6IDU4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTgge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTgge1xcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS04IHtcXG4gICAgaGVpZ2h0OiA2Ni42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS05IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNzUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tOSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS05IHtcXG4gICAgaGVpZ2h0OiA3NSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tMTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4My4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTEwIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMTAge1xcbiAgICBoZWlnaHQ6IDgzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTExIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOTEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS0xMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTExIHtcXG4gICAgaGVpZ2h0OiA5MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDEwMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS0xMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMTIge1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gIC5yb3cgPiAuY29sLW1kLFxcbiAgLnJvdyA+IC5jb2wtbWQtYXV0byxcXG4gIC5yb3cgPiAuY29sLW1kLWdyb3csXFxuICAucm93ID4gLmNvbC1tZC0wLFxcbiAgLnJvdyA+IC5jb2wtbWQtMSxcXG4gIC5yb3cgPiAuY29sLW1kLTIsXFxuICAucm93ID4gLmNvbC1tZC0zLFxcbiAgLnJvdyA+IC5jb2wtbWQtNCxcXG4gIC5yb3cgPiAuY29sLW1kLTUsXFxuICAucm93ID4gLmNvbC1tZC02LFxcbiAgLnJvdyA+IC5jb2wtbWQtNyxcXG4gIC5yb3cgPiAuY29sLW1kLTgsXFxuICAucm93ID4gLmNvbC1tZC05LFxcbiAgLnJvdyA+IC5jb2wtbWQtMTAsXFxuICAucm93ID4gLmNvbC1tZC0xMSxcXG4gIC5yb3cgPiAuY29sLW1kLTEyLFxcbiAgLmZsZXggPiAuY29sLW1kLFxcbiAgLmZsZXggPiAuY29sLW1kLWF1dG8sXFxuICAuZmxleCA+IC5jb2wtbWQtZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC1tZC0wLFxcbiAgLmZsZXggPiAuY29sLW1kLTEsXFxuICAuZmxleCA+IC5jb2wtbWQtMixcXG4gIC5mbGV4ID4gLmNvbC1tZC0zLFxcbiAgLmZsZXggPiAuY29sLW1kLTQsXFxuICAuZmxleCA+IC5jb2wtbWQtNSxcXG4gIC5mbGV4ID4gLmNvbC1tZC02LFxcbiAgLmZsZXggPiAuY29sLW1kLTcsXFxuICAuZmxleCA+IC5jb2wtbWQtOCxcXG4gIC5mbGV4ID4gLmNvbC1tZC05LFxcbiAgLmZsZXggPiAuY29sLW1kLTEwLFxcbiAgLmZsZXggPiAuY29sLW1kLTExLFxcbiAgLmZsZXggPiAuY29sLW1kLTEyIHtcXG4gICAgd2lkdGg6IGF1dG87XFxuICAgIG1pbi13aWR0aDogMDtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQsXFxuICAuY29sdW1uID4gLmNvbC1tZC1hdXRvLFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtZ3JvdyxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTAsXFxuICAuY29sdW1uID4gLmNvbC1tZC0xLFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMixcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTMsXFxuICAuY29sdW1uID4gLmNvbC1tZC00LFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtNSxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTYsXFxuICAuY29sdW1uID4gLmNvbC1tZC03LFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtOCxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTksXFxuICAuY29sdW1uID4gLmNvbC1tZC0xMCxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTExLFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMTIsXFxuICAuZmxleCA+IC5jb2wtbWQsXFxuICAuZmxleCA+IC5jb2wtbWQtYXV0byxcXG4gIC5mbGV4ID4gLmNvbC1tZC1ncm93LFxcbiAgLmZsZXggPiAuY29sLW1kLTAsXFxuICAuZmxleCA+IC5jb2wtbWQtMSxcXG4gIC5mbGV4ID4gLmNvbC1tZC0yLFxcbiAgLmZsZXggPiAuY29sLW1kLTMsXFxuICAuZmxleCA+IC5jb2wtbWQtNCxcXG4gIC5mbGV4ID4gLmNvbC1tZC01LFxcbiAgLmZsZXggPiAuY29sLW1kLTYsXFxuICAuZmxleCA+IC5jb2wtbWQtNyxcXG4gIC5mbGV4ID4gLmNvbC1tZC04LFxcbiAgLmZsZXggPiAuY29sLW1kLTksXFxuICAuZmxleCA+IC5jb2wtbWQtMTAsXFxuICAuZmxleCA+IC5jb2wtbWQtMTEsXFxuICAuZmxleCA+IC5jb2wtbWQtMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIG1pbi1oZWlnaHQ6IDA7XFxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XFxuICB9XFxuICAuY29sLW1kIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTAwMDA7XFxuICAgICAgICAtbXMtZmxleDogMTAwMDAgMSAwJTtcXG4gICAgICAgICAgICBmbGV4OiAxMDAwMCAxIDAlO1xcbiAgfVxcbiAgLmNvbC1tZC1hdXRvLFxcbiAgLmNvbC1tZC0wLFxcbiAgLmNvbC1tZC0xLFxcbiAgLmNvbC1tZC0yLFxcbiAgLmNvbC1tZC0zLFxcbiAgLmNvbC1tZC00LFxcbiAgLmNvbC1tZC01LFxcbiAgLmNvbC1tZC02LFxcbiAgLmNvbC1tZC03LFxcbiAgLmNvbC1tZC04LFxcbiAgLmNvbC1tZC05LFxcbiAgLmNvbC1tZC0xMCxcXG4gIC5jb2wtbWQtMTEsXFxuICAuY29sLW1kLTEyIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcXG4gIH1cXG4gIC5jb2wtbWQtZ3JvdyB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC0wIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC0wIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMCB7XFxuICAgIGhlaWdodDogMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC0xIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC0xIHtcXG4gICAgaGVpZ2h0OiA4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxNi42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC0yIHtcXG4gICAgaGVpZ2h0OiAxNi42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC0zIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMjUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtMyB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC0zIHtcXG4gICAgaGVpZ2h0OiAyNSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtNCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtNCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTQge1xcbiAgICBoZWlnaHQ6IDMzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTUge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA0MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTUge1xcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC01IHtcXG4gICAgaGVpZ2h0OiA0MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC02IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtNiB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC02IHtcXG4gICAgaGVpZ2h0OiA1MCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtNyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtNyB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTcge1xcbiAgICBoZWlnaHQ6IDU4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTgge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTgge1xcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC04IHtcXG4gICAgaGVpZ2h0OiA2Ni42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC05IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNzUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtOSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC05IHtcXG4gICAgaGVpZ2h0OiA3NSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtMTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4My4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTEwIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMTAge1xcbiAgICBoZWlnaHQ6IDgzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTExIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOTEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC0xMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTExIHtcXG4gICAgaGVpZ2h0OiA5MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDEwMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC0xMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMTIge1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcXG4gIC5yb3cgPiAuY29sLWxnLFxcbiAgLnJvdyA+IC5jb2wtbGctYXV0byxcXG4gIC5yb3cgPiAuY29sLWxnLWdyb3csXFxuICAucm93ID4gLmNvbC1sZy0wLFxcbiAgLnJvdyA+IC5jb2wtbGctMSxcXG4gIC5yb3cgPiAuY29sLWxnLTIsXFxuICAucm93ID4gLmNvbC1sZy0zLFxcbiAgLnJvdyA+IC5jb2wtbGctNCxcXG4gIC5yb3cgPiAuY29sLWxnLTUsXFxuICAucm93ID4gLmNvbC1sZy02LFxcbiAgLnJvdyA+IC5jb2wtbGctNyxcXG4gIC5yb3cgPiAuY29sLWxnLTgsXFxuICAucm93ID4gLmNvbC1sZy05LFxcbiAgLnJvdyA+IC5jb2wtbGctMTAsXFxuICAucm93ID4gLmNvbC1sZy0xMSxcXG4gIC5yb3cgPiAuY29sLWxnLTEyLFxcbiAgLmZsZXggPiAuY29sLWxnLFxcbiAgLmZsZXggPiAuY29sLWxnLWF1dG8sXFxuICAuZmxleCA+IC5jb2wtbGctZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC1sZy0wLFxcbiAgLmZsZXggPiAuY29sLWxnLTEsXFxuICAuZmxleCA+IC5jb2wtbGctMixcXG4gIC5mbGV4ID4gLmNvbC1sZy0zLFxcbiAgLmZsZXggPiAuY29sLWxnLTQsXFxuICAuZmxleCA+IC5jb2wtbGctNSxcXG4gIC5mbGV4ID4gLmNvbC1sZy02LFxcbiAgLmZsZXggPiAuY29sLWxnLTcsXFxuICAuZmxleCA+IC5jb2wtbGctOCxcXG4gIC5mbGV4ID4gLmNvbC1sZy05LFxcbiAgLmZsZXggPiAuY29sLWxnLTEwLFxcbiAgLmZsZXggPiAuY29sLWxnLTExLFxcbiAgLmZsZXggPiAuY29sLWxnLTEyIHtcXG4gICAgd2lkdGg6IGF1dG87XFxuICAgIG1pbi13aWR0aDogMDtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGcsXFxuICAuY29sdW1uID4gLmNvbC1sZy1hdXRvLFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctZ3JvdyxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTAsXFxuICAuY29sdW1uID4gLmNvbC1sZy0xLFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMixcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTMsXFxuICAuY29sdW1uID4gLmNvbC1sZy00LFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctNSxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTYsXFxuICAuY29sdW1uID4gLmNvbC1sZy03LFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctOCxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTksXFxuICAuY29sdW1uID4gLmNvbC1sZy0xMCxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTExLFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMTIsXFxuICAuZmxleCA+IC5jb2wtbGcsXFxuICAuZmxleCA+IC5jb2wtbGctYXV0byxcXG4gIC5mbGV4ID4gLmNvbC1sZy1ncm93LFxcbiAgLmZsZXggPiAuY29sLWxnLTAsXFxuICAuZmxleCA+IC5jb2wtbGctMSxcXG4gIC5mbGV4ID4gLmNvbC1sZy0yLFxcbiAgLmZsZXggPiAuY29sLWxnLTMsXFxuICAuZmxleCA+IC5jb2wtbGctNCxcXG4gIC5mbGV4ID4gLmNvbC1sZy01LFxcbiAgLmZsZXggPiAuY29sLWxnLTYsXFxuICAuZmxleCA+IC5jb2wtbGctNyxcXG4gIC5mbGV4ID4gLmNvbC1sZy04LFxcbiAgLmZsZXggPiAuY29sLWxnLTksXFxuICAuZmxleCA+IC5jb2wtbGctMTAsXFxuICAuZmxleCA+IC5jb2wtbGctMTEsXFxuICAuZmxleCA+IC5jb2wtbGctMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIG1pbi1oZWlnaHQ6IDA7XFxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XFxuICB9XFxuICAuY29sLWxnIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTAwMDA7XFxuICAgICAgICAtbXMtZmxleDogMTAwMDAgMSAwJTtcXG4gICAgICAgICAgICBmbGV4OiAxMDAwMCAxIDAlO1xcbiAgfVxcbiAgLmNvbC1sZy1hdXRvLFxcbiAgLmNvbC1sZy0wLFxcbiAgLmNvbC1sZy0xLFxcbiAgLmNvbC1sZy0yLFxcbiAgLmNvbC1sZy0zLFxcbiAgLmNvbC1sZy00LFxcbiAgLmNvbC1sZy01LFxcbiAgLmNvbC1sZy02LFxcbiAgLmNvbC1sZy03LFxcbiAgLmNvbC1sZy04LFxcbiAgLmNvbC1sZy05LFxcbiAgLmNvbC1sZy0xMCxcXG4gIC5jb2wtbGctMTEsXFxuICAuY29sLWxnLTEyIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcXG4gIH1cXG4gIC5jb2wtbGctZ3JvdyB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy0wIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy0wIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMCB7XFxuICAgIGhlaWdodDogMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy0xIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy0xIHtcXG4gICAgaGVpZ2h0OiA4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxNi42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy0yIHtcXG4gICAgaGVpZ2h0OiAxNi42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy0zIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMjUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctMyB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy0zIHtcXG4gICAgaGVpZ2h0OiAyNSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctNCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctNCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTQge1xcbiAgICBoZWlnaHQ6IDMzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTUge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA0MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTUge1xcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy01IHtcXG4gICAgaGVpZ2h0OiA0MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy02IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctNiB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy02IHtcXG4gICAgaGVpZ2h0OiA1MCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctNyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctNyB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTcge1xcbiAgICBoZWlnaHQ6IDU4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTgge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTgge1xcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy04IHtcXG4gICAgaGVpZ2h0OiA2Ni42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy05IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNzUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctOSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy05IHtcXG4gICAgaGVpZ2h0OiA3NSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctMTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4My4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTEwIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMTAge1xcbiAgICBoZWlnaHQ6IDgzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTExIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOTEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy0xMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTExIHtcXG4gICAgaGVpZ2h0OiA5MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDEwMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy0xMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMTIge1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XFxuICAucm93ID4gLmNvbC14bCxcXG4gIC5yb3cgPiAuY29sLXhsLWF1dG8sXFxuICAucm93ID4gLmNvbC14bC1ncm93LFxcbiAgLnJvdyA+IC5jb2wteGwtMCxcXG4gIC5yb3cgPiAuY29sLXhsLTEsXFxuICAucm93ID4gLmNvbC14bC0yLFxcbiAgLnJvdyA+IC5jb2wteGwtMyxcXG4gIC5yb3cgPiAuY29sLXhsLTQsXFxuICAucm93ID4gLmNvbC14bC01LFxcbiAgLnJvdyA+IC5jb2wteGwtNixcXG4gIC5yb3cgPiAuY29sLXhsLTcsXFxuICAucm93ID4gLmNvbC14bC04LFxcbiAgLnJvdyA+IC5jb2wteGwtOSxcXG4gIC5yb3cgPiAuY29sLXhsLTEwLFxcbiAgLnJvdyA+IC5jb2wteGwtMTEsXFxuICAucm93ID4gLmNvbC14bC0xMixcXG4gIC5mbGV4ID4gLmNvbC14bCxcXG4gIC5mbGV4ID4gLmNvbC14bC1hdXRvLFxcbiAgLmZsZXggPiAuY29sLXhsLWdyb3csXFxuICAuZmxleCA+IC5jb2wteGwtMCxcXG4gIC5mbGV4ID4gLmNvbC14bC0xLFxcbiAgLmZsZXggPiAuY29sLXhsLTIsXFxuICAuZmxleCA+IC5jb2wteGwtMyxcXG4gIC5mbGV4ID4gLmNvbC14bC00LFxcbiAgLmZsZXggPiAuY29sLXhsLTUsXFxuICAuZmxleCA+IC5jb2wteGwtNixcXG4gIC5mbGV4ID4gLmNvbC14bC03LFxcbiAgLmZsZXggPiAuY29sLXhsLTgsXFxuICAuZmxleCA+IC5jb2wteGwtOSxcXG4gIC5mbGV4ID4gLmNvbC14bC0xMCxcXG4gIC5mbGV4ID4gLmNvbC14bC0xMSxcXG4gIC5mbGV4ID4gLmNvbC14bC0xMiB7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICBtaW4td2lkdGg6IDA7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtYXV0byxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLWdyb3csXFxuICAuY29sdW1uID4gLmNvbC14bC0wLFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMSxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTIsXFxuICAuY29sdW1uID4gLmNvbC14bC0zLFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtNCxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTUsXFxuICAuY29sdW1uID4gLmNvbC14bC02LFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtNyxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTgsXFxuICAuY29sdW1uID4gLmNvbC14bC05LFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMTAsXFxuICAuY29sdW1uID4gLmNvbC14bC0xMSxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTEyLFxcbiAgLmZsZXggPiAuY29sLXhsLFxcbiAgLmZsZXggPiAuY29sLXhsLWF1dG8sXFxuICAuZmxleCA+IC5jb2wteGwtZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC14bC0wLFxcbiAgLmZsZXggPiAuY29sLXhsLTEsXFxuICAuZmxleCA+IC5jb2wteGwtMixcXG4gIC5mbGV4ID4gLmNvbC14bC0zLFxcbiAgLmZsZXggPiAuY29sLXhsLTQsXFxuICAuZmxleCA+IC5jb2wteGwtNSxcXG4gIC5mbGV4ID4gLmNvbC14bC02LFxcbiAgLmZsZXggPiAuY29sLXhsLTcsXFxuICAuZmxleCA+IC5jb2wteGwtOCxcXG4gIC5mbGV4ID4gLmNvbC14bC05LFxcbiAgLmZsZXggPiAuY29sLXhsLTEwLFxcbiAgLmZsZXggPiAuY29sLXhsLTExLFxcbiAgLmZsZXggPiAuY29sLXhsLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICBtaW4taGVpZ2h0OiAwO1xcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbC14bCB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDEwMDAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDEwMDAwIDEgMCU7XFxuICAgICAgICAgICAgZmxleDogMTAwMDAgMSAwJTtcXG4gIH1cXG4gIC5jb2wteGwtYXV0byxcXG4gIC5jb2wteGwtMCxcXG4gIC5jb2wteGwtMSxcXG4gIC5jb2wteGwtMixcXG4gIC5jb2wteGwtMyxcXG4gIC5jb2wteGwtNCxcXG4gIC5jb2wteGwtNSxcXG4gIC5jb2wteGwtNixcXG4gIC5jb2wteGwtNyxcXG4gIC5jb2wteGwtOCxcXG4gIC5jb2wteGwtOSxcXG4gIC5jb2wteGwtMTAsXFxuICAuY29sLXhsLTExLFxcbiAgLmNvbC14bC0xMiB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XFxuICB9XFxuICAuY29sLXhsLWdyb3cge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXg6IDEgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTAge1xcbiAgICBoZWlnaHQ6IDAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMSB7XFxuICAgIGhlaWdodDogOC4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC0yIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTYuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC0yIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMiB7XFxuICAgIGhlaWdodDogMTYuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtMyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDI1JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTMge1xcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMyB7XFxuICAgIGhlaWdodDogMjUlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTQge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTQge1xcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC00IHtcXG4gICAgaGVpZ2h0OiAzMy4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC01IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNDEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC01IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtNSB7XFxuICAgIGhlaWdodDogNDEuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtNiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDUwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTYge1xcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtNiB7XFxuICAgIGhlaWdodDogNTAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTcge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTcge1xcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC03IHtcXG4gICAgaGVpZ2h0OiA1OC4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC04IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNjYuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC04IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtOCB7XFxuICAgIGhlaWdodDogNjYuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtOSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDc1JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTkge1xcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtOSB7XFxuICAgIGhlaWdodDogNzUlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTEwIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogODMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC0xMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTEwIHtcXG4gICAgaGVpZ2h0OiA4My4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC0xMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDkxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtMTEge1xcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC0xMSB7XFxuICAgIGhlaWdodDogOTEuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtMTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTEyIHtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG59XFxuLmJhY2tkcm9wIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMTAwdnc7XFxuICBoZWlnaHQ6IDEwMHZoO1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yOHMgZWFzZS1pbjtcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yOHMgZWFzZS1pbjtcXG59XFxuLmJhY2tkcm9wLmFjdGl2ZSB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4zKTtcXG59XFxuLnJvdW5kLWJvcmRlcnMge1xcbiAgYm9yZGVyLXJhZGl1czogM3B4ICFpbXBvcnRhbnQ7XFxufVxcbi5nZW5lcmljLW1hcmdpbixcXG4uZ3JvdXAgPiAqIHtcXG4gIG1hcmdpbjogNXB4O1xcbn1cXG4ubm8tdHJhbnNpdGlvbiB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcXG4gIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcXG59XFxuLnRyYW5zaXRpb24tMCB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDBzICFpbXBvcnRhbnQ7XFxuICB0cmFuc2l0aW9uOiAwcyAhaW1wb3J0YW50O1xcbn1cXG4uZ2xvc3N5IHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGZyb20ocmdiYSgyNTUsMjU1LDI1NSwwLjMpKSwgY29sb3Itc3RvcCg1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMCkpLCBjb2xvci1zdG9wKDUxJSwgcmdiYSgwLDAsMCwwLjEyKSksIHRvKHJnYmEoMCwwLDAsMC4wNCkpKSAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgyNTUsMjU1LDI1NSwwLjMpLCByZ2JhKDI1NSwyNTUsMjU1LDApIDUwJSwgcmdiYSgwLDAsMCwwLjEyKSA1MSUsIHJnYmEoMCwwLDAsMC4wNCkpICFpbXBvcnRhbnQ7XFxufVxcbi5xLXBsYWNlaG9sZGVyOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgb3BhY2l0eTogMC41O1xcbn1cXG4ucS1wbGFjZWhvbGRlcjo6LW1vei1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIG9wYWNpdHk6IDAuNTtcXG59XFxuLnEtcGxhY2Vob2xkZXI6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgb3BhY2l0eTogMC41O1xcbn1cXG4ucS1ib2R5LWZ1bGxzY3JlZW4tbWl4aW4sXFxuLnEtYm9keS1wcmV2ZW50LXNjcm9sbCB7XFxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XFxufVxcbi5xLW5vLWlucHV0LXNwaW5uZXIge1xcbiAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQgIWltcG9ydGFudDtcXG59XFxuLnEtbm8taW5wdXQtc3Bpbm5lcjo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcXG4ucS1uby1pbnB1dC1zcGlubmVyOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG4gIG1hcmdpbjogMDtcXG59XFxuYS5xLWxpbmsge1xcbiAgb3V0bGluZTogMDtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbn1cXG4ucS1zZWxlY3QtaGlnaGxpZ2h0IHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMTg5LDE4OSwxODksMC41KSAhaW1wb3J0YW50O1xcbn1cXG4uaGlnaGxpZ2h0LWFuZC1mYWRlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLWhpZ2hsaWdodCAycyAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtaGlnaGxpZ2h0IDJzIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi50cmFuc2l0aW9uLWdlbmVyaWMge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcztcXG4gIHRyYW5zaXRpb246IGFsbCAwLjNzO1xcbn1cXG4uYW5pbWF0ZS1zcGluLFxcbi5hbmltYXRlLXNwaW4tcmV2ZXJzZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1zcGluIDJzIGluZmluaXRlIGxpbmVhciAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXIgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLmFuaW1hdGUtc3Bpbi1yZXZlcnNlIHtcXG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IHJldmVyc2U7XFxufVxcbi5hbmltYXRlLWJsaW5rIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLWJsaW5rIDFzIHN0ZXBzKDUsIHN0YXJ0KSBpbmZpbml0ZSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtYmxpbmsgMXMgc3RlcHMoNSwgc3RhcnQpIGluZmluaXRlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5hbmltYXRlLXBvcCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1wb3AgMC4ycyAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtcG9wIDAuMnMgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLmFuaW1hdGUtc2NhbGUge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtc2NhbGUgMC4ycyAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtc2NhbGUgMC4ycyAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uYW5pbWF0ZS1mYWRlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLWZhZGUgMC4ycyAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtZmFkZSAwLjJzIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5hbmltYXRlLWJvdW5jZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1ib3VuY2UgMnMgaW5maW5pdGUgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLWJvdW5jZSAycyBpbmZpbml0ZSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uYW5pbWF0ZS1zaGFrZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1zaGFrZSAwLjE1cztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXNoYWtlIDAuMTVzO1xcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtcXG4gICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7XFxufVxcbi5hbmltYXRlLXBvcHVwLXVwLFxcbi5hbmltYXRlLXBvcHVwLWRvd24ge1xcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG59XFxuLmFuaW1hdGUtcG9wdXAtdXAgPiAqLFxcbi5hbmltYXRlLXBvcHVwLWRvd24gPiAqIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLWZhZGUgMC44MnMgY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44Nik7XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1mYWRlIDAuODJzIGN1YmljLWJlemllcigwLjc4NSwgMC4xMzUsIDAuMTUsIDAuODYpO1xcbn1cXG4uYW5pbWF0ZS1wb3B1cC1kb3duIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXBvcHVwLWRvd24gMC4zNnMgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXBvcHVwLWRvd24gMC4zNnMgLyogcnRsOmlnbm9yZSAqLztcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3AgMHB4IC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wIDBweCAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uYW5pbWF0ZS1wb3B1cC11cCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1wb3B1cC11cCAwLjM2cyAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtcG9wdXAtdXAgMC4zNnMgLyogcnRsOmlnbm9yZSAqLztcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b20gMHB4IC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tIDBweCAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uYW5pbWF0ZS1mYWRlLWxlZnQge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtZmFkZSAwLjM2cyBjdWJpYy1iZXppZXIoMC43ODUsIDAuMTM1LCAwLjE1LCAwLjg2KSwgcS1zbGlkZS1sZWZ0IDAuMzZzIGVhc2U7XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1mYWRlIDAuMzZzIGN1YmljLWJlemllcigwLjc4NSwgMC4xMzUsIDAuMTUsIDAuODYpLCBxLXNsaWRlLWxlZnQgMC4zNnMgZWFzZTtcXG59XFxuLmFuaW1hdGUtZmFkZS1yaWdodCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1mYWRlIDAuMzZzIGN1YmljLWJlemllcigwLjc4NSwgMC4xMzUsIDAuMTUsIDAuODYpLCBxLXNsaWRlLXJpZ2h0IDAuMzZzIGVhc2U7XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1mYWRlIDAuMzZzIGN1YmljLWJlemllcigwLjc4NSwgMC4xMzUsIDAuMTUsIDAuODYpLCBxLXNsaWRlLXJpZ2h0IDAuMzZzIGVhc2U7XFxufVxcbi5hbmltYXRlZCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XFxuICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XFxuICAgICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XFxufVxcbi5hbmltYXRlZC5pbmZpbml0ZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xcbiAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcXG59XFxuLmFuaW1hdGVkLmhpbmdlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcXG4gICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcXG59XFxuLmFuaW1hdGVkLmZsaXBPdXRYLFxcbi5hbmltYXRlZC5mbGlwT3V0WSxcXG4uYW5pbWF0ZWQuYm91bmNlSW4sXFxuLmFuaW1hdGVkLmJvdW5jZU91dCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMC43NXM7XFxuICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC43NXM7XFxufVxcbi5ub24tc2VsZWN0YWJsZSB7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lICFpbXBvcnRhbnQ7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lICFpbXBvcnRhbnQ7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lICFpbXBvcnRhbnQ7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi5zY3JvbGwge1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxufVxcbi5zY3JvbGwsXFxuLnNjcm9sbC14LFxcbi5zY3JvbGwteSB7XFxuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XFxuICB3aWxsLWNoYW5nZTogc2Nyb2xsLXBvc2l0aW9uO1xcbn1cXG4uc2Nyb2xsLXgge1xcbiAgb3ZlcmZsb3cteDogYXV0bztcXG59XFxuLnNjcm9sbC15IHtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxufVxcbi5uby1zY3JvbGwge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xcbn1cXG4ubm8tcG9pbnRlci1ldmVudHMge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuLmFsbC1wb2ludGVyLWV2ZW50cyB7XFxuICBwb2ludGVyLWV2ZW50czogYWxsICFpbXBvcnRhbnQ7XFxufVxcbi5jdXJzb3ItcG9pbnRlciB7XFxuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcXG59XFxuLmN1cnNvci1ub3QtYWxsb3dlZCB7XFxuICBjdXJzb3I6IG5vdC1hbGxvd2VkICFpbXBvcnRhbnQ7XFxufVxcbi5jdXJzb3ItaW5oZXJpdCB7XFxuICBjdXJzb3I6IGluaGVyaXQgIWltcG9ydGFudDtcXG59XFxuLnJvdGF0ZS00NSB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnJvdGF0ZS05MCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnJvdGF0ZS0xMzUge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnJvdGF0ZS0xODAge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnJvdGF0ZS0yMDUge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyMDVkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDIwNWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnJvdGF0ZS0yNzAge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnJvdGF0ZS0zMTUge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzMTVkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMxNWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLmZsaXAtaG9yaXpvbnRhbCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcXG59XFxuLmZsaXAtdmVydGljYWwge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XFxufVxcbi5mbG9hdC1sZWZ0IHtcXG4gIGZsb2F0OiBsZWZ0O1xcbn1cXG4uZmxvYXQtcmlnaHQge1xcbiAgZmxvYXQ6IHJpZ2h0O1xcbn1cXG4ucmVsYXRpdmUtcG9zaXRpb24ge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4uZml4ZWQsXFxuLmZ1bGxzY3JlZW4sXFxuLmZpeGVkLWNlbnRlcixcXG4uZml4ZWQtYm90dG9tLFxcbi5maXhlZC1sZWZ0LFxcbi5maXhlZC1yaWdodCxcXG4uZml4ZWQtdG9wLFxcbi5maXhlZC10b3AtbGVmdCxcXG4uZml4ZWQtdG9wLXJpZ2h0LFxcbi5maXhlZC1ib3R0b20tbGVmdCxcXG4uZml4ZWQtYm90dG9tLXJpZ2h0IHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG59XFxuLmFic29sdXRlLFxcbi5hYnNvbHV0ZS1mdWxsLFxcbi5hYnNvbHV0ZS1jZW50ZXIsXFxuLmFic29sdXRlLWJvdHRvbSxcXG4uYWJzb2x1dGUtbGVmdCxcXG4uYWJzb2x1dGUtcmlnaHQsXFxuLmFic29sdXRlLXRvcCxcXG4uYWJzb2x1dGUtdG9wLWxlZnQsXFxuLmFic29sdXRlLXRvcC1yaWdodCxcXG4uYWJzb2x1dGUtYm90dG9tLWxlZnQsXFxuLmFic29sdXRlLWJvdHRvbS1yaWdodCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxufVxcbi5maXhlZC10b3AsXFxuLmFic29sdXRlLXRvcCB7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxufVxcbi5maXhlZC1yaWdodCxcXG4uYWJzb2x1dGUtcmlnaHQge1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxufVxcbi5maXhlZC1ib3R0b20sXFxuLmFic29sdXRlLWJvdHRvbSB7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxufVxcbi5maXhlZC1sZWZ0LFxcbi5hYnNvbHV0ZS1sZWZ0IHtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxufVxcbi5maXhlZC10b3AtbGVmdCxcXG4uYWJzb2x1dGUtdG9wLWxlZnQge1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG59XFxuLmZpeGVkLXRvcC1yaWdodCxcXG4uYWJzb2x1dGUtdG9wLXJpZ2h0IHtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbn1cXG4uZml4ZWQtYm90dG9tLWxlZnQsXFxuLmFic29sdXRlLWJvdHRvbS1sZWZ0IHtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxufVxcbi5maXhlZC1ib3R0b20tcmlnaHQsXFxuLmFic29sdXRlLWJvdHRvbS1yaWdodCB7XFxuICBib3R0b206IDA7XFxuICByaWdodDogMDtcXG59XFxuLmZ1bGxzY3JlZW4ge1xcbiAgei1pbmRleDogNjAwMDtcXG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcXG4gIG1heC13aWR0aDogMTAwdnc7XFxuICBtYXgtaGVpZ2h0OiAxMDB2aDtcXG59XFxuLmFic29sdXRlLWZ1bGwsXFxuLmZ1bGxzY3JlZW4ge1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbn1cXG4uZml4ZWQtY2VudGVyLFxcbi5hYnNvbHV0ZS1jZW50ZXIge1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcXG59XFxuLnZlcnRpY2FsLXRvcCB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogdG9wICFpbXBvcnRhbnQ7XFxufVxcbi52ZXJ0aWNhbC1taWRkbGUge1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xcbn1cXG4udmVydGljYWwtYm90dG9tIHtcXG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b20gIWltcG9ydGFudDtcXG59XFxuLm9uLWxlZnQge1xcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xcbn1cXG4ub24tcmlnaHQge1xcbiAgbWFyZ2luLWxlZnQ6IDEycHg7XFxufVxcbi5xLXJpcHBsZS1jb250YWluZXIge1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHotaW5kZXg6IDA7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLnEtcmlwcGxlLWFuaW1hdGlvbiB7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwIC8qIHJ0bDppZ25vcmUgKi87XFxuICBvcGFjaXR5OiAwO1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3Mgb3BhY2l0eSBjdWJpYy1iZXppZXIoMC4yLCAwLjQsIDAuNCwgMC4xKSwgMC4zcyAtd2Via2l0LXRyYW5zZm9ybSBjdWJpYy1iZXppZXIoMC4yLCAwLjQsIDAuNCwgMC45KTtcXG4gIHRyYW5zaXRpb246IDAuM3Mgb3BhY2l0eSBjdWJpYy1iZXppZXIoMC4yLCAwLjQsIDAuNCwgMC4xKSwgMC4zcyAtd2Via2l0LXRyYW5zZm9ybSBjdWJpYy1iZXppZXIoMC4yLCAwLjQsIDAuNCwgMC45KTtcXG4gIHRyYW5zaXRpb246IDAuM3MgdHJhbnNmb3JtIGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjkpLCAwLjNzIG9wYWNpdHkgY3ViaWMtYmV6aWVyKDAuMiwgMC40LCAwLjQsIDAuMSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIHRyYW5zZm9ybSBjdWJpYy1iZXppZXIoMC4yLCAwLjQsIDAuNCwgMC45KSwgMC4zcyBvcGFjaXR5IGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjEpLCAwLjNzIC13ZWJraXQtdHJhbnNmb3JtIGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjkpO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcXG59XFxuLnEtcmlwcGxlLWFuaW1hdGlvbi1lbnRlciB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG5vbmU7XFxuICB0cmFuc2l0aW9uOiBub25lO1xcbn1cXG4ucS1yaXBwbGUtYW5pbWF0aW9uLXZpc2libGUge1xcbiAgb3BhY2l0eTogMC4xNTtcXG59XFxuLnEtcmFkaWFsLXJpcHBsZSB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IC01MCU7XFxuICBsZWZ0OiAtNTAlO1xcbiAgd2lkdGg6IDIwMCU7XFxuICBoZWlnaHQ6IDIwMCU7XFxufVxcbi5xLXJhZGlhbC1yaXBwbGU6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIGN1cnJlbnRDb2xvciAxMCUsIHRyYW5zcGFyZW50IDEwLjAxJSk7XFxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEwLCAxMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMTAsIDEwKTtcXG4gIG9wYWNpdHk6IDA7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNXM7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDFzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjVzO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMsIG9wYWNpdHkgMXM7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cywgb3BhY2l0eSAxcywgLXdlYmtpdC10cmFuc2Zvcm0gMC41cztcXG59XFxuLnEtcmFkaWFsLXJpcHBsZS5hY3RpdmU6YWZ0ZXIge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAsIDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAsIDApO1xcbiAgb3BhY2l0eTogMC40O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwcztcXG4gIHRyYW5zaXRpb246IDBzO1xcbn1cXG46cm9vdCB7XFxuICAtLXEtc2l6ZS14czogMDtcXG4gIC0tcS1zaXplLXNtOiA1NzZweDtcXG4gIC0tcS1zaXplLW1kOiA3NjhweDtcXG4gIC0tcS1zaXplLWxnOiA5OTJweDtcXG4gIC0tcS1zaXplLXhsOiAxMjAwcHg7XFxufVxcbi5maXQge1xcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcXG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xcbn1cXG4uZnVsbC1oZWlnaHQge1xcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XFxufVxcbi5mdWxsLXdpZHRoIHtcXG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XFxuICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xcbiAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XFxufVxcbi53aW5kb3ctaGVpZ2h0IHtcXG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcXG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcXG4gIGhlaWdodDogMTAwdmggIWltcG9ydGFudDtcXG59XFxuLndpbmRvdy13aWR0aCB7XFxuICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xcbiAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XFxuICB3aWR0aDogMTAwdncgIWltcG9ydGFudDtcXG59XFxuLmJsb2NrIHtcXG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XFxufVxcbi5pbmxpbmUtYmxvY2sge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XFxufVxcbi5xLXBhLW5vbmUge1xcbiAgcGFkZGluZzogMCAwO1xcbn1cXG4ucS1wbC1ub25lLFxcbi5xLXB4LW5vbmUge1xcbiAgcGFkZGluZy1sZWZ0OiAwO1xcbn1cXG4ucS1wci1ub25lLFxcbi5xLXB4LW5vbmUge1xcbiAgcGFkZGluZy1yaWdodDogMDtcXG59XFxuLnEtcHQtbm9uZSxcXG4ucS1weS1ub25lIHtcXG4gIHBhZGRpbmctdG9wOiAwO1xcbn1cXG4ucS1wYi1ub25lLFxcbi5xLXB5LW5vbmUge1xcbiAgcGFkZGluZy1ib3R0b206IDA7XFxufVxcbi5xLW1hLW5vbmUge1xcbiAgbWFyZ2luOiAwIDA7XFxufVxcbi5xLW1sLW5vbmUsXFxuLnEtbXgtbm9uZSB7XFxuICBtYXJnaW4tbGVmdDogMDtcXG59XFxuLnEtbXItbm9uZSxcXG4ucS1teC1ub25lIHtcXG4gIG1hcmdpbi1yaWdodDogMDtcXG59XFxuLnEtbXQtbm9uZSxcXG4ucS1teS1ub25lIHtcXG4gIG1hcmdpbi10b3A6IDA7XFxufVxcbi5xLW1iLW5vbmUsXFxuLnEtbXktbm9uZSB7XFxuICBtYXJnaW4tYm90dG9tOiAwO1xcbn1cXG4ucS1wYS14cyB7XFxuICBwYWRkaW5nOiA0cHggNHB4O1xcbn1cXG4ucS1wbC14cyxcXG4ucS1weC14cyB7XFxuICBwYWRkaW5nLWxlZnQ6IDRweDtcXG59XFxuLnEtcHIteHMsXFxuLnEtcHgteHMge1xcbiAgcGFkZGluZy1yaWdodDogNHB4O1xcbn1cXG4ucS1wdC14cyxcXG4ucS1weS14cyB7XFxuICBwYWRkaW5nLXRvcDogNHB4O1xcbn1cXG4ucS1wYi14cyxcXG4ucS1weS14cyB7XFxuICBwYWRkaW5nLWJvdHRvbTogNHB4O1xcbn1cXG4ucS1tYS14cyB7XFxuICBtYXJnaW46IDRweCA0cHg7XFxufVxcbi5xLW1sLXhzLFxcbi5xLW14LXhzIHtcXG4gIG1hcmdpbi1sZWZ0OiA0cHg7XFxufVxcbi5xLW1yLXhzLFxcbi5xLW14LXhzIHtcXG4gIG1hcmdpbi1yaWdodDogNHB4O1xcbn1cXG4ucS1tdC14cyxcXG4ucS1teS14cyB7XFxuICBtYXJnaW4tdG9wOiA0cHg7XFxufVxcbi5xLW1iLXhzLFxcbi5xLW15LXhzIHtcXG4gIG1hcmdpbi1ib3R0b206IDRweDtcXG59XFxuLnEtcGEtc20ge1xcbiAgcGFkZGluZzogOHB4IDhweDtcXG59XFxuLnEtcGwtc20sXFxuLnEtcHgtc20ge1xcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XFxufVxcbi5xLXByLXNtLFxcbi5xLXB4LXNtIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcXG59XFxuLnEtcHQtc20sXFxuLnEtcHktc20ge1xcbiAgcGFkZGluZy10b3A6IDhweDtcXG59XFxuLnEtcGItc20sXFxuLnEtcHktc20ge1xcbiAgcGFkZGluZy1ib3R0b206IDhweDtcXG59XFxuLnEtbWEtc20ge1xcbiAgbWFyZ2luOiA4cHggOHB4O1xcbn1cXG4ucS1tbC1zbSxcXG4ucS1teC1zbSB7XFxuICBtYXJnaW4tbGVmdDogOHB4O1xcbn1cXG4ucS1tci1zbSxcXG4ucS1teC1zbSB7XFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcXG59XFxuLnEtbXQtc20sXFxuLnEtbXktc20ge1xcbiAgbWFyZ2luLXRvcDogOHB4O1xcbn1cXG4ucS1tYi1zbSxcXG4ucS1teS1zbSB7XFxuICBtYXJnaW4tYm90dG9tOiA4cHg7XFxufVxcbi5xLXBhLW1kIHtcXG4gIHBhZGRpbmc6IDE2cHggMTZweDtcXG59XFxuLnEtcGwtbWQsXFxuLnEtcHgtbWQge1xcbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xcbn1cXG4ucS1wci1tZCxcXG4ucS1weC1tZCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xcbn1cXG4ucS1wdC1tZCxcXG4ucS1weS1tZCB7XFxuICBwYWRkaW5nLXRvcDogMTZweDtcXG59XFxuLnEtcGItbWQsXFxuLnEtcHktbWQge1xcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7XFxufVxcbi5xLW1hLW1kIHtcXG4gIG1hcmdpbjogMTZweCAxNnB4O1xcbn1cXG4ucS1tbC1tZCxcXG4ucS1teC1tZCB7XFxuICBtYXJnaW4tbGVmdDogMTZweDtcXG59XFxuLnEtbXItbWQsXFxuLnEtbXgtbWQge1xcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xcbn1cXG4ucS1tdC1tZCxcXG4ucS1teS1tZCB7XFxuICBtYXJnaW4tdG9wOiAxNnB4O1xcbn1cXG4ucS1tYi1tZCxcXG4ucS1teS1tZCB7XFxuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xcbn1cXG4ucS1wYS1sZyB7XFxuICBwYWRkaW5nOiAyNHB4IDI0cHg7XFxufVxcbi5xLXBsLWxnLFxcbi5xLXB4LWxnIHtcXG4gIHBhZGRpbmctbGVmdDogMjRweDtcXG59XFxuLnEtcHItbGcsXFxuLnEtcHgtbGcge1xcbiAgcGFkZGluZy1yaWdodDogMjRweDtcXG59XFxuLnEtcHQtbGcsXFxuLnEtcHktbGcge1xcbiAgcGFkZGluZy10b3A6IDI0cHg7XFxufVxcbi5xLXBiLWxnLFxcbi5xLXB5LWxnIHtcXG4gIHBhZGRpbmctYm90dG9tOiAyNHB4O1xcbn1cXG4ucS1tYS1sZyB7XFxuICBtYXJnaW46IDI0cHggMjRweDtcXG59XFxuLnEtbWwtbGcsXFxuLnEtbXgtbGcge1xcbiAgbWFyZ2luLWxlZnQ6IDI0cHg7XFxufVxcbi5xLW1yLWxnLFxcbi5xLW14LWxnIHtcXG4gIG1hcmdpbi1yaWdodDogMjRweDtcXG59XFxuLnEtbXQtbGcsXFxuLnEtbXktbGcge1xcbiAgbWFyZ2luLXRvcDogMjRweDtcXG59XFxuLnEtbWItbGcsXFxuLnEtbXktbGcge1xcbiAgbWFyZ2luLWJvdHRvbTogMjRweDtcXG59XFxuLnEtcGEteGwge1xcbiAgcGFkZGluZzogNDhweCA0OHB4O1xcbn1cXG4ucS1wbC14bCxcXG4ucS1weC14bCB7XFxuICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XFxufVxcbi5xLXByLXhsLFxcbi5xLXB4LXhsIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDQ4cHg7XFxufVxcbi5xLXB0LXhsLFxcbi5xLXB5LXhsIHtcXG4gIHBhZGRpbmctdG9wOiA0OHB4O1xcbn1cXG4ucS1wYi14bCxcXG4ucS1weS14bCB7XFxuICBwYWRkaW5nLWJvdHRvbTogNDhweDtcXG59XFxuLnEtbWEteGwge1xcbiAgbWFyZ2luOiA0OHB4IDQ4cHg7XFxufVxcbi5xLW1sLXhsLFxcbi5xLW14LXhsIHtcXG4gIG1hcmdpbi1sZWZ0OiA0OHB4O1xcbn1cXG4ucS1tci14bCxcXG4ucS1teC14bCB7XFxuICBtYXJnaW4tcmlnaHQ6IDQ4cHg7XFxufVxcbi5xLW10LXhsLFxcbi5xLW15LXhsIHtcXG4gIG1hcmdpbi10b3A6IDQ4cHg7XFxufVxcbi5xLW1iLXhsLFxcbi5xLW15LXhsIHtcXG4gIG1hcmdpbi1ib3R0b206IDQ4cHg7XFxufVxcbi5xLW1sLWF1dG8sXFxuLnEtbXgtYXV0byB7XFxuICBtYXJnaW4tbGVmdDogYXV0bztcXG59XFxuLnEtbXItYXV0byxcXG4ucS1teC1hdXRvIHtcXG4gIG1hcmdpbi1yaWdodDogYXV0bztcXG59XFxuLnEtbXktZm9ybSB7XFxuICBtYXJnaW4tdG9wOiAxNnB4O1xcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbn1cXG4ucS10b3VjaCB7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgdXNlci1kcmFnOiBub25lO1xcbiAgLWtodG1sLXVzZXItZHJhZzogbm9uZTtcXG4gIC13ZWJraXQtdXNlci1kcmFnOiBub25lO1xcbn1cXG4ucS10b3VjaC14IHtcXG4gIC1tcy10b3VjaC1hY3Rpb246IHBhbi14O1xcbiAgICAgIHRvdWNoLWFjdGlvbjogcGFuLXg7XFxufVxcbi5xLXRvdWNoLXkge1xcbiAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XFxuICAgICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcXG59XFxuYm9keSB7XFxuICBtaW4td2lkdGg6IDEwMHB4O1xcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nLCAnLWFwcGxlLXN5c3RlbScsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XFxuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gIGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICBjb2xvcjogIzBjMGMwYztcXG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xcbn1cXG5oMSB7XFxuICBmb250LXNpemU6IDExMnB4O1xcbiAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjEyO1xcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjA0ZW07XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICBoMSB7XFxuICAgIGZvbnQtc2l6ZTogNjcuMnB4O1xcbiAgfVxcbn1cXG5oMiB7XFxuICBmb250LXNpemU6IDU2cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XFxuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIGgyIHtcXG4gICAgZm9udC1zaXplOiAzMy42cHg7XFxuICB9XFxufVxcbmgzIHtcXG4gIGZvbnQtc2l6ZTogNDVweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBsaW5lLWhlaWdodDogNDhweDtcXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICBoMyB7XFxuICAgIGZvbnQtc2l6ZTogMjdweDtcXG4gIH1cXG59XFxuaDQge1xcbiAgZm9udC1zaXplOiAzNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxpbmUtaGVpZ2h0OiA0MHB4O1xcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIGg0IHtcXG4gICAgZm9udC1zaXplOiAyMC40cHg7XFxuICB9XFxufVxcbmg1IHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBsaW5lLWhlaWdodDogMzJweDtcXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICBoNSB7XFxuICAgIGZvbnQtc2l6ZTogMTQuMzk5OTk5OTk5OTk5OTk5cHg7XFxuICB9XFxufVxcbmg2IHtcXG4gIGZvbnQtc2l6ZTogMjBweDtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBsaW5lLWhlaWdodDogMS4xMjtcXG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICBoNiB7XFxuICAgIGZvbnQtc2l6ZTogMTJweDtcXG4gIH1cXG59XFxuLnEtZGlzcGxheS00LW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC41NDtcXG59XFxuLnEtZGlzcGxheS00IHtcXG4gIGZvbnQtc2l6ZTogMTEycHg7XFxuICBmb250LXdlaWdodDogMzAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuMTI7XFxuICBsZXR0ZXItc3BhY2luZzogLTAuMDRlbTtcXG59XFxuLnEtZGlzcGxheS0zLW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC41NDtcXG59XFxuLnEtZGlzcGxheS0zIHtcXG4gIGZvbnQtc2l6ZTogNTZweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBsaW5lLWhlaWdodDogMS4zNTtcXG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xcbn1cXG4ucS1kaXNwbGF5LTItb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjU0O1xcbn1cXG4ucS1kaXNwbGF5LTIge1xcbiAgZm9udC1zaXplOiA0NXB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG59XFxuLnEtZGlzcGxheS0xLW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC41NDtcXG59XFxuLnEtZGlzcGxheS0xIHtcXG4gIGZvbnQtc2l6ZTogMzRweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBsaW5lLWhlaWdodDogNDBweDtcXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxufVxcbi5xLWhlYWRsaW5lLW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC44NztcXG59XFxuLnEtaGVhZGxpbmUge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG59XFxuLnEtdGl0bGUtb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjg3O1xcbn1cXG4ucS10aXRsZSB7XFxuICBmb250LXNpemU6IDIwcHg7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuMTI7XFxuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xcbn1cXG4ucS1zdWJoZWFkaW5nLW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC44NztcXG59XFxuLnEtc3ViaGVhZGluZyB7XFxuICBmb250LXNpemU6IDE2cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbn1cXG4ucS1ib2R5LTItb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjg3O1xcbn1cXG4ucS1ib2R5LTIge1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG59XFxuLnEtYm9keS0xLW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC44NztcXG59XFxuLnEtYm9keS0xIHtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxufVxcbi5xLWNhcHRpb24tb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjU0O1xcbn1cXG4ucS1jYXB0aW9uIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxufVxcbnAge1xcbiAgbWFyZ2luOiAwIDAgMTZweDtcXG59XFxuLmNhcHRpb24ge1xcbiAgY29sb3I6ICM0MjQyNDI7XFxuICBsZXR0ZXItc3BhY2luZzogMDtcXG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbiAgcGFkZGluZzogMDtcXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XFxufVxcbi51cHBlcmNhc2Uge1xcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcXG59XFxuLmxvd2VyY2FzZSB7XFxuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xcbn1cXG4uY2FwaXRhbGl6ZSB7XFxuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcXG59XFxuLnRleHQtY2VudGVyIHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuLnRleHQtbGVmdCB7XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbn1cXG4udGV4dC1yaWdodCB7XFxuICB0ZXh0LWFsaWduOiByaWdodDtcXG59XFxuLnRleHQtanVzdGlmeSB7XFxuICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xcbiAgLXdlYmtpdC1oeXBoZW5zOiBhdXRvO1xcbiAgICAgIC1tcy1oeXBoZW5zOiBhdXRvO1xcbiAgICAgICAgICBoeXBoZW5zOiBhdXRvO1xcbn1cXG4udGV4dC1pdGFsaWMge1xcbiAgZm9udC1zdHlsZTogaXRhbGljO1xcbn1cXG4udGV4dC1ib2xkIHtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xcbn1cXG4udGV4dC1uby13cmFwIHtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxufVxcbi50ZXh0LXdlaWdodC10aGluIHtcXG4gIGZvbnQtd2VpZ2h0OiAxMDA7XFxufVxcbi50ZXh0LXdlaWdodC1saWdodCB7XFxuICBmb250LXdlaWdodDogMzAwO1xcbn1cXG4udGV4dC13ZWlnaHQtcmVndWxhciB7XFxuICBmb250LXdlaWdodDogNDAwO1xcbn1cXG4udGV4dC13ZWlnaHQtbWVkaXVtIHtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxufVxcbi50ZXh0LXdlaWdodC1ib2xkIHtcXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XFxufVxcbi50ZXh0LXdlaWdodC1ib2xkZXIge1xcbiAgZm9udC13ZWlnaHQ6IDkwMDtcXG59XFxuc21hbGwge1xcbiAgZm9udC1zaXplOiA4MCU7XFxufVxcbmJpZyB7XFxuICBmb250LXNpemU6IDE3MCU7XFxufVxcbnN1YiB7XFxuICBib3R0b206IC0wLjI1ZW07XFxufVxcbnN1cCB7XFxuICB0b3A6IC0wLjVlbTtcXG59XFxuYmxvY2txdW90ZSB7XFxuICBwYWRkaW5nOiA4cHggMTZweDtcXG4gIG1hcmdpbjogMDtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzAyN2JlMztcXG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tcS1jb2xvci1wcmltYXJ5KTtcXG59XFxuYmxvY2txdW90ZS50ZXh0LXJpZ2h0IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDE2cHg7XFxuICBwYWRkaW5nLWxlZnQ6IDA7XFxuICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCAjMDI3YmUzO1xcbiAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgdmFyKC0tcS1jb2xvci1wcmltYXJ5KTtcXG4gIGJvcmRlci1sZWZ0OiAwO1xcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XFxufVxcbmJsb2NrcXVvdGUgc21hbGwge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBsaW5lLWhlaWdodDogMS40O1xcbiAgY29sb3I6ICM3Nzc7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1mYWRlZCk7XFxufVxcbmJsb2NrcXVvdGUgc21hbGw6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICdcXFxcMjAxNCBcXFxcMDBBMCc7XFxufVxcbi5xdW90ZSB7XFxuICBwYWRkaW5nOiAxMHB4IDIwcHg7XFxuICBtYXJnaW46IDAgMCAyMHB4O1xcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAjMDI3YmUzO1xcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCB2YXIoLS1xLWNvbG9yLXByaW1hcnkpO1xcbn1cXG4ucXVvdGUudGV4dC1yaWdodCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xcbiAgcGFkZGluZy1sZWZ0OiAwO1xcbiAgYm9yZGVyLXJpZ2h0OiA1cHggc29saWQgIzAyN2JlMztcXG4gIGJvcmRlci1yaWdodDogNXB4IHNvbGlkIHZhcigtLXEtY29sb3ItcHJpbWFyeSk7XFxuICBib3JkZXItbGVmdDogMDtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXG5kdCB7XFxuICBmb250LXdlaWdodDogYm9sZDtcXG59XFxuZGQge1xcbiAgbWFyZ2luLWxlZnQ6IDA7XFxufVxcbmR0LFxcbmRkIHtcXG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XFxufVxcbmRsIHtcXG4gIG1hcmdpbi10b3A6IDA7XFxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xcbn1cXG5kbC5ob3Jpem9udGFsIGR0IHtcXG4gIGZsb2F0OiBsZWZ0O1xcbiAgd2lkdGg6IDI1JTtcXG4gIGNsZWFyOiBsZWZ0O1xcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbn1cXG5kbC5ob3Jpem9udGFsIGRkIHtcXG4gIG1hcmdpbi1sZWZ0OiAzMCU7XFxufVxcbmhyLnEtaHIsXFxuaHIucS1oci1kYXJrIHtcXG4gIGhlaWdodDogMXB4O1xcbiAgbWluLWhlaWdodDogMXB4O1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBib3JkZXI6IG5vbmU7XFxuICB3aWR0aDogMTAwJTtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbmhyLnEtaHItZGFyayB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMzYpO1xcbn1cXG4ubm8tbWFyZ2luIHtcXG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xcbn1cXG4ubm8tcGFkZGluZyB7XFxuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XFxufVxcbi5uby1ib3JkZXIge1xcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XFxufVxcbi5uby1ib3JkZXItcmFkaXVzIHtcXG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcXG59XFxuLm5vLWJveC1zaGFkb3cge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuLm5vLW91dGxpbmUge1xcbiAgb3V0bGluZTogMCAhaW1wb3J0YW50O1xcbn1cXG4uZWxsaXBzaXMge1xcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLmVsbGlwc2lzLTItbGluZXMsXFxuLmVsbGlwc2lzLTMtbGluZXMge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG59XFxuLmVsbGlwc2lzLTItbGluZXMge1xcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xcbn1cXG4uZWxsaXBzaXMtMy1saW5lcyB7XFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XFxufVxcbi5yZWFkb25seSB7XFxuICBjdXJzb3I6IGRlZmF1bHQgIWltcG9ydGFudDtcXG59XFxuLmRpc2FibGVkLFxcbltkaXNhYmxlZF0sXFxuLmRpc2FibGVkICosXFxuW2Rpc2FibGVkXSAqIHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQgIWltcG9ydGFudDtcXG59XFxuLmRpc2FibGVkLFxcbltkaXNhYmxlZF0ge1xcbiAgb3BhY2l0eTogMC42ICFpbXBvcnRhbnQ7XFxufVxcbi5oaWRkZW4ge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4uaW52aXNpYmxlIHtcXG4gIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xcbn1cXG4udHJhbnNwYXJlbnQge1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG59XFxuLm92ZXJmbG93LWF1dG8ge1xcbiAgb3ZlcmZsb3c6IGF1dG8gIWltcG9ydGFudDtcXG59XFxuLm92ZXJmbG93LWhpZGRlbiB7XFxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XFxufVxcbi5vdmVyZmxvdy1oaWRkZW4teSB7XFxuICBvdmVyZmxvdy15OiBoaWRkZW4gIWltcG9ydGFudDtcXG59XFxuLmRpbW1lZDphZnRlcixcXG4ubGlnaHQtZGltbWVkOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbn1cXG4uZGltbWVkOmFmdGVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC40KSAhaW1wb3J0YW50O1xcbn1cXG4ubGlnaHQtZGltbWVkOmFmdGVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC42KSAhaW1wb3J0YW50O1xcbn1cXG4uei10b3Age1xcbiAgei1pbmRleDogNzAwMCAhaW1wb3J0YW50O1xcbn1cXG4uei1tYXgge1xcbiAgei1pbmRleDogOTk5OCAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCguZGVza3RvcCkgLmRlc2t0b3Atb25seSxcXG5ib2R5LmRlc2t0b3AgLmRlc2t0b3AtaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC5tb2JpbGUpIC5tb2JpbGUtb25seSxcXG5ib2R5Lm1vYmlsZSAubW9iaWxlLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCguY29yZG92YSkgLmNvcmRvdmEtb25seSxcXG5ib2R5LmNvcmRvdmEgLmNvcmRvdmEtaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC5lbGVjdHJvbikgLmVsZWN0cm9uLW9ubHksXFxuYm9keS5lbGVjdHJvbiAuZWxlY3Ryb24taGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC5pb3MpIC5pb3Mtb25seSxcXG5ib2R5LmlvcyAuaW9zLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCgubWF0KSAubWF0LW9ubHksXFxuYm9keS5tYXQgLm1hdC1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLnRvdWNoKSAudG91Y2gtb25seSxcXG5ib2R5LnRvdWNoIC50b3VjaC1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLndpdGhpbi1pZnJhbWUpIC53aXRoaW4taWZyYW1lLW9ubHksXFxuYm9keS53aXRoaW4taWZyYW1lIC53aXRoaW4taWZyYW1lLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCgucGxhdGZvcm0taW9zKSAucGxhdGZvcm0taW9zLW9ubHksXFxuYm9keS5wbGF0Zm9ybS1pb3MgLnBsYXRmb3JtLWlvcy1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLnBsYXRmb3JtLWFuZHJvaWQpIC5wbGF0Zm9ybS1hbmRyb2lkLW9ubHksXFxuYm9keS5wbGF0Zm9ybS1hbmRyb2lkIC5wbGF0Zm9ybS1hbmRyb2lkLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5AbWVkaWEgYWxsIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XFxuICAub3JpZW50YXRpb24tbGFuZHNjYXBlIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgYWxsIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xcbiAgLm9yaWVudGF0aW9uLXBvcnRyYWl0IHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgc2NyZWVuIHtcXG4gIC5wcmludC1vbmx5IHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgcHJpbnQge1xcbiAgLnByaW50LWhpZGUge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCkge1xcbiAgLnhzLWhpZGUsXFxuICAuZ3QteHMsXFxuICAuc20sXFxuICAuZ3Qtc20sXFxuICAubWQsXFxuICAuZ3QtbWQsXFxuICAubGcsXFxuICAuZ3QtbGcsXFxuICAueGwge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkgYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICAuc20taGlkZSxcXG4gIC54cyxcXG4gIC5sdC1zbSxcXG4gIC5ndC1zbSxcXG4gIC5tZCxcXG4gIC5ndC1tZCxcXG4gIC5sZyxcXG4gIC5ndC1sZyxcXG4gIC54bCB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcXG4gIC5tZC1oaWRlLFxcbiAgLnhzLFxcbiAgLmx0LXNtLFxcbiAgLnNtLFxcbiAgLmx0LW1kLFxcbiAgLmd0LW1kLFxcbiAgLmxnLFxcbiAgLmd0LWxnLFxcbiAgLnhsIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcXG4gIC5sZy1oaWRlLFxcbiAgLnhzLFxcbiAgLmx0LXNtLFxcbiAgLnNtLFxcbiAgLmx0LW1kLFxcbiAgLm1kLFxcbiAgLmx0LWxnLFxcbiAgLmd0LWxnLFxcbiAgLnhsIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XFxuICAueGwtaGlkZSxcXG4gIC54cyxcXG4gIC5sdC1zbSxcXG4gIC5zbSxcXG4gIC5sdC1tZCxcXG4gIC5tZCxcXG4gIC5sdC1sZyxcXG4gIC5sZyxcXG4gIC5sdC14bCB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuLnEtZm9jdXMtaGVscGVyIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDAgLyogcnRsOmlnbm9yZSAqLztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbiAgb3BhY2l0eTogMC4xNTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG59XFxuLnEtZm9jdXMtaGVscGVyLXJvdW5kZWQge1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbn1cXG4ucS1mb2N1cy1oZWxwZXItcm91bmQge1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbn1cXG5ib2R5LmRlc2t0b3AgLnEtZm9jdXNhYmxlOmZvY3VzIC5xLWZvY3VzLWhlbHBlcixcXG5ib2R5LmRlc2t0b3AgLnEtaG92ZXJhYmxlOmhvdmVyIC5xLWZvY3VzLWhlbHBlciB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbmJvZHkuaW9zIC5xLWhvdmVyYWJsZTphY3RpdmUgLnEtZm9jdXMtaGVscGVyIHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG4gIG9wYWNpdHk6IDAuMztcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpIHtcXG4gIC5xLWlmID4gLnEtaWYtaW5uZXIge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogYXV0bztcXG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIH1cXG4gIC5xLWlmID4gLnEtaWYtaW5uZXIgPiBkaXYgPiAucS1pbnB1dC10YXJnZXQge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogYXV0bztcXG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XFxuICB9XFxuICAucS1pZiA+IC5xLWlmLWlubmVyID4gZGl2ID4gaW5wdXQucS1pbnB1dC10YXJnZXQge1xcbiAgICBtaW4td2lkdGg6IDNyZW07XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAwJSAhaW1wb3J0YW50O1xcbiAgICAgICAgZmxleC1iYXNpczogMCUgIWltcG9ydGFudDtcXG4gIH1cXG4gIC5xLWlucHV0LXRhcmdldDpiZWZvcmUge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gIH1cXG4gIC5xLWlmLWxhYmVsLXNwYWNlciB7XFxuICAgIHdpZHRoOiAwO1xcbiAgfVxcbiAgLnEtZWRpdG9yLXRvb2xiYXIgLnEtYnRuLWdyb3VwLnJvdy5pbmxpbmUge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIH1cXG4gIC5xLXRvb2xiYXIsXFxuICAucS1hY3Rpb25zaGVldC10aXRsZSxcXG4gIC5xLWZpZWxkLWxhYmVsLWlubmVyIHtcXG4gICAgaGVpZ2h0OiAwcHg7XFxuICB9XFxuICAucS1jYXJvdXNlbC1zbGlkZSB7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5yb3cgPiAuY29sLnEtYWxlcnQtY29udGVudCB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiBhdXRvO1xcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcXG4gIH1cXG4gIC5xLXNsaWRlci1oYW5kbGUgPiAucS1jaGlwLmlubGluZS5yb3cge1xcbiAgICBkaXNwbGF5OiB0YWJsZTtcXG4gIH1cXG4gIGEucS1idG46bm90KC5xLWJ0bi1yb3VuZCkge1xcbiAgICBoZWlnaHQ6IDBweDtcXG4gIH1cXG4gIC5xLWJ0biAucS1idG4taW5uZXIge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogYXV0bztcXG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XFxuICB9XFxuICAucS1idG46YWN0aXZlIC5xLWJ0bi1pbm5lcixcXG4gIC5xLWJ0bi5hY3RpdmUgLnEtYnRuLWlubmVyIHtcXG4gICAgbWFyZ2luOiAtMXB4IDFweCAxcHggLTFweDtcXG4gIH1cXG4gIC5xLWJ0bjphY3RpdmUucS1idG4tcHVzaCAucS1idG4taW5uZXIsXFxuICAucS1idG4uYWN0aXZlLnEtYnRuLXB1c2ggLnEtYnRuLWlubmVyIHtcXG4gICAgbWFyZ2luOiAxcHggMXB4IC0xcHggLTFweDtcXG4gIH1cXG4gIC5xLWJ0bjphY3RpdmUucS1idG4tcHVzaC5kaXNhYmxlZCAucS1idG4taW5uZXIsXFxuICAucS1idG4uYWN0aXZlLnEtYnRuLXB1c2guZGlzYWJsZWQgLnEtYnRuLWlubmVyIHtcXG4gICAgbWFyZ2luOiAtMXB4IDFweCAxcHggLTFweDtcXG4gIH1cXG4gIC5xLWJ0bi1ncm91cCA+IC5xLWJ0bi5xLWJ0bi1wdXNoOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSAucS1idG4taW5uZXIsXFxuICAucS1idG4tZ3JvdXAgPiAucS1idG4ucS1idG4tcHVzaDpub3QoLmRpc2FibGVkKS5hY3RpdmUgLnEtYnRuLWlubmVyIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcbiAgLnEtY2hpcDpub3QoLnEtY2hpcC1zbWFsbCk6bm90KC5xLWNoaXAtZGVuc2UpIC5xLWNoaXAtbWFpbiB7XFxuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xcbiAgfVxcbiAgLnEtYnRuIC5xLWNoaXAge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB9XFxuICAucS10YWIgLnEtY2hpcCAucS1jaGlwLW1haW4ge1xcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xcbiAgfVxcbiAgLnEtZmFiLWFjdGlvbnMucS1mYWItbGVmdCxcXG4gIC5xLWZhYi1hY3Rpb25zLnEtZmFiLXJpZ2h0IHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICB9XFxuICAucS1pdGVtLW1haW4ge1xcbiAgICBtaW4td2lkdGg6IDFweDtcXG4gIH1cXG4gIC5xLWxheW91dC1kcmF3ZXItbWluaSAucS1pdGVtIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xcbiAgfVxcbiAgLnEtbW9kYWwtbGF5b3V0IHtcXG4gICAgbWluLWhlaWdodDogODB2aCAhaW1wb3J0YW50O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgfVxcbn1cXG5Ac3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcXG4gIC5xLWlmID4gLnEtaWYtaW5uZXIge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogYXV0bztcXG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIH1cXG4gIC5xLWlmID4gLnEtaWYtaW5uZXIgPiBkaXYgPiAucS1pbnB1dC10YXJnZXQge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogYXV0bztcXG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XFxuICB9XFxuICAucS1pZiA+IC5xLWlmLWlubmVyID4gZGl2ID4gaW5wdXQucS1pbnB1dC10YXJnZXQge1xcbiAgICBtaW4td2lkdGg6IDNyZW07XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAwJSAhaW1wb3J0YW50O1xcbiAgICAgICAgZmxleC1iYXNpczogMCUgIWltcG9ydGFudDtcXG4gIH1cXG4gIC5xLWlucHV0LXRhcmdldDpiZWZvcmUge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gIH1cXG4gIC5xLWlmLWxhYmVsLXNwYWNlciB7XFxuICAgIHdpZHRoOiAwO1xcbiAgfVxcbiAgLnEtZWRpdG9yLXRvb2xiYXIgLnEtYnRuLWdyb3VwLnJvdy5pbmxpbmUge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIH1cXG4gIC5xLXRvb2xiYXIsXFxuICAucS1hY3Rpb25zaGVldC10aXRsZSxcXG4gIC5xLWZpZWxkLWxhYmVsLWlubmVyIHtcXG4gICAgaGVpZ2h0OiAwcHg7XFxuICB9XFxuICAucS1jYXJvdXNlbC1zbGlkZSB7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5yb3cgPiAuY29sLnEtYWxlcnQtY29udGVudCB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiBhdXRvO1xcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcXG4gIH1cXG4gIC5xLXNsaWRlci1oYW5kbGUgPiAucS1jaGlwLmlubGluZS5yb3cge1xcbiAgICBkaXNwbGF5OiB0YWJsZTtcXG4gIH1cXG4gIGEucS1idG46bm90KC5xLWJ0bi1yb3VuZCkge1xcbiAgICBoZWlnaHQ6IDBweDtcXG4gIH1cXG4gIC5xLWJ0biAucS1idG4taW5uZXIge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogYXV0bztcXG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XFxuICB9XFxuICAucS1idG46YWN0aXZlIC5xLWJ0bi1pbm5lcixcXG4gIC5xLWJ0bi5hY3RpdmUgLnEtYnRuLWlubmVyIHtcXG4gICAgbWFyZ2luOiAtMXB4IDFweCAxcHggLTFweDtcXG4gIH1cXG4gIC5xLWJ0bjphY3RpdmUucS1idG4tcHVzaCAucS1idG4taW5uZXIsXFxuICAucS1idG4uYWN0aXZlLnEtYnRuLXB1c2ggLnEtYnRuLWlubmVyIHtcXG4gICAgbWFyZ2luOiAxcHggMXB4IC0xcHggLTFweDtcXG4gIH1cXG4gIC5xLWJ0bjphY3RpdmUucS1idG4tcHVzaC5kaXNhYmxlZCAucS1idG4taW5uZXIsXFxuICAucS1idG4uYWN0aXZlLnEtYnRuLXB1c2guZGlzYWJsZWQgLnEtYnRuLWlubmVyIHtcXG4gICAgbWFyZ2luOiAtMXB4IDFweCAxcHggLTFweDtcXG4gIH1cXG4gIC5xLWJ0bi1ncm91cCA+IC5xLWJ0bi5xLWJ0bi1wdXNoOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSAucS1idG4taW5uZXIsXFxuICAucS1idG4tZ3JvdXAgPiAucS1idG4ucS1idG4tcHVzaDpub3QoLmRpc2FibGVkKS5hY3RpdmUgLnEtYnRuLWlubmVyIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcbiAgLnEtY2hpcDpub3QoLnEtY2hpcC1zbWFsbCk6bm90KC5xLWNoaXAtZGVuc2UpIC5xLWNoaXAtbWFpbiB7XFxuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xcbiAgfVxcbiAgLnEtYnRuIC5xLWNoaXAge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB9XFxuICAucS10YWIgLnEtY2hpcCAucS1jaGlwLW1haW4ge1xcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xcbiAgfVxcbiAgLnEtZmFiLWFjdGlvbnMucS1mYWItbGVmdCxcXG4gIC5xLWZhYi1hY3Rpb25zLnEtZmFiLXJpZ2h0IHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICB9XFxuICAucS1pdGVtLW1haW4ge1xcbiAgICBtaW4td2lkdGg6IDFweDtcXG4gIH1cXG4gIC5xLWxheW91dC1kcmF3ZXItbWluaSAucS1pdGVtIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xcbiAgfVxcbiAgLnEtbW9kYWwtbGF5b3V0IHtcXG4gICAgbWluLWhlaWdodDogODB2aCAhaW1wb3J0YW50O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgd2Via2l0LWF1dG9maWxsLW9uIHtcXG4gIHRvIHtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICAgIGNvbG9yOiAjZmY5ODAwO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHdlYmtpdC1hdXRvZmlsbC1vbiB7XFxuICB0byB7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgICBjb2xvcjogI2ZmOTgwMDtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHdlYmtpdC1hdXRvZmlsbC1vZmYge1xcbiAgdG8ge1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyB3ZWJraXQtYXV0b2ZpbGwtb2ZmIHtcXG4gIHRvIHtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUge1xcbiAgMCUge1xcbiAgICBsZWZ0OiAtMzUlO1xcbiAgICByaWdodDogMTAwJTtcXG4gIH1cXG4gIDYwJSB7XFxuICAgIGxlZnQ6IDEwMCU7XFxuICAgIHJpZ2h0OiAtOTAlO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIGxlZnQ6IDEwMCU7XFxuICAgIHJpZ2h0OiAtOTAlO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZSB7XFxuICAwJSB7XFxuICAgIGxlZnQ6IC0zNSU7XFxuICAgIHJpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgNjAlIHtcXG4gICAgbGVmdDogMTAwJTtcXG4gICAgcmlnaHQ6IC05MCU7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgbGVmdDogMTAwJTtcXG4gICAgcmlnaHQ6IC05MCU7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUtc2hvcnQge1xcbiAgMCUge1xcbiAgICBsZWZ0OiAtMjAwJTtcXG4gICAgcmlnaHQ6IDEwMCU7XFxuICB9XFxuICA2MCUge1xcbiAgICBsZWZ0OiAxMDclO1xcbiAgICByaWdodDogLTglO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIGxlZnQ6IDEwNyU7XFxuICAgIHJpZ2h0OiAtOCU7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1wcm9ncmVzcy1pbmRldGVybWluYXRlLXNob3J0IHtcXG4gIDAlIHtcXG4gICAgbGVmdDogLTIwMCU7XFxuICAgIHJpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgNjAlIHtcXG4gICAgbGVmdDogMTA3JTtcXG4gICAgcmlnaHQ6IC04JTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBsZWZ0OiAxMDclO1xcbiAgICByaWdodDogLTglO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1wcm9ncmVzcy1zdHJpcGVzIHtcXG4gIGZyb20ge1xcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0MHB4IDA7XFxuICB9XFxuICB0byB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXByb2dyZXNzLXN0cmlwZXMge1xcbiAgZnJvbSB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDQwcHggMDtcXG4gIH1cXG4gIHRvIHtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1tYXQtZGFzaCB7XFxuICAwJSB7XFxuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDEsIDIwMDtcXG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XFxuICB9XFxuICA1MCUge1xcbiAgICBzdHJva2UtZGFzaGFycmF5OiA4OSwgMjAwO1xcbiAgICBzdHJva2UtZGFzaG9mZnNldDogLTM1cHg7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgc3Ryb2tlLWRhc2hhcnJheTogODksIDIwMDtcXG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0xMjRweDtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLW1hdC1kYXNoIHtcXG4gIDAlIHtcXG4gICAgc3Ryb2tlLWRhc2hhcnJheTogMSwgMjAwO1xcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcXG4gIH1cXG4gIDUwJSB7XFxuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDg5LCAyMDA7XFxuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtMzVweDtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBzdHJva2UtZGFzaGFycmF5OiA4OSwgMjAwO1xcbiAgICBzdHJva2UtZGFzaG9mZnNldDogLTEyNHB4O1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1oaWdobGlnaHQge1xcbiAgMCUge1xcbiAgICBiYWNrZ3JvdW5kOiAjY2RkYzM5O1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtaGlnaGxpZ2h0IHtcXG4gIDAlIHtcXG4gICAgYmFja2dyb3VuZDogI2NkZGMzOTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtcm90YXRlIHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICAyNSUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgNTAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgNzUlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXJvdGF0ZSB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCkgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgMjUlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDUwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDc1JSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLWJsaW5rIHtcXG4gIHRvIHtcXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtYmxpbmsge1xcbiAgdG8ge1xcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXNwaW4ge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1zcGluIHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1wb3Age1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC43KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNyk7XFxuICB9XFxuICA3MCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wNyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA3KTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXBvcCB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC43KTtcXG4gIH1cXG4gIDcwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjA3KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDcpO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1mYWRlIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtZmFkZSB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtc2NhbGUge1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC43KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNyk7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1zY2FsZSB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC43KTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtYm91bmNlIHtcXG4gIDAlLCAyMCUsIDUwJSwgODAlLCAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgfVxcbiAgNDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7XFxuICB9XFxuICA2MCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLWJvdW5jZSB7XFxuICAwJSwgMjAlLCA1MCUsIDgwJSwgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG4gIH1cXG4gIDQwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpO1xcbiAgfVxcbiAgNjAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1cHgpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCk7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXNoYWtlIHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICB9XFxuICA1MCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wMik7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXNoYWtlIHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICB9XFxuICA1MCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wMik7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtcG9wdXAtZG93biB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KSBzY2FsZVkoMC4zKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpIHNjYWxlWSgwLjMpO1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIH1cXG4gIDMwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1wb3B1cC1kb3duIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpIHNjYWxlWSgwLjMpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCkgc2NhbGVZKDAuMyk7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgfVxcbiAgMzAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtcG9wdXAtdXAge1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KSBzY2FsZVkoMC4zKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCkgc2NhbGVZKDAuMyk7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgfVxcbiAgMzAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXBvcHVwLXVwIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCkgc2NhbGVZKDAuMyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpIHNjYWxlWSgwLjMpO1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIH1cXG4gIDMwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXNsaWRlLWxlZnQge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNzAlKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTcwJSk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1zbGlkZS1sZWZ0IHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTcwJSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03MCUpO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1zbGlkZS1yaWdodCB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDcwJSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDcwJSk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1zbGlkZS1yaWdodCB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDcwJSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDcwJSk7XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIlxcbmJ1dHRvbiArIGJ1dHRvbltkYXRhLXYtNGZiYzczNWJdIHtcXHJcXG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcXG59XFxuYnV0dG9uW2RhdGEtdi00ZmJjNzM1Yl0ge1xcclxcbiAgcGFkZGluZzogMC40ZW0gMC42ZW07XFxyXFxuICBib3JkZXItcmFkaXVzOiA1cHg7XFxyXFxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XFxyXFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcclxcbiAgb3V0bGluZTogMDtcXHJcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuYnV0dG9uW2Rpc2FibGVkXVtkYXRhLXYtNGZiYzczNWJdIHtcXHJcXG4gIGJvcmRlci1jb2xvcjogI2FlNjVjNTtcXHJcXG4gIGN1cnNvcjogZGVmYXVsdDtcXG59XFxuLm1vZGFsW2RhdGEtdi00ZmJjNzM1Yl0ge1xcclxcbiAgY29sb3I6IHJlZDtcXG59XFxyXFxuXFxyXFxuLyoqXFxyXFxuICogU2VlIGh0dHBzOi8vdnVlLWxvYWRlci52dWVqcy5vcmcvZ3VpZGUvc2NvcGVkLWNzcy5odG1sI2RlZXAtc2VsZWN0b3JzXFxyXFxuICogdGhlIGA+Pj5gIGFsbG93cyB0byBhcHBseSBzY29wZWQgY3NzIHRvIGNoaWxkIGVsZW1lbnQgdGhhdCBpcyBnZW5lcmF0ZWRcXHJcXG4gKiBkeW5hbWljYWxseVxcclxcbioqL1xcbi5tb2RhbFtkYXRhLXYtNGZiYzczNWJdIC5tb2RhbC1zY3JvbGwge1xcclxcbiAgY29sb3I6IHJlZDtcXHJcXG4gIG1heC1oZWlnaHQ6IG5vbmU7XFxufVxcbi5tb2RhbCAubW9kYWwtYm9keVtkYXRhLXYtNGZiYzczNWJdIHtcXHJcXG4gIG1heC1oZWlnaHQ6IG5vbmU7XFxufVxcbmgxW2RhdGEtdi00ZmJjNzM1Yl0ge1xcclxcbiAgZm9udC1mYW1pbHk6IENvdXJpZXI7XFxyXFxuICBmb250LXNpemU6IDJyZW07XFxufVxcbmgyW2RhdGEtdi00ZmJjNzM1Yl0ge1xcclxcbiAgZm9udC1mYW1pbHk6IENvdXJpZXI7XFxyXFxuICBmb250LXNpemU6IDEuMjVyZW07XFxyXFxuICBtYXJnaW4tdG9wOiAycmVtO1xcbn1cXG4uYXBwIC5yb3dbZGF0YS12LTRmYmM3MzViXSB7XFxyXFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuLnJvdyArIC5yb3dbZGF0YS12LTRmYmM3MzViXSB7XFxyXFxuICBtYXJnaW4tdG9wOiAyZW07XFxufVxcbi5yb3ctc21hbGxbZGF0YS12LTRmYmM3MzViXSB7XFxyXFxuICBtYXJnaW4tdG9wOiAxZW07XFxufVxcbi5lbW9qaS1tYXJ0W2RhdGEtdi00ZmJjNzM1Yl0ge1xcclxcbiAgbWFyZ2luOiAwIGF1dG87XFxyXFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbn1cXG4uZW1vamktbWFydC10aXRsZS1sYWJlbFtkYXRhLXYtNGZiYzczNWJdIHtcXHJcXG4gIGZvbnQtc2l6ZTogMjFweDtcXG59XFxuLnBvcHVwW2RhdGEtdi00ZmJjNzM1Yl0ge1xcclxcbiAgcG9zaXRpb246IGZpeGVkO1xcclxcbiAgd2lkdGg6IDEwMCU7XFxyXFxuICBoZWlnaHQ6IDEwMHZoO1xcclxcbiAgbGVmdDogMDtcXHJcXG4gIHRvcDogMDtcXHJcXG4gIHotaW5kZXg6IDIwMDtcXHJcXG4gIGJhY2tncm91bmQ6IHJlYmVjY2FwdXJwbGU7XFxyXFxuICBvcGFjaXR5OiA5NSU7XFxufVxcbi5wb3B1cC1ib3hbZGF0YS12LTRmYmM3MzViXSB7XFxyXFxuICBoZWlnaHQ6IDEwMCU7XFxyXFxuICBvdmVyZmxvdzogYXV0bztcXHJcXG4gIGRpc3BsYXk6IGJsb2NrO1xcclxcbiAgcGFkZGluZy10b3A6IDEyMHB4O1xcclxcbiAgcGFkZGluZy1ib3R0b206IDgwcHg7XFxufVxcbi5wb3B1cC1jb250ZW50W2RhdGEtdi00ZmJjNzM1Yl0ge1xcclxcbiAgYmFja2dyb3VuZDogd2hpdGU7XFxyXFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDBweCAyNHB4IDU0cHggcmdiYSgyMCwgMjgsIDQ5LCAwLjE0KTtcXHJcXG4gICAgICAgICAgYm94LXNoYWRvdzogMHB4IDI0cHggNTRweCByZ2JhKDIwLCAyOCwgNDksIDAuMTQpO1xcclxcbiAgYm9yZGVyLXJhZGl1czogMThweDtcXHJcXG4gIHBhZGRpbmc6IDZweCA2cHggOXB4IDZweDtcXHJcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXHJcXG4gIHdpZHRoOiAxMDAlO1xcclxcbiAgbWF4LXdpZHRoOiA0NjJweDtcXHJcXG4gIG1hcmdpbjogMCBhdXRvO1xcbn1cXG4ucG9wdXAtY2xvc2VbZGF0YS12LTRmYmM3MzViXSB7XFxyXFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxyXFxuICB0b3A6IDIwcHg7XFxyXFxuICByaWdodDogMzBweDtcXHJcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnJvdy1zbWFsbC1waWNrZXJbZGF0YS12LTRmYmM3MzViXSAuZW1vamktbWFydC1hbmNob3JzIHN2ZyB7XFxyXFxuICB3aWR0aDogOXB4O1xcclxcbiAgaGVpZ2h0OiA5cHg7XFxufVxcbi5yb3ctc21hbGwtcGlja2VyW2RhdGEtdi00ZmJjNzM1Yl0gLmVtb2ppLW1hcnQtdGl0bGUtbGFiZWwge1xcclxcbiAgZm9udC1zaXplOiA5cHg7XFxufVxcbi5yb3ctc21hbGwtcGlja2VyW2RhdGEtdi00ZmJjNzM1Yl0gLmVtb2ppLW1hcnQtcHJldmlldy1kYXRhIHtcXHJcXG4gIGxlZnQ6IDQwcHg7XFxyXFxuICBmb250LXNpemU6IDlweDtcXG59XFxuLnJvdy1zbWFsbC1waWNrZXJbZGF0YS12LTRmYmM3MzViXSAuZW1vamktbWFydC1wcmV2aWV3LW5hbWUge1xcclxcbiAgZm9udC1zaXplOiA5cHg7XFxufVxcbi5yb3ctc21hbGwtcGlja2VyW2RhdGEtdi00ZmJjNzM1Yl0gLmVtb2ppLW1hcnQtcHJldmlldy1lbW9qaSAuZW1vamktdHlwZS1uYXRpdmUge1xcclxcbiAgZm9udC1zaXplOiAxMnB4O1xcclxcbiAgd2lkdGg6IDEycHg7XFxyXFxuICBoZWlnaHQ6IDEycHg7XFxufVxcclxcblwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL2RvY3MvYXBwLnZ1ZVwiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiO0FBK1RBO0VBQ0Esa0JBQUE7QUFDQTtBQUNBO0VBQ0Esb0JBQUE7RUFDQSxrQkFBQTtFQUNBLG9DQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0EsZUFBQTtBQUNBO0FBRUE7RUFDQSxxQkFBQTtFQUNBLGVBQUE7QUFDQTtBQUVBO0VBQ0EsVUFBQTtBQUNBOztBQUVBOzs7O0VBSUE7QUFDQTtFQUNBLFVBQUE7RUFDQSxnQkFBQTtBQUNBO0FBQ0E7RUFDQSxnQkFBQTtBQUNBO0FBRUE7RUFDQSxvQkFBQTtFQUNBLGVBQUE7QUFDQTtBQUVBO0VBQ0Esb0JBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0FBQ0E7QUFFQTtFQUNBLGNBQUE7QUFDQTtBQUVBO0VBQ0EsZUFBQTtBQUNBO0FBRUE7RUFDQSxlQUFBO0FBQ0E7QUFFQTtFQUNBLGNBQUE7RUFDQSxnQkFBQTtBQUNBO0FBRUE7RUFDQSxlQUFBO0FBQ0E7QUFFQTtFQUNBLGVBQUE7RUFDQSxXQUFBO0VBQ0EsYUFBQTtFQUNBLE9BQUE7RUFDQSxNQUFBO0VBQ0EsWUFBQTtFQUNBLHlCQUFBO0VBQ0EsWUFBQTtBQUNBO0FBQ0E7RUFDQSxZQUFBO0VBQ0EsY0FBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLG9CQUFBO0FBQ0E7QUFDQTtFQUNBLGlCQUFBO0VBQ0Esd0RBQUE7VUFBQSxnREFBQTtFQUNBLG1CQUFBO0VBQ0Esd0JBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7QUFDQTtBQUNBO0VBQ0Esa0JBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtFQUNBLGVBQUE7QUFDQTtBQUVBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7QUFDQTtBQUNBO0VBQ0EsY0FBQTtBQUNBO0FBQ0E7RUFDQSxVQUFBO0VBQ0EsY0FBQTtBQUNBO0FBQ0E7RUFDQSxjQUFBO0FBQ0E7QUFDQTtFQUNBLGVBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtBQUNBXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIjx0ZW1wbGF0ZT5cXHJcXG4gIDxkaXYgY2xhc3M9XFxcImFwcFxcXCI+XFxyXFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxyXFxuICAgICAgPGgxPkVtb2ppIE1hcnQgVnVlIPCfj6w8L2gxPlxcclxcbiAgICA8L2Rpdj5cXHJcXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXHJcXG4gICAgICA8ZW1vamkgOmRhdGE9XFxcImluZGV4XFxcIiBlbW9qaT1cXFwiOnNhbnRhOjpza2luLXRvbmUtMzpcXFwiIDpzaXplPVxcXCIzMlxcXCIgLz5cXHJcXG4gICAgICA8ZW1vamkgOmRhdGE9XFxcImluZGV4XFxcIiBlbW9qaT1cXFwic2FudGFcXFwiIHNldD1cXFwidHdpdHRlclxcXCIgOnNpemU9XFxcIjMyXFxcIiAvPlxcclxcbiAgICAgIDxlbW9qaSA6ZGF0YT1cXFwiaW5kZXhcXFwiIDplbW9qaT1cXFwic2FudGFFbW9qaU9iamVjdFxcXCIgOnNpemU9XFxcIjMyXFxcIiAvPlxcclxcbiAgICA8L2Rpdj5cXHJcXG5cXHJcXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXHJcXG4gICAgICA8YnV0dG9uIEBjbGljaz1cXFwidG9nZ2xlVmlzaWJsZVxcXCI+U2hvdyAvIGhpZGUgdGhlIHBpY2tlcjwvYnV0dG9uPlxcclxcbiAgICAgIDxidXR0b24gQGNsaWNrPVxcXCJ0b2dnbGVWaXNpYmxlXFxcIiB2LWh0bWw9XFxcInNtaWxlXFxcIj48L2J1dHRvbj5cXHJcXG4gICAgPC9kaXY+XFxyXFxuXFxyXFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxyXFxuICAgICAgPHRlbXBsYXRlXFxyXFxuICAgICAgICB2LWZvcj1cXFwic2V0IGluIFsnbmF0aXZlJywgJ2FwcGxlJywgJ2dvb2dsZScsICd0d2l0dGVyJywgJ2ZhY2Vib29rJ11cXFwiXFxyXFxuICAgICAgPlxcclxcbiAgICAgICAgPGJ1dHRvblxcclxcbiAgICAgICAgICA6a2V5PVxcXCJzZXRcXFwiXFxyXFxuICAgICAgICAgIEBjbGljaz1cXFwiYWN0aXZlU2V0ID0gc2V0XFxcIlxcclxcbiAgICAgICAgICA6ZGlzYWJsZWQ9XFxcImFjdGl2ZVNldCA9PSBzZXRcXFwiXFxyXFxuICAgICAgICA+XFxyXFxuICAgICAgICAgIHt7IHNldCB9fVxcclxcbiAgICAgICAgPC9idXR0b24+XFxyXFxuICAgICAgPC90ZW1wbGF0ZT5cXHJcXG4gICAgPC9kaXY+XFxyXFxuXFxyXFxuICAgIDxkaXYgdi1pZj1cXFwiaXNWaXNpYmxlXFxcIiBjbGFzcz1cXFwicm93XFxcIj5cXHJcXG4gICAgICA8cGlja2VyXFxyXFxuICAgICAgICA6ZGF0YT1cXFwiaW5kZXhcXFwiXFxyXFxuICAgICAgICA6c2V0PVxcXCJhY3RpdmVTZXRcXFwiXFxyXFxuICAgICAgICA6bmF0aXZlPVxcXCJuYXRpdmVcXFwiXFxyXFxuICAgICAgICA6ZW1vamk9XFxcImVtb2ppXFxcIlxcclxcbiAgICAgICAgOmVtb2ppVG9vbHRpcD1cXFwidHJ1ZVxcXCJcXHJcXG4gICAgICAgIDp0aXRsZT1cXFwidGl0bGVcXFwiXFxyXFxuICAgICAgICA6ZW1vamlTaXplPVxcXCIzMFxcXCJcXHJcXG4gICAgICAgIEBzZWxlY3Q9XFxcInNob3dFbW9qaVxcXCJcXHJcXG4gICAgICAvPlxcclxcbiAgICA8L2Rpdj5cXHJcXG5cXHJcXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXHJcXG4gICAgICA8ZW1vamlcXHJcXG4gICAgICAgIHYtZm9yPVxcXCJlbW8gaW4gc2VsZWN0ZWRFbW9qaXNcXFwiXFxyXFxuICAgICAgICA6a2V5PVxcXCJlbW9cXFwiXFxyXFxuICAgICAgICA6ZGF0YT1cXFwiaW5kZXhcXFwiXFxyXFxuICAgICAgICA6ZW1vamk9XFxcImVtb1xcXCJcXHJcXG4gICAgICAgIDpzZXQ9XFxcImFjdGl2ZVNldFxcXCJcXHJcXG4gICAgICAgIDpuYXRpdmU9XFxcIm5hdGl2ZVxcXCJcXHJcXG4gICAgICAgIDpzaXplPVxcXCIzMlxcXCJcXHJcXG4gICAgICAvPlxcclxcbiAgICA8L2Rpdj5cXHJcXG5cXHJcXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXHJcXG4gICAgICB7eyBlbW9qaXNPdXRwdXQgfX1cXHJcXG4gICAgPC9kaXY+XFxyXFxuXFxyXFxuICAgIDxkaXYgY2xhc3M9XFxcInJvdy1zbWFsbFxcXCI+XFxyXFxuICAgICAgPGlmcmFtZVxcclxcbiAgICAgICAgc3JjPVxcXCJodHRwczovL2doYnRucy5jb20vZ2l0aHViLWJ0bi5odG1sP3VzZXI9c2VyZWJyb3YmcmVwbz1lbW9qaS1tYXJ0LXZ1ZSZ0eXBlPXN0YXImY291bnQ9dHJ1ZVxcXCJcXHJcXG4gICAgICAgIGZyYW1lQm9yZGVyPVxcXCIwXFxcIlxcclxcbiAgICAgICAgc2Nyb2xsaW5nPVxcXCIwXFxcIlxcclxcbiAgICAgICAgd2lkdGg9XFxcIjkwcHhcXFwiXFxyXFxuICAgICAgICBoZWlnaHQ9XFxcIjIwcHhcXFwiXFxyXFxuICAgICAgPjwvaWZyYW1lPlxcclxcbiAgICA8L2Rpdj5cXHJcXG5cXHJcXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj48L2Rpdj5cXHJcXG4gICAgPGgyPlFEaWFsb2cgRXhhbXBsZTwvaDI+XFxyXFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxyXFxuICAgICAgPHEtYnRuIGxhYmVsPVxcXCJPcGVuIFFEaWFsb2dcXFwiIEBjbGljaz1cXFwiZW1vamlQaWNrZXJEaWFsb2cgPSB0cnVlXFxcIiAvPlxcclxcbiAgICA8L2Rpdj5cXHJcXG5cXHJcXG4gICAgPHEtZGlhbG9nIHYtbW9kZWw9XFxcImVtb2ppUGlja2VyRGlhbG9nXFxcIj5cXHJcXG4gICAgICA8dGVtcGxhdGUgdi1zbG90OmJvZHkgc3R5bGU9XFxcImhlaWdodDogNDUwcHhcXFwiPlxcclxcbiAgICAgICAgPHBpY2tlciA6ZGF0YT1cXFwiaW5kZXhcXFwiIDplbW9qaVNpemU9XFxcIjI0XFxcIiA6bmF0aXZlPVxcXCJ0cnVlXFxcIj48L3BpY2tlcj5cXHJcXG4gICAgICA8L3RlbXBsYXRlPlxcclxcbiAgICA8L3EtZGlhbG9nPlxcclxcblxcclxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPjwvZGl2PlxcclxcbiAgICA8aDI+Q3VzdG9tIERpYWxvZyBFeGFtcGxlPC9oMj5cXHJcXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXHJcXG4gICAgICA8YnV0dG9uIEBjbGljaz1cXFwiZW1vamlQaWNrZXJDdXN0b21EaWFsb2cgPSB0cnVlXFxcIj5cXHJcXG4gICAgICAgIE9wZW4gQ3VzdG9tIERpYWxvZ1xcclxcbiAgICAgIDwvYnV0dG9uPlxcclxcbiAgICA8L2Rpdj5cXHJcXG5cXHJcXG4gICAgPGRpdiBjbGFzcz1cXFwicG9wdXBcXFwiIHYtaWY9XFxcImVtb2ppUGlja2VyQ3VzdG9tRGlhbG9nXFxcIj5cXHJcXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJwb3B1cC1ib3hcXFwiIEBjbGljaz1cXFwiZW1vamlQaWNrZXJDdXN0b21EaWFsb2cgPSBmYWxzZVxcXCI+XFxyXFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJwb3B1cC1jb250ZW50XFxcIiBAY2xpY2s9XFxcIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVxcXCI+XFxyXFxuICAgICAgICAgIDxkaXYgY2xhc3M9XFxcInBvcHVwLWNsb3NlXFxcIj5cXHJcXG4gICAgICAgICAgICA8YSBAY2xpY2s9XFxcImVtb2ppUGlja2VyQ3VzdG9tRGlhbG9nID0gZmFsc2VcXFwiPlg8L2E+XFxyXFxuICAgICAgICAgIDwvZGl2PlxcclxcbiAgICAgICAgICA8aDI+RW1vamkgU2VsZWN0b3I8L2gyPlxcclxcbiAgICAgICAgICA8cGlja2VyIDpkYXRhPVxcXCJpbmRleFxcXCIgOmVtb2ppU2l6ZT1cXFwiMjRcXFwiIDpuYXRpdmU9XFxcInRydWVcXFwiPjwvcGlja2VyPlxcclxcbiAgICAgICAgPC9kaXY+XFxyXFxuICAgICAgPC9kaXY+XFxyXFxuICAgIDwvZGl2PlxcclxcblxcclxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPjwvZGl2PlxcclxcbiAgICA8aDI+Q3VzdG9tIFNlYXJjaCBBbmQgUHJldmlldyBUZW1wbGF0ZXMgRXhhbXBsZTwvaDI+XFxyXFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxyXFxuICAgICAgPFBpY2tlciA6ZGF0YT1cXFwiaW5kZXhcXFwiIDpuYXRpdmU9XFxcInRydWVcXFwiPlxcclxcbiAgICAgICAgPHRlbXBsYXRlIHNsb3Q9XFxcInNlYXJjaFRlbXBsYXRlXFxcIiBzbG90LXNjb3BlPVxcXCJzbG90UHJvcHNcXFwiPlxcclxcbiAgICAgICAgICA8aW5wdXRcXHJcXG4gICAgICAgICAgICB0eXBlPVxcXCJ0ZXh0XFxcIlxcclxcbiAgICAgICAgICAgIDpwbGFjZWhvbGRlcj1cXFwic2xvdFByb3BzLmkxOG4uc2VhcmNoXFxcIlxcclxcbiAgICAgICAgICAgIHYtb246aW5wdXQ9XFxcInNsb3RQcm9wcy5vblNlYXJjaCgkZXZlbnQudGFyZ2V0LnZhbHVlKVxcXCJcXHJcXG4gICAgICAgICAgLz5cXHJcXG4gICAgICAgIDwvdGVtcGxhdGU+XFxyXFxuICAgICAgICA8dGVtcGxhdGUgc2xvdD1cXFwicHJldmlld1RlbXBsYXRlXFxcIiBzbG90LXNjb3BlPVxcXCJzbG90UHJvcHNcXFwiPlxcclxcbiAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJlbW9qaS1tYXJ0LXByZXZpZXdcXFwiPlxcclxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImVtb2ppLW1hcnQtcHJldmlldy1lbW9qaVxcXCI+XFxyXFxuICAgICAgICAgICAgICA8RW1vamlcXHJcXG4gICAgICAgICAgICAgICAgOmRhdGE9XFxcInNsb3RQcm9wcy5kYXRhXFxcIlxcclxcbiAgICAgICAgICAgICAgICA6ZW1vamk9XFxcInNsb3RQcm9wcy5lbW9qaSA/IHNsb3RQcm9wcy5lbW9qaSA6ICdwb2ludF91cCdcXFwiXFxyXFxuICAgICAgICAgICAgICAgIDpuYXRpdmU9XFxcInNsb3RQcm9wcy5lbW9qaVByb3BzLm5hdGl2ZVxcXCJcXHJcXG4gICAgICAgICAgICAgICAgOnNraW49XFxcInNsb3RQcm9wcy5lbW9qaVByb3BzLnNraW5cXFwiXFxyXFxuICAgICAgICAgICAgICAgIDpzZXQ9XFxcInNsb3RQcm9wcy5lbW9qaVByb3BzLnNldFxcXCJcXHJcXG4gICAgICAgICAgICAgIC8+XFxyXFxuICAgICAgICAgICAgPC9kaXY+XFxyXFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiZW1vamktbWFydC1wcmV2aWV3LWRhdGFcXFwiPlxcclxcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiZW1vamktbWFydC1wcmV2aWV3LW5hbWVcXFwiPlxcclxcbiAgICAgICAgICAgICAgICB7e1xcclxcbiAgICAgICAgICAgICAgICAgIHNsb3RQcm9wcy5lbW9qaVxcclxcbiAgICAgICAgICAgICAgICAgICAgPyAnficgKyBzbG90UHJvcHMuZW1vamkubmFtZSArICd+J1xcclxcbiAgICAgICAgICAgICAgICAgICAgOiAnQ2hvb3NlLi4uJ1xcclxcbiAgICAgICAgICAgICAgICB9fVxcclxcbiAgICAgICAgICAgICAgPC9kaXY+XFxyXFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJlbW9qaS1tYXJ0LXByZXZpZXctc2hvcnRuYW1lc1xcXCI+XFxyXFxuICAgICAgICAgICAgICAgIHt7IHNsb3RQcm9wcy5lbW9qaSA/IHNsb3RQcm9wcy5lbW9qaS5jb2xvbnMgOiAnJyB9fVxcclxcbiAgICAgICAgICAgICAgPC9kaXY+XFxyXFxuICAgICAgICAgICAgPC9kaXY+XFxyXFxuICAgICAgICAgIDwvZGl2PlxcclxcbiAgICAgICAgPC90ZW1wbGF0ZT5cXHJcXG4gICAgICA8L1BpY2tlcj5cXHJcXG4gICAgPC9kaXY+XFxyXFxuXFxyXFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+PC9kaXY+XFxyXFxuICAgIDxoMj5GaWx0ZXJlZCBwaWNrZXIgZXhhbXBsZTwvaDI+XFxyXFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCIgdi1zaG93PVxcXCJmbGFnc1Zpc2libGVcXFwiPlxcclxcbiAgICAgIDxQaWNrZXJcXHJcXG4gICAgICAgIDpuYXRpdmU9XFxcInRydWVcXFwiXFxyXFxuICAgICAgICBlbW9qaT1cXFwiZmxhZy10ZlxcXCJcXHJcXG4gICAgICAgIDplbW9qaVNpemU9XFxcIjE4XFxcIlxcclxcbiAgICAgICAgOmRhdGE9XFxcImluZGV4RmlsdGVyZWRcXFwiXFxyXFxuICAgICAgICByZWY9XFxcImZsYWdzXFxcIlxcclxcbiAgICAgIC8+XFxyXFxuICAgIDwvZGl2PlxcclxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcclxcbiAgICAgIDxidXR0b24gQGNsaWNrPVxcXCJ0b2dnbGVGbGFnc1Zpc2libGVcXFwiPlxcclxcbiAgICAgICAgU2hvdyAvIGhpZGUgdGhlIGZsYWdzIHBpY2tlciAod2l0aCB2LXNob3cpXFxyXFxuICAgICAgPC9idXR0b24+XFxyXFxuICAgIDwvZGl2PlxcclxcblxcclxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPjwvZGl2PlxcclxcbiAgICA8aDI+STE4biBwaWNrZXIgZXhhbXBsZTwvaDI+XFxyXFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxyXFxuICAgICAgPFBpY2tlciBlbW9qaT1cXFwiZGVwYXJ0bWVudF9zdG9yZVxcXCIgOmRhdGE9XFxcImluZGV4STE4blxcXCIgOmkxOG49XFxcImkxOG5cXFwiIC8+XFxyXFxuICAgIDwvZGl2PlxcclxcblxcclxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPjwvZGl2PlxcclxcbiAgICA8aDI+Q3VzdG9tIG9yZGVyIGV4YW1wbGU8L2gyPlxcclxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcclxcbiAgICAgIDxQaWNrZXIgOmRhdGE9XFxcImluZGV4SW5jbHVkZVxcXCIgLz5cXHJcXG4gICAgPC9kaXY+XFxyXFxuXFxyXFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+PC9kaXY+XFxyXFxuICAgIDxoMj5TbWFsbCBwaWNrZXIgZXhhbXBsZTwvaDI+XFxyXFxuICAgIDxkaXYgY2xhc3M9XFxcInJvdyByb3ctc21hbGwtcGlja2VyXFxcIj5cXHJcXG4gICAgICA8UGlja2VyXFxyXFxuICAgICAgICA6ZGF0YT1cXFwiaW5kZXhcXFwiXFxyXFxuICAgICAgICA6bmF0aXZlPVxcXCJuYXRpdmVcXFwiXFxyXFxuICAgICAgICA6c2V0PVxcXCJhY3RpdmVTZXRcXFwiXFxyXFxuICAgICAgICA6ZW1vamlTaXplPVxcXCIxMlxcXCJcXHJcXG4gICAgICAgIDpwZXJMaW5lPVxcXCI1XFxcIlxcclxcbiAgICAgIC8+XFxyXFxuICAgIDwvZGl2PlxcclxcbiAgPC9kaXY+XFxyXFxuPC90ZW1wbGF0ZT5cXHJcXG5cXHJcXG48c2NyaXB0PlxcclxcbmltcG9ydCBkYXRhIGZyb20gJy4uL2RhdGEvYWxsLmpzb24nXFxyXFxuaW1wb3J0IHsgUGlja2VyLCBFbW9qaSwgRW1vamlJbmRleCB9IGZyb20gJy4uL3NyYydcXHJcXG5pbXBvcnQgJy4uL2Nzcy9lbW9qaS1tYXJ0LmNzcydcXHJcXG5cXHJcXG5pbXBvcnQgeyBRQnRuLCBRRGlhbG9nIH0gZnJvbSAncXVhc2FyLWZyYW1ld29yay9kaXN0L3F1YXNhci5tYXQuZXNtJ1xcclxcblxcclxcbmNvbnN0IENVU1RPTV9FTU9KSVMgPSBbXFxyXFxuICB7XFxyXFxuICAgIG5hbWU6ICdQYXJ0eSBQYXJyb3QnLFxcclxcbiAgICBzaG9ydF9uYW1lczogWydwYXJyb3QnXSxcXHJcXG4gICAga2V5d29yZHM6IFsncGFydHknXSxcXHJcXG4gICAgaW1hZ2VVcmw6ICcuL2ltYWdlcy9wYXJyb3QuZ2lmJyxcXHJcXG4gIH0sXFxyXFxuICB7XFxyXFxuICAgIG5hbWU6ICdPY3RvY2F0JyxcXHJcXG4gICAgc2hvcnRfbmFtZXM6IFsnb2N0b2NhdCddLFxcclxcbiAgICBrZXl3b3JkczogWydnaXRodWInXSxcXHJcXG4gICAgaW1hZ2VVcmw6ICdodHRwczovL2dpdGh1Yi5naXRodWJhc3NldHMuY29tL2ltYWdlcy9pY29ucy9lbW9qaS9vY3RvY2F0LnBuZycsXFxyXFxuICB9LFxcclxcbiAge1xcclxcbiAgICBuYW1lOiAnU3F1aXJyZWwnLFxcclxcbiAgICBzaG9ydF9uYW1lczogWydzaGlwaXQnLCAnc3F1aXJyZWwnXSxcXHJcXG4gICAga2V5d29yZHM6IFsnZ2l0aHViJ10sXFxyXFxuICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9naXRodWIuZ2l0aHViYXNzZXRzLmNvbS9pbWFnZXMvaWNvbnMvZW1vamkvc2hpcGl0LnBuZycsXFxyXFxuICB9LFxcclxcbl1cXHJcXG5cXHJcXG5sZXQgaW5kZXggPSBuZXcgRW1vamlJbmRleChkYXRhLCB7XFxyXFxuICBjdXN0b206IENVU1RPTV9FTU9KSVMsXFxyXFxufSlcXHJcXG5cXHJcXG5sZXQgaW5kZXhGaWx0ZXJlZCA9IG5ldyBFbW9qaUluZGV4KGRhdGEsIHtcXHJcXG4gIGN1c3RvbTogQ1VTVE9NX0VNT0pJUyxcXHJcXG4gIGVtb2ppc1RvU2hvd0ZpbHRlcjogKGVtb2ppKSA9PiB7XFxyXFxuICAgIHJldHVybiBlbW9qaS5zaG9ydF9uYW1lc1swXS5tYXRjaCgvXmZsYWcuKi8pICE9PSBudWxsXFxyXFxuICB9LFxcclxcbn0pXFxyXFxuXFxyXFxuY29uc3QgaTE4biA9IHtcXHJcXG4gIGNhdGVnb3JpZXM6IHtcXHJcXG4gICAgc2VhcmNoOiAn5pCc57Si57uT5p6cJyxcXHJcXG4gICAgcmVjZW50OiAn57uP5bi45L2/55SoJyxcXHJcXG4gICAgc21pbGV5czogJ+W/g+aDhScsXFxyXFxuICAgIHBlb3BsZTogJ+S6uueJqScsXFxyXFxuICAgIG5hdHVyZTogJ+WKqOeJqSAmIOWkp+iHqueEticsXFxyXFxuICAgIGZvb2RzOiAn6aOf54mpICYg6aWu5paZJyxcXHJcXG4gICAgYWN0aXZpdHk6ICfmtLvliqgnLFxcclxcbiAgICBwbGFjZXM6ICfml4XooYwgJiDlnLDmoIcnLFxcclxcbiAgICBvYmplY3RzOiAn54mp5L2TJyxcXHJcXG4gICAgc3ltYm9sczogJ+espuWPtycsXFxyXFxuICAgIGZsYWdzOiAn5Zu95peXJyxcXHJcXG4gICAgY3VzdG9tOiAn6Ieq5a6a5LmJJyxcXHJcXG4gIH0sXFxyXFxufVxcclxcblxcclxcbmNvbnN0IGluZGV4STE4biA9IG5ldyBFbW9qaUluZGV4KGRhdGEsIHtcXHJcXG4gIGV4Y2x1ZGU6IFtcXHJcXG4gICAgJ2ZsYWdzJyxcXHJcXG4gICAgJ3N5bWJvbHMnLFxcclxcbiAgICAnb2JqZWN0cycsXFxyXFxuICAgICdhY3Rpdml0eScsXFxyXFxuICAgICdmb29kcycsXFxyXFxuICAgICdwZW9wbGUnLFxcclxcbiAgICAncGxhY2VzJyxcXHJcXG4gIF0sXFxyXFxufSlcXHJcXG5cXHJcXG5jb25zdCBpbmRleEluY2x1ZGUgPSBuZXcgRW1vamlJbmRleChkYXRhLCB7XFxyXFxuICBpbmNsdWRlOiBbJ25hdHVyZScsICdzbWlsZXlzJywgJ3JlY2VudCddLFxcclxcbn0pXFxyXFxuXFxyXFxuZXhwb3J0IGRlZmF1bHQge1xcclxcbiAgZGF0YSgpIHtcXHJcXG4gICAgcmV0dXJuIHtcXHJcXG4gICAgICBpbmRleDogaW5kZXgsXFxyXFxuICAgICAgaW5kZXhGaWx0ZXJlZDogaW5kZXhGaWx0ZXJlZCxcXHJcXG4gICAgICBpbmRleEluY2x1ZGU6IGluZGV4SW5jbHVkZSxcXHJcXG4gICAgICBpbmRleEkxOG46IGluZGV4STE4bixcXHJcXG4gICAgICBpMThuOiBpMThuLFxcclxcbiAgICAgIGFjdGl2ZVNldDogJ25hdGl2ZScsXFxyXFxuICAgICAgZW1vamk6ICdwb2ludF91cCcsXFxyXFxuICAgICAgdGl0bGU6ICdQaWNrIHlvdXIgZW1vamnigKYnLFxcclxcbiAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcXHJcXG4gICAgICBlbW9qaVBpY2tlckRpYWxvZzogZmFsc2UsXFxyXFxuICAgICAgZW1vamlQaWNrZXJDdXN0b21EaWFsb2c6IGZhbHNlLFxcclxcbiAgICAgIGVtb2ppc091dHB1dDogJycsXFxyXFxuICAgICAgc2VsZWN0ZWRFbW9qaXM6IFtdLFxcclxcbiAgICAgIGZsYWdzVmlzaWJsZTogdHJ1ZSxcXHJcXG4gICAgfVxcclxcbiAgfSxcXHJcXG4gIGNvbXB1dGVkOiB7XFxyXFxuICAgIG5hdGl2ZSgpIHtcXHJcXG4gICAgICByZXR1cm4gdGhpcy5hY3RpdmVTZXQgPT0gJ25hdGl2ZSdcXHJcXG4gICAgfSxcXHJcXG4gICAgc21pbGUoKSB7XFxyXFxuICAgICAgLy8gU3RhdGljIGVtb2ppIGV4YW1wbGVcXHJcXG4gICAgICBsZXQgZW1vamkgPSBpbmRleC5maW5kRW1vamkoJzpzbWlsZTonKVxcclxcbiAgICAgIC8vIE5vdGUsIHRoYXQgcG9zaXRpb24gaW4gdGhlIGVtb2ppIHNoZWV0IGlzIGNhbGN1bGF0ZWQgYnlcXHJcXG4gICAgICAvLyBgZW1vamlgIG9iamVjdFxcclxcbiAgICAgIGxldCBzdHlsZSA9IGBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAke2Vtb2ppLmdldFBvc2l0aW9uKCl9OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cHM6Ly91bnBrZy5jb20vZW1vamktZGF0YXNvdXJjZS10d2l0dGVyQDE0LjAuMC9pbWcvdHdpdHRlci9zaGVldHMtMjU2LzY0LnBuZyk7IHdpZHRoOiAyNHB4OyBoZWlnaHQ6IDI0cHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgYmFja2dyb3VuZC1zaXplOiA1NzAwJWBcXHJcXG4gICAgICByZXR1cm4gYDxkaXYgY2xhc3M9J2Vtb2ppJyBzdHlsZT1cXFwiJHtzdHlsZX1cXFwiPjwvZGl2PmBcXHJcXG4gICAgfSxcXHJcXG4gICAgc2FudGFFbW9qaU9iamVjdCgpIHtcXHJcXG4gICAgICByZXR1cm4gaW5kZXguZmluZEVtb2ppKCc6c2FudGE6JylcXHJcXG4gICAgfSxcXHJcXG4gIH0sXFxyXFxuICBtZXRob2RzOiB7XFxyXFxuICAgIHRvZ2dsZVZpc2libGUoKSB7XFxyXFxuICAgICAgdGhpcy5pc1Zpc2libGUgPSAhdGhpcy5pc1Zpc2libGVcXHJcXG4gICAgfSxcXHJcXG4gICAgdG9nZ2xlRmxhZ3NWaXNpYmxlKCkge1xcclxcbiAgICAgIHRoaXMuZmxhZ3NWaXNpYmxlID0gIXRoaXMuZmxhZ3NWaXNpYmxlXFxyXFxuICAgICAgaWYgKCF0aGlzLmZsYWdzVmlzaWJsZSkge1xcclxcbiAgICAgICAgdGhpcy4kcmVmcy5mbGFncy5vbkFuY2hvckNsaWNrKHRoaXMuJHJlZnMuZmxhZ3MuY2F0ZWdvcmllc1swXSlcXHJcXG4gICAgICB9XFxyXFxuICAgIH0sXFxyXFxuICAgIHNob3dFbW9qaShlbW9qaSkge1xcclxcbiAgICAgIHRoaXMuc2VsZWN0ZWRFbW9qaXMucHVzaChlbW9qaSlcXHJcXG4gICAgICBpZiAoZW1vamkubmF0aXZlKSB7XFxyXFxuICAgICAgICB0aGlzLmVtb2ppc091dHB1dCA9IHRoaXMuZW1vamlzT3V0cHV0ICsgZW1vamkubmF0aXZlXFxyXFxuICAgICAgfSBlbHNlIHtcXHJcXG4gICAgICAgIHRoaXMuZW1vamlzT3V0cHV0ID0gdGhpcy5lbW9qaXNPdXRwdXQgKyAnPydcXHJcXG4gICAgICB9XFxyXFxuICAgIH0sXFxyXFxuICB9LFxcclxcbiAgY29tcG9uZW50czoge1xcclxcbiAgICBQaWNrZXIsXFxyXFxuICAgIEVtb2ppLFxcclxcbiAgICBRQnRuLFxcclxcbiAgICBRRGlhbG9nLFxcclxcbiAgfSxcXHJcXG59XFxyXFxuPC9zY3JpcHQ+XFxyXFxuXFxyXFxuPHN0eWxlIHNjb3BlZD5cXHJcXG5idXR0b24gKyBidXR0b24ge1xcclxcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xcclxcbn1cXHJcXG5idXR0b24ge1xcclxcbiAgcGFkZGluZzogMC40ZW0gMC42ZW07XFxyXFxuICBib3JkZXItcmFkaXVzOiA1cHg7XFxyXFxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XFxyXFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcclxcbiAgb3V0bGluZTogMDtcXHJcXG4gIGN1cnNvcjogcG9pbnRlcjtcXHJcXG59XFxyXFxuXFxyXFxuYnV0dG9uW2Rpc2FibGVkXSB7XFxyXFxuICBib3JkZXItY29sb3I6ICNhZTY1YzU7XFxyXFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxyXFxufVxcclxcblxcclxcbi5tb2RhbCB7XFxyXFxuICBjb2xvcjogcmVkO1xcclxcbn1cXHJcXG5cXHJcXG4vKipcXHJcXG4gKiBTZWUgaHR0cHM6Ly92dWUtbG9hZGVyLnZ1ZWpzLm9yZy9ndWlkZS9zY29wZWQtY3NzLmh0bWwjZGVlcC1zZWxlY3RvcnNcXHJcXG4gKiB0aGUgYD4+PmAgYWxsb3dzIHRvIGFwcGx5IHNjb3BlZCBjc3MgdG8gY2hpbGQgZWxlbWVudCB0aGF0IGlzIGdlbmVyYXRlZFxcclxcbiAqIGR5bmFtaWNhbGx5XFxyXFxuKiovXFxyXFxuLm1vZGFsID4+PiAubW9kYWwtc2Nyb2xsIHtcXHJcXG4gIGNvbG9yOiByZWQ7XFxyXFxuICBtYXgtaGVpZ2h0OiBub25lO1xcclxcbn1cXHJcXG4ubW9kYWwgLm1vZGFsLWJvZHkge1xcclxcbiAgbWF4LWhlaWdodDogbm9uZTtcXHJcXG59XFxyXFxuXFxyXFxuaDEge1xcclxcbiAgZm9udC1mYW1pbHk6IENvdXJpZXI7XFxyXFxuICBmb250LXNpemU6IDJyZW07XFxyXFxufVxcclxcblxcclxcbmgyIHtcXHJcXG4gIGZvbnQtZmFtaWx5OiBDb3VyaWVyO1xcclxcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xcclxcbiAgbWFyZ2luLXRvcDogMnJlbTtcXHJcXG59XFxyXFxuXFxyXFxuLmFwcCAucm93IHtcXHJcXG4gIGRpc3BsYXk6IGJsb2NrO1xcclxcbn1cXHJcXG5cXHJcXG4ucm93ICsgLnJvdyB7XFxyXFxuICBtYXJnaW4tdG9wOiAyZW07XFxyXFxufVxcclxcblxcclxcbi5yb3ctc21hbGwge1xcclxcbiAgbWFyZ2luLXRvcDogMWVtO1xcclxcbn1cXHJcXG5cXHJcXG4uZW1vamktbWFydCB7XFxyXFxuICBtYXJnaW46IDAgYXV0bztcXHJcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxyXFxufVxcclxcblxcclxcbi5lbW9qaS1tYXJ0LXRpdGxlLWxhYmVsIHtcXHJcXG4gIGZvbnQtc2l6ZTogMjFweDtcXHJcXG59XFxyXFxuXFxyXFxuLnBvcHVwIHtcXHJcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXHJcXG4gIHdpZHRoOiAxMDAlO1xcclxcbiAgaGVpZ2h0OiAxMDB2aDtcXHJcXG4gIGxlZnQ6IDA7XFxyXFxuICB0b3A6IDA7XFxyXFxuICB6LWluZGV4OiAyMDA7XFxyXFxuICBiYWNrZ3JvdW5kOiByZWJlY2NhcHVycGxlO1xcclxcbiAgb3BhY2l0eTogOTUlO1xcclxcbn1cXHJcXG4ucG9wdXAtYm94IHtcXHJcXG4gIGhlaWdodDogMTAwJTtcXHJcXG4gIG92ZXJmbG93OiBhdXRvO1xcclxcbiAgZGlzcGxheTogYmxvY2s7XFxyXFxuICBwYWRkaW5nLXRvcDogMTIwcHg7XFxyXFxuICBwYWRkaW5nLWJvdHRvbTogODBweDtcXHJcXG59XFxyXFxuLnBvcHVwLWNvbnRlbnQge1xcclxcbiAgYmFja2dyb3VuZDogd2hpdGU7XFxyXFxuICBib3gtc2hhZG93OiAwcHggMjRweCA1NHB4IHJnYmEoMjAsIDI4LCA0OSwgMC4xNCk7XFxyXFxuICBib3JkZXItcmFkaXVzOiAxOHB4O1xcclxcbiAgcGFkZGluZzogNnB4IDZweCA5cHggNnB4O1xcclxcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcclxcbiAgd2lkdGg6IDEwMCU7XFxyXFxuICBtYXgtd2lkdGg6IDQ2MnB4O1xcclxcbiAgbWFyZ2luOiAwIGF1dG87XFxyXFxufVxcclxcbi5wb3B1cC1jbG9zZSB7XFxyXFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxyXFxuICB0b3A6IDIwcHg7XFxyXFxuICByaWdodDogMzBweDtcXHJcXG4gIGN1cnNvcjogcG9pbnRlcjtcXHJcXG59XFxyXFxuXFxyXFxuLnJvdy1zbWFsbC1waWNrZXIgPj4+IC5lbW9qaS1tYXJ0LWFuY2hvcnMgc3ZnIHtcXHJcXG4gIHdpZHRoOiA5cHg7XFxyXFxuICBoZWlnaHQ6IDlweDtcXHJcXG59XFxyXFxuLnJvdy1zbWFsbC1waWNrZXIgPj4+IC5lbW9qaS1tYXJ0LXRpdGxlLWxhYmVsIHtcXHJcXG4gIGZvbnQtc2l6ZTogOXB4O1xcclxcbn1cXHJcXG4ucm93LXNtYWxsLXBpY2tlciA+Pj4gLmVtb2ppLW1hcnQtcHJldmlldy1kYXRhIHtcXHJcXG4gIGxlZnQ6IDQwcHg7XFxyXFxuICBmb250LXNpemU6IDlweDtcXHJcXG59XFxyXFxuLnJvdy1zbWFsbC1waWNrZXIgPj4+IC5lbW9qaS1tYXJ0LXByZXZpZXctbmFtZSB7XFxyXFxuICBmb250LXNpemU6IDlweDtcXHJcXG59XFxyXFxuLnJvdy1zbWFsbC1waWNrZXIgPj4+IC5lbW9qaS1tYXJ0LXByZXZpZXctZW1vamkgLmVtb2ppLXR5cGUtbmF0aXZlIHtcXHJcXG4gIGZvbnQtc2l6ZTogMTJweDtcXHJcXG4gIHdpZHRoOiAxMnB4O1xcclxcbiAgaGVpZ2h0OiAxMnB4O1xcclxcbn1cXHJcXG48L3N0eWxlPlxcclxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuLypcbiAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcpIHtcbiAgdmFyIGxpc3QgPSBbXTsgLy8gcmV0dXJuIHRoZSBsaXN0IG9mIG1vZHVsZXMgYXMgY3NzIHN0cmluZ1xuXG4gIGxpc3QudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHZhciBjb250ZW50ID0gXCJcIjtcbiAgICAgIHZhciBuZWVkTGF5ZXIgPSB0eXBlb2YgaXRlbVs1XSAhPT0gXCJ1bmRlZmluZWRcIjtcblxuICAgICAgaWYgKGl0ZW1bNF0pIHtcbiAgICAgICAgY29udGVudCArPSBcIkBzdXBwb3J0cyAoXCIuY29uY2F0KGl0ZW1bNF0sIFwiKSB7XCIpO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXRlbVsyXSkge1xuICAgICAgICBjb250ZW50ICs9IFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIiB7XCIpO1xuICAgICAgfVxuXG4gICAgICBpZiAobmVlZExheWVyKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbGF5ZXJcIi5jb25jYXQoaXRlbVs1XS5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KGl0ZW1bNV0pIDogXCJcIiwgXCIge1wiKTtcbiAgICAgIH1cblxuICAgICAgY29udGVudCArPSBjc3NXaXRoTWFwcGluZ1RvU3RyaW5nKGl0ZW0pO1xuXG4gICAgICBpZiAobmVlZExheWVyKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG5cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG5cbiAgICAgIGlmIChpdGVtWzRdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH0pLmpvaW4oXCJcIik7XG4gIH07IC8vIGltcG9ydCBhIGxpc3Qgb2YgbW9kdWxlcyBpbnRvIHRoZSBsaXN0XG5cblxuICBsaXN0LmkgPSBmdW5jdGlvbiBpKG1vZHVsZXMsIG1lZGlhLCBkZWR1cGUsIHN1cHBvcnRzLCBsYXllcikge1xuICAgIGlmICh0eXBlb2YgbW9kdWxlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbW9kdWxlcyA9IFtbbnVsbCwgbW9kdWxlcywgdW5kZWZpbmVkXV07XG4gICAgfVxuXG4gICAgdmFyIGFscmVhZHlJbXBvcnRlZE1vZHVsZXMgPSB7fTtcblxuICAgIGlmIChkZWR1cGUpIHtcbiAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgdGhpcy5sZW5ndGg7IGsrKykge1xuICAgICAgICB2YXIgaWQgPSB0aGlzW2tdWzBdO1xuXG4gICAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgICAgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpZF0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yICh2YXIgX2sgPSAwOyBfayA8IG1vZHVsZXMubGVuZ3RoOyBfaysrKSB7XG4gICAgICB2YXIgaXRlbSA9IFtdLmNvbmNhdChtb2R1bGVzW19rXSk7XG5cbiAgICAgIGlmIChkZWR1cGUgJiYgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpdGVtWzBdXSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBsYXllciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW1bNV0gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQGxheWVyXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChpdGVtWzVdKSA6IFwiXCIsIFwiIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKG1lZGlhKSB7XG4gICAgICAgIGlmICghaXRlbVsyXSkge1xuICAgICAgICAgIGl0ZW1bMl0gPSBtZWRpYTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtWzFdID0gXCJAbWVkaWEgXCIuY29uY2F0KGl0ZW1bMl0sIFwiIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzJdID0gbWVkaWE7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHN1cHBvcnRzKSB7XG4gICAgICAgIGlmICghaXRlbVs0XSkge1xuICAgICAgICAgIGl0ZW1bNF0gPSBcIlwiLmNvbmNhdChzdXBwb3J0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQHN1cHBvcnRzIChcIi5jb25jYXQoaXRlbVs0XSwgXCIpIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzRdID0gc3VwcG9ydHM7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGlzdC5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gbGlzdDtcbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHVybCwgb3B0aW9ucykge1xuICBpZiAoIW9wdGlvbnMpIHtcbiAgICBvcHRpb25zID0ge307XG4gIH1cblxuICBpZiAoIXVybCkge1xuICAgIHJldHVybiB1cmw7XG4gIH1cblxuICB1cmwgPSBTdHJpbmcodXJsLl9fZXNNb2R1bGUgPyB1cmwuZGVmYXVsdCA6IHVybCk7IC8vIElmIHVybCBpcyBhbHJlYWR5IHdyYXBwZWQgaW4gcXVvdGVzLCByZW1vdmUgdGhlbVxuXG4gIGlmICgvXlsnXCJdLipbJ1wiXSQvLnRlc3QodXJsKSkge1xuICAgIHVybCA9IHVybC5zbGljZSgxLCAtMSk7XG4gIH1cblxuICBpZiAob3B0aW9ucy5oYXNoKSB7XG4gICAgdXJsICs9IG9wdGlvbnMuaGFzaDtcbiAgfSAvLyBTaG91bGQgdXJsIGJlIHdyYXBwZWQ/XG4gIC8vIFNlZSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXZhbHVlcy0zLyN1cmxzXG5cblxuICBpZiAoL1tcIicoKSBcXHRcXG5dfCglMjApLy50ZXN0KHVybCkgfHwgb3B0aW9ucy5uZWVkUXVvdGVzKSB7XG4gICAgcmV0dXJuIFwiXFxcIlwiLmNvbmNhdCh1cmwucmVwbGFjZSgvXCIvZywgJ1xcXFxcIicpLnJlcGxhY2UoL1xcbi9nLCBcIlxcXFxuXCIpLCBcIlxcXCJcIik7XG4gIH1cblxuICByZXR1cm4gdXJsO1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXRlbSkge1xuICB2YXIgY29udGVudCA9IGl0ZW1bMV07XG4gIHZhciBjc3NNYXBwaW5nID0gaXRlbVszXTtcblxuICBpZiAoIWNzc01hcHBpbmcpIHtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgYnRvYSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgdmFyIGJhc2U2NCA9IGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGNzc01hcHBpbmcpKSkpO1xuICAgIHZhciBkYXRhID0gXCJzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxcIi5jb25jYXQoYmFzZTY0KTtcbiAgICB2YXIgc291cmNlTWFwcGluZyA9IFwiLyojIFwiLmNvbmNhdChkYXRhLCBcIiAqL1wiKTtcbiAgICB2YXIgc291cmNlVVJMcyA9IGNzc01hcHBpbmcuc291cmNlcy5tYXAoZnVuY3Rpb24gKHNvdXJjZSkge1xuICAgICAgcmV0dXJuIFwiLyojIHNvdXJjZVVSTD1cIi5jb25jYXQoY3NzTWFwcGluZy5zb3VyY2VSb290IHx8IFwiXCIpLmNvbmNhdChzb3VyY2UsIFwiICovXCIpO1xuICAgIH0pO1xuICAgIHJldHVybiBbY29udGVudF0uY29uY2F0KHNvdXJjZVVSTHMpLmNvbmNhdChbc291cmNlTWFwcGluZ10pLmpvaW4oXCJcXG5cIik7XG4gIH1cblxuICByZXR1cm4gW2NvbnRlbnRdLmpvaW4oXCJcXG5cIik7XG59OyIsIi8qIVxuICogUXVhc2FyIEZyYW1ld29yayB2MC4xNy4yMFxuICogKGMpIDIwMTYtcHJlc2VudCBSYXp2YW4gU3RvZW5lc2N1XG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXG4gKi9cbnZhciB3ZWJTdG9yYWdlLGlzU1NSPVwidW5kZWZpbmVkXCI9PXR5cGVvZiB3aW5kb3csZnJvbVNTUj0hMSxvblNTUj1pc1NTUjtmdW5jdGlvbiBnZXRNYXRjaCh0LGUpe3ZhciBpPS8oZWRnZSlcXC8oW1xcdy5dKykvLmV4ZWModCl8fC8ob3ByKVtcXC9dKFtcXHcuXSspLy5leGVjKHQpfHwvKHZpdmFsZGkpW1xcL10oW1xcdy5dKykvLmV4ZWModCl8fC8oY2hyb21lKVtcXC9dKFtcXHcuXSspLy5leGVjKHQpfHwvKGllbW9iaWxlKVtcXC9dKFtcXHcuXSspLy5leGVjKHQpfHwvKHZlcnNpb24pKGFwcGxld2Via2l0KVtcXC9dKFtcXHcuXSspLiooc2FmYXJpKVtcXC9dKFtcXHcuXSspLy5leGVjKHQpfHwvKHdlYmtpdClbXFwvXShbXFx3Ll0rKS4qKHZlcnNpb24pW1xcL10oW1xcdy5dKykuKihzYWZhcmkpW1xcL10oW1xcdy5dKykvLmV4ZWModCl8fC8od2Via2l0KVtcXC9dKFtcXHcuXSspLy5leGVjKHQpfHwvKG9wZXJhKSg/Oi4qdmVyc2lvbnwpW1xcL10oW1xcdy5dKykvLmV4ZWModCl8fC8obXNpZSkgKFtcXHcuXSspLy5leGVjKHQpfHx0LmluZGV4T2YoXCJ0cmlkZW50XCIpPj0wJiYvKHJ2KSg/Ojp8ICkoW1xcdy5dKykvLmV4ZWModCl8fHQuaW5kZXhPZihcImNvbXBhdGlibGVcIik8MCYmLyhtb3ppbGxhKSg/Oi4qPyBydjooW1xcdy5dKyl8KS8uZXhlYyh0KXx8W107cmV0dXJue2Jyb3dzZXI6aVs1XXx8aVszXXx8aVsxXXx8XCJcIix2ZXJzaW9uOmlbMl18fGlbNF18fFwiMFwiLHZlcnNpb25OdW1iZXI6aVs0XXx8aVsyXXx8XCIwXCIscGxhdGZvcm06ZVswXXx8XCJcIn19ZnVuY3Rpb24gZ2V0UGxhdGZvcm1NYXRjaCh0KXtyZXR1cm4vKGlwYWQpLy5leGVjKHQpfHwvKGlwb2QpLy5leGVjKHQpfHwvKHdpbmRvd3MgcGhvbmUpLy5leGVjKHQpfHwvKGlwaG9uZSkvLmV4ZWModCl8fC8oa2luZGxlKS8uZXhlYyh0KXx8LyhzaWxrKS8uZXhlYyh0KXx8LyhhbmRyb2lkKS8uZXhlYyh0KXx8Lyh3aW4pLy5leGVjKHQpfHwvKG1hYykvLmV4ZWModCl8fC8obGludXgpLy5leGVjKHQpfHwvKGNyb3MpLy5leGVjKHQpfHwvKHBsYXlib29rKS8uZXhlYyh0KXx8LyhiYikvLmV4ZWModCl8fC8oYmxhY2tiZXJyeSkvLmV4ZWModCl8fFtdfWZ1bmN0aW9uIGdldFBsYXRmb3JtKHQpe3ZhciBlPWdldE1hdGNoKHQ9KHR8fG5hdmlnYXRvci51c2VyQWdlbnR8fG5hdmlnYXRvci52ZW5kb3J8fHdpbmRvdy5vcGVyYSkudG9Mb3dlckNhc2UoKSxnZXRQbGF0Zm9ybU1hdGNoKHQpKSxpPXt9O3JldHVybiBlLmJyb3dzZXImJihpW2UuYnJvd3Nlcl09ITAsaS52ZXJzaW9uPWUudmVyc2lvbixpLnZlcnNpb25OdW1iZXI9cGFyc2VJbnQoZS52ZXJzaW9uTnVtYmVyLDEwKSksZS5wbGF0Zm9ybSYmKGlbZS5wbGF0Zm9ybV09ITApLChpLmFuZHJvaWR8fGkuYmJ8fGkuYmxhY2tiZXJyeXx8aS5pcGFkfHxpLmlwaG9uZXx8aS5pcG9kfHxpLmtpbmRsZXx8aS5wbGF5Ym9va3x8aS5zaWxrfHxpW1wid2luZG93cyBwaG9uZVwiXSkmJihpLm1vYmlsZT0hMCksKGkuaXBvZHx8aS5pcGFkfHxpLmlwaG9uZSkmJihpLmlvcz0hMCksaVtcIndpbmRvd3MgcGhvbmVcIl0mJihpLndpbnBob25lPSEwLGRlbGV0ZSBpW1wid2luZG93cyBwaG9uZVwiXSksKGkuY3Jvc3x8aS5tYWN8fGkubGludXh8fGkud2luKSYmKGkuZGVza3RvcD0hMCksKGkuY2hyb21lfHxpLm9wcnx8aS5zYWZhcml8fGkudml2YWxkaSkmJihpLndlYmtpdD0hMCksKGkucnZ8fGkuaWVtb2JpbGUpJiYoZS5icm93c2VyPVwiaWVcIixpLmllPSEwKSxpLmVkZ2UmJihlLmJyb3dzZXI9XCJlZGdlXCIsaS5lZGdlPSEwKSwoaS5zYWZhcmkmJmkuYmxhY2tiZXJyeXx8aS5iYikmJihlLmJyb3dzZXI9XCJibGFja2JlcnJ5XCIsaS5ibGFja2JlcnJ5PSEwKSxpLnNhZmFyaSYmaS5wbGF5Ym9vayYmKGUuYnJvd3Nlcj1cInBsYXlib29rXCIsaS5wbGF5Ym9vaz0hMCksaS5vcHImJihlLmJyb3dzZXI9XCJvcGVyYVwiLGkub3BlcmE9ITApLGkuc2FmYXJpJiZpLmFuZHJvaWQmJihlLmJyb3dzZXI9XCJhbmRyb2lkXCIsaS5hbmRyb2lkPSEwKSxpLnNhZmFyaSYmaS5raW5kbGUmJihlLmJyb3dzZXI9XCJraW5kbGVcIixpLmtpbmRsZT0hMCksaS5zYWZhcmkmJmkuc2lsayYmKGUuYnJvd3Nlcj1cInNpbGtcIixpLnNpbGs9ITApLGkudml2YWxkaSYmKGUuYnJvd3Nlcj1cInZpdmFsZGlcIixpLnZpdmFsZGk9ITApLGkubmFtZT1lLmJyb3dzZXIsaS5wbGF0Zm9ybT1lLnBsYXRmb3JtLGlzU1NSfHwod2luZG93LnByb2Nlc3MmJndpbmRvdy5wcm9jZXNzLnZlcnNpb25zJiZ3aW5kb3cucHJvY2Vzcy52ZXJzaW9ucy5lbGVjdHJvbj9pLmVsZWN0cm9uPSEwOjA9PT1kb2N1bWVudC5sb2NhdGlvbi5ocmVmLmluZGV4T2YoXCJjaHJvbWUtZXh0ZW5zaW9uOi8vXCIpP2kuY2hyb21lRXh0PSEwOih3aW5kb3cuX2NvcmRvdmFOYXRpdmV8fHdpbmRvdy5jb3Jkb3ZhKSYmKGkuY29yZG92YT0hMCksKGZyb21TU1I9dm9pZCAwPT09aS5jb3Jkb3ZhJiZ2b2lkIDA9PT1pLmVsZWN0cm9uJiYhIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJbZGF0YS1zZXJ2ZXItcmVuZGVyZWRdXCIpKSYmKG9uU1NSPSEwKSksaX1mdW5jdGlvbiBoYXNXZWJTdG9yYWdlKCl7aWYodm9pZCAwIT09d2ViU3RvcmFnZSlyZXR1cm4gd2ViU3RvcmFnZTt0cnl7aWYod2luZG93LmxvY2FsU3RvcmFnZSlyZXR1cm4gd2ViU3RvcmFnZT0hMCwhMH1jYXRjaCh0KXt9cmV0dXJuIHdlYlN0b3JhZ2U9ITEsITF9ZnVuY3Rpb24gZ2V0Q2xpZW50UHJvcGVydGllcygpe3JldHVybntoYXM6e3RvdWNoOiEhKFwib250b3VjaHN0YXJ0XCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpfHx3aW5kb3cubmF2aWdhdG9yLm1zTWF4VG91Y2hQb2ludHM+MCx3ZWJTdG9yYWdlOmhhc1dlYlN0b3JhZ2UoKX0sd2l0aGluOntpZnJhbWU6d2luZG93LnNlbGYhPT13aW5kb3cudG9wfX19dmFyIFBsYXRmb3JtPXtoYXM6e3RvdWNoOiExLHdlYlN0b3JhZ2U6ITF9LHdpdGhpbjp7aWZyYW1lOiExfSxwYXJzZVNTUjpmdW5jdGlvbih0KXtyZXR1cm4gdD97aXM6Z2V0UGxhdGZvcm0odC5yZXEuaGVhZGVyc1tcInVzZXItYWdlbnRcIl0pLGhhczp0aGlzLmhhcyx3aXRoaW46dGhpcy53aXRoaW59Ok9iamVjdC5hc3NpZ24oe30se2lzOmdldFBsYXRmb3JtKCl9LGdldENsaWVudFByb3BlcnRpZXMoKSl9LGluc3RhbGw6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXRoaXM7aXNTU1I/ZS5zZXJ2ZXIucHVzaChmdW5jdGlvbih0LGUpe3QucGxhdGZvcm09cy5wYXJzZVNTUihlLnNzcil9KToodGhpcy5pcz1nZXRQbGF0Zm9ybSgpLGZyb21TU1I/KGUudGFrZW92ZXIucHVzaChmdW5jdGlvbih0KXtvblNTUj1mcm9tU1NSPSExLE9iamVjdC5hc3NpZ24odC5wbGF0Zm9ybSxnZXRDbGllbnRQcm9wZXJ0aWVzKCkpfSksaS51dGlsLmRlZmluZVJlYWN0aXZlKHQsXCJwbGF0Zm9ybVwiLHRoaXMpKTooT2JqZWN0LmFzc2lnbih0aGlzLGdldENsaWVudFByb3BlcnRpZXMoKSksdC5wbGF0Zm9ybT10aGlzKSl9fTtmdW5jdGlvbiBhc3NpZ24odCxlKXt2YXIgaT1hcmd1bWVudHM7aWYodm9pZCAwPT09dHx8bnVsbD09PXQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjb252ZXJ0IGZpcnN0IGFyZ3VtZW50IHRvIG9iamVjdFwiKTtmb3IodmFyIHM9T2JqZWN0KHQpLG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgbz1pW25dO2lmKHZvaWQgMCE9PW8mJm51bGwhPT1vKWZvcih2YXIgcj1PYmplY3Qua2V5cyhPYmplY3QobykpLGE9MCxsPXIubGVuZ3RoO2E8bDthKyspe3ZhciBjPXJbYV0saD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sYyk7dm9pZCAwIT09aCYmaC5lbnVtZXJhYmxlJiYoc1tjXT1vW2NdKX19cmV0dXJuIHN9T2JqZWN0LmFzc2lnbnx8T2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdCxcImFzc2lnblwiLHtlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTphc3NpZ259KSxOdW1iZXIuaXNJbnRlZ2VyfHwoTnVtYmVyLmlzSW50ZWdlcj1mdW5jdGlvbih0KXtyZXR1cm5cIm51bWJlclwiPT10eXBlb2YgdCYmaXNGaW5pdGUodCkmJk1hdGguZmxvb3IodCk9PT10fSksQXJyYXkucHJvdG90eXBlLmluY2x1ZGVzfHwoQXJyYXkucHJvdG90eXBlLmluY2x1ZGVzPWZ1bmN0aW9uKHQsZSl7dmFyIGk9T2JqZWN0KHRoaXMpLHM9cGFyc2VJbnQoaS5sZW5ndGgsMTApfHwwO2lmKDA9PT1zKXJldHVybiExO3ZhciBuLG8scj1wYXJzZUludChlLDEwKXx8MDtmb3Iocj49MD9uPXI6KG49cytyKTwwJiYobj0wKTtuPHM7KXtpZih0PT09KG89aVtuXSl8fHQhPXQmJm8hPW8pcmV0dXJuITA7bisrfXJldHVybiExfSksU3RyaW5nLnByb3RvdHlwZS5zdGFydHNXaXRofHwoU3RyaW5nLnByb3RvdHlwZS5zdGFydHNXaXRoPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU9ZXx8MCx0aGlzLnN1YnN0cihlLHQubGVuZ3RoKT09PXR9KSxTdHJpbmcucHJvdG90eXBlLmVuZHNXaXRofHwoU3RyaW5nLnByb3RvdHlwZS5lbmRzV2l0aD1mdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMudG9TdHJpbmcoKTsoXCJudW1iZXJcIiE9dHlwZW9mIGV8fCFpc0Zpbml0ZShlKXx8TWF0aC5mbG9vcihlKSE9PWV8fGU+aS5sZW5ndGgpJiYoZT1pLmxlbmd0aCksZS09dC5sZW5ndGg7dmFyIHM9aS5pbmRleE9mKHQsZSk7cmV0dXJuLTEhPT1zJiZzPT09ZX0pLGlzU1NSfHwoXCJmdW5jdGlvblwiIT10eXBlb2YgRWxlbWVudC5wcm90b3R5cGUubWF0Y2hlcyYmKEVsZW1lbnQucHJvdG90eXBlLm1hdGNoZXM9RWxlbWVudC5wcm90b3R5cGUubXNNYXRjaGVzU2VsZWN0b3J8fEVsZW1lbnQucHJvdG90eXBlLm1vek1hdGNoZXNTZWxlY3Rvcnx8RWxlbWVudC5wcm90b3R5cGUud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxmdW5jdGlvbih0KXtmb3IodmFyIGU9KHRoaXMuZG9jdW1lbnR8fHRoaXMub3duZXJEb2N1bWVudCkucXVlcnlTZWxlY3RvckFsbCh0KSxpPTA7ZVtpXSYmZVtpXSE9PXRoaXM7KSsraTtyZXR1cm4gQm9vbGVhbihlW2ldKX0pLFwiZnVuY3Rpb25cIiE9dHlwZW9mIEVsZW1lbnQucHJvdG90eXBlLmNsb3Nlc3QmJihFbGVtZW50LnByb3RvdHlwZS5jbG9zZXN0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzO2UmJjE9PT1lLm5vZGVUeXBlOyl7aWYoZS5tYXRjaGVzKHQpKXJldHVybiBlO2U9ZS5wYXJlbnROb2RlfXJldHVybiBudWxsfSksW0VsZW1lbnQucHJvdG90eXBlLENoYXJhY3RlckRhdGEucHJvdG90eXBlLERvY3VtZW50VHlwZS5wcm90b3R5cGVdLmZvckVhY2goZnVuY3Rpb24odCl7dC5oYXNPd25Qcm9wZXJ0eShcInJlbW92ZVwiKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJyZW1vdmVcIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZnVuY3Rpb24oKXtudWxsIT09dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcyl9fSl9KSksQXJyYXkucHJvdG90eXBlLmZpbmR8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsXCJmaW5kXCIse3ZhbHVlOmZ1bmN0aW9uKHQpe2lmKG51bGw9PXRoaXMpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkFycmF5LnByb3RvdHlwZS5maW5kIGNhbGxlZCBvbiBudWxsIG9yIHVuZGVmaW5lZFwiKTtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoXCJwcmVkaWNhdGUgbXVzdCBiZSBhIGZ1bmN0aW9uXCIpO2Zvcih2YXIgZSxpPU9iamVjdCh0aGlzKSxzPWkubGVuZ3RoPj4+MCxuPWFyZ3VtZW50c1sxXSxvPTA7bzxzO28rKylpZihlPWlbb10sdC5jYWxsKG4sZSxvLGkpKXJldHVybiBlfX0pO3ZhciB2ZXJzaW9uPVwiMC4xNy4yMFwiLEhpc3Rvcnk9e19faGlzdG9yeTpbXSxhZGQ6ZnVuY3Rpb24oKXt9LHJlbW92ZTpmdW5jdGlvbigpe30saW5zdGFsbDpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXM7aWYoIWlzU1NSJiZ0LnBsYXRmb3JtLmlzLmNvcmRvdmEpe3RoaXMuYWRkPWZ1bmN0aW9uKHQpe2kuX19oaXN0b3J5LnB1c2godCl9LHRoaXMucmVtb3ZlPWZ1bmN0aW9uKHQpe3ZhciBlPWkuX19oaXN0b3J5LmluZGV4T2YodCk7ZT49MCYmaS5fX2hpc3Rvcnkuc3BsaWNlKGUsMSl9O3ZhciBzPXZvaWQgMD09PWUuY29yZG92YXx8ITEhPT1lLmNvcmRvdmEuYmFja0J1dHRvbkV4aXQ7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImRldmljZXJlYWR5XCIsZnVuY3Rpb24oKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiYmFja2J1dHRvblwiLGZ1bmN0aW9uKCl7aS5fX2hpc3RvcnkubGVuZ3RoP2kuX19oaXN0b3J5LnBvcCgpLmhhbmRsZXIoKTpzJiZcIiMvXCI9PT13aW5kb3cubG9jYXRpb24uaGFzaD9uYXZpZ2F0b3IuYXBwLmV4aXRBcHAoKTp3aW5kb3cuaGlzdG9yeS5iYWNrKCl9LCExKX0pfX19LGxhbmdFbj17bGFuZzpcImVuLXVzXCIsbGFiZWw6e2NsZWFyOlwiQ2xlYXJcIixvazpcIk9LXCIsY2FuY2VsOlwiQ2FuY2VsXCIsY2xvc2U6XCJDbG9zZVwiLHNldDpcIlNldFwiLHNlbGVjdDpcIlNlbGVjdFwiLHJlc2V0OlwiUmVzZXRcIixyZW1vdmU6XCJSZW1vdmVcIix1cGRhdGU6XCJVcGRhdGVcIixjcmVhdGU6XCJDcmVhdGVcIixzZWFyY2g6XCJTZWFyY2hcIixmaWx0ZXI6XCJGaWx0ZXJcIixyZWZyZXNoOlwiUmVmcmVzaFwifSxkYXRlOntkYXlzOlwiU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXlcIi5zcGxpdChcIl9cIiksZGF5c1Nob3J0OlwiU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0XCIuc3BsaXQoXCJfXCIpLG1vbnRoczpcIkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXJcIi5zcGxpdChcIl9cIiksbW9udGhzU2hvcnQ6XCJKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlY1wiLnNwbGl0KFwiX1wiKSxmaXJzdERheU9mV2VlazowLGZvcm1hdDI0aDohMX0scHVsbFRvUmVmcmVzaDp7cHVsbDpcIlB1bGwgZG93biB0byByZWZyZXNoXCIscmVsZWFzZTpcIlJlbGVhc2UgdG8gcmVmcmVzaFwiLHJlZnJlc2g6XCJSZWZyZXNoaW5nLi4uXCJ9LHRhYmxlOntub0RhdGE6XCJObyBkYXRhIGF2YWlsYWJsZVwiLG5vUmVzdWx0czpcIk5vIG1hdGNoaW5nIHJlY29yZHMgZm91bmRcIixsb2FkaW5nOlwiTG9hZGluZy4uLlwiLHNlbGVjdGVkUmVjb3JkczpmdW5jdGlvbih0KXtyZXR1cm4gMT09PXQ/XCIxIHJlY29yZCBzZWxlY3RlZC5cIjooMD09PXQ/XCJOb1wiOnQpK1wiIHJlY29yZHMgc2VsZWN0ZWQuXCJ9LHJlY29yZHNQZXJQYWdlOlwiUmVjb3JkcyBwZXIgcGFnZTpcIixhbGxSb3dzOlwiQWxsXCIscGFnaW5hdGlvbjpmdW5jdGlvbih0LGUsaSl7cmV0dXJuIHQrXCItXCIrZStcIiBvZiBcIitpfSxjb2x1bW5zOlwiQ29sdW1uc1wifSxlZGl0b3I6e3VybDpcIlVSTFwiLGJvbGQ6XCJCb2xkXCIsaXRhbGljOlwiSXRhbGljXCIsc3RyaWtldGhyb3VnaDpcIlN0cmlrZXRocm91Z2hcIix1bmRlcmxpbmU6XCJVbmRlcmxpbmVcIix1bm9yZGVyZWRMaXN0OlwiVW5vcmRlcmVkIExpc3RcIixvcmRlcmVkTGlzdDpcIk9yZGVyZWQgTGlzdFwiLHN1YnNjcmlwdDpcIlN1YnNjcmlwdFwiLHN1cGVyc2NyaXB0OlwiU3VwZXJzY3JpcHRcIixoeXBlcmxpbms6XCJIeXBlcmxpbmtcIix0b2dnbGVGdWxsc2NyZWVuOlwiVG9nZ2xlIEZ1bGxzY3JlZW5cIixxdW90ZTpcIlF1b3RlXCIsbGVmdDpcIkxlZnQgYWxpZ25cIixjZW50ZXI6XCJDZW50ZXIgYWxpZ25cIixyaWdodDpcIlJpZ2h0IGFsaWduXCIsanVzdGlmeTpcIkp1c3RpZnkgYWxpZ25cIixwcmludDpcIlByaW50XCIsb3V0ZGVudDpcIkRlY3JlYXNlIGluZGVudGF0aW9uXCIsaW5kZW50OlwiSW5jcmVhc2UgaW5kZW50YXRpb25cIixyZW1vdmVGb3JtYXQ6XCJSZW1vdmUgZm9ybWF0dGluZ1wiLGZvcm1hdHRpbmc6XCJGb3JtYXR0aW5nXCIsZm9udFNpemU6XCJGb250IFNpemVcIixhbGlnbjpcIkFsaWduXCIsaHI6XCJJbnNlcnQgSG9yaXpvbnRhbCBSdWxlXCIsdW5kbzpcIlVuZG9cIixyZWRvOlwiUmVkb1wiLGhlYWRlcjE6XCJIZWFkZXIgMVwiLGhlYWRlcjI6XCJIZWFkZXIgMlwiLGhlYWRlcjM6XCJIZWFkZXIgM1wiLGhlYWRlcjQ6XCJIZWFkZXIgNFwiLGhlYWRlcjU6XCJIZWFkZXIgNVwiLGhlYWRlcjY6XCJIZWFkZXIgNlwiLHBhcmFncmFwaDpcIlBhcmFncmFwaFwiLGNvZGU6XCJDb2RlXCIsc2l6ZTE6XCJWZXJ5IHNtYWxsXCIsc2l6ZTI6XCJBIGJpdCBzbWFsbFwiLHNpemUzOlwiTm9ybWFsXCIsc2l6ZTQ6XCJNZWRpdW0tbGFyZ2VcIixzaXplNTpcIkJpZ1wiLHNpemU2OlwiVmVyeSBiaWdcIixzaXplNzpcIk1heGltdW1cIixkZWZhdWx0Rm9udDpcIkRlZmF1bHQgRm9udFwifSx0cmVlOntub05vZGVzOlwiTm8gbm9kZXMgYXZhaWxhYmxlXCIsbm9SZXN1bHRzOlwiTm8gbWF0Y2hpbmcgbm9kZXMgZm91bmRcIn19LGkxOG49e2luc3RhbGw6ZnVuY3Rpb24odCxlLGkscyl7dmFyIG49dGhpcztpc1NTUiYmZS5zZXJ2ZXIucHVzaChmdW5jdGlvbih0LGUpe3ZhciBpPXtsYW5nOnQuaTE4bi5sYW5nLGRpcjp0LmkxOG4ucnRsP1wicnRsXCI6XCJsdHJcIn0scz1lLnNzci5zZXRIdG1sQXR0cnM7XCJmdW5jdGlvblwiPT10eXBlb2Ygcz9zKGkpOmUuc3NyLlFfSFRNTF9BVFRSUz1PYmplY3Qua2V5cyhpKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQrXCI9XCIraVt0XX0pLmpvaW4oXCIgXCIpfSksdGhpcy5zZXQ9ZnVuY3Rpb24oZSl7aWYodm9pZCAwPT09ZSYmKGU9bGFuZ0VuKSxlLnNldD1uLnNldCxlLmdldExvY2FsZT1uLmdldExvY2FsZSxlLnJ0bD1lLnJ0bHx8ITEsIWlzU1NSKXt2YXIgcz1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7cy5zZXRBdHRyaWJ1dGUoXCJkaXJcIixlLnJ0bD9cInJ0bFwiOlwibHRyXCIpLHMuc2V0QXR0cmlidXRlKFwibGFuZ1wiLGUubGFuZyl9aXNTU1J8fHQuaTE4bj90LmkxOG49ZTppLnV0aWwuZGVmaW5lUmVhY3RpdmUodCxcImkxOG5cIixlKSxuLm5hbWU9ZS5sYW5nLG4ubGFuZz1lfSx0aGlzLnNldChzKX0sZ2V0TG9jYWxlOmZ1bmN0aW9uKCl7aWYoIWlzU1NSKXt2YXIgdD1uYXZpZ2F0b3IubGFuZ3VhZ2V8fG5hdmlnYXRvci5sYW5ndWFnZXNbMF18fG5hdmlnYXRvci5icm93c2VyTGFuZ3VhZ2V8fG5hdmlnYXRvci51c2VyTGFuZ3VhZ2V8fG5hdmlnYXRvci5zeXN0ZW1MYW5ndWFnZTtyZXR1cm4gdD90LnRvTG93ZXJDYXNlKCk6dm9pZCAwfX19O2Z1bmN0aW9uIHJnYlRvSGV4KHQpe3ZhciBlPXQucixpPXQuZyxzPXQuYixuPXQuYSxvPXZvaWQgMCE9PW47aWYoZT1NYXRoLnJvdW5kKGUpLGk9TWF0aC5yb3VuZChpKSxzPU1hdGgucm91bmQocyksZT4yNTV8fGk+MjU1fHxzPjI1NXx8byYmbj4xMDApdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIDMgbnVtYmVycyBiZWxvdyAyNTYgKGFuZCBvcHRpb25hbGx5IG9uZSBiZWxvdyAxMDApXCIpO3JldHVybiBuPW8/KDI1NnxNYXRoLnJvdW5kKDI1NSpuLzEwMCkpLnRvU3RyaW5nKDE2KS5zbGljZSgxKTpcIlwiLFwiI1wiKyhzfGk8PDh8ZTw8MTZ8MTw8MjQpLnRvU3RyaW5nKDE2KS5zbGljZSgxKStufWZ1bmN0aW9uIGhleFRvUmdiKHQpe2lmKFwic3RyaW5nXCIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBhIHN0cmluZ1wiKTszPT09KHQ9dC5yZXBsYWNlKC9eIy8sXCJcIikpLmxlbmd0aD90PXRbMF0rdFswXSt0WzFdK3RbMV0rdFsyXSt0WzJdOjQ9PT10Lmxlbmd0aCYmKHQ9dFswXSt0WzBdK3RbMV0rdFsxXSt0WzJdK3RbMl0rdFszXSt0WzNdKTt2YXIgZT1wYXJzZUludCh0LDE2KTtyZXR1cm4gdC5sZW5ndGg+Nj97cjplPj4yNCYyNTUsZzplPj4xNiYyNTUsYjplPj44JjI1NSxhOk1hdGgucm91bmQoKDI1NSZlKS8yLjU1KX06e3I6ZT4+MTYsZzplPj44JjI1NSxiOjI1NSZlfX1mdW5jdGlvbiBoc3ZUb1JnYih0KXt2YXIgZSxpLHMsbixvLHIsYSxsLGM9dC5oLGg9dC5zLHU9dC52LGQ9dC5hO3N3aXRjaChyPSh1Lz0xMDApKigxLShoLz0xMDApKSxhPXUqKDEtKG89NiooYy89MzYwKS0obj1NYXRoLmZsb29yKDYqYykpKSpoKSxsPXUqKDEtKDEtbykqaCksbiU2KXtjYXNlIDA6ZT11LGk9bCxzPXI7YnJlYWs7Y2FzZSAxOmU9YSxpPXUscz1yO2JyZWFrO2Nhc2UgMjplPXIsaT11LHM9bDticmVhaztjYXNlIDM6ZT1yLGk9YSxzPXU7YnJlYWs7Y2FzZSA0OmU9bCxpPXIscz11O2JyZWFrO2Nhc2UgNTplPXUsaT1yLHM9YX1yZXR1cm57cjpNYXRoLnJvdW5kKDI1NSplKSxnOk1hdGgucm91bmQoMjU1KmkpLGI6TWF0aC5yb3VuZCgyNTUqcyksYTpkfX1mdW5jdGlvbiByZ2JUb0hzdih0KXt2YXIgZSxpPXQucixzPXQuZyxuPXQuYixvPXQuYSxyPU1hdGgubWF4KGkscyxuKSxhPU1hdGgubWluKGkscyxuKSxsPXItYSxjPTA9PT1yPzA6bC9yLGg9ci8yNTU7c3dpdGNoKHIpe2Nhc2UgYTplPTA7YnJlYWs7Y2FzZSBpOmU9cy1uK2wqKHM8bj82OjApLGUvPTYqbDticmVhaztjYXNlIHM6ZT1uLWkrMipsLGUvPTYqbDticmVhaztjYXNlIG46ZT1pLXMrNCpsLGUvPTYqbH1yZXR1cm57aDpNYXRoLnJvdW5kKDM2MCplKSxzOk1hdGgucm91bmQoMTAwKmMpLHY6TWF0aC5yb3VuZCgxMDAqaCksYTpvfX12YXIgcmVSR0JBPS9eXFxzKnJnYihhKT9cXHMqXFwoKFxccyooXFxkKylcXHMqLFxccyo/KXsyfShcXGQrKVxccyosP1xccyooWzAxXT9cXC4/XFxkKj8pP1xccypcXClcXHMqJC87ZnVuY3Rpb24gdGV4dFRvUmdiKHQpe2lmKFwic3RyaW5nXCIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBhIHN0cmluZ1wiKTt2YXIgZT1yZVJHQkEuZXhlYyh0KTtpZihlKXt2YXIgaT17cjpNYXRoLm1heCgyNTUscGFyc2VJbnQoZVsyXSwxMCkpLGc6TWF0aC5tYXgoMjU1LHBhcnNlSW50KGVbM10sMTApKSxiOk1hdGgubWF4KDI1NSxwYXJzZUludChlWzRdLDEwKSl9O3JldHVybiBlWzFdJiYoaS5hPU1hdGgubWF4KDEscGFyc2VGbG9hdChlWzVdKSkpLGl9cmV0dXJuIGhleFRvUmdiKHQpfWZ1bmN0aW9uIGxpZ2h0ZW4odCxlKXtpZihcInN0cmluZ1wiIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgYSBzdHJpbmcgYXMgY29sb3JcIik7aWYoXCJudW1iZXJcIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGEgbnVtZXJpYyBwZXJjZW50XCIpO3ZhciBpPXRleHRUb1JnYih0KSxzPWU8MD8wOjI1NSxuPU1hdGguYWJzKGUpLzEwMCxvPWkucixyPWkuZyxhPWkuYjtyZXR1cm5cIiNcIisoMTY3NzcyMTYrNjU1MzYqKE1hdGgucm91bmQoKHMtbykqbikrbykrMjU2KihNYXRoLnJvdW5kKChzLXIpKm4pK3IpKyhNYXRoLnJvdW5kKChzLWEpKm4pK2EpKS50b1N0cmluZygxNikuc2xpY2UoMSl9ZnVuY3Rpb24gbHVtaW5vc2l0eSh0KXtpZihcInN0cmluZ1wiIT10eXBlb2YgdCYmKCF0fHx2b2lkIDA9PT10LnIpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBhIHN0cmluZyBvciBhIHtyLCBnLCBifSBvYmplY3QgYXMgY29sb3JcIik7dmFyIGU9XCJzdHJpbmdcIj09dHlwZW9mIHQ/dGV4dFRvUmdiKHQpOnQsaT1lLnIvMjU1LHM9ZS5nLzI1NSxuPWUuYi8yNTU7cmV0dXJuLjIxMjYqKGk8PS4wMzkyOD9pLzEyLjkyOk1hdGgucG93KChpKy4wNTUpLzEuMDU1LDIuNCkpKy43MTUyKihzPD0uMDM5Mjg/cy8xMi45MjpNYXRoLnBvdygocysuMDU1KS8xLjA1NSwyLjQpKSsuMDcyMioobjw9LjAzOTI4P24vMTIuOTI6TWF0aC5wb3coKG4rLjA1NSkvMS4wNTUsMi40KSl9ZnVuY3Rpb24gc2V0QnJhbmQodCxlLGkpe2lmKHZvaWQgMD09PWkmJihpPWRvY3VtZW50LmJvZHkpLFwic3RyaW5nXCIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBhIHN0cmluZyBhcyBjb2xvclwiKTtpZihcInN0cmluZ1wiIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgYSBzdHJpbmcgYXMgdmFsdWVcIik7aWYoIShpIGluc3RhbmNlb2YgRWxlbWVudCkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGEgRE9NIGVsZW1lbnRcIik7c3dpdGNoKGkuc3R5bGUuc2V0UHJvcGVydHkoXCItLXEtY29sb3ItXCIrdCxlKSx0KXtjYXNlXCJuZWdhdGl2ZVwiOmNhc2VcIndhcm5pbmdcIjppLnN0eWxlLnNldFByb3BlcnR5KFwiLS1xLWNvbG9yLVwiK3QrXCItbFwiLGxpZ2h0ZW4oZSw0NikpO2JyZWFrO2Nhc2VcImxpZ2h0XCI6aS5zdHlsZS5zZXRQcm9wZXJ0eShcIi0tcS1jb2xvci1cIit0K1wiLWRcIixsaWdodGVuKGUsLTEwKSl9fWZ1bmN0aW9uIGdldEJyYW5kKHQsZSl7aWYodm9pZCAwPT09ZSYmKGU9ZG9jdW1lbnQuYm9keSksXCJzdHJpbmdcIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGEgc3RyaW5nIGFzIGNvbG9yXCIpO2lmKCEoZSBpbnN0YW5jZW9mIEVsZW1lbnQpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBhIERPTSBlbGVtZW50XCIpO3JldHVybiBnZXRDb21wdXRlZFN0eWxlKGUpLmdldFByb3BlcnR5VmFsdWUoXCItLXEtY29sb3ItXCIrdCkudHJpbSgpfHxudWxsfXZhciBjb2xvcnM9e3JnYlRvSGV4OnJnYlRvSGV4LGhleFRvUmdiOmhleFRvUmdiLGhzdlRvUmdiOmhzdlRvUmdiLHJnYlRvSHN2OnJnYlRvSHN2LHRleHRUb1JnYjp0ZXh0VG9SZ2IsbGlnaHRlbjpsaWdodGVuLGx1bWlub3NpdHk6bHVtaW5vc2l0eSxzZXRCcmFuZDpzZXRCcmFuZCxnZXRCcmFuZDpnZXRCcmFuZH07ZnVuY3Rpb24gZ2V0Qm9keUNsYXNzZXModCxlKXt2YXIgaT10LmlzLHM9dC5oYXMsbj10LndpdGhpbixvPVtcIm1hdFwiLGkuZGVza3RvcD9cImRlc2t0b3BcIjpcIm1vYmlsZVwiLHMudG91Y2g/XCJ0b3VjaFwiOlwibm8tdG91Y2hcIixcInBsYXRmb3JtLVwiKyhpLmlvcz9cImlvc1wiOlwibWF0XCIpXTtpZihpLmNvcmRvdmEmJihvLnB1c2goXCJjb3Jkb3ZhXCIpLGkuaW9zJiYodm9pZCAwPT09ZS5jb3Jkb3ZhfHwhMSE9PWUuY29yZG92YS5pb3NTdGF0dXNCYXJQYWRkaW5nKSkpe3ZhciByPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxLGE9d2luZG93LnNjcmVlbi53aWR0aCpyLGw9d2luZG93LnNjcmVlbi5oZWlnaHQqcjsxMTI1PT09YSYmMjQzNj09PWwmJm8ucHVzaChcInEtaW9zLXN0YXR1c2Jhci14XCIpLDExMjU9PT1hJiYyMDAxPT09bHx8by5wdXNoKFwicS1pb3Mtc3RhdHVzYmFyLXBhZGRpbmdcIil9cmV0dXJuIG4uaWZyYW1lJiZvLnB1c2goXCJ3aXRoaW4taWZyYW1lXCIpLGkuZWxlY3Ryb24mJm8ucHVzaChcImVsZWN0cm9uXCIpLG99ZnVuY3Rpb24gYm9keUluaXQodCxlKXt2YXIgaT1nZXRCb2R5Q2xhc3Nlcyh0LGUpO3QuaXMuaWUmJjExPT09dC5pcy52ZXJzaW9uTnVtYmVyP2kuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKHQpfSk6ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkLmFwcGx5KGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LGkpLHQuaXMuaW9zJiZkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIsZnVuY3Rpb24oKXt9KX1mdW5jdGlvbiBzZXRDb2xvcnModCl7Zm9yKHZhciBlIGluIHQpc2V0QnJhbmQoZSx0W2VdKX12YXIgQm9keT17aW5zdGFsbDpmdW5jdGlvbih0LGUsaSl7aXNTU1I/ZS5zZXJ2ZXIucHVzaChmdW5jdGlvbih0LGUpe3ZhciBzPWdldEJvZHlDbGFzc2VzKHQucGxhdGZvcm0saSksbj1lLnNzci5zZXRCb2R5Q2xhc3NlcztcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP24ocyk6ZS5zc3IuUV9CT0RZX0NMQVNTRVM9cy5qb2luKFwiIFwiKX0pOihpLmJyYW5kJiZzZXRDb2xvcnMoaS5icmFuZCksYm9keUluaXQodC5wbGF0Zm9ybSxpKSl9fSxtYXRlcmlhbEljb25zPXtuYW1lOlwibWF0ZXJpYWwtaWNvbnNcIix0eXBlOntwb3NpdGl2ZTpcImNoZWNrX2NpcmNsZVwiLG5lZ2F0aXZlOlwid2FybmluZ1wiLGluZm86XCJpbmZvXCIsd2FybmluZzpcInByaW9yaXR5X2hpZ2hcIn0sYXJyb3c6e3VwOlwiYXJyb3dfdXB3YXJkXCIscmlnaHQ6XCJhcnJvd19mb3J3YXJkXCIsZG93bjpcImFycm93X2Rvd253YXJkXCIsbGVmdDpcImFycm93X2JhY2tcIn0sY2hldnJvbjp7bGVmdDpcImNoZXZyb25fbGVmdFwiLHJpZ2h0OlwiY2hldnJvbl9yaWdodFwifSxwdWxsVG9SZWZyZXNoOnthcnJvdzpcImFycm93X2Rvd253YXJkXCIscmVmcmVzaDpcInJlZnJlc2hcIn0sc2VhcmNoOntpY29uOlwic2VhcmNoXCIsY2xlYXI6XCJjYW5jZWxcIixjbGVhckludmVydGVkOlwiY2xlYXJcIn0sY2Fyb3VzZWw6e2xlZnQ6XCJjaGV2cm9uX2xlZnRcIixyaWdodDpcImNoZXZyb25fcmlnaHRcIixxdWlja05hdjpcImxlbnNcIix0aHVtYm5haWxzOlwidmlld19jYXJvdXNlbFwifSxjaGVja2JveDp7Y2hlY2tlZDp7aW9zOlwiY2hlY2tfY2lyY2xlXCIsbWF0OlwiY2hlY2tfYm94XCJ9LHVuY2hlY2tlZDp7aW9zOlwicmFkaW9fYnV0dG9uX3VuY2hlY2tlZFwiLG1hdDpcImNoZWNrX2JveF9vdXRsaW5lX2JsYW5rXCJ9LGluZGV0ZXJtaW5hdGU6e2lvczpcInJlbW92ZV9jaXJjbGVfb3V0bGluZVwiLG1hdDpcImluZGV0ZXJtaW5hdGVfY2hlY2tfYm94XCJ9fSxjaGlwOntjbG9zZTpcImNhbmNlbFwifSxjaGlwc0lucHV0OnthZGQ6XCJzZW5kXCJ9LGNvbGxhcHNpYmxlOntpY29uOlwiYXJyb3dfZHJvcF9kb3duXCJ9LGRhdGV0aW1lOnthcnJvd0xlZnQ6XCJjaGV2cm9uX2xlZnRcIixhcnJvd1JpZ2h0OlwiY2hldnJvbl9yaWdodFwifSxlZGl0b3I6e2JvbGQ6XCJmb3JtYXRfYm9sZFwiLGl0YWxpYzpcImZvcm1hdF9pdGFsaWNcIixzdHJpa2V0aHJvdWdoOlwic3RyaWtldGhyb3VnaF9zXCIsdW5kZXJsaW5lOlwiZm9ybWF0X3VuZGVybGluZWRcIix1bm9yZGVyZWRMaXN0OlwiZm9ybWF0X2xpc3RfYnVsbGV0ZWRcIixvcmRlcmVkTGlzdDpcImZvcm1hdF9saXN0X251bWJlcmVkXCIsc3Vic2NyaXB0OlwidmVydGljYWxfYWxpZ25fYm90dG9tXCIsc3VwZXJzY3JpcHQ6XCJ2ZXJ0aWNhbF9hbGlnbl90b3BcIixoeXBlcmxpbms6XCJsaW5rXCIsdG9nZ2xlRnVsbHNjcmVlbjpcImZ1bGxzY3JlZW5cIixxdW90ZTpcImZvcm1hdF9xdW90ZVwiLGxlZnQ6XCJmb3JtYXRfYWxpZ25fbGVmdFwiLGNlbnRlcjpcImZvcm1hdF9hbGlnbl9jZW50ZXJcIixyaWdodDpcImZvcm1hdF9hbGlnbl9yaWdodFwiLGp1c3RpZnk6XCJmb3JtYXRfYWxpZ25fanVzdGlmeVwiLHByaW50OlwicHJpbnRcIixvdXRkZW50OlwiZm9ybWF0X2luZGVudF9kZWNyZWFzZVwiLGluZGVudDpcImZvcm1hdF9pbmRlbnRfaW5jcmVhc2VcIixyZW1vdmVGb3JtYXQ6XCJmb3JtYXRfY2xlYXJcIixmb3JtYXR0aW5nOlwidGV4dF9mb3JtYXRcIixmb250U2l6ZTpcImZvcm1hdF9zaXplXCIsYWxpZ246XCJmb3JtYXRfYWxpZ25fbGVmdFwiLGhyOlwicmVtb3ZlXCIsdW5kbzpcInVuZG9cIixyZWRvOlwicmVkb1wiLGhlYWRlcjpcImZvcm1hdF9zaXplXCIsY29kZTpcImNvZGVcIixzaXplOlwiZm9ybWF0X3NpemVcIixmb250OlwiZm9udF9kb3dubG9hZFwifSxmYWI6e2ljb246XCJhZGRcIixhY3RpdmVJY29uOlwiY2xvc2VcIn0saW5wdXQ6e3Nob3dQYXNzOlwidmlzaWJpbGl0eVwiLGhpZGVQYXNzOlwidmlzaWJpbGl0eV9vZmZcIixzaG93TnVtYmVyOlwia2V5Ym9hcmRcIixoaWRlTnVtYmVyOlwia2V5Ym9hcmRfaGlkZVwiLGNsZWFyOlwiY2FuY2VsXCIsY2xlYXJJbnZlcnRlZDpcImNsZWFyXCIsZHJvcGRvd246XCJhcnJvd19kcm9wX2Rvd25cIn0scGFnaW5hdGlvbjp7Zmlyc3Q6XCJmaXJzdF9wYWdlXCIscHJldjpcImtleWJvYXJkX2Fycm93X2xlZnRcIixuZXh0Olwia2V5Ym9hcmRfYXJyb3dfcmlnaHRcIixsYXN0OlwibGFzdF9wYWdlXCJ9LHJhZGlvOntjaGVja2VkOntpb3M6XCJjaGVja1wiLG1hdDpcInJhZGlvX2J1dHRvbl9jaGVja2VkXCJ9LHVuY2hlY2tlZDp7aW9zOlwiXCIsbWF0OlwicmFkaW9fYnV0dG9uX3VuY2hlY2tlZFwifX0scmF0aW5nOntpY29uOlwiZ3JhZGVcIn0sc3RlcHBlcjp7ZG9uZTpcImNoZWNrXCIsYWN0aXZlOlwiZWRpdFwiLGVycm9yOlwid2FybmluZ1wifSx0YWJzOntsZWZ0OlwiY2hldnJvbl9sZWZ0XCIscmlnaHQ6XCJjaGV2cm9uX3JpZ2h0XCJ9LHRhYmxlOnthcnJvd1VwOlwiYXJyb3dfdXB3YXJkXCIsd2FybmluZzpcIndhcm5pbmdcIixwcmV2UGFnZTpcImNoZXZyb25fbGVmdFwiLG5leHRQYWdlOlwiY2hldnJvbl9yaWdodFwifSx0cmVlOntpY29uOlwicGxheV9hcnJvd1wifSx1cGxvYWRlcjp7ZG9uZTpcImRvbmVcIixjbGVhcjpcImNhbmNlbFwiLGNsZWFySW52ZXJ0ZWQ6XCJjbGVhclwiLGFkZDpcImFkZFwiLHVwbG9hZDpcImNsb3VkX3VwbG9hZFwiLGV4cGFuZDpcImtleWJvYXJkX2Fycm93X2Rvd25cIixmaWxlOlwiaW5zZXJ0X2RyaXZlX2ZpbGVcIn19LEljb25zPXtfX2luc3RhbGxlZDohMSxpbnN0YWxsOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz10aGlzO3RoaXMuc2V0PWZ1bmN0aW9uKGkpe3ZvaWQgMD09PWkmJihpPW1hdGVyaWFsSWNvbnMpLGkuc2V0PXMuc2V0LGlzU1NSfHx0Lmljb24/dC5pY29uPWk6ZS51dGlsLmRlZmluZVJlYWN0aXZlKHQsXCJpY29uXCIsaSkscy5uYW1lPWkubmFtZSxzLmRlZj1pfSx0aGlzLnNldChpKX19LHF1ZXVlcz17c2VydmVyOltdLHRha2VvdmVyOltdfSwkcT17dmVyc2lvbjp2ZXJzaW9uLHRoZW1lOlwibWF0XCJ9O2Z1bmN0aW9uIGluc3RhbGwodCxlKXtpZih2b2lkIDA9PT1lJiYoZT17fSksIXRoaXMuX19pbnN0YWxsZWQpe3RoaXMuX19pbnN0YWxsZWQ9ITA7dmFyIGk9ZS5jb25maWd8fHt9O2lmKFBsYXRmb3JtLmluc3RhbGwoJHEscXVldWVzLHQpLEJvZHkuaW5zdGFsbCgkcSxxdWV1ZXMsaSksSGlzdG9yeS5pbnN0YWxsKCRxLGkpLGkxOG4uaW5zdGFsbCgkcSxxdWV1ZXMsdCxlLmkxOG4pLEljb25zLmluc3RhbGwoJHEsdCxlLmljb25TZXQpLGlzU1NSP3QubWl4aW4oe2JlZm9yZUNyZWF0ZTpmdW5jdGlvbigpe3RoaXMuJHE9dGhpcy4kcm9vdC4kb3B0aW9ucy4kcX19KTp0LnByb3RvdHlwZS4kcT0kcSxlLmNvbXBvbmVudHMmJk9iamVjdC5rZXlzKGUuY29tcG9uZW50cykuZm9yRWFjaChmdW5jdGlvbihpKXt2YXIgcz1lLmNvbXBvbmVudHNbaV07dm9pZCAwPT09cy5uYW1lfHx2b2lkIDA9PT1zLnJlbmRlciYmdm9pZCAwPT09cy5taXhpbnN8fHQuY29tcG9uZW50KHMubmFtZSxzKX0pLGUuZGlyZWN0aXZlcyYmT2JqZWN0LmtleXMoZS5kaXJlY3RpdmVzKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3ZhciBzPWUuZGlyZWN0aXZlc1tpXTt2b2lkIDAhPT1zLm5hbWUmJnZvaWQgMCE9PXMudW5iaW5kJiZ0LmRpcmVjdGl2ZShzLm5hbWUscyl9KSxlLnBsdWdpbnMpe3ZhciBzPXskcTokcSxxdWV1ZXM6cXVldWVzLFZ1ZTp0LGNmZzppfTtPYmplY3Qua2V5cyhlLnBsdWdpbnMpLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGk9ZS5wbHVnaW5zW3RdO1wiZnVuY3Rpb25cIj09dHlwZW9mIGkuaW5zdGFsbCYmaSE9PVBsYXRmb3JtJiZpLmluc3RhbGwocyl9KX19fXZhciBtaXhpbj17bW91bnRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cXVldWVzLnRha2VvdmVyLmZvckVhY2goZnVuY3Rpb24oZSl7ZSh0LiRxKX0pfX07ZnVuY3Rpb24gc3NyVXBkYXRlKHQpe2lmKHQuc3NyKXt2YXIgZT1PYmplY3QuYXNzaWduKHt9LCRxKTtPYmplY3QuYXNzaWduKHQuc3NyLHtRX0hFQURfVEFHUzpcIlwiLFFfQk9EWV9BVFRSUzpcIlwiLFFfQk9EWV9UQUdTOlwiXCJ9KSxxdWV1ZXMuc2VydmVyLmZvckVhY2goZnVuY3Rpb24oaSl7aShlLHQpfSksdC5hcHAuJHE9ZX1lbHNle3ZhciBpPXQuYXBwLm1peGluc3x8W107aS5pbmNsdWRlcyhtaXhpbil8fCh0LmFwcC5taXhpbnM9aS5jb25jYXQobWl4aW4pKX19dmFyIHRoZW1lPVwibWF0XCIsVnVlUGx1Z2luPXt2ZXJzaW9uOnZlcnNpb24saW5zdGFsbDppbnN0YWxsLGkxOG46aTE4bixpY29uczpJY29ucyx0aGVtZTp0aGVtZSxzc3JVcGRhdGU6c3NyVXBkYXRlfSxoYW5kbGVycz1bXSxFc2NhcGVLZXk9e19faW5zdGFsbGVkOiExLF9faW5zdGFsbDpmdW5jdGlvbigpe3RoaXMuX19pbnN0YWxsZWQ9ITAsd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXl1cFwiLGZ1bmN0aW9uKHQpezAhPT1oYW5kbGVycy5sZW5ndGgmJigyNyE9PXQud2hpY2gmJjI3IT09dC5rZXlDb2RlfHxoYW5kbGVyc1toYW5kbGVycy5sZW5ndGgtMV0oKSl9KX0scmVnaXN0ZXI6ZnVuY3Rpb24odCl7UGxhdGZvcm0uaXMuZGVza3RvcCYmKHRoaXMuX19pbnN0YWxsZWR8fHRoaXMuX19pbnN0YWxsKCksaGFuZGxlcnMucHVzaCh0KSl9LHBvcDpmdW5jdGlvbigpe1BsYXRmb3JtLmlzLmRlc2t0b3AmJmhhbmRsZXJzLnBvcCgpfX0sTW9kZWxUb2dnbGVNaXhpbj17cHJvcHM6e3ZhbHVlOkJvb2xlYW59LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57c2hvd2luZzohMX19LHdhdGNoOnt2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuZGlzYWJsZSYmdD90aGlzLiRlbWl0KFwiaW5wdXRcIiwhMSk6dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtlLnZhbHVlIT09ZS5zaG93aW5nJiZlW3Q/XCJzaG93XCI6XCJoaWRlXCJdKCl9KX19LG1ldGhvZHM6e3RvZ2dsZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpc1t0aGlzLnNob3dpbmc/XCJoaWRlXCI6XCJzaG93XCJdKHQpfSxzaG93OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuZGlzYWJsZXx8dGhpcy5zaG93aW5nP3RoaXMuc2hvd1Byb21pc2V8fFByb21pc2UucmVzb2x2ZSh0KToodGhpcy5oaWRlUHJvbWlzZSYmdGhpcy5oaWRlUHJvbWlzZVJlamVjdCgpLHRoaXMuc2hvd2luZz0hMCwhMT09PXRoaXMudmFsdWUmJnRoaXMuJGVtaXQoXCJpbnB1dFwiLCEwKSwodm9pZCAwPT09dGhpcy4kb3B0aW9ucy5tb2RlbFRvZ2dsZXx8dGhpcy4kb3B0aW9ucy5tb2RlbFRvZ2dsZS5oaXN0b3J5KSYmKHRoaXMuX19oaXN0b3J5RW50cnk9e2hhbmRsZXI6dGhpcy5oaWRlfSxIaXN0b3J5LmFkZCh0aGlzLl9faGlzdG9yeUVudHJ5KSksdGhpcy5fX3Nob3c/KHRoaXMuc2hvd1Byb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24oaSxzKXtlLnNob3dQcm9taXNlUmVzb2x2ZT1mdW5jdGlvbigpe2Uuc2hvd1Byb21pc2U9bnVsbCxlLiRlbWl0KFwic2hvd1wiLHQpLGkodCl9LGUuc2hvd1Byb21pc2VSZWplY3Q9ZnVuY3Rpb24oKXtlLnNob3dQcm9taXNlLmNhdGNoKGZ1bmN0aW9uKCl7fSksZS5zaG93UHJvbWlzZT1udWxsLHMobnVsbCl9fSksdGhpcy5fX3Nob3codCksdGhpcy5zaG93UHJvbWlzZXx8UHJvbWlzZS5yZXNvbHZlKHQpKToodGhpcy4kZW1pdChcInNob3dcIix0KSxQcm9taXNlLnJlc29sdmUodCkpKX0saGlkZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0aGlzLmRpc2FibGV8fCF0aGlzLnNob3dpbmc/dGhpcy5oaWRlUHJvbWlzZXx8UHJvbWlzZS5yZXNvbHZlKHQpOih0aGlzLnNob3dQcm9taXNlJiZ0aGlzLnNob3dQcm9taXNlUmVqZWN0KCksdGhpcy5zaG93aW5nPSExLCEwPT09dGhpcy52YWx1ZSYmdGhpcy4kZW1pdChcImlucHV0XCIsITEpLHRoaXMuX19yZW1vdmVIaXN0b3J5KCksdGhpcy5fX2hpZGU/KHRoaXMuaGlkZVByb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24oaSxzKXtlLmhpZGVQcm9taXNlUmVzb2x2ZT1mdW5jdGlvbigpe2UuaGlkZVByb21pc2U9bnVsbCxlLiRlbWl0KFwiaGlkZVwiLHQpLGkoKX0sZS5oaWRlUHJvbWlzZVJlamVjdD1mdW5jdGlvbigpe2UuaGlkZVByb21pc2UuY2F0Y2goZnVuY3Rpb24oKXt9KSxlLmhpZGVQcm9taXNlPW51bGwscyhudWxsKX19KSx0aGlzLl9faGlkZSh0KSx0aGlzLmhpZGVQcm9taXNlfHxQcm9taXNlLnJlc29sdmUodCkpOih0aGlzLiRlbWl0KFwiaGlkZVwiLHQpLFByb21pc2UucmVzb2x2ZSgpKSl9LF9fcmVtb3ZlSGlzdG9yeTpmdW5jdGlvbigpe3RoaXMuX19oaXN0b3J5RW50cnkmJihIaXN0b3J5LnJlbW92ZSh0aGlzLl9faGlzdG9yeUVudHJ5KSx0aGlzLl9faGlzdG9yeUVudHJ5PW51bGwpfX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuc2hvd2luZyYmKHRoaXMuc2hvd1Byb21pc2UmJnRoaXMuc2hvd1Byb21pc2VSZWplY3QoKSx0aGlzLmhpZGVQcm9taXNlJiZ0aGlzLmhpZGVQcm9taXNlUmVqZWN0KCksdGhpcy5fX3JlbW92ZUhpc3RvcnkoKSl9fSxsaXN0ZW5PcHRzPXt9O2Z1bmN0aW9uIGxlZnRDbGljayh0KXtyZXR1cm4gMD09PXQuYnV0dG9ufWZ1bmN0aW9uIG1pZGRsZUNsaWNrKHQpe3JldHVybiAxPT09dC5idXR0b259ZnVuY3Rpb24gcmlnaHRDbGljayh0KXtyZXR1cm4gMj09PXQuYnV0dG9ufWZ1bmN0aW9uIGdldEV2ZW50S2V5KHQpe3JldHVybiB0LndoaWNofHx0LmtleUNvZGV9ZnVuY3Rpb24gcG9zaXRpb24odCl7dmFyIGUsaTtpZih0LnRvdWNoZXMmJnQudG91Y2hlc1swXT90PXQudG91Y2hlc1swXTp0LmNoYW5nZWRUb3VjaGVzJiZ0LmNoYW5nZWRUb3VjaGVzWzBdJiYodD10LmNoYW5nZWRUb3VjaGVzWzBdKSx0LmNsaWVudFh8fHQuY2xpZW50WSllPXQuY2xpZW50WCxpPXQuY2xpZW50WTtlbHNlIGlmKHQucGFnZVh8fHQucGFnZVkpZT10LnBhZ2VYLWRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdC1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdCxpPXQucGFnZVktZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AtZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDtlbHNle3ZhciBzPXRhcmdldEVsZW1lbnQodCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7ZT0ocy5yaWdodC1zLmxlZnQpLzIrcy5sZWZ0LGk9KHMuYm90dG9tLXMudG9wKS8yK3MudG9wfXJldHVybnt0b3A6aSxsZWZ0OmV9fWZ1bmN0aW9uIHRhcmdldEVsZW1lbnQodCl7dmFyIGU7cmV0dXJuIHQudGFyZ2V0P2U9dC50YXJnZXQ6dC5zcmNFbGVtZW50JiYoZT10LnNyY0VsZW1lbnQpLDM9PT1lLm5vZGVUeXBlJiYoZT1lLnBhcmVudE5vZGUpLGV9ZnVuY3Rpb24gZ2V0RXZlbnRQYXRoKHQpe2lmKHQucGF0aClyZXR1cm4gdC5wYXRoO2lmKHQuY29tcG9zZWRQYXRoKXJldHVybiB0LmNvbXBvc2VkUGF0aCgpO2Zvcih2YXIgZT1bXSxpPXQudGFyZ2V0O2k7KXtpZihlLnB1c2goaSksXCJIVE1MXCI9PT1pLnRhZ05hbWUpcmV0dXJuIGUucHVzaChkb2N1bWVudCksZS5wdXNoKHdpbmRvdyksZTtpPWkucGFyZW50RWxlbWVudH19T2JqZWN0LmRlZmluZVByb3BlcnR5KGxpc3Rlbk9wdHMsXCJwYXNzaXZlXCIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt2YXIgdDt0cnl7dmFyIGU9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LFwicGFzc2l2ZVwiLHtnZXQ6ZnVuY3Rpb24oKXt0PXtwYXNzaXZlOiEwfX19KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInF0ZXN0XCIsbnVsbCxlKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInF0ZXN0XCIsbnVsbCxlKX1jYXRjaCh0KXt9cmV0dXJuIGxpc3Rlbk9wdHMucGFzc2l2ZT10LHR9LHNldDpmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcInBhc3NpdmVcIix7dmFsdWU6dH0pfX0pO3ZhciBMSU5FX0hFSUdIVD00MCxQQUdFX0hFSUdIVD04MDA7ZnVuY3Rpb24gZ2V0TW91c2VXaGVlbERpc3RhbmNlKHQpe3ZhciBlLGk9dC5kZWx0YVgscz10LmRlbHRhWTtpZigoaXx8cykmJnQuZGVsdGFNb2RlKXt2YXIgbj0xPT09dC5kZWx0YU1vZGU/TElORV9IRUlHSFQ6UEFHRV9IRUlHSFQ7aSo9bixzKj1ufXJldHVybiB0LnNoaWZ0S2V5JiYhaSYmKHM9KGU9W2ksc10pWzBdLGk9ZVsxXSkse3g6aSx5OnN9fWZ1bmN0aW9uIHN0b3BBbmRQcmV2ZW50KHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpfXZhciBldmVudD17bGlzdGVuT3B0czpsaXN0ZW5PcHRzLGxlZnRDbGljazpsZWZ0Q2xpY2ssbWlkZGxlQ2xpY2s6bWlkZGxlQ2xpY2sscmlnaHRDbGljazpyaWdodENsaWNrLGdldEV2ZW50S2V5OmdldEV2ZW50S2V5LHBvc2l0aW9uOnBvc2l0aW9uLHRhcmdldEVsZW1lbnQ6dGFyZ2V0RWxlbWVudCxnZXRFdmVudFBhdGg6Z2V0RXZlbnRQYXRoLGdldE1vdXNlV2hlZWxEaXN0YW5jZTpnZXRNb3VzZVdoZWVsRGlzdGFuY2Usc3RvcEFuZFByZXZlbnQ6c3RvcEFuZFByZXZlbnR9O2Z1bmN0aW9uIG9mZnNldCh0KXtpZighdHx8dD09PXdpbmRvdylyZXR1cm57dG9wOjAsbGVmdDowfTt2YXIgZT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybnt0b3A6ZS50b3AsbGVmdDplLmxlZnR9fWZ1bmN0aW9uIHN0eWxlKHQsZSl7cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLmdldFByb3BlcnR5VmFsdWUoZSl9ZnVuY3Rpb24gaGVpZ2h0KHQpe3JldHVybiB0PT09d2luZG93P3dpbmRvdy5pbm5lckhlaWdodDpwYXJzZUZsb2F0KHN0eWxlKHQsXCJoZWlnaHRcIikpfWZ1bmN0aW9uIHdpZHRoKHQpe3JldHVybiB0PT09d2luZG93P3dpbmRvdy5pbm5lcldpZHRoOnBhcnNlRmxvYXQoc3R5bGUodCxcIndpZHRoXCIpKX1mdW5jdGlvbiBjc3ModCxlKXt2YXIgaT10LnN0eWxlO09iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24odCl7aVt0XT1lW3RdfSl9ZnVuY3Rpb24gcmVhZHkodCl7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgdClyZXR1cm5cImxvYWRpbmdcIiE9PWRvY3VtZW50LnJlYWR5U3RhdGU/dCgpOnZvaWQgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIkRPTUNvbnRlbnRMb2FkZWRcIix0LCExKX12YXIgcHJlZml4PVtcIi13ZWJraXQtXCIsXCItbW96LVwiLFwiLW1zLVwiLFwiLW8tXCJdO2Z1bmN0aW9uIGNzc1RyYW5zZm9ybSh0KXt2YXIgZT17dHJhbnNmb3JtOnR9O3JldHVybiBwcmVmaXguZm9yRWFjaChmdW5jdGlvbihpKXtlW2krXCJ0cmFuc2Zvcm1cIl09dH0pLGV9dmFyIHNpemUsZG9tPXtvZmZzZXQ6b2Zmc2V0LHN0eWxlOnN0eWxlLGhlaWdodDpoZWlnaHQsd2lkdGg6d2lkdGgsY3NzOmNzcyxyZWFkeTpyZWFkeSxjc3NUcmFuc2Zvcm06Y3NzVHJhbnNmb3JtfTtmdW5jdGlvbiBnZXRTY3JvbGxUYXJnZXQodCl7cmV0dXJuIHQuY2xvc2VzdChcIi5zY3JvbGwsLnNjcm9sbC15LC5vdmVyZmxvdy1hdXRvXCIpfHx3aW5kb3d9ZnVuY3Rpb24gZ2V0U2Nyb2xsSGVpZ2h0KHQpe3JldHVybih0PT09d2luZG93P2RvY3VtZW50LmJvZHk6dCkuc2Nyb2xsSGVpZ2h0fWZ1bmN0aW9uIGdldFNjcm9sbFBvc2l0aW9uKHQpe3JldHVybiB0PT09d2luZG93P3dpbmRvdy5wYWdlWU9mZnNldHx8d2luZG93LnNjcm9sbFl8fGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wfHwwOnQuc2Nyb2xsVG9wfWZ1bmN0aW9uIGdldEhvcml6b250YWxTY3JvbGxQb3NpdGlvbih0KXtyZXR1cm4gdD09PXdpbmRvdz93aW5kb3cucGFnZVhPZmZzZXR8fHdpbmRvdy5zY3JvbGxYfHxkb2N1bWVudC5ib2R5LnNjcm9sbExlZnR8fDA6dC5zY3JvbGxMZWZ0fWZ1bmN0aW9uIGFuaW1TY3JvbGxUbyh0LGUsaSl7dmFyIHM9Z2V0U2Nyb2xsUG9zaXRpb24odCk7aTw9MD9zIT09ZSYmc2V0U2Nyb2xsKHQsZSk6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7dmFyIG49cysoZS1zKS9NYXRoLm1heCgxNixpKSoxNjtzZXRTY3JvbGwodCxuKSxuIT09ZSYmYW5pbVNjcm9sbFRvKHQsZSxpLTE2KX0pfWZ1bmN0aW9uIHNldFNjcm9sbCh0LGUpe2lmKHQ9PT13aW5kb3cpcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A9ZSx2b2lkKGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wPWUpO3Quc2Nyb2xsVG9wPWV9ZnVuY3Rpb24gc2V0U2Nyb2xsUG9zaXRpb24odCxlLGkpe2k/YW5pbVNjcm9sbFRvKHQsZSxpKTpzZXRTY3JvbGwodCxlKX1mdW5jdGlvbiBnZXRTY3JvbGxiYXJXaWR0aCgpe2lmKHZvaWQgMCE9PXNpemUpcmV0dXJuIHNpemU7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInBcIiksZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO2Nzcyh0LHt3aWR0aDpcIjEwMCVcIixoZWlnaHQ6XCIyMDBweFwifSksY3NzKGUse3Bvc2l0aW9uOlwiYWJzb2x1dGVcIix0b3A6XCIwcHhcIixsZWZ0OlwiMHB4XCIsdmlzaWJpbGl0eTpcImhpZGRlblwiLHdpZHRoOlwiMjAwcHhcIixoZWlnaHQ6XCIxNTBweFwiLG92ZXJmbG93OlwiaGlkZGVuXCJ9KSxlLmFwcGVuZENoaWxkKHQpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSk7dmFyIGk9dC5vZmZzZXRXaWR0aDtlLnN0eWxlLm92ZXJmbG93PVwic2Nyb2xsXCI7dmFyIHM9dC5vZmZzZXRXaWR0aDtyZXR1cm4gaT09PXMmJihzPWUuY2xpZW50V2lkdGgpLGUucmVtb3ZlKCksc2l6ZT1pLXN9ZnVuY3Rpb24gaGFzU2Nyb2xsYmFyKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPSEwKSwhKCF0fHx0Lm5vZGVUeXBlIT09Tm9kZS5FTEVNRU5UX05PREUpJiYoZT90LnNjcm9sbEhlaWdodD50LmNsaWVudEhlaWdodCYmKHQuY2xhc3NMaXN0LmNvbnRhaW5zKFwic2Nyb2xsXCIpfHx0LmNsYXNzTGlzdC5jb250YWlucyhcIm92ZXJmbG93LWF1dG9cIil8fFtcImF1dG9cIixcInNjcm9sbFwiXS5pbmNsdWRlcyh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KVtcIm92ZXJmbG93LXlcIl0pKTp0LnNjcm9sbFdpZHRoPnQuY2xpZW50V2lkdGgmJih0LmNsYXNzTGlzdC5jb250YWlucyhcInNjcm9sbFwiKXx8dC5jbGFzc0xpc3QuY29udGFpbnMoXCJvdmVyZmxvdy1hdXRvXCIpfHxbXCJhdXRvXCIsXCJzY3JvbGxcIl0uaW5jbHVkZXMod2luZG93LmdldENvbXB1dGVkU3R5bGUodClbXCJvdmVyZmxvdy14XCJdKSkpfXZhciBzY3JvbGw9e2dldFNjcm9sbFRhcmdldDpnZXRTY3JvbGxUYXJnZXQsZ2V0U2Nyb2xsSGVpZ2h0OmdldFNjcm9sbEhlaWdodCxnZXRTY3JvbGxQb3NpdGlvbjpnZXRTY3JvbGxQb3NpdGlvbixhbmltU2Nyb2xsVG86YW5pbVNjcm9sbFRvLHNldFNjcm9sbFBvc2l0aW9uOnNldFNjcm9sbFBvc2l0aW9uLGdldFNjcm9sbGJhcldpZHRoOmdldFNjcm9sbGJhcldpZHRoLGhhc1Njcm9sbGJhcjpoYXNTY3JvbGxiYXJ9LHJlZ2lzdGVyZWQ9MDtmdW5jdGlvbiBvbldoZWVsKHQpe3Nob3VsZFByZXZlbnRTY3JvbGwodCkmJnN0b3BBbmRQcmV2ZW50KHQpfWZ1bmN0aW9uIHNob3VsZFByZXZlbnRTY3JvbGwodCl7aWYodC50YXJnZXQ9PT1kb2N1bWVudC5ib2R5fHx0LnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoXCJxLWxheW91dC1iYWNrZHJvcFwiKSlyZXR1cm4hMDtmb3IodmFyIGU9Z2V0RXZlbnRQYXRoKHQpLGk9dC5zaGlmdEtleSYmIXQuZGVsdGFYLHM9IWkmJk1hdGguYWJzKHQuZGVsdGFYKTw9TWF0aC5hYnModC5kZWx0YVkpLG49aXx8cz90LmRlbHRhWTp0LmRlbHRhWCxvPTA7bzxlLmxlbmd0aDtvKyspe3ZhciByPWVbb107aWYoaGFzU2Nyb2xsYmFyKHIscykpcmV0dXJuIHM/bjwwJiYwPT09ci5zY3JvbGxUb3B8fG4+MCYmci5zY3JvbGxUb3Arci5jbGllbnRIZWlnaHQ9PT1yLnNjcm9sbEhlaWdodDpuPDAmJjA9PT1yLnNjcm9sbExlZnR8fG4+MCYmci5zY3JvbGxMZWZ0K3IuY2xpZW50V2lkdGg9PT1yLnNjcm9sbFdpZHRofXJldHVybiEwfWZ1bmN0aW9uIHByZXZlbnRTY3JvbGwodCl7aWYoISgocmVnaXN0ZXJlZCs9dD8xOi0xKT4xKSl7dmFyIGU9dD9cImFkZFwiOlwicmVtb3ZlXCI7UGxhdGZvcm0uaXMubW9iaWxlP2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0W2VdKFwicS1ib2R5LXByZXZlbnQtc2Nyb2xsXCIpOlBsYXRmb3JtLmlzLmRlc2t0b3AmJndpbmRvd1tlK1wiRXZlbnRMaXN0ZW5lclwiXShcIndoZWVsXCIsb25XaGVlbCl9fXZhciBwb3NpdGlvbnM9e3RvcDpcIml0ZW1zLXN0YXJ0IGp1c3RpZnktY2VudGVyIHdpdGgtYmFja2Ryb3BcIixib3R0b206XCJpdGVtcy1lbmQganVzdGlmeS1jZW50ZXIgd2l0aC1iYWNrZHJvcFwiLHJpZ2h0OlwiaXRlbXMtY2VudGVyIGp1c3RpZnktZW5kIHdpdGgtYmFja2Ryb3BcIixsZWZ0OlwiaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnQgd2l0aC1iYWNrZHJvcFwifSxwb3NpdGlvbkNTUz17bWF4SGVpZ2h0OlwiODB2aFwiLGhlaWdodDpcImF1dG9cIn07ZnVuY3Rpb24gYWRkaXRpb25hbENTUyh0KXt2YXIgZT17fTtyZXR1cm5bXCJsZWZ0XCIsXCJyaWdodFwiXS5pbmNsdWRlcyh0KSYmKGUubWF4V2lkdGg9XCI5MHZ3XCIpLFtcImxlZnRcIixcInRvcFwiXS5pbmNsdWRlcyh0KSYmKGUuYm9yZGVyVG9wTGVmdFJhZGl1cz0wKSxbXCJyaWdodFwiLFwidG9wXCJdLmluY2x1ZGVzKHQpJiYoZS5ib3JkZXJUb3BSaWdodFJhZGl1cz0wKSxbXCJsZWZ0XCIsXCJib3R0b21cIl0uaW5jbHVkZXModCkmJihlLmJvcmRlckJvdHRvbUxlZnRSYWRpdXM9MCksW1wicmlnaHRcIixcImJvdHRvbVwiXS5pbmNsdWRlcyh0KSYmKGUuYm9yZGVyQm90dG9tUmlnaHRSYWRpdXM9MCksZX12YXIgbW9kYWxzPXtyZXNwb25zaXZlOjAsbWF4aW1pemVkOjB9LFFNb2RhbD17bmFtZTpcIlFNb2RhbFwiLG1peGluczpbTW9kZWxUb2dnbGVNaXhpbl0scHJvdmlkZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJue19fcW1vZGFsOntyZWdpc3RlcjpmdW5jdGlvbihlKXt0LmxheW91dCE9PWUmJih0LmxheW91dD1lKX0sdW5yZWdpc3RlcjpmdW5jdGlvbihlKXt0LmxheW91dD09PWUmJih0LmxheW91dD1udWxsKX19fX0scHJvcHM6e3Bvc2l0aW9uOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiXCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVyblwiXCI9PT10fHxbXCJ0b3BcIixcImJvdHRvbVwiLFwibGVmdFwiLFwicmlnaHRcIl0uaW5jbHVkZXModCl9fSx0cmFuc2l0aW9uOlN0cmluZyxlbnRlckNsYXNzOlN0cmluZyxsZWF2ZUNsYXNzOlN0cmluZyxwb3NpdGlvbkNsYXNzZXM6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJmbGV4LWNlbnRlclwifSxjb250ZW50Q2xhc3NlczpbT2JqZWN0LEFycmF5LFN0cmluZ10sY29udGVudENzczpbT2JqZWN0LEFycmF5LFN0cmluZ10sbm9CYWNrZHJvcERpc21pc3M6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiExfSxub0VzY0Rpc21pc3M6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiExfSxub1JvdXRlRGlzbWlzczpCb29sZWFuLG5vUmVmb2N1czpCb29sZWFuLG1pbmltaXplZDpCb29sZWFuLG1heGltaXplZDpCb29sZWFufSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2xheW91dDpudWxsfX0sd2F0Y2g6eyRyb3V0ZTpmdW5jdGlvbigpe3RoaXMubm9Sb3V0ZURpc21pc3N8fHRoaXMuaGlkZSgpfSxtYXhpbWl6ZWQ6ZnVuY3Rpb24odCxlKXt0aGlzLl9fcmVnaXN0ZXIoITEsZSksdGhpcy5fX3JlZ2lzdGVyKCEwLHQpfSxtaW5pbWl6ZWQ6ZnVuY3Rpb24odCxlKXt0aGlzLl9fcmVnaXN0ZXIoITEsdGhpcy5tYXhpbWl6ZWQsZSksdGhpcy5fX3JlZ2lzdGVyKCEwLHRoaXMubWF4aW1pemVkLHQpfX0sY29tcHV0ZWQ6e21vZGFsQ2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PXRoaXMucG9zaXRpb24/cG9zaXRpb25zW3RoaXMucG9zaXRpb25dOnRoaXMucG9zaXRpb25DbGFzc2VzO3JldHVybiB0aGlzLm1heGltaXplZD9bXCJtYXhpbWl6ZWRcIix0XTp0aGlzLm1pbmltaXplZD9bXCJtaW5pbWl6ZWRcIix0XTp0fSxjb250ZW50Q2xhc3Nlc0NhbGM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQ/W3RoaXMuY29udGVudENsYXNzZXMsXCJjb2x1bW4gbm8td3JhcFwiXTp0aGlzLmNvbnRlbnRDbGFzc2VzfSx0cmFuc2l0aW9uUHJvcHM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wb3NpdGlvbj97bmFtZTpcInEtbW9kYWwtXCIrdGhpcy5wb3NpdGlvbn06dGhpcy5lbnRlckNsYXNzfHx0aGlzLmxlYXZlQ2xhc3M/e2VudGVyQWN0aXZlQ2xhc3M6dGhpcy5lbnRlckNsYXNzLGxlYXZlQWN0aXZlQ2xhc3M6dGhpcy5sZWF2ZUNsYXNzfTp7bmFtZTp0aGlzLnRyYW5zaXRpb258fFwicS1tb2RhbFwifX0sbW9kYWxDc3M6ZnVuY3Rpb24oKXtpZih0aGlzLnBvc2l0aW9uKXt2YXIgdD1BcnJheS5pc0FycmF5KHRoaXMuY29udGVudENzcyk/dGhpcy5jb250ZW50Q3NzOlt0aGlzLmNvbnRlbnRDc3NdO3JldHVybiB0LnVuc2hpZnQoT2JqZWN0LmFzc2lnbih7fSxwb3NpdGlvbkNTUyxhZGRpdGlvbmFsQ1NTKHRoaXMucG9zaXRpb24pKSksdH1yZXR1cm4gdGhpcy5jb250ZW50Q3NzfX0sbWV0aG9kczp7X19kaXNtaXNzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLm5vQmFja2Ryb3BEaXNtaXNzP3RoaXMuX19zaGFrZSgpOnRoaXMuaGlkZSgpLnRoZW4oZnVuY3Rpb24oKXt0LiRlbWl0KFwiZGlzbWlzc1wiKX0pfSxfX3Nob3c6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMubm9SZWZvY3VzfHwodGhpcy5fX3JlZm9jdXNUYXJnZXQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLiRlbCksdGhpcy5fX3JlZ2lzdGVyKCEwKSxwcmV2ZW50U2Nyb2xsKCEwKSxFc2NhcGVLZXkucmVnaXN0ZXIoZnVuY3Rpb24oKXt0Lm5vRXNjRGlzbWlzcz90Ll9fc2hha2UoKToodC4kZW1pdChcImVzY2FwZS1rZXlcIiksdC5oaWRlKCkudGhlbihmdW5jdGlvbigpe3QuJGVtaXQoXCJkaXNtaXNzXCIpfSkpfSk7dmFyIGU9dGhpcy4kcmVmcy5jb250ZW50O3RoaXMuJHEucGxhdGZvcm0uaXMuaW9zJiZlLmNsaWNrKCksZS5zY3JvbGxUb3A9MCxbXCJtb2RhbC1zY3JvbGxcIixcImxheW91dC12aWV3XCJdLmZvckVhY2goZnVuY3Rpb24odCl7W10uc2xpY2UuY2FsbChlLmdldEVsZW1lbnRzQnlDbGFzc05hbWUodCkpLmZvckVhY2goZnVuY3Rpb24odCl7dC5zY3JvbGxUb3A9MH0pfSksdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtyZXR1cm4gZSYmZS5mb2N1cygpfSl9LF9faGlkZTpmdW5jdGlvbigpe3RoaXMuX19jbGVhbnVwKCksIXRoaXMubm9SZWZvY3VzJiZ0aGlzLl9fcmVmb2N1c1RhcmdldCYmKHRoaXMuX19yZWZvY3VzVGFyZ2V0LmZvY3VzKCksIXRoaXMuX19yZWZvY3VzVGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucyhcInEtaWZcIikmJnRoaXMuX19yZWZvY3VzVGFyZ2V0LmJsdXIoKSl9LF9fY2xlYW51cDpmdW5jdGlvbigpe0VzY2FwZUtleS5wb3AoKSxwcmV2ZW50U2Nyb2xsKCExKSx0aGlzLl9fcmVnaXN0ZXIoITEpfSxfX3N0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbih0KXt0LnN0b3BQcm9wYWdhdGlvbigpfSxfX3JlZ2lzdGVyOmZ1bmN0aW9uKHQsZSxpKXt2b2lkIDA9PT1lJiYoZT10aGlzLm1heGltaXplZCksdm9pZCAwPT09aSYmKGk9dGhpcy5taW5pbWl6ZWQpO3ZhciBzPXQ/e2FjdGlvbjpcImFkZFwiLHN0ZXA6MX06e2FjdGlvbjpcInJlbW92ZVwiLHN0ZXA6LTF9O2lmKGUpe2lmKG1vZGFscy5tYXhpbWl6ZWQrPXMuc3RlcCwhdCYmbW9kYWxzLm1heGltaXplZD4wKXJldHVybjtkb2N1bWVudC5ib2R5LmNsYXNzTGlzdFtzLmFjdGlvbl0oXCJxLW1heGltaXplZC1tb2RhbFwiKX1lbHNlIGlmKCFpKXtpZihtb2RhbHMucmVzcG9uc2l2ZSs9cy5zdGVwLCF0JiZtb2RhbHMucmVzcG9uc2l2ZT4wKXJldHVybjtkb2N1bWVudC5ib2R5LmNsYXNzTGlzdFtzLmFjdGlvbl0oXCJxLXJlc3BvbnNpdmUtbW9kYWxcIil9fSxfX3NoYWtlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLiRlbC5jbGFzc0xpc3QucmVtb3ZlKFwiYW5pbWF0ZS1zaGFrZVwiKSx0aGlzLiRlbC5jbGFzc0xpc3QuYWRkKFwiYW5pbWF0ZS1zaGFrZVwiKSxjbGVhclRpbWVvdXQodGhpcy5zaGFrZVRpbWVvdXQpLHRoaXMuc2hha2VUaW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LiRlbC5jbGFzc0xpc3QucmVtb3ZlKFwiYW5pbWF0ZS1zaGFrZVwiKX0sMTUwKX19LG1vdW50ZWQ6ZnVuY3Rpb24oKXt0aGlzLnZhbHVlJiZ0aGlzLnNob3coKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnNoYWtlVGltZW91dCksdGhpcy4kZWwucmVtb3ZlKCksdGhpcy5zaG93aW5nJiZ0aGlzLl9fY2xlYW51cCgpfSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdChcInRyYW5zaXRpb25cIix7cHJvcHM6dGhpcy50cmFuc2l0aW9uUHJvcHMsb246e2FmdGVyRW50ZXI6ZnVuY3Rpb24oKXtlLnNob3dQcm9taXNlJiZlLnNob3dQcm9taXNlUmVzb2x2ZSgpfSxlbnRlckNhbmNlbGxlZDpmdW5jdGlvbigpe2Uuc2hvd1Byb21pc2UmJmUuc2hvd1Byb21pc2VSZWplY3QoKSxlLiRlbC5yZW1vdmUoKX0sYWZ0ZXJMZWF2ZTpmdW5jdGlvbigpe2UuaGlkZVByb21pc2UmJmUuaGlkZVByb21pc2VSZXNvbHZlKCksZS4kZWwucmVtb3ZlKCl9LGxlYXZlQ2FuY2VsbGVkOmZ1bmN0aW9uKCl7ZS5oaWRlUHJvbWlzZSYmZS5oaWRlUHJvbWlzZVJlamVjdCgpfX19LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwibW9kYWwgZnVsbHNjcmVlbiByb3dcIixjbGFzczp0aGlzLm1vZGFsQ2xhc3NlcyxkaXJlY3RpdmVzOlt7bmFtZTpcInNob3dcIix2YWx1ZTp0aGlzLnNob3dpbmd9XX0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJtb2RhbC1iYWNrZHJvcCBhYnNvbHV0ZS1mdWxsXCIsb246e2NsaWNrOnRoaXMuX19kaXNtaXNzfX0pLHQoXCJkaXZcIix7cmVmOlwiY29udGVudFwiLHN0YXRpY0NsYXNzOlwibW9kYWwtY29udGVudFwiLHN0eWxlOnRoaXMubW9kYWxDc3MsY2xhc3M6dGhpcy5jb250ZW50Q2xhc3Nlc0NhbGMsYXR0cnM6e3RhYmluZGV4Oi0xfSxvbjp7Y2xpY2s6dGhpcy5fX3N0b3BQcm9wYWdhdGlvbix0b3VjaHN0YXJ0OnRoaXMuX19zdG9wUHJvcGFnYXRpb259fSx0aGlzLiRzbG90cy5kZWZhdWx0KV0pXSl9fSxwcmVmaXgkMT1cIm1kXCIsUUljb249e25hbWU6XCJRSWNvblwiLHByb3BzOntuYW1lOlN0cmluZyxjb2xvcjpTdHJpbmcsc2l6ZTpTdHJpbmd9LGNvbXB1dGVkOntjbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQsZT10aGlzLm5hbWU7cmV0dXJuIGU/KHQ9L15mYVtzfHJ8bHxiXXswLDF9IC8udGVzdChlKXx8ZS5zdGFydHNXaXRoKFwiaWNvbi1cIik/ZTplLnN0YXJ0c1dpdGgoXCJidC1cIik/XCJidCBcIitlOmUuc3RhcnRzV2l0aChcImV2YS1cIik/XCJldmEgXCIrZTovXmlvbi0obWR8aW9zfGxvZ28pLy50ZXN0KGUpP1wiaW9uaWNvbnMgXCIrZTplLnN0YXJ0c1dpdGgoXCJpb24tXCIpP1wiaW9uaWNvbnMgaW9uLVwiK3ByZWZpeCQxK2Uuc3Vic3RyKDMpOmUuc3RhcnRzV2l0aChcIm1kaS1cIik/XCJtZGkgXCIrZTpcIm1hdGVyaWFsLWljb25zXCIsdGhpcy5jb2xvcj90K1wiIHRleHQtXCIrdGhpcy5jb2xvcjp0KTpcIlwifSxjb250ZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xhc3Nlcy5zdGFydHNXaXRoKFwibWF0ZXJpYWwtaWNvbnNcIik/dGhpcy5uYW1lLnJlcGxhY2UoLyAvZyxcIl9cIik6XCIgXCJ9LHN0eWxlOmZ1bmN0aW9uKCl7aWYodGhpcy5zaXplKXJldHVybntmb250U2l6ZTp0aGlzLnNpemV9fX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiaVwiLHtzdGF0aWNDbGFzczpcInEtaWNvblwiLGNsYXNzOnRoaXMuY2xhc3NlcyxzdHlsZTp0aGlzLnN0eWxlLGF0dHJzOntcImFyaWEtaGlkZGVuXCI6ITB9fSxbdGhpcy5jb250ZW50LHRoaXMuJHNsb3RzLmRlZmF1bHRdKX19LFFMaXN0PXtuYW1lOlwiUUxpc3RcIixwcm9wczp7bm9Cb3JkZXI6Qm9vbGVhbixkYXJrOkJvb2xlYW4sZGVuc2U6Qm9vbGVhbixzcGFyc2U6Qm9vbGVhbixzdHJpcGVkOkJvb2xlYW4sc3RyaXBlZE9kZDpCb29sZWFuLHNlcGFyYXRvcjpCb29sZWFuLGluc2V0U2VwYXJhdG9yOkJvb2xlYW4sbXVsdGlsaW5lOkJvb2xlYW4saGlnaGxpZ2h0OkJvb2xlYW4sbGluazpCb29sZWFufSxjb21wdXRlZDp7Y2xhc3NlczpmdW5jdGlvbigpe3JldHVybntcIm5vLWJvcmRlclwiOnRoaXMubm9Cb3JkZXIsXCJxLWxpc3QtZGFya1wiOnRoaXMuZGFyayxcInEtbGlzdC1kZW5zZVwiOnRoaXMuZGVuc2UsXCJxLWxpc3Qtc3BhcnNlXCI6dGhpcy5zcGFyc2UsXCJxLWxpc3Qtc3RyaXBlZFwiOnRoaXMuc3RyaXBlZCxcInEtbGlzdC1zdHJpcGVkLW9kZFwiOnRoaXMuc3RyaXBlZE9kZCxcInEtbGlzdC1zZXBhcmF0b3JcIjp0aGlzLnNlcGFyYXRvcixcInEtbGlzdC1pbnNldC1zZXBhcmF0b3JcIjp0aGlzLmluc2V0U2VwYXJhdG9yLFwicS1saXN0LW11bHRpbGluZVwiOnRoaXMubXVsdGlsaW5lLFwicS1saXN0LWhpZ2hsaWdodFwiOnRoaXMuaGlnaGxpZ2h0LFwicS1saXN0LWxpbmtcIjp0aGlzLmxpbmt9fX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1saXN0XCIsY2xhc3M6dGhpcy5jbGFzc2VzfSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LHJvdXRlckxpbmtFdmVudE5hbWU9XCJxcm91dGVybGlua2NsaWNrXCIsZXZ0PW51bGw7aWYoIWlzU1NSKXRyeXtldnQ9bmV3IEV2ZW50KHJvdXRlckxpbmtFdmVudE5hbWUpfWNhdGNoKHQpeyhldnQ9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoXCJFdmVudFwiKSkuaW5pdEV2ZW50KHJvdXRlckxpbmtFdmVudE5hbWUsITAsITEpfXZhciByb3V0ZXJMaW5rUHJvcHM9e3RvOltTdHJpbmcsT2JqZWN0XSxleGFjdDpCb29sZWFuLGFwcGVuZDpCb29sZWFuLHJlcGxhY2U6Qm9vbGVhbixldmVudDpbU3RyaW5nLEFycmF5XSxhY3RpdmVDbGFzczpTdHJpbmcsZXhhY3RBY3RpdmVDbGFzczpTdHJpbmd9LFJvdXRlckxpbmtNaXhpbj17cHJvcHM6cm91dGVyTGlua1Byb3BzLGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57cm91dGVyTGlua0V2ZW50TmFtZTpyb3V0ZXJMaW5rRXZlbnROYW1lfX19O2Z1bmN0aW9uIHRleHRTdHlsZSh0KXtyZXR1cm4gdm9pZCAwPT09dHx8dDwyP3t9OntvdmVyZmxvdzpcImhpZGRlblwiLGRpc3BsYXk6XCItd2Via2l0LWJveFwiLFwiLXdlYmtpdC1ib3gtb3JpZW50XCI6XCJ2ZXJ0aWNhbFwiLFwiLXdlYmtpdC1saW5lLWNsYW1wXCI6dH19dmFyIHN1Ykl0ZW1Qcm9wcz17aWNvbjpTdHJpbmcscmlnaHRJY29uOlN0cmluZyxpbWFnZTpTdHJpbmcscmlnaHRJbWFnZTpTdHJpbmcsYXZhdGFyOlN0cmluZyxyaWdodEF2YXRhcjpTdHJpbmcsbGV0dGVyOlN0cmluZyxyaWdodExldHRlcjpTdHJpbmcsbGFiZWw6U3RyaW5nLHN1YmxhYmVsOlN0cmluZyxsYWJlbExpbmVzOltTdHJpbmcsTnVtYmVyXSxzdWJsYWJlbExpbmVzOltTdHJpbmcsTnVtYmVyXX0sSXRlbU1peGluPXttaXhpbnM6W3twcm9wczpyb3V0ZXJMaW5rUHJvcHN9XSxwcm9wczp7ZGFyazpCb29sZWFuLGxpbms6Qm9vbGVhbixkZW5zZTpCb29sZWFuLHNwYXJzZTpCb29sZWFuLHNlcGFyYXRvcjpCb29sZWFuLGluc2V0U2VwYXJhdG9yOkJvb2xlYW4sbXVsdGlsaW5lOkJvb2xlYW4saGlnaGxpZ2h0OkJvb2xlYW4sdGFnOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiZGl2XCJ9fSxjb21wdXRlZDp7aXRlbUNsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm57XCJxLWl0ZW1cIjohMCxcInEtaXRlbS1kaXZpc2lvblwiOiEwLFwicmVsYXRpdmUtcG9zaXRpb25cIjohMCxcInEtaXRlbS1kYXJrXCI6dGhpcy5kYXJrLFwicS1pdGVtLWRlbnNlXCI6dGhpcy5kZW5zZSxcInEtaXRlbS1zcGFyc2VcIjp0aGlzLnNwYXJzZSxcInEtaXRlbS1zZXBhcmF0b3JcIjp0aGlzLnNlcGFyYXRvcixcInEtaXRlbS1pbnNldC1zZXBhcmF0b3JcIjp0aGlzLmluc2V0U2VwYXJhdG9yLFwicS1pdGVtLW11bHRpbGluZVwiOnRoaXMubXVsdGlsaW5lLFwicS1pdGVtLWhpZ2hsaWdodFwiOnRoaXMuaGlnaGxpZ2h0LFwicS1pdGVtLWxpbmtcIjp0aGlzLnRvfHx0aGlzLmxpbmt9fX19LFFJdGVtPXtuYW1lOlwiUUl0ZW1cIixtaXhpbnM6W0l0ZW1NaXhpbl0scHJvcHM6e2FjdGl2ZTpCb29sZWFuLGxpbms6Qm9vbGVhbn0sY29tcHV0ZWQ6e2NsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm5bdm9pZCAwIT09dGhpcy50bz9cInEtbGlua1wiOnthY3RpdmU6dGhpcy5hY3RpdmV9LHRoaXMuaXRlbUNsYXNzZXNdfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT10aGlzLnRvP3QoXCJyb3V0ZXItbGlua1wiLHtwcm9wczpPYmplY3QuYXNzaWduKHt9LHRoaXMuJHByb3BzLHt0YWc6XCJhXCJ9KSxjbGFzczp0aGlzLmNsYXNzZXN9LHRoaXMuJHNsb3RzLmRlZmF1bHQpOnQodGhpcy50YWcse2NsYXNzOnRoaXMuY2xhc3Nlc30sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxRSXRlbVNpZGU9e25hbWU6XCJRSXRlbVNpZGVcIixwcm9wczp7cmlnaHQ6Qm9vbGVhbixpY29uOlN0cmluZyxsZXR0ZXI6e3R5cGU6U3RyaW5nLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4gMT09PXQubGVuZ3RofX0saW52ZXJ0ZWQ6Qm9vbGVhbixhdmF0YXI6U3RyaW5nLGltYWdlOlN0cmluZyxzdGFtcDpTdHJpbmcsY29sb3I6U3RyaW5nLHRleHRDb2xvcjpTdHJpbmd9LGNvbXB1dGVkOnt0eXBlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm5bXCJpY29uXCIsXCJpbWFnZVwiLFwiYXZhdGFyXCIsXCJsZXR0ZXJcIixcInN0YW1wXCJdLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KX0sY2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PVtcInEtaXRlbS1zaWRlLVwiKyh0aGlzLnJpZ2h0P1wicmlnaHRcIjpcImxlZnRcIildO3JldHVybiF0aGlzLmNvbG9yfHx0aGlzLmljb258fHRoaXMubGV0dGVyfHx0LnB1c2goXCJ0ZXh0LVwiK3RoaXMuY29sb3IpLHR9LHR5cGVDbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9W1wicS1pdGVtLVwiK3RoaXMudHlwZV07cmV0dXJuIHRoaXMuY29sb3ImJih0aGlzLmludmVydGVkJiYodGhpcy5pY29ufHx0aGlzLmxldHRlcik/dC5wdXNoKFwiYmctXCIrdGhpcy5jb2xvcik6dGhpcy50ZXh0Q29sb3J8fHQucHVzaChcInRleHQtXCIrdGhpcy5jb2xvcikpLHRoaXMudGV4dENvbG9yJiZ0LnB1c2goXCJ0ZXh0LVwiK3RoaXMudGV4dENvbG9yKSx0aGlzLmludmVydGVkJiYodGhpcy5pY29ufHx0aGlzLmxldHRlcikmJih0LnB1c2goXCJxLWl0ZW0taW52ZXJ0ZWRcIiksdC5wdXNoKFwiZmxleFwiKSx0LnB1c2goXCJmbGV4LWNlbnRlclwiKSksdH0saW1hZ2VQYXRoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW1hZ2V8fHRoaXMuYXZhdGFyfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiB0aGlzLnR5cGUmJih0aGlzLmljb24/KGU9dChRSWNvbix7Y2xhc3M6dGhpcy5pbnZlcnRlZD9udWxsOnRoaXMudHlwZUNsYXNzZXMscHJvcHM6e25hbWU6dGhpcy5pY29ufX0pLHRoaXMuaW52ZXJ0ZWQmJihlPXQoXCJkaXZcIix7Y2xhc3M6dGhpcy50eXBlQ2xhc3Nlc30sW2VdKSkpOmU9dGhpcy5pbWFnZVBhdGg/dChcImltZ1wiLHtjbGFzczp0aGlzLnR5cGVDbGFzc2VzLGF0dHJzOntzcmM6dGhpcy5pbWFnZVBhdGh9fSk6dChcImRpdlwiLHtjbGFzczp0aGlzLnR5cGVDbGFzc2VzfSxbdGhpcy5zdGFtcHx8dGhpcy5sZXR0ZXJdKSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtaXRlbS1zaWRlIHEtaXRlbS1zZWN0aW9uXCIsY2xhc3M6dGhpcy5jbGFzc2VzfSxbZSx0aGlzLiRzbG90cy5kZWZhdWx0XSl9fTtmdW5jdGlvbiB0ZXh0KHQsZSxpLHMpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1pdGVtLVwiK2UrKDE9PT0ocz1wYXJzZUludChzLDEwKSk/XCIgZWxsaXBzaXNcIjpcIlwiKSxzdHlsZTp0ZXh0U3R5bGUocyksZG9tUHJvcHM6e2lubmVySFRNTDppfX0pfXZhciBRSXRlbU1haW49e25hbWU6XCJRSXRlbU1haW5cIixwcm9wczp7bGFiZWw6U3RyaW5nLGxhYmVsTGluZXM6W1N0cmluZyxOdW1iZXJdLHN1YmxhYmVsOlN0cmluZyxzdWJsYWJlbExpbmVzOltTdHJpbmcsTnVtYmVyXSxpbnNldDpCb29sZWFuLHRhZzp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImRpdlwifX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KHRoaXMudGFnLHtzdGF0aWNDbGFzczpcInEtaXRlbS1tYWluIHEtaXRlbS1zZWN0aW9uXCIsY2xhc3M6e1wicS1pdGVtLW1haW4taW5zZXRcIjp0aGlzLmluc2V0fX0sW3RoaXMubGFiZWw/dGV4dCh0LFwibGFiZWxcIix0aGlzLmxhYmVsLHRoaXMubGFiZWxMaW5lcyk6bnVsbCx0aGlzLnN1YmxhYmVsP3RleHQodCxcInN1YmxhYmVsXCIsdGhpcy5zdWJsYWJlbCx0aGlzLnN1YmxhYmVsTGluZXMpOm51bGwsdGhpcy4kc2xvdHMuZGVmYXVsdF0pfX0sUUl0ZW1TZXBhcmF0b3I9e25hbWU6XCJRSXRlbVNlcGFyYXRvclwiLHByb3BzOntpbnNldDpCb29sZWFufSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWl0ZW0tc2VwYXJhdG9yLWNvbXBvbmVudFwiLGNsYXNzOntcInEtaXRlbS1zZXBhcmF0b3ItaW5zZXQtY29tcG9uZW50XCI6dGhpcy5pbnNldH19LHRoaXMuJHNsb3RzLmRlZmF1bHQpfX0sUUFjdGlvblNoZWV0PXtuYW1lOlwiUUFjdGlvblNoZWV0XCIscHJvcHM6e3ZhbHVlOkJvb2xlYW4sdGl0bGU6U3RyaW5nLGdyaWQ6Qm9vbGVhbixhY3Rpb25zOkFycmF5LGRpc21pc3NMYWJlbDpTdHJpbmd9LGNvbXB1dGVkOntjb250ZW50Q3NzOmZ1bmN0aW9uKCl7fX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT1bXSxzPXRoaXMuJHNsb3RzLnRpdGxlfHx0aGlzLnRpdGxlO3JldHVybiBzJiZpLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtYWN0aW9uc2hlZXQtdGl0bGUgY29sdW1uIGp1c3RpZnktY2VudGVyXCJ9LFtzXSkpLGkucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1hY3Rpb25zaGVldC1ib2R5IHNjcm9sbFwifSx0aGlzLmFjdGlvbnM/W3RoaXMuZ3JpZD90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1hY3Rpb25zaGVldC1ncmlkIHJvdyB3cmFwIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIn0sdGhpcy5fX2dldEFjdGlvbnModCkpOnQoUUxpc3Qse3N0YXRpY0NsYXNzOlwibm8tYm9yZGVyXCIscHJvcHM6e2xpbms6ITB9fSx0aGlzLl9fZ2V0QWN0aW9ucyh0KSldOnRoaXMuJHNsb3RzLmRlZmF1bHQpKSx0KFFNb2RhbCx7cmVmOlwibW9kYWxcIixwcm9wczp7dmFsdWU6dGhpcy52YWx1ZSxwb3NpdGlvbjpcImJvdHRvbVwiLGNvbnRlbnRDc3M6dGhpcy5jb250ZW50Q3NzfSxvbjp7aW5wdXQ6ZnVuY3Rpb24odCl7ZS4kZW1pdChcImlucHV0XCIsdCl9LHNob3c6ZnVuY3Rpb24oKXtlLiRlbWl0KFwic2hvd1wiKX0saGlkZTpmdW5jdGlvbigpe2UuJGVtaXQoXCJoaWRlXCIpfSxkaXNtaXNzOmZ1bmN0aW9uKCl7ZS4kZW1pdChcImNhbmNlbFwiKX0sXCJlc2NhcGUta2V5XCI6ZnVuY3Rpb24oKXtlLiRlbWl0KFwiZXNjYXBlLWtleVwiKX19fSxpKX0sbWV0aG9kczp7c2hvdzpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRyZWZzLm1vZGFsLnNob3coKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRyZWZzLm1vZGFsP3RoaXMuJHJlZnMubW9kYWwuaGlkZSgpOlByb21pc2UucmVzb2x2ZSgpfSxfX2dldEFjdGlvbnM6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5hY3Rpb25zLm1hcChmdW5jdGlvbihpKXt2YXIgcztyZXR1cm4gaS5sYWJlbD90KGUuZ3JpZD9cImRpdlwiOlFJdGVtLCgocz17c3RhdGljQ2xhc3M6ZS5ncmlkP1wicS1hY3Rpb25zaGVldC1ncmlkLWl0ZW0gY3Vyc29yLXBvaW50ZXIgcmVsYXRpdmUtcG9zaXRpb24gY29sdW1uIGlubGluZSBmbGV4LWNlbnRlclwiOm51bGwsY2xhc3M6aS5jbGFzc2VzLGF0dHJzOnt0YWJpbmRleDowfX0pW2UuZ3JpZD9cIm9uXCI6XCJuYXRpdmVPblwiXT17Y2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gZS5fX29uT2soaSl9LGtleXVwOmZ1bmN0aW9uKHQpezEzPT09Z2V0RXZlbnRLZXkodCkmJmUuX19vbk9rKGkpfX0scyksZS5ncmlkP1tpLmljb24/dChRSWNvbix7cHJvcHM6e25hbWU6aS5pY29uLGNvbG9yOmkuY29sb3J9fSk6bnVsbCxpLmF2YXRhcj90KFwiaW1nXCIse2RvbVByb3BzOntzcmM6aS5hdmF0YXJ9LHN0YXRpY0NsYXNzOlwiYXZhdGFyXCJ9KTpudWxsLHQoXCJzcGFuXCIsW2kubGFiZWxdKV06W3QoUUl0ZW1TaWRlLHtwcm9wczp7aWNvbjppLmljb24sY29sb3I6aS5jb2xvcixhdmF0YXI6aS5hdmF0YXJ9fSksdChRSXRlbU1haW4se3Byb3BzOntpbnNldDohMCxsYWJlbDppLmxhYmVsfX0pXSk6dChRSXRlbVNlcGFyYXRvcix7c3RhdGljQ2xhc3M6XCJjb2wtMTJcIn0pfSl9LF9fb25PazpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuaGlkZSgpLnRoZW4oZnVuY3Rpb24oKXtcImZ1bmN0aW9uXCI9PXR5cGVvZiB0LmhhbmRsZXImJnQuaGFuZGxlcigpLGUuJGVtaXQoXCJva1wiLHQpfSl9LF9fb25DYW5jZWw6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuaGlkZSgpLnRoZW4oZnVuY3Rpb24oKXt0LiRlbWl0KFwiY2FuY2VsXCIpfSl9LF9fb25LZXlDYW5jZWw6ZnVuY3Rpb24odCl7MTM9PT1nZXRFdmVudEtleSh0KSYmdGhpcy5fX29uQ2FuY2VsKCl9fX0sdW5pdHM9W1wiQlwiLFwia0JcIixcIk1CXCIsXCJHQlwiLFwiVEJcIixcIlBCXCJdO2Z1bmN0aW9uIGh1bWFuU3RvcmFnZVNpemUodCl7Zm9yKHZhciBlPTA7cGFyc2VJbnQodCwxMCk+PTEwMjQmJmU8dW5pdHMubGVuZ3RoLTE7KXQvPTEwMjQsKytlO3JldHVybiB0LnRvRml4ZWQoMSkrXCIgXCIrdW5pdHNbZV19ZnVuY3Rpb24gY2FwaXRhbGl6ZSh0KXtyZXR1cm4gdC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSt0LnNsaWNlKDEpfWZ1bmN0aW9uIGJldHdlZW4odCxlLGkpe3JldHVybiBpPD1lP2U6TWF0aC5taW4oaSxNYXRoLm1heChlLHQpKX1mdW5jdGlvbiBub3JtYWxpemVUb0ludGVydmFsKHQsZSxpKXtpZihpPD1lKXJldHVybiBlO3ZhciBzPWktZSsxLG49ZSsodC1lKSVzO3JldHVybiBuPGUmJihuPXMrbiksMD09PW4/MDpufWZ1bmN0aW9uIHBhZCh0LGUsaSl7dm9pZCAwPT09ZSYmKGU9Miksdm9pZCAwPT09aSYmKGk9XCIwXCIpO3ZhciBzPVwiXCIrdDtyZXR1cm4gcy5sZW5ndGg+PWU/czpuZXcgQXJyYXkoZS1zLmxlbmd0aCsxKS5qb2luKGkpK3N9dmFyIGZvcm1hdD17aHVtYW5TdG9yYWdlU2l6ZTpodW1hblN0b3JhZ2VTaXplLGNhcGl0YWxpemU6Y2FwaXRhbGl6ZSxiZXR3ZWVuOmJldHdlZW4sbm9ybWFsaXplVG9JbnRlcnZhbDpub3JtYWxpemVUb0ludGVydmFsLHBhZDpwYWR9LHhocj1pc1NTUj9udWxsOlhNTEh0dHBSZXF1ZXN0LHNlbmQ9aXNTU1I/bnVsbDp4aHIucHJvdG90eXBlLnNlbmQsc3RhY2s9e3N0YXJ0OltdLHN0b3A6W119LGhpZ2hqYWNrQ291bnQ9MDtmdW5jdGlvbiB0cmFuc2xhdGUodCl7dmFyIGU9dC5wLGk9dC5wb3Mscz10LmFjdGl2ZSxuPXQuaG9yaXosbz10LnJldmVyc2Uscj10LmRpcixhPTEsbD0xO3JldHVybiBuPyhvJiYoYT0tMSksXCJib3R0b21cIj09PWkmJihsPS0xKSx7dHJhbnNmb3JtOlwidHJhbnNsYXRlM2QoXCIrYSooZS0xMDApK1wiJSxcIisocz8wOi0yMDAqbCkrXCIlLDApXCJ9KToobyYmKGw9LTEpLFwicmlnaHRcIj09PWkmJihhPS0xKSx7dHJhbnNmb3JtOlwidHJhbnNsYXRlM2QoXCIrKHM/MDpyKmEqLTIwMCkrXCIlLFwiK2wqKGUtMTAwKStcIiUsMClcIn0pfWZ1bmN0aW9uIGluYyh0LGUpe3JldHVyblwibnVtYmVyXCIhPXR5cGVvZiBlJiYoZT10PDI1PzMqTWF0aC5yYW5kb20oKSszOnQ8NjU/MypNYXRoLnJhbmRvbSgpOnQ8ODU/MipNYXRoLnJhbmRvbSgpOnQ8OTk/LjY6MCksYmV0d2Vlbih0K2UsMCwxMDApfWZ1bmN0aW9uIGhpZ2hqYWNrQWpheCh0LGUpe2Z1bmN0aW9uIGkoKXtzdGFjay5zdG9wLm1hcChmdW5jdGlvbih0KXt0KCl9KX1zdGFjay5zdGFydC5wdXNoKHQpLHN0YWNrLnN0b3AucHVzaChlKSwrK2hpZ2hqYWNrQ291bnQ+MXx8KHhoci5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLGU9W10scz1hcmd1bWVudHMubGVuZ3RoO3MtLTspZVtzXT1hcmd1bWVudHNbc107c3RhY2suc3RhcnQubWFwKGZ1bmN0aW9uKHQpe3QoKX0pLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsaSwhMSksdGhpcy5hZGRFdmVudExpc3RlbmVyKFwicmVhZHlzdGF0ZWNoYW5nZVwiLGZ1bmN0aW9uKCl7ND09PXQucmVhZHlTdGF0ZSYmaSgpfSwhMSksc2VuZC5hcHBseSh0aGlzLGUpfSl9ZnVuY3Rpb24gcmVzdG9yZUFqYXgodCxlKXtzdGFjay5zdGFydD1zdGFjay5zdGFydC5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT10fSksc3RhY2suc3RvcD1zdGFjay5zdG9wLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdCE9PWV9KSwoaGlnaGphY2tDb3VudD1NYXRoLm1heCgwLGhpZ2hqYWNrQ291bnQtMSkpfHwoeGhyLnByb3RvdHlwZS5zZW5kPXNlbmQpfXZhciBRQWpheEJhcj17bmFtZTpcIlFBamF4QmFyXCIscHJvcHM6e3Bvc2l0aW9uOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwidG9wXCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcInRvcFwiLFwicmlnaHRcIixcImJvdHRvbVwiLFwibGVmdFwiXS5pbmNsdWRlcyh0KX19LHNpemU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCIycHhcIn0sY29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJyZWRcIn0sc2tpcEhpamFjazpCb29sZWFuLHJldmVyc2U6Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3JldHVybntjYWxsczowLHByb2dyZXNzOjAsb25TY3JlZW46ITEsYW5pbWF0ZTohMH19LGNvbXB1dGVkOntjbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJuW3RoaXMucG9zaXRpb24sXCJiZy1cIit0aGlzLmNvbG9yLHRoaXMuYW5pbWF0ZT9cIlwiOlwibm8tdHJhbnNpdGlvblwiXX0sc3R5bGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9uU2NyZWVuLGU9dHJhbnNsYXRlKHtwOnRoaXMucHJvZ3Jlc3MscG9zOnRoaXMucG9zaXRpb24sYWN0aXZlOnQsaG9yaXo6dGhpcy5ob3Jpem9udGFsLHJldmVyc2U6dGhpcy4kcS5pMThuLnJ0bCYmW1widG9wXCIsXCJib3R0b21cIl0uaW5jbHVkZXModGhpcy5wb3NpdGlvbik/IXRoaXMucmV2ZXJzZTp0aGlzLnJldmVyc2UsZGlyOnRoaXMuJHEuaTE4bi5ydGw/LTE6MX0pO3JldHVybiBlW3RoaXMuc2l6ZVByb3BdPXRoaXMuc2l6ZSxlLm9wYWNpdHk9dD8xOjAsZX0saG9yaXpvbnRhbDpmdW5jdGlvbigpe3JldHVyblwidG9wXCI9PT10aGlzLnBvc2l0aW9ufHxcImJvdHRvbVwiPT09dGhpcy5wb3NpdGlvbn0sc2l6ZVByb3A6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ob3Jpem9udGFsP1wiaGVpZ2h0XCI6XCJ3aWR0aFwifX0sbWV0aG9kczp7c3RhcnQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt2b2lkIDA9PT10JiYodD0zMDApLHRoaXMuY2FsbHMrKyx0aGlzLmNhbGxzPjF8fChjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy4kZW1pdChcInN0YXJ0XCIpLHRoaXMub25TY3JlZW58fCh0aGlzLnByb2dyZXNzPTAsdGhpcy5vblNjcmVlbj0hMCx0aGlzLmFuaW1hdGU9ITEsdGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5hbmltYXRlPSEwLGUuX193b3JrKHQpfSwxMDApKSl9LGluY3JlbWVudDpmdW5jdGlvbih0KXt0aGlzLmNhbGxzPjAmJih0aGlzLnByb2dyZXNzPWluYyh0aGlzLnByb2dyZXNzLHQpKX0sc3RvcDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYodGhpcy5jYWxscz1NYXRoLm1heCgwLHRoaXMuY2FsbHMtMSksISh0aGlzLmNhbGxzPjApKXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy4kZW1pdChcInN0b3BcIik7dmFyIGU9ZnVuY3Rpb24oKXt0LmFuaW1hdGU9ITAsdC5wcm9ncmVzcz0xMDAsdC50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5vblNjcmVlbj0hMX0sMWUzKX07MD09PXRoaXMucHJvZ3Jlc3M/dGhpcy50aW1lcj1zZXRUaW1lb3V0KGUsMSk6ZSgpfX0sX193b3JrOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5wcm9ncmVzczwxMDAmJih0aGlzLnRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmluY3JlbWVudCgpLGUuX193b3JrKHQpfSx0KSl9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy5za2lwSGlqYWNrfHwodGhpcy5oaWphY2tlZD0hMCxoaWdoamFja0FqYXgodGhpcy5zdGFydCx0aGlzLnN0b3ApKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLmhpamFja2VkJiZyZXN0b3JlQWpheCh0aGlzLnN0YXJ0LHRoaXMuc3RvcCl9LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbG9hZGluZy1iYXJcIixjbGFzczp0aGlzLmNsYXNzZXMsc3R5bGU6dGhpcy5zdHlsZX0pfX07ZnVuY3Rpb24gc2hvd1JpcHBsZSh0LGUsaSl7dmFyIHM9aS5zdG9wLG49aS5jZW50ZXI7cyYmdC5zdG9wUHJvcGFnYXRpb24oKTt2YXIgbyxyLGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIiksbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3BhblwiKSxjPWUuY2xpZW50V2lkdGg+ZS5jbGllbnRIZWlnaHQ/ZS5jbGllbnRXaWR0aDplLmNsaWVudEhlaWdodCxoPShuP2M6MipjKStcInB4XCIsdT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKGEuYXBwZW5kQ2hpbGQobCksYS5jbGFzc05hbWU9XCJxLXJpcHBsZS1jb250YWluZXJcIixsLmNsYXNzTmFtZT1cInEtcmlwcGxlLWFuaW1hdGlvblwiLGwuc3R5bGUud2lkdGg9aCxsLnN0eWxlLmhlaWdodD1oLGUuYXBwZW5kQ2hpbGQoYSksbilvPXI9MDtlbHNle3ZhciBkPXBvc2l0aW9uKHQpO289ZC5sZWZ0LXUubGVmdC1jLHI9ZC50b3AtdS50b3AtY31sLmNsYXNzTGlzdC5hZGQoXCJxLXJpcHBsZS1hbmltYXRpb24tZW50ZXJcIiksbC5jbGFzc0xpc3QuYWRkKFwicS1yaXBwbGUtYW5pbWF0aW9uLXZpc2libGVcIiksbC5zdHlsZS50cmFuc2Zvcm09XCJ0cmFuc2xhdGUoXCIrbytcInB4LCBcIityK1wicHgpIHNjYWxlM2QoMCwgMCwgMClcIixzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bC5jbGFzc0xpc3QucmVtb3ZlKFwicS1yaXBwbGUtYW5pbWF0aW9uLWVudGVyXCIpLGwuc3R5bGUudHJhbnNmb3JtPVwidHJhbnNsYXRlKFwiK28rXCJweCwgXCIrcitcInB4KSBzY2FsZTNkKDEsIDEsIDEpXCIsc2V0VGltZW91dChmdW5jdGlvbigpe2wuY2xhc3NMaXN0LnJlbW92ZShcInEtcmlwcGxlLWFuaW1hdGlvbi12aXNpYmxlXCIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXthLnJlbW92ZSgpfSwzMDApfSwzMDApfSwxMCl9ZnVuY3Rpb24gc2hvdWxkQWJvcnQodCl7dC5tYXQ7cmV0dXJuIHQuaW9zJiYhMH12YXIgUmlwcGxlPXtuYW1lOlwicmlwcGxlXCIsaW5zZXJ0ZWQ6ZnVuY3Rpb24odCxlKXt2YXIgaT1lLnZhbHVlLHM9ZS5tb2RpZmllcnM7aWYoIXNob3VsZEFib3J0KHMpKXt2YXIgbj17ZW5hYmxlZDohMSE9PWksbW9kaWZpZXJzOntzdG9wOnMuc3RvcCxjZW50ZXI6cy5jZW50ZXJ9LGNsaWNrOmZ1bmN0aW9uKGUpe24uZW5hYmxlZCYmLTEhPT1lLmRldGFpbCYmc2hvd1JpcHBsZShlLHQsbi5tb2RpZmllcnMpfSxrZXl1cDpmdW5jdGlvbihlKXtuLmVuYWJsZWQmJjEzPT09ZS5rZXlDb2RlJiZzaG93UmlwcGxlKGUsdCxuLm1vZGlmaWVycyl9fTt0Ll9fcXJpcHBsZT1uLHQuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsbi5jbGljaywhMSksdC5hZGRFdmVudExpc3RlbmVyKFwia2V5dXBcIixuLmtleXVwLCExKX19LHVwZGF0ZTpmdW5jdGlvbih0LGUpe3ZhciBpPWUudmFsdWUscz1lLm1vZGlmaWVycyxuPXMuc3RvcCxvPXMuY2VudGVyLHI9dC5fX3FyaXBwbGU7ciYmKHIuZW5hYmxlZD0hMSE9PWksci5tb2RpZmllcnM9e3N0b3A6bixjZW50ZXI6b30pfSx1bmJpbmQ6ZnVuY3Rpb24odCxlKXt2YXIgaT1lLm1vZGlmaWVycyxzPXQuX19xcmlwcGxlO3MmJiFzaG91bGRBYm9ydChpKSYmKHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIscy5jbGljaywhMSksdC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5dXBcIixzLmtleXVwLCExKSxkZWxldGUgdC5fX3FyaXBwbGUpfX0sYWxpZ25NYXA9e2xlZnQ6XCJzdGFydFwiLGNlbnRlcjpcImNlbnRlclwiLHJpZ2h0OlwiZW5kXCIsYmV0d2VlbjpcImJldHdlZW5cIixhcm91bmQ6XCJhcm91bmRcIn0sYWxpZ25WYWx1ZXM9T2JqZWN0LmtleXMoYWxpZ25NYXApLEFsaWduTWl4aW49e3Byb3BzOnthbGlnbjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImNlbnRlclwiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4gYWxpZ25WYWx1ZXMuaW5jbHVkZXModCl9fX0sY29tcHV0ZWQ6e2FsaWduQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm5cImp1c3RpZnktXCIrYWxpZ25NYXBbdGhpcy5hbGlnbl19fX0sc2l6ZXM9e3hzOjgsc206MTAsbWQ6MTQsbGc6MjAseGw6MjQsZm9ybToxNC43NzcsXCJmb3JtLWxhYmVsXCI6MjEuNzc3LFwiZm9ybS1oaWRlLXVuZGVybGluZVwiOjkuMzMzLFwiZm9ybS1sYWJlbC1oaWRlLXVuZGVybGluZVwiOjE2LjMzM30sQnRuTWl4aW49e21peGluczpbQWxpZ25NaXhpbl0sZGlyZWN0aXZlczp7UmlwcGxlOlJpcHBsZX0scHJvcHM6e3R5cGU6U3RyaW5nLGxvYWRpbmc6e3R5cGU6Qm9vbGVhbixkZWZhdWx0Om51bGx9LGRpc2FibGU6Qm9vbGVhbixsYWJlbDpbTnVtYmVyLFN0cmluZ10sbm9DYXBzOkJvb2xlYW4sbm9XcmFwOkJvb2xlYW4saWNvbjpTdHJpbmcsaWNvblJpZ2h0OlN0cmluZyxyb3VuZDpCb29sZWFuLG91dGxpbmU6Qm9vbGVhbixmbGF0OkJvb2xlYW4scm91bmRlZDpCb29sZWFuLHB1c2g6Qm9vbGVhbixzaXplOlN0cmluZyxmYWI6Qm9vbGVhbixmYWJNaW5pOkJvb2xlYW4sY29sb3I6U3RyaW5nLHRleHRDb2xvcjpTdHJpbmcsZ2xvc3N5OkJvb2xlYW4sZGVuc2U6Qm9vbGVhbixub1JpcHBsZTpCb29sZWFuLHRhYmluZGV4Ok51bWJlcix0bzpbT2JqZWN0LFN0cmluZ10scmVwbGFjZTpCb29sZWFufSxjb21wdXRlZDp7c3R5bGU6ZnVuY3Rpb24oKXtpZih0aGlzLnNpemUmJiF0aGlzLmZhYiYmIXRoaXMuZmFiTWluaSlyZXR1cm57Zm9udFNpemU6dGhpcy5zaXplIGluIHNpemVzP3NpemVzW3RoaXMuc2l6ZV0rXCJweFwiOnRoaXMuc2l6ZX19LGlzUmVjdGFuZ2xlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaXNSb3VuZH0saXNSb3VuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJvdW5kfHx0aGlzLmZhYnx8dGhpcy5mYWJNaW5pfSxzaGFwZTpmdW5jdGlvbigpe3JldHVyblwicS1idG4tXCIrKHRoaXMuaXNSb3VuZD9cInJvdW5kXCI6XCJyZWN0YW5nbGVcIil9LGlzRGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kaXNhYmxlfHx0aGlzLmxvYWRpbmd9LGhhc1JpcHBsZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLm5vUmlwcGxlJiYhdGhpcy5pc0Rpc2FibGVkfSxjb21wdXRlZFRhYkluZGV4OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNEaXNhYmxlZD8tMTp0aGlzLnRhYmluZGV4fHwwfSxpc0xpbms6ZnVuY3Rpb24oKXtyZXR1cm5cImFcIj09PXRoaXMudHlwZXx8dm9pZCAwIT09dGhpcy50b30sYXR0cnM6ZnVuY3Rpb24oKXt2YXIgdD17dGFiaW5kZXg6dGhpcy5jb21wdXRlZFRhYkluZGV4fTtyZXR1cm5cImFcIiE9PXRoaXMudHlwZSYmKHQudHlwZT10aGlzLnR5cGV8fFwiYnV0dG9uXCIpLHZvaWQgMCE9PXRoaXMudG8mJih0LmhyZWY9dGhpcy4kcm91dGVyLnJlc29sdmUodGhpcy50bykuaHJlZiksdH0sY2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PVt0aGlzLnNoYXBlXTtyZXR1cm4gdGhpcy5mYWI/dC5wdXNoKFwicS1idG4tZmFiXCIpOnRoaXMuZmFiTWluaSYmdC5wdXNoKFwicS1idG4tZmFiLW1pbmlcIiksdGhpcy5mbGF0P3QucHVzaChcInEtYnRuLWZsYXRcIik6dGhpcy5vdXRsaW5lP3QucHVzaChcInEtYnRuLW91dGxpbmVcIik6dGhpcy5wdXNoJiZ0LnB1c2goXCJxLWJ0bi1wdXNoXCIpLHRoaXMuaXNEaXNhYmxlZD90LnB1c2goXCJkaXNhYmxlZFwiKToodC5wdXNoKFwicS1mb2N1c2FibGUgcS1ob3ZlcmFibGVcIiksdGhpcy5hY3RpdmUmJnQucHVzaChcImFjdGl2ZVwiKSksdGhpcy5jb2xvcj90aGlzLmZsYXR8fHRoaXMub3V0bGluZT90LnB1c2goXCJ0ZXh0LVwiKyh0aGlzLnRleHRDb2xvcnx8dGhpcy5jb2xvcikpOih0LnB1c2goXCJiZy1cIit0aGlzLmNvbG9yKSx0LnB1c2goXCJ0ZXh0LVwiKyh0aGlzLnRleHRDb2xvcnx8XCJ3aGl0ZVwiKSkpOnRoaXMudGV4dENvbG9yJiZ0LnB1c2goXCJ0ZXh0LVwiK3RoaXMudGV4dENvbG9yKSx0LnB1c2goe1wicS1idG4tbm8tdXBwZXJjYXNlXCI6dGhpcy5ub0NhcHMsXCJxLWJ0bi1yb3VuZGVkXCI6dGhpcy5yb3VuZGVkLFwicS1idG4tZGVuc2VcIjp0aGlzLmRlbnNlLGdsb3NzeTp0aGlzLmdsb3NzeX0pLHR9LGlubmVyQ2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PVt0aGlzLmFsaWduQ2xhc3NdO3JldHVybiEwPT09dGhpcy5ub1dyYXAmJnQucHVzaChcIm5vLXdyYXBcIixcInRleHQtbm8td3JhcFwiKSwhMD09PXRoaXMucmVwZWF0aW5nJiZ0LnB1c2goXCJub24tc2VsZWN0YWJsZVwiKSwhMD09PXRoaXMubG9hZGluZyYmdC5wdXNoKFwicS1idG4taW5uZXItLWhpZGRlblwiKSx0fX19LG1peGluJDE9e3Byb3BzOntjb2xvcjpTdHJpbmcsc2l6ZTp7dHlwZTpbTnVtYmVyLFN0cmluZ10sZGVmYXVsdDpcIjFlbVwifX0sY29tcHV0ZWQ6e2NsYXNzZXM6ZnVuY3Rpb24oKXtpZih0aGlzLmNvbG9yKXJldHVyblwidGV4dC1cIit0aGlzLmNvbG9yfX19LERlZmF1bHRTcGlubmVyPXtuYW1lOlwiUVNwaW5uZXJNYXRcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lciBxLXNwaW5uZXItbWF0XCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOnt3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMjUgMjUgNTAgNTBcIn19LFt0KFwiY2lyY2xlXCIse3N0YXRpY0NsYXNzOlwicGF0aFwiLGF0dHJzOntjeDpcIjUwXCIsY3k6XCI1MFwiLHI6XCIyMFwiLGZpbGw6XCJub25lXCIsc3Ryb2tlOlwiY3VycmVudENvbG9yXCIsXCJzdHJva2Utd2lkdGhcIjpcIjNcIixcInN0cm9rZS1taXRlcmxpbWl0XCI6XCIxMFwifX0pXSl9fSxRU3Bpbm5lcj17bWl4aW5zOltEZWZhdWx0U3Bpbm5lcl0sbmFtZTpcIlFTcGlubmVyXCJ9LFFCdG49e25hbWU6XCJRQnRuXCIsbWl4aW5zOltCdG5NaXhpbl0scHJvcHM6e3BlcmNlbnRhZ2U6TnVtYmVyLGRhcmtQZXJjZW50YWdlOkJvb2xlYW4sd2FpdEZvclJpcHBsZTpCb29sZWFuLHJlcGVhdFRpbWVvdXQ6W051bWJlcixGdW5jdGlvbl19LGNvbXB1dGVkOntoYXNQZXJjZW50YWdlOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMucGVyY2VudGFnZX0sd2lkdGg6ZnVuY3Rpb24oKXtyZXR1cm4gYmV0d2Vlbih0aGlzLnBlcmNlbnRhZ2UsMCwxMDApK1wiJVwifSxldmVudHM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLmlzRGlzYWJsZWR8fCF0aGlzLnJlcGVhdFRpbWVvdXQ/e2NsaWNrOnRoaXMuY2xpY2ssa2V5ZG93bjp0aGlzLl9fb25LZXlEb3duLGtleXVwOnRoaXMuX19vbktleVVwfTp7bW91c2Vkb3duOnRoaXMuX19zdGFydFJlcGVhdCx0b3VjaHN0YXJ0OnRoaXMuX19zdGFydFJlcGVhdCxrZXlkb3duOmZ1bmN0aW9uKGUpe3QuX19vbktleURvd24oZSwhMCl9LG1vdXNldXA6dGhpcy5fX2VuZFJlcGVhdCx0b3VjaGVuZDp0aGlzLl9fZW5kUmVwZWF0LGtleXVwOmZ1bmN0aW9uKGUpe3QuX19vbktleVVwKGUsITApfSxtb3VzZWxlYXZlOnRoaXMuX19hYm9ydFJlcGVhdCx0b3VjaG1vdmU6dGhpcy5fX2Fib3J0UmVwZWF0LGJsdXI6dGhpcy5fX2Fib3J0UmVwZWF0fX19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57cmVwZWF0aW5nOiExLGFjdGl2ZTohMX19LG1ldGhvZHM6e2NsaWNrOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodGhpcy5fX2NsZWFudXAoKSx2b2lkIDA9PT10aGlzLnRvJiYhdGhpcy5pc0Rpc2FibGVkfHwodCYmc3RvcEFuZFByZXZlbnQodCksIXRoaXMuaXNEaXNhYmxlZCkpaWYodCYmLTEhPT10LmRldGFpbCYmXCJzdWJtaXRcIj09PXRoaXMudHlwZSl7c3RvcEFuZFByZXZlbnQodCk7dmFyIGk9bmV3IE1vdXNlRXZlbnQoXCJjbGlja1wiLE9iamVjdC5hc3NpZ24oe30sdCx7ZGV0YWlsOi0xfSkpO3RoaXMudGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBlLiRlbCYmZS4kZWwuZGlzcGF0Y2hFdmVudChpKX0sMjAwKX1lbHNle3ZhciBzPWZ1bmN0aW9uKCl7ZS4kcm91dGVyW2UucmVwbGFjZT9cInJlcGxhY2VcIjpcInB1c2hcIl0oZS50byl9LG49ZnVuY3Rpb24oKXtlLmlzRGlzYWJsZWR8fChlLiRlbWl0KFwiY2xpY2tcIix0LHMpLHZvaWQgMCE9PWUudG8mJiExIT09dC5uYXZpZ2F0ZSYmcygpKX07dGhpcy53YWl0Rm9yUmlwcGxlJiZ0aGlzLmhhc1JpcHBsZT90aGlzLnRpbWVyPXNldFRpbWVvdXQobiwzMDApOm4oKX19LF9fY2xlYW51cDpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKX0sX19vbktleURvd246ZnVuY3Rpb24odCxlKXt0aGlzLmlzRGlzYWJsZWR8fDEzIT09dC5rZXlDb2RlfHwodGhpcy5hY3RpdmU9ITAsZT90aGlzLl9fc3RhcnRSZXBlYXQodCk6c3RvcEFuZFByZXZlbnQodCkpfSxfX29uS2V5VXA6ZnVuY3Rpb24odCxlKXt0aGlzLmFjdGl2ZSYmKHRoaXMuYWN0aXZlPSExLHRoaXMuaXNEaXNhYmxlZHx8MTMhPT10LmtleUNvZGV8fHRoaXNbZT9cIl9fZW5kUmVwZWF0XCI6XCJjbGlja1wiXSh0KSl9LF9fc3RhcnRSZXBlYXQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZighdGhpcy5yZXBlYXRpbmcpe3ZhciBpPWZ1bmN0aW9uKCl7ZS50aW1lcj1zZXRUaW1lb3V0KHMsXCJmdW5jdGlvblwiPT10eXBlb2YgZS5yZXBlYXRUaW1lb3V0P2UucmVwZWF0VGltZW91dChlLnJlcGVhdENvdW50KTplLnJlcGVhdFRpbWVvdXQpfSxzPWZ1bmN0aW9uKCl7ZS5pc0Rpc2FibGVkfHwoZS5yZXBlYXRDb3VudCs9MSx0LnJlcGVhdENvdW50PWUucmVwZWF0Q291bnQsZS4kZW1pdChcImNsaWNrXCIsdCksaSgpKX07dGhpcy5yZXBlYXRDb3VudD0wLHRoaXMucmVwZWF0aW5nPSEwLGkoKX19LF9fYWJvcnRSZXBlYXQ6ZnVuY3Rpb24oKXt0aGlzLnJlcGVhdGluZz0hMSx0aGlzLl9fY2xlYW51cCgpfSxfX2VuZFJlcGVhdDpmdW5jdGlvbih0KXt0aGlzLnJlcGVhdGluZyYmKHRoaXMucmVwZWF0aW5nPSExLHRoaXMucmVwZWF0Q291bnQ/dGhpcy5yZXBlYXRDb3VudD0wOih0LmRldGFpbHx8dC5rZXlDb2RlKSYmKHQucmVwZWF0Q291bnQ9MCx0aGlzLiRlbWl0KFwiY2xpY2tcIix0KSksdGhpcy5fX2NsZWFudXAoKSl9fSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5fX2NsZWFudXAoKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPVtdLmNvbmNhdCh0aGlzLiRzbG90cy5kZWZhdWx0KTtyZXR1cm4gdm9pZCAwIT09dGhpcy5sYWJlbCYmITA9PT10aGlzLmlzUmVjdGFuZ2xlJiZlLnVuc2hpZnQodChcImRpdlwiLFt0aGlzLmxhYmVsXSkpLHZvaWQgMCE9PXRoaXMuaWNvbiYmZS51bnNoaWZ0KHQoUUljb24se2NsYXNzOntcIm9uLWxlZnRcIjp2b2lkIDAhPT10aGlzLmxhYmVsJiYhMD09PXRoaXMuaXNSZWN0YW5nbGV9LHByb3BzOntuYW1lOnRoaXMuaWNvbn19KSksdm9pZCAwIT09dGhpcy5pY29uUmlnaHQmJiExPT09dGhpcy5pc1JvdW5kJiZlLnB1c2godChRSWNvbix7c3RhdGljQ2xhc3M6XCJvbi1yaWdodFwiLHByb3BzOntuYW1lOnRoaXMuaWNvblJpZ2h0fX0pKSx0KHRoaXMuaXNMaW5rP1wiYVwiOlwiYnV0dG9uXCIse3N0YXRpY0NsYXNzOlwicS1idG4gaW5saW5lIHJlbGF0aXZlLXBvc2l0aW9uIHEtYnRuLWl0ZW0gbm9uLXNlbGVjdGFibGVcIixjbGFzczp0aGlzLmNsYXNzZXMsc3R5bGU6dGhpcy5zdHlsZSxhdHRyczp0aGlzLmF0dHJzLG9uOnRoaXMuZXZlbnRzLGRpcmVjdGl2ZXM6dGhpcy5oYXNSaXBwbGU/W3tuYW1lOlwicmlwcGxlXCIsdmFsdWU6ITAsbW9kaWZpZXJzOntjZW50ZXI6dGhpcy5pc1JvdW5kfX1dOm51bGx9LFt0aGlzLiRxLnBsYXRmb3JtLmlzLmRlc2t0b3A/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZm9jdXMtaGVscGVyXCJ9KTpudWxsLHRoaXMubG9hZGluZyYmdGhpcy5oYXNQZXJjZW50YWdlP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWJ0bi1wcm9ncmVzcyBhYnNvbHV0ZS1mdWxsXCIsY2xhc3M6e1wicS1idG4tZGFyay1wcm9ncmVzc1wiOnRoaXMuZGFya1BlcmNlbnRhZ2V9LHN0eWxlOnt3aWR0aDp0aGlzLndpZHRofX0pOm51bGwsdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtYnRuLWlubmVyIHJvdyBjb2wgaXRlbXMtY2VudGVyIHEtcG9wdXAtLXNraXBcIixjbGFzczp0aGlzLmlubmVyQ2xhc3Nlc30sZSksbnVsbCE9PXRoaXMubG9hZGluZz90KFwidHJhbnNpdGlvblwiLHtwcm9wczp7bmFtZTpcInEtdHJhbnNpdGlvbi0tZmFkZVwifX0sITA9PT10aGlzLmxvYWRpbmc/W3QoXCJkaXZcIix7a2V5OlwibG9hZGluZ1wiLHN0YXRpY0NsYXNzOlwiYWJzb2x1dGUtZnVsbCBmbGV4IGZsZXgtY2VudGVyXCJ9LHZvaWQgMCE9PXRoaXMuJHNsb3RzLmxvYWRpbmc/dGhpcy4kc2xvdHMubG9hZGluZzpbdChRU3Bpbm5lcildKV06dm9pZCAwKTpudWxsXSl9fSxRQWxlcnQ9e25hbWU6XCJRQWxlcnRcIixwcm9wczp7dHlwZTp7dHlwZTpTdHJpbmcsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcInBvc2l0aXZlXCIsXCJuZWdhdGl2ZVwiLFwid2FybmluZ1wiLFwiaW5mb1wiXS5pbmNsdWRlcyh0KX19LGNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwibmVnYXRpdmVcIn0sdGV4dENvbG9yOlN0cmluZyxtZXNzYWdlOlN0cmluZyxkZXRhaWw6U3RyaW5nLGljb246U3RyaW5nLGF2YXRhcjpTdHJpbmcsYWN0aW9uczpBcnJheX0sY29tcHV0ZWQ6e2NvbXB1dGVkSWNvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmljb24/dGhpcy5pY29uOnRoaXMuJHEuaWNvbi50eXBlW3RoaXMudHlwZXx8dGhpcy5jb2xvcl19LGNsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm5cImJnLVwiKyh0aGlzLnR5cGV8fHRoaXMuY29sb3IpK1wiIHRleHQtXCIrKHRoaXMudGV4dENvbG9yfHxcIndoaXRlXCIpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT1bXSxzPXRoaXMuJHNsb3RzLmRldGFpbHx8dGhpcy5kZXRhaWw7cmV0dXJuIHRoaXMuYXZhdGFyP2kucHVzaCh0KFwiaW1nXCIse3N0YXRpY0NsYXNzOlwiYXZhdGFyXCIsYXR0cnM6e3NyYzp0aGlzLmF2YXRhcn19KSk6KHRoaXMuaWNvbnx8dGhpcy50eXBlKSYmaS5wdXNoKHQoUUljb24se3Byb3BzOntuYW1lOnRoaXMuY29tcHV0ZWRJY29ufX0pKSx0KFwiZGl2XCIsW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWFsZXJ0IHJvdyBuby13cmFwIHNoYWRvdy0yXCIsY2xhc3M6dGhpcy5jbGFzc2VzfSxbaS5sZW5ndGg/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtYWxlcnQtc2lkZSBjb2wtYXV0byByb3cgZmxleC1jZW50ZXJcIn0saSk6bnVsbCx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1hbGVydC1jb250ZW50IGNvbCBzZWxmLWNlbnRlclwifSxbdChcImRpdlwiLHRoaXMuJHNsb3RzLmRlZmF1bHR8fHRoaXMubWVzc2FnZSkscz90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1hbGVydC1kZXRhaWxcIn0sW3NdKTpudWxsXSksdGhpcy5hY3Rpb25zJiZ0aGlzLmFjdGlvbnMubGVuZ3RoP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWFsZXJ0LWFjdGlvbnMgY29sLWF1dG8gZ3V0dGVyLXhzIGNvbHVtbiBmbGV4LWNlbnRlclwifSx0aGlzLmFjdGlvbnMubWFwKGZ1bmN0aW9uKGkpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiZnVsbC13aWR0aFwifSxbdChRQnRuLHtzdGF0aWNDbGFzczpcImZ1bGwtd2lkdGhcIixwcm9wczp7ZmxhdDohMCxkZW5zZTohMCxhbGlnbjpcImxlZnRcIixpY29uOmkuaWNvbixsYWJlbDohMD09PWkuY2xvc2VCdG4/XCJzdHJpbmdcIj09dHlwZW9mIGkubGFiZWw/aS5sYWJlbDplLiRxLmkxOG4ubGFiZWwuY2xvc2U6aS5sYWJlbH0sb246e2NsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGkuaGFuZGxlcigpfX19KV0pfSkpOm51bGxdKV0pfX07ZnVuY3Rpb24gZmlsdGVyKHQsZSl7dmFyIGk9ZS5maWVsZCxzPWUubGlzdCxuPXQudG9Mb3dlckNhc2UoKTtyZXR1cm4gcy5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuKFwiXCIrdFtpXSkudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKG4pfSl9ZnVuY3Rpb24gczQoKXtyZXR1cm4gTWF0aC5mbG9vcig2NTUzNiooMStNYXRoLnJhbmRvbSgpKSkudG9TdHJpbmcoMTYpLnN1YnN0cmluZygxKX1mdW5jdGlvbiB1aWQoKXtyZXR1cm4gczQoKStzNCgpK1wiLVwiK3M0KCkrXCItXCIrczQoKStcIi1cIitzNCgpK1wiLVwiK3M0KCkrczQoKStzNCgpfWZ1bmN0aW9uIGdldEFuY2hvclBvc2l0aW9uKHQsZSl7dmFyIGk9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxzPWkudG9wLG49aS5sZWZ0LG89aS5yaWdodCxyPWkuYm90dG9tLGE9e3RvcDpzLGxlZnQ6bix3aWR0aDp0Lm9mZnNldFdpZHRoLGhlaWdodDp0Lm9mZnNldEhlaWdodH07cmV0dXJuIGUmJihhLnRvcC09ZVsxXSxhLmxlZnQtPWVbMF0sciYmKHIrPWVbMV0pLG8mJihvKz1lWzBdKSxhLndpZHRoKz1lWzBdLGEuaGVpZ2h0Kz1lWzFdKSxhLnJpZ2h0PW98fGEubGVmdCthLndpZHRoLGEuYm90dG9tPXJ8fGEudG9wK2EuaGVpZ2h0LGEubWlkZGxlPWEubGVmdCsoYS5yaWdodC1hLmxlZnQpLzIsYS5jZW50ZXI9YS50b3ArKGEuYm90dG9tLWEudG9wKS8yLGF9ZnVuY3Rpb24gZ2V0VGFyZ2V0UG9zaXRpb24odCl7cmV0dXJue3RvcDowLGNlbnRlcjp0Lm9mZnNldEhlaWdodC8yLGJvdHRvbTp0Lm9mZnNldEhlaWdodCxsZWZ0OjAsbWlkZGxlOnQub2Zmc2V0V2lkdGgvMixyaWdodDp0Lm9mZnNldFdpZHRofX1mdW5jdGlvbiByZXBvc2l0aW9uSWZOZWVkZWQodCxlLGkscyxuLG8pe3ZhciByPWdldFNjcm9sbGJhcldpZHRoKCksYT13aW5kb3cuaW5uZXJIZWlnaHQsbD13aW5kb3cuaW5uZXJXaWR0aDtpZihhLT1yLGwtPXIsbi50b3A8MHx8bi50b3ArZS5ib3R0b20+YSlpZihcImNlbnRlclwiPT09aS52ZXJ0aWNhbCluLnRvcD10W2kudmVydGljYWxdPmEvMj9hLWUuYm90dG9tOjAsbi5tYXhIZWlnaHQ9TWF0aC5taW4oZS5ib3R0b20sYSk7ZWxzZSBpZih0W2kudmVydGljYWxdPmEvMil7dmFyIGM9TWF0aC5taW4oYSxcImNlbnRlclwiPT09cy52ZXJ0aWNhbD90LmNlbnRlcjpzLnZlcnRpY2FsPT09aS52ZXJ0aWNhbD90LmJvdHRvbTp0LnRvcCk7bi5tYXhIZWlnaHQ9TWF0aC5taW4oZS5ib3R0b20sYyksbi50b3A9TWF0aC5tYXgoMCxjLW4ubWF4SGVpZ2h0KX1lbHNlIG4udG9wPVwiY2VudGVyXCI9PT1zLnZlcnRpY2FsP3QuY2VudGVyOnMudmVydGljYWw9PT1pLnZlcnRpY2FsP3QudG9wOnQuYm90dG9tLG4ubWF4SGVpZ2h0PU1hdGgubWluKGUuYm90dG9tLGEtbi50b3ApO2lmKG4ubGVmdDwwfHxuLmxlZnQrZS5yaWdodD5sKWlmKG4ubWF4V2lkdGg9TWF0aC5taW4oZS5yaWdodCxsKSxcIm1pZGRsZVwiPT09aS5ob3Jpem9udGFsKW4ubGVmdD10W2kuaG9yaXpvbnRhbF0+bC8yP2wtZS5yaWdodDowO2Vsc2UgaWYobyluLmxlZnQ9bi5sZWZ0PDA/MDpsLWUucmlnaHQ7ZWxzZSBpZih0W2kuaG9yaXpvbnRhbF0+bC8yKXt2YXIgaD1NYXRoLm1pbihsLFwibWlkZGxlXCI9PT1zLmhvcml6b250YWw/dC5jZW50ZXI6cy5ob3Jpem9udGFsPT09aS5ob3Jpem9udGFsP3QucmlnaHQ6dC5sZWZ0KTtuLm1heFdpZHRoPU1hdGgubWluKGUucmlnaHQsaCksbi5sZWZ0PU1hdGgubWF4KDAsaC1uLm1heFdpZHRoKX1lbHNlIG4ubGVmdD1cIm1pZGRsZVwiPT09cy5ob3Jpem9udGFsP3QuY2VudGVyOnMuaG9yaXpvbnRhbD09PWkuaG9yaXpvbnRhbD90LmxlZnQ6dC5yaWdodCxuLm1heFdpZHRoPU1hdGgubWluKGUucmlnaHQsbC1uLmxlZnQpO3JldHVybiBufWZ1bmN0aW9uIHNldFBvc2l0aW9uKHQpe3ZhciBlLGk9dC5lbCxzPXQuYW5pbWF0ZSxuPXQuYW5jaG9yRWwsbz10LmFuY2hvck9yaWdpbixyPXQuc2VsZk9yaWdpbixhPXQubWF4SGVpZ2h0LGw9dC5ldmVudCxjPXQuYW5jaG9yQ2xpY2ssaD10LnRvdWNoUG9zaXRpb24sdT10Lm9mZnNldCxkPXQudG91Y2hPZmZzZXQscD10LmNvdmVyO2lmKGkuc3R5bGUubWF4SGVpZ2h0PWF8fFwiNjV2aFwiLGkuc3R5bGUubWF4V2lkdGg9XCIxMDB2d1wiLCFsfHxjJiYhaClpZihkKXt2YXIgZj1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG09Zi50b3AsZz1mLmxlZnQsdj1tK2QudG9wLGI9ZytkLmxlZnQ7ZT17dG9wOnYsbGVmdDpiLHdpZHRoOjEsaGVpZ2h0OjEscmlnaHQ6YisxLGNlbnRlcjp2LG1pZGRsZTpiLGJvdHRvbTp2KzF9fWVsc2UgZT1nZXRBbmNob3JQb3NpdGlvbihuLHUpO2Vsc2V7dmFyIF89cG9zaXRpb24obCkseT1fLnRvcCx3PV8ubGVmdDtlPXt0b3A6eSxsZWZ0Oncsd2lkdGg6MSxoZWlnaHQ6MSxyaWdodDp3KzEsY2VudGVyOnksbWlkZGxlOncsYm90dG9tOnkrMX19dmFyIEM9Z2V0VGFyZ2V0UG9zaXRpb24oaSkseD17dG9wOmVbby52ZXJ0aWNhbF0tQ1tyLnZlcnRpY2FsXSxsZWZ0OmVbby5ob3Jpem9udGFsXS1DW3IuaG9yaXpvbnRhbF19O2lmKHg9cmVwb3NpdGlvbklmTmVlZGVkKGUsQyxyLG8seCxwKSxpLnN0eWxlLnRvcD1NYXRoLm1heCgwLHgudG9wKStcInB4XCIsaS5zdHlsZS5sZWZ0PU1hdGgubWF4KDAseC5sZWZ0KStcInB4XCIseC5tYXhIZWlnaHQmJihpLnN0eWxlLm1heEhlaWdodD14Lm1heEhlaWdodCtcInB4XCIpLHgubWF4V2lkdGgmJihpLnN0eWxlLm1heFdpZHRoPXgubWF4V2lkdGgrXCJweFwiKSxzKXt2YXIgUz14LnRvcDxlLnRvcD9bXCJ1cFwiLFwiZG93blwiXTpbXCJkb3duXCIsXCJ1cFwiXTtpLmNsYXNzTGlzdC5hZGQoXCJhbmltYXRlLXBvcHVwLVwiK1NbMF0pLGkuY2xhc3NMaXN0LnJlbW92ZShcImFuaW1hdGUtcG9wdXAtXCIrU1sxXSl9fWZ1bmN0aW9uIHBvc2l0aW9uVmFsaWRhdG9yKHQpe3ZhciBlPXQuc3BsaXQoXCIgXCIpO3JldHVybiAyPT09ZS5sZW5ndGgmJihbXCJ0b3BcIixcImNlbnRlclwiLFwiYm90dG9tXCJdLmluY2x1ZGVzKGVbMF0pPyEhW1wibGVmdFwiLFwibWlkZGxlXCIsXCJyaWdodFwiXS5pbmNsdWRlcyhlWzFdKXx8KGNvbnNvbGUuZXJyb3IoXCJBbmNob3IvU2VsZiBwb3NpdGlvbiBtdXN0IGVuZCB3aXRoIG9uZSBvZiBsZWZ0L21pZGRsZS9yaWdodFwiKSwhMSk6KGNvbnNvbGUuZXJyb3IoXCJBbmNob3IvU2VsZiBwb3NpdGlvbiBtdXN0IHN0YXJ0IHdpdGggb25lIG9mIHRvcC9jZW50ZXIvYm90dG9tXCIpLCExKSl9ZnVuY3Rpb24gb2Zmc2V0VmFsaWRhdG9yKHQpe3JldHVybiF0fHwyPT09dC5sZW5ndGgmJihcIm51bWJlclwiPT10eXBlb2YgdFswXSYmXCJudW1iZXJcIj09dHlwZW9mIHRbMV0pfWZ1bmN0aW9uIHBhcnNlUG9zaXRpb24odCl7dmFyIGU9dC5zcGxpdChcIiBcIik7cmV0dXJue3ZlcnRpY2FsOmVbMF0saG9yaXpvbnRhbDplWzFdfX1mdW5jdGlvbiBmcmFtZURlYm91bmNlKHQpe3ZhciBlLGk9ITE7ZnVuY3Rpb24gcygpe2Zvcih2YXIgcz10aGlzLG49W10sbz1hcmd1bWVudHMubGVuZ3RoO28tLTspbltvXT1hcmd1bWVudHNbb107aXx8KGk9ITAsZT1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXt0LmFwcGx5KHMsbiksaT0hMX0pKX1yZXR1cm4gcy5jYW5jZWw9ZnVuY3Rpb24oKXt3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoZSksaT0hMX0sc312YXIgQ2FuUmVuZGVyTWl4aW49e2RhdGE6ZnVuY3Rpb24oKXtyZXR1cm57Y2FuUmVuZGVyOiFvblNTUn19LG1vdW50ZWQ6ZnVuY3Rpb24oKXshMT09PXRoaXMuY2FuUmVuZGVyJiYodGhpcy5jYW5SZW5kZXI9ITApfX0sUVBvcG92ZXI9e25hbWU6XCJRUG9wb3ZlclwiLG1peGluczpbTW9kZWxUb2dnbGVNaXhpbixDYW5SZW5kZXJNaXhpbl0scHJvcHM6e2FuY2hvcjp7dHlwZTpTdHJpbmcsdmFsaWRhdG9yOnBvc2l0aW9uVmFsaWRhdG9yfSxzZWxmOnt0eXBlOlN0cmluZyx2YWxpZGF0b3I6cG9zaXRpb25WYWxpZGF0b3J9LGZpdDpCb29sZWFuLGNvdmVyOkJvb2xlYW4scGVyc2lzdGVudDpCb29sZWFuLGtlZXBPblNjcmVlbjpCb29sZWFuLG1heEhlaWdodDpTdHJpbmcsdG91Y2hQb3NpdGlvbjpCb29sZWFuLGFuY2hvckNsaWNrOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMH0sb2Zmc2V0Ont0eXBlOkFycmF5LHZhbGlkYXRvcjpvZmZzZXRWYWxpZGF0b3J9LG5vRm9jdXM6Qm9vbGVhbixub1JlZm9jdXM6Qm9vbGVhbixkaXNhYmxlOkJvb2xlYW59LHdhdGNoOnskcm91dGU6ZnVuY3Rpb24oKXt0aGlzLmhpZGUoKX19LGNvbXB1dGVkOntob3JpelNpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kcS5pMThuLnJ0bD9cInJpZ2h0XCI6XCJsZWZ0XCJ9LGFuY2hvck9yaWdpbjpmdW5jdGlvbigpe3JldHVybiBwYXJzZVBvc2l0aW9uKHRoaXMuY292ZXI/XCJ0b3AgXCIrdGhpcy5ob3JpelNpZGU6dGhpcy5hbmNob3J8fFwiYm90dG9tIFwiK3RoaXMuaG9yaXpTaWRlKX0sc2VsZk9yaWdpbjpmdW5jdGlvbigpe3JldHVybiBwYXJzZVBvc2l0aW9uKHRoaXMuc2VsZnx8XCJ0b3AgXCIrdGhpcy5ob3JpelNpZGUpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe2lmKHRoaXMuY2FuUmVuZGVyKXJldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1wb3BvdmVyIHNjcm9sbFwiLHJlZjpcImNvbnRlbnRcIixhdHRyczp7dGFiaW5kZXg6LTF9LG9uOntjbGljazpmdW5jdGlvbih0KXt0LnN0b3BQcm9wYWdhdGlvbigpfX19LHRoaXMuJHNsb3RzLmRlZmF1bHQpfSxtb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLl9fdXBkYXRlUG9zaXRpb249ZnJhbWVEZWJvdW5jZShmdW5jdGlvbihlLGkscyl7cmV0dXJuIHQucmVwb3NpdGlvbihpLHMpfSksdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt0LmFuY2hvckVsPXQuJGVsLnBhcmVudE5vZGUsdC5hbmNob3JFbC5yZW1vdmVDaGlsZCh0LiRlbCksKHQuYW5jaG9yRWwuY2xhc3NMaXN0LmNvbnRhaW5zKFwicS1wb3B1cC0tc2tpcFwiKXx8dC5hbmNob3JFbC5jbGFzc0xpc3QuY29udGFpbnMoXCJuby1wb2ludGVyLWV2ZW50c1wiKSkmJih0LmFuY2hvckVsPXQuYW5jaG9yRWwucGFyZW50Tm9kZSksdC5hbmNob3JDbGljayYmKHQuYW5jaG9yRWwuY2xhc3NMaXN0LmFkZChcImN1cnNvci1wb2ludGVyXCIpLHQuYW5jaG9yRWwuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsdC50b2dnbGUpLHQuYW5jaG9yRWwuYWRkRXZlbnRMaXN0ZW5lcihcImtleXVwXCIsdC5fX3RvZ2dsZUtleSkpfSksdGhpcy52YWx1ZSYmdGhpcy5zaG93KCl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLnNob3dpbmcmJnRoaXMuX19jbGVhbnVwKCksdGhpcy5hbmNob3JDbGljayYmdGhpcy5hbmNob3JFbCYmKHRoaXMuYW5jaG9yRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsdGhpcy50b2dnbGUpLHRoaXMuYW5jaG9yRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleXVwXCIsdGhpcy5fX3RvZ2dsZUtleSkpfSxtZXRob2RzOntfX3Nob3c6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLm5vUmVmb2N1c3x8KHRoaXMuX19yZWZvY3VzVGFyZ2V0PXRoaXMuYW5jaG9yQ2xpY2smJnRoaXMuYW5jaG9yRWx8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy4kZWwpLEVzY2FwZUtleS5yZWdpc3RlcihmdW5jdGlvbigpe2UuJGVtaXQoXCJlc2NhcGUta2V5XCIpLGUuaGlkZSgpfSksdGhpcy5zY3JvbGxUYXJnZXQ9Z2V0U2Nyb2xsVGFyZ2V0KHRoaXMuYW5jaG9yRWwpLHRoaXMuc2Nyb2xsVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIix0aGlzLl9fdXBkYXRlUG9zaXRpb24sbGlzdGVuT3B0cy5wYXNzaXZlKSx0aGlzLnNjcm9sbFRhcmdldCE9PXdpbmRvdyYmd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIix0aGlzLl9fdXBkYXRlUG9zaXRpb24sbGlzdGVuT3B0cy5wYXNzaXZlKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLHRoaXMuX191cGRhdGVQb3NpdGlvbixsaXN0ZW5PcHRzLnBhc3NpdmUpLHRoaXMuX191cGRhdGVQb3NpdGlvbigwLHQsITApLGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSwhdGhpcy5ub0ZvY3VzJiZ0aGlzLiRyZWZzLmNvbnRlbnQmJnRoaXMuJHJlZnMuY29udGVudC5mb2N1cygpLHRoaXMudGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe2RvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLGUuX19ib2R5SGlkZSwhMCksZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLGUuX19ib2R5SGlkZSwhMCksZS5zaG93UHJvbWlzZSYmZS5zaG93UHJvbWlzZVJlc29sdmUoKX0sMCl9LF9fdG9nZ2xlS2V5OmZ1bmN0aW9uKHQpezEzPT09dC5rZXlDb2RlJiZ0aGlzLnRvZ2dsZSh0KX0sX19ib2R5SGlkZTpmdW5jdGlvbih0KXt0aGlzLnBlcnNpc3RlbnR8fHQmJnQudGFyZ2V0JiYodGhpcy4kZWwuY29udGFpbnModC50YXJnZXQpfHx0aGlzLmFuY2hvckVsLmNvbnRhaW5zKHQudGFyZ2V0KSl8fHRoaXMuaGlkZSh0KX0sX19oaWRlOmZ1bmN0aW9uKCl7dGhpcy5fX2NsZWFudXAoKSx0aGlzLmhpZGVQcm9taXNlJiZ0aGlzLmhpZGVQcm9taXNlUmVzb2x2ZSgpLCF0aGlzLm5vUmVmb2N1cyYmdGhpcy5fX3JlZm9jdXNUYXJnZXQmJih0aGlzLl9fcmVmb2N1c1RhcmdldC5mb2N1cygpLCF0aGlzLl9fcmVmb2N1c1RhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoXCJxLWlmXCIpJiZ0aGlzLl9fcmVmb2N1c1RhcmdldC5ibHVyKCkpfSxfX2NsZWFudXA6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsdGhpcy5fX2JvZHlIaWRlLCEwKSxkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIsdGhpcy5fX2JvZHlIaWRlLCEwKSx0aGlzLnNjcm9sbFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsdGhpcy5fX3VwZGF0ZVBvc2l0aW9uLGxpc3Rlbk9wdHMucGFzc2l2ZSksdGhpcy5zY3JvbGxUYXJnZXQhPT13aW5kb3cmJndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsdGhpcy5fX3VwZGF0ZVBvc2l0aW9uLGxpc3Rlbk9wdHMucGFzc2l2ZSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix0aGlzLl9fdXBkYXRlUG9zaXRpb24sbGlzdGVuT3B0cy5wYXNzaXZlKSxFc2NhcGVLZXkucG9wKCksdGhpcy4kZWwucmVtb3ZlKCl9LHJlcG9zaXRpb246ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLmFuY2hvckVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHM9aS50b3Asbj1pLmJvdHRvbSxvPWkubGVmdCxyPWkucmlnaHQ7aWYoIXRoaXMua2VlcE9uU2NyZWVuJiYobjwwfHxzPndpbmRvdy5pbm5lckhlaWdodHx8cjwwfHxvPndpbmRvdy5pbm5lcldpZHRoKSlyZXR1cm4gdGhpcy5oaWRlKCk7aWYodGhpcy5maXR8fHRoaXMuY292ZXIpe3ZhciBhPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuYW5jaG9yRWwpO3RoaXMuJGVsLnN0eWxlLm1pbldpZHRoPWEuZ2V0UHJvcGVydHlWYWx1ZShcIndpZHRoXCIpLHRoaXMuY292ZXImJih0aGlzLiRlbC5zdHlsZS5taW5IZWlnaHQ9YS5nZXRQcm9wZXJ0eVZhbHVlKFwiaGVpZ2h0XCIpKX1pZihlKWlmKHRoaXMudG91Y2hQb3NpdGlvbil7dmFyIGw9cG9zaXRpb24odCksYz1sLnRvcCxoPWwubGVmdDt0aGlzLnRvdWNoT2Zmc2V0PXtsZWZ0Omgtbyx0b3A6Yy1zfX1lbHNlIGRlbGV0ZSB0aGlzLnRvdWNoT2Zmc2V0O3NldFBvc2l0aW9uKHtldmVudDp0LGFuaW1hdGU6ZSxlbDp0aGlzLiRlbCxvZmZzZXQ6dGhpcy5vZmZzZXQsYW5jaG9yRWw6dGhpcy5hbmNob3JFbCxhbmNob3JPcmlnaW46dGhpcy5hbmNob3JPcmlnaW4sc2VsZk9yaWdpbjp0aGlzLnNlbGZPcmlnaW4sbWF4SGVpZ2h0OnRoaXMubWF4SGVpZ2h0LGFuY2hvckNsaWNrOnRoaXMuYW5jaG9yQ2xpY2ssdG91Y2hQb3NpdGlvbjp0aGlzLnRvdWNoUG9zaXRpb24sdG91Y2hPZmZzZXQ6dGhpcy50b3VjaE9mZnNldCxjb3Zlcjp0aGlzLmNvdmVyfSl9fX07ZnVuY3Rpb24gcHVzaCh0LGUsaSxzLG4sbyl7dmFyIHI9e3Byb3BzOntyaWdodDpvLnJpZ2h0fX07aWYocyYmbil0LnB1c2goZShpLHIscykpO2Vsc2V7dmFyIGE9ITE7Zm9yKHZhciBsIGluIG8paWYoby5oYXNPd25Qcm9wZXJ0eShsKSYmdm9pZCAwIT09KGE9b1tsXSkmJiEwIT09YSl7dC5wdXNoKGUoaSx7cHJvcHM6b30pKTticmVha31zJiZ0LnB1c2goZShpLHIscykpfX12YXIgUUl0ZW1XcmFwcGVyPXtuYW1lOlwiUUl0ZW1XcmFwcGVyXCIscHJvcHM6e2NmZzp7dHlwZTpPYmplY3QsZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybnt9fX0sc2xvdFJlcGxhY2U6Qm9vbGVhbn0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY2ZnLGk9dGhpcy5zbG90UmVwbGFjZSxzPVtdO3JldHVybiBwdXNoKHMsdCxRSXRlbVNpZGUsdGhpcy4kc2xvdHMubGVmdCxpLHtpY29uOmUuaWNvbixjb2xvcjplLmxlZnRDb2xvcixhdmF0YXI6ZS5hdmF0YXIsbGV0dGVyOmUubGV0dGVyLGltYWdlOmUuaW1hZ2UsaW52ZXJ0ZWQ6ZS5sZWZ0SW52ZXJ0ZWQsdGV4dENvbG9yOmUubGVmdFRleHRDb2xvcn0pLHB1c2gocyx0LFFJdGVtTWFpbix0aGlzLiRzbG90cy5tYWluLGkse2xhYmVsOmUubGFiZWwsc3VibGFiZWw6ZS5zdWJsYWJlbCxsYWJlbExpbmVzOmUubGFiZWxMaW5lcyxzdWJsYWJlbExpbmVzOmUuc3VibGFiZWxMaW5lcyxpbnNldDplLmluc2V0fSkscHVzaChzLHQsUUl0ZW1TaWRlLHRoaXMuJHNsb3RzLnJpZ2h0LGkse3JpZ2h0OiEwLGljb246ZS5yaWdodEljb24sY29sb3I6ZS5yaWdodENvbG9yLGF2YXRhcjplLnJpZ2h0QXZhdGFyLGxldHRlcjplLnJpZ2h0TGV0dGVyLGltYWdlOmUucmlnaHRJbWFnZSxzdGFtcDplLnN0YW1wLGludmVydGVkOmUucmlnaHRJbnZlcnRlZCx0ZXh0Q29sb3I6ZS5yaWdodFRleHRDb2xvcn0pLHMucHVzaCh0aGlzLiRzbG90cy5kZWZhdWx0KSx0KFFJdGVtLHthdHRyczp0aGlzLiRhdHRycyxvbjp0aGlzLiRsaXN0ZW5lcnMscHJvcHM6ZX0scyl9fSxLZXlib2FyZFNlbGVjdGlvbk1peGluPXtkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2tleWJvYXJkSW5kZXg6MCxrZXlib2FyZE1vdmVEaXJlY3Rpb246ITEsa2V5Ym9hcmRNb3ZlVGltZXI6ITF9fSx3YXRjaDp7a2V5Ym9hcmRJbmRleDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuJHJlZnMucG9wb3ZlciYmdGhpcy4kcmVmcy5wb3BvdmVyLnNob3dpbmcmJnRoaXMua2V5Ym9hcmRNb3ZlRGlyZWN0aW9uJiZ0Pi0xJiZ0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe2lmKGUuJHJlZnMucG9wb3Zlcil7dmFyIHQ9ZS4kcmVmcy5wb3BvdmVyLiRlbC5xdWVyeVNlbGVjdG9yKFwiLnEtc2VsZWN0LWhpZ2hsaWdodFwiKTtpZih0JiZ0LnNjcm9sbEludG9WaWV3KXtpZih0LnNjcm9sbEludG9WaWV3SWZOZWVkZWQpcmV0dXJuIHQuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCghMSk7dC5zY3JvbGxJbnRvVmlldyhlLmtleWJvYXJkTW92ZURpcmVjdGlvbjwwKX19fSl9fSxtZXRob2RzOntfX2tleWJvYXJkU2hvdzpmdW5jdGlvbih0KXt2b2lkIDA9PT10JiYodD0wKSx0aGlzLmtleWJvYXJkSW5kZXghPT10JiYodGhpcy5rZXlib2FyZEluZGV4PXQpfSxfX2tleWJvYXJkU2V0Q3VycmVudFNlbGVjdGlvbjpmdW5jdGlvbih0KXt0aGlzLmtleWJvYXJkSW5kZXg+PTAmJnRoaXMua2V5Ym9hcmRJbmRleDw9dGhpcy5rZXlib2FyZE1heEluZGV4JiZ0aGlzLl9fa2V5Ym9hcmRTZXRTZWxlY3Rpb24odGhpcy5rZXlib2FyZEluZGV4LHQpfSxfX2tleWJvYXJkSGFuZGxlS2V5OmZ1bmN0aW9uKHQpe3ZhciBlPWdldEV2ZW50S2V5KHQpO3N3aXRjaChlKXtjYXNlIDM4OnRoaXMuX19rZXlib2FyZE1vdmVDdXJzb3IoLTEsdCk7YnJlYWs7Y2FzZSA0MDp0aGlzLl9fa2V5Ym9hcmRNb3ZlQ3Vyc29yKDEsdCk7YnJlYWs7Y2FzZSAxMzppZih0aGlzLiRyZWZzLnBvcG92ZXIuc2hvd2luZylyZXR1cm4gc3RvcEFuZFByZXZlbnQodCksdm9pZCB0aGlzLl9fa2V5Ym9hcmRTZXRDdXJyZW50U2VsZWN0aW9uKCk7YnJlYWs7Y2FzZSA5OnRoaXMuaGlkZSgpfXRoaXMuX19rZXlib2FyZEN1c3RvbUtleUhhbmRsZShlLHQpfSxfX2tleWJvYXJkTW92ZUN1cnNvcjpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXM7aWYoc3RvcEFuZFByZXZlbnQoZSksdGhpcy4kcmVmcy5wb3BvdmVyLnNob3dpbmcpe2NsZWFyVGltZW91dCh0aGlzLmtleWJvYXJkTW92ZVRpbWVyKTt2YXIgcz10aGlzLmtleWJvYXJkSW5kZXgsbj10aGlzLl9fa2V5Ym9hcmRJc1NlbGVjdGFibGVJbmRleHx8ZnVuY3Rpb24oKXtyZXR1cm4hMH07ZG97cz1ub3JtYWxpemVUb0ludGVydmFsKHMrdCwtMSxpLmtleWJvYXJkTWF4SW5kZXgpfXdoaWxlKHMhPT10aGlzLmtleWJvYXJkSW5kZXgmJiFuKHMpKTtyZXR1cm4gdGhpcy5rZXlib2FyZE1vdmVEaXJlY3Rpb249cz50aGlzLmtleWJvYXJkSW5kZXg/MTotMSx0aGlzLmtleWJvYXJkTW92ZVRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpLmtleWJvYXJkTW92ZURpcmVjdGlvbj0hMX0sNTAwKSx2b2lkKHRoaXMua2V5Ym9hcmRJbmRleD1zKX10aGlzLl9fa2V5Ym9hcmRTaG93VHJpZ2dlcigpfX19LFFBdXRvY29tcGxldGU9e25hbWU6XCJRQXV0b2NvbXBsZXRlXCIsbWl4aW5zOltLZXlib2FyZFNlbGVjdGlvbk1peGluXSxwcm9wczp7bWluQ2hhcmFjdGVyczp7dHlwZTpOdW1iZXIsZGVmYXVsdDoxfSxtYXhSZXN1bHRzOnt0eXBlOk51bWJlcixkZWZhdWx0OjZ9LG1heEhlaWdodDpTdHJpbmcsZGVib3VuY2U6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6NTAwfSxmaWx0ZXI6e3R5cGU6RnVuY3Rpb24sZGVmYXVsdDpmaWx0ZXJ9LHN0YXRpY0RhdGE6T2JqZWN0LHZhbHVlRmllbGQ6W1N0cmluZyxGdW5jdGlvbl0sc2VwYXJhdG9yOkJvb2xlYW59LGluamVjdDp7X19pbnB1dDp7ZGVmYXVsdDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoXCJRQXV0b2NvbXBsZXRlIG5lZWRzIHRvIGJlIGNoaWxkIG9mIFFJbnB1dCwgUUNoaXBzSW5wdXQgb3IgUVNlYXJjaFwiKX19LF9faW5wdXREZWJvdW5jZTp7ZGVmYXVsdDpudWxsfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntzZWFyY2hJZDpcIlwiLHJlc3VsdHM6W10sd2lkdGg6MCxlbnRlcktleTohMSx0aW1lcjpudWxsfX0sd2F0Y2g6e1wiX19pbnB1dC52YWxcIjpmdW5jdGlvbigpe3RoaXMuZW50ZXJLZXk/dGhpcy5lbnRlcktleT0hMTp0aGlzLl9fZGVsYXlUcmlnZ2VyKCl9fSxjb21wdXRlZDp7Y29tcHV0ZWRSZXN1bHRzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF4UmVzdWx0cyYmdGhpcy5yZXN1bHRzLmxlbmd0aD4wP3RoaXMucmVzdWx0cy5zbGljZSgwLHRoaXMubWF4UmVzdWx0cyk6W119LGNvbXB1dGVkVmFsdWVGaWVsZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlRmllbGR8fHRoaXMuc3RhdGljRGF0YSYmdGhpcy5zdGF0aWNEYXRhLmZpZWxkfHxcInZhbHVlXCJ9LGtleWJvYXJkTWF4SW5kZXg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb21wdXRlZFJlc3VsdHMubGVuZ3RoLTF9LGNvbXB1dGVkV2lkdGg6ZnVuY3Rpb24oKXtyZXR1cm57bWluV2lkdGg6dGhpcy53aWR0aH19LHNlYXJjaGluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNlYXJjaElkLmxlbmd0aD4wfX0sbWV0aG9kczp7aXNXb3JraW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHJlZnMmJnRoaXMuJHJlZnMucG9wb3Zlcn0sdHJpZ2dlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKHRoaXMuX19pbnB1dCYmdGhpcy5fX2lucHV0LmlzRWRpdGFibGUoKSYmdGhpcy5fX2lucHV0Lmhhc0ZvY3VzKCkmJnRoaXMuaXNXb3JraW5nKCkpe3ZhciBpPVtudWxsLHZvaWQgMF0uaW5jbHVkZXModGhpcy5fX2lucHV0LnZhbCk/XCJcIjpTdHJpbmcodGhpcy5fX2lucHV0LnZhbCkscz1pLmxlbmd0aCxuPXVpZCgpLG89dGhpcy4kcmVmcy5wb3BvdmVyO2lmKHRoaXMuc2VhcmNoSWQ9bixzPHRoaXMubWluQ2hhcmFjdGVyc3x8ITA9PT10JiZzPjApcmV0dXJuIHRoaXMuc2VhcmNoSWQ9XCJcIix0aGlzLl9fY2xlYXJTZWFyY2goKSx2b2lkIHRoaXMuaGlkZSgpO2lmKHRoaXMud2lkdGg9d2lkdGgodGhpcy5pbnB1dEVsKStcInB4XCIsdGhpcy5zdGF0aWNEYXRhKXJldHVybiB0aGlzLnNlYXJjaElkPVwiXCIsdGhpcy5yZXN1bHRzPXRoaXMuZmlsdGVyKGksdGhpcy5zdGF0aWNEYXRhKSx0aGlzLnJlc3VsdHMubGVuZ3RoP3ZvaWQgdGhpcy5fX3Nob3dSZXN1bHRzKCk6dm9pZCBvLmhpZGUoKTt0aGlzLl9faW5wdXQubG9hZGluZz0hMCx0aGlzLiRlbWl0KFwic2VhcmNoXCIsaSxmdW5jdGlvbih0KXtpZihlLmlzV29ya2luZygpJiZlLnNlYXJjaElkPT09bil7aWYoZS5fX2NsZWFyU2VhcmNoKCksQXJyYXkuaXNBcnJheSh0KSYmdC5sZW5ndGg+MClyZXR1cm4gZS5yZXN1bHRzPXQsdm9pZCBlLl9fc2hvd1Jlc3VsdHMoKTtlLmhpZGUoKX19KX19LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXN1bHRzPVtdLHRoaXMuaXNXb3JraW5nKCk/dGhpcy4kcmVmcy5wb3BvdmVyLmhpZGUoKTpQcm9taXNlLnJlc29sdmUoKX0sYmx1ckhpZGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX19jbGVhclNlYXJjaCgpLHRoaXMudGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiB0LmhpZGUoKX0sMzAwKX0sX19jbGVhclNlYXJjaDpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLl9faW5wdXQubG9hZGluZz0hMSx0aGlzLnNlYXJjaElkPVwiXCJ9LF9fa2V5Ym9hcmRDdXN0b21LZXlIYW5kbGU6ZnVuY3Rpb24odCl7c3dpdGNoKHQpe2Nhc2UgMjc6dGhpcy5fX2NsZWFyU2VhcmNoKCk7YnJlYWs7Y2FzZSAzODpjYXNlIDQwOmNhc2UgOTp0aGlzLl9fa2V5Ym9hcmRTZXRDdXJyZW50U2VsZWN0aW9uKCEwKX19LF9fa2V5Ym9hcmRTaG93VHJpZ2dlcjpmdW5jdGlvbigpe3RoaXMudHJpZ2dlcigpfSxfX2ZvY3VzU2hvd1RyaWdnZXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLnRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gdC50cmlnZ2VyKCEwKX0sMTAwKX0sX19rZXlib2FyZElzU2VsZWN0YWJsZUluZGV4OmZ1bmN0aW9uKHQpe3JldHVybiB0Pi0xJiZ0PHRoaXMuY29tcHV0ZWRSZXN1bHRzLmxlbmd0aCYmIXRoaXMuY29tcHV0ZWRSZXN1bHRzW3RdLmRpc2FibGV9LHNldFZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcyxzPVwiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXMuY29tcHV0ZWRWYWx1ZUZpZWxkP3RoaXMuY29tcHV0ZWRWYWx1ZUZpZWxkKHQpOnRbdGhpcy5jb21wdXRlZFZhbHVlRmllbGRdLG49dGhpcy5fX2lucHV0RGVib3VuY2U/XCJEZWJvdW5jZVwiOlwiXCI7dGhpcy5pbnB1dEVsJiZ0aGlzLl9faW5wdXQmJiF0aGlzLl9faW5wdXQuaGFzRm9jdXMoKSYmKHRoaXMuJHEucGxhdGZvcm0uaXMuaWU/dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtpLmlucHV0RWwuZm9jdXMoKX0pOnRoaXMuaW5wdXRFbC5mb2N1cygpKSx0aGlzLmVudGVyS2V5PXRoaXMuX19pbnB1dCYmcyE9PXRoaXMuX19pbnB1dC52YWwsdGhpc1tcIl9faW5wdXRcIituXVtlP1wic2V0TmF2XCI6XCJzZXRcIl0ocyksdGhpcy4kZW1pdChcInNlbGVjdGVkXCIsdCwhIWUpLGV8fCh0aGlzLl9fY2xlYXJTZWFyY2goKSx0aGlzLmhpZGUoKSl9LF9fa2V5Ym9hcmRTZXRTZWxlY3Rpb246ZnVuY3Rpb24odCxlKXt0aGlzLnNldFZhbHVlKHRoaXMucmVzdWx0c1t0XSxlKX0sX19kZWxheVRyaWdnZXI6ZnVuY3Rpb24oKXt0aGlzLl9fY2xlYXJTZWFyY2goKSx0aGlzLl9faW5wdXQuaGFzRm9jdXMoKSYmKHRoaXMuc3RhdGljRGF0YT90aGlzLnRyaWdnZXIoKTp0aGlzLnRpbWVyPXNldFRpbWVvdXQodGhpcy50cmlnZ2VyLHRoaXMuZGVib3VuY2UpKX0sX19zaG93UmVzdWx0czpmdW5jdGlvbigpe3ZhciB0PXRoaXMuJHJlZnMucG9wb3Zlcjt0aGlzLl9fa2V5Ym9hcmRTaG93KC0xKSx0LnNob3dpbmc/dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtyZXR1cm4gdC5zaG93aW5nJiZ0LnJlcG9zaXRpb24oKX0pOnQuc2hvdygpfX0sbW91bnRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fX2lucHV0LnJlZ2lzdGVyKCksdGhpcy5fX2lucHV0RGVib3VuY2UmJnRoaXMuX19pbnB1dERlYm91bmNlLnNldENoaWxkRGVib3VuY2UoITApLHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7dC5fX2lucHV0JiYodC5pbnB1dEVsPXQuX19pbnB1dC5nZXRFbCgpLHQuaW5wdXRFbC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLHQuX19rZXlib2FyZEhhbmRsZUtleSksdC5pbnB1dEVsLmFkZEV2ZW50TGlzdGVuZXIoXCJibHVyXCIsdC5ibHVySGlkZSksdC5pbnB1dEVsLmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c1wiLHQuX19mb2N1c1Nob3dUcmlnZ2VyKSl9KX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuX19jbGVhclNlYXJjaCgpLHRoaXMuX19pbnB1dC51bnJlZ2lzdGVyKCksdGhpcy5fX2lucHV0RGVib3VuY2UmJnRoaXMuX19pbnB1dERlYm91bmNlLnNldENoaWxkRGVib3VuY2UoITEpLHRoaXMuaW5wdXRFbCYmKHRoaXMuaW5wdXRFbC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLHRoaXMuX19rZXlib2FyZEhhbmRsZUtleSksdGhpcy5pbnB1dEVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJibHVyXCIsdGhpcy5ibHVySGlkZSksdGhpcy5pbnB1dEVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c1wiLHRoaXMuX19mb2N1c1Nob3dUcmlnZ2VyKSx0aGlzLmhpZGUoKSl9LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dGhpcy5fX2lucHV0LmlzRGFyaygpO3JldHVybiB0KFFQb3BvdmVyLHtyZWY6XCJwb3BvdmVyXCIsY2xhc3M6aT9cImJnLWRhcmtcIjpudWxsLHByb3BzOntmaXQ6ITAsa2VlcE9uU2NyZWVuOiEwLGFuY2hvckNsaWNrOiExLG1heEhlaWdodDp0aGlzLm1heEhlaWdodCxub0ZvY3VzOiEwLG5vUmVmb2N1czohMH0sb246e3Nob3c6ZnVuY3Rpb24oKXtlLl9faW5wdXQuc2VsZWN0aW9uT3Blbj0hMCxlLiRlbWl0KFwic2hvd1wiKX0saGlkZTpmdW5jdGlvbigpe2UuX19pbnB1dC5zZWxlY3Rpb25PcGVuPSExLGUuJGVtaXQoXCJoaWRlXCIpfX19LFt0KFFMaXN0LHtwcm9wczp7ZGFyazppLG5vQm9yZGVyOiEwLHNlcGFyYXRvcjp0aGlzLnNlcGFyYXRvcn0sc3R5bGU6dGhpcy5jb21wdXRlZFdpZHRofSx0aGlzLmNvbXB1dGVkUmVzdWx0cy5tYXAoZnVuY3Rpb24oaSxzKXtyZXR1cm4gdChRSXRlbVdyYXBwZXIse2tleTppLmlkfHxzLGNsYXNzOntcInEtc2VsZWN0LWhpZ2hsaWdodFwiOmUua2V5Ym9hcmRJbmRleD09PXMsXCJjdXJzb3ItcG9pbnRlclwiOiFpLmRpc2FibGUsXCJ0ZXh0LWZhZGVkXCI6aS5kaXNhYmxlfSxwcm9wczp7Y2ZnOml9LG5hdGl2ZU9uOnttb3VzZWVudGVyOmZ1bmN0aW9uKCl7IWkuZGlzYWJsZSYmKGUua2V5Ym9hcmRJbmRleD1zKX0sY2xpY2s6ZnVuY3Rpb24oKXshaS5kaXNhYmxlJiZlLnNldFZhbHVlKGkpfX19KX0pKV0pfX0sUUJyZWFkY3J1bWJzPXtuYW1lOlwiUUJyZWFkY3J1bWJzXCIsbWl4aW5zOltBbGlnbk1peGluXSxwcm9wczp7Y29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJmYWRlZFwifSxhY3RpdmVDb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInByaW1hcnlcIn0sc2VwYXJhdG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiL1wifSxhbGlnbjpPYmplY3QuYXNzaWduKHt9LEFsaWduTWl4aW4ucHJvcHMuYWxpZ24se2RlZmF1bHQ6XCJsZWZ0XCJ9KX0sY29tcHV0ZWQ6e2NsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm5bXCJ0ZXh0LVwiK3RoaXMuY29sb3IsdGhpcy5hbGlnbkNsYXNzXX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKHRoaXMuJHNsb3RzLmRlZmF1bHQpe3ZhciBpPVtdLHM9dGhpcy4kc2xvdHMuZGVmYXVsdC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMCE9PXQudGFnJiZ0LnRhZy5lbmRzV2l0aChcIi1RQnJlYWRjcnVtYnNFbFwiKX0pLmxlbmd0aCxuPXRoaXMuJHNjb3BlZFNsb3RzLnNlcGFyYXRvcnx8ZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXBhcmF0b3J9LG89XCJ0ZXh0LVwiK3RoaXMuY29sb3Iscj1cInRleHQtXCIrdGhpcy5hY3RpdmVDb2xvcixhPTE7Zm9yKHZhciBsIGluIGUuJHNsb3RzLmRlZmF1bHQpe3ZhciBjPWUuJHNsb3RzLmRlZmF1bHRbbF07aWYodm9pZCAwIT09Yy50YWcmJmMudGFnLmVuZHNXaXRoKFwiLVFCcmVhZGNydW1ic0VsXCIpKXt2YXIgaD1hPHM7YSsrLGkucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiZmxleCBpdGVtcy1jZW50ZXJcIixjbGFzczpbaD9yOm8saD9cInRleHQtd2VpZ2h0LWJvbGRcIjpcInEtYnJlYWRjcnVtYnMtbGFzdFwiXX0sW2NdKSksaCYmaS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWJyZWFkY3J1bWJzLXNlcGFyYXRvclwiLGNsYXNzOm99LFtuKCldKSl9ZWxzZSBpLnB1c2goYyl9cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWJyZWFkY3J1bWJzIGZsZXggZ3V0dGVyLXhzIGl0ZW1zLWNlbnRlciBvdmVyZmxvdy1oaWRkZW5cIixjbGFzczp0aGlzLmNsYXNzZXN9LGkpfX19LFFCcmVhZGNydW1ic0VsPXtuYW1lOlwiUUJyZWFkY3J1bWJzRWxcIixtaXhpbnM6W3twcm9wczpyb3V0ZXJMaW5rUHJvcHN9XSxwcm9wczp7bGFiZWw6U3RyaW5nLGljb246U3RyaW5nLGNvbG9yOlN0cmluZ30scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KHZvaWQgMCE9PXRoaXMudG8/XCJyb3V0ZXItbGlua1wiOlwic3BhblwiLHtzdGF0aWNDbGFzczpcInEtbGluayBxLWJyZWFkY3J1bWJzLWVsIGZsZXggaW5saW5lIGl0ZW1zLWNlbnRlciByZWxhdGl2ZS1wb3NpdGlvblwiLHByb3BzOnZvaWQgMCE9PXRoaXMudG8/dGhpcy4kcHJvcHM6bnVsbH0sW3RoaXMuaWNvbj90KFFJY29uLHtzdGF0aWNDbGFzczpcInEtYnJlYWNydW1icy1lbC1pY29uIHEtbXItc21cIixwcm9wczp7bmFtZTp0aGlzLmljb259fSk6bnVsbCx0aGlzLmxhYmVsXS5jb25jYXQodGhpcy4kc2xvdHMuZGVmYXVsdCkpfX0sUUJ0bkdyb3VwPXtuYW1lOlwiUUJ0bkdyb3VwXCIscHJvcHM6e291dGxpbmU6Qm9vbGVhbixmbGF0OkJvb2xlYW4scm91bmRlZDpCb29sZWFuLHB1c2g6Qm9vbGVhbn0sY29tcHV0ZWQ6e2NsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybltcIm91dGxpbmVcIixcImZsYXRcIixcInJvdW5kZWRcIixcInB1c2hcIl0uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSkubWFwKGZ1bmN0aW9uKHQpe3JldHVyblwicS1idG4tZ3JvdXAtXCIrdH0pLmpvaW4oXCIgXCIpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1idG4tZ3JvdXAgcm93IG5vLXdyYXAgaW5saW5lXCIsY2xhc3M6dGhpcy5jbGFzc2VzfSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFCdG5Ecm9wZG93bj17bmFtZTpcIlFCdG5Ecm9wZG93blwiLG1peGluczpbQnRuTWl4aW5dLHByb3BzOnt2YWx1ZTpCb29sZWFuLHNwbGl0OkJvb2xlYW4sY29udGVudENsYXNzOltBcnJheSxTdHJpbmcsT2JqZWN0XSxjb250ZW50U3R5bGU6W0FycmF5LFN0cmluZyxPYmplY3RdLHBvcG92ZXJBbmNob3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJib3R0b20gcmlnaHRcIn0scG9wb3ZlclNlbGY6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJ0b3AgcmlnaHRcIn19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57c2hvd2luZzp0aGlzLnZhbHVlfX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuJHJlZnMucG9wb3ZlciYmdGhpcy4kcmVmcy5wb3BvdmVyW3Q/XCJzaG93XCI6XCJoaWRlXCJdKCl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPXQoUVBvcG92ZXIse3JlZjpcInBvcG92ZXJcIixwcm9wczp7ZGlzYWJsZTp0aGlzLmRpc2FibGUsZml0OiEwLGFuY2hvckNsaWNrOiF0aGlzLnNwbGl0LGFuY2hvcjp0aGlzLnBvcG92ZXJBbmNob3Isc2VsZjp0aGlzLnBvcG92ZXJTZWxmfSxjbGFzczp0aGlzLmNvbnRlbnRDbGFzcyxzdHlsZTp0aGlzLmNvbnRlbnRTdHlsZSxvbjp7c2hvdzpmdW5jdGlvbih0KXtlLnNob3dpbmc9ITAsZS4kZW1pdChcInNob3dcIix0KSxlLiRlbWl0KFwiaW5wdXRcIiwhMCl9LGhpZGU6ZnVuY3Rpb24odCl7ZS5zaG93aW5nPSExLGUuJGVtaXQoXCJoaWRlXCIsdCksZS4kZW1pdChcImlucHV0XCIsITEpfX19LHRoaXMuJHNsb3RzLmRlZmF1bHQpLHM9dChRSWNvbix7cHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLmlucHV0LmRyb3Bkb3dufSxzdGF0aWNDbGFzczpcInRyYW5zaXRpb24tZ2VuZXJpY1wiLGNsYXNzOntcInJvdGF0ZS0xODBcIjp0aGlzLnNob3dpbmcsXCJvbi1yaWdodFwiOiF0aGlzLnNwbGl0LFwicS1idG4tZHJvcGRvd24tYXJyb3dcIjohdGhpcy5zcGxpdH19KSxuPXQoUUJ0bix7cHJvcHM6T2JqZWN0LmFzc2lnbih7fSx0aGlzLiRwcm9wcyx7aWNvblJpZ2h0OnRoaXMuc3BsaXQ/dGhpcy5pY29uUmlnaHQ6bnVsbH0pLGNsYXNzOnRoaXMuc3BsaXQ/XCJxLWJ0bi1kcm9wZG93bi1jdXJyZW50XCI6XCJxLWJ0bi1kcm9wZG93biBxLWJ0bi1kcm9wZG93bi1zaW1wbGVcIixvbjp7Y2xpY2s6ZnVuY3Rpb24odCl7ZS5zcGxpdCYmZS5oaWRlKCksZS5kaXNhYmxlfHxlLiRlbWl0KFwiY2xpY2tcIix0KX19fSx0aGlzLnNwbGl0P251bGw6W3MsaV0pO3JldHVybiB0aGlzLnNwbGl0P3QoUUJ0bkdyb3VwLHtwcm9wczp7b3V0bGluZTp0aGlzLm91dGxpbmUsZmxhdDp0aGlzLmZsYXQscm91bmRlZDp0aGlzLnJvdW5kZWQscHVzaDp0aGlzLnB1c2h9LHN0YXRpY0NsYXNzOlwicS1idG4tZHJvcGRvd24gcS1idG4tZHJvcGRvd24tc3BsaXQgbm8td3JhcCBxLWJ0bi1pdGVtXCJ9LFtuLHQoUUJ0bix7cHJvcHM6e2Rpc2FibGU6dGhpcy5kaXNhYmxlLG91dGxpbmU6dGhpcy5vdXRsaW5lLGZsYXQ6dGhpcy5mbGF0LHJvdW5kZWQ6dGhpcy5yb3VuZGVkLHB1c2g6dGhpcy5wdXNoLHNpemU6dGhpcy5zaXplLGNvbG9yOnRoaXMuY29sb3IsdGV4dENvbG9yOnRoaXMudGV4dENvbG9yLGRlbnNlOnRoaXMuZGVuc2UsZ2xvc3N5OnRoaXMuZ2xvc3N5LG5vUmlwcGxlOnRoaXMubm9SaXBwbGUsd2FpdEZvclJpcHBsZTp0aGlzLndhaXRGb3JSaXBwbGV9LHN0YXRpY0NsYXNzOlwicS1idG4tZHJvcGRvd24tYXJyb3dcIixvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtlLnRvZ2dsZSgpfX19LFtzXSksW2ldXSk6bn0sbWV0aG9kczp7dG9nZ2xlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHJlZnMucG9wb3Zlcj90aGlzLiRyZWZzLnBvcG92ZXIudG9nZ2xlKCk6UHJvbWlzZS5yZXNvbHZlKCl9LHNob3c6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kcmVmcy5wb3BvdmVyP3RoaXMuJHJlZnMucG9wb3Zlci5zaG93KCk6UHJvbWlzZS5yZXNvbHZlKCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kcmVmcy5wb3BvdmVyP3RoaXMuJHJlZnMucG9wb3Zlci5oaWRlKCk6UHJvbWlzZS5yZXNvbHZlKCl9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3QudmFsdWUmJnQuJHJlZnMucG9wb3ZlciYmdC4kcmVmcy5wb3BvdmVyLnNob3coKX0pfX0sUUJ0blRvZ2dsZT17bmFtZTpcIlFCdG5Ub2dnbGVcIixwcm9wczp7dmFsdWU6e3JlcXVpcmVkOiEwfSxjb2xvcjpTdHJpbmcsdGV4dENvbG9yOlN0cmluZyx0b2dnbGVDb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInByaW1hcnlcIn0sdG9nZ2xlVGV4dENvbG9yOlN0cmluZyxvcHRpb25zOnt0eXBlOkFycmF5LHJlcXVpcmVkOiEwLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4gdC5ldmVyeShmdW5jdGlvbih0KXtyZXR1cm4oXCJsYWJlbFwiaW4gdHx8XCJpY29uXCJpbiB0KSYmXCJ2YWx1ZVwiaW4gdH0pfX0scmVhZG9ubHk6Qm9vbGVhbixkaXNhYmxlOkJvb2xlYW4sbm9DYXBzOkJvb2xlYW4sbm9XcmFwOkJvb2xlYW4sb3V0bGluZTpCb29sZWFuLGZsYXQ6Qm9vbGVhbixkZW5zZTpCb29sZWFuLHJvdW5kZWQ6Qm9vbGVhbixwdXNoOkJvb2xlYW4sc2l6ZTpTdHJpbmcsZ2xvc3N5OkJvb2xlYW4sbm9SaXBwbGU6Qm9vbGVhbix3YWl0Rm9yUmlwcGxlOkJvb2xlYW59LGNvbXB1dGVkOnt2YWw6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLm9wdGlvbnMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnZhbHVlPT09dC52YWx1ZX0pfX0sbWV0aG9kczp7c2V0OmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpczt0aGlzLnJlYWRvbmx5fHwodGhpcy4kZW1pdChcImlucHV0XCIsdCxlKSx0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe0pTT04uc3RyaW5naWZ5KHQpIT09SlNPTi5zdHJpbmdpZnkoaS52YWx1ZSkmJmkuJGVtaXQoXCJjaGFuZ2VcIix0LGUpfSkpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoUUJ0bkdyb3VwLHtzdGF0aWNDbGFzczpcInEtYnRuLXRvZ2dsZVwiLHByb3BzOntvdXRsaW5lOnRoaXMub3V0bGluZSxmbGF0OnRoaXMuZmxhdCxyb3VuZGVkOnRoaXMucm91bmRlZCxwdXNoOnRoaXMucHVzaH19LHRoaXMub3B0aW9ucy5tYXAoZnVuY3Rpb24oaSxzKXtyZXR1cm4gdChRQnRuLHtrZXk6XCJcIitpLmxhYmVsK2kuaWNvbitpLmljb25SaWdodCxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXQoaS52YWx1ZSxpKX19LHByb3BzOntkaXNhYmxlOmUuZGlzYWJsZXx8aS5kaXNhYmxlLGxhYmVsOmkubGFiZWwsY29sb3I6ZS52YWxbc10/aS50b2dnbGVDb2xvcnx8ZS50b2dnbGVDb2xvcjppLmNvbG9yfHxlLmNvbG9yLHRleHRDb2xvcjplLnZhbFtzXT9pLnRvZ2dsZVRleHRDb2xvcnx8ZS50b2dnbGVUZXh0Q29sb3I6aS50ZXh0Q29sb3J8fGUudGV4dENvbG9yLGljb246aS5pY29uLGljb25SaWdodDppLmljb25SaWdodCxub0NhcHM6ZS5ub0NhcHN8fGkubm9DYXBzLG5vV3JhcDplLm5vV3JhcHx8aS5ub1dyYXAsb3V0bGluZTplLm91dGxpbmUsZmxhdDplLmZsYXQscm91bmRlZDplLnJvdW5kZWQscHVzaDplLnB1c2gsZ2xvc3N5OmUuZ2xvc3N5LHNpemU6ZS5zaXplLGRlbnNlOmUuZGVuc2Usbm9SaXBwbGU6ZS5ub1JpcHBsZXx8aS5ub1JpcHBsZSx3YWl0Rm9yUmlwcGxlOmUud2FpdEZvclJpcHBsZXx8aS53YWl0Rm9yUmlwcGxlLHRhYmluZGV4OmkudGFiaW5kZXh9fSl9KSl9fSxRQ2FyZD17bmFtZTpcIlFDYXJkXCIscHJvcHM6e2Rhcms6Qm9vbGVhbixzcXVhcmU6Qm9vbGVhbixmbGF0OkJvb2xlYW4saW5saW5lOkJvb2xlYW4sY29sb3I6U3RyaW5nLHRleHRDb2xvcjpTdHJpbmd9LGNvbXB1dGVkOntjbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9W3tcIm5vLWJvcmRlci1yYWRpdXNcIjp0aGlzLnNxdWFyZSxcIm5vLXNoYWRvd1wiOnRoaXMuZmxhdCxcImlubGluZS1ibG9ja1wiOnRoaXMuaW5saW5lLFwicS1jYXJkLWRhcmtcIjp0aGlzLmRhcmt9XTtyZXR1cm4gdGhpcy5jb2xvcj8odC5wdXNoKFwiYmctXCIrdGhpcy5jb2xvciksdC5wdXNoKFwidGV4dC1cIisodGhpcy50ZXh0Q29sb3J8fFwid2hpdGVcIikpKTp0aGlzLnRleHRDb2xvciYmdC5wdXNoKFwidGV4dC1cIit0aGlzLnRleHRDb2xvciksdH19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2FyZFwiLGNsYXNzOnRoaXMuY2xhc3Nlc30sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxRQ2FyZFRpdGxlPXtuYW1lOlwiUUNhcmRUaXRsZVwiLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2FyZC1wcmltYXJ5IHEtY2FyZC1jb250YWluZXIgcm93IG5vLXdyYXBcIn0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wgY29sdW1uXCJ9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jYXJkLXRpdGxlXCJ9LHRoaXMuJHNsb3RzLmRlZmF1bHQpLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNhcmQtc3VidGl0bGVcIn0sW3RoaXMuJHNsb3RzLnN1YnRpdGxlXSldKSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sLWF1dG8gc2VsZi1jZW50ZXIgcS1jYXJkLXRpdGxlLWV4dHJhXCJ9LFt0aGlzLiRzbG90cy5yaWdodF0pXSl9fSxRQ2FyZE1haW49e25hbWU6XCJRQ2FyZE1haW5cIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNhcmQtbWFpbiBxLWNhcmQtY29udGFpbmVyXCJ9LHRoaXMuJHNsb3RzLmRlZmF1bHQpfX0sUUNhcmRBY3Rpb25zPXtuYW1lOlwiUUNhcmRBY3Rpb25zXCIscHJvcHM6e3ZlcnRpY2FsOkJvb2xlYW4sYWxpZ246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJzdGFydFwiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJzdGFydFwiLFwiY2VudGVyXCIsXCJlbmRcIixcImFyb3VuZFwiLFwiYmV0d2VlblwiXS5pbmNsdWRlcyh0KX19fSxjb21wdXRlZDp7Y2xhc3NlczpmdW5jdGlvbigpe3JldHVyblwicS1jYXJkLWFjdGlvbnMtXCIrKHRoaXMudmVydGljYWw/XCJ2ZXJ0IGNvbHVtbiBqdXN0aWZ5LXN0YXJ0XCI6XCJob3JpeiByb3dcIikrXCIgXCIrKHRoaXMudmVydGljYWw/XCJpdGVtc1wiOlwianVzdGlmeVwiKStcIi1cIit0aGlzLmFsaWdufX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jYXJkLWFjdGlvbnNcIixjbGFzczp0aGlzLmNsYXNzZXN9LHRoaXMuJHNsb3RzLmRlZmF1bHQpfX0sUUNhcmRNZWRpYT17bmFtZTpcIlFDYXJkTWVkaWFcIixwcm9wczp7b3ZlcmxheVBvc2l0aW9uOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiYm90dG9tXCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcInRvcFwiLFwiYm90dG9tXCIsXCJmdWxsXCJdLmluY2x1ZGVzKHQpfX19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2FyZC1tZWRpYSByZWxhdGl2ZS1wb3NpdGlvblwifSxbdGhpcy4kc2xvdHMuZGVmYXVsdCx0aGlzLiRzbG90cy5vdmVybGF5P3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNhcmQtbWVkaWEtb3ZlcmxheVwiLGNsYXNzOlwiYWJzb2x1dGUtXCIrdGhpcy5vdmVybGF5UG9zaXRpb259LFt0aGlzLiRzbG90cy5vdmVybGF5XSk6bnVsbF0pfX0sUUNhcmRTZXBhcmF0b3I9e25hbWU6XCJRQ2FyZFNlcGFyYXRvclwiLHByb3BzOntpbnNldDpCb29sZWFufSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNhcmQtc2VwYXJhdG9yXCIsY2xhc3M6e2luc2V0OnRoaXMuaW5zZXR9fSx0aGlzLiRzbG90cy5kZWZhdWx0KX19O2Z1bmN0aW9uIGdldERpcmVjdGlvbih0KXt2YXIgZT0hMCE9PXQuaG9yaXpvbnRhbCYmITAhPT10LnZlcnRpY2FsLGk9e307cmV0dXJuITAhPT10Lmhvcml6b250YWwmJiEwIT09ZXx8KGkuaG9yaXpvbnRhbD0hMCksITAhPT10LnZlcnRpY2FsJiYhMCE9PWV8fChpLnZlcnRpY2FsPSEwKSxpfWZ1bmN0aW9uIHByb2Nlc3NDaGFuZ2VzKHQsZSxpKXt2YXIgcz1wb3NpdGlvbih0KSxuPXMubGVmdC1lLmV2ZW50Lngsbz1zLnRvcC1lLmV2ZW50Lnkscj1NYXRoLmFicyhuKSxhPU1hdGguYWJzKG8pO3JldHVybntldnQ6dCxwb3NpdGlvbjpzLGRpcmVjdGlvbjplLmRpcmVjdGlvbi5ob3Jpem9udGFsJiYhZS5kaXJlY3Rpb24udmVydGljYWw/bjwwP1wibGVmdFwiOlwicmlnaHRcIjohZS5kaXJlY3Rpb24uaG9yaXpvbnRhbCYmZS5kaXJlY3Rpb24udmVydGljYWw/bzwwP1widXBcIjpcImRvd25cIjpyPj1hP248MD9cImxlZnRcIjpcInJpZ2h0XCI6bzwwP1widXBcIjpcImRvd25cIixpc0ZpcnN0OmUuZXZlbnQuaXNGaXJzdCxpc0ZpbmFsOmksZHVyYXRpb246KG5ldyBEYXRlKS5nZXRUaW1lKCktZS5ldmVudC50aW1lLGRpc3RhbmNlOnt4OnIseTphfSxvZmZzZXQ6e3g6bix5Om99LGRlbHRhOnt4OnMubGVmdC1lLmV2ZW50Lmxhc3RYLHk6cy50b3AtZS5ldmVudC5sYXN0WX19fWZ1bmN0aW9uIHNob3VsZFRyaWdnZXIodCxlKXtyZXR1cm4hKCF0LmRpcmVjdGlvbi5ob3Jpem9udGFsfHwhdC5kaXJlY3Rpb24udmVydGljYWwpfHwodC5kaXJlY3Rpb24uaG9yaXpvbnRhbCYmIXQuZGlyZWN0aW9uLnZlcnRpY2FsP01hdGguYWJzKGUuZGVsdGEueCk+MDohdC5kaXJlY3Rpb24uaG9yaXpvbnRhbCYmdC5kaXJlY3Rpb24udmVydGljYWw/TWF0aC5hYnMoZS5kZWx0YS55KT4wOnZvaWQgMCl9dmFyIFRvdWNoUGFuPXtuYW1lOlwidG91Y2gtcGFuXCIsYmluZDpmdW5jdGlvbih0LGUpe3ZhciBpPSEwIT09ZS5tb2RpZmllcnMubm9Nb3VzZSxzPWUubW9kaWZpZXJzLnN0b3Asbj1lLm1vZGlmaWVycy5wcmV2ZW50LG89bnx8ZS5tb2RpZmllcnMubWlnaHRQcmV2ZW50P251bGw6bGlzdGVuT3B0cy5wYXNzaXZlLHI9e2hhbmRsZXI6ZS52YWx1ZSxkaXJlY3Rpb246Z2V0RGlyZWN0aW9uKGUubW9kaWZpZXJzKSxtb3VzZVN0YXJ0OmZ1bmN0aW9uKHQpe2xlZnRDbGljayh0KSYmKGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixyLm1vdmUsbyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIixyLm1vdXNlRW5kLG8pLHIuc3RhcnQodCwhMCkpfSxtb3VzZUVuZDpmdW5jdGlvbih0KXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsci5tb3ZlLG8pLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsci5tb3VzZUVuZCxvKSxyLmVuZCh0KX0sc3RhcnQ6ZnVuY3Rpb24oZSxpKXt2YXIgbz1wb3NpdGlvbihlKTtyLmV2ZW50PXt4Om8ubGVmdCx5Om8udG9wLHRpbWU6KG5ldyBEYXRlKS5nZXRUaW1lKCksZGV0ZWN0ZWQ6ITA9PT1pfHxyLmRpcmVjdGlvbi5ob3Jpem9udGFsJiZyLmRpcmVjdGlvbi52ZXJ0aWNhbCxhYm9ydDohMSxpc0ZpcnN0OiEwLGxhc3RYOm8ubGVmdCxsYXN0WTpvLnRvcH0sci5ldmVudC5kZXRlY3RlZCYmKHQuY2xhc3NMaXN0LmFkZChcInEtdG91Y2hcIiksITAhPT1pJiYocyYmZS5zdG9wUHJvcGFnYXRpb24oKSxuJiZlLnByZXZlbnREZWZhdWx0KCksci5tb3ZlKGUpKSl9LG1vdmU6ZnVuY3Rpb24odCl7aWYoITAhPT1yLmV2ZW50LmFib3J0KWlmKCEwIT09ci5ldmVudC5kZXRlY3RlZCl7dmFyIGU9cG9zaXRpb24odCksaT1NYXRoLmFicyhlLmxlZnQtci5ldmVudC54KSxvPU1hdGguYWJzKGUudG9wLXIuZXZlbnQueSk7aSE9PW8mJihyLmV2ZW50LmRldGVjdGVkPSEwLHIuZXZlbnQuYWJvcnQ9ci5kaXJlY3Rpb24udmVydGljYWw/aT5vOmk8byxyLm1vdmUodCkpfWVsc2V7cyYmdC5zdG9wUHJvcGFnYXRpb24oKSxuJiZ0LnByZXZlbnREZWZhdWx0KCk7dmFyIGE9cHJvY2Vzc0NoYW5nZXModCxyLCExKTtzaG91bGRUcmlnZ2VyKHIsYSkmJihyLmhhbmRsZXIoYSksci5ldmVudC5sYXN0WD1hLnBvc2l0aW9uLmxlZnQsci5ldmVudC5sYXN0WT1hLnBvc2l0aW9uLnRvcCxyLmV2ZW50LmlzRmlyc3Q9ITEpfX0sZW5kOmZ1bmN0aW9uKGUpe3QuY2xhc3NMaXN0LnJlbW92ZShcInEtdG91Y2hcIiksci5ldmVudC5hYm9ydHx8IXIuZXZlbnQuZGV0ZWN0ZWR8fHIuZXZlbnQuaXNGaXJzdHx8KHMmJmUuc3RvcFByb3BhZ2F0aW9uKCksbiYmZS5wcmV2ZW50RGVmYXVsdCgpLHIuaGFuZGxlcihwcm9jZXNzQ2hhbmdlcyhlLHIsITApKSl9fTt0Ll9fcXRvdWNocGFuJiYodC5fX3F0b3VjaHBhbl9vbGQ9dC5fX3F0b3VjaHBhbiksdC5fX3F0b3VjaHBhbj1yLGkmJnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLHIubW91c2VTdGFydCxvKSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIsci5zdGFydCxvKSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIixyLm1vdmUsbyksdC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIixyLmVuZCxvKX0sdXBkYXRlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9ZS5vbGRWYWx1ZSxzPWUudmFsdWUsbj1lLm1vZGlmaWVycyxvPXQuX19xdG91Y2hwYW47aSE9PXMmJihvLmhhbmRsZXI9cyksbi5ob3Jpem9udGFsPT09by5kaXJlY3Rpb24uaG9yaXpvbnRhbCYmbi52ZXJ0aWNhbD09PW8uZGlyZWN0aW9uLnZlcnRpY2FsfHwoby5kaXJlY3Rpb249Z2V0RGlyZWN0aW9uKG4pKX0sdW5iaW5kOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dC5fX3F0b3VjaHBhbl9vbGR8fHQuX19xdG91Y2hwYW47aWYodm9pZCAwIT09aSl7dmFyIHM9ZS5tb2RpZmllcnMucHJldmVudD9udWxsOmxpc3Rlbk9wdHMucGFzc2l2ZTt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIixpLm1vdXNlU3RhcnQscyksdC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLGkuc3RhcnQscyksdC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2htb3ZlXCIsaS5tb3ZlLHMpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoZW5kXCIsaS5lbmQscyksZGVsZXRlIHRbdC5fX3F0b3VjaHBhbl9vbGQ/XCJfX3F0b3VjaHBhbl9vbGRcIjpcIl9fcXRvdWNocGFuXCJdfX19O2Z1bmN0aW9uIGlzRGF0ZSh0KXtyZXR1cm5cIltvYmplY3QgRGF0ZV1cIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1mdW5jdGlvbiBpc051bWJlcih0KXtyZXR1cm5cIm51bWJlclwiPT10eXBlb2YgdCYmaXNGaW5pdGUodCl9ZnVuY3Rpb24gaXNTdHJpbmcodCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHR9dmFyIGxpbmVhcj1mdW5jdGlvbih0KXtyZXR1cm4gdH0sZWFzZUluUXVhZD1mdW5jdGlvbih0KXtyZXR1cm4gdCp0fSxlYXNlT3V0UXVhZD1mdW5jdGlvbih0KXtyZXR1cm4gdCooMi10KX0sZWFzZUluT3V0UXVhZD1mdW5jdGlvbih0KXtyZXR1cm4gdDwuNT8yKnQqdDooNC0yKnQpKnQtMX0sZWFzZUluQ3ViaWM9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucG93KHQsMyl9LGVhc2VPdXRDdWJpYz1mdW5jdGlvbih0KXtyZXR1cm4gMStNYXRoLnBvdyh0LTEsMyl9LGVhc2VJbk91dEN1YmljPWZ1bmN0aW9uKHQpe3JldHVybiB0PC41PzQqTWF0aC5wb3codCwzKToxKyh0LTEpKk1hdGgucG93KDIqdC0yLDIpfSxlYXNlSW5RdWFydD1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5wb3codCw0KX0sZWFzZU91dFF1YXJ0PWZ1bmN0aW9uKHQpe3JldHVybiAxLU1hdGgucG93KHQtMSw0KX0sZWFzZUluT3V0UXVhcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQ8LjU/OCpNYXRoLnBvdyh0LDQpOjEtOCpNYXRoLnBvdyh0LTEsNCl9LGVhc2VJblF1aW50PWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnBvdyh0LDUpfSxlYXNlT3V0UXVpbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIDErTWF0aC5wb3codC0xLDUpfSxlYXNlSW5PdXRRdWludD1mdW5jdGlvbih0KXtyZXR1cm4gdDwuNT8xNipNYXRoLnBvdyh0LDUpOjErMTYqTWF0aC5wb3codC0xLDUpfSxlYXNlSW5DaXJjPWZ1bmN0aW9uKHQpe3JldHVybi0xKk1hdGguc3FydCgxLU1hdGgucG93KHQsMikpKzF9LGVhc2VPdXRDaXJjPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNxcnQoLTEqKHQtMikqdCl9LGVhc2VJbk91dENpcmM9ZnVuY3Rpb24odCl7cmV0dXJuIHQ8LjU/LjUqKDEtTWF0aC5zcXJ0KDEtNCp0KnQpKTouNSooMStNYXRoLnNxcnQoOCp0LTMtNCp0KnQpKX0sb3ZlcnNob290PWZ1bmN0aW9uKHQpe3JldHVybi0xKk1hdGgucG93KE1hdGguRSwtNi4zKnQpKk1hdGguY29zKDUqdCkrMX0sc3RhbmRhcmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQ8LjQwMzE/MTIqTWF0aC5wb3codCw0KToxLzEyOTAqKDExKk1hdGguc3FydCgtNGU0KnQqdCs4ZTQqdC0yMzM1OSktMTI5KX0sZGVjZWxlcmF0ZT1lYXNlT3V0Q3ViaWMsYWNjZWxlcmF0ZT1lYXNlSW5DdWJpYyxzaGFycD1lYXNlSW5PdXRRdWFkLGVhc2luZz17bGluZWFyOmxpbmVhcixlYXNlSW5RdWFkOmVhc2VJblF1YWQsZWFzZU91dFF1YWQ6ZWFzZU91dFF1YWQsZWFzZUluT3V0UXVhZDplYXNlSW5PdXRRdWFkLGVhc2VJbkN1YmljOmVhc2VJbkN1YmljLGVhc2VPdXRDdWJpYzplYXNlT3V0Q3ViaWMsZWFzZUluT3V0Q3ViaWM6ZWFzZUluT3V0Q3ViaWMsZWFzZUluUXVhcnQ6ZWFzZUluUXVhcnQsZWFzZU91dFF1YXJ0OmVhc2VPdXRRdWFydCxlYXNlSW5PdXRRdWFydDplYXNlSW5PdXRRdWFydCxlYXNlSW5RdWludDplYXNlSW5RdWludCxlYXNlT3V0UXVpbnQ6ZWFzZU91dFF1aW50LGVhc2VJbk91dFF1aW50OmVhc2VJbk91dFF1aW50LGVhc2VJbkNpcmM6ZWFzZUluQ2lyYyxlYXNlT3V0Q2lyYzplYXNlT3V0Q2lyYyxlYXNlSW5PdXRDaXJjOmVhc2VJbk91dENpcmMsb3ZlcnNob290Om92ZXJzaG9vdCxzdGFuZGFyZDpzdGFuZGFyZCxkZWNlbGVyYXRlOmRlY2VsZXJhdGUsYWNjZWxlcmF0ZTphY2NlbGVyYXRlLHNoYXJwOnNoYXJwfSxpZHM9e307ZnVuY3Rpb24gc3RhcnQodCl7dmFyIGU9dC5uYW1lLGk9dC5kdXJhdGlvbjt2b2lkIDA9PT1pJiYoaT0zMDApO3ZhciBzPXQudG8sbj10LmZyb20sbz10LmFwcGx5LHI9dC5kb25lLGE9dC5jYW5jZWwsbD10LmVhc2luZyxjPWUsaD1uZXcgRGF0ZTtjP3N0b3AoYyk6Yz11aWQoKTt2YXIgdT1sfHxsaW5lYXIsZD1mdW5jdGlvbigpe3ZhciB0PShuZXcgRGF0ZS1oKS9pO3Q+MSYmKHQ9MSk7dmFyIGU9bisocy1uKSp1KHQpO2lmKG8oZSx0KSwxPT09dClyZXR1cm4gZGVsZXRlIGlkc1tjXSx2b2lkKHImJnIoZSkpO3AubGFzdD17cG9zOmUscHJvZ3Jlc3M6dH0scC50aW1lcj1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZCl9LHA9aWRzW2NdPXtjYW5jZWw6YSx0aW1lcjpyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZCl9O3JldHVybiBjfWZ1bmN0aW9uIHN0b3AodCl7aWYodCl7dmFyIGU9aWRzW3RdO2UmJmUudGltZXImJihjYW5jZWxBbmltYXRpb25GcmFtZShlLnRpbWVyKSxlLmNhbmNlbCYmZS5jYW5jZWwoZS5sYXN0KSxkZWxldGUgaWRzW3RdKX19dmFyIGFuaW1hdGU9e3N0YXJ0OnN0YXJ0LHN0b3A6c3RvcH0sRnVsbHNjcmVlbk1peGluPXtkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2luRnVsbHNjcmVlbjohMX19LHdhdGNoOnskcm91dGU6ZnVuY3Rpb24oKXt0aGlzLmV4aXRGdWxsc2NyZWVuKCl9LGluRnVsbHNjcmVlbjpmdW5jdGlvbih0KXt0aGlzLiRlbWl0KFwiZnVsbHNjcmVlblwiLHQpfX0sbWV0aG9kczp7dG9nZ2xlRnVsbHNjcmVlbjpmdW5jdGlvbigpe3RoaXMuaW5GdWxsc2NyZWVuP3RoaXMuZXhpdEZ1bGxzY3JlZW4oKTp0aGlzLnNldEZ1bGxzY3JlZW4oKX0sc2V0RnVsbHNjcmVlbjpmdW5jdGlvbigpe3RoaXMuaW5GdWxsc2NyZWVufHwodGhpcy5pbkZ1bGxzY3JlZW49ITAsdGhpcy5jb250YWluZXI9dGhpcy4kZWwucGFyZW50Tm9kZSx0aGlzLmNvbnRhaW5lci5yZXBsYWNlQ2hpbGQodGhpcy5mdWxsc2NyZWVuRmlsbGVyTm9kZSx0aGlzLiRlbCksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLiRlbCksZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFwicS1ib2R5LWZ1bGxzY3JlZW4tbWl4aW5cIiksdGhpcy5fX2hpc3RvcnlGdWxsc2NyZWVuPXtoYW5kbGVyOnRoaXMuZXhpdEZ1bGxzY3JlZW59LEhpc3RvcnkuYWRkKHRoaXMuX19oaXN0b3J5RnVsbHNjcmVlbikpfSxleGl0RnVsbHNjcmVlbjpmdW5jdGlvbigpe3RoaXMuaW5GdWxsc2NyZWVuJiYodGhpcy5fX2hpc3RvcnlGdWxsc2NyZWVuJiYoSGlzdG9yeS5yZW1vdmUodGhpcy5fX2hpc3RvcnlGdWxsc2NyZWVuKSx0aGlzLl9faGlzdG9yeUZ1bGxzY3JlZW49bnVsbCksdGhpcy5jb250YWluZXIucmVwbGFjZUNoaWxkKHRoaXMuJGVsLHRoaXMuZnVsbHNjcmVlbkZpbGxlck5vZGUpLGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShcInEtYm9keS1mdWxsc2NyZWVuLW1peGluXCIpLHRoaXMuaW5GdWxsc2NyZWVuPSExKX19LGJlZm9yZU1vdW50OmZ1bmN0aW9uKCl7dGhpcy5mdWxsc2NyZWVuRmlsbGVyTm9kZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3BhblwiKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuZXhpdEZ1bGxzY3JlZW4oKX19LFFDYXJvdXNlbD17bmFtZTpcIlFDYXJvdXNlbFwiLG1peGluczpbRnVsbHNjcmVlbk1peGluXSxkaXJlY3RpdmVzOntUb3VjaFBhbjpUb3VjaFBhbn0scHJvcHM6e3ZhbHVlOk51bWJlcixjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInByaW1hcnlcIn0saGVpZ2h0OlN0cmluZyxhcnJvd3M6Qm9vbGVhbixpbmZpbml0ZTpCb29sZWFuLGFuaW1hdGlvbjp7dHlwZTpbTnVtYmVyLEJvb2xlYW5dLGRlZmF1bHQ6ITB9LGVhc2luZzpGdW5jdGlvbixzd2lwZUVhc2luZzpGdW5jdGlvbixub1N3aXBlOkJvb2xlYW4sYXV0b3BsYXk6W051bWJlcixCb29sZWFuXSxoYW5kbGVBcnJvd0tleXM6Qm9vbGVhbixxdWlja05hdjpCb29sZWFuLHF1aWNrTmF2UG9zaXRpb246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJib3R0b21cIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1widG9wXCIsXCJib3R0b21cIl0uaW5jbHVkZXModCl9fSxxdWlja05hdkljb246U3RyaW5nLHRodW1ibmFpbHM6e3R5cGU6QXJyYXksZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybltdfX0sdGh1bWJuYWlsc0ljb246U3RyaW5nLHRodW1ibmFpbHNIb3Jpem9udGFsOkJvb2xlYW59LHByb3ZpZGU6ZnVuY3Rpb24oKXtyZXR1cm57Y2Fyb3VzZWw6dGhpc319LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57cG9zaXRpb246MCxzbGlkZTowLHBvc2l0aW9uU2xpZGU6MCxzbGlkZXNOdW1iZXI6MCxhbmltVWlkOiExLHZpZXdUaHVtYm5haWxzOiExfX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpe3QhPT10aGlzLnNsaWRlJiZ0aGlzLmdvVG9TbGlkZSh0KX0sYXV0b3BsYXk6ZnVuY3Rpb24oKXt0aGlzLl9fcGxhbkF1dG9QbGF5KCl9LGluZmluaXRlOmZ1bmN0aW9uKCl7dGhpcy5fX3BsYW5BdXRvUGxheSgpfSxoYW5kbGVBcnJvd0tleXM6ZnVuY3Rpb24odCl7dGhpcy5fX3NldEFycm93S2V5cyh0KX19LGNvbXB1dGVkOntydGxEaXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kcS5pMThuLnJ0bD8tMToxfSxhcnJvd0ljb246ZnVuY3Rpb24oKXt2YXIgdD1bdGhpcy4kcS5pY29uLmNhcm91c2VsLmxlZnQsdGhpcy4kcS5pY29uLmNhcm91c2VsLnJpZ2h0XTtyZXR1cm4gdGhpcy4kcS5pMThuLnJ0bD90LnJldmVyc2UoKTp0fSx0cmFja1Bvc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJue3RyYW5zZm9ybTpcInRyYW5zbGF0ZVgoXCIrdGhpcy5ydGxEaXIqdGhpcy5wb3NpdGlvbitcIiUpXCJ9fSxpbmZpbml0ZUxlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbmZpbml0ZSYmdGhpcy5zbGlkZXNOdW1iZXI+MSYmdGhpcy5wb3NpdGlvblNsaWRlPDB9LGluZmluaXRlUmlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbmZpbml0ZSYmdGhpcy5zbGlkZXNOdW1iZXI+MSYmdGhpcy5wb3NpdGlvblNsaWRlPj10aGlzLnNsaWRlc051bWJlcn0sY2FuR29Ub1ByZXZpb3VzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5maW5pdGU/dGhpcy5zbGlkZXNOdW1iZXI+MTp0aGlzLnNsaWRlPjB9LGNhbkdvVG9OZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5maW5pdGU/dGhpcy5zbGlkZXNOdW1iZXI+MTp0aGlzLnNsaWRlPHRoaXMuc2xpZGVzTnVtYmVyLTF9LGNvbXB1dGVkUXVpY2tOYXZJY29uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVpY2tOYXZJY29ufHx0aGlzLiRxLmljb24uY2Fyb3VzZWwucXVpY2tOYXZ9LGNvbXB1dGVkU3R5bGU6ZnVuY3Rpb24oKXtpZighdGhpcy5pbkZ1bGxzY3JlZW4mJnRoaXMuaGVpZ2h0KXJldHVyblwiaGVpZ2h0OiBcIit0aGlzLmhlaWdodH0sc2xvdFNjb3BlOmZ1bmN0aW9uKCl7cmV0dXJue3NsaWRlOnRoaXMuc2xpZGUsc2xpZGVzTnVtYmVyOnRoaXMuc2xpZGVzTnVtYmVyLHBlcmNlbnRhZ2U6dGhpcy5zbGlkZXNOdW1iZXI8Mj8xMDA6MTAwKnRoaXMuc2xpZGUvKHRoaXMuc2xpZGVzTnVtYmVyLTEpLGdvVG9TbGlkZTp0aGlzLmdvVG9TbGlkZSxwcmV2aW91czp0aGlzLnByZXZpb3VzLG5leHQ6dGhpcy5uZXh0LGNvbG9yOnRoaXMuY29sb3IsaW5GdWxsc2NyZWVuOnRoaXMuaW5GdWxsc2NyZWVuLHRvZ2dsZUZ1bGxzY3JlZW46dGhpcy50b2dnbGVGdWxsc2NyZWVuLGNhbkdvVG9OZXh0OnRoaXMuY2FuR29Ub05leHQsY2FuR29Ub1ByZXZpb3VzOnRoaXMuY2FuR29Ub1ByZXZpb3VzfX0sY29tcHV0ZWRUaHVtYm5haWxJY29uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGh1bWJuYWlsc0ljb258fHRoaXMuJHEuaWNvbi5jYXJvdXNlbC50aHVtYm5haWxzfX0sbWV0aG9kczp7cHJldmlvdXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYW5Hb1RvUHJldmlvdXM/dGhpcy5nb1RvU2xpZGUodGhpcy5zbGlkZS0xKTpQcm9taXNlLnJlc29sdmUoKX0sbmV4dDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNhbkdvVG9OZXh0P3RoaXMuZ29Ub1NsaWRlKHRoaXMuc2xpZGUrMSk6UHJvbWlzZS5yZXNvbHZlKCl9LGdvVG9TbGlkZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXM7cmV0dXJuIHZvaWQgMD09PWUmJihlPSExKSxuZXcgUHJvbWlzZShmdW5jdGlvbihzKXt2YXIgbixvPVwiXCIscj1pLnNsaWRlO2kuX19jbGVhbnVwKCk7dmFyIGE9ZnVuY3Rpb24oKXtpLiRlbWl0KFwiaW5wdXRcIixpLnNsaWRlKSxpLiRlbWl0KFwic2xpZGVcIixpLnNsaWRlLG8pLGkuJGVtaXQoXCJzbGlkZS1kaXJlY3Rpb25cIixvKSxpLl9fcGxhbkF1dG9QbGF5KCkscygpfTtpZihpLnNsaWRlc051bWJlcjwyPyhpLnNsaWRlPTAsaS5wb3NpdGlvblNsaWRlPTAsbj0wKTooaS5oYXNPd25Qcm9wZXJ0eShcImluaXRpYWxQb3NpdGlvblwiKXx8KGkucG9zaXRpb249MTAwKi1pLnNsaWRlKSxvPXQ+aS5zbGlkZT9cIm5leHRcIjpcInByZXZpb3VzXCIsaS5pbmZpbml0ZT8oaS5zbGlkZT1ub3JtYWxpemVUb0ludGVydmFsKHQsMCxpLnNsaWRlc051bWJlci0xKSxuPW5vcm1hbGl6ZVRvSW50ZXJ2YWwodCwtMSxpLnNsaWRlc051bWJlciksZXx8KGkucG9zaXRpb25TbGlkZT1uKSk6KGkuc2xpZGU9YmV0d2Vlbih0LDAsaS5zbGlkZXNOdW1iZXItMSksaS5wb3NpdGlvblNsaWRlPWkuc2xpZGUsbj1pLnNsaWRlKSksaS4kZW1pdChcInNsaWRlLXRyaWdnZXJcIixyLGkuc2xpZGUsbyksbio9LTEwMCwhaS5hbmltYXRpb24pcmV0dXJuIGkucG9zaXRpb249bix2b2lkIGEoKTtpLmFuaW1hdGlvbkluUHJvZ3Jlc3M9ITAsaS5hbmltVWlkPXN0YXJ0KHtmcm9tOmkucG9zaXRpb24sdG86bixkdXJhdGlvbjppc051bWJlcihpLmFuaW1hdGlvbik/aS5hbmltYXRpb246MzAwLGVhc2luZzplP2kuc3dpcGVFYXNpbmd8fGRlY2VsZXJhdGU6aS5lYXNpbmd8fHN0YW5kYXJkLGFwcGx5OmZ1bmN0aW9uKHQpe2kucG9zaXRpb249dH0sZG9uZTpmdW5jdGlvbigpe2kuaW5maW5pdGUmJihpLnBvc2l0aW9uPTEwMCotaS5zbGlkZSxpLnBvc2l0aW9uU2xpZGU9aS5zbGlkZSksaS5hbmltYXRpb25JblByb2dyZXNzPSExLGEoKX19KX0pfSxzdG9wQW5pbWF0aW9uOmZ1bmN0aW9uKCl7c3RvcCh0aGlzLmFuaW1VaWQpLHRoaXMuYW5pbWF0aW9uSW5Qcm9ncmVzcz0hMX0sX19wYW46ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZighdGhpcy5pbmZpbml0ZXx8IXRoaXMuYW5pbWF0aW9uSW5Qcm9ncmVzcyl7dC5pc0ZpcnN0JiYodGhpcy5pbml0aWFsUG9zaXRpb249dGhpcy5wb3NpdGlvbix0aGlzLl9fY2xlYW51cCgpKTt2YXIgaT10aGlzLnJ0bERpciooXCJsZWZ0XCI9PT10LmRpcmVjdGlvbj8tMToxKSp0LmRpc3RhbmNlLng7KHRoaXMuaW5maW5pdGUmJnRoaXMuc2xpZGVzTnVtYmVyPDJ8fCF0aGlzLmluZmluaXRlJiYoMD09PXRoaXMuc2xpZGUmJmk+MHx8dGhpcy5zbGlkZT09PXRoaXMuc2xpZGVzTnVtYmVyLTEmJmk8MCkpJiYoaT0wKTt2YXIgcz10aGlzLmluaXRpYWxQb3NpdGlvbitpL3RoaXMuJHJlZnMudHJhY2sub2Zmc2V0V2lkdGgqMTAwLG49dGhpcy5zbGlkZSt0aGlzLnJ0bERpciooXCJsZWZ0XCI9PT10LmRpcmVjdGlvbj8xOi0xKTt0aGlzLnBvc2l0aW9uIT09cyYmKHRoaXMucG9zaXRpb249cyksdGhpcy5wb3NpdGlvblNsaWRlIT09biYmKHRoaXMucG9zaXRpb25TbGlkZT1uKSx0LmlzRmluYWwmJnRoaXMuZ29Ub1NsaWRlKHQuZGlzdGFuY2UueDw0MD90aGlzLnNsaWRlOnRoaXMucG9zaXRpb25TbGlkZSwhMCkudGhlbihmdW5jdGlvbigpe2RlbGV0ZSBlLmluaXRpYWxQb3NpdGlvbn0pfX0sX19wbGFuQXV0b1BsYXk6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7dC5hdXRvcGxheSYmKGNsZWFyVGltZW91dCh0LnRpbWVyKSx0LnRpbWVyPXNldFRpbWVvdXQodC5uZXh0LGlzTnVtYmVyKHQuYXV0b3BsYXkpP3QuYXV0b3BsYXk6NWUzKSl9KX0sX19jbGVhbnVwOmZ1bmN0aW9uKCl7dGhpcy5zdG9wQW5pbWF0aW9uKCksY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpfSxfX2hhbmRsZUFycm93S2V5OmZ1bmN0aW9uKHQpe3ZhciBlPWdldEV2ZW50S2V5KHQpOzM3PT09ZT90aGlzLnByZXZpb3VzKCk6Mzk9PT1lJiZ0aGlzLm5leHQoKX0sX19zZXRBcnJvd0tleXM6ZnVuY3Rpb24odCl7ZG9jdW1lbnRbKCEwPT09dD9cImFkZFwiOlwicmVtb3ZlXCIpK1wiRXZlbnRMaXN0ZW5lclwiXShcImtleWRvd25cIix0aGlzLl9faGFuZGxlQXJyb3dLZXkpfSxfX3JlZ2lzdGVyU2xpZGU6ZnVuY3Rpb24oKXt0aGlzLnNsaWRlc051bWJlcisrfSxfX3VucmVnaXN0ZXJTbGlkZTpmdW5jdGlvbigpe3RoaXMuc2xpZGVzTnVtYmVyLS19LF9fZ2V0U2NvcGVkU2xvdHM6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZigwIT09dGhpcy5zbGlkZXNOdW1iZXIpe3ZhciBpPXRoaXMuJHNjb3BlZFNsb3RzO3JldHVybiBpP09iamVjdC5rZXlzKGkpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5zdGFydHNXaXRoKFwiY29udHJvbC1cIil9KS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGlbdF0oZS5zbG90U2NvcGUpfSk6dm9pZCAwfX0sX19nZXRRdWlja05hdjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKDAhPT10aGlzLnNsaWRlc051bWJlciYmdGhpcy5xdWlja05hdil7dmFyIGk9dGhpcy4kc2NvcGVkU2xvdHNbXCJxdWljay1uYXZcIl0scz1bXTtpZihpKWZvcih2YXIgbj1mdW5jdGlvbih0KXtzLnB1c2goaSh7c2xpZGU6dCxiZWZvcmU6dDxlLnNsaWRlLGN1cnJlbnQ6dD09PWUuc2xpZGUsYWZ0ZXI6dD5lLnNsaWRlLGNvbG9yOmUuY29sb3IsZ29Ub1NsaWRlOmZ1bmN0aW9uKGkpe2UuZ29Ub1NsaWRlKGl8fHQpfX0pKX0sbz0wO288dGhpcy5zbGlkZXNOdW1iZXI7bysrKW4obyk7ZWxzZSBmb3IodmFyIHI9ZnVuY3Rpb24oaSl7cy5wdXNoKHQoUUJ0bix7a2V5OmksY2xhc3M6e2luYWN0aXZlOmkhPT1lLnNsaWRlfSxwcm9wczp7aWNvbjplLmNvbXB1dGVkUXVpY2tOYXZJY29uLHJvdW5kOiEwLGZsYXQ6ITAsZGVuc2U6ITAsY29sb3I6ZS5jb2xvcn0sb246e2NsaWNrOmZ1bmN0aW9uKCl7ZS5nb1RvU2xpZGUoaSl9fX0pKX0sYT0wO2E8dGhpcy5zbGlkZXNOdW1iZXI7YSsrKXIoYSk7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNhcm91c2VsLXF1aWNrLW5hdiBzY3JvbGwgdGV4dC1jZW50ZXJcIixjbGFzczpbXCJ0ZXh0LVwiK3RoaXMuY29sb3IsXCJhYnNvbHV0ZS1cIit0aGlzLnF1aWNrTmF2UG9zaXRpb25dfSxzKX19LF9fZ2V0VGh1bWJuYWlsczpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dGhpcy50aHVtYm5haWxzLm1hcChmdW5jdGlvbihpLHMpe2lmKGkpcmV0dXJuIHQoXCJkaXZcIix7b246e2NsaWNrOmZ1bmN0aW9uKCl7ZS5nb1RvU2xpZGUocyl9fX0sW3QoXCJpbWdcIix7YXR0cnM6e3NyYzppfSxjbGFzczp7YWN0aXZlOmUuc2xpZGU9PT1zfX0pXSl9KSxzPVt0KFFCdG4se3N0YXRpY0NsYXNzOlwicS1jYXJvdXNlbC10aHVtYm5haWwtYnRuIGFic29sdXRlXCIscHJvcHM6e2ljb246dGhpcy5jb21wdXRlZFRodW1ibmFpbEljb24sZmFiTWluaTohMCxmbGF0OiEwLGNvbG9yOnRoaXMuY29sb3J9LG9uOntjbGljazpmdW5jdGlvbigpe2Uudmlld1RodW1ibmFpbHM9IWUudmlld1RodW1ibmFpbHN9fX0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNhcm91c2VsLXRodW1ibmFpbHMgc2Nyb2xsIGFic29sdXRlLWJvdHRvbVwiLGNsYXNzOnthY3RpdmU6dGhpcy52aWV3VGh1bWJuYWlsc319LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicm93IGd1dHRlci14c1wiLGNsYXNzOnRoaXMudGh1bWJuYWlsc0hvcml6b250YWw/XCJuby13cmFwXCI6XCJqdXN0aWZ5LWNlbnRlclwifSxpKV0pXTtyZXR1cm4gdGhpcy52aWV3VGh1bWJuYWlscyYmcy51bnNoaWZ0KHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJhYnNvbHV0ZS1mdWxsXCIsb246e2NsaWNrOmZ1bmN0aW9uKCl7ZS52aWV3VGh1bWJuYWlscz0hMX19fSkpLHN9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNhcm91c2VsXCIsc3R5bGU6dGhpcy5jb21wdXRlZFN0eWxlLGNsYXNzOntmdWxsc2NyZWVuOnRoaXMuaW5GdWxsc2NyZWVufX0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNhcm91c2VsLWlubmVyXCIsZGlyZWN0aXZlczp0aGlzLm5vU3dpcGU/bnVsbDpbe25hbWU6XCJ0b3VjaC1wYW5cIixtb2RpZmllcnM6e2hvcml6b250YWw6ITAscHJldmVudDohMCxzdG9wOiEwfSx2YWx1ZTp0aGlzLl9fcGFufV19LFt0KFwiZGl2XCIse3JlZjpcInRyYWNrXCIsc3RhdGljQ2xhc3M6XCJxLWNhcm91c2VsLXRyYWNrXCIsc3R5bGU6dGhpcy50cmFja1Bvc2l0aW9uLGNsYXNzOntcImluZmluaXRlLWxlZnRcIjp0aGlzLmluZmluaXRlTGVmdCxcImluZmluaXRlLXJpZ2h0XCI6dGhpcy5pbmZpbml0ZVJpZ2h0fX0sW3RoaXMuaW5maW5pdGVSaWdodD90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jYXJvdXNlbC1zbGlkZVwiLHN0eWxlOlwiZmxleDogMCAwIDEwMCVcIn0pOm51bGwsdGhpcy4kc2xvdHMuZGVmYXVsdCx0aGlzLmluZmluaXRlTGVmdD90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jYXJvdXNlbC1zbGlkZVwiLHN0eWxlOlwiZmxleDogMCAwIDEwMCVcIn0pOm51bGxdKV0pLHRoaXMuYXJyb3dzP3QoUUJ0bix7c3RhdGljQ2xhc3M6XCJxLWNhcm91c2VsLWxlZnQtYXJyb3cgYWJzb2x1dGVcIixwcm9wczp7Y29sb3I6dGhpcy5jb2xvcixpY29uOnRoaXMuYXJyb3dJY29uWzBdLGZhYk1pbmk6ITAsZmxhdDohMH0sZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIsdmFsdWU6dGhpcy5jYW5Hb1RvUHJldmlvdXN9XSxvbjp7Y2xpY2s6dGhpcy5wcmV2aW91c319KTpudWxsLHRoaXMuYXJyb3dzP3QoUUJ0bix7c3RhdGljQ2xhc3M6XCJxLWNhcm91c2VsLXJpZ2h0LWFycm93IGFic29sdXRlXCIscHJvcHM6e2NvbG9yOnRoaXMuY29sb3IsaWNvbjp0aGlzLmFycm93SWNvblsxXSxmYWJNaW5pOiEwLGZsYXQ6ITB9LGRpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHZhbHVlOnRoaXMuY2FuR29Ub05leHR9XSxvbjp7Y2xpY2s6dGhpcy5uZXh0fX0pOm51bGwsdGhpcy5fX2dldFF1aWNrTmF2KHQpLHRoaXMuX19nZXRTY29wZWRTbG90cyh0KSx0aGlzLnRodW1ibmFpbHMubGVuZ3RoP3RoaXMuX19nZXRUaHVtYm5haWxzKHQpOm51bGwsdGhpcy4kc2xvdHMuY29udHJvbF0pfSxtb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLl9fcGxhbkF1dG9QbGF5KCksdGhpcy5oYW5kbGVBcnJvd0tleXMmJnRoaXMuX19zZXRBcnJvd0tleXMoITApLHRoaXMuX19zdG9wU2xpZGVOdW1iZXJOb3RpZmllcj10aGlzLiR3YXRjaChcInNsaWRlc051bWJlclwiLGZ1bmN0aW9uKGUpe3QudmFsdWU+PWUmJnQuJGVtaXQoXCJpbnB1dFwiLGUtMSl9LHtpbW1lZGlhdGU6ITB9KX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuX19jbGVhbnVwKCksdGhpcy5fX3N0b3BTbGlkZU51bWJlck5vdGlmaWVyKCksdGhpcy5oYW5kbGVBcnJvd0tleXMmJnRoaXMuX19zZXRBcnJvd0tleXMoITEpfX0sUUNhcm91c2VsU2xpZGU9e25hbWU6XCJRQ2Fyb3VzZWxTbGlkZVwiLGluamVjdDp7Y2Fyb3VzZWw6e2RlZmF1bHQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKFwiUUNhcm91c2VsU2xpZGUgbmVlZHMgdG8gYmUgY2hpbGQgb2YgUUNhcm91c2VsXCIpfX19LHByb3BzOntpbWdTcmM6U3RyaW5nfSxjb21wdXRlZDp7Y29tcHV0ZWRTdHlsZTpmdW5jdGlvbigpe3ZhciB0PXt9O3JldHVybiB0aGlzLmltZ1NyYyYmKHQuYmFja2dyb3VuZEltYWdlPVwidXJsKFwiK3RoaXMuaW1nU3JjK1wiKVwiLHQuYmFja2dyb3VuZFNpemU9XCJjb3ZlclwiLHQuYmFja2dyb3VuZFBvc2l0aW9uPVwiNTAlXCIpLCF0aGlzLmNhcm91c2VsLmluRnVsbHNjcmVlbiYmdGhpcy5jYXJvdXNlbC5oZWlnaHQmJih0Lm1heEhlaWdodD10aGlzLmNhcm91c2VsLmhlaWdodCksdH19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2Fyb3VzZWwtc2xpZGUgcmVsYXRpdmUtcG9zaXRpb24gc2Nyb2xsXCIsc3R5bGU6dGhpcy5jb21wdXRlZFN0eWxlfSx0aGlzLiRzbG90cy5kZWZhdWx0KX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuY2Fyb3VzZWwuX19yZWdpc3RlclNsaWRlKCl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmNhcm91c2VsLl9fdW5yZWdpc3RlclNsaWRlKCl9fSxRQ2Fyb3VzZWxDb250cm9sPXtuYW1lOlwiUUNhcm91c2VsQ29udHJvbFwiLHByb3BzOntwb3NpdGlvbjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImJvdHRvbS1yaWdodFwifSxvZmZzZXQ6e3R5cGU6QXJyYXksZGVmYXVsdDpmdW5jdGlvbigpe3JldHVyblsxOCwxOF19fX0sY29tcHV0ZWQ6e2NvbXB1dGVkQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm5cImFic29sdXRlLVwiK3RoaXMucG9zaXRpb259LGNvbXB1dGVkU3R5bGU6ZnVuY3Rpb24oKXtyZXR1cm57bWFyZ2luOnRoaXMub2Zmc2V0WzFdK1wicHggXCIrdGhpcy5vZmZzZXRbMF0rXCJweFwifX19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2Fyb3VzZWwtY29udHJvbCBhYnNvbHV0ZVwiLHN0eWxlOnRoaXMuY29tcHV0ZWRTdHlsZSxjbGFzczp0aGlzLmNvbXB1dGVkQ2xhc3N9LHRoaXMuJHNsb3RzLmRlZmF1bHQpfX0sUUNoYXRNZXNzYWdlPXtuYW1lOlwiUUNoYXRNZXNzYWdlXCIscHJvcHM6e3NlbnQ6Qm9vbGVhbixsYWJlbDpTdHJpbmcsYmdDb2xvcjpTdHJpbmcsdGV4dENvbG9yOlN0cmluZyxuYW1lOlN0cmluZyxhdmF0YXI6U3RyaW5nLHRleHQ6QXJyYXksc3RhbXA6U3RyaW5nLHNpemU6U3RyaW5nfSxjb21wdXRlZDp7dGV4dENsYXNzOmZ1bmN0aW9uKCl7aWYodGhpcy50ZXh0Q29sb3IpcmV0dXJuXCJ0ZXh0LVwiK3RoaXMudGV4dENvbG9yfSxtZXNzYWdlQ2xhc3M6ZnVuY3Rpb24oKXtpZih0aGlzLmJnQ29sb3IpcmV0dXJuXCJ0ZXh0LVwiK3RoaXMuYmdDb2xvcn0sc2l6ZUNsYXNzOmZ1bmN0aW9uKCl7aWYodGhpcy5zaXplKXJldHVyblwiY29sLVwiK3RoaXMuc2l6ZX0sY2xhc3NlczpmdW5jdGlvbigpe3JldHVybntcInEtbWVzc2FnZS1zZW50XCI6dGhpcy5zZW50LFwicS1tZXNzYWdlLXJlY2VpdmVkXCI6IXRoaXMuc2VudH19fSxtZXRob2RzOntfX2dldFRleHQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy50ZXh0Lm1hcChmdW5jdGlvbihpLHMpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1tZXNzYWdlLXRleHRcIixjbGFzczplLm1lc3NhZ2VDbGFzc30sW3QoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicS1tZXNzYWdlLXRleHQtY29udGVudFwiLGNsYXNzOmUudGV4dENsYXNzfSxbdChcImRpdlwiLHtkb21Qcm9wczp7aW5uZXJIVE1MOml9fSksZS5zdGFtcD90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1tZXNzYWdlLXN0YW1wXCIsZG9tUHJvcHM6e2lubmVySFRNTDplLnN0YW1wfX0pOm51bGxdKV0pfSl9LF9fZ2V0TWVzc2FnZTpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbWVzc2FnZS10ZXh0XCIsY2xhc3M6dGhpcy5tZXNzYWdlQ2xhc3N9LFt0KFwic3BhblwiLHtzdGF0aWNDbGFzczpcInEtbWVzc2FnZS10ZXh0LWNvbnRlbnRcIixjbGFzczp0aGlzLnRleHRDbGFzc30sW3RoaXMuJHNsb3RzLmRlZmF1bHQsdGhpcy5zdGFtcD90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1tZXNzYWdlLXN0YW1wXCIsZG9tUHJvcHM6e2lubmVySFRNTDp0aGlzLnN0YW1wfX0pOm51bGxdKV0pfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1tZXNzYWdlXCIsY2xhc3M6dGhpcy5jbGFzc2VzfSxbdGhpcy5sYWJlbD90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1tZXNzYWdlLWxhYmVsIHRleHQtY2VudGVyXCIsZG9tUHJvcHM6e2lubmVySFRNTDp0aGlzLmxhYmVsfX0pOm51bGwsdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbWVzc2FnZS1jb250YWluZXIgcm93IGl0ZW1zLWVuZCBuby13cmFwXCJ9LFt0aGlzLiRzbG90cy5hdmF0YXJ8fCh0aGlzLmF2YXRhcj90KFwiaW1nXCIse3N0YXRpY0NsYXNzOlwicS1tZXNzYWdlLWF2YXRhciBjb2wtYXV0b1wiLGF0dHJzOntzcmM6dGhpcy5hdmF0YXJ9fSk6bnVsbCksdChcImRpdlwiLHtjbGFzczp0aGlzLnNpemVDbGFzc30sW3RoaXMubmFtZT90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1tZXNzYWdlLW5hbWVcIixkb21Qcm9wczp7aW5uZXJIVE1MOnRoaXMubmFtZX19KTpudWxsLHRoaXMudGV4dD90aGlzLl9fZ2V0VGV4dCh0KTpudWxsLHRoaXMuJHNsb3RzLmRlZmF1bHQ/dGhpcy5fX2dldE1lc3NhZ2UodCk6bnVsbF0pXSldKX19O2Z1bmN0aW9uIGdldERpcmVjdGlvbiQxKHQpe3ZhciBlPXt9O3JldHVybltcImxlZnRcIixcInJpZ2h0XCIsXCJ1cFwiLFwiZG93blwiLFwiaG9yaXpvbnRhbFwiLFwidmVydGljYWxcIl0uZm9yRWFjaChmdW5jdGlvbihpKXt0W2ldJiYoZVtpXT0hMCl9KSwwPT09T2JqZWN0LmtleXMoZSkubGVuZ3RoP3tsZWZ0OiEwLHJpZ2h0OiEwLHVwOiEwLGRvd246ITAsaG9yaXpvbnRhbDohMCx2ZXJ0aWNhbDohMH06KGUuaG9yaXpvbnRhbCYmKGUubGVmdD1lLnJpZ2h0PSEwKSxlLnZlcnRpY2FsJiYoZS51cD1lLmRvd249ITApLGUubGVmdCYmZS5yaWdodCYmKGUuaG9yaXpvbnRhbD0hMCksZS51cCYmZS5kb3duJiYoZS52ZXJ0aWNhbD0hMCksZSl9dmFyIFRvdWNoU3dpcGU9e25hbWU6XCJ0b3VjaC1zd2lwZVwiLGJpbmQ6ZnVuY3Rpb24odCxlKXt2YXIgaT0hZS5tb2RpZmllcnMubm9Nb3VzZSxzPXtoYW5kbGVyOmUudmFsdWUsdGhyZXNob2xkOnBhcnNlSW50KGUuYXJnLDEwKXx8MzAwLGRpcmVjdGlvbjpnZXREaXJlY3Rpb24kMShlLm1vZGlmaWVycyksbW91c2VTdGFydDpmdW5jdGlvbih0KXtsZWZ0Q2xpY2sodCkmJihkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIscy5tb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLHMubW91c2VFbmQpLHMuc3RhcnQodCkpfSxtb3VzZUVuZDpmdW5jdGlvbih0KXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIscy5tb3ZlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLHMubW91c2VFbmQpLHMuZW5kKHQpfSxzdGFydDpmdW5jdGlvbihlKXt2YXIgaT1wb3NpdGlvbihlKTtzLmV2ZW50PXt4OmkubGVmdCx5OmkudG9wLHRpbWU6KG5ldyBEYXRlKS5nZXRUaW1lKCksZGV0ZWN0ZWQ6ITEsYWJvcnQ6ITF9LHQuY2xhc3NMaXN0LmFkZChcInEtdG91Y2hcIil9LG1vdmU6ZnVuY3Rpb24odCl7aWYoIXMuZXZlbnQuYWJvcnQpaWYoKG5ldyBEYXRlKS5nZXRUaW1lKCktcy5ldmVudC50aW1lPnMudGhyZXNob2xkKXMuZXZlbnQuYWJvcnQ9ITA7ZWxzZXtpZihzLmV2ZW50LmRldGVjdGVkKXJldHVybiB0LnN0b3BQcm9wYWdhdGlvbigpLHZvaWQgdC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBlPXBvc2l0aW9uKHQpLGk9ZS5sZWZ0LXMuZXZlbnQueCxuPU1hdGguYWJzKGkpLG89ZS50b3Atcy5ldmVudC55LHI9TWF0aC5hYnMobyk7biE9PXImJihzLmV2ZW50LmRldGVjdGVkPSEwLHMuZXZlbnQuYWJvcnQ9IShzLmRpcmVjdGlvbi52ZXJ0aWNhbCYmbjxyfHxzLmRpcmVjdGlvbi5ob3Jpem9udGFsJiZuPnJ8fHMuZGlyZWN0aW9uLnVwJiZuPHImJm88MHx8cy5kaXJlY3Rpb24uZG93biYmbjxyJiZvPjB8fHMuZGlyZWN0aW9uLmxlZnQmJm4+ciYmaTwwfHxzLmRpcmVjdGlvbi5yaWdodCYmbj5yJiZpPjApLHMubW92ZSh0KSl9fSxlbmQ6ZnVuY3Rpb24oZSl7aWYodC5jbGFzc0xpc3QucmVtb3ZlKFwicS10b3VjaFwiKSwhcy5ldmVudC5hYm9ydCYmcy5ldmVudC5kZXRlY3RlZCl7dmFyIGk9KG5ldyBEYXRlKS5nZXRUaW1lKCktcy5ldmVudC50aW1lO2lmKCEoaT5zLnRocmVzaG9sZCkpe2Uuc3RvcFByb3BhZ2F0aW9uKCksZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBuLG89cG9zaXRpb24oZSkscj1vLmxlZnQtcy5ldmVudC54LGE9TWF0aC5hYnMociksbD1vLnRvcC1zLmV2ZW50LnksYz1NYXRoLmFicyhsKTtpZihhPj1jKXtpZihhPDUwKXJldHVybjtuPXI8MD9cImxlZnRcIjpcInJpZ2h0XCJ9ZWxzZXtpZihjPDUwKXJldHVybjtuPWw8MD9cInVwXCI6XCJkb3duXCJ9cy5kaXJlY3Rpb25bbl0mJnMuaGFuZGxlcih7ZXZ0OmUsZGlyZWN0aW9uOm4sZHVyYXRpb246aSxkaXN0YW5jZTp7eDphLHk6Y319KX19fX07dC5fX3F0b3VjaHN3aXBlPXMsaSYmdC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIscy5tb3VzZVN0YXJ0KSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIscy5zdGFydCksdC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2htb3ZlXCIscy5tb3ZlKSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLHMuZW5kKX0sdXBkYXRlOmZ1bmN0aW9uKHQsZSl7ZS5vbGRWYWx1ZSE9PWUudmFsdWUmJih0Ll9fcXRvdWNoc3dpcGUuaGFuZGxlcj1lLnZhbHVlKX0sdW5iaW5kOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dC5fX3F0b3VjaHN3aXBlO2kmJih0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIixpLm1vdXNlU3RhcnQpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIixpLnN0YXJ0KSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIixpLm1vdmUpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoZW5kXCIsaS5lbmQpLGRlbGV0ZSB0Ll9fcXRvdWNoc3dpcGUpfX0sQ2hlY2tib3hNaXhpbj17ZGlyZWN0aXZlczp7VG91Y2hTd2lwZTpUb3VjaFN3aXBlfSxwcm9wczp7dmFsOnt9LHRydWVWYWx1ZTp7ZGVmYXVsdDohMH0sZmFsc2VWYWx1ZTp7ZGVmYXVsdDohMX19LGNvbXB1dGVkOntpc1RydWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tb2RlbElzQXJyYXk/dGhpcy5pbmRleD4tMTp0aGlzLnZhbHVlPT09dGhpcy50cnVlVmFsdWV9LGlzRmFsc2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tb2RlbElzQXJyYXk/LTE9PT10aGlzLmluZGV4OnRoaXMudmFsdWU9PT10aGlzLmZhbHNlVmFsdWV9LGluZGV4OmZ1bmN0aW9uKCl7aWYodGhpcy5tb2RlbElzQXJyYXkpcmV0dXJuIHRoaXMudmFsdWUuaW5kZXhPZih0aGlzLnZhbCl9LG1vZGVsSXNBcnJheTpmdW5jdGlvbigpe3JldHVybiBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpfX0sbWV0aG9kczp7dG9nZ2xlOmZ1bmN0aW9uKHQsZSl7dmFyIGk7KHZvaWQgMD09PWUmJihlPSEwKSx0aGlzLmRpc2FibGV8fHRoaXMucmVhZG9ubHkpfHwodCYmc3RvcEFuZFByZXZlbnQodCksZSYmdGhpcy4kZWwuYmx1cigpLHRoaXMubW9kZWxJc0FycmF5P3RoaXMuaXNUcnVlPyhpPXRoaXMudmFsdWUuc2xpY2UoKSkuc3BsaWNlKHRoaXMuaW5kZXgsMSk6aT10aGlzLnZhbHVlLmNvbmNhdCh0aGlzLnZhbCk6aT10aGlzLmlzVHJ1ZT90aGlzLnRvZ2dsZUluZGV0ZXJtaW5hdGU/dGhpcy5pbmRldGVybWluYXRlVmFsdWU6dGhpcy5mYWxzZVZhbHVlOnRoaXMuaXNGYWxzZT90aGlzLnRydWVWYWx1ZTp0aGlzLmZhbHNlVmFsdWUsdGhpcy5fX3VwZGF0ZShpKSl9fX0sT3B0aW9uTWl4aW49e3Byb3BzOnt2YWx1ZTp7cmVxdWlyZWQ6ITB9LGxhYmVsOlN0cmluZyxsZWZ0TGFiZWw6Qm9vbGVhbixjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInByaW1hcnlcIn0sa2VlcENvbG9yOkJvb2xlYW4sZGFyazpCb29sZWFuLGRpc2FibGU6Qm9vbGVhbixyZWFkb25seTpCb29sZWFuLG5vRm9jdXM6Qm9vbGVhbixjaGVja2VkSWNvbjpTdHJpbmcsdW5jaGVja2VkSWNvbjpTdHJpbmd9LGNvbXB1dGVkOntjbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJuW3RoaXMuX19rZWJhYlRhZyx7ZGlzYWJsZWQ6dGhpcy5kaXNhYmxlLHJldmVyc2U6dGhpcy5sZWZ0TGFiZWwsXCJxLWZvY3VzYWJsZVwiOnRoaXMuZm9jdXNhYmxlfV19LGlubmVyQ2xhc3NlczpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVHJ1ZXx8dGhpcy5pc0luZGV0ZXJtaW5hdGU/W1wiYWN0aXZlXCIsXCJ0ZXh0LVwiK3RoaXMuY29sb3JdOlwidGV4dC1cIisodGhpcy5rZWVwQ29sb3I/dGhpcy5jb2xvcjp0aGlzLmRhcms/XCJsaWdodFwiOlwiZmFkZWRcIil9LGZvY3VzYWJsZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLm5vRm9jdXMmJiF0aGlzLmRpc2FibGUmJiF0aGlzLnJlYWRvbmx5fSx0YWJpbmRleDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZvY3VzYWJsZT8wOi0xfX0sbWV0aG9kczp7X191cGRhdGU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPXRoaXMuJHJlZnMucmlwcGxlO2kmJihpLmNsYXNzTGlzdC5hZGQoXCJhY3RpdmVcIiksc2V0VGltZW91dChmdW5jdGlvbigpe2kuY2xhc3NMaXN0LnJlbW92ZShcImFjdGl2ZVwiKX0sMTApKSx0aGlzLiRlbWl0KFwiaW5wdXRcIix0KSx0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe0pTT04uc3RyaW5naWZ5KHQpIT09SlNPTi5zdHJpbmdpZnkoZS52YWx1ZSkmJmUuJGVtaXQoXCJjaGFuZ2VcIix0KX0pfSxfX2hhbmRsZUtleURvd246ZnVuY3Rpb24odCl7WzEzLDMyXS5pbmNsdWRlcyhnZXRFdmVudEtleSh0KSkmJnRoaXMudG9nZ2xlKHQsITEpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLW9wdGlvbiBjdXJzb3ItcG9pbnRlciBuby1vdXRsaW5lIHJvdyBpbmxpbmUgbm8td3JhcCBpdGVtcy1jZW50ZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e3RhYmluZGV4OnRoaXMudGFiaW5kZXh9LG9uOntjbGljazp0aGlzLnRvZ2dsZSxmb2N1czpmdW5jdGlvbigpe2UuJGVtaXQoXCJmb2N1c1wiKX0sYmx1cjpmdW5jdGlvbigpe2UuJGVtaXQoXCJibHVyXCIpfSxrZXlkb3duOnRoaXMuX19oYW5kbGVLZXlEb3dufSxkaXJlY3RpdmVzOlwicS10b2dnbGVcIiE9PXRoaXMuX19rZWJhYlRhZ3x8dGhpcy5kaXNhYmxlfHx0aGlzLnJlYWRvbmx5P251bGw6W3tuYW1lOlwidG91Y2gtc3dpcGVcIixtb2RpZmllcnM6e2hvcml6b250YWw6ITB9LHZhbHVlOnRoaXMuX19zd2lwZX1dfSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtb3B0aW9uLWlubmVyIHJlbGF0aXZlLXBvc2l0aW9uXCIsY2xhc3M6dGhpcy5pbm5lckNsYXNzZXN9LFt0KFwiaW5wdXRcIix7YXR0cnM6e3R5cGU6XCJjaGVja2JveFwifSxvbjp7Y2hhbmdlOnRoaXMudG9nZ2xlfX0pLHRoaXMuJHEucGxhdGZvcm0uaXMuZGVza3RvcD90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1mb2N1cy1oZWxwZXJcIixjbGFzczpcInEtcmFkaW9cIj09PXRoaXMuX19rZWJhYlRhZz9cInEtZm9jdXMtaGVscGVyLXJvdW5kXCI6XCJxLWZvY3VzLWhlbHBlci1yb3VuZGVkXCJ9KTpudWxsLHRoaXMuX19nZXRDb250ZW50KHQpXSksdGhpcy5sYWJlbD90KFwic3BhblwiLHtzdGF0aWNDbGFzczpcInEtb3B0aW9uLWxhYmVsXCIsZG9tUHJvcHM6e2lubmVySFRNTDp0aGlzLmxhYmVsfX0pOm51bGwsdGhpcy4kc2xvdHMuZGVmYXVsdF0pfX0sUUNoZWNrYm94PXtuYW1lOlwiUUNoZWNrYm94XCIsbWl4aW5zOltDaGVja2JveE1peGluLE9wdGlvbk1peGluXSxwcm9wczp7dG9nZ2xlSW5kZXRlcm1pbmF0ZTpCb29sZWFuLGluZGV0ZXJtaW5hdGVWYWx1ZTp7ZGVmYXVsdDpudWxsfSxpbmRldGVybWluYXRlSWNvbjpTdHJpbmd9LGNvbXB1dGVkOntpc0luZGV0ZXJtaW5hdGU6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09dGhpcy52YWx1ZXx8dGhpcy52YWx1ZT09PXRoaXMuaW5kZXRlcm1pbmF0ZVZhbHVlfSxjaGVja2VkU3R5bGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1RydWU/e3RyYW5zaXRpb246XCJvcGFjaXR5IDBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSkgMG1zLCB0cmFuc2Zvcm0gODAwbXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpIDBtc1wiLG9wYWNpdHk6MSx0cmFuc2Zvcm06XCJzY2FsZSgxKVwifTp7dHJhbnNpdGlvbjpcIm9wYWNpdHkgNDUwbXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpIDBtcywgdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSkgNDUwbXNcIixvcGFjaXR5OjAsdHJhbnNmb3JtOlwic2NhbGUoMClcIn19LGluZGV0ZXJtaW5hdGVTdHlsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5kZXRlcm1pbmF0ZT97dHJhbnNpdGlvbjpcIm9wYWNpdHkgMG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSAwbXMsIHRyYW5zZm9ybSA4MDBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSkgMG1zXCIsb3BhY2l0eToxLHRyYW5zZm9ybTpcInNjYWxlKDEpXCJ9Ont0cmFuc2l0aW9uOlwib3BhY2l0eSA0NTBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSkgMG1zLCB0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSA0NTBtc1wiLG9wYWNpdHk6MCx0cmFuc2Zvcm06XCJzY2FsZSgwKVwifX0sdW5jaGVja2VkU3R5bGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0ZhbHNlP3tvcGFjaXR5OjF9Ont0cmFuc2l0aW9uOlwib3BhY2l0eSA2NTBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSkgMTUwbXNcIixvcGFjaXR5OjB9fX0sbWV0aG9kczp7X19nZXRDb250ZW50OmZ1bmN0aW9uKHQpe3JldHVyblt0KFFJY29uLHtzdGF0aWNDbGFzczpcInEtY2hlY2tib3gtaWNvbiBjdXJzb3ItcG9pbnRlclwiLHByb3BzOntuYW1lOnRoaXMudW5jaGVja2VkSWNvbnx8dGhpcy4kcS5pY29uLmNoZWNrYm94LnVuY2hlY2tlZC5tYXR9LHN0eWxlOnRoaXMudW5jaGVja2VkU3R5bGV9KSx0KFFJY29uLHtzdGF0aWNDbGFzczpcInEtY2hlY2tib3gtaWNvbiBjdXJzb3ItcG9pbnRlciBhYnNvbHV0ZS1mdWxsXCIscHJvcHM6e25hbWU6dGhpcy5pbmRldGVybWluYXRlSWNvbnx8dGhpcy4kcS5pY29uLmNoZWNrYm94LmluZGV0ZXJtaW5hdGUubWF0fSxzdHlsZTp0aGlzLmluZGV0ZXJtaW5hdGVTdHlsZX0pLHQoUUljb24se3N0YXRpY0NsYXNzOlwicS1jaGVja2JveC1pY29uIGN1cnNvci1wb2ludGVyIGFic29sdXRlLWZ1bGxcIixwcm9wczp7bmFtZTp0aGlzLmNoZWNrZWRJY29ufHx0aGlzLiRxLmljb24uY2hlY2tib3guY2hlY2tlZC5tYXR9LHN0eWxlOnRoaXMuY2hlY2tlZFN0eWxlfSksdChcImRpdlwiLHtyZWY6XCJyaXBwbGVcIixzdGF0aWNDbGFzczpcInEtcmFkaWFsLXJpcHBsZVwifSldfX0sYmVmb3JlQ3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5fX2tlYmFiVGFnPVwicS1jaGVja2JveFwifX0sUUNoaXA9e25hbWU6XCJRQ2hpcFwiLHByb3BzOntzbWFsbDpCb29sZWFuLGRlbnNlOkJvb2xlYW4sdGFnOkJvb2xlYW4sc3F1YXJlOkJvb2xlYW4sZmxvYXRpbmc6Qm9vbGVhbixwb2ludGluZzp7dHlwZTpTdHJpbmcsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcInVwXCIsXCJyaWdodFwiLFwiZG93blwiLFwibGVmdFwiXS5pbmNsdWRlcyh0KX19LGNvbG9yOlN0cmluZyx0ZXh0Q29sb3I6U3RyaW5nLGljb246U3RyaW5nLGljb25SaWdodDpTdHJpbmcsYXZhdGFyOlN0cmluZyxjbG9zYWJsZTpCb29sZWFuLGRldGFpbDpCb29sZWFufSxjb21wdXRlZDp7Y2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1bXTtyZXR1cm4gdGhpcy5wb2ludGluZyYmZS5wdXNoKFwicS1jaGlwLXBvaW50aW5nLVwiK3RoaXMucG9pbnRpbmcpLFtcInRhZ1wiLFwic3F1YXJlXCIsXCJmbG9hdGluZ1wiLFwicG9pbnRpbmdcIixcInNtYWxsXCIsXCJkZW5zZVwiXS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3RbaV0mJmUucHVzaChcInEtY2hpcC1cIitpKX0pLHRoaXMuZmxvYXRpbmcmJighdGhpcy5kZW5zZSYmZS5wdXNoKFwicS1jaGlwLWRlbnNlXCIpLCF0aGlzLnNxdWFyZSYmZS5wdXNoKFwicS1jaGlwLXNxdWFyZVwiKSksdGhpcy5jb2xvciYmKGUucHVzaChcImJnLVwiK3RoaXMuY29sb3IpLCF0aGlzLnRleHRDb2xvciYmZS5wdXNoKFwidGV4dC13aGl0ZVwiKSksdGhpcy50ZXh0Q29sb3ImJmUucHVzaChcInRleHQtXCIrdGhpcy50ZXh0Q29sb3IpLGV9fSxtZXRob2RzOntfX29uQ2xpY2s6ZnVuY3Rpb24odCl7dGhpcy4kZW1pdChcImNsaWNrXCIsdCl9LF9fb25Nb3VzZURvd246ZnVuY3Rpb24odCl7dGhpcy4kZW1pdChcImZvY3VzXCIsdCl9LF9faGFuZGxlS2V5RG93bjpmdW5jdGlvbih0KXt0aGlzLmNsb3NhYmxlJiZbOCwxMywzMl0uaW5jbHVkZXMoZ2V0RXZlbnRLZXkodCkpJiYoc3RvcEFuZFByZXZlbnQodCksdGhpcy4kZW1pdChcImhpZGVcIikpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNoaXAgcm93IG5vLXdyYXAgaW5saW5lIGl0ZW1zLWNlbnRlclwiLGNsYXNzOnRoaXMuY2xhc3Nlcyxvbjp7bW91c2Vkb3duOnRoaXMuX19vbk1vdXNlRG93bix0b3VjaHN0YXJ0OnRoaXMuX19vbk1vdXNlRG93bixjbGljazp0aGlzLl9fb25DbGljayxrZXlkb3duOnRoaXMuX19oYW5kbGVLZXlEb3dufX0sW3RoaXMuaWNvbnx8dGhpcy5hdmF0YXI/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2hpcC1zaWRlIHEtY2hpcC1sZWZ0IHJvdyBmbGV4LWNlbnRlclwiLGNsYXNzOntcInEtY2hpcC1kZXRhaWxcIjp0aGlzLmRldGFpbH19LFt0aGlzLmljb24/dChRSWNvbix7c3RhdGljQ2xhc3M6XCJxLWNoaXAtaWNvblwiLHByb3BzOntuYW1lOnRoaXMuaWNvbn19KTp0aGlzLmF2YXRhcj90KFwiaW1nXCIse2F0dHJzOntzcmM6dGhpcy5hdmF0YXJ9fSk6bnVsbF0pOm51bGwsdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2hpcC1tYWluIGVsbGlwc2lzIHEtcG9wdXAtLXNraXBcIn0sdGhpcy4kc2xvdHMuZGVmYXVsdCksdGhpcy5pY29uUmlnaHQ/dChRSWNvbix7cHJvcHM6e25hbWU6dGhpcy5pY29uUmlnaHR9LGNsYXNzOnRoaXMuY2xvc2FibGU/XCJvbi1yaWdodCBxLWNoaXAtaWNvblwiOlwicS1jaGlwLXNpZGUgcS1jaGlwLXJpZ2h0XCJ9KTpudWxsLHRoaXMuY2xvc2FibGU/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2hpcC1zaWRlIHEtY2hpcC1jbG9zZSBxLWNoaXAtcmlnaHQgcm93IGZsZXgtY2VudGVyXCJ9LFt0KFFJY29uLHtwcm9wczp7bmFtZTp0aGlzLiRxLmljb24uY2hpcC5jbG9zZX0sc3RhdGljQ2xhc3M6XCJjdXJzb3ItcG9pbnRlclwiLG5hdGl2ZU9uOntjbGljazpmdW5jdGlvbih0KXt0JiZ0LnN0b3BQcm9wYWdhdGlvbigpLGUuJGVtaXQoXCJoaWRlXCIpfX19KV0pOm51bGxdKX19LG1hcmdpbmFsPXt0eXBlOkFycmF5LHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4gdC5ldmVyeShmdW5jdGlvbih0KXtyZXR1cm5cImljb25cImluIHR9KX19LEZyYW1lTWl4aW49e21peGluczpbQWxpZ25NaXhpbl0scHJvcHM6e3ByZWZpeDpTdHJpbmcsc3VmZml4OlN0cmluZyxzdGFja0xhYmVsOlN0cmluZyxmbG9hdExhYmVsOlN0cmluZyxwbGFjZWhvbGRlcjpTdHJpbmcsZXJyb3I6Qm9vbGVhbix3YXJuaW5nOkJvb2xlYW4sZGlzYWJsZTpCb29sZWFuLHJlYWRvbmx5OkJvb2xlYW4sY2xlYXJhYmxlOkJvb2xlYW4sY29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJwcmltYXJ5XCJ9LGFsaWduOntkZWZhdWx0OlwibGVmdFwifSxkYXJrOkJvb2xlYW4sYmVmb3JlOm1hcmdpbmFsLGFmdGVyOm1hcmdpbmFsLGludmVydGVkOkJvb2xlYW4saW52ZXJ0ZWRMaWdodDpCb29sZWFuLGhpZGVVbmRlcmxpbmU6Qm9vbGVhbixjbGVhclZhbHVlOnt9LG5vUGFyZW50RmllbGQ6Qm9vbGVhbn0sY29tcHV0ZWQ6e2lucHV0UGxhY2Vob2xkZXI6ZnVuY3Rpb24oKXtpZighdGhpcy5mbG9hdExhYmVsJiYhdGhpcy5zdGFja0xhYmVsfHx0aGlzLmxhYmVsSXNBYm92ZSlyZXR1cm4gdGhpcy5wbGFjZWhvbGRlcn0saXNJbnZlcnRlZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmludmVydGVkfHx0aGlzLmludmVydGVkTGlnaHR9LGlzSW52ZXJ0ZWRMaWdodDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW52ZXJ0ZWQmJih0aGlzLmludmVydGVkTGlnaHQmJiF0aGlzLmhhc0Vycm9yfHx0aGlzLmludmVydGVkJiZ0aGlzLmhhc1dhcm5pbmcpfSxpc1N0YW5kYXJkOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaXNJbnZlcnRlZH0saXNIaWRlVW5kZXJsaW5lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNTdGFuZGFyZCYmdGhpcy5oaWRlVW5kZXJsaW5lfSxsYWJlbElzQWJvdmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mb2N1c2VkfHx0aGlzLmxlbmd0aHx8dGhpcy5hZGRpdGlvbmFsTGVuZ3RofHx0aGlzLnN0YWNrTGFiZWx9LGhhc0NvbnRlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGg+MHx8dGhpcy5hZGRpdGlvbmFsTGVuZ3RoPjB8fHRoaXMucGxhY2Vob2xkZXJ8fDA9PT10aGlzLnBsYWNlaG9sZGVyfSxlZGl0YWJsZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLmRpc2FibGUmJiF0aGlzLnJlYWRvbmx5fSxjb21wdXRlZENsZWFyVmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09dGhpcy5jbGVhclZhbHVlP251bGw6dGhpcy5jbGVhclZhbHVlfSxpc0NsZWFyYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkaXRhYmxlJiZ0aGlzLmNsZWFyYWJsZSYmdGhpcy5jb21wdXRlZENsZWFyVmFsdWUhPT10aGlzLm1vZGVsfSxoYXNFcnJvcjpmdW5jdGlvbigpe3JldHVybiEhKCF0aGlzLm5vUGFyZW50RmllbGQmJnRoaXMuZmllbGQmJnRoaXMuZmllbGQuZXJyb3J8fHRoaXMuZXJyb3IpfSxoYXNXYXJuaW5nOmZ1bmN0aW9uKCl7cmV0dXJuISh0aGlzLmhhc0Vycm9yfHwhKCF0aGlzLm5vUGFyZW50RmllbGQmJnRoaXMuZmllbGQmJnRoaXMuZmllbGQud2FybmluZ3x8dGhpcy53YXJuaW5nKSl9LGZha2VJbnB1dFZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWN0dWFsVmFsdWV8fDA9PT10aGlzLmFjdHVhbFZhbHVlP3RoaXMuYWN0dWFsVmFsdWU6dGhpcy5wbGFjZWhvbGRlcnx8MD09PXRoaXMucGxhY2Vob2xkZXI/dGhpcy5wbGFjZWhvbGRlcjpcIlwifSxmYWtlSW5wdXRDbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5hY3R1YWxWYWx1ZXx8MD09PXRoaXMuYWN0dWFsVmFsdWU7cmV0dXJuW3RoaXMuYWxpZ25DbGFzcyx7aW52aXNpYmxlOih0aGlzLnN0YWNrTGFiZWx8fHRoaXMuZmxvYXRMYWJlbCkmJiF0aGlzLmxhYmVsSXNBYm92ZSYmIXQsXCJxLWlucHV0LXRhcmdldC1wbGFjZWhvbGRlclwiOiF0JiZ0aGlzLmlucHV0UGxhY2Vob2xkZXJ9XX19LG1ldGhvZHM6e2NsZWFyOmZ1bmN0aW9uKHQpe2lmKHRoaXMuZWRpdGFibGUpe3QmJnN0b3BBbmRQcmV2ZW50KHQpO3ZhciBlPXRoaXMuY29tcHV0ZWRDbGVhclZhbHVlO3RoaXMuX19zZXRNb2RlbCYmdGhpcy5fX3NldE1vZGVsKGUsITApLHRoaXMuJGVtaXQoXCJjbGVhclwiLGUpfX19fSxJbnB1dE1peGluPXtwcm9wczp7YXV0b2ZvY3VzOltCb29sZWFuLFN0cmluZ10sbWF4SGVpZ2h0Ok51bWJlcixsb2FkaW5nOkJvb2xlYW59LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57Zm9jdXNlZDohMSx0aW1lcjpudWxsLGlzTnVtYmVyRXJyb3I6ITEsaXNOZWdaZXJvOiExfX0sbWV0aG9kczp7Zm9jdXM6ZnVuY3Rpb24oKXt0aGlzLmRpc2FibGV8fHRoaXMuJHJlZnMuaW5wdXQuZm9jdXMoKX0sYmx1cjpmdW5jdGlvbigpe3RoaXMuJHJlZnMuaW5wdXQmJnRoaXMuJHJlZnMuaW5wdXQuYmx1cigpfSxzZWxlY3Q6ZnVuY3Rpb24oKXt0aGlzLiRyZWZzLmlucHV0LnNlbGVjdCgpfSxfX29uRm9jdXM6ZnVuY3Rpb24odCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuZm9jdXNlZHx8KHRoaXMuZm9jdXNlZD0hMCx0aGlzLiRyZWZzLmlucHV0JiZ0aGlzLiRyZWZzLmlucHV0LmZvY3VzKCksdGhpcy4kZW1pdChcImZvY3VzXCIsdCkpfSxfX29uSW5wdXRCbHVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMudGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe2UuX19vbkJsdXIodCl9LDIwMCl9LF9fb25CbHVyOmZ1bmN0aW9uKHQsZSl7dGhpcy5mb2N1c2VkJiYodGhpcy5mb2N1c2VkPSExLHRoaXMuJGVtaXQoXCJibHVyXCIsdCkpLHRoaXMuX19lbWl0KGUpfSxfX2VtaXQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPXRoaXMuaXNOdW1iZXImJnRoaXMuaXNOdW1iZXJFcnJvcixzPWk/dGhpcy5pc05lZ1plcm8/LTA6bnVsbDp0aGlzLm1vZGVsO3RoaXMuaXNOdW1iZXImJih0aGlzLm1vZGVsPXRoaXMudmFsdWUpLGkmJnRoaXMuJGVtaXQoXCJpbnB1dFwiLHMpO3ZhciBuPWZ1bmN0aW9uKCl7ZS5pc051bWJlcj8ocz1wYXJzZUZsb2F0KHMpLE51bWJlci5pc0ludGVnZXIoZS5kZWNpbWFscykmJihzPXBhcnNlRmxvYXQocy50b0ZpeGVkKGUuZGVjaW1hbHMpKSksU3RyaW5nKDEvcykhPT1TdHJpbmcoMS9lLnZhbHVlKSYmZS4kZW1pdChcImNoYW5nZVwiLHMpKTpKU09OLnN0cmluZ2lmeShzKSE9PUpTT04uc3RyaW5naWZ5KGUudmFsdWUpJiZlLiRlbWl0KFwiY2hhbmdlXCIscyl9O3Q/bigpOnRoaXMuJG5leHRUaWNrKG4pfSxfX29uS2V5ZG93bjpmdW5jdGlvbih0KXsxMz09PXQua2V5Q29kZSYmKFwidGV4dGFyZWFcIj09PXRoaXMudHlwZT90LnN0b3BQcm9wYWdhdGlvbigpOnRoaXMuX19lbWl0KCkpLHRoaXMuJGVtaXQoXCJrZXlkb3duXCIsdCl9LF9fb25LZXl1cDpmdW5jdGlvbih0KXt0aGlzLiRlbWl0KFwia2V5dXBcIix0KX0sX19vbkNsaWNrOmZ1bmN0aW9uKHQpe3RoaXMuZm9jdXMoKSx0aGlzLiRlbWl0KFwiY2xpY2tcIix0KX0sX19vblBhc3RlOmZ1bmN0aW9uKHQpe3RoaXMuJGVtaXQoXCJwYXN0ZVwiLHQpfX0sbW91bnRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt2YXIgZT10LiRyZWZzLmlucHV0O3QuYXV0b2ZvY3VzJiZlJiYoZS5mb2N1cygpLFwic2VsZWN0XCI9PT10LmF1dG9mb2N1cyYmZS5zZWxlY3QoKSl9KX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLmZvY3VzZWQmJnRoaXMuX19vbkJsdXIodm9pZCAwLCEwKX19LFBhcmVudEZpZWxkTWl4aW49e2luamVjdDp7ZmllbGQ6e2Zyb206XCJfX2ZpZWxkXCIsZGVmYXVsdDpudWxsfX0scHJvcHM6e25vUGFyZW50RmllbGQ6Qm9vbGVhbn0sd2F0Y2g6e25vUGFyZW50RmllbGQ6ZnVuY3Rpb24odCl7dGhpcy5maWVsZCYmdGhpcy5maWVsZFt0P1wiX19yZWdpc3RlcklucHV0XCI6XCJfX3VucmVnaXN0ZXJJbnB1dFwiXSh0aGlzKX19LGJlZm9yZU1vdW50OmZ1bmN0aW9uKCl7IXRoaXMubm9QYXJlbnRGaWVsZCYmdGhpcy5maWVsZCYmdGhpcy5maWVsZC5fX3JlZ2lzdGVySW5wdXQodGhpcyl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXshdGhpcy5ub1BhcmVudEZpZWxkJiZ0aGlzLmZpZWxkJiZ0aGlzLmZpZWxkLl9fdW5yZWdpc3RlcklucHV0KHRoaXMpfX0sUUlucHV0RnJhbWU9e25hbWU6XCJRSW5wdXRGcmFtZVwiLG1peGluczpbRnJhbWVNaXhpbixQYXJlbnRGaWVsZE1peGluXSxwcm9wczp7Zm9jdXNlZDpCb29sZWFuLGxlbmd0aDpOdW1iZXIsZm9jdXNhYmxlOkJvb2xlYW4sYWRkaXRpb25hbExlbmd0aDpCb29sZWFufSxjb21wdXRlZDp7aGFzU3RhY2tMYWJlbDpmdW5jdGlvbigpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0aGlzLnN0YWNrTGFiZWwmJnRoaXMuc3RhY2tMYWJlbC5sZW5ndGg+MH0saGFzTGFiZWw6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNTdGFja0xhYmVsfHxcInN0cmluZ1wiPT10eXBlb2YgdGhpcy5mbG9hdExhYmVsJiZ0aGlzLmZsb2F0TGFiZWwubGVuZ3RoPjB9LGxhYmVsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGFzU3RhY2tMYWJlbD90aGlzLnN0YWNrTGFiZWw6dGhpcy5mbG9hdExhYmVsfSxhZGRvbkNsYXNzOmZ1bmN0aW9uKCl7cmV0dXJue1wicS1pZi1hZGRvbi12aXNpYmxlXCI6IXRoaXMuaGFzTGFiZWx8fHRoaXMubGFiZWxJc0Fib3ZlfX0sY2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PVt7XCJxLWlmLWhhcy1sYWJlbFwiOnRoaXMubGFiZWwsXCJxLWlmLWZvY3VzZWRcIjp0aGlzLmZvY3VzZWQsXCJxLWlmLWVycm9yXCI6dGhpcy5oYXNFcnJvcixcInEtaWYtd2FybmluZ1wiOnRoaXMuaGFzV2FybmluZyxcInEtaWYtZGlzYWJsZWRcIjp0aGlzLmRpc2FibGUsXCJxLWlmLXJlYWRvbmx5XCI6dGhpcy5yZWFkb25seSxcInEtaWYtZm9jdXNhYmxlXCI6dGhpcy5mb2N1c2FibGUmJiF0aGlzLmRpc2FibGUsXCJxLWlmLWludmVydGVkXCI6dGhpcy5pc0ludmVydGVkLFwicS1pZi1pbnZlcnRlZC1saWdodFwiOnRoaXMuaXNJbnZlcnRlZExpZ2h0LFwicS1pZi1saWdodC1jb2xvclwiOnRoaXMubGlnaHRDb2xvcixcInEtaWYtZGFya1wiOnRoaXMuZGFyayxcInEtaWYtaGlkZS11bmRlcmxpbmVcIjp0aGlzLmlzSGlkZVVuZGVybGluZSxcInEtaWYtc3RhbmRhcmRcIjp0aGlzLmlzU3RhbmRhcmQsXCJxLWlmLWhhcy1jb250ZW50XCI6dGhpcy5oYXNDb250ZW50fV0sZT10aGlzLmhhc0Vycm9yP1wibmVnYXRpdmVcIjp0aGlzLmhhc1dhcm5pbmc/XCJ3YXJuaW5nXCI6dGhpcy5jb2xvcjtyZXR1cm4gdGhpcy5pc0ludmVydGVkPyh0LnB1c2goXCJiZy1cIitlKSx0LnB1c2goXCJ0ZXh0LVwiKyh0aGlzLmlzSW52ZXJ0ZWRMaWdodD9cImJsYWNrXCI6XCJ3aGl0ZVwiKSkpOmUmJnQucHVzaChcInRleHQtXCIrZSksdH19LG1ldGhvZHM6e19fb25DbGljazpmdW5jdGlvbih0KXt0aGlzLiRlbWl0KFwiY2xpY2tcIix0KX0sX19vbk1vdXNlRG93bjpmdW5jdGlvbih0KXt2YXIgZT10aGlzOyF0aGlzLmRpc2FibGUmJnRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7cmV0dXJuIGUuJGVtaXQoXCJmb2N1c1wiLHQpfSl9LF9fYWRkaXRpb25hbEhpZGRlbjpmdW5jdGlvbih0LGUsaSxzKXtyZXR1cm4gdm9pZCAwIT09dC5jb25kaXRpb24/ITE9PT10LmNvbmRpdGlvbjp2b2lkIDAhPT10LmNvbnRlbnQmJiF0LmNvbnRlbnQ9PXM+MHx8dm9pZCAwIT09dC5lcnJvciYmIXQuZXJyb3I9PT1lfHx2b2lkIDAhPT10Lndhcm5pbmcmJiF0Lndhcm5pbmc9PT1pfSxfX2JhSGFuZGxlcjpmdW5jdGlvbih0LGUpe2UuYWxsb3dQcm9wYWdhdGlvbnx8dC5zdG9wUHJvcGFnYXRpb24oKSxlLmhhbmRsZXImJmUuaGFuZGxlcih0KX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1pZiByb3cgbm8td3JhcCByZWxhdGl2ZS1wb3NpdGlvblwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7dGFiaW5kZXg6dGhpcy5mb2N1c2FibGUmJiF0aGlzLmRpc2FibGU/MDotMX0sb246e2NsaWNrOnRoaXMuX19vbkNsaWNrfX0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWlmLWJhc2VsaW5lXCJ9LFwifFwiKSx0aGlzLmJlZm9yZSYmdGhpcy5iZWZvcmUubWFwKGZ1bmN0aW9uKGkpe3JldHVybiB0KFFJY29uLHtrZXk6XCJiXCIraS5pY29uLHN0YXRpY0NsYXNzOlwicS1pZi1jb250cm9sIHEtaWYtY29udHJvbC1iZWZvcmVcIixjbGFzczpbaS5jbGFzcyx7aGlkZGVuOmUuX19hZGRpdGlvbmFsSGlkZGVuKGksZS5oYXNFcnJvcixlLmhhc1dhcm5pbmcsZS5sZW5ndGgpfV0scHJvcHM6e25hbWU6aS5pY29ufSxuYXRpdmVPbjp7bW91c2Vkb3duOmUuX19vbk1vdXNlRG93bix0b3VjaHN0YXJ0OmUuX19vbk1vdXNlRG93bixjbGljazpmdW5jdGlvbih0KXtlLl9fYmFIYW5kbGVyKHQsaSl9fX0pfSl8fHZvaWQgMCx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1pZi1pbm5lciBjb2wgY29sdW1uIHEtcG9wdXAtLXNraXBcIn0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJyb3cgbm8td3JhcCByZWxhdGl2ZS1wb3NpdGlvblwifSxbdGhpcy5wcmVmaXgmJnQoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicS1pZi1hZGRvbiBxLWlmLWFkZG9uLWxlZnRcIixjbGFzczp0aGlzLmFkZG9uQ2xhc3MsZG9tUHJvcHM6e2lubmVySFRNTDp0aGlzLnByZWZpeH19KXx8dm9pZCAwLHRoaXMuaGFzTGFiZWwmJnQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWlmLWxhYmVsXCIsY2xhc3M6e1wicS1pZi1sYWJlbC1hYm92ZVwiOnRoaXMubGFiZWxJc0Fib3ZlfX0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWlmLWxhYmVsLWlubmVyIGVsbGlwc2lzXCIsZG9tUHJvcHM6e2lubmVySFRNTDp0aGlzLmxhYmVsfX0pXSl8fHZvaWQgMF0uY29uY2F0KHRoaXMuJHNsb3RzLmRlZmF1bHQpLmNvbmNhdChbdGhpcy5zdWZmaXgmJnQoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicS1pZi1hZGRvbiBxLWlmLWFkZG9uLXJpZ2h0XCIsY2xhc3M6dGhpcy5hZGRvbkNsYXNzLGRvbVByb3BzOntpbm5lckhUTUw6dGhpcy5zdWZmaXh9fSl8fHZvaWQgMF0pKSx0aGlzLmhhc0xhYmVsJiZ0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1pZi1sYWJlbC1zcGFjZXJcIixkb21Qcm9wczp7aW5uZXJIVE1MOnRoaXMubGFiZWx9fSl8fHZvaWQgMF0pLHRoaXMuYWZ0ZXImJnRoaXMuYWZ0ZXIubWFwKGZ1bmN0aW9uKGkpe3JldHVybiB0KFFJY29uLHtrZXk6XCJhXCIraS5pY29uLHN0YXRpY0NsYXNzOlwicS1pZi1jb250cm9sXCIsY2xhc3M6W2kuY2xhc3Mse2hpZGRlbjplLl9fYWRkaXRpb25hbEhpZGRlbihpLGUuaGFzRXJyb3IsZS5oYXNXYXJuaW5nLGUubGVuZ3RoKX1dLHByb3BzOntuYW1lOmkuaWNvbn0sbmF0aXZlT246e21vdXNlZG93bjplLl9fb25Nb3VzZURvd24sdG91Y2hzdGFydDplLl9fb25Nb3VzZURvd24sY2xpY2s6ZnVuY3Rpb24odCl7ZS5fX2JhSGFuZGxlcih0LGkpfX19KX0pfHx2b2lkIDBdLmNvbmNhdCh0aGlzLiRzbG90cy5hZnRlcikpfX0sUUNoaXBzSW5wdXQ9e25hbWU6XCJRQ2hpcHNJbnB1dFwiLG1peGluczpbRnJhbWVNaXhpbixJbnB1dE1peGluXSxwcm9wczp7dmFsdWU6e3R5cGU6QXJyYXkscmVxdWlyZWQ6ITB9LGNoaXBzQ29sb3I6U3RyaW5nLGNoaXBzQmdDb2xvcjpTdHJpbmcscmVhZG9ubHk6Qm9vbGVhbixhZGRJY29uOlN0cmluZyx1cHBlckNhc2U6Qm9vbGVhbixsb3dlckNhc2U6Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJue2lucHV0OlwiXCIsbW9kZWw6dGhpcy52YWx1ZS5zbGljZSgpLHdhdGNoZXI6bnVsbCxzaGFkb3c6e3ZhbDp0aGlzLmlucHV0LHNldDp0aGlzLmFkZCxzZXROYXY6ZnVuY3Rpb24oZSl7dC5pbnB1dD1lfSxsb2FkaW5nOiExLHNlbGVjdGlvbk9wZW46ITEsd2F0Y2hlZDowLGlzRWRpdGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdC5lZGl0YWJsZX0saXNEYXJrOmZ1bmN0aW9uKCl7cmV0dXJuIHQuZGFya30saGFzRm9jdXM6ZnVuY3Rpb24oKXtyZXR1cm4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXQuJHJlZnMuaW5wdXR9LHJlZ2lzdGVyOmZ1bmN0aW9uKCl7dC5zaGFkb3cud2F0Y2hlZCs9MSx0Ll9fd2F0Y2hlclJlZ2lzdGVyKCl9LHVucmVnaXN0ZXI6ZnVuY3Rpb24oKXt0LnNoYWRvdy53YXRjaGVkPU1hdGgubWF4KDAsdC5zaGFkb3cud2F0Y2hlZC0xKSx0Ll9fd2F0Y2hlclVucmVnaXN0ZXIoKX0sZ2V0RWw6ZnVuY3Rpb24oKXtyZXR1cm4gdC4kcmVmcy5pbnB1dH19fX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMubW9kZWw9dC5zbGljZSgpfX0scHJvdmlkZTpmdW5jdGlvbigpe3JldHVybntfX2lucHV0OnRoaXMuc2hhZG93fX0sY29tcHV0ZWQ6e2xlbmd0aDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsP3RoaXMubW9kZWwubGVuZ3RoOjB9LGlzTG9hZGluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxvYWRpbmd8fHRoaXMuc2hhZG93LndhdGNoZWQmJnRoaXMuc2hhZG93LmxvYWRpbmd9LGNvbXB1dGVkQWRkSWNvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFkZEljb258fHRoaXMuJHEuaWNvbi5jaGlwc0lucHV0LmFkZH0sY29tcHV0ZWRDaGlwVGV4dENvbG9yOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hpcHNDb2xvcj90aGlzLmNoaXBzQ29sb3I6dGhpcy5pc0ludmVydGVkTGlnaHQ/dGhpcy5pbnZlcnRlZExpZ2h0P3RoaXMuY29sb3I6XCJ3aGl0ZVwiOnRoaXMuaXNJbnZlcnRlZD90aGlzLmludmVydGVkTGlnaHQ/XCJncmV5LTEwXCI6dGhpcy5jb2xvcjp0aGlzLmRhcms/dGhpcy5jb2xvcjpcIndoaXRlXCJ9LGNvbXB1dGVkQ2hpcEJnQ29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaGlwc0JnQ29sb3I/dGhpcy5jaGlwc0JnQ29sb3I6dGhpcy5pc0ludmVydGVkTGlnaHQ/dGhpcy5pbnZlcnRlZExpZ2h0P1wiZ3JleS0xMFwiOnRoaXMuY29sb3I6dGhpcy5pc0ludmVydGVkP3RoaXMuaW52ZXJ0ZWRMaWdodD90aGlzLmNvbG9yOlwid2hpdGVcIjp0aGlzLmRhcms/XCJ3aGl0ZVwiOnRoaXMuY29sb3J9LGlucHV0Q2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PVt0aGlzLmFsaWduQ2xhc3NdO3JldHVybiB0aGlzLnVwcGVyQ2FzZSYmdC5wdXNoKFwidXBwZXJjYXNlXCIpLHRoaXMubG93ZXJDYXNlJiZ0LnB1c2goXCJsb3dlcmNhc2VcIiksdH0saXNDbGVhcmFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGl0YWJsZSYmdGhpcy5jbGVhcmFibGUmJjAhPT10aGlzLm1vZGVsLmxlbmd0aH19LG1ldGhvZHM6e2FkZDpmdW5jdGlvbih0KXtpZih2b2lkIDA9PT10JiYodD10aGlzLmlucHV0KSxjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy5mb2N1cygpLCF0aGlzLmlzTG9hZGluZyYmdGhpcy5lZGl0YWJsZSYmdCl7dmFyIGU9dGhpcy5sb3dlckNhc2U/dC50b0xvd2VyQ2FzZSgpOnRoaXMudXBwZXJDYXNlP3QudG9VcHBlckNhc2UoKTp0O3RoaXMubW9kZWwuaW5jbHVkZXMoZSk/dGhpcy4kZW1pdChcImR1cGxpY2F0ZVwiLGUpOih0aGlzLiRlbWl0KFwiYWRkXCIse2luZGV4OnRoaXMubW9kZWwubGVuZ3RoLHZhbDplfSksdGhpcy5tb2RlbC5wdXNoKGUpLHRoaXMuJGVtaXQoXCJpbnB1dFwiLHRoaXMubW9kZWwpLHRoaXMuaW5wdXQ9XCJcIil9fSxyZW1vdmU6ZnVuY3Rpb24odCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuZm9jdXMoKSx0aGlzLmVkaXRhYmxlJiZ0Pj0wJiZ0PHRoaXMubGVuZ3RoJiYodGhpcy4kZW1pdChcInJlbW92ZVwiLHtpbmRleDp0LHZhbHVlOnRoaXMubW9kZWwuc3BsaWNlKHQsMSl9KSx0aGlzLiRlbWl0KFwiaW5wdXRcIix0aGlzLm1vZGVsKSl9LGNsZWFyOmZ1bmN0aW9uKHQpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0JiZzdG9wQW5kUHJldmVudCh0KSx0aGlzLmVkaXRhYmxlJiYodGhpcy4kZW1pdChcImlucHV0XCIsW10pLHRoaXMuJGVtaXQoXCJjbGVhclwiKSl9LF9fY2xlYXJUaW1lcjpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtyZXR1cm4gY2xlYXJUaW1lb3V0KHQudGltZXIpfSl9LF9faGFuZGxlS2V5RG93bjpmdW5jdGlvbih0KXtzd2l0Y2goZ2V0RXZlbnRLZXkodCkpe2Nhc2UgMTM6aWYodGhpcy5zaGFkb3cuc2VsZWN0aW9uT3BlbilyZXR1cm47cmV0dXJuIHN0b3BBbmRQcmV2ZW50KHQpLHRoaXMuYWRkKCk7Y2FzZSA4OnJldHVybiB2b2lkKCF0aGlzLmlucHV0Lmxlbmd0aCYmdGhpcy5sZW5ndGgmJnRoaXMucmVtb3ZlKHRoaXMubGVuZ3RoLTEpKTtkZWZhdWx0OnJldHVybiB0aGlzLl9fb25LZXlkb3duKHQpfX0sX19vbkNsaWNrOmZ1bmN0aW9uKCl7dGhpcy5mb2N1cygpfSxfX3dhdGNoZXI6ZnVuY3Rpb24odCl7dGhpcy5zaGFkb3cud2F0Y2hlZCYmKHRoaXMuc2hhZG93LnZhbD10KX0sX193YXRjaGVyUmVnaXN0ZXI6ZnVuY3Rpb24oKXt0aGlzLndhdGNoZXJ8fCh0aGlzLndhdGNoZXI9dGhpcy4kd2F0Y2goXCJpbnB1dFwiLHRoaXMuX193YXRjaGVyKSl9LF9fd2F0Y2hlclVucmVnaXN0ZXI6ZnVuY3Rpb24odCl7IXRoaXMud2F0Y2hlcnx8IXQmJnRoaXMuc2hhZG93LndhdGNoZWR8fCh0aGlzLndhdGNoZXIoKSx0aGlzLndhdGNoZXI9bnVsbCx0aGlzLnNoYWRvdy5zZWxlY3Rpb25PcGVuPSExKX19LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9fd2F0Y2hlclVucmVnaXN0ZXIoITApfSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdChRSW5wdXRGcmFtZSx7c3RhdGljQ2xhc3M6XCJxLWNoaXBzLWlucHV0XCIscHJvcHM6e3ByZWZpeDp0aGlzLnByZWZpeCxzdWZmaXg6dGhpcy5zdWZmaXgsc3RhY2tMYWJlbDp0aGlzLnN0YWNrTGFiZWwsZmxvYXRMYWJlbDp0aGlzLmZsb2F0TGFiZWwsZXJyb3I6dGhpcy5lcnJvcix3YXJuaW5nOnRoaXMud2FybmluZyxkaXNhYmxlOnRoaXMuZGlzYWJsZSxyZWFkb25seTp0aGlzLnJlYWRvbmx5LGludmVydGVkOnRoaXMuaW52ZXJ0ZWQsaW52ZXJ0ZWRMaWdodDp0aGlzLmludmVydGVkTGlnaHQsZGFyazp0aGlzLmRhcmssaGlkZVVuZGVybGluZTp0aGlzLmhpZGVVbmRlcmxpbmUsYmVmb3JlOnRoaXMuYmVmb3JlLGFmdGVyOnRoaXMuYWZ0ZXIsY29sb3I6dGhpcy5jb2xvcixub1BhcmVudEZpZWxkOnRoaXMubm9QYXJlbnRGaWVsZCxmb2N1c2VkOnRoaXMuZm9jdXNlZCxsZW5ndGg6dGhpcy5sZW5ndGgsYWRkaXRpb25hbExlbmd0aDp0aGlzLmlucHV0Lmxlbmd0aD4wfSxvbjp7Y2xpY2s6dGhpcy5fX29uQ2xpY2t9fSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbCByb3cgaXRlbXMtY2VudGVyIHEtaW5wdXQtY2hpcHNcIn0sdGhpcy5tb2RlbC5tYXAoZnVuY3Rpb24oaSxzKXtyZXR1cm4gdChRQ2hpcCx7a2V5OmkrXCIjXCIrcyxwcm9wczp7c21hbGw6ITAsY2xvc2FibGU6ZS5lZGl0YWJsZSxjb2xvcjplLmNvbXB1dGVkQ2hpcEJnQ29sb3IsdGV4dENvbG9yOmUuY29tcHV0ZWRDaGlwVGV4dENvbG9yfSxhdHRyczp7dGFiaW5kZXg6ZS5lZGl0YWJsZSYmZS5mb2N1c2VkPzA6LTF9LG9uOntibHVyOmUuX19vbklucHV0Qmx1cixmb2N1czplLl9fY2xlYXJUaW1lcixoaWRlOmZ1bmN0aW9uKCl7ZS5yZW1vdmUocyl9fSxuYXRpdmVPbjp7Ymx1cjplLl9fb25JbnB1dEJsdXIsZm9jdXM6ZS5fX2NsZWFyVGltZXJ9fSxpKX0pLmNvbmNhdChbdChcImlucHV0XCIse3JlZjpcImlucHV0XCIsc3RhdGljQ2xhc3M6XCJjb2wgcS1pbnB1dC10YXJnZXRcIixjbGFzczp0aGlzLmlucHV0Q2xhc3Nlcyxkb21Qcm9wczp7dmFsdWU6dGhpcy5pbnB1dH0sYXR0cnM6T2JqZWN0LmFzc2lnbih7fSx0aGlzLiRhdHRycyx7cGxhY2Vob2xkZXI6dGhpcy5pbnB1dFBsYWNlaG9sZGVyLGRpc2FibGVkOnRoaXMuZGlzYWJsZSxyZWFkb25seTp0aGlzLnJlYWRvbmx5fSksb246e2lucHV0OmZ1bmN0aW9uKHQpe2UuaW5wdXQ9dC50YXJnZXQudmFsdWV9LGZvY3VzOnRoaXMuX19vbkZvY3VzLGJsdXI6dGhpcy5fX29uSW5wdXRCbHVyLGtleWRvd246dGhpcy5fX2hhbmRsZUtleURvd24sa2V5dXA6dGhpcy5fX29uS2V5dXB9fSldKSksdGhpcy5pc0xvYWRpbmc/dGhpcy4kc2xvdHMubG9hZGluZz90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1pZi1jb250cm9sXCIsc2xvdDpcImFmdGVyXCJ9LHRoaXMuJHNsb3RzLmxvYWRpbmcpOnQoUVNwaW5uZXIse3Nsb3Q6XCJhZnRlclwiLHN0YXRpY0NsYXNzOlwicS1pZi1jb250cm9sXCIscHJvcHM6e3NpemU6XCIyNHB4XCJ9fSk6dGhpcy5lZGl0YWJsZSYmdChRSWNvbix7c2xvdDpcImFmdGVyXCIsc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIixjbGFzczp7aW52aXNpYmxlOjA9PT10aGlzLmlucHV0Lmxlbmd0aH0scHJvcHM6e25hbWU6dGhpcy5jb21wdXRlZEFkZEljb259LG5hdGl2ZU9uOnttb3VzZWRvd246dGhpcy5fX2NsZWFyVGltZXIsdG91Y2hzdGFydDp0aGlzLl9fY2xlYXJUaW1lcixjbGljazpmdW5jdGlvbigpe2UuYWRkKCl9fX0pfHx2b2lkIDAsdGhpcy5pc0NsZWFyYWJsZSYmdChRSWNvbix7c2xvdDpcImFmdGVyXCIsc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIixwcm9wczp7bmFtZTp0aGlzLiRxLmljb24uaW5wdXRbXCJjbGVhclwiKyh0aGlzLmlzSW52ZXJ0ZWQ/XCJJbnZlcnRlZFwiOlwiXCIpXX0sbmF0aXZlT246e21vdXNlZG93bjp0aGlzLl9fY2xlYXJUaW1lcix0b3VjaHN0YXJ0OnRoaXMuX19jbGVhclRpbWVyLGNsaWNrOnRoaXMuY2xlYXJ9fSl8fHZvaWQgMF0uY29uY2F0KHRoaXMuJHNsb3RzLmRlZmF1bHQ/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcImFic29sdXRlLWZ1bGwgbm8tcG9pbnRlci1ldmVudHNcIixzbG90OlwiYWZ0ZXJcIn0sdGhpcy4kc2xvdHMuZGVmYXVsdCk6dm9pZCAwKSl9fSxRSXRlbVRpbGU9e25hbWU6XCJRSXRlbVRpbGVcIixwcm9wczp7aWNvbjpTdHJpbmcsbGV0dGVyOkJvb2xlYW4saW52ZXJ0ZWQ6Qm9vbGVhbixpbWFnZTpCb29sZWFuLGF2YXRhcjpCb29sZWFuLHN0YW1wOkJvb2xlYW4sbGFiZWw6Qm9vbGVhbixzdWJsYWJlbDpCb29sZWFuLGxpbmVzOltOdW1iZXIsU3RyaW5nXSx0YWc6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJkaXZcIn0sY29sb3I6U3RyaW5nLHRleHRDb2xvcjpTdHJpbmd9LGNvbXB1dGVkOntoYXNMaW5lczpmdW5jdGlvbigpe3JldHVybih0aGlzLmxhYmVsfHx0aGlzLnN1YmxhYmVsKSYmdGhpcy5saW5lc30sdHlwZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuW1wiaWNvblwiLFwibGFiZWxcIixcInN1YmxhYmVsXCIsXCJpbWFnZVwiLFwiYXZhdGFyXCIsXCJsZXR0ZXJcIixcInN0YW1wXCJdLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KX0sY2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmNvbG9yJiYodGhpcy5pbnZlcnRlZD90LnB1c2goXCJiZy1cIit0aGlzLmNvbG9yKTp0aGlzLnRleHRDb2xvcnx8dC5wdXNoKFwidGV4dC1cIit0aGlzLmNvbG9yKSksdGhpcy50ZXh0Q29sb3ImJnQucHVzaChcInRleHQtXCIrdGhpcy50ZXh0Q29sb3IpLHRoaXMudHlwZSYmdC5wdXNoKFwicS1pdGVtLVwiK3RoaXMudHlwZSksdGhpcy5pbnZlcnRlZCYmKHRoaXMuaWNvbnx8dGhpcy5sZXR0ZXIpJiYodC5wdXNoKFwicS1pdGVtLWludmVydGVkXCIpLHQucHVzaChcImZsZXhcIiksdC5wdXNoKFwiZmxleC1jZW50ZXJcIikpLCF0aGlzLmhhc0xpbmVzfHxcIjFcIiE9PXRoaXMubGluZXMmJjEhPT10aGlzLmxpbmVzfHx0LnB1c2goXCJlbGxpcHNpc1wiKSx0fSxzdHlsZTpmdW5jdGlvbigpe2lmKHRoaXMuaGFzTGluZXMpcmV0dXJuIHRleHRTdHlsZSh0aGlzLmxpbmVzKX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT17Y2xhc3M6dGhpcy5jbGFzc2VzLHN0eWxlOnRoaXMuc3R5bGV9O2lmKHRoaXMuaWNvbil7aWYodGhpcy5pbnZlcnRlZClyZXR1cm4gdCh0aGlzLnRhZyxlLFt0KFFJY29uLHtwcm9wczp7bmFtZTp0aGlzLmljb259fSx0aGlzLiRzbG90cy5kZWZhdWx0KV0pO2UucHJvcHM9e25hbWU6dGhpcy5pY29ufX1yZXR1cm4gdCh0aGlzLmljb24/UUljb246dGhpcy50YWcsZSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFTbGlkZVRyYW5zaXRpb249e25hbWU6XCJRU2xpZGVUcmFuc2l0aW9uXCIscHJvcHM6e2FwcGVhcjpCb29sZWFuLGR1cmF0aW9uOnt0eXBlOk51bWJlcixkZWZhdWx0OjMwMH19LG1ldGhvZHM6e19fYmVnaW46ZnVuY3Rpb24odCxlLGkpe3Quc3R5bGUub3ZlcmZsb3dZPVwiaGlkZGVuXCIsdm9pZCAwIT09ZSYmKHQuc3R5bGUuaGVpZ2h0PWUrXCJweFwiKSx0LnN0eWxlLnRyYW5zaXRpb249XCJoZWlnaHQgXCIrdGhpcy5kdXJhdGlvbitcIm1zIGN1YmljLWJlemllciguMjUsIC44LCAuNTAsIDEpXCIsdGhpcy5hbmltYXRpbmc9ITAsdGhpcy5kb25lPWl9LF9fZW5kOmZ1bmN0aW9uKHQsZSl7dC5zdHlsZS5vdmVyZmxvd1k9bnVsbCx0LnN0eWxlLmhlaWdodD1udWxsLHQuc3R5bGUudHJhbnNpdGlvbj1udWxsLHRoaXMuX19jbGVhbnVwKCksZSE9PXRoaXMubGFzdEV2ZW50JiZ0aGlzLiRlbWl0KGUpfSxfX2NsZWFudXA6ZnVuY3Rpb24oKXt0aGlzLmRvbmUmJnRoaXMuZG9uZSgpLHRoaXMuZG9uZT1udWxsLHRoaXMuYW5pbWF0aW5nPSExLGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uZW5kXCIsdGhpcy5hbmltTGlzdGVuZXIpLHRoaXMuYW5pbUxpc3RlbmVyPW51bGx9fSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5hbmltYXRpbmcmJnRoaXMuX19jbGVhbnVwKCl9LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFwidHJhbnNpdGlvblwiLHtwcm9wczp7Y3NzOiExLGFwcGVhcjp0aGlzLmFwcGVhcn0sb246e2VudGVyOmZ1bmN0aW9uKHQsaSl7dmFyIHM9MDtlLmVsPXQsITA9PT1lLmFuaW1hdGluZz8oZS5fX2NsZWFudXAoKSxzPXQub2Zmc2V0SGVpZ2h0PT09dC5zY3JvbGxIZWlnaHQ/MDp2b2lkIDApOmUubGFzdEV2ZW50PVwiaGlkZVwiLGUuX19iZWdpbih0LHMsaSksZS50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5zdHlsZS5oZWlnaHQ9dC5zY3JvbGxIZWlnaHQrXCJweFwiLGUuYW5pbUxpc3RlbmVyPWZ1bmN0aW9uKCl7ZS5fX2VuZCh0LFwic2hvd1wiKX0sdC5hZGRFdmVudExpc3RlbmVyKFwidHJhbnNpdGlvbmVuZFwiLGUuYW5pbUxpc3RlbmVyKX0sMTAwKX0sbGVhdmU6ZnVuY3Rpb24odCxpKXt2YXIgcztlLmVsPXQsITA9PT1lLmFuaW1hdGluZz9lLl9fY2xlYW51cCgpOihlLmxhc3RFdmVudD1cInNob3dcIixzPXQuc2Nyb2xsSGVpZ2h0KSxlLl9fYmVnaW4odCxzLGkpLGUudGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3Quc3R5bGUuaGVpZ2h0PTAsZS5hbmltTGlzdGVuZXI9ZnVuY3Rpb24oKXtlLl9fZW5kKHQsXCJoaWRlXCIpfSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uZW5kXCIsZS5hbmltTGlzdGVuZXIpfSwxMDApfX19LHRoaXMuJHNsb3RzLmRlZmF1bHQpfX0sZXZlbnROYW1lPVwicTpjb2xsYXBzaWJsZTpjbG9zZVwiLFFDb2xsYXBzaWJsZT17bmFtZTpcIlFDb2xsYXBzaWJsZVwiLG1peGluczpbTW9kZWxUb2dnbGVNaXhpbixJdGVtTWl4aW4se3Byb3BzOnN1Ykl0ZW1Qcm9wc31dLG1vZGVsVG9nZ2xlOntoaXN0b3J5OiExfSxwcm9wczp7ZGlzYWJsZTpCb29sZWFuLHBvcHVwOkJvb2xlYW4saW5kZW50OkJvb2xlYW4sZ3JvdXA6U3RyaW5nLGljb25Ub2dnbGU6Qm9vbGVhbixjb2xsYXBzZUljb246U3RyaW5nLG9wZW5lZDpCb29sZWFuLGR1cmF0aW9uOk51bWJlcixoZWFkZXJTdHlsZTpbQXJyYXksU3RyaW5nLE9iamVjdF0saGVhZGVyQ2xhc3M6W0FycmF5LFN0cmluZyxPYmplY3RdfSxjb21wdXRlZDp7Y2xhc3NlczpmdW5jdGlvbigpe3JldHVybntcInEtY29sbGFwc2libGUtb3BlbmVkXCI6dGhpcy5zaG93aW5nLFwicS1jb2xsYXBzaWJsZS1jbG9zZWRcIjohdGhpcy5zaG93aW5nLFwicS1jb2xsYXBzaWJsZS1wb3B1cC1vcGVuZWRcIjp0aGlzLnBvcHVwJiZ0aGlzLnNob3dpbmcsXCJxLWNvbGxhcHNpYmxlLXBvcHVwLWNsb3NlZFwiOnRoaXMucG9wdXAmJiF0aGlzLnNob3dpbmcsXCJxLWNvbGxhcHNpYmxlLWN1cnNvci1wb2ludGVyXCI6IXRoaXMuc2VwYXJhdGVUb2dnbGUsXCJxLWl0ZW0tZGFya1wiOnRoaXMuZGFyayxcInEtaXRlbS1zZXBhcmF0b3JcIjp0aGlzLnNlcGFyYXRvcixcInEtaXRlbS1pbnNldC1zZXBhcmF0b3JcIjp0aGlzLmluc2V0U2VwYXJhdG9yLGRpc2FibGVkOnRoaXMuZGlzYWJsZX19LHNlcGFyYXRlVG9nZ2xlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWNvblRvZ2dsZXx8dm9pZCAwIT09dGhpcy50b319LHdhdGNoOntzaG93aW5nOmZ1bmN0aW9uKHQpe3QmJnRoaXMuZ3JvdXAmJnRoaXMuJHJvb3QuJGVtaXQoZXZlbnROYW1lLHRoaXMpfX0sbWV0aG9kczp7X190b2dnbGVJdGVtOmZ1bmN0aW9uKCl7dGhpcy5zZXBhcmF0ZVRvZ2dsZXx8dGhpcy50b2dnbGUoKX0sX190b2dnbGVJY29uOmZ1bmN0aW9uKHQpe3RoaXMuc2VwYXJhdGVUb2dnbGUmJih0JiZzdG9wQW5kUHJldmVudCh0KSx0aGlzLnRvZ2dsZSgpKX0sX19ldmVudEhhbmRsZXI6ZnVuY3Rpb24odCl7dGhpcy5ncm91cCYmdGhpcyE9PXQmJnQuZ3JvdXA9PT10aGlzLmdyb3VwJiZ0aGlzLmhpZGUoKX0sX19nZXRUb2dnbGVTaWRlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuW3QoUUl0ZW1UaWxlLHtzbG90OmU/XCJyaWdodFwiOnZvaWQgMCxzdGF0aWNDbGFzczpcImN1cnNvci1wb2ludGVyIHRyYW5zaXRpb24tZ2VuZXJpYyByZWxhdGl2ZS1wb3NpdGlvbiBxLWNvbGxhcHNpYmxlLXRvZ2dsZS1pY29uXCIsY2xhc3M6e1wicm90YXRlLTE4MFwiOnRoaXMuc2hvd2luZyxpbnZpc2libGU6dGhpcy5kaXNhYmxlfSxuYXRpdmVPbjp7Y2xpY2s6dGhpcy5fX3RvZ2dsZUljb259LHByb3BzOntpY29uOnRoaXMuY29sbGFwc2VJY29ufHx0aGlzLiRxLmljb24uY29sbGFwc2libGUuaWNvbn19KV19LF9fZ2V0SXRlbVByb3BzOmZ1bmN0aW9uKHQpe3JldHVybntwcm9wczp0P3tjZmc6dGhpcy4kcHJvcHN9OnRoaXMuJHByb3BzLHN0eWxlOnRoaXMuaGVhZGVyU3R5bGUsY2xhc3M6dGhpcy5oZWFkZXJDbGFzcyxuYXRpdmVPbjp7Y2xpY2s6dGhpcy5fX3RvZ2dsZUl0ZW19fX19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLiRyb290LiRvbihldmVudE5hbWUsdGhpcy5fX2V2ZW50SGFuZGxlciksKHRoaXMub3BlbmVkfHx0aGlzLnZhbHVlKSYmdGhpcy5zaG93KCl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLiRyb290LiRvZmYoZXZlbnROYW1lLHRoaXMuX19ldmVudEhhbmRsZXIpfSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQodGhpcy50YWcse3N0YXRpY0NsYXNzOlwicS1jb2xsYXBzaWJsZSBxLWl0ZW0tZGl2aXNpb24gcmVsYXRpdmUtcG9zaXRpb25cIixjbGFzczp0aGlzLmNsYXNzZXN9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jb2xsYXBzaWJsZS1pbm5lclwifSxbdGhpcy4kc2xvdHMuaGVhZGVyP3QoUUl0ZW0sdGhpcy5fX2dldEl0ZW1Qcm9wcygpLFt0aGlzLiRzbG90cy5oZWFkZXIsdChRSXRlbVNpZGUse3Byb3BzOntyaWdodDohMH0sc3RhdGljQ2xhc3M6XCJyZWxhdGl2ZS1wb3NpdGlvblwifSx0aGlzLl9fZ2V0VG9nZ2xlU2lkZSh0KSldKTp0KFFJdGVtV3JhcHBlcix0aGlzLl9fZ2V0SXRlbVByb3BzKCEwKSx0aGlzLl9fZ2V0VG9nZ2xlU2lkZSh0LCEwKSksdChRU2xpZGVUcmFuc2l0aW9uLHtwcm9wczp7ZHVyYXRpb246dGhpcy5kdXJhdGlvbn19LFt0KFwiZGl2XCIse2RpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHZhbHVlOnRoaXMuc2hvd2luZ31dfSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY29sbGFwc2libGUtc3ViLWl0ZW0gcmVsYXRpdmUtcG9zaXRpb25cIixjbGFzczp7aW5kZW50OnRoaXMuaW5kZW50fX0sdGhpcy4kc2xvdHMuZGVmYXVsdCldKV0pXSldKX19LERpc3BsYXlNb2RlTWl4aW49e3Byb3BzOntwb3BvdmVyOkJvb2xlYW4sbW9kYWw6Qm9vbGVhbn0sY29tcHV0ZWQ6e2lzUG9wb3ZlcjpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5wb3BvdmVyfHwhdGhpcy5tb2RhbCYmKHRoaXMuJHEucGxhdGZvcm0uaXMuZGVza3RvcCYmIXRoaXMuJHEucGxhdGZvcm0ud2l0aGluLmlmcmFtZSl9fX07ZnVuY3Rpb24gZ2V0UGVyY2VudGFnZSh0LGUsaSl7dmFyIHM9YmV0d2VlbigocG9zaXRpb24odCkubGVmdC1lLmxlZnQpL2Uud2lkdGgsMCwxKTtyZXR1cm4gaT8xLXM6c31mdW5jdGlvbiBub3REaXZpZGVzKHQsZSl7dmFyIGk9ZT9wYXJzZUZsb2F0KHQudG9GaXhlZChlKSk6dDtyZXR1cm4gaSE9PXBhcnNlSW50KGksMTApfWZ1bmN0aW9uIGdldE1vZGVsKHQsZSxpLHMsbil7dmFyIG89ZSt0KihpLWUpLHI9KG8tZSklcztyZXR1cm4gbys9KE1hdGguYWJzKHIpPj1zLzI/KHI8MD8tMToxKSpzOjApLXIsbiYmKG89cGFyc2VGbG9hdChvLnRvRml4ZWQobikpKSxiZXR3ZWVuKG8sZSxpKX12YXIgU2xpZGVyTWl4aW49e2RpcmVjdGl2ZXM6e1RvdWNoUGFuOlRvdWNoUGFufSxwcm9wczp7bWluOnt0eXBlOk51bWJlcixkZWZhdWx0OjF9LG1heDp7dHlwZTpOdW1iZXIsZGVmYXVsdDo1fSxzdGVwOnt0eXBlOk51bWJlcixkZWZhdWx0OjF9LGRlY2ltYWxzOk51bWJlcixzbmFwOkJvb2xlYW4sbWFya2VyczpCb29sZWFuLGxhYmVsOkJvb2xlYW4sbGFiZWxBbHdheXM6Qm9vbGVhbixzcXVhcmU6Qm9vbGVhbixjb2xvcjpTdHJpbmcsZmlsbEhhbmRsZUFsd2F5czpCb29sZWFuLGVycm9yOkJvb2xlYW4sd2FybmluZzpCb29sZWFuLHJlYWRvbmx5OkJvb2xlYW4sZGlzYWJsZTpCb29sZWFufSxjb21wdXRlZDp7ZWRpdGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5kaXNhYmxlJiYhdGhpcy5yZWFkb25seX0sY2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PXtkaXNhYmxlZDp0aGlzLmRpc2FibGUscmVhZG9ubHk6dGhpcy5yZWFkb25seSxcImxhYmVsLWFsd2F5c1wiOnRoaXMubGFiZWxBbHdheXMsXCJoYXMtZXJyb3JcIjp0aGlzLmVycm9yLFwiaGFzLXdhcm5pbmdcIjp0aGlzLndhcm5pbmd9O3JldHVybiB0aGlzLmVycm9yfHx0aGlzLndhcm5pbmd8fCF0aGlzLmNvbG9yfHwodFtcInRleHQtXCIrdGhpcy5jb2xvcl09ITApLHR9LG1hcmtlcnNMZW46ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5tYXgtdGhpcy5taW4pL3RoaXMuc3RlcCsxfSxsYWJlbENvbG9yOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXJyb3I/XCJuZWdhdGl2ZVwiOnRoaXMud2FybmluZz9cIndhcm5pbmdcIjp0aGlzLmNvbG9yfHxcInByaW1hcnlcIn0sY29tcHV0ZWREZWNpbWFsczpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLmRlY2ltYWxzP3RoaXMuZGVjaW1hbHN8fDA6KFN0cmluZyh0aGlzLnN0ZXApLnRyaW0oXCIwXCIpLnNwbGl0KFwiLlwiKVsxXXx8XCJcIikubGVuZ3RofSxjb21wdXRlZFN0ZXA6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5kZWNpbWFscz8xL01hdGgucG93KDEwLHRoaXMuZGVjaW1hbHN8fDApOnRoaXMuc3RlcH19LG1ldGhvZHM6e19fcGFuOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dC5pc0ZpbmFsP3RoaXMuZHJhZ2dpbmcmJih0aGlzLmRyYWdUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5kcmFnZ2luZz0hMX0sMTAwKSx0aGlzLl9fZW5kKHQuZXZ0KSx0aGlzLl9fdXBkYXRlKCEwKSk6dC5pc0ZpcnN0PyhjbGVhclRpbWVvdXQodGhpcy5kcmFnVGltZXIpLHRoaXMuZHJhZ2dpbmc9dGhpcy5fX2dldERyYWdnaW5nKHQuZXZ0KSk6dGhpcy5kcmFnZ2luZyYmKHRoaXMuX19tb3ZlKHQuZXZ0KSx0aGlzLl9fdXBkYXRlKCkpfSxfX3VwZGF0ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO0pTT04uc3RyaW5naWZ5KHRoaXMubW9kZWwpIT09SlNPTi5zdHJpbmdpZnkodGhpcy52YWx1ZSkmJih0aGlzLiRlbWl0KFwiaW5wdXRcIix0aGlzLm1vZGVsKSx0JiZ0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe0pTT04uc3RyaW5naWZ5KGUubW9kZWwpIT09SlNPTi5zdHJpbmdpZnkoZS52YWx1ZSkmJmUuJGVtaXQoXCJjaGFuZ2VcIixlLm1vZGVsKX0pKX0sX19jbGljazpmdW5jdGlvbih0KXtpZighdGhpcy5kcmFnZ2luZyl7dmFyIGU9dGhpcy5fX2dldERyYWdnaW5nKHQpO2UmJih0aGlzLl9fZW5kKHQsZSksdGhpcy5fX3VwZGF0ZSghMCkpfX0sX19nZXRNYXJrZXJzOmZ1bmN0aW9uKHQpe2lmKHRoaXMubWFya2Vycyl7Zm9yKHZhciBlPVtdLGk9MDtpPHRoaXMubWFya2Vyc0xlbjtpKyspZS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXNsaWRlci1tYXJrXCIsa2V5OlwibWFya2VyXCIraSxzdHlsZTp7bGVmdDoxMDAqaSp0aGlzLnN0ZXAvKHRoaXMubWF4LXRoaXMubWluKStcIiVcIn19KSk7cmV0dXJuIGV9fX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuX192YWxpZGF0ZVByb3BzKCl9LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc2xpZGVyIG5vbi1zZWxlY3RhYmxlXCIsY2xhc3M6dGhpcy5jbGFzc2VzLG9uOnRoaXMuZWRpdGFibGU/e2NsaWNrOnRoaXMuX19jbGlja306bnVsbCxkaXJlY3RpdmVzOnRoaXMuZWRpdGFibGU/W3tuYW1lOlwidG91Y2gtcGFuXCIsbW9kaWZpZXJzOntob3Jpem9udGFsOiEwLHByZXZlbnQ6ITAsc3RvcDohMH0sdmFsdWU6dGhpcy5fX3Bhbn1dOm51bGx9LFt0KFwiZGl2XCIse3JlZjpcImhhbmRsZVwiLHN0YXRpY0NsYXNzOlwicS1zbGlkZXItaGFuZGxlLWNvbnRhaW5lclwifSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc2xpZGVyLXRyYWNrXCJ9KSx0aGlzLl9fZ2V0TWFya2Vycyh0KV0uY29uY2F0KHRoaXMuX19nZXRDb250ZW50KHQpKSldKX19LFFTbGlkZXI9e25hbWU6XCJRU2xpZGVyXCIsbWl4aW5zOltTbGlkZXJNaXhpbl0scHJvcHM6e3ZhbHVlOk51bWJlcixsYWJlbFZhbHVlOlN0cmluZ30sZGF0YTpmdW5jdGlvbigpe3JldHVybnttb2RlbDp0aGlzLnZhbHVlLGRyYWdnaW5nOiExLGN1cnJlbnRQZXJjZW50YWdlOih0aGlzLnZhbHVlLXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pfX0sY29tcHV0ZWQ6e3BlcmNlbnRhZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zbmFwPyh0aGlzLm1vZGVsLXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pKjEwMCtcIiVcIjoxMDAqdGhpcy5jdXJyZW50UGVyY2VudGFnZStcIiVcIn0sZGlzcGxheVZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMubGFiZWxWYWx1ZT90aGlzLmxhYmVsVmFsdWU6dGhpcy5tb2RlbH19LHdhdGNoOnt2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLmRyYWdnaW5nfHwodDx0aGlzLm1pbj90aGlzLm1vZGVsPXRoaXMubWluOnQ+dGhpcy5tYXg/dGhpcy5tb2RlbD10aGlzLm1heDp0aGlzLm1vZGVsPXQsdGhpcy5jdXJyZW50UGVyY2VudGFnZT0odGhpcy5tb2RlbC10aGlzLm1pbikvKHRoaXMubWF4LXRoaXMubWluKSl9LG1pbjpmdW5jdGlvbih0KXt0aGlzLm1vZGVsPHQ/dGhpcy5tb2RlbD10OnRoaXMuJG5leHRUaWNrKHRoaXMuX192YWxpZGF0ZVByb3BzKX0sbWF4OmZ1bmN0aW9uKHQpe3RoaXMubW9kZWw+dD90aGlzLm1vZGVsPXQ6dGhpcy4kbmV4dFRpY2sodGhpcy5fX3ZhbGlkYXRlUHJvcHMpfSxzdGVwOmZ1bmN0aW9uKCl7dGhpcy4kbmV4dFRpY2sodGhpcy5fX3ZhbGlkYXRlUHJvcHMpfX0sbWV0aG9kczp7X19nZXREcmFnZ2luZzpmdW5jdGlvbih0KXt2YXIgZT10aGlzLiRyZWZzLmhhbmRsZTtyZXR1cm57bGVmdDplLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQsd2lkdGg6ZS5vZmZzZXRXaWR0aH19LF9fbW92ZTpmdW5jdGlvbih0KXt2YXIgZT1nZXRQZXJjZW50YWdlKHQsdGhpcy5kcmFnZ2luZyx0aGlzLiRxLmkxOG4ucnRsKTt0aGlzLmN1cnJlbnRQZXJjZW50YWdlPWUsdGhpcy5tb2RlbD1nZXRNb2RlbChlLHRoaXMubWluLHRoaXMubWF4LHRoaXMuc3RlcCx0aGlzLmNvbXB1dGVkRGVjaW1hbHMpfSxfX2VuZDpmdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXRoaXMuZHJhZ2dpbmcpO3ZhciBpPWdldFBlcmNlbnRhZ2UodCxlLHRoaXMuJHEuaTE4bi5ydGwpO3RoaXMubW9kZWw9Z2V0TW9kZWwoaSx0aGlzLm1pbix0aGlzLm1heCx0aGlzLnN0ZXAsdGhpcy5jb21wdXRlZERlY2ltYWxzKSx0aGlzLmN1cnJlbnRQZXJjZW50YWdlPSh0aGlzLm1vZGVsLXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pfSxfX29uS2V5RG93bjpmdW5jdGlvbih0KXt2YXIgZT10LmtleUNvZGU7aWYodGhpcy5lZGl0YWJsZSYmWzM3LDQwLDM5LDM4XS5pbmNsdWRlcyhlKSl7c3RvcEFuZFByZXZlbnQodCk7dmFyIGk9dGhpcy5jb21wdXRlZERlY2ltYWxzLHM9dC5jdHJsS2V5PzEwKnRoaXMuY29tcHV0ZWRTdGVwOnRoaXMuY29tcHV0ZWRTdGVwLG49WzM3LDQwXS5pbmNsdWRlcyhlKT8tczpzLG89aT9wYXJzZUZsb2F0KCh0aGlzLm1vZGVsK24pLnRvRml4ZWQoaSkpOnRoaXMubW9kZWwrbjt0aGlzLm1vZGVsPWJldHdlZW4obyx0aGlzLm1pbix0aGlzLm1heCksdGhpcy5jdXJyZW50UGVyY2VudGFnZT0odGhpcy5tb2RlbC10aGlzLm1pbikvKHRoaXMubWF4LXRoaXMubWluKSx0aGlzLl9fdXBkYXRlKCl9fSxfX29uS2V5VXA6ZnVuY3Rpb24odCl7dmFyIGU9dC5rZXlDb2RlO3RoaXMuZWRpdGFibGUmJlszNyw0MCwzOSwzOF0uaW5jbHVkZXMoZSkmJnRoaXMuX191cGRhdGUoITApfSxfX3ZhbGlkYXRlUHJvcHM6ZnVuY3Rpb24oKXt0aGlzLm1pbj49dGhpcy5tYXg/Y29uc29sZS5lcnJvcihcIlJhbmdlIGVycm9yOiBtaW4gPj0gbWF4XCIsdGhpcy4kZWwsdGhpcy5taW4sdGhpcy5tYXgpOm5vdERpdmlkZXMoKHRoaXMubWF4LXRoaXMubWluKS90aGlzLnN0ZXAsdGhpcy5jb21wdXRlZERlY2ltYWxzKSYmY29uc29sZS5lcnJvcihcIlJhbmdlIGVycm9yOiBzdGVwIG11c3QgYmUgYSBkaXZpc29yIG9mIG1heCAtIG1pblwiLHRoaXMubWluLHRoaXMubWF4LHRoaXMuc3RlcCx0aGlzLmNvbXB1dGVkRGVjaW1hbHMpfSxfX2dldENvbnRlbnQ6ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXNsaWRlci10cmFjayBhY3RpdmUtdHJhY2tcIixzdHlsZTp7d2lkdGg6dGhpcy5wZXJjZW50YWdlfSxjbGFzczp7XCJuby10cmFuc2l0aW9uXCI6dGhpcy5kcmFnZ2luZyxcImhhbmRsZS1hdC1taW5pbXVtXCI6dGhpcy5tb2RlbD09PXRoaXMubWlufX0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXNsaWRlci1oYW5kbGVcIixzdHlsZTooZT17fSxlW3RoaXMuJHEuaTE4bi5ydGw/XCJyaWdodFwiOlwibGVmdFwiXT10aGlzLnBlcmNlbnRhZ2UsZS5ib3JkZXJSYWRpdXM9dGhpcy5zcXVhcmU/XCIwXCI6XCI1MCVcIixlKSxjbGFzczp7ZHJhZ2dpbmc6dGhpcy5kcmFnZ2luZyxcImhhbmRsZS1hdC1taW5pbXVtXCI6IXRoaXMuZmlsbEhhbmRsZUFsd2F5cyYmdGhpcy5tb2RlbD09PXRoaXMubWlufSxhdHRyczp7dGFiaW5kZXg6dGhpcy4kcS5wbGF0Zm9ybS5pcy5kZXNrdG9wP3RoaXMuZWRpdGFibGU/MDotMTp2b2lkIDB9LG9uOntrZXlkb3duOnRoaXMuX19vbktleURvd24sa2V5dXA6dGhpcy5fX29uS2V5VXB9fSxbdGhpcy5sYWJlbHx8dGhpcy5sYWJlbEFsd2F5cz90KFFDaGlwLHtzdGF0aWNDbGFzczpcInEtc2xpZGVyLWxhYmVsIG5vLXBvaW50ZXItZXZlbnRzXCIsY2xhc3M6e1wibGFiZWwtYWx3YXlzXCI6dGhpcy5sYWJlbEFsd2F5c30scHJvcHM6e3BvaW50aW5nOlwiZG93blwiLHNxdWFyZTohMCxkZW5zZTohMCxjb2xvcjp0aGlzLmxhYmVsQ29sb3J9fSxbdGhpcy5kaXNwbGF5VmFsdWVdKTpudWxsLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXNsaWRlci1yaW5nXCJ9KV0pXX19fTtmdW5jdGlvbiB0aHJvdHRsZSh0LGUpe3ZvaWQgMD09PWUmJihlPTI1MCk7dmFyIGkscz0hMTtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIG49W10sbz1hcmd1bWVudHMubGVuZ3RoO28tLTspbltvXT1hcmd1bWVudHNbb107cmV0dXJuIHM/aToocz0hMCxpPXQuYXBwbHkodGhpcyxuKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cz0hMX0sZSksaSl9fWZ1bmN0aW9uIGNsb25lKHQpe3ZhciBlPUpTT04uc3RyaW5naWZ5KHQpO2lmKGUpcmV0dXJuIEpTT04ucGFyc2UoZSl9dmFyIFFDb2xvclBpY2tlcj17bmFtZTpcIlFDb2xvclBpY2tlclwiLG1peGluczpbUGFyZW50RmllbGRNaXhpbl0sZGlyZWN0aXZlczp7VG91Y2hQYW46VG91Y2hQYW59LHByb3BzOnt2YWx1ZTpbU3RyaW5nLE9iamVjdF0sZGVmYXVsdFZhbHVlOnt0eXBlOltTdHJpbmcsT2JqZWN0XSxkZWZhdWx0Om51bGx9LGZvcm1hdE1vZGVsOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiYXV0b1wiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJhdXRvXCIsXCJoZXhcIixcInJnYlwiLFwiaGV4YVwiLFwicmdiYVwiXS5pbmNsdWRlcyh0KX19LGRpc2FibGU6Qm9vbGVhbixyZWFkb25seTpCb29sZWFuLGRhcms6Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3JldHVybnt2aWV3OnRoaXMudmFsdWUmJlwic3RyaW5nXCIhPXR5cGVvZiB0aGlzLnZhbHVlP1wicmdiXCI6XCJoZXhcIixtb2RlbDp0aGlzLl9fcGFyc2VNb2RlbCh0aGlzLnZhbHVlfHx0aGlzLmRlZmF1bHRWYWx1ZSl9fSx3YXRjaDp7dmFsdWU6e2hhbmRsZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fX3BhcnNlTW9kZWwodHx8dGhpcy5kZWZhdWx0VmFsdWUpO2UuaGV4IT09dGhpcy5tb2RlbC5oZXgmJih0aGlzLm1vZGVsPWUpfSxkZWVwOiEwfX0sY29tcHV0ZWQ6e2ZvcmNlSGV4OmZ1bmN0aW9uKCl7cmV0dXJuXCJhdXRvXCI9PT10aGlzLmZvcm1hdE1vZGVsP251bGw6dGhpcy5mb3JtYXRNb2RlbC5pbmRleE9mKFwiaGV4XCIpPi0xfSxmb3JjZUFscGhhOmZ1bmN0aW9uKCl7cmV0dXJuXCJhdXRvXCI9PT10aGlzLmZvcm1hdE1vZGVsP251bGw6dGhpcy5mb3JtYXRNb2RlbC5pbmRleE9mKFwiYVwiKT4tMX0saXNIZXg6ZnVuY3Rpb24oKXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdGhpcy52YWx1ZX0saXNPdXRwdXRIZXg6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9PXRoaXMuZm9yY2VIZXg/dGhpcy5mb3JjZUhleDp0aGlzLmlzSGV4fSxlZGl0YWJsZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLmRpc2FibGUmJiF0aGlzLnJlYWRvbmx5fSxoYXNBbHBoYTpmdW5jdGlvbigpe3JldHVybiBudWxsIT09dGhpcy5mb3JjZUFscGhhP3RoaXMuZm9yY2VBbHBoYTp0aGlzLmlzSGV4P3RoaXMudmFsdWUudHJpbSgpLmxlbmd0aD43OnRoaXMudmFsdWUmJnZvaWQgMCE9PXRoaXMudmFsdWUuYX0sc3dhdGNoQ29sb3I6ZnVuY3Rpb24oKXtyZXR1cm57YmFja2dyb3VuZENvbG9yOlwicmdiYShcIit0aGlzLm1vZGVsLnIrXCIsXCIrdGhpcy5tb2RlbC5nK1wiLFwiK3RoaXMubW9kZWwuYitcIixcIisodm9pZCAwPT09dGhpcy5tb2RlbC5hPzEwMDp0aGlzLm1vZGVsLmEpLzEwMCtcIilcIn19LHNhdHVyYXRpb25TdHlsZTpmdW5jdGlvbigpe3JldHVybntiYWNrZ3JvdW5kOlwiaHNsKFwiK3RoaXMubW9kZWwuaCtcIiwxMDAlLDUwJSlcIn19LHNhdHVyYXRpb25Qb2ludGVyU3R5bGU6ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4odD17dG9wOjEwMS10aGlzLm1vZGVsLnYrXCIlXCJ9KVt0aGlzLiRxLmkxOG4ucnRsP1wicmlnaHRcIjpcImxlZnRcIl09dGhpcy5tb2RlbC5zK1wiJVwiLHR9LGlucHV0c0FycmF5OmZ1bmN0aW9uKCl7dmFyIHQ9W1wiclwiLFwiZ1wiLFwiYlwiXTtyZXR1cm4gdGhpcy5oYXNBbHBoYSYmdC5wdXNoKFwiYVwiKSx0fSxfX25lZWRzQm9yZGVyOmZ1bmN0aW9uKCl7cmV0dXJuITB9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5fX3NhdHVyYXRpb25DaGFuZ2U9dGhyb3R0bGUodGhpcy5fX3NhdHVyYXRpb25DaGFuZ2UsMjApfSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNvbG9yXCIsY2xhc3M6e2Rpc2FibGVkOnRoaXMuZGlzYWJsZSxcInEtY29sb3ItZGFya1wiOnRoaXMuZGFya319LFt0aGlzLl9fZ2V0U2F0dXJhdGlvbih0KSx0aGlzLl9fZ2V0U2xpZGVycyh0KSx0aGlzLl9fZ2V0SW5wdXRzKHQpXSl9LG1ldGhvZHM6e19fZ2V0U2F0dXJhdGlvbjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtyZWY6XCJzYXR1cmF0aW9uXCIsc3RhdGljQ2xhc3M6XCJxLWNvbG9yLXNhdHVyYXRpb24gbm9uLXNlbGVjdGFibGUgcmVsYXRpdmUtcG9zaXRpb24gb3ZlcmZsb3ctaGlkZGVuIGN1cnNvci1wb2ludGVyXCIsc3R5bGU6dGhpcy5zYXR1cmF0aW9uU3R5bGUsY2xhc3M6e3JlYWRvbmx5OiF0aGlzLmVkaXRhYmxlfSxvbjp0aGlzLmVkaXRhYmxlP3tjbGljazp0aGlzLl9fc2F0dXJhdGlvbkNsaWNrfTpudWxsLGRpcmVjdGl2ZXM6dGhpcy5lZGl0YWJsZT9be25hbWU6XCJ0b3VjaC1wYW5cIixtb2RpZmllcnM6e21pZ2h0UHJldmVudDohMH0sdmFsdWU6dGhpcy5fX3NhdHVyYXRpb25QYW59XTpudWxsfSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY29sb3Itc2F0dXJhdGlvbi13aGl0ZSBhYnNvbHV0ZS1mdWxsXCJ9KSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jb2xvci1zYXR1cmF0aW9uLWJsYWNrIGFic29sdXRlLWZ1bGxcIn0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJhYnNvbHV0ZVwiLHN0eWxlOnRoaXMuc2F0dXJhdGlvblBvaW50ZXJTdHlsZX0sW3ZvaWQgMCE9PXRoaXMubW9kZWwuaGV4P3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNvbG9yLXNhdHVyYXRpb24tY2lyY2xlXCJ9KTpudWxsXSldKX0sX19nZXRTbGlkZXJzOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNvbG9yLXNsaWRlcnMgcm93IGl0ZW1zLWNlbnRlclwifSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY29sb3Itc3dhdGNoIHEtbXQtc20gcS1tbC1tZCBxLW1iLXNtIG5vbi1zZWxlY3RhYmxlIG92ZXJmbG93LWhpZGRlblwifSxbdChcImRpdlwiLHtzdHlsZTp0aGlzLnN3YXRjaENvbG9yLHN0YXRpY0NsYXNzOlwiZml0XCJ9KV0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wgcS1wYS1zbVwifSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY29sb3ItaHVlIG5vbi1zZWxlY3RhYmxlXCJ9LFt0KFFTbGlkZXIse3Byb3BzOnt2YWx1ZTp0aGlzLm1vZGVsLmgsY29sb3I6XCJ3aGl0ZVwiLG1pbjowLG1heDozNjAsZmlsbEhhbmRsZUFsd2F5czohMCxyZWFkb25seTohdGhpcy5lZGl0YWJsZX0sb246e2lucHV0OnRoaXMuX19vbkh1ZUNoYW5nZSxkcmFnZW5kOmZ1bmN0aW9uKHQpe3JldHVybiBlLl9fb25IdWVDaGFuZ2UodCwhMCl9fX0pXSksdGhpcy5oYXNBbHBoYT90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jb2xvci1hbHBoYSBub24tc2VsZWN0YWJsZVwifSxbdChRU2xpZGVyLHtwcm9wczp7dmFsdWU6dGhpcy5tb2RlbC5hLGNvbG9yOlwid2hpdGVcIixtaW46MCxtYXg6MTAwLGZpbGxIYW5kbGVBbHdheXM6ITAscmVhZG9ubHk6IXRoaXMuZWRpdGFibGV9LG9uOntpbnB1dDpmdW5jdGlvbih0KXtyZXR1cm4gZS5fX29uTnVtZXJpY0NoYW5nZSh7dGFyZ2V0Ont2YWx1ZTp0fX0sXCJhXCIsMTAwKX0sZHJhZ2VuZDpmdW5jdGlvbih0KXtyZXR1cm4gZS5fX29uTnVtZXJpY0NoYW5nZSh7dGFyZ2V0Ont2YWx1ZTp0fX0sXCJhXCIsMTAwLCEwKX19fSldKTpudWxsXSldKX0sX19nZXROdW1lcmljSW5wdXRzOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuaW5wdXRzQXJyYXkubWFwKGZ1bmN0aW9uKGkpe3ZhciBzPVwiYVwiPT09aT8xMDA6MjU1O3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sIHEtY29sb3ItcGFkZGluZ1wifSxbdChcImlucHV0XCIse2F0dHJzOnt0eXBlOlwibnVtYmVyXCIsbWluOjAsbWF4OnMscmVhZG9ubHk6IWUuZWRpdGFibGUsdGFiaW5kZXg6ZS5lZGl0YWJsZT8wOi0xfSxzdGF0aWNDbGFzczpcImZ1bGwtd2lkdGggdGV4dC1jZW50ZXIgcS1uby1pbnB1dC1zcGlubmVyXCIsZG9tUHJvcHM6e3ZhbHVlOnZvaWQgMD09PWUubW9kZWwuaGV4P1wiXCI6TWF0aC5yb3VuZChlLm1vZGVsW2ldKX0sb246e2lucHV0OmZ1bmN0aW9uKHQpe3JldHVybiBlLl9fb25OdW1lcmljQ2hhbmdlKHQsaSxzKX0sYmx1cjpmdW5jdGlvbih0KXtyZXR1cm4gZS5lZGl0YWJsZSYmZS5fX29uTnVtZXJpY0NoYW5nZSh0LGkscywhMCl9fX0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNvbG9yLWxhYmVsIHRleHQtY2VudGVyIHVwcGVyY2FzZVwifSxbaV0pXSl9KX0sX19nZXRJbnB1dHM6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY29sb3ItaW5wdXRzIHJvdyBpdGVtcy1jZW50ZXIgcS1weC1zbSBxLXBiLXNtXCJ9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sIHEtbXItc20gcm93IG5vLXdyYXBcIn0sXCJoZXhcIj09PXRoaXMudmlldz9bdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbFwifSxbdChcImlucHV0XCIse2RvbVByb3BzOnt2YWx1ZTp0aGlzLm1vZGVsLmhleH0sYXR0cnM6e3JlYWRvbmx5OiF0aGlzLmVkaXRhYmxlLHRhYmluZGV4OnRoaXMuZWRpdGFibGU/MDotMX0sb246e2NoYW5nZTp0aGlzLl9fb25IZXhDaGFuZ2UsYmx1cjpmdW5jdGlvbih0KXtyZXR1cm4gZS5lZGl0YWJsZSYmZS5fX29uSGV4Q2hhbmdlKHQsITApfX0sc3RhdGljQ2xhc3M6XCJmdWxsLXdpZHRoIHRleHQtY2VudGVyIHVwcGVyY2FzZVwifSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY29sb3ItbGFiZWwgdGV4dC1jZW50ZXJcIn0sW1wiSEVYXCIrKHRoaXMuaGFzQWxwaGE/XCIgLyBBXCI6XCJcIildKV0pXTp0aGlzLl9fZ2V0TnVtZXJpY0lucHV0cyh0KSksdChcImRpdlwiLFt0KFFCdG4se3Byb3BzOntmbGF0OiEwLGRpc2FibGU6dGhpcy5kaXNhYmxlfSxvbjp7Y2xpY2s6dGhpcy5fX25leHRJbnB1dFZpZXd9LHN0YXRpY0NsYXNzOlwicS1wYS1ub25lXCJ9LFt0KFwic3ZnXCIse2F0dHJzOnt2aWV3Qm94OlwiMCAwIDI0IDI0XCJ9LHN0eWxlOnt3aWR0aDpcIjI0cHhcIixoZWlnaHQ6XCIyNHB4XCJ9fSxbdChcInBhdGhcIix7YXR0cnM6e2ZpbGw6XCJjdXJyZW50Q29sb3JcIixkOlwiTTEyLDE4LjE3TDguODMsMTVMNy40MiwxNi40MUwxMiwyMUwxNi41OSwxNi40MUwxNS4xNywxNU0xMiw1LjgzTDE1LjE3LDlMMTYuNTgsNy41OUwxMiwzTDcuNDEsNy41OUw4LjgzLDlMMTIsNS44M1pcIn19KV0pXSldKV0pfSxfX29uU2F0dXJhdGlvbkNoYW5nZTpmdW5jdGlvbih0LGUsaSl7dmFyIHM9dGhpcy4kcmVmcy5zYXR1cmF0aW9uO2lmKHMpe3ZhciBuPXMuY2xpZW50V2lkdGgsbz1zLmNsaWVudEhlaWdodCxyPXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYT1NYXRoLm1pbihuLE1hdGgubWF4KDAsdC1yLmxlZnQpKTt0aGlzLiRxLmkxOG4ucnRsJiYoYT1uLWEpO3ZhciBsPU1hdGgubWluKG8sTWF0aC5tYXgoMCxlLXIudG9wKSksYz1NYXRoLnJvdW5kKDEwMCphL24pLGg9TWF0aC5yb3VuZCgxMDAqTWF0aC5tYXgoMCxNYXRoLm1pbigxLC1sL28rMSkpKSx1PWhzdlRvUmdiKHtoOnRoaXMubW9kZWwuaCxzOmMsdjpoLGE6dGhpcy5oYXNBbHBoYT90aGlzLm1vZGVsLmE6dm9pZCAwfSk7dGhpcy5tb2RlbC5zPWMsdGhpcy5tb2RlbC52PWgsdGhpcy5fX3VwZGF0ZSh1LHJnYlRvSGV4KHUpLGkpfX0sX19vbkh1ZUNoYW5nZTpmdW5jdGlvbih0LGUpe3ZhciBpPWhzdlRvUmdiKHtoOnQ9TWF0aC5yb3VuZCh0KSxzOnRoaXMubW9kZWwucyx2OnRoaXMubW9kZWwudixhOnRoaXMuaGFzQWxwaGE/dGhpcy5tb2RlbC5hOnZvaWQgMH0pO3RoaXMubW9kZWwuaD10LHRoaXMuX191cGRhdGUoaSxyZ2JUb0hleChpKSxlKX0sX19vbk51bWVyaWNDaGFuZ2U6ZnVuY3Rpb24odCxlLGkscyl7dmFyIG49TnVtYmVyKHQudGFyZ2V0LnZhbHVlKTtpZighaXNOYU4obikpaWYoKG49TWF0aC5mbG9vcihuKSk8MHx8bj5pKXMmJnRoaXMuJGZvcmNlVXBkYXRlKCk7ZWxzZXt2YXIgbz17cjpcInJcIj09PWU/bjp0aGlzLm1vZGVsLnIsZzpcImdcIj09PWU/bjp0aGlzLm1vZGVsLmcsYjpcImJcIj09PWU/bjp0aGlzLm1vZGVsLmIsYTp0aGlzLmhhc0FscGhhP1wiYVwiPT09ZT9uOnRoaXMubW9kZWwuYTp2b2lkIDB9O2lmKFwiYVwiIT09ZSl7dmFyIHI9cmdiVG9Ic3Yobyk7dGhpcy5tb2RlbC5oPXIuaCx0aGlzLm1vZGVsLnM9ci5zLHRoaXMubW9kZWwudj1yLnZ9dGhpcy5fX3VwZGF0ZShvLHJnYlRvSGV4KG8pLHMpfX0sX19vbkhleENoYW5nZTpmdW5jdGlvbih0LGUpe3ZhciBpPXQudGFyZ2V0LnZhbHVlLHM9aS5sZW5ndGgsbj10aGlzLmhhc0FscGhhP1s1LDldOls0LDddO2lmKHM9PT1uWzBdfHxzPT09blsxXSl7dmFyIG89aGV4VG9SZ2IoaSkscj1yZ2JUb0hzdihvKTt0aGlzLm1vZGVsLmg9ci5oLHRoaXMubW9kZWwucz1yLnMsdGhpcy5tb2RlbC52PXIudix0aGlzLl9fdXBkYXRlKG8saSxlKX1lbHNlIGUmJnRoaXMuJGZvcmNlVXBkYXRlKCl9LF9fdXBkYXRlOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz10aGlzLG49dGhpcy5pc091dHB1dEhleD9lOnQ7dGhpcy5tb2RlbC5oZXg9ZSx0aGlzLm1vZGVsLnI9dC5yLHRoaXMubW9kZWwuZz10LmcsdGhpcy5tb2RlbC5iPXQuYix0aGlzLm1vZGVsLmE9dGhpcy5oYXNBbHBoYT90LmE6dm9pZCAwLHRoaXMuJGVtaXQoXCJpbnB1dFwiLG4pLHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7aSYmSlNPTi5zdHJpbmdpZnkobikhPT1KU09OLnN0cmluZ2lmeShzLnZhbHVlKSYmcy4kZW1pdChcImNoYW5nZVwiLG4pfSl9LF9fbmV4dElucHV0VmlldzpmdW5jdGlvbigpe3RoaXMudmlldz1cImhleFwiPT09dGhpcy52aWV3P1wicmdiYVwiOlwiaGV4XCJ9LF9fcGFyc2VNb2RlbDpmdW5jdGlvbih0KXtpZihudWxsPT09dHx8dm9pZCAwPT09dClyZXR1cm57aDowLHM6MCx2OjAscjowLGc6MCxiOjAsaGV4OnZvaWQgMCxhOjEwMH07dmFyIGU9XCJzdHJpbmdcIj09dHlwZW9mIHQ/aGV4VG9SZ2IodC50cmltKCkpOmNsb25lKHQpO3JldHVybiB0aGlzLmZvcmNlQWxwaGE9PT0odm9pZCAwPT09ZS5hKSYmKGUuYT10aGlzLmZvcmNlQWxwaGE/MTAwOnZvaWQgMCksZS5oZXg9cmdiVG9IZXgoZSksT2JqZWN0LmFzc2lnbih7YToxMDB9LGUscmdiVG9Ic3YoZSkpfSxfX3NhdHVyYXRpb25QYW46ZnVuY3Rpb24odCl7dC5pc0ZpbmFsP3RoaXMuX19kcmFnU3RvcCh0KTp0LmlzRmlyc3Q/dGhpcy5fX2RyYWdTdGFydCh0KTp0aGlzLl9fZHJhZ01vdmUodCl9LF9fZHJhZ1N0YXJ0OmZ1bmN0aW9uKHQpe3N0b3BBbmRQcmV2ZW50KHQuZXZ0KSx0aGlzLnNhdHVyYXRpb25EcmFnZ2luZz0hMCx0aGlzLl9fc2F0dXJhdGlvbkNoYW5nZSh0KX0sX19kcmFnTW92ZTpmdW5jdGlvbih0KXt0aGlzLnNhdHVyYXRpb25EcmFnZ2luZyYmKHN0b3BBbmRQcmV2ZW50KHQuZXZ0KSx0aGlzLl9fc2F0dXJhdGlvbkNoYW5nZSh0KSl9LF9fZHJhZ1N0b3A6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztzdG9wQW5kUHJldmVudCh0LmV2dCksc2V0VGltZW91dChmdW5jdGlvbigpe2Uuc2F0dXJhdGlvbkRyYWdnaW5nPSExfSwxMDApLHRoaXMuX19vblNhdHVyYXRpb25DaGFuZ2UodC5wb3NpdGlvbi5sZWZ0LHQucG9zaXRpb24udG9wLCEwKX0sX19zYXR1cmF0aW9uQ2hhbmdlOmZ1bmN0aW9uKHQpe3RoaXMuX19vblNhdHVyYXRpb25DaGFuZ2UodC5wb3NpdGlvbi5sZWZ0LHQucG9zaXRpb24udG9wKX0sX19zYXR1cmF0aW9uQ2xpY2s6ZnVuY3Rpb24odCl7dGhpcy5zYXR1cmF0aW9uRHJhZ2dpbmd8fHRoaXMuX19vblNhdHVyYXRpb25DaGFuZ2UodC5wYWdlWC13aW5kb3cucGFnZVhPZmZzZXQsdC5wYWdlWS13aW5kb3cucGFnZVlPZmZzZXQsITApfX19LGNvbnRlbnRDc3M9e21heFdpZHRoOlwiOTV2d1wiLG1heEhlaWdodDpcIjk4dmhcIn0sUUNvbG9yPXtuYW1lOlwiUUNvbG9yXCIsbWl4aW5zOltGcmFtZU1peGluLERpc3BsYXlNb2RlTWl4aW5dLHByb3BzOnt2YWx1ZTp7cmVxdWlyZWQ6ITB9LGNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSxkZWZhdWx0VmFsdWU6e3R5cGU6W1N0cmluZyxPYmplY3RdLGRlZmF1bHQ6bnVsbH0sZm9ybWF0TW9kZWw6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJhdXRvXCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcImF1dG9cIixcImhleFwiLFwicmdiXCIsXCJoZXhhXCIsXCJyZ2JhXCJdLmluY2x1ZGVzKHQpfX0sZGlzcGxheVZhbHVlOlN0cmluZyxva0xhYmVsOlN0cmluZyxjYW5jZWxMYWJlbDpTdHJpbmd9LHdhdGNoOnt2YWx1ZTpmdW5jdGlvbih0KXshdGhpcy5kaXNhYmxlJiZ0aGlzLmlzUG9wb3ZlciYmKHRoaXMubW9kZWw9Y2xvbmUodCkpfX0sZGF0YTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuaXNQb3BvdmVyP3t9Ont0cmFuc2l0aW9uOlwicS1tb2RhbFwifTtyZXR1cm4gdC5mb2N1c2VkPSExLHQubW9kZWw9Y2xvbmUodGhpcy52YWx1ZXx8dGhpcy5kZWZhdWx0VmFsdWUpLHR9LGNvbXB1dGVkOnthY3R1YWxWYWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRpc3BsYXlWYWx1ZT90aGlzLmRpc3BsYXlWYWx1ZTp0aGlzLnZhbHVlP1wic3RyaW5nXCI9PXR5cGVvZiB0aGlzLnZhbHVlP3RoaXMudmFsdWU6XCJyZ2JcIisodm9pZCAwIT09dGhpcy52YWx1ZS5hP1wiYVwiOlwiXCIpK1wiKFwiK3RoaXMudmFsdWUucitcIixcIit0aGlzLnZhbHVlLmcrXCIsXCIrdGhpcy52YWx1ZS5iKyh2b2lkIDAhPT10aGlzLnZhbHVlLmE/XCIsXCIrdGhpcy52YWx1ZS5hLzEwMDpcIlwiKStcIilcIjpcIlwifSxjb21wdXRlZENsZWFyVmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09dGhpcy5jbGVhclZhbHVlP3RoaXMuZGVmYXVsdFZhbHVlOnRoaXMuY2xlYXJWYWx1ZX0saXNDbGVhcmFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGl0YWJsZSYmdGhpcy5jbGVhcmFibGUmJkpTT04uc3RyaW5naWZ5KHRoaXMuY29tcHV0ZWRDbGVhclZhbHVlKSE9PUpTT04uc3RyaW5naWZ5KHRoaXMudmFsdWUpfSxtb2RhbEJ0bkNvbG9yOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29sb3J9fSxtZXRob2RzOnt0b2dnbGU6ZnVuY3Rpb24oKXt0aGlzLiRyZWZzLnBvcHVwJiZ0aGlzW3RoaXMuJHJlZnMucG9wdXAuc2hvd2luZz9cImhpZGVcIjpcInNob3dcIl0oKX0sc2hvdzpmdW5jdGlvbigpe2lmKCF0aGlzLmRpc2FibGUpcmV0dXJuIHRoaXMuX19zZXRNb2RlbCh0aGlzLnZhbHVlfHx0aGlzLmRlZmF1bHRWYWx1ZSksdGhpcy4kcmVmcy5wb3B1cC5zaG93KCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kcmVmcy5wb3B1cD90aGlzLiRyZWZzLnBvcHVwLmhpZGUoKTpQcm9taXNlLnJlc29sdmUoKX0sX19oYW5kbGVLZXlEb3duOmZ1bmN0aW9uKHQpe3N3aXRjaChnZXRFdmVudEtleSh0KSl7Y2FzZSAxMzpjYXNlIDMyOnJldHVybiBzdG9wQW5kUHJldmVudCh0KSx0aGlzLnNob3coKTtjYXNlIDg6dGhpcy5pc0NsZWFyYWJsZSYmdGhpcy5jbGVhcigpfX0sX19vbkZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5kaXNhYmxlfHx0aGlzLmZvY3VzZWR8fCh0aGlzLm1vZGVsPWNsb25lKHRoaXMudmFsdWV8fHRoaXMuZGVmYXVsdFZhbHVlKSx0aGlzLmZvY3VzZWQ9ITAsdGhpcy4kZW1pdChcImZvY3VzXCIpKX0sX19vbkJsdXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLmZvY3VzZWQmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5hY3RpdmVFbGVtZW50O2UuJHJlZnMucG9wdXAmJmUuJHJlZnMucG9wdXAuc2hvd2luZyYmKHQ9PT1kb2N1bWVudC5ib2R5fHxlLiRyZWZzLnBvcHVwLiRlbC5jb250YWlucyh0KSl8fChlLl9fb25IaWRlKCksZS5oaWRlKCkpfSwxKX0sX19vbkhpZGU6ZnVuY3Rpb24odCxlKXsodHx8dGhpcy5pc1BvcG92ZXIpJiZ0aGlzLl9fdXBkYXRlKHQpLHRoaXMuZm9jdXNlZCYmKGU/dGhpcy4kZWwuZm9jdXMoKToodGhpcy4kZW1pdChcImJsdXJcIiksdGhpcy5mb2N1c2VkPSExKSl9LF9fc2V0TW9kZWw6ZnVuY3Rpb24odCxlKXt0aGlzLm1vZGVsPWNsb25lKHQpLChlfHx0aGlzLmlzUG9wb3ZlcikmJnRoaXMuX191cGRhdGUoZSl9LF9faGFzTW9kZWxDaGFuZ2VkOmZ1bmN0aW9uKCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMubW9kZWwpIT09SlNPTi5zdHJpbmdpZnkodGhpcy52YWx1ZSl9LF9fdXBkYXRlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtlLl9faGFzTW9kZWxDaGFuZ2VkKCkmJihlLiRlbWl0KFwiaW5wdXRcIixlLm1vZGVsKSx0JiZlLiRlbWl0KFwiY2hhbmdlXCIsZS5tb2RlbCkpfSl9LF9fZ2V0UGlja2VyOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcyxzPVt0KFFDb2xvclBpY2tlcix7c3RhdGljQ2xhc3M6XCJuby1ib3JkZXJcIisoZT9cIiBmdWxsLXdpZHRoXCI6XCJcIikscHJvcHM6T2JqZWN0LmFzc2lnbih7fSx0aGlzLiRhdHRycyx7dmFsdWU6dGhpcy5tb2RlbCxkaXNhYmxlOnRoaXMuZGlzYWJsZSxyZWFkb25seTp0aGlzLnJlYWRvbmx5LGZvcm1hdE1vZGVsOnRoaXMuZm9ybWF0TW9kZWwsZGFyazp0aGlzLmRhcmssbm9QYXJlbnRGaWVsZDohMH0pLG9uOntpbnB1dDpmdW5jdGlvbih0KXtyZXR1cm4gaS4kbmV4dFRpY2soZnVuY3Rpb24oKXtyZXR1cm4gaS5fX3NldE1vZGVsKHQpfSl9fX0pXTtyZXR1cm4gZSYmcy5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJtb2RhbC1idXR0b25zIG1vZGFsLWJ1dHRvbnMtdG9wIHJvdyBmdWxsLXdpZHRoXCIsY2xhc3M6dGhpcy5kYXJrP1wiYmctYmxhY2tcIjpudWxsfSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbFwifSksdChRQnRuLHtwcm9wczp7Y29sb3I6dGhpcy5tb2RhbEJ0bkNvbG9yLGZsYXQ6ITAsbGFiZWw6dGhpcy5jYW5jZWxMYWJlbHx8dGhpcy4kcS5pMThuLmxhYmVsLmNhbmNlbCxub1JpcHBsZTohMH0sb246e2NsaWNrOmZ1bmN0aW9uKCl7aS5fX29uSGlkZSghMSwhMCksaS5oaWRlKCl9fX0pLHRoaXMuZWRpdGFibGU/dChRQnRuLHtwcm9wczp7Y29sb3I6dGhpcy5tb2RhbEJ0bkNvbG9yLGZsYXQ6ITAsbGFiZWw6dGhpcy5va0xhYmVsfHx0aGlzLiRxLmkxOG4ubGFiZWwuc2V0LG5vUmlwcGxlOiEwLGRpc2FibGU6IXRoaXMubW9kZWx9LG9uOntjbGljazpmdW5jdGlvbigpe2kuX19vbkhpZGUoITAsITApLGkuaGlkZSgpfX19KTpudWxsXSkpLHN9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdChRSW5wdXRGcmFtZSx7c3RhdGljQ2xhc3M6XCJxLWNvbG9yLWlucHV0XCIscHJvcHM6e3ByZWZpeDp0aGlzLnByZWZpeCxzdWZmaXg6dGhpcy5zdWZmaXgsc3RhY2tMYWJlbDp0aGlzLnN0YWNrTGFiZWwsZmxvYXRMYWJlbDp0aGlzLmZsb2F0TGFiZWwsZXJyb3I6dGhpcy5lcnJvcix3YXJuaW5nOnRoaXMud2FybmluZyxkaXNhYmxlOnRoaXMuZGlzYWJsZSxyZWFkb25seTp0aGlzLnJlYWRvbmx5LGludmVydGVkOnRoaXMuaW52ZXJ0ZWQsaW52ZXJ0ZWRMaWdodDp0aGlzLmludmVydGVkTGlnaHQsZGFyazp0aGlzLmRhcmssaGlkZVVuZGVybGluZTp0aGlzLmhpZGVVbmRlcmxpbmUsYmVmb3JlOnRoaXMuYmVmb3JlLGFmdGVyOnRoaXMuYWZ0ZXIsY29sb3I6dGhpcy5jb2xvcixub1BhcmVudEZpZWxkOnRoaXMubm9QYXJlbnRGaWVsZCxmb2N1c2VkOnRoaXMuZm9jdXNlZHx8dGhpcy4kcmVmcy5wb3B1cCYmdGhpcy4kcmVmcy5wb3B1cC5zaG93aW5nLGZvY3VzYWJsZTohMCxsZW5ndGg6dGhpcy5hY3R1YWxWYWx1ZS5sZW5ndGh9LG5hdGl2ZU9uOntjbGljazp0aGlzLnRvZ2dsZSxmb2N1czp0aGlzLl9fb25Gb2N1cyxibHVyOnRoaXMuX19vbkJsdXIsa2V5ZG93bjp0aGlzLl9faGFuZGxlS2V5RG93bn19LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sIHEtaW5wdXQtdGFyZ2V0IGVsbGlwc2lzXCIsY2xhc3M6dGhpcy5mYWtlSW5wdXRDbGFzc2VzfSxbdGhpcy5mYWtlSW5wdXRWYWx1ZV0pLHRoaXMuaXNQb3BvdmVyP3QoUVBvcG92ZXIse3JlZjpcInBvcHVwXCIscHJvcHM6e2NvdmVyOiEwLGtlZXBPblNjcmVlbjohMCxkaXNhYmxlOnRoaXMuZGlzYWJsZSxhbmNob3JDbGljazohMSxtYXhIZWlnaHQ6XCIxMDB2aFwifSxzbG90OlwiYWZ0ZXJcIixvbjp7c2hvdzp0aGlzLl9fb25Gb2N1cyxoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIGUuX19vbkhpZGUoITAsITApfX19LHRoaXMuX19nZXRQaWNrZXIodCkpOnQoUU1vZGFsLHtyZWY6XCJwb3B1cFwiLHN0YXRpY0NsYXNzOlwid2l0aC1iYWNrZHJvcFwiLHByb3BzOntjb250ZW50Q3NzOmNvbnRlbnRDc3MsbWluaW1pemVkOiEwLHBvc2l0aW9uOm51bGwsdHJhbnNpdGlvbjp0aGlzLnRyYW5zaXRpb259LG9uOntkaXNtaXNzOmZ1bmN0aW9uKCl7cmV0dXJuIGUuX19vbkhpZGUoITEsITApfX19LHRoaXMuX19nZXRQaWNrZXIodCwhMCkpLHRoaXMuaXNDbGVhcmFibGU/dChRSWNvbix7c2xvdDpcImFmdGVyXCIscHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLmlucHV0W1wiY2xlYXJcIisodGhpcy5pc0ludmVydGVkP1wiSW52ZXJ0ZWRcIjpcIlwiKV19LG5hdGl2ZU9uOntjbGljazp0aGlzLmNsZWFyfSxzdGF0aWNDbGFzczpcInEtaWYtY29udHJvbFwifSk6bnVsbCx0KFFJY29uLHtzbG90OlwiYWZ0ZXJcIixwcm9wczp7bmFtZTp0aGlzLiRxLmljb24uaW5wdXQuZHJvcGRvd259LHN0YXRpY0NsYXNzOlwicS1pZi1jb250cm9sXCJ9KV0pfX0sUUNvbnRleHRNZW51PXtuYW1lOlwiUUNvbnRleHRNZW51XCIscHJvcHM6e2Rpc2FibGU6Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3JldHVybnttb2JpbGU6dGhpcy4kcS5wbGF0Zm9ybS5pcy5tb2JpbGV9fSxtZXRob2RzOntoaWRlOmZ1bmN0aW9uKHQpe2lmKHRoaXMuJHJlZnMucG9wdXApcmV0dXJuIHRoaXMubW9iaWxlJiZ0aGlzLnRhcmdldC5jbGFzc0xpc3QucmVtb3ZlKFwibm9uLXNlbGVjdGFibGVcIiksdGhpcy4kcmVmcy5wb3B1cC5oaWRlKHQpfSxzaG93OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5kaXNhYmxlfHwodGhpcy5tb2JpbGU/dGhpcy4kcmVmcy5wb3B1cCYmKHRoaXMuZXZlbnQ9dCx0aGlzLiRyZWZzLnBvcHVwLnNob3codCkpOnQmJihzdG9wQW5kUHJldmVudCh0KSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS4kcmVmcy5wb3B1cCYmKGUuZXZlbnQ9dCxlLiRyZWZzLnBvcHVwLnNob3codCkpfSwxMDApKSl9LF9fZGVza3RvcEJvZHlIaWRlOmZ1bmN0aW9uKHQpe3RoaXMuJGVsLmNvbnRhaW5zKHQudGFyZ2V0KXx8dGhpcy5oaWRlKHQpfSxfX2Rlc2t0b3BPblNob3c6ZnVuY3Rpb24oKXtkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoXCJjb250ZXh0bWVudVwiLHRoaXMuX19kZXNrdG9wQm9keUhpZGUsITApLGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsdGhpcy5fX2Rlc2t0b3BCb2R5SGlkZSwhMCksdGhpcy4kZW1pdChcInNob3dcIix0aGlzLmV2ZW50KX0sX19kZXNrdG9wT25IaWRlOmZ1bmN0aW9uKHQpe2RvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNvbnRleHRtZW51XCIsdGhpcy5fX2Rlc2t0b3BCb2R5SGlkZSwhMCksZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIix0aGlzLl9fZGVza3RvcEJvZHlIaWRlLCEwKSx0aGlzLiRlbWl0KFwiaGlkZVwiLHRoaXMuZXZlbnQsdCl9LF9fbW9iaWxlVG91Y2hTdGFydEhhbmRsZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLl9fbW9iaWxlQ2xlYW51cCgpLHQmJnQudG91Y2hlcyYmdC50b3VjaGVzLmxlbmd0aD4xfHwodGhpcy50YXJnZXQuY2xhc3NMaXN0LmFkZChcIm5vbi1zZWxlY3RhYmxlXCIpLHRoaXMudG91Y2hUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dCYmc3RvcEFuZFByZXZlbnQodCksZS5fX21vYmlsZUNsZWFudXAoKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5zaG93KHQpfSwxMCl9LDYwMCkpfSxfX21vYmlsZUNsZWFudXA6ZnVuY3Rpb24oKXt0aGlzLnRhcmdldC5jbGFzc0xpc3QucmVtb3ZlKFwibm9uLXNlbGVjdGFibGVcIiksY2xlYXJUaW1lb3V0KHRoaXMudG91Y2hUaW1lcil9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5tb2JpbGU/dChRTW9kYWwse3JlZjpcInBvcHVwXCIscHJvcHM6e21pbmltaXplZDohMH0sb246e3Nob3c6ZnVuY3Rpb24oKXtlLiRlbWl0KFwic2hvd1wiLGUuZXZlbnQpfSxoaWRlOmZ1bmN0aW9uKHQpe2UuJGVtaXQoXCJoaWRlXCIsZS5ldmVudCx0KX19fSx0aGlzLiRzbG90cy5kZWZhdWx0KTp0KFFQb3BvdmVyLHtyZWY6XCJwb3B1cFwiLHByb3BzOnthbmNob3JDbGljazohMSx0b3VjaFBvc2l0aW9uOiEwfSxvbjp7c2hvdzp0aGlzLl9fZGVza3RvcE9uU2hvdyxoaWRlOnRoaXMuX19kZXNrdG9wT25IaWRlfX0sdGhpcy4kc2xvdHMuZGVmYXVsdCl9LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMubW9iaWxlP3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7dC50YXJnZXQ9dC4kZWwucGFyZW50Tm9kZSx0LnRhcmdldC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLHQuX19tb2JpbGVUb3VjaFN0YXJ0SGFuZGxlciksW1widG91Y2hjYW5jZWxcIixcInRvdWNobW92ZVwiLFwidG91Y2hlbmRcIl0uZm9yRWFjaChmdW5jdGlvbihlKXt0LnRhcmdldC5hZGRFdmVudExpc3RlbmVyKGUsdC5fX21vYmlsZUNsZWFudXApfSl9KToodGhpcy50YXJnZXQ9dGhpcy4kZWwucGFyZW50Tm9kZSx0aGlzLnRhcmdldC5hZGRFdmVudExpc3RlbmVyKFwiY29udGV4dG1lbnVcIix0aGlzLnNob3cpKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5tb2JpbGU/KHRoaXMudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIsdGhpcy5fX21vYmlsZVRvdWNoU3RhcnRIYW5kbGVyKSxbXCJ0b3VjaGNhbmNlbFwiLFwidG91Y2htb3ZlXCIsXCJ0b3VjaGVuZFwiXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSx0Ll9fbW9iaWxlQ2xlYW51cCl9KSk6dGhpcy50YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNvbnRleHRtZW51XCIsdGhpcy5zaG93KX19LG1vZGVsVmFsaWRhdG9yPWZ1bmN0aW9uKHQpe3ZhciBlPXR5cGVvZiB0O3JldHVybiBudWxsPT09dHx8dm9pZCAwPT09dHx8XCJudW1iZXJcIj09PWV8fFwic3RyaW5nXCI9PT1lfHxpc0RhdGUodCl9LGlubGluZT17dmFsdWU6e3ZhbGlkYXRvcjptb2RlbFZhbGlkYXRvcixyZXF1aXJlZDohMH0sZGVmYXVsdFZhbHVlOnt0eXBlOltTdHJpbmcsTnVtYmVyLERhdGVdLGRlZmF1bHQ6bnVsbH0sdHlwZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImRhdGVcIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1wiZGF0ZVwiLFwidGltZVwiLFwiZGF0ZXRpbWVcIl0uaW5jbHVkZXModCl9fSxjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInByaW1hcnlcIn0sZGFyazpCb29sZWFuLG1pbjp7dmFsaWRhdG9yOm1vZGVsVmFsaWRhdG9yLGRlZmF1bHQ6bnVsbH0sbWF4Ont2YWxpZGF0b3I6bW9kZWxWYWxpZGF0b3IsZGVmYXVsdDpudWxsfSxoZWFkZXJMYWJlbDpTdHJpbmcsZmlyc3REYXlPZldlZWs6TnVtYmVyLGZvcm1hdE1vZGVsOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiYXV0b1wiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJhdXRvXCIsXCJkYXRlXCIsXCJudW1iZXJcIixcInN0cmluZ1wiXS5pbmNsdWRlcyh0KX19LGZvcm1hdDI0aDp7dHlwZTpbQm9vbGVhbixOdW1iZXJdLGRlZmF1bHQ6MCx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuWyEwLCExLDBdLmluY2x1ZGVzKHQpfX0sZGVmYXVsdFZpZXc6e3R5cGU6U3RyaW5nLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJ5ZWFyXCIsXCJtb250aFwiLFwiZGF5XCIsXCJob3VyXCIsXCJtaW51dGVcIl0uaW5jbHVkZXModCl9fSxtaW5pbWFsOkJvb2xlYW59LGlucHV0PXtmb3JtYXQ6U3RyaW5nLG9rTGFiZWw6U3RyaW5nLGNhbmNlbExhYmVsOlN0cmluZyxkaXNwbGF5VmFsdWU6U3RyaW5nfSxNSUxMSVNFQ09ORFNfSU5fREFZPTg2NGU1LE1JTExJU0VDT05EU19JTl9IT1VSPTM2ZTUsTUlMTElTRUNPTkRTX0lOX01JTlVURT02ZTQsdG9rZW49L1xcWygoPzpbXlxcXVxcXFxdfFxcXFxdfFxcXFwpKilcXF18ZHsxLDR9fE17MSw0fXxtezEsMn18d3sxLDJ9fFFvfERvfER7MSw0fXxZWSg/OllZKT98SHsxLDJ9fGh7MSwyfXxzezEsMn18U3sxLDN9fFp7MSwyfXxhezEsMn18W0FRRXhYXS9nLHJlTXlTUUxEYXRlVGltZVN0cj0vXlswLTldezR9LVswLTldezJ9LVswLTldezJ9IFswLTldezJ9OlswLTldezJ9OlswLTldezJ9KC5bMC05XXs2fSk/JC87ZnVuY3Rpb24gZm9ybWF0VGltZXpvbmUodCxlKXt2b2lkIDA9PT1lJiYoZT1cIlwiKTt2YXIgaT10PjA/XCItXCI6XCIrXCIscz1NYXRoLmFicyh0KSxuPXMlNjA7cmV0dXJuIGkrcGFkKE1hdGguZmxvb3Iocy82MCkpK2UrcGFkKG4pfWZ1bmN0aW9uIHNldE1vbnRoKHQsZSl7dmFyIGk9bmV3IERhdGUodC5nZXRGdWxsWWVhcigpLGUsMCwwLDAsMCwwKS5nZXREYXRlKCk7dC5zZXRNb250aChlLTEsTWF0aC5taW4oaSx0LmdldERhdGUoKSkpfWZ1bmN0aW9uIGJ1aWxkRGF0ZVZhbCh0KXtyZXR1cm4gbmV3IERhdGUoaXNTdHJpbmcodCkmJm51bGwhPT1yZU15U1FMRGF0ZVRpbWVTdHIuZXhlYyh0KT90LnN1YnN0cmluZygwLDIzKS5yZXBsYWNlKFwiIFwiLFwiVFwiKTp0KX1mdW5jdGlvbiBnZXRDaGFuZ2UodCxlLGkpe3ZhciBzPWJ1aWxkRGF0ZVZhbCh0KSxuPWk/MTotMTtyZXR1cm4gT2JqZWN0LmtleXMoZSkuZm9yRWFjaChmdW5jdGlvbih0KXtpZihcIm1vbnRoXCIhPT10KXt2YXIgaT1cInllYXJcIj09PXQ/XCJGdWxsWWVhclwiOmNhcGl0YWxpemUoXCJkYXlzXCI9PT10P1wiZGF0ZVwiOnQpO3NbXCJzZXRcIitpXShzW1wiZ2V0XCIraV0oKStuKmVbdF0pfWVsc2Ugc2V0TW9udGgocyxzLmdldE1vbnRoKCkrMStuKmUubW9udGgpfSksc31mdW5jdGlvbiBpc1ZhbGlkKHQpe2lmKFwibnVtYmVyXCI9PXR5cGVvZiB0KXJldHVybiEwO3ZhciBlPURhdGUucGFyc2UodCk7cmV0dXJuITE9PT1pc05hTihlKX1mdW5jdGlvbiBidWlsZERhdGUodCxlKXtyZXR1cm4gYWRqdXN0RGF0ZShuZXcgRGF0ZSx0LGUpfWZ1bmN0aW9uIGdldERheU9mV2Vlayh0KXt2YXIgZT1idWlsZERhdGVWYWwodCkuZ2V0RGF5KCk7cmV0dXJuIDA9PT1lPzc6ZX1mdW5jdGlvbiBnZXRXZWVrT2ZZZWFyKHQpe3ZhciBlPW5ldyBEYXRlKHQuZ2V0RnVsbFllYXIoKSx0LmdldE1vbnRoKCksdC5nZXREYXRlKCkpO2Uuc2V0RGF0ZShlLmdldERhdGUoKS0oZS5nZXREYXkoKSs2KSU3KzMpO3ZhciBpPW5ldyBEYXRlKGUuZ2V0RnVsbFllYXIoKSwwLDQpO2kuc2V0RGF0ZShpLmdldERhdGUoKS0oaS5nZXREYXkoKSs2KSU3KzMpO3ZhciBzPWUuZ2V0VGltZXpvbmVPZmZzZXQoKS1pLmdldFRpbWV6b25lT2Zmc2V0KCk7ZS5zZXRIb3VycyhlLmdldEhvdXJzKCktcyk7dmFyIG49KGUtaSkvKDcqTUlMTElTRUNPTkRTX0lOX0RBWSk7cmV0dXJuIDErTWF0aC5mbG9vcihuKX1mdW5jdGlvbiBpc0JldHdlZW5EYXRlcyh0LGUsaSxzKXt2b2lkIDA9PT1zJiYocz17fSk7dmFyIG49YnVpbGREYXRlVmFsKGUpLmdldFRpbWUoKSxvPWJ1aWxkRGF0ZVZhbChpKS5nZXRUaW1lKCkscj1idWlsZERhdGVWYWwodCkuZ2V0VGltZSgpO3JldHVybiBzLmluY2x1c2l2ZUZyb20mJm4tLSxzLmluY2x1c2l2ZVRvJiZvKysscj5uJiZyPG99ZnVuY3Rpb24gYWRkVG9EYXRlKHQsZSl7cmV0dXJuIGdldENoYW5nZSh0LGUsITApfWZ1bmN0aW9uIHN1YnRyYWN0RnJvbURhdGUodCxlKXtyZXR1cm4gZ2V0Q2hhbmdlKHQsZSwhMSl9ZnVuY3Rpb24gYWRqdXN0RGF0ZSh0LGUsaSl7dmFyIHM9YnVpbGREYXRlVmFsKHQpLG49XCJzZXRcIisoaT9cIlVUQ1wiOlwiXCIpO3JldHVybiBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKFwibW9udGhcIiE9PXQpe3ZhciBpPVwieWVhclwiPT09dD9cIkZ1bGxZZWFyXCI6dC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSt0LnNsaWNlKDEpO3NbXCJcIituK2ldKGVbdF0pfWVsc2Ugc2V0TW9udGgocyxlLm1vbnRoKX0pLHN9ZnVuY3Rpb24gc3RhcnRPZkRhdGUodCxlKXt2YXIgaT1idWlsZERhdGVWYWwodCk7c3dpdGNoKGUpe2Nhc2VcInllYXJcIjppLnNldE1vbnRoKDApO2Nhc2VcIm1vbnRoXCI6aS5zZXREYXRlKDEpO2Nhc2VcImRheVwiOmkuc2V0SG91cnMoMCk7Y2FzZVwiaG91clwiOmkuc2V0TWludXRlcygwKTtjYXNlXCJtaW51dGVcIjppLnNldFNlY29uZHMoMCk7Y2FzZVwic2Vjb25kXCI6aS5zZXRNaWxsaXNlY29uZHMoMCl9cmV0dXJuIGl9ZnVuY3Rpb24gZW5kT2ZEYXRlKHQsZSl7dmFyIGk9YnVpbGREYXRlVmFsKHQpO3N3aXRjaChlKXtjYXNlXCJ5ZWFyXCI6aS5zZXRNb250aCgxMSk7Y2FzZVwibW9udGhcIjppLnNldERhdGUoZGF5c0luTW9udGgodCkpO2Nhc2VcImRheVwiOmkuc2V0SG91cnMoMjMpO2Nhc2VcImhvdXJcIjppLnNldE1pbnV0ZXMoNTkpO2Nhc2VcIm1pbnV0ZVwiOmkuc2V0U2Vjb25kcyg1OSk7Y2FzZVwic2Vjb25kXCI6aS5zZXRNaWxsaXNlY29uZHMoNTkpfXJldHVybiBpfWZ1bmN0aW9uIGdldE1heERhdGUodCl7Zm9yKHZhciBlPVtdLGk9YXJndW1lbnRzLmxlbmd0aC0xO2ktLSA+MDspZVtpXT1hcmd1bWVudHNbaSsxXTt2YXIgcz1idWlsZERhdGVWYWwodCk7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbih0KXtzPU1hdGgubWF4KHMsYnVpbGREYXRlVmFsKHQpKX0pLHN9ZnVuY3Rpb24gZ2V0TWluRGF0ZSh0KXtmb3IodmFyIGU9W10saT1hcmd1bWVudHMubGVuZ3RoLTE7aS0tID4wOyllW2ldPWFyZ3VtZW50c1tpKzFdO3ZhciBzPWJ1aWxkRGF0ZVZhbCh0KTtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3M9TWF0aC5taW4ocyxidWlsZERhdGVWYWwodCkpfSksc31mdW5jdGlvbiBnZXREaWZmKHQsZSxpKXtyZXR1cm4odC5nZXRUaW1lKCktdC5nZXRUaW1lem9uZU9mZnNldCgpKk1JTExJU0VDT05EU19JTl9NSU5VVEUtKGUuZ2V0VGltZSgpLWUuZ2V0VGltZXpvbmVPZmZzZXQoKSpNSUxMSVNFQ09ORFNfSU5fTUlOVVRFKSkvaX1mdW5jdGlvbiBnZXREYXRlRGlmZih0LGUsaSl7dm9pZCAwPT09aSYmKGk9XCJkYXlzXCIpO3ZhciBzPWJ1aWxkRGF0ZVZhbCh0KSxuPWJ1aWxkRGF0ZVZhbChlKTtzd2l0Y2goaSl7Y2FzZVwieWVhcnNcIjpyZXR1cm4gcy5nZXRGdWxsWWVhcigpLW4uZ2V0RnVsbFllYXIoKTtjYXNlXCJtb250aHNcIjpyZXR1cm4gMTIqKHMuZ2V0RnVsbFllYXIoKS1uLmdldEZ1bGxZZWFyKCkpK3MuZ2V0TW9udGgoKS1uLmdldE1vbnRoKCk7Y2FzZVwiZGF5c1wiOnJldHVybiBnZXREaWZmKHN0YXJ0T2ZEYXRlKHMsXCJkYXlcIiksc3RhcnRPZkRhdGUobixcImRheVwiKSxNSUxMSVNFQ09ORFNfSU5fREFZKTtjYXNlXCJob3Vyc1wiOnJldHVybiBnZXREaWZmKHN0YXJ0T2ZEYXRlKHMsXCJob3VyXCIpLHN0YXJ0T2ZEYXRlKG4sXCJob3VyXCIpLE1JTExJU0VDT05EU19JTl9IT1VSKTtjYXNlXCJtaW51dGVzXCI6cmV0dXJuIGdldERpZmYoc3RhcnRPZkRhdGUocyxcIm1pbnV0ZVwiKSxzdGFydE9mRGF0ZShuLFwibWludXRlXCIpLE1JTExJU0VDT05EU19JTl9NSU5VVEUpO2Nhc2VcInNlY29uZHNcIjpyZXR1cm4gZ2V0RGlmZihzdGFydE9mRGF0ZShzLFwic2Vjb25kXCIpLHN0YXJ0T2ZEYXRlKG4sXCJzZWNvbmRcIiksMWUzKX19ZnVuY3Rpb24gZ2V0RGF5T2ZZZWFyKHQpe3JldHVybiBnZXREYXRlRGlmZih0LHN0YXJ0T2ZEYXRlKHQsXCJ5ZWFyXCIpLFwiZGF5c1wiKSsxfWZ1bmN0aW9uIGluZmVyRGF0ZUZvcm1hdCh0KXtyZXR1cm4gaXNEYXRlKHQpP1wiZGF0ZVwiOlwibnVtYmVyXCI9PXR5cGVvZiB0P1wibnVtYmVyXCI6XCJzdHJpbmdcIn1mdW5jdGlvbiBjb252ZXJ0RGF0ZVRvRm9ybWF0KHQsZSxpKXtpZih0fHwwPT09dClzd2l0Y2goZSl7Y2FzZVwiZGF0ZVwiOnJldHVybiB0O2Nhc2VcIm51bWJlclwiOnJldHVybiB0LmdldFRpbWUoKTtkZWZhdWx0OnJldHVybiBmb3JtYXREYXRlKHQsaSl9fWZ1bmN0aW9uIGdldERhdGVCZXR3ZWVuKHQsZSxpKXt2YXIgcz1idWlsZERhdGVWYWwodCk7aWYoZSl7dmFyIG49YnVpbGREYXRlVmFsKGUpO2lmKHM8bilyZXR1cm4gbn1pZihpKXt2YXIgbz1idWlsZERhdGVWYWwoaSk7aWYocz5vKXJldHVybiBvfXJldHVybiBzfWZ1bmN0aW9uIGlzU2FtZURhdGUodCxlLGkpe3ZhciBzPWJ1aWxkRGF0ZVZhbCh0KSxuPWJ1aWxkRGF0ZVZhbChlKTtpZih2b2lkIDA9PT1pKXJldHVybiBzLmdldFRpbWUoKT09PW4uZ2V0VGltZSgpO3N3aXRjaChpKXtjYXNlXCJzZWNvbmRcIjppZihzLmdldFNlY29uZHMoKSE9PW4uZ2V0U2Vjb25kcygpKXJldHVybiExO2Nhc2VcIm1pbnV0ZVwiOmlmKHMuZ2V0TWludXRlcygpIT09bi5nZXRNaW51dGVzKCkpcmV0dXJuITE7Y2FzZVwiaG91clwiOmlmKHMuZ2V0SG91cnMoKSE9PW4uZ2V0SG91cnMoKSlyZXR1cm4hMTtjYXNlXCJkYXlcIjppZihzLmdldERhdGUoKSE9PW4uZ2V0RGF0ZSgpKXJldHVybiExO2Nhc2VcIm1vbnRoXCI6aWYocy5nZXRNb250aCgpIT09bi5nZXRNb250aCgpKXJldHVybiExO2Nhc2VcInllYXJcIjppZihzLmdldEZ1bGxZZWFyKCkhPT1uLmdldEZ1bGxZZWFyKCkpcmV0dXJuITE7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoXCJkYXRlIGlzU2FtZURhdGUgdW5rbm93biB1bml0IFwiK2kpfXJldHVybiEwfWZ1bmN0aW9uIGRheXNJbk1vbnRoKHQpe3JldHVybiBuZXcgRGF0ZSh0LmdldEZ1bGxZZWFyKCksdC5nZXRNb250aCgpKzEsMCkuZ2V0RGF0ZSgpfWZ1bmN0aW9uIGdldE9yZGluYWwodCl7aWYodD49MTEmJnQ8PTEzKXJldHVybiB0K1widGhcIjtzd2l0Y2godCUxMCl7Y2FzZSAxOnJldHVybiB0K1wic3RcIjtjYXNlIDI6cmV0dXJuIHQrXCJuZFwiO2Nhc2UgMzpyZXR1cm4gdCtcInJkXCJ9cmV0dXJuIHQrXCJ0aFwifXZhciBmb3JtYXR0ZXI9e1lZOmZ1bmN0aW9uKHQpe3JldHVybiBwYWQodC5nZXRGdWxsWWVhcigpLDQpLnN1YnN0cigyKX0sWVlZWTpmdW5jdGlvbih0KXtyZXR1cm4gcGFkKHQuZ2V0RnVsbFllYXIoKSw0KX0sTTpmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRNb250aCgpKzF9LE1NOmZ1bmN0aW9uKHQpe3JldHVybiBwYWQodC5nZXRNb250aCgpKzEpfSxNTU06ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9e30pLChlLm1vbnRoTmFtZXNTaG9ydHx8aTE4bi5sYW5nLmRhdGUubW9udGhzU2hvcnQpW3QuZ2V0TW9udGgoKV19LE1NTU06ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9e30pLChlLm1vbnRoTmFtZXN8fGkxOG4ubGFuZy5kYXRlLm1vbnRocylbdC5nZXRNb250aCgpXX0sUTpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5jZWlsKCh0LmdldE1vbnRoKCkrMSkvMyl9LFFvOmZ1bmN0aW9uKHQpe3JldHVybiBnZXRPcmRpbmFsKHRoaXMuUSh0KSl9LEQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RGF0ZSgpfSxEbzpmdW5jdGlvbih0KXtyZXR1cm4gZ2V0T3JkaW5hbCh0LmdldERhdGUoKSl9LEREOmZ1bmN0aW9uKHQpe3JldHVybiBwYWQodC5nZXREYXRlKCkpfSxEREQ6ZnVuY3Rpb24odCl7cmV0dXJuIGdldERheU9mWWVhcih0KX0sRERERDpmdW5jdGlvbih0KXtyZXR1cm4gcGFkKGdldERheU9mWWVhcih0KSwzKX0sZDpmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXREYXkoKX0sZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGRkZCh0KS5zbGljZSgwLDIpfSxkZGQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9e30pLChlLmRheU5hbWVzU2hvcnR8fGkxOG4ubGFuZy5kYXRlLmRheXNTaG9ydClbdC5nZXREYXkoKV19LGRkZGQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9e30pLChlLmRheU5hbWVzfHxpMThuLmxhbmcuZGF0ZS5kYXlzKVt0LmdldERheSgpXX0sRTpmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXREYXkoKXx8N30sdzpmdW5jdGlvbih0KXtyZXR1cm4gZ2V0V2Vla09mWWVhcih0KX0sd3c6ZnVuY3Rpb24odCl7cmV0dXJuIHBhZChnZXRXZWVrT2ZZZWFyKHQpKX0sSDpmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRIb3VycygpfSxISDpmdW5jdGlvbih0KXtyZXR1cm4gcGFkKHQuZ2V0SG91cnMoKSl9LGg6ZnVuY3Rpb24odCl7dmFyIGU9dC5nZXRIb3VycygpO3JldHVybiAwPT09ZT8xMjplPjEyP2UlMTI6ZX0saGg6ZnVuY3Rpb24odCl7cmV0dXJuIHBhZCh0aGlzLmgodCkpfSxtOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1pbnV0ZXMoKX0sbW06ZnVuY3Rpb24odCl7cmV0dXJuIHBhZCh0LmdldE1pbnV0ZXMoKSl9LHM6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0U2Vjb25kcygpfSxzczpmdW5jdGlvbih0KXtyZXR1cm4gcGFkKHQuZ2V0U2Vjb25kcygpKX0sUzpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5mbG9vcih0LmdldE1pbGxpc2Vjb25kcygpLzEwMCl9LFNTOmZ1bmN0aW9uKHQpe3JldHVybiBwYWQoTWF0aC5mbG9vcih0LmdldE1pbGxpc2Vjb25kcygpLzEwKSl9LFNTUzpmdW5jdGlvbih0KXtyZXR1cm4gcGFkKHQuZ2V0TWlsbGlzZWNvbmRzKCksMyl9LEE6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSCh0KTwxMj9cIkFNXCI6XCJQTVwifSxhOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLkgodCk8MTI/XCJhbVwiOlwicG1cIn0sYWE6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSCh0KTwxMj9cImEubS5cIjpcInAubS5cIn0sWjpmdW5jdGlvbih0KXtyZXR1cm4gZm9ybWF0VGltZXpvbmUodC5nZXRUaW1lem9uZU9mZnNldCgpLFwiOlwiKX0sWlo6ZnVuY3Rpb24odCl7cmV0dXJuIGZvcm1hdFRpbWV6b25lKHQuZ2V0VGltZXpvbmVPZmZzZXQoKSl9LFg6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguZmxvb3IodC5nZXRUaW1lKCkvMWUzKX0seDpmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRUaW1lKCl9fTtmdW5jdGlvbiBmb3JtYXREYXRlKHQsZSxpKXtpZih2b2lkIDA9PT1lJiYoZT1cIllZWVktTU0tRERUSEg6bW06c3MuU1NTWlwiKSwwPT09dHx8dCl7dmFyIHM9YnVpbGREYXRlVmFsKHQpO3JldHVybiBlLnJlcGxhY2UodG9rZW4sZnVuY3Rpb24odCxlKXtyZXR1cm4gdCBpbiBmb3JtYXR0ZXI/Zm9ybWF0dGVyW3RdKHMsaSk6dm9pZCAwPT09ZT90OmUuc3BsaXQoXCJcXFxcXVwiKS5qb2luKFwiXVwiKX0pfX1mdW5jdGlvbiBtYXRjaEZvcm1hdCh0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9XCJcIiksdC5tYXRjaCh0b2tlbil9ZnVuY3Rpb24gY2xvbmUkMSh0KXtyZXR1cm4gaXNEYXRlKHQpP25ldyBEYXRlKHQuZ2V0VGltZSgpKTp0fXZhciBkYXRlPXtpc1ZhbGlkOmlzVmFsaWQsYnVpbGREYXRlOmJ1aWxkRGF0ZSxnZXREYXlPZldlZWs6Z2V0RGF5T2ZXZWVrLGdldFdlZWtPZlllYXI6Z2V0V2Vla09mWWVhcixpc0JldHdlZW5EYXRlczppc0JldHdlZW5EYXRlcyxhZGRUb0RhdGU6YWRkVG9EYXRlLHN1YnRyYWN0RnJvbURhdGU6c3VidHJhY3RGcm9tRGF0ZSxhZGp1c3REYXRlOmFkanVzdERhdGUsc3RhcnRPZkRhdGU6c3RhcnRPZkRhdGUsZW5kT2ZEYXRlOmVuZE9mRGF0ZSxnZXRNYXhEYXRlOmdldE1heERhdGUsZ2V0TWluRGF0ZTpnZXRNaW5EYXRlLGdldERhdGVEaWZmOmdldERhdGVEaWZmLGdldERheU9mWWVhcjpnZXREYXlPZlllYXIsaW5mZXJEYXRlRm9ybWF0OmluZmVyRGF0ZUZvcm1hdCxjb252ZXJ0RGF0ZVRvRm9ybWF0OmNvbnZlcnREYXRlVG9Gb3JtYXQsZ2V0RGF0ZUJldHdlZW46Z2V0RGF0ZUJldHdlZW4saXNTYW1lRGF0ZTppc1NhbWVEYXRlLGRheXNJbk1vbnRoOmRheXNJbk1vbnRoLGZvcm1hdHRlcjpmb3JtYXR0ZXIsZm9ybWF0RGF0ZTpmb3JtYXREYXRlLG1hdGNoRm9ybWF0Om1hdGNoRm9ybWF0LGNsb25lOmNsb25lJDF9LHJlRGF0ZT0vXlxcZHs0fVteXFxkXVxcZHsyfVteXFxkXVxcZHsyfS8sRGF0ZU1peGluPXtwcm9wczppbmxpbmUsY29tcHV0ZWQ6e2NvbXB1dGVkVmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5cImRhdGVcIj09PXRoaXMudHlwZSYmXCJzdHJpbmdcIj09PXRoaXMuZm9ybWF0TW9kZWwmJnJlRGF0ZS50ZXN0KHRoaXMudmFsdWUpP3RoaXMudmFsdWUuc2xpY2UoMCwxMCkuc3BsaXQoL1teXFxkXS8pLmpvaW4oXCIvXCIpOnRoaXMudmFsdWV9LGNvbXB1dGVkRGVmYXVsdFZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuXCJkYXRlXCI9PT10aGlzLnR5cGUmJlwic3RyaW5nXCI9PT10aGlzLmZvcm1hdE1vZGVsJiZyZURhdGUudGVzdCh0aGlzLmRlZmF1bHRWYWx1ZSk/dGhpcy5kZWZhdWx0VmFsdWUuc2xpY2UoMCwxMCkuc3BsaXQoL1teXFxkXSsvKS5qb2luKFwiL1wiKTp0aGlzLmRlZmF1bHRWYWx1ZX0sY29tcHV0ZWREYXRlRm9ybWF0OmZ1bmN0aW9uKCl7aWYoXCJkYXRlXCI9PT10aGlzLnR5cGUmJlwic3RyaW5nXCI9PT10aGlzLmZvcm1hdE1vZGVsKXJldHVyblwiWVlZWS9NTS9ERCBISDptbTpzc1wifSxtb2RlbDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGlzVmFsaWQodGhpcy5jb21wdXRlZFZhbHVlKT9uZXcgRGF0ZSh0aGlzLmNvbXB1dGVkVmFsdWUpOnRoaXMuY29tcHV0ZWREZWZhdWx0VmFsdWU/bmV3IERhdGUodGhpcy5jb21wdXRlZERlZmF1bHRWYWx1ZSk6c3RhcnRPZkRhdGUobmV3IERhdGUsXCJkYXlcIil9LHNldDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9Y29udmVydERhdGVUb0Zvcm1hdChnZXREYXRlQmV0d2Vlbih0LHRoaXMucG1pbix0aGlzLnBtYXgpLFwiYXV0b1wiPT09dGhpcy5mb3JtYXRNb2RlbD9pbmZlckRhdGVGb3JtYXQodGhpcy52YWx1ZSk6dGhpcy5mb3JtYXRNb2RlbCx0aGlzLmNvbXB1dGVkRGF0ZUZvcm1hdCk7dGhpcy4kZW1pdChcImlucHV0XCIsaSksdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtpc1NhbWVEYXRlKGksZS52YWx1ZSl8fGUuJGVtaXQoXCJjaGFuZ2VcIixpKX0pfX0scG1pbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1pbj9uZXcgRGF0ZSh0aGlzLm1pbik6bnVsbH0scG1heDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1heD9uZXcgRGF0ZSh0aGlzLm1heCk6bnVsbH0sdHlwZUhhc0RhdGU6ZnVuY3Rpb24oKXtyZXR1cm5cImRhdGVcIj09PXRoaXMudHlwZXx8XCJkYXRldGltZVwiPT09dGhpcy50eXBlfSx0eXBlSGFzVGltZTpmdW5jdGlvbigpe3JldHVyblwidGltZVwiPT09dGhpcy50eXBlfHxcImRhdGV0aW1lXCI9PT10aGlzLnR5cGV9LHllYXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tb2RlbC5nZXRGdWxsWWVhcigpfSxtb250aDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsLmdldE1vbnRoKCkrMX0sZGF5OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWwuZ2V0RGF0ZSgpfSxtaW51dGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tb2RlbC5nZXRNaW51dGVzKCl9LGN1cnJlbnRZZWFyOmZ1bmN0aW9uKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpfSx5ZWFySW50ZXJ2YWw6ZnVuY3Rpb24oKXtyZXR1cm57bWluOm51bGwhPT10aGlzLnBtaW4/dGhpcy5wbWluLmdldEZ1bGxZZWFyKCk6KHRoaXMueWVhcnx8dGhpcy5jdXJyZW50WWVhciktODAsbWF4Om51bGwhPT10aGlzLnBtYXg/dGhpcy5wbWF4LmdldEZ1bGxZZWFyKCk6KHRoaXMueWVhcnx8dGhpcy5jdXJyZW50WWVhcikrODB9fSxtb250aEludGVydmFsOmZ1bmN0aW9uKCl7cmV0dXJue21pbjp0aGlzLm1vbnRoTWluLG1heDpudWxsIT09dGhpcy5wbWF4JiZ0aGlzLnBtYXguZ2V0RnVsbFllYXIoKT09PXRoaXMueWVhcj90aGlzLnBtYXguZ2V0TW9udGgoKToxMX19LG1vbnRoTWluOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT10aGlzLnBtaW4mJnRoaXMucG1pbi5nZXRGdWxsWWVhcigpPT09dGhpcy55ZWFyP3RoaXMucG1pbi5nZXRNb250aCgpOjB9LGRheXNJbk1vbnRoOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBEYXRlKHRoaXMueWVhcix0aGlzLm1vZGVsLmdldE1vbnRoKCkrMSwwKS5nZXREYXRlKCl9LGVkaXRhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZGlzYWJsZSYmIXRoaXMucmVhZG9ubHl9LF9fbmVlZHNCb3JkZXI6ZnVuY3Rpb24oKXtyZXR1cm4hMH19LG1ldGhvZHM6e3RvZ2dsZUFtUG06ZnVuY3Rpb24oKXtpZih0aGlzLmVkaXRhYmxlKXt2YXIgdD10aGlzLm1vZGVsLmdldEhvdXJzKCksZT10aGlzLmFtPzEyOi0xMjt0aGlzLm1vZGVsPW5ldyBEYXRlKG5ldyBEYXRlKHRoaXMubW9kZWwpLnNldEhvdXJzKHQrZSkpfX0sX19wYXJzZVR5cGVWYWx1ZTpmdW5jdGlvbih0LGUpe3JldHVyblwibW9udGhcIj09PXQ/bm9ybWFsaXplVG9JbnRlcnZhbChlLDEsMTIpOlwiZGF0ZVwiPT09dD9ub3JtYWxpemVUb0ludGVydmFsKGUsMSx0aGlzLmRheXNJbk1vbnRoKTpcInllYXJcIj09PXQ/bm9ybWFsaXplVG9JbnRlcnZhbChlLHRoaXMueWVhckludGVydmFsLm1pbix0aGlzLnllYXJJbnRlcnZhbC5tYXgpOlwiaG91clwiPT09dD9ub3JtYWxpemVUb0ludGVydmFsKGUsMCwyMyk6XCJtaW51dGVcIj09PXQ/bm9ybWFsaXplVG9JbnRlcnZhbChlLDAsNTkpOnZvaWQgMH19fTtmdW5jdGlvbiBjb252ZXJ0VG9BbVBtKHQpe3JldHVybiAwPT09dD8xMjp0Pj0xMz90LTEyOnR9dmFyIFFEYXRldGltZVBpY2tlcj17bmFtZTpcIlFEYXRldGltZVBpY2tlclwiLG1peGluczpbRGF0ZU1peGluLFBhcmVudEZpZWxkTWl4aW4sQ2FuUmVuZGVyTWl4aW5dLHByb3BzOntkZWZhdWx0VmFsdWU6W1N0cmluZyxOdW1iZXIsRGF0ZV0sZGlzYWJsZTpCb29sZWFuLHJlYWRvbmx5OkJvb2xlYW59LGRpcmVjdGl2ZXM6e1JpcHBsZTpSaXBwbGV9LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57dmlldzp0aGlzLl9fY2FsY1ZpZXcodGhpcy5kZWZhdWx0VmlldyksZHJhZ2dpbmc6ITEsY2VudGVyQ2xvY2tQb3M6MCxmYWtlVmFsdWU6e3llYXI6bnVsbCxtb250aDpudWxsfX19LHdhdGNoOnt2YWx1ZTpmdW5jdGlvbih0KXt0fHwodGhpcy52aWV3PVtcImRhdGVcIixcImRhdGV0aW1lXCJdLmluY2x1ZGVzKHRoaXMudHlwZSk/XCJkYXlcIjpcImhvdXJcIil9LHZpZXc6ZnVuY3Rpb24oKXt0aGlzLl9fc2Nyb2xsVmlldyghMCl9LG1vZGVsOmZ1bmN0aW9uKCl7dGhpcy5mYWtlVmFsdWUubW9udGghPT10aGlzLm1vbnRoJiYodGhpcy5mYWtlVmFsdWUubW9udGg9dGhpcy5tb250aCx0aGlzLl9fc2Nyb2xsVmlldygpKSx0aGlzLmZha2VWYWx1ZS55ZWFyIT09dGhpcy55ZWFyJiYodGhpcy5mYWtlVmFsdWUueWVhcj10aGlzLnllYXIsdGhpcy5fX3Njcm9sbFZpZXcoKSl9fSxjb21wdXRlZDp7Y2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmRpc2FibGUmJnQucHVzaChcImRpc2FibGVkXCIpLHRoaXMucmVhZG9ubHkmJnQucHVzaChcInJlYWRvbmx5XCIpLHRoaXMuZGFyayYmdC5wdXNoKFwicS1kYXRldGltZS1kYXJrXCIpLHRoaXMubWluaW1hbCYmdC5wdXNoKFwicS1kYXRldGltZS1taW5pbWFsXCIpLHRoaXMuY29sb3ImJnQucHVzaChcInRleHQtXCIrdGhpcy5jb2xvciksdH0sZGF0ZUFycm93OmZ1bmN0aW9uKCl7dmFyIHQ9W3RoaXMuJHEuaWNvbi5kYXRldGltZS5hcnJvd0xlZnQsdGhpcy4kcS5pY29uLmRhdGV0aW1lLmFycm93UmlnaHRdO3JldHVybiB0aGlzLiRxLmkxOG4ucnRsP3QucmV2ZXJzZSgpOnR9LGNvbXB1dGVkRm9ybWF0MjRoOmZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLmZvcm1hdDI0aD90aGlzLmZvcm1hdDI0aDp0aGlzLiRxLmkxOG4uZGF0ZS5mb3JtYXQyNGh9LGNvbXB1dGVkRmlyc3REYXlPZldlZWs6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5maXJzdERheU9mV2Vlaz90aGlzLmZpcnN0RGF5T2ZXZWVrOnRoaXMuJHEuaTE4bi5kYXRlLmZpcnN0RGF5T2ZXZWVrfSxoZWFkZXJEYXlOYW1lczpmdW5jdGlvbigpe3ZhciB0PXRoaXMuJHEuaTE4bi5kYXRlLmRheXNTaG9ydCxlPXRoaXMuY29tcHV0ZWRGaXJzdERheU9mV2VlaztyZXR1cm4gZT4wP3Quc2xpY2UoZSw3KS5jb25jYXQodC5zbGljZSgwLGUpKTp0fSxmYWtlTW9kZWw6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IERhdGUodGhpcy5mYWtlWWVhcix0aGlzLmZha2VNb250aC0xLDEpfSxmYWtlWWVhcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZha2VWYWx1ZS55ZWFyfHx0aGlzLnllYXJ9LGZha2VNb250aDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZha2VWYWx1ZS5tb250aHx8dGhpcy5tb250aH0sZGF5c0luTW9udGg6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IERhdGUodGhpcy5mYWtlWWVhcix0aGlzLmZha2VNb250aCwwKS5nZXREYXRlKCl9LG1vbnRoU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuXCJcIit0aGlzLiRxLmkxOG4uZGF0ZS5tb250aHNTaG9ydFt0aGlzLm1vbnRoLTFdfSxtb250aFN0YW1wOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHEuaTE4bi5kYXRlLm1vbnRoc1t0aGlzLmZha2VNb250aC0xXStcIiBcIit0aGlzLmZha2VZZWFyfSx3ZWVrRGF5U3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGVhZGVyTGFiZWx8fHRoaXMuJHEuaTE4bi5kYXRlLmRheXNbdGhpcy5tb2RlbC5nZXREYXkoKV19LGZpbGxlckRheXM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmZha2VNb2RlbC5nZXREYXkoKS10aGlzLmNvbXB1dGVkRmlyc3REYXlPZldlZWs7cmV0dXJuIHQ8MCYmKHQrPTcpLHR9LGJlZm9yZU1pbkRheXM6ZnVuY3Rpb24oKXtpZihudWxsPT09dGhpcy5wbWluKXJldHVybiExO3ZhciB0PXRoaXMucG1pbi5nZXRGdWxsWWVhcigpLGU9dGhpcy5wbWluLmdldE1vbnRoKCkrMTtyZXR1cm4gdD09PXRoaXMuZmFrZVllYXImJmU9PT10aGlzLmZha2VNb250aD90aGlzLnBtaW4uZ2V0RGF0ZSgpLTE6KHQ+dGhpcy5mYWtlWWVhcnx8dD09PXRoaXMuZmFrZVllYXImJmU+dGhpcy5mYWtlTW9udGgpJiZ0aGlzLmRheXNJbk1vbnRofSxhZnRlck1heERheXM6ZnVuY3Rpb24oKXtpZihudWxsPT09dGhpcy5wbWF4KXJldHVybiExO3ZhciB0PXRoaXMucG1heC5nZXRGdWxsWWVhcigpLGU9dGhpcy5wbWF4LmdldE1vbnRoKCkrMTtyZXR1cm4gdD09PXRoaXMuZmFrZVllYXImJmU9PT10aGlzLmZha2VNb250aD90aGlzLmRheXNJbk1vbnRoLXRoaXMubWF4RGF5Oih0PHRoaXMuZmFrZVllYXJ8fHQ9PT10aGlzLmZha2VZZWFyJiZlPHRoaXMuZmFrZU1vbnRoKSYmdGhpcy5kYXlzSW5Nb250aH0sbWF4RGF5OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT10aGlzLnBtYXg/dGhpcy5wbWF4LmdldERhdGUoKTp0aGlzLmRheXNJbk1vbnRofSxkYXRlSW50ZXJ2YWw6ZnVuY3Rpb24oKXt2YXIgdD1udWxsPT09dGhpcy5wbWF4fHwhMT09PXRoaXMuYWZ0ZXJNYXhEYXlzPzA6dGhpcy5hZnRlck1heERheXM7cmV0dXJuIHRoaXMuYmVmb3JlTWluRGF5cz4wfHx0P3ttaW46dGhpcy5iZWZvcmVNaW5EYXlzPjA/dGhpcy5iZWZvcmVNaW5EYXlzKzE6MSxtYXg6dGhpcy5kYXlzSW5Nb250aC10fTp7bWluOjEsbWF4OnRoaXMuZGF5c0luTW9udGh9fSxob3VyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5tb2RlbC5nZXRIb3VycygpO3JldHVybiB0aGlzLmNvbXB1dGVkRm9ybWF0MjRoP3Q6Y29udmVydFRvQW1QbSh0KX0sbWludXRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWwuZ2V0TWludXRlcygpfSxhbTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsLmdldEhvdXJzKCk8PTExfSxjbG9ja1BvaW50ZXJTdHlsZTpmdW5jdGlvbigpe3ZhciB0PVwibWludXRlXCI9PT10aGlzLnZpZXcsZT10PzYwOjEyLGk9W1wicm90YXRlKFwiKyhNYXRoLnJvdW5kKCh0P3RoaXMubWludXRlOnRoaXMuaG91cikqKDM2MC9lKSktMTgwKStcImRlZylcIl07cmV0dXJuIHR8fCF0aGlzLmNvbXB1dGVkRm9ybWF0MjRofHx0aGlzLmhvdXI+MCYmdGhpcy5ob3VyPDEzfHxpLnB1c2goXCJzY2FsZSguNywgLjcpXCIpLHt0cmFuc2Zvcm06aS5qb2luKFwiIFwiKX19LGlzVmFsaWQ6ZnVuY3Rpb24oKXtyZXR1cm4gaXNWYWxpZCh0aGlzLnZhbHVlKX0sdG9kYXk6ZnVuY3Rpb24oKXt2YXIgdD1uZXcgRGF0ZTtyZXR1cm4gaXNTYW1lRGF0ZSh0LHRoaXMuZmFrZU1vZGVsLFwibW9udGhcIik/dC5nZXREYXRlKCk6LTF9fSxtZXRob2RzOntzZXRZZWFyOmZ1bmN0aW9uKHQsZSl7dGhpcy5lZGl0YWJsZSYmKGV8fCh0aGlzLnZpZXc9XCJtb250aFwiKSx0aGlzLm1vZGVsPW5ldyBEYXRlKG5ldyBEYXRlKHRoaXMubW9kZWwpLnNldEZ1bGxZZWFyKHRoaXMuX19wYXJzZVR5cGVWYWx1ZShcInllYXJcIix0KSkpKX0sc2V0TW9udGg6ZnVuY3Rpb24odCxlKXt0aGlzLmVkaXRhYmxlJiYoZXx8KHRoaXMudmlldz1cImRheVwiKSx0aGlzLm1vZGVsPWFkanVzdERhdGUodGhpcy5tb2RlbCx7bW9udGg6dH0pKX0sbW92ZUZha2VNb250aDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmZha2VNb250aCsodD4wPzE6LTEpLGk9dGhpcy5mYWtlWWVhcjtpZihlPDE/KGU9MTIsaS09MSk6ZT4xMiYmKGU9MSxpKz0xKSxudWxsIT09dGhpcy5wbWluJiZ0PjApe3ZhciBzPXRoaXMucG1pbi5nZXRGdWxsWWVhcigpLG49dGhpcy5wbWluLmdldE1vbnRoKCkrMTtpPHM/KGk9cyxlPW4pOmk9PT1zJiZlPG4mJihlPW4pfWlmKG51bGwhPT10aGlzLnBtYXgmJnQ8MCl7dmFyIG89dGhpcy5wbWF4LmdldEZ1bGxZZWFyKCkscj10aGlzLnBtYXguZ2V0TW9udGgoKSsxO2k+bz8oaT1vLGU9cik6aT09PW8mJmU+ciYmKGU9cil9dGhpcy5mYWtlVmFsdWUueWVhcj1pLHRoaXMuZmFrZVZhbHVlLm1vbnRoPWV9LHNldERheTpmdW5jdGlvbih0LGUsaSxzKXtpZih0aGlzLmVkaXRhYmxlKXtpZihpJiZzKXt2YXIgbj1hZGp1c3REYXRlKHRoaXMubW9kZWwse21vbnRoOnN9KTtuLnNldEZ1bGxZZWFyKHRoaXMuX19wYXJzZVR5cGVWYWx1ZShcInllYXJcIixpKSksbi5zZXREYXRlKHRoaXMuX19wYXJzZVR5cGVWYWx1ZShcImRhdGVcIix0KSksdGhpcy5tb2RlbD1ufWVsc2UgdGhpcy5tb2RlbD1uZXcgRGF0ZShuZXcgRGF0ZSh0aGlzLm1vZGVsKS5zZXREYXRlKHRoaXMuX19wYXJzZVR5cGVWYWx1ZShcImRhdGVcIix0KSkpO2V8fFwiZGF0ZVwiIT09dGhpcy50eXBlP2V8fCh0aGlzLnZpZXc9XCJob3VyXCIpOih0aGlzLiRlbWl0KFwiY2FuQ2xvc2VcIiksdGhpcy5taW5pbWFsJiZ0aGlzLnNldFZpZXcodGhpcy5kZWZhdWx0VmlldykpfX0sc2V0SG91cjpmdW5jdGlvbih0KXt0aGlzLmVkaXRhYmxlJiYodD10aGlzLl9fcGFyc2VUeXBlVmFsdWUoXCJob3VyXCIsdCksIXRoaXMuY29tcHV0ZWRGb3JtYXQyNGgmJnQ8MTImJiF0aGlzLmFtJiYodCs9MTIpLHRoaXMubW9kZWw9bmV3IERhdGUobmV3IERhdGUodGhpcy5tb2RlbCkuc2V0SG91cnModCkpKX0sc2V0TWludXRlOmZ1bmN0aW9uKHQpe3RoaXMuZWRpdGFibGUmJih0aGlzLm1vZGVsPW5ldyBEYXRlKG5ldyBEYXRlKHRoaXMubW9kZWwpLnNldE1pbnV0ZXModGhpcy5fX3BhcnNlVHlwZVZhbHVlKFwibWludXRlXCIsdCkpKSl9LHNldFZpZXc6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fX2NhbGNWaWV3KHQpO3RoaXMudmlldyE9PWUmJih0aGlzLnZpZXc9ZSl9LF9fY2FsY1ZpZXc6ZnVuY3Rpb24odCl7c3dpdGNoKHRoaXMudHlwZSl7Y2FzZVwidGltZVwiOnJldHVybltcImhvdXJcIixcIm1pbnV0ZVwiXS5pbmNsdWRlcyh0KT90OlwiaG91clwiO2Nhc2VcImRhdGVcIjpyZXR1cm5bXCJ5ZWFyXCIsXCJtb250aFwiLFwiZGF5XCJdLmluY2x1ZGVzKHQpP3Q6XCJkYXlcIjtkZWZhdWx0OnJldHVybltcInllYXJcIixcIm1vbnRoXCIsXCJkYXlcIixcImhvdXJcIixcIm1pbnV0ZVwiXS5pbmNsdWRlcyh0KT90OlwiZGF5XCJ9fSxfX3BhZDpmdW5jdGlvbih0LGUpe3JldHVybih0PDEwP2V8fFwiMFwiOlwiXCIpK3R9LF9fc2Nyb2xsVmlldzpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKFwieWVhclwiPT09dGhpcy52aWV3fHxcIm1vbnRoXCI9PT10aGlzLnZpZXcpe3QmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLl9fc2Nyb2xsVmlldygpfSwyMDApO3ZhciBpPXRoaXMuJHJlZnMuc2VsZWN0b3Iscz1pP2kucXVlcnlTZWxlY3RvcihcIi5xLWJ0bjpub3QoLmFjdGl2ZSlcIik6bnVsbCxuPWk/aS5xdWVyeVNlbGVjdG9yKFwiLnEtYnRuLmFjdGl2ZVwiKTpudWxsLG89aT9pLm9mZnNldEhlaWdodDowO3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7dmFyIHQ9XCJ5ZWFyXCI9PT1lLnZpZXc/ZS55ZWFyLWUueWVhckludGVydmFsLm1pbjplLm1vbnRoLWUubW9udGhNaW4tMTtvJiZuJiYoaS5zY3JvbGxUb3A9dCoocz9zLm9mZnNldEhlaWdodDowKSsobi5vZmZzZXRIZWlnaHQtbykvMil9KX19LF9fZHJhZ1N0YXJ0OmZ1bmN0aW9uKHQsZSl7c3RvcEFuZFByZXZlbnQodCk7dmFyIGk9dGhpcy4kcmVmcy5jbG9jayxzPW9mZnNldChpKTt0aGlzLmNlbnRlckNsb2NrUG9zPXt0b3A6cy50b3AraGVpZ2h0KGkpLzIsbGVmdDpzLmxlZnQrd2lkdGgoaSkvMn0sdGhpcy5kcmFnZ2luZz0hMCx0aGlzLl9fdXBkYXRlQ2xvY2sodCxlKX0sX19kcmFnTW92ZTpmdW5jdGlvbih0KXt0aGlzLmRyYWdnaW5nJiYoc3RvcEFuZFByZXZlbnQodCksdGhpcy5fX3VwZGF0ZUNsb2NrKHQpKX0sX19kcmFnU3RvcDpmdW5jdGlvbih0LGUpe3N0b3BBbmRQcmV2ZW50KHQpLHRoaXMuZHJhZ2dpbmc9ITEsdm9pZCAwIT09dCYmdGhpcy5fX3VwZGF0ZUNsb2NrKHQsZSksXCJtaW51dGVcIj09PXRoaXMudmlldz8odGhpcy4kZW1pdChcImNhbkNsb3NlXCIpLHRoaXMubWluaW1hbCYmdGhpcy5zZXRWaWV3KHRoaXMuZGVmYXVsdFZpZXcpKTp0aGlzLnZpZXc9XCJtaW51dGVcIn0sX191cGRhdGVDbG9jazpmdW5jdGlvbih0LGUpe2lmKHZvaWQgMCE9PWUpcmV0dXJuIHRoaXNbXCJob3VyXCI9PT10aGlzLnZpZXc/XCJzZXRIb3VyXCI6XCJzZXRNaW51dGVcIl0oZSk7dmFyIGk9cG9zaXRpb24odCkscz1NYXRoLmFicyhpLnRvcC10aGlzLmNlbnRlckNsb2NrUG9zLnRvcCksbj1NYXRoLnNxcnQoTWF0aC5wb3coTWF0aC5hYnMoaS50b3AtdGhpcy5jZW50ZXJDbG9ja1Bvcy50b3ApLDIpK01hdGgucG93KE1hdGguYWJzKGkubGVmdC10aGlzLmNlbnRlckNsb2NrUG9zLmxlZnQpLDIpKSxvPU1hdGguYXNpbihzL24pKigxODAvTWF0aC5QSSk7aWYobz1pLnRvcDx0aGlzLmNlbnRlckNsb2NrUG9zLnRvcD90aGlzLmNlbnRlckNsb2NrUG9zLmxlZnQ8aS5sZWZ0PzkwLW86MjcwK286dGhpcy5jZW50ZXJDbG9ja1Bvcy5sZWZ0PGkubGVmdD9vKzkwOjI3MC1vLFwiaG91clwiPT09dGhpcy52aWV3KXt2YXIgcj1NYXRoLnJvdW5kKG8vMzApO3RoaXMuY29tcHV0ZWRGb3JtYXQyNGgmJihyP248ODUmJihyKz0xMik6cj1uPDg1PzA6MTIpLHRoaXMuc2V0SG91cihyKX1lbHNlIHRoaXMuc2V0TWludXRlKE1hdGgucm91bmQoby82KSl9LF9fcmVwZWF0VGltZW91dDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgoMTAwLDMwMC10KnQqMTApfSxfX2dldFRvcFNlY3Rpb246ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPVt0aGlzLnR5cGVIYXNEYXRlP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLXdlZWtkYXlzdHJpbmdcIn0sW3RoaXMud2Vla0RheVN0cmluZ10pOnZvaWQgMCx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sXCJ9KV07aWYodGhpcy50eXBlSGFzRGF0ZSl7dmFyIHM9W3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWRhdGVzdHJpbmcgcm93IGp1c3RpZnktY2VudGVyIGl0ZW1zLWVuZFwifSxbdChcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWxpbmsgc21hbGwgY29sLWF1dG8gY29sLW1kLTEyXCIsY2xhc3M6e2FjdGl2ZTpcIm1vbnRoXCI9PT10aGlzLnZpZXd9LGF0dHJzOnt0YWJpbmRleDowfSxvbjp7a2V5ZG93bjpmdW5jdGlvbih0KXt2YXIgaT1nZXRFdmVudEtleSh0KTszOD09PWl8fDM5PT09aT8oc3RvcEFuZFByZXZlbnQodCksZS5zZXRNb250aChlLm1vbnRoLTEsITApKTo0MD09PWl8fDM3PT09aT8oc3RvcEFuZFByZXZlbnQodCksZS5zZXRNb250aChlLm1vbnRoKzEsITApKToxMyE9PWkmJjIwIT09aXx8KGUudmlldz1cIm1vbnRoXCIpfX19LFt0KFwic3BhblwiLHthdHRyczp7dGFiaW5kZXg6LTF9LG9uOnRoaXMuZGlzYWJsZT97fTp7Y2xpY2s6ZnVuY3Rpb24oKXtlLnZpZXc9XCJtb250aFwifX19LFt0aGlzLm1vbnRoU3RyaW5nXSldKSx0KFwic3BhblwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtbGluayBjb2wtYXV0byBjb2wtbWQtMTJcIixjbGFzczp7YWN0aXZlOlwiZGF5XCI9PT10aGlzLnZpZXd9LGF0dHJzOnt0YWJpbmRleDowfSxvbjp7a2V5ZG93bjpmdW5jdGlvbih0KXt2YXIgaT1nZXRFdmVudEtleSh0KTszNz09PWl8fDM4PT09aT8oc3RvcEFuZFByZXZlbnQodCksZS5zZXREYXkoZS5kYXktKDM3PT09aT8xOjcpLCEwKSk6Mzk9PT1pfHw0MD09PWk/KHN0b3BBbmRQcmV2ZW50KHQpLGUuc2V0RGF5KGUuZGF5KygzOT09PWk/MTo3KSwhMCkpOjEzIT09aSYmMjAhPT1pfHwoZS52aWV3PVwiZGF5XCIpfX19LFt0KFwic3BhblwiLHthdHRyczp7dGFiaW5kZXg6LTF9LG9uOnRoaXMuZGlzYWJsZT97fTp7Y2xpY2s6ZnVuY3Rpb24oKXtlLnZpZXc9XCJkYXlcIn19fSxbdGhpcy5kYXldKV0pLHQoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1saW5rIHNtYWxsIGNvbC1hdXRvIGNvbC1tZC0xMlwiLGNsYXNzOnthY3RpdmU6XCJ5ZWFyXCI9PT10aGlzLnZpZXd9LGF0dHJzOnt0YWJpbmRleDowfSxvbjp7a2V5ZG93bjpmdW5jdGlvbih0KXt2YXIgaT1nZXRFdmVudEtleSh0KTszOD09PWl8fDM5PT09aT8oc3RvcEFuZFByZXZlbnQodCksZS5zZXRZZWFyKGUueWVhci0xLCEwKSk6NDA9PT1pfHwzNz09PWk/KHN0b3BBbmRQcmV2ZW50KHQpLGUuc2V0WWVhcihlLnllYXIrMSwhMCkpOjEzIT09aSYmMjAhPT1pfHwoZS52aWV3PVwieWVhclwiKX19fSxbdChcInNwYW5cIix7YXR0cnM6e3RhYmluZGV4Oi0xfSxvbjp0aGlzLmRpc2FibGU/e306e2NsaWNrOmZ1bmN0aW9uKCl7ZS52aWV3PVwieWVhclwifX19LFt0aGlzLnllYXJdKV0pXSldO2kucHVzaCh0KFwiZGl2XCIscykpfWlmKHRoaXMudHlwZUhhc1RpbWUpe3ZhciBuPSF0aGlzLmNvbXB1dGVkRm9ybWF0MjRoJiZ0KFwic3BhblwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtYW1wbSBjb2x1bW5cIixhdHRyczp7dGFiaW5kZXg6MH0sb246dGhpcy5fX2FtUG1FdmVudHN9LFt0KFwic3BhblwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtbGlua1wiLGNsYXNzOnthY3RpdmU6dGhpcy5hbX19LFt0KFwic3BhblwiLHthdHRyczp7dGFiaW5kZXg6LTF9LG9uOntjbGljazp0aGlzLnRvZ2dsZUFtUG19fSxbXCJBTVwiXSldKSx0KFwic3BhblwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtbGlua1wiLGNsYXNzOnthY3RpdmU6IXRoaXMuYW19fSxbdChcInNwYW5cIix7YXR0cnM6e3RhYmluZGV4Oi0xfSxvbjp7Y2xpY2s6dGhpcy50b2dnbGVBbVBtfX0sW1wiUE1cIl0pXSldKSxvPVt0KFwic3BhblwiLHtzdGF0aWNDbGFzczpcImNvbC1hdXRvXCIsc3R5bGU6e3RleHRBbGlnbjpcInJpZ2h0XCJ9fSxbdChcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWxpbmtcIixzdHlsZTp7dGV4dEFsaWduOlwicmlnaHRcIn0sY2xhc3M6e2FjdGl2ZTpcImhvdXJcIj09PXRoaXMudmlld30sYXR0cnM6e3RhYmluZGV4OjB9LG9uOntrZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpPWdldEV2ZW50S2V5KHQpOzQwPT09aXx8Mzc9PT1pPyhzdG9wQW5kUHJldmVudCh0KSxlLnNldEhvdXIoZS5ob3VyLTEsITApKTozOD09PWl8fDM5PT09aT8oc3RvcEFuZFByZXZlbnQodCksZS5zZXRIb3VyKGUuaG91cisxLCEwKSk6MTMhPT1pJiYyMCE9PWl8fChlLnZpZXc9XCJob3VyXCIpfX19LFt0KFwic3BhblwiLHthdHRyczp7dGFiaW5kZXg6LTF9LG9uOnRoaXMuZGlzYWJsZT97fTp7Y2xpY2s6ZnVuY3Rpb24oKXtlLnZpZXc9XCJob3VyXCJ9fX0sW3RoaXMuY29tcHV0ZWRGb3JtYXQyNGg/dGhpcy5fX3BhZCh0aGlzLmhvdXIpOnRoaXMuaG91cl0pXSldKSx0KFwic3BhblwiLHtzdHlsZTpcIm9wYWNpdHk6MC42O1wifSxbXCI6XCJdKSx0KFwic3BhblwiLHtzdGF0aWNDbGFzczpcImNvbC1hdXRvIHJvdyBuby13cmFwIGl0ZW1zLWNlbnRlclwiLHN0eWxlOnt0ZXh0QWxpZ246XCJsZWZ0XCJ9fSxbdChcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWxpbmtcIixzdHlsZTp7dGV4dEFsaWduOlwibGVmdFwifSxjbGFzczp7YWN0aXZlOlwibWludXRlXCI9PT10aGlzLnZpZXd9LGF0dHJzOnt0YWJpbmRleDowfSxvbjp7a2V5ZG93bjpmdW5jdGlvbih0KXt2YXIgaT1nZXRFdmVudEtleSh0KTs0MD09PWl8fDM3PT09aT8oc3RvcEFuZFByZXZlbnQodCksZS5zZXRNaW51dGUoZS5taW51dGUtMSwhMCkpOjM4PT09aXx8Mzk9PT1pPyhzdG9wQW5kUHJldmVudCh0KSxlLnNldE1pbnV0ZShlLm1pbnV0ZSsxLCEwKSk6MTMhPT1pJiYyMCE9PWl8fChlLnZpZXc9XCJtaW51dGVcIil9fX0sW3QoXCJzcGFuXCIse2F0dHJzOnt0YWJpbmRleDotMX0sb246dGhpcy5kaXNhYmxlP3t9OntjbGljazpmdW5jdGlvbigpe2Uudmlldz1cIm1pbnV0ZVwifX19LFt0aGlzLl9fcGFkKHRoaXMubWludXRlKV0pXSksbl0pXTtpLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtdGltZSByb3cgc2Nyb2xsIGZsZXgtY2VudGVyXCJ9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1jbG9ja3N0cmluZyBjb2wgcm93IGp1c3RpZnktY2VudGVyIGl0ZW1zLXN0YXJ0XCJ9LG8pXSkpfXJldHVybiBpLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbFwifSkpLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWhlYWRlciBjb2x1bW4gbm8td3JhcCBpdGVtcy1jZW50ZXJcIn0saSl9LF9fZ2V0WWVhclZpZXc6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMsaT1bdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbC1ncm93XCJ9KV0scz1mdW5jdGlvbihzKXtpLnB1c2godChRQnRuLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtYnRuIG5vLWJvcmRlci1yYWRpdXNcIixjbGFzczp7YWN0aXZlOnM9PT1lLnllYXJ9LGF0dHJzOnt0YWJpbmRleDotMX0scHJvcHM6e2ZsYXQ6ITAsZGlzYWJsZTohZS5lZGl0YWJsZX0sb246e2NsaWNrOmZ1bmN0aW9uKCl7ZS5zZXRZZWFyKHMpfX19LFtzXSkpfSxuPXRoaXMueWVhckludGVydmFsLm1pbjtuPD10aGlzLnllYXJJbnRlcnZhbC5tYXg7bisrKXMobik7cmV0dXJuIGkucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sLWdyb3dcIn0pKSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS12aWV3LXllYXIgZml0IGNvbHVtbiBuby13cmFwXCJ9LGkpfSxfX2dldE1vbnRoVmlldzpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcyxpPVt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sLWdyb3dcIn0pXSxzPWZ1bmN0aW9uKHMpe2kucHVzaCh0KFFCdG4se3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1idG4gbm8tYm9yZGVyLXJhZGl1c1wiLGNsYXNzOnthY3RpdmU6cysxPT09ZS5tb250aH0sYXR0cnM6e3RhYmluZGV4Oi0xfSxwcm9wczp7ZmxhdDohMCxkaXNhYmxlOiFlLmVkaXRhYmxlfSxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtlLnNldE1vbnRoKHMrMSl9fX0sW2UuJHEuaTE4bi5kYXRlLm1vbnRoc1tzXV0pKX0sbj10aGlzLm1vbnRoSW50ZXJ2YWwubWluO248PXRoaXMubW9udGhJbnRlcnZhbC5tYXg7bisrKXMobik7cmV0dXJuIGkucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sLWdyb3dcIn0pKSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS12aWV3LW1vbnRoIGZpdCBjb2x1bW4gbm8td3JhcFwifSxpKX0sX19nZXREYXlWaWV3OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLGk9W10scz10aGlzLmZha2VNb250aD09PXRoaXMubW9udGgmJnRoaXMuZmFrZVllYXI9PT10aGlzLnllYXI/dGhpcy5kYXk6LTEsbj0xO248PXRoaXMuZmlsbGVyRGF5cztuKyspaS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWZpbGxlcmRheVwifSkpO2lmKHRoaXMubWluKWZvcih2YXIgbz0xO288PXRoaXMuYmVmb3JlTWluRGF5cztvKyspaS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJyb3cgaXRlbXMtY2VudGVyIGNvbnRlbnQtY2VudGVyIGp1c3RpZnktY2VudGVyIGRpc2FibGVkXCIsY2xhc3M6e1wicS1kYXRldGltZS1kYXktYWN0aXZlXCI6ZS5pc1ZhbGlkJiZvPT09c319LFt0KFwic3BhblwiLFtvXSldKSk7Zm9yKHZhciByPXRoaXMuZGF0ZUludGVydmFsLGE9ci5taW4sbD1yLm1heCxjPWZ1bmN0aW9uKG4pe2kucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicm93IGl0ZW1zLWNlbnRlciBjb250ZW50LWNlbnRlciBqdXN0aWZ5LWNlbnRlciBjdXJzb3ItcG9pbnRlclwiLGNsYXNzOltlLmNvbG9yJiZuPT09cz9cInRleHQtXCIrZS5jb2xvcjpudWxsLHtcInEtZGF0ZXRpbWUtZGF5LWFjdGl2ZVwiOmUuaXNWYWxpZCYmbj09PXMsXCJxLWRhdGV0aW1lLWRheS10b2RheVwiOm49PT1lLnRvZGF5LGRpc2FibGVkOiFlLmVkaXRhYmxlfV0sb246e2NsaWNrOmZ1bmN0aW9uKCl7ZS5zZXREYXkobiwhMSxlLmZha2VZZWFyLGUuZmFrZU1vbnRoKX19fSxbdChcInNwYW5cIixbbl0pXSkpfSxoPWE7aDw9bDtoKyspYyhoKTtpZih0aGlzLm1heClmb3IodmFyIHU9MTt1PD10aGlzLmFmdGVyTWF4RGF5czt1KyspaS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJyb3cgaXRlbXMtY2VudGVyIGNvbnRlbnQtY2VudGVyIGp1c3RpZnktY2VudGVyIGRpc2FibGVkXCIsY2xhc3M6e1wicS1kYXRldGltZS1kYXktYWN0aXZlXCI6ZS5pc1ZhbGlkJiZ1K2UubWF4RGF5PT09c319LFt0KFwic3BhblwiLFt1K2UubWF4RGF5XSldKSk7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLXZpZXctZGF5XCJ9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicm93IGl0ZW1zLWNlbnRlciBjb250ZW50LWNlbnRlclwifSxbdChRQnRuLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtYXJyb3dcIixhdHRyczp7dGFiaW5kZXg6LTF9LHByb3BzOntyb3VuZDohMCxkZW5zZTohMCxmbGF0OiEwLGljb246dGhpcy5kYXRlQXJyb3dbMF0scmVwZWF0VGltZW91dDp0aGlzLl9fcmVwZWF0VGltZW91dCxkaXNhYmxlOnRoaXMuYmVmb3JlTWluRGF5cz4wfHx0aGlzLmRpc2FibGV8fHRoaXMucmVhZG9ubHl9LG9uOntjbGljazpmdW5jdGlvbigpe2UubW92ZUZha2VNb250aCgtMSl9fX0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wgcS1kYXRldGltZS1tb250aC1zdGFtcFwifSxbdGhpcy5tb250aFN0YW1wXSksdChRQnRuLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtYXJyb3dcIixhdHRyczp7dGFiaW5kZXg6LTF9LHByb3BzOntyb3VuZDohMCxkZW5zZTohMCxmbGF0OiEwLGljb246dGhpcy5kYXRlQXJyb3dbMV0scmVwZWF0VGltZW91dDp0aGlzLl9fcmVwZWF0VGltZW91dCxkaXNhYmxlOnRoaXMuYWZ0ZXJNYXhEYXlzPjB8fHRoaXMuZGlzYWJsZXx8dGhpcy5yZWFkb25seX0sb246e2NsaWNrOmZ1bmN0aW9uKCl7ZS5tb3ZlRmFrZU1vbnRoKDEpfX19KV0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLXdlZWtkYXlzIHJvdyBuby13cmFwIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LXN0YXJ0XCJ9LHRoaXMuaGVhZGVyRGF5TmFtZXMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0KFwiZGl2XCIsW2VdKX0pKSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1kYXlzIHJvdyB3cmFwIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LXN0YXJ0IGNvbnRlbnQtY2VudGVyXCJ9LGkpXSl9LF9fZ2V0Q2xvY2tWaWV3OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT1bXTtpZihcImhvdXJcIj09PXRoaXMudmlldyl7dmFyIHMsbixvPVwiXCI7dGhpcy5jb21wdXRlZEZvcm1hdDI0aD8ocz0wLG49MjQsbz1cIiBmbXQyNFwiKToocz0xLG49MTMpO2Zvcih2YXIgcj1mdW5jdGlvbihzKXtpLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtY2xvY2stcG9zaXRpb25cIitvLGNsYXNzOltcInEtZGF0ZXRpbWUtY2xvY2stcG9zLVwiK3Mscz09PWUuaG91cj9cImFjdGl2ZVwiOlwiXCJdLG9uOntcIiFtb3VzZWRvd25cIjpmdW5jdGlvbih0KXtyZXR1cm4gZS5fX2RyYWdTdGFydCh0LHMpfSxcIiFtb3VzZXVwXCI6ZnVuY3Rpb24odCl7cmV0dXJuIGUuX19kcmFnU3RvcCh0LHMpfX19LFt0KFwic3BhblwiLFtzfHxcIjAwXCJdKV0pKX0sYT1zO2E8bjthKyspcihhKX1lbHNlIGZvcih2YXIgbD0wO2w8MTI7bCsrKXt2YXIgYz01Kmw7aS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWNsb2NrLXBvc2l0aW9uXCIsY2xhc3M6W1wicS1kYXRldGltZS1jbG9jay1wb3MtXCIrbCxjPT09ZS5taW51dGU/XCJhY3RpdmVcIjpcIlwiXX0sW3QoXCJzcGFuXCIsW2NdKV0pKX1yZXR1cm4gdChcImRpdlwiLHtyZWY6XCJjbG9ja1wiLGtleTpcImNsb2NrXCIrdGhpcy52aWV3LHN0YXRpY0NsYXNzOlwiY29sdW1uIGl0ZW1zLWNlbnRlciBjb250ZW50LWNlbnRlciBqdXN0aWZ5LWNlbnRlclwifSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtY2xvY2sgY3Vyc29yLXBvaW50ZXJcIixvbjp7bW91c2Vkb3duOnRoaXMuX19kcmFnU3RhcnQsbW91c2Vtb3ZlOnRoaXMuX19kcmFnTW92ZSxtb3VzZXVwOnRoaXMuX19kcmFnU3RvcCx0b3VjaHN0YXJ0OnRoaXMuX19kcmFnU3RhcnQsdG91Y2htb3ZlOnRoaXMuX19kcmFnTW92ZSx0b3VjaGVuZDp0aGlzLl9fZHJhZ1N0b3B9fSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtY2xvY2stY2lyY2xlIGZ1bGwtd2lkdGggZnVsbC1oZWlnaHRcIn0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWNsb2NrLWNlbnRlclwifSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtY2xvY2stcG9pbnRlclwiLHN0eWxlOnRoaXMuY2xvY2tQb2ludGVyU3R5bGV9LFt0KFwic3BhblwiKV0pLGldKV0pXSl9LF9fZ2V0Vmlld1NlY3Rpb246ZnVuY3Rpb24odCl7c3dpdGNoKHRoaXMudmlldyl7Y2FzZVwieWVhclwiOnJldHVybiB0aGlzLl9fZ2V0WWVhclZpZXcodCk7Y2FzZVwibW9udGhcIjpyZXR1cm4gdGhpcy5fX2dldE1vbnRoVmlldyh0KTtjYXNlXCJkYXlcIjpyZXR1cm4gdGhpcy5fX2dldERheVZpZXcodCk7Y2FzZVwiaG91clwiOmNhc2VcIm1pbnV0ZVwiOnJldHVybiB0aGlzLl9fZ2V0Q2xvY2tWaWV3KHQpfX19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX19hbVBtRXZlbnRzPXtrZXlkb3duOmZ1bmN0aW9uKGUpe3ZhciBpPWdldEV2ZW50S2V5KGUpO1sxMywzMiwzNywzOCwzOSw0MF0uaW5jbHVkZXMoaSkmJihzdG9wQW5kUHJldmVudChlKSx0LnRvZ2dsZUFtUG0oKSl9fX0sbW91bnRlZDpmdW5jdGlvbigpe3RoaXMuX19zY3JvbGxWaWV3KCEwKX0scmVuZGVyOmZ1bmN0aW9uKHQpe2lmKHRoaXMuY2FuUmVuZGVyKXJldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZSByb3dcIixjbGFzczp0aGlzLmNsYXNzZXN9LFshdGhpcy5taW5pbWFsJiZ0aGlzLl9fZ2V0VG9wU2VjdGlvbih0KXx8dm9pZCAwLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWNvbnRlbnQgc2Nyb2xsXCJ9LFt0KFwiZGl2XCIse3JlZjpcInNlbGVjdG9yXCIsc3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLXNlbGVjdG9yIHJvdyBpdGVtcy1jZW50ZXJcIn0sW3QoXCJkaXZcIix7Y2xhc3M6XCJjb2xcIn0pLHRoaXMuX19nZXRWaWV3U2VjdGlvbih0KSx0KFwiZGl2XCIse2NsYXNzOlwiY29sXCJ9KV0pXS5jb25jYXQodGhpcy4kc2xvdHMuZGVmYXVsdCkpXSl9fSxjb250ZW50Q3NzJDE9e21heFdpZHRoOlwiOTV2d1wiLG1heEhlaWdodDpcIjk4dmhcIn0sUURhdGV0aW1lPXtuYW1lOlwiUURhdGV0aW1lXCIsbWl4aW5zOltGcmFtZU1peGluLERpc3BsYXlNb2RlTWl4aW4sQ2FuUmVuZGVyTWl4aW5dLHByb3BzOk9iamVjdC5hc3NpZ24oe30saW5wdXQsaW5saW5lKSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24odCl7IXRoaXMuZGlzYWJsZSYmdGhpcy5pc1BvcG92ZXImJih0aGlzLm1vZGVsPWNsb25lJDEodCkpfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybnt0cmFuc2l0aW9uOm51bGwsbW9kZWw6bnVsbCxmb2N1c2VkOiExfX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMubW9kZWw9Y2xvbmUkMSh0aGlzLmNvbXB1dGVkVmFsdWUpLHRoaXMuaXNQb3BvdmVyfHwodGhpcy50cmFuc2l0aW9uPVwicS1tb2RhbFwiKX0sY29tcHV0ZWQ6e2NvbXB1dGVkRm9ybWF0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZm9ybWF0P3RoaXMuZm9ybWF0OlwiZGF0ZVwiPT09dGhpcy50eXBlP1wiWVlZWS9NTS9ERFwiOlwidGltZVwiPT09dGhpcy50eXBlP1wiSEg6bW1cIjpcIllZWVkvTU0vREQgSEg6bW06c3NcIn0sYWN0dWFsVmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kaXNwbGF5VmFsdWU/dGhpcy5kaXNwbGF5VmFsdWU6aXNWYWxpZCh0aGlzLnZhbHVlKSYmdGhpcy5jYW5SZW5kZXI/Zm9ybWF0RGF0ZSh0aGlzLnZhbHVlLHRoaXMuY29tcHV0ZWRGb3JtYXQsdGhpcy4kcS5pMThuLmRhdGUpOlwiXCJ9LGNvbXB1dGVkVmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gaXNWYWxpZCh0aGlzLnZhbHVlKT90aGlzLnZhbHVlOnRoaXMuZGVmYXVsdFZhbHVlfSxjb21wdXRlZENsZWFyVmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09dGhpcy5jbGVhclZhbHVlP3RoaXMuZGVmYXVsdFZhbHVlOnRoaXMuY2xlYXJWYWx1ZX0saXNDbGVhcmFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGl0YWJsZSYmdGhpcy5jbGVhcmFibGUmJiFpc1NhbWVEYXRlKHRoaXMuY29tcHV0ZWRDbGVhclZhbHVlLHRoaXMudmFsdWUpfSxtb2RhbEJ0bkNvbG9yOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29sb3J9fSxtZXRob2RzOnt0b2dnbGU6ZnVuY3Rpb24oKXt0aGlzLiRyZWZzLnBvcHVwJiZ0aGlzW3RoaXMuJHJlZnMucG9wdXAuc2hvd2luZz9cImhpZGVcIjpcInNob3dcIl0oKX0sc2hvdzpmdW5jdGlvbigpe2lmKCF0aGlzLmRpc2FibGUpcmV0dXJuIHRoaXMuX19zZXRNb2RlbCh0aGlzLmNvbXB1dGVkVmFsdWUpLHRoaXMuJHJlZnMucG9wdXAuc2hvdygpfSxoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHJlZnMucG9wdXA/dGhpcy4kcmVmcy5wb3B1cC5oaWRlKCk6UHJvbWlzZS5yZXNvbHZlKCl9LF9faGFuZGxlS2V5RG93bjpmdW5jdGlvbih0KXtzd2l0Y2goZ2V0RXZlbnRLZXkodCkpe2Nhc2UgMTM6Y2FzZSAzMjpyZXR1cm4gc3RvcEFuZFByZXZlbnQodCksdGhpcy5zaG93KCk7Y2FzZSA4OnRoaXMuaXNDbGVhcmFibGUmJnRoaXMuY2xlYXIoKX19LF9fb25Gb2N1czpmdW5jdGlvbigpe2lmKCF0aGlzLmRpc2FibGUmJiF0aGlzLmZvY3VzZWQpe3ZhciB0PXRoaXMuJHJlZnMudGFyZ2V0O3QmJnQuc2V0Vmlldyh0aGlzLmRlZmF1bHRWaWV3LCEwKSx0aGlzLm1vZGVsPWNsb25lJDEodGhpcy5jb21wdXRlZFZhbHVlKSx0aGlzLmZvY3VzZWQ9ITAsdGhpcy4kZW1pdChcImZvY3VzXCIpfX0sX19vbkJsdXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLmZvY3VzZWQmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5hY3RpdmVFbGVtZW50O2UuJHJlZnMucG9wdXAmJmUuJHJlZnMucG9wdXAuc2hvd2luZyYmKHQ9PT1kb2N1bWVudC5ib2R5fHxlLiRyZWZzLnBvcHVwLiRlbC5jb250YWlucyh0KSl8fChlLl9fb25IaWRlKCksZS5oaWRlKCkpfSwxKX0sX19vbkhpZGU6ZnVuY3Rpb24odCxlKXsodHx8dGhpcy5pc1BvcG92ZXIpJiZ0aGlzLl9fdXBkYXRlKHQpLHRoaXMuZm9jdXNlZCYmKGU/dGhpcy4kZWwuZm9jdXMoKToodGhpcy4kZW1pdChcImJsdXJcIiksdGhpcy5mb2N1c2VkPSExKSl9LF9fc2V0TW9kZWw6ZnVuY3Rpb24odCxlKXt0aGlzLm1vZGVsPWNsb25lJDEodCksKGV8fHRoaXMuaXNQb3BvdmVyKSYmdGhpcy5fX3VwZGF0ZShlKX0sX191cGRhdGU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe2lzU2FtZURhdGUoZS5tb2RlbCxlLnZhbHVlKXx8KGUuJGVtaXQoXCJpbnB1dFwiLGUubW9kZWwpLHQmJmUuJGVtaXQoXCJjaGFuZ2VcIixlLm1vZGVsKSl9KX0sX19zY3JvbGxWaWV3OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kcmVmcy50YXJnZXQ7dCYmdC5fX3Njcm9sbFZpZXcoKX0sX19nZXRQaWNrZXI6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzO3JldHVyblt0KFFEYXRldGltZVBpY2tlcix7cmVmOlwidGFyZ2V0XCIsc3RhdGljQ2xhc3M6XCJuby1ib3JkZXJcIixjbGFzczp7XCJkYXRldGltZS1pb3MtbW9kYWxcIjohMX0scHJvcHM6e3R5cGU6dGhpcy50eXBlLG1pbjp0aGlzLm1pbixtYXg6dGhpcy5tYXgsaGVhZGVyTGFiZWw6dGhpcy5oZWFkZXJMYWJlbCxtaW5pbWFsOnRoaXMubWluaW1hbCxmb3JtYXRNb2RlbDp0aGlzLmZvcm1hdE1vZGVsLGZvcm1hdDI0aDp0aGlzLmZvcm1hdDI0aCxmaXJzdERheU9mV2Vlazp0aGlzLmZpcnN0RGF5T2ZXZWVrLGRlZmF1bHRWaWV3OnRoaXMuZGVmYXVsdFZpZXcsY29sb3I6dGhpcy5pbnZlcnRlZExpZ2h0P1wiZ3JleS03XCI6dGhpcy5jb2xvcixkYXJrOnRoaXMuZGFyayx2YWx1ZTp0aGlzLm1vZGVsLGRpc2FibGU6dGhpcy5kaXNhYmxlLHJlYWRvbmx5OnRoaXMucmVhZG9ubHksbm9QYXJlbnRGaWVsZDohMH0sb246e2lucHV0OmZ1bmN0aW9uKHQpe3JldHVybiBpLiRuZXh0VGljayhmdW5jdGlvbigpe3JldHVybiBpLl9fc2V0TW9kZWwodCl9KX0sY2FuQ2xvc2U6ZnVuY3Rpb24oKXtpLmlzUG9wb3ZlciYmaS5oaWRlKCl9fX0sW2U/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcIm1vZGFsLWJ1dHRvbnMgbW9kYWwtYnV0dG9ucy10b3Agcm93IGZ1bGwtd2lkdGhcIn0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2xcIn0pLHQoUUJ0bix7cHJvcHM6e2NvbG9yOnRoaXMubW9kYWxCdG5Db2xvcixmbGF0OiEwLGxhYmVsOnRoaXMuY2FuY2VsTGFiZWx8fHRoaXMuJHEuaTE4bi5sYWJlbC5jYW5jZWwsbm9SaXBwbGU6ITB9LG9uOntjbGljazpmdW5jdGlvbigpe2kuX19vbkhpZGUoITEsITApLGkuaGlkZSgpfX19KSx0aGlzLmVkaXRhYmxlP3QoUUJ0bix7cHJvcHM6e2NvbG9yOnRoaXMubW9kYWxCdG5Db2xvcixmbGF0OiEwLGxhYmVsOnRoaXMub2tMYWJlbHx8dGhpcy4kcS5pMThuLmxhYmVsLnNldCxub1JpcHBsZTohMCxkaXNhYmxlOiF0aGlzLm1vZGVsfSxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtpLl9fb25IaWRlKCEwLCEwKSxpLmhpZGUoKX19fSk6bnVsbF0pOm51bGxdKV19fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdChRSW5wdXRGcmFtZSx7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWlucHV0XCIscHJvcHM6e3ByZWZpeDp0aGlzLnByZWZpeCxzdWZmaXg6dGhpcy5zdWZmaXgsc3RhY2tMYWJlbDp0aGlzLnN0YWNrTGFiZWwsZmxvYXRMYWJlbDp0aGlzLmZsb2F0TGFiZWwsZXJyb3I6dGhpcy5lcnJvcix3YXJuaW5nOnRoaXMud2FybmluZyxkaXNhYmxlOnRoaXMuZGlzYWJsZSxyZWFkb25seTp0aGlzLnJlYWRvbmx5LGludmVydGVkOnRoaXMuaW52ZXJ0ZWQsaW52ZXJ0ZWRMaWdodDp0aGlzLmludmVydGVkTGlnaHQsZGFyazp0aGlzLmRhcmssaGlkZVVuZGVybGluZTp0aGlzLmhpZGVVbmRlcmxpbmUsYmVmb3JlOnRoaXMuYmVmb3JlLGFmdGVyOnRoaXMuYWZ0ZXIsY29sb3I6dGhpcy5jb2xvcixub1BhcmVudEZpZWxkOnRoaXMubm9QYXJlbnRGaWVsZCxmb2N1c2VkOnRoaXMuZm9jdXNlZHx8dGhpcy4kcmVmcy5wb3B1cCYmdGhpcy4kcmVmcy5wb3B1cC5zaG93aW5nLGZvY3VzYWJsZTohMCxsZW5ndGg6dGhpcy5hY3R1YWxWYWx1ZS5sZW5ndGh9LG5hdGl2ZU9uOntjbGljazp0aGlzLnRvZ2dsZSxmb2N1czp0aGlzLl9fb25Gb2N1cyxibHVyOnRoaXMuX19vbkJsdXIsa2V5ZG93bjp0aGlzLl9faGFuZGxlS2V5RG93bn19LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sIHEtaW5wdXQtdGFyZ2V0IGVsbGlwc2lzXCIsY2xhc3M6dGhpcy5mYWtlSW5wdXRDbGFzc2VzfSxbdGhpcy5mYWtlSW5wdXRWYWx1ZV0pLHRoaXMuaXNQb3BvdmVyP3QoUVBvcG92ZXIse3JlZjpcInBvcHVwXCIscHJvcHM6e2NvdmVyOiEwLGtlZXBPblNjcmVlbjohMCxkaXNhYmxlOnRoaXMuZGlzYWJsZSxhbmNob3JDbGljazohMSxtYXhIZWlnaHQ6XCIxMDB2aFwifSxzbG90OlwiYWZ0ZXJcIixvbjp7c2hvdzpmdW5jdGlvbih0KXtlLl9fb25Gb2N1cyh0KSxlLl9fc2Nyb2xsVmlldygpfSxoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIGUuX19vbkhpZGUoITAsITApfX19LHRoaXMuX19nZXRQaWNrZXIodCkpOnQoUU1vZGFsLHtyZWY6XCJwb3B1cFwiLHN0YXRpY0NsYXNzOlwid2l0aC1iYWNrZHJvcCBxLWRhdGV0aW1lLW1vZGFsXCIscHJvcHM6e2NvbnRlbnRDc3M6Y29udGVudENzcyQxLG1pbmltaXplZDohMCxwb3NpdGlvbjpudWxsLHRyYW5zaXRpb246dGhpcy50cmFuc2l0aW9ufSxvbjp7c2hvdzp0aGlzLl9fc2Nyb2xsVmlldyxkaXNtaXNzOmZ1bmN0aW9uKCl7cmV0dXJuIGUuX19vbkhpZGUoITEsITApfX19LHRoaXMuX19nZXRQaWNrZXIodCwhMCkpLHRoaXMuaXNDbGVhcmFibGU/dChRSWNvbix7c2xvdDpcImFmdGVyXCIscHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLmlucHV0W1wiY2xlYXJcIisodGhpcy5pc0ludmVydGVkP1wiSW52ZXJ0ZWRcIjpcIlwiKV19LG5hdGl2ZU9uOntjbGljazp0aGlzLmNsZWFyfSxzdGF0aWNDbGFzczpcInEtaWYtY29udHJvbFwifSk6bnVsbCx0KFFJY29uLHtzbG90OlwiYWZ0ZXJcIixwcm9wczp7bmFtZTp0aGlzLiRxLmljb24uaW5wdXQuZHJvcGRvd259LHN0YXRpY0NsYXNzOlwicS1pZi1jb250cm9sXCJ9KV0pfX0saW5wdXRUeXBlcz1bXCJ0ZXh0XCIsXCJ0ZXh0YXJlYVwiLFwiZW1haWxcIixcInNlYXJjaFwiLFwidGVsXCIsXCJmaWxlXCIsXCJudW1iZXJcIixcInBhc3N3b3JkXCIsXCJ1cmxcIixcInRpbWVcIixcImRhdGVcIl0sUVJlc2l6ZU9ic2VydmFibGU9e25hbWU6XCJRUmVzaXplT2JzZXJ2YWJsZVwiLG1peGluczpbQ2FuUmVuZGVyTWl4aW5dLHByb3BzOntkZWJvdW5jZTp7dHlwZTpOdW1iZXIsZGVmYXVsdDoxMDB9fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGFzT2JzZXJ2ZXI/e306e3VybDp0aGlzLiRxLnBsYXRmb3JtLmlzLmllP251bGw6XCJhYm91dDpibGFua1wifX0sbWV0aG9kczp7b25SZXNpemU6ZnVuY3Rpb24oKXtpZih0aGlzLnRpbWVyPW51bGwsdGhpcy4kZWwmJnRoaXMuJGVsLnBhcmVudE5vZGUpe3ZhciB0PXRoaXMuJGVsLnBhcmVudE5vZGUsZT17d2lkdGg6dC5vZmZzZXRXaWR0aCxoZWlnaHQ6dC5vZmZzZXRIZWlnaHR9O2Uud2lkdGg9PT10aGlzLnNpemUud2lkdGgmJmUuaGVpZ2h0PT09dGhpcy5zaXplLmhlaWdodHx8KHRoaXMuc2l6ZT1lLHRoaXMuJGVtaXQoXCJyZXNpemVcIix0aGlzLnNpemUpKX19LHRyaWdnZXI6ZnVuY3Rpb24odCl7ITA9PT10fHwwPT09dGhpcy5kZWJvdW5jZT90aGlzLm9uUmVzaXplKCk6dGhpcy50aW1lcnx8KHRoaXMudGltZXI9c2V0VGltZW91dCh0aGlzLm9uUmVzaXplLHRoaXMuZGVib3VuY2UpKX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKHRoaXMuY2FuUmVuZGVyJiYhdGhpcy5oYXNPYnNlcnZlcilyZXR1cm4gdChcIm9iamVjdFwiLHtzdHlsZTp0aGlzLnN0eWxlLGF0dHJzOnt0YWJpbmRleDotMSx0eXBlOlwidGV4dC9odG1sXCIsZGF0YTp0aGlzLnVybCxcImFyaWEtaGlkZGVuXCI6ITB9LG9uOntsb2FkOmZ1bmN0aW9uKCl7ZS4kZWwuY29udGVudERvY3VtZW50LmRlZmF1bHRWaWV3LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIixlLnRyaWdnZXIsbGlzdGVuT3B0cy5wYXNzaXZlKSxlLnRyaWdnZXIoITApfX19KX0sYmVmb3JlQ3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5zaXplPXt3aWR0aDotMSxoZWlnaHQ6LTF9LGlzU1NSfHwodGhpcy5oYXNPYnNlcnZlcj1cInVuZGVmaW5lZFwiIT10eXBlb2YgUmVzaXplT2JzZXJ2ZXIsdGhpcy5oYXNPYnNlcnZlcnx8KHRoaXMuc3R5bGU9KHRoaXMuJHEucGxhdGZvcm0uaXMuaWU/XCJ2aXNpYmlsaXR5OmhpZGRlbjtcIjpcIlwiKStcImRpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4Oi0xO1wiKSl9LG1vdW50ZWQ6ZnVuY3Rpb24oKXtpZih0aGlzLmhhc09ic2VydmVyKXJldHVybiB0aGlzLm9ic2VydmVyPW5ldyBSZXNpemVPYnNlcnZlcih0aGlzLnRyaWdnZXIpLHZvaWQgdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMuJGVsLnBhcmVudE5vZGUpO3RoaXMudHJpZ2dlcighMCksdGhpcy4kcS5wbGF0Zm9ybS5pcy5pZSYmKHRoaXMudXJsPVwiYWJvdXQ6YmxhbmtcIil9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy5oYXNPYnNlcnZlcj90aGlzLiRlbC5wYXJlbnROb2RlJiZ0aGlzLm9ic2VydmVyLnVub2JzZXJ2ZSh0aGlzLiRlbC5wYXJlbnROb2RlKTp0aGlzLiRlbC5jb250ZW50RG9jdW1lbnQmJnRoaXMuJGVsLmNvbnRlbnREb2N1bWVudC5kZWZhdWx0Vmlldy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsdGhpcy50cmlnZ2VyLGxpc3Rlbk9wdHMucGFzc2l2ZSl9fSxRSW5wdXQ9e25hbWU6XCJRSW5wdXRcIixtaXhpbnM6W0ZyYW1lTWl4aW4sSW5wdXRNaXhpbl0scHJvcHM6e3ZhbHVlOntyZXF1aXJlZDohMH0sdHlwZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInRleHRcIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuIGlucHV0VHlwZXMuaW5jbHVkZXModCl9fSxhbGlnbjp7dHlwZTpTdHJpbmcsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcImxlZnRcIixcImNlbnRlclwiLFwicmlnaHRcIl0uaW5jbHVkZXModCl9fSxub1Bhc3NUb2dnbGU6Qm9vbGVhbixudW1lcmljS2V5Ym9hcmRUb2dnbGU6Qm9vbGVhbixyZWFkb25seTpCb29sZWFuLGRlY2ltYWxzOk51bWJlcixzdGVwOk51bWJlcix1cHBlckNhc2U6Qm9vbGVhbixsb3dlckNhc2U6Qm9vbGVhbixpbml0aWFsU2hvd1Bhc3N3b3JkOkJvb2xlYW59LGRhdGE6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybntzaG93UGFzczp0aGlzLmluaXRpYWxTaG93UGFzc3dvcmQsc2hvd051bWJlcjohMCxtb2RlbDp0aGlzLnZhbHVlLHdhdGNoZXI6bnVsbCxhdXRvZmlsbGVkOiExLHNoYWRvdzp7dmFsOnRoaXMubW9kZWwsc2V0OnRoaXMuX19zZXQsc2V0TmF2OnRoaXMuX19zZXQsbG9hZGluZzohMSx3YXRjaGVkOjAsaXNFZGl0YWJsZTpmdW5jdGlvbigpe3JldHVybiB0LmVkaXRhYmxlfSxpc0Rhcms6ZnVuY3Rpb24oKXtyZXR1cm4gdC5kYXJrfSxoYXNGb2N1czpmdW5jdGlvbigpe3JldHVybiBkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09dC4kcmVmcy5pbnB1dH0scmVnaXN0ZXI6ZnVuY3Rpb24oKXt0LnNoYWRvdy53YXRjaGVkKz0xLHQuX193YXRjaGVyUmVnaXN0ZXIoKX0sdW5yZWdpc3RlcjpmdW5jdGlvbigpe3Quc2hhZG93LndhdGNoZWQ9TWF0aC5tYXgoMCx0LnNoYWRvdy53YXRjaGVkLTEpLHQuX193YXRjaGVyVW5yZWdpc3RlcigpfSxnZXRFbDpmdW5jdGlvbigpe3JldHVybiB0LiRyZWZzLmlucHV0fX19fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9cGFyc2VGbG9hdCh0aGlzLm1vZGVsKSxpPXBhcnNlRmxvYXQodCk7KCF0aGlzLmlzTnVtYmVyfHx0aGlzLmlzTnVtYmVyRXJyb3J8fGlzTmFOKGUpfHxpc05hTihpKXx8ZSE9PWkpJiYodGhpcy5tb2RlbD10KSx0aGlzLmlzTnVtYmVyRXJyb3I9ITEsdGhpcy5pc05lZ1plcm89ITF9LGlzVGV4dGFyZWE6ZnVuY3Rpb24odCl7dGhpc1t0P1wiX193YXRjaGVyUmVnaXN0ZXJcIjpcIl9fd2F0Y2hlclVucmVnaXN0ZXJcIl0oKX0sXCIkYXR0cnMucm93c1wiOmZ1bmN0aW9uKCl7dGhpcy5pc1RleHRhcmVhJiZ0aGlzLl9fdXBkYXRlQXJlYSgpfX0scHJvdmlkZTpmdW5jdGlvbigpe3JldHVybntfX2lucHV0OnRoaXMuc2hhZG93fX0sY29tcHV0ZWQ6e2lzTnVtYmVyOmZ1bmN0aW9uKCl7cmV0dXJuXCJudW1iZXJcIj09PXRoaXMudHlwZX0saXNQYXNzd29yZDpmdW5jdGlvbigpe3JldHVyblwicGFzc3dvcmRcIj09PXRoaXMudHlwZX0saXNUZXh0YXJlYTpmdW5jdGlvbigpe3JldHVyblwidGV4dGFyZWFcIj09PXRoaXMudHlwZX0saXNMb2FkaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubG9hZGluZ3x8dGhpcy5zaGFkb3cud2F0Y2hlZCYmdGhpcy5zaGFkb3cubG9hZGluZ30sa2V5Ym9hcmRUb2dnbGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kcS5wbGF0Zm9ybS5pcy5tb2JpbGUmJnRoaXMuaXNOdW1iZXImJnRoaXMubnVtZXJpY0tleWJvYXJkVG9nZ2xlfSxpbnB1dFR5cGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1Bhc3N3b3JkP3RoaXMuc2hvd1Bhc3MmJnRoaXMuZWRpdGFibGU/XCJ0ZXh0XCI6XCJwYXNzd29yZFwiOnRoaXMuaXNOdW1iZXI/dGhpcy5zaG93TnVtYmVyfHwhdGhpcy5lZGl0YWJsZT9cIm51bWJlclwiOlwidGV4dFwiOnRoaXMudHlwZX0saW5wdXRDbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuYWxpZ24mJnQucHVzaChcInRleHQtXCIrdGhpcy5hbGlnbiksdGhpcy5hdXRvZmlsbGVkJiZ0LnB1c2goXCJxLWlucHV0LWF1dG9maWxsXCIpLHR9LGxlbmd0aDpmdW5jdGlvbigpe3JldHVybiBudWxsIT09dGhpcy5tb2RlbCYmdm9pZCAwIT09dGhpcy5tb2RlbD8oXCJcIit0aGlzLm1vZGVsKS5sZW5ndGg6MH0sY29tcHV0ZWRDbGVhclZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PXRoaXMuY2xlYXJWYWx1ZT90aGlzLmlzTnVtYmVyP251bGw6XCJcIjp0aGlzLmNsZWFyVmFsdWV9LGNvbXB1dGVkU3RlcDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0ZXB8fCh0aGlzLmRlY2ltYWxzP01hdGgucG93KDEwLC10aGlzLmRlY2ltYWxzKTpcImFueVwiKX0sZnJhbWVQcm9wczpmdW5jdGlvbigpe3JldHVybntwcmVmaXg6dGhpcy5wcmVmaXgsc3VmZml4OnRoaXMuc3VmZml4LHN0YWNrTGFiZWw6dGhpcy5zdGFja0xhYmVsLGZsb2F0TGFiZWw6dGhpcy5mbG9hdExhYmVsLHBsYWNlaG9sZGVyOnRoaXMucGxhY2Vob2xkZXIsZXJyb3I6dGhpcy5lcnJvcix3YXJuaW5nOnRoaXMud2FybmluZyxkaXNhYmxlOnRoaXMuZGlzYWJsZSxyZWFkb25seTp0aGlzLnJlYWRvbmx5LGludmVydGVkOnRoaXMuaW52ZXJ0ZWQsaW52ZXJ0ZWRMaWdodDp0aGlzLmludmVydGVkTGlnaHQsZGFyazp0aGlzLmRhcmssaGlkZVVuZGVybGluZTp0aGlzLmhpZGVVbmRlcmxpbmUsYmVmb3JlOnRoaXMuYmVmb3JlLGFmdGVyOnRoaXMuYWZ0ZXIsY29sb3I6dGhpcy5jb2xvcixub1BhcmVudEZpZWxkOnRoaXMubm9QYXJlbnRGaWVsZCxmb2N1c2VkOnRoaXMuZm9jdXNlZCxsZW5ndGg6dGhpcy5hdXRvZmlsbGVkK3RoaXMubGVuZ3RofX19LG1ldGhvZHM6e3RvZ2dsZVBhc3M6ZnVuY3Rpb24oKXt0aGlzLnNob3dQYXNzPSF0aGlzLnNob3dQYXNzLGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLmZvY3VzKCl9LHRvZ2dsZU51bWJlcjpmdW5jdGlvbigpe3RoaXMuc2hvd051bWJlcj0hdGhpcy5zaG93TnVtYmVyLGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLmZvY3VzKCl9LF9fY2xlYXJUaW1lcjpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtyZXR1cm4gY2xlYXJUaW1lb3V0KHQudGltZXIpfSl9LF9fb25BbmltYXRpb25TdGFydDpmdW5jdGlvbih0KXtpZigwPT09dC5hbmltYXRpb25OYW1lLmluZGV4T2YoXCJ3ZWJraXQtYXV0b2ZpbGwtXCIpKXt2YXIgZT1cIndlYmtpdC1hdXRvZmlsbC1vblwiPT09dC5hbmltYXRpb25OYW1lO2lmKGUhPT10aGlzLmF1dG9maWxsZWQpcmV0dXJuIHQudmFsdWU9dGhpcy5hdXRvZmlsbGVkPWUsdC5lbD10aGlzLHRoaXMuJGVtaXQoXCJhdXRvZmlsbFwiLHQpfX0sX19zZXRNb2RlbDpmdW5jdGlvbih0KXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy5mb2N1cygpLHRoaXMuX19zZXQodGhpcy5pc051bWJlciYmMD09PXQ/dDp0fHwodGhpcy5pc051bWJlcj9udWxsOlwiXCIpLCEwKX0sX19zZXQ6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLHM9dCYmdC50YXJnZXQ/dC50YXJnZXQudmFsdWU6dDtpZih0aGlzLmlzTnVtYmVyKXt0aGlzLmlzTmVnWmVybz0xL3M9PS0xLzA7dmFyIG49dGhpcy5pc05lZ1plcm8/LTA6cztpZih0aGlzLm1vZGVsPXMscz1wYXJzZUZsb2F0KHMpLGlzTmFOKHMpfHx0aGlzLmlzTmVnWmVybylyZXR1cm4gdGhpcy5pc051bWJlckVycm9yPSEwLHZvaWQoZSYmKHRoaXMuJGVtaXQoXCJpbnB1dFwiLG4pLHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7U3RyaW5nKDEvbikhPT1TdHJpbmcoMS9pLnZhbHVlKSYmaS4kZW1pdChcImNoYW5nZVwiLG4pfSkpKTt0aGlzLmlzTnVtYmVyRXJyb3I9ITEsTnVtYmVyLmlzSW50ZWdlcih0aGlzLmRlY2ltYWxzKSYmKHM9cGFyc2VGbG9hdChzLnRvRml4ZWQodGhpcy5kZWNpbWFscykpKX1lbHNlIHRoaXMubG93ZXJDYXNlP3M9cy50b0xvd2VyQ2FzZSgpOnRoaXMudXBwZXJDYXNlJiYocz1zLnRvVXBwZXJDYXNlKCkpLHRoaXMubW9kZWw9czt0aGlzLiRlbWl0KFwiaW5wdXRcIixzKSxlJiZ0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe0pTT04uc3RyaW5naWZ5KHMpIT09SlNPTi5zdHJpbmdpZnkoaS52YWx1ZSkmJmkuJGVtaXQoXCJjaGFuZ2VcIixzKX0pfSxfX3VwZGF0ZUFyZWE6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLiRyZWZzLnNoYWRvdyxlPXRoaXMuJHJlZnMuaW5wdXQ7aWYodCYmZSl7dmFyIGk9dC5zY3JvbGxIZWlnaHQscz1iZXR3ZWVuKGksdC5vZmZzZXRIZWlnaHQsdGhpcy5tYXhIZWlnaHR8fGkpO2Uuc3R5bGUuaGVpZ2h0PXMrXCJweFwiLGUuc3R5bGUub3ZlcmZsb3dZPXRoaXMubWF4SGVpZ2h0JiZzPGk/XCJzY3JvbGxcIjpcImhpZGRlblwifX0sX193YXRjaGVyOmZ1bmN0aW9uKHQpe3RoaXMuaXNUZXh0YXJlYSYmdGhpcy5fX3VwZGF0ZUFyZWEoKSx0aGlzLnNoYWRvdy53YXRjaGVkJiYodGhpcy5zaGFkb3cudmFsPXQpfSxfX3dhdGNoZXJSZWdpc3RlcjpmdW5jdGlvbigpe3RoaXMud2F0Y2hlcnx8KHRoaXMud2F0Y2hlcj10aGlzLiR3YXRjaChcIm1vZGVsXCIsdGhpcy5fX3dhdGNoZXIpKX0sX193YXRjaGVyVW5yZWdpc3RlcjpmdW5jdGlvbih0KXt0aGlzLndhdGNoZXImJih0fHwhdGhpcy5pc1RleHRhcmVhJiYhdGhpcy5zaGFkb3cud2F0Y2hlZCkmJih0aGlzLndhdGNoZXIoKSx0aGlzLndhdGNoZXI9bnVsbCl9LF9fZ2V0VGV4dGFyZWE6ZnVuY3Rpb24odCl7dmFyIGU9T2JqZWN0LmFzc2lnbih7cm93czoxfSx0aGlzLiRhdHRycyk7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wgcm93IHJlbGF0aXZlLXBvc2l0aW9uXCJ9LFt0KFFSZXNpemVPYnNlcnZhYmxlLHtvbjp7cmVzaXplOnRoaXMuX191cGRhdGVBcmVhfX0pLHQoXCJ0ZXh0YXJlYVwiLHtyZWY6XCJzaGFkb3dcIixzdGF0aWNDbGFzczpcImNvbCBxLWlucHV0LXRhcmdldCBxLWlucHV0LXNoYWRvdyBhYnNvbHV0ZS10b3BcIixkb21Qcm9wczp7dmFsdWU6dGhpcy5tb2RlbH0sYXR0cnM6ZX0pLHQoXCJ0ZXh0YXJlYVwiLHtyZWY6XCJpbnB1dFwiLHN0YXRpY0NsYXNzOlwiY29sIHEtaW5wdXQtdGFyZ2V0IHEtaW5wdXQtYXJlYVwiLGF0dHJzOk9iamVjdC5hc3NpZ24oe30sZSx7cGxhY2Vob2xkZXI6dGhpcy5pbnB1dFBsYWNlaG9sZGVyLGRpc2FibGVkOnRoaXMuZGlzYWJsZSxyZWFkb25seTp0aGlzLnJlYWRvbmx5fSksZG9tUHJvcHM6e3ZhbHVlOnRoaXMubW9kZWx9LG9uOntpbnB1dDp0aGlzLl9fc2V0LGZvY3VzOnRoaXMuX19vbkZvY3VzLGJsdXI6dGhpcy5fX29uSW5wdXRCbHVyLGtleWRvd246dGhpcy5fX29uS2V5ZG93bixrZXl1cDp0aGlzLl9fb25LZXl1cCxwYXN0ZTp0aGlzLl9fb25QYXN0ZX19KV0pfSxfX2dldElucHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiaW5wdXRcIix7cmVmOlwiaW5wdXRcIixzdGF0aWNDbGFzczpcImNvbCBxLWlucHV0LXRhcmdldCBxLW5vLWlucHV0LXNwaW5uZXIgZWxsaXBzaXNcIixjbGFzczp0aGlzLmlucHV0Q2xhc3NlcyxhdHRyczpPYmplY3QuYXNzaWduKHt9LHRoaXMuJGF0dHJzLHt0eXBlOnRoaXMuaW5wdXRUeXBlLHBsYWNlaG9sZGVyOnRoaXMuaW5wdXRQbGFjZWhvbGRlcixkaXNhYmxlZDp0aGlzLmRpc2FibGUscmVhZG9ubHk6dGhpcy5yZWFkb25seSxzdGVwOnRoaXMuY29tcHV0ZWRTdGVwfSksZG9tUHJvcHM6e3ZhbHVlOnRoaXMubW9kZWx9LG9uOntpbnB1dDp0aGlzLl9fc2V0LGZvY3VzOnRoaXMuX19vbkZvY3VzLGJsdXI6dGhpcy5fX29uSW5wdXRCbHVyLGtleWRvd246dGhpcy5fX29uS2V5ZG93bixrZXl1cDp0aGlzLl9fb25LZXl1cCxwYXN0ZTp0aGlzLl9fb25QYXN0ZSxhbmltYXRpb25zdGFydDp0aGlzLl9fb25BbmltYXRpb25TdGFydH19KX19LG1vdW50ZWQ6ZnVuY3Rpb24oKXt0aGlzLl9fdXBkYXRlQXJlYT1mcmFtZURlYm91bmNlKHRoaXMuX191cGRhdGVBcmVhKSx0aGlzLmlzVGV4dGFyZWEmJih0aGlzLl9fdXBkYXRlQXJlYSgpLHRoaXMuX193YXRjaGVyUmVnaXN0ZXIoKSl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9fd2F0Y2hlclVucmVnaXN0ZXIoITApfSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoUUlucHV0RnJhbWUse3N0YXRpY0NsYXNzOlwicS1pbnB1dFwiLHByb3BzOnRoaXMuZnJhbWVQcm9wcyxvbjp7Y2xpY2s6dGhpcy5fX29uQ2xpY2ssZm9jdXM6dGhpcy5fX29uRm9jdXMscGFzdGU6dGhpcy5fX29uUGFzdGV9fSxbXS5jb25jYXQodGhpcy4kc2xvdHMuYmVmb3JlKS5jb25jYXQoW3RoaXMuaXNUZXh0YXJlYT90aGlzLl9fZ2V0VGV4dGFyZWEodCk6dGhpcy5fX2dldElucHV0KHQpLCF0aGlzLmRpc2FibGUmJnRoaXMuaXNQYXNzd29yZCYmIXRoaXMubm9QYXNzVG9nZ2xlJiYodGhpcy5pbml0aWFsU2hvd1Bhc3N3b3JkfHx0aGlzLmxlbmd0aCkmJnQoUUljb24se3Nsb3Q6XCJhZnRlclwiLHN0YXRpY0NsYXNzOlwicS1pZi1jb250cm9sXCIscHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLmlucHV0W3RoaXMuc2hvd1Bhc3M/XCJzaG93UGFzc1wiOlwiaGlkZVBhc3NcIl19LG5hdGl2ZU9uOnttb3VzZWRvd246dGhpcy5fX2NsZWFyVGltZXIsdG91Y2hzdGFydDp0aGlzLl9fY2xlYXJUaW1lcixjbGljazp0aGlzLnRvZ2dsZVBhc3N9fSl8fHZvaWQgMCx0aGlzLmVkaXRhYmxlJiZ0aGlzLmtleWJvYXJkVG9nZ2xlJiZ0KFFJY29uLHtzbG90OlwiYWZ0ZXJcIixzdGF0aWNDbGFzczpcInEtaWYtY29udHJvbFwiLHByb3BzOntuYW1lOnRoaXMuJHEuaWNvbi5pbnB1dFt0aGlzLnNob3dOdW1iZXI/XCJzaG93TnVtYmVyXCI6XCJoaWRlTnVtYmVyXCJdfSxuYXRpdmVPbjp7bW91c2Vkb3duOnRoaXMuX19jbGVhclRpbWVyLHRvdWNoc3RhcnQ6dGhpcy5fX2NsZWFyVGltZXIsY2xpY2s6dGhpcy50b2dnbGVOdW1iZXJ9fSl8fHZvaWQgMCx0aGlzLmlzQ2xlYXJhYmxlJiZ0KFFJY29uLHtzbG90OlwiYWZ0ZXJcIixzdGF0aWNDbGFzczpcInEtaWYtY29udHJvbFwiLHByb3BzOntuYW1lOnRoaXMuJHEuaWNvbi5pbnB1dFtcImNsZWFyXCIrKHRoaXMuaXNJbnZlcnRlZD9cIkludmVydGVkXCI6XCJcIildfSxuYXRpdmVPbjp7bW91c2Vkb3duOnRoaXMuX19jbGVhclRpbWVyLHRvdWNoc3RhcnQ6dGhpcy5fX2NsZWFyVGltZXIsY2xpY2s6dGhpcy5jbGVhcn19KXx8dm9pZCAwLHRoaXMuaXNMb2FkaW5nJiYodGhpcy4kc2xvdHMubG9hZGluZz90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1pZi1jb250cm9sXCIsc2xvdDpcImFmdGVyXCJ9LHRoaXMuJHNsb3RzLmxvYWRpbmcpOnQoUVNwaW5uZXIse3Nsb3Q6XCJhZnRlclwiLHN0YXRpY0NsYXNzOlwicS1pZi1jb250cm9sXCIscHJvcHM6e3NpemU6XCIyNHB4XCJ9fSkpfHx2b2lkIDBdKS5jb25jYXQodGhpcy4kc2xvdHMuYWZ0ZXIpLmNvbmNhdCh0aGlzLiRzbG90cy5kZWZhdWx0P3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJhYnNvbHV0ZS1mdWxsIG5vLXBvaW50ZXItZXZlbnRzXCIsc2xvdDpcImFmdGVyXCJ9LHRoaXMuJHNsb3RzLmRlZmF1bHQpOnZvaWQgMCkpfX0sUVJhZGlvPXtuYW1lOlwiUVJhZGlvXCIsbWl4aW5zOltPcHRpb25NaXhpbl0scHJvcHM6e3ZhbDp7cmVxdWlyZWQ6ITB9fSxjb21wdXRlZDp7aXNUcnVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWU9PT10aGlzLnZhbH19LG1ldGhvZHM6e3RvZ2dsZTpmdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPSEwKSx0aGlzLmRpc2FibGV8fHRoaXMucmVhZG9ubHl8fCh0JiZzdG9wQW5kUHJldmVudCh0KSxlJiZ0aGlzLiRlbC5ibHVyKCksdGhpcy5pc1RydWV8fHRoaXMuX191cGRhdGUodGhpcy52YWwpKX0sX19nZXRDb250ZW50OmZ1bmN0aW9uKHQpe3JldHVyblt0KFFJY29uLHtzdGF0aWNDbGFzczpcInEtcmFkaW8tdW5jaGVja2VkIGN1cnNvci1wb2ludGVyIGFic29sdXRlLWZ1bGxcIixwcm9wczp7bmFtZTp0aGlzLnVuY2hlY2tlZEljb258fHRoaXMuJHEuaWNvbi5yYWRpby51bmNoZWNrZWQubWF0fX0pLHQoUUljb24se3N0YXRpY0NsYXNzOlwicS1yYWRpby1jaGVja2VkIGN1cnNvci1wb2ludGVyIGFic29sdXRlLWZ1bGxcIixwcm9wczp7bmFtZTp0aGlzLmNoZWNrZWRJY29ufHx0aGlzLiRxLmljb24ucmFkaW8uY2hlY2tlZC5tYXR9fSksdChcImRpdlwiLHtyZWY6XCJyaXBwbGVcIixzdGF0aWNDbGFzczpcInEtcmFkaWFsLXJpcHBsZVwifSldfX0sYmVmb3JlQ3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5fX2tlYmFiVGFnPVwicS1yYWRpb1wifX0sUVRvZ2dsZT17bmFtZTpcIlFUb2dnbGVcIixtaXhpbnM6W0NoZWNrYm94TWl4aW4sT3B0aW9uTWl4aW5dLHByb3BzOntpY29uOlN0cmluZ30sY29tcHV0ZWQ6e2N1cnJlbnRJY29uOmZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuaXNUcnVlP3RoaXMuY2hlY2tlZEljb246dGhpcy51bmNoZWNrZWRJY29uKXx8dGhpcy5pY29ufSxpY29uQ29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1RydWU/XCJ3aGl0ZVwiOlwiZGFya1wifSxiYXNlQ2xhc3M6ZnVuY3Rpb24oKXt9fSxtZXRob2RzOntfX3N3aXBlOmZ1bmN0aW9uKHQpe1wibGVmdFwiPT09dC5kaXJlY3Rpb24/dGhpcy5pc1RydWUmJnRoaXMudG9nZ2xlKCk6XCJyaWdodFwiPT09dC5kaXJlY3Rpb24mJnRoaXMuaXNGYWxzZSYmdGhpcy50b2dnbGUoKX0sX19nZXRDb250ZW50OmZ1bmN0aW9uKHQpe3JldHVyblt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10b2dnbGUtYmFzZVwiLGNsYXNzOnRoaXMuYmFzZUNsYXNzfSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdG9nZ2xlLWhhbmRsZSByb3cgZmxleC1jZW50ZXJcIn0sW3RoaXMuY3VycmVudEljb24/dChRSWNvbix7c3RhdGljQ2xhc3M6XCJxLXRvZ2dsZS1pY29uXCIscHJvcHM6e25hbWU6dGhpcy5jdXJyZW50SWNvbixjb2xvcjp0aGlzLmljb25Db2xvcn19KTpudWxsLHQoXCJkaXZcIix7cmVmOlwicmlwcGxlXCIsc3RhdGljQ2xhc3M6XCJxLXJhZGlhbC1yaXBwbGVcIn0pXSldfX0sYmVmb3JlQ3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5fX2tlYmFiVGFnPVwicS10b2dnbGVcIn19LGNvbXBvbmVudHM9e3JhZGlvOlFSYWRpbyxjaGVja2JveDpRQ2hlY2tib3gsdG9nZ2xlOlFUb2dnbGV9LFFPcHRpb25Hcm91cD17bmFtZTpcIlFPcHRpb25Hcm91cFwiLG1peGluczpbUGFyZW50RmllbGRNaXhpbl0scHJvcHM6e3ZhbHVlOntyZXF1aXJlZDohMH0sdHlwZTp7ZGVmYXVsdDpcInJhZGlvXCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcInJhZGlvXCIsXCJjaGVja2JveFwiLFwidG9nZ2xlXCJdLmluY2x1ZGVzKHQpfX0sY29sb3I6U3RyaW5nLGtlZXBDb2xvcjpCb29sZWFuLGRhcms6Qm9vbGVhbixvcHRpb25zOnt0eXBlOkFycmF5LHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4gdC5ldmVyeShmdW5jdGlvbih0KXtyZXR1cm5cInZhbHVlXCJpbiB0JiZcImxhYmVsXCJpbiB0fSl9fSxsZWZ0TGFiZWw6Qm9vbGVhbixpbmxpbmU6Qm9vbGVhbixkaXNhYmxlOkJvb2xlYW4scmVhZG9ubHk6Qm9vbGVhbn0sY29tcHV0ZWQ6e2NvbXBvbmVudDpmdW5jdGlvbigpe3JldHVybiBjb21wb25lbnRzW3RoaXMudHlwZV19LG1vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSk/dGhpcy52YWx1ZS5zbGljZSgpOnRoaXMudmFsdWV9LGxlbmd0aDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlP1wicmFkaW9cIj09PXRoaXMudHlwZT8xOnRoaXMudmFsdWUubGVuZ3RoOjB9LF9fbmVlZHNCb3JkZXI6ZnVuY3Rpb24oKXtyZXR1cm4hMH19LG1ldGhvZHM6e19fb25Gb2N1czpmdW5jdGlvbigpe3RoaXMuJGVtaXQoXCJmb2N1c1wiKX0sX19vbkJsdXI6ZnVuY3Rpb24oKXt0aGlzLiRlbWl0KFwiYmx1clwiKX0sX191cGRhdGU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLiRlbWl0KFwiaW5wdXRcIix0KSx0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe0pTT04uc3RyaW5naWZ5KHQpIT09SlNPTi5zdHJpbmdpZnkoZS52YWx1ZSkmJmUuJGVtaXQoXCJjaGFuZ2VcIix0KX0pfX0sY3JlYXRlZDpmdW5jdGlvbigpe3ZhciB0PUFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSk7XCJyYWRpb1wiPT09dGhpcy50eXBlP3QmJmNvbnNvbGUuZXJyb3IoXCJxLW9wdGlvbi1ncm91cDogbW9kZWwgc2hvdWxkIG5vdCBiZSBhcnJheVwiKTp0fHxjb25zb2xlLmVycm9yKFwicS1vcHRpb24tZ3JvdXA6IG1vZGVsIHNob3VsZCBiZSBhcnJheSBpbiB5b3VyIGNhc2VcIil9LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1vcHRpb24tZ3JvdXAgZ3JvdXBcIixjbGFzczp7XCJxLW9wdGlvbi1ncm91cC1pbmxpbmUtb3B0c1wiOnRoaXMuaW5saW5lfX0sdGhpcy5vcHRpb25zLm1hcChmdW5jdGlvbihpKXtyZXR1cm4gdChcImRpdlwiLFt0KGUuY29tcG9uZW50LHtwcm9wczp7dmFsdWU6ZS52YWx1ZSx2YWw6aS52YWx1ZSxyZWFkb25seTplLnJlYWRvbmx5fHxpLnJlYWRvbmx5LGRpc2FibGU6ZS5kaXNhYmxlfHxpLmRpc2FibGUsbGFiZWw6aS5sYWJlbCxsZWZ0TGFiZWw6ZS5sZWZ0TGFiZWx8fGkubGVmdExhYmVsLGNvbG9yOmkuY29sb3J8fGUuY29sb3IsY2hlY2tlZEljb246aS5jaGVja2VkSWNvbix1bmNoZWNrZWRJY29uOmkudW5jaGVja2VkSWNvbixkYXJrOmkuZGFya3x8ZS5kYXJrLGtlZXBDb2xvcjppLmtlZXBDb2xvcnx8ZS5rZWVwQ29sb3J9LG9uOntpbnB1dDplLl9fdXBkYXRlLGZvY3VzOmUuX19vbkZvY3VzLGJsdXI6ZS5fX29uQmx1cn19KV0pfSkpfX0sUURpYWxvZz17bmFtZTpcIlFEaWFsb2dcIixwcm9wczp7dmFsdWU6Qm9vbGVhbix0aXRsZTpTdHJpbmcsbWVzc2FnZTpTdHJpbmcscHJvbXB0Ok9iamVjdCxvcHRpb25zOk9iamVjdCxvazp7dHlwZTpbU3RyaW5nLE9iamVjdCxCb29sZWFuXSxkZWZhdWx0OiEwfSxjYW5jZWw6W1N0cmluZyxPYmplY3QsQm9vbGVhbl0sc3RhY2tCdXR0b25zOkJvb2xlYW4scHJldmVudENsb3NlOkJvb2xlYW4sbm9CYWNrZHJvcERpc21pc3M6Qm9vbGVhbixub0VzY0Rpc21pc3M6Qm9vbGVhbixub1JlZm9jdXM6Qm9vbGVhbixwb3NpdGlvbjpTdHJpbmcsY29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJwcmltYXJ5XCJ9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPVtdLHM9dGhpcy4kc2xvdHMudGl0bGV8fHRoaXMudGl0bGUsbj10aGlzLiRzbG90cy5tZXNzYWdlfHx0aGlzLm1lc3NhZ2U7cmV0dXJuIHMmJmkucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwibW9kYWwtaGVhZGVyXCJ9LFtzXSkpLG4mJmkucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwibW9kYWwtYm9keSBtb2RhbC1tZXNzYWdlIG1vZGFsLXNjcm9sbFwifSxbbl0pKSwodGhpcy5oYXNGb3JtfHx0aGlzLiRzbG90cy5ib2R5KSYmaS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJtb2RhbC1ib2R5IG1vZGFsLXNjcm9sbFwifSx0aGlzLmhhc0Zvcm0/dGhpcy5wcm9tcHQ/dGhpcy5fX2dldFByb21wdCh0KTp0aGlzLl9fZ2V0T3B0aW9ucyh0KTpbdGhpcy4kc2xvdHMuYm9keV0pKSx0aGlzLiRzY29wZWRTbG90cy5idXR0b25zP2kucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwibW9kYWwtYnV0dG9uc1wiLGNsYXNzOnRoaXMuYnV0dG9uQ2xhc3N9LFt0aGlzLiRzY29wZWRTbG90cy5idXR0b25zKHtvazp0aGlzLl9fb25PayxjYW5jZWw6dGhpcy5fX29uQ2FuY2VsfSldKSk6KHRoaXMub2t8fHRoaXMuY2FuY2VsKSYmaS5wdXNoKHRoaXMuX19nZXRCdXR0b25zKHQpKSx0KFFNb2RhbCx7cmVmOlwibW9kYWxcIixwcm9wczp7dmFsdWU6dGhpcy52YWx1ZSxtaW5pbWl6ZWQ6ITAsbm9CYWNrZHJvcERpc21pc3M6dGhpcy5ub0JhY2tkcm9wRGlzbWlzc3x8dGhpcy5wcmV2ZW50Q2xvc2Usbm9Fc2NEaXNtaXNzOnRoaXMubm9Fc2NEaXNtaXNzfHx0aGlzLnByZXZlbnRDbG9zZSxub1JlZm9jdXM6dGhpcy5ub1JlZm9jdXMscG9zaXRpb246dGhpcy5wb3NpdGlvbn0sb246e2lucHV0OmZ1bmN0aW9uKHQpe2UuJGVtaXQoXCJpbnB1dFwiLHQpfSxzaG93OmZ1bmN0aW9uKCl7aWYoZS4kcS5wbGF0Zm9ybS5pcy5kZXNrdG9wKXt2YXIgdDtpZigoZS5wcm9tcHR8fGUub3B0aW9ucykmJih0PWUucHJvbXB0P2UuJHJlZnMubW9kYWwuJGVsLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiSU5QVVRcIik6ZS4kcmVmcy5tb2RhbC4kZWwuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcInEtb3B0aW9uXCIpKS5sZW5ndGgpcmV0dXJuIHRbMF0uZm9jdXMoKSx2b2lkIGUuJGVtaXQoXCJzaG93XCIpOyh0PWUuJHJlZnMubW9kYWwuJGVsLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXCJxLWJ0blwiKSkubGVuZ3RoJiZ0W3QubGVuZ3RoLTFdLmZvY3VzKCksZS4kZW1pdChcInNob3dcIil9ZWxzZSBlLiRlbWl0KFwic2hvd1wiKX0saGlkZTpmdW5jdGlvbigpe2UuJGVtaXQoXCJoaWRlXCIpfSxkaXNtaXNzOmZ1bmN0aW9uKCl7ZS4kZW1pdChcImNhbmNlbFwiKX0sXCJlc2NhcGUta2V5XCI6ZnVuY3Rpb24oKXtlLiRlbWl0KFwiZXNjYXBlLWtleVwiKX19fSxpKX0sY29tcHV0ZWQ6e2hhc0Zvcm06ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcm9tcHR8fHRoaXMub3B0aW9uc30sb2tMYWJlbDpmdW5jdGlvbigpe3JldHVybiEwPT09dGhpcy5vaz90aGlzLiRxLmkxOG4ubGFiZWwub2s6dGhpcy5va30sY2FuY2VsTGFiZWw6ZnVuY3Rpb24oKXtyZXR1cm4hMD09PXRoaXMuY2FuY2VsP3RoaXMuJHEuaTE4bi5sYWJlbC5jYW5jZWw6dGhpcy5jYW5jZWx9LGJ1dHRvbkNsYXNzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhY2tCdXR0b25zP1wiY29sdW1uXCI6XCJyb3dcIn0sb2tQcm9wczpmdW5jdGlvbigpe3JldHVybiBPYmplY3QodGhpcy5vayk9PT10aGlzLm9rP09iamVjdC5hc3NpZ24oe2NvbG9yOnRoaXMuY29sb3IsbGFiZWw6dGhpcy4kcS5pMThuLmxhYmVsLm9rLG5vUmlwcGxlOiEwfSx0aGlzLm9rKTp7Y29sb3I6dGhpcy5jb2xvcixmbGF0OiEwLGxhYmVsOnRoaXMub2tMYWJlbCxub1JpcHBsZTohMH19LGNhbmNlbFByb3BzOmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdCh0aGlzLmNhbmNlbCk9PT10aGlzLmNhbmNlbD9PYmplY3QuYXNzaWduKHtjb2xvcjp0aGlzLmNvbG9yLGxhYmVsOnRoaXMuJHEuaTE4bi5sYWJlbC5jYW5jZWwsbm9SaXBwbGU6ITB9LHRoaXMuY2FuY2VsKTp7Y29sb3I6dGhpcy5jb2xvcixmbGF0OiEwLGxhYmVsOnRoaXMuY2FuY2VsTGFiZWwsbm9SaXBwbGU6ITB9fX0sbWV0aG9kczp7c2hvdzpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRyZWZzLm1vZGFsLnNob3coKX0saGlkZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuJHJlZnMubW9kYWw/dGhpcy4kcmVmcy5tb2RhbC5oaWRlKCkudGhlbihmdW5jdGlvbigpe3JldHVybiB0Lmhhc0Zvcm0/Y2xvbmUodC5fX2dldERhdGEoKSk6dm9pZCAwfSk6UHJvbWlzZS5yZXNvbHZlKCl9LF9fZ2V0UHJvbXB0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuW3QoUUlucHV0LHtzdHlsZTpcIm1hcmdpbi1ib3R0b206IDEwcHhcIixwcm9wczp7dmFsdWU6dGhpcy5wcm9tcHQubW9kZWwsdHlwZTp0aGlzLnByb21wdC50eXBlfHxcInRleHRcIixjb2xvcjp0aGlzLmNvbG9yLG5vUGFzc1RvZ2dsZTohMH0sb246e2lucHV0OmZ1bmN0aW9uKHQpe2UucHJvbXB0Lm1vZGVsPXR9LGtleXVwOmZ1bmN0aW9uKHQpezEzPT09Z2V0RXZlbnRLZXkodCkmJmUuX19vbk9rKCl9fX0pXX0sX19nZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuW3QoUU9wdGlvbkdyb3VwLHtwcm9wczp7dmFsdWU6dGhpcy5vcHRpb25zLm1vZGVsLHR5cGU6dGhpcy5vcHRpb25zLnR5cGUsY29sb3I6dGhpcy5jb2xvcixpbmxpbmU6dGhpcy5vcHRpb25zLmlubGluZSxvcHRpb25zOnRoaXMub3B0aW9ucy5pdGVtc30sb246e2NoYW5nZTpmdW5jdGlvbih0KXtlLm9wdGlvbnMubW9kZWw9dH19fSldfSxfX2dldEJ1dHRvbnM6ZnVuY3Rpb24odCl7dmFyIGU9W107cmV0dXJuIHRoaXMuY2FuY2VsJiZlLnB1c2godChRQnRuLHtwcm9wczp0aGlzLmNhbmNlbFByb3BzLG9uOntjbGljazp0aGlzLl9fb25DYW5jZWx9fSkpLHRoaXMub2smJmUucHVzaCh0KFFCdG4se3Byb3BzOnRoaXMub2tQcm9wcyxvbjp7Y2xpY2s6dGhpcy5fX29uT2t9fSkpLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJtb2RhbC1idXR0b25zXCIsY2xhc3M6dGhpcy5idXR0b25DbGFzc30sZSl9LF9fb25PazpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuaGlkZSgpLnRoZW4oZnVuY3Rpb24oZSl7dC4kZW1pdChcIm9rXCIsZSl9KX0sX19vbkNhbmNlbDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuaGlkZSgpLnRoZW4oZnVuY3Rpb24oKXt0LiRlbWl0KFwiY2FuY2VsXCIpfSl9LF9fZ2V0RGF0YTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByb21wdD90aGlzLnByb21wdC5tb2RlbDp0aGlzLm9wdGlvbnM/dGhpcy5vcHRpb25zLm1vZGVsOnZvaWQgMH19fTtmdW5jdGlvbiBkZWJvdW5jZSh0LGUsaSl7dmFyIHM7ZnVuY3Rpb24gbigpe2Zvcih2YXIgbj10aGlzLG89W10scj1hcmd1bWVudHMubGVuZ3RoO3ItLTspb1tyXT1hcmd1bWVudHNbcl07Y2xlYXJUaW1lb3V0KHMpLGkmJiFzJiZ0LmFwcGx5KHRoaXMsbykscz1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cz1udWxsLGl8fHQuYXBwbHkobixvKX0sZSl9cmV0dXJuIHZvaWQgMD09PWUmJihlPTI1MCksbi5jYW5jZWw9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQocyl9LG59dmFyIFFUb29sdGlwPXtuYW1lOlwiUVRvb2x0aXBcIixtaXhpbnM6W01vZGVsVG9nZ2xlTWl4aW4sQ2FuUmVuZGVyTWl4aW5dLHByb3BzOnthbmNob3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJ0b3AgbWlkZGxlXCIsdmFsaWRhdG9yOnBvc2l0aW9uVmFsaWRhdG9yfSxzZWxmOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiYm90dG9tIG1pZGRsZVwiLHZhbGlkYXRvcjpwb3NpdGlvblZhbGlkYXRvcn0sb2Zmc2V0Ont0eXBlOkFycmF5LHZhbGlkYXRvcjpvZmZzZXRWYWxpZGF0b3J9LGRlbGF5Ont0eXBlOk51bWJlcixkZWZhdWx0OjB9LG1heEhlaWdodDpTdHJpbmcsZGlzYWJsZTpCb29sZWFufSx3YXRjaDp7JHJvdXRlOmZ1bmN0aW9uKCl7dGhpcy5oaWRlKCl9fSxjb21wdXRlZDp7YW5jaG9yT3JpZ2luOmZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlUG9zaXRpb24odGhpcy5hbmNob3IpfSxzZWxmT3JpZ2luOmZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlUG9zaXRpb24odGhpcy5zZWxmKX19LG1ldGhvZHM6e19fc2hvdzpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuJGVsKSx0aGlzLnNjcm9sbFRhcmdldD1nZXRTY3JvbGxUYXJnZXQodGhpcy5hbmNob3JFbCksdGhpcy5zY3JvbGxUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHRoaXMuaGlkZSxsaXN0ZW5PcHRzLnBhc3NpdmUpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsdGhpcy5fX2RlYm91bmNlZFVwZGF0ZVBvc2l0aW9uLGxpc3Rlbk9wdHMucGFzc2l2ZSksdGhpcy4kcS5wbGF0Zm9ybS5pcy5tb2JpbGUmJmRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsdGhpcy5oaWRlLCEwKSx0aGlzLl9fdXBkYXRlUG9zaXRpb24oKSx0aGlzLnNob3dQcm9taXNlJiZ0aGlzLnNob3dQcm9taXNlUmVzb2x2ZSgpfSxfX2hpZGU6ZnVuY3Rpb24oKXt0aGlzLl9fY2xlYW51cCgpLHRoaXMuaGlkZVByb21pc2UmJnRoaXMuaGlkZVByb21pc2VSZXNvbHZlKCl9LF9fY2xlYW51cDpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLnNjcm9sbFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsdGhpcy5oaWRlLGxpc3Rlbk9wdHMucGFzc2l2ZSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix0aGlzLl9fZGVib3VuY2VkVXBkYXRlUG9zaXRpb24sbGlzdGVuT3B0cy5wYXNzaXZlKSx0aGlzLiRlbC5yZW1vdmUoKSx0aGlzLiRxLnBsYXRmb3JtLmlzLm1vYmlsZSYmZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIix0aGlzLmhpZGUsITApfSxfX3VwZGF0ZVBvc2l0aW9uOmZ1bmN0aW9uKCl7c2V0UG9zaXRpb24oe2VsOnRoaXMuJGVsLGFuaW1hdGU6ITAsb2Zmc2V0OnRoaXMub2Zmc2V0LGFuY2hvckVsOnRoaXMuYW5jaG9yRWwsYW5jaG9yT3JpZ2luOnRoaXMuYW5jaG9yT3JpZ2luLHNlbGZPcmlnaW46dGhpcy5zZWxmT3JpZ2luLG1heEhlaWdodDp0aGlzLm1heEhlaWdodH0pfSxfX2RlbGF5U2hvdzpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLnRpbWVyPXNldFRpbWVvdXQodGhpcy5zaG93LHRoaXMuZGVsYXkpfSxfX2RlbGF5SGlkZTpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLmhpZGUoKX19LHJlbmRlcjpmdW5jdGlvbih0KXtpZih0aGlzLmNhblJlbmRlcilyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdG9vbHRpcCBhbmltYXRlLXBvcHVwXCJ9LFt0KFwiZGl2XCIsdGhpcy4kc2xvdHMuZGVmYXVsdCldKX0sYmVmb3JlTW91bnQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX19kZWJvdW5jZWRVcGRhdGVQb3NpdGlvbj1kZWJvdW5jZShmdW5jdGlvbigpe3QuX191cGRhdGVQb3NpdGlvbigpfSw3MCl9LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7dC4kZWwub2Zmc2V0SGVpZ2h0LHQuYW5jaG9yRWw9dC4kZWwucGFyZW50Tm9kZSx0LmFuY2hvckVsLnJlbW92ZUNoaWxkKHQuJGVsKSwodC5hbmNob3JFbC5jbGFzc0xpc3QuY29udGFpbnMoXCJxLXBvcHVwLS1za2lwXCIpfHx0LmFuY2hvckVsLmNsYXNzTGlzdC5jb250YWlucyhcIm5vLXBvaW50ZXItZXZlbnRzXCIpKSYmKHQuYW5jaG9yRWw9dC5hbmNob3JFbC5wYXJlbnROb2RlKSx0LiRxLnBsYXRmb3JtLmlzLm1vYmlsZT90LmFuY2hvckVsLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLHQuc2hvdyk6KHQuYW5jaG9yRWwuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZW50ZXJcIix0Ll9fZGVsYXlTaG93KSx0LmFuY2hvckVsLmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c1wiLHQuX19kZWxheVNob3cpLHQuYW5jaG9yRWwuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIix0Ll9fZGVsYXlIaWRlKSx0LmFuY2hvckVsLmFkZEV2ZW50TGlzdGVuZXIoXCJibHVyXCIsdC5fX2RlbGF5SGlkZSkpLHQudmFsdWUmJnQuc2hvdygpfSl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy5zaG93aW5nJiZ0aGlzLl9fY2xlYW51cCgpLHRoaXMuYW5jaG9yRWwmJih0aGlzLiRxLnBsYXRmb3JtLmlzLm1vYmlsZT90aGlzLmFuY2hvckVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLHRoaXMuc2hvdyk6KHRoaXMuYW5jaG9yRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZW50ZXJcIix0aGlzLl9fZGVsYXlTaG93KSx0aGlzLmFuY2hvckVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c1wiLHRoaXMuX19kZWxheVNob3cpLHRoaXMuYW5jaG9yRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIix0aGlzLl9fZGVsYXlIaWRlKSx0aGlzLmFuY2hvckVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJibHVyXCIsdGhpcy5fX2RlbGF5SGlkZSkpKX19O2Z1bmN0aW9uIHJ1bih0LGUsaSl7ZS5oYW5kbGVyP2UuaGFuZGxlcih0LGksaS5jYXJldCk6aS5ydW5DbWQoZS5jbWQsZS5wYXJhbSl9ZnVuY3Rpb24gZ2V0QnRuKHQsZSxpLHMsbil7dm9pZCAwPT09biYmKG49ITEpO3ZhciBvPW58fFwidG9nZ2xlXCI9PT1pLnR5cGUmJihpLnRvZ2dsZWQ/aS50b2dnbGVkKGUpOmkuY21kJiZlLmNhcmV0LmlzKGkuY21kLGkucGFyYW0pKSxyPVtdLGE9e2NsaWNrOmZ1bmN0aW9uKHQpe3MmJnMoKSxydW4odCxpLGUpfX07aWYoaS50aXAmJmUuJHEucGxhdGZvcm0uaXMuZGVza3RvcCl7dmFyIGw9aS5rZXk/dChcImRpdlwiLFt0KFwic21hbGxcIixcIihDVFJMICsgXCIrU3RyaW5nLmZyb21DaGFyQ29kZShpLmtleSkrXCIpXCIpXSk6bnVsbDtyLnB1c2godChRVG9vbHRpcCx7cHJvcHM6e2RlbGF5OjFlM319LFt0KFwiZGl2XCIse2RvbVByb3BzOntpbm5lckhUTUw6aS50aXB9fSksbF0pKX1yZXR1cm4gdChRQnRuLHtwcm9wczpPYmplY3QuYXNzaWduKHt9LGUuYnV0dG9uUHJvcHMse2ljb246aS5pY29uLGNvbG9yOm8/aS50b2dnbGVDb2xvcnx8ZS50b29sYmFyVG9nZ2xlQ29sb3I6aS5jb2xvcnx8ZS50b29sYmFyQ29sb3IsdGV4dENvbG9yOm8mJihlLnRvb2xiYXJGbGF0fHxlLnRvb2xiYXJPdXRsaW5lKT9udWxsOmkudGV4dENvbG9yfHxlLnRvb2xiYXJUZXh0Q29sb3IsbGFiZWw6aS5sYWJlbCxkaXNhYmxlOiEhaS5kaXNhYmxlJiYoXCJmdW5jdGlvblwiIT10eXBlb2YgaS5kaXNhYmxlfHxpLmRpc2FibGUoZSkpfSksb246YX0scil9ZnVuY3Rpb24gZ2V0RHJvcGRvd24odCxlLGkpe3ZhciBzLG4sbz1pLmxhYmVsLHI9aS5pY29uLGE9XCJuby1pY29uc1wiPT09aS5saXN0O2Z1bmN0aW9uIGwoKXtoLmNvbXBvbmVudEluc3RhbmNlLmhpZGUoKX1cIm9ubHktaWNvbnNcIj09PWkubGlzdD8obj1pLm9wdGlvbnMubWFwKGZ1bmN0aW9uKGkpe3ZhciBzPXZvaWQgMD09PWkudHlwZSYmZS5jYXJldC5pcyhpLmNtZCxpLnBhcmFtKTtyZXR1cm4gcyYmKG89aS50aXAscj1pLmljb24pLGdldEJ0bih0LGUsaSxsLHMpfSkscz1lLnRvb2xiYXJCYWNrZ3JvdW5kQ2xhc3Msbj1bdChRQnRuR3JvdXAse3Byb3BzOmUuYnV0dG9uUHJvcHMsc3RhdGljQ2xhc3M6XCJyZWxhdGl2ZS1wb3NpdGlvbiBxLWVkaXRvci10b29sYmFyLXBhZGRpbmdcIixzdHlsZTp7Ym9yZGVyUmFkaXVzOlwiMFwifX0sbildKToobj1pLm9wdGlvbnMubWFwKGZ1bmN0aW9uKGkpe3ZhciBzPSEhaS5kaXNhYmxlJiZpLmRpc2FibGUoZSksbj12b2lkIDA9PT1pLnR5cGUmJmUuY2FyZXQuaXMoaS5jbWQsaS5wYXJhbSk7biYmKG89aS50aXAscj1pLmljb24pO3ZhciBjPWkuaHRtbFRpcDtyZXR1cm4gdChRSXRlbSx7cHJvcHM6e2FjdGl2ZTpuLGxpbms6IXN9LGNsYXNzOntkaXNhYmxlZDpzfSxuYXRpdmVPbjp7Y2xpY2s6ZnVuY3Rpb24odCl7c3x8KGwoKSxlLiRyZWZzLmNvbnRlbnQmJmUuJHJlZnMuY29udGVudC5mb2N1cygpLGUuY2FyZXQucmVzdG9yZSgpLHJ1bih0LGksZSkpfX19LFthP1wiXCI6dChRSXRlbVNpZGUse3Byb3BzOntpY29uOmkuaWNvbn19KSx0KFFJdGVtTWFpbix7cHJvcHM6IWMmJmkudGlwP3tsYWJlbDppLnRpcH06bnVsbCxkb21Qcm9wczpjP3tpbm5lckhUTUw6aS5odG1sVGlwfTpudWxsfSldKX0pLHM9W2UudG9vbGJhckJhY2tncm91bmRDbGFzcyxlLnRvb2xiYXJUZXh0Q29sb3I/XCJ0ZXh0LVwiK2UudG9vbGJhclRleHRDb2xvcjpcIlwiXSxuPVt0KFFMaXN0LHtwcm9wczp7c2VwYXJhdG9yOiEwfX0sW25dKV0pO3ZhciBjPWkuaGlnaGxpZ2h0JiZvIT09aS5sYWJlbCxoPXQoUUJ0bkRyb3Bkb3duLHtwcm9wczpPYmplY3QuYXNzaWduKHt9LGUuYnV0dG9uUHJvcHMse25vQ2FwczohMCxub1dyYXA6ITAsY29sb3I6Yz9lLnRvb2xiYXJUb2dnbGVDb2xvcjplLnRvb2xiYXJDb2xvcix0ZXh0Q29sb3I6YyYmKGUudG9vbGJhckZsYXR8fGUudG9vbGJhck91dGxpbmUpP251bGw6ZS50b29sYmFyVGV4dENvbG9yLGxhYmVsOmkuZml4ZWRMYWJlbD9pLmxhYmVsOm8saWNvbjppLmZpeGVkSWNvbj9pLmljb246cixjb250ZW50Q2xhc3M6c30pfSxuKTtyZXR1cm4gaH1mdW5jdGlvbiBnZXRUb29sYmFyKHQsZSl7aWYoZS5jYXJldClyZXR1cm4gZS5idXR0b25zLm1hcChmdW5jdGlvbihpKXtyZXR1cm4gdChRQnRuR3JvdXAse3Byb3BzOmUuYnV0dG9uUHJvcHMsc3RhdGljQ2xhc3M6XCJpdGVtcy1jZW50ZXIgcmVsYXRpdmUtcG9zaXRpb25cIn0saS5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuXCJzbG90XCI9PT1pLnR5cGU/ZS4kc2xvdHNbaS5zbG90XTpcImRyb3Bkb3duXCI9PT1pLnR5cGU/Z2V0RHJvcGRvd24odCxlLGkpOmdldEJ0bih0LGUsaSl9KSl9KX1mdW5jdGlvbiBnZXRGb250cyh0LGUsaSxzKXt2b2lkIDA9PT1zJiYocz17fSk7dmFyIG49T2JqZWN0LmtleXMocyk7aWYoMD09PW4ubGVuZ3RoKXJldHVybnt9O3ZhciBvPXtkZWZhdWx0X2ZvbnQ6e2NtZDpcImZvbnROYW1lXCIscGFyYW06dCxpY29uOmksdGlwOmV9fTtyZXR1cm4gbi5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPXNbdF07b1t0XT17Y21kOlwiZm9udE5hbWVcIixwYXJhbTplLGljb246aSx0aXA6ZSxodG1sVGlwOic8Zm9udCBmYWNlPVwiJytlKydcIj4nK2UrXCI8L2ZvbnQ+XCJ9fSksb31mdW5jdGlvbiBnZXRMaW5rRWRpdG9yKHQsZSl7aWYoZS5jYXJldCl7dmFyIGk9ZS50b29sYmFyQ29sb3J8fGUudG9vbGJhclRleHRDb2xvcixzPWUuZWRpdExpbmtVcmwsbj1mdW5jdGlvbigpe2UuY2FyZXQucmVzdG9yZSgpLHMhPT1lLmVkaXRMaW5rVXJsJiZkb2N1bWVudC5leGVjQ29tbWFuZChcImNyZWF0ZUxpbmtcIiwhMSxcIlwiPT09cz9cIiBcIjpzKSxlLmVkaXRMaW5rVXJsPW51bGx9O3JldHVyblt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1teC14c1wiLGNsYXNzOlwidGV4dC1cIitpfSxbZS4kcS5pMThuLmVkaXRvci51cmwrXCI6IFwiXSksdChRSW5wdXQse2tleTpcInFlZHRfYnRtX2lucHV0XCIsc3RhdGljQ2xhc3M6XCJxLW1hLW5vbmUgcS1wYS1ub25lIGNvbCBxLWVkaXRvci1pbnB1dFwiLHByb3BzOnt2YWx1ZTpzLGNvbG9yOmksYXV0b2ZvY3VzOiEwLGhpZGVVbmRlcmxpbmU6ITB9LG9uOntpbnB1dDpmdW5jdGlvbih0KXtzPXR9LGtleWRvd246ZnVuY3Rpb24odCl7c3dpdGNoKGdldEV2ZW50S2V5KHQpKXtjYXNlIDEzOnJldHVybiB0LnByZXZlbnREZWZhdWx0KCksbigpO2Nhc2UgMjc6ZS5jYXJldC5yZXN0b3JlKCksIWUuZWRpdExpbmtVcmwmJmRvY3VtZW50LmV4ZWNDb21tYW5kKFwidW5saW5rXCIpLGUuZWRpdExpbmtVcmw9bnVsbH19fX0pLHQoUUJ0bkdyb3VwLHtrZXk6XCJxZWR0X2J0bV9ncnBcIixwcm9wczplLmJ1dHRvblByb3BzfSxbdChRQnRuLHtrZXk6XCJxZWR0X2J0bV9yZW1cIixhdHRyczp7dGFiaW5kZXg6LTF9LHByb3BzOk9iamVjdC5hc3NpZ24oe30sZS5idXR0b25Qcm9wcyx7bGFiZWw6ZS4kcS5pMThuLmxhYmVsLnJlbW92ZSxub0NhcHM6ITB9KSxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtlLmNhcmV0LnJlc3RvcmUoKSxkb2N1bWVudC5leGVjQ29tbWFuZChcInVubGlua1wiKSxlLmVkaXRMaW5rVXJsPW51bGx9fX0pLHQoUUJ0bix7a2V5OlwicWVkdF9idG1fdXBkXCIscHJvcHM6T2JqZWN0LmFzc2lnbih7fSxlLmJ1dHRvblByb3BzLHtsYWJlbDplLiRxLmkxOG4ubGFiZWwudXBkYXRlLG5vQ2FwczohMH0pLG9uOntjbGljazpufX0pXSldfX1mdW5jdGlvbiBnZXRCbG9ja0VsZW1lbnQodCxlKXtpZihlJiZ0PT09ZSlyZXR1cm4gbnVsbDt2YXIgaT0od2luZG93LmdldENvbXB1dGVkU3R5bGU/d2luZG93LmdldENvbXB1dGVkU3R5bGUodCk6dC5jdXJyZW50U3R5bGUpLmRpc3BsYXk7cmV0dXJuXCJibG9ja1wiPT09aXx8XCJ0YWJsZVwiPT09aT90OmdldEJsb2NrRWxlbWVudCh0LnBhcmVudE5vZGUpfWZ1bmN0aW9uIGlzQ2hpbGRPZih0LGUpe2lmKCF0KXJldHVybiExO2Zvcig7dD10LnBhcmVudE5vZGU7KXtpZih0PT09ZG9jdW1lbnQuYm9keSlyZXR1cm4hMTtpZih0PT09ZSlyZXR1cm4hMH1yZXR1cm4hMX12YXIgdXJsUmVnZXg9L15odHRwcz86XFwvXFwvLyxDYXJldD1mdW5jdGlvbih0LGUpe3RoaXMuZWw9dCx0aGlzLnZtPWV9LHByb3RvdHlwZUFjY2Vzc29ycz17c2VsZWN0aW9uOntjb25maWd1cmFibGU6ITB9LGhhc1NlbGVjdGlvbjp7Y29uZmlndXJhYmxlOiEwfSxyYW5nZTp7Y29uZmlndXJhYmxlOiEwfSxwYXJlbnQ6e2NvbmZpZ3VyYWJsZTohMH0sYmxvY2tQYXJlbnQ6e2NvbmZpZ3VyYWJsZTohMH19O3Byb3RvdHlwZUFjY2Vzc29ycy5zZWxlY3Rpb24uZ2V0PWZ1bmN0aW9uKCl7aWYodGhpcy5lbCl7dmFyIHQ9ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCk7cmV0dXJuIGlzQ2hpbGRPZih0LmFuY2hvck5vZGUsdGhpcy5lbCkmJmlzQ2hpbGRPZih0LmZvY3VzTm9kZSx0aGlzLmVsKT90OnZvaWQgMH19LHByb3RvdHlwZUFjY2Vzc29ycy5oYXNTZWxlY3Rpb24uZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0aW9uP3RoaXMuc2VsZWN0aW9uLnRvU3RyaW5nKCkubGVuZ3RoPjA6bnVsbH0scHJvdG90eXBlQWNjZXNzb3JzLnJhbmdlLmdldD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc2VsZWN0aW9uO2lmKHQpcmV0dXJuIHQucmFuZ2VDb3VudD90LmdldFJhbmdlQXQoMCk6bnVsbH0scHJvdG90eXBlQWNjZXNzb3JzLnBhcmVudC5nZXQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnJhbmdlO2lmKHQpe3ZhciBlPXQuc3RhcnRDb250YWluZXI7cmV0dXJuIGUubm9kZVR5cGU9PT1kb2N1bWVudC5FTEVNRU5UX05PREU/ZTplLnBhcmVudE5vZGV9fSxwcm90b3R5cGVBY2Nlc3NvcnMuYmxvY2tQYXJlbnQuZ2V0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wYXJlbnQ7aWYodClyZXR1cm4gZ2V0QmxvY2tFbGVtZW50KHQsdGhpcy5lbCl9LENhcmV0LnByb3RvdHlwZS5zYXZlPWZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQmJih0PXRoaXMucmFuZ2UpLHRoaXMuX3JhbmdlPXR9LENhcmV0LnByb3RvdHlwZS5yZXN0b3JlPWZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQmJih0PXRoaXMuX3JhbmdlKTt2YXIgZT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGk9ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCk7dD8oZS5zZXRTdGFydCh0LnN0YXJ0Q29udGFpbmVyLHQuc3RhcnRPZmZzZXQpLGUuc2V0RW5kKHQuZW5kQ29udGFpbmVyLHQuZW5kT2Zmc2V0KSxpLnJlbW92ZUFsbFJhbmdlcygpLGkuYWRkUmFuZ2UoZSkpOihpLnNlbGVjdEFsbENoaWxkcmVuKHRoaXMuZWwpLGkuY29sbGFwc2VUb0VuZCgpKX0sQ2FyZXQucHJvdG90eXBlLmhhc1BhcmVudD1mdW5jdGlvbih0LGUpe3ZhciBpPWU/dGhpcy5wYXJlbnQ6dGhpcy5ibG9ja1BhcmVudDtyZXR1cm4hIWkmJmkubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXQudG9Mb3dlckNhc2UoKX0sQ2FyZXQucHJvdG90eXBlLmhhc1BhcmVudHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5wYXJlbnQ7cmV0dXJuISFlJiZ0LmluY2x1ZGVzKGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl9LENhcmV0LnByb3RvdHlwZS5pcz1mdW5jdGlvbih0LGUpe3N3aXRjaCh0KXtjYXNlXCJmb3JtYXRCbG9ja1wiOnJldHVyblwiRElWXCI9PT1lJiZ0aGlzLnBhcmVudD09PXRoaXMuZWx8fHRoaXMuaGFzUGFyZW50KGUsXCJQUkVcIj09PWUpO2Nhc2VcImxpbmtcIjpyZXR1cm4gdGhpcy5oYXNQYXJlbnQoXCJBXCIsITApO2Nhc2VcImZvbnRTaXplXCI6cmV0dXJuIGRvY3VtZW50LnF1ZXJ5Q29tbWFuZFZhbHVlKHQpPT09ZTtjYXNlXCJmb250TmFtZVwiOnZhciBpPWRvY3VtZW50LnF1ZXJ5Q29tbWFuZFZhbHVlKHQpO3JldHVybiBpPT09J1wiJytlKydcIid8fGk9PT1lO2Nhc2VcImZ1bGxzY3JlZW5cIjpyZXR1cm4gdGhpcy52bS5pbkZ1bGxzY3JlZW47Y2FzZSB2b2lkIDA6cmV0dXJuITE7ZGVmYXVsdDp2YXIgcz1kb2N1bWVudC5xdWVyeUNvbW1hbmRTdGF0ZSh0KTtyZXR1cm4gZT9zPT09ZTpzfX0sQ2FyZXQucHJvdG90eXBlLmdldFBhcmVudEF0dHJpYnV0ZT1mdW5jdGlvbih0KXtpZih0aGlzLnBhcmVudClyZXR1cm4gdGhpcy5wYXJlbnQuZ2V0QXR0cmlidXRlKHQpfSxDYXJldC5wcm90b3R5cGUuY2FuPWZ1bmN0aW9uKHQpe2lmKFwib3V0ZGVudFwiPT09dClyZXR1cm4gdGhpcy5oYXNQYXJlbnRzKFtcImJsb2NrcXVvdGVcIixcImxpXCJdKTtpZihcImluZGVudFwiPT09dCl7dmFyIGU9ISF0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtpZihcImJsb2NrcXVvdGVcIj09PWUpcmV0dXJuITE7aWYoXCJsaVwiPT09ZSl7dmFyIGk9dGhpcy5wYXJlbnQucHJldmlvdXNTaWJsaW5nO3JldHVybiBpJiZcImxpXCI9PT1pLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCl9cmV0dXJuITF9fSxDYXJldC5wcm90b3R5cGUuYXBwbHk9ZnVuY3Rpb24odCxlLGkpe2lmKHZvaWQgMD09PWkmJihpPWZ1bmN0aW9uKCl7fSksXCJmb3JtYXRCbG9ja1wiPT09dClbXCJCTE9DS1FVT1RFXCIsXCJIMVwiLFwiSDJcIixcIkgzXCIsXCJINFwiLFwiSDVcIixcIkg2XCJdLmluY2x1ZGVzKGUpJiZ0aGlzLmlzKHQsZSkmJih0PVwib3V0ZGVudFwiLGU9bnVsbCksXCJQUkVcIj09PWUmJnRoaXMuaXModCxcIlBSRVwiKSYmKGU9XCJQXCIpO2Vsc2V7aWYoXCJwcmludFwiPT09dCl7aSgpO3ZhciBzPXdpbmRvdy5vcGVuKCk7cmV0dXJuIHMuZG9jdW1lbnQud3JpdGUoXCJcXG4gICAgICAgIDwhZG9jdHlwZSBodG1sPlxcbiAgICAgICAgPGh0bWw+XFxuICAgICAgICAgIDxoZWFkPlxcbiAgICAgICAgICAgIDx0aXRsZT5QcmludCAtIFwiK2RvY3VtZW50LnRpdGxlK1wiPC90aXRsZT5cXG4gICAgICAgICAgPC9oZWFkPlxcbiAgICAgICAgICA8Ym9keT5cXG4gICAgICAgICAgICA8ZGl2PlwiK3RoaXMuZWwuaW5uZXJIVE1MK1wiPC9kaXY+XFxuICAgICAgICAgIDwvYm9keT5cXG4gICAgICAgIDwvaHRtbD5cXG4gICAgICBcIikscy5wcmludCgpLHZvaWQgcy5jbG9zZSgpfWlmKFwibGlua1wiPT09dCl7dmFyIG49dGhpcy5nZXRQYXJlbnRBdHRyaWJ1dGUoXCJocmVmXCIpO2lmKG4pdGhpcy52bS5lZGl0TGlua1VybD1uO2Vsc2V7dmFyIG89dGhpcy5zZWxlY3RXb3JkKHRoaXMuc2VsZWN0aW9uKSxyPW8/by50b1N0cmluZygpOlwiXCI7aWYoIXIubGVuZ3RoKXJldHVybjt0aGlzLnZtLmVkaXRMaW5rVXJsPXVybFJlZ2V4LnRlc3Qocik/cjpcIlwiLGRvY3VtZW50LmV4ZWNDb21tYW5kKFwiY3JlYXRlTGlua1wiLCExLFwiXCI9PT10aGlzLnZtLmVkaXRMaW5rVXJsP1wiIFwiOnRoaXMudm0uZWRpdExpbmtVcmwpfXJldHVybiB0aGlzLnJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyh0aGlzLnBhcmVudCksdm9pZCB0aGlzLnNhdmUoKX1pZihcImZ1bGxzY3JlZW5cIj09PXQpcmV0dXJuIHRoaXMudm0udG9nZ2xlRnVsbHNjcmVlbigpLHZvaWQgaSgpfWRvY3VtZW50LmV4ZWNDb21tYW5kKHQsITEsZSksaSgpfSxDYXJldC5wcm90b3R5cGUuc2VsZWN0V29yZD1mdW5jdGlvbih0KXtpZighdC5pc0NvbGxhcHNlZClyZXR1cm4gdDt2YXIgZT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2Uuc2V0U3RhcnQodC5hbmNob3JOb2RlLHQuYW5jaG9yT2Zmc2V0KSxlLnNldEVuZCh0LmZvY3VzTm9kZSx0LmZvY3VzT2Zmc2V0KTt2YXIgaT1lLmNvbGxhcHNlZD9bXCJiYWNrd2FyZFwiLFwiZm9yd2FyZFwiXTpbXCJmb3J3YXJkXCIsXCJiYWNrd2FyZFwiXTtlLmRldGFjaCgpO3ZhciBzPXQuZm9jdXNOb2RlLG49dC5mb2N1c09mZnNldDtyZXR1cm4gdC5jb2xsYXBzZSh0LmFuY2hvck5vZGUsdC5hbmNob3JPZmZzZXQpLHQubW9kaWZ5KFwibW92ZVwiLGlbMF0sXCJjaGFyYWN0ZXJcIiksdC5tb2RpZnkoXCJtb3ZlXCIsaVsxXSxcIndvcmRcIiksdC5leHRlbmQocyxuKSx0Lm1vZGlmeShcImV4dGVuZFwiLGlbMV0sXCJjaGFyYWN0ZXJcIiksdC5tb2RpZnkoXCJleHRlbmRcIixpWzBdLFwid29yZFwiKSx0fSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhDYXJldC5wcm90b3R5cGUscHJvdG90eXBlQWNjZXNzb3JzKTt2YXIgdG9TdHJpbmc9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxoYXNPd249T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxjbGFzczJ0eXBlPXt9O2Z1bmN0aW9uIHR5cGUodCl7cmV0dXJuIG51bGw9PT10P1N0cmluZyh0KTpjbGFzczJ0eXBlW3RvU3RyaW5nLmNhbGwodCldfHxcIm9iamVjdFwifWZ1bmN0aW9uIGlzUGxhaW5PYmplY3QodCl7aWYoIXR8fFwib2JqZWN0XCIhPT10eXBlKHQpKXJldHVybiExO2lmKHQuY29uc3RydWN0b3ImJiFoYXNPd24uY2FsbCh0LFwiY29uc3RydWN0b3JcIikmJiFoYXNPd24uY2FsbCh0LmNvbnN0cnVjdG9yLnByb3RvdHlwZSxcImlzUHJvdG90eXBlT2ZcIikpcmV0dXJuITE7dmFyIGU7Zm9yKGUgaW4gdCk7cmV0dXJuIHZvaWQgMD09PWV8fGhhc093bi5jYWxsKHQsZSl9ZnVuY3Rpb24gZXh0ZW5kKCl7dmFyIHQsZSxpLHMsbixvLHI9YXJndW1lbnRzLGE9YXJndW1lbnRzWzBdfHx7fSxsPTEsYz1hcmd1bWVudHMubGVuZ3RoLGg9ITE7Zm9yKFwiYm9vbGVhblwiPT10eXBlb2YgYSYmKGg9YSxhPWFyZ3VtZW50c1sxXXx8e30sbD0yKSxPYmplY3QoYSkhPT1hJiZcImZ1bmN0aW9uXCIhPT10eXBlKGEpJiYoYT17fSksYz09PWwmJihhPXRoaXMsbC0tKTtsPGM7bCsrKWlmKG51bGwhPT0odD1yW2xdKSlmb3IoZSBpbiB0KWk9YVtlXSxhIT09KHM9dFtlXSkmJihoJiZzJiYoaXNQbGFpbk9iamVjdChzKXx8KG49XCJhcnJheVwiPT09dHlwZShzKSkpPyhuPyhuPSExLG89aSYmXCJhcnJheVwiPT09dHlwZShpKT9pOltdKTpvPWkmJmlzUGxhaW5PYmplY3QoaSk/aTp7fSxhW2VdPWV4dGVuZChoLG8scykpOnZvaWQgMCE9PXMmJihhW2VdPXMpKTtyZXR1cm4gYX1cIkJvb2xlYW4gTnVtYmVyIFN0cmluZyBGdW5jdGlvbiBBcnJheSBEYXRlIFJlZ0V4cCBPYmplY3RcIi5zcGxpdChcIiBcIikuZm9yRWFjaChmdW5jdGlvbih0KXtjbGFzczJ0eXBlW1wiW29iamVjdCBcIit0K1wiXVwiXT10LnRvTG93ZXJDYXNlKCl9KTt2YXIgUUVkaXRvcj17bmFtZTpcIlFFZGl0b3JcIixtaXhpbnM6W0Z1bGxzY3JlZW5NaXhpbl0scHJvcHM6e3ZhbHVlOnt0eXBlOlN0cmluZyxyZXF1aXJlZDohMH0scmVhZG9ubHk6Qm9vbGVhbixkaXNhYmxlOkJvb2xlYW4sbWluSGVpZ2h0Ont0eXBlOlN0cmluZyxkZWZhdWx0OlwiMTByZW1cIn0sbWF4SGVpZ2h0OlN0cmluZyxoZWlnaHQ6U3RyaW5nLGRlZmluaXRpb25zOk9iamVjdCxmb250czpPYmplY3QsdG9vbGJhcjp7dHlwZTpBcnJheSx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10Lmxlbmd0aHx8dC5ldmVyeShmdW5jdGlvbih0KXtyZXR1cm4gdC5sZW5ndGh9KX0sZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybltbXCJsZWZ0XCIsXCJjZW50ZXJcIixcInJpZ2h0XCIsXCJqdXN0aWZ5XCJdLFtcImJvbGRcIixcIml0YWxpY1wiLFwidW5kZXJsaW5lXCIsXCJzdHJpa2VcIl0sW1widW5kb1wiLFwicmVkb1wiXV19fSx0b29sYmFyQ29sb3I6U3RyaW5nLHRvb2xiYXJUZXh0Q29sb3I6U3RyaW5nLHRvb2xiYXJUb2dnbGVDb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInByaW1hcnlcIn0sdG9vbGJhckJnOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiZ3JleS0zXCJ9LHRvb2xiYXJGbGF0OkJvb2xlYW4sdG9vbGJhck91dGxpbmU6Qm9vbGVhbix0b29sYmFyUHVzaDpCb29sZWFuLHRvb2xiYXJSb3VuZGVkOkJvb2xlYW4sY29udGVudFN0eWxlOk9iamVjdCxjb250ZW50Q2xhc3M6W09iamVjdCxBcnJheSxTdHJpbmddfSxjb21wdXRlZDp7ZWRpdGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5yZWFkb25seSYmIXRoaXMuZGlzYWJsZX0saGFzVG9vbGJhcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRvb2xiYXImJnRoaXMudG9vbGJhci5sZW5ndGg+MH0sdG9vbGJhckJhY2tncm91bmRDbGFzczpmdW5jdGlvbigpe2lmKHRoaXMudG9vbGJhckJnKXJldHVyblwiYmctXCIrdGhpcy50b29sYmFyQmd9LGJ1dHRvblByb3BzOmZ1bmN0aW9uKCl7cmV0dXJue291dGxpbmU6dGhpcy50b29sYmFyT3V0bGluZSxmbGF0OnRoaXMudG9vbGJhckZsYXQscHVzaDp0aGlzLnRvb2xiYXJQdXNoLHJvdW5kZWQ6dGhpcy50b29sYmFyUm91bmRlZCxkZW5zZTohMCxjb2xvcjp0aGlzLnRvb2xiYXJDb2xvcixkaXNhYmxlOiF0aGlzLmVkaXRhYmxlfX0sYnV0dG9uRGVmOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kcS5pMThuLmVkaXRvcixlPXRoaXMuJHEuaWNvbi5lZGl0b3I7cmV0dXJue2JvbGQ6e2NtZDpcImJvbGRcIixpY29uOmUuYm9sZCx0aXA6dC5ib2xkLGtleTo2Nn0saXRhbGljOntjbWQ6XCJpdGFsaWNcIixpY29uOmUuaXRhbGljLHRpcDp0Lml0YWxpYyxrZXk6NzN9LHN0cmlrZTp7Y21kOlwic3RyaWtlVGhyb3VnaFwiLGljb246ZS5zdHJpa2V0aHJvdWdoLHRpcDp0LnN0cmlrZXRocm91Z2gsa2V5OjgzfSx1bmRlcmxpbmU6e2NtZDpcInVuZGVybGluZVwiLGljb246ZS51bmRlcmxpbmUsdGlwOnQudW5kZXJsaW5lLGtleTo4NX0sdW5vcmRlcmVkOntjbWQ6XCJpbnNlcnRVbm9yZGVyZWRMaXN0XCIsaWNvbjplLnVub3JkZXJlZExpc3QsdGlwOnQudW5vcmRlcmVkTGlzdH0sb3JkZXJlZDp7Y21kOlwiaW5zZXJ0T3JkZXJlZExpc3RcIixpY29uOmUub3JkZXJlZExpc3QsdGlwOnQub3JkZXJlZExpc3R9LHN1YnNjcmlwdDp7Y21kOlwic3Vic2NyaXB0XCIsaWNvbjplLnN1YnNjcmlwdCx0aXA6dC5zdWJzY3JpcHQsaHRtbFRpcDpcIng8c3Vic2NyaXB0PjI8L3N1YnNjcmlwdD5cIn0sc3VwZXJzY3JpcHQ6e2NtZDpcInN1cGVyc2NyaXB0XCIsaWNvbjplLnN1cGVyc2NyaXB0LHRpcDp0LnN1cGVyc2NyaXB0LGh0bWxUaXA6XCJ4PHN1cGVyc2NyaXB0PjI8L3N1cGVyc2NyaXB0PlwifSxsaW5rOntjbWQ6XCJsaW5rXCIsaWNvbjplLmh5cGVybGluayx0aXA6dC5oeXBlcmxpbmssa2V5Ojc2fSxmdWxsc2NyZWVuOntjbWQ6XCJmdWxsc2NyZWVuXCIsaWNvbjplLnRvZ2dsZUZ1bGxzY3JlZW4sdGlwOnQudG9nZ2xlRnVsbHNjcmVlbixrZXk6NzB9LHF1b3RlOntjbWQ6XCJmb3JtYXRCbG9ja1wiLHBhcmFtOlwiQkxPQ0tRVU9URVwiLGljb246ZS5xdW90ZSx0aXA6dC5xdW90ZSxrZXk6ODF9LGxlZnQ6e2NtZDpcImp1c3RpZnlMZWZ0XCIsaWNvbjplLmxlZnQsdGlwOnQubGVmdH0sY2VudGVyOntjbWQ6XCJqdXN0aWZ5Q2VudGVyXCIsaWNvbjplLmNlbnRlcix0aXA6dC5jZW50ZXJ9LHJpZ2h0OntjbWQ6XCJqdXN0aWZ5UmlnaHRcIixpY29uOmUucmlnaHQsdGlwOnQucmlnaHR9LGp1c3RpZnk6e2NtZDpcImp1c3RpZnlGdWxsXCIsaWNvbjplLmp1c3RpZnksdGlwOnQuanVzdGlmeX0scHJpbnQ6e3R5cGU6XCJuby1zdGF0ZVwiLGNtZDpcInByaW50XCIsaWNvbjplLnByaW50LHRpcDp0LnByaW50LGtleTo4MH0sb3V0ZGVudDp7dHlwZTpcIm5vLXN0YXRlXCIsZGlzYWJsZTpmdW5jdGlvbih0KXtyZXR1cm4gdC5jYXJldCYmIXQuY2FyZXQuY2FuKFwib3V0ZGVudFwiKX0sY21kOlwib3V0ZGVudFwiLGljb246ZS5vdXRkZW50LHRpcDp0Lm91dGRlbnR9LGluZGVudDp7dHlwZTpcIm5vLXN0YXRlXCIsZGlzYWJsZTpmdW5jdGlvbih0KXtyZXR1cm4gdC5jYXJldCYmIXQuY2FyZXQuY2FuKFwiaW5kZW50XCIpfSxjbWQ6XCJpbmRlbnRcIixpY29uOmUuaW5kZW50LHRpcDp0LmluZGVudH0scmVtb3ZlRm9ybWF0Ont0eXBlOlwibm8tc3RhdGVcIixjbWQ6XCJyZW1vdmVGb3JtYXRcIixpY29uOmUucmVtb3ZlRm9ybWF0LHRpcDp0LnJlbW92ZUZvcm1hdH0saHI6e3R5cGU6XCJuby1zdGF0ZVwiLGNtZDpcImluc2VydEhvcml6b250YWxSdWxlXCIsaWNvbjplLmhyLHRpcDp0LmhyfSx1bmRvOnt0eXBlOlwibm8tc3RhdGVcIixjbWQ6XCJ1bmRvXCIsaWNvbjplLnVuZG8sdGlwOnQudW5kbyxrZXk6OTB9LHJlZG86e3R5cGU6XCJuby1zdGF0ZVwiLGNtZDpcInJlZG9cIixpY29uOmUucmVkbyx0aXA6dC5yZWRvLGtleTo4OX0saDE6e2NtZDpcImZvcm1hdEJsb2NrXCIscGFyYW06XCJIMVwiLGljb246ZS5oZWFkZXIsdGlwOnQuaGVhZGVyMSxodG1sVGlwOic8aDEgY2xhc3M9XCJxLW1hLW5vbmVcIj4nK3QuaGVhZGVyMStcIjwvaDE+XCJ9LGgyOntjbWQ6XCJmb3JtYXRCbG9ja1wiLHBhcmFtOlwiSDJcIixpY29uOmUuaGVhZGVyLHRpcDp0LmhlYWRlcjIsaHRtbFRpcDonPGgyIGNsYXNzPVwicS1tYS1ub25lXCI+Jyt0LmhlYWRlcjIrXCI8L2gyPlwifSxoMzp7Y21kOlwiZm9ybWF0QmxvY2tcIixwYXJhbTpcIkgzXCIsaWNvbjplLmhlYWRlcix0aXA6dC5oZWFkZXIzLGh0bWxUaXA6JzxoMyBjbGFzcz1cInEtbWEtbm9uZVwiPicrdC5oZWFkZXIzK1wiPC9oMz5cIn0saDQ6e2NtZDpcImZvcm1hdEJsb2NrXCIscGFyYW06XCJINFwiLGljb246ZS5oZWFkZXIsdGlwOnQuaGVhZGVyNCxodG1sVGlwOic8aDQgY2xhc3M9XCJxLW1hLW5vbmVcIj4nK3QuaGVhZGVyNCtcIjwvaDQ+XCJ9LGg1OntjbWQ6XCJmb3JtYXRCbG9ja1wiLHBhcmFtOlwiSDVcIixpY29uOmUuaGVhZGVyLHRpcDp0LmhlYWRlcjUsaHRtbFRpcDonPGg1IGNsYXNzPVwicS1tYS1ub25lXCI+Jyt0LmhlYWRlcjUrXCI8L2g1PlwifSxoNjp7Y21kOlwiZm9ybWF0QmxvY2tcIixwYXJhbTpcIkg2XCIsaWNvbjplLmhlYWRlcix0aXA6dC5oZWFkZXI2LGh0bWxUaXA6JzxoNiBjbGFzcz1cInEtbWEtbm9uZVwiPicrdC5oZWFkZXI2K1wiPC9oNj5cIn0scDp7Y21kOlwiZm9ybWF0QmxvY2tcIixwYXJhbTpcIkRJVlwiLGljb246ZS5oZWFkZXIsdGlwOnQucGFyYWdyYXBofSxjb2RlOntjbWQ6XCJmb3JtYXRCbG9ja1wiLHBhcmFtOlwiUFJFXCIsaWNvbjplLmNvZGUsdGlwOlwiPGNvZGU+XCIrdC5jb2RlK1wiPC9jb2RlPlwifSxcInNpemUtMVwiOntjbWQ6XCJmb250U2l6ZVwiLHBhcmFtOlwiMVwiLGljb246ZS5zaXplLHRpcDp0LnNpemUxLGh0bWxUaXA6Jzxmb250IHNpemU9XCIxXCI+Jyt0LnNpemUxK1wiPC9mb250PlwifSxcInNpemUtMlwiOntjbWQ6XCJmb250U2l6ZVwiLHBhcmFtOlwiMlwiLGljb246ZS5zaXplLHRpcDp0LnNpemUyLGh0bWxUaXA6Jzxmb250IHNpemU9XCIyXCI+Jyt0LnNpemUyK1wiPC9mb250PlwifSxcInNpemUtM1wiOntjbWQ6XCJmb250U2l6ZVwiLHBhcmFtOlwiM1wiLGljb246ZS5zaXplLHRpcDp0LnNpemUzLGh0bWxUaXA6Jzxmb250IHNpemU9XCIzXCI+Jyt0LnNpemUzK1wiPC9mb250PlwifSxcInNpemUtNFwiOntjbWQ6XCJmb250U2l6ZVwiLHBhcmFtOlwiNFwiLGljb246ZS5zaXplLHRpcDp0LnNpemU0LGh0bWxUaXA6Jzxmb250IHNpemU9XCI0XCI+Jyt0LnNpemU0K1wiPC9mb250PlwifSxcInNpemUtNVwiOntjbWQ6XCJmb250U2l6ZVwiLHBhcmFtOlwiNVwiLGljb246ZS5zaXplLHRpcDp0LnNpemU1LGh0bWxUaXA6Jzxmb250IHNpemU9XCI1XCI+Jyt0LnNpemU1K1wiPC9mb250PlwifSxcInNpemUtNlwiOntjbWQ6XCJmb250U2l6ZVwiLHBhcmFtOlwiNlwiLGljb246ZS5zaXplLHRpcDp0LnNpemU2LGh0bWxUaXA6Jzxmb250IHNpemU9XCI2XCI+Jyt0LnNpemU2K1wiPC9mb250PlwifSxcInNpemUtN1wiOntjbWQ6XCJmb250U2l6ZVwiLHBhcmFtOlwiN1wiLGljb246ZS5zaXplLHRpcDp0LnNpemU3LGh0bWxUaXA6Jzxmb250IHNpemU9XCI3XCI+Jyt0LnNpemU3K1wiPC9mb250PlwifX19LGJ1dHRvbnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5kZWZpbml0aW9uc3x8e30saT10aGlzLmRlZmluaXRpb25zfHx0aGlzLmZvbnRzP2V4dGVuZCghMCx7fSx0aGlzLmJ1dHRvbkRlZixlLGdldEZvbnRzKHRoaXMuZGVmYXVsdEZvbnQsdGhpcy4kcS5pMThuLmVkaXRvci5kZWZhdWx0Rm9udCx0aGlzLiRxLmljb24uZWRpdG9yLmZvbnQsdGhpcy5mb250cykpOnRoaXMuYnV0dG9uRGVmO3JldHVybiB0aGlzLnRvb2xiYXIubWFwKGZ1bmN0aW9uKHMpe3JldHVybiBzLm1hcChmdW5jdGlvbihzKXtpZihzLm9wdGlvbnMpcmV0dXJue3R5cGU6XCJkcm9wZG93blwiLGljb246cy5pY29uLGxhYmVsOnMubGFiZWwsZml4ZWRMYWJlbDpzLmZpeGVkTGFiZWwsZml4ZWRJY29uOnMuZml4ZWRJY29uLGhpZ2hsaWdodDpzLmhpZ2hsaWdodCxsaXN0OnMubGlzdCxvcHRpb25zOnMub3B0aW9ucy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGlbdF19KX07dmFyIG49aVtzXTtyZXR1cm4gbj9cIm5vLXN0YXRlXCI9PT1uLnR5cGV8fGVbc10mJih2b2lkIDA9PT1uLmNtZHx8dC5idXR0b25EZWZbbi5jbWRdJiZcIm5vLXN0YXRlXCI9PT10LmJ1dHRvbkRlZltuLmNtZF0udHlwZSk/bjpleHRlbmQoITAse3R5cGU6XCJ0b2dnbGVcIn0sbik6e3R5cGU6XCJzbG90XCIsc2xvdDpzfX0pfSl9LGtleXM6ZnVuY3Rpb24oKXt2YXIgdD17fSxlPWZ1bmN0aW9uKGUpe2Uua2V5JiYodFtlLmtleV09e2NtZDplLmNtZCxwYXJhbTplLnBhcmFtfSl9O3JldHVybiB0aGlzLmJ1dHRvbnMuZm9yRWFjaChmdW5jdGlvbih0KXt0LmZvckVhY2goZnVuY3Rpb24odCl7dC5vcHRpb25zP3Qub3B0aW9ucy5mb3JFYWNoKGUpOmUodCl9KX0pLHR9LGlubmVyU3R5bGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbkZ1bGxzY3JlZW4/dGhpcy5jb250ZW50U3R5bGU6W3ttaW5IZWlnaHQ6dGhpcy5taW5IZWlnaHQsaGVpZ2h0OnRoaXMuaGVpZ2h0LG1heEhlaWdodDp0aGlzLm1heEhlaWdodH0sdGhpcy5jb250ZW50U3R5bGVdfSxpbm5lckNsYXNzOmZ1bmN0aW9uKCl7cmV0dXJuW3RoaXMuY29udGVudENsYXNzLHtjb2w6dGhpcy5pbkZ1bGxzY3JlZW4sXCJvdmVyZmxvdy1hdXRvXCI6dGhpcy5pbkZ1bGxzY3JlZW58fHRoaXMubWF4SGVpZ2h0fV19fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2VkaXRXYXRjaGVyOiEwLGVkaXRMaW5rVXJsOm51bGx9fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5lZGl0V2F0Y2hlcj90aGlzLiRyZWZzLmNvbnRlbnQuaW5uZXJIVE1MPXQ6dGhpcy5lZGl0V2F0Y2hlcj0hMH19LG1ldGhvZHM6e29uSW5wdXQ6ZnVuY3Rpb24odCl7aWYodGhpcy5lZGl0V2F0Y2hlcil7dmFyIGU9dGhpcy4kcmVmcy5jb250ZW50LmlubmVySFRNTDtlIT09dGhpcy52YWx1ZSYmKHRoaXMuZWRpdFdhdGNoZXI9ITEsdGhpcy4kZW1pdChcImlucHV0XCIsZSkpfX0sb25LZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBlPWdldEV2ZW50S2V5KHQpO2lmKCF0LmN0cmxLZXkpcmV0dXJuIHRoaXMucmVmcmVzaFRvb2xiYXIoKSx2b2lkKHRoaXMuJHEucGxhdGZvcm0uaXMuaWUmJnRoaXMuJG5leHRUaWNrKHRoaXMub25JbnB1dCkpO3ZhciBpPXRoaXMua2V5c1tlXTtpZih2b2lkIDAhPT1pKXt2YXIgcz1pLmNtZCxuPWkucGFyYW07c3RvcEFuZFByZXZlbnQodCksdGhpcy5ydW5DbWQocyxuLCExKSx0aGlzLiRxLnBsYXRmb3JtLmlzLmllJiZ0aGlzLiRuZXh0VGljayh0aGlzLm9uSW5wdXQpfX0scnVuQ21kOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz10aGlzO3ZvaWQgMD09PWkmJihpPSEwKSx0aGlzLmZvY3VzKCksdGhpcy5jYXJldC5hcHBseSh0LGUsZnVuY3Rpb24oKXtzLmZvY3VzKCksaSYmcy5yZWZyZXNoVG9vbGJhcigpfSl9LHJlZnJlc2hUb29sYmFyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5lZGl0TGlua1VybD1udWxsLHQuJGZvcmNlVXBkYXRlKCl9LDEpfSxmb2N1czpmdW5jdGlvbigpe3RoaXMuJHJlZnMuY29udGVudC5mb2N1cygpfSxnZXRDb250ZW50RWw6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kcmVmcy5jb250ZW50fX0sY3JlYXRlZDpmdW5jdGlvbigpe2lzU1NSfHwoZG9jdW1lbnQuZXhlY0NvbW1hbmQoXCJkZWZhdWx0UGFyYWdyYXBoU2VwYXJhdG9yXCIsITEsXCJkaXZcIiksdGhpcy5kZWZhdWx0Rm9udD13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5mb250RmFtaWx5KX0sbW91bnRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt0LiRyZWZzLmNvbnRlbnQmJih0LmNhcmV0PW5ldyBDYXJldCh0LiRyZWZzLmNvbnRlbnQsdCksdC4kcmVmcy5jb250ZW50LmlubmVySFRNTD10LnZhbHVlKSx0LiRuZXh0VGljayh0LnJlZnJlc2hUb29sYmFyKX0pfSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGUsaT10aGlzO2lmKHRoaXMuaGFzVG9vbGJhcil7dmFyIHM9e3N0YXRpY0NsYXNzOlwicS1lZGl0b3ItdG9vbGJhciByb3cgbm8td3JhcCBzY3JvbGwteFwiLGNsYXNzOlt7XCJxLWVkaXRvci10b29sYmFyLXNlcGFyYXRvclwiOiF0aGlzLnRvb2xiYXJPdXRsaW5lJiYhdGhpcy50b29sYmFyUHVzaH0sdGhpcy50b29sYmFyQmFja2dyb3VuZENsYXNzXX07KGU9W10pLnB1c2godChcImRpdlwiLGV4dGVuZCh7a2V5OlwicWVkdF90b3BcIn0scyksW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJyb3cgbm8td3JhcCBxLWVkaXRvci10b29sYmFyLXBhZGRpbmcgZml0IGl0ZW1zLWNlbnRlclwifSxnZXRUb29sYmFyKHQsdGhpcykpXSkpLG51bGwhPT10aGlzLmVkaXRMaW5rVXJsJiZlLnB1c2godChcImRpdlwiLGV4dGVuZCh7a2V5OlwicWVkdF9idG1cIn0scyksW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJyb3cgbm8td3JhcCBxLWVkaXRvci10b29sYmFyLXBhZGRpbmcgZml0IGl0ZW1zLWNlbnRlclwifSxnZXRMaW5rRWRpdG9yKHQsdGhpcykpXSkpLGU9dChcImRpdlwiLGUpfXJldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1lZGl0b3JcIixzdHlsZTp7aGVpZ2h0OnRoaXMuaW5GdWxsc2NyZWVuP1wiMTAwdmhcIjpudWxsfSxjbGFzczp7ZGlzYWJsZWQ6dGhpcy5kaXNhYmxlLGZ1bGxzY3JlZW46dGhpcy5pbkZ1bGxzY3JlZW4sY29sdW1uOnRoaXMuaW5GdWxsc2NyZWVufX0sW2UsdChcImRpdlwiLHtyZWY6XCJjb250ZW50XCIsc3RhdGljQ2xhc3M6XCJxLWVkaXRvci1jb250ZW50XCIsc3R5bGU6dGhpcy5pbm5lclN0eWxlLGNsYXNzOnRoaXMuaW5uZXJDbGFzcyxhdHRyczp7Y29udGVudGVkaXRhYmxlOnRoaXMuZWRpdGFibGV9LGRvbVByb3BzOmlzU1NSP3tpbm5lckhUTUw6dGhpcy52YWx1ZX06dm9pZCAwLG9uOntpbnB1dDp0aGlzLm9uSW5wdXQsa2V5ZG93bjp0aGlzLm9uS2V5ZG93bixjbGljazp0aGlzLnJlZnJlc2hUb29sYmFyLGJsdXI6ZnVuY3Rpb24oKXtpLmNhcmV0LnNhdmUoKX19fSldKX19LEZhYk1peGluPXtwcm9wczp7b3V0bGluZTpCb29sZWFuLHB1c2g6Qm9vbGVhbixmbGF0OkJvb2xlYW4sY29sb3I6U3RyaW5nLHRleHRDb2xvcjpTdHJpbmcsZ2xvc3N5OkJvb2xlYW59fSxRRmFiPXtuYW1lOlwiUUZhYlwiLG1peGluczpbRmFiTWl4aW4sTW9kZWxUb2dnbGVNaXhpbl0scHJvdmlkZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJue19fcUZhYkNsb3NlOmZ1bmN0aW9uKGUpe3JldHVybiB0LmhpZGUoZSkudGhlbihmdW5jdGlvbigpe3JldHVybiB0LiRyZWZzLnRyaWdnZXImJnQuJHJlZnMudHJpZ2dlci4kZWwmJnQuJHJlZnMudHJpZ2dlci4kZWwuZm9jdXMoKSxlfSl9fX0scHJvcHM6e2ljb246U3RyaW5nLGFjdGl2ZUljb246U3RyaW5nLGRpcmVjdGlvbjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInJpZ2h0XCJ9LHBlcnNpc3RlbnQ6Qm9vbGVhbn0sd2F0Y2g6eyRyb3V0ZTpmdW5jdGlvbigpeyF0aGlzLnBlcnNpc3RlbnQmJnRoaXMuaGlkZSgpfX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMudmFsdWUmJnRoaXMuc2hvdygpfSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWZhYiB6LWZhYiByb3cgaW5saW5lIGp1c3RpZnktY2VudGVyXCIsY2xhc3M6e1wicS1mYWItb3BlbmVkXCI6dGhpcy5zaG93aW5nfX0sW3QoUUJ0bix7cmVmOlwidHJpZ2dlclwiLHByb3BzOntmYWI6ITAsb3V0bGluZTp0aGlzLm91dGxpbmUscHVzaDp0aGlzLnB1c2gsZmxhdDp0aGlzLmZsYXQsY29sb3I6dGhpcy5jb2xvcix0ZXh0Q29sb3I6dGhpcy50ZXh0Q29sb3IsZ2xvc3N5OnRoaXMuZ2xvc3N5fSxvbjp7Y2xpY2s6dGhpcy50b2dnbGV9fSxbdGhpcy4kc2xvdHMudG9vbHRpcCx0KFFJY29uLHtzdGF0aWNDbGFzczpcInEtZmFiLWljb24gYWJzb2x1dGUtZnVsbFwiLHByb3BzOntuYW1lOnRoaXMuaWNvbnx8dGhpcy4kcS5pY29uLmZhYi5pY29ufX0pLHQoUUljb24se3N0YXRpY0NsYXNzOlwicS1mYWItYWN0aXZlLWljb24gYWJzb2x1dGUtZnVsbFwiLHByb3BzOntuYW1lOnRoaXMuYWN0aXZlSWNvbnx8dGhpcy4kcS5pY29uLmZhYi5hY3RpdmVJY29ufX0pXSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZmFiLWFjdGlvbnMgZmxleCBuby13cmFwIGlubGluZSBpdGVtcy1jZW50ZXJcIixjbGFzczpcInEtZmFiLVwiK3RoaXMuZGlyZWN0aW9ufSx0aGlzLiRzbG90cy5kZWZhdWx0KV0pfX0sUUZhYkFjdGlvbj17bmFtZTpcIlFGYWJBY3Rpb25cIixtaXhpbnM6W0ZhYk1peGluXSxwcm9wczp7aWNvbjp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9fSxpbmplY3Q6e19fcUZhYkNsb3NlOntkZWZhdWx0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcihcIlFGYWJBY3Rpb24gbmVlZHMgdG8gYmUgY2hpbGQgb2YgUUZhYlwiKX19fSxtZXRob2RzOntjbGljazpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX19xRmFiQ2xvc2UoKS50aGVuKGZ1bmN0aW9uKCl7ZS4kZW1pdChcImNsaWNrXCIsdCl9KX19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChRQnRuLHtwcm9wczp7ZmFiTWluaTohMCxvdXRsaW5lOnRoaXMub3V0bGluZSxwdXNoOnRoaXMucHVzaCxmbGF0OnRoaXMuZmxhdCxjb2xvcjp0aGlzLmNvbG9yLHRleHRDb2xvcjp0aGlzLnRleHRDb2xvcixnbG9zc3k6dGhpcy5nbG9zc3ksaWNvbjp0aGlzLmljb259LG9uOntjbGljazp0aGlzLmNsaWNrfX0sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxRRmllbGQ9e25hbWU6XCJRRmllbGRcIixtaXhpbnM6W0NhblJlbmRlck1peGluXSxwcm9wczp7aW5zZXQ6e3R5cGU6U3RyaW5nLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJpY29uXCIsXCJsYWJlbFwiLFwiZnVsbFwiXS5pbmNsdWRlcyh0KX19LGxhYmVsOlN0cmluZyxjb3VudDp7dHlwZTpbTnVtYmVyLEJvb2xlYW5dLGRlZmF1bHQ6ITF9LGVycm9yOkJvb2xlYW4sZXJyb3JMYWJlbDpTdHJpbmcsd2FybmluZzpCb29sZWFuLHdhcm5pbmdMYWJlbDpTdHJpbmcsaGVscGVyOlN0cmluZyxpY29uOlN0cmluZyxpY29uQ29sb3I6U3RyaW5nLGRhcms6Qm9vbGVhbixvcmllbnRhdGlvbjp7dHlwZTpTdHJpbmcsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcInZlcnRpY2FsXCIsXCJob3Jpem9udGFsXCJdLmluY2x1ZGVzKHQpfX0sbGFiZWxXaWR0aDp7dHlwZTpbTnVtYmVyLFN0cmluZ10sZGVmYXVsdDo1LHZhbGlkYXRvcjpmdW5jdGlvbih0KXt2YXIgZT1wYXJzZUludCh0LDEwKTtyZXR1cm4gZT4wJiZlPDEzfX19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57aW5wdXQ6e319fSxjb21wdXRlZDp7aGFzRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnB1dC5lcnJvcnx8dGhpcy5lcnJvcn0saGFzV2FybmluZzpmdW5jdGlvbigpe3JldHVybiF0aGlzLmhhc0Vycm9yJiYodGhpcy5pbnB1dC53YXJuaW5nfHx0aGlzLndhcm5pbmcpfSxjaGlsZEhhc0xhYmVsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5wdXQuZmxvYXRMYWJlbHx8dGhpcy5pbnB1dC5zdGFja0xhYmVsfSxpc0Rhcms6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnB1dC5kYXJrfHx0aGlzLmRhcmt9LGluc2V0SWNvbjpmdW5jdGlvbigpe3JldHVybltcImljb25cIixcImZ1bGxcIl0uaW5jbHVkZXModGhpcy5pbnNldCl9LGhhc05vSW5wdXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYW5SZW5kZXImJighdGhpcy5pbnB1dC4kb3B0aW9uc3x8dGhpcy5pbnB1dC5fX25lZWRzQm9yZGVyKX0sY291bnRlcjpmdW5jdGlvbigpe2lmKHRoaXMuY291bnQpe3ZhciB0PXRoaXMuaW5wdXQubGVuZ3RofHxcIjBcIjtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcih0aGlzLmNvdW50KT90K1wiIC8gXCIrdGhpcy5jb3VudDp0fX0sY2xhc3NlczpmdW5jdGlvbigpe3JldHVybntcInEtZmllbGQtcmVzcG9uc2l2ZVwiOiF0aGlzLmlzVmVydGljYWwmJiF0aGlzLmlzSG9yaXpvbnRhbCxcInEtZmllbGQtdmVydGljYWxcIjp0aGlzLmlzVmVydGljYWwsXCJxLWZpZWxkLWhvcml6b250YWxcIjp0aGlzLmlzSG9yaXpvbnRhbCxcInEtZmllbGQtZmxvYXRpbmdcIjp0aGlzLmNoaWxkSGFzTGFiZWwsXCJxLWZpZWxkLW5vLWxhYmVsXCI6IXRoaXMubGFiZWwmJiF0aGlzLiRzbG90cy5sYWJlbCxcInEtZmllbGQtd2l0aC1lcnJvclwiOnRoaXMuaGFzRXJyb3IsXCJxLWZpZWxkLXdpdGgtd2FybmluZ1wiOnRoaXMuaGFzV2FybmluZyxcInEtZmllbGQtZGFya1wiOnRoaXMuaXNEYXJrLFwicS1maWVsZC1uby1pbnB1dFwiOnRoaXMuaGFzTm9JbnB1dH19LGNvbXB1dGVkTGFiZWxXaWR0aDpmdW5jdGlvbigpe3JldHVybiBwYXJzZUludCh0aGlzLmxhYmVsV2lkdGgsMTApfSxpc1ZlcnRpY2FsOmZ1bmN0aW9uKCl7cmV0dXJuXCJ2ZXJ0aWNhbFwiPT09dGhpcy5vcmllbnRhdGlvbnx8MTI9PT10aGlzLmNvbXB1dGVkTGFiZWxXaWR0aH0saXNIb3Jpem9udGFsOmZ1bmN0aW9uKCl7cmV0dXJuXCJob3Jpem9udGFsXCI9PT10aGlzLm9yaWVudGF0aW9ufSxsYWJlbENsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1ZlcnRpY2FsP1wiY29sLTEyXCI6dGhpcy5pc0hvcml6b250YWw/XCJjb2wtXCIrdGhpcy5sYWJlbFdpZHRoOlwiY29sLXhzLTEyIGNvbC1zbS1cIit0aGlzLmxhYmVsV2lkdGh9LGlucHV0Q2xhc3NlczpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVmVydGljYWw/XCJjb2wteHMtMTJcIjp0aGlzLmlzSG9yaXpvbnRhbD9cImNvbFwiOlwiY29sLXhzLTEyIGNvbC1zbVwifSxpY29uUHJvcHM6ZnVuY3Rpb24oKXt2YXIgdD17bmFtZTp0aGlzLmljb259O3JldHVybiF0aGlzLmljb25Db2xvcnx8dGhpcy5oYXNFcnJvcnx8dGhpcy5oYXNXYXJuaW5nfHwodC5jb2xvcj10aGlzLmljb25Db2xvciksdH0saW5zZXRIYXNMYWJlbDpmdW5jdGlvbigpe3JldHVybltcImxhYmVsXCIsXCJmdWxsXCJdLmluY2x1ZGVzKHRoaXMuaW5zZXQpfX0scHJvdmlkZTpmdW5jdGlvbigpe3JldHVybntfX2ZpZWxkOnRoaXN9fSxtZXRob2RzOntfX3JlZ2lzdGVySW5wdXQ6ZnVuY3Rpb24odCl7dGhpcy5pbnB1dD10fSxfX3VucmVnaXN0ZXJJbnB1dDpmdW5jdGlvbih0KXt0JiZ0IT09dGhpcy5pbnB1dHx8KHRoaXMuaW5wdXQ9e30pfSxfX2dldEJvdHRvbUNvbnRlbnQ6ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIHRoaXMuaGFzRXJyb3ImJihlPXRoaXMuJHNsb3RzW1wiZXJyb3ItbGFiZWxcIl18fHRoaXMuZXJyb3JMYWJlbCk/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZmllbGQtZXJyb3IgY29sXCJ9LGUpOnRoaXMuaGFzV2FybmluZyYmKGU9dGhpcy4kc2xvdHNbXCJ3YXJuaW5nLWxhYmVsXCJdfHx0aGlzLndhcm5pbmdMYWJlbCk/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZmllbGQtd2FybmluZyBjb2xcIn0sZSk6KGU9dGhpcy4kc2xvdHMuaGVscGVyfHx0aGlzLmhlbHBlcik/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZmllbGQtaGVscGVyIGNvbFwifSxlKTp0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sIHRleHQtdHJhbnNwYXJlbnRcIn0sW1wifFwiXSl9LF9faGFzQm90dG9tOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHNsb3RzW1wiZXJyb3ItbGFiZWxcIl18fHRoaXMuZXJyb3JMYWJlbHx8dGhpcy4kc2xvdHNbXCJ3YXJuaW5nLWxhYmVsXCJdfHx0aGlzLndhcm5pbmdMYWJlbHx8dGhpcy4kc2xvdHMuaGVscGVyfHx0aGlzLmhlbHBlcnx8dGhpcy5jb3VudH19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLiRzbG90cy5sYWJlbHx8dGhpcy5sYWJlbDtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZmllbGQgcm93IG5vLXdyYXAgaXRlbXMtc3RhcnRcIixjbGFzczp0aGlzLmNsYXNzZXN9LFt0aGlzLmljb24/dChRSWNvbix7cHJvcHM6dGhpcy5pY29uUHJvcHMsc3RhdGljQ2xhc3M6XCJxLWZpZWxkLWljb24gcS1maWVsZC1tYXJnaW5cIn0pOnRoaXMuaW5zZXRJY29uP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWZpZWxkLWljb25cIn0pOm51bGwsdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInJvdyBjb2xcIn0sW2V8fHRoaXMuaW5zZXRIYXNMYWJlbD90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1maWVsZC1sYWJlbCBxLWZpZWxkLW1hcmdpblwiLGNsYXNzOnRoaXMubGFiZWxDbGFzc2VzfSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZmllbGQtbGFiZWwtaW5uZXIgcm93IGl0ZW1zLWNlbnRlclwifSxbdGhpcy4kc2xvdHMubGFiZWx8fHRoaXMubGFiZWxdKV0pOm51bGwsdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZmllbGQtY29udGVudFwiLGNsYXNzOnRoaXMuaW5wdXRDbGFzc2VzfSxbdGhpcy4kc2xvdHMuZGVmYXVsdCx0aGlzLl9faGFzQm90dG9tKCk/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZmllbGQtYm90dG9tIHJvdyBuby13cmFwXCJ9LFt0aGlzLl9fZ2V0Qm90dG9tQ29udGVudCh0KSx0aGlzLmNvdW50ZXI/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZmllbGQtY291bnRlciBjb2wtYXV0b1wifSxbdGhpcy5jb3VudGVyXSk6bnVsbF0pOm51bGxdKV0pXSl9fSxRSW5maW5pdGVTY3JvbGw9e25hbWU6XCJRSW5maW5pdGVTY3JvbGxcIixwcm9wczp7aGFuZGxlcjp7dHlwZTpGdW5jdGlvbixyZXF1aXJlZDohMH0saW5saW5lOkJvb2xlYW4sb2Zmc2V0Ont0eXBlOk51bWJlcixkZWZhdWx0OjB9fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2luZGV4OjAsZmV0Y2hpbmc6ITEsd29ya2luZzohMH19LG1ldGhvZHM6e3BvbGw6ZnVuY3Rpb24oKXtpZighdGhpcy5mZXRjaGluZyYmdGhpcy53b3JraW5nKXt2YXIgdD1oZWlnaHQodGhpcy5zY3JvbGxDb250YWluZXIpLGU9b2Zmc2V0KHRoaXMuc2Nyb2xsQ29udGFpbmVyKS50b3ArdDtvZmZzZXQodGhpcy5lbGVtZW50KS50b3AraGVpZ2h0KHRoaXMuZWxlbWVudCktKHRoaXMub2Zmc2V0fHx0KTxlJiZ0aGlzLmxvYWRNb3JlKCl9fSxsb2FkTW9yZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7IXRoaXMuZmV0Y2hpbmcmJnRoaXMud29ya2luZyYmKHRoaXMuaW5kZXgrKyx0aGlzLmZldGNoaW5nPSEwLHRoaXMuaGFuZGxlcih0aGlzLmluZGV4LGZ1bmN0aW9uKGUpe3QuZmV0Y2hpbmc9ITEsZT90LnN0b3AoKTp0LmVsZW1lbnQuY2xvc2VzdChcImJvZHlcIikmJnQucG9sbCgpfSkpfSxyZXNldDpmdW5jdGlvbigpe3RoaXMuaW5kZXg9MH0scmVzdW1lOmZ1bmN0aW9uKCl7ITAhPT10aGlzLndvcmtpbmcmJih0aGlzLndvcmtpbmc9ITAsdGhpcy5zY3JvbGxDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHRoaXMucG9sbCxsaXN0ZW5PcHRzLnBhc3NpdmUpKSx0aGlzLmltbWVkaWF0ZVBvbGwoKX0sc3RvcDpmdW5jdGlvbigpe3RoaXMud29ya2luZz0hMSx0aGlzLmZldGNoaW5nPSExLHRoaXMuc2Nyb2xsQ29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIix0aGlzLnBvbGwsbGlzdGVuT3B0cy5wYXNzaXZlKX19LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7dC5lbGVtZW50PXQuJHJlZnMuY29udGVudCx0LnNjcm9sbENvbnRhaW5lcj10LmlubGluZT90LiRlbDpnZXRTY3JvbGxUYXJnZXQodC4kZWwpLHQucG9sbCgpLHQuaW1tZWRpYXRlUG9sbD10LnBvbGwsdC5wb2xsPWRlYm91bmNlKHQucG9sbCw1MCksITA9PT10LndvcmtpbmcmJnQuc2Nyb2xsQ29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIix0LnBvbGwsbGlzdGVuT3B0cy5wYXNzaXZlKX0pfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5zY3JvbGxDb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHRoaXMucG9sbCxsaXN0ZW5PcHRzLnBhc3NpdmUpfSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWluZmluaXRlLXNjcm9sbFwifSxbdChcImRpdlwiLHtyZWY6XCJjb250ZW50XCIsc3RhdGljQ2xhc3M6XCJxLWluZmluaXRlLXNjcm9sbC1jb250ZW50XCJ9LHRoaXMuJHNsb3RzLmRlZmF1bHQpLHRoaXMuZmV0Y2hpbmc/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtaW5maW5pdGUtc2Nyb2xsLW1lc3NhZ2VcIn0sdGhpcy4kc2xvdHMubWVzc2FnZSk6bnVsbF0pfX0sUUlubmVyTG9hZGluZz17bmFtZTpcIlFJbm5lckxvYWRpbmdcIixwcm9wczp7ZGFyazpCb29sZWFuLHZpc2libGU6Qm9vbGVhbixzaXplOnt0eXBlOltTdHJpbmcsTnVtYmVyXSxkZWZhdWx0OjQyfSxjb2xvcjpTdHJpbmd9LHJlbmRlcjpmdW5jdGlvbih0KXtpZih0aGlzLnZpc2libGUpcmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWlubmVyLWxvYWRpbmcgYW5pbWF0ZS1mYWRlIGFic29sdXRlLWZ1bGwgY29sdW1uIGZsZXgtY2VudGVyXCIsY2xhc3M6e2Rhcms6dGhpcy5kYXJrfX0sdGhpcy4kc2xvdHMuZGVmYXVsdHx8W3QoUVNwaW5uZXIse3Byb3BzOntzaXplOnRoaXMuc2l6ZSxjb2xvcjp0aGlzLmNvbG9yfX0pXSl9fSxRSnVtYm90cm9uPXtuYW1lOlwiUUp1bWJvdHJvblwiLHByb3BzOntkYXJrOkJvb2xlYW4sdGFnOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiZGl2XCJ9LGltZ1NyYzpTdHJpbmcsZ3JhZGllbnQ6U3RyaW5nfSxjb21wdXRlZDp7Z3JhZGllbnRUeXBlOmZ1bmN0aW9uKCl7aWYodGhpcy5ncmFkaWVudClyZXR1cm4gdGhpcy5ncmFkaWVudC5pbmRleE9mKFwiY2lyY2xlXCIpPi0xP1wicmFkaWFsXCI6XCJsaW5lYXJcIn0sY29tcHV0ZWRTdHlsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmltZ1NyYz97XCJiYWNrZ3JvdW5kLWltYWdlXCI6XCJ1cmwoXCIrdGhpcy5pbWdTcmMrXCIpXCJ9OnRoaXMuZ3JhZGllbnRUeXBlP3tiYWNrZ3JvdW5kOnRoaXMuZ3JhZGllbnRUeXBlK1wiLWdyYWRpZW50KFwiK3RoaXMuZ3JhZGllbnQrXCIpXCJ9OnZvaWQgMH19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdCh0aGlzLnRhZyx7c3RhdGljQ2xhc3M6XCJxLWp1bWJvdHJvblwiLHN0eWxlOnRoaXMuY29tcHV0ZWRTdHlsZSxjbGFzczp7XCJxLWp1bWJvdHJvbi1kYXJrXCI6dGhpcy5kYXJrfX0sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxRS25vYj17bmFtZTpcIlFLbm9iXCIsZGlyZWN0aXZlczp7VG91Y2hQYW46VG91Y2hQYW59LHByb3BzOnt2YWx1ZTpOdW1iZXIsbWluOnt0eXBlOk51bWJlcixkZWZhdWx0OjB9LG1heDp7dHlwZTpOdW1iZXIsZGVmYXVsdDoxMDB9LGNvbG9yOlN0cmluZyx0cmFja0NvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiZ3JleS0zXCJ9LGxpbmVXaWR0aDp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcIjZweFwifSxzaXplOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiMTAwcHhcIn0sc3RlcDp7dHlwZTpOdW1iZXIsZGVmYXVsdDoxfSxkZWNpbWFsczpOdW1iZXIsZGlzYWJsZTpCb29sZWFuLHJlYWRvbmx5OkJvb2xlYW59LGNvbXB1dGVkOntjbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuZGlzYWJsZSYmdC5wdXNoKFwiZGlzYWJsZWRcIiksdGhpcy5yZWFkb25seXx8dC5wdXNoKFwiY3Vyc29yLXBvaW50ZXJcIiksdGhpcy5jb2xvciYmdC5wdXNoKFwidGV4dC1cIit0aGlzLmNvbG9yKSx0fSxzdmdTdHlsZTpmdW5jdGlvbigpe3JldHVybntcInN0cm9rZS1kYXNoYXJyYXlcIjpcIjI5NS4zMXB4LCAyOTUuMzFweFwiLFwic3Ryb2tlLWRhc2hvZmZzZXRcIjoyOTUuMzEqKHRoaXMuJHEuaTE4bi5ydGw/LTE6MSkqKDEtKHRoaXMubW9kZWwtdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbikpK1wicHhcIix0cmFuc2l0aW9uOnRoaXMuZHJhZ2dpbmc/XCJcIjpcInN0cm9rZS1kYXNob2Zmc2V0IDAuNnMgZWFzZSAwcywgc3Ryb2tlIDAuNnMgZWFzZVwifX0sZWRpdGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5kaXNhYmxlJiYhdGhpcy5yZWFkb25seX0sY29tcHV0ZWREZWNpbWFsczpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLmRlY2ltYWxzP3RoaXMuZGVjaW1hbHN8fDA6KFN0cmluZyh0aGlzLnN0ZXApLnRyaW0oXCIwXCIpLnNwbGl0KFwiLlwiKVsxXXx8XCJcIikubGVuZ3RofSxjb21wdXRlZFN0ZXA6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5kZWNpbWFscz8xL01hdGgucG93KDEwLHRoaXMuZGVjaW1hbHN8fDApOnRoaXMuc3RlcH19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57bW9kZWw6dGhpcy52YWx1ZSxkcmFnZ2luZzohMX19LHdhdGNoOnt2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKHQ8dGhpcy5taW4pdGhpcy5tb2RlbD10aGlzLm1pbjtlbHNle2lmKCEodD50aGlzLm1heCkpe3ZhciBpPXRoaXMuY29tcHV0ZWREZWNpbWFscyYmXCJudW1iZXJcIj09dHlwZW9mIHQ/cGFyc2VGbG9hdCh0LnRvRml4ZWQodGhpcy5jb21wdXRlZERlY2ltYWxzKSk6dDtyZXR1cm4gdm9pZChpIT09dGhpcy5tb2RlbCYmKHRoaXMubW9kZWw9aSkpfXRoaXMubW9kZWw9dGhpcy5tYXh9dGhpcy4kZW1pdChcImlucHV0XCIsdGhpcy5tb2RlbCksdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtlLm1vZGVsIT09ZS52YWx1ZSYmZS4kZW1pdChcImNoYW5nZVwiLGUubW9kZWwpfSl9fSxtZXRob2RzOntfX3BhbjpmdW5jdGlvbih0KXt0aGlzLmVkaXRhYmxlJiYodC5pc0ZpbmFsP3RoaXMuX19kcmFnU3RvcCh0LmV2dCk6dC5pc0ZpcnN0P3RoaXMuX19kcmFnU3RhcnQodC5ldnQpOnRoaXMuX19kcmFnTW92ZSh0LmV2dCkpfSxfX2RyYWdTdGFydDpmdW5jdGlvbih0KXt0aGlzLmVkaXRhYmxlJiYoc3RvcEFuZFByZXZlbnQodCksdGhpcy5jZW50ZXJQb3NpdGlvbj10aGlzLl9fZ2V0Q2VudGVyKCksY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuZHJhZ2dpbmc9ITAsdGhpcy5fX29uSW5wdXQodCkpfSxfX2RyYWdNb3ZlOmZ1bmN0aW9uKHQpe3RoaXMuZHJhZ2dpbmcmJnRoaXMuZWRpdGFibGUmJihzdG9wQW5kUHJldmVudCh0KSx0aGlzLl9fb25JbnB1dCh0LHRoaXMuY2VudGVyUG9zaXRpb24pKX0sX19kcmFnU3RvcDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuZWRpdGFibGUmJihzdG9wQW5kUHJldmVudCh0KSx0aGlzLnRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmRyYWdnaW5nPSExfSwxMDApLHRoaXMuX19vbklucHV0KHQsdGhpcy5jZW50ZXJQb3NpdGlvbiwhMCkpfSxfX29uS2V5RG93bjpmdW5jdGlvbih0KXt2YXIgZT10LmtleUNvZGU7aWYodGhpcy5lZGl0YWJsZSYmWzM3LDQwLDM5LDM4XS5pbmNsdWRlcyhlKSl7c3RvcEFuZFByZXZlbnQodCk7dmFyIGk9dC5jdHJsS2V5PzEwKnRoaXMuY29tcHV0ZWRTdGVwOnRoaXMuY29tcHV0ZWRTdGVwLHM9WzM3LDQwXS5pbmNsdWRlcyhlKT8taTppO3RoaXMuX19vbklucHV0VmFsdWUoYmV0d2Vlbih0aGlzLm1vZGVsK3MsdGhpcy5taW4sdGhpcy5tYXgpKX19LF9fb25LZXlVcDpmdW5jdGlvbih0KXt2YXIgZT10LmtleUNvZGU7dGhpcy5lZGl0YWJsZSYmWzM3LDQwLDM5LDM4XS5pbmNsdWRlcyhlKSYmdGhpcy5fX2VtaXRDaGFuZ2UoKX0sX19vbklucHV0OmZ1bmN0aW9uKHQsZSxpKXtpZih2b2lkIDA9PT1lJiYoZT10aGlzLl9fZ2V0Q2VudGVyKCkpLHRoaXMuZWRpdGFibGUpe3ZhciBzPXBvc2l0aW9uKHQpLG49TWF0aC5hYnMocy50b3AtZS50b3ApLG89TWF0aC5zcXJ0KE1hdGgucG93KE1hdGguYWJzKHMudG9wLWUudG9wKSwyKStNYXRoLnBvdyhNYXRoLmFicyhzLmxlZnQtZS5sZWZ0KSwyKSkscj1NYXRoLmFzaW4obi9vKSooMTgwL01hdGguUEkpO3I9cy50b3A8ZS50b3A/ZS5sZWZ0PHMubGVmdD85MC1yOjI3MCtyOmUubGVmdDxzLmxlZnQ/cis5MDoyNzAtcix0aGlzLiRxLmkxOG4ucnRsJiYocj0zNjAtcik7dmFyIGE9dGhpcy5taW4rci8zNjAqKHRoaXMubWF4LXRoaXMubWluKSxsPWEldGhpcy5zdGVwLGM9YmV0d2VlbihhLWwrKE1hdGguYWJzKGwpPj10aGlzLnN0ZXAvMj8obDwwPy0xOjEpKnRoaXMuc3RlcDowKSx0aGlzLm1pbix0aGlzLm1heCk7dGhpcy5fX29uSW5wdXRWYWx1ZShjLGkpfX0sX19vbklucHV0VmFsdWU6ZnVuY3Rpb24odCxlKXt0aGlzLmNvbXB1dGVkRGVjaW1hbHMmJih0PXBhcnNlRmxvYXQodC50b0ZpeGVkKHRoaXMuY29tcHV0ZWREZWNpbWFscykpKSx0aGlzLm1vZGVsIT09dCYmKHRoaXMubW9kZWw9dCksdGhpcy4kZW1pdChcImRyYWctdmFsdWVcIix0KSx0aGlzLnZhbHVlIT09dCYmKHRoaXMuJGVtaXQoXCJpbnB1dFwiLHQpLGUmJnRoaXMuX19lbWl0Q2hhbmdlKHQpKX0sX19lbWl0Q2hhbmdlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dm9pZCAwPT09dCYmKHQ9dGhpcy5tb2RlbCksdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtKU09OLnN0cmluZ2lmeSh0KSE9PUpTT04uc3RyaW5naWZ5KGUudmFsdWUpJiZlLiRlbWl0KFwiY2hhbmdlXCIsdCl9KX0sX19nZXRDZW50ZXI6ZnVuY3Rpb24oKXt2YXIgdD1vZmZzZXQodGhpcy4kZWwpO3JldHVybnt0b3A6dC50b3AraGVpZ2h0KHRoaXMuJGVsKS8yLGxlZnQ6dC5sZWZ0K3dpZHRoKHRoaXMuJGVsKS8yfX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1rbm9iIG5vbi1zZWxlY3RhYmxlXCIsY2xhc3M6dGhpcy5jbGFzc2VzLHN0eWxlOnt3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZX19LFt0KFwiZGl2XCIse29uOntjbGljazpmdW5jdGlvbih0KXtyZXR1cm4hZS5kcmFnZ2luZyYmZS5fX29uSW5wdXQodCx2b2lkIDAsITApfX0sZGlyZWN0aXZlczp0aGlzLmVkaXRhYmxlP1t7bmFtZTpcInRvdWNoLXBhblwiLG1vZGlmaWVyczp7cHJldmVudDohMCxzdG9wOiEwfSx2YWx1ZTp0aGlzLl9fcGFufV06bnVsbH0sW3QoXCJzdmdcIix7YXR0cnM6e3ZpZXdCb3g6XCIwIDAgMTAwIDEwMFwifX0sW3QoXCJwYXRoXCIse2F0dHJzOntkOlwiTSA1MCw1MCBtIDAsLTQ3IGEgNDcsNDcgMCAxIDEgMCw5NCBhIDQ3LDQ3IDAgMSAxIDAsLTk0XCIsXCJmaWxsLW9wYWNpdHlcIjpcIjBcIixzdHJva2U6XCJjdXJyZW50Q29sb3JcIixcInN0cm9rZS13aWR0aFwiOnRoaXMubGluZVdpZHRofSxjbGFzczpcInRleHQtXCIrdGhpcy50cmFja0NvbG9yfSksdChcInBhdGhcIix7YXR0cnM6e2Q6XCJNIDUwLDUwIG0gMCwtNDcgYSA0Nyw0NyAwIDEgMSAwLDk0IGEgNDcsNDcgMCAxIDEgMCwtOTRcIixcImZpbGwtb3BhY2l0eVwiOlwiMFwiLHN0cm9rZTpcImN1cnJlbnRDb2xvclwiLFwic3Ryb2tlLWxpbmVjYXBcIjpcInJvdW5kXCIsXCJzdHJva2Utd2lkdGhcIjp0aGlzLmxpbmVXaWR0aH0sc3R5bGU6dGhpcy5zdmdTdHlsZX0pXSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEta25vYi1sYWJlbCByb3cgZmxleC1jZW50ZXIgY29udGVudC1jZW50ZXJcIixhdHRyczp7dGFiaW5kZXg6dGhpcy5lZGl0YWJsZT8wOi0xfSxvbjp7a2V5ZG93bjp0aGlzLl9fb25LZXlEb3duLGtleXVwOnRoaXMuX19vbktleVVwfX0sdGhpcy4kc2xvdHMuZGVmYXVsdHx8W3QoXCJzcGFuXCIsW3RoaXMubW9kZWxdKV0pXSldKX19LFFTY3JvbGxPYnNlcnZhYmxlPXtuYW1lOlwiUVNjcm9sbE9ic2VydmFibGVcIixwcm9wczp7ZGVib3VuY2U6TnVtYmVyfSxyZW5kZXI6ZnVuY3Rpb24oKXt9LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57cG9zOjAsZGlyOlwiZG93blwiLGRpckNoYW5nZWQ6ITEsZGlyQ2hhbmdlUG9zOjB9fSxtZXRob2RzOntnZXRQb3NpdGlvbjpmdW5jdGlvbigpe3JldHVybntwb3NpdGlvbjp0aGlzLnBvcyxkaXJlY3Rpb246dGhpcy5kaXIsZGlyZWN0aW9uQ2hhbmdlZDp0aGlzLmRpckNoYW5nZWQsaW5mbGV4aW9uUG9zaXRpb246dGhpcy5kaXJDaGFuZ2VQb3N9fSx0cmlnZ2VyOmZ1bmN0aW9uKHQpeyEwPT09dHx8MD09PXRoaXMuZGVib3VuY2U/dGhpcy5lbWl0KCk6dGhpcy50aW1lcnx8KHRoaXMudGltZXI9dGhpcy5kZWJvdW5jZT9zZXRUaW1lb3V0KHRoaXMuZW1pdCx0aGlzLmRlYm91bmNlKTpyZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5lbWl0KSl9LGVtaXQ6ZnVuY3Rpb24oKXt2YXIgdD1NYXRoLm1heCgwLGdldFNjcm9sbFBvc2l0aW9uKHRoaXMudGFyZ2V0KSksZT10LXRoaXMucG9zPDA/XCJ1cFwiOlwiZG93blwiO3RoaXMuZGlyQ2hhbmdlZD10aGlzLmRpciE9PWUsdGhpcy5kaXJDaGFuZ2VkJiYodGhpcy5kaXI9ZSx0aGlzLmRpckNoYW5nZVBvcz10aGlzLnBvcyksdGhpcy50aW1lcj1udWxsLHRoaXMucG9zPXQsdGhpcy4kZW1pdChcInNjcm9sbFwiLHRoaXMuZ2V0UG9zaXRpb24oKSl9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy50YXJnZXQ9Z2V0U2Nyb2xsVGFyZ2V0KHRoaXMuJGVsLnBhcmVudE5vZGUpLHRoaXMudGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIix0aGlzLnRyaWdnZXIsbGlzdGVuT3B0cy5wYXNzaXZlKSx0aGlzLnRyaWdnZXIoITApfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMudGltZXIpLHRoaXMudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIix0aGlzLnRyaWdnZXIsbGlzdGVuT3B0cy5wYXNzaXZlKX19LFFMYXlvdXQ9e25hbWU6XCJRTGF5b3V0XCIscHJvdmlkZTpmdW5jdGlvbigpe3JldHVybntsYXlvdXQ6dGhpc319LHByb3BzOntjb250YWluZXI6Qm9vbGVhbix2aWV3Ont0eXBlOlN0cmluZyxkZWZhdWx0OlwiaGhoIGxwciBmZmZcIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuL14oaHxsKWgoaHxyKSBscHIgKGZ8bClmKGZ8cikkLy50ZXN0KHQudG9Mb3dlckNhc2UoKSl9fX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntoZWlnaHQ6b25TU1I/MDp3aW5kb3cuaW5uZXJIZWlnaHQsd2lkdGg6b25TU1J8fHRoaXMuY29udGFpbmVyPzA6d2luZG93LmlubmVyV2lkdGgsY29udGFpbmVySGVpZ2h0OjAsc2Nyb2xsYmFyV2lkdGg6b25TU1I/MDpnZXRTY3JvbGxiYXJXaWR0aCgpLGhlYWRlcjp7c2l6ZTowLG9mZnNldDowLHNwYWNlOiExfSxyaWdodDp7c2l6ZTozMDAsb2Zmc2V0OjAsc3BhY2U6ITF9LGZvb3Rlcjp7c2l6ZTowLG9mZnNldDowLHNwYWNlOiExfSxsZWZ0OntzaXplOjMwMCxvZmZzZXQ6MCxzcGFjZTohMX0sc2Nyb2xsOntwb3NpdGlvbjowLGRpcmVjdGlvbjpcImRvd25cIn19fSxjb21wdXRlZDp7cm93czpmdW5jdGlvbigpe3ZhciB0PXRoaXMudmlldy50b0xvd2VyQ2FzZSgpLnNwbGl0KFwiIFwiKTtyZXR1cm57dG9wOnRbMF0uc3BsaXQoXCJcIiksbWlkZGxlOnRbMV0uc3BsaXQoXCJcIiksYm90dG9tOnRbMl0uc3BsaXQoXCJcIil9fSx0YXJnZXRTdHlsZTpmdW5jdGlvbigpe3ZhciB0O2lmKDAhPT10aGlzLnNjcm9sbGJhcldpZHRoKXJldHVybih0PXt9KVt0aGlzLiRxLmkxOG4ucnRsP1wibGVmdFwiOlwicmlnaHRcIl09dGhpcy5zY3JvbGxiYXJXaWR0aCtcInB4XCIsdH0sdGFyZ2V0Q2hpbGRTdHlsZTpmdW5jdGlvbigpe3ZhciB0O2lmKDAhPT10aGlzLnNjcm9sbGJhcldpZHRoKXJldHVybih0PXt9KVt0aGlzLiRxLmkxOG4ucnRsP1wicmlnaHRcIjpcImxlZnRcIl09MCx0W3RoaXMuJHEuaTE4bi5ydGw/XCJsZWZ0XCI6XCJyaWdodFwiXT1cIi1cIit0aGlzLnNjcm9sbGJhcldpZHRoK1wicHhcIix0LndpZHRoPVwiY2FsYygxMDAlICsgXCIrdGhpcy5zY3JvbGxiYXJXaWR0aCtcInB4KVwiLHR9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5pbnN0YW5jZXM9e2hlYWRlcjpudWxsLHJpZ2h0Om51bGwsZm9vdGVyOm51bGwsbGVmdDpudWxsfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWxheW91dFwifSxbdChRU2Nyb2xsT2JzZXJ2YWJsZSx7b246e3Njcm9sbDp0aGlzLl9fb25QYWdlU2Nyb2xsfX0pLHQoUVJlc2l6ZU9ic2VydmFibGUse29uOntyZXNpemU6dGhpcy5fX29uUGFnZVJlc2l6ZX19KSx0aGlzLiRzbG90cy5kZWZhdWx0XSk7cmV0dXJuIHRoaXMuY29udGFpbmVyP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWxheW91dC1jb250YWluZXIgcmVsYXRpdmUtcG9zaXRpb24gb3ZlcmZsb3ctaGlkZGVuXCJ9LFt0KFFSZXNpemVPYnNlcnZhYmxlLHtvbjp7cmVzaXplOnRoaXMuX19vbkNvbnRhaW5lclJlc2l6ZX19KSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiYWJzb2x1dGUtZnVsbFwiLHN0eWxlOnRoaXMudGFyZ2V0U3R5bGV9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwib3ZlcmZsb3ctYXV0b1wiLHN0eWxlOnRoaXMudGFyZ2V0Q2hpbGRTdHlsZX0sW2VdKV0pXSk6ZX0sbWV0aG9kczp7X19hbmltYXRlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLnRpbWVyP2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKTpkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJxLWxheW91dC1hbmltYXRlXCIpLHRoaXMudGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShcInEtbGF5b3V0LWFuaW1hdGVcIiksdC50aW1lcj1udWxsfSwxNTApfSxfX29uUGFnZVNjcm9sbDpmdW5jdGlvbih0KXt0aGlzLnNjcm9sbD10LHRoaXMuJGVtaXQoXCJzY3JvbGxcIix0KX0sX19vblBhZ2VSZXNpemU6ZnVuY3Rpb24odCl7dmFyIGU9dC5oZWlnaHQsaT10LndpZHRoLHM9ITE7dGhpcy5oZWlnaHQhPT1lJiYocz0hMCx0aGlzLmhlaWdodD1lLHRoaXMuJGVtaXQoXCJzY3JvbGxIZWlnaHRcIixlKSx0aGlzLl9fdXBkYXRlU2Nyb2xsYmFyV2lkdGgoKSksdGhpcy53aWR0aCE9PWkmJihzPSEwLHRoaXMud2lkdGg9aSkscyYmdGhpcy4kZW1pdChcInJlc2l6ZVwiLHtoZWlnaHQ6ZSx3aWR0aDppfSl9LF9fb25Db250YWluZXJSZXNpemU6ZnVuY3Rpb24odCl7dmFyIGU9dC5oZWlnaHQ7dGhpcy5jb250YWluZXJIZWlnaHQhPT1lJiYodGhpcy5jb250YWluZXJIZWlnaHQ9ZSx0aGlzLl9fdXBkYXRlU2Nyb2xsYmFyV2lkdGgoKSl9LF9fdXBkYXRlU2Nyb2xsYmFyV2lkdGg6ZnVuY3Rpb24oKXtpZih0aGlzLmNvbnRhaW5lcil7dmFyIHQ9dGhpcy5oZWlnaHQ+dGhpcy5jb250YWluZXJIZWlnaHQ/Z2V0U2Nyb2xsYmFyV2lkdGgoKTowO3RoaXMuc2Nyb2xsYmFyV2lkdGghPT10JiYodGhpcy5zY3JvbGxiYXJXaWR0aD10KX19fX0sZHVyYXRpb249MTUwLFFMYXlvdXREcmF3ZXI9e25hbWU6XCJRTGF5b3V0RHJhd2VyXCIsaW5qZWN0OntsYXlvdXQ6e2RlZmF1bHQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKFwiUUxheW91dERyYXdlciBuZWVkcyB0byBiZSBjaGlsZCBvZiBRTGF5b3V0XCIpfX19LG1peGluczpbTW9kZWxUb2dnbGVNaXhpbl0sZGlyZWN0aXZlczp7VG91Y2hQYW46VG91Y2hQYW59LHByb3BzOntvdmVybGF5OkJvb2xlYW4sc2lkZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImxlZnRcIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1wibGVmdFwiLFwicmlnaHRcIl0uaW5jbHVkZXModCl9fSx3aWR0aDp7dHlwZTpOdW1iZXIsZGVmYXVsdDozMDB9LG1pbmk6Qm9vbGVhbixtaW5pV2lkdGg6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6NjB9LGJyZWFrcG9pbnQ6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6OTkyfSxiZWhhdmlvcjp7dHlwZTpTdHJpbmcsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcImRlZmF1bHRcIixcImRlc2t0b3BcIixcIm1vYmlsZVwiXS5pbmNsdWRlcyh0KX0sZGVmYXVsdDpcImRlZmF1bHRcIn0sc2hvd0lmQWJvdmU6Qm9vbGVhbixjb250ZW50U3R5bGU6T2JqZWN0LGNvbnRlbnRDbGFzczpbU3RyaW5nLE9iamVjdCxBcnJheV0sbm9IaWRlT25Sb3V0ZUNoYW5nZTpCb29sZWFuLG5vU3dpcGVPcGVuOkJvb2xlYW4sbm9Td2lwZUNsb3NlOkJvb2xlYW59LGRhdGE6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnNob3dJZkFib3ZlfHx2b2lkIDA9PT10aGlzLnZhbHVlfHx0aGlzLnZhbHVlLGU9XCJtb2JpbGVcIiE9PXRoaXMuYmVoYXZpb3ImJnRoaXMuYnJlYWtwb2ludDx0aGlzLmxheW91dC53aWR0aCYmIXRoaXMub3ZlcmxheSYmdDtyZXR1cm4gdm9pZCAwIT09dGhpcy52YWx1ZSYmdGhpcy52YWx1ZSE9PWUmJnRoaXMuJGVtaXQoXCJpbnB1dFwiLGUpLHtzaG93aW5nOmUsYmVsb3dCcmVha3BvaW50OlwibW9iaWxlXCI9PT10aGlzLmJlaGF2aW9yfHxcImRlc2t0b3BcIiE9PXRoaXMuYmVoYXZpb3ImJnRoaXMuYnJlYWtwb2ludD49dGhpcy5sYXlvdXQud2lkdGgsbGFyZ2VTY3JlZW5TdGF0ZTp0LG1vYmlsZU9wZW5lZDohMX19LHdhdGNoOntiZWxvd0JyZWFrcG9pbnQ6ZnVuY3Rpb24odCl7dGhpcy5tb2JpbGVPcGVuZWR8fCh0Pyh0aGlzLm92ZXJsYXl8fCh0aGlzLmxhcmdlU2NyZWVuU3RhdGU9dGhpcy5zaG93aW5nKSx0aGlzLmhpZGUoITEpKTp0aGlzLm92ZXJsYXl8fHRoaXNbdGhpcy5sYXJnZVNjcmVlblN0YXRlP1wic2hvd1wiOlwiaGlkZVwiXSghMSkpfSxzaWRlOmZ1bmN0aW9uKHQsZSl7dGhpcy5sYXlvdXRbZV0uc3BhY2U9ITEsdGhpcy5sYXlvdXRbZV0ub2Zmc2V0PTB9LGJlaGF2aW9yOmZ1bmN0aW9uKHQpe3RoaXMuX191cGRhdGVMb2NhbChcImJlbG93QnJlYWtwb2ludFwiLFwibW9iaWxlXCI9PT10fHxcImRlc2t0b3BcIiE9PXQmJnRoaXMuYnJlYWtwb2ludD49dGhpcy5sYXlvdXQud2lkdGgpfSxicmVha3BvaW50OmZ1bmN0aW9uKHQpe3RoaXMuX191cGRhdGVMb2NhbChcImJlbG93QnJlYWtwb2ludFwiLFwibW9iaWxlXCI9PT10aGlzLmJlaGF2aW9yfHxcImRlc2t0b3BcIiE9PXRoaXMuYmVoYXZpb3ImJnQ+PXRoaXMubGF5b3V0LndpZHRoKX0sXCJsYXlvdXQud2lkdGhcIjpmdW5jdGlvbih0KXt0aGlzLl9fdXBkYXRlTG9jYWwoXCJiZWxvd0JyZWFrcG9pbnRcIixcIm1vYmlsZVwiPT09dGhpcy5iZWhhdmlvcnx8XCJkZXNrdG9wXCIhPT10aGlzLmJlaGF2aW9yJiZ0aGlzLmJyZWFrcG9pbnQ+PXQpfSxcImxheW91dC5zY3JvbGxiYXJXaWR0aFwiOmZ1bmN0aW9uKCl7dGhpcy5hcHBseVBvc2l0aW9uKHRoaXMuc2hvd2luZz8wOnZvaWQgMCl9LG9mZnNldDpmdW5jdGlvbih0KXt0aGlzLl9fdXBkYXRlKFwib2Zmc2V0XCIsdCl9LG9uTGF5b3V0OmZ1bmN0aW9uKHQpe3RoaXMuJGVtaXQoXCJvbi1sYXlvdXRcIix0KSx0aGlzLl9fdXBkYXRlKFwic3BhY2VcIix0KX0sJHJvdXRlOmZ1bmN0aW9uKCl7dGhpcy5ub0hpZGVPblJvdXRlQ2hhbmdlfHwodGhpcy5tb2JpbGVPcGVuZWR8fHRoaXMub25TY3JlZW5PdmVybGF5KSYmdGhpcy5oaWRlKCl9LHJpZ2h0U2lkZTpmdW5jdGlvbigpe3RoaXMuYXBwbHlQb3NpdGlvbigpfSxzaXplOmZ1bmN0aW9uKHQpe3RoaXMuYXBwbHlQb3NpdGlvbigpLHRoaXMuX191cGRhdGUoXCJzaXplXCIsdCl9LFwiJHEuaTE4bi5ydGxcIjpmdW5jdGlvbigpe3RoaXMuYXBwbHlQb3NpdGlvbigpfSxtaW5pOmZ1bmN0aW9uKCl7dGhpcy52YWx1ZSYmdGhpcy5sYXlvdXQuX19hbmltYXRlKCl9fSxjb21wdXRlZDp7cmlnaHRTaWRlOmZ1bmN0aW9uKCl7cmV0dXJuXCJyaWdodFwiPT09dGhpcy5zaWRlfSxvZmZzZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5zaG93aW5nfHx0aGlzLm1vYmlsZU9wZW5lZHx8dGhpcy5vdmVybGF5PzA6dGhpcy5zaXplfSxzaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNNaW5pP3RoaXMubWluaVdpZHRoOnRoaXMud2lkdGh9LGZpeGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3ZlcmxheXx8dGhpcy5sYXlvdXQudmlldy5pbmRleE9mKHRoaXMucmlnaHRTaWRlP1wiUlwiOlwiTFwiKT4tMX0sb25MYXlvdXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaG93aW5nJiYhdGhpcy5tb2JpbGVWaWV3JiYhdGhpcy5vdmVybGF5fSxvblNjcmVlbk92ZXJsYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaG93aW5nJiYhdGhpcy5tb2JpbGVWaWV3JiZ0aGlzLm92ZXJsYXl9LGJhY2tkcm9wQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm57XCJuby1wb2ludGVyLWV2ZW50c1wiOiF0aGlzLnNob3dpbmd8fCF0aGlzLm1vYmlsZVZpZXd9fSxtb2JpbGVWaWV3OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYmVsb3dCcmVha3BvaW50fHx0aGlzLm1vYmlsZU9wZW5lZH0saGVhZGVyU2xvdDpmdW5jdGlvbigpe3JldHVybiF0aGlzLm92ZXJsYXkmJih0aGlzLnJpZ2h0U2lkZT9cInJcIj09PXRoaXMubGF5b3V0LnJvd3MudG9wWzJdOlwibFwiPT09dGhpcy5sYXlvdXQucm93cy50b3BbMF0pfSxmb290ZXJTbG90OmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMub3ZlcmxheSYmKHRoaXMucmlnaHRTaWRlP1wiclwiPT09dGhpcy5sYXlvdXQucm93cy5ib3R0b21bMl06XCJsXCI9PT10aGlzLmxheW91dC5yb3dzLmJvdHRvbVswXSl9LGJlbG93Q2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm57Zml4ZWQ6ITAsXCJvbi10b3BcIjohMCxcInEtbGF5b3V0LWRyYXdlci1kZWxpbWl0ZXJcIjp0aGlzLmZpeGVkJiZ0aGlzLnNob3dpbmcsXCJxLWxheW91dC1kcmF3ZXItbW9iaWxlXCI6ITAsXCJ0b3AtcGFkZGluZ1wiOiEwfX0sYWJvdmVDbGFzczpmdW5jdGlvbigpe3JldHVybntmaXhlZDp0aGlzLmZpeGVkfHwhdGhpcy5vbkxheW91dCxcInEtbGF5b3V0LWRyYXdlci1taW5pXCI6dGhpcy5pc01pbmksXCJxLWxheW91dC1kcmF3ZXItbm9ybWFsXCI6IXRoaXMuaXNNaW5pLFwicS1sYXlvdXQtZHJhd2VyLWRlbGltaXRlclwiOnRoaXMuZml4ZWQmJnRoaXMuc2hvd2luZyxcInRvcC1wYWRkaW5nXCI6dGhpcy5oZWFkZXJTbG90fX0sYWJvdmVTdHlsZTpmdW5jdGlvbigpe3ZhciB0PXt9O3JldHVybiB0aGlzLmxheW91dC5oZWFkZXIuc3BhY2UmJiF0aGlzLmhlYWRlclNsb3QmJih0aGlzLmZpeGVkP3QudG9wPXRoaXMubGF5b3V0LmhlYWRlci5vZmZzZXQrXCJweFwiOnRoaXMubGF5b3V0LmhlYWRlci5zcGFjZSYmKHQudG9wPXRoaXMubGF5b3V0LmhlYWRlci5zaXplK1wicHhcIikpLHRoaXMubGF5b3V0LmZvb3Rlci5zcGFjZSYmIXRoaXMuZm9vdGVyU2xvdCYmKHRoaXMuZml4ZWQ/dC5ib3R0b209dGhpcy5sYXlvdXQuZm9vdGVyLm9mZnNldCtcInB4XCI6dGhpcy5sYXlvdXQuZm9vdGVyLnNwYWNlJiYodC5ib3R0b209dGhpcy5sYXlvdXQuZm9vdGVyLnNpemUrXCJweFwiKSksdH0sY29tcHV0ZWRTdHlsZTpmdW5jdGlvbigpe3JldHVyblt0aGlzLmNvbnRlbnRTdHlsZSx7d2lkdGg6dGhpcy5zaXplK1wicHhcIn0sdGhpcy5tb2JpbGVWaWV3P1wiXCI6dGhpcy5hYm92ZVN0eWxlXX0sY29tcHV0ZWRDbGFzczpmdW5jdGlvbigpe3JldHVybltcInEtbGF5b3V0LWRyYXdlci1cIit0aGlzLnNpZGUsdGhpcy5sYXlvdXQuY29udGFpbmVyP1wib3ZlcmZsb3ctYXV0b1wiOlwic2Nyb2xsXCIsdGhpcy5jb250ZW50Q2xhc3MsdGhpcy5tb2JpbGVWaWV3P3RoaXMuYmVsb3dDbGFzczp0aGlzLmFib3ZlQ2xhc3NdfSxzdGF0ZURpcmVjdGlvbjpmdW5jdGlvbigpe3JldHVybih0aGlzLiRxLmkxOG4ucnRsPy0xOjEpKih0aGlzLnJpZ2h0U2lkZT8xOi0xKX0saXNNaW5pOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWluaSYmIXRoaXMubW9iaWxlVmlld30sb25OYXRpdmVFdmVudHM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKCF0aGlzLm1vYmlsZVZpZXcpcmV0dXJue1wiIWNsaWNrXCI6ZnVuY3Rpb24oZSl7dC4kZW1pdChcImNsaWNrXCIsZSl9LG1vdXNlb3ZlcjpmdW5jdGlvbihlKXt0LiRlbWl0KFwibW91c2VvdmVyXCIsZSl9LG1vdXNlb3V0OmZ1bmN0aW9uKGUpe3QuJGVtaXQoXCJtb3VzZW91dFwiLGUpfX19fSxtZXRob2RzOnthcHBseVBvc2l0aW9uOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dm9pZCAwPT09dD90aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3Q9ZS5zaG93aW5nPzA6ZS5zaXplLGUuYXBwbHlQb3NpdGlvbihlLnN0YXRlRGlyZWN0aW9uKnQpfSk6dGhpcy4kcmVmcy5jb250ZW50JiYodGhpcy5sYXlvdXQuY29udGFpbmVyJiZ0aGlzLnJpZ2h0U2lkZSYmKHRoaXMubW9iaWxlVmlld3x8TWF0aC5hYnModCk9PT10aGlzLnNpemUpJiYodCs9dGhpcy5zdGF0ZURpcmVjdGlvbip0aGlzLmxheW91dC5zY3JvbGxiYXJXaWR0aCksdGhpcy4kcmVmcy5jb250ZW50LnN0eWxlLnRyYW5zZm9ybT1cInRyYW5zbGF0ZVgoXCIrdCtcInB4KVwiKX0sYXBwbHlCYWNrZHJvcDpmdW5jdGlvbih0KXt0aGlzLiRyZWZzLmJhY2tkcm9wJiYodGhpcy4kcmVmcy5iYWNrZHJvcC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9XCJyZ2JhKDAsMCwwLFwiKy40KnQrXCIpXCIpfSxfX3NldFNjcm9sbGFibGU6ZnVuY3Rpb24odCl7dGhpcy5sYXlvdXQuY29udGFpbmVyfHxkb2N1bWVudC5ib2R5LmNsYXNzTGlzdFt0P1wiYWRkXCI6XCJyZW1vdmVcIl0oXCJxLWJvZHktZHJhd2VyLXRvZ2dsZVwiKX0sX19vcGVuQnlUb3VjaDpmdW5jdGlvbih0KXtpZih0aGlzLmJlbG93QnJlYWtwb2ludCl7dmFyIGU9dGhpcy5zaXplLGk9YmV0d2Vlbih0LmRpc3RhbmNlLngsMCxlKTtpZih0LmlzRmluYWwpe3ZhciBzPXRoaXMuJHJlZnMuY29udGVudCxuPWk+PU1hdGgubWluKDc1LGUpO3JldHVybiBzLmNsYXNzTGlzdC5yZW1vdmUoXCJuby10cmFuc2l0aW9uXCIpLHZvaWQobj90aGlzLnNob3coKToodGhpcy5sYXlvdXQuX19hbmltYXRlKCksdGhpcy5hcHBseUJhY2tkcm9wKDApLHRoaXMuYXBwbHlQb3NpdGlvbih0aGlzLnN0YXRlRGlyZWN0aW9uKmUpLHMuY2xhc3NMaXN0LnJlbW92ZShcInEtbGF5b3V0LWRyYXdlci1kZWxpbWl0ZXJcIikpKX1pZih0aGlzLmFwcGx5UG9zaXRpb24oKHRoaXMuJHEuaTE4bi5ydGw/IXRoaXMucmlnaHRTaWRlOnRoaXMucmlnaHRTaWRlKT9NYXRoLm1heChlLWksMCk6TWF0aC5taW4oMCxpLWUpKSx0aGlzLmFwcGx5QmFja2Ryb3AoYmV0d2VlbihpL2UsMCwxKSksdC5pc0ZpcnN0KXt2YXIgbz10aGlzLiRyZWZzLmNvbnRlbnQ7by5jbGFzc0xpc3QuYWRkKFwibm8tdHJhbnNpdGlvblwiKSxvLmNsYXNzTGlzdC5hZGQoXCJxLWxheW91dC1kcmF3ZXItZGVsaW1pdGVyXCIpfX19LF9fY2xvc2VCeVRvdWNoOmZ1bmN0aW9uKHQpe2lmKHRoaXMubW9iaWxlT3BlbmVkKXt2YXIgZT10aGlzLnNpemUsaT10LmRpcmVjdGlvbj09PXRoaXMuc2lkZSxzPSh0aGlzLiRxLmkxOG4ucnRsPyFpOmkpP2JldHdlZW4odC5kaXN0YW5jZS54LDAsZSk6MDtpZih0LmlzRmluYWwpe3ZhciBuPU1hdGguYWJzKHMpPE1hdGgubWluKDc1LGUpO3JldHVybiB0aGlzLiRyZWZzLmNvbnRlbnQuY2xhc3NMaXN0LnJlbW92ZShcIm5vLXRyYW5zaXRpb25cIiksdm9pZChuPyh0aGlzLmxheW91dC5fX2FuaW1hdGUoKSx0aGlzLmFwcGx5QmFja2Ryb3AoMSksdGhpcy5hcHBseVBvc2l0aW9uKDApKTp0aGlzLmhpZGUoKSl9dGhpcy5hcHBseVBvc2l0aW9uKHRoaXMuc3RhdGVEaXJlY3Rpb24qcyksdGhpcy5hcHBseUJhY2tkcm9wKGJldHdlZW4oMS1zL2UsMCwxKSksdC5pc0ZpcnN0JiZ0aGlzLiRyZWZzLmNvbnRlbnQuY2xhc3NMaXN0LmFkZChcIm5vLXRyYW5zaXRpb25cIil9fSxfX3Nob3c6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt2b2lkIDA9PT10JiYodD0hMCksdCYmdGhpcy5sYXlvdXQuX19hbmltYXRlKCksdGhpcy5hcHBseVBvc2l0aW9uKDApO3ZhciBpPXRoaXMubGF5b3V0Lmluc3RhbmNlc1t0aGlzLnJpZ2h0U2lkZT9cImxlZnRcIjpcInJpZ2h0XCJdO2kmJmkubW9iaWxlT3BlbmVkJiZpLmhpZGUoKSx0aGlzLmJlbG93QnJlYWtwb2ludD8odGhpcy5tb2JpbGVPcGVuZWQ9ITAsdGhpcy5hcHBseUJhY2tkcm9wKDEpLHRoaXMubGF5b3V0LmNvbnRhaW5lcnx8KHRoaXMucHJldmVudGVkU2Nyb2xsPSEwLHByZXZlbnRTY3JvbGwoITApKSk6dGhpcy5fX3NldFNjcm9sbGFibGUoITApLGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLnRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLnNob3dQcm9taXNlJiYoZS5zaG93UHJvbWlzZS50aGVuKGZ1bmN0aW9uKCl7ZS5fX3NldFNjcm9sbGFibGUoITEpfSksZS5zaG93UHJvbWlzZVJlc29sdmUoKSl9LGR1cmF0aW9uKX0sX19oaWRlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dm9pZCAwPT09dCYmKHQ9ITApLHQmJnRoaXMubGF5b3V0Ll9fYW5pbWF0ZSgpLHRoaXMubW9iaWxlT3BlbmVkJiYodGhpcy5tb2JpbGVPcGVuZWQ9ITEpLHRoaXMuYXBwbHlQb3NpdGlvbih0aGlzLnN0YXRlRGlyZWN0aW9uKnRoaXMuc2l6ZSksdGhpcy5hcHBseUJhY2tkcm9wKDApLHRoaXMuX19jbGVhbnVwKCksY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMudGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe2UuaGlkZVByb21pc2UmJmUuaGlkZVByb21pc2VSZXNvbHZlKCl9LGR1cmF0aW9uKX0sX19jbGVhbnVwOmZ1bmN0aW9uKCl7dGhpcy5wcmV2ZW50ZWRTY3JvbGwmJih0aGlzLnByZXZlbnRlZFNjcm9sbD0hMSxwcmV2ZW50U2Nyb2xsKCExKSksdGhpcy5fX3NldFNjcm9sbGFibGUoITEpfSxfX3VwZGF0ZTpmdW5jdGlvbih0LGUpe3RoaXMubGF5b3V0W3RoaXMuc2lkZV1bdF0hPT1lJiYodGhpcy5sYXlvdXRbdGhpcy5zaWRlXVt0XT1lKX0sX191cGRhdGVMb2NhbDpmdW5jdGlvbih0LGUpe3RoaXNbdF0hPT1lJiYodGhpc1t0XT1lKX19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmxheW91dC5pbnN0YW5jZXNbdGhpcy5zaWRlXT10aGlzLHRoaXMuX191cGRhdGUoXCJzaXplXCIsdGhpcy5zaXplKSx0aGlzLl9fdXBkYXRlKFwic3BhY2VcIix0aGlzLm9uTGF5b3V0KSx0aGlzLl9fdXBkYXRlKFwib2Zmc2V0XCIsdGhpcy5vZmZzZXQpfSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy5hcHBseVBvc2l0aW9uKHRoaXMuc2hvd2luZz8wOnZvaWQgMCl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy5zaG93aW5nJiZ0aGlzLl9fY2xlYW51cCgpLHRoaXMubGF5b3V0Lmluc3RhbmNlc1t0aGlzLnNpZGVdPT09dGhpcyYmKHRoaXMubGF5b3V0Lmluc3RhbmNlc1t0aGlzLnNpZGVdPW51bGwsdGhpcy5fX3VwZGF0ZShcInNpemVcIiwwKSx0aGlzLl9fdXBkYXRlKFwib2Zmc2V0XCIsMCksdGhpcy5fX3VwZGF0ZShcInNwYWNlXCIsITEpKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kcmF3ZXItY29udGFpbmVyXCJ9LFt0aGlzLm1vYmlsZVZpZXcmJiF0aGlzLm5vU3dpcGVPcGVuP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWxheW91dC1kcmF3ZXItb3BlbmVyIGZpeGVkLVwiK3RoaXMuc2lkZSxkaXJlY3RpdmVzOlt7bmFtZTpcInRvdWNoLXBhblwiLG1vZGlmaWVyczp7aG9yaXpvbnRhbDohMH0sdmFsdWU6dGhpcy5fX29wZW5CeVRvdWNofV19KTpudWxsLHQoXCJkaXZcIix7cmVmOlwiYmFja2Ryb3BcIixzdGF0aWNDbGFzczpcImZ1bGxzY3JlZW4gcS1sYXlvdXQtYmFja2Ryb3AgcS1sYXlvdXQtdHJhbnNpdGlvblwiLGNsYXNzOnRoaXMuYmFja2Ryb3BDbGFzcyxvbjp7Y2xpY2s6dGhpcy5oaWRlfSxkaXJlY3RpdmVzOlt7bmFtZTpcInRvdWNoLXBhblwiLG1vZGlmaWVyczp7aG9yaXpvbnRhbDohMH0sdmFsdWU6dGhpcy5fX2Nsb3NlQnlUb3VjaH1dfSldLmNvbmNhdChbdChcImFzaWRlXCIse3JlZjpcImNvbnRlbnRcIixzdGF0aWNDbGFzczpcInEtbGF5b3V0LWRyYXdlciBxLWxheW91dC10cmFuc2l0aW9uXCIsY2xhc3M6dGhpcy5jb21wdXRlZENsYXNzLHN0eWxlOnRoaXMuY29tcHV0ZWRTdHlsZSxhdHRyczp0aGlzLiRhdHRycyxvbjp0aGlzLm9uTmF0aXZlRXZlbnRzLGRpcmVjdGl2ZXM6dGhpcy5tb2JpbGVWaWV3JiYhdGhpcy5ub1N3aXBlQ2xvc2U/W3tuYW1lOlwidG91Y2gtcGFuXCIsbW9kaWZpZXJzOntob3Jpem9udGFsOiEwfSx2YWx1ZTp0aGlzLl9fY2xvc2VCeVRvdWNofV06bnVsbH0sdGhpcy5pc01pbmkmJnRoaXMuJHNsb3RzLm1pbmk/W3RoaXMuJHNsb3RzLm1pbmldOnRoaXMuJHNsb3RzLmRlZmF1bHQpXSkpfX0sUVdpbmRvd1Jlc2l6ZU9ic2VydmFibGU9e25hbWU6XCJRV2luZG93UmVzaXplT2JzZXJ2YWJsZVwiLHByb3BzOntkZWJvdW5jZTp7dHlwZTpOdW1iZXIsZGVmYXVsdDo4MH19LHJlbmRlcjpmdW5jdGlvbigpe30sbWV0aG9kczp7dHJpZ2dlcjpmdW5jdGlvbigpezA9PT10aGlzLmRlYm91bmNlP3RoaXMuZW1pdCgpOnRoaXMudGltZXJ8fCh0aGlzLnRpbWVyPXNldFRpbWVvdXQodGhpcy5lbWl0LHRoaXMuZGVib3VuY2UpKX0sZW1pdDpmdW5jdGlvbih0KXt0aGlzLnRpbWVyPW51bGwsdGhpcy4kZW1pdChcInJlc2l6ZVwiLHtoZWlnaHQ6dD8wOndpbmRvdy5pbm5lckhlaWdodCx3aWR0aDp0PzA6d2luZG93LmlubmVyV2lkdGh9KX19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmVtaXQob25TU1IpfSxtb3VudGVkOmZ1bmN0aW9uKCl7ZnJvbVNTUiYmdGhpcy5lbWl0KCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix0aGlzLnRyaWdnZXIsbGlzdGVuT3B0cy5wYXNzaXZlKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLHRoaXMudHJpZ2dlcixsaXN0ZW5PcHRzLnBhc3NpdmUpfX0sUUxheW91dEZvb3Rlcj17bmFtZTpcIlFMYXlvdXRGb290ZXJcIixtaXhpbnM6W0NhblJlbmRlck1peGluXSxpbmplY3Q6e2xheW91dDp7ZGVmYXVsdDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoXCJRTGF5b3V0Rm9vdGVyIG5lZWRzIHRvIGJlIGNoaWxkIG9mIFFMYXlvdXRcIil9fX0scHJvcHM6e3ZhbHVlOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMH0scmV2ZWFsOkJvb2xlYW59LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57c2l6ZTowLHJldmVhbGVkOiEwLHdpbmRvd0hlaWdodDpvblNTUnx8dGhpcy5sYXlvdXQuY29udGFpbmVyPzA6d2luZG93LmlubmVySGVpZ2h0fX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuX191cGRhdGUoXCJzcGFjZVwiLHQpLHRoaXMuX191cGRhdGVMb2NhbChcInJldmVhbGVkXCIsITApLHRoaXMubGF5b3V0Ll9fYW5pbWF0ZSgpfSxvZmZzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fX3VwZGF0ZShcIm9mZnNldFwiLHQpfSxyZXZlYWw6ZnVuY3Rpb24odCl7dHx8dGhpcy5fX3VwZGF0ZUxvY2FsKFwicmV2ZWFsZWRcIix0aGlzLnZhbHVlKX0scmV2ZWFsZWQ6ZnVuY3Rpb24odCl7dGhpcy5sYXlvdXQuX19hbmltYXRlKCksdGhpcy4kZW1pdChcInJldmVhbFwiLHQpfSxcImxheW91dC5zY3JvbGxcIjpmdW5jdGlvbigpe3RoaXMuX191cGRhdGVSZXZlYWxlZCgpfSxcImxheW91dC5oZWlnaHRcIjpmdW5jdGlvbigpe3RoaXMuX191cGRhdGVSZXZlYWxlZCgpfSxzaXplOmZ1bmN0aW9uKCl7dGhpcy5fX3VwZGF0ZVJldmVhbGVkKCl9fSxjb21wdXRlZDp7Zml4ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXZlYWx8fHRoaXMubGF5b3V0LnZpZXcuaW5kZXhPZihcIkZcIik+LTF8fHRoaXMubGF5b3V0LmNvbnRhaW5lcn0sY29udGFpbmVySGVpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0LmNvbnRhaW5lcj90aGlzLmxheW91dC5jb250YWluZXJIZWlnaHQ6dGhpcy53aW5kb3dIZWlnaHR9LG9mZnNldDpmdW5jdGlvbigpe2lmKCF0aGlzLmNhblJlbmRlcnx8IXRoaXMudmFsdWUpcmV0dXJuIDA7aWYodGhpcy5maXhlZClyZXR1cm4gdGhpcy5yZXZlYWxlZD90aGlzLnNpemU6MDt2YXIgdD10aGlzLmxheW91dC5zY3JvbGwucG9zaXRpb24rdGhpcy5jb250YWluZXJIZWlnaHQrdGhpcy5zaXplLXRoaXMubGF5b3V0LmhlaWdodDtyZXR1cm4gdD4wP3Q6MH0sY29tcHV0ZWRDbGFzczpmdW5jdGlvbigpe3JldHVybntcImZpeGVkLWJvdHRvbVwiOnRoaXMuZml4ZWQsXCJhYnNvbHV0ZS1ib3R0b21cIjohdGhpcy5maXhlZCxoaWRkZW46IXRoaXMudmFsdWUmJiF0aGlzLmZpeGVkLFwicS1sYXlvdXQtZm9vdGVyLWhpZGRlblwiOiF0aGlzLmNhblJlbmRlcnx8IXRoaXMudmFsdWV8fHRoaXMuZml4ZWQmJiF0aGlzLnJldmVhbGVkfX0sY29tcHV0ZWRTdHlsZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMubGF5b3V0LnJvd3MuYm90dG9tLGU9e307cmV0dXJuXCJsXCI9PT10WzBdJiZ0aGlzLmxheW91dC5sZWZ0LnNwYWNlJiYoZVt0aGlzLiRxLmkxOG4ucnRsP1wicmlnaHRcIjpcImxlZnRcIl09dGhpcy5sYXlvdXQubGVmdC5zaXplK1wicHhcIiksXCJyXCI9PT10WzJdJiZ0aGlzLmxheW91dC5yaWdodC5zcGFjZSYmKGVbdGhpcy4kcS5pMThuLnJ0bD9cImxlZnRcIjpcInJpZ2h0XCJdPXRoaXMubGF5b3V0LnJpZ2h0LnNpemUrXCJweFwiKSxlfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZm9vdGVyXCIse3N0YXRpY0NsYXNzOlwicS1sYXlvdXQtZm9vdGVyIHEtbGF5b3V0LW1hcmdpbmFsIHEtbGF5b3V0LXRyYW5zaXRpb25cIixjbGFzczp0aGlzLmNvbXB1dGVkQ2xhc3Msc3R5bGU6dGhpcy5jb21wdXRlZFN0eWxlfSxbdChRUmVzaXplT2JzZXJ2YWJsZSx7cHJvcHM6e2RlYm91bmNlOjB9LG9uOntyZXNpemU6dGhpcy5fX29uUmVzaXplfX0pLCF0aGlzLmxheW91dC5jb250YWluZXImJnQoUVdpbmRvd1Jlc2l6ZU9ic2VydmFibGUse3Byb3BzOntkZWJvdW5jZTowfSxvbjp7cmVzaXplOnRoaXMuX19vbldpbmRvd1Jlc2l6ZX19KXx8dm9pZCAwLHRoaXMuJHNsb3RzLmRlZmF1bHRdKX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMubGF5b3V0Lmluc3RhbmNlcy5mb290ZXI9dGhpcyx0aGlzLl9fdXBkYXRlKFwic3BhY2VcIix0aGlzLnZhbHVlKSx0aGlzLl9fdXBkYXRlKFwib2Zmc2V0XCIsdGhpcy5vZmZzZXQpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5sYXlvdXQuaW5zdGFuY2VzLmZvb3Rlcj09PXRoaXMmJih0aGlzLmxheW91dC5pbnN0YW5jZXMuZm9vdGVyPW51bGwsdGhpcy5fX3VwZGF0ZShcInNpemVcIiwwKSx0aGlzLl9fdXBkYXRlKFwib2Zmc2V0XCIsMCksdGhpcy5fX3VwZGF0ZShcInNwYWNlXCIsITEpKX0sbWV0aG9kczp7X19vblJlc2l6ZTpmdW5jdGlvbih0KXt2YXIgZT10LmhlaWdodDt0aGlzLl9fdXBkYXRlTG9jYWwoXCJzaXplXCIsZSksdGhpcy5fX3VwZGF0ZShcInNpemVcIixlKX0sX19vbldpbmRvd1Jlc2l6ZTpmdW5jdGlvbih0KXt2YXIgZT10LmhlaWdodDt0aGlzLl9fdXBkYXRlTG9jYWwoXCJ3aW5kb3dIZWlnaHRcIixlKX0sX191cGRhdGU6ZnVuY3Rpb24odCxlKXt0aGlzLmxheW91dC5mb290ZXJbdF0hPT1lJiYodGhpcy5sYXlvdXQuZm9vdGVyW3RdPWUpfSxfX3VwZGF0ZUxvY2FsOmZ1bmN0aW9uKHQsZSl7dGhpc1t0XSE9PWUmJih0aGlzW3RdPWUpfSxfX3VwZGF0ZVJldmVhbGVkOmZ1bmN0aW9uKCl7aWYodGhpcy5yZXZlYWwpe3ZhciB0PXRoaXMubGF5b3V0LnNjcm9sbCxlPXQuZGlyZWN0aW9uLGk9dC5wb3NpdGlvbixzPXQuaW5mbGV4aW9uUG9zaXRpb247dGhpcy5fX3VwZGF0ZUxvY2FsKFwicmV2ZWFsZWRcIixcInVwXCI9PT1lfHxpLXM8MTAwfHx0aGlzLmxheW91dC5oZWlnaHQtdGhpcy5jb250YWluZXJIZWlnaHQtaS10aGlzLnNpemU8MzAwKX19fX0sUUxheW91dEhlYWRlcj17bmFtZTpcIlFMYXlvdXRIZWFkZXJcIixtaXhpbnM6W0NhblJlbmRlck1peGluXSxpbmplY3Q6e2xheW91dDp7ZGVmYXVsdDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoXCJRTGF5b3V0SGVhZGVyIG5lZWRzIHRvIGJlIGNoaWxkIG9mIFFMYXlvdXRcIil9fX0scHJvcHM6e3ZhbHVlOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMH0scmV2ZWFsOkJvb2xlYW4scmV2ZWFsT2Zmc2V0Ont0eXBlOk51bWJlcixkZWZhdWx0OjI1MH19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57c2l6ZTowLHJldmVhbGVkOiEwfX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuX191cGRhdGUoXCJzcGFjZVwiLHQpLHRoaXMuX191cGRhdGVMb2NhbChcInJldmVhbGVkXCIsITApLHRoaXMubGF5b3V0Ll9fYW5pbWF0ZSgpfSxvZmZzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fX3VwZGF0ZShcIm9mZnNldFwiLHQpfSxyZXZlYWw6ZnVuY3Rpb24odCl7dHx8dGhpcy5fX3VwZGF0ZUxvY2FsKFwicmV2ZWFsZWRcIix0aGlzLnZhbHVlKX0scmV2ZWFsZWQ6ZnVuY3Rpb24odCl7dGhpcy5sYXlvdXQuX19hbmltYXRlKCksdGhpcy4kZW1pdChcInJldmVhbFwiLHQpfSxcImxheW91dC5zY3JvbGxcIjpmdW5jdGlvbih0KXt0aGlzLnJldmVhbCYmdGhpcy5fX3VwZGF0ZUxvY2FsKFwicmV2ZWFsZWRcIixcInVwXCI9PT10LmRpcmVjdGlvbnx8dC5wb3NpdGlvbjw9dGhpcy5yZXZlYWxPZmZzZXR8fHQucG9zaXRpb24tdC5pbmZsZXhpb25Qb3NpdGlvbjwxMDApfX0sY29tcHV0ZWQ6e2ZpeGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmV2ZWFsfHx0aGlzLmxheW91dC52aWV3LmluZGV4T2YoXCJIXCIpPi0xfHx0aGlzLmxheW91dC5jb250YWluZXJ9LG9mZnNldDpmdW5jdGlvbigpe2lmKCF0aGlzLmNhblJlbmRlcnx8IXRoaXMudmFsdWUpcmV0dXJuIDA7aWYodGhpcy5maXhlZClyZXR1cm4gdGhpcy5yZXZlYWxlZD90aGlzLnNpemU6MDt2YXIgdD10aGlzLnNpemUtdGhpcy5sYXlvdXQuc2Nyb2xsLnBvc2l0aW9uO3JldHVybiB0PjA/dDowfSxjb21wdXRlZENsYXNzOmZ1bmN0aW9uKCl7cmV0dXJue1wiZml4ZWQtdG9wXCI6dGhpcy5maXhlZCxcImFic29sdXRlLXRvcFwiOiF0aGlzLmZpeGVkLFwicS1sYXlvdXQtaGVhZGVyLWhpZGRlblwiOiF0aGlzLmNhblJlbmRlcnx8IXRoaXMudmFsdWV8fHRoaXMuZml4ZWQmJiF0aGlzLnJldmVhbGVkfX0sY29tcHV0ZWRTdHlsZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMubGF5b3V0LnJvd3MudG9wLGU9e307cmV0dXJuXCJsXCI9PT10WzBdJiZ0aGlzLmxheW91dC5sZWZ0LnNwYWNlJiYoZVt0aGlzLiRxLmkxOG4ucnRsP1wicmlnaHRcIjpcImxlZnRcIl09dGhpcy5sYXlvdXQubGVmdC5zaXplK1wicHhcIiksXCJyXCI9PT10WzJdJiZ0aGlzLmxheW91dC5yaWdodC5zcGFjZSYmKGVbdGhpcy4kcS5pMThuLnJ0bD9cImxlZnRcIjpcInJpZ2h0XCJdPXRoaXMubGF5b3V0LnJpZ2h0LnNpemUrXCJweFwiKSxlfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiaGVhZGVyXCIse3N0YXRpY0NsYXNzOlwicS1sYXlvdXQtaGVhZGVyIHEtbGF5b3V0LW1hcmdpbmFsIHEtbGF5b3V0LXRyYW5zaXRpb25cIixjbGFzczp0aGlzLmNvbXB1dGVkQ2xhc3Msc3R5bGU6dGhpcy5jb21wdXRlZFN0eWxlfSxbdChRUmVzaXplT2JzZXJ2YWJsZSx7cHJvcHM6e2RlYm91bmNlOjB9LG9uOntyZXNpemU6dGhpcy5fX29uUmVzaXplfX0pLHRoaXMuJHNsb3RzLmRlZmF1bHRdKX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMubGF5b3V0Lmluc3RhbmNlcy5oZWFkZXI9dGhpcyx0aGlzLl9fdXBkYXRlKFwic3BhY2VcIix0aGlzLnZhbHVlKSx0aGlzLl9fdXBkYXRlKFwib2Zmc2V0XCIsdGhpcy5vZmZzZXQpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5sYXlvdXQuaW5zdGFuY2VzLmhlYWRlcj09PXRoaXMmJih0aGlzLmxheW91dC5pbnN0YW5jZXMuaGVhZGVyPW51bGwsdGhpcy5fX3VwZGF0ZShcInNpemVcIiwwKSx0aGlzLl9fdXBkYXRlKFwib2Zmc2V0XCIsMCksdGhpcy5fX3VwZGF0ZShcInNwYWNlXCIsITEpKX0sbWV0aG9kczp7X19vblJlc2l6ZTpmdW5jdGlvbih0KXt2YXIgZT10LmhlaWdodDt0aGlzLl9fdXBkYXRlTG9jYWwoXCJzaXplXCIsZSksdGhpcy5fX3VwZGF0ZShcInNpemVcIixlKX0sX191cGRhdGU6ZnVuY3Rpb24odCxlKXt0aGlzLmxheW91dC5oZWFkZXJbdF0hPT1lJiYodGhpcy5sYXlvdXQuaGVhZGVyW3RdPWUpfSxfX3VwZGF0ZUxvY2FsOmZ1bmN0aW9uKHQsZSl7dGhpc1t0XSE9PWUmJih0aGlzW3RdPWUpfX19LFFQYWdlPXtuYW1lOlwiUVBhZ2VcIixpbmplY3Q6e3BhZ2VDb250YWluZXI6e2RlZmF1bHQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKFwiUVBhZ2UgbmVlZHMgdG8gYmUgY2hpbGQgb2YgUVBhZ2VDb250YWluZXJcIil9fSxsYXlvdXQ6e319LHByb3BzOntwYWRkaW5nOkJvb2xlYW4sc3R5bGVGbjpGdW5jdGlvbn0sY29tcHV0ZWQ6e3N0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ9KHRoaXMubGF5b3V0LmhlYWRlci5zcGFjZT90aGlzLmxheW91dC5oZWFkZXIuc2l6ZTowKSsodGhpcy5sYXlvdXQuZm9vdGVyLnNwYWNlP3RoaXMubGF5b3V0LmZvb3Rlci5zaXplOjApO3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXMuc3R5bGVGbj90aGlzLnN0eWxlRm4odCk6e21pbkhlaWdodDp0aGlzLmxheW91dC5jb250YWluZXI/dGhpcy5sYXlvdXQuY29udGFpbmVySGVpZ2h0LXQrXCJweFwiOnQ/XCJjYWxjKDEwMHZoIC0gXCIrdCtcInB4KVwiOlwiMTAwdmhcIn19LGNsYXNzZXM6ZnVuY3Rpb24oKXtpZih0aGlzLnBhZGRpbmcpcmV0dXJuXCJsYXlvdXQtcGFkZGluZ1wifX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwibWFpblwiLHtzdGF0aWNDbGFzczpcInEtbGF5b3V0LXBhZ2VcIixzdHlsZTp0aGlzLnN0eWxlLGNsYXNzOnRoaXMuY2xhc3Nlc30sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxRUGFnZUNvbnRhaW5lcj17bmFtZTpcIlFQYWdlQ29udGFpbmVyXCIsaW5qZWN0OntsYXlvdXQ6e2RlZmF1bHQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKFwiUVBhZ2VDb250YWluZXIgbmVlZHMgdG8gYmUgY2hpbGQgb2YgUUxheW91dFwiKX19fSxwcm92aWRlOntwYWdlQ29udGFpbmVyOiEwfSxjb21wdXRlZDp7c3R5bGU6ZnVuY3Rpb24oKXt2YXIgdD17fTtyZXR1cm4gdGhpcy5sYXlvdXQuaGVhZGVyLnNwYWNlJiYodC5wYWRkaW5nVG9wPXRoaXMubGF5b3V0LmhlYWRlci5zaXplK1wicHhcIiksdGhpcy5sYXlvdXQucmlnaHQuc3BhY2UmJih0W1wicGFkZGluZ1wiKyh0aGlzLiRxLmkxOG4ucnRsP1wiTGVmdFwiOlwiUmlnaHRcIildPXRoaXMubGF5b3V0LnJpZ2h0LnNpemUrXCJweFwiKSx0aGlzLmxheW91dC5mb290ZXIuc3BhY2UmJih0LnBhZGRpbmdCb3R0b209dGhpcy5sYXlvdXQuZm9vdGVyLnNpemUrXCJweFwiKSx0aGlzLmxheW91dC5sZWZ0LnNwYWNlJiYodFtcInBhZGRpbmdcIisodGhpcy4kcS5pMThuLnJ0bD9cIlJpZ2h0XCI6XCJMZWZ0XCIpXT10aGlzLmxheW91dC5sZWZ0LnNpemUrXCJweFwiKSx0fX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1sYXlvdXQtcGFnZS1jb250YWluZXIgcS1sYXlvdXQtdHJhbnNpdGlvblwiLHN0eWxlOnRoaXMuc3R5bGV9LHRoaXMuJHNsb3RzLmRlZmF1bHQpfX0sUVBhZ2VTdGlja3k9e25hbWU6XCJRUGFnZVN0aWNreVwiLGluamVjdDp7bGF5b3V0OntkZWZhdWx0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcihcIlFQYWdlU3RpY2t5IG5lZWRzIHRvIGJlIGNoaWxkIG9mIFFMYXlvdXRcIil9fX0scHJvcHM6e3Bvc2l0aW9uOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiYm90dG9tLXJpZ2h0XCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcInRvcC1yaWdodFwiLFwidG9wLWxlZnRcIixcImJvdHRvbS1yaWdodFwiLFwiYm90dG9tLWxlZnRcIixcInRvcFwiLFwicmlnaHRcIixcImJvdHRvbVwiLFwibGVmdFwiXS5pbmNsdWRlcyh0KX19LG9mZnNldDp7dHlwZTpBcnJheSx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuIDI9PT10Lmxlbmd0aH19LGV4cGFuZDpCb29sZWFufSxjb21wdXRlZDp7YXR0YWNoOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wb3NpdGlvbjtyZXR1cm57dG9wOnQuaW5kZXhPZihcInRvcFwiKT4tMSxyaWdodDp0LmluZGV4T2YoXCJyaWdodFwiKT4tMSxib3R0b206dC5pbmRleE9mKFwiYm90dG9tXCIpPi0xLGxlZnQ6dC5pbmRleE9mKFwibGVmdFwiKT4tMSx2ZXJ0aWNhbDpcInRvcFwiPT09dHx8XCJib3R0b21cIj09PXQsaG9yaXpvbnRhbDpcImxlZnRcIj09PXR8fFwicmlnaHRcIj09PXR9fSx0b3A6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQuaGVhZGVyLm9mZnNldH0scmlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQucmlnaHQub2Zmc2V0fSxib3R0b206ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQuZm9vdGVyLm9mZnNldH0sbGVmdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dC5sZWZ0Lm9mZnNldH0sY29tcHV0ZWRTdHlsZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuYXR0YWNoLGU9W10saT10aGlzLiRxLmkxOG4ucnRsPy0xOjE7dC50b3AmJnRoaXMudG9wP2UucHVzaChcInRyYW5zbGF0ZVkoXCIrdGhpcy50b3ArXCJweClcIik6dC5ib3R0b20mJnRoaXMuYm90dG9tJiZlLnB1c2goXCJ0cmFuc2xhdGVZKFwiKy10aGlzLmJvdHRvbStcInB4KVwiKSx0LmxlZnQmJnRoaXMubGVmdD9lLnB1c2goXCJ0cmFuc2xhdGVYKFwiK2kqdGhpcy5sZWZ0K1wicHgpXCIpOnQucmlnaHQmJnRoaXMucmlnaHQmJmUucHVzaChcInRyYW5zbGF0ZVgoXCIrLWkqdGhpcy5yaWdodCtcInB4KVwiKTt2YXIgcz1lLmxlbmd0aD97dHJhbnNmb3JtOmUuam9pbihcIiBcIil9Ont9O3JldHVybiB0aGlzLm9mZnNldCYmKHMubWFyZ2luPXRoaXMub2Zmc2V0WzFdK1wicHggXCIrdGhpcy5vZmZzZXRbMF0rXCJweFwiKSx0LnZlcnRpY2FsPyh0aGlzLmxlZnQmJihzW3RoaXMuJHEuaTE4bi5ydGw/XCJyaWdodFwiOlwibGVmdFwiXT10aGlzLmxlZnQrXCJweFwiKSx0aGlzLnJpZ2h0JiYoc1t0aGlzLiRxLmkxOG4ucnRsP1wibGVmdFwiOlwicmlnaHRcIl09dGhpcy5yaWdodCtcInB4XCIpKTp0Lmhvcml6b250YWwmJih0aGlzLnRvcCYmKHMudG9wPXRoaXMudG9wK1wicHhcIiksdGhpcy5ib3R0b20mJihzLmJvdHRvbT10aGlzLmJvdHRvbStcInB4XCIpKSxzfSxjbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJuW1wiZml4ZWQtXCIrdGhpcy5wb3NpdGlvbixcInEtcGFnZS1zdGlja3ktXCIrKHRoaXMuZXhwYW5kP1wiZXhwYW5kXCI6XCJzaHJpbmtcIildfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1wYWdlLXN0aWNreSBxLWxheW91dC10cmFuc2l0aW9uIHJvdyBmbGV4LWNlbnRlclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxzdHlsZTp0aGlzLmNvbXB1dGVkU3R5bGV9LHRoaXMuZXhwYW5kP3RoaXMuJHNsb3RzLmRlZmF1bHQ6W3QoXCJzcGFuXCIsdGhpcy4kc2xvdHMuZGVmYXVsdCldKX19LFFMaXN0SGVhZGVyPXtuYW1lOlwiUUxpc3RIZWFkZXJcIixwcm9wczp7aW5zZXQ6Qm9vbGVhbn0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1saXN0LWhlYWRlclwiLGNsYXNzOntcInEtbGlzdC1oZWFkZXItaW5zZXRcIjp0aGlzLmluc2V0fX0sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxRTW9kYWxMYXlvdXQ9e25hbWU6XCJRTW9kYWxMYXlvdXRcIixpbmplY3Q6e19fcW1vZGFsOntkZWZhdWx0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcihcIlFNb2RhbExheW91dCBuZWVkcyB0byBiZSBjaGlsZCBvZiBRTW9kYWxcIil9fX0scHJvcHM6e2hlYWRlclN0eWxlOltTdHJpbmcsT2JqZWN0LEFycmF5XSxoZWFkZXJDbGFzczpbU3RyaW5nLE9iamVjdCxBcnJheV0sY29udGVudFN0eWxlOltTdHJpbmcsT2JqZWN0LEFycmF5XSxjb250ZW50Q2xhc3M6W1N0cmluZyxPYmplY3QsQXJyYXldLGZvb3RlclN0eWxlOltTdHJpbmcsT2JqZWN0LEFycmF5XSxmb290ZXJDbGFzczpbU3RyaW5nLE9iamVjdCxBcnJheV19LHdhdGNoOntfX3Ftb2RhbDpmdW5jdGlvbih0LGUpe2UmJmUudW5yZWdpc3Rlcih0aGlzKSx0JiZ0LnJlZ2lzdGVyKHRoaXMpfX0sbW91bnRlZDpmdW5jdGlvbigpe3RoaXMuX19xbW9kYWwmJnRoaXMuX19xbW9kYWwucmVnaXN0ZXIodGhpcyl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9fcW1vZGFsJiZ0aGlzLl9fcW1vZGFsLnVucmVnaXN0ZXIodGhpcyl9LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4odGhpcy4kc2xvdHMuaGVhZGVyfHx0aGlzLiRzbG90cy5uYXZpZ2F0aW9uKSYmZS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWxheW91dC1oZWFkZXJcIixzdHlsZTp0aGlzLmhlYWRlclN0eWxlLGNsYXNzOnRoaXMuaGVhZGVyQ2xhc3N9LFt0aGlzLiRzbG90cy5oZWFkZXIsdGhpcy4kc2xvdHMubmF2aWdhdGlvbl0pKSxlLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbW9kYWwtbGF5b3V0LWNvbnRlbnQgY29sIHNjcm9sbFwiLHN0eWxlOnRoaXMuY29udGVudFN0eWxlLGNsYXNzOnRoaXMuY29udGVudENsYXNzfSx0aGlzLiRzbG90cy5kZWZhdWx0KSksdGhpcy4kc2xvdHMuZm9vdGVyJiZlLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbGF5b3V0LWZvb3RlclwiLHN0eWxlOnRoaXMuZm9vdGVyU3R5bGUsY2xhc3M6dGhpcy5mb290ZXJDbGFzc30sW3RoaXMuJHNsb3RzLmZvb3RlcixudWxsXSkpLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLW1vZGFsLWxheW91dCBjb2wgY29sdW1uIG5vLXdyYXBcIn0sZSl9fSxRTm9Tc3I9e25hbWU6XCJRTm9Tc3JcIixtaXhpbnM6W0NhblJlbmRlck1peGluXSxwcm9wczp7dGFnOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiZGl2XCJ9LHBsYWNlaG9sZGVyOlN0cmluZ30scmVuZGVyOmZ1bmN0aW9uKHQpe2lmKHRoaXMuY2FuUmVuZGVyKXt2YXIgZT10aGlzLiRzbG90cy5kZWZhdWx0O3JldHVybiBlJiZlLmxlbmd0aD4xP3QodGhpcy50YWcsZSk6ZT9lWzBdOm51bGx9aWYodGhpcy4kc2xvdHMucGxhY2Vob2xkZXIpe3ZhciBpPXRoaXMuJHNsb3RzLnBsYWNlaG9sZGVyO3JldHVybiBpJiZpLmxlbmd0aD4xP3QodGhpcy50YWcse3N0YXRpY0NsYXNzOlwicS1uby1zc3ItcGxhY2Vob2xkZXJcIn0saSk6aT9pWzBdOm51bGx9aWYodGhpcy5wbGFjZWhvbGRlcilyZXR1cm4gdCh0aGlzLnRhZyx7c3RhdGljQ2xhc3M6XCJxLW5vLXNzci1wbGFjZWhvbGRlclwifSxbdGhpcy5wbGFjZWhvbGRlcl0pfX0sUVBhZ2luYXRpb249e25hbWU6XCJRUGFnaW5hdGlvblwiLHByb3BzOnt2YWx1ZTp7dHlwZTpOdW1iZXIscmVxdWlyZWQ6ITB9LG1pbjp7dHlwZTpOdW1iZXIsZGVmYXVsdDoxfSxtYXg6e3R5cGU6TnVtYmVyLHJlcXVpcmVkOiEwfSxjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInByaW1hcnlcIn0sdGV4dENvbG9yOlN0cmluZyxzaXplOlN0cmluZyxkaXNhYmxlOkJvb2xlYW4saW5wdXQ6Qm9vbGVhbixib3VuZGFyeUxpbmtzOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDpudWxsfSxib3VuZGFyeU51bWJlcnM6e3R5cGU6Qm9vbGVhbixkZWZhdWx0Om51bGx9LGRpcmVjdGlvbkxpbmtzOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDpudWxsfSxlbGxpcHNlczp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6bnVsbH0sbWF4UGFnZXM6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MCx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuISh0PDApfHwoY29uc29sZS5lcnJvcihcIm1heFBhZ2VzIHNob3VsZCBub3QgYmUgbmVnYXRpdmVcIiksITEpfX19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57bmV3UGFnZTpudWxsfX0sd2F0Y2g6e21pbjpmdW5jdGlvbih0KXt0aGlzLm1vZGVsPXRoaXMudmFsdWV9LG1heDpmdW5jdGlvbih0KXt0aGlzLm1vZGVsPXRoaXMudmFsdWV9fSxjb21wdXRlZDp7bW9kZWw6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZighdGhpcy5kaXNhYmxlJiZ0JiYhaXNOYU4odCkpe3ZhciBpPWJldHdlZW4ocGFyc2VJbnQodCwxMCksdGhpcy5taW4sdGhpcy5tYXgpO3RoaXMuJGVtaXQoXCJpbnB1dFwiLGkpLHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7SlNPTi5zdHJpbmdpZnkoaSkhPT1KU09OLnN0cmluZ2lmeShlLnZhbHVlKSYmZS4kZW1pdChcImNoYW5nZVwiLGkpfSl9fX0saW5wdXRQbGFjZWhvbGRlcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsK1wiIC8gXCIrdGhpcy5tYXh9LF9fYm91bmRhcnlMaW5rczpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9fZ2V0Qm9vbCh0aGlzLmJvdW5kYXJ5TGlua3MsdGhpcy5pbnB1dCl9LF9fYm91bmRhcnlOdW1iZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19nZXRCb29sKHRoaXMuYm91bmRhcnlOdW1iZXJzLCF0aGlzLmlucHV0KX0sX19kaXJlY3Rpb25MaW5rczpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9fZ2V0Qm9vbCh0aGlzLmRpcmVjdGlvbkxpbmtzLHRoaXMuaW5wdXQpfSxfX2VsbGlwc2VzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19nZXRCb29sKHRoaXMuZWxsaXBzZXMsIXRoaXMuaW5wdXQpfSxpY29uczpmdW5jdGlvbigpe3ZhciB0PVt0aGlzLiRxLmljb24ucGFnaW5hdGlvbi5maXJzdCx0aGlzLiRxLmljb24ucGFnaW5hdGlvbi5wcmV2LHRoaXMuJHEuaWNvbi5wYWdpbmF0aW9uLm5leHQsdGhpcy4kcS5pY29uLnBhZ2luYXRpb24ubGFzdF07cmV0dXJuIHRoaXMuJHEuaTE4bi5ydGw/dC5yZXZlcnNlKCk6dH19LG1ldGhvZHM6e3NldDpmdW5jdGlvbih0KXt0aGlzLm1vZGVsPXR9LHNldEJ5T2Zmc2V0OmZ1bmN0aW9uKHQpe3RoaXMubW9kZWw9dGhpcy5tb2RlbCt0fSxfX3VwZGF0ZTpmdW5jdGlvbigpe3RoaXMubW9kZWw9dGhpcy5uZXdQYWdlLHRoaXMubmV3UGFnZT1udWxsfSxfX2dldEJvb2w6ZnVuY3Rpb24odCxlKXtyZXR1cm5bITAsITFdLmluY2x1ZGVzKHQpP3Q6ZX0sX19nZXRCdG46ZnVuY3Rpb24odCxlLGkpe3JldHVybiBlLnByb3BzPU9iamVjdC5hc3NpZ24oe2NvbG9yOnRoaXMuY29sb3IsZmxhdDohMCxzaXplOnRoaXMuc2l6ZX0saSksdChRQnRuLGUpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT1bXSxzPVtdLG49W107aWYodGhpcy5fX2JvdW5kYXJ5TGlua3MmJihpLnB1c2godGhpcy5fX2dldEJ0bih0LHtrZXk6XCJibHNcIixvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXQoZS5taW4pfX19LHtkaXNhYmxlOnRoaXMuZGlzYWJsZXx8dGhpcy52YWx1ZTw9dGhpcy5taW4saWNvbjp0aGlzLmljb25zWzBdfSkpLHMudW5zaGlmdCh0aGlzLl9fZ2V0QnRuKHQse2tleTpcImJsZVwiLG9uOntjbGljazpmdW5jdGlvbigpe3JldHVybiBlLnNldChlLm1heCl9fX0se2Rpc2FibGU6dGhpcy5kaXNhYmxlfHx0aGlzLnZhbHVlPj10aGlzLm1heCxpY29uOnRoaXMuaWNvbnNbM119KSkpLHRoaXMuX19kaXJlY3Rpb25MaW5rcyYmKGkucHVzaCh0aGlzLl9fZ2V0QnRuKHQse2tleTpcImJkcFwiLG9uOntjbGljazpmdW5jdGlvbigpe3JldHVybiBlLnNldEJ5T2Zmc2V0KC0xKX19fSx7ZGlzYWJsZTp0aGlzLmRpc2FibGV8fHRoaXMudmFsdWU8PXRoaXMubWluLGljb246dGhpcy5pY29uc1sxXX0pKSxzLnVuc2hpZnQodGhpcy5fX2dldEJ0bih0LHtrZXk6XCJiZG5cIixvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXRCeU9mZnNldCgxKX19fSx7ZGlzYWJsZTp0aGlzLmRpc2FibGV8fHRoaXMudmFsdWU+PXRoaXMubWF4LGljb246dGhpcy5pY29uc1syXX0pKSksdGhpcy5pbnB1dCluLnB1c2godChRSW5wdXQse3N0YXRpY0NsYXNzOlwiaW5saW5lIG5vLXBhZGRpbmdcIixzdHlsZTp7d2lkdGg6dGhpcy5pbnB1dFBsYWNlaG9sZGVyLmxlbmd0aCtcInJlbVwifSxwcm9wczp7dHlwZTpcIm51bWJlclwiLHZhbHVlOnRoaXMubmV3UGFnZSxub051bWJlclRvZ2dsZTohMCxtaW46dGhpcy5taW4sbWF4OnRoaXMubWF4LGNvbG9yOnRoaXMuY29sb3IscGxhY2Vob2xkZXI6dGhpcy5pbnB1dFBsYWNlaG9sZGVyLGRpc2FibGU6dGhpcy5kaXNhYmxlLGhpZGVVbmRlcmxpbmU6ITB9LG9uOntpbnB1dDpmdW5jdGlvbih0KXtyZXR1cm4gZS5uZXdQYWdlPXR9LGtleWRvd246ZnVuY3Rpb24odCl7cmV0dXJuIDEzPT09Z2V0RXZlbnRLZXkodCkmJmUuX191cGRhdGUoKX0sYmx1cjpmdW5jdGlvbigpe3JldHVybiBlLl9fdXBkYXRlKCl9fX0pKTtlbHNle3ZhciBvPU1hdGgubWF4KHRoaXMubWF4UGFnZXMsMSsodGhpcy5fX2VsbGlwc2VzPzI6MCkrKHRoaXMuX19ib3VuZGFyeU51bWJlcnM/MjowKSkscj10aGlzLm1pbixhPXRoaXMubWF4LGw9ITEsYz0hMSxoPSExLHU9ITE7dGhpcy5tYXhQYWdlcyYmbzx0aGlzLm1heC10aGlzLm1pbisxJiYobz0xKzIqTWF0aC5mbG9vcihvLzIpLHI9TWF0aC5tYXgodGhpcy5taW4sTWF0aC5taW4odGhpcy5tYXgtbysxLHRoaXMudmFsdWUtTWF0aC5mbG9vcihvLzIpKSksYT1NYXRoLm1pbih0aGlzLm1heCxyK28tMSksdGhpcy5fX2JvdW5kYXJ5TnVtYmVycyYmKGg9ITAscis9MSksdGhpcy5fX2VsbGlwc2VzJiZyPnRoaXMubWluKyh0aGlzLl9fYm91bmRhcnlOdW1iZXJzPzE6MCkmJihsPSEwLHIrPTEpLHRoaXMuX19ib3VuZGFyeU51bWJlcnMmJih1PSEwLGEtPTEpLHRoaXMuX19lbGxpcHNlcyYmYTx0aGlzLm1heC0odGhpcy5fX2JvdW5kYXJ5TnVtYmVycz8xOjApJiYoYz0hMCxhLT0xKSk7dmFyIGQ9e21pbldpZHRoOk1hdGgubWF4KDIsU3RyaW5nKHRoaXMubWF4KS5sZW5ndGgpK1wiZW1cIn07aWYoaCl7dmFyIHA9dGhpcy5taW49PT10aGlzLnZhbHVlO2kucHVzaCh0aGlzLl9fZ2V0QnRuKHQse2tleTpcImJuc1wiLHN0eWxlOmQsb246e2NsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0KGUubWluKX19fSx7ZGlzYWJsZTp0aGlzLmRpc2FibGUsZmxhdDohcCx0ZXh0Q29sb3I6cD90aGlzLnRleHRDb2xvcjpudWxsLGxhYmVsOnRoaXMubWluLG5vUmlwcGxlOiEwfSkpfWlmKHUpe3ZhciBmPXRoaXMubWF4PT09dGhpcy52YWx1ZTtzLnVuc2hpZnQodGhpcy5fX2dldEJ0bih0LHtrZXk6XCJibmVcIixzdHlsZTpkLG9uOntjbGljazpmdW5jdGlvbigpe3JldHVybiBlLnNldChlLm1heCl9fX0se2Rpc2FibGU6dGhpcy5kaXNhYmxlLGZsYXQ6IWYsdGV4dENvbG9yOmY/dGhpcy50ZXh0Q29sb3I6bnVsbCxsYWJlbDp0aGlzLm1heCxub1JpcHBsZTohMH0pKX1sJiZpLnB1c2godGhpcy5fX2dldEJ0bih0LHtrZXk6XCJiZXNcIixzdHlsZTpkLG9uOntjbGljazpmdW5jdGlvbigpe3JldHVybiBlLnNldChyLTEpfX19LHtkaXNhYmxlOnRoaXMuZGlzYWJsZSxsYWJlbDpcIuKAplwifSkpLGMmJnMudW5zaGlmdCh0aGlzLl9fZ2V0QnRuKHQse2tleTpcImJlZVwiLHN0eWxlOmQsb246e2NsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0KGErMSl9fX0se2Rpc2FibGU6dGhpcy5kaXNhYmxlLGxhYmVsOlwi4oCmXCJ9KSk7Zm9yKHZhciBtPWZ1bmN0aW9uKGkpe3ZhciBzPWk9PT1lLnZhbHVlO24ucHVzaChlLl9fZ2V0QnRuKHQse2tleTpcImJwZ1wiK2ksc3R5bGU6ZCxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXQoaSl9fX0se2Rpc2FibGU6ZS5kaXNhYmxlLGZsYXQ6IXMsdGV4dENvbG9yOnM/ZS50ZXh0Q29sb3I6bnVsbCxsYWJlbDppLG5vUmlwcGxlOiEwfSkpfSxnPXI7Zzw9YTtnKyspbShnKX1yZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtcGFnaW5hdGlvbiByb3cgbm8td3JhcCBpdGVtcy1jZW50ZXJcIixjbGFzczp7ZGlzYWJsZWQ6dGhpcy5kaXNhYmxlfX0sW2ksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInJvdyBqdXN0aWZ5LWNlbnRlclwifSxbbl0pLHNdKX19LFFQYXJhbGxheD17bmFtZTpcIlFQYXJhbGxheFwiLHByb3BzOntzcmM6U3RyaW5nLGhlaWdodDp7dHlwZTpOdW1iZXIsZGVmYXVsdDo1MDB9LHNwZWVkOnt0eXBlOk51bWJlcixkZWZhdWx0OjEsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0wJiZ0PD0xfX19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57c2Nyb2xsaW5nOiExfX0sd2F0Y2g6e2hlaWdodDpmdW5jdGlvbigpe3RoaXMuX191cGRhdGVQb3MoKX19LG1ldGhvZHM6e19fb25SZXNpemU6ZnVuY3Rpb24oKXt0aGlzLnNjcm9sbFRhcmdldCYmKHRoaXMubWVkaWFIZWlnaHQ9dGhpcy5tZWRpYS5uYXR1cmFsSGVpZ2h0fHxoZWlnaHQodGhpcy5tZWRpYSksdGhpcy5fX3VwZGF0ZVBvcygpKX0sX191cGRhdGVQb3M6ZnVuY3Rpb24oKXt2YXIgdCxlLGkscztpZih0aGlzLnNjcm9sbFRhcmdldD09PXdpbmRvdz8odD0wLGk9ZT13aW5kb3cuaW5uZXJIZWlnaHQpOmk9KHQ9b2Zmc2V0KHRoaXMuc2Nyb2xsVGFyZ2V0KS50b3ApKyhlPWhlaWdodCh0aGlzLnNjcm9sbFRhcmdldCkpLChzPW9mZnNldCh0aGlzLiRlbCkudG9wKSt0aGlzLmhlaWdodD50JiZzPGkpe3ZhciBuPShpLXMpLyh0aGlzLmhlaWdodCtlKTt0aGlzLl9fc2V0UG9zKCh0aGlzLm1lZGlhSGVpZ2h0LXRoaXMuaGVpZ2h0KSpuKnRoaXMuc3BlZWQpfX0sX19zZXRQb3M6ZnVuY3Rpb24odCl7dGhpcy5tZWRpYS5zdHlsZS50cmFuc2Zvcm09XCJ0cmFuc2xhdGUzRCgtNTAlLFwiK3QrXCJweCwgMClcIn19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtcGFyYWxsYXhcIixzdHlsZTp7aGVpZ2h0OnRoaXMuaGVpZ2h0K1wicHhcIn19LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1wYXJhbGxheC1tZWRpYSBhYnNvbHV0ZS1mdWxsXCJ9LFt0aGlzLiRzbG90cy5tZWRpYXx8dChcImltZ1wiLHtyZWY6XCJtZWRpYVwiLGF0dHJzOntzcmM6dGhpcy5zcmN9fSldKSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1wYXJhbGxheC10ZXh0IGFic29sdXRlLWZ1bGwgY29sdW1uIGZsZXgtY2VudGVyIG5vLXBvaW50ZXItZXZlbnRzXCJ9LHRoaXMuJHNsb3RzLmRlZmF1bHQpXSl9LGJlZm9yZU1vdW50OmZ1bmN0aW9uKCl7dGhpcy5fX3NldFBvcz1mcmFtZURlYm91bmNlKHRoaXMuX19zZXRQb3MpfSxtb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3QubWVkaWE9dC4kc2xvdHMubWVkaWE/dC4kc2xvdHMubWVkaWFbMF0uZWxtOnQuJHJlZnMubWVkaWEsdC5tZWRpYS5vbmxvYWQ9dC5tZWRpYS5vbmxvYWRzdGFydD10Ll9fb25SZXNpemUsdC5zY3JvbGxUYXJnZXQ9Z2V0U2Nyb2xsVGFyZ2V0KHQuJGVsKSx0LnJlc2l6ZUhhbmRsZXI9ZGVib3VuY2UodC5fX29uUmVzaXplLDUwKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLHQucmVzaXplSGFuZGxlcixsaXN0ZW5PcHRzLnBhc3NpdmUpLHQuc2Nyb2xsVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIix0Ll9fdXBkYXRlUG9zLGxpc3Rlbk9wdHMucGFzc2l2ZSksdC5fX29uUmVzaXplKCl9KX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsdGhpcy5yZXNpemVIYW5kbGVyLGxpc3Rlbk9wdHMucGFzc2l2ZSksdGhpcy5zY3JvbGxUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHRoaXMuX191cGRhdGVQb3MsbGlzdGVuT3B0cy5wYXNzaXZlKSx0aGlzLm1lZGlhLm9ubG9hZD10aGlzLm1lZGlhLm9ubG9hZHN0YXJ0PW51bGx9fSxRUG9wdXBFZGl0PXtuYW1lOlwiUVBvcHVwRWRpdFwiLHByb3BzOnt2YWx1ZTp7fSxwZXJzaXN0ZW50OkJvb2xlYW4sa2VlcE9uU2NyZWVuOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMH0sdGl0bGU6U3RyaW5nLGJ1dHRvbnM6Qm9vbGVhbixsYWJlbFNldDpTdHJpbmcsbGFiZWxDYW5jZWw6U3RyaW5nLGNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSx2YWxpZGF0ZTp7dHlwZTpGdW5jdGlvbixkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuITB9fSxkaXNhYmxlOkJvb2xlYW59LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57aW5pdGlhbFZhbHVlOlwiXCJ9fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7dC4kcmVmcy5wb3BvdmVyLnJlcG9zaXRpb24oKX0pfX0sbWV0aG9kczp7Y2FuY2VsOmZ1bmN0aW9uKCl7dGhpcy5fX2hhc0NoYW5nZWQoKSYmKHRoaXMuJGVtaXQoXCJjYW5jZWxcIix0aGlzLnZhbHVlLHRoaXMuaW5pdGlhbFZhbHVlKSx0aGlzLiRlbWl0KFwiaW5wdXRcIix0aGlzLmluaXRpYWxWYWx1ZSkpLHRoaXMuJG5leHRUaWNrKHRoaXMuX19jbG9zZSl9LHNldDpmdW5jdGlvbigpe2lmKHRoaXMuX19oYXNDaGFuZ2VkKCkpe2lmKCF0aGlzLnZhbGlkYXRlKHRoaXMudmFsdWUpKXJldHVybjt0aGlzLiRlbWl0KFwic2F2ZVwiLHRoaXMudmFsdWUsdGhpcy5pbml0aWFsVmFsdWUpfXRoaXMuX19jbG9zZSgpfSxfX2hhc0NoYW5nZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy52YWx1ZSkhPT1KU09OLnN0cmluZ2lmeSh0aGlzLmluaXRpYWxWYWx1ZSl9LF9fY2xvc2U6ZnVuY3Rpb24oKXt0aGlzLnZhbGlkYXRlZD0hMCx0aGlzLiRyZWZzLnBvcG92ZXIuaGlkZSgpfSxfX2dldENvbnRlbnQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy4kc2xvdHMudGl0bGV8fHRoaXMudGl0bGU7cmV0dXJuW2UmJnQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRpdGxlIHEtbXQtc20gcS1tYi1zbVwifSxbZV0pfHx2b2lkIDBdLmNvbmNhdCh0aGlzLiRzbG90cy5kZWZhdWx0KS5jb25jYXQoW3RoaXMuYnV0dG9ucyYmdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInJvdyBqdXN0aWZ5LWNlbnRlciBuby13cmFwIHEtbXQtc21cIn0sW3QoUUJ0bix7cHJvcHM6e2ZsYXQ6ITAsY29sb3I6dGhpcy5jb2xvcixsYWJlbDp0aGlzLmxhYmVsQ2FuY2VsfHx0aGlzLiRxLmkxOG4ubGFiZWwuY2FuY2VsfSxvbjp7Y2xpY2s6dGhpcy5jYW5jZWx9fSksdChRQnRuLHtzdGF0aWNDbGFzczpcInEtbWwtc21cIixwcm9wczp7ZmxhdDohMCxjb2xvcjp0aGlzLmNvbG9yLGxhYmVsOnRoaXMubGFiZWxTZXR8fHRoaXMuJHEuaTE4bi5sYWJlbC5zZXR9LG9uOntjbGljazp0aGlzLnNldH19KV0pfHx2b2lkIDBdKX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFFQb3BvdmVyLHtzdGF0aWNDbGFzczpcInEtdGFibGUtZWRpdCBxLXB4LW1kIHEtcHktc21cIixyZWY6XCJwb3BvdmVyXCIscHJvcHM6e2NvdmVyOiEwLHBlcnNpc3RlbnQ6dGhpcy5wZXJzaXN0ZW50LGtlZXBPblNjcmVlbjp0aGlzLmtlZXBPblNjcmVlbixkaXNhYmxlOnRoaXMuZGlzYWJsZX0sb246e3Nob3c6ZnVuY3Rpb24oKXt2YXIgdD1lLiRlbC5xdWVyeVNlbGVjdG9yKFwiLnEtaW5wdXQtdGFyZ2V0Om5vdCgucS1pbnB1dC1zaGFkb3cpXCIpfHxlLiRlbC5xdWVyeVNlbGVjdG9yKFwiaW5wdXRcIil8fGUuJGVsLnF1ZXJ5U2VsZWN0b3IoXCJ0ZXh0YXJlYVwiKTt0JiZ0LmZvY3VzKCksZS4kZW1pdChcInNob3dcIiksZS5pbml0aWFsVmFsdWU9Y2xvbmUoZS52YWx1ZSksZS52YWxpZGF0ZWQ9ITF9LFwiZXNjYXBlLWtleVwiOmZ1bmN0aW9uKCl7ZS52YWxpZGF0ZWQ9ITAsZS4kZW1pdChcImNhbmNlbFwiLGUudmFsdWUsZS5pbml0aWFsVmFsdWUpLGUuJGVtaXQoXCJpbnB1dFwiLGUuaW5pdGlhbFZhbHVlKX0saGlkZTpmdW5jdGlvbigpe2UudmFsaWRhdGVkfHwoZS5fX2hhc0NoYW5nZWQoKSYmKGUudmFsaWRhdGUoZS52YWx1ZSk/ZS4kZW1pdChcInNhdmVcIixlLnZhbHVlLGUuaW5pdGlhbFZhbHVlKTooZS4kZW1pdChcImNhbmNlbFwiLGUudmFsdWUsZS5pbml0aWFsVmFsdWUpLGUuJGVtaXQoXCJpbnB1dFwiLGUuaW5pdGlhbFZhbHVlKSkpLGUuJGVtaXQoXCJoaWRlXCIpKX19LG5hdGl2ZU9uOntrZXlkb3duOmZ1bmN0aW9uKHQpezEzPT09Z2V0RXZlbnRLZXkodCkmJihlLmJ1dHRvbnM/ZS5zZXQoKTplLiRyZWZzLnBvcG92ZXIuaGlkZSgpKX19fSx0aGlzLl9fZ2V0Q29udGVudCh0KSl9fTtmdW5jdGlvbiB3aWR0aCQxKHQpe3JldHVybnt3aWR0aDp0K1wiJVwifX12YXIgUVByb2dyZXNzPXtuYW1lOlwiUVByb2dyZXNzXCIscHJvcHM6e3BlcmNlbnRhZ2U6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MH0sY29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJwcmltYXJ5XCJ9LHN0cmlwZTpCb29sZWFuLGFuaW1hdGU6Qm9vbGVhbixpbmRldGVybWluYXRlOkJvb2xlYW4sYnVmZmVyOk51bWJlcixoZWlnaHQ6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCI0cHhcIn19LGNvbXB1dGVkOnttb2RlbDpmdW5jdGlvbigpe3JldHVybiBiZXR3ZWVuKHRoaXMucGVyY2VudGFnZSwwLDEwMCl9LGJ1ZmZlck1vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIGJldHdlZW4odGhpcy5idWZmZXJ8fDAsMCwxMDAtdGhpcy5tb2RlbCl9LGJ1ZmZlclN0eWxlOmZ1bmN0aW9uKCl7cmV0dXJuIHdpZHRoJDEodGhpcy5idWZmZXJNb2RlbCl9LHRyYWNrU3R5bGU6ZnVuY3Rpb24oKXtyZXR1cm4gd2lkdGgkMSh0aGlzLmJ1ZmZlcj8xMDAtdGhpcy5idWZmZXI6MTAwKX0sY29tcHV0ZWRDbGFzczpmdW5jdGlvbigpe3JldHVyblwidGV4dC1cIit0aGlzLmNvbG9yfSxjb21wdXRlZFN0eWxlOmZ1bmN0aW9uKCl7cmV0dXJue2hlaWdodDp0aGlzLmhlaWdodH19LG1vZGVsQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm57YW5pbWF0ZTp0aGlzLmFuaW1hdGUsc3RyaXBlOnRoaXMuc3RyaXBlLGluZGV0ZXJtaW5hdGU6dGhpcy5pbmRldGVybWluYXRlfX0sbW9kZWxTdHlsZTpmdW5jdGlvbigpe3JldHVybiB3aWR0aCQxKHRoaXMubW9kZWwpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1wcm9ncmVzc1wiLHN0eWxlOnRoaXMuY29tcHV0ZWRTdHlsZSxjbGFzczp0aGlzLmNvbXB1dGVkQ2xhc3N9LFt0aGlzLmJ1ZmZlciYmIXRoaXMuaW5kZXRlcm1pbmF0ZT90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1wcm9ncmVzcy1idWZmZXJcIixzdHlsZTp0aGlzLmJ1ZmZlclN0eWxlfSk6bnVsbCx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1wcm9ncmVzcy10cmFja1wiLHN0eWxlOnRoaXMudHJhY2tTdHlsZX0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXByb2dyZXNzLW1vZGVsXCIsc3R5bGU6dGhpcy5tb2RlbFN0eWxlLGNsYXNzOnRoaXMubW9kZWxDbGFzc30pXSl9fSxoZWlnaHQkMT0tNjUsUVB1bGxUb1JlZnJlc2g9e25hbWU6XCJRUHVsbFRvUmVmcmVzaFwiLGRpcmVjdGl2ZXM6e1RvdWNoUGFuOlRvdWNoUGFufSxwcm9wczp7aGFuZGxlcjp7dHlwZTpGdW5jdGlvbixyZXF1aXJlZDohMH0sY29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJwcmltYXJ5XCJ9LGRpc3RhbmNlOnt0eXBlOk51bWJlcixkZWZhdWx0OjM1fSxwdWxsTWVzc2FnZTpTdHJpbmcscmVsZWFzZU1lc3NhZ2U6U3RyaW5nLHJlZnJlc2hNZXNzYWdlOlN0cmluZyxyZWZyZXNoSWNvbjpTdHJpbmcsaW5saW5lOkJvb2xlYW4sZGlzYWJsZTpCb29sZWFufSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3N0YXRlOlwicHVsbFwiLHB1bGxQb3NpdGlvbjpoZWlnaHQkMSxhbmltYXRpbmc6ITEscHVsbGluZzohMSxzY3JvbGxpbmc6ITF9fSx3YXRjaDp7aW5saW5lOmZ1bmN0aW9uKHQpe3RoaXMuc2V0U2Nyb2xsQ29udGFpbmVyKHQpfX0sY29tcHV0ZWQ6e21lc3NhZ2U6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5zdGF0ZSl7Y2FzZVwicHVsbGVkXCI6cmV0dXJuIHRoaXMucmVsZWFzZU1lc3NhZ2V8fHRoaXMuJHEuaTE4bi5wdWxsVG9SZWZyZXNoLnJlbGVhc2U7Y2FzZVwicmVmcmVzaGluZ1wiOnJldHVybiB0aGlzLnJlZnJlc2hNZXNzYWdlfHx0aGlzLiRxLmkxOG4ucHVsbFRvUmVmcmVzaC5yZWZyZXNoO2Nhc2VcInB1bGxcIjpkZWZhdWx0OnJldHVybiB0aGlzLnB1bGxNZXNzYWdlfHx0aGlzLiRxLmkxOG4ucHVsbFRvUmVmcmVzaC5wdWxsfX0sc3R5bGU6ZnVuY3Rpb24oKXtyZXR1cm57dHJhbnNmb3JtOlwidHJhbnNsYXRlWShcIit0aGlzLnB1bGxQb3NpdGlvbitcInB4KVwiLG1hcmdpbkJvdHRvbTpoZWlnaHQkMStcInB4XCJ9fSxtZXNzYWdlQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm5cInRleHQtXCIrdGhpcy5jb2xvcn19LG1ldGhvZHM6e19fcHVsbDpmdW5jdGlvbih0KXtpZighdGhpcy5kaXNhYmxlKXtpZih0LmlzRmluYWwpcmV0dXJuIHRoaXMuc2Nyb2xsaW5nPSExLHRoaXMucHVsbGluZz0hMSx2b2lkKFwicHVsbGVkXCI9PT10aGlzLnN0YXRlPyh0aGlzLnN0YXRlPVwicmVmcmVzaGluZ1wiLHRoaXMuX19hbmltYXRlVG8oMCksdGhpcy50cmlnZ2VyKCkpOlwicHVsbFwiPT09dGhpcy5zdGF0ZSYmdGhpcy5fX2FuaW1hdGVUbyhoZWlnaHQkMSkpO2lmKHRoaXMuYW5pbWF0aW5nfHx0aGlzLnNjcm9sbGluZ3x8XCJyZWZyZXNoaW5nXCI9PT10aGlzLnN0YXRlKXJldHVybiEwO3ZhciBlPWdldFNjcm9sbFBvc2l0aW9uKHRoaXMuc2Nyb2xsQ29udGFpbmVyKTtpZigwIT09ZXx8MD09PWUmJlwiZG93blwiIT09dC5kaXJlY3Rpb24pcmV0dXJuIHRoaXMuc2Nyb2xsaW5nPSEwLHRoaXMucHVsbGluZyYmKHRoaXMucHVsbGluZz0hMSx0aGlzLnN0YXRlPVwicHVsbFwiLHRoaXMuX19hbmltYXRlVG8oaGVpZ2h0JDEpKSwhMDt0LmV2dC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMucHVsbGluZz0hMCx0aGlzLnB1bGxQb3NpdGlvbj1oZWlnaHQkMStNYXRoLm1heCgwLE1hdGgucG93KHQuZGlzdGFuY2UueSwuODUpKSx0aGlzLnN0YXRlPXRoaXMucHVsbFBvc2l0aW9uPnRoaXMuZGlzdGFuY2U/XCJwdWxsZWRcIjpcInB1bGxcIn19LF9fYW5pbWF0ZVRvOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz10aGlzOyFpJiZ0aGlzLmFuaW1hdGlvbklkJiZjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLmFuaW1hdGluZyksdGhpcy5wdWxsUG9zaXRpb24tPSh0aGlzLnB1bGxQb3NpdGlvbi10KS83LHRoaXMucHVsbFBvc2l0aW9uLXQ+MT90aGlzLmFuaW1hdGluZz1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtzLl9fYW5pbWF0ZVRvKHQsZSwhMCl9KTp0aGlzLmFuaW1hdGluZz1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtzLnB1bGxQb3NpdGlvbj10LHMuYW5pbWF0aW5nPSExLGUmJmUoKX0pfSx0cmlnZ2VyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLmhhbmRsZXIoZnVuY3Rpb24oKXt0Ll9fYW5pbWF0ZVRvKGhlaWdodCQxLGZ1bmN0aW9uKCl7dC5zdGF0ZT1cInB1bGxcIn0pfSl9LHNldFNjcm9sbENvbnRhaW5lcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7ZS5zY3JvbGxDb250YWluZXI9dD9lLiRlbC5wYXJlbnROb2RlOmdldFNjcm9sbFRhcmdldChlLiRlbCl9KX19LG1vdW50ZWQ6ZnVuY3Rpb24oKXt0aGlzLnNldFNjcm9sbENvbnRhaW5lcih0aGlzLmlubGluZSl9LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInB1bGwtdG8tcmVmcmVzaCBvdmVyZmxvdy1oaWRkZW4teVwifSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInB1bGwtdG8tcmVmcmVzaC1jb250YWluZXJcIixzdHlsZTp0aGlzLnN0eWxlLGRpcmVjdGl2ZXM6dGhpcy5kaXNhYmxlP251bGw6W3tuYW1lOlwidG91Y2gtcGFuXCIsbW9kaWZpZXJzOnt2ZXJ0aWNhbDohMCxtaWdodFByZXZlbnQ6ITB9LHZhbHVlOnRoaXMuX19wdWxsfV19LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicHVsbC10by1yZWZyZXNoLW1lc3NhZ2Ugcm93IGZsZXgtY2VudGVyXCIsY2xhc3M6dGhpcy5tZXNzYWdlQ2xhc3N9LFt0KFFJY29uLHtjbGFzczp7XCJyb3RhdGUtMTgwXCI6XCJwdWxsZWRcIj09PXRoaXMuc3RhdGV9LHByb3BzOntuYW1lOnRoaXMuJHEuaWNvbi5wdWxsVG9SZWZyZXNoLmFycm93fSxkaXJlY3RpdmVzOlt7bmFtZTpcInNob3dcIix2YWx1ZTpcInJlZnJlc2hpbmdcIiE9PXRoaXMuc3RhdGV9XX0pLHQoUUljb24se3N0YXRpY0NsYXNzOlwiYW5pbWF0ZS1zcGluXCIscHJvcHM6e25hbWU6dGhpcy5yZWZyZXNoSWNvbnx8dGhpcy4kcS5pY29uLnB1bGxUb1JlZnJlc2gucmVmcmVzaH0sZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIsdmFsdWU6XCJyZWZyZXNoaW5nXCI9PT10aGlzLnN0YXRlfV19KSxcIiBcIit0aGlzLm1lc3NhZ2VdKSx0aGlzLiRzbG90cy5kZWZhdWx0XSldKX19LGRyYWdUeXBlPXtNSU46MCxSQU5HRToxLE1BWDoyfSxRUmFuZ2U9e25hbWU6XCJRUmFuZ2VcIixtaXhpbnM6W1NsaWRlck1peGluXSxwcm9wczp7dmFsdWU6e3R5cGU6T2JqZWN0LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm57bWluOjAsbWF4OjB9fSx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuIHQuaGFzT3duUHJvcGVydHkoXCJtaW5cIikmJnQuaGFzT3duUHJvcGVydHkoXCJtYXhcIil9fSxkcmFnUmFuZ2U6Qm9vbGVhbixkcmFnT25seVJhbmdlOkJvb2xlYW4sbGVmdExhYmVsQ29sb3I6U3RyaW5nLGxlZnRMYWJlbFZhbHVlOlN0cmluZyxyaWdodExhYmVsQ29sb3I6U3RyaW5nLHJpZ2h0TGFiZWxWYWx1ZTpTdHJpbmd9LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57bW9kZWw6T2JqZWN0LmFzc2lnbih7fSx0aGlzLnZhbHVlKSxkcmFnZ2luZzohMSxjdXJyZW50TWluUGVyY2VudGFnZToodGhpcy52YWx1ZS5taW4tdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbiksY3VycmVudE1heFBlcmNlbnRhZ2U6KHRoaXMudmFsdWUubWF4LXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pfX0sY29tcHV0ZWQ6e3BlcmNlbnRhZ2VNaW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zbmFwPyh0aGlzLm1vZGVsLm1pbi10aGlzLm1pbikvKHRoaXMubWF4LXRoaXMubWluKTp0aGlzLmN1cnJlbnRNaW5QZXJjZW50YWdlfSxwZXJjZW50YWdlTWF4OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc25hcD8odGhpcy5tb2RlbC5tYXgtdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbik6dGhpcy5jdXJyZW50TWF4UGVyY2VudGFnZX0sYWN0aXZlVHJhY2tXaWR0aDpmdW5jdGlvbigpe3JldHVybiAxMDAqKHRoaXMucGVyY2VudGFnZU1heC10aGlzLnBlcmNlbnRhZ2VNaW4pK1wiJVwifSxsZWZ0RGlzcGxheVZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMubGVmdExhYmVsVmFsdWU/dGhpcy5sZWZ0TGFiZWxWYWx1ZTp0aGlzLm1vZGVsLm1pbn0scmlnaHREaXNwbGF5VmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5yaWdodExhYmVsVmFsdWU/dGhpcy5yaWdodExhYmVsVmFsdWU6dGhpcy5tb2RlbC5tYXh9LGxlZnRUb29sdGlwQ29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZWZ0TGFiZWxDb2xvcnx8dGhpcy5sYWJlbENvbG9yfSxyaWdodFRvb2x0aXBDb2xvcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpZ2h0TGFiZWxDb2xvcnx8dGhpcy5sYWJlbENvbG9yfX0sd2F0Y2g6e1widmFsdWUubWluXCI6ZnVuY3Rpb24odCl7dGhpcy5tb2RlbC5taW49dH0sXCJ2YWx1ZS5tYXhcIjpmdW5jdGlvbih0KXt0aGlzLm1vZGVsLm1heD10fSxcIm1vZGVsLm1pblwiOmZ1bmN0aW9uKHQpe3RoaXMuZHJhZ2dpbmd8fCh0PnRoaXMubW9kZWwubWF4JiYodD10aGlzLm1vZGVsLm1heCksdGhpcy5jdXJyZW50TWluUGVyY2VudGFnZT0odC10aGlzLm1pbikvKHRoaXMubWF4LXRoaXMubWluKSl9LFwibW9kZWwubWF4XCI6ZnVuY3Rpb24odCl7dGhpcy5kcmFnZ2luZ3x8KHQ8dGhpcy5tb2RlbC5taW4mJih0PXRoaXMubW9kZWwubWluKSx0aGlzLmN1cnJlbnRNYXhQZXJjZW50YWdlPSh0LXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pKX0sbWluOmZ1bmN0aW9uKHQpe3RoaXMubW9kZWwubWluPHQmJnRoaXMuX191cGRhdGUoe21pbjp0fSksdGhpcy5tb2RlbC5tYXg8dCYmdGhpcy5fX3VwZGF0ZSh7bWF4OnR9KSx0aGlzLiRuZXh0VGljayh0aGlzLl9fdmFsaWRhdGVQcm9wcyl9LG1heDpmdW5jdGlvbih0KXt0aGlzLm1vZGVsLm1pbj50JiZ0aGlzLl9fdXBkYXRlKHttaW46dH0pLHRoaXMubW9kZWwubWF4PnQmJnRoaXMuX191cGRhdGUoe21heDp0fSksdGhpcy4kbmV4dFRpY2sodGhpcy5fX3ZhbGlkYXRlUHJvcHMpfSxzdGVwOmZ1bmN0aW9uKCl7dGhpcy4kbmV4dFRpY2sodGhpcy5fX3ZhbGlkYXRlUHJvcHMpfX0sbWV0aG9kczp7X19nZXREcmFnZ2luZzpmdW5jdGlvbih0KXt2YXIgZSxpPXRoaXMuJHJlZnMuaGFuZGxlLHM9aS5vZmZzZXRXaWR0aCxuPSh0aGlzLmRyYWdPbmx5UmFuZ2U/LTE6MSkqdGhpcy4kcmVmcy5oYW5kbGVNaW4ub2Zmc2V0V2lkdGgvKDIqcyksbz17bGVmdDppLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQsd2lkdGg6cyx2YWx1ZU1pbjp0aGlzLm1vZGVsLm1pbix2YWx1ZU1heDp0aGlzLm1vZGVsLm1heCxwZXJjZW50YWdlTWluOnRoaXMuY3VycmVudE1pblBlcmNlbnRhZ2UscGVyY2VudGFnZU1heDp0aGlzLmN1cnJlbnRNYXhQZXJjZW50YWdlfSxyPWdldFBlcmNlbnRhZ2UodCxvLHRoaXMuJHEuaTE4bi5ydGwpO3JldHVybiByPHRoaXMuY3VycmVudE1pblBlcmNlbnRhZ2Urbj9lPWRyYWdUeXBlLk1JTjpyPHRoaXMuY3VycmVudE1heFBlcmNlbnRhZ2Utbj90aGlzLmRyYWdSYW5nZXx8dGhpcy5kcmFnT25seVJhbmdlPyhlPWRyYWdUeXBlLlJBTkdFLE9iamVjdC5hc3NpZ24obyx7b2Zmc2V0UGVyY2VudGFnZTpyLG9mZnNldE1vZGVsOmdldE1vZGVsKHIsdGhpcy5taW4sdGhpcy5tYXgsdGhpcy5zdGVwLHRoaXMuY29tcHV0ZWREZWNpbWFscykscmFuZ2VWYWx1ZTpvLnZhbHVlTWF4LW8udmFsdWVNaW4scmFuZ2VQZXJjZW50YWdlOnRoaXMuY3VycmVudE1heFBlcmNlbnRhZ2UtdGhpcy5jdXJyZW50TWluUGVyY2VudGFnZX0pKTplPXRoaXMuY3VycmVudE1heFBlcmNlbnRhZ2UtcjxyLXRoaXMuY3VycmVudE1pblBlcmNlbnRhZ2U/ZHJhZ1R5cGUuTUFYOmRyYWdUeXBlLk1JTjplPWRyYWdUeXBlLk1BWCwoIXRoaXMuZHJhZ09ubHlSYW5nZXx8ZT09PWRyYWdUeXBlLlJBTkdFKSYmKG8udHlwZT1lLG8pfSxfX21vdmU6ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT10aGlzLmRyYWdnaW5nKTt2YXIgaSxzPWdldFBlcmNlbnRhZ2UodCxlLHRoaXMuJHEuaTE4bi5ydGwpLG49Z2V0TW9kZWwocyx0aGlzLm1pbix0aGlzLm1heCx0aGlzLnN0ZXAsdGhpcy5jb21wdXRlZERlY2ltYWxzKTtzd2l0Y2goZS50eXBlKXtjYXNlIGRyYWdUeXBlLk1JTjppPXM8PWUucGVyY2VudGFnZU1heD97bWluUDpzLG1heFA6ZS5wZXJjZW50YWdlTWF4LG1pbjpuLG1heDplLnZhbHVlTWF4fTp7bWluUDplLnBlcmNlbnRhZ2VNYXgsbWF4UDpzLG1pbjplLnZhbHVlTWF4LG1heDpufTticmVhaztjYXNlIGRyYWdUeXBlLk1BWDppPXM+PWUucGVyY2VudGFnZU1pbj97bWluUDplLnBlcmNlbnRhZ2VNaW4sbWF4UDpzLG1pbjplLnZhbHVlTWluLG1heDpufTp7bWluUDpzLG1heFA6ZS5wZXJjZW50YWdlTWluLG1pbjpuLG1heDplLnZhbHVlTWlufTticmVhaztjYXNlIGRyYWdUeXBlLlJBTkdFOnZhciBvPXMtZS5vZmZzZXRQZXJjZW50YWdlLHI9YmV0d2VlbihlLnBlcmNlbnRhZ2VNaW4rbywwLDEtZS5yYW5nZVBlcmNlbnRhZ2UpLGE9bi1lLm9mZnNldE1vZGVsLGw9YmV0d2VlbihlLnZhbHVlTWluK2EsdGhpcy5taW4sdGhpcy5tYXgtZS5yYW5nZVZhbHVlKTtpPXttaW5QOnIsbWF4UDpyK2UucmFuZ2VQZXJjZW50YWdlLG1pbjpwYXJzZUZsb2F0KGwudG9GaXhlZCh0aGlzLmNvbXB1dGVkRGVjaW1hbHMpKSxtYXg6cGFyc2VGbG9hdCgobCtlLnJhbmdlVmFsdWUpLnRvRml4ZWQodGhpcy5jb21wdXRlZERlY2ltYWxzKSl9fXRoaXMuY3VycmVudE1pblBlcmNlbnRhZ2U9aS5taW5QLHRoaXMuY3VycmVudE1heFBlcmNlbnRhZ2U9aS5tYXhQLHRoaXMubW9kZWw9e21pbjppLm1pbixtYXg6aS5tYXh9fSxfX2VuZDpmdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXRoaXMuZHJhZ2dpbmcpLHRoaXMuX19tb3ZlKHQsZSksdGhpcy5jdXJyZW50TWluUGVyY2VudGFnZT0odGhpcy5tb2RlbC5taW4tdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbiksdGhpcy5jdXJyZW50TWF4UGVyY2VudGFnZT0odGhpcy5tb2RlbC5tYXgtdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbil9LF9fb25LZXlEb3duOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dC5rZXlDb2RlO2lmKHRoaXMuZWRpdGFibGUmJlszNyw0MCwzOSwzOF0uaW5jbHVkZXMoaSkpe3N0b3BBbmRQcmV2ZW50KHQpO3ZhciBzPXRoaXMuY29tcHV0ZWREZWNpbWFscyxuPXQuY3RybEtleT8xMCp0aGlzLmNvbXB1dGVkU3RlcDp0aGlzLmNvbXB1dGVkU3RlcCxvPVszNyw0MF0uaW5jbHVkZXMoaSk/LW46bixyPXM/cGFyc2VGbG9hdCgodGhpcy5tb2RlbFtlXStvKS50b0ZpeGVkKHMpKTp0aGlzLm1vZGVsW2VdK287dGhpcy5tb2RlbFtlXT1iZXR3ZWVuKHIsXCJtaW5cIj09PWU/dGhpcy5taW46dGhpcy5tb2RlbC5taW4sXCJtYXhcIj09PWU/dGhpcy5tYXg6dGhpcy5tb2RlbC5tYXgpLHRoaXMuY3VycmVudE1pblBlcmNlbnRhZ2U9KHRoaXMubW9kZWwubWluLXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pLHRoaXMuY3VycmVudE1heFBlcmNlbnRhZ2U9KHRoaXMubW9kZWwubWF4LXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pLHRoaXMuX191cGRhdGUoKX19LF9fb25LZXlVcDpmdW5jdGlvbih0LGUpe3ZhciBpPXQua2V5Q29kZTt0aGlzLmVkaXRhYmxlJiZbMzcsNDAsMzksMzhdLmluY2x1ZGVzKGkpJiZ0aGlzLl9fdXBkYXRlKCEwKX0sX192YWxpZGF0ZVByb3BzOmZ1bmN0aW9uKCl7dGhpcy5taW4+PXRoaXMubWF4P2NvbnNvbGUuZXJyb3IoXCJSYW5nZSBlcnJvcjogbWluID49IG1heFwiLHRoaXMuJGVsLHRoaXMubWluLHRoaXMubWF4KTpub3REaXZpZGVzKCh0aGlzLm1heC10aGlzLm1pbikvdGhpcy5zdGVwLHRoaXMuY29tcHV0ZWREZWNpbWFscyk/Y29uc29sZS5lcnJvcihcIlJhbmdlIGVycm9yOiBzdGVwIG11c3QgYmUgYSBkaXZpc29yIG9mIG1heCAtIG1pblwiLHRoaXMubWluLHRoaXMubWF4LHRoaXMuc3RlcCk6bm90RGl2aWRlcygodGhpcy5tb2RlbC5taW4tdGhpcy5taW4pL3RoaXMuc3RlcCx0aGlzLmNvbXB1dGVkRGVjaW1hbHMpP2NvbnNvbGUuZXJyb3IoXCJSYW5nZSBlcnJvcjogc3RlcCBtdXN0IGJlIGEgZGl2aXNvciBvZiBpbml0aWFsIHZhbHVlLm1pbiAtIG1pblwiLHRoaXMubW9kZWwubWluLHRoaXMubWluLHRoaXMuc3RlcCk6bm90RGl2aWRlcygodGhpcy5tb2RlbC5tYXgtdGhpcy5taW4pL3RoaXMuc3RlcCx0aGlzLmNvbXB1dGVkRGVjaW1hbHMpJiZjb25zb2xlLmVycm9yKFwiUmFuZ2UgZXJyb3I6IHN0ZXAgbXVzdCBiZSBhIGRpdmlzb3Igb2YgaW5pdGlhbCB2YWx1ZS5tYXggLSBtaW5cIix0aGlzLm1vZGVsLm1heCx0aGlzLm1heCx0aGlzLnN0ZXApfSxfX2dldEhhbmRsZTpmdW5jdGlvbih0LGUsaSxzLG4sbyxyKXt2YXIgYSxsPXRoaXM7cmV0dXJuIHQoXCJkaXZcIix7cmVmOlwiaGFuZGxlXCIraSxzdGF0aWNDbGFzczpcInEtc2xpZGVyLWhhbmRsZSBxLXNsaWRlci1oYW5kbGUtXCIrZSxzdHlsZTooYT17fSxhW3RoaXMuJHEuaTE4bi5ydGw/XCJyaWdodFwiOlwibGVmdFwiXT0xMDAqbitcIiVcIixhLmJvcmRlclJhZGl1cz10aGlzLnNxdWFyZT9cIjBcIjpcIjUwJVwiLGEpLGNsYXNzOltzP1wiaGFuZGxlLWF0LW1pbmltdW1cIjpudWxsLHtkcmFnZ2luZzp0aGlzLmRyYWdnaW5nfV0sYXR0cnM6e3RhYmluZGV4OnRoaXMuJHEucGxhdGZvcm0uaXMuZGVza3RvcD90aGlzLmVkaXRhYmxlPzA6LTE6dm9pZCAwfSxvbjp7a2V5ZG93bjpmdW5jdGlvbih0KXtyZXR1cm4gbC5fX29uS2V5RG93bih0LGUpfSxrZXl1cDpmdW5jdGlvbih0KXtyZXR1cm4gbC5fX29uS2V5VXAodCxlKX19fSxbdGhpcy5sYWJlbHx8dGhpcy5sYWJlbEFsd2F5cz90KFFDaGlwLHtwcm9wczp7cG9pbnRpbmc6XCJkb3duXCIsc3F1YXJlOiEwLGRlbnNlOiEwLGNvbG9yOm99LHN0YXRpY0NsYXNzOlwicS1zbGlkZXItbGFiZWwgbm8tcG9pbnRlci1ldmVudHNcIixjbGFzczp7XCJsYWJlbC1hbHdheXNcIjp0aGlzLmxhYmVsQWx3YXlzfX0sW3JdKTpudWxsLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXNsaWRlci1yaW5nXCJ9KV0pfSxfX2dldENvbnRlbnQ6ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXNsaWRlci10cmFjayBhY3RpdmUtdHJhY2tcIixzdHlsZTooZT17fSxlW3RoaXMuJHEuaTE4bi5ydGw/XCJyaWdodFwiOlwibGVmdFwiXT0xMDAqdGhpcy5wZXJjZW50YWdlTWluK1wiJVwiLGUud2lkdGg9dGhpcy5hY3RpdmVUcmFja1dpZHRoLGUpLGNsYXNzOntkcmFnZ2luZzp0aGlzLmRyYWdnaW5nLFwidHJhY2stZHJhZ2dhYmxlXCI6dGhpcy5kcmFnUmFuZ2V8fHRoaXMuZHJhZ09ubHlSYW5nZX19KSx0aGlzLl9fZ2V0SGFuZGxlKHQsXCJtaW5cIixcIk1pblwiLCF0aGlzLmZpbGxIYW5kbGVBbHdheXMmJnRoaXMubW9kZWwubWluPT09dGhpcy5taW4sdGhpcy5wZXJjZW50YWdlTWluLHRoaXMubGVmdFRvb2x0aXBDb2xvcix0aGlzLmxlZnREaXNwbGF5VmFsdWUpLHRoaXMuX19nZXRIYW5kbGUodCxcIm1heFwiLFwiTWF4XCIsITEsdGhpcy5wZXJjZW50YWdlTWF4LHRoaXMucmlnaHRUb29sdGlwQ29sb3IsdGhpcy5yaWdodERpc3BsYXlWYWx1ZSldfX19LFFSYXRpbmc9e25hbWU6XCJRUmF0aW5nXCIscHJvcHM6e3ZhbHVlOk51bWJlcixtYXg6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6NX0saWNvbjpTdHJpbmcsY29sb3I6U3RyaW5nLHNpemU6U3RyaW5nLHJlYWRvbmx5OkJvb2xlYW4sZGlzYWJsZTpCb29sZWFufSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue21vdXNlTW9kZWw6MH19LGNvbXB1dGVkOnttb2RlbDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9LHNldDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuJGVtaXQoXCJpbnB1dFwiLHQpLHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7SlNPTi5zdHJpbmdpZnkodCkhPT1KU09OLnN0cmluZ2lmeShlLnZhbHVlKSYmZS4kZW1pdChcImNoYW5nZVwiLHQpfSl9fSxlZGl0YWJsZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLnJlYWRvbmx5JiYhdGhpcy5kaXNhYmxlfSxjbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuZGlzYWJsZSYmdC5wdXNoKFwiZGlzYWJsZWRcIiksdGhpcy5lZGl0YWJsZSYmdC5wdXNoKFwiZWRpdGFibGVcIiksdGhpcy5jb2xvciYmdC5wdXNoKFwidGV4dC1cIit0aGlzLmNvbG9yKSx0fX0sbWV0aG9kczp7c2V0OmZ1bmN0aW9uKHQpe2lmKHRoaXMuZWRpdGFibGUpe3ZhciBlPWJldHdlZW4ocGFyc2VJbnQodCwxMCksMSx0aGlzLm1heCk7dGhpcy5tb2RlbD10aGlzLm1vZGVsPT09ZT8wOmUsdGhpcy5tb3VzZU1vZGVsPTB9fSxfX3NldEhvdmVyVmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5lZGl0YWJsZSYmKHRoaXMubW91c2VNb2RlbD10KX19LHJlbmRlcjpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcyxpPVtdLHM9dGhpcy5lZGl0YWJsZT8wOi0xLG49ZnVuY3Rpb24obil7aS5wdXNoKHQoXCJzcGFuXCIse2tleTpuLHJlZjpcInJ0XCIrbixhdHRyczp7dGFiaW5kZXg6c30sb246e2tleWRvd246ZnVuY3Rpb24odCl7c3dpdGNoKGdldEV2ZW50S2V5KHQpKXtjYXNlIDEzOmNhc2UgMzI6cmV0dXJuIGUuc2V0KG4pLHN0b3BBbmRQcmV2ZW50KHQpO2Nhc2UgMzc6Y2FzZSA0MDpyZXR1cm4gZS4kcmVmc1tcInJ0XCIrKG4tMSldJiZlLiRyZWZzW1wicnRcIisobi0xKV0uZm9jdXMoKSxzdG9wQW5kUHJldmVudCh0KTtjYXNlIDM5OmNhc2UgMzg6cmV0dXJuIGUuJHJlZnNbXCJydFwiKyhuKzEpXSYmZS4kcmVmc1tcInJ0XCIrKG4rMSldLmZvY3VzKCksc3RvcEFuZFByZXZlbnQodCl9fX19LFt0KFFJY29uLHtwcm9wczp7bmFtZTplLmljb258fGUuJHEuaWNvbi5yYXRpbmcuaWNvbn0sY2xhc3M6e2FjdGl2ZTohZS5tb3VzZU1vZGVsJiZlLm1vZGVsPj1ufHxlLm1vdXNlTW9kZWwmJmUubW91c2VNb2RlbD49bixleHNlbGVjdGVkOmUubW91c2VNb2RlbCYmZS5tb2RlbD49biYmZS5tb3VzZU1vZGVsPG4saG92ZXJlZDplLm1vdXNlTW9kZWw9PT1ufSxhdHRyczp7dGFiaW5kZXg6LTF9LG5hdGl2ZU9uOntjbGljazpmdW5jdGlvbigpe3JldHVybiBlLnNldChuKX0sbW91c2VvdmVyOmZ1bmN0aW9uKCl7cmV0dXJuIGUuX19zZXRIb3ZlclZhbHVlKG4pfSxtb3VzZW91dDpmdW5jdGlvbigpe2UubW91c2VNb2RlbD0wfSxmb2N1czpmdW5jdGlvbigpe3JldHVybiBlLl9fc2V0SG92ZXJWYWx1ZShuKX0sYmx1cjpmdW5jdGlvbigpe2UubW91c2VNb2RlbD0wfX19KV0pKX0sbz0xO288PXRoaXMubWF4O28rKyluKG8pO3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1yYXRpbmcgcm93IGlubGluZSBpdGVtcy1jZW50ZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsc3R5bGU6dGhpcy5zaXplP1wiZm9udC1zaXplOiBcIit0aGlzLnNpemU6XCJcIn0saSl9fSxRU2Nyb2xsQXJlYT17bmFtZTpcIlFTY3JvbGxBcmVhXCIsZGlyZWN0aXZlczp7VG91Y2hQYW46VG91Y2hQYW59LHByb3BzOnt0aHVtYlN0eWxlOnt0eXBlOk9iamVjdCxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJue319fSxjb250ZW50U3R5bGU6e3R5cGU6T2JqZWN0LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm57fX19LGNvbnRlbnRBY3RpdmVTdHlsZTp7dHlwZTpPYmplY3QsZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybnt9fX0sZGVsYXk6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MWUzfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybnthY3RpdmU6ITEsaG92ZXI6ITEsY29udGFpbmVySGVpZ2h0OjAsc2Nyb2xsUG9zaXRpb246MCxzY3JvbGxIZWlnaHQ6MH19LGNvbXB1dGVkOnt0aHVtYkhpZGRlbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNjcm9sbEhlaWdodDw9dGhpcy5jb250YWluZXJIZWlnaHR8fCF0aGlzLmFjdGl2ZSYmIXRoaXMuaG92ZXJ9LHRodW1iSGVpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgucm91bmQoYmV0d2Vlbih0aGlzLmNvbnRhaW5lckhlaWdodCp0aGlzLmNvbnRhaW5lckhlaWdodC90aGlzLnNjcm9sbEhlaWdodCw1MCx0aGlzLmNvbnRhaW5lckhlaWdodCkpfSxzdHlsZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuc2Nyb2xsUGVyY2VudGFnZSoodGhpcy5jb250YWluZXJIZWlnaHQtdGhpcy50aHVtYkhlaWdodCk7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sdGhpcy50aHVtYlN0eWxlLHt0b3A6dCtcInB4XCIsaGVpZ2h0OnRoaXMudGh1bWJIZWlnaHQrXCJweFwifSl9LG1haW5TdHlsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRodW1iSGlkZGVuP3RoaXMuY29udGVudFN0eWxlOnRoaXMuY29udGVudEFjdGl2ZVN0eWxlfSxzY3JvbGxQZXJjZW50YWdlOmZ1bmN0aW9uKCl7dmFyIHQ9YmV0d2Vlbih0aGlzLnNjcm9sbFBvc2l0aW9uLyh0aGlzLnNjcm9sbEhlaWdodC10aGlzLmNvbnRhaW5lckhlaWdodCksMCwxKTtyZXR1cm4gTWF0aC5yb3VuZCgxZTQqdCkvMWU0fX0sbWV0aG9kczp7c2V0U2Nyb2xsUG9zaXRpb246ZnVuY3Rpb24odCxlKXtzZXRTY3JvbGxQb3NpdGlvbih0aGlzLiRyZWZzLnRhcmdldCx0LGUpfSxfX3VwZGF0ZUNvbnRhaW5lcjpmdW5jdGlvbih0KXt2YXIgZT10LmhlaWdodDt0aGlzLmNvbnRhaW5lckhlaWdodCE9PWUmJih0aGlzLmNvbnRhaW5lckhlaWdodD1lLHRoaXMuX19zZXRBY3RpdmUoITAsITApKX0sX191cGRhdGVTY3JvbGw6ZnVuY3Rpb24odCl7dmFyIGU9dC5wb3NpdGlvbjt0aGlzLnNjcm9sbFBvc2l0aW9uIT09ZSYmKHRoaXMuc2Nyb2xsUG9zaXRpb249ZSx0aGlzLl9fc2V0QWN0aXZlKCEwLCEwKSl9LF9fdXBkYXRlU2Nyb2xsSGVpZ2h0OmZ1bmN0aW9uKHQpe3ZhciBlPXQuaGVpZ2h0O3RoaXMuc2Nyb2xsSGVpZ2h0IT09ZSYmKHRoaXMuc2Nyb2xsSGVpZ2h0PWUsdGhpcy5fX3NldEFjdGl2ZSghMCwhMCkpfSxfX3BhblRodW1iOmZ1bmN0aW9uKHQpe3QuaXNGaXJzdCYmKHRoaXMucmVmUG9zPXRoaXMuc2Nyb2xsUG9zaXRpb24sdGhpcy5fX3NldEFjdGl2ZSghMCwhMCksZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFwibm9uLXNlbGVjdGFibGVcIiksZG9jdW1lbnQuc2VsZWN0aW9uP2RvY3VtZW50LnNlbGVjdGlvbi5lbXB0eSgpOndpbmRvdy5nZXRTZWxlY3Rpb24mJndpbmRvdy5nZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKSksdC5pc0ZpbmFsJiYodGhpcy5fX3NldEFjdGl2ZSghMSksZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFwibm9uLXNlbGVjdGFibGVcIikpO3ZhciBlPSh0aGlzLnNjcm9sbEhlaWdodC10aGlzLmNvbnRhaW5lckhlaWdodCkvKHRoaXMuY29udGFpbmVySGVpZ2h0LXRoaXMudGh1bWJIZWlnaHQpO3RoaXMuJHJlZnMudGFyZ2V0LnNjcm9sbFRvcD10aGlzLnJlZlBvcysoXCJkb3duXCI9PT10LmRpcmVjdGlvbj8xOi0xKSp0LmRpc3RhbmNlLnkqZX0sX19wYW5Db250YWluZXI6ZnVuY3Rpb24odCl7dC5pc0ZpcnN0JiYodGhpcy5yZWZQb3M9dGhpcy5zY3JvbGxQb3NpdGlvbix0aGlzLl9fc2V0QWN0aXZlKCEwLCEwKSksdC5pc0ZpbmFsJiZ0aGlzLl9fc2V0QWN0aXZlKCExKTt2YXIgZT10aGlzLnJlZlBvcysoXCJkb3duXCI9PT10LmRpcmVjdGlvbj8tMToxKSp0LmRpc3RhbmNlLnk7dGhpcy4kcmVmcy50YXJnZXQuc2Nyb2xsVG9wPWUsZT4wJiZlK3RoaXMuY29udGFpbmVySGVpZ2h0PHRoaXMuc2Nyb2xsSGVpZ2h0JiZ0LmV2dC5wcmV2ZW50RGVmYXVsdCgpfSxfX21vdXNlV2hlZWw6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy4kcmVmcy50YXJnZXQ7ZS5zY3JvbGxUb3ArPWdldE1vdXNlV2hlZWxEaXN0YW5jZSh0KS55LGUuc2Nyb2xsVG9wPjAmJmUuc2Nyb2xsVG9wK3RoaXMuY29udGFpbmVySGVpZ2h0PHRoaXMuc2Nyb2xsSGVpZ2h0JiZ0LnByZXZlbnREZWZhdWx0KCl9LF9fc2V0QWN0aXZlOmZ1bmN0aW9uKHQsZSl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHQhPT10aGlzLmFjdGl2ZT90Pyh0aGlzLmFjdGl2ZT0hMCxlJiZ0aGlzLl9fc3RhcnRUaW1lcigpKTp0aGlzLmFjdGl2ZT0hMTp0JiZ0aGlzLnRpbWVyJiZ0aGlzLl9fc3RhcnRUaW1lcigpfSxfX3N0YXJ0VGltZXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMudGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3QuYWN0aXZlPSExLHQudGltZXI9bnVsbH0sdGhpcy5kZWxheSl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy4kcS5wbGF0Zm9ybS5pcy5kZXNrdG9wP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXNjcm9sbGFyZWEgcmVsYXRpdmUtcG9zaXRpb25cIixvbjp7bW91c2VlbnRlcjpmdW5jdGlvbigpe2UuaG92ZXI9ITB9LG1vdXNlbGVhdmU6ZnVuY3Rpb24oKXtlLmhvdmVyPSExfX19LFt0KFwiZGl2XCIse3JlZjpcInRhcmdldFwiLHN0YXRpY0NsYXNzOlwic2Nyb2xsIHJlbGF0aXZlLXBvc2l0aW9uIG92ZXJmbG93LWhpZGRlbiBmaXRcIixvbjp7d2hlZWw6dGhpcy5fX21vdXNlV2hlZWx9LGRpcmVjdGl2ZXM6W3tuYW1lOlwidG91Y2gtcGFuXCIsbW9kaWZpZXJzOnt2ZXJ0aWNhbDohMCxub01vdXNlOiEwLG1pZ2h0UHJldmVudDohMH0sdmFsdWU6dGhpcy5fX3BhbkNvbnRhaW5lcn1dfSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImFic29sdXRlIGZ1bGwtd2lkdGhcIixzdHlsZTp0aGlzLm1haW5TdHlsZX0sW3QoUVJlc2l6ZU9ic2VydmFibGUse29uOntyZXNpemU6dGhpcy5fX3VwZGF0ZVNjcm9sbEhlaWdodH19KSx0aGlzLiRzbG90cy5kZWZhdWx0XSksdChRU2Nyb2xsT2JzZXJ2YWJsZSx7b246e3Njcm9sbDp0aGlzLl9fdXBkYXRlU2Nyb2xsfX0pXSksdChRUmVzaXplT2JzZXJ2YWJsZSx7b246e3Jlc2l6ZTp0aGlzLl9fdXBkYXRlQ29udGFpbmVyfX0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXNjcm9sbGFyZWEtdGh1bWIgYWJzb2x1dGUtcmlnaHRcIixzdHlsZTp0aGlzLnN0eWxlLGNsYXNzOntcImludmlzaWJsZS10aHVtYlwiOnRoaXMudGh1bWJIaWRkZW59LGRpcmVjdGl2ZXM6W3tuYW1lOlwidG91Y2gtcGFuXCIsbW9kaWZpZXJzOnt2ZXJ0aWNhbDohMCxwcmV2ZW50OiEwfSx2YWx1ZTp0aGlzLl9fcGFuVGh1bWJ9XX0pXSk6dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc2Nyb2xsLWFyZWEgcmVsYXRpdmUtcG9zaXRpb25cIixzdHlsZTp0aGlzLmNvbnRlbnRTdHlsZX0sW3QoXCJkaXZcIix7cmVmOlwidGFyZ2V0XCIsc3RhdGljQ2xhc3M6XCJzY3JvbGwgcmVsYXRpdmUtcG9zaXRpb24gZml0XCJ9LHRoaXMuJHNsb3RzLmRlZmF1bHQpXSl9fSxRU2VhcmNoPXtuYW1lOlwiUVNlYXJjaFwiLG1peGluczpbRnJhbWVNaXhpbixJbnB1dE1peGluXSxwcm9wczp7dmFsdWU6e3JlcXVpcmVkOiEwfSx0eXBlOnt0eXBlOlN0cmluZyxkZWZhdWx0Olwic2VhcmNoXCJ9LGRlYm91bmNlOnt0eXBlOk51bWJlcixkZWZhdWx0OjMwMH0saWNvbjpTdHJpbmcsbm9JY29uOkJvb2xlYW4sdXBwZXJDYXNlOkJvb2xlYW4sbG93ZXJDYXNlOkJvb2xlYW59LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57bW9kZWw6dGhpcy52YWx1ZSxjaGlsZERlYm91bmNlOiExfX0scHJvdmlkZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1mdW5jdGlvbihlKXt0Lm1vZGVsIT09ZSYmKHQubW9kZWw9ZSl9O3JldHVybntfX2lucHV0RGVib3VuY2U6e3NldDplLHNldE5hdjplLHNldENoaWxkRGVib3VuY2U6ZnVuY3Rpb24oZSl7dC5jaGlsZERlYm91bmNlPWV9fX19LHdhdGNoOnt2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLm1vZGVsPXR9LG1vZGVsOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMudmFsdWUhPT10JiYodHx8MD09PXR8fCh0aGlzLm1vZGVsPVwibnVtYmVyXCI9PT10aGlzLnR5cGU/bnVsbDpcIlwiKSx0aGlzLnRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLiRlbWl0KFwiaW5wdXRcIixlLm1vZGVsKX0sdGhpcy5kZWJvdW5jZVZhbHVlKSl9fSxjb21wdXRlZDp7ZGVib3VuY2VWYWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNoaWxkRGVib3VuY2U/MDp0aGlzLmRlYm91bmNlfSxjb21wdXRlZENsZWFyVmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc051bWJlciYmMD09PXRoaXMuY2xlYXJWYWx1ZT90aGlzLmNsZWFyVmFsdWU6dGhpcy5jbGVhclZhbHVlfHwoXCJudW1iZXJcIj09PXRoaXMudHlwZT9udWxsOlwiXCIpfSxjb250cm9sQmVmb3JlOmZ1bmN0aW9uKCl7dmFyIHQ9KHRoaXMuYmVmb3JlfHxbXSkuc2xpY2UoKTtyZXR1cm4gdGhpcy5ub0ljb258fHQudW5zaGlmdCh7aWNvbjp0aGlzLmljb258fHRoaXMuJHEuaWNvbi5zZWFyY2guaWNvbixoYW5kbGVyOnRoaXMuZm9jdXN9KSx0fSxjb250cm9sQWZ0ZXI6ZnVuY3Rpb24oKXt2YXIgdD0odGhpcy5hZnRlcnx8W10pLnNsaWNlKCk7cmV0dXJuIHRoaXMuaXNDbGVhcmFibGUmJnQucHVzaCh7aWNvbjp0aGlzLiRxLmljb24uc2VhcmNoW1wiY2xlYXJcIisodGhpcy5pc0ludmVydGVkP1wiSW52ZXJ0ZWRcIjpcIlwiKV0saGFuZGxlcjp0aGlzLmNsZWFyfSksdH19LG1ldGhvZHM6e2NsZWFyOmZ1bmN0aW9uKHQpe3RoaXMuJHJlZnMuaW5wdXQuY2xlYXIodCl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdChRSW5wdXQse3JlZjpcImlucHV0XCIsc3RhdGljQ2xhc3M6XCJxLXNlYXJjaFwiLHByb3BzOnt2YWx1ZTp0aGlzLm1vZGVsLHR5cGU6dGhpcy50eXBlLGF1dG9mb2N1czp0aGlzLmF1dG9mb2N1cyxwbGFjZWhvbGRlcjp0aGlzLnBsYWNlaG9sZGVyfHx0aGlzLiRxLmkxOG4ubGFiZWwuc2VhcmNoLGRpc2FibGU6dGhpcy5kaXNhYmxlLHJlYWRvbmx5OnRoaXMucmVhZG9ubHksZXJyb3I6dGhpcy5lcnJvcix3YXJuaW5nOnRoaXMud2FybmluZyxhbGlnbjp0aGlzLmFsaWduLG5vUGFyZW50RmllbGQ6dGhpcy5ub1BhcmVudEZpZWxkLGZsb2F0TGFiZWw6dGhpcy5mbG9hdExhYmVsLHN0YWNrTGFiZWw6dGhpcy5zdGFja0xhYmVsLHByZWZpeDp0aGlzLnByZWZpeCxzdWZmaXg6dGhpcy5zdWZmaXgsaW52ZXJ0ZWQ6dGhpcy5pbnZlcnRlZCxpbnZlcnRlZExpZ2h0OnRoaXMuaW52ZXJ0ZWRMaWdodCxkYXJrOnRoaXMuZGFyayxoaWRlVW5kZXJsaW5lOnRoaXMuaGlkZVVuZGVybGluZSxjb2xvcjp0aGlzLmNvbG9yLHJvd3M6dGhpcy5yb3dzLGJlZm9yZTp0aGlzLmNvbnRyb2xCZWZvcmUsYWZ0ZXI6dGhpcy5jb250cm9sQWZ0ZXIsY2xlYXJWYWx1ZTp0aGlzLmNsZWFyVmFsdWUsdXBwZXJDYXNlOnRoaXMudXBwZXJDYXNlLGxvd2VyQ2FzZTp0aGlzLmxvd2VyQ2FzZX0sYXR0cnM6dGhpcy4kYXR0cnMsb246e2lucHV0OmZ1bmN0aW9uKHQpe2UubW9kZWw9dH0sZm9jdXM6dGhpcy5fX29uRm9jdXMsYmx1cjp0aGlzLl9fb25CbHVyLGtleXVwOnRoaXMuX19vbktleXVwLGtleWRvd246dGhpcy5fX29uS2V5ZG93bixjbGljazp0aGlzLl9fb25DbGljayxwYXN0ZTp0aGlzLl9fb25QYXN0ZSxjbGVhcjpmdW5jdGlvbih0KXtlLiRlbWl0KFwiY2xlYXJcIix0KSxlLl9fZW1pdCgpfX19LHRoaXMuJHNsb3RzLmRlZmF1bHQpfX07ZnVuY3Rpb24gZGVmYXVsdEZpbHRlckZuKHQsZSl7cmV0dXJuIGUubGFiZWwudG9Mb3dlckNhc2UoKS5pbmRleE9mKHQpPi0xfXZhciBRU2VsZWN0PXtuYW1lOlwiUVNlbGVjdFwiLG1peGluczpbRnJhbWVNaXhpbixLZXlib2FyZFNlbGVjdGlvbk1peGluXSxwcm9wczp7ZmlsdGVyOltGdW5jdGlvbixCb29sZWFuXSxmaWx0ZXJQbGFjZWhvbGRlcjpTdHJpbmcscmFkaW86Qm9vbGVhbixwbGFjZWhvbGRlcjpTdHJpbmcsc2VwYXJhdG9yOkJvb2xlYW4sdmFsdWU6e3JlcXVpcmVkOiEwfSxtdWx0aXBsZTpCb29sZWFuLHRvZ2dsZTpCb29sZWFuLGNoaXBzOkJvb2xlYW4sb3B0aW9uczp7dHlwZTpBcnJheSxyZXF1aXJlZDohMCx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZXZlcnkoZnVuY3Rpb24odCl7cmV0dXJuXCJsYWJlbFwiaW4gdCYmXCJ2YWx1ZVwiaW4gdH0pfX0sY2hpcHNDb2xvcjpTdHJpbmcsY2hpcHNCZ0NvbG9yOlN0cmluZyxkaXNwbGF5VmFsdWU6U3RyaW5nLHBvcHVwTWF4SGVpZ2h0OlN0cmluZyxwb3B1cENvdmVyOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMH19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57bW9kZWw6dGhpcy5tdWx0aXBsZSYmQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKT90aGlzLnZhbHVlLnNsaWNlKCk6dGhpcy52YWx1ZSx0ZXJtczpcIlwiLGZvY3VzZWQ6ITF9fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5tb2RlbD10aGlzLm11bHRpcGxlJiZBcnJheS5pc0FycmF5KHQpP3Quc2xpY2UoKTp0fSx2aXNpYmxlT3B0aW9uczpmdW5jdGlvbigpe3RoaXMuX19rZXlib2FyZENhbGNJbmRleCgpfX0sY29tcHV0ZWQ6e29wdE1vZGVsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih0aGlzLm11bHRpcGxlKXJldHVybiB0aGlzLm1vZGVsLmxlbmd0aD4wP3RoaXMub3B0aW9ucy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHQubW9kZWwuaW5jbHVkZXMoZS52YWx1ZSl9KTp0aGlzLm9wdGlvbnMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiExfSl9LHZpc2libGVPcHRpb25zOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMub3B0aW9ucy5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSx0LHtpbmRleDplfSl9KTtpZih0aGlzLmZpbHRlciYmdGhpcy50ZXJtcy5sZW5ndGgpe3ZhciBpPXRoaXMudGVybXMudG9Mb3dlckNhc2UoKTtlPWUuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiB0LmZpbHRlckZuKGksZSl9KX1yZXR1cm4gZX0sa2V5Ym9hcmRNYXhJbmRleDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZpc2libGVPcHRpb25zLmxlbmd0aC0xfSxmaWx0ZXJGbjpmdW5jdGlvbigpe3JldHVyblwiYm9vbGVhblwiPT10eXBlb2YgdGhpcy5maWx0ZXI/ZGVmYXVsdEZpbHRlckZuOnRoaXMuZmlsdGVyfSxhY3R1YWxWYWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYodGhpcy5kaXNwbGF5VmFsdWUpcmV0dXJuIHRoaXMuZGlzcGxheVZhbHVlO2lmKCF0aGlzLm11bHRpcGxlKXt2YXIgZT10aGlzLm9wdGlvbnMuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS52YWx1ZT09PXQubW9kZWx9KTtyZXR1cm4gZT9lLmxhYmVsOlwiXCJ9dmFyIGk9dGhpcy5zZWxlY3RlZE9wdGlvbnMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LmxhYmVsfSk7cmV0dXJuIGkubGVuZ3RoP2kuam9pbihcIiwgXCIpOlwiXCJ9LGNvbXB1dGVkQ2xlYXJWYWx1ZTpmdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT10aGlzLmNsZWFyVmFsdWU/dGhpcy5tdWx0aXBsZT9bXTpudWxsOnRoaXMuY2xlYXJWYWx1ZX0saXNDbGVhcmFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGl0YWJsZSYmdGhpcy5jbGVhcmFibGUmJkpTT04uc3RyaW5naWZ5KHRoaXMuY29tcHV0ZWRDbGVhclZhbHVlKSE9PUpTT04uc3RyaW5naWZ5KHRoaXMubW9kZWwpfSxzZWxlY3RlZE9wdGlvbnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKHRoaXMubXVsdGlwbGUpcmV0dXJuIHRoaXMubGVuZ3RoPjA/dGhpcy5vcHRpb25zLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gdC5tb2RlbC5pbmNsdWRlcyhlLnZhbHVlKX0pOltdfSxoYXNDaGlwczpmdW5jdGlvbigpe3JldHVybiB0aGlzLm11bHRpcGxlJiZ0aGlzLmNoaXBzJiZ0aGlzLmxlbmd0aD4wfSxsZW5ndGg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdWx0aXBsZT90aGlzLm1vZGVsLmxlbmd0aDpbbnVsbCx2b2lkIDAsXCJcIl0uaW5jbHVkZXModGhpcy5tb2RlbCk/MDoxfSxhZGRpdGlvbmFsTGVuZ3RoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGlzcGxheVZhbHVlJiZ0aGlzLmRpc3BsYXlWYWx1ZS5sZW5ndGg+MH19LG1ldGhvZHM6e3RvZ2dsZVBvcHVwOmZ1bmN0aW9uKCl7dGhpcy4kcmVmcy5wb3BvdmVyJiZ0aGlzW3RoaXMuJHJlZnMucG9wb3Zlci5zaG93aW5nP1wiaGlkZVwiOlwic2hvd1wiXSgpfSxzaG93OmZ1bmN0aW9uKCl7aWYodGhpcy5fX2tleWJvYXJkQ2FsY0luZGV4KCksdGhpcy4kcmVmcy5wb3BvdmVyKXJldHVybiB0aGlzLiRyZWZzLnBvcG92ZXIuc2hvdygpfSxoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHJlZnMucG9wb3Zlcj90aGlzLiRyZWZzLnBvcG92ZXIuaGlkZSgpOlByb21pc2UucmVzb2x2ZSgpfSxyZXBvc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kcmVmcy5wb3BvdmVyO3QmJnQuc2hvd2luZyYmdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtyZXR1cm4gdCYmdC5yZXBvc2l0aW9uKCl9KX0sX19rZXlib2FyZENhbGNJbmRleDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5rZXlib2FyZEluZGV4PS0xO3ZhciBlPXRoaXMubXVsdGlwbGU/dGhpcy5zZWxlY3RlZE9wdGlvbnMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnZhbHVlfSk6W3RoaXMubW9kZWxdO3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7dmFyIGk9dm9pZCAwPT09ZT8tMTpNYXRoLm1heCgtMSx0LnZpc2libGVPcHRpb25zLmZpbmRJbmRleChmdW5jdGlvbih0KXtyZXR1cm4gZS5pbmNsdWRlcyh0LnZhbHVlKX0pKTtpPi0xJiYodC5rZXlib2FyZE1vdmVEaXJlY3Rpb249ITAsc2V0VGltZW91dChmdW5jdGlvbigpe3Qua2V5Ym9hcmRNb3ZlRGlyZWN0aW9uPSExfSw1MDApLHQuX19rZXlib2FyZFNob3coaSkpfSl9LF9fa2V5Ym9hcmRDdXN0b21LZXlIYW5kbGU6ZnVuY3Rpb24odCxlKXtzd2l0Y2godCl7Y2FzZSAyNzp0aGlzLiRyZWZzLnBvcG92ZXIuc2hvd2luZyYmdGhpcy5oaWRlKCk7YnJlYWs7Y2FzZSAxMzpjYXNlIDMyOnRoaXMuJHJlZnMucG9wb3Zlci5zaG93aW5nfHx0aGlzLnNob3coKX19LF9fa2V5Ym9hcmRTaG93VHJpZ2dlcjpmdW5jdGlvbigpe3RoaXMuc2hvdygpfSxfX2tleWJvYXJkU2V0U2VsZWN0aW9uOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudmlzaWJsZU9wdGlvbnNbdF07dGhpcy5tdWx0aXBsZT90aGlzLl9fdG9nZ2xlTXVsdGlwbGUoZS52YWx1ZSxlLmRpc2FibGUpOnRoaXMuX19zaW5nbGVTZWxlY3QoZS52YWx1ZSxlLmRpc2FibGUpfSxfX2tleWJvYXJkSXNTZWxlY3RhYmxlSW5kZXg6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+LTEmJnQ8dGhpcy52aXNpYmxlT3B0aW9ucy5sZW5ndGgmJiF0aGlzLnZpc2libGVPcHRpb25zW3RdLmRpc2FibGV9LF9fbW91c2VFbnRlckhhbmRsZXI6ZnVuY3Rpb24odCxlKXt0aGlzLmtleWJvYXJkTW92ZURpcmVjdGlvbnx8KHRoaXMua2V5Ym9hcmRJbmRleD1lKX0sX19vbkZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5kaXNhYmxlfHx0aGlzLmZvY3VzZWR8fCh0aGlzLmZvY3VzZWQ9ITAsdGhpcy4kZW1pdChcImZvY3VzXCIpKX0sX19vblNob3c6ZnVuY3Rpb24oKXt0aGlzLmRpc2FibGV8fCh0aGlzLl9fb25Gb2N1cygpLHRoaXMuZmlsdGVyJiZ0aGlzLiRyZWZzLmZpbHRlciYmKHRoaXMuJHJlZnMuZmlsdGVyLmZvY3VzKCksdGhpcy5yZXBvc2l0aW9uKCkpKX0sX19vbkJsdXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLmZvY3VzZWQmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5hY3RpdmVFbGVtZW50O2UuJHJlZnMucG9wb3ZlciYmZS4kcmVmcy5wb3BvdmVyLnNob3dpbmcmJih0PT09ZG9jdW1lbnQuYm9keXx8ZS4kcmVmcy5wb3BvdmVyLiRlbC5jb250YWlucyh0KSl8fChlLl9fb25DbG9zZSgpLGUuaGlkZSgpKX0sMSl9LF9fb25DbG9zZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7SlNPTi5zdHJpbmdpZnkoZS5tb2RlbCkhPT1KU09OLnN0cmluZ2lmeShlLnZhbHVlKSYmZS4kZW1pdChcImNoYW5nZVwiLGUubW9kZWwpfSksdGhpcy50ZXJtcz1cIlwiLHRoaXMuZm9jdXNlZCYmKHQ/dGhpcy4kcmVmcy5pbnB1dCYmdGhpcy4kcmVmcy5pbnB1dC4kZWwmJnRoaXMuJHJlZnMuaW5wdXQuJGVsLmZvY3VzKCk6KHRoaXMuZm9jdXNlZD0hMSx0aGlzLiRlbWl0KFwiYmx1clwiKSkpfSxfX3NpbmdsZVNlbGVjdDpmdW5jdGlvbih0LGUpe2V8fCh0aGlzLl9fZW1pdCh0KSx0aGlzLmhpZGUoKSl9LF9fdG9nZ2xlTXVsdGlwbGU6ZnVuY3Rpb24odCxlKXtpZighZSl7dmFyIGk9dGhpcy5tb2RlbCxzPWkuaW5kZXhPZih0KTtzPi0xP3RoaXMuJGVtaXQoXCJyZW1vdmVcIix7aW5kZXg6cyx2YWx1ZTppLnNwbGljZShzLDEpfSk6KHRoaXMuJGVtaXQoXCJhZGRcIix7aW5kZXg6aS5sZW5ndGgsdmFsdWU6dH0pLGkucHVzaCh0KSksdGhpcy4kZW1pdChcImlucHV0XCIsaSl9fSxfX2VtaXQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLiRlbWl0KFwiaW5wdXRcIix0KSx0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe0pTT04uc3RyaW5naWZ5KHQpIT09SlNPTi5zdHJpbmdpZnkoZS52YWx1ZSkmJmUuJGVtaXQoXCJjaGFuZ2VcIix0KX0pfSxfX3NldE1vZGVsOmZ1bmN0aW9uKHQsZSl7dGhpcy5tb2RlbD10fHwodGhpcy5tdWx0aXBsZT9bXTpudWxsKSx0aGlzLiRlbWl0KFwiaW5wdXRcIix0aGlzLm1vZGVsKSwhZSYmdGhpcy4kcmVmcy5wb3BvdmVyJiZ0aGlzLiRyZWZzLnBvcG92ZXIuc2hvd2luZ3x8dGhpcy5fX29uQ2xvc2UoZSl9LF9fZ2V0Q2hpcFRleHRDb2xvcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jaGlwc0NvbG9yP3RoaXMuY2hpcHNDb2xvcjp0aGlzLmlzSW52ZXJ0ZWRMaWdodD90aGlzLmludmVydGVkTGlnaHQ/dHx8dGhpcy5jb2xvcjpcIndoaXRlXCI6dGhpcy5pc0ludmVydGVkP3R8fCh0aGlzLmludmVydGVkTGlnaHQ/XCJncmV5LTEwXCI6dGhpcy5jb2xvcik6dGhpcy5kYXJrP3R8fHRoaXMuY29sb3I6XCJ3aGl0ZVwifSxfX2dldENoaXBCZ0NvbG9yOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNoaXBzQmdDb2xvcj90aGlzLmNoaXBzQmdDb2xvcjp0aGlzLmlzSW52ZXJ0ZWRMaWdodD90aGlzLmludmVydGVkTGlnaHQ/XCJncmV5LTEwXCI6dHx8dGhpcy5jb2xvcjp0aGlzLmlzSW52ZXJ0ZWQ/dGhpcy5pbnZlcnRlZExpZ2h0P3RoaXMuY29sb3I6XCJ3aGl0ZVwiOnRoaXMuZGFyaz9cIndoaXRlXCI6dHx8dGhpcy5jb2xvcn19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9W107aWYodGhpcy5oYXNDaGlwcyl7dmFyIHM9dChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbCByb3cgaXRlbXMtY2VudGVyIHEtaW5wdXQtY2hpcHNcIixjbGFzczp0aGlzLmFsaWduQ2xhc3N9LHRoaXMuc2VsZWN0ZWRPcHRpb25zLm1hcChmdW5jdGlvbihpLHMpe3JldHVybiB0KFFDaGlwLHtrZXk6cyxwcm9wczp7c21hbGw6ITAsY2xvc2FibGU6ZS5lZGl0YWJsZSYmIWkuZGlzYWJsZSxjb2xvcjplLl9fZ2V0Q2hpcEJnQ29sb3IoaS5jb2xvciksdGV4dENvbG9yOmUuX19nZXRDaGlwVGV4dENvbG9yKGkuY29sb3IpLGljb246aS5pY29uLGljb25SaWdodDppLnJpZ2h0SWNvbixhdmF0YXI6aS5hdmF0YXJ9LG9uOntoaWRlOmZ1bmN0aW9uKCl7ZS5fX3RvZ2dsZU11bHRpcGxlKGkudmFsdWUsZS5kaXNhYmxlfHxpLmRpc2FibGUpfX0sbmF0aXZlT246e2NsaWNrOmZ1bmN0aW9uKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCl9fX0sW3QoXCJkaXZcIix7ZG9tUHJvcHM6e2lubmVySFRNTDppLmxhYmVsfX0pXSl9KSk7aS5wdXNoKHMpfWVsc2V7dmFyIG49dChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbCBxLWlucHV0LXRhcmdldCBlbGxpcHNpc1wiLGNsYXNzOnRoaXMuZmFrZUlucHV0Q2xhc3Nlcyxkb21Qcm9wczp7aW5uZXJIVE1MOnRoaXMuZmFrZUlucHV0VmFsdWV9fSk7aS5wdXNoKG4pfXJldHVybiBpLnB1c2godChRUG9wb3Zlcix7cmVmOlwicG9wb3ZlclwiLHN0YXRpY0NsYXNzOlwiY29sdW1uIG5vLXdyYXBcIixjbGFzczp0aGlzLmRhcms/XCJiZy1kYXJrXCI6bnVsbCxwcm9wczp7Y292ZXI6dGhpcy5wb3B1cENvdmVyLGtlZXBPblNjcmVlbjohMCxkaXNhYmxlOiF0aGlzLmVkaXRhYmxlLGFuY2hvckNsaWNrOiExLG1heEhlaWdodDp0aGlzLnBvcHVwTWF4SGVpZ2h0fSxzbG90OlwiYWZ0ZXJcIixvbjp7c2hvdzp0aGlzLl9fb25TaG93LGhpZGU6ZnVuY3Rpb24oKXtlLl9fb25DbG9zZSghMCl9fSxuYXRpdmVPbjp7a2V5ZG93bjp0aGlzLl9fa2V5Ym9hcmRIYW5kbGVLZXl9fSxbdGhpcy5maWx0ZXImJnQoUVNlYXJjaCx7cmVmOlwiZmlsdGVyXCIsc3RhdGljQ2xhc3M6XCJjb2wtYXV0b1wiLHN0eWxlOlwicGFkZGluZzogMTBweDtcIixwcm9wczp7dmFsdWU6dGhpcy50ZXJtcyxwbGFjZWhvbGRlcjp0aGlzLmZpbHRlclBsYWNlaG9sZGVyfHx0aGlzLiRxLmkxOG4ubGFiZWwuZmlsdGVyLGRlYm91bmNlOjEwMCxjb2xvcjp0aGlzLmNvbG9yLGRhcms6dGhpcy5kYXJrLG5vUGFyZW50RmllbGQ6ITAsbm9JY29uOiEwfSxvbjp7aW5wdXQ6ZnVuY3Rpb24odCl7ZS50ZXJtcz10LGUucmVwb3NpdGlvbigpfX19KXx8dm9pZCAwLHRoaXMudmlzaWJsZU9wdGlvbnMubGVuZ3RoJiZ0KFFMaXN0LHtzdGF0aWNDbGFzczpcIm5vLWJvcmRlciBzY3JvbGxcIixwcm9wczp7c2VwYXJhdG9yOnRoaXMuc2VwYXJhdG9yLGRhcms6dGhpcy5kYXJrfX0sdGhpcy52aXNpYmxlT3B0aW9ucy5tYXAoZnVuY3Rpb24oaSxzKXtyZXR1cm4gdChRSXRlbVdyYXBwZXIse2tleTpzLGNsYXNzOltpLmRpc2FibGU/XCJ0ZXh0LWZhZGVkXCI6XCJjdXJzb3ItcG9pbnRlclwiLHM9PT1lLmtleWJvYXJkSW5kZXg/XCJxLXNlbGVjdC1oaWdobGlnaHRcIjpcIlwiLGkuZGlzYWJsZT9cIlwiOlwiY3Vyc29yLXBvaW50ZXJcIixpLmNsYXNzTmFtZXx8XCJcIl0scHJvcHM6e2NmZzppLHNsb3RSZXBsYWNlOiEwLGFjdGl2ZTplLm11bHRpcGxlP3ZvaWQgMDplLnZhbHVlPT09aS52YWx1ZX0sbmF0aXZlT246e1wiIWNsaWNrXCI6ZnVuY3Rpb24oKXt2YXIgdD1lLm11bHRpcGxlP1wiX190b2dnbGVNdWx0aXBsZVwiOlwiX19zaW5nbGVTZWxlY3RcIjtlW3RdKGkudmFsdWUsaS5kaXNhYmxlKX0sbW91c2VlbnRlcjpmdW5jdGlvbih0KXshaS5kaXNhYmxlJiZlLl9fbW91c2VFbnRlckhhbmRsZXIodCxzKX19fSxbZS5tdWx0aXBsZT90KGUudG9nZ2xlP1FUb2dnbGU6UUNoZWNrYm94LHtzbG90OmUudG9nZ2xlP1wicmlnaHRcIjpcImxlZnRcIixwcm9wczp7a2VlcENvbG9yOiEwLGNvbG9yOmkuY29sb3J8fGUuY29sb3IsZGFyazplLmRhcmssdmFsdWU6ZS5vcHRNb2RlbFtpLmluZGV4XSxkaXNhYmxlOmkuZGlzYWJsZSxub0ZvY3VzOiEwfX0pOmUucmFkaW8mJnQoUVJhZGlvLHtzbG90OlwibGVmdFwiLHByb3BzOntrZWVwQ29sb3I6ITAsY29sb3I6aS5jb2xvcnx8ZS5jb2xvcixkYXJrOmUuZGFyayx2YWx1ZTplLnZhbHVlLHZhbDppLnZhbHVlLGRpc2FibGU6aS5kaXNhYmxlLG5vRm9jdXM6ITB9fSl8fHZvaWQgMF0pfSkpfHx2b2lkIDBdKSksdGhpcy5pc0NsZWFyYWJsZSYmaS5wdXNoKHQoUUljb24se3Nsb3Q6XCJhZnRlclwiLHN0YXRpY0NsYXNzOlwicS1pZi1jb250cm9sXCIscHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLmlucHV0W1wiY2xlYXJcIisodGhpcy5pc0ludmVydGVkP1wiSW52ZXJ0ZWRcIjpcIlwiKV19LG5hdGl2ZU9uOntjbGljazp0aGlzLmNsZWFyfX0pKSxpLnB1c2godChRSWNvbix0aGlzLnJlYWRvbmx5P3tzbG90OlwiYWZ0ZXJcIn06e3Nsb3Q6XCJhZnRlclwiLHN0YXRpY0NsYXNzOlwicS1pZi1jb250cm9sXCIscHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLmlucHV0LmRyb3Bkb3dufX0pKSx0KFFJbnB1dEZyYW1lLHtyZWY6XCJpbnB1dFwiLHN0YXRpY0NsYXNzOlwicS1zZWxlY3RcIixwcm9wczp7cHJlZml4OnRoaXMucHJlZml4LHN1ZmZpeDp0aGlzLnN1ZmZpeCxzdGFja0xhYmVsOnRoaXMuc3RhY2tMYWJlbCxmbG9hdExhYmVsOnRoaXMuZmxvYXRMYWJlbCxlcnJvcjp0aGlzLmVycm9yLHdhcm5pbmc6dGhpcy53YXJuaW5nLGRpc2FibGU6dGhpcy5kaXNhYmxlLHJlYWRvbmx5OnRoaXMucmVhZG9ubHksaW52ZXJ0ZWQ6dGhpcy5pbnZlcnRlZCxpbnZlcnRlZExpZ2h0OnRoaXMuaW52ZXJ0ZWRMaWdodCxkYXJrOnRoaXMuZGFyayxoaWRlVW5kZXJsaW5lOnRoaXMuaGlkZVVuZGVybGluZSxiZWZvcmU6dGhpcy5iZWZvcmUsYWZ0ZXI6dGhpcy5hZnRlcixjb2xvcjp0aGlzLmNvbG9yLG5vUGFyZW50RmllbGQ6dGhpcy5ub1BhcmVudEZpZWxkLGZvY3VzZWQ6dGhpcy5mb2N1c2VkLGZvY3VzYWJsZTohMCxsZW5ndGg6dGhpcy5sZW5ndGgsYWRkaXRpb25hbExlbmd0aDp0aGlzLmFkZGl0aW9uYWxMZW5ndGh9LG5hdGl2ZU9uOntjbGljazp0aGlzLnRvZ2dsZVBvcHVwLGZvY3VzOnRoaXMuX19vbkZvY3VzLGJsdXI6dGhpcy5fX29uQmx1cixrZXlkb3duOnRoaXMuX19rZXlib2FyZEhhbmRsZUtleX19LGkpfX0sUVNwaW5uZXJBdWRpbz17bmFtZTpcIlFTcGlubmVyQXVkaW9cIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7ZmlsbDpcImN1cnJlbnRDb2xvclwiLHdpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHZpZXdCb3g6XCIwIDAgNTUgODBcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9fSxbdChcImdcIix7YXR0cnM6e3RyYW5zZm9ybTpcIm1hdHJpeCgxIDAgMCAtMSAwIDgwKVwifX0sW3QoXCJyZWN0XCIse2F0dHJzOnt3aWR0aDpcIjEwXCIsaGVpZ2h0OlwiMjBcIixyeDpcIjNcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImhlaWdodFwiLGJlZ2luOlwiMHNcIixkdXI6XCI0LjNzXCIsdmFsdWVzOlwiMjA7NDU7NTc7ODA7NjQ7MzI7NjY7NDU7NjQ7MjM7NjY7MTM7NjQ7NTY7MzQ7MzQ7MjsyMzs3Njs3OTsyMFwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwicmVjdFwiLHthdHRyczp7eDpcIjE1XCIsd2lkdGg6XCIxMFwiLGhlaWdodDpcIjgwXCIscng6XCIzXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJoZWlnaHRcIixiZWdpbjpcIjBzXCIsZHVyOlwiMnNcIix2YWx1ZXM6XCI4MDs1NTszMzs1Ozc1OzIzOzczOzMzOzEyOzE0OzYwOzgwXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJyZWN0XCIse2F0dHJzOnt4OlwiMzBcIix3aWR0aDpcIjEwXCIsaGVpZ2h0OlwiNTBcIixyeDpcIjNcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImhlaWdodFwiLGJlZ2luOlwiMHNcIixkdXI6XCIxLjRzXCIsdmFsdWVzOlwiNTA7MzQ7Nzg7MjM7NTY7MjM7MzQ7NzY7ODA7NTQ7MjE7NTBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcInJlY3RcIix7YXR0cnM6e3g6XCI0NVwiLHdpZHRoOlwiMTBcIixoZWlnaHQ6XCIzMFwiLHJ4OlwiM1wifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiaGVpZ2h0XCIsYmVnaW46XCIwc1wiLGR1cjpcIjJzXCIsdmFsdWVzOlwiMzA7NDU7MTM7ODA7NTY7NzI7NDU7NzY7MzQ7MjM7Njc7MzBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSldKV0pfX0sUVNwaW5uZXJCYWxsPXtuYW1lOlwiUVNwaW5uZXJCYWxsXCIsbWl4aW5zOlttaXhpbiQxXSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJzdmdcIix7c3RhdGljQ2xhc3M6XCJxLXNwaW5uZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e3N0cm9rZTpcImN1cnJlbnRDb2xvclwiLHdpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHZpZXdCb3g6XCIwIDAgNTcgNTdcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9fSxbdChcImdcIix7YXR0cnM6e3RyYW5zZm9ybTpcInRyYW5zbGF0ZSgxIDEpXCIsXCJzdHJva2Utd2lkdGhcIjpcIjJcIixmaWxsOlwibm9uZVwiLFwiZmlsbC1ydWxlXCI6XCJldmVub2RkXCJ9fSxbdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCI1XCIsY3k6XCI1MFwiLHI6XCI1XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJjeVwiLGJlZ2luOlwiMHNcIixkdXI6XCIyLjJzXCIsdmFsdWVzOlwiNTA7NTs1MDs1MFwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSksdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJjeFwiLGJlZ2luOlwiMHNcIixkdXI6XCIyLjJzXCIsdmFsdWVzOlwiNTsyNzs0OTs1XCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiMjdcIixjeTpcIjVcIixyOlwiNVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiY3lcIixiZWdpbjpcIjBzXCIsZHVyOlwiMi4yc1wiLGZyb206XCI1XCIsdG86XCI1XCIsdmFsdWVzOlwiNTs1MDs1MDs1XCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImN4XCIsYmVnaW46XCIwc1wiLGR1cjpcIjIuMnNcIixmcm9tOlwiMjdcIix0bzpcIjI3XCIsdmFsdWVzOlwiMjc7NDk7NTsyN1wiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjQ5XCIsY3k6XCI1MFwiLHI6XCI1XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJjeVwiLGJlZ2luOlwiMHNcIixkdXI6XCIyLjJzXCIsdmFsdWVzOlwiNTA7NTA7NTs1MFwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSksdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJjeFwiLGZyb206XCI0OVwiLHRvOlwiNDlcIixiZWdpbjpcIjBzXCIsZHVyOlwiMi4yc1wiLHZhbHVlczpcIjQ5OzU7Mjc7NDlcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSldKV0pfX0sUVNwaW5uZXJCYXJzPXtuYW1lOlwiUVNwaW5uZXJCYXJzXCIsbWl4aW5zOlttaXhpbiQxXSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJzdmdcIix7c3RhdGljQ2xhc3M6XCJxLXNwaW5uZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e2ZpbGw6XCJjdXJyZW50Q29sb3JcIix3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMCAwIDEzNSAxNDBcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9fSxbdChcInJlY3RcIix7YXR0cnM6e3k6XCIxMFwiLHdpZHRoOlwiMTVcIixoZWlnaHQ6XCIxMjBcIixyeDpcIjZcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImhlaWdodFwiLGJlZ2luOlwiMC41c1wiLGR1cjpcIjFzXCIsdmFsdWVzOlwiMTIwOzExMDsxMDA7OTA7ODA7NzA7NjA7NTA7NDA7MTQwOzEyMFwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSksdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ5XCIsYmVnaW46XCIwLjVzXCIsZHVyOlwiMXNcIix2YWx1ZXM6XCIxMDsxNTsyMDsyNTszMDszNTs0MDs0NTs1MDswOzEwXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJyZWN0XCIse2F0dHJzOnt4OlwiMzBcIix5OlwiMTBcIix3aWR0aDpcIjE1XCIsaGVpZ2h0OlwiMTIwXCIscng6XCI2XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJoZWlnaHRcIixiZWdpbjpcIjAuMjVzXCIsZHVyOlwiMXNcIix2YWx1ZXM6XCIxMjA7MTEwOzEwMDs5MDs4MDs3MDs2MDs1MDs0MDsxNDA7MTIwXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInlcIixiZWdpbjpcIjAuMjVzXCIsZHVyOlwiMXNcIix2YWx1ZXM6XCIxMDsxNTsyMDsyNTszMDszNTs0MDs0NTs1MDswOzEwXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJyZWN0XCIse2F0dHJzOnt4OlwiNjBcIix3aWR0aDpcIjE1XCIsaGVpZ2h0OlwiMTQwXCIscng6XCI2XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJoZWlnaHRcIixiZWdpbjpcIjBzXCIsZHVyOlwiMXNcIix2YWx1ZXM6XCIxMjA7MTEwOzEwMDs5MDs4MDs3MDs2MDs1MDs0MDsxNDA7MTIwXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInlcIixiZWdpbjpcIjBzXCIsZHVyOlwiMXNcIix2YWx1ZXM6XCIxMDsxNTsyMDsyNTszMDszNTs0MDs0NTs1MDswOzEwXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJyZWN0XCIse2F0dHJzOnt4OlwiOTBcIix5OlwiMTBcIix3aWR0aDpcIjE1XCIsaGVpZ2h0OlwiMTIwXCIscng6XCI2XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJoZWlnaHRcIixiZWdpbjpcIjAuMjVzXCIsZHVyOlwiMXNcIix2YWx1ZXM6XCIxMjA7MTEwOzEwMDs5MDs4MDs3MDs2MDs1MDs0MDsxNDA7MTIwXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInlcIixiZWdpbjpcIjAuMjVzXCIsZHVyOlwiMXNcIix2YWx1ZXM6XCIxMDsxNTsyMDsyNTszMDszNTs0MDs0NTs1MDswOzEwXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJyZWN0XCIse2F0dHJzOnt4OlwiMTIwXCIseTpcIjEwXCIsd2lkdGg6XCIxNVwiLGhlaWdodDpcIjEyMFwiLHJ4OlwiNlwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiaGVpZ2h0XCIsYmVnaW46XCIwLjVzXCIsZHVyOlwiMXNcIix2YWx1ZXM6XCIxMjA7MTEwOzEwMDs5MDs4MDs3MDs2MDs1MDs0MDsxNDA7MTIwXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInlcIixiZWdpbjpcIjAuNXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjEwOzE1OzIwOzI1OzMwOzM1OzQwOzQ1OzUwOzA7MTBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSldKX19LFFTcGlubmVyQ2lyY2xlcz17bmFtZTpcIlFTcGlubmVyQ2lyY2xlc1wiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOntmaWxsOlwiY3VycmVudENvbG9yXCIsd2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjAgMCAxMzUgMTM1XCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifX0sW3QoXCJwYXRoXCIse2F0dHJzOntkOlwiTTY3LjQ0NyA1OGM1LjUyMyAwIDEwLTQuNDc3IDEwLTEwcy00LjQ3Ny0xMC0xMC0xMC0xMCA0LjQ3Ny0xMCAxMCA0LjQ3NyAxMCAxMCAxMHptOS40NDggOS40NDdjMCA1LjUyMyA0LjQ3NyAxMCAxMCAxMCA1LjUyMiAwIDEwLTQuNDc3IDEwLTEwcy00LjQ3OC0xMC0xMC0xMGMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMHptLTkuNDQ4IDkuNDQ4Yy01LjUyMyAwLTEwIDQuNDc3LTEwIDEwIDAgNS41MjIgNC40NzcgMTAgMTAgMTBzMTAtNC40NzggMTAtMTBjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMHpNNTggNjcuNDQ3YzAtNS41MjMtNC40NzctMTAtMTAtMTBzLTEwIDQuNDc3LTEwIDEwIDQuNDc3IDEwIDEwIDEwIDEwLTQuNDc3IDEwLTEwelwifX0sW3QoXCJhbmltYXRlVHJhbnNmb3JtXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwidHJhbnNmb3JtXCIsdHlwZTpcInJvdGF0ZVwiLGZyb206XCIwIDY3IDY3XCIsdG86XCItMzYwIDY3IDY3XCIsZHVyOlwiMi41c1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcInBhdGhcIix7YXR0cnM6e2Q6XCJNMjguMTkgNDAuMzFjNi42MjcgMCAxMi01LjM3NCAxMi0xMiAwLTYuNjI4LTUuMzczLTEyLTEyLTEyLTYuNjI4IDAtMTIgNS4zNzItMTIgMTIgMCA2LjYyNiA1LjM3MiAxMiAxMiAxMnptMzAuNzItMTkuODI1YzQuNjg2IDQuNjg3IDEyLjI4NCA0LjY4NyAxNi45NyAwIDQuNjg2LTQuNjg2IDQuNjg2LTEyLjI4NCAwLTE2Ljk3LTQuNjg2LTQuNjg3LTEyLjI4NC00LjY4Ny0xNi45NyAwLTQuNjg3IDQuNjg2LTQuNjg3IDEyLjI4NCAwIDE2Ljk3em0zNS43NCA3LjcwNWMwIDYuNjI3IDUuMzcgMTIgMTIgMTIgNi42MjYgMCAxMi01LjM3MyAxMi0xMiAwLTYuNjI4LTUuMzc0LTEyLTEyLTEyLTYuNjMgMC0xMiA1LjM3Mi0xMiAxMnptMTkuODIyIDMwLjcyYy00LjY4NiA0LjY4Ni00LjY4NiAxMi4yODQgMCAxNi45NyA0LjY4NyA0LjY4NiAxMi4yODUgNC42ODYgMTYuOTcgMCA0LjY4Ny00LjY4NiA0LjY4Ny0xMi4yODQgMC0xNi45Ny00LjY4NS00LjY4Ny0xMi4yODMtNC42ODctMTYuOTcgMHptLTcuNzA0IDM1Ljc0Yy02LjYyNyAwLTEyIDUuMzctMTIgMTIgMCA2LjYyNiA1LjM3MyAxMiAxMiAxMnMxMi01LjM3NCAxMi0xMmMwLTYuNjMtNS4zNzMtMTItMTItMTJ6bS0zMC43MiAxOS44MjJjLTQuNjg2LTQuNjg2LTEyLjI4NC00LjY4Ni0xNi45NyAwLTQuNjg2IDQuNjg3LTQuNjg2IDEyLjI4NSAwIDE2Ljk3IDQuNjg2IDQuNjg3IDEyLjI4NCA0LjY4NyAxNi45NyAwIDQuNjg3LTQuNjg1IDQuNjg3LTEyLjI4MyAwLTE2Ljk3em0tMzUuNzQtNy43MDRjMC02LjYyNy01LjM3Mi0xMi0xMi0xMi02LjYyNiAwLTEyIDUuMzczLTEyIDEyczUuMzc0IDEyIDEyIDEyYzYuNjI4IDAgMTItNS4zNzMgMTItMTJ6bS0xOS44MjMtMzAuNzJjNC42ODctNC42ODYgNC42ODctMTIuMjg0IDAtMTYuOTctNC42ODYtNC42ODYtMTIuMjg0LTQuNjg2LTE2Ljk3IDAtNC42ODcgNC42ODYtNC42ODcgMTIuMjg0IDAgMTYuOTcgNC42ODYgNC42ODcgMTIuMjg0IDQuNjg3IDE2Ljk3IDB6XCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwicm90YXRlXCIsZnJvbTpcIjAgNjcgNjdcIix0bzpcIjM2MCA2NyA2N1wiLGR1cjpcIjhzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKV0pfX0sUVNwaW5uZXJDb21tZW50PXtuYW1lOlwiUVNwaW5uZXJDb21tZW50XCIsbWl4aW5zOlttaXhpbiQxXSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJzdmdcIix7c3RhdGljQ2xhc3M6XCJxLXNwaW5uZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e3dpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIix2aWV3Qm94OlwiMCAwIDEwMCAxMDBcIixwcmVzZXJ2ZUFzcGVjdFJhdGlvOlwieE1pZFlNaWRcIn19LFt0KFwicmVjdFwiLHthdHRyczp7eDpcIjBcIix5OlwiMFwiLHdpZHRoOlwiMTAwXCIsaGVpZ2h0OlwiMTAwXCIsZmlsbDpcIm5vbmVcIn19KSx0KFwicGF0aFwiLHthdHRyczp7ZDpcIk03OCwxOUgyMmMtNi42LDAtMTIsNS40LTEyLDEydjMxYzAsNi42LDUuNCwxMiwxMiwxMmgzNy4yYzAuNCwzLDEuOCw1LjYsMy43LDcuNmMyLjQsMi41LDUuMSw0LjEsOS4xLDQgYy0xLjQtMi4xLTItNy4yLTItMTAuM2MwLTAuNCwwLTAuOCwwLTEuM2g4YzYuNiwwLDEyLTUuNCwxMi0xMlYzMUM5MCwyNC40LDg0LjYsMTksNzgsMTl6XCIsZmlsbDpcImN1cnJlbnRDb2xvclwifX0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiMzBcIixjeTpcIjQ3XCIscjpcIjVcIixmaWxsOlwiI2ZmZlwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwib3BhY2l0eVwiLGZyb206XCIwXCIsdG86XCIxXCIsdmFsdWVzOlwiMDsxOzFcIixrZXlUaW1lczpcIjA7MC4yOzFcIixkdXI6XCIxc1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCI1MFwiLGN5OlwiNDdcIixyOlwiNVwiLGZpbGw6XCIjZmZmXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJvcGFjaXR5XCIsZnJvbTpcIjBcIix0bzpcIjFcIix2YWx1ZXM6XCIwOzA7MTsxXCIsa2V5VGltZXM6XCIwOzAuMjswLjQ7MVwiLGR1cjpcIjFzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjcwXCIsY3k6XCI0N1wiLHI6XCI1XCIsZmlsbDpcIiNmZmZcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcIm9wYWNpdHlcIixmcm9tOlwiMFwiLHRvOlwiMVwiLHZhbHVlczpcIjA7MDsxOzFcIixrZXlUaW1lczpcIjA7MC40OzAuNjsxXCIsZHVyOlwiMXNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pXSl9fSxRU3Bpbm5lckN1YmU9e25hbWU6XCJRU3Bpbm5lckN1YmVcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7d2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHZpZXdCb3g6XCIwIDAgMTAwIDEwMFwiLHByZXNlcnZlQXNwZWN0UmF0aW86XCJ4TWlkWU1pZFwifX0sW3QoXCJyZWN0XCIse2F0dHJzOnt4OlwiMFwiLHk6XCIwXCIsd2lkdGg6XCIxMDBcIixoZWlnaHQ6XCIxMDBcIixmaWxsOlwibm9uZVwifX0pLHQoXCJnXCIse2F0dHJzOnt0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMjUgMjUpXCJ9fSxbdChcInJlY3RcIix7YXR0cnM6e3g6XCItMjBcIix5OlwiLTIwXCIsd2lkdGg6XCI0MFwiLGhlaWdodDpcIjQwXCIsZmlsbDpcImN1cnJlbnRDb2xvclwiLG9wYWNpdHk6XCIwLjlcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJzY2FsZVwiLGZyb206XCIxLjVcIix0bzpcIjFcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIixiZWdpbjpcIjBzXCIsZHVyOlwiMXNcIixjYWxjTW9kZTpcInNwbGluZVwiLGtleVNwbGluZXM6XCIwLjIgMC44IDAuMiAwLjhcIixrZXlUaW1lczpcIjA7MVwifX0pXSldKSx0KFwiZ1wiLHthdHRyczp7dHJhbnNmb3JtOlwidHJhbnNsYXRlKDc1IDI1KVwifX0sW3QoXCJyZWN0XCIse2F0dHJzOnt4OlwiLTIwXCIseTpcIi0yMFwiLHdpZHRoOlwiNDBcIixoZWlnaHQ6XCI0MFwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIixvcGFjaXR5OlwiMC44XCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwic2NhbGVcIixmcm9tOlwiMS41XCIsdG86XCIxXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCIsYmVnaW46XCIwLjFzXCIsZHVyOlwiMXNcIixjYWxjTW9kZTpcInNwbGluZVwiLGtleVNwbGluZXM6XCIwLjIgMC44IDAuMiAwLjhcIixrZXlUaW1lczpcIjA7MVwifX0pXSldKSx0KFwiZ1wiLHthdHRyczp7dHJhbnNmb3JtOlwidHJhbnNsYXRlKDI1IDc1KVwifX0sW3QoXCJyZWN0XCIse3N0YXRpY0NsYXNzOlwiY3ViZVwiLGF0dHJzOnt4OlwiLTIwXCIseTpcIi0yMFwiLHdpZHRoOlwiNDBcIixoZWlnaHQ6XCI0MFwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIixvcGFjaXR5OlwiMC43XCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwic2NhbGVcIixmcm9tOlwiMS41XCIsdG86XCIxXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCIsYmVnaW46XCIwLjNzXCIsZHVyOlwiMXNcIixjYWxjTW9kZTpcInNwbGluZVwiLGtleVNwbGluZXM6XCIwLjIgMC44IDAuMiAwLjhcIixrZXlUaW1lczpcIjA7MVwifX0pXSldKSx0KFwiZ1wiLHthdHRyczp7dHJhbnNmb3JtOlwidHJhbnNsYXRlKDc1IDc1KVwifX0sW3QoXCJyZWN0XCIse3N0YXRpY0NsYXNzOlwiY3ViZVwiLGF0dHJzOnt4OlwiLTIwXCIseTpcIi0yMFwiLHdpZHRoOlwiNDBcIixoZWlnaHQ6XCI0MFwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIixvcGFjaXR5OlwiMC42XCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwic2NhbGVcIixmcm9tOlwiMS41XCIsdG86XCIxXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCIsYmVnaW46XCIwLjJzXCIsZHVyOlwiMXNcIixjYWxjTW9kZTpcInNwbGluZVwiLGtleVNwbGluZXM6XCIwLjIgMC44IDAuMiAwLjhcIixrZXlUaW1lczpcIjA7MVwifX0pXSldKV0pfX0sUVNwaW5uZXJEb3RzPXtuYW1lOlwiUVNwaW5uZXJEb3RzXCIsbWl4aW5zOlttaXhpbiQxXSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJzdmdcIix7c3RhdGljQ2xhc3M6XCJxLXNwaW5uZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e2ZpbGw6XCJjdXJyZW50Q29sb3JcIix3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMCAwIDEyMCAzMFwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn19LFt0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjE1XCIsY3k6XCIxNVwiLHI6XCIxNVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiclwiLGZyb206XCIxNVwiLHRvOlwiMTVcIixiZWdpbjpcIjBzXCIsZHVyOlwiMC44c1wiLHZhbHVlczpcIjE1Ozk7MTVcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pLHQoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiZmlsbC1vcGFjaXR5XCIsZnJvbTpcIjFcIix0bzpcIjFcIixiZWdpbjpcIjBzXCIsZHVyOlwiMC44c1wiLHZhbHVlczpcIjE7LjU7MVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjYwXCIsY3k6XCIxNVwiLHI6XCI5XCIsXCJmaWxsLW9wYWNpdHlcIjpcIi4zXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJyXCIsZnJvbTpcIjlcIix0bzpcIjlcIixiZWdpbjpcIjBzXCIsZHVyOlwiMC44c1wiLHZhbHVlczpcIjk7MTU7OVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSksdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJmaWxsLW9wYWNpdHlcIixmcm9tOlwiLjVcIix0bzpcIi41XCIsYmVnaW46XCIwc1wiLGR1cjpcIjAuOHNcIix2YWx1ZXM6XCIuNTsxOy41XCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiMTA1XCIsY3k6XCIxNVwiLHI6XCIxNVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiclwiLGZyb206XCIxNVwiLHRvOlwiMTVcIixiZWdpbjpcIjBzXCIsZHVyOlwiMC44c1wiLHZhbHVlczpcIjE1Ozk7MTVcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pLHQoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiZmlsbC1vcGFjaXR5XCIsZnJvbTpcIjFcIix0bzpcIjFcIixiZWdpbjpcIjBzXCIsZHVyOlwiMC44c1wiLHZhbHVlczpcIjE7LjU7MVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKV0pfX0sUVNwaW5uZXJGYWNlYm9vaz17bmFtZTpcIlFTcGlubmVyRmFjZWJvb2tcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7d2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjAgMCAxMDAgMTAwXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHByZXNlcnZlQXNwZWN0UmF0aW86XCJ4TWlkWU1pZFwifX0sW3QoXCJnXCIse2F0dHJzOnt0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMjAgNTApXCJ9fSxbdChcInJlY3RcIix7YXR0cnM6e3g6XCItMTBcIix5OlwiLTMwXCIsd2lkdGg6XCIyMFwiLGhlaWdodDpcIjYwXCIsZmlsbDpcImN1cnJlbnRDb2xvclwiLG9wYWNpdHk6XCIwLjZcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJzY2FsZVwiLGZyb206XCIyXCIsdG86XCIxXCIsYmVnaW46XCIwc1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwiLGR1cjpcIjFzXCIsY2FsY01vZGU6XCJzcGxpbmVcIixrZXlTcGxpbmVzOlwiMC4xIDAuOSAwLjQgMVwiLGtleVRpbWVzOlwiMDsxXCIsdmFsdWVzOlwiMjsxXCJ9fSldKV0pLHQoXCJnXCIse2F0dHJzOnt0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoNTAgNTApXCJ9fSxbdChcInJlY3RcIix7YXR0cnM6e3g6XCItMTBcIix5OlwiLTMwXCIsd2lkdGg6XCIyMFwiLGhlaWdodDpcIjYwXCIsZmlsbDpcImN1cnJlbnRDb2xvclwiLG9wYWNpdHk6XCIwLjhcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJzY2FsZVwiLGZyb206XCIyXCIsdG86XCIxXCIsYmVnaW46XCIwLjFzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCIsZHVyOlwiMXNcIixjYWxjTW9kZTpcInNwbGluZVwiLGtleVNwbGluZXM6XCIwLjEgMC45IDAuNCAxXCIsa2V5VGltZXM6XCIwOzFcIix2YWx1ZXM6XCIyOzFcIn19KV0pXSksdChcImdcIix7YXR0cnM6e3RyYW5zZm9ybTpcInRyYW5zbGF0ZSg4MCA1MClcIn19LFt0KFwicmVjdFwiLHthdHRyczp7eDpcIi0xMFwiLHk6XCItMzBcIix3aWR0aDpcIjIwXCIsaGVpZ2h0OlwiNjBcIixmaWxsOlwiY3VycmVudENvbG9yXCIsb3BhY2l0eTpcIjAuOVwifX0sW3QoXCJhbmltYXRlVHJhbnNmb3JtXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwidHJhbnNmb3JtXCIsdHlwZTpcInNjYWxlXCIsZnJvbTpcIjJcIix0bzpcIjFcIixiZWdpbjpcIjAuMnNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIixkdXI6XCIxc1wiLGNhbGNNb2RlOlwic3BsaW5lXCIsa2V5U3BsaW5lczpcIjAuMSAwLjkgMC40IDFcIixrZXlUaW1lczpcIjA7MVwiLHZhbHVlczpcIjI7MVwifX0pXSldKV0pfX0sUVNwaW5uZXJHZWFycz17bmFtZTpcIlFTcGlubmVyR2VhcnNcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7d2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjAgMCAxMDAgMTAwXCIscHJlc2VydmVBc3BlY3RSYXRpbzpcInhNaWRZTWlkXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifX0sW3QoXCJnXCIse2F0dHJzOnt0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoLTIwLC0yMClcIn19LFt0KFwicGF0aFwiLHthdHRyczp7ZDpcIk03OS45LDUyLjZDODAsNTEuOCw4MCw1MC45LDgwLDUwczAtMS44LTAuMS0yLjZsLTUuMS0wLjRjLTAuMy0yLjQtMC45LTQuNi0xLjgtNi43bDQuMi0yLjljLTAuNy0xLjYtMS42LTMuMS0yLjYtNC41IEw3MCwzNWMtMS40LTEuOS0zLjEtMy41LTQuOS00LjlsMi4yLTQuNmMtMS40LTEtMi45LTEuOS00LjUtMi42TDU5LjgsMjdjLTIuMS0wLjktNC40LTEuNS02LjctMS44bC0wLjQtNS4xQzUxLjgsMjAsNTAuOSwyMCw1MCwyMCBzLTEuOCwwLTIuNiwwLjFsLTAuNCw1LjFjLTIuNCwwLjMtNC42LDAuOS02LjcsMS44bC0yLjktNC4xYy0xLjYsMC43LTMuMSwxLjYtNC41LDIuNmwyLjEsNC42Yy0xLjksMS40LTMuNSwzLjEtNSw0LjlsLTQuNS0yLjEgYy0xLDEuNC0xLjksMi45LTIuNiw0LjVsNC4xLDIuOWMtMC45LDIuMS0xLjUsNC40LTEuOCw2LjhsLTUsMC40QzIwLDQ4LjIsMjAsNDkuMSwyMCw1MHMwLDEuOCwwLjEsMi42bDUsMC40IGMwLjMsMi40LDAuOSw0LjcsMS44LDYuOGwtNC4xLDIuOWMwLjcsMS42LDEuNiwzLjEsMi42LDQuNWw0LjUtMi4xYzEuNCwxLjksMy4xLDMuNSw1LDQuOWwtMi4xLDQuNmMxLjQsMSwyLjksMS45LDQuNSwyLjZsMi45LTQuMSBjMi4xLDAuOSw0LjQsMS41LDYuNywxLjhsMC40LDUuMUM0OC4yLDgwLDQ5LjEsODAsNTAsODBzMS44LDAsMi42LTAuMWwwLjQtNS4xYzIuMy0wLjMsNC42LTAuOSw2LjctMS44bDIuOSw0LjIgYzEuNi0wLjcsMy4xLTEuNiw0LjUtMi42TDY1LDY5LjljMS45LTEuNCwzLjUtMyw0LjktNC45bDQuNiwyLjJjMS0xLjQsMS45LTIuOSwyLjYtNC41TDczLDU5LjhjMC45LTIuMSwxLjUtNC40LDEuOC02LjdMNzkuOSw1Mi42IHogTTUwLDY1Yy04LjMsMC0xNS02LjctMTUtMTVjMC04LjMsNi43LTE1LDE1LTE1czE1LDYuNywxNSwxNUM2NSw1OC4zLDU4LjMsNjUsNTAsNjV6XCIsZmlsbDpcImN1cnJlbnRDb2xvclwifX0sW3QoXCJhbmltYXRlVHJhbnNmb3JtXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwidHJhbnNmb3JtXCIsdHlwZTpcInJvdGF0ZVwiLGZyb206XCI5MCA1MCA1MFwiLHRvOlwiMCA1MCA1MFwiLGR1cjpcIjFzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKV0pLHQoXCJnXCIse2F0dHJzOnt0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMjAsMjApIHJvdGF0ZSgxNSA1MCA1MClcIn19LFt0KFwicGF0aFwiLHthdHRyczp7ZDpcIk03OS45LDUyLjZDODAsNTEuOCw4MCw1MC45LDgwLDUwczAtMS44LTAuMS0yLjZsLTUuMS0wLjRjLTAuMy0yLjQtMC45LTQuNi0xLjgtNi43bDQuMi0yLjljLTAuNy0xLjYtMS42LTMuMS0yLjYtNC41IEw3MCwzNWMtMS40LTEuOS0zLjEtMy41LTQuOS00LjlsMi4yLTQuNmMtMS40LTEtMi45LTEuOS00LjUtMi42TDU5LjgsMjdjLTIuMS0wLjktNC40LTEuNS02LjctMS44bC0wLjQtNS4xQzUxLjgsMjAsNTAuOSwyMCw1MCwyMCBzLTEuOCwwLTIuNiwwLjFsLTAuNCw1LjFjLTIuNCwwLjMtNC42LDAuOS02LjcsMS44bC0yLjktNC4xYy0xLjYsMC43LTMuMSwxLjYtNC41LDIuNmwyLjEsNC42Yy0xLjksMS40LTMuNSwzLjEtNSw0LjlsLTQuNS0yLjEgYy0xLDEuNC0xLjksMi45LTIuNiw0LjVsNC4xLDIuOWMtMC45LDIuMS0xLjUsNC40LTEuOCw2LjhsLTUsMC40QzIwLDQ4LjIsMjAsNDkuMSwyMCw1MHMwLDEuOCwwLjEsMi42bDUsMC40IGMwLjMsMi40LDAuOSw0LjcsMS44LDYuOGwtNC4xLDIuOWMwLjcsMS42LDEuNiwzLjEsMi42LDQuNWw0LjUtMi4xYzEuNCwxLjksMy4xLDMuNSw1LDQuOWwtMi4xLDQuNmMxLjQsMSwyLjksMS45LDQuNSwyLjZsMi45LTQuMSBjMi4xLDAuOSw0LjQsMS41LDYuNywxLjhsMC40LDUuMUM0OC4yLDgwLDQ5LjEsODAsNTAsODBzMS44LDAsMi42LTAuMWwwLjQtNS4xYzIuMy0wLjMsNC42LTAuOSw2LjctMS44bDIuOSw0LjIgYzEuNi0wLjcsMy4xLTEuNiw0LjUtMi42TDY1LDY5LjljMS45LTEuNCwzLjUtMyw0LjktNC45bDQuNiwyLjJjMS0xLjQsMS45LTIuOSwyLjYtNC41TDczLDU5LjhjMC45LTIuMSwxLjUtNC40LDEuOC02LjdMNzkuOSw1Mi42IHogTTUwLDY1Yy04LjMsMC0xNS02LjctMTUtMTVjMC04LjMsNi43LTE1LDE1LTE1czE1LDYuNywxNSwxNUM2NSw1OC4zLDU4LjMsNjUsNTAsNjV6XCIsZmlsbDpcImN1cnJlbnRDb2xvclwifX0sW3QoXCJhbmltYXRlVHJhbnNmb3JtXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwidHJhbnNmb3JtXCIsdHlwZTpcInJvdGF0ZVwiLGZyb206XCIwIDUwIDUwXCIsdG86XCI5MCA1MCA1MFwiLGR1cjpcIjFzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKV0pXSl9fSxRU3Bpbm5lckdyaWQ9e25hbWU6XCJRU3Bpbm5lckdyaWRcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7ZmlsbDpcImN1cnJlbnRDb2xvclwiLHdpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHZpZXdCb3g6XCIwIDAgMTA1IDEwNVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn19LFt0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjEyLjVcIixjeTpcIjEyLjVcIixyOlwiMTIuNVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiZmlsbC1vcGFjaXR5XCIsYmVnaW46XCIwc1wiLGR1cjpcIjFzXCIsdmFsdWVzOlwiMTsuMjsxXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiMTIuNVwiLGN5OlwiNTIuNVwiLHI6XCIxMi41XCIsXCJmaWxsLW9wYWNpdHlcIjpcIi41XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJmaWxsLW9wYWNpdHlcIixiZWdpbjpcIjEwMG1zXCIsZHVyOlwiMXNcIix2YWx1ZXM6XCIxOy4yOzFcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCI1Mi41XCIsY3k6XCIxMi41XCIscjpcIjEyLjVcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImZpbGwtb3BhY2l0eVwiLGJlZ2luOlwiMzAwbXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjE7LjI7MVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjUyLjVcIixjeTpcIjUyLjVcIixyOlwiMTIuNVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiZmlsbC1vcGFjaXR5XCIsYmVnaW46XCI2MDBtc1wiLGR1cjpcIjFzXCIsdmFsdWVzOlwiMTsuMjsxXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiOTIuNVwiLGN5OlwiMTIuNVwiLHI6XCIxMi41XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJmaWxsLW9wYWNpdHlcIixiZWdpbjpcIjgwMG1zXCIsZHVyOlwiMXNcIix2YWx1ZXM6XCIxOy4yOzFcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCI5Mi41XCIsY3k6XCI1Mi41XCIscjpcIjEyLjVcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImZpbGwtb3BhY2l0eVwiLGJlZ2luOlwiNDAwbXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjE7LjI7MVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjEyLjVcIixjeTpcIjkyLjVcIixyOlwiMTIuNVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiZmlsbC1vcGFjaXR5XCIsYmVnaW46XCI3MDBtc1wiLGR1cjpcIjFzXCIsdmFsdWVzOlwiMTsuMjsxXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiNTIuNVwiLGN5OlwiOTIuNVwiLHI6XCIxMi41XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJmaWxsLW9wYWNpdHlcIixiZWdpbjpcIjUwMG1zXCIsZHVyOlwiMXNcIix2YWx1ZXM6XCIxOy4yOzFcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCI5Mi41XCIsY3k6XCI5Mi41XCIscjpcIjEyLjVcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImZpbGwtb3BhY2l0eVwiLGJlZ2luOlwiMjAwbXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjE7LjI7MVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKV0pfX0sUVNwaW5uZXJIZWFydHM9e25hbWU6XCJRU3Bpbm5lckhlYXJ0c1wiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOntmaWxsOlwiY3VycmVudENvbG9yXCIsd2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjAgMCAxNDAgNjRcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9fSxbdChcInBhdGhcIix7YXR0cnM6e2Q6XCJNMzAuMjYyIDU3LjAyTDcuMTk1IDQwLjcyM2MtNS44NC0zLjk3Ni03LjU2LTEyLjA2LTMuODQyLTE4LjA2MyAzLjcxNS02IDExLjQ2Ny03LjY1IDE3LjMwNi0zLjY4bDQuNTIgMy43NiAyLjYtNS4yNzRjMy43MTYtNi4wMDIgMTEuNDctNy42NSAxNy4zMDQtMy42OCA1Ljg0IDMuOTcgNy41NiAxMi4wNTQgMy44NDIgMTguMDYyTDM0LjQ5IDU2LjExOGMtLjg5NyAxLjUxMi0yLjc5MyAxLjkxNS00LjIyOC45elwiLFwiZmlsbC1vcGFjaXR5XCI6XCIuNVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiZmlsbC1vcGFjaXR5XCIsYmVnaW46XCIwc1wiLGR1cjpcIjEuNHNcIix2YWx1ZXM6XCIwLjU7MTswLjVcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcInBhdGhcIix7YXR0cnM6e2Q6XCJNMTA1LjUxMiA1Ni4xMmwtMTQuNDQtMjQuMjcyYy0zLjcxNi02LjAwOC0xLjk5Ni0xNC4wOTMgMy44NDMtMTguMDYyIDUuODM1LTMuOTcgMTMuNTg4LTIuMzIyIDE3LjMwNiAzLjY4bDIuNiA1LjI3NCA0LjUyLTMuNzZjNS44NC0zLjk3IDEzLjU5My0yLjMyIDE3LjMwOCAzLjY4IDMuNzE4IDYuMDAzIDEuOTk4IDE0LjA4OC0zLjg0MiAxOC4wNjRMMTA5Ljc0IDU3LjAyYy0xLjQzNCAxLjAxNC0zLjMzLjYxLTQuMjI4LS45elwiLFwiZmlsbC1vcGFjaXR5XCI6XCIuNVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiZmlsbC1vcGFjaXR5XCIsYmVnaW46XCIwLjdzXCIsZHVyOlwiMS40c1wiLHZhbHVlczpcIjAuNTsxOzAuNVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwicGF0aFwiLHthdHRyczp7ZDpcIk02Ny40MDggNTcuODM0bC0yMy4wMS0yNC45OGMtNS44NjQtNi4xNS01Ljg2NC0xNi4xMDggMC0yMi4yNDggNS44Ni02LjE0IDE1LjM3LTYuMTQgMjEuMjM0IDBMNzAgMTYuMTY4bDQuMzY4LTUuNTYyYzUuODYzLTYuMTQgMTUuMzc1LTYuMTQgMjEuMjM1IDAgNS44NjMgNi4xNCA1Ljg2MyAxNi4wOTggMCAyMi4yNDdsLTIzLjAwNyAyNC45OGMtMS40MyAxLjU1Ni0zLjc1NyAxLjU1Ni01LjE4OCAwelwifX0pXSl9fSxRU3Bpbm5lckhvdXJnbGFzcz17bmFtZTpcIlFTcGlubmVySG91cmdsYXNzXCIsbWl4aW5zOlttaXhpbiQxXSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJzdmdcIix7c3RhdGljQ2xhc3M6XCJxLXNwaW5uZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e3dpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHZpZXdCb3g6XCIwIDAgMTAwIDEwMFwiLHByZXNlcnZlQXNwZWN0UmF0aW86XCJ4TWlkWU1pZFwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn19LFt0KFwiZ1wiLFt0KFwicGF0aFwiLHtzdGF0aWNDbGFzczpcImdsYXNzXCIsYXR0cnM6e2ZpbGw6XCJub25lXCIsc3Ryb2tlOlwiY3VycmVudENvbG9yXCIsXCJzdHJva2Utd2lkdGhcIjpcIjVcIixcInN0cm9rZS1taXRlcmxpbWl0XCI6XCIxMFwiLGQ6XCJNNTguNCw1MS43Yy0wLjktMC45LTEuNC0yLTEuNC0yLjNzMC41LTAuNCwxLjQtMS40IEM3MC44LDQzLjgsNzkuOCwzMC41LDgwLDE1LjVINzBIMzBIMjBjMC4yLDE1LDkuMiwyOC4xLDIxLjYsMzIuM2MwLjksMC45LDEuNCwxLjIsMS40LDEuNXMtMC41LDEuNi0xLjQsMi41IEMyOS4yLDU2LjEsMjAuMiw2OS41LDIwLDg1LjVoMTBoNDBoMTBDNzkuOCw2OS41LDcwLjgsNTUuOSw1OC40LDUxLjd6XCJ9fSksdChcImNsaXBQYXRoXCIse2F0dHJzOntpZDpcInVpbC1ob3VyZ2xhc3MtY2xpcDFcIn19LFt0KFwicmVjdFwiLHtzdGF0aWNDbGFzczpcImNsaXBcIixhdHRyczp7eDpcIjE1XCIseTpcIjIwXCIsd2lkdGg6XCI3MFwiLGhlaWdodDpcIjI1XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJoZWlnaHRcIixmcm9tOlwiMjVcIix0bzpcIjBcIixkdXI6XCIxc1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwiLHZsYXVlczpcIjI1OzA7MFwiLGtleVRpbWVzOlwiMDswLjU7MVwifX0pLHQoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwieVwiLGZyb206XCIyMFwiLHRvOlwiNDVcIixkdXI6XCIxc1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwiLHZsYXVlczpcIjIwOzQ1OzQ1XCIsa2V5VGltZXM6XCIwOzAuNTsxXCJ9fSldKV0pLHQoXCJjbGlwUGF0aFwiLHthdHRyczp7aWQ6XCJ1aWwtaG91cmdsYXNzLWNsaXAyXCJ9fSxbdChcInJlY3RcIix7c3RhdGljQ2xhc3M6XCJjbGlwXCIsYXR0cnM6e3g6XCIxNVwiLHk6XCI1NVwiLHdpZHRoOlwiNzBcIixoZWlnaHQ6XCIyNVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiaGVpZ2h0XCIsZnJvbTpcIjBcIix0bzpcIjI1XCIsZHVyOlwiMXNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIix2bGF1ZXM6XCIwOzI1OzI1XCIsa2V5VGltZXM6XCIwOzAuNTsxXCJ9fSksdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ5XCIsZnJvbTpcIjgwXCIsdG86XCI1NVwiLGR1cjpcIjFzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCIsdmxhdWVzOlwiODA7NTU7NTVcIixrZXlUaW1lczpcIjA7MC41OzFcIn19KV0pXSksdChcInBhdGhcIix7c3RhdGljQ2xhc3M6XCJzYW5kXCIsYXR0cnM6e2Q6XCJNMjksMjNjMy4xLDExLjQsMTEuMywxOS41LDIxLDE5LjVTNjcuOSwzNC40LDcxLDIzSDI5elwiLFwiY2xpcC1wYXRoXCI6XCJ1cmwoI3VpbC1ob3VyZ2xhc3MtY2xpcDEpXCIsZmlsbDpcImN1cnJlbnRDb2xvclwifX0pLHQoXCJwYXRoXCIse3N0YXRpY0NsYXNzOlwic2FuZFwiLGF0dHJzOntkOlwiTTcxLjYsNzhjLTMtMTEuNi0xMS41LTIwLTIxLjUtMjBzLTE4LjUsOC40LTIxLjUsMjBINzEuNnpcIixcImNsaXAtcGF0aFwiOlwidXJsKCN1aWwtaG91cmdsYXNzLWNsaXAyKVwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn19KSx0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJyb3RhdGVcIixmcm9tOlwiMCA1MCA1MFwiLHRvOlwiMTgwIDUwIDUwXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCIsZHVyOlwiMXNcIix2YWx1ZXM6XCIwIDUwIDUwOzAgNTAgNTA7MTgwIDUwIDUwXCIsa2V5VGltZXM6XCIwOzAuNzsxXCJ9fSldKV0pfX0sUVNwaW5uZXJJbmZpbml0eT17bmFtZTpcIlFTcGlubmVySW5maW5pdHlcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7d2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjAgMCAxMDAgMTAwXCIscHJlc2VydmVBc3BlY3RSYXRpbzpcInhNaWRZTWlkXCJ9fSxbdChcInBhdGhcIix7YXR0cnM6e2Q6XCJNMjQuMywzMEMxMS40LDMwLDUsNDMuMyw1LDUwczYuNCwyMCwxOS4zLDIwYzE5LjMsMCwzMi4xLTQwLDUxLjQtNDBDODguNiwzMCw5NSw0My4zLDk1LDUwcy02LjQsMjAtMTkuMywyMEM1Ni40LDcwLDQzLjYsMzAsMjQuMywzMHpcIixmaWxsOlwibm9uZVwiLHN0cm9rZTpcImN1cnJlbnRDb2xvclwiLFwic3Ryb2tlLXdpZHRoXCI6XCI4XCIsXCJzdHJva2UtZGFzaGFycmF5XCI6XCIxMC42OTEyMDUzNDI2MTA2NzggMTAuNjkxMjA1MzQyNjEwNjc4XCIsXCJzdHJva2UtZGFzaG9mZnNldFwiOlwiMFwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLWRhc2hvZmZzZXRcIixmcm9tOlwiMFwiLHRvOlwiMjEuMzgyNDEwNjg1MjIxMzU1XCIsYmVnaW46XCIwXCIsZHVyOlwiMnNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIixmaWxsOlwiZnJlZXplXCJ9fSldKV0pfX0sUVNwaW5uZXJfaW9zPXtuYW1lOlwiUVNwaW5uZXJJb3NcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7d2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsc3Ryb2tlOlwiY3VycmVudENvbG9yXCIsZmlsbDpcImN1cnJlbnRDb2xvclwiLHZpZXdCb3g6XCIwIDAgNjQgNjRcIn19LFt0KFwiZ1wiLHthdHRyczp7XCJzdHJva2Utd2lkdGhcIjpcIjRcIixcInN0cm9rZS1saW5lY2FwXCI6XCJyb3VuZFwifX0sW3QoXCJsaW5lXCIse2F0dHJzOnt5MTpcIjE3XCIseTI6XCIyOVwiLHRyYW5zZm9ybTpcInRyYW5zbGF0ZSgzMiwzMikgcm90YXRlKDE4MClcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS1vcGFjaXR5XCIsZHVyOlwiNzUwbXNcIix2YWx1ZXM6XCIxOy44NTsuNzsuNjU7LjU1Oy40NTsuMzU7LjI1Oy4xNTsuMTswOzFcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJsaW5lXCIse2F0dHJzOnt5MTpcIjE3XCIseTI6XCIyOVwiLHRyYW5zZm9ybTpcInRyYW5zbGF0ZSgzMiwzMikgcm90YXRlKDIxMClcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS1vcGFjaXR5XCIsZHVyOlwiNzUwbXNcIix2YWx1ZXM6XCIwOzE7Ljg1Oy43Oy42NTsuNTU7LjQ1Oy4zNTsuMjU7LjE1Oy4xOzBcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJsaW5lXCIse2F0dHJzOnt5MTpcIjE3XCIseTI6XCIyOVwiLHRyYW5zZm9ybTpcInRyYW5zbGF0ZSgzMiwzMikgcm90YXRlKDI0MClcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS1vcGFjaXR5XCIsZHVyOlwiNzUwbXNcIix2YWx1ZXM6XCIuMTswOzE7Ljg1Oy43Oy42NTsuNTU7LjQ1Oy4zNTsuMjU7LjE1Oy4xXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwibGluZVwiLHthdHRyczp7eTE6XCIxN1wiLHkyOlwiMjlcIix0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMzIsMzIpIHJvdGF0ZSgyNzApXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2Utb3BhY2l0eVwiLGR1cjpcIjc1MG1zXCIsdmFsdWVzOlwiLjE1Oy4xOzA7MTsuODU7Ljc7LjY1Oy41NTsuNDU7LjM1Oy4yNTsuMTVcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJsaW5lXCIse2F0dHJzOnt5MTpcIjE3XCIseTI6XCIyOVwiLHRyYW5zZm9ybTpcInRyYW5zbGF0ZSgzMiwzMikgcm90YXRlKDMwMClcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS1vcGFjaXR5XCIsZHVyOlwiNzUwbXNcIix2YWx1ZXM6XCIuMjU7LjE1Oy4xOzA7MTsuODU7Ljc7LjY1Oy41NTsuNDU7LjM1Oy4yNVwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImxpbmVcIix7YXR0cnM6e3kxOlwiMTdcIix5MjpcIjI5XCIsdHJhbnNmb3JtOlwidHJhbnNsYXRlKDMyLDMyKSByb3RhdGUoMzMwKVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLW9wYWNpdHlcIixkdXI6XCI3NTBtc1wiLHZhbHVlczpcIi4zNTsuMjU7LjE1Oy4xOzA7MTsuODU7Ljc7LjY1Oy41NTsuNDU7LjM1XCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwibGluZVwiLHthdHRyczp7eTE6XCIxN1wiLHkyOlwiMjlcIix0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMzIsMzIpIHJvdGF0ZSgwKVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLW9wYWNpdHlcIixkdXI6XCI3NTBtc1wiLHZhbHVlczpcIi40NTsuMzU7LjI1Oy4xNTsuMTswOzE7Ljg1Oy43Oy42NTsuNTU7LjQ1XCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwibGluZVwiLHthdHRyczp7eTE6XCIxN1wiLHkyOlwiMjlcIix0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMzIsMzIpIHJvdGF0ZSgzMClcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS1vcGFjaXR5XCIsZHVyOlwiNzUwbXNcIix2YWx1ZXM6XCIuNTU7LjQ1Oy4zNTsuMjU7LjE1Oy4xOzA7MTsuODU7Ljc7LjY1Oy41NVwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImxpbmVcIix7YXR0cnM6e3kxOlwiMTdcIix5MjpcIjI5XCIsdHJhbnNmb3JtOlwidHJhbnNsYXRlKDMyLDMyKSByb3RhdGUoNjApXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2Utb3BhY2l0eVwiLGR1cjpcIjc1MG1zXCIsdmFsdWVzOlwiLjY1Oy41NTsuNDU7LjM1Oy4yNTsuMTU7LjE7MDsxOy44NTsuNzsuNjVcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJsaW5lXCIse2F0dHJzOnt5MTpcIjE3XCIseTI6XCIyOVwiLHRyYW5zZm9ybTpcInRyYW5zbGF0ZSgzMiwzMikgcm90YXRlKDkwKVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLW9wYWNpdHlcIixkdXI6XCI3NTBtc1wiLHZhbHVlczpcIi43Oy42NTsuNTU7LjQ1Oy4zNTsuMjU7LjE1Oy4xOzA7MTsuODU7LjdcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJsaW5lXCIse2F0dHJzOnt5MTpcIjE3XCIseTI6XCIyOVwiLHRyYW5zZm9ybTpcInRyYW5zbGF0ZSgzMiwzMikgcm90YXRlKDEyMClcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS1vcGFjaXR5XCIsZHVyOlwiNzUwbXNcIix2YWx1ZXM6XCIuODU7Ljc7LjY1Oy41NTsuNDU7LjM1Oy4yNTsuMTU7LjE7MDsxOy44NVwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImxpbmVcIix7YXR0cnM6e3kxOlwiMTdcIix5MjpcIjI5XCIsdHJhbnNmb3JtOlwidHJhbnNsYXRlKDMyLDMyKSByb3RhdGUoMTUwKVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLW9wYWNpdHlcIixkdXI6XCI3NTBtc1wiLHZhbHVlczpcIjE7Ljg1Oy43Oy42NTsuNTU7LjQ1Oy4zNTsuMjU7LjE1Oy4xOzA7MVwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSldKV0pfX0sUVNwaW5uZXJPdmFsPXtuYW1lOlwiUVNwaW5uZXJPdmFsXCIsbWl4aW5zOlttaXhpbiQxXSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJzdmdcIix7c3RhdGljQ2xhc3M6XCJxLXNwaW5uZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e3N0cm9rZTpcImN1cnJlbnRDb2xvclwiLHdpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHZpZXdCb3g6XCIwIDAgMzggMzhcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9fSxbdChcImdcIix7YXR0cnM6e3RyYW5zZm9ybTpcInRyYW5zbGF0ZSgxIDEpXCIsXCJzdHJva2Utd2lkdGhcIjpcIjJcIixmaWxsOlwibm9uZVwiLFwiZmlsbC1ydWxlXCI6XCJldmVub2RkXCJ9fSxbdChcImNpcmNsZVwiLHthdHRyczp7XCJzdHJva2Utb3BhY2l0eVwiOlwiLjVcIixjeDpcIjE4XCIsY3k6XCIxOFwiLHI6XCIxOFwifX0pLHQoXCJwYXRoXCIse2F0dHJzOntkOlwiTTM2IDE4YzAtOS45NC04LjA2LTE4LTE4LTE4XCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwicm90YXRlXCIsZnJvbTpcIjAgMTggMThcIix0bzpcIjM2MCAxOCAxOFwiLGR1cjpcIjFzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKV0pXSl9fSxRU3Bpbm5lclBpZT17bmFtZTpcIlFTcGlubmVyUGllXCIsbWl4aW5zOlttaXhpbiQxXSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJzdmdcIix7c3RhdGljQ2xhc3M6XCJxLXNwaW5uZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e3dpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHZpZXdCb3g6XCIwIDAgMTAwIDEwMFwiLHByZXNlcnZlQXNwZWN0UmF0aW86XCJ4TWlkWU1pZFwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn19LFt0KFwicGF0aFwiLHthdHRyczp7ZDpcIk0wIDUwQTUwIDUwIDAgMCAxIDUwIDBMNTAgNTBMMCA1MFwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIixvcGFjaXR5OlwiMC41XCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwicm90YXRlXCIsZnJvbTpcIjAgNTAgNTBcIix0bzpcIjM2MCA1MCA1MFwiLGR1cjpcIjAuOHNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJwYXRoXCIse2F0dHJzOntkOlwiTTUwIDBBNTAgNTAgMCAwIDEgMTAwIDUwTDUwIDUwTDUwIDBcIixmaWxsOlwiY3VycmVudENvbG9yXCIsb3BhY2l0eTpcIjAuNVwifX0sW3QoXCJhbmltYXRlVHJhbnNmb3JtXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwidHJhbnNmb3JtXCIsdHlwZTpcInJvdGF0ZVwiLGZyb206XCIwIDUwIDUwXCIsdG86XCIzNjAgNTAgNTBcIixkdXI6XCIxLjZzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwicGF0aFwiLHthdHRyczp7ZDpcIk0xMDAgNTBBNTAgNTAgMCAwIDEgNTAgMTAwTDUwIDUwTDEwMCA1MFwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIixvcGFjaXR5OlwiMC41XCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwicm90YXRlXCIsZnJvbTpcIjAgNTAgNTBcIix0bzpcIjM2MCA1MCA1MFwiLGR1cjpcIjIuNHNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJwYXRoXCIse2F0dHJzOntkOlwiTTUwIDEwMEE1MCA1MCAwIDAgMSAwIDUwTDUwIDUwTDUwIDEwMFwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIixvcGFjaXR5OlwiMC41XCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwicm90YXRlXCIsZnJvbTpcIjAgNTAgNTBcIix0bzpcIjM2MCA1MCA1MFwiLGR1cjpcIjMuMnNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pXSl9fSxRU3Bpbm5lclB1ZmY9e25hbWU6XCJRU3Bpbm5lclB1ZmZcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7c3Ryb2tlOlwiY3VycmVudENvbG9yXCIsd2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjAgMCA0NCA0NFwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn19LFt0KFwiZ1wiLHthdHRyczp7ZmlsbDpcIm5vbmVcIixcImZpbGwtcnVsZVwiOlwiZXZlbm9kZFwiLFwic3Ryb2tlLXdpZHRoXCI6XCIyXCJ9fSxbdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCIyMlwiLGN5OlwiMjJcIixyOlwiMVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiclwiLGJlZ2luOlwiMHNcIixkdXI6XCIxLjhzXCIsdmFsdWVzOlwiMTsgMjBcIixjYWxjTW9kZTpcInNwbGluZVwiLGtleVRpbWVzOlwiMDsgMVwiLGtleVNwbGluZXM6XCIwLjE2NSwgMC44NCwgMC40NCwgMVwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pLHQoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLW9wYWNpdHlcIixiZWdpbjpcIjBzXCIsZHVyOlwiMS44c1wiLHZhbHVlczpcIjE7IDBcIixjYWxjTW9kZTpcInNwbGluZVwiLGtleVRpbWVzOlwiMDsgMVwiLGtleVNwbGluZXM6XCIwLjMsIDAuNjEsIDAuMzU1LCAxXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjIyXCIsY3k6XCIyMlwiLHI6XCIxXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJyXCIsYmVnaW46XCItMC45c1wiLGR1cjpcIjEuOHNcIix2YWx1ZXM6XCIxOyAyMFwiLGNhbGNNb2RlOlwic3BsaW5lXCIsa2V5VGltZXM6XCIwOyAxXCIsa2V5U3BsaW5lczpcIjAuMTY1LCAwLjg0LCAwLjQ0LCAxXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSksdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2Utb3BhY2l0eVwiLGJlZ2luOlwiLTAuOXNcIixkdXI6XCIxLjhzXCIsdmFsdWVzOlwiMTsgMFwiLGNhbGNNb2RlOlwic3BsaW5lXCIsa2V5VGltZXM6XCIwOyAxXCIsa2V5U3BsaW5lczpcIjAuMywgMC42MSwgMC4zNTUsIDFcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pXSldKX19LFFTcGlubmVyUmFkaW89e25hbWU6XCJRU3Bpbm5lclJhZGlvXCIsbWl4aW5zOlttaXhpbiQxXSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJzdmdcIix7c3RhdGljQ2xhc3M6XCJxLXNwaW5uZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e3dpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHZpZXdCb3g6XCIwIDAgMTAwIDEwMFwiLHByZXNlcnZlQXNwZWN0UmF0aW86XCJ4TWlkWU1pZFwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn19LFt0KFwiZ1wiLHthdHRyczp7dHJhbnNmb3JtOlwic2NhbGUoMC41NSlcIn19LFt0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjMwXCIsY3k6XCIxNTBcIixyOlwiMzBcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJvcGFjaXR5XCIsZnJvbTpcIjBcIix0bzpcIjFcIixkdXI6XCIxc1wiLGJlZ2luOlwiMFwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwiLGtleVRpbWVzOlwiMDswLjU7MVwiLHZhbHVlczpcIjA7MTsxXCJ9fSldKSx0KFwicGF0aFwiLHthdHRyczp7ZDpcIk05MCwxNTBoMzBjMC00OS43LTQwLjMtOTAtOTAtOTB2MzBDNjMuMSw5MCw5MCwxMTYuOSw5MCwxNTB6XCIsZmlsbDpcImN1cnJlbnRDb2xvclwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwib3BhY2l0eVwiLGZyb206XCIwXCIsdG86XCIxXCIsZHVyOlwiMXNcIixiZWdpbjpcIjAuMVwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwiLGtleVRpbWVzOlwiMDswLjU7MVwiLHZhbHVlczpcIjA7MTsxXCJ9fSldKSx0KFwicGF0aFwiLHthdHRyczp7ZDpcIk0xNTAsMTUwaDMwQzE4MCw2Ny4yLDExMi44LDAsMzAsMHYzMEM5Ni4zLDMwLDE1MCw4My43LDE1MCwxNTB6XCIsZmlsbDpcImN1cnJlbnRDb2xvclwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwib3BhY2l0eVwiLGZyb206XCIwXCIsdG86XCIxXCIsZHVyOlwiMXNcIixiZWdpbjpcIjAuMlwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwiLGtleVRpbWVzOlwiMDswLjU7MVwiLHZhbHVlczpcIjA7MTsxXCJ9fSldKV0pXSl9fSxRU3Bpbm5lclJpbmdzPXtuYW1lOlwiUVNwaW5uZXJSaW5nc1wiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOntzdHJva2U6XCJjdXJyZW50Q29sb3JcIix3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMCAwIDQ1IDQ1XCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifX0sW3QoXCJnXCIse2F0dHJzOntmaWxsOlwibm9uZVwiLFwiZmlsbC1ydWxlXCI6XCJldmVub2RkXCIsdHJhbnNmb3JtOlwidHJhbnNsYXRlKDEgMSlcIixcInN0cm9rZS13aWR0aFwiOlwiMlwifX0sW3QoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiMjJcIixjeTpcIjIyXCIscjpcIjZcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInJcIixiZWdpbjpcIjEuNXNcIixkdXI6XCIzc1wiLHZhbHVlczpcIjY7MjJcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pLHQoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLW9wYWNpdHlcIixiZWdpbjpcIjEuNXNcIixkdXI6XCIzc1wiLHZhbHVlczpcIjE7MFwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSksdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2Utd2lkdGhcIixiZWdpbjpcIjEuNXNcIixkdXI6XCIzc1wiLHZhbHVlczpcIjI7MFwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjIyXCIsY3k6XCIyMlwiLHI6XCI2XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJyXCIsYmVnaW46XCIzc1wiLGR1cjpcIjNzXCIsdmFsdWVzOlwiNjsyMlwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSksdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2Utb3BhY2l0eVwiLGJlZ2luOlwiM3NcIixkdXI6XCIzc1wiLHZhbHVlczpcIjE7MFwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSksdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2Utd2lkdGhcIixiZWdpbjpcIjNzXCIsZHVyOlwiM3NcIix2YWx1ZXM6XCIyOzBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCIyMlwiLGN5OlwiMjJcIixyOlwiOFwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiclwiLGJlZ2luOlwiMHNcIixkdXI6XCIxLjVzXCIsdmFsdWVzOlwiNjsxOzI7Mzs0OzU7NlwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKV0pXSl9fSxRU3Bpbm5lclRhaWw9e25hbWU6XCJRU3Bpbm5lclRhaWxcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7d2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjAgMCAzOCAzOFwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn19LFt0KFwiZGVmc1wiLFt0KFwibGluZWFyR3JhZGllbnRcIix7YXR0cnM6e3gxOlwiOC4wNDIlXCIseTE6XCIwJVwiLHgyOlwiNjUuNjgyJVwiLHkyOlwiMjMuODY1JVwiLGlkOlwiYVwifX0sW3QoXCJzdG9wXCIse2F0dHJzOntcInN0b3AtY29sb3JcIjpcImN1cnJlbnRDb2xvclwiLFwic3RvcC1vcGFjaXR5XCI6XCIwXCIsb2Zmc2V0OlwiMCVcIn19KSx0KFwic3RvcFwiLHthdHRyczp7XCJzdG9wLWNvbG9yXCI6XCJjdXJyZW50Q29sb3JcIixcInN0b3Atb3BhY2l0eVwiOlwiLjYzMVwiLG9mZnNldDpcIjYzLjE0NiVcIn19KSx0KFwic3RvcFwiLHthdHRyczp7XCJzdG9wLWNvbG9yXCI6XCJjdXJyZW50Q29sb3JcIixvZmZzZXQ6XCIxMDAlXCJ9fSldKV0pLHQoXCJnXCIse2F0dHJzOnt0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMSAxKVwiLGZpbGw6XCJub25lXCIsXCJmaWxsLXJ1bGVcIjpcImV2ZW5vZGRcIn19LFt0KFwicGF0aFwiLHthdHRyczp7ZDpcIk0zNiAxOGMwLTkuOTQtOC4wNi0xOC0xOC0xOFwiLHN0cm9rZTpcInVybCgjYSlcIixcInN0cm9rZS13aWR0aFwiOlwiMlwifX0sW3QoXCJhbmltYXRlVHJhbnNmb3JtXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwidHJhbnNmb3JtXCIsdHlwZTpcInJvdGF0ZVwiLGZyb206XCIwIDE4IDE4XCIsdG86XCIzNjAgMTggMThcIixkdXI6XCIwLjlzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwiY2lyY2xlXCIse2F0dHJzOntmaWxsOlwiY3VycmVudENvbG9yXCIsY3g6XCIzNlwiLGN5OlwiMThcIixyOlwiMVwifX0sW3QoXCJhbmltYXRlVHJhbnNmb3JtXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwidHJhbnNmb3JtXCIsdHlwZTpcInJvdGF0ZVwiLGZyb206XCIwIDE4IDE4XCIsdG86XCIzNjAgMTggMThcIixkdXI6XCIwLjlzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKV0pXSl9fSxTdGVwVGFiPXtuYW1lOlwiUVN0ZXBUYWJcIixkaXJlY3RpdmVzOntSaXBwbGU6UmlwcGxlfSxwcm9wczpbXCJ2bVwiXSxjb21wdXRlZDp7aGFzTmF2aWdhdGlvbjpmdW5jdGlvbigpe3JldHVybiF0aGlzLnZtLl9fc3RlcHBlci5ub0hlYWRlck5hdmlnYXRpb259LGNsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm57XCJzdGVwLWVycm9yXCI6dGhpcy52bS5lcnJvcixcInN0ZXAtYWN0aXZlXCI6dGhpcy52bS5hY3RpdmUsXCJzdGVwLWRvbmVcIjp0aGlzLnZtLmRvbmUsXCJzdGVwLW5hdmlnYXRpb25cIjp0aGlzLnZtLmRvbmUmJnRoaXMuaGFzTmF2aWdhdGlvbixcInN0ZXAtd2FpdGluZ1wiOnRoaXMudm0ud2FpdGluZyxcInN0ZXAtZGlzYWJsZWRcIjp0aGlzLnZtLmRpc2FibGUsXCJzdGVwLWNvbG9yZWRcIjp0aGlzLnZtLmFjdGl2ZXx8dGhpcy52bS5kb25lLFwiaXRlbXMtY2VudGVyXCI6IXRoaXMudm0uX19zdGVwcGVyLnZlcnRpY2FsLFwiaXRlbXMtc3RhcnRcIjp0aGlzLnZtLl9fc3RlcHBlci52ZXJ0aWNhbCxcInEtc3RlcHBlci1maXJzdFwiOnRoaXMudm0uZmlyc3QsXCJxLXN0ZXBwZXItbGFzdFwiOnRoaXMudm0ubGFzdH19fSxtZXRob2RzOntfX3NlbGVjdDpmdW5jdGlvbigpe3RoaXMuaGFzTmF2aWdhdGlvbiYmdGhpcy52bS5zZWxlY3QoKX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLnZtLnN0ZXBJY29uP3QoUUljb24se3Byb3BzOntuYW1lOnRoaXMudm0uc3RlcEljb259fSk6dChcInNwYW5cIixbdGhpcy52bS5pbm5lck9yZGVyKzFdKTtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc3RlcHBlci10YWIgY29sLWdyb3cgZmxleCBuby13cmFwIHJlbGF0aXZlLXBvc2l0aW9uXCIsY2xhc3M6dGhpcy5jbGFzc2VzLG9uOntjbGljazp0aGlzLl9fc2VsZWN0fSxkaXJlY3RpdmVzOnRoaXMuaGFzTmF2aWdhdGlvbj9be25hbWU6XCJyaXBwbGVcIix2YWx1ZTp0aGlzLnZtLmRvbmV9XTpudWxsfSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc3RlcHBlci1kb3Qgcm93IGZsZXgtY2VudGVyIHEtc3RlcHBlci1saW5lIHJlbGF0aXZlLXBvc2l0aW9uXCJ9LFt0KFwic3BhblwiLHtzdGF0aWNDbGFzczpcInJvdyBmbGV4LWNlbnRlclwifSxbZV0pXSksdGhpcy52bS50aXRsZT90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zdGVwcGVyLWxhYmVsIHEtc3RlcHBlci1saW5lIHJlbGF0aXZlLXBvc2l0aW9uXCJ9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zdGVwcGVyLXRpdGxlXCJ9LFt0aGlzLnZtLnRpdGxlXSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc3RlcHBlci1zdWJ0aXRsZVwifSxbdGhpcy52bS5zdWJ0aXRsZV0pXSk6bnVsbF0pfX0sUVN0ZXA9e25hbWU6XCJRU3RlcFwiLGluamVjdDp7X19zdGVwcGVyOntkZWZhdWx0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcihcIlFTdGVwIG5lZWRzIHRvIGJlIGNoaWxkIG9mIFFTdGVwcGVyXCIpfX19LHByb3BzOntuYW1lOnt0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIHVpZCgpfX0sZGVmYXVsdDpCb29sZWFuLHRpdGxlOnt0eXBlOlN0cmluZyxyZXF1aXJlZDohMH0sc3VidGl0bGU6U3RyaW5nLGljb246U3RyaW5nLG9yZGVyOltOdW1iZXIsU3RyaW5nXSxlcnJvcjpCb29sZWFuLGFjdGl2ZUljb246U3RyaW5nLGVycm9ySWNvbjpTdHJpbmcsZG9uZUljb246U3RyaW5nLGRpc2FibGU6Qm9vbGVhbn0sd2F0Y2g6e29yZGVyOmZ1bmN0aW9uKCl7dGhpcy5fX3N0ZXBwZXIuX19zb3J0U3RlcHMoKX19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57aW5uZXJPcmRlcjowLGZpcnN0OiExLGxhc3Q6ITF9fSxjb21wdXRlZDp7c3RlcEljb246ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9fc3RlcHBlcjtyZXR1cm4gdGhpcy5hY3RpdmU/dGhpcy5hY3RpdmVJY29ufHx0LmFjdGl2ZUljb258fHRoaXMuJHEuaWNvbi5zdGVwcGVyLmFjdGl2ZTp0aGlzLmVycm9yP3RoaXMuZXJyb3JJY29ufHx0LmVycm9ySWNvbnx8dGhpcy4kcS5pY29uLnN0ZXBwZXIuZXJyb3I6dGhpcy5kb25lJiYhdGhpcy5kaXNhYmxlP3RoaXMuZG9uZUljb258fHQuZG9uZUljb258fHRoaXMuJHEuaWNvbi5zdGVwcGVyLmRvbmU6dGhpcy5pY29ufSxhY3R1YWxPcmRlcjpmdW5jdGlvbigpe3JldHVybiBwYXJzZUludCh0aGlzLm9yZGVyfHx0aGlzLmlubmVyT3JkZXIsMTApfSxhY3RpdmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX3N0ZXBwZXIuc3RlcD09PXRoaXMubmFtZX0sZG9uZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLmRpc2FibGUmJnRoaXMuX19zdGVwcGVyLmN1cnJlbnRPcmRlcj50aGlzLmlubmVyT3JkZXJ9LHdhaXRpbmc6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5kaXNhYmxlJiZ0aGlzLl9fc3RlcHBlci5jdXJyZW50T3JkZXI8dGhpcy5pbm5lck9yZGVyfSxzdHlsZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuYWN0dWFsT3JkZXI7cmV0dXJue1wiLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cFwiOnQsXCItbXMtZmxleC1vcmRlclwiOnQsb3JkZXI6dH19LGNsYXNzZXM6ZnVuY3Rpb24oKXtpZighdGhpcy5fX3N0ZXBwZXIudmVydGljYWwpe3ZhciB0PVtdO3JldHVybiF0aGlzLmFjdGl2ZSYmdC5wdXNoKFwiaGlkZGVuXCIpLG51bGwhPT10aGlzLl9fc3RlcHBlci5hbmltYXRpb24mJnQucHVzaCh0aGlzLl9fc3RlcHBlci5hbmltYXRpb24pLHR9fX0sbWV0aG9kczp7c2VsZWN0OmZ1bmN0aW9uKCl7dGhpcy5kb25lJiZ0aGlzLl9fc3RlcHBlci5nb1RvU3RlcCh0aGlzLm5hbWUpfSxfX2dldENvbnRhaW5lcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmFjdGl2ZT90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zdGVwcGVyLXN0ZXAtY29udGVudFwiLGNsYXNzOnRoaXMuY2xhc3Nlc30sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXN0ZXBwZXItc3RlcC1pbm5lclwifSx0aGlzLiRzbG90cy5kZWZhdWx0KV0pOm51bGw7cmV0dXJuIHRoaXMuX19zdGVwcGVyLnZlcnRpY2FsP3QoUVNsaWRlVHJhbnNpdGlvbixbZV0pOmV9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy5fX3N0ZXBwZXIuX19yZWdpc3RlclN0ZXAodGhpcyksdGhpcy5kZWZhdWx0JiZ0aGlzLnNlbGVjdCgpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5fX3N0ZXBwZXIuX191bnJlZ2lzdGVyU3RlcCh0aGlzKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zdGVwcGVyLXN0ZXBcIixzdHlsZTp0aGlzLnN0eWxlfSxbdGhpcy5fX3N0ZXBwZXIudmVydGljYWw/dChTdGVwVGFiLHtwcm9wczp7dm06dGhpc319KTpudWxsLHRoaXMuX19nZXRDb250YWluZXIodCldKX19LFFTdGVwcGVyPXtuYW1lOlwiUVN0ZXBwZXJcIixwcm9wczp7dmFsdWU6W051bWJlcixTdHJpbmddLGNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSx2ZXJ0aWNhbDpCb29sZWFuLGFsdGVybmF0aXZlTGFiZWxzOkJvb2xlYW4sbm9IZWFkZXJOYXZpZ2F0aW9uOkJvb2xlYW4sY29udHJhY3RhYmxlOkJvb2xlYW4sZG9uZUljb246Qm9vbGVhbixhY3RpdmVJY29uOkJvb2xlYW4sZXJyb3JJY29uOkJvb2xlYW59LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57YW5pbWF0aW9uOm51bGwsc3RlcDp0aGlzLnZhbHVlfHxudWxsLHN0ZXBzOltdfX0scHJvdmlkZTpmdW5jdGlvbigpe3JldHVybntfX3N0ZXBwZXI6dGhpc319LHdhdGNoOnt2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLmdvVG9TdGVwKHQpfSxzdGVwOmZ1bmN0aW9uKHQsZSl7aWYoIXRoaXMudmVydGljYWwpe3ZhciBpPXRoaXMuc3RlcHMuZmluZEluZGV4KGZ1bmN0aW9uKGUpe3JldHVybiBlLm5hbWU9PT10fSkscz10aGlzLnN0ZXBzLmZpbmRJbmRleChmdW5jdGlvbih0KXtyZXR1cm4gdC5uYW1lPT09ZX0pO3RoaXMuYW5pbWF0aW9uPWk8cz9cImFuaW1hdGUtZmFkZS1sZWZ0XCI6aT5zP1wiYW5pbWF0ZS1mYWRlLXJpZ2h0XCI6bnVsbH19fSxjb21wdXRlZDp7Y2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PVtcInEtc3RlcHBlci1cIisodGhpcy52ZXJ0aWNhbD9cInZlcnRpY2FsXCI6XCJob3Jpem9udGFsXCIpLFwidGV4dC1cIit0aGlzLmNvbG9yXTtyZXR1cm4gdGhpcy5jb250cmFjdGFibGUmJnQucHVzaChcInEtc3RlcHBlci1jb250cmFjdGFibGVcIiksdH0saGFzU3RlcHM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGVwcy5sZW5ndGg+MH0sY3VycmVudFN0ZXA6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKHRoaXMuaGFzU3RlcHMpcmV0dXJuIHRoaXMuc3RlcHMuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5uYW1lPT09dC5zdGVwfSl9LGN1cnJlbnRPcmRlcjpmdW5jdGlvbigpe2lmKHRoaXMuY3VycmVudFN0ZXApcmV0dXJuIHRoaXMuY3VycmVudFN0ZXAuaW5uZXJPcmRlcn0sbGVuZ3RoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RlcHMubGVuZ3RofX0sbWV0aG9kczp7Z29Ub1N0ZXA6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLnN0ZXAhPT10JiZ2b2lkIDAhPT10JiYodGhpcy5zdGVwPXQsdGhpcy4kZW1pdChcImlucHV0XCIsdCksdGhpcy4kZW1pdChcInN0ZXBcIix0KSx0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe0pTT04uc3RyaW5naWZ5KHQpIT09SlNPTi5zdHJpbmdpZnkoZS52YWx1ZSkmJmUuJGVtaXQoXCJjaGFuZ2VcIix0KX0pKX0sbmV4dDpmdW5jdGlvbigpe3RoaXMuX19nbygxKX0scHJldmlvdXM6ZnVuY3Rpb24oKXt0aGlzLl9fZ28oLTEpfSxyZXNldDpmdW5jdGlvbigpe3RoaXMuaGFzU3RlcHMmJnRoaXMuZ29Ub1N0ZXAodGhpcy5zdGVwc1swXS5uYW1lKX0sX19nbzpmdW5jdGlvbih0KXt2YXIgZSxpPXRoaXMuY3VycmVudE9yZGVyO2lmKHZvaWQgMD09PWkpe2lmKCF0aGlzLmhhc1N0ZXBzKXJldHVybjtlPXRoaXMuc3RlcHNbMF0ubmFtZX1lbHNle2Rve2krPXR9d2hpbGUoaT49MCYmaTx0aGlzLmxlbmd0aC0xJiZ0aGlzLnN0ZXBzW2ldLmRpc2FibGUpO2lmKGk8MHx8aT50aGlzLmxlbmd0aC0xfHx0aGlzLnN0ZXBzW2ldLmRpc2FibGUpcmV0dXJuO2U9dGhpcy5zdGVwc1tpXS5uYW1lfXRoaXMuZ29Ub1N0ZXAoZSl9LF9fc29ydFN0ZXBzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLnN0ZXBzLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5hY3R1YWxPcmRlci1lLmFjdHVhbE9yZGVyfSk7dmFyIGU9dGhpcy5zdGVwcy5sZW5ndGgtMTt0aGlzLnN0ZXBzLmZvckVhY2goZnVuY3Rpb24odCxpKXt0LmlubmVyT3JkZXI9aSx0LmZpcnN0PTA9PT1pLHQubGFzdD1pPT09ZX0pLHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7dC5zdGVwcy5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiB0LmFjdGl2ZX0pfHx0LmdvVG9TdGVwKHQuc3RlcHNbMF0ubmFtZSl9KX0sX19yZWdpc3RlclN0ZXA6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc3RlcHMucHVzaCh0KSx0aGlzLl9fc29ydFN0ZXBzKCksdGhpc30sX191bnJlZ2lzdGVyU3RlcDpmdW5jdGlvbih0KXt0aGlzLnN0ZXBzPXRoaXMuc3RlcHMuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlIT09dH0pfX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuX19zb3J0U3RlcHM9ZnJhbWVEZWJvdW5jZSh0aGlzLl9fc29ydFN0ZXBzKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zdGVwcGVyIGNvbHVtbiBvdmVyZmxvdy1oaWRkZW4gcmVsYXRpdmUtcG9zaXRpb25cIixjbGFzczp0aGlzLmNsYXNzZXN9LFt0aGlzLnZlcnRpY2FsP251bGw6dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc3RlcHBlci1oZWFkZXIgcm93IGl0ZW1zLXN0cmV0Y2gganVzdGlmeS1iZXR3ZWVuIHNoYWRvdy0xXCIsY2xhc3M6e1wiYWx0ZXJuYXRpdmUtbGFiZWxzXCI6dGhpcy5hbHRlcm5hdGl2ZUxhYmVsc319LHRoaXMuc3RlcHMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0KFN0ZXBUYWIse2tleTplLm5hbWUscHJvcHM6e3ZtOmV9fSl9KSksdGhpcy4kc2xvdHMuZGVmYXVsdF0pfX0sUVN0ZXBwZXJOYXZpZ2F0aW9uPXtuYW1lOlwiUVN0ZXBwZXJOYXZpZ2F0aW9uXCIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zdGVwcGVyLW5hdiBvcmRlci1sYXN0IHJvdyBpdGVtcy1jZW50ZXJcIn0sW3RoaXMuJHNsb3RzLmxlZnQsdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbFwifSksdGhpcy4kc2xvdHMuZGVmYXVsdF0pfX0sVGFiTWl4aW49e2RpcmVjdGl2ZXM6e1JpcHBsZTpSaXBwbGV9LHByb3BzOntsYWJlbDpTdHJpbmcsaWNvbjpTdHJpbmcsZGlzYWJsZTpCb29sZWFuLGhpZGRlbjpCb29sZWFuLGhpZGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJcIn0sbmFtZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiB1aWQoKX19LGFsZXJ0OkJvb2xlYW4sY291bnQ6W051bWJlcixTdHJpbmddLGNvbG9yOlN0cmluZyx0YWJpbmRleDpOdW1iZXJ9LGluamVjdDp7ZGF0YTp7ZGVmYXVsdDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoXCJRVGFiL1FSb3V0ZVRhYiBjb21wb25lbnRzIG5lZWQgdG8gYmUgY2hpbGQgb2YgUVRhYnNcIil9fSxzZWxlY3RUYWI6e319LHdhdGNoOnthY3RpdmU6ZnVuY3Rpb24odCl7dCYmdGhpcy4kZW1pdChcInNlbGVjdFwiLHRoaXMubmFtZSl9fSxjb21wdXRlZDp7YWN0aXZlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YS50YWJOYW1lPT09dGhpcy5uYW1lfSxjbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9e2FjdGl2ZTp0aGlzLmFjdGl2ZSxoaWRkZW46dGhpcy5oaWRkZW4sZGlzYWJsZWQ6dGhpcy5kaXNhYmxlLFwicS10YWItZnVsbFwiOnRoaXMuaWNvbiYmdGhpcy5sYWJlbCxcInEtdGFiLW9ubHktbGFiZWxcIjohdGhpcy5pY29uJiZ0aGlzLmxhYmVsLFwiaGlkZS1ub25lXCI6IXRoaXMuaGlkZSxcImhpZGUtaWNvblwiOlwiaWNvblwiPT09dGhpcy5oaWRlLFwiaGlkZS1sYWJlbFwiOlwibGFiZWxcIj09PXRoaXMuaGlkZX0sZT10aGlzLmRhdGEuaW52ZXJ0ZWQ/dGhpcy5jb2xvcnx8dGhpcy5kYXRhLnRleHRDb2xvcnx8dGhpcy5kYXRhLmNvbG9yOnRoaXMuY29sb3I7cmV0dXJuIGUmJih0W1widGV4dC1cIitlXT0hMCksdH0sYmFyU3R5bGU6ZnVuY3Rpb24oKXtpZighdGhpcy5hY3RpdmV8fCF0aGlzLmRhdGEuaGlnaGxpZ2h0KXJldHVyblwiZGlzcGxheTogbm9uZTtcIn0sY29tcHV0ZWRUYWJJbmRleDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRpc2FibGV8fHRoaXMuYWN0aXZlPy0xOnRoaXMudGFiaW5kZXh8fDB9fSxtZXRob2RzOntfX2dldFRhYk1ldGE6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY291bnQ/W3QoUUNoaXAse3N0YXRpY0NsYXNzOlwicS10YWItbWV0YVwiLHByb3BzOntmbG9hdGluZzohMH19LFt0aGlzLmNvdW50XSldOnRoaXMuYWxlcnQ/W3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYi1tZXRhIHEtZG90XCJ9KV06dm9pZCAwfSxfX2dldFRhYkNvbnRlbnQ6ZnVuY3Rpb24odCl7dmFyIGU9W107cmV0dXJuIHRoaXMuaWNvbiYmZS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYi1pY29uLXBhcmVudCByZWxhdGl2ZS1wb3NpdGlvblwifSxbdChRSWNvbix7c3RhdGljQ2xhc3M6XCJxLXRhYi1pY29uXCIscHJvcHM6e25hbWU6dGhpcy5pY29ufX0pLHRoaXMuX19nZXRUYWJNZXRhKHQpXSkpLHRoaXMubGFiZWwmJmUucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWItbGFiZWwtcGFyZW50IHJlbGF0aXZlLXBvc2l0aW9uXCJ9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWItbGFiZWxcIn0sW3RoaXMubGFiZWxdKSx0aGlzLl9fZ2V0VGFiTWV0YSh0KV0pKSwoZT1lLmNvbmNhdCh0aGlzLiRzbG90cy5kZWZhdWx0KSkucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWJzLWJhclwiLHN0eWxlOnRoaXMuYmFyU3R5bGUsY2xhc3M6dGhpcy5kYXRhLnVuZGVybGluZUNsYXNzfSkpLGUucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWItZm9jdXMtaGVscGVyIGFic29sdXRlLWZ1bGxcIixhdHRyczp7dGFiaW5kZXg6dGhpcy5jb21wdXRlZFRhYkluZGV4fX0pKSxlfX19LFFSb3V0ZVRhYj17bmFtZTpcIlFSb3V0ZVRhYlwiLG1peGluczpbVGFiTWl4aW4sUm91dGVyTGlua01peGluXSxpbmplY3Q6e3NlbGVjdFRhYlJvdXRlcjp7fX0sd2F0Y2g6eyRyb3V0ZTpmdW5jdGlvbigpe3RoaXMuY2hlY2tJZlNlbGVjdGVkKCl9fSxtZXRob2RzOntzZWxlY3Q6ZnVuY3Rpb24oKXt0aGlzLiRlbWl0KFwiY2xpY2tcIix0aGlzLm5hbWUpLHRoaXMuZGlzYWJsZXx8KHRoaXMuJGVsLmRpc3BhdGNoRXZlbnQoZXZ0KSx0aGlzLnNlbGVjdFRhYlJvdXRlcih7dmFsdWU6dGhpcy5uYW1lLHNlbGVjdGVkOiEwfSkpfSxjaGVja0lmU2VsZWN0ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7aWYodC4kZWwuY2xhc3NMaXN0LmNvbnRhaW5zKFwicS1yb3V0ZXItbGluay1leGFjdC1hY3RpdmVcIikpdC5zZWxlY3RUYWJSb3V0ZXIoe3ZhbHVlOnQubmFtZSxzZWxlY3RhYmxlOiEwLGV4YWN0OiEwfSk7ZWxzZSBpZih0LiRlbC5jbGFzc0xpc3QuY29udGFpbnMoXCJxLXJvdXRlci1saW5rLWFjdGl2ZVwiKSl7dmFyIGU9dC4kcm91dGVyLnJlc29sdmUodC50byx2b2lkIDAsdC5hcHBlbmQpO3Quc2VsZWN0VGFiUm91dGVyKHt2YWx1ZTp0Lm5hbWUsc2VsZWN0YWJsZTohMCxwcmlvcml0eTplLmhyZWYubGVuZ3RofSl9ZWxzZSB0LmFjdGl2ZSYmdC5zZWxlY3RUYWJSb3V0ZXIoe3ZhbHVlOm51bGx9KX0pfX0sbW91bnRlZDpmdW5jdGlvbigpe3RoaXMuY2hlY2tJZlNlbGVjdGVkKCl9LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFwicm91dGVyLWxpbmtcIix7cHJvcHM6e3RhZzpcImFcIix0bzp0aGlzLnRvLGV4YWN0OnRoaXMuZXhhY3QsYXBwZW5kOnRoaXMuYXBwZW5kLHJlcGxhY2U6dGhpcy5yZXBsYWNlLGV2ZW50OnJvdXRlckxpbmtFdmVudE5hbWUsYWN0aXZlQ2xhc3M6XCJxLXJvdXRlci1saW5rLWFjdGl2ZVwiLGV4YWN0QWN0aXZlQ2xhc3M6XCJxLXJvdXRlci1saW5rLWV4YWN0LWFjdGl2ZVwifSxhdHRyczp7dGFiaW5kZXg6LTF9LG5hdGl2ZU9uOntjbGljazp0aGlzLnNlbGVjdCxrZXl1cDpmdW5jdGlvbih0KXtyZXR1cm4gMTM9PT10LmtleUNvZGUmJmUuc2VsZWN0KHQpfX0sc3RhdGljQ2xhc3M6XCJxLWxpbmsgcS10YWIgY29sdW1uIGZsZXgtY2VudGVyIHJlbGF0aXZlLXBvc2l0aW9uXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGRpcmVjdGl2ZXM6W3tuYW1lOlwicmlwcGxlXCJ9XX0sdGhpcy5fX2dldFRhYkNvbnRlbnQodCkpfX0sUVRhYj17bmFtZTpcIlFUYWJcIixtaXhpbnM6W1RhYk1peGluXSxwcm9wczp7ZGVmYXVsdDpCb29sZWFufSxtZXRob2RzOntzZWxlY3Q6ZnVuY3Rpb24oKXt0aGlzLiRlbWl0KFwiY2xpY2tcIix0aGlzLm5hbWUpLHRoaXMuZGlzYWJsZXx8dGhpcy5zZWxlY3RUYWIodGhpcy5uYW1lKX19LG1vdW50ZWQ6ZnVuY3Rpb24oKXt0aGlzLmRlZmF1bHQmJiF0aGlzLmRpc2FibGUmJnRoaXMuc2VsZWN0KCl9LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWIgY29sdW1uIGZsZXgtY2VudGVyIHJlbGF0aXZlLXBvc2l0aW9uXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOntcImRhdGEtdGFiLW5hbWVcIjp0aGlzLm5hbWV9LG9uOntjbGljazp0aGlzLnNlbGVjdCxrZXl1cDpmdW5jdGlvbih0KXtyZXR1cm4gMTM9PT10LmtleUNvZGUmJmUuc2VsZWN0KHQpfX0sZGlyZWN0aXZlczpbe25hbWU6XCJyaXBwbGVcIn1dfSx0aGlzLl9fZ2V0VGFiQ29udGVudCh0KSl9fSxRVGFiUGFuZT17bmFtZTpcIlFUYWJQYW5lXCIsaW5qZWN0OntkYXRhOntkZWZhdWx0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcihcIlFUYWJQYW5lIG5lZWRzIHRvIGJlIGNoaWxkIG9mIFFUYWJzXCIpfX19LHByb3BzOntuYW1lOnt0eXBlOlN0cmluZyxyZXF1aXJlZDohMH0sa2VlcEFsaXZlOkJvb2xlYW59LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57c2hvd246ITF9fSxjb21wdXRlZDp7YWN0aXZlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YS50YWJOYW1lPT09dGhpcy5uYW1lfSxjbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJue2hpZGRlbjohdGhpcy5hY3RpdmUsXCJhbmltYXRlLWZhZGUtbGVmdFwiOlwibGVmdFwiPT09dGhpcy5kYXRhLmRpcmVjdGlvbixcImFuaW1hdGUtZmFkZS1yaWdodFwiOlwicmlnaHRcIj09PXRoaXMuZGF0YS5kaXJlY3Rpb259fX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYi1wYW5lXCIsY2xhc3M6dGhpcy5jbGFzc2VzfSx0aGlzLiRzbG90cy5kZWZhdWx0KTtpZih0aGlzLmtlZXBBbGl2ZSl7aWYoIXRoaXMuc2hvd24mJiF0aGlzLmFjdGl2ZSlyZXR1cm47cmV0dXJuIHRoaXMuc2hvd249ITAsZX1pZih0aGlzLnNob3duPXRoaXMuYWN0aXZlLHRoaXMuYWN0aXZlKXJldHVybiBlfX0sc2Nyb2xsTmF2aWdhdGlvblNwZWVkPTUsZGVib3VuY2VEZWxheT01MDtmdW5jdGlvbiBnZXRVbmRlcmxpbmVDbGFzcyh0KXtpZih0KXJldHVyblwidGV4dC1cIit0fXZhciBRVGFicz17bmFtZTpcIlFUYWJzXCIscHJvdmlkZTpmdW5jdGlvbigpe3JldHVybntkYXRhOnRoaXMuZGF0YSxzZWxlY3RUYWI6dGhpcy5zZWxlY3RUYWIsc2VsZWN0VGFiUm91dGVyOnRoaXMuc2VsZWN0VGFiUm91dGVyfX0sZGlyZWN0aXZlczp7VG91Y2hTd2lwZTpUb3VjaFN3aXBlfSxwcm9wczp7dmFsdWU6U3RyaW5nLGFsaWduOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwibGVmdFwiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJsZWZ0XCIsXCJjZW50ZXJcIixcInJpZ2h0XCIsXCJqdXN0aWZ5XCJdLmluY2x1ZGVzKHQpfX0scG9zaXRpb246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJ0b3BcIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1widG9wXCIsXCJib3R0b21cIl0uaW5jbHVkZXModCl9fSxjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInByaW1hcnlcIn0sdGV4dENvbG9yOlN0cmluZyxpbnZlcnRlZDpCb29sZWFuLHR3b0xpbmVzOkJvb2xlYW4sZ2xvc3N5OkJvb2xlYW4sYW5pbWF0ZWQ6Qm9vbGVhbixzd2lwZWFibGU6Qm9vbGVhbixwYW5lc0NvbnRhaW5lckNsYXNzOlN0cmluZyx1bmRlcmxpbmVDb2xvcjpTdHJpbmd9LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudEVsOm51bGwscG9zYmFyOnt3aWR0aDowLGxlZnQ6MH0sZGF0YTp7aGlnaGxpZ2h0OiEwLHRhYk5hbWU6dGhpcy52YWx1ZXx8XCJcIixjb2xvcjp0aGlzLmNvbG9yLHRleHRDb2xvcjp0aGlzLnRleHRDb2xvcixpbnZlcnRlZDp0aGlzLmludmVydGVkLHVuZGVybGluZUNsYXNzOmdldFVuZGVybGluZUNsYXNzKHRoaXMudW5kZXJsaW5lQ29sb3IpLGRpcmVjdGlvbjpudWxsfX19LHdhdGNoOnt2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLnNlbGVjdFRhYih0KX0sY29sb3I6ZnVuY3Rpb24odCl7dGhpcy5kYXRhLmNvbG9yPXR9LHRleHRDb2xvcjpmdW5jdGlvbih0KXt0aGlzLmRhdGEudGV4dENvbG9yPXR9LGludmVydGVkOmZ1bmN0aW9uKHQpe3RoaXMuZGF0YS5pbnZlcnRlZD10fSx1bmRlcmxpbmVDb2xvcjpmdW5jdGlvbih0KXt0aGlzLmRhdGEudW5kZXJsaW5lQ2xhc3M9Z2V0VW5kZXJsaW5lQ2xhc3ModCl9fSxjb21wdXRlZDp7Y2xhc3NlczpmdW5jdGlvbigpe3JldHVybltcInEtdGFicy1wb3NpdGlvbi1cIit0aGlzLnBvc2l0aW9uLFwicS10YWJzLVwiKyh0aGlzLmludmVydGVkP1wiaW52ZXJ0ZWRcIjpcIm5vcm1hbFwiKSx0aGlzLnR3b0xpbmVzP1wicS10YWJzLXR3by1saW5lc1wiOlwiXCJdfSxpbm5lckNsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXCJxLXRhYnMtYWxpZ24tXCIrdGhpcy5hbGlnbl07cmV0dXJuIHRoaXMuZ2xvc3N5JiZ0LnB1c2goXCJnbG9zc3lcIiksdGhpcy5pbnZlcnRlZD90LnB1c2goXCJ0ZXh0LVwiKyh0aGlzLnRleHRDb2xvcnx8dGhpcy5jb2xvcikpOih0LnB1c2goXCJiZy1cIit0aGlzLmNvbG9yKSx0LnB1c2goXCJ0ZXh0LVwiKyh0aGlzLnRleHRDb2xvcnx8XCJ3aGl0ZVwiKSkpLHR9LHBvc2JhckNsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5pbnZlcnRlZCYmdC5wdXNoKFwidGV4dC1cIisodGhpcy50ZXh0Q29sb3J8fHRoaXMuY29sb3IpKSx0aGlzLmRhdGEuaGlnaGxpZ2h0JiZ0LnB1c2goXCJoaWdobGlnaHRcIiksdH19LG1ldGhvZHM6e2dvOmZ1bmN0aW9uKHQpe3ZhciBlPTA7aWYodGhpcy5kYXRhLnRhYk5hbWUpe3ZhciBpPXRoaXMuJHJlZnMuc2Nyb2xsZXIucXVlcnlTZWxlY3RvcignW2RhdGEtdGFiLW5hbWU9XCInK3RoaXMuZGF0YS50YWJOYW1lKydcIl0nKTtpJiYoZT1BcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKHRoaXMuJHJlZnMuc2Nyb2xsZXIuY2hpbGRyZW4saSkpfXZhciBzPXRoaXMuJHJlZnMuc2Nyb2xsZXIucXVlcnlTZWxlY3RvckFsbChcIltkYXRhLXRhYi1uYW1lXVwiKTsoZSs9dCk+LTEmJmU8cy5sZW5ndGgmJnRoaXMuc2VsZWN0VGFiKHNbZV0uZ2V0QXR0cmlidXRlKFwiZGF0YS10YWItbmFtZVwiKSl9LHByZXZpb3VzOmZ1bmN0aW9uKCl7dGhpcy5nbygtMSl9LG5leHQ6ZnVuY3Rpb24oKXt0aGlzLmdvKDEpfSxzZWxlY3RUYWI6ZnVuY3Rpb24odCl7aWYodGhpcy5kYXRhLnRhYk5hbWUhPT10KXt0aGlzLmRhdGEudGFiTmFtZT10O3ZhciBlPXRoaXMuX19nZXRUYWJFbEJ5TmFtZSh0KTtpZihlKWlmKHRoaXMuX19zY3JvbGxUb1RhYihlKSx0aGlzLmN1cnJlbnRFbD1lLHRoaXMub2xkRWwpe2lmKHRoaXMuYW5pbWF0ZWQpe3ZhciBpPXRoaXMuJHJlZnMuc2Nyb2xsZXIuY2hpbGRyZW47dGhpcy5kYXRhLmRpcmVjdGlvbj1BcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGksZSk8QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChpLHRoaXMub2xkRWwpP1wibGVmdFwiOlwicmlnaHRcIn10aGlzLl9fcmVwb3NpdGlvbkJhcigpfWVsc2UgdGhpcy5vbGRFbD1lO2Vsc2UgdGhpcy5vbGRFbD1udWxsLHRoaXMuZGF0YS5kaXJlY3Rpb249bnVsbDt0aGlzLiRlbWl0KFwiaW5wdXRcIix0LHRoaXMuZGF0YS5kaXJlY3Rpb24pLHRoaXMuJGVtaXQoXCJzZWxlY3RcIix0LHRoaXMuZGF0YS5kaXJlY3Rpb24pfX0sc2VsZWN0VGFiUm91dGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT10LnZhbHVlLHM9dC5zZWxlY3RhYmxlLG49dC5leGFjdCxvPXQuc2VsZWN0ZWQscj10LnByaW9yaXR5LGE9IXRoaXMuYnVmZmVyLmxlbmd0aCxsPWE/LTE6dGhpcy5idWZmZXIuZmluZEluZGV4KGZ1bmN0aW9uKHQpe3JldHVybiB0LnZhbHVlPT09aX0pO2lmKGw+LTEpe3ZhciBjPXRoaXMuYnVmZmVyW2xdO24mJihjLmV4YWN0PW4pLHMmJihjLnNlbGVjdGFibGU9cyksbyYmKGMuc2VsZWN0ZWQ9byksciYmKGMucHJpb3JpdHk9cil9ZWxzZSB0aGlzLmJ1ZmZlci5wdXNoKHQpO2EmJih0aGlzLmJ1ZmZlclRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgdD1lLmJ1ZmZlci5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LmV4YWN0JiZ0LnNlbGVjdGVkfSl8fGUuYnVmZmVyLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQuc2VsZWN0YWJsZSYmdC5zZWxlY3RlZH0pfHxlLmJ1ZmZlci5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LmV4YWN0fSl8fGUuYnVmZmVyLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5zZWxlY3RhYmxlfSkuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiBlLnByaW9yaXR5LXQucHJpb3JpdHl9KVswXXx8ZS5idWZmZXJbMF07ZS5idWZmZXIubGVuZ3RoPTAsZS5zZWxlY3RUYWIodC52YWx1ZSl9LDEwMCkpfSxfX3N3aXBlOmZ1bmN0aW9uKHQpe3RoaXMuZ28oXCJsZWZ0XCI9PT10LmRpcmVjdGlvbj8xOi0xKX0sX19yZXBvc2l0aW9uQmFyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztjbGVhclRpbWVvdXQodGhpcy50aW1lcik7dmFyIGU9ITEsaT10aGlzLiRyZWZzLnBvc2JhcixzPXRoaXMuY3VycmVudEVsO2lmKCExIT09dGhpcy5kYXRhLmhpZ2hsaWdodCYmKHRoaXMuZGF0YS5oaWdobGlnaHQ9ITEsZT0hMCksIXMpcmV0dXJuIHRoaXMuZmluYWxQb3NiYXI9e3dpZHRoOjAsbGVmdDowfSx2b2lkIHRoaXMuX19zZXRQb3NpdGlvbkJhcigwLDApO3ZhciBuPWkucGFyZW50Tm9kZS5vZmZzZXRMZWZ0O2UmJnRoaXMub2xkRWwmJnRoaXMuX19zZXRQb3NpdGlvbkJhcih0aGlzLm9sZEVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoLHRoaXMub2xkRWwub2Zmc2V0TGVmdC1uKSx0aGlzLnRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgZT1zLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoLG89cy5vZmZzZXRMZWZ0LW47aS5jbGFzc0xpc3QucmVtb3ZlKFwiY29udHJhY3RcIiksdC5vbGRFbD1zLHQuZmluYWxQb3NiYXI9e3dpZHRoOmUsbGVmdDpvfSx0Ll9fc2V0UG9zaXRpb25CYXIodC5wb3NiYXIubGVmdDxvP28rZS10LnBvc2Jhci5sZWZ0OnQucG9zYmFyLmxlZnQrdC5wb3NiYXIud2lkdGgtbyx0LnBvc2Jhci5sZWZ0PG8/dC5wb3NiYXIubGVmdDpvKX0sMjApfSxfX3NldFBvc2l0aW9uQmFyOmZ1bmN0aW9uKHQsZSl7aWYodm9pZCAwPT09dCYmKHQ9MCksdm9pZCAwPT09ZSYmKGU9MCksdGhpcy5wb3NiYXIud2lkdGghPT10fHx0aGlzLnBvc2Jhci5sZWZ0IT09ZSl7dGhpcy5wb3NiYXI9e3dpZHRoOnQsbGVmdDplfTt2YXIgaT10aGlzLiRxLmkxOG4ucnRsP2UrdDplO3RoaXMuJHJlZnMucG9zYmFyLnN0eWxlLnRyYW5zZm9ybT1cInRyYW5zbGF0ZVgoXCIraStcInB4KSBzY2FsZVgoXCIrdCtcIilcIn1lbHNlIHRoaXMuX191cGRhdGVQb3NiYXJUcmFuc2l0aW9uKCl9LF9fdXBkYXRlUG9zYmFyVHJhbnNpdGlvbjpmdW5jdGlvbigpe2lmKHRoaXMuZmluYWxQb3NiYXIud2lkdGg9PT10aGlzLnBvc2Jhci53aWR0aCYmdGhpcy5maW5hbFBvc2Jhci5sZWZ0PT09dGhpcy5wb3NiYXIubGVmdClyZXR1cm4gdGhpcy5wb3NiYXI9e30sdm9pZCghMCE9PXRoaXMuZGF0YS5oaWdobGlnaHQmJih0aGlzLmRhdGEuaGlnaGxpZ2h0PSEwKSk7dGhpcy4kcmVmcy5wb3NiYXIuY2xhc3NMaXN0LmFkZChcImNvbnRyYWN0XCIpLHRoaXMuX19zZXRQb3NpdGlvbkJhcih0aGlzLmZpbmFsUG9zYmFyLndpZHRoLHRoaXMuZmluYWxQb3NiYXIubGVmdCl9LF9fcmVkcmF3OmZ1bmN0aW9uKCl7dGhpcy4kcS5wbGF0Zm9ybS5pcy5kZXNrdG9wJiYodGhpcy5zY3JvbGxlcldpZHRoPXdpZHRoKHRoaXMuJHJlZnMuc2Nyb2xsZXIpLDA9PT10aGlzLnNjcm9sbGVyV2lkdGgmJjA9PT10aGlzLiRyZWZzLnNjcm9sbGVyLnNjcm9sbFdpZHRofHwodGhpcy5zY3JvbGxlcldpZHRoKzU8dGhpcy4kcmVmcy5zY3JvbGxlci5zY3JvbGxXaWR0aD8odGhpcy4kcmVmcy50YWJzLmNsYXNzTGlzdC5hZGQoXCJzY3JvbGxhYmxlXCIpLHRoaXMuc2Nyb2xsYWJsZT0hMCx0aGlzLl9fdXBkYXRlU2Nyb2xsSW5kaWNhdG9yKCkpOih0aGlzLiRyZWZzLnRhYnMuY2xhc3NMaXN0LnJlbW92ZShcInNjcm9sbGFibGVcIiksdGhpcy5zY3JvbGxhYmxlPSExKSkpfSxfX3VwZGF0ZVNjcm9sbEluZGljYXRvcjpmdW5jdGlvbigpe2lmKHRoaXMuJHEucGxhdGZvcm0uaXMuZGVza3RvcCYmdGhpcy5zY3JvbGxhYmxlKXt2YXIgdD10aGlzLiRyZWZzLnNjcm9sbGVyLnNjcm9sbExlZnQrd2lkdGgodGhpcy4kcmVmcy5zY3JvbGxlcikrNT49dGhpcy4kcmVmcy5zY3JvbGxlci5zY3JvbGxXaWR0aD9cImFkZFwiOlwicmVtb3ZlXCI7dGhpcy4kcmVmcy5sZWZ0U2Nyb2xsLmNsYXNzTGlzdFt0aGlzLiRyZWZzLnNjcm9sbGVyLnNjcm9sbExlZnQ8PTA/XCJhZGRcIjpcInJlbW92ZVwiXShcImRpc2FibGVkXCIpLHRoaXMuJHJlZnMucmlnaHRTY3JvbGwuY2xhc3NMaXN0W3RdKFwiZGlzYWJsZWRcIil9fSxfX2dldFRhYkVsQnlOYW1lOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuJGNoaWxkcmVuLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIGUubmFtZT09PXQmJmUuJGVsJiYxPT09ZS4kZWwubm9kZVR5cGV9KTtpZihlKXJldHVybiBlLiRlbH0sX19maW5kVGFiQW5kU2Nyb2xsOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcztzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aS5fX3Njcm9sbFRvVGFiKGkuX19nZXRUYWJFbEJ5TmFtZSh0KSxlKX0sNCpkZWJvdW5jZURlbGF5KX0sX19zY3JvbGxUb1RhYjpmdW5jdGlvbih0LGUpe2lmKHQmJnRoaXMuc2Nyb2xsYWJsZSl7dmFyIGk9dGhpcy4kcmVmcy5zY3JvbGxlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxzPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj1zLndpZHRoLG89cy5sZWZ0LWkubGVmdDtvPDA/ZT90aGlzLiRyZWZzLnNjcm9sbGVyLnNjcm9sbExlZnQrPW86dGhpcy5fX2FuaW1TY3JvbGxUbyh0aGlzLiRyZWZzLnNjcm9sbGVyLnNjcm9sbExlZnQrbyk6KG8rPW4tdGhpcy4kcmVmcy5zY3JvbGxlci5vZmZzZXRXaWR0aCk+MCYmKGU/dGhpcy4kcmVmcy5zY3JvbGxlci5zY3JvbGxMZWZ0Kz1vOnRoaXMuX19hbmltU2Nyb2xsVG8odGhpcy4kcmVmcy5zY3JvbGxlci5zY3JvbGxMZWZ0K28pKX19LF9fYW5pbVNjcm9sbFRvOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5fX3N0b3BBbmltU2Nyb2xsKCksdGhpcy5fX3Njcm9sbFRvd2FyZHModCksdGhpcy5zY3JvbGxUaW1lcj1zZXRJbnRlcnZhbChmdW5jdGlvbigpe2UuX19zY3JvbGxUb3dhcmRzKHQpJiZlLl9fc3RvcEFuaW1TY3JvbGwoKX0sNSl9LF9fc2Nyb2xsVG9TdGFydDpmdW5jdGlvbigpe3RoaXMuX19hbmltU2Nyb2xsVG8oMCl9LF9fc2Nyb2xsVG9FbmQ6ZnVuY3Rpb24oKXt0aGlzLl9fYW5pbVNjcm9sbFRvKDk5OTkpfSxfX3N0b3BBbmltU2Nyb2xsOmZ1bmN0aW9uKCl7Y2xlYXJJbnRlcnZhbCh0aGlzLnNjcm9sbFRpbWVyKX0sX19zY3JvbGxUb3dhcmRzOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuJHJlZnMuc2Nyb2xsZXIuc2Nyb2xsTGVmdCxpPXQ8ZT8tMToxLHM9ITE7cmV0dXJuKGUrPWkqc2Nyb2xsTmF2aWdhdGlvblNwZWVkKTwwPyhzPSEwLGU9MCk6KC0xPT09aSYmZTw9dHx8MT09PWkmJmU+PXQpJiYocz0hMCxlPXQpLHRoaXMuJHJlZnMuc2Nyb2xsZXIuc2Nyb2xsTGVmdD1lLHN9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYnMgZmxleCBuby13cmFwIG92ZXJmbG93LWhpZGRlblwiLGNsYXNzOnRoaXMuY2xhc3Nlc30sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYnMtaGVhZCByb3dcIixyZWY6XCJ0YWJzXCIsY2xhc3M6dGhpcy5pbm5lckNsYXNzZXN9LFt0KFwiZGl2XCIse3JlZjpcInNjcm9sbGVyXCIsc3RhdGljQ2xhc3M6XCJxLXRhYnMtc2Nyb2xsZXIgcm93IG5vLXdyYXBcIn0sW3RoaXMuJHNsb3RzLnRpdGxlLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJyZWxhdGl2ZS1wb3NpdGlvbiBzZWxmLXN0cmV0Y2ggcS10YWJzLWdsb2JhbC1iYXItY29udGFpbmVyXCIsY2xhc3M6dGhpcy5wb3NiYXJDbGFzc2VzfSxbdChcImRpdlwiLHtyZWY6XCJwb3NiYXJcIixzdGF0aWNDbGFzczpcInEtdGFicy1iYXIgcS10YWJzLWdsb2JhbC1iYXJcIixjbGFzczp0aGlzLmRhdGEudW5kZXJsaW5lQ2xhc3Msb246e3RyYW5zaXRpb25lbmQ6dGhpcy5fX3VwZGF0ZVBvc2JhclRyYW5zaXRpb259fSldKV0pLHQoXCJkaXZcIix7cmVmOlwibGVmdFNjcm9sbFwiLHN0YXRpY0NsYXNzOlwicm93IGZsZXgtY2VudGVyIHEtdGFicy1sZWZ0LXNjcm9sbFwiLG9uOnttb3VzZWRvd246dGhpcy5fX3Njcm9sbFRvU3RhcnQsdG91Y2hzdGFydDp0aGlzLl9fc2Nyb2xsVG9TdGFydCxtb3VzZXVwOnRoaXMuX19zdG9wQW5pbVNjcm9sbCxtb3VzZWxlYXZlOnRoaXMuX19zdG9wQW5pbVNjcm9sbCx0b3VjaGVuZDp0aGlzLl9fc3RvcEFuaW1TY3JvbGx9fSxbdChRSWNvbix7cHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLnRhYnMubGVmdH19KV0pLHQoXCJkaXZcIix7cmVmOlwicmlnaHRTY3JvbGxcIixzdGF0aWNDbGFzczpcInJvdyBmbGV4LWNlbnRlciBxLXRhYnMtcmlnaHQtc2Nyb2xsXCIsb246e21vdXNlZG93bjp0aGlzLl9fc2Nyb2xsVG9FbmQsdG91Y2hzdGFydDp0aGlzLl9fc2Nyb2xsVG9FbmQsbW91c2V1cDp0aGlzLl9fc3RvcEFuaW1TY3JvbGwsbW91c2VsZWF2ZTp0aGlzLl9fc3RvcEFuaW1TY3JvbGwsdG91Y2hlbmQ6dGhpcy5fX3N0b3BBbmltU2Nyb2xsfX0sW3QoUUljb24se3Byb3BzOntuYW1lOnRoaXMuJHEuaWNvbi50YWJzLnJpZ2h0fX0pXSldKSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWJzLXBhbmVzXCIsY2xhc3M6dGhpcy5wYW5lc0NvbnRhaW5lckNsYXNzLGRpcmVjdGl2ZXM6dGhpcy5zd2lwZWFibGU/W3tuYW1lOlwidG91Y2gtc3dpcGVcIix2YWx1ZTp0aGlzLl9fc3dpcGV9XTpudWxsfSx0aGlzLiRzbG90cy5kZWZhdWx0KV0pfSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy50aW1lcj1udWxsLHRoaXMuc2Nyb2xsVGltZXI9bnVsbCx0aGlzLmJ1ZmZlclRpbWVyPW51bGwsdGhpcy5idWZmZXI9W10sdGhpcy5zY3JvbGxhYmxlPSF0aGlzLiRxLnBsYXRmb3JtLmlzLmRlc2t0b3AsdGhpcy5fX3JlZHJhdz1kZWJvdW5jZSh0aGlzLl9fcmVkcmF3LGRlYm91bmNlRGVsYXkpLHRoaXMuX191cGRhdGVTY3JvbGxJbmRpY2F0b3I9ZGVib3VuY2UodGhpcy5fX3VwZGF0ZVNjcm9sbEluZGljYXRvcixkZWJvdW5jZURlbGF5KX0sbW91bnRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt0LiRyZWZzLnNjcm9sbGVyJiYodC4kcmVmcy5zY3JvbGxlci5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsdC5fX3VwZGF0ZVNjcm9sbEluZGljYXRvcixsaXN0ZW5PcHRzLnBhc3NpdmUpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsdC5fX3JlZHJhdyxsaXN0ZW5PcHRzLnBhc3NpdmUpLFwiXCIhPT10LmRhdGEudGFiTmFtZSYmdC52YWx1ZSYmdC5zZWxlY3RUYWIodC52YWx1ZSksdC5fX3JlZHJhdygpLHQuX19maW5kVGFiQW5kU2Nyb2xsKHQuZGF0YS50YWJOYW1lLCEwKSl9KX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSxjbGVhclRpbWVvdXQodGhpcy5idWZmZXJUaW1lciksdGhpcy5fX3N0b3BBbmltU2Nyb2xsKCksdGhpcy4kcmVmcy5zY3JvbGxlci5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsdGhpcy5fX3VwZGF0ZVNjcm9sbEluZGljYXRvcixsaXN0ZW5PcHRzLnBhc3NpdmUpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsdGhpcy5fX3JlZHJhdyxsaXN0ZW5PcHRzLnBhc3NpdmUpLHRoaXMuX19yZWRyYXcuY2FuY2VsKCksdGhpcy5fX3VwZGF0ZVNjcm9sbEluZGljYXRvci5jYW5jZWwoKX19LFRvcD17Y29tcHV0ZWQ6e21hcmdpbmFsc1Byb3BzOmZ1bmN0aW9uKCl7cmV0dXJue3BhZ2luYXRpb246dGhpcy5jb21wdXRlZFBhZ2luYXRpb24scGFnZXNOdW1iZXI6dGhpcy5wYWdlc051bWJlcixpc0ZpcnN0UGFnZTp0aGlzLmlzRmlyc3RQYWdlLGlzTGFzdFBhZ2U6dGhpcy5pc0xhc3RQYWdlLHByZXZQYWdlOnRoaXMucHJldlBhZ2UsbmV4dFBhZ2U6dGhpcy5uZXh0UGFnZSxpbkZ1bGxzY3JlZW46dGhpcy5pbkZ1bGxzY3JlZW4sdG9nZ2xlRnVsbHNjcmVlbjp0aGlzLnRvZ2dsZUZ1bGxzY3JlZW59fX0sbWV0aG9kczp7Z2V0VG9wOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuJHNjb3BlZFNsb3RzLnRvcCxpPXRoaXMuJHNjb3BlZFNsb3RzW1widG9wLWxlZnRcIl0scz10aGlzLiRzY29wZWRTbG90c1tcInRvcC1yaWdodFwiXSxuPXRoaXMuJHNjb3BlZFNsb3RzW1widG9wLXNlbGVjdGlvblwiXSxvPXRoaXMuaGFzU2VsZWN0aW9uTW9kZSYmbiYmdGhpcy5yb3dzU2VsZWN0ZWROdW1iZXI+MCxyPVwicS10YWJsZS10b3AgcmVsYXRpdmUtcG9zaXRpb24gcm93IGl0ZW1zLWNlbnRlclwiLGE9W107cmV0dXJuIGU/dChcImRpdlwiLHtzdGF0aWNDbGFzczpyfSxbZSh0aGlzLm1hcmdpbmFsc1Byb3BzKV0pOihvP2EucHVzaChuKHRoaXMubWFyZ2luYWxzUHJvcHMpKTppP2EucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1jb250cm9sXCJ9LFtpKHRoaXMubWFyZ2luYWxzUHJvcHMpXSkpOnRoaXMudGl0bGUmJmEucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1jb250cm9sXCJ9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWJsZS10aXRsZVwifSx0aGlzLnRpdGxlKV0pKSxzJiYoYS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLXNlcGFyYXRvciBjb2xcIn0pKSxhLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUtY29udHJvbFwifSxbcyh0aGlzLm1hcmdpbmFsc1Byb3BzKV0pKSksMCE9PWEubGVuZ3RoP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6cn0sYSk6dm9pZCAwKX19fSxRVGg9e25hbWU6XCJRVGhcIixwcm9wczp7cHJvcHM6T2JqZWN0LGF1dG9XaWR0aDpCb29sZWFufSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGUsaT10aGlzO2lmKCF0aGlzLnByb3BzKXJldHVybiB0KFwidGRcIix7Y2xhc3M6e1wicS10YWJsZS1jb2wtYXV0by13aWR0aFwiOnRoaXMuYXV0b1dpZHRofX0sdGhpcy4kc2xvdHMuZGVmYXVsdCk7dmFyIHM9dGhpcy4kdm5vZGUua2V5LG49W10uY29uY2F0KHRoaXMuJHNsb3RzLmRlZmF1bHQpO2lmKHMpe2lmKCEoZT10aGlzLnByb3BzLmNvbHNNYXBbc10pKXJldHVybn1lbHNlIGU9dGhpcy5wcm9wcy5jb2w7ZS5zb3J0YWJsZSYmbltcInJpZ2h0XCI9PT1lLmFsaWduP1widW5zaGlmdFwiOlwicHVzaFwiXSh0KFFJY29uLHtwcm9wczp7bmFtZTp0aGlzLiRxLmljb24udGFibGUuYXJyb3dVcH0sc3RhdGljQ2xhc3M6ZS5fX2ljb25DbGFzc30pKTtyZXR1cm4gdChcInRoXCIse2NsYXNzOltlLl9fdGhDbGFzcyx7XCJxLXRhYmxlLWNvbC1hdXRvLXdpZHRoXCI6dGhpcy5hdXRvV2lkdGh9XSxvbjplLnNvcnRhYmxlP3tjbGljazpmdW5jdGlvbigpe2kucHJvcHMuc29ydChlKX19Om51bGx9LG4pfX0sVGFibGVIZWFkZXI9e21ldGhvZHM6e2dldFRhYmxlSGVhZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPVt0aGlzLmdldFRhYmxlSGVhZGVyUm93KHQpXTtyZXR1cm4gdGhpcy5sb2FkaW5nJiZlLnB1c2godChcInRyXCIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1wcm9ncmVzcyBhbmltYXRlLWZhZGVcIn0sW3QoXCJ0ZFwiLHthdHRyczp7Y29sc3BhbjpcIjEwMCVcIn19LFt0KFFQcm9ncmVzcyx7cHJvcHM6e2NvbG9yOnRoaXMuY29sb3IsaW5kZXRlcm1pbmF0ZTohMCxoZWlnaHQ6XCIycHhcIn19KV0pXSkpLHQoXCJ0aGVhZFwiLGUpfSxnZXRUYWJsZUhlYWRlclJvdzpmdW5jdGlvbih0KXt2YXIgZSxpPXRoaXMscz10aGlzLiRzY29wZWRTbG90cy5oZWFkZXIsbj10aGlzLiRzY29wZWRTbG90c1tcImhlYWRlci1jZWxsXCJdO2lmKHMpcmV0dXJuIHModGhpcy5hZGRUYWJsZUhlYWRlclJvd01ldGEoe2hlYWRlcjohMCxjb2xzOnRoaXMuY29tcHV0ZWRDb2xzLHNvcnQ6dGhpcy5zb3J0LGNvbHNNYXA6dGhpcy5jb21wdXRlZENvbHNNYXB9KSk7ZT1uP2Z1bmN0aW9uKHQpe3JldHVybiBuKHtjb2w6dCxjb2xzOmkuY29tcHV0ZWRDb2xzLHNvcnQ6aS5zb3J0LGNvbHNNYXA6aS5jb21wdXRlZENvbHNNYXB9KX06ZnVuY3Rpb24oZSl7cmV0dXJuIHQoUVRoLHtrZXk6ZS5uYW1lLHByb3BzOntwcm9wczp7Y29sOmUsY29sczppLmNvbXB1dGVkQ29scyxzb3J0Omkuc29ydCxjb2xzTWFwOmkuY29tcHV0ZWRDb2xzTWFwfX0sc3R5bGU6ZS5zdHlsZSxjbGFzczplLmNsYXNzZXN9LGUubGFiZWwpfTt2YXIgbz10aGlzLmNvbXB1dGVkQ29scy5tYXAoZSk7cmV0dXJuIHRoaXMuc2luZ2xlU2VsZWN0aW9uJiYhdGhpcy5ncmlkP28udW5zaGlmdCh0KFwidGhcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLWNvbC1hdXRvLXdpZHRoXCJ9LFtcIiBcIl0pKTp0aGlzLm11bHRpcGxlU2VsZWN0aW9uJiZvLnVuc2hpZnQodChcInRoXCIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1jb2wtYXV0by13aWR0aFwifSxbdChRQ2hlY2tib3gse3Byb3BzOntjb2xvcjp0aGlzLmNvbG9yLHZhbHVlOnRoaXMuc29tZVJvd3NTZWxlY3RlZD9udWxsOnRoaXMuYWxsUm93c1NlbGVjdGVkLGRhcms6dGhpcy5kYXJrfSxvbjp7aW5wdXQ6ZnVuY3Rpb24odCl7aS5zb21lUm93c1NlbGVjdGVkJiYodD0hMSksaS5fX3VwZGF0ZVNlbGVjdGlvbihpLmNvbXB1dGVkUm93cy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHRbaS5yb3dLZXldfSksaS5jb21wdXRlZFJvd3MsdCl9fX0pXSkpLHQoXCJ0clwiLG8pfSxhZGRUYWJsZUhlYWRlclJvd01ldGE6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5tdWx0aXBsZVNlbGVjdGlvbiYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwic2VsZWN0ZWRcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGUuc29tZVJvd3NTZWxlY3RlZD9cInNvbWVcIjplLmFsbFJvd3NTZWxlY3RlZH0sc2V0OmZ1bmN0aW9uKHQpe2Uuc29tZVJvd3NTZWxlY3RlZCYmKHQ9ITEpLGUuX191cGRhdGVTZWxlY3Rpb24oZS5jb21wdXRlZFJvd3MubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0W2Uucm93S2V5XX0pLGUuY29tcHV0ZWRSb3dzLHQpfX0pLHQucGFydGlhbFNlbGVjdGVkPXRoaXMuc29tZVJvd3NTZWxlY3RlZCx0Lm11bHRpcGxlU2VsZWN0PSEwKSx0fX19LFRhYmxlQm9keT17bWV0aG9kczp7Z2V0VGFibGVCb2R5OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT10aGlzLiRzY29wZWRTbG90cy5ib2R5LHM9dGhpcy4kc2NvcGVkU2xvdHNbXCJib2R5LWNlbGxcIl0sbj10aGlzLiRzY29wZWRTbG90c1tcInRvcC1yb3dcIl0sbz10aGlzLiRzY29wZWRTbG90c1tcImJvdHRvbS1yb3dcIl0scj1bXTtyZXR1cm4gcj1pP3RoaXMuY29tcHV0ZWRSb3dzLm1hcChmdW5jdGlvbih0KXt2YXIgcz10W2Uucm93S2V5XSxuPWUuaXNSb3dTZWxlY3RlZChzKTtyZXR1cm4gaShlLmFkZEJvZHlSb3dNZXRhKHtrZXk6cyxyb3c6dCxjb2xzOmUuY29tcHV0ZWRDb2xzLGNvbHNNYXA6ZS5jb21wdXRlZENvbHNNYXAsX190ckNsYXNzOm4/XCJzZWxlY3RlZFwiOlwiXCJ9KSl9KTp0aGlzLmNvbXB1dGVkUm93cy5tYXAoZnVuY3Rpb24oaSl7dmFyIG49aVtlLnJvd0tleV0sbz1lLmlzUm93U2VsZWN0ZWQobikscj1zP2UuY29tcHV0ZWRDb2xzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gcyhlLmFkZEJvZHlDZWxsTWV0YURhdGEoe3JvdzppLGNvbDp0fSkpfSk6ZS5jb21wdXRlZENvbHMubWFwKGZ1bmN0aW9uKHMpe3ZhciBuPWUuJHNjb3BlZFNsb3RzW1wiYm9keS1jZWxsLVwiK3MubmFtZV07cmV0dXJuIG4/bihlLmFkZEJvZHlDZWxsTWV0YURhdGEoe3JvdzppLGNvbDpzfSkpOnQoXCJ0ZFwiLHtzdGF0aWNDbGFzczpzLl9fdGRDbGFzcyxzdHlsZTpzLnN0eWxlLGNsYXNzOnMuY2xhc3Nlc30sZS5nZXRDZWxsVmFsdWUocyxpKSl9KTtyZXR1cm4gZS5oYXNTZWxlY3Rpb25Nb2RlJiZyLnVuc2hpZnQodChcInRkXCIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1jb2wtYXV0by13aWR0aFwifSxbdChRQ2hlY2tib3gse3Byb3BzOnt2YWx1ZTpvLGNvbG9yOmUuY29sb3IsZGFyazplLmRhcmt9LG9uOntpbnB1dDpmdW5jdGlvbih0KXtlLl9fdXBkYXRlU2VsZWN0aW9uKFtuXSxbaV0sdCl9fX0pXSkpLHQoXCJ0clwiLHtrZXk6bixjbGFzczp7c2VsZWN0ZWQ6b319LHIpfSksbiYmci51bnNoaWZ0KG4oe2NvbHM6dGhpcy5jb21wdXRlZENvbHN9KSksbyYmci5wdXNoKG8oe2NvbHM6dGhpcy5jb21wdXRlZENvbHN9KSksdChcInRib2R5XCIscil9LGFkZEJvZHlSb3dNZXRhOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuaGFzU2VsZWN0aW9uTW9kZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJzZWxlY3RlZFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZS5pc1Jvd1NlbGVjdGVkKHQua2V5KX0sc2V0OmZ1bmN0aW9uKGkpe2UuX191cGRhdGVTZWxlY3Rpb24oW3Qua2V5XSxbdC5yb3ddLGkpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiZXhwYW5kXCIse2dldDpmdW5jdGlvbigpe3JldHVybiEwPT09ZS5yb3dzRXhwYW5kZWRbdC5rZXldfSxzZXQ6ZnVuY3Rpb24oaSl7ZS4kc2V0KGUucm93c0V4cGFuZGVkLHQua2V5LGkpfX0pLHQuY29scz10LmNvbHMubWFwKGZ1bmN0aW9uKGkpe3ZhciBzPU9iamVjdC5hc3NpZ24oe30saSk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLFwidmFsdWVcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2V0Q2VsbFZhbHVlKGksdC5yb3cpfX0pLHN9KSx0fSxhZGRCb2R5Q2VsbE1ldGFEYXRhOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwidmFsdWVcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2V0Q2VsbFZhbHVlKHQuY29sLHQucm93KX19KSx0fSxnZXRDZWxsVmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0LmZpZWxkP3QuZmllbGQoZSk6ZVt0LmZpZWxkXTtyZXR1cm4gdC5mb3JtYXQ/dC5mb3JtYXQoaSk6aX19fSxCb3R0b209e2NvbXB1dGVkOntuYXZJY29uOmZ1bmN0aW9uKCl7dmFyIHQ9W3RoaXMuJHEuaWNvbi50YWJsZS5wcmV2UGFnZSx0aGlzLiRxLmljb24udGFibGUubmV4dFBhZ2VdO3JldHVybiB0aGlzLiRxLmkxOG4ucnRsP3QucmV2ZXJzZSgpOnR9fSxtZXRob2RzOntnZXRCb3R0b206ZnVuY3Rpb24odCl7aWYoIXRoaXMuaGlkZUJvdHRvbSl7aWYodGhpcy5ub3RoaW5nVG9EaXNwbGF5KXt2YXIgZT10aGlzLmZpbHRlcj90aGlzLm5vUmVzdWx0c0xhYmVsfHx0aGlzLiRxLmkxOG4udGFibGUubm9SZXN1bHRzOnRoaXMubG9hZGluZz90aGlzLmxvYWRpbmdMYWJlbHx8dGhpcy4kcS5pMThuLnRhYmxlLmxvYWRpbmc6dGhpcy5ub0RhdGFMYWJlbHx8dGhpcy4kcS5pMThuLnRhYmxlLm5vRGF0YTtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUtYm90dG9tIHJvdyBpdGVtcy1jZW50ZXIgcS10YWJsZS1ub2RhdGFcIn0sW3QoUUljb24se3Byb3BzOntuYW1lOnRoaXMuJHEuaWNvbi50YWJsZS53YXJuaW5nfX0pLGVdKX12YXIgaT10aGlzLiRzY29wZWRTbG90cy5ib3R0b207cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLWJvdHRvbSByb3cgaXRlbXMtY2VudGVyXCIsY2xhc3M6aT9udWxsOlwianVzdGlmeS1lbmRcIn0saT9baSh0aGlzLm1hcmdpbmFsc1Byb3BzKV06dGhpcy5nZXRQYWdpbmF0aW9uUm93KHQpKX19LGdldFBhZ2luYXRpb25Sb3c6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPXRoaXMuY29tcHV0ZWRQYWdpbmF0aW9uLnJvd3NQZXJQYWdlLHM9dGhpcy5wYWdpbmF0aW9uTGFiZWx8fHRoaXMuJHEuaTE4bi50YWJsZS5wYWdpbmF0aW9uLG49dGhpcy4kc2NvcGVkU2xvdHMucGFnaW5hdGlvbjtyZXR1cm5bdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUtY29udHJvbFwifSxbdChcImRpdlwiLFt0aGlzLmhhc1NlbGVjdGlvbk1vZGUmJnRoaXMucm93c1NlbGVjdGVkTnVtYmVyPjA/KHRoaXMuc2VsZWN0ZWRSb3dzTGFiZWx8fHRoaXMuJHEuaTE4bi50YWJsZS5zZWxlY3RlZFJlY29yZHMpKHRoaXMucm93c1NlbGVjdGVkTnVtYmVyKTpcIlwiXSldKSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1zZXBhcmF0b3IgY29sXCJ9KSx0aGlzLnJvd3NQZXJQYWdlT3B0aW9ucy5sZW5ndGg+MSYmdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUtY29udHJvbFwifSxbdChcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLWJvdHRvbS1pdGVtXCJ9LFt0aGlzLnJvd3NQZXJQYWdlTGFiZWx8fHRoaXMuJHEuaTE4bi50YWJsZS5yZWNvcmRzUGVyUGFnZV0pLHQoUVNlbGVjdCx7c3RhdGljQ2xhc3M6XCJpbmxpbmUgcS10YWJsZS1ib3R0b20taXRlbVwiLHByb3BzOntjb2xvcjp0aGlzLmNvbG9yLHZhbHVlOmksb3B0aW9uczp0aGlzLmNvbXB1dGVkUm93c1BlclBhZ2VPcHRpb25zLGRhcms6dGhpcy5kYXJrLGhpZGVVbmRlcmxpbmU6ITB9LG9uOntpbnB1dDpmdW5jdGlvbih0KXtlLnNldFBhZ2luYXRpb24oe3BhZ2U6MSxyb3dzUGVyUGFnZTp0fSl9fX0pXSl8fHZvaWQgMCx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1jb250cm9sXCJ9LFtuP24odGhpcy5tYXJnaW5hbHNQcm9wcyk6W3QoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1ib3R0b20taXRlbVwifSxbaT9zKHRoaXMuZmlyc3RSb3dJbmRleCsxLE1hdGgubWluKHRoaXMubGFzdFJvd0luZGV4LHRoaXMuY29tcHV0ZWRSb3dzTnVtYmVyKSx0aGlzLmNvbXB1dGVkUm93c051bWJlcik6cygxLHRoaXMuY29tcHV0ZWRSb3dzTnVtYmVyLHRoaXMuY29tcHV0ZWRSb3dzTnVtYmVyKV0pLHQoUUJ0bix7cHJvcHM6e2NvbG9yOnRoaXMuY29sb3Iscm91bmQ6ITAsaWNvbjp0aGlzLm5hdkljb25bMF0sZGVuc2U6ITAsZmxhdDohMCxkaXNhYmxlOnRoaXMuaXNGaXJzdFBhZ2V9LG9uOntjbGljazp0aGlzLnByZXZQYWdlfX0pLHQoUUJ0bix7cHJvcHM6e2NvbG9yOnRoaXMuY29sb3Iscm91bmQ6ITAsaWNvbjp0aGlzLm5hdkljb25bMV0sZGVuc2U6ITAsZmxhdDohMCxkaXNhYmxlOnRoaXMuaXNMYXN0UGFnZX0sb246e2NsaWNrOnRoaXMubmV4dFBhZ2V9fSldXSldfX19O2Z1bmN0aW9uIHNvcnREYXRlKHQsZSl7cmV0dXJuIG5ldyBEYXRlKHQpLW5ldyBEYXRlKGUpfXZhciBTb3J0PXtwcm9wczp7c29ydE1ldGhvZDp7dHlwZTpGdW5jdGlvbixkZWZhdWx0OmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz10aGlzLmNvbHVtbnMuZmluZChmdW5jdGlvbih0KXtyZXR1cm4gdC5uYW1lPT09ZX0pO2lmKG51bGw9PT1zfHx2b2lkIDA9PT1zLmZpZWxkKXJldHVybiB0O3ZhciBuPWk/LTE6MSxvPVwiZnVuY3Rpb25cIj09dHlwZW9mIHMuZmllbGQ/ZnVuY3Rpb24odCl7cmV0dXJuIHMuZmllbGQodCl9OmZ1bmN0aW9uKHQpe3JldHVybiB0W3MuZmllbGRdfTtyZXR1cm4gdC5zb3J0KGZ1bmN0aW9uKHQsZSl7dmFyIGkscj1vKHQpLGE9byhlKTtyZXR1cm4gbnVsbD09PXJ8fHZvaWQgMD09PXI/LTEqbjpudWxsPT09YXx8dm9pZCAwPT09YT8xKm46cy5zb3J0P3Muc29ydChyLGEpKm46aXNOdW1iZXIocikmJmlzTnVtYmVyKGEpPyhyLWEpKm46aXNEYXRlKHIpJiZpc0RhdGUoYSk/c29ydERhdGUocixhKSpuOlwiYm9vbGVhblwiPT10eXBlb2YgciYmXCJib29sZWFuXCI9PXR5cGVvZiBhPyh0LWUpKm46KHI9KGk9W3IsYV0ubWFwKGZ1bmN0aW9uKHQpe3JldHVybih0K1wiXCIpLnRvTG93ZXJDYXNlKCl9KSlbMF0pPChhPWlbMV0pPy0xKm46cj09PWE/MDpufSl9fX0sY29tcHV0ZWQ6e2NvbHVtblRvU29ydDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuY29tcHV0ZWRQYWdpbmF0aW9uLnNvcnRCeTtpZih0KXJldHVybiB0aGlzLmNvbHVtbnMuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5uYW1lPT09dH0pfHxudWxsfX0sbWV0aG9kczp7c29ydDpmdW5jdGlvbih0KXt0PT09T2JqZWN0KHQpJiYodD10Lm5hbWUpO3ZhciBlPXRoaXMuY29tcHV0ZWRQYWdpbmF0aW9uLGk9ZS5zb3J0Qnkscz1lLmRlc2NlbmRpbmc7aSE9PXQ/KGk9dCxzPSExKTp0aGlzLmJpbmFyeVN0YXRlU29ydD9zPSFzOnM/aT1udWxsOnM9ITAsdGhpcy5zZXRQYWdpbmF0aW9uKHtzb3J0Qnk6aSxkZXNjZW5kaW5nOnMscGFnZToxfSl9fX0sRmlsdGVyPXtwcm9wczp7ZmlsdGVyOltTdHJpbmcsT2JqZWN0XSxmaWx0ZXJNZXRob2Q6e3R5cGU6RnVuY3Rpb24sZGVmYXVsdDpmdW5jdGlvbih0LGUsaSxzKXt2b2lkIDA9PT1pJiYoaT10aGlzLmNvbXB1dGVkQ29scyksdm9pZCAwPT09cyYmKHM9dGhpcy5nZXRDZWxsVmFsdWUpO3ZhciBuPWU/ZS50b0xvd2VyQ2FzZSgpOlwiXCI7cmV0dXJuIHQuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBpLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuLTEhPT0ocyhlLHQpK1wiXCIpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihuKX0pfSl9fX0sd2F0Y2g6e2ZpbHRlcjpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt0LnNldFBhZ2luYXRpb24oe3BhZ2U6MX0sITApfSl9fX07ZnVuY3Rpb24gc2FtZVBhZ2luYXRpb24odCxlKXtmb3IodmFyIGkgaW4gZSlpZihlW2ldIT09dFtpXSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBmaXhQYWdpbmF0aW9uKHQpe3JldHVybiB0LnBhZ2U8MSYmKHQucGFnZT0xKSx2b2lkIDAhPT10LnJvd3NQZXJQYWdlJiZ0LnJvd3NQZXJQYWdlPDEmJih0LnJvd3NQZXJQYWdlPTApLHR9dmFyIFBhZ2luYXRpb249e3Byb3BzOntwYWdpbmF0aW9uOk9iamVjdCxyb3dzUGVyUGFnZU9wdGlvbnM6e3R5cGU6QXJyYXksZGVmYXVsdDpmdW5jdGlvbigpe3JldHVyblszLDUsNywxMCwxNSwyMCwyNSw1MCwwXX19fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2lubmVyUGFnaW5hdGlvbjp7c29ydEJ5Om51bGwsZGVzY2VuZGluZzohMSxwYWdlOjEscm93c1BlclBhZ2U6NX19fSxjb21wdXRlZDp7Y29tcHV0ZWRQYWdpbmF0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGZpeFBhZ2luYXRpb24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLmlubmVyUGFnaW5hdGlvbix0aGlzLnBhZ2luYXRpb24pKX0sZmlyc3RSb3dJbmRleDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuY29tcHV0ZWRQYWdpbmF0aW9uO3JldHVybih0LnBhZ2UtMSkqdC5yb3dzUGVyUGFnZX0sbGFzdFJvd0luZGV4OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb21wdXRlZFBhZ2luYXRpb247cmV0dXJuIHQucGFnZSp0LnJvd3NQZXJQYWdlfSxpc0ZpcnN0UGFnZTpmdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5jb21wdXRlZFBhZ2luYXRpb24ucGFnZX0scGFnZXNOdW1iZXI6ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5tYXgoMSxNYXRoLmNlaWwodGhpcy5jb21wdXRlZFJvd3NOdW1iZXIvdGhpcy5jb21wdXRlZFBhZ2luYXRpb24ucm93c1BlclBhZ2UpKX0saXNMYXN0UGFnZTpmdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5sYXN0Um93SW5kZXh8fHRoaXMuY29tcHV0ZWRQYWdpbmF0aW9uLnBhZ2U+PXRoaXMucGFnZXNOdW1iZXJ9LGNvbXB1dGVkUm93c1BlclBhZ2VPcHRpb25zOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5yb3dzUGVyUGFnZU9wdGlvbnMubWFwKGZ1bmN0aW9uKGUpe3JldHVybntsYWJlbDowPT09ZT90LiRxLmkxOG4udGFibGUuYWxsUm93czpcIlwiK2UsdmFsdWU6ZX19KX19LHdhdGNoOntwYWdlc051bWJlcjpmdW5jdGlvbih0LGUpe2lmKHQhPT1lKXt2YXIgaT10aGlzLmNvbXB1dGVkUGFnaW5hdGlvbi5wYWdlO3QmJiFpP3RoaXMuc2V0UGFnaW5hdGlvbih7cGFnZToxfSk6dDxpJiZ0aGlzLnNldFBhZ2luYXRpb24oe3BhZ2U6dH0pfX19LG1ldGhvZHM6e19fc2VuZFNlcnZlclJlcXVlc3Q6ZnVuY3Rpb24odCl7dGhpcy5yZXF1ZXN0U2VydmVySW50ZXJhY3Rpb24oe3BhZ2luYXRpb246dCxmaWx0ZXI6dGhpcy5maWx0ZXJ9KX0sc2V0UGFnaW5hdGlvbjpmdW5jdGlvbih0LGUpe3ZhciBpPWZpeFBhZ2luYXRpb24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLmNvbXB1dGVkUGFnaW5hdGlvbix0KSk7c2FtZVBhZ2luYXRpb24odGhpcy5jb21wdXRlZFBhZ2luYXRpb24saSk/dGhpcy5pc1NlcnZlclNpZGUmJmUmJnRoaXMuX19zZW5kU2VydmVyUmVxdWVzdChpKTp0aGlzLmlzU2VydmVyU2lkZT90aGlzLl9fc2VuZFNlcnZlclJlcXVlc3QoaSk6dGhpcy5wYWdpbmF0aW9uP3RoaXMuJGVtaXQoXCJ1cGRhdGU6cGFnaW5hdGlvblwiLGkpOnRoaXMuaW5uZXJQYWdpbmF0aW9uPWl9LHByZXZQYWdlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb21wdXRlZFBhZ2luYXRpb24ucGFnZTt0PjEmJnRoaXMuc2V0UGFnaW5hdGlvbih7cGFnZTp0LTF9KX0sbmV4dFBhZ2U6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNvbXB1dGVkUGFnaW5hdGlvbixlPXQucGFnZSxpPXQucm93c1BlclBhZ2U7dGhpcy5sYXN0Um93SW5kZXg+MCYmZSppPHRoaXMuY29tcHV0ZWRSb3dzTnVtYmVyJiZ0aGlzLnNldFBhZ2luYXRpb24oe3BhZ2U6ZSsxfSl9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy4kZW1pdChcInVwZGF0ZTpwYWdpbmF0aW9uXCIsT2JqZWN0LmFzc2lnbih7fSx0aGlzLmNvbXB1dGVkUGFnaW5hdGlvbikpfX0sUm93U2VsZWN0aW9uPXtwcm9wczp7c2VsZWN0aW9uOnt0eXBlOlN0cmluZyxkZWZhdWx0Olwibm9uZVwiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJzaW5nbGVcIixcIm11bHRpcGxlXCIsXCJub25lXCJdLmluY2x1ZGVzKHQpfX0sc2VsZWN0ZWQ6e3R5cGU6QXJyYXksZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybltdfX19LGNvbXB1dGVkOntzZWxlY3RlZEtleXM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9e307cmV0dXJuIHRoaXMuc2VsZWN0ZWQubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlW3Qucm93S2V5XX0pLmZvckVhY2goZnVuY3Rpb24odCl7ZVt0XT0hMH0pLGV9LGhhc1NlbGVjdGlvbk1vZGU6ZnVuY3Rpb24oKXtyZXR1cm5cIm5vbmVcIiE9PXRoaXMuc2VsZWN0aW9ufSxzaW5nbGVTZWxlY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm5cInNpbmdsZVwiPT09dGhpcy5zZWxlY3Rpb259LG11bHRpcGxlU2VsZWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuXCJtdWx0aXBsZVwiPT09dGhpcy5zZWxlY3Rpb259LGFsbFJvd3NTZWxlY3RlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYodGhpcy5tdWx0aXBsZVNlbGVjdGlvbilyZXR1cm4gdGhpcy5jb21wdXRlZFJvd3MubGVuZ3RoPjAmJnRoaXMuY29tcHV0ZWRSb3dzLmV2ZXJ5KGZ1bmN0aW9uKGUpe3JldHVybiEwPT09dC5zZWxlY3RlZEtleXNbZVt0LnJvd0tleV1dfSl9LHNvbWVSb3dzU2VsZWN0ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKHRoaXMubXVsdGlwbGVTZWxlY3Rpb24pcmV0dXJuIXRoaXMuYWxsUm93c1NlbGVjdGVkJiZ0aGlzLmNvbXB1dGVkUm93cy5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiEwPT09dC5zZWxlY3RlZEtleXNbZVt0LnJvd0tleV1dfSl9LHJvd3NTZWxlY3RlZE51bWJlcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNlbGVjdGVkLmxlbmd0aH19LG1ldGhvZHM6e2lzUm93U2VsZWN0ZWQ6ZnVuY3Rpb24odCl7cmV0dXJuITA9PT10aGlzLnNlbGVjdGVkS2V5c1t0XX0sY2xlYXJTZWxlY3Rpb246ZnVuY3Rpb24oKXt0aGlzLiRlbWl0KFwidXBkYXRlOnNlbGVjdGVkXCIsW10pfSxfX3VwZGF0ZVNlbGVjdGlvbjpmdW5jdGlvbih0LGUsaSl7dmFyIHM9dGhpczt0aGlzLnNpbmdsZVNlbGVjdGlvbj90aGlzLiRlbWl0KFwidXBkYXRlOnNlbGVjdGVkXCIsaT9lOltdKTp0aGlzLiRlbWl0KFwidXBkYXRlOnNlbGVjdGVkXCIsaT90aGlzLnNlbGVjdGVkLmNvbmNhdChlKTp0aGlzLnNlbGVjdGVkLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hdC5pbmNsdWRlcyhlW3Mucm93S2V5XSl9KSl9fX0sQ29sdW1uU2VsZWN0aW9uPXtwcm9wczp7dmlzaWJsZUNvbHVtbnM6QXJyYXl9LGNvbXB1dGVkOntjb21wdXRlZENvbHM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5jb21wdXRlZFBhZ2luYXRpb24saT1lLnNvcnRCeSxzPWUuZGVzY2VuZGluZztyZXR1cm4odGhpcy52aXNpYmxlQ29sdW1ucz90aGlzLmNvbHVtbnMuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcXVpcmVkfHx0LnZpc2libGVDb2x1bW5zLmluY2x1ZGVzKGUubmFtZSl9KTp0aGlzLmNvbHVtbnMpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5hbGlnbj10LmFsaWdufHxcInJpZ2h0XCIsdC5fX2ljb25DbGFzcz1cInEtdGFibGUtc29ydC1pY29uIHEtdGFibGUtc29ydC1pY29uLVwiK3QuYWxpZ24sdC5fX3RoQ2xhc3M9XCJ0ZXh0LVwiK3QuYWxpZ24rKHQuc29ydGFibGU/XCIgc29ydGFibGVcIjpcIlwiKSsodC5uYW1lPT09aT9cIiBzb3J0ZWQgXCIrKHM/XCJzb3J0LWRlc2NcIjpcIlwiKTpcIlwiKSx0Ll9fdGRDbGFzcz1cInRleHQtXCIrdC5hbGlnbix0fSl9LGNvbXB1dGVkQ29sc01hcDpmdW5jdGlvbigpe3ZhciB0PXt9O3JldHVybiB0aGlzLmNvbXB1dGVkQ29scy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3RbZS5uYW1lXT1lfSksdH19fSxFeHBhbmQ9e2RhdGE6ZnVuY3Rpb24oKXtyZXR1cm57cm93c0V4cGFuZGVkOnt9fX19LFFUYWJsZT17bmFtZTpcIlFUYWJsZVwiLG1peGluczpbRnVsbHNjcmVlbk1peGluLFRvcCxUYWJsZUhlYWRlcixUYWJsZUJvZHksQm90dG9tLFNvcnQsRmlsdGVyLFBhZ2luYXRpb24sUm93U2VsZWN0aW9uLENvbHVtblNlbGVjdGlvbixFeHBhbmRdLHByb3BzOntkYXRhOnt0eXBlOkFycmF5LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm5bXX19LHJvd0tleTp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImlkXCJ9LGNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiZ3JleS04XCJ9LGdyaWQ6Qm9vbGVhbixkZW5zZTpCb29sZWFuLGNvbHVtbnM6QXJyYXksbG9hZGluZzpCb29sZWFuLHRpdGxlOlN0cmluZyxoaWRlSGVhZGVyOkJvb2xlYW4saGlkZUJvdHRvbTpCb29sZWFuLGRhcms6Qm9vbGVhbixzZXBhcmF0b3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJob3Jpem9udGFsXCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcImhvcml6b250YWxcIixcInZlcnRpY2FsXCIsXCJjZWxsXCIsXCJub25lXCJdLmluY2x1ZGVzKHQpfX0sYmluYXJ5U3RhdGVTb3J0OkJvb2xlYW4sbm9EYXRhTGFiZWw6U3RyaW5nLG5vUmVzdWx0c0xhYmVsOlN0cmluZyxsb2FkaW5nTGFiZWw6U3RyaW5nLHNlbGVjdGVkUm93c0xhYmVsOkZ1bmN0aW9uLHJvd3NQZXJQYWdlTGFiZWw6U3RyaW5nLHBhZ2luYXRpb25MYWJlbDpGdW5jdGlvbix0YWJsZVN0eWxlOnt0eXBlOltTdHJpbmcsQXJyYXksT2JqZWN0XSxkZWZhdWx0OlwiXCJ9LHRhYmxlQ2xhc3M6e3R5cGU6W1N0cmluZyxBcnJheSxPYmplY3RdLGRlZmF1bHQ6XCJcIn19LGNvbXB1dGVkOntjb21wdXRlZERhdGE6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmRhdGEuc2xpY2UoKS5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fX2luZGV4PWUsdH0pO2lmKDA9PT10Lmxlbmd0aClyZXR1cm57cm93c051bWJlcjowLHJvd3M6W119O2lmKHRoaXMuaXNTZXJ2ZXJTaWRlKXJldHVybntyb3dzOnR9O3ZhciBlPXRoaXMuY29tcHV0ZWRQYWdpbmF0aW9uLGk9ZS5zb3J0Qnkscz1lLmRlc2NlbmRpbmcsbj1lLnJvd3NQZXJQYWdlO3RoaXMuZmlsdGVyJiYodD10aGlzLmZpbHRlck1ldGhvZCh0LHRoaXMuZmlsdGVyLHRoaXMuY29tcHV0ZWRDb2xzLHRoaXMuZ2V0Q2VsbFZhbHVlKSksdGhpcy5jb2x1bW5Ub1NvcnQmJih0PXRoaXMuc29ydE1ldGhvZCh0LGkscykpO3ZhciBvPXQubGVuZ3RoO3JldHVybiBuJiYodD10LnNsaWNlKHRoaXMuZmlyc3RSb3dJbmRleCx0aGlzLmxhc3RSb3dJbmRleCkpLHtyb3dzTnVtYmVyOm8scm93czp0fX0sY29tcHV0ZWRSb3dzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29tcHV0ZWREYXRhLnJvd3N9LGNvbXB1dGVkUm93c051bWJlcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzU2VydmVyU2lkZT90aGlzLmNvbXB1dGVkUGFnaW5hdGlvbi5yb3dzTnVtYmVyfHwwOnRoaXMuY29tcHV0ZWREYXRhLnJvd3NOdW1iZXJ9LG5vdGhpbmdUb0Rpc3BsYXk6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuY29tcHV0ZWRSb3dzLmxlbmd0aH0saXNTZXJ2ZXJTaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuY29tcHV0ZWRQYWdpbmF0aW9uLnJvd3NOdW1iZXJ9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7Y2xhc3M6e1wicS10YWJsZS1ncmlkXCI6dGhpcy5ncmlkLFwicS10YWJsZS1jb250YWluZXJcIjohMCxcInEtdGFibGUtZGFya1wiOnRoaXMuZGFyayxcInEtdGFibGUtZGVuc2VcIjp0aGlzLmRlbnNlLGZ1bGxzY3JlZW46dGhpcy5pbkZ1bGxzY3JlZW4sc2Nyb2xsOnRoaXMuaW5GdWxsc2NyZWVufX0sW3RoaXMuZ2V0VG9wKHQpLHRoaXMuZ2V0Qm9keSh0KSx0aGlzLmdldEJvdHRvbSh0KV0pfSxtZXRob2RzOntyZXF1ZXN0U2VydmVySW50ZXJhY3Rpb246ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe2UuJGVtaXQoXCJyZXF1ZXN0XCIse3BhZ2luYXRpb246dC5wYWdpbmF0aW9ufHxlLmNvbXB1dGVkUGFnaW5hdGlvbixmaWx0ZXI6dC5maWx0ZXJ8fGUuZmlsdGVyLGdldENlbGxWYWx1ZTplLmdldENlbGxWYWx1ZX0pfSl9LGdldEJvZHk6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPSF0aGlzLmhpZGVIZWFkZXI7aWYodGhpcy5ncmlkKXt2YXIgcz10aGlzLiRzY29wZWRTbG90cy5pdGVtO2lmKHZvaWQgMCE9PXMpcmV0dXJuW2kmJnQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLW1pZGRsZSBzY3JvbGxcIn0sW3QoXCJ0YWJsZVwiLHtzdGF0aWNDbGFzczpcInEtdGFibGVcIisodGhpcy5kYXJrP1wiIHEtdGFibGUtZGFya1wiOlwiXCIpfSxbdGhpcy5nZXRUYWJsZUhlYWRlcih0KV0pXSl8fG51bGwsdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInJvd1wifSx0aGlzLmNvbXB1dGVkUm93cy5tYXAoZnVuY3Rpb24odCl7dmFyIGk9dFtlLnJvd0tleV0sbj1lLmlzUm93U2VsZWN0ZWQoaSk7cmV0dXJuIHMoZS5hZGRCb2R5Um93TWV0YSh7a2V5Omkscm93OnQsY29sczplLmNvbXB1dGVkQ29scyxjb2xzTWFwOmUuY29tcHV0ZWRDb2xzTWFwLF9fdHJDbGFzczpuP1wic2VsZWN0ZWRcIjpcIlwifSkpfSkpXX1yZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUtbWlkZGxlIHNjcm9sbFwiLGNsYXNzOnRoaXMudGFibGVDbGFzcyxzdHlsZTp0aGlzLnRhYmxlU3R5bGV9LFt0KFwidGFibGVcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlIHEtdGFibGUtXCIrdGhpcy5zZXBhcmF0b3IrXCItc2VwYXJhdG9yXCIrKHRoaXMuZGFyaz9cIiBxLXRhYmxlLWRhcmtcIjpcIlwiKX0sW2kmJnRoaXMuZ2V0VGFibGVIZWFkZXIodCl8fG51bGwsdGhpcy5nZXRUYWJsZUJvZHkodCldKV0pfX19LFFUcj17bmFtZTpcIlFUclwiLHByb3BzOntwcm9wczpPYmplY3R9LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInRyXCIsIXRoaXMucHJvcHN8fHRoaXMucHJvcHMuaGVhZGVyP3t9OntjbGFzczp0aGlzLnByb3BzLl9fdHJDbGFzc30sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxRVGQ9e25hbWU6XCJRVGRcIixwcm9wczp7cHJvcHM6T2JqZWN0LGF1dG9XaWR0aDpCb29sZWFufSxyZW5kZXI6ZnVuY3Rpb24odCl7aWYoIXRoaXMucHJvcHMpcmV0dXJuIHQoXCJ0ZFwiLHtjbGFzczp7XCJxLXRhYmxlLWNvbC1hdXRvLXdpZHRoXCI6dGhpcy5hdXRvV2lkdGh9fSx0aGlzLiRzbG90cy5kZWZhdWx0KTt2YXIgZSxpPXRoaXMuJHZub2RlLmtleTtpZihpKXtpZighKGU9dGhpcy5wcm9wcy5jb2xzTWFwW2ldKSlyZXR1cm59ZWxzZSBlPXRoaXMucHJvcHMuY29sO3JldHVybiB0KFwidGRcIix7Y2xhc3M6W2UuX190ZENsYXNzLHtcInEtdGFibGUtY29sLWF1dG8td2lkdGhcIjp0aGlzLmF1dG9XaWR0aH1dfSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFUYWJsZUNvbHVtbnM9e25hbWU6XCJRVGFibGVDb2x1bW5zXCIscHJvcHM6e3ZhbHVlOnt0eXBlOkFycmF5LHJlcXVpcmVkOiEwfSxsYWJlbDpTdHJpbmcsY29sdW1uczp7dHlwZTpBcnJheSxyZXF1aXJlZDohMH0sY29sb3I6U3RyaW5nLGRhcms6Qm9vbGVhbn0sY29tcHV0ZWQ6e2NvbXB1dGVkT3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbHVtbnMuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiF0LnJlcXVpcmVkfSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybnt2YWx1ZTp0Lm5hbWUsbGFiZWw6dC5sYWJlbH19KX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFFTZWxlY3Qse3Byb3BzOnttdWx0aXBsZTohMCx0b2dnbGU6ITAsdmFsdWU6dGhpcy52YWx1ZSxvcHRpb25zOnRoaXMuY29tcHV0ZWRPcHRpb25zLGRpc3BsYXlWYWx1ZTp0aGlzLmxhYmVsfHx0aGlzLiRxLmkxOG4udGFibGUuY29sdW1ucyxjb2xvcjp0aGlzLmNvbG9yLGRhcms6dGhpcy5kYXJrLGhpZGVVbmRlcmxpbmU6ITB9LG9uOntpbnB1dDpmdW5jdGlvbih0KXtlLiRlbWl0KFwiaW5wdXRcIix0KX0sY2hhbmdlOmZ1bmN0aW9uKHQpe2UuJGVtaXQoXCJjaGFuZ2VcIix0KX19fSl9fSxRVGltZWxpbmU9e25hbWU6XCJRVGltZWxpbmVcIixwcm92aWRlOmZ1bmN0aW9uKCl7cmV0dXJue19fdGltZWxpbmU6dGhpc319LHByb3BzOntjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInByaW1hcnlcIn0scmVzcG9uc2l2ZTpCb29sZWFuLG5vSG92ZXI6Qm9vbGVhbixkYXJrOkJvb2xlYW59LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInVsXCIse3N0YXRpY0NsYXNzOlwicS10aW1lbGluZVwiLGNsYXNzOntcInEtdGltZWxpbmUtZGFya1wiOnRoaXMuZGFyayxcInEtdGltZWxpbmUtcmVzcG9uc2l2ZVwiOnRoaXMucmVzcG9uc2l2ZSxcInEtdGltZWxpbmUtaG92ZXJcIjohdGhpcy5ub0hvdmVyfX0sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxRVGltZWxpbmVFbnRyeT17bmFtZTpcIlFUaW1lbGluZUVudHJ5XCIsaW5qZWN0OntfX3RpbWVsaW5lOntkZWZhdWx0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcihcIlFUaW1lbGluZUVudHJ5IG5lZWRzIHRvIGJlIGNoaWxkIG9mIFFUaW1lbGluZVwiKX19fSxwcm9wczp7aGVhZGluZzpCb29sZWFuLHRhZzp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImgzXCJ9LHNpZGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJyaWdodFwiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJsZWZ0XCIsXCJyaWdodFwiXS5pbmNsdWRlcyh0KX19LGljb246U3RyaW5nLGNvbG9yOlN0cmluZyx0aXRsZTpTdHJpbmcsc3VidGl0bGU6U3RyaW5nfSxjb21wdXRlZDp7Y29sb3JDbGFzczpmdW5jdGlvbigpe3JldHVyblwidGV4dC1cIisodGhpcy5jb2xvcnx8dGhpcy5fX3RpbWVsaW5lLmNvbG9yKX0sY2xhc3NlczpmdW5jdGlvbigpe3JldHVybltcInEtdGltZWxpbmUtZW50cnktXCIrKFwibGVmdFwiPT09dGhpcy5zaWRlP1wibGVmdFwiOlwicmlnaHRcIiksdGhpcy5pY29uP1wicS10aW1lbGluZS1lbnRyeS13aXRoLWljb25cIjpcIlwiXX19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5oZWFkaW5nP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRpbWVsaW5lLWhlYWRpbmdcIn0sW3QoXCJkaXZcIiksdChcImRpdlwiKSx0KHRoaXMudGFnLHtzdGF0aWNDbGFzczpcInEtdGltZWxpbmUtaGVhZGluZy10aXRsZVwifSx0aGlzLiRzbG90cy5kZWZhdWx0KV0pOnQoXCJsaVwiLHtzdGF0aWNDbGFzczpcInEtdGltZWxpbmUtZW50cnlcIixjbGFzczp0aGlzLmNsYXNzZXN9LFt0aGlzLiRzbG90cy5zdWJ0aXRsZXx8dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGltZWxpbmUtc3VidGl0bGVcIn0sW3QoXCJzcGFuXCIsdGhpcy5zdWJ0aXRsZSldKSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10aW1lbGluZS1kb3RcIixjbGFzczp0aGlzLmNvbG9yQ2xhc3N9LFt0aGlzLmljb24/dChRSWNvbix7cHJvcHM6e25hbWU6dGhpcy5pY29ufX0pOm51bGxdKSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10aW1lbGluZS1jb250ZW50XCJ9LCh0aGlzLiRzbG90cy50aXRsZXx8W3QoXCJoNlwiLHtzdGF0aWNDbGFzczpcInEtdGltZWxpbmUtdGl0bGVcIn0sW3RoaXMudGl0bGVdKV0pLmNvbmNhdCh0aGlzLiRzbG90cy5kZWZhdWx0KSldKX19LFFUb29sYmFyPXtuYW1lOlwiUVRvb2xiYXJcIixwcm9wczp7Y29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJwcmltYXJ5XCJ9LHRleHRDb2xvcjpTdHJpbmcsaW52ZXJ0ZWQ6Qm9vbGVhbixnbG9zc3k6Qm9vbGVhbn0sY29tcHV0ZWQ6e2NsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXCJxLXRvb2xiYXItXCIrKHRoaXMuaW52ZXJ0ZWQ/XCJpbnZlcnRlZFwiOlwibm9ybWFsXCIpXTtyZXR1cm4gdGhpcy5nbG9zc3kmJnQucHVzaChcImdsb3NzeVwiKSx0aGlzLmludmVydGVkP3QucHVzaChcInRleHQtXCIrKHRoaXMudGV4dENvbG9yfHx0aGlzLmNvbG9yKSk6KHQucHVzaChcImJnLVwiK3RoaXMuY29sb3IpLHQucHVzaChcInRleHQtXCIrKHRoaXMudGV4dENvbG9yfHxcIndoaXRlXCIpKSksdH19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdG9vbGJhciByb3cgbm8td3JhcCBpdGVtcy1jZW50ZXIgcmVsYXRpdmUtcG9zaXRpb25cIixjbGFzczp0aGlzLmNsYXNzZXN9LHRoaXMuJHNsb3RzLmRlZmF1bHQpfX0sUVRvb2xiYXJUaXRsZT17bmFtZTpcIlFUb29sYmFyVGl0bGVcIixwcm9wczp7c2hyaW5rOkJvb2xlYW59LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdG9vbGJhci10aXRsZVwiLGNsYXNzOnRoaXMuc2hyaW5rP1wiY29sLWF1dG9cIjpudWxsfSxbdGhpcy4kc2xvdHMuZGVmYXVsdCx0aGlzLiRzbG90cy5zdWJ0aXRsZT90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10b29sYmFyLXN1YnRpdGxlXCJ9LHRoaXMuJHNsb3RzLnN1YnRpdGxlKTpudWxsXSl9fSxRVHJlZT17bmFtZTpcIlFUcmVlXCIsZGlyZWN0aXZlczp7UmlwcGxlOlJpcHBsZX0scHJvcHM6e25vZGVzOkFycmF5LG5vZGVLZXk6e3R5cGU6U3RyaW5nLHJlcXVpcmVkOiEwfSxsYWJlbEtleTp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImxhYmVsXCJ9LGNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiZ3JleVwifSxjb250cm9sQ29sb3I6U3RyaW5nLHRleHRDb2xvcjpTdHJpbmcsZGFyazpCb29sZWFuLGljb246U3RyaW5nLHRpY2tTdHJhdGVneTp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcIm5vbmVcIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1wibm9uZVwiLFwic3RyaWN0XCIsXCJsZWFmXCIsXCJsZWFmLWZpbHRlcmVkXCJdLmluY2x1ZGVzKHQpfX0sdGlja2VkOkFycmF5LGV4cGFuZGVkOkFycmF5LHNlbGVjdGVkOnt9LGRlZmF1bHRFeHBhbmRBbGw6Qm9vbGVhbixhY2NvcmRpb246Qm9vbGVhbixmaWx0ZXI6U3RyaW5nLGZpbHRlck1ldGhvZDp7dHlwZTpGdW5jdGlvbixkZWZhdWx0OmZ1bmN0aW9uKHQsZSl7dmFyIGk9ZS50b0xvd2VyQ2FzZSgpO3JldHVybiB0W3RoaXMubGFiZWxLZXldJiZ0W3RoaXMubGFiZWxLZXldLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihpKT4tMX19LGR1cmF0aW9uOk51bWJlcixub05vZGVzTGFiZWw6U3RyaW5nLG5vUmVzdWx0c0xhYmVsOlN0cmluZ30sY29tcHV0ZWQ6e2hhc1JpcHBsZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLm5vUmlwcGxlfSxjbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJuW1widGV4dC1cIit0aGlzLmNvbG9yLHtcInEtdHJlZS1kYXJrXCI6dGhpcy5kYXJrfV19LGhhc1NlbGVjdGlvbjpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLnNlbGVjdGVkfSxjb21wdXRlZEljb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pY29ufHx0aGlzLiRxLmljb24udHJlZS5pY29ufSxjb21wdXRlZENvbnRyb2xDb2xvcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRyb2xDb2xvcnx8dGhpcy5jb2xvcn0sY29udGVudENsYXNzOmZ1bmN0aW9uKCl7cmV0dXJuXCJ0ZXh0LVwiKyh0aGlzLnRleHRDb2xvcnx8KHRoaXMuZGFyaz9cIndoaXRlXCI6XCJibGFja1wiKSl9LG1ldGE6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9e30saT1mdW5jdGlvbihzLG4pe3ZhciBvPXMudGlja1N0cmF0ZWd5fHwobj9uLnRpY2tTdHJhdGVneTp0LnRpY2tTdHJhdGVneSkscj1zW3Qubm9kZUtleV0sYT1zLmNoaWxkcmVuJiZzLmNoaWxkcmVuLmxlbmd0aD4wLGw9IWEsYz0hcy5kaXNhYmxlZCYmdC5oYXNTZWxlY3Rpb24mJiExIT09cy5zZWxlY3RhYmxlLGg9IXMuZGlzYWJsZWQmJiExIT09cy5leHBhbmRhYmxlLHU9XCJub25lXCIhPT1vLGQ9XCJzdHJpY3RcIj09PW8scD1cImxlYWYtZmlsdGVyZWRcIj09PW8sZj1cImxlYWZcIj09PW98fFwibGVhZi1maWx0ZXJlZFwiPT09byxtPSFzLmRpc2FibGVkJiYhMSE9PXMudGlja2FibGU7ZiYmbSYmbiYmIW4udGlja2FibGUmJihtPSExKTt2YXIgZz1zLmxhenk7ZyYmdC5sYXp5W3JdJiYoZz10Lmxhenlbcl0pO3ZhciB2PXtrZXk6cixwYXJlbnQ6bixpc1BhcmVudDphLGlzTGVhZjpsLGxhenk6ZyxkaXNhYmxlZDpzLmRpc2FibGVkLGxpbms6Y3x8aCYmKGF8fCEwPT09ZyksY2hpbGRyZW46W10sbWF0Y2hlc0ZpbHRlcjohdC5maWx0ZXJ8fHQuZmlsdGVyTWV0aG9kKHMsdC5maWx0ZXIpLHNlbGVjdGVkOnI9PT10LnNlbGVjdGVkJiZjLHNlbGVjdGFibGU6YyxleHBhbmRlZDohIWEmJnQuaW5uZXJFeHBhbmRlZC5pbmNsdWRlcyhyKSxleHBhbmRhYmxlOmgsbm9UaWNrOnMubm9UaWNrfHwhZCYmZyYmXCJsb2FkZWRcIiE9PWcsdGlja2FibGU6bSx0aWNrU3RyYXRlZ3k6byxoYXNUaWNraW5nOnUsc3RyaWN0VGlja2luZzpkLGxlYWZGaWx0ZXJlZFRpY2tpbmc6cCxsZWFmVGlja2luZzpmLHRpY2tlZDpkP3QuaW5uZXJUaWNrZWQuaW5jbHVkZXMocik6ISFsJiZ0LmlubmVyVGlja2VkLmluY2x1ZGVzKHIpfTtpZihlW3JdPXYsYSYmKHYuY2hpbGRyZW49cy5jaGlsZHJlbi5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGkodCx2KX0pLHQuZmlsdGVyJiYodi5tYXRjaGVzRmlsdGVyfHwodi5tYXRjaGVzRmlsdGVyPXYuY2hpbGRyZW4uc29tZShmdW5jdGlvbih0KXtyZXR1cm4gdC5tYXRjaGVzRmlsdGVyfSkpLHYubWF0Y2hlc0ZpbHRlciYmIXYubm9UaWNrJiYhdi5kaXNhYmxlZCYmdi50aWNrYWJsZSYmcCYmdi5jaGlsZHJlbi5ldmVyeShmdW5jdGlvbih0KXtyZXR1cm4hdC5tYXRjaGVzRmlsdGVyfHx0Lm5vVGlja3x8IXQudGlja2FibGV9KSYmKHYudGlja2FibGU9ITEpKSx2Lm1hdGNoZXNGaWx0ZXImJih2Lm5vVGlja3x8ZHx8IXYuY2hpbGRyZW4uZXZlcnkoZnVuY3Rpb24odCl7cmV0dXJuIHQubm9UaWNrfSl8fCh2Lm5vVGljaz0hMCksZiYmKHYudGlja2VkPSExLHYuaW5kZXRlcm1pbmF0ZT12LmNoaWxkcmVuLnNvbWUoZnVuY3Rpb24odCl7cmV0dXJuIHQuaW5kZXRlcm1pbmF0ZX0pLCF2LmluZGV0ZXJtaW5hdGUpKSkpe3ZhciBiPXYuY2hpbGRyZW4ucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUudGlja2VkP3QrMTp0fSwwKTtiPT09di5jaGlsZHJlbi5sZW5ndGg/di50aWNrZWQ9ITA6Yj4wJiYodi5pbmRldGVybWluYXRlPSEwKX1yZXR1cm4gdn07cmV0dXJuIHRoaXMubm9kZXMuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gaSh0LG51bGwpfSksZX19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57bGF6eTp7fSxpbm5lclRpY2tlZDp0aGlzLnRpY2tlZHx8W10saW5uZXJFeHBhbmRlZDp0aGlzLmV4cGFuZGVkfHxbXX19LHdhdGNoOnt0aWNrZWQ6ZnVuY3Rpb24odCl7dGhpcy5pbm5lclRpY2tlZD10fSxleHBhbmRlZDpmdW5jdGlvbih0KXt0aGlzLmlubmVyRXhwYW5kZWQ9dH19LG1ldGhvZHM6e2dldE5vZGVCeUtleTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9W10ucmVkdWNlLHM9ZnVuY3Rpb24obixvKXtyZXR1cm4gbnx8IW8/bjpBcnJheS5pc0FycmF5KG8pP2kuY2FsbChPYmplY3QobykscyxuKTpvW2Uubm9kZUtleV09PT10P286by5jaGlsZHJlbj9zKG51bGwsby5jaGlsZHJlbik6dm9pZCAwfTtyZXR1cm4gcyhudWxsLHRoaXMubm9kZXMpfSxnZXRUaWNrZWROb2RlczpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuaW5uZXJUaWNrZWQubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LmdldE5vZGVCeUtleShlKX0pfSxnZXRFeHBhbmRlZE5vZGVzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5pbm5lckV4cGFuZGVkLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5nZXROb2RlQnlLZXkoZSl9KX0saXNFeHBhbmRlZDpmdW5jdGlvbih0KXtyZXR1cm4hKCF0fHwhdGhpcy5tZXRhW3RdKSYmdGhpcy5tZXRhW3RdLmV4cGFuZGVkfSxjb2xsYXBzZUFsbDpmdW5jdGlvbigpe3ZvaWQgMCE9PXRoaXMuZXhwYW5kZWQ/dGhpcy4kZW1pdChcInVwZGF0ZTpleHBhbmRlZFwiLFtdKTp0aGlzLmlubmVyRXhwYW5kZWQ9W119LGV4cGFuZEFsbDpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLmlubmVyRXhwYW5kZWQsaT1mdW5jdGlvbihzKXtzLmNoaWxkcmVuJiZzLmNoaWxkcmVuLmxlbmd0aD4wJiYhMSE9PXMuZXhwYW5kYWJsZSYmITAhPT1zLmRpc2FibGVkJiYoZS5wdXNoKHNbdC5ub2RlS2V5XSkscy5jaGlsZHJlbi5mb3JFYWNoKGkpKX07dGhpcy5ub2Rlcy5mb3JFYWNoKGkpLHZvaWQgMCE9PXRoaXMuZXhwYW5kZWQ/dGhpcy4kZW1pdChcInVwZGF0ZTpleHBhbmRlZFwiLGUpOnRoaXMuaW5uZXJFeHBhbmRlZD1lfSxzZXRFeHBhbmRlZDpmdW5jdGlvbih0LGUsaSxzKXt2YXIgbj10aGlzO2lmKHZvaWQgMD09PWkmJihpPXRoaXMuZ2V0Tm9kZUJ5S2V5KHQpKSx2b2lkIDA9PT1zJiYocz10aGlzLm1ldGFbdF0pLHMubGF6eSYmXCJsb2FkZWRcIiE9PXMubGF6eSl7aWYoXCJsb2FkaW5nXCI9PT1zLmxhenkpcmV0dXJuO3RoaXMuJHNldCh0aGlzLmxhenksdCxcImxvYWRpbmdcIiksdGhpcy4kZW1pdChcImxhenktbG9hZFwiLHtub2RlOmksa2V5OnQsZG9uZTpmdW5jdGlvbihlKXtuLmxhenlbdF09XCJsb2FkZWRcIixlJiYoaS5jaGlsZHJlbj1lKSxuLiRuZXh0VGljayhmdW5jdGlvbigpe3ZhciBlPW4ubWV0YVt0XTtlJiZlLmlzUGFyZW50JiZuLl9fc2V0RXhwYW5kZWQodCwhMCl9KX0sZmFpbDpmdW5jdGlvbigpe24uJGRlbGV0ZShuLmxhenksdCl9fSl9ZWxzZSBzLmlzUGFyZW50JiZzLmV4cGFuZGFibGUmJnRoaXMuX19zZXRFeHBhbmRlZCh0LGUpfSxfX3NldEV4cGFuZGVkOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcyxzPXRoaXMuaW5uZXJFeHBhbmRlZCxuPXZvaWQgMCE9PXRoaXMuZXhwYW5kZWQ7aWYobiYmKHM9cy5zbGljZSgpKSxlKXtpZih0aGlzLmFjY29yZGlvbiYmdGhpcy5tZXRhW3RdKXt2YXIgbz1bXTt0aGlzLm1ldGFbdF0ucGFyZW50P3RoaXMubWV0YVt0XS5wYXJlbnQuY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbihlKXtlLmtleSE9PXQmJmUuZXhwYW5kYWJsZSYmby5wdXNoKGUua2V5KX0pOnRoaXMubm9kZXMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgcz1lW2kubm9kZUtleV07cyE9PXQmJm8ucHVzaChzKX0pLG8ubGVuZ3RoPjAmJihzPXMuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiFvLmluY2x1ZGVzKHQpfSkpfXM9cy5jb25jYXQoW3RdKS5maWx0ZXIoZnVuY3Rpb24odCxlLGkpe3JldHVybiBpLmluZGV4T2YodCk9PT1lfSl9ZWxzZSBzPXMuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlIT09dH0pO24/dGhpcy4kZW1pdChcInVwZGF0ZTpleHBhbmRlZFwiLHMpOnRoaXMuaW5uZXJFeHBhbmRlZD1zfSxpc1RpY2tlZDpmdW5jdGlvbih0KXtyZXR1cm4hKCF0fHwhdGhpcy5tZXRhW3RdKSYmdGhpcy5tZXRhW3RdLnRpY2tlZH0sc2V0VGlja2VkOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy5pbm5lclRpY2tlZCxzPXZvaWQgMCE9PXRoaXMudGlja2VkO3MmJihpPWkuc2xpY2UoKSksaT1lP2kuY29uY2F0KHQpLmZpbHRlcihmdW5jdGlvbih0LGUsaSl7cmV0dXJuIGkuaW5kZXhPZih0KT09PWV9KTppLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hdC5pbmNsdWRlcyhlKX0pLHMmJnRoaXMuJGVtaXQoXCJ1cGRhdGU6dGlja2VkXCIsaSl9LF9fZ2V0U2xvdFNjb3BlOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz10aGlzLG49e3RyZWU6dGhpcyxub2RlOnQsa2V5OmksY29sb3I6dGhpcy5jb2xvcixkYXJrOnRoaXMuZGFya307cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLFwiZXhwYW5kZWRcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGUuZXhwYW5kZWR9LHNldDpmdW5jdGlvbih0KXt0IT09ZS5leHBhbmRlZCYmcy5zZXRFeHBhbmRlZChpLHQpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLFwidGlja2VkXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBlLnRpY2tlZH0sc2V0OmZ1bmN0aW9uKHQpe3QhPT1lLnRpY2tlZCYmcy5zZXRUaWNrZWQoW2ldLHQpfX0pLG59LF9fZ2V0Q2hpbGRyZW46ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzO3JldHVybih0aGlzLmZpbHRlcj9lLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gaS5tZXRhW3RbaS5ub2RlS2V5XV0ubWF0Y2hlc0ZpbHRlcn0pOmUpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gaS5fX2dldE5vZGUodCxlKX0pfSxfX2dldE5vZGVNZWRpYTpmdW5jdGlvbih0LGUpe3JldHVybiBlLmljb24/dChRSWNvbix7c3RhdGljQ2xhc3M6XCJxLXRyZWUtaWNvbiBxLW1yLXNtXCIscHJvcHM6e25hbWU6ZS5pY29uLGNvbG9yOmUuaWNvbkNvbG9yfX0pOmUuaW1nfHxlLmF2YXRhcj90KFwiaW1nXCIse3N0YXRpY0NsYXNzOlwicS10cmVlLWltZyBxLW1yLXNtXCIsY2xhc3M6e2F2YXRhcjplLmF2YXRhcn0sYXR0cnM6e3NyYzplLmltZ3x8ZS5hdmF0YXJ9fSk6dm9pZCAwfSxfX2dldE5vZGU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLHM9ZVt0aGlzLm5vZGVLZXldLG49dGhpcy5tZXRhW3NdLG89ZS5oZWFkZXImJnRoaXMuJHNjb3BlZFNsb3RzW1wiaGVhZGVyLVwiK2UuaGVhZGVyXXx8dGhpcy4kc2NvcGVkU2xvdHNbXCJkZWZhdWx0LWhlYWRlclwiXSxyPW4uaXNQYXJlbnQ/dGhpcy5fX2dldENoaWxkcmVuKHQsZS5jaGlsZHJlbik6W10sYT1yLmxlbmd0aD4wfHxuLmxhenkmJlwibG9hZGVkXCIhPT1uLmxhenksbD1lLmJvZHkmJnRoaXMuJHNjb3BlZFNsb3RzW1wiYm9keS1cIitlLmJvZHldfHx0aGlzLiRzY29wZWRTbG90c1tcImRlZmF1bHQtYm9keVwiXSxjPW98fGw/dGhpcy5fX2dldFNsb3RTY29wZShlLG4scyk6bnVsbDtyZXR1cm4gbCYmKGw9dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdHJlZS1ub2RlLWJvZHkgcmVsYXRpdmUtcG9zaXRpb25cIn0sW3QoXCJkaXZcIix7Y2xhc3M6dGhpcy5jb250ZW50Q2xhc3N9LFtsKGMpXSldKSksdChcImRpdlwiLHtrZXk6cyxzdGF0aWNDbGFzczpcInEtdHJlZS1ub2RlXCIsY2xhc3M6e1wicS10cmVlLW5vZGUtcGFyZW50XCI6YSxcInEtdHJlZS1ub2RlLWNoaWxkXCI6IWF9fSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdHJlZS1ub2RlLWhlYWRlciByZWxhdGl2ZS1wb3NpdGlvbiByb3cgbm8td3JhcCBpdGVtcy1jZW50ZXJcIixjbGFzczp7XCJxLXRyZWUtbm9kZS1saW5rXCI6bi5saW5rLFwicS10cmVlLW5vZGUtc2VsZWN0ZWRcIjpuLnNlbGVjdGVkLGRpc2FibGVkOm4uZGlzYWJsZWR9LG9uOntjbGljazpmdW5jdGlvbigpe2kuX19vbkNsaWNrKGUsbil9fSxkaXJlY3RpdmVzOm4uc2VsZWN0YWJsZT9be25hbWU6XCJyaXBwbGVcIn1dOm51bGx9LFtcImxvYWRpbmdcIj09PW4ubGF6eT90KFFTcGlubmVyLHtzdGF0aWNDbGFzczpcInEtdHJlZS1ub2RlLWhlYWRlci1tZWRpYSBxLW1yLXhzXCIscHJvcHM6e2NvbG9yOnRoaXMuY29tcHV0ZWRDb250cm9sQ29sb3J9fSk6YT90KFFJY29uLHtzdGF0aWNDbGFzczpcInEtdHJlZS1hcnJvdyBxLW1yLXhzIHRyYW5zaXRpb24tZ2VuZXJpY1wiLGNsYXNzOntcInEtdHJlZS1hcnJvdy1yb3RhdGVcIjpuLmV4cGFuZGVkfSxwcm9wczp7bmFtZTp0aGlzLmNvbXB1dGVkSWNvbn0sbmF0aXZlT246e2NsaWNrOmZ1bmN0aW9uKHQpe2kuX19vbkV4cGFuZENsaWNrKGUsbix0KX19fSk6bnVsbCx0KFwic3BhblwiLHtzdGF0aWNDbGFzczpcInJvdyBuby13cmFwIGl0ZW1zLWNlbnRlclwiLGNsYXNzOnRoaXMuY29udGVudENsYXNzfSxbbi5oYXNUaWNraW5nJiYhbi5ub1RpY2s/dChRQ2hlY2tib3gse3N0YXRpY0NsYXNzOlwicS1tci14c1wiLHByb3BzOnt2YWx1ZTpuLmluZGV0ZXJtaW5hdGU/bnVsbDpuLnRpY2tlZCxjb2xvcjp0aGlzLmNvbXB1dGVkQ29udHJvbENvbG9yLGRhcms6dGhpcy5kYXJrLGtlZXBDb2xvcjohMCxkaXNhYmxlOiFuLnRpY2thYmxlfSxvbjp7aW5wdXQ6ZnVuY3Rpb24odCl7aS5fX29uVGlja2VkQ2xpY2soZSxuLHQpfX19KTpudWxsLG8/byhjKTpbdGhpcy5fX2dldE5vZGVNZWRpYSh0LGUpLHQoXCJzcGFuXCIsZVt0aGlzLmxhYmVsS2V5XSldXSldKSxhP3QoUVNsaWRlVHJhbnNpdGlvbix7cHJvcHM6e2R1cmF0aW9uOnRoaXMuZHVyYXRpb259fSxbdChcImRpdlwiLHtkaXJlY3RpdmVzOlt7bmFtZTpcInNob3dcIix2YWx1ZTpuLmV4cGFuZGVkfV0sc3RhdGljQ2xhc3M6XCJxLXRyZWUtbm9kZS1jb2xsYXBzaWJsZVwiLGNsYXNzOlwidGV4dC1cIit0aGlzLmNvbG9yfSxbbCx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10cmVlLWNoaWxkcmVuXCIsY2xhc3M6e2Rpc2FibGVkOm4uZGlzYWJsZWR9fSxyKV0pXSk6bF0pfSxfX29uQ2xpY2s6ZnVuY3Rpb24odCxlKXt0aGlzLmhhc1NlbGVjdGlvbj9lLnNlbGVjdGFibGUmJnRoaXMuJGVtaXQoXCJ1cGRhdGU6c2VsZWN0ZWRcIixlLmtleSE9PXRoaXMuc2VsZWN0ZWQ/ZS5rZXk6bnVsbCk6dGhpcy5fX29uRXhwYW5kQ2xpY2sodCxlKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiB0LmhhbmRsZXImJnQuaGFuZGxlcih0KX0sX19vbkV4cGFuZENsaWNrOmZ1bmN0aW9uKHQsZSxpKXt2b2lkIDAhPT1pJiZpLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuc2V0RXhwYW5kZWQoZS5rZXksIWUuZXhwYW5kZWQsdCxlKX0sX19vblRpY2tlZENsaWNrOmZ1bmN0aW9uKHQsZSxpKXtpZihlLmluZGV0ZXJtaW5hdGUmJmkmJihpPSExKSxlLnN0cmljdFRpY2tpbmcpdGhpcy5zZXRUaWNrZWQoW2Uua2V5XSxpKTtlbHNlIGlmKGUubGVhZlRpY2tpbmcpe3ZhciBzPVtdLG49ZnVuY3Rpb24odCl7dC5pc1BhcmVudD8oaXx8dC5ub1RpY2t8fCF0LnRpY2thYmxlfHxzLnB1c2godC5rZXkpLHQubGVhZlRpY2tpbmcmJnQuY2hpbGRyZW4uZm9yRWFjaChuKSk6dC5ub1RpY2t8fCF0LnRpY2thYmxlfHx0LmxlYWZGaWx0ZXJlZFRpY2tpbmcmJiF0Lm1hdGNoZXNGaWx0ZXJ8fHMucHVzaCh0LmtleSl9O24oZSksdGhpcy5zZXRUaWNrZWQocyxpKX19fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fX2dldENoaWxkcmVuKHQsdGhpcy5ub2Rlcyk7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRyZWUgcmVsYXRpdmUtcG9zaXRpb25cIixjbGFzczp0aGlzLmNsYXNzZXN9LDA9PT1lLmxlbmd0aD90aGlzLmZpbHRlcj90aGlzLm5vUmVzdWx0c0xhYmVsfHx0aGlzLiRxLmkxOG4udHJlZS5ub1Jlc3VsdHM6dGhpcy5ub05vZGVzTGFiZWx8fHRoaXMuJHEuaTE4bi50cmVlLm5vTm9kZXM6ZSl9LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmRlZmF1bHRFeHBhbmRBbGwmJnRoaXMuZXhwYW5kQWxsKCl9fTtmdW5jdGlvbiBpbml0RmlsZSh0KXt0Ll9fZG9uZVVwbG9hZGluZz0hMSx0Ll9fZmFpbGVkPSExLHQuX191cGxvYWRlZD0wLHQuX19wcm9ncmVzcz0wfXZhciBRVXBsb2FkZXI9e25hbWU6XCJRVXBsb2FkZXJcIixtaXhpbnM6W0ZyYW1lTWl4aW5dLHByb3BzOntuYW1lOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiZmlsZVwifSxoZWFkZXJzOk9iamVjdCx1cmw6e3R5cGU6U3RyaW5nLHJlcXVpcmVkOiEwfSx1cmxGYWN0b3J5Ont0eXBlOkZ1bmN0aW9uLHJlcXVpcmVkOiExfSx1cGxvYWRGYWN0b3J5OkZ1bmN0aW9uLGFkZGl0aW9uYWxGaWVsZHM6e3R5cGU6QXJyYXksZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybltdfX0sbm9Db250ZW50VHlwZTpCb29sZWFuLG1ldGhvZDp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcIlBPU1RcIn0sZmlsdGVyOkZ1bmN0aW9uLGV4dGVuc2lvbnM6U3RyaW5nLG11bHRpcGxlOkJvb2xlYW4saGlkZVVwbG9hZEJ1dHRvbjpCb29sZWFuLGhpZGVVcGxvYWRQcm9ncmVzczpCb29sZWFuLG5vVGh1bWJuYWlsczpCb29sZWFuLGF1dG9FeHBhbmQ6Qm9vbGVhbixleHBhbmRTdHlsZTpbQXJyYXksU3RyaW5nLE9iamVjdF0sZXhwYW5kQ2xhc3M6W0FycmF5LFN0cmluZyxPYmplY3RdLHdpdGhDcmVkZW50aWFsczpCb29sZWFuLHNlbmRSYXc6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiExfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntxdWV1ZTpbXSxmaWxlczpbXSx1cGxvYWRpbmc6ITEsdXBsb2FkZWRTaXplOjAsdG90YWxTaXplOjAseGhyczpbXSxmb2N1c2VkOiExLGRuZDohMSxleHBhbmRlZDohMX19LGNvbXB1dGVkOntxdWV1ZUxlbmd0aDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnF1ZXVlLmxlbmd0aH0saGFzRXhwYW5kZWRDb250ZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlsZXMubGVuZ3RoPjB9LGxhYmVsOmZ1bmN0aW9uKCl7dmFyIHQ9aHVtYW5TdG9yYWdlU2l6ZSh0aGlzLnRvdGFsU2l6ZSk7cmV0dXJuIHRoaXMudXBsb2FkaW5nP3RoaXMucHJvZ3Jlc3MudG9GaXhlZCgyKStcIiUgKFwiK2h1bWFuU3RvcmFnZVNpemUodGhpcy51cGxvYWRlZFNpemUpK1wiIC8gXCIrdCtcIilcIjp0aGlzLnF1ZXVlTGVuZ3RoK1wiIChcIit0K1wiKVwifSxwcm9ncmVzczpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRvdGFsU2l6ZT9NYXRoLm1pbig5OS45OSx0aGlzLnVwbG9hZGVkU2l6ZS90aGlzLnRvdGFsU2l6ZSoxMDApOjB9LGFkZERpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGlzYWJsZXx8IXRoaXMubXVsdGlwbGUmJnRoaXMucXVldWVMZW5ndGg+PTF9LGZpbGVzU3R5bGU6ZnVuY3Rpb24oKXtpZih0aGlzLm1heEhlaWdodClyZXR1cm57bWF4SGVpZ2h0OnRoaXMubWF4SGVpZ2h0fX0sZG5kQ2xhc3M6ZnVuY3Rpb24oKXt2YXIgdD1bXCJ0ZXh0LVwiK3RoaXMuY29sb3JdO3JldHVybiB0aGlzLmlzSW52ZXJ0ZWQmJnQucHVzaChcImludmVydGVkXCIpLHR9LGNsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm57XCJxLXVwbG9hZGVyLWV4cGFuZGVkXCI6dGhpcy5leHBhbmRlZCxcInEtdXBsb2FkZXItZGFya1wiOnRoaXMuZGFyayxcInEtdXBsb2FkZXItZmlsZXMtbm8tYm9yZGVyXCI6dGhpcy5pc0ludmVydGVkfHwhdGhpcy5oaWRlVW5kZXJsaW5lfX0scHJvZ3Jlc3NDb2xvcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRhcms/XCJ3aGl0ZVwiOlwiZ3JleVwifSxjb21wdXRlZEV4dGVuc2lvbnM6ZnVuY3Rpb24oKXtpZih0aGlzLmV4dGVuc2lvbnMpcmV0dXJuIHRoaXMuZXh0ZW5zaW9ucy5zcGxpdChcIixcIikubWFwKGZ1bmN0aW9uKHQpe3JldHVybih0PXQudHJpbSgpKS5lbmRzV2l0aChcIi8qXCIpJiYodD10LnNsaWNlKDAsdC5sZW5ndGgtMSkpLHR9KX19LHdhdGNoOntoYXNFeHBhbmRlZENvbnRlbnQ6ZnVuY3Rpb24odCl7ITE9PT10P3RoaXMuZXhwYW5kZWQ9ITE6dGhpcy5hdXRvRXhwYW5kJiYodGhpcy5leHBhbmRlZD0hMCl9fSxtZXRob2RzOnthZGQ6ZnVuY3Rpb24odCl7dCYmdGhpcy5fX2FkZChudWxsLHQpfSxfX29uRHJhZ092ZXI6ZnVuY3Rpb24odCl7c3RvcEFuZFByZXZlbnQodCksdGhpcy5kbmQ9ITB9LF9fb25EcmFnTGVhdmU6ZnVuY3Rpb24odCl7c3RvcEFuZFByZXZlbnQodCksdGhpcy5kbmQ9ITF9LF9fb25Ecm9wOmZ1bmN0aW9uKHQpe3N0b3BBbmRQcmV2ZW50KHQpLHRoaXMuZG5kPSExO3ZhciBlPXQuZGF0YVRyYW5zZmVyLmZpbGVzOzAhPT1lLmxlbmd0aCYmKGU9dGhpcy5tdWx0aXBsZT9lOltlWzBdXSx0aGlzLl9fYWRkKG51bGwsZSkpfSxfX2ZpbHRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwodCxmdW5jdGlvbih0KXtyZXR1cm4gZS5jb21wdXRlZEV4dGVuc2lvbnMuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gdC50eXBlLnRvVXBwZXJDYXNlKCkuc3RhcnRzV2l0aChlLnRvVXBwZXJDYXNlKCkpfHx0Lm5hbWUudG9VcHBlckNhc2UoKS5lbmRzV2l0aChlLnRvVXBwZXJDYXNlKCkpfSl9KX0sX19hZGQ6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzO2lmKCF0aGlzLmFkZERpc2FibGVkJiYoZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlfHx0LnRhcmdldC5maWxlcyksIXRoaXMuZXh0ZW5zaW9uc3x8MCE9PShlPXRoaXMuX19maWx0ZXIoZSkpLmxlbmd0aCkpe3RoaXMuJHJlZnMuZmlsZS52YWx1ZT1cIlwiO3ZhciBzPVtdO2U9ZS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIWkucXVldWUuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gdC5uYW1lPT09ZS5uYW1lfSl9KSxcImZ1bmN0aW9uXCI9PXR5cGVvZiB0aGlzLmZpbHRlciYmKGU9dGhpcy5maWx0ZXIoZSkpLChlPWUubWFwKGZ1bmN0aW9uKHQpe2lmKGluaXRGaWxlKHQpLHQuX19zaXplPWh1bWFuU3RvcmFnZVNpemUodC5zaXplKSx0Ll9fdGltZXN0YW1wPShuZXcgRGF0ZSkuZ2V0VGltZSgpLGkubm9UaHVtYm5haWxzfHwhdC50eXBlLnRvVXBwZXJDYXNlKCkuc3RhcnRzV2l0aChcIklNQUdFXCIpKWkucXVldWUucHVzaCh0KTtlbHNle3ZhciBlPW5ldyBGaWxlUmVhZGVyLG49bmV3IFByb21pc2UoZnVuY3Rpb24ocyxuKXtlLm9ubG9hZD1mdW5jdGlvbihlKXt2YXIgbj1uZXcgSW1hZ2U7bi5zcmM9ZS50YXJnZXQucmVzdWx0LHQuX19pbWc9bixpLnF1ZXVlLnB1c2godCksaS5fX2NvbXB1dGVUb3RhbFNpemUoKSxzKCEwKX0sZS5vbmVycm9yPWZ1bmN0aW9uKHQpe24odCl9fSk7ZS5yZWFkQXNEYXRhVVJMKHQpLHMucHVzaChuKX1yZXR1cm4gdH0pKS5sZW5ndGg+MCYmKHRoaXMuZmlsZXM9dGhpcy5maWxlcy5jb25jYXQoZSksUHJvbWlzZS5hbGwocykudGhlbihmdW5jdGlvbigpe2kuJGVtaXQoXCJhZGRcIixlKX0pLHRoaXMuX19jb21wdXRlVG90YWxTaXplKCkpfX0sX19jb21wdXRlVG90YWxTaXplOmZ1bmN0aW9uKCl7dGhpcy50b3RhbFNpemU9dGhpcy5xdWV1ZUxlbmd0aD90aGlzLnF1ZXVlLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5zaXplfSkucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0pOjB9LF9fcmVtb3ZlOmZ1bmN0aW9uKHQpe3ZhciBlPXQubmFtZSxpPXQuX19kb25lVXBsb2FkaW5nO3RoaXMudXBsb2FkaW5nJiYhaT8odGhpcy4kZW1pdChcInJlbW92ZTphYm9ydFwiLHQsdC54aHIpLHQueGhyJiZ0Lnhoci5hYm9ydCgpLHRoaXMudXBsb2FkZWRTaXplLT10Ll9fdXBsb2FkZWQpOnRoaXMuJGVtaXQoXCJyZW1vdmU6XCIrKGk/XCJkb25lXCI6XCJjYW5jZWxcIiksdCx0LnhociksaXx8KHRoaXMucXVldWU9dGhpcy5xdWV1ZS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQubmFtZSE9PWV9KSksdC5fX3JlbW92ZWQ9ITAsdGhpcy5maWxlcz10aGlzLmZpbGVzLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5uYW1lIT09ZX0pLHRoaXMuZmlsZXMubGVuZ3RofHwodGhpcy51cGxvYWRpbmc9ITEpLHRoaXMuX19jb21wdXRlVG90YWxTaXplKCl9LF9fcGljazpmdW5jdGlvbigpeyF0aGlzLmFkZERpc2FibGVkJiZ0aGlzLiRxLnBsYXRmb3JtLmlzLm1vemlsbGEmJnRoaXMuJHJlZnMuZmlsZS5jbGljaygpfSxfX2dldFVwbG9hZFByb21pc2U6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZihpbml0RmlsZSh0KSx0aGlzLnVwbG9hZEZhY3Rvcnkpe3ZhciBpPWZ1bmN0aW9uKGkpe3ZhciBzPWkqdC5zaXplO2UudXBsb2FkZWRTaXplKz1zLXQuX191cGxvYWRlZCx0Ll9fdXBsb2FkZWQ9cyx0Ll9fcHJvZ3Jlc3M9TWF0aC5taW4oOTkscGFyc2VJbnQoMTAwKmksMTApKSxlLiRmb3JjZVVwZGF0ZSgpfTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocyxuKXtlLnVwbG9hZEZhY3RvcnkodCxpKS50aGVuKGZ1bmN0aW9uKHQpe3QuX19kb25lVXBsb2FkaW5nPSEwLHQuX19wcm9ncmVzcz0xMDAsZS4kZW1pdChcInVwbG9hZGVkXCIsdCksZS4kZm9yY2VVcGRhdGUoKSxzKHQpfSkuY2F0Y2goZnVuY3Rpb24oaSl7dC5fX2ZhaWxlZD0hMCxlLiRlbWl0KFwiZmFpbFwiLHQpLGUuJGZvcmNlVXBkYXRlKCksbihpKX0pfSl9dmFyIHM9bmV3IEZvcm1EYXRhLG49bmV3IFhNTEh0dHBSZXF1ZXN0O3RyeXt0aGlzLmFkZGl0aW9uYWxGaWVsZHMuZm9yRWFjaChmdW5jdGlvbih0KXtzLmFwcGVuZCh0Lm5hbWUsdC52YWx1ZSl9KSwhMCE9PXRoaXMubm9Db250ZW50VHlwZSYmcy5hcHBlbmQoXCJDb250ZW50LVR5cGVcIix0LnR5cGV8fFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCIpLHMuYXBwZW5kKHRoaXMubmFtZSx0KX1jYXRjaCh0KXtyZXR1cm59cmV0dXJuIHQueGhyPW4sbmV3IFByb21pc2UoZnVuY3Rpb24oaSxvKXtuLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKFwicHJvZ3Jlc3NcIixmdW5jdGlvbihpKXtpZighdC5fX3JlbW92ZWQpe2kucGVyY2VudD1pLnRvdGFsP2kubG9hZGVkL2kudG90YWw6MDt2YXIgcz1pLnBlcmNlbnQqdC5zaXplO2UudXBsb2FkZWRTaXplKz1zLXQuX191cGxvYWRlZCx0Ll9fdXBsb2FkZWQ9cyx0Ll9fcHJvZ3Jlc3M9TWF0aC5taW4oOTkscGFyc2VJbnQoMTAwKmkucGVyY2VudCwxMCkpfX0sITEpLG4ub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7bi5yZWFkeVN0YXRlPDR8fChuLnN0YXR1cyYmbi5zdGF0dXM8NDAwPyh0Ll9fZG9uZVVwbG9hZGluZz0hMCx0Ll9fcHJvZ3Jlc3M9MTAwLGUuJGVtaXQoXCJ1cGxvYWRlZFwiLHQsbiksaSh0KSk6KHQuX19mYWlsZWQ9ITAsZS4kZW1pdChcImZhaWxcIix0LG4pLG8obikpKX0sbi5vbmVycm9yPWZ1bmN0aW9uKCl7dC5fX2ZhaWxlZD0hMCxlLiRlbWl0KFwiZmFpbFwiLHQsbiksbyhuKX0sKGUudXJsRmFjdG9yeT9lLnVybEZhY3RvcnkodCk6UHJvbWlzZS5yZXNvbHZlKGUudXJsKSkudGhlbihmdW5jdGlvbihpKXtuLm9wZW4oZS5tZXRob2QsaSwhMCksZS53aXRoQ3JlZGVudGlhbHMmJihuLndpdGhDcmVkZW50aWFscz0hMCksZS5oZWFkZXJzJiZPYmplY3Qua2V5cyhlLmhlYWRlcnMpLmZvckVhY2goZnVuY3Rpb24odCl7bi5zZXRSZXF1ZXN0SGVhZGVyKHQsZS5oZWFkZXJzW3RdKX0pLGUueGhycy5wdXNoKG4pLGUuc2VuZFJhdz9uLnNlbmQodCk6bi5zZW5kKHMpfSl9KX0scGljazpmdW5jdGlvbigpe3RoaXMuYWRkRGlzYWJsZWR8fHRoaXMuJHJlZnMuZmlsZS5jbGljaygpfSx1cGxvYWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5xdWV1ZUxlbmd0aDtpZighdGhpcy5kaXNhYmxlJiYwIT09ZSl7dmFyIGk9MDt0aGlzLnVwbG9hZGVkU2l6ZT0wLHRoaXMudXBsb2FkaW5nPSEwLHRoaXMueGhycz1bXSx0aGlzLiRlbWl0KFwic3RhcnRcIik7dmFyIHM9ZnVuY3Rpb24oKXsrK2k9PT1lJiYodC51cGxvYWRpbmc9ITEsdC54aHJzPVtdLHQucXVldWU9dC5xdWV1ZS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIXQuX19kb25lVXBsb2FkaW5nfSksdC5fX2NvbXB1dGVUb3RhbFNpemUoKSx0LiRlbWl0KFwiZmluaXNoXCIpKX07dGhpcy5xdWV1ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHQuX19nZXRVcGxvYWRQcm9taXNlKGUpfSkuZm9yRWFjaChmdW5jdGlvbih0KXt0LnRoZW4ocykuY2F0Y2gocyl9KX19LGFib3J0OmZ1bmN0aW9uKCl7dGhpcy54aHJzLmZvckVhY2goZnVuY3Rpb24odCl7dC5hYm9ydCgpfSksdGhpcy51cGxvYWRpbmc9ITEsdGhpcy4kZW1pdChcImFib3J0XCIpfSxyZXNldDpmdW5jdGlvbigpe3RoaXMuYWJvcnQoKSx0aGlzLmZpbGVzPVtdLHRoaXMucXVldWU9W10sdGhpcy5leHBhbmRlZD0hMSx0aGlzLl9fY29tcHV0ZVRvdGFsU2l6ZSgpLHRoaXMuJGVtaXQoXCJyZXNldFwiKX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9W3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wgcS1pbnB1dC10YXJnZXQgZWxsaXBzaXNcIixjbGFzczp0aGlzLmFsaWduQ2xhc3N9LFt0aGlzLmxhYmVsXSldO3JldHVybiB0aGlzLnVwbG9hZGluZz9pLnB1c2godGhpcy4kc2xvdHMubG9hZGluZz90KFwiZGl2XCIse3Nsb3Q6XCJhZnRlclwiLHN0YXRpY0NsYXNzOlwicS1pZi1lbmQgc2VsZi1jZW50ZXIgcS1pZi1jb250cm9sXCJ9LHRoaXMuJHNsb3RzLmxvYWRpbmcpOnQoUVNwaW5uZXIse3Nsb3Q6XCJhZnRlclwiLHN0YXRpY0NsYXNzOlwicS1pZi1lbmQgc2VsZi1jZW50ZXJcIixwcm9wczp7c2l6ZTpcIjI0cHhcIn19KSx0KFFJY29uLHtzbG90OlwiYWZ0ZXJcIixzdGF0aWNDbGFzczpcInEtaWYtZW5kIHNlbGYtY2VudGVyIHEtaWYtY29udHJvbFwiLHByb3BzOntuYW1lOnRoaXMuJHEuaWNvbi51cGxvYWRlcltcImNsZWFyXCIrKHRoaXMuaXNJbnZlcnRlZD9cIkludmVydGVkXCI6XCJcIildfSxuYXRpdmVPbjp7Y2xpY2s6dGhpcy5hYm9ydH19KSk6KGkucHVzaCh0KFFJY29uLHtzbG90OlwiYWZ0ZXJcIixzdGF0aWNDbGFzczpcInEtdXBsb2FkZXItcGljay1idXR0b24gc2VsZi1jZW50ZXIgcS1pZi1jb250cm9sIHJlbGF0aXZlLXBvc2l0aW9uIG92ZXJmbG93LWhpZGRlblwiLHByb3BzOntuYW1lOnRoaXMuJHEuaWNvbi51cGxvYWRlci5hZGR9LGF0dHJzOntkaXNhYmxlZDp0aGlzLmFkZERpc2FibGVkfX0sW3QoXCJpbnB1dFwiLHtyZWY6XCJmaWxlXCIsc3RhdGljQ2xhc3M6XCJxLXVwbG9hZGVyLWlucHV0IGFic29sdXRlLWZ1bGwgY3Vyc29yLXBvaW50ZXJcIixhdHRyczpPYmplY3QuYXNzaWduKHt0eXBlOlwiZmlsZVwiLGFjY2VwdDp0aGlzLmV4dGVuc2lvbnN9LHRoaXMubXVsdGlwbGU/e211bHRpcGxlOiEwfTp7fSksb246e2NoYW5nZTp0aGlzLl9fYWRkfX0pXSkpLHRoaXMuaGlkZVVwbG9hZEJ1dHRvbnx8aS5wdXNoKHQoUUljb24se3Nsb3Q6XCJhZnRlclwiLHN0YXRpY0NsYXNzOlwicS1pZi1jb250cm9sIHNlbGYtY2VudGVyXCIscHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLnVwbG9hZGVyLnVwbG9hZH0sYXR0cnM6e2Rpc2FibGVkOjA9PT10aGlzLnF1ZXVlTGVuZ3RofSxuYXRpdmVPbjp7Y2xpY2s6dGhpcy51cGxvYWR9fSkpKSx0aGlzLmhhc0V4cGFuZGVkQ29udGVudCYmaS5wdXNoKHQoUUljb24se3Nsb3Q6XCJhZnRlclwiLHN0YXRpY0NsYXNzOlwicS1pZi1jb250cm9sIGdlbmVyaWNfdHJhbnNpdGlvbiBzZWxmLWNlbnRlclwiLGNsYXNzOntcInJvdGF0ZS0xODBcIjp0aGlzLmV4cGFuZGVkfSxwcm9wczp7bmFtZTp0aGlzLiRxLmljb24udXBsb2FkZXIuZXhwYW5kfSxuYXRpdmVPbjp7Y2xpY2s6ZnVuY3Rpb24oKXtlLmV4cGFuZGVkPSFlLmV4cGFuZGVkfX19KSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdXBsb2FkZXIgcmVsYXRpdmUtcG9zaXRpb25cIixjbGFzczp0aGlzLmNsYXNzZXMsb246e2RyYWdvdmVyOnRoaXMuX19vbkRyYWdPdmVyfX0sW3QoUUlucHV0RnJhbWUse3JlZjpcImlucHV0XCIscHJvcHM6e3ByZWZpeDp0aGlzLnByZWZpeCxzdWZmaXg6dGhpcy5zdWZmaXgsc3RhY2tMYWJlbDp0aGlzLnN0YWNrTGFiZWwsZmxvYXRMYWJlbDp0aGlzLmZsb2F0TGFiZWwsZXJyb3I6dGhpcy5lcnJvcix3YXJuaW5nOnRoaXMud2FybmluZyxyZWFkb25seTp0aGlzLnJlYWRvbmx5LGludmVydGVkOnRoaXMuaW52ZXJ0ZWQsaW52ZXJ0ZWRMaWdodDp0aGlzLmludmVydGVkTGlnaHQsZGFyazp0aGlzLmRhcmssaGlkZVVuZGVybGluZTp0aGlzLmhpZGVVbmRlcmxpbmUsYmVmb3JlOnRoaXMuYmVmb3JlLGFmdGVyOnRoaXMuYWZ0ZXIsY29sb3I6dGhpcy5jb2xvcixhbGlnbjp0aGlzLmFsaWduLG5vUGFyZW50RmllbGQ6dGhpcy5ub1BhcmVudEZpZWxkLGxlbmd0aDp0aGlzLnF1ZXVlTGVuZ3RoLGFkZGl0aW9uYWxMZW5ndGg6ITB9fSxpKSx0KFFTbGlkZVRyYW5zaXRpb24sW3QoXCJkaXZcIix7Y2xhc3M6dGhpcy5leHBhbmRDbGFzcyxzdHlsZTp0aGlzLmV4cGFuZFN0eWxlLGRpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHZhbHVlOnRoaXMuZXhwYW5kZWR9XX0sW3QoUUxpc3Qse3N0YXRpY0NsYXNzOlwicS11cGxvYWRlci1maWxlcyBxLXB5LW5vbmUgc2Nyb2xsXCIsc3R5bGU6dGhpcy5maWxlc1N0eWxlLHByb3BzOntkYXJrOnRoaXMuZGFya319LHRoaXMuZmlsZXMubWFwKGZ1bmN0aW9uKGkpe3JldHVybiB0KFFJdGVtLHtrZXk6aS5uYW1lK2kuX190aW1lc3RhbXAsc3RhdGljQ2xhc3M6XCJxLXVwbG9hZGVyLWZpbGUgcS1wYS14c1wifSxbIWUuaGlkZVVwbG9hZFByb2dyZXNzJiZ0KFFQcm9ncmVzcyx7c3RhdGljQ2xhc3M6XCJxLXVwbG9hZGVyLXByb2dyZXNzLWJnIGFic29sdXRlLWZ1bGxcIixwcm9wczp7Y29sb3I6aS5fX2ZhaWxlZD9cIm5lZ2F0aXZlXCI6ZS5wcm9ncmVzc0NvbG9yLHBlcmNlbnRhZ2U6aS5fX3Byb2dyZXNzLGhlaWdodDpcIjEwMCVcIn19KXx8dm9pZCAwLCFlLmhpZGVVcGxvYWRQcm9ncmVzcyYmdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdXBsb2FkZXItcHJvZ3Jlc3MtdGV4dCBhYnNvbHV0ZVwifSxbaS5fX3Byb2dyZXNzK1wiJVwiXSl8fHZvaWQgMCx0KFFJdGVtU2lkZSx7cHJvcHM6aS5fX2ltZz97aW1hZ2U6aS5fX2ltZy5zcmN9OntpY29uOmUuJHEuaWNvbi51cGxvYWRlci5maWxlLGNvbG9yOmUuY29sb3J9fSksdChRSXRlbU1haW4se3Byb3BzOntsYWJlbDppLm5hbWUsc3VibGFiZWw6aS5fX3NpemV9fSksdChRSXRlbVNpZGUse3Byb3BzOntyaWdodDohMH19LFt0KFFJdGVtVGlsZSx7c3RhdGljQ2xhc3M6XCJjdXJzb3ItcG9pbnRlclwiLHByb3BzOntpY29uOmUuJHEuaWNvbi51cGxvYWRlcltpLl9fZG9uZVVwbG9hZGluZz9cImRvbmVcIjpcImNsZWFyXCJdLGNvbG9yOmUuY29sb3J9LG5hdGl2ZU9uOntjbGljazpmdW5jdGlvbigpe2UuX19yZW1vdmUoaSl9fX0pXSldKX0pKV0pXSksdGhpcy5kbmQmJnQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXVwbG9hZGVyLWRuZCBmbGV4IHJvdyBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYWJzb2x1dGUtZnVsbFwiLGNsYXNzOnRoaXMuZG5kQ2xhc3Msb246e2RyYWdlbnRlcjpzdG9wQW5kUHJldmVudCxkcmFnb3ZlcjpzdG9wQW5kUHJldmVudCxkcmFnbGVhdmU6dGhpcy5fX29uRHJhZ0xlYXZlLGRyb3A6dGhpcy5fX29uRHJvcH19KXx8dm9pZCAwXSl9fSxRVmlkZW89e25hbWU6XCJRVmlkZW9cIixwcm9wczp7c3JjOnt0eXBlOlN0cmluZyxyZXF1aXJlZDohMH19LGNvbXB1dGVkOntpZnJhbWVEYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2F0dHJzOntzcmM6dGhpcy5zcmMsZnJhbWVib3JkZXI6XCIwXCIsYWxsb3dmdWxsc2NyZWVuOiEwfX19fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXZpZGVvXCJ9LFt0KFwiaWZyYW1lXCIsdGhpcy5pZnJhbWVEYXRhKV0pfX0sY29tcG9uZW50cyQxPU9iamVjdC5mcmVlemUoe1FBY3Rpb25TaGVldDpRQWN0aW9uU2hlZXQsUUFqYXhCYXI6UUFqYXhCYXIsUUFsZXJ0OlFBbGVydCxRQXV0b2NvbXBsZXRlOlFBdXRvY29tcGxldGUsUUJyZWFkY3J1bWJzOlFCcmVhZGNydW1icyxRQnJlYWRjcnVtYnNFbDpRQnJlYWRjcnVtYnNFbCxRQnRuOlFCdG4sUUJ0bkdyb3VwOlFCdG5Hcm91cCxRQnRuRHJvcGRvd246UUJ0bkRyb3Bkb3duLFFCdG5Ub2dnbGU6UUJ0blRvZ2dsZSxRQ2FyZDpRQ2FyZCxRQ2FyZFRpdGxlOlFDYXJkVGl0bGUsUUNhcmRNYWluOlFDYXJkTWFpbixRQ2FyZEFjdGlvbnM6UUNhcmRBY3Rpb25zLFFDYXJkTWVkaWE6UUNhcmRNZWRpYSxRQ2FyZFNlcGFyYXRvcjpRQ2FyZFNlcGFyYXRvcixRQ2Fyb3VzZWw6UUNhcm91c2VsLFFDYXJvdXNlbFNsaWRlOlFDYXJvdXNlbFNsaWRlLFFDYXJvdXNlbENvbnRyb2w6UUNhcm91c2VsQ29udHJvbCxRQ2hhdE1lc3NhZ2U6UUNoYXRNZXNzYWdlLFFDaGVja2JveDpRQ2hlY2tib3gsUUNoaXA6UUNoaXAsUUNoaXBzSW5wdXQ6UUNoaXBzSW5wdXQsUUNvbGxhcHNpYmxlOlFDb2xsYXBzaWJsZSxRQ29sb3I6UUNvbG9yLFFDb2xvclBpY2tlcjpRQ29sb3JQaWNrZXIsUUNvbnRleHRNZW51OlFDb250ZXh0TWVudSxRRGF0ZXRpbWU6UURhdGV0aW1lLFFEYXRldGltZVBpY2tlcjpRRGF0ZXRpbWVQaWNrZXIsUURpYWxvZzpRRGlhbG9nLFFFZGl0b3I6UUVkaXRvcixRRmFiOlFGYWIsUUZhYkFjdGlvbjpRRmFiQWN0aW9uLFFGaWVsZDpRRmllbGQsUUljb246UUljb24sUUluZmluaXRlU2Nyb2xsOlFJbmZpbml0ZVNjcm9sbCxRSW5uZXJMb2FkaW5nOlFJbm5lckxvYWRpbmcsUUlucHV0OlFJbnB1dCxRSW5wdXRGcmFtZTpRSW5wdXRGcmFtZSxRSnVtYm90cm9uOlFKdW1ib3Ryb24sUUtub2I6UUtub2IsUUxheW91dDpRTGF5b3V0LFFMYXlvdXREcmF3ZXI6UUxheW91dERyYXdlcixRTGF5b3V0Rm9vdGVyOlFMYXlvdXRGb290ZXIsUUxheW91dEhlYWRlcjpRTGF5b3V0SGVhZGVyLFFQYWdlOlFQYWdlLFFQYWdlQ29udGFpbmVyOlFQYWdlQ29udGFpbmVyLFFQYWdlU3RpY2t5OlFQYWdlU3RpY2t5LFFJdGVtOlFJdGVtLFFJdGVtU2VwYXJhdG9yOlFJdGVtU2VwYXJhdG9yLFFJdGVtTWFpbjpRSXRlbU1haW4sUUl0ZW1TaWRlOlFJdGVtU2lkZSxRSXRlbVRpbGU6UUl0ZW1UaWxlLFFJdGVtV3JhcHBlcjpRSXRlbVdyYXBwZXIsUUxpc3Q6UUxpc3QsUUxpc3RIZWFkZXI6UUxpc3RIZWFkZXIsUU1vZGFsOlFNb2RhbCxRTW9kYWxMYXlvdXQ6UU1vZGFsTGF5b3V0LFFOb1NzcjpRTm9Tc3IsUVJlc2l6ZU9ic2VydmFibGU6UVJlc2l6ZU9ic2VydmFibGUsUVNjcm9sbE9ic2VydmFibGU6UVNjcm9sbE9ic2VydmFibGUsUVdpbmRvd1Jlc2l6ZU9ic2VydmFibGU6UVdpbmRvd1Jlc2l6ZU9ic2VydmFibGUsUU9wdGlvbkdyb3VwOlFPcHRpb25Hcm91cCxRUGFnaW5hdGlvbjpRUGFnaW5hdGlvbixRUGFyYWxsYXg6UVBhcmFsbGF4LFFQb3BvdmVyOlFQb3BvdmVyLFFQb3B1cEVkaXQ6UVBvcHVwRWRpdCxRUHJvZ3Jlc3M6UVByb2dyZXNzLFFQdWxsVG9SZWZyZXNoOlFQdWxsVG9SZWZyZXNoLFFSYWRpbzpRUmFkaW8sUVJhbmdlOlFSYW5nZSxRUmF0aW5nOlFSYXRpbmcsUVNjcm9sbEFyZWE6UVNjcm9sbEFyZWEsUVNlYXJjaDpRU2VhcmNoLFFTZWxlY3Q6UVNlbGVjdCxRU2xpZGVUcmFuc2l0aW9uOlFTbGlkZVRyYW5zaXRpb24sUVNsaWRlcjpRU2xpZGVyLFFTcGlubmVyOlFTcGlubmVyLFFTcGlubmVyQXVkaW86UVNwaW5uZXJBdWRpbyxRU3Bpbm5lckJhbGw6UVNwaW5uZXJCYWxsLFFTcGlubmVyQmFyczpRU3Bpbm5lckJhcnMsUVNwaW5uZXJDaXJjbGVzOlFTcGlubmVyQ2lyY2xlcyxRU3Bpbm5lckNvbW1lbnQ6UVNwaW5uZXJDb21tZW50LFFTcGlubmVyQ3ViZTpRU3Bpbm5lckN1YmUsUVNwaW5uZXJEb3RzOlFTcGlubmVyRG90cyxRU3Bpbm5lckZhY2Vib29rOlFTcGlubmVyRmFjZWJvb2ssUVNwaW5uZXJHZWFyczpRU3Bpbm5lckdlYXJzLFFTcGlubmVyR3JpZDpRU3Bpbm5lckdyaWQsUVNwaW5uZXJIZWFydHM6UVNwaW5uZXJIZWFydHMsUVNwaW5uZXJIb3VyZ2xhc3M6UVNwaW5uZXJIb3VyZ2xhc3MsUVNwaW5uZXJJbmZpbml0eTpRU3Bpbm5lckluZmluaXR5LFFTcGlubmVySW9zOlFTcGlubmVyX2lvcyxRU3Bpbm5lck1hdDpEZWZhdWx0U3Bpbm5lcixRU3Bpbm5lck92YWw6UVNwaW5uZXJPdmFsLFFTcGlubmVyUGllOlFTcGlubmVyUGllLFFTcGlubmVyUHVmZjpRU3Bpbm5lclB1ZmYsUVNwaW5uZXJSYWRpbzpRU3Bpbm5lclJhZGlvLFFTcGlubmVyUmluZ3M6UVNwaW5uZXJSaW5ncyxRU3Bpbm5lclRhaWw6UVNwaW5uZXJUYWlsLFFTdGVwOlFTdGVwLFFTdGVwcGVyOlFTdGVwcGVyLFFTdGVwcGVyTmF2aWdhdGlvbjpRU3RlcHBlck5hdmlnYXRpb24sUVJvdXRlVGFiOlFSb3V0ZVRhYixRVGFiOlFUYWIsUVRhYlBhbmU6UVRhYlBhbmUsUVRhYnM6UVRhYnMsUVRhYmxlOlFUYWJsZSxRVGg6UVRoLFFUcjpRVHIsUVRkOlFUZCxRVGFibGVDb2x1bW5zOlFUYWJsZUNvbHVtbnMsUVRpbWVsaW5lOlFUaW1lbGluZSxRVGltZWxpbmVFbnRyeTpRVGltZWxpbmVFbnRyeSxRVG9nZ2xlOlFUb2dnbGUsUVRvb2xiYXI6UVRvb2xiYXIsUVRvb2xiYXJUaXRsZTpRVG9vbGJhclRpdGxlLFFUb29sdGlwOlFUb29sdGlwLFFUcmVlOlFUcmVlLFFVcGxvYWRlcjpRVXBsb2FkZXIsUVZpZGVvOlFWaWRlb30pO2Z1bmN0aW9uIHVwZGF0ZUJpbmRpbmcodCxlKXt2YXIgaT1lLnZhbHVlLHM9KGUubW9kaWZpZXJzLHQuX19xYmFja3RvdG9wKTtpZihpKXtpZihcIm51bWJlclwiPT10eXBlb2YgaSlyZXR1cm4gcy5vZmZzZXQ9aSx2b2lkIHMudXBkYXRlKCk7aWYoaSYmT2JqZWN0KGkpIT09aSljb25zb2xlLmVycm9yKFwidi1iYWNrLXRvLXRvcCByZXF1aXJlcyBhbiBvYmplY3Qge29mZnNldCwgZHVyYXRpb259IGFzIHBhcmFtZXRlclwiLHQpO2Vsc2V7aWYoaS5vZmZzZXQpe2lmKFwibnVtYmVyXCIhPXR5cGVvZiBpLm9mZnNldClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKFwidi1iYWNrLXRvLXRvcCByZXF1aXJlcyBhIG51bWJlciBhcyBvZmZzZXRcIix0KTtzLm9mZnNldD1pLm9mZnNldH1pZihpLmR1cmF0aW9uKXtpZihcIm51bWJlclwiIT10eXBlb2YgaS5kdXJhdGlvbilyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKFwidi1iYWNrLXRvLXRvcCByZXF1aXJlcyBhIG51bWJlciBhcyBkdXJhdGlvblwiLHQpO3MuZHVyYXRpb249aS5kdXJhdGlvbn1zLnVwZGF0ZSgpfX1lbHNlIHMudXBkYXRlKCl9dmFyIGJhY2tUb1RvcD17bmFtZTpcImJhY2stdG8tdG9wXCIsYmluZDpmdW5jdGlvbih0KXt2YXIgZT17b2Zmc2V0OjIwMCxkdXJhdGlvbjozMDAsdXBkYXRlTm93OmZ1bmN0aW9uKCl7dmFyIGk9Z2V0U2Nyb2xsUG9zaXRpb24oZS5zY3JvbGxUYXJnZXQpPD1lLm9mZnNldDtpIT09dC5jbGFzc0xpc3QuY29udGFpbnMoXCJoaWRkZW5cIikmJnQuY2xhc3NMaXN0W2k/XCJhZGRcIjpcInJlbW92ZVwiXShcImhpZGRlblwiKX0sZ29Ub1RvcDpmdW5jdGlvbigpe3NldFNjcm9sbFBvc2l0aW9uKGUuc2Nyb2xsVGFyZ2V0LDAsZS5hbmltYXRlP2UuZHVyYXRpb246MCl9LGdvVG9Ub3BLZXk6ZnVuY3Rpb24odCl7MTM9PT10LmtleUNvZGUmJnNldFNjcm9sbFBvc2l0aW9uKGUuc2Nyb2xsVGFyZ2V0LDAsZS5hbmltYXRlP2UuZHVyYXRpb246MCl9fTtlLnVwZGF0ZT1kZWJvdW5jZShlLnVwZGF0ZU5vdywyNSksdC5jbGFzc0xpc3QuYWRkKFwiaGlkZGVuXCIpLHQuX19xYmFja3RvdG9wPWV9LGluc2VydGVkOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dC5fX3FiYWNrdG90b3A7aS5zY3JvbGxUYXJnZXQ9Z2V0U2Nyb2xsVGFyZ2V0KHQpLGkuYW5pbWF0ZT1lLm1vZGlmaWVycy5hbmltYXRlLHVwZGF0ZUJpbmRpbmcodCxlKSxpLnNjcm9sbFRhcmdldC5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsaS51cGRhdGUsbGlzdGVuT3B0cy5wYXNzaXZlKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLGkudXBkYXRlLGxpc3Rlbk9wdHMucGFzc2l2ZSksdC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIixpLmdvVG9Ub3ApLHQuYWRkRXZlbnRMaXN0ZW5lcihcImtleXVwXCIsaS5nb1RvVG9wS2V5KX0sdXBkYXRlOmZ1bmN0aW9uKHQsZSl7SlNPTi5zdHJpbmdpZnkoZS5vbGRWYWx1ZSkhPT1KU09OLnN0cmluZ2lmeShlLnZhbHVlKT91cGRhdGVCaW5kaW5nKHQsZSk6c2V0VGltZW91dChmdW5jdGlvbigpe3QuX19xYmFja3RvdG9wJiZ0Ll9fcWJhY2t0b3RvcC51cGRhdGVOb3coKX0sMCl9LHVuYmluZDpmdW5jdGlvbih0KXt2YXIgZT10Ll9fcWJhY2t0b3RvcDtlJiYoZS5zY3JvbGxUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLGUudXBkYXRlLGxpc3Rlbk9wdHMucGFzc2l2ZSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIixlLnVwZGF0ZSxsaXN0ZW5PcHRzLnBhc3NpdmUpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsZS5nb1RvVG9wKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXl1cFwiLGUuZ29Ub1RvcEtleSksZGVsZXRlIHQuX19xYmFja3RvdG9wKX19LGNsb3NlT3ZlcmxheT17bmFtZTpcImNsb3NlLW92ZXJsYXlcIixiaW5kOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz1mdW5jdGlvbih0KXtmb3IodmFyIGU9aS5jb21wb25lbnRJbnN0YW5jZTtlPWUuJHBhcmVudDspe3ZhciBzPWUuJG9wdGlvbnMubmFtZTtpZihcIlFQb3BvdmVyXCI9PT1zfHxcIlFNb2RhbFwiPT09cyl7ZS5oaWRlKHQpO2JyZWFrfX19LG49ZnVuY3Rpb24odCl7MTM9PT10LmtleUNvZGUmJnModCl9O3QuX19xY2xvc2U9e2hhbmRsZXI6cyxoYW5kbGVyS2V5Om59LHQuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIscyksdC5hZGRFdmVudExpc3RlbmVyKFwia2V5dXBcIixuKX0sdW5iaW5kOmZ1bmN0aW9uKHQpe3ZhciBlPXQuX19xY2xvc2U7ZSYmKHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsZS5oYW5kbGVyKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXl1cFwiLGUuaGFuZGxlcktleSksZGVsZXRlIHQuX19xY2xvc2UpfX0sZ29CYWNrPXtuYW1lOlwiZ28tYmFja1wiLGJpbmQ6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPWUudmFsdWUsbj1lLm1vZGlmaWVycyxvPXt2YWx1ZTpzLHBvc2l0aW9uOndpbmRvdy5oaXN0b3J5Lmxlbmd0aC0xLHNpbmdsZTpuLnNpbmdsZX07UGxhdGZvcm0uaXMuY29yZG92YT9vLmdvQmFjaz1mdW5jdGlvbigpe2kuY29udGV4dC4kcm91dGVyLmdvKG8uc2luZ2xlPy0xOm8ucG9zaXRpb24td2luZG93Lmhpc3RvcnkubGVuZ3RoKX06by5nb0JhY2s9ZnVuY3Rpb24oKXtpLmNvbnRleHQuJHJvdXRlci5yZXBsYWNlKG8udmFsdWUpfSxvLmdvQmFja0tleT1mdW5jdGlvbih0KXsxMz09PXQua2V5Q29kZSYmby5nb0JhY2sodCl9LHQuX19xZ29iYWNrPW8sdC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIixvLmdvQmFjayksdC5hZGRFdmVudExpc3RlbmVyKFwia2V5dXBcIixvLmdvQmFja0tleSl9LHVwZGF0ZTpmdW5jdGlvbih0LGUpe2Uub2xkVmFsdWUhPT1lLnZhbHVlJiYodC5fX3Fnb2JhY2sudmFsdWU9ZS52YWx1ZSl9LHVuYmluZDpmdW5jdGlvbih0KXt2YXIgZT10Ll9fcWdvYmFjaztlJiYodC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIixlLmdvQmFjayksdC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5dXBcIixlLmdvQmFja0tleSksZGVsZXRlIHQuX19xZ29iYWNrKX19O2Z1bmN0aW9uIHVwZGF0ZUJpbmRpbmckMSh0LGUpe3ZhciBpPXQuX19xc2Nyb2xsZmlyZTtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBlLnZhbHVlKXJldHVybiBpLnNjcm9sbFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsaS5zY3JvbGwpLHZvaWQgY29uc29sZS5lcnJvcihcInYtc2Nyb2xsLWZpcmUgcmVxdWlyZXMgYSBmdW5jdGlvbiBhcyBwYXJhbWV0ZXJcIix0KTtpLmhhbmRsZXI9ZS52YWx1ZSxcImZ1bmN0aW9uXCIhPXR5cGVvZiBlLm9sZFZhbHVlJiYoaS5zY3JvbGxUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLGkuc2Nyb2xsLGxpc3Rlbk9wdHMucGFzc2l2ZSksaS5zY3JvbGwoKSl9dmFyIHNjcm9sbEZpcmU9e25hbWU6XCJzY3JvbGwtZmlyZVwiLGJpbmQ6ZnVuY3Rpb24odCxlKXt2YXIgaT17c2Nyb2xsOmRlYm91bmNlKGZ1bmN0aW9uKCl7dmFyIGUscztpLnNjcm9sbFRhcmdldD09PXdpbmRvdz8ocz10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSxlPXdpbmRvdy5pbm5lckhlaWdodCk6KHM9b2Zmc2V0KHQpLnRvcCtoZWlnaHQodCksZT1vZmZzZXQoaS5zY3JvbGxUYXJnZXQpLnRvcCtoZWlnaHQoaS5zY3JvbGxUYXJnZXQpKSxzPjAmJnM8ZSYmKGkuc2Nyb2xsVGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIixpLnNjcm9sbCxsaXN0ZW5PcHRzLnBhc3NpdmUpLGkuaGFuZGxlcih0KSl9LDI1KX07dC5fX3FzY3JvbGxmaXJlPWl9LGluc2VydGVkOmZ1bmN0aW9uKHQsZSl7dC5fX3FzY3JvbGxmaXJlLnNjcm9sbFRhcmdldD1nZXRTY3JvbGxUYXJnZXQodCksdXBkYXRlQmluZGluZyQxKHQsZSl9LHVwZGF0ZTpmdW5jdGlvbih0LGUpe2UudmFsdWUhPT1lLm9sZFZhbHVlJiZ1cGRhdGVCaW5kaW5nJDEodCxlKX0sdW5iaW5kOmZ1bmN0aW9uKHQpe3ZhciBlPXQuX19xc2Nyb2xsZmlyZTtlJiYoZS5zY3JvbGxUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLGUuc2Nyb2xsLGxpc3Rlbk9wdHMucGFzc2l2ZSksZGVsZXRlIHQuX19xc2Nyb2xsZmlyZSl9fTtmdW5jdGlvbiB1cGRhdGVCaW5kaW5nJDIodCxlKXt2YXIgaT10Ll9fcXNjcm9sbDtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBlLnZhbHVlKXJldHVybiBpLnNjcm9sbFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsaS5zY3JvbGwsbGlzdGVuT3B0cy5wYXNzaXZlKSx2b2lkIGNvbnNvbGUuZXJyb3IoXCJ2LXNjcm9sbCByZXF1aXJlcyBhIGZ1bmN0aW9uIGFzIHBhcmFtZXRlclwiLHQpO2kuaGFuZGxlcj1lLnZhbHVlLFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUub2xkVmFsdWUmJmkuc2Nyb2xsVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIixpLnNjcm9sbCxsaXN0ZW5PcHRzLnBhc3NpdmUpfXZhciBzY3JvbGwkMT17bmFtZTpcInNjcm9sbFwiLGJpbmQ6ZnVuY3Rpb24odCxlKXt2YXIgaT17c2Nyb2xsOmZ1bmN0aW9uKCl7aS5oYW5kbGVyKGdldFNjcm9sbFBvc2l0aW9uKGkuc2Nyb2xsVGFyZ2V0KSxnZXRIb3Jpem9udGFsU2Nyb2xsUG9zaXRpb24oaS5zY3JvbGxUYXJnZXQpKX19O3QuX19xc2Nyb2xsPWl9LGluc2VydGVkOmZ1bmN0aW9uKHQsZSl7dC5fX3FzY3JvbGwuc2Nyb2xsVGFyZ2V0PWdldFNjcm9sbFRhcmdldCh0KSx1cGRhdGVCaW5kaW5nJDIodCxlKX0sdXBkYXRlOmZ1bmN0aW9uKHQsZSl7ZS5vbGRWYWx1ZSE9PWUudmFsdWUmJnVwZGF0ZUJpbmRpbmckMih0LGUpfSx1bmJpbmQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5fX3FzY3JvbGw7ZSYmKGUuc2Nyb2xsVGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIixlLnNjcm9sbCxsaXN0ZW5PcHRzLnBhc3NpdmUpLGRlbGV0ZSB0Ll9fcXNjcm9sbCl9fTtmdW5jdGlvbiB1cGRhdGVCaW5kaW5nJDModCxlKXt2YXIgaT10Ll9fcXRvdWNoaG9sZDtpLmR1cmF0aW9uPXBhcnNlSW50KGUuYXJnLDEwKXx8NjAwLGUub2xkVmFsdWUhPT1lLnZhbHVlJiYoaS5oYW5kbGVyPWUudmFsdWUpfXZhciB0b3VjaEhvbGQ9e25hbWU6XCJ0b3VjaC1ob2xkXCIsYmluZDpmdW5jdGlvbih0LGUpe3ZhciBpPSFlLm1vZGlmaWVycy5ub01vdXNlLHM9ZS5tb2RpZmllcnMuc3RvcCxuPWUubW9kaWZpZXJzLnByZXZlbnQsbz17bW91c2VTdGFydDpmdW5jdGlvbih0KXtsZWZ0Q2xpY2sodCkmJihkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsby5tb3VzZUFib3J0KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLG8ubW91c2VBYm9ydCksby5zdGFydCh0KSl9LG1vdXNlQWJvcnQ6ZnVuY3Rpb24odCl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLG8ubW91c2VBYm9ydCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIixvLm1vdXNlQWJvcnQpLG8uYWJvcnQodCl9LHN0YXJ0OmZ1bmN0aW9uKHQpe3ZhciBlPShuZXcgRGF0ZSkuZ2V0VGltZSgpO3MmJnQuc3RvcFByb3BhZ2F0aW9uKCksbiYmdC5wcmV2ZW50RGVmYXVsdCgpLG8udGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe2kmJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsby5tb3VzZUFib3J0KSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLG8ubW91c2VBYm9ydCkpLG8uaGFuZGxlcih7ZXZ0OnQscG9zaXRpb246cG9zaXRpb24odCksZHVyYXRpb246KG5ldyBEYXRlKS5nZXRUaW1lKCktZX0pfSxvLmR1cmF0aW9uKX0sYWJvcnQ6ZnVuY3Rpb24odCl7Y2xlYXJUaW1lb3V0KG8udGltZXIpLG8udGltZXI9bnVsbH19O3QuX19xdG91Y2hob2xkPW8sdXBkYXRlQmluZGluZyQzKHQsZSksaSYmdC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsby5tb3VzZVN0YXJ0KSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIsby5zdGFydCksdC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2htb3ZlXCIsby5hYm9ydCksdC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIixvLmFib3J0KX0sdXBkYXRlOmZ1bmN0aW9uKHQsZSl7dXBkYXRlQmluZGluZyQzKHQsZSl9LHVuYmluZDpmdW5jdGlvbih0LGUpe3ZhciBpPXQuX19xdG91Y2hob2xkO2kmJih0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIsaS5zdGFydCksdC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIixpLmFib3J0KSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIixpLmFib3J0KSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIixpLm1vdXNlU3RhcnQpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixpLm1vdXNlQWJvcnQpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsaS5tb3VzZUFib3J0KSxkZWxldGUgdC5fX3F0b3VjaGhvbGQpfX0sZGlyZWN0aXZlcz1PYmplY3QuZnJlZXplKHtCYWNrVG9Ub3A6YmFja1RvVG9wLENsb3NlT3ZlcmxheTpjbG9zZU92ZXJsYXksR29CYWNrOmdvQmFjayxSaXBwbGU6UmlwcGxlLFNjcm9sbEZpcmU6c2Nyb2xsRmlyZSxTY3JvbGw6c2Nyb2xsJDEsVG91Y2hIb2xkOnRvdWNoSG9sZCxUb3VjaFBhbjpUb3VjaFBhbixUb3VjaFN3aXBlOlRvdWNoU3dpcGV9KTtmdW5jdGlvbiBvYmplY3RXaXRob3V0UHJvcGVydGllcyh0LGUpe3ZhciBpPXt9O2Zvcih2YXIgcyBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHMpJiYtMT09PWUuaW5kZXhPZihzKSYmKGlbc109dFtzXSk7cmV0dXJuIGl9ZnVuY3Rpb24gbW9kYWxGbih0LGUpe3JldHVybiBmdW5jdGlvbihpLHMpe3ZhciBuPWkuY2xhc3NOYW1lLG89b2JqZWN0V2l0aG91dFByb3BlcnRpZXMoaSxbXCJjbGFzc05hbWVcIl0pO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihpLHIpe2lmKGlzU1NSKXJldHVybiBpKCk7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO3ZhciBsPWZ1bmN0aW9uKHQpe2kodCksaC4kZGVzdHJveSgpfSxjPWZ1bmN0aW9uKHQpe3IodHx8bmV3IEVycm9yKSxoLiRkZXN0cm95KCl9LGg9bmV3IGUoe2VsOmEsZGF0YTpmdW5jdGlvbigpe3JldHVybntwcm9wczpvfX0scmVuZGVyOmZ1bmN0aW9uKGUpe3JldHVybiBlKHQse3JlZjpcIm1vZGFsXCIscHJvcHM6byxjbGFzczpuLG9uOntvazpsLGNhbmNlbDpjfX0pfSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy4kcmVmcy5tb2RhbC5zaG93KCl9fSk7cyYmcy50aGVuKGwsYyl9KX19dmFyIG1ldGFWYWx1ZSxhY3Rpb25TaGVldD17aW5zdGFsbDpmdW5jdGlvbih0KXt2YXIgZT10LiRxLGk9dC5WdWU7dGhpcy5jcmVhdGU9ZS5hY3Rpb25TaGVldD1tb2RhbEZuKFFBY3Rpb25TaGVldCxpKX19O2Z1bmN0aW9uIGdldFByb3AoKXtyZXR1cm4gUGxhdGZvcm0uaXMud2lucGhvbmU/XCJtc2FwcGxpY2F0aW9uLW5hdmJ1dHRvbi1jb2xvclwiOlBsYXRmb3JtLmlzLnNhZmFyaT9cImFwcGxlLW1vYmlsZS13ZWItYXBwLXN0YXR1cy1iYXItc3R5bGVcIjpcInRoZW1lLWNvbG9yXCJ9ZnVuY3Rpb24gZ2V0TWV0YVRhZyh0KXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcIk1FVEFcIik7Zm9yKHZhciBpIGluIGUpaWYoZVtpXS5uYW1lPT09dClyZXR1cm4gZVtpXX1mdW5jdGlvbiBzZXRDb2xvcih0KXt2b2lkIDA9PT1tZXRhVmFsdWUmJihtZXRhVmFsdWU9Z2V0UHJvcCgpKTt2YXIgZT1nZXRNZXRhVGFnKG1ldGFWYWx1ZSksaT12b2lkIDA9PT1lO2kmJihlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJtZXRhXCIpKS5zZXRBdHRyaWJ1dGUoXCJuYW1lXCIsbWV0YVZhbHVlKSxlLnNldEF0dHJpYnV0ZShcImNvbnRlbnRcIix0KSxpJiZkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGUpfXZhciBhZGRyZXNzYmFyQ29sb3I9e2luc3RhbGw6ZnVuY3Rpb24odCl7dmFyIGU9dC4kcSxpPSh0LlZ1ZSx0LmNmZyk7dGhpcy5zZXQ9IWlzU1NSJiZQbGF0Zm9ybS5pcy5tb2JpbGUmJihQbGF0Zm9ybS5pcy5jb3Jkb3ZhfHxQbGF0Zm9ybS5pcy53aW5waG9uZXx8UGxhdGZvcm0uaXMuc2FmYXJpfHxQbGF0Zm9ybS5pcy53ZWJraXR8fFBsYXRmb3JtLmlzLnZpdmFsZGkpP2Z1bmN0aW9uKHQpe3ZhciBlPXR8fGdldEJyYW5kKFwicHJpbWFyeVwiKTtQbGF0Zm9ybS5pcy5jb3Jkb3ZhJiZ3aW5kb3cuU3RhdHVzQmFyP3dpbmRvdy5TdGF0dXNCYXIuYmFja2dyb3VuZENvbG9yQnlIZXhTdHJpbmcoZSk6c2V0Q29sb3IoZSl9OmZ1bmN0aW9uKCl7fSxlLmFkZHJlc3NiYXJDb2xvcj10aGlzLGkuYWRkcmVzc2JhckNvbG9yJiZ0aGlzLnNldChpLmFkZHJlc3NiYXJDb2xvcil9fSxwcmVmaXhlcz17fSxhcHBGdWxsc2NyZWVuPXtpc0NhcGFibGU6ITEsaXNBY3RpdmU6ITEscmVxdWVzdDpmdW5jdGlvbih0KXt0aGlzLmlzQ2FwYWJsZSYmIXRoaXMuaXNBY3RpdmUmJih0PXR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudClbcHJlZml4ZXMucmVxdWVzdF0oKX0sZXhpdDpmdW5jdGlvbigpe3RoaXMuaXNDYXBhYmxlJiZ0aGlzLmlzQWN0aXZlJiZkb2N1bWVudFtwcmVmaXhlcy5leGl0XSgpfSx0b2dnbGU6ZnVuY3Rpb24odCl7dGhpcy5pc0FjdGl2ZT90aGlzLmV4aXQoKTp0aGlzLnJlcXVlc3QodCl9LGluc3RhbGw6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPXQuJHEscz10LlZ1ZTtpLmZ1bGxzY3JlZW49dGhpcyxpc1NTUnx8KHByZWZpeGVzLnJlcXVlc3Q9W1wicmVxdWVzdEZ1bGxzY3JlZW5cIixcIm1zUmVxdWVzdEZ1bGxzY3JlZW5cIixcIm1velJlcXVlc3RGdWxsU2NyZWVuXCIsXCJ3ZWJraXRSZXF1ZXN0RnVsbHNjcmVlblwiXS5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbdF19KSx0aGlzLmlzQ2FwYWJsZT12b2lkIDAhPT1wcmVmaXhlcy5yZXF1ZXN0LHRoaXMuaXNDYXBhYmxlJiYocHJlZml4ZXMuZXhpdD1bXCJleGl0RnVsbHNjcmVlblwiLFwibXNFeGl0RnVsbHNjcmVlblwiLFwibW96Q2FuY2VsRnVsbFNjcmVlblwiLFwid2Via2l0RXhpdEZ1bGxzY3JlZW5cIl0uZmluZChmdW5jdGlvbih0KXtyZXR1cm4gZG9jdW1lbnRbdF19KSx0aGlzLmlzQWN0aXZlPSEhKGRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50fHxkb2N1bWVudC5tb3pGdWxsU2NyZWVuRWxlbWVudHx8ZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVsZW1lbnR8fGRvY3VtZW50Lm1zRnVsbHNjcmVlbkVsZW1lbnQpLFtcIm9uZnVsbHNjcmVlbmNoYW5nZVwiLFwib25tc2Z1bGxzY3JlZW5jaGFuZ2VcIixcIm9ubW96ZnVsbHNjcmVlbmNoYW5nZVwiLFwib253ZWJraXRmdWxsc2NyZWVuY2hhbmdlXCJdLmZvckVhY2goZnVuY3Rpb24odCl7ZG9jdW1lbnRbdF09ZnVuY3Rpb24oKXtlLmlzQWN0aXZlPSFlLmlzQWN0aXZlfX0pLHMudXRpbC5kZWZpbmVSZWFjdGl2ZSh0aGlzLFwiaXNBY3RpdmVcIix0aGlzLmlzQWN0aXZlKSkpfX0sYXBwVmlzaWJpbGl0eT17YXBwVmlzaWJsZTohMSxpbnN0YWxsOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT10LiRxLHM9dC5WdWU7aWYoaXNTU1IpdGhpcy5hcHBWaXNpYmxlPWkuYXBwVmlzaWJsZT0hMDtlbHNle3ZhciBuLG87dm9pZCAwIT09ZG9jdW1lbnQuaGlkZGVuPyhuPVwiaGlkZGVuXCIsbz1cInZpc2liaWxpdHljaGFuZ2VcIik6dm9pZCAwIT09ZG9jdW1lbnQubXNIaWRkZW4/KG49XCJtc0hpZGRlblwiLG89XCJtc3Zpc2liaWxpdHljaGFuZ2VcIik6dm9pZCAwIT09ZG9jdW1lbnQud2Via2l0SGlkZGVuJiYobj1cIndlYmtpdEhpZGRlblwiLG89XCJ3ZWJraXR2aXNpYmlsaXR5Y2hhbmdlXCIpO3ZhciByPWZ1bmN0aW9uKCl7ZS5hcHBWaXNpYmxlPWkuYXBwVmlzaWJsZT0hZG9jdW1lbnRbbl19O3IoKSxvJiZ2b2lkIDAhPT1kb2N1bWVudFtuXSYmKHMudXRpbC5kZWZpbmVSZWFjdGl2ZShpLFwiYXBwVmlzaWJsZVwiLHRoaXMuYXBwVmlzaWJsZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihvLHIsITEpKX19fTtmdW5jdGlvbiBlbmNvZGUodCl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCh0KX1mdW5jdGlvbiBkZWNvZGUodCl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh0KX1mdW5jdGlvbiBzdHJpbmdpZnlDb29raWVWYWx1ZSh0KXtyZXR1cm4gZW5jb2RlKHQ9PT1PYmplY3QodCk/SlNPTi5zdHJpbmdpZnkodCk6XCJcIit0KX1mdW5jdGlvbiByZWFkKHQpe2lmKFwiXCI9PT10KXJldHVybiB0OzA9PT10LmluZGV4T2YoJ1wiJykmJih0PXQuc2xpY2UoMSwtMSkucmVwbGFjZSgvXFxcXFwiL2csJ1wiJykucmVwbGFjZSgvXFxcXFxcXFwvZyxcIlxcXFxcIikpLHQ9ZGVjb2RlKHQucmVwbGFjZSgvXFwrL2csXCIgXCIpKTt0cnl7dD1KU09OLnBhcnNlKHQpfWNhdGNoKHQpe31yZXR1cm4gdH1mdW5jdGlvbiBzZXQodCxlLGkscyl7dmFyIG4sbztpZih2b2lkIDA9PT1pJiYoaT17fSksdm9pZCAwIT09aS5leHBpcmVzKXtpZihvPXBhcnNlSW50KGkuZXhwaXJlcywxMCksaXNOYU4obykpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcihcIlF1YXNhciBjb29raWU6IGV4cGlyZXMgbmVlZHMgdG8gYmUgYSBudW1iZXJcIik7KG49bmV3IERhdGUpLnNldE1pbGxpc2Vjb25kcyhuLmdldE1pbGxpc2Vjb25kcygpKzg2NGU1Km8pfXZhciByPWVuY29kZSh0KStcIj1cIitzdHJpbmdpZnlDb29raWVWYWx1ZShlKSxhPVtyLHZvaWQgMCE9PW4/XCI7IEV4cGlyZXM9XCIrbi50b1VUQ1N0cmluZygpOlwiXCIsaS5wYXRoP1wiOyBQYXRoPVwiK2kucGF0aDpcIlwiLGkuZG9tYWluP1wiOyBEb21haW49XCIraS5kb21haW46XCJcIixpLmh0dHBPbmx5P1wiOyBIdHRwT25seVwiOlwiXCIsaS5zZWN1cmU/XCI7IFNlY3VyZVwiOlwiXCJdLmpvaW4oXCJcIik7aWYocyl7cy5yZXEucUNvb2tpZXM/cy5yZXEucUNvb2tpZXMucHVzaChhKTpzLnJlcS5xQ29va2llcz1bYV0scy5yZXMuc2V0SGVhZGVyKFwiU2V0LUNvb2tpZVwiLHMucmVxLnFDb29raWVzKTt2YXIgbD1zLnJlcS5oZWFkZXJzLmNvb2tpZXx8XCJcIjtpZih2b2lkIDAhPT1uJiZvPDApe3ZhciBjPWdldCh0LHMpO3ZvaWQgMCE9PWMmJihsPWwucmVwbGFjZSh0K1wiPVwiK2MrXCI7IFwiLFwiXCIpLnJlcGxhY2UoXCI7IFwiK3QrXCI9XCIrYyxcIlwiKS5yZXBsYWNlKHQrXCI9XCIrYyxcIlwiKSl9ZWxzZSBsPWw/citcIjsgXCIrbDphO3MucmVxLmhlYWRlcnMuY29va2llPWx9ZWxzZSBkb2N1bWVudC5jb29raWU9YX1mdW5jdGlvbiBnZXQodCxlKXtmb3IodmFyIGkscyxuLG89dD92b2lkIDA6e30scj1lP2UucmVxLmhlYWRlcnM6ZG9jdW1lbnQsYT1yLmNvb2tpZT9yLmNvb2tpZS5zcGxpdChcIjsgXCIpOltdLGw9MCxjPWEubGVuZ3RoO2w8YztsKyspaWYocz1kZWNvZGUoKGk9YVtsXS5zcGxpdChcIj1cIikpLnNoaWZ0KCkpLG49aS5qb2luKFwiPVwiKSx0KXtpZih0PT09cyl7bz1yZWFkKG4pO2JyZWFrfX1lbHNlIG9bc109bjtyZXR1cm4gb31mdW5jdGlvbiByZW1vdmUodCxlLGkpe3NldCh0LFwiXCIsT2JqZWN0LmFzc2lnbih7fSxlLHtleHBpcmVzOi0xfSksaSl9ZnVuY3Rpb24gaGFzKHQsZSl7cmV0dXJuIHZvaWQgMCE9PWdldCh0LGUpfWZ1bmN0aW9uIGdldE9iamVjdCh0KXt2b2lkIDA9PT10JiYodD17fSk7dmFyIGU9dC5zc3I7cmV0dXJue2dldDpmdW5jdGlvbih0KXtyZXR1cm4gZ2V0KHQsZSl9LHNldDpmdW5jdGlvbih0LGkscyl7cmV0dXJuIHNldCh0LGkscyxlKX0saGFzOmZ1bmN0aW9uKHQpe3JldHVybiBoYXModCxlKX0scmVtb3ZlOmZ1bmN0aW9uKHQsaSl7cmV0dXJuIHJlbW92ZSh0LGksZSl9LGFsbDpmdW5jdGlvbigpe3JldHVybiBnZXQobnVsbCxlKX19fXZhciB2bSx0aW1lb3V0LHVwZGF0ZUlkLHNzclRha2VvdmVyLGNvb2tpZXM9e3BhcnNlU1NSOmZ1bmN0aW9uKHQpe3JldHVybiB0P2dldE9iamVjdCh7c3NyOnR9KTp0aGlzfSxpbnN0YWxsOmZ1bmN0aW9uKHQpe3ZhciBlPXQuJHEsaT10LnF1ZXVlcztpc1NTUj9pLnNlcnZlci5wdXNoKGZ1bmN0aW9uKHQsZSl7dC5jb29raWVzPWdldE9iamVjdChlKX0pOihPYmplY3QuYXNzaWduKHRoaXMsZ2V0T2JqZWN0KCkpLGUuY29va2llcz10aGlzKX19LGRpYWxvZz17aW5zdGFsbDpmdW5jdGlvbih0KXt2YXIgZT10LiRxLGk9dC5WdWU7dGhpcy5jcmVhdGU9ZS5kaWFsb2c9bW9kYWxGbihRRGlhbG9nLGkpfX0sbG9hZGluZ0Jhcj17c3RhcnQ6ZnVuY3Rpb24oKXt9LHN0b3A6ZnVuY3Rpb24oKXt9LGluY3JlbWVudDpmdW5jdGlvbigpe30saW5zdGFsbDpmdW5jdGlvbih0KXt2YXIgZT10LiRxLGk9dC5WdWUscz10LmNmZztpZihpc1NTUillLmxvYWRpbmdCYXI9dGhpcztlbHNle3ZhciBuPWUubG9hZGluZ0Jhcj1uZXcgaSh7cmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFFBamF4QmFyLHtyZWY6XCJiYXJcIixwcm9wczpzLmxvYWRpbmdCYXJ9KX19KS4kbW91bnQoKS4kcmVmcy5iYXI7T2JqZWN0LmFzc2lnbih0aGlzLHtzdGFydDpuLnN0YXJ0LHN0b3A6bi5zdG9wLGluY3JlbWVudDpuLmluY3JlbWVudH0pLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZS5sb2FkaW5nQmFyLiRwYXJlbnQuJGVsKX19fSxwcm9wcz17fSxkZWZhdWx0cz17ZGVsYXk6MCxtZXNzYWdlOiExLHNwaW5uZXJTaXplOjgwLHNwaW5uZXJDb2xvcjpcIndoaXRlXCIsbWVzc2FnZUNvbG9yOlwid2hpdGVcIixzcGlubmVyOlFTcGlubmVyLGN1c3RvbUNsYXNzOiExfSxzdGF0aWNDbGFzcz1cInEtbG9hZGluZyBhbmltYXRlLWZhZGUgZnVsbHNjcmVlbiBjb2x1bW4gZmxleC1jZW50ZXIgei1tYXhcIixsb2FkaW5nPXtpc0FjdGl2ZTohMSxzaG93OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aXNTU1J8fChcInN0cmluZ1wiPT10eXBlb2YocHJvcHM9T2JqZWN0LmFzc2lnbih7fSxkZWZhdWx0cyx0KSkuY3VzdG9tQ2xhc3MmJihwcm9wcy5jdXN0b21DbGFzcz1wcm9wcy5jdXN0b21DbGFzcy50cmltKCkpLHRoaXMuaXNBY3RpdmU/dm0mJnZtLiRmb3JjZVVwZGF0ZSgpOih0aW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aW1lb3V0PW51bGw7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpLGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcIndpdGgtbG9hZGluZ1wiKSx2bT1uZXcgZS5fX1Z1ZSh7bmFtZTpcIlFMb2FkaW5nXCIsZWw6dCxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6c3RhdGljQ2xhc3MsY2xhc3M6cHJvcHMuY3VzdG9tQ2xhc3N9LFt0KHByb3BzLnNwaW5uZXIse3Byb3BzOntjb2xvcjpwcm9wcy5zcGlubmVyQ29sb3Isc2l6ZTpwcm9wcy5zcGlubmVyU2l6ZX19KSxwcm9wcy5tZXNzYWdlP3QoXCJkaXZcIix7Y2xhc3M6XCJ0ZXh0LVwiK3Byb3BzLm1lc3NhZ2VDb2xvcixkb21Qcm9wczp7aW5uZXJIVE1MOnByb3BzLm1lc3NhZ2V9fSk6bnVsbF0pfX0pfSxwcm9wcy5kZWxheSksdGhpcy5pc0FjdGl2ZT0hMCkpfSxoaWRlOmZ1bmN0aW9uKCl7dGhpcy5pc0FjdGl2ZSYmKHRpbWVvdXQ/KGNsZWFyVGltZW91dCh0aW1lb3V0KSx0aW1lb3V0PW51bGwpOih2bS4kZGVzdHJveSgpLGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShcIndpdGgtbG9hZGluZ1wiKSx2bS4kZWwucmVtb3ZlKCksdm09bnVsbCksdGhpcy5pc0FjdGl2ZT0hMSl9LHNldERlZmF1bHRzOmZ1bmN0aW9uKHQpe09iamVjdC5hc3NpZ24oZGVmYXVsdHMsdCl9LF9fVnVlOm51bGwsaW5zdGFsbDpmdW5jdGlvbih0KXt2YXIgZT10LiRxLGk9dC5WdWUscz10LmNmZy5sb2FkaW5nO3MmJnRoaXMuc2V0RGVmYXVsdHMocyksZS5sb2FkaW5nPXRoaXMsdGhpcy5fX1Z1ZT1pfX07ZnVuY3Rpb24gbm9ybWFsaXplKHQpe3QudGl0bGUmJih0LnRpdGxlPXQudGl0bGVUZW1wbGF0ZT90LnRpdGxlVGVtcGxhdGUodC50aXRsZXx8XCJcIik6dC50aXRsZSxkZWxldGUgdC50aXRsZVRlbXBsYXRlKSxbW1wibWV0YVwiLFwiY29udGVudFwiXSxbXCJsaW5rXCIsXCJocmVmXCJdXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciBpPXRbZVswXV0scz1lWzFdO2Zvcih2YXIgbiBpbiBpKXt2YXIgbz1pW25dO28udGVtcGxhdGUmJigxPT09T2JqZWN0LmtleXMobykubGVuZ3RoP2RlbGV0ZSBpW25dOihvW3NdPW8udGVtcGxhdGUob1tzXXx8XCJcIiksZGVsZXRlIG8udGVtcGxhdGUpKX19KX1mdW5jdGlvbiBjaGFuZ2VkKHQsZSl7aWYoT2JqZWN0LmtleXModCkubGVuZ3RoIT09T2JqZWN0LmtleXMoZSkubGVuZ3RoKXJldHVybiEwO2Zvcih2YXIgaSBpbiB0KWlmKHRbaV0hPT1lW2ldKXJldHVybiEwfWZ1bmN0aW9uIGJvZHlGaWx0ZXIodCl7cmV0dXJuIVtcImNsYXNzXCIsXCJzdHlsZVwiXS5pbmNsdWRlcyh0KX1mdW5jdGlvbiBodG1sRmlsdGVyKHQpe3JldHVybiFbXCJsYW5nXCIsXCJkaXJcIl0uaW5jbHVkZXModCl9ZnVuY3Rpb24gZGlmZih0LGUpe3ZhciBpPXt9LHM9e307cmV0dXJuIHQ/KHQudGl0bGUhPT1lLnRpdGxlJiYoaS50aXRsZT1lLnRpdGxlKSxbXCJtZXRhXCIsXCJsaW5rXCIsXCJzY3JpcHRcIixcImh0bWxBdHRyXCIsXCJib2R5QXR0clwiXS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciBvPXRbbl0scj1lW25dO2lmKHNbbl09W10sbyl7Zm9yKHZhciBhIGluIGlbbl09e30sbylyLmhhc093blByb3BlcnR5KGEpfHxzW25dLnB1c2goYSk7Zm9yKHZhciBsIGluIHIpby5oYXNPd25Qcm9wZXJ0eShsKT9jaGFuZ2VkKG9bbF0scltsXSkmJihzW25dLnB1c2gobCksaVtuXVtsXT1yW2xdKTppW25dW2xdPXJbbF19ZWxzZSBpW25dPXJ9KSx7YWRkOmkscmVtb3ZlOnN9KTp7YWRkOmUscmVtb3ZlOnN9fWZ1bmN0aW9uIGFwcGx5KHQpe3ZhciBlPXQuYWRkLGk9dC5yZW1vdmU7ZS50aXRsZSYmKGRvY3VtZW50LnRpdGxlPWUudGl0bGUpLE9iamVjdC5rZXlzKGkpLmxlbmd0aD4wJiYoW1wibWV0YVwiLFwibGlua1wiLFwic2NyaXB0XCJdLmZvckVhY2goZnVuY3Rpb24odCl7aVt0XS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2RvY3VtZW50LmhlYWQucXVlcnlTZWxlY3Rvcih0KydbZGF0YS1xbWV0YT1cIicrZSsnXCJdJykucmVtb3ZlKCl9KX0pLGkuaHRtbEF0dHIuZmlsdGVyKGh0bWxGaWx0ZXIpLmZvckVhY2goZnVuY3Rpb24odCl7ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSh0KX0pLGkuYm9keUF0dHIuZmlsdGVyKGJvZHlGaWx0ZXIpLmZvckVhY2goZnVuY3Rpb24odCl7ZG9jdW1lbnQuYm9keS5yZW1vdmVBdHRyaWJ1dGUodCl9KSksW1wibWV0YVwiLFwibGlua1wiLFwic2NyaXB0XCJdLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGk9ZVt0XTtmb3IodmFyIHMgaW4gaSl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0KTtmb3IodmFyIG8gaW4gaVtzXSlcImlubmVySFRNTFwiIT09byYmbi5zZXRBdHRyaWJ1dGUobyxpW3NdW29dKTtuLnNldEF0dHJpYnV0ZShcImRhdGEtcW1ldGFcIixzKSxcInNjcmlwdFwiPT09dCYmKG4uaW5uZXJIVE1MPWlbc10uaW5uZXJIVE1MfHxcIlwiKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG4pfX0pLE9iamVjdC5rZXlzKGUuaHRtbEF0dHIpLmZpbHRlcihodG1sRmlsdGVyKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zZXRBdHRyaWJ1dGUodCxlLmh0bWxBdHRyW3RdfHxcIlwiKX0pLE9iamVjdC5rZXlzKGUuYm9keUF0dHIpLmZpbHRlcihib2R5RmlsdGVyKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2RvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKHQsZS5ib2R5QXR0clt0XXx8XCJcIil9KX1mdW5jdGlvbiBwYXJzZU1ldGEodCxlKXtpZighdC5faW5hY3RpdmUpe3ZhciBpPXQuJG9wdGlvbnMubWV0YTtpJiYoZXh0ZW5kKCEwLGUsdC5fX3FNZXRhKSxpLnN0b3BQcm9wYWdhdGlvbil8fHQuJGNoaWxkcmVuJiZ0LiRjaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKHQpe3BhcnNlTWV0YSh0LGUpfSl9fWZ1bmN0aW9uIHVwZGF0ZUNsaWVudCgpe2lmKHNzclRha2VvdmVyKXJldHVybiBzc3JUYWtlb3Zlcj0hMSx0aGlzLiRyb290Ll9fY3VycmVudE1ldGE9d2luZG93Ll9fUV9NRVRBX18sdm9pZCBkb2N1bWVudC5ib2R5LnF1ZXJ5U2VsZWN0b3IoXCJzY3JpcHRbZGF0YS1xbWV0YS1pbml0XVwiKS5yZW1vdmUoKTt2YXIgdD17dGl0bGU6XCJcIix0aXRsZVRlbXBsYXRlOm51bGwsbWV0YTp7fSxsaW5rOnt9LHNjcmlwdDp7fSxodG1sQXR0cjp7fSxib2R5QXR0cjp7fX07cGFyc2VNZXRhKHRoaXMuJHJvb3QsdCksbm9ybWFsaXplKHQpLGFwcGx5KGRpZmYodGhpcy4kcm9vdC5fX2N1cnJlbnRNZXRhLHQpKSx0aGlzLiRyb290Ll9fY3VycmVudE1ldGE9dH1mdW5jdGlvbiBnZXRBdHRyKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgaT10W2VdO3JldHVybiBlKyh2b2lkIDAhPT1pPyc9XCInK2krJ1wiJzpcIlwiKX19ZnVuY3Rpb24gZ2V0SGVhZCh0KXt2YXIgZT1cIlwiO3JldHVybiB0LnRpdGxlJiYoZSs9XCI8dGl0bGU+XCIrdC50aXRsZStcIjwvdGl0bGU+XCIpLFtcIm1ldGFcIixcImxpbmtcIixcInNjcmlwdFwiXS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3ZhciBzPXRbaV07Zm9yKHZhciBuIGluIHMpe3ZhciBvPU9iamVjdC5rZXlzKHNbbl0pLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm5cImlubmVySFRNTFwiIT09dH0pLm1hcChnZXRBdHRyKHNbbl0pKTtlKz1cIjxcIitpK1wiIFwiK28uam9pbihcIiBcIikrJyBkYXRhLXFtZXRhPVwiJytuKydcIj4nLFwic2NyaXB0XCI9PT1pJiYoZSs9KHNbbl0uaW5uZXJIVE1MfHxcIlwiKStcIjxcXC9zY3JpcHQ+XCIpfX0pLGV9ZnVuY3Rpb24gZ2V0U2VydmVyTWV0YSh0LGUpe3ZhciBpPXt0aXRsZTpcIlwiLHRpdGxlVGVtcGxhdGU6bnVsbCxtZXRhOnt9LGxpbms6e30saHRtbEF0dHI6e30sYm9keUF0dHI6e30sbm9zY3JpcHQ6e319O3BhcnNlTWV0YSh0LGkpLG5vcm1hbGl6ZShpKTt2YXIgcz17XCIlJVFfSFRNTF9BVFRSUyUlXCI6T2JqZWN0LmtleXMoaS5odG1sQXR0cikuZmlsdGVyKGh0bWxGaWx0ZXIpLm1hcChnZXRBdHRyKGkuaHRtbEF0dHIpKS5qb2luKFwiIFwiKSxcIiUlUV9IRUFEX1RBR1MlJVwiOmdldEhlYWQoaSksXCIlJVFfQk9EWV9BVFRSUyUlXCI6T2JqZWN0LmtleXMoaS5ib2R5QXR0cikuZmlsdGVyKGJvZHlGaWx0ZXIpLm1hcChnZXRBdHRyKGkuYm9keUF0dHIpKS5qb2luKFwiIFwiKSxcIiUlUV9CT0RZX1RBR1MlJVwiOk9iamVjdC5rZXlzKGkubm9zY3JpcHQpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4nPG5vc2NyaXB0IGRhdGEtcW1ldGE9XCInK3QrJ1wiPicraS5ub3NjcmlwdFt0XStcIjwvbm9zY3JpcHQ+XCJ9KS5qb2luKFwiXCIpK1wiPHNjcmlwdCBkYXRhLXFtZXRhLWluaXQ+d2luZG93Ll9fUV9NRVRBX189XCIrKGRlbGV0ZSBpLm5vc2NyaXB0JiZKU09OLnN0cmluZ2lmeShpKSkrXCI8XFwvc2NyaXB0PlwifTtyZXR1cm4gT2JqZWN0LmtleXMocykuZm9yRWFjaChmdW5jdGlvbih0KXtlPWUucmVwbGFjZSh0LHNbdF0pfSksZX1mdW5jdGlvbiBiZWZvcmVDcmVhdGUoKXt0aGlzLiRvcHRpb25zLm1ldGEmJihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0aGlzLiRvcHRpb25zLm1ldGE/KHRoaXMuJG9wdGlvbnMuY29tcHV0ZWR8fCh0aGlzLiRvcHRpb25zLmNvbXB1dGVkPXt9KSx0aGlzLiRvcHRpb25zLmNvbXB1dGVkLl9fcU1ldGE9dGhpcy4kb3B0aW9ucy5tZXRhKTp0aGlzLl9fcU1ldGE9dGhpcy4kb3B0aW9ucy5tZXRhKX1mdW5jdGlvbiB0cmlnZ2VyTWV0YSgpe3RoaXMuJG9wdGlvbnMubWV0YSYmdGhpcy5fX3FNZXRhVXBkYXRlKCl9dmFyIG1ldGE9e2luc3RhbGw6ZnVuY3Rpb24odCl7dmFyIGU9dC5xdWV1ZXMsaT10LlZ1ZTtpc1NTUj8oaS5wcm90b3R5cGUuJGdldE1ldGFIVE1MPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZ2V0U2VydmVyTWV0YSh0LGUpfX0saS5taXhpbih7YmVmb3JlQ3JlYXRlOmJlZm9yZUNyZWF0ZX0pLGUuc2VydmVyLnB1c2goZnVuY3Rpb24odCxlKXtlLnNzci5RX0hUTUxfQVRUUlMrPVwiICUlUV9IVE1MX0FUVFJTJSVcIixPYmplY3QuYXNzaWduKGUuc3NyLHtRX0hFQURfVEFHUzpcIiUlUV9IRUFEX1RBR1MlJVwiLFFfQk9EWV9BVFRSUzpcIiUlUV9CT0RZX0FUVFJTJSVcIixRX0JPRFlfVEFHUzpcIiUlUV9CT0RZX1RBR1MlJVwifSl9KSk6KHNzclRha2VvdmVyPWZyb21TU1IsaS5taXhpbih7YmVmb3JlQ3JlYXRlOmJlZm9yZUNyZWF0ZSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy4kb3B0aW9ucy5tZXRhJiYodGhpcy5fX3FNZXRhVW53YXRjaD10aGlzLiR3YXRjaChcIl9fcU1ldGFcIix0aGlzLl9fcU1ldGFVcGRhdGUpKX0sYWN0aXZhdGVkOnRyaWdnZXJNZXRhLGRlYWN0aXZhdGVkOnRyaWdnZXJNZXRhLGJlZm9yZU1vdW50OnRyaWdnZXJNZXRhLGRlc3Ryb3llZDpmdW5jdGlvbigpe3RoaXMuJG9wdGlvbnMubWV0YSYmKHRoaXMuX19xTWV0YVVud2F0Y2goKSx0aGlzLl9fcU1ldGFVcGRhdGUoKSl9LG1ldGhvZHM6e19fcU1ldGFVcGRhdGU6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodXBkYXRlSWQpLHVwZGF0ZUlkPXNldFRpbWVvdXQodXBkYXRlQ2xpZW50LmJpbmQodGhpcyksNTApfX19KSl9fSxkZWZhdWx0cyQxPXt9LHBvc2l0aW9uTGlzdD1bXCJ0b3AtbGVmdFwiLFwidG9wLXJpZ2h0XCIsXCJib3R0b20tbGVmdFwiLFwiYm90dG9tLXJpZ2h0XCIsXCJ0b3BcIixcImJvdHRvbVwiLFwibGVmdFwiLFwicmlnaHRcIixcImNlbnRlclwiXTtmdW5jdGlvbiBpbml0KHQpe3ZhciBlPXQuVnVlLGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGkpLHRoaXMuX192bT1uZXcgZSh7bmFtZTpcIlFOb3RpZmljYXRpb25zXCIsZGF0YTp7bm90aWZzOntjZW50ZXI6W10sbGVmdDpbXSxyaWdodDpbXSx0b3A6W10sXCJ0b3AtbGVmdFwiOltdLFwidG9wLXJpZ2h0XCI6W10sYm90dG9tOltdLFwiYm90dG9tLWxlZnRcIjpbXSxcImJvdHRvbS1yaWdodFwiOltdfX0sbWV0aG9kczp7YWRkOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoIXQpcmV0dXJuIGNvbnNvbGUuZXJyb3IoXCJOb3RpZnk6IHBhcmFtZXRlciByZXF1aXJlZFwiKSwhMTt2YXIgaT1PYmplY3QuYXNzaWduKHt9LGRlZmF1bHRzJDEsXCJzdHJpbmdcIj09dHlwZW9mIHQ/e21lc3NhZ2U6dH06Y2xvbmUodCkpO2lmKGkucG9zaXRpb24pe2lmKCFwb3NpdGlvbkxpc3QuaW5jbHVkZXMoaS5wb3NpdGlvbikpcmV0dXJuIGNvbnNvbGUuZXJyb3IoXCJOb3RpZnk6IHdyb25nIHBvc2l0aW9uOiBcIitpLnBvc2l0aW9uKSwhMX1lbHNlIGkucG9zaXRpb249XCJib3R0b21cIjtpZihpLl9fdWlkPXVpZCgpLHZvaWQgMD09PWkudGltZW91dClpLnRpbWVvdXQ9NWUzO2Vsc2V7dmFyIHM9cGFyc2VJbnQoaS50aW1lb3V0LDEwKTtpZihpc05hTihzKXx8czwwKXJldHVybiBjb25zb2xlLmVycm9yKFwiTm90aWZ5OiB3cm9uZyB0aW1lb3V0OiBcIitpLnRpbWVvdXQpLCExO2kudGltZW91dD1zfXZhciBuPWZ1bmN0aW9uKCl7ZS5yZW1vdmUoaSl9O2lmKHQuYWN0aW9ucyYmKGkuYWN0aW9ucz10LmFjdGlvbnMubWFwKGZ1bmN0aW9uKHQpe3ZhciBlPXQuaGFuZGxlcixpPWNsb25lKHQpO3JldHVybiBpLmhhbmRsZXI9XCJmdW5jdGlvblwiPT10eXBlb2YgZT9mdW5jdGlvbigpe2UoKSwhdC5ub0Rpc21pc3MmJm4oKX06ZnVuY3Rpb24oKXtyZXR1cm4gbigpfSxpfSkpLFwiZnVuY3Rpb25cIj09dHlwZW9mIHQub25EaXNtaXNzJiYoaS5vbkRpc21pc3M9dC5vbkRpc21pc3MpLGkuY2xvc2VCdG4pe3ZhciBvPVt7Y2xvc2VCdG46ITAsbGFiZWw6aS5jbG9zZUJ0bixoYW5kbGVyOm59XTtpLmFjdGlvbnM9aS5hY3Rpb25zP2kuYWN0aW9ucy5jb25jYXQobyk6b31pLnRpbWVvdXQ+MCYmKGkuX190aW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtuKCl9LGkudGltZW91dCsxZTMpKTt2YXIgcj1pLnBvc2l0aW9uLmluZGV4T2YoXCJ0b3BcIik+LTE/XCJ1bnNoaWZ0XCI6XCJwdXNoXCI7cmV0dXJuIHRoaXMubm90aWZzW2kucG9zaXRpb25dW3JdKGkpLG59LHJlbW92ZTpmdW5jdGlvbih0KXt0Ll9fdGltZW91dCYmY2xlYXJUaW1lb3V0KHQuX190aW1lb3V0KTt2YXIgZT10aGlzLm5vdGlmc1t0LnBvc2l0aW9uXS5pbmRleE9mKHQpO2lmKC0xIT09ZSl7dmFyIGk9dGhpcy4kcmVmc1tcIm5vdGlmX1wiK3QuX191aWRdO2lmKGkmJmkuJGVsKXt2YXIgcz1pLiRlbDtzLnN0eWxlLmxlZnQ9cy5vZmZzZXRMZWZ0K1wicHhcIixzLnN0eWxlLndpZHRoPWdldENvbXB1dGVkU3R5bGUocykud2lkdGh9dGhpcy5ub3RpZnNbdC5wb3NpdGlvbl0uc3BsaWNlKGUsMSksXCJmdW5jdGlvblwiPT10eXBlb2YgdC5vbkRpc21pc3MmJnQub25EaXNtaXNzKCl9fX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLW5vdGlmaWNhdGlvbnNcIn0scG9zaXRpb25MaXN0Lm1hcChmdW5jdGlvbihpKXt2YXIgcz1bXCJsZWZ0XCIsXCJjZW50ZXJcIixcInJpZ2h0XCJdLmluY2x1ZGVzKGkpP1wiY2VudGVyXCI6aS5pbmRleE9mKFwidG9wXCIpPi0xP1widG9wXCI6XCJib3R0b21cIixuPWkuaW5kZXhPZihcImxlZnRcIik+LTE/XCJzdGFydFwiOmkuaW5kZXhPZihcInJpZ2h0XCIpPi0xP1wiZW5kXCI6XCJjZW50ZXJcIixvPVtcImxlZnRcIixcInJpZ2h0XCJdLmluY2x1ZGVzKGkpP1wiaXRlbXMtXCIrKFwibGVmdFwiPT09aT9cInN0YXJ0XCI6XCJlbmRcIikrXCIganVzdGlmeS1jZW50ZXJcIjpcImNlbnRlclwiPT09aT9cImZsZXgtY2VudGVyXCI6XCJpdGVtcy1cIituO3JldHVybiB0KFwidHJhbnNpdGlvbi1ncm91cFwiLHtrZXk6aSxzdGF0aWNDbGFzczpcInEtbm90aWZpY2F0aW9uLWxpc3QgcS1ub3RpZmljYXRpb24tbGlzdC1cIitzK1wiIGZpeGVkIGNvbHVtbiBcIitvLHRhZzpcImRpdlwiLHByb3BzOntuYW1lOlwicS1ub3RpZmljYXRpb24tXCIraSxtb2RlOlwib3V0LWluXCJ9fSxlLm5vdGlmc1tpXS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHQoUUFsZXJ0LHtyZWY6XCJub3RpZl9cIitlLl9fdWlkLGtleTplLl9fdWlkLHN0YXRpY0NsYXNzOlwicS1ub3RpZmljYXRpb25cIixwcm9wczplfSxbZS5tZXNzYWdlXSl9KSl9KSl9fSksdGhpcy5fX3ZtLiRtb3VudChpKX12YXIgbm90aWZ5PXtjcmVhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIGlzU1NSP2Z1bmN0aW9uKCl7fTp0aGlzLl9fdm0uYWRkKHQpfSxzZXREZWZhdWx0czpmdW5jdGlvbih0KXtPYmplY3QuYXNzaWduKGRlZmF1bHRzJDEsdCl9LGluc3RhbGw6ZnVuY3Rpb24odCl7aWYoaXNTU1IpcmV0dXJuIHQuJHEubm90aWZ5PWZ1bmN0aW9uKCl7fSx2b2lkKHQuJHEubm90aWZ5LnNldERlZmF1bHRzPWZ1bmN0aW9uKCl7fSk7aW5pdC5jYWxsKHRoaXMsdCksdC5jZmcubm90aWZ5JiZ0aGlzLnNldERlZmF1bHRzKHQuY2ZnLm5vdGlmeSksdC4kcS5ub3RpZnk9dGhpcy5jcmVhdGUuYmluZCh0aGlzKSx0LiRxLm5vdGlmeS5zZXREZWZhdWx0cz10aGlzLnNldERlZmF1bHRzfX0sU0laRV9MSVNUPVtcInNtXCIsXCJtZFwiLFwibGdcIixcInhsXCJdLHNjcmVlbj17d2lkdGg6MCxzaXplczp7c206NTc2LG1kOjc2OCxsZzo5OTIseGw6MTIwMH0sbHQ6e3NtOiEwLG1kOiEwLGxnOiEwLHhsOiEwfSxndDp7fSx4czohMCxzZXRTaXplczpmdW5jdGlvbigpe30sc2V0RGVib3VuY2U6ZnVuY3Rpb24oKXt9LGluc3RhbGw6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPXQuJHEscz10LnF1ZXVlcyxuPXQuVnVlO2lmKGlzU1NSKWkuc2NyZWVuPXRoaXM7ZWxzZXt2YXIgbyxyLGE9ZnVuY3Rpb24odCl7dmFyIGk9d2luZG93LmlubmVyV2lkdGgscz1lLnNpemVzO3QmJmk9PT1lLndpZHRofHwoZS53aWR0aD1pLGUuZ3QueHM9aT49cy5zbSxlLmd0LnNtPWk+PXMubWQsZS5ndC5tZD1pPj1zLmxnLGUuZ3QubGc9aT49cy54bCxlLmx0LnNtPWk8cy5zbSxlLmx0Lm1kPWk8cy5tZCxlLmx0LmxnPWk8cy5sZyxlLmx0LnhsPWk8cy54bCxlLnhzPWUubHQuc20sZS5zbT1lLmd0LnhzJiZlLmx0Lm1kLGUubWQ9ZS5ndC5zbSYmZS5sdC5sZyxlLmxnPWUuZ3QubWQmJmUubHQueGwsZS54bD1pPnMueGwpfSxsPXt9O3RoaXMuc2V0U2l6ZXM9ZnVuY3Rpb24odCl7U0laRV9MSVNULmZvckVhY2goZnVuY3Rpb24oZSl7dFtlXSYmKGxbZV09dFtlXSl9KX0sdGhpcy5zZXREZWJvdW5jZT1mdW5jdGlvbih0KXtyPXR9O3ZhciBjPWZ1bmN0aW9uKCl7dmFyIHQ9Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KTt0LmdldFByb3BlcnR5VmFsdWUoXCItLXEtc2l6ZS1zbVwiKSYmU0laRV9MSVNULmZvckVhY2goZnVuY3Rpb24oaSl7ZS5zaXplc1tpXT1wYXJzZUludCh0LmdldFByb3BlcnR5VmFsdWUoXCItLXEtc2l6ZS1cIitpKSwxMCl9KSxlLnNldFNpemVzPWZ1bmN0aW9uKHQpe1NJWkVfTElTVC5mb3JFYWNoKGZ1bmN0aW9uKGkpe3RbaV0mJihlLnNpemVzW2ldPXRbaV0pfSksYSgpfSxlLnNldERlYm91bmNlPWZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKCl7YSghMCl9O28mJndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsbyxsaXN0ZW5PcHRzLnBhc3NpdmUpLG89dD4wP2RlYm91bmNlKGUsdCk6ZSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLG8sbGlzdGVuT3B0cy5wYXNzaXZlKX0sZS5zZXREZWJvdW5jZShyfHwxMDApLE9iamVjdC5rZXlzKGwpLmxlbmd0aD4wPyhlLnNldFNpemVzKGwpLGw9bnVsbCk6YSgpfTtmcm9tU1NSP3MudGFrZW92ZXIucHVzaChjKTpjKCksbi51dGlsLmRlZmluZVJlYWN0aXZlKGksXCJzY3JlZW5cIix0aGlzKX19fTtmdW5jdGlvbiBlbmNvZGUkMSh0KXtyZXR1cm5cIltvYmplY3QgRGF0ZV1cIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT9cIl9fcV9kYXRlfFwiK3QudG9VVENTdHJpbmcoKTpcIltvYmplY3QgUmVnRXhwXVwiPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpP1wiX19xX2V4cHJ8XCIrdC5zb3VyY2U6XCJudW1iZXJcIj09dHlwZW9mIHQ/XCJfX3FfbnVtYnxcIit0OlwiYm9vbGVhblwiPT10eXBlb2YgdD9cIl9fcV9ib29sfFwiKyh0P1wiMVwiOlwiMFwiKTpcInN0cmluZ1wiPT10eXBlb2YgdD9cIl9fcV9zdHJufFwiK3Q6XCJmdW5jdGlvblwiPT10eXBlb2YgdD9cIl9fcV9zdHJufFwiK3QudG9TdHJpbmcoKTp0PT09T2JqZWN0KHQpP1wiX19xX29ianR8XCIrSlNPTi5zdHJpbmdpZnkodCk6dH1mdW5jdGlvbiBkZWNvZGUkMSh0KXt2YXIgZSxpO2lmKHQubGVuZ3RoPDkpcmV0dXJuIHQ7c3dpdGNoKGU9dC5zdWJzdHIoMCw4KSxpPXQuc3Vic3RyaW5nKDkpLGUpe2Nhc2VcIl9fcV9kYXRlXCI6cmV0dXJuIG5ldyBEYXRlKGkpO2Nhc2VcIl9fcV9leHByXCI6cmV0dXJuIG5ldyBSZWdFeHAoaSk7Y2FzZVwiX19xX251bWJcIjpyZXR1cm4gTnVtYmVyKGkpO2Nhc2VcIl9fcV9ib29sXCI6cmV0dXJuIEJvb2xlYW4oXCIxXCI9PT1pKTtjYXNlXCJfX3Ffc3RyblwiOnJldHVyblwiXCIraTtjYXNlXCJfX3Ffb2JqdFwiOnJldHVybiBKU09OLnBhcnNlKGkpO2RlZmF1bHQ6cmV0dXJuIHR9fWZ1bmN0aW9uIGdldEVtcHR5U3RvcmFnZSgpe3ZhciB0PWZ1bmN0aW9uKCl7fTtyZXR1cm57aGFzOnQsZ2V0OntsZW5ndGg6dCxpdGVtOnQsaW5kZXg6dCxhbGw6dH0sc2V0OnQscmVtb3ZlOnQsY2xlYXI6dCxpc0VtcHR5OnR9fWZ1bmN0aW9uIGdldFN0b3JhZ2UodCl7dmFyIGU9d2luZG93W3QrXCJTdG9yYWdlXCJdLGk9ZnVuY3Rpb24odCl7dmFyIGk9ZS5nZXRJdGVtKHQpO3JldHVybiBpP2RlY29kZSQxKGkpOm51bGx9O3JldHVybntoYXM6ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPT1lLmdldEl0ZW0odCl9LGdldDp7bGVuZ3RoOmZ1bmN0aW9uKCl7cmV0dXJuIGUubGVuZ3RofSxpdGVtOmksaW5kZXg6ZnVuY3Rpb24odCl7aWYodDxlLmxlbmd0aClyZXR1cm4gaShlLmtleSh0KSl9LGFsbDpmdW5jdGlvbigpe2Zvcih2YXIgdCxzPXt9LG49ZS5sZW5ndGgsbz0wO288bjtvKyspc1t0PWUua2V5KG8pXT1pKHQpO3JldHVybiBzfX0sc2V0OmZ1bmN0aW9uKHQsaSl7ZS5zZXRJdGVtKHQsZW5jb2RlJDEoaSkpfSxyZW1vdmU6ZnVuY3Rpb24odCl7ZS5yZW1vdmVJdGVtKHQpfSxjbGVhcjpmdW5jdGlvbigpe2UuY2xlYXIoKX0saXNFbXB0eTpmdW5jdGlvbigpe3JldHVybiAwPT09ZS5sZW5ndGh9fX12YXIgbG9jYWxTdG9yYWdlPXtpbnN0YWxsOmZ1bmN0aW9uKHQpe3ZhciBlPXQuJHEsaT1pc1NTUnx8IWhhc1dlYlN0b3JhZ2U/Z2V0RW1wdHlTdG9yYWdlKCk6Z2V0U3RvcmFnZShcImxvY2FsXCIpO2UubG9jYWxTdG9yYWdlPWksT2JqZWN0LmFzc2lnbih0aGlzLGkpfX0sc2Vzc2lvblN0b3JhZ2U9e2luc3RhbGw6ZnVuY3Rpb24odCl7dmFyIGU9dC4kcSxpPWlzU1NSfHwhaGFzV2ViU3RvcmFnZT9nZXRFbXB0eVN0b3JhZ2UoKTpnZXRTdG9yYWdlKFwic2Vzc2lvblwiKTtlLnNlc3Npb25TdG9yYWdlPWksT2JqZWN0LmFzc2lnbih0aGlzLGkpfX0scGx1Z2lucz1PYmplY3QuZnJlZXplKHtBY3Rpb25TaGVldDphY3Rpb25TaGVldCxBZGRyZXNzYmFyQ29sb3I6YWRkcmVzc2JhckNvbG9yLEFwcEZ1bGxzY3JlZW46YXBwRnVsbHNjcmVlbixBcHBWaXNpYmlsaXR5OmFwcFZpc2liaWxpdHksQ29va2llczpjb29raWVzLERpYWxvZzpkaWFsb2csTG9hZGluZ0Jhcjpsb2FkaW5nQmFyLExvYWRpbmc6bG9hZGluZyxNZXRhOm1ldGEsTm90aWZ5Om5vdGlmeSxQbGF0Zm9ybTpQbGF0Zm9ybSxTY3JlZW46c2NyZWVuLExvY2FsU3RvcmFnZTpsb2NhbFN0b3JhZ2UsU2Vzc2lvblN0b3JhZ2U6c2Vzc2lvblN0b3JhZ2V9KTtmdW5jdGlvbiBvcGVuVXJsKHQsZSl7aWYoUGxhdGZvcm0uaXMuY29yZG92YSYmbmF2aWdhdG9yJiZuYXZpZ2F0b3IuYXBwKXJldHVybiBuYXZpZ2F0b3IuYXBwLmxvYWRVcmwodCx7b3BlbkV4dGVybmFsOiEwfSk7dmFyIGk9d2luZG93Lm9wZW4odCxcIl9ibGFua1wiKTtpZihpKXJldHVybiBpLmZvY3VzKCksaTtlJiZlKCl9ZnVuY3Rpb24gbm9vcCgpe312YXIgaW5kZXhfZXNtPU9iamVjdC5hc3NpZ24oe30sVnVlUGx1Z2luLHtpbnN0YWxsOmZ1bmN0aW9uKHQsZSl7VnVlUGx1Z2luLmluc3RhbGwodCxPYmplY3QuYXNzaWduKHt9LHtjb21wb25lbnRzOmNvbXBvbmVudHMkMSxkaXJlY3RpdmVzOmRpcmVjdGl2ZXMscGx1Z2luczpwbHVnaW5zfSxlKSl9fSk7ZXhwb3J0IGRlZmF1bHQgaW5kZXhfZXNtO2V4cG9ydHtRQWN0aW9uU2hlZXQsUUFqYXhCYXIsUUFsZXJ0LFFBdXRvY29tcGxldGUsUUJyZWFkY3J1bWJzLFFCcmVhZGNydW1ic0VsLFFCdG4sUUJ0bkdyb3VwLFFCdG5Ecm9wZG93bixRQnRuVG9nZ2xlLFFDYXJkLFFDYXJkVGl0bGUsUUNhcmRNYWluLFFDYXJkQWN0aW9ucyxRQ2FyZE1lZGlhLFFDYXJkU2VwYXJhdG9yLFFDYXJvdXNlbCxRQ2Fyb3VzZWxTbGlkZSxRQ2Fyb3VzZWxDb250cm9sLFFDaGF0TWVzc2FnZSxRQ2hlY2tib3gsUUNoaXAsUUNoaXBzSW5wdXQsUUNvbGxhcHNpYmxlLFFDb2xvcixRQ29sb3JQaWNrZXIsUUNvbnRleHRNZW51LFFEYXRldGltZSxRRGF0ZXRpbWVQaWNrZXIsUURpYWxvZyxRRWRpdG9yLFFGYWIsUUZhYkFjdGlvbixRRmllbGQsUUljb24sUUluZmluaXRlU2Nyb2xsLFFJbm5lckxvYWRpbmcsUUlucHV0LFFJbnB1dEZyYW1lLFFKdW1ib3Ryb24sUUtub2IsUUxheW91dCxRTGF5b3V0RHJhd2VyLFFMYXlvdXRGb290ZXIsUUxheW91dEhlYWRlcixRUGFnZSxRUGFnZUNvbnRhaW5lcixRUGFnZVN0aWNreSxRSXRlbSxRSXRlbVNlcGFyYXRvcixRSXRlbU1haW4sUUl0ZW1TaWRlLFFJdGVtVGlsZSxRSXRlbVdyYXBwZXIsUUxpc3QsUUxpc3RIZWFkZXIsUU1vZGFsLFFNb2RhbExheW91dCxRTm9Tc3IsUVJlc2l6ZU9ic2VydmFibGUsUVNjcm9sbE9ic2VydmFibGUsUVdpbmRvd1Jlc2l6ZU9ic2VydmFibGUsUU9wdGlvbkdyb3VwLFFQYWdpbmF0aW9uLFFQYXJhbGxheCxRUG9wb3ZlcixRUG9wdXBFZGl0LFFQcm9ncmVzcyxRUHVsbFRvUmVmcmVzaCxRUmFkaW8sUVJhbmdlLFFSYXRpbmcsUVNjcm9sbEFyZWEsUVNlYXJjaCxRU2VsZWN0LFFTbGlkZVRyYW5zaXRpb24sUVNsaWRlcixRU3Bpbm5lcixRU3Bpbm5lckF1ZGlvLFFTcGlubmVyQmFsbCxRU3Bpbm5lckJhcnMsUVNwaW5uZXJDaXJjbGVzLFFTcGlubmVyQ29tbWVudCxRU3Bpbm5lckN1YmUsUVNwaW5uZXJEb3RzLFFTcGlubmVyRmFjZWJvb2ssUVNwaW5uZXJHZWFycyxRU3Bpbm5lckdyaWQsUVNwaW5uZXJIZWFydHMsUVNwaW5uZXJIb3VyZ2xhc3MsUVNwaW5uZXJJbmZpbml0eSxRU3Bpbm5lcl9pb3MgYXMgUVNwaW5uZXJJb3MsRGVmYXVsdFNwaW5uZXIgYXMgUVNwaW5uZXJNYXQsUVNwaW5uZXJPdmFsLFFTcGlubmVyUGllLFFTcGlubmVyUHVmZixRU3Bpbm5lclJhZGlvLFFTcGlubmVyUmluZ3MsUVNwaW5uZXJUYWlsLFFTdGVwLFFTdGVwcGVyLFFTdGVwcGVyTmF2aWdhdGlvbixRUm91dGVUYWIsUVRhYixRVGFiUGFuZSxRVGFicyxRVGFibGUsUVRoLFFUcixRVGQsUVRhYmxlQ29sdW1ucyxRVGltZWxpbmUsUVRpbWVsaW5lRW50cnksUVRvZ2dsZSxRVG9vbGJhcixRVG9vbGJhclRpdGxlLFFUb29sdGlwLFFUcmVlLFFVcGxvYWRlcixRVmlkZW8sYmFja1RvVG9wIGFzIEJhY2tUb1RvcCxjbG9zZU92ZXJsYXkgYXMgQ2xvc2VPdmVybGF5LGdvQmFjayBhcyBHb0JhY2ssUmlwcGxlLHNjcm9sbEZpcmUgYXMgU2Nyb2xsRmlyZSxzY3JvbGwkMSBhcyBTY3JvbGwsdG91Y2hIb2xkIGFzIFRvdWNoSG9sZCxUb3VjaFBhbixUb3VjaFN3aXBlLGFjdGlvblNoZWV0IGFzIEFjdGlvblNoZWV0LGFkZHJlc3NiYXJDb2xvciBhcyBBZGRyZXNzYmFyQ29sb3IsYXBwRnVsbHNjcmVlbiBhcyBBcHBGdWxsc2NyZWVuLGFwcFZpc2liaWxpdHkgYXMgQXBwVmlzaWJpbGl0eSxjb29raWVzIGFzIENvb2tpZXMsZGlhbG9nIGFzIERpYWxvZyxsb2FkaW5nQmFyIGFzIExvYWRpbmdCYXIsbG9hZGluZyBhcyBMb2FkaW5nLG1ldGEgYXMgTWV0YSxub3RpZnkgYXMgTm90aWZ5LFBsYXRmb3JtLHNjcmVlbiBhcyBTY3JlZW4sbG9jYWxTdG9yYWdlIGFzIExvY2FsU3RvcmFnZSxzZXNzaW9uU3RvcmFnZSBhcyBTZXNzaW9uU3RvcmFnZSxhbmltYXRlLGNsb25lLGNvbG9ycyxkYXRlLGRlYm91bmNlLGRvbSxlYXNpbmcsZXZlbnQsZXh0ZW5kLGZpbHRlcixmb3JtYXQsZnJhbWVEZWJvdW5jZSxub29wLG9wZW5VcmwgYXMgb3BlblVSTCxzY3JvbGwsdGhyb3R0bGUsdWlkfTsiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL2FwcC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NGZiYzczNWImc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vYXBwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vYXBwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuaW1wb3J0IHN0eWxlMCBmcm9tIFwiLi9hcHAudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NGZiYzczNWImc2NvcGVkPXRydWUmbGFuZz1jc3MmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjRmYmM3MzViXCIsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiQzpcXFxcVXNlcnNcXFxcU3R1YXJ0XFxcXERvY3VtZW50c1xcXFxNYXJjdXNcXFxcUHJvZ3JhbW1pbmdcXFxcUHVsbCBSZXFcXFxcRW1vamlNYXJ0VnVlXFxcXGVtb2ppLW1hcnQtdnVlXFxcXG5vZGVfbW9kdWxlc1xcXFx2dWUtaG90LXJlbG9hZC1hcGlcXFxcZGlzdFxcXFxpbmRleC5qc1wiKVxuICBhcGkuaW5zdGFsbChyZXF1aXJlKCd2dWUnKSlcbiAgaWYgKGFwaS5jb21wYXRpYmxlKSB7XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICAgIGlmICghYXBpLmlzUmVjb3JkZWQoJzRmYmM3MzViJykpIHtcbiAgICAgIGFwaS5jcmVhdGVSZWNvcmQoJzRmYmM3MzViJywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZWxvYWQoJzRmYmM3MzViJywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfVxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9hcHAudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTRmYmM3MzViJnNjb3BlZD10cnVlJlwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBhcGkucmVyZW5kZXIoJzRmYmM3MzViJywge1xuICAgICAgICByZW5kZXI6IHJlbmRlcixcbiAgICAgICAgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnNcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxufVxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJkb2NzL2FwcC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL0Vtb2ppLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01MzRhZDk0NiZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9FbW9qaS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL0Vtb2ppLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiQzpcXFxcVXNlcnNcXFxcU3R1YXJ0XFxcXERvY3VtZW50c1xcXFxNYXJjdXNcXFxcUHJvZ3JhbW1pbmdcXFxcUHVsbCBSZXFcXFxcRW1vamlNYXJ0VnVlXFxcXGVtb2ppLW1hcnQtdnVlXFxcXG5vZGVfbW9kdWxlc1xcXFx2dWUtaG90LXJlbG9hZC1hcGlcXFxcZGlzdFxcXFxpbmRleC5qc1wiKVxuICBhcGkuaW5zdGFsbChyZXF1aXJlKCd2dWUnKSlcbiAgaWYgKGFwaS5jb21wYXRpYmxlKSB7XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICAgIGlmICghYXBpLmlzUmVjb3JkZWQoJzUzNGFkOTQ2JykpIHtcbiAgICAgIGFwaS5jcmVhdGVSZWNvcmQoJzUzNGFkOTQ2JywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZWxvYWQoJzUzNGFkOTQ2JywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfVxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9FbW9qaS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NTM0YWQ5NDYmXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFwaS5yZXJlbmRlcignNTM0YWQ5NDYnLCB7XG4gICAgICAgIHJlbmRlcjogcmVuZGVyLFxuICAgICAgICBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZuc1xuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy9jb21wb25lbnRzL0Vtb2ppLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vUGlja2VyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kMTZlOTA4NCZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9QaWNrZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9QaWNrZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbFxuICBcbilcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgdmFyIGFwaSA9IHJlcXVpcmUoXCJDOlxcXFxVc2Vyc1xcXFxTdHVhcnRcXFxcRG9jdW1lbnRzXFxcXE1hcmN1c1xcXFxQcm9ncmFtbWluZ1xcXFxQdWxsIFJlcVxcXFxFbW9qaU1hcnRWdWVcXFxcZW1vamktbWFydC12dWVcXFxcbm9kZV9tb2R1bGVzXFxcXHZ1ZS1ob3QtcmVsb2FkLWFwaVxcXFxkaXN0XFxcXGluZGV4LmpzXCIpXG4gIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKVxuICBpZiAoYXBpLmNvbXBhdGlibGUpIHtcbiAgICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnZDE2ZTkwODQnKSkge1xuICAgICAgYXBpLmNyZWF0ZVJlY29yZCgnZDE2ZTkwODQnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9IGVsc2Uge1xuICAgICAgYXBpLnJlbG9hZCgnZDE2ZTkwODQnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL1BpY2tlci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZDE2ZTkwODQmXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFwaS5yZXJlbmRlcignZDE2ZTkwODQnLCB7XG4gICAgICAgIHJlbmRlcjogcmVuZGVyLFxuICAgICAgICBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZuc1xuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy9jb21wb25lbnRzL1BpY2tlci52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL2FuY2hvcnMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTUxMTg4MTA0JlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2FuY2hvcnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9hbmNob3JzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiQzpcXFxcVXNlcnNcXFxcU3R1YXJ0XFxcXERvY3VtZW50c1xcXFxNYXJjdXNcXFxcUHJvZ3JhbW1pbmdcXFxcUHVsbCBSZXFcXFxcRW1vamlNYXJ0VnVlXFxcXGVtb2ppLW1hcnQtdnVlXFxcXG5vZGVfbW9kdWxlc1xcXFx2dWUtaG90LXJlbG9hZC1hcGlcXFxcZGlzdFxcXFxpbmRleC5qc1wiKVxuICBhcGkuaW5zdGFsbChyZXF1aXJlKCd2dWUnKSlcbiAgaWYgKGFwaS5jb21wYXRpYmxlKSB7XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICAgIGlmICghYXBpLmlzUmVjb3JkZWQoJzUxMTg4MTA0JykpIHtcbiAgICAgIGFwaS5jcmVhdGVSZWNvcmQoJzUxMTg4MTA0JywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZWxvYWQoJzUxMTg4MTA0JywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfVxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9hbmNob3JzLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01MTE4ODEwNCZcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgYXBpLnJlcmVuZGVyKCc1MTE4ODEwNCcsIHtcbiAgICAgICAgcmVuZGVyOiByZW5kZXIsXG4gICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zXG4gICAgICB9KVxuICAgIH0pXG4gIH1cbn1cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjL2NvbXBvbmVudHMvYW5jaG9ycy52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL2NhdGVnb3J5LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0zNzZjZGEwZSZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9jYXRlZ29yeS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2NhdGVnb3J5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiQzpcXFxcVXNlcnNcXFxcU3R1YXJ0XFxcXERvY3VtZW50c1xcXFxNYXJjdXNcXFxcUHJvZ3JhbW1pbmdcXFxcUHVsbCBSZXFcXFxcRW1vamlNYXJ0VnVlXFxcXGVtb2ppLW1hcnQtdnVlXFxcXG5vZGVfbW9kdWxlc1xcXFx2dWUtaG90LXJlbG9hZC1hcGlcXFxcZGlzdFxcXFxpbmRleC5qc1wiKVxuICBhcGkuaW5zdGFsbChyZXF1aXJlKCd2dWUnKSlcbiAgaWYgKGFwaS5jb21wYXRpYmxlKSB7XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICAgIGlmICghYXBpLmlzUmVjb3JkZWQoJzM3NmNkYTBlJykpIHtcbiAgICAgIGFwaS5jcmVhdGVSZWNvcmQoJzM3NmNkYTBlJywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZWxvYWQoJzM3NmNkYTBlJywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfVxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9jYXRlZ29yeS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9Mzc2Y2RhMGUmXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFwaS5yZXJlbmRlcignMzc2Y2RhMGUnLCB7XG4gICAgICAgIHJlbmRlcjogcmVuZGVyLFxuICAgICAgICBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZuc1xuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy9jb21wb25lbnRzL2NhdGVnb3J5LnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vcHJldmlldy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MzUwNTZjMzAmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vcHJldmlldy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3ByZXZpZXcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbFxuICBcbilcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgdmFyIGFwaSA9IHJlcXVpcmUoXCJDOlxcXFxVc2Vyc1xcXFxTdHVhcnRcXFxcRG9jdW1lbnRzXFxcXE1hcmN1c1xcXFxQcm9ncmFtbWluZ1xcXFxQdWxsIFJlcVxcXFxFbW9qaU1hcnRWdWVcXFxcZW1vamktbWFydC12dWVcXFxcbm9kZV9tb2R1bGVzXFxcXHZ1ZS1ob3QtcmVsb2FkLWFwaVxcXFxkaXN0XFxcXGluZGV4LmpzXCIpXG4gIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKVxuICBpZiAoYXBpLmNvbXBhdGlibGUpIHtcbiAgICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnMzUwNTZjMzAnKSkge1xuICAgICAgYXBpLmNyZWF0ZVJlY29yZCgnMzUwNTZjMzAnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9IGVsc2Uge1xuICAgICAgYXBpLnJlbG9hZCgnMzUwNTZjMzAnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL3ByZXZpZXcudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTM1MDU2YzMwJlwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBhcGkucmVyZW5kZXIoJzM1MDU2YzMwJywge1xuICAgICAgICByZW5kZXI6IHJlbmRlcixcbiAgICAgICAgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnNcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxufVxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvY29tcG9uZW50cy9wcmV2aWV3LnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vc2VhcmNoLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00YWQ0MWJiOCZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9zZWFyY2gudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9zZWFyY2gudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbFxuICBcbilcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgdmFyIGFwaSA9IHJlcXVpcmUoXCJDOlxcXFxVc2Vyc1xcXFxTdHVhcnRcXFxcRG9jdW1lbnRzXFxcXE1hcmN1c1xcXFxQcm9ncmFtbWluZ1xcXFxQdWxsIFJlcVxcXFxFbW9qaU1hcnRWdWVcXFxcZW1vamktbWFydC12dWVcXFxcbm9kZV9tb2R1bGVzXFxcXHZ1ZS1ob3QtcmVsb2FkLWFwaVxcXFxkaXN0XFxcXGluZGV4LmpzXCIpXG4gIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKVxuICBpZiAoYXBpLmNvbXBhdGlibGUpIHtcbiAgICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnNGFkNDFiYjgnKSkge1xuICAgICAgYXBpLmNyZWF0ZVJlY29yZCgnNGFkNDFiYjgnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9IGVsc2Uge1xuICAgICAgYXBpLnJlbG9hZCgnNGFkNDFiYjgnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL3NlYXJjaC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NGFkNDFiYjgmXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFwaS5yZXJlbmRlcignNGFkNDFiYjgnLCB7XG4gICAgICAgIHJlbmRlcjogcmVuZGVyLFxuICAgICAgICBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZuc1xuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy9jb21wb25lbnRzL3NlYXJjaC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL3NraW5zLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0xYzYxNDg5NCZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9za2lucy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3NraW5zLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiQzpcXFxcVXNlcnNcXFxcU3R1YXJ0XFxcXERvY3VtZW50c1xcXFxNYXJjdXNcXFxcUHJvZ3JhbW1pbmdcXFxcUHVsbCBSZXFcXFxcRW1vamlNYXJ0VnVlXFxcXGVtb2ppLW1hcnQtdnVlXFxcXG5vZGVfbW9kdWxlc1xcXFx2dWUtaG90LXJlbG9hZC1hcGlcXFxcZGlzdFxcXFxpbmRleC5qc1wiKVxuICBhcGkuaW5zdGFsbChyZXF1aXJlKCd2dWUnKSlcbiAgaWYgKGFwaS5jb21wYXRpYmxlKSB7XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICAgIGlmICghYXBpLmlzUmVjb3JkZWQoJzFjNjE0ODk0JykpIHtcbiAgICAgIGFwaS5jcmVhdGVSZWNvcmQoJzFjNjE0ODk0JywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZWxvYWQoJzFjNjE0ODk0JywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfVxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9za2lucy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MWM2MTQ4OTQmXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFwaS5yZXJlbmRlcignMWM2MTQ4OTQnLCB7XG4gICAgICAgIHJlbmRlcjogcmVuZGVyLFxuICAgICAgICBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZuc1xuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy9jb21wb25lbnRzL3NraW5zLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9hcHAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vYXBwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9FbW9qaS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9FbW9qaS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vUGlja2VyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1BpY2tlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vYW5jaG9ycy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9hbmNob3JzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9jYXRlZ29yeS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9jYXRlZ29yeS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vcHJldmlldy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9wcmV2aWV3LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9zZWFyY2gudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vc2VhcmNoLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9za2lucy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9za2lucy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfYyhcbiAgICBcImRpdlwiLFxuICAgIHsgc3RhdGljQ2xhc3M6IFwiYXBwXCIgfSxcbiAgICBbXG4gICAgICBfdm0uX20oMCksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXG4gICAgICAgIFwiZGl2XCIsXG4gICAgICAgIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSxcbiAgICAgICAgW1xuICAgICAgICAgIF9jKFwiZW1vamlcIiwge1xuICAgICAgICAgICAgYXR0cnM6IHsgZGF0YTogX3ZtLmluZGV4LCBlbW9qaTogXCI6c2FudGE6OnNraW4tdG9uZS0zOlwiLCBzaXplOiAzMiB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgX2MoXCJlbW9qaVwiLCB7XG4gICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICBkYXRhOiBfdm0uaW5kZXgsXG4gICAgICAgICAgICAgIGVtb2ppOiBcInNhbnRhXCIsXG4gICAgICAgICAgICAgIHNldDogXCJ0d2l0dGVyXCIsXG4gICAgICAgICAgICAgIHNpemU6IDMyLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgIF9jKFwiZW1vamlcIiwge1xuICAgICAgICAgICAgYXR0cnM6IHsgZGF0YTogX3ZtLmluZGV4LCBlbW9qaTogX3ZtLnNhbnRhRW1vamlPYmplY3QsIHNpemU6IDMyIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICAgIDFcbiAgICAgICksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9LCBbXG4gICAgICAgIF9jKFwiYnV0dG9uXCIsIHsgb246IHsgY2xpY2s6IF92bS50b2dnbGVWaXNpYmxlIH0gfSwgW1xuICAgICAgICAgIF92bS5fdihcIlNob3cgLyBoaWRlIHRoZSBwaWNrZXJcIiksXG4gICAgICAgIF0pLFxuICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICBfYyhcImJ1dHRvblwiLCB7XG4gICAgICAgICAgZG9tUHJvcHM6IHsgaW5uZXJIVE1MOiBfdm0uX3MoX3ZtLnNtaWxlKSB9LFxuICAgICAgICAgIG9uOiB7IGNsaWNrOiBfdm0udG9nZ2xlVmlzaWJsZSB9LFxuICAgICAgICB9KSxcbiAgICAgIF0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFxuICAgICAgICBcImRpdlwiLFxuICAgICAgICB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0sXG4gICAgICAgIFtcbiAgICAgICAgICBfdm0uX2woXG4gICAgICAgICAgICBbXCJuYXRpdmVcIiwgXCJhcHBsZVwiLCBcImdvb2dsZVwiLCBcInR3aXR0ZXJcIiwgXCJmYWNlYm9va1wiXSxcbiAgICAgICAgICAgIGZ1bmN0aW9uIChzZXQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICAgIFwiYnV0dG9uXCIsXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGtleTogc2V0LFxuICAgICAgICAgICAgICAgICAgICBhdHRyczogeyBkaXNhYmxlZDogX3ZtLmFjdGl2ZVNldCA9PSBzZXQgfSxcbiAgICAgICAgICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgICAgICAgICBjbGljazogZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLmFjdGl2ZVNldCA9IHNldFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgW192bS5fdihcIlxcbiAgICAgICAgXCIgKyBfdm0uX3Moc2V0KSArIFwiXFxuICAgICAgXCIpXVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApLFxuICAgICAgICBdLFxuICAgICAgICAyXG4gICAgICApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF92bS5pc1Zpc2libGVcbiAgICAgICAgPyBfYyhcbiAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0sXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgIF9jKFwicGlja2VyXCIsIHtcbiAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgZGF0YTogX3ZtLmluZGV4LFxuICAgICAgICAgICAgICAgICAgc2V0OiBfdm0uYWN0aXZlU2V0LFxuICAgICAgICAgICAgICAgICAgbmF0aXZlOiBfdm0ubmF0aXZlLFxuICAgICAgICAgICAgICAgICAgZW1vamk6IF92bS5lbW9qaSxcbiAgICAgICAgICAgICAgICAgIGVtb2ppVG9vbHRpcDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiBfdm0udGl0bGUsXG4gICAgICAgICAgICAgICAgICBlbW9qaVNpemU6IDMwLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb246IHsgc2VsZWN0OiBfdm0uc2hvd0Vtb2ppIH0sXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIDFcbiAgICAgICAgICApXG4gICAgICAgIDogX3ZtLl9lKCksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXG4gICAgICAgIFwiZGl2XCIsXG4gICAgICAgIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSxcbiAgICAgICAgX3ZtLl9sKF92bS5zZWxlY3RlZEVtb2ppcywgZnVuY3Rpb24gKGVtbykge1xuICAgICAgICAgIHJldHVybiBfYyhcImVtb2ppXCIsIHtcbiAgICAgICAgICAgIGtleTogZW1vLFxuICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgZGF0YTogX3ZtLmluZGV4LFxuICAgICAgICAgICAgICBlbW9qaTogZW1vLFxuICAgICAgICAgICAgICBzZXQ6IF92bS5hY3RpdmVTZXQsXG4gICAgICAgICAgICAgIG5hdGl2ZTogX3ZtLm5hdGl2ZSxcbiAgICAgICAgICAgICAgc2l6ZTogMzIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pXG4gICAgICAgIH0pLFxuICAgICAgICAxXG4gICAgICApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSwgW1xuICAgICAgICBfdm0uX3YoXCJcXG4gICAgXCIgKyBfdm0uX3MoX3ZtLmVtb2ppc091dHB1dCkgKyBcIlxcbiAgXCIpLFxuICAgICAgXSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX3ZtLl9tKDEpLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJoMlwiLCBbX3ZtLl92KFwiUURpYWxvZyBFeGFtcGxlXCIpXSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXG4gICAgICAgIFwiZGl2XCIsXG4gICAgICAgIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSxcbiAgICAgICAgW1xuICAgICAgICAgIF9jKFwicS1idG5cIiwge1xuICAgICAgICAgICAgYXR0cnM6IHsgbGFiZWw6IFwiT3BlbiBRRGlhbG9nXCIgfSxcbiAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgX3ZtLmVtb2ppUGlja2VyRGlhbG9nID0gdHJ1ZVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgICAgMVxuICAgICAgKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcInEtZGlhbG9nXCIsIHtcbiAgICAgICAgc2NvcGVkU2xvdHM6IF92bS5fdShbXG4gICAgICAgICAge1xuICAgICAgICAgICAga2V5OiBcImJvZHlcIixcbiAgICAgICAgICAgIGZuOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgX2MoXCJwaWNrZXJcIiwge1xuICAgICAgICAgICAgICAgICAgYXR0cnM6IHsgZGF0YTogX3ZtLmluZGV4LCBlbW9qaVNpemU6IDI0LCBuYXRpdmU6IHRydWUgfSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHByb3h5OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0pLFxuICAgICAgICBtb2RlbDoge1xuICAgICAgICAgIHZhbHVlOiBfdm0uZW1vamlQaWNrZXJEaWFsb2csXG4gICAgICAgICAgY2FsbGJhY2s6IGZ1bmN0aW9uICgkJHYpIHtcbiAgICAgICAgICAgIF92bS5lbW9qaVBpY2tlckRpYWxvZyA9ICQkdlxuICAgICAgICAgIH0sXG4gICAgICAgICAgZXhwcmVzc2lvbjogXCJlbW9qaVBpY2tlckRpYWxvZ1wiLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9KSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcImgyXCIsIFtfdm0uX3YoXCJDdXN0b20gRGlhbG9nIEV4YW1wbGVcIildKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0sIFtcbiAgICAgICAgX2MoXG4gICAgICAgICAgXCJidXR0b25cIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICBjbGljazogZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICAgIF92bS5lbW9qaVBpY2tlckN1c3RvbURpYWxvZyA9IHRydWVcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBbX3ZtLl92KFwiXFxuICAgICAgT3BlbiBDdXN0b20gRGlhbG9nXFxuICAgIFwiKV1cbiAgICAgICAgKSxcbiAgICAgIF0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF92bS5lbW9qaVBpY2tlckN1c3RvbURpYWxvZ1xuICAgICAgICA/IF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwicG9wdXBcIiB9LCBbXG4gICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiBcInBvcHVwLWJveFwiLFxuICAgICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgICBjbGljazogZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICAgICAgICBfdm0uZW1vamlQaWNrZXJDdXN0b21EaWFsb2cgPSBmYWxzZVxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBzdGF0aWNDbGFzczogXCJwb3B1cC1jb250ZW50XCIsXG4gICAgICAgICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJwb3B1cC1jbG9zZVwiIH0sIFtcbiAgICAgICAgICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uZW1vamlQaWNrZXJDdXN0b21EaWFsb2cgPSBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgW192bS5fdihcIlhcIildXG4gICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgICAgIF9jKFwiaDJcIiwgW192bS5fdihcIkVtb2ppIFNlbGVjdG9yXCIpXSksXG4gICAgICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgICAgIF9jKFwicGlja2VyXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICBhdHRyczogeyBkYXRhOiBfdm0uaW5kZXgsIGVtb2ppU2l6ZTogMjQsIG5hdGl2ZTogdHJ1ZSB9LFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICBdKVxuICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJoMlwiLCBbX3ZtLl92KFwiQ3VzdG9tIFNlYXJjaCBBbmQgUHJldmlldyBUZW1wbGF0ZXMgRXhhbXBsZVwiKV0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFxuICAgICAgICBcImRpdlwiLFxuICAgICAgICB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0sXG4gICAgICAgIFtcbiAgICAgICAgICBfYyhcIlBpY2tlclwiLCB7XG4gICAgICAgICAgICBhdHRyczogeyBkYXRhOiBfdm0uaW5kZXgsIG5hdGl2ZTogdHJ1ZSB9LFxuICAgICAgICAgICAgc2NvcGVkU2xvdHM6IF92bS5fdShbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwic2VhcmNoVGVtcGxhdGVcIixcbiAgICAgICAgICAgICAgICBmbjogZnVuY3Rpb24gKHNsb3RQcm9wcykge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgX2MoXCJpbnB1dFwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHNsb3RQcm9wcy5pMThuLnNlYXJjaCxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbnB1dDogZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2xvdFByb3BzLm9uU2VhcmNoKCRldmVudC50YXJnZXQudmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwicHJldmlld1RlbXBsYXRlXCIsXG4gICAgICAgICAgICAgICAgZm46IGZ1bmN0aW9uIChzbG90UHJvcHMpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1wcmV2aWV3XCIgfSwgW1xuICAgICAgICAgICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1wcmV2aWV3LWVtb2ppXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgX2MoXCJFbW9qaVwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHNsb3RQcm9wcy5kYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW1vamk6IHNsb3RQcm9wcy5lbW9qaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHNsb3RQcm9wcy5lbW9qaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwicG9pbnRfdXBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGl2ZTogc2xvdFByb3BzLmVtb2ppUHJvcHMubmF0aXZlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpbjogc2xvdFByb3BzLmVtb2ppUHJvcHMuc2tpbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldDogc2xvdFByb3BzLmVtb2ppUHJvcHMuc2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXByZXZpZXctZGF0YVwiIH0sIFtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1wcmV2aWV3LW5hbWVcIiB9LCBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5fdihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxcbiAgICAgICAgICAgICAgXCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLl9zKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG90UHJvcHMuZW1vamlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiflwiICsgc2xvdFByb3BzLmVtb2ppLm5hbWUgKyBcIn5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJDaG9vc2UuLi5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXByZXZpZXctc2hvcnRuYW1lc1wiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxcbiAgICAgICAgICAgICAgXCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uX3MoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdFByb3BzLmVtb2ppID8gc2xvdFByb3BzLmVtb2ppLmNvbG9ucyA6IFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICAgIDFcbiAgICAgICksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9KSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcImgyXCIsIFtfdm0uX3YoXCJGaWx0ZXJlZCBwaWNrZXIgZXhhbXBsZVwiKV0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFxuICAgICAgICBcImRpdlwiLFxuICAgICAgICB7XG4gICAgICAgICAgZGlyZWN0aXZlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiBcInNob3dcIixcbiAgICAgICAgICAgICAgcmF3TmFtZTogXCJ2LXNob3dcIixcbiAgICAgICAgICAgICAgdmFsdWU6IF92bS5mbGFnc1Zpc2libGUsXG4gICAgICAgICAgICAgIGV4cHJlc3Npb246IFwiZmxhZ3NWaXNpYmxlXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgc3RhdGljQ2xhc3M6IFwicm93XCIsXG4gICAgICAgIH0sXG4gICAgICAgIFtcbiAgICAgICAgICBfYyhcIlBpY2tlclwiLCB7XG4gICAgICAgICAgICByZWY6IFwiZmxhZ3NcIixcbiAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgIG5hdGl2ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgZW1vamk6IFwiZmxhZy10ZlwiLFxuICAgICAgICAgICAgICBlbW9qaVNpemU6IDE4LFxuICAgICAgICAgICAgICBkYXRhOiBfdm0uaW5kZXhGaWx0ZXJlZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICAgIDFcbiAgICAgICksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9LCBbXG4gICAgICAgIF9jKFwiYnV0dG9uXCIsIHsgb246IHsgY2xpY2s6IF92bS50b2dnbGVGbGFnc1Zpc2libGUgfSB9LCBbXG4gICAgICAgICAgX3ZtLl92KFwiXFxuICAgICAgU2hvdyAvIGhpZGUgdGhlIGZsYWdzIHBpY2tlciAod2l0aCB2LXNob3cpXFxuICAgIFwiKSxcbiAgICAgICAgXSksXG4gICAgICBdKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiaDJcIiwgW192bS5fdihcIkkxOG4gcGlja2VyIGV4YW1wbGVcIildKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcbiAgICAgICAgXCJkaXZcIixcbiAgICAgICAgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9LFxuICAgICAgICBbXG4gICAgICAgICAgX2MoXCJQaWNrZXJcIiwge1xuICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgZW1vamk6IFwiZGVwYXJ0bWVudF9zdG9yZVwiLFxuICAgICAgICAgICAgICBkYXRhOiBfdm0uaW5kZXhJMThuLFxuICAgICAgICAgICAgICBpMThuOiBfdm0uaTE4bixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICAgIDFcbiAgICAgICksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9KSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcImgyXCIsIFtfdm0uX3YoXCJDdXN0b20gb3JkZXIgZXhhbXBsZVwiKV0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFxuICAgICAgICBcImRpdlwiLFxuICAgICAgICB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0sXG4gICAgICAgIFtfYyhcIlBpY2tlclwiLCB7IGF0dHJzOiB7IGRhdGE6IF92bS5pbmRleEluY2x1ZGUgfSB9KV0sXG4gICAgICAgIDFcbiAgICAgICksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9KSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcImgyXCIsIFtfdm0uX3YoXCJTbWFsbCBwaWNrZXIgZXhhbXBsZVwiKV0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFxuICAgICAgICBcImRpdlwiLFxuICAgICAgICB7IHN0YXRpY0NsYXNzOiBcInJvdyByb3ctc21hbGwtcGlja2VyXCIgfSxcbiAgICAgICAgW1xuICAgICAgICAgIF9jKFwiUGlja2VyXCIsIHtcbiAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgIGRhdGE6IF92bS5pbmRleCxcbiAgICAgICAgICAgICAgbmF0aXZlOiBfdm0ubmF0aXZlLFxuICAgICAgICAgICAgICBzZXQ6IF92bS5hY3RpdmVTZXQsXG4gICAgICAgICAgICAgIGVtb2ppU2l6ZTogMTIsXG4gICAgICAgICAgICAgIHBlckxpbmU6IDUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgICAxXG4gICAgICApLFxuICAgIF0sXG4gICAgMVxuICApXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW1xuICBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIF92bSA9IHRoaXNcbiAgICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgICByZXR1cm4gX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9LCBbXG4gICAgICBfYyhcImgxXCIsIFtfdm0uX3YoXCJFbW9qaSBNYXJ0IFZ1ZSDwn4+sXCIpXSksXG4gICAgXSlcbiAgfSxcbiAgZnVuY3Rpb24gKCkge1xuICAgIHZhciBfdm0gPSB0aGlzXG4gICAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gICAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gICAgcmV0dXJuIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwicm93LXNtYWxsXCIgfSwgW1xuICAgICAgX2MoXCJpZnJhbWVcIiwge1xuICAgICAgICBhdHRyczoge1xuICAgICAgICAgIHNyYzogXCJodHRwczovL2doYnRucy5jb20vZ2l0aHViLWJ0bi5odG1sP3VzZXI9c2VyZWJyb3YmcmVwbz1lbW9qaS1tYXJ0LXZ1ZSZ0eXBlPXN0YXImY291bnQ9dHJ1ZVwiLFxuICAgICAgICAgIGZyYW1lQm9yZGVyOiBcIjBcIixcbiAgICAgICAgICBzY3JvbGxpbmc6IFwiMFwiLFxuICAgICAgICAgIHdpZHRoOiBcIjkwcHhcIixcbiAgICAgICAgICBoZWlnaHQ6IFwiMjBweFwiLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgXSlcbiAgfSxcbl1cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX3ZtLnZpZXcuY2FuUmVuZGVyXG4gICAgPyBfYyhcbiAgICAgICAgX3ZtLnRhZyxcbiAgICAgICAge1xuICAgICAgICAgIHRhZzogXCJjb21wb25lbnRcIixcbiAgICAgICAgICBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LWVtb2ppXCIsXG4gICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBfdm0udmlldy50aXRsZSxcbiAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBfdm0udmlldy5hcmlhTGFiZWwsXG4gICAgICAgICAgICBcImRhdGEtdGl0bGVcIjogX3ZtLnRpdGxlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgb246IHtcbiAgICAgICAgICAgIG1vdXNlZW50ZXI6IF92bS5vbk1vdXNlRW50ZXIsXG4gICAgICAgICAgICBtb3VzZWxlYXZlOiBfdm0ub25Nb3VzZUxlYXZlLFxuICAgICAgICAgICAgY2xpY2s6IF92bS5vbkNsaWNrLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFtcbiAgICAgICAgICBfYyhcInNwYW5cIiwgeyBjbGFzczogX3ZtLnZpZXcuY3NzQ2xhc3MsIHN0eWxlOiBfdm0udmlldy5jc3NTdHlsZSB9LCBbXG4gICAgICAgICAgICBfdm0uX3YoX3ZtLl9zKF92bS52aWV3LmNvbnRlbnQpKSxcbiAgICAgICAgICBdKSxcbiAgICAgICAgXVxuICAgICAgKVxuICAgIDogX3ZtLl9lKClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfYyhcbiAgICBcInNlY3Rpb25cIixcbiAgICB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQgZW1vamktbWFydC1zdGF0aWNcIiwgc3R5bGU6IF92bS5jdXN0b21TdHlsZXMgfSxcbiAgICBbXG4gICAgICBfdm0uc2hvd0NhdGVnb3JpZXNcbiAgICAgICAgPyBfYyhcbiAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtYmFyIGVtb2ppLW1hcnQtYmFyLWFuY2hvcnNcIiB9LFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICBfYyhcImFuY2hvcnNcIiwge1xuICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICBkYXRhOiBfdm0uZGF0YSxcbiAgICAgICAgICAgICAgICAgIGkxOG46IF92bS5tZXJnZWRJMThuLFxuICAgICAgICAgICAgICAgICAgY29sb3I6IF92bS5jb2xvcixcbiAgICAgICAgICAgICAgICAgIGNhdGVnb3JpZXM6IF92bS52aWV3LmFsbENhdGVnb3JpZXMsXG4gICAgICAgICAgICAgICAgICBcImFjdGl2ZS1jYXRlZ29yeVwiOiBfdm0udmlldy5hY3RpdmVDYXRlZ29yeSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG9uOiB7IGNsaWNrOiBfdm0ub25BbmNob3JDbGljayB9LFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAxXG4gICAgICAgICAgKVxuICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF92bS5fdChcbiAgICAgICAgXCJzZWFyY2hUZW1wbGF0ZVwiLFxuICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIF92bS5zaG93U2VhcmNoXG4gICAgICAgICAgICAgID8gX2MoXCJzZWFyY2hcIiwge1xuICAgICAgICAgICAgICAgICAgcmVmOiBcInNlYXJjaFwiLFxuICAgICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogX3ZtLmRhdGEsXG4gICAgICAgICAgICAgICAgICAgIGkxOG46IF92bS5tZXJnZWRJMThuLFxuICAgICAgICAgICAgICAgICAgICBcImF1dG8tZm9jdXNcIjogX3ZtLmF1dG9Gb2N1cyxcbiAgICAgICAgICAgICAgICAgICAgXCJvbi1zZWFyY2hcIjogX3ZtLm9uU2VhcmNoLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaDogX3ZtLm9uU2VhcmNoLFxuICAgICAgICAgICAgICAgICAgICBhcnJvd0xlZnQ6IF92bS5vbkFycm93TGVmdCxcbiAgICAgICAgICAgICAgICAgICAgYXJyb3dSaWdodDogX3ZtLm9uQXJyb3dSaWdodCxcbiAgICAgICAgICAgICAgICAgICAgYXJyb3dEb3duOiBfdm0ub25BcnJvd0Rvd24sXG4gICAgICAgICAgICAgICAgICAgIGFycm93VXA6IF92bS5vbkFycm93VXAsXG4gICAgICAgICAgICAgICAgICAgIGVudGVyOiBfdm0ub25FbnRlcixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBkYXRhOiBfdm0uZGF0YSxcbiAgICAgICAgICBpMThuOiBfdm0uaTE4bixcbiAgICAgICAgICBhdXRvRm9jdXM6IF92bS5hdXRvRm9jdXMsXG4gICAgICAgICAgb25TZWFyY2g6IF92bS5vblNlYXJjaCxcbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcbiAgICAgICAgXCJkaXZcIixcbiAgICAgICAge1xuICAgICAgICAgIHJlZjogXCJzY3JvbGxcIixcbiAgICAgICAgICBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXNjcm9sbFwiLFxuICAgICAgICAgIGF0dHJzOiB7IHJvbGU6IFwidGFicGFuZWxcIiB9LFxuICAgICAgICAgIG9uOiB7IHNjcm9sbDogX3ZtLm9uU2Nyb2xsIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFtcbiAgICAgICAgICBfYyhcbiAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHJlZjogXCJzY3JvbGxDb250ZW50XCIsXG4gICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgaWQ6IFwiZW1vamktbWFydC1saXN0XCIsXG4gICAgICAgICAgICAgICAgcm9sZTogXCJsaXN0Ym94XCIsXG4gICAgICAgICAgICAgICAgXCJhcmlhLWV4cGFuZGVkXCI6IFwidHJ1ZVwiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF92bS5fbChfdm0udmlldy5maWx0ZXJlZENhdGVnb3JpZXMsIGZ1bmN0aW9uIChjYXRlZ29yeSwgaWR4KSB7XG4gICAgICAgICAgICAgIHJldHVybiBfYyhcImNhdGVnb3J5XCIsIHtcbiAgICAgICAgICAgICAgICBkaXJlY3RpdmVzOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwic2hvd1wiLFxuICAgICAgICAgICAgICAgICAgICByYXdOYW1lOiBcInYtc2hvd1wiLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTpcbiAgICAgICAgICAgICAgICAgICAgICBfdm0uaW5maW5pdGVTY3JvbGwgfHwgY2F0ZWdvcnkgPT0gX3ZtLnZpZXcuYWN0aXZlQ2F0ZWdvcnksXG4gICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb246XG4gICAgICAgICAgICAgICAgICAgICAgXCJpbmZpbml0ZVNjcm9sbCB8fCBjYXRlZ29yeSA9PSB2aWV3LmFjdGl2ZUNhdGVnb3J5XCIsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAga2V5OiBjYXRlZ29yeS5pZCxcbiAgICAgICAgICAgICAgICByZWY6IFwiY2F0ZWdvcmllc19cIiArIGlkeCxcbiAgICAgICAgICAgICAgICByZWZJbkZvcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgZGF0YTogX3ZtLmRhdGEsXG4gICAgICAgICAgICAgICAgICBpMThuOiBfdm0ubWVyZ2VkSTE4bixcbiAgICAgICAgICAgICAgICAgIGlkOiBjYXRlZ29yeS5pZCxcbiAgICAgICAgICAgICAgICAgIG5hbWU6IGNhdGVnb3J5Lm5hbWUsXG4gICAgICAgICAgICAgICAgICBlbW9qaXM6IGNhdGVnb3J5LmVtb2ppcyxcbiAgICAgICAgICAgICAgICAgIFwiZW1vamktcHJvcHNcIjogX3ZtLmVtb2ppUHJvcHMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgMVxuICAgICAgICAgICksXG4gICAgICAgIF1cbiAgICAgICksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX3ZtLl90KFxuICAgICAgICBcInByZXZpZXdUZW1wbGF0ZVwiLFxuICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIF92bS5zaG93UHJldmlld1xuICAgICAgICAgICAgICA/IF9jKFxuICAgICAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgICAgIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1iYXIgZW1vamktbWFydC1iYXItcHJldmlld1wiIH0sXG4gICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgIF9jKFwicHJldmlld1wiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IF92bS5kYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IF92bS50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtb2ppOiBfdm0udmlldy5wcmV2aWV3RW1vamksXG4gICAgICAgICAgICAgICAgICAgICAgICBcImlkbGUtZW1vamlcIjogX3ZtLmlkbGVFbW9qaSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2hvdy1za2luLXRvbmVzXCI6IF92bS5zaG93U2tpblRvbmVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJlbW9qaS1wcm9wc1wiOiBfdm0uZW1vamlQcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2tpbi1wcm9wc1wiOiBfdm0uc2tpblByb3BzLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJvbi1za2luLWNoYW5nZVwiOiBfdm0ub25Ta2luQ2hhbmdlLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIDogX3ZtLl9lKCksXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZGF0YTogX3ZtLmRhdGEsXG4gICAgICAgICAgdGl0bGU6IF92bS50aXRsZSxcbiAgICAgICAgICBlbW9qaTogX3ZtLnZpZXcucHJldmlld0Vtb2ppLFxuICAgICAgICAgIGlkbGVFbW9qaTogX3ZtLmlkbGVFbW9qaSxcbiAgICAgICAgICBzaG93U2tpblRvbmVzOiBfdm0uc2hvd1NraW5Ub25lcyxcbiAgICAgICAgICBlbW9qaVByb3BzOiBfdm0uZW1vamlQcm9wcyxcbiAgICAgICAgICBza2luUHJvcHM6IF92bS5za2luUHJvcHMsXG4gICAgICAgICAgb25Ta2luQ2hhbmdlOiBfdm0ub25Ta2luQ2hhbmdlLFxuICAgICAgICB9XG4gICAgICApLFxuICAgIF0sXG4gICAgMlxuICApXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX2MoXG4gICAgXCJkaXZcIixcbiAgICB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtYW5jaG9yc1wiLCBhdHRyczogeyByb2xlOiBcInRhYmxpc3RcIiB9IH0sXG4gICAgX3ZtLl9sKF92bS5jYXRlZ29yaWVzLCBmdW5jdGlvbiAoY2F0ZWdvcnkpIHtcbiAgICAgIHJldHVybiBfYyhcbiAgICAgICAgXCJidXR0b25cIixcbiAgICAgICAge1xuICAgICAgICAgIGtleTogY2F0ZWdvcnkuaWQsXG4gICAgICAgICAgY2xhc3M6IHtcbiAgICAgICAgICAgIFwiZW1vamktbWFydC1hbmNob3JcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW1vamktbWFydC1hbmNob3Itc2VsZWN0ZWRcIjogY2F0ZWdvcnkuaWQgPT0gX3ZtLmFjdGl2ZUNhdGVnb3J5LmlkLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgIGNvbG9yOiBjYXRlZ29yeS5pZCA9PSBfdm0uYWN0aXZlQ2F0ZWdvcnkuaWQgPyBfdm0uY29sb3IgOiBcIlwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgIHJvbGU6IFwidGFiXCIsXG4gICAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IGNhdGVnb3J5Lm5hbWUsXG4gICAgICAgICAgICBcImFyaWEtc2VsZWN0ZWRcIjogY2F0ZWdvcnkuaWQgPT0gX3ZtLmFjdGl2ZUNhdGVnb3J5LmlkLFxuICAgICAgICAgICAgXCJkYXRhLXRpdGxlXCI6IF92bS5pMThuLmNhdGVnb3JpZXNbY2F0ZWdvcnkuaWRdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgb246IHtcbiAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAgIHJldHVybiBfdm0uJGVtaXQoXCJjbGlja1wiLCBjYXRlZ29yeSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgW1xuICAgICAgICAgIF9jKFwiZGl2XCIsIHtcbiAgICAgICAgICAgIGF0dHJzOiB7IFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIgfSxcbiAgICAgICAgICAgIGRvbVByb3BzOiB7IGlubmVySFRNTDogX3ZtLl9zKF92bS5zdmdzW2NhdGVnb3J5LmlkXSkgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgIF9jKFwic3BhblwiLCB7XG4gICAgICAgICAgICBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LWFuY2hvci1iYXJcIixcbiAgICAgICAgICAgIHN0eWxlOiB7IGJhY2tncm91bmRDb2xvcjogX3ZtLmNvbG9yIH0sXG4gICAgICAgICAgICBhdHRyczogeyBcImFyaWEtaGlkZGVuXCI6IFwidHJ1ZVwiIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIF1cbiAgICAgIClcbiAgICB9KSxcbiAgICAwXG4gIClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfdm0uaXNWaXNpYmxlICYmIChfdm0uaXNTZWFyY2ggfHwgX3ZtLmhhc1Jlc3VsdHMpXG4gICAgPyBfYyhcbiAgICAgICAgXCJzZWN0aW9uXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBjbGFzczoge1xuICAgICAgICAgICAgXCJlbW9qaS1tYXJ0LWNhdGVnb3J5XCI6IHRydWUsXG4gICAgICAgICAgICBcImVtb2ppLW1hcnQtbm8tcmVzdWx0c1wiOiAhX3ZtLmhhc1Jlc3VsdHMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBhdHRyczogeyBcImFyaWEtbGFiZWxcIjogX3ZtLmkxOG4uY2F0ZWdvcmllc1tfdm0uaWRdIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFtcbiAgICAgICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtY2F0ZWdvcnktbGFiZWxcIiB9LCBbXG4gICAgICAgICAgICBfYyhcImgzXCIsIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1jYXRlZ29yeS1sYWJlbFwiIH0sIFtcbiAgICAgICAgICAgICAgX3ZtLl92KF92bS5fcyhfdm0uaTE4bi5jYXRlZ29yaWVzW192bS5pZF0pKSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgIF0pLFxuICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgX3ZtLl9sKF92bS5lbW9qaU9iamVjdHMsIGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgICAgICAgIHZhciBlbW9qaU9iamVjdCA9IHJlZi5lbW9qaU9iamVjdFxuICAgICAgICAgICAgdmFyIGVtb2ppVmlldyA9IHJlZi5lbW9qaVZpZXdcbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgIGVtb2ppVmlldy5jYW5SZW5kZXJcbiAgICAgICAgICAgICAgICA/IF9jKFxuICAgICAgICAgICAgICAgICAgICBcImJ1dHRvblwiLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAga2V5OiBlbW9qaU9iamVjdC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LWVtb2ppXCIsXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IF92bS5hY3RpdmVDbGFzcyhlbW9qaU9iamVjdCksXG4gICAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBlbW9qaVZpZXcuYXJpYUxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZTogXCJvcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYXJpYS1zZWxlY3RlZFwiOiBcImZhbHNlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFyaWEtcG9zaW5zZXRcIjogXCIxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFyaWEtc2V0c2l6ZVwiOiBcIjE4MTJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImRhdGEtdGl0bGVcIjogZW1vamlPYmplY3Quc2hvcnRfbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBlbW9qaVZpZXcudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VlbnRlcjogZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uZW1vamlQcm9wcy5vbkVudGVyKGVtb2ppVmlldy5nZXRFbW9qaSgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vdXNlbGVhdmU6IGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLmVtb2ppUHJvcHMub25MZWF2ZShlbW9qaVZpZXcuZ2V0RW1vamkoKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGljazogZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uZW1vamlQcm9wcy5vbkNsaWNrKGVtb2ppVmlldy5nZXRFbW9qaSgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgICAgICAgICAgICBcInNwYW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IGVtb2ppVmlldy5jc3NDbGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IGVtb2ppVmlldy5jc3NTdHlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBbX3ZtLl92KF92bS5fcyhlbW9qaVZpZXcuY29udGVudCkpXVxuICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgIV92bS5oYXNSZXN1bHRzXG4gICAgICAgICAgICA/IF9jKFxuICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgX2MoXCJlbW9qaVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgZGF0YTogX3ZtLmRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgZW1vamk6IFwic2xldXRoX29yX3NweVwiLFxuICAgICAgICAgICAgICAgICAgICAgIG5hdGl2ZTogX3ZtLmVtb2ppUHJvcHMubmF0aXZlLFxuICAgICAgICAgICAgICAgICAgICAgIHNraW46IF92bS5lbW9qaVByb3BzLnNraW4sXG4gICAgICAgICAgICAgICAgICAgICAgc2V0OiBfdm0uZW1vamlQcm9wcy5zZXQsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtbm8tcmVzdWx0cy1sYWJlbFwiIH0sIFtcbiAgICAgICAgICAgICAgICAgICAgX3ZtLl92KF92bS5fcyhfdm0uaTE4bi5ub3Rmb3VuZCkpLFxuICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogX3ZtLl9lKCksXG4gICAgICAgIF0sXG4gICAgICAgIDJcbiAgICAgIClcbiAgICA6IF92bS5fZSgpXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX2MoXG4gICAgXCJkaXZcIixcbiAgICB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlld1wiIH0sXG4gICAgW1xuICAgICAgX3ZtLmVtb2ppXG4gICAgICAgID8gW1xuICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1wcmV2aWV3LWVtb2ppXCIgfSxcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIF9jKFwiZW1vamlcIiwge1xuICAgICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogX3ZtLmRhdGEsXG4gICAgICAgICAgICAgICAgICAgIGVtb2ppOiBfdm0uZW1vamksXG4gICAgICAgICAgICAgICAgICAgIG5hdGl2ZTogX3ZtLmVtb2ppUHJvcHMubmF0aXZlLFxuICAgICAgICAgICAgICAgICAgICBza2luOiBfdm0uZW1vamlQcm9wcy5za2luLFxuICAgICAgICAgICAgICAgICAgICBzZXQ6IF92bS5lbW9qaVByb3BzLnNldCxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXByZXZpZXctZGF0YVwiIH0sIFtcbiAgICAgICAgICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXByZXZpZXctbmFtZVwiIH0sIFtcbiAgICAgICAgICAgICAgICBfdm0uX3YoX3ZtLl9zKF92bS5lbW9qaS5uYW1lKSksXG4gICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICAgIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1wcmV2aWV3LXNob3J0bmFtZXNcIiB9LFxuICAgICAgICAgICAgICAgIF92bS5fbChfdm0uZW1vamlTaG9ydE5hbWVzLCBmdW5jdGlvbiAoc2hvcnROYW1lKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gX2MoXG4gICAgICAgICAgICAgICAgICAgIFwic3BhblwiLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAga2V5OiBzaG9ydE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1wcmV2aWV3LXNob3J0bmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBbX3ZtLl92KFwiOlwiICsgX3ZtLl9zKHNob3J0TmFtZSkgKyBcIjpcIildXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgMFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICAgIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1wcmV2aWV3LWVtb3RpY29uc1wiIH0sXG4gICAgICAgICAgICAgICAgX3ZtLl9sKF92bS5lbW9qaUVtb3RpY29ucywgZnVuY3Rpb24gKGVtb3RpY29uKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gX2MoXG4gICAgICAgICAgICAgICAgICAgIFwic3BhblwiLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAga2V5OiBlbW90aWNvbixcbiAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXByZXZpZXctZW1vdGljb25cIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgW192bS5fdihfdm0uX3MoZW1vdGljb24pKV1cbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAwXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICBdXG4gICAgICAgIDogW1xuICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1wcmV2aWV3LWVtb2ppXCIgfSxcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIF9jKFwiZW1vamlcIiwge1xuICAgICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogX3ZtLmRhdGEsXG4gICAgICAgICAgICAgICAgICAgIGVtb2ppOiBfdm0uaWRsZUVtb2ppLFxuICAgICAgICAgICAgICAgICAgICBuYXRpdmU6IF92bS5lbW9qaVByb3BzLm5hdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgc2tpbjogX3ZtLmVtb2ppUHJvcHMuc2tpbixcbiAgICAgICAgICAgICAgICAgICAgc2V0OiBfdm0uZW1vamlQcm9wcy5zZXQsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAxXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1wcmV2aWV3LWRhdGFcIiB9LCBbXG4gICAgICAgICAgICAgIF9jKFwic3BhblwiLCB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtdGl0bGUtbGFiZWxcIiB9LCBbXG4gICAgICAgICAgICAgICAgX3ZtLl92KF92bS5fcyhfdm0udGl0bGUpKSxcbiAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICBfdm0uc2hvd1NraW5Ub25lc1xuICAgICAgICAgICAgICA/IF9jKFxuICAgICAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgICAgIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1wcmV2aWV3LXNraW5zXCIgfSxcbiAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgX2MoXCJza2luc1wiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHsgc2tpbjogX3ZtLnNraW5Qcm9wcy5za2luIH0sXG4gICAgICAgICAgICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZTogZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3ZtLm9uU2tpbkNoYW5nZSgkZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIDogX3ZtLl9lKCksXG4gICAgICAgICAgXSxcbiAgICBdLFxuICAgIDJcbiAgKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1zZWFyY2hcIiB9LCBbXG4gICAgX2MoXCJpbnB1dFwiLCB7XG4gICAgICBkaXJlY3RpdmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcIm1vZGVsXCIsXG4gICAgICAgICAgcmF3TmFtZTogXCJ2LW1vZGVsXCIsXG4gICAgICAgICAgdmFsdWU6IF92bS52YWx1ZSxcbiAgICAgICAgICBleHByZXNzaW9uOiBcInZhbHVlXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgYXR0cnM6IHtcbiAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgIHBsYWNlaG9sZGVyOiBfdm0uaTE4bi5zZWFyY2gsXG4gICAgICAgIHJvbGU6IFwidGV4dGJveFwiLFxuICAgICAgICBcImFyaWEtYXV0b2NvbXBsZXRlXCI6IFwibGlzdFwiLFxuICAgICAgICBcImFyaWEtb3duc1wiOiBcImVtb2ppLW1hcnQtbGlzdFwiLFxuICAgICAgICBcImFyaWEtbGFiZWxcIjogXCJTZWFyY2ggZm9yIGFuIGVtb2ppXCIsXG4gICAgICAgIFwiYXJpYS1kZXNjcmliZWRieVwiOiBcImVtb2ppLW1hcnQtc2VhcmNoLWRlc2NyaXB0aW9uXCIsXG4gICAgICB9LFxuICAgICAgZG9tUHJvcHM6IHsgdmFsdWU6IF92bS52YWx1ZSB9LFxuICAgICAgb246IHtcbiAgICAgICAga2V5ZG93bjogW1xuICAgICAgICAgIGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgISRldmVudC50eXBlLmluZGV4T2YoXCJrZXlcIikgJiZcbiAgICAgICAgICAgICAgX3ZtLl9rKCRldmVudC5rZXlDb2RlLCBcImxlZnRcIiwgMzcsICRldmVudC5rZXksIFtcbiAgICAgICAgICAgICAgICBcIkxlZnRcIixcbiAgICAgICAgICAgICAgICBcIkFycm93TGVmdFwiLFxuICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoXCJidXR0b25cIiBpbiAkZXZlbnQgJiYgJGV2ZW50LmJ1dHRvbiAhPT0gMCkge1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIF92bS4kZW1pdChcImFycm93TGVmdFwiLCAkZXZlbnQpXG4gICAgICAgICAgICB9LmFwcGx5KG51bGwsIGFyZ3VtZW50cylcbiAgICAgICAgICB9LFxuICAgICAgICAgIGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgISRldmVudC50eXBlLmluZGV4T2YoXCJrZXlcIikgJiZcbiAgICAgICAgICAgICAgX3ZtLl9rKCRldmVudC5rZXlDb2RlLCBcInJpZ2h0XCIsIDM5LCAkZXZlbnQua2V5LCBbXG4gICAgICAgICAgICAgICAgXCJSaWdodFwiLFxuICAgICAgICAgICAgICAgIFwiQXJyb3dSaWdodFwiLFxuICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoXCJidXR0b25cIiBpbiAkZXZlbnQgJiYgJGV2ZW50LmJ1dHRvbiAhPT0gMikge1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIF92bS4kZW1pdChcImFycm93UmlnaHRcIilcbiAgICAgICAgICAgIH0uYXBwbHkobnVsbCwgYXJndW1lbnRzKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAhJGV2ZW50LnR5cGUuaW5kZXhPZihcImtleVwiKSAmJlxuICAgICAgICAgICAgICBfdm0uX2soJGV2ZW50LmtleUNvZGUsIFwiZG93blwiLCA0MCwgJGV2ZW50LmtleSwgW1xuICAgICAgICAgICAgICAgIFwiRG93blwiLFxuICAgICAgICAgICAgICAgIFwiQXJyb3dEb3duXCIsXG4gICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHJldHVybiBfdm0uJGVtaXQoXCJhcnJvd0Rvd25cIilcbiAgICAgICAgICAgIH0uYXBwbHkobnVsbCwgYXJndW1lbnRzKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAhJGV2ZW50LnR5cGUuaW5kZXhPZihcImtleVwiKSAmJlxuICAgICAgICAgICAgICBfdm0uX2soJGV2ZW50LmtleUNvZGUsIFwidXBcIiwgMzgsICRldmVudC5rZXksIFtcIlVwXCIsIFwiQXJyb3dVcFwiXSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIF92bS4kZW1pdChcImFycm93VXBcIiwgJGV2ZW50KVxuICAgICAgICAgICAgfS5hcHBseShudWxsLCBhcmd1bWVudHMpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICEkZXZlbnQudHlwZS5pbmRleE9mKFwia2V5XCIpICYmXG4gICAgICAgICAgICAgIF92bS5faygkZXZlbnQua2V5Q29kZSwgXCJlbnRlclwiLCAxMywgJGV2ZW50LmtleSwgXCJFbnRlclwiKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICByZXR1cm4gX3ZtLiRlbWl0KFwiZW50ZXJcIilcbiAgICAgICAgICAgIH0uYXBwbHkobnVsbCwgYXJndW1lbnRzKVxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGlucHV0OiBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgaWYgKCRldmVudC50YXJnZXQuY29tcG9zaW5nKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG4gICAgICAgICAgX3ZtLnZhbHVlID0gJGV2ZW50LnRhcmdldC52YWx1ZVxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBfdm0uX3YoXCIgXCIpLFxuICAgIF9jKFxuICAgICAgXCJzcGFuXCIsXG4gICAgICB7XG4gICAgICAgIHN0YXRpY0NsYXNzOiBcImhpZGRlblwiLFxuICAgICAgICBhdHRyczogeyBpZDogXCJlbW9qaS1waWNrZXItc2VhcmNoLWRlc2NyaXB0aW9uXCIgfSxcbiAgICAgIH0sXG4gICAgICBbXG4gICAgICAgIF92bS5fdihcbiAgICAgICAgICBcIlVzZSB0aGUgbGVmdCwgcmlnaHQsIHVwIGFuZCBkb3duIGFycm93IGtleXMgdG8gbmF2aWdhdGUgdGhlIGVtb2ppIHNlYXJjaFxcbiAgICByZXN1bHRzLlwiXG4gICAgICAgICksXG4gICAgICBdXG4gICAgKSxcbiAgXSlcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfYyhcbiAgICBcImRpdlwiLFxuICAgIHtcbiAgICAgIGNsYXNzOiB7XG4gICAgICAgIFwiZW1vamktbWFydC1za2luLXN3YXRjaGVzXCI6IHRydWUsXG4gICAgICAgIFwiZW1vamktbWFydC1za2luLXN3YXRjaGVzLW9wZW5lZFwiOiBfdm0ub3BlbmVkLFxuICAgICAgfSxcbiAgICB9LFxuICAgIF92bS5fbCg2LCBmdW5jdGlvbiAoc2tpblRvbmUpIHtcbiAgICAgIHJldHVybiBfYyhcbiAgICAgICAgXCJzcGFuXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6IHNraW5Ub25lLFxuICAgICAgICAgIGNsYXNzOiB7XG4gICAgICAgICAgICBcImVtb2ppLW1hcnQtc2tpbi1zd2F0Y2hcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW1vamktbWFydC1za2luLXN3YXRjaC1zZWxlY3RlZFwiOiBfdm0uc2tpbiA9PSBza2luVG9uZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBbXG4gICAgICAgICAgX2MoXCJzcGFuXCIsIHtcbiAgICAgICAgICAgIGNsYXNzOiBcImVtb2ppLW1hcnQtc2tpbiBlbW9qaS1tYXJ0LXNraW4tdG9uZS1cIiArIHNraW5Ub25lLFxuICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX3ZtLm9uQ2xpY2soc2tpblRvbmUpXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICBdXG4gICAgICApXG4gICAgfSksXG4gICAgMFxuICApXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwiLyogZ2xvYmFscyBfX1ZVRV9TU1JfQ09OVEVYVF9fICovXG5cbi8vIElNUE9SVEFOVDogRG8gTk9UIHVzZSBFUzIwMTUgZmVhdHVyZXMgaW4gdGhpcyBmaWxlIChleGNlcHQgZm9yIG1vZHVsZXMpLlxuLy8gVGhpcyBtb2R1bGUgaXMgYSBydW50aW1lIHV0aWxpdHkgZm9yIGNsZWFuZXIgY29tcG9uZW50IG1vZHVsZSBvdXRwdXQgYW5kIHdpbGxcbi8vIGJlIGluY2x1ZGVkIGluIHRoZSBmaW5hbCB3ZWJwYWNrIHVzZXIgYnVuZGxlLlxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBub3JtYWxpemVDb21wb25lbnQgKFxuICBzY3JpcHRFeHBvcnRzLFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZnVuY3Rpb25hbFRlbXBsYXRlLFxuICBpbmplY3RTdHlsZXMsXG4gIHNjb3BlSWQsXG4gIG1vZHVsZUlkZW50aWZpZXIsIC8qIHNlcnZlciBvbmx5ICovXG4gIHNoYWRvd01vZGUgLyogdnVlLWNsaSBvbmx5ICovXG4pIHtcbiAgLy8gVnVlLmV4dGVuZCBjb25zdHJ1Y3RvciBleHBvcnQgaW50ZXJvcFxuICB2YXIgb3B0aW9ucyA9IHR5cGVvZiBzY3JpcHRFeHBvcnRzID09PSAnZnVuY3Rpb24nXG4gICAgPyBzY3JpcHRFeHBvcnRzLm9wdGlvbnNcbiAgICA6IHNjcmlwdEV4cG9ydHNcblxuICAvLyByZW5kZXIgZnVuY3Rpb25zXG4gIGlmIChyZW5kZXIpIHtcbiAgICBvcHRpb25zLnJlbmRlciA9IHJlbmRlclxuICAgIG9wdGlvbnMuc3RhdGljUmVuZGVyRm5zID0gc3RhdGljUmVuZGVyRm5zXG4gICAgb3B0aW9ucy5fY29tcGlsZWQgPSB0cnVlXG4gIH1cblxuICAvLyBmdW5jdGlvbmFsIHRlbXBsYXRlXG4gIGlmIChmdW5jdGlvbmFsVGVtcGxhdGUpIHtcbiAgICBvcHRpb25zLmZ1bmN0aW9uYWwgPSB0cnVlXG4gIH1cblxuICAvLyBzY29wZWRJZFxuICBpZiAoc2NvcGVJZCkge1xuICAgIG9wdGlvbnMuX3Njb3BlSWQgPSAnZGF0YS12LScgKyBzY29wZUlkXG4gIH1cblxuICB2YXIgaG9va1xuICBpZiAobW9kdWxlSWRlbnRpZmllcikgeyAvLyBzZXJ2ZXIgYnVpbGRcbiAgICBob29rID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgIC8vIDIuMyBpbmplY3Rpb25cbiAgICAgIGNvbnRleHQgPVxuICAgICAgICBjb250ZXh0IHx8IC8vIGNhY2hlZCBjYWxsXG4gICAgICAgICh0aGlzLiR2bm9kZSAmJiB0aGlzLiR2bm9kZS5zc3JDb250ZXh0KSB8fCAvLyBzdGF0ZWZ1bFxuICAgICAgICAodGhpcy5wYXJlbnQgJiYgdGhpcy5wYXJlbnQuJHZub2RlICYmIHRoaXMucGFyZW50LiR2bm9kZS5zc3JDb250ZXh0KSAvLyBmdW5jdGlvbmFsXG4gICAgICAvLyAyLjIgd2l0aCBydW5Jbk5ld0NvbnRleHQ6IHRydWVcbiAgICAgIGlmICghY29udGV4dCAmJiB0eXBlb2YgX19WVUVfU1NSX0NPTlRFWFRfXyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgY29udGV4dCA9IF9fVlVFX1NTUl9DT05URVhUX19cbiAgICAgIH1cbiAgICAgIC8vIGluamVjdCBjb21wb25lbnQgc3R5bGVzXG4gICAgICBpZiAoaW5qZWN0U3R5bGVzKSB7XG4gICAgICAgIGluamVjdFN0eWxlcy5jYWxsKHRoaXMsIGNvbnRleHQpXG4gICAgICB9XG4gICAgICAvLyByZWdpc3RlciBjb21wb25lbnQgbW9kdWxlIGlkZW50aWZpZXIgZm9yIGFzeW5jIGNodW5rIGluZmVycmVuY2VcbiAgICAgIGlmIChjb250ZXh0ICYmIGNvbnRleHQuX3JlZ2lzdGVyZWRDb21wb25lbnRzKSB7XG4gICAgICAgIGNvbnRleHQuX3JlZ2lzdGVyZWRDb21wb25lbnRzLmFkZChtb2R1bGVJZGVudGlmaWVyKVxuICAgICAgfVxuICAgIH1cbiAgICAvLyB1c2VkIGJ5IHNzciBpbiBjYXNlIGNvbXBvbmVudCBpcyBjYWNoZWQgYW5kIGJlZm9yZUNyZWF0ZVxuICAgIC8vIG5ldmVyIGdldHMgY2FsbGVkXG4gICAgb3B0aW9ucy5fc3NyUmVnaXN0ZXIgPSBob29rXG4gIH0gZWxzZSBpZiAoaW5qZWN0U3R5bGVzKSB7XG4gICAgaG9vayA9IHNoYWRvd01vZGVcbiAgICAgID8gZnVuY3Rpb24gKCkge1xuICAgICAgICBpbmplY3RTdHlsZXMuY2FsbChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIChvcHRpb25zLmZ1bmN0aW9uYWwgPyB0aGlzLnBhcmVudCA6IHRoaXMpLiRyb290LiRvcHRpb25zLnNoYWRvd1Jvb3RcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgOiBpbmplY3RTdHlsZXNcbiAgfVxuXG4gIGlmIChob29rKSB7XG4gICAgaWYgKG9wdGlvbnMuZnVuY3Rpb25hbCkge1xuICAgICAgLy8gZm9yIHRlbXBsYXRlLW9ubHkgaG90LXJlbG9hZCBiZWNhdXNlIGluIHRoYXQgY2FzZSB0aGUgcmVuZGVyIGZuIGRvZXNuJ3RcbiAgICAgIC8vIGdvIHRocm91Z2ggdGhlIG5vcm1hbGl6ZXJcbiAgICAgIG9wdGlvbnMuX2luamVjdFN0eWxlcyA9IGhvb2tcbiAgICAgIC8vIHJlZ2lzdGVyIGZvciBmdW5jdGlvbmFsIGNvbXBvbmVudCBpbiB2dWUgZmlsZVxuICAgICAgdmFyIG9yaWdpbmFsUmVuZGVyID0gb3B0aW9ucy5yZW5kZXJcbiAgICAgIG9wdGlvbnMucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyV2l0aFN0eWxlSW5qZWN0aW9uIChoLCBjb250ZXh0KSB7XG4gICAgICAgIGhvb2suY2FsbChjb250ZXh0KVxuICAgICAgICByZXR1cm4gb3JpZ2luYWxSZW5kZXIoaCwgY29udGV4dClcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gaW5qZWN0IGNvbXBvbmVudCByZWdpc3RyYXRpb24gYXMgYmVmb3JlQ3JlYXRlIGhvb2tcbiAgICAgIHZhciBleGlzdGluZyA9IG9wdGlvbnMuYmVmb3JlQ3JlYXRlXG4gICAgICBvcHRpb25zLmJlZm9yZUNyZWF0ZSA9IGV4aXN0aW5nXG4gICAgICAgID8gW10uY29uY2F0KGV4aXN0aW5nLCBob29rKVxuICAgICAgICA6IFtob29rXVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZXhwb3J0czogc2NyaXB0RXhwb3J0cyxcbiAgICBvcHRpb25zOiBvcHRpb25zXG4gIH1cbn1cbiIsIi8vIHN0eWxlLWxvYWRlcjogQWRkcyBzb21lIGNzcyB0byB0aGUgRE9NIGJ5IGFkZGluZyBhIDxzdHlsZT4gdGFnXG5cbi8vIGxvYWQgdGhlIHN0eWxlc1xudmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanMhLi9lbW9qaS1tYXJ0LmNzc1wiKTtcbmlmKGNvbnRlbnQuX19lc01vZHVsZSkgY29udGVudCA9IGNvbnRlbnQuZGVmYXVsdDtcbmlmKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuaWYoY29udGVudC5sb2NhbHMpIG1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHM7XG4vLyBhZGQgdGhlIHN0eWxlcyB0byB0aGUgRE9NXG52YXIgYWRkID0gcmVxdWlyZShcIiEuLi9ub2RlX21vZHVsZXMvdnVlLXN0eWxlLWxvYWRlci9saWIvYWRkU3R5bGVzQ2xpZW50LmpzXCIpLmRlZmF1bHRcbnZhciB1cGRhdGUgPSBhZGQoXCIwNDk3Y2E2MVwiLCBjb250ZW50LCBmYWxzZSwge30pO1xuLy8gSG90IE1vZHVsZSBSZXBsYWNlbWVudFxuaWYobW9kdWxlLmhvdCkge1xuIC8vIFdoZW4gdGhlIHN0eWxlcyBjaGFuZ2UsIHVwZGF0ZSB0aGUgPHN0eWxlPiB0YWdzXG4gaWYoIWNvbnRlbnQubG9jYWxzKSB7XG4gICBtb2R1bGUuaG90LmFjY2VwdChcIiEhLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vZW1vamktbWFydC5jc3NcIiwgZnVuY3Rpb24oKSB7XG4gICAgIHZhciBuZXdDb250ZW50ID0gcmVxdWlyZShcIiEhLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vZW1vamktbWFydC5jc3NcIik7XG4gICAgIGlmKG5ld0NvbnRlbnQuX19lc01vZHVsZSkgbmV3Q29udGVudCA9IG5ld0NvbnRlbnQuZGVmYXVsdDtcbiAgICAgaWYodHlwZW9mIG5ld0NvbnRlbnQgPT09ICdzdHJpbmcnKSBuZXdDb250ZW50ID0gW1ttb2R1bGUuaWQsIG5ld0NvbnRlbnQsICcnXV07XG4gICAgIHVwZGF0ZShuZXdDb250ZW50KTtcbiAgIH0pO1xuIH1cbiAvLyBXaGVuIHRoZSBtb2R1bGUgaXMgZGlzcG9zZWQsIHJlbW92ZSB0aGUgPHN0eWxlPiB0YWdzXG4gbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uKCkgeyB1cGRhdGUoKTsgfSk7XG59IiwiLy8gc3R5bGUtbG9hZGVyOiBBZGRzIHNvbWUgY3NzIHRvIHRoZSBET00gYnkgYWRkaW5nIGEgPHN0eWxlPiB0YWdcblxuLy8gbG9hZCB0aGUgc3R5bGVzXG52YXIgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uLy4uL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanMhLi9xdWFzYXIubWF0LmNzc1wiKTtcbmlmKGNvbnRlbnQuX19lc01vZHVsZSkgY29udGVudCA9IGNvbnRlbnQuZGVmYXVsdDtcbmlmKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuaWYoY29udGVudC5sb2NhbHMpIG1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHM7XG4vLyBhZGQgdGhlIHN0eWxlcyB0byB0aGUgRE9NXG52YXIgYWRkID0gcmVxdWlyZShcIiEuLi8uLi8uLi92dWUtc3R5bGUtbG9hZGVyL2xpYi9hZGRTdHlsZXNDbGllbnQuanNcIikuZGVmYXVsdFxudmFyIHVwZGF0ZSA9IGFkZChcIjgzY2VjN2VhXCIsIGNvbnRlbnQsIGZhbHNlLCB7fSk7XG4vLyBIb3QgTW9kdWxlIFJlcGxhY2VtZW50XG5pZihtb2R1bGUuaG90KSB7XG4gLy8gV2hlbiB0aGUgc3R5bGVzIGNoYW5nZSwgdXBkYXRlIHRoZSA8c3R5bGU+IHRhZ3NcbiBpZighY29udGVudC5sb2NhbHMpIHtcbiAgIG1vZHVsZS5ob3QuYWNjZXB0KFwiISEuLi8uLi8uLi9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vcXVhc2FyLm1hdC5jc3NcIiwgZnVuY3Rpb24oKSB7XG4gICAgIHZhciBuZXdDb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vLi4vY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3F1YXNhci5tYXQuY3NzXCIpO1xuICAgICBpZihuZXdDb250ZW50Ll9fZXNNb2R1bGUpIG5ld0NvbnRlbnQgPSBuZXdDb250ZW50LmRlZmF1bHQ7XG4gICAgIGlmKHR5cGVvZiBuZXdDb250ZW50ID09PSAnc3RyaW5nJykgbmV3Q29udGVudCA9IFtbbW9kdWxlLmlkLCBuZXdDb250ZW50LCAnJ11dO1xuICAgICB1cGRhdGUobmV3Q29udGVudCk7XG4gICB9KTtcbiB9XG4gLy8gV2hlbiB0aGUgbW9kdWxlIGlzIGRpc3Bvc2VkLCByZW1vdmUgdGhlIDxzdHlsZT4gdGFnc1xuIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbigpIHsgdXBkYXRlKCk7IH0pO1xufSIsIi8vIHN0eWxlLWxvYWRlcjogQWRkcyBzb21lIGNzcyB0byB0aGUgRE9NIGJ5IGFkZGluZyBhIDxzdHlsZT4gdGFnXG5cbi8vIGxvYWQgdGhlIHN0eWxlc1xudmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vYXBwLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTRmYmM3MzViJnNjb3BlZD10cnVlJmxhbmc9Y3NzJlwiKTtcbmlmKGNvbnRlbnQuX19lc01vZHVsZSkgY29udGVudCA9IGNvbnRlbnQuZGVmYXVsdDtcbmlmKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuaWYoY29udGVudC5sb2NhbHMpIG1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHM7XG4vLyBhZGQgdGhlIHN0eWxlcyB0byB0aGUgRE9NXG52YXIgYWRkID0gcmVxdWlyZShcIiEuLi9ub2RlX21vZHVsZXMvdnVlLXN0eWxlLWxvYWRlci9saWIvYWRkU3R5bGVzQ2xpZW50LmpzXCIpLmRlZmF1bHRcbnZhciB1cGRhdGUgPSBhZGQoXCIyM2YwZTg4OFwiLCBjb250ZW50LCBmYWxzZSwge30pO1xuLy8gSG90IE1vZHVsZSBSZXBsYWNlbWVudFxuaWYobW9kdWxlLmhvdCkge1xuIC8vIFdoZW4gdGhlIHN0eWxlcyBjaGFuZ2UsIHVwZGF0ZSB0aGUgPHN0eWxlPiB0YWdzXG4gaWYoIWNvbnRlbnQubG9jYWxzKSB7XG4gICBtb2R1bGUuaG90LmFjY2VwdChcIiEhLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2FwcC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD00ZmJjNzM1YiZzY29wZWQ9dHJ1ZSZsYW5nPWNzcyZcIiwgZnVuY3Rpb24oKSB7XG4gICAgIHZhciBuZXdDb250ZW50ID0gcmVxdWlyZShcIiEhLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2FwcC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD00ZmJjNzM1YiZzY29wZWQ9dHJ1ZSZsYW5nPWNzcyZcIik7XG4gICAgIGlmKG5ld0NvbnRlbnQuX19lc01vZHVsZSkgbmV3Q29udGVudCA9IG5ld0NvbnRlbnQuZGVmYXVsdDtcbiAgICAgaWYodHlwZW9mIG5ld0NvbnRlbnQgPT09ICdzdHJpbmcnKSBuZXdDb250ZW50ID0gW1ttb2R1bGUuaWQsIG5ld0NvbnRlbnQsICcnXV07XG4gICAgIHVwZGF0ZShuZXdDb250ZW50KTtcbiAgIH0pO1xuIH1cbiAvLyBXaGVuIHRoZSBtb2R1bGUgaXMgZGlzcG9zZWQsIHJlbW92ZSB0aGUgPHN0eWxlPiB0YWdzXG4gbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uKCkgeyB1cGRhdGUoKTsgfSk7XG59IiwiLypcbiAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuICBNb2RpZmllZCBieSBFdmFuIFlvdSBAeXl4OTkwODAzXG4qL1xuXG5pbXBvcnQgbGlzdFRvU3R5bGVzIGZyb20gJy4vbGlzdFRvU3R5bGVzJ1xuXG52YXIgaGFzRG9jdW1lbnQgPSB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnXG5cbmlmICh0eXBlb2YgREVCVUcgIT09ICd1bmRlZmluZWQnICYmIERFQlVHKSB7XG4gIGlmICghaGFzRG9jdW1lbnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgJ3Z1ZS1zdHlsZS1sb2FkZXIgY2Fubm90IGJlIHVzZWQgaW4gYSBub24tYnJvd3NlciBlbnZpcm9ubWVudC4gJyArXG4gICAgXCJVc2UgeyB0YXJnZXQ6ICdub2RlJyB9IGluIHlvdXIgV2VicGFjayBjb25maWcgdG8gaW5kaWNhdGUgYSBzZXJ2ZXItcmVuZGVyaW5nIGVudmlyb25tZW50LlwiXG4gICkgfVxufVxuXG4vKlxudHlwZSBTdHlsZU9iamVjdCA9IHtcbiAgaWQ6IG51bWJlcjtcbiAgcGFydHM6IEFycmF5PFN0eWxlT2JqZWN0UGFydD5cbn1cblxudHlwZSBTdHlsZU9iamVjdFBhcnQgPSB7XG4gIGNzczogc3RyaW5nO1xuICBtZWRpYTogc3RyaW5nO1xuICBzb3VyY2VNYXA6ID9zdHJpbmdcbn1cbiovXG5cbnZhciBzdHlsZXNJbkRvbSA9IHsvKlxuICBbaWQ6IG51bWJlcl06IHtcbiAgICBpZDogbnVtYmVyLFxuICAgIHJlZnM6IG51bWJlcixcbiAgICBwYXJ0czogQXJyYXk8KG9iaj86IFN0eWxlT2JqZWN0UGFydCkgPT4gdm9pZD5cbiAgfVxuKi99XG5cbnZhciBoZWFkID0gaGFzRG9jdW1lbnQgJiYgKGRvY3VtZW50LmhlYWQgfHwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSlcbnZhciBzaW5nbGV0b25FbGVtZW50ID0gbnVsbFxudmFyIHNpbmdsZXRvbkNvdW50ZXIgPSAwXG52YXIgaXNQcm9kdWN0aW9uID0gZmFsc2VcbnZhciBub29wID0gZnVuY3Rpb24gKCkge31cbnZhciBvcHRpb25zID0gbnVsbFxudmFyIHNzcklkS2V5ID0gJ2RhdGEtdnVlLXNzci1pZCdcblxuLy8gRm9yY2Ugc2luZ2xlLXRhZyBzb2x1dGlvbiBvbiBJRTYtOSwgd2hpY2ggaGFzIGEgaGFyZCBsaW1pdCBvbiB0aGUgIyBvZiA8c3R5bGU+XG4vLyB0YWdzIGl0IHdpbGwgYWxsb3cgb24gYSBwYWdlXG52YXIgaXNPbGRJRSA9IHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIC9tc2llIFs2LTldXFxiLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSlcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYWRkU3R5bGVzQ2xpZW50IChwYXJlbnRJZCwgbGlzdCwgX2lzUHJvZHVjdGlvbiwgX29wdGlvbnMpIHtcbiAgaXNQcm9kdWN0aW9uID0gX2lzUHJvZHVjdGlvblxuXG4gIG9wdGlvbnMgPSBfb3B0aW9ucyB8fCB7fVxuXG4gIHZhciBzdHlsZXMgPSBsaXN0VG9TdHlsZXMocGFyZW50SWQsIGxpc3QpXG4gIGFkZFN0eWxlc1RvRG9tKHN0eWxlcylcblxuICByZXR1cm4gZnVuY3Rpb24gdXBkYXRlIChuZXdMaXN0KSB7XG4gICAgdmFyIG1heVJlbW92ZSA9IFtdXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBpdGVtID0gc3R5bGVzW2ldXG4gICAgICB2YXIgZG9tU3R5bGUgPSBzdHlsZXNJbkRvbVtpdGVtLmlkXVxuICAgICAgZG9tU3R5bGUucmVmcy0tXG4gICAgICBtYXlSZW1vdmUucHVzaChkb21TdHlsZSlcbiAgICB9XG4gICAgaWYgKG5ld0xpc3QpIHtcbiAgICAgIHN0eWxlcyA9IGxpc3RUb1N0eWxlcyhwYXJlbnRJZCwgbmV3TGlzdClcbiAgICAgIGFkZFN0eWxlc1RvRG9tKHN0eWxlcylcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGVzID0gW11cbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtYXlSZW1vdmUubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBkb21TdHlsZSA9IG1heVJlbW92ZVtpXVxuICAgICAgaWYgKGRvbVN0eWxlLnJlZnMgPT09IDApIHtcbiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBkb21TdHlsZS5wYXJ0cy5sZW5ndGg7IGorKykge1xuICAgICAgICAgIGRvbVN0eWxlLnBhcnRzW2pdKClcbiAgICAgICAgfVxuICAgICAgICBkZWxldGUgc3R5bGVzSW5Eb21bZG9tU3R5bGUuaWRdXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGFkZFN0eWxlc1RvRG9tIChzdHlsZXMgLyogQXJyYXk8U3R5bGVPYmplY3Q+ICovKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc3R5bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGl0ZW0gPSBzdHlsZXNbaV1cbiAgICB2YXIgZG9tU3R5bGUgPSBzdHlsZXNJbkRvbVtpdGVtLmlkXVxuICAgIGlmIChkb21TdHlsZSkge1xuICAgICAgZG9tU3R5bGUucmVmcysrXG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGRvbVN0eWxlLnBhcnRzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIGRvbVN0eWxlLnBhcnRzW2pdKGl0ZW0ucGFydHNbal0pXG4gICAgICB9XG4gICAgICBmb3IgKDsgaiA8IGl0ZW0ucGFydHMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgZG9tU3R5bGUucGFydHMucHVzaChhZGRTdHlsZShpdGVtLnBhcnRzW2pdKSlcbiAgICAgIH1cbiAgICAgIGlmIChkb21TdHlsZS5wYXJ0cy5sZW5ndGggPiBpdGVtLnBhcnRzLmxlbmd0aCkge1xuICAgICAgICBkb21TdHlsZS5wYXJ0cy5sZW5ndGggPSBpdGVtLnBhcnRzLmxlbmd0aFxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgcGFydHMgPSBbXVxuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBpdGVtLnBhcnRzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIHBhcnRzLnB1c2goYWRkU3R5bGUoaXRlbS5wYXJ0c1tqXSkpXG4gICAgICB9XG4gICAgICBzdHlsZXNJbkRvbVtpdGVtLmlkXSA9IHsgaWQ6IGl0ZW0uaWQsIHJlZnM6IDEsIHBhcnRzOiBwYXJ0cyB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVN0eWxlRWxlbWVudCAoKSB7XG4gIHZhciBzdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpXG4gIHN0eWxlRWxlbWVudC50eXBlID0gJ3RleHQvY3NzJ1xuICBoZWFkLmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudClcbiAgcmV0dXJuIHN0eWxlRWxlbWVudFxufVxuXG5mdW5jdGlvbiBhZGRTdHlsZSAob2JqIC8qIFN0eWxlT2JqZWN0UGFydCAqLykge1xuICB2YXIgdXBkYXRlLCByZW1vdmVcbiAgdmFyIHN0eWxlRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3N0eWxlWycgKyBzc3JJZEtleSArICd+PVwiJyArIG9iai5pZCArICdcIl0nKVxuXG4gIGlmIChzdHlsZUVsZW1lbnQpIHtcbiAgICBpZiAoaXNQcm9kdWN0aW9uKSB7XG4gICAgICAvLyBoYXMgU1NSIHN0eWxlcyBhbmQgaW4gcHJvZHVjdGlvbiBtb2RlLlxuICAgICAgLy8gc2ltcGx5IGRvIG5vdGhpbmcuXG4gICAgICByZXR1cm4gbm9vcFxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBoYXMgU1NSIHN0eWxlcyBidXQgaW4gZGV2IG1vZGUuXG4gICAgICAvLyBmb3Igc29tZSByZWFzb24gQ2hyb21lIGNhbid0IGhhbmRsZSBzb3VyY2UgbWFwIGluIHNlcnZlci1yZW5kZXJlZFxuICAgICAgLy8gc3R5bGUgdGFncyAtIHNvdXJjZSBtYXBzIGluIDxzdHlsZT4gb25seSB3b3JrcyBpZiB0aGUgc3R5bGUgdGFnIGlzXG4gICAgICAvLyBjcmVhdGVkIGFuZCBpbnNlcnRlZCBkeW5hbWljYWxseS4gU28gd2UgcmVtb3ZlIHRoZSBzZXJ2ZXIgcmVuZGVyZWRcbiAgICAgIC8vIHN0eWxlcyBhbmQgaW5qZWN0IG5ldyBvbmVzLlxuICAgICAgc3R5bGVFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50KVxuICAgIH1cbiAgfVxuXG4gIGlmIChpc09sZElFKSB7XG4gICAgLy8gdXNlIHNpbmdsZXRvbiBtb2RlIGZvciBJRTkuXG4gICAgdmFyIHN0eWxlSW5kZXggPSBzaW5nbGV0b25Db3VudGVyKytcbiAgICBzdHlsZUVsZW1lbnQgPSBzaW5nbGV0b25FbGVtZW50IHx8IChzaW5nbGV0b25FbGVtZW50ID0gY3JlYXRlU3R5bGVFbGVtZW50KCkpXG4gICAgdXBkYXRlID0gYXBwbHlUb1NpbmdsZXRvblRhZy5iaW5kKG51bGwsIHN0eWxlRWxlbWVudCwgc3R5bGVJbmRleCwgZmFsc2UpXG4gICAgcmVtb3ZlID0gYXBwbHlUb1NpbmdsZXRvblRhZy5iaW5kKG51bGwsIHN0eWxlRWxlbWVudCwgc3R5bGVJbmRleCwgdHJ1ZSlcbiAgfSBlbHNlIHtcbiAgICAvLyB1c2UgbXVsdGktc3R5bGUtdGFnIG1vZGUgaW4gYWxsIG90aGVyIGNhc2VzXG4gICAgc3R5bGVFbGVtZW50ID0gY3JlYXRlU3R5bGVFbGVtZW50KClcbiAgICB1cGRhdGUgPSBhcHBseVRvVGFnLmJpbmQobnVsbCwgc3R5bGVFbGVtZW50KVxuICAgIHJlbW92ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHN0eWxlRWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHN0eWxlRWxlbWVudClcbiAgICB9XG4gIH1cblxuICB1cGRhdGUob2JqKVxuXG4gIHJldHVybiBmdW5jdGlvbiB1cGRhdGVTdHlsZSAobmV3T2JqIC8qIFN0eWxlT2JqZWN0UGFydCAqLykge1xuICAgIGlmIChuZXdPYmopIHtcbiAgICAgIGlmIChuZXdPYmouY3NzID09PSBvYmouY3NzICYmXG4gICAgICAgICAgbmV3T2JqLm1lZGlhID09PSBvYmoubWVkaWEgJiZcbiAgICAgICAgICBuZXdPYmouc291cmNlTWFwID09PSBvYmouc291cmNlTWFwKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgdXBkYXRlKG9iaiA9IG5ld09iailcbiAgICB9IGVsc2Uge1xuICAgICAgcmVtb3ZlKClcbiAgICB9XG4gIH1cbn1cblxudmFyIHJlcGxhY2VUZXh0ID0gKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHRleHRTdG9yZSA9IFtdXG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChpbmRleCwgcmVwbGFjZW1lbnQpIHtcbiAgICB0ZXh0U3RvcmVbaW5kZXhdID0gcmVwbGFjZW1lbnRcbiAgICByZXR1cm4gdGV4dFN0b3JlLmZpbHRlcihCb29sZWFuKS5qb2luKCdcXG4nKVxuICB9XG59KSgpXG5cbmZ1bmN0aW9uIGFwcGx5VG9TaW5nbGV0b25UYWcgKHN0eWxlRWxlbWVudCwgaW5kZXgsIHJlbW92ZSwgb2JqKSB7XG4gIHZhciBjc3MgPSByZW1vdmUgPyAnJyA6IG9iai5jc3NcblxuICBpZiAoc3R5bGVFbGVtZW50LnN0eWxlU2hlZXQpIHtcbiAgICBzdHlsZUVsZW1lbnQuc3R5bGVTaGVldC5jc3NUZXh0ID0gcmVwbGFjZVRleHQoaW5kZXgsIGNzcylcbiAgfSBlbHNlIHtcbiAgICB2YXIgY3NzTm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcylcbiAgICB2YXIgY2hpbGROb2RlcyA9IHN0eWxlRWxlbWVudC5jaGlsZE5vZGVzXG4gICAgaWYgKGNoaWxkTm9kZXNbaW5kZXhdKSBzdHlsZUVsZW1lbnQucmVtb3ZlQ2hpbGQoY2hpbGROb2Rlc1tpbmRleF0pXG4gICAgaWYgKGNoaWxkTm9kZXMubGVuZ3RoKSB7XG4gICAgICBzdHlsZUVsZW1lbnQuaW5zZXJ0QmVmb3JlKGNzc05vZGUsIGNoaWxkTm9kZXNbaW5kZXhdKVxuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoY3NzTm9kZSlcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYXBwbHlUb1RhZyAoc3R5bGVFbGVtZW50LCBvYmopIHtcbiAgdmFyIGNzcyA9IG9iai5jc3NcbiAgdmFyIG1lZGlhID0gb2JqLm1lZGlhXG4gIHZhciBzb3VyY2VNYXAgPSBvYmouc291cmNlTWFwXG5cbiAgaWYgKG1lZGlhKSB7XG4gICAgc3R5bGVFbGVtZW50LnNldEF0dHJpYnV0ZSgnbWVkaWEnLCBtZWRpYSlcbiAgfVxuICBpZiAob3B0aW9ucy5zc3JJZCkge1xuICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoc3NySWRLZXksIG9iai5pZClcbiAgfVxuXG4gIGlmIChzb3VyY2VNYXApIHtcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5jaHJvbWUuY29tL2RldnRvb2xzL2RvY3MvamF2YXNjcmlwdC1kZWJ1Z2dpbmdcbiAgICAvLyB0aGlzIG1ha2VzIHNvdXJjZSBtYXBzIGluc2lkZSBzdHlsZSB0YWdzIHdvcmsgcHJvcGVybHkgaW4gQ2hyb21lXG4gICAgY3NzICs9ICdcXG4vKiMgc291cmNlVVJMPScgKyBzb3VyY2VNYXAuc291cmNlc1swXSArICcgKi8nXG4gICAgLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMjY2MDM4NzVcbiAgICBjc3MgKz0gJ1xcbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsJyArIGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpKSkgKyAnICovJ1xuICB9XG5cbiAgaWYgKHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0KSB7XG4gICAgc3R5bGVFbGVtZW50LnN0eWxlU2hlZXQuY3NzVGV4dCA9IGNzc1xuICB9IGVsc2Uge1xuICAgIHdoaWxlIChzdHlsZUVsZW1lbnQuZmlyc3RDaGlsZCkge1xuICAgICAgc3R5bGVFbGVtZW50LnJlbW92ZUNoaWxkKHN0eWxlRWxlbWVudC5maXJzdENoaWxkKVxuICAgIH1cbiAgICBzdHlsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSlcbiAgfVxufVxuIiwiLyoqXG4gKiBUcmFuc2xhdGVzIHRoZSBsaXN0IGZvcm1hdCBwcm9kdWNlZCBieSBjc3MtbG9hZGVyIGludG8gc29tZXRoaW5nXG4gKiBlYXNpZXIgdG8gbWFuaXB1bGF0ZS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbGlzdFRvU3R5bGVzIChwYXJlbnRJZCwgbGlzdCkge1xuICB2YXIgc3R5bGVzID0gW11cbiAgdmFyIG5ld1N0eWxlcyA9IHt9XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpdGVtID0gbGlzdFtpXVxuICAgIHZhciBpZCA9IGl0ZW1bMF1cbiAgICB2YXIgY3NzID0gaXRlbVsxXVxuICAgIHZhciBtZWRpYSA9IGl0ZW1bMl1cbiAgICB2YXIgc291cmNlTWFwID0gaXRlbVszXVxuICAgIHZhciBwYXJ0ID0ge1xuICAgICAgaWQ6IHBhcmVudElkICsgJzonICsgaSxcbiAgICAgIGNzczogY3NzLFxuICAgICAgbWVkaWE6IG1lZGlhLFxuICAgICAgc291cmNlTWFwOiBzb3VyY2VNYXBcbiAgICB9XG4gICAgaWYgKCFuZXdTdHlsZXNbaWRdKSB7XG4gICAgICBzdHlsZXMucHVzaChuZXdTdHlsZXNbaWRdID0geyBpZDogaWQsIHBhcnRzOiBbcGFydF0gfSlcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3U3R5bGVzW2lkXS5wYXJ0cy5wdXNoKHBhcnQpXG4gICAgfVxuICB9XG4gIHJldHVybiBzdHlsZXNcbn1cbiIsIi8qIVxuICogVnVlLmpzIHYyLjYuMTRcbiAqIChjKSAyMDE0LTIwMjEgRXZhbiBZb3VcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cbiAqL1xuLyogICovXG5cbnZhciBlbXB0eU9iamVjdCA9IE9iamVjdC5mcmVlemUoe30pO1xuXG4vLyBUaGVzZSBoZWxwZXJzIHByb2R1Y2UgYmV0dGVyIFZNIGNvZGUgaW4gSlMgZW5naW5lcyBkdWUgdG8gdGhlaXJcbi8vIGV4cGxpY2l0bmVzcyBhbmQgZnVuY3Rpb24gaW5saW5pbmcuXG5mdW5jdGlvbiBpc1VuZGVmICh2KSB7XG4gIHJldHVybiB2ID09PSB1bmRlZmluZWQgfHwgdiA9PT0gbnVsbFxufVxuXG5mdW5jdGlvbiBpc0RlZiAodikge1xuICByZXR1cm4gdiAhPT0gdW5kZWZpbmVkICYmIHYgIT09IG51bGxcbn1cblxuZnVuY3Rpb24gaXNUcnVlICh2KSB7XG4gIHJldHVybiB2ID09PSB0cnVlXG59XG5cbmZ1bmN0aW9uIGlzRmFsc2UgKHYpIHtcbiAgcmV0dXJuIHYgPT09IGZhbHNlXG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdmFsdWUgaXMgcHJpbWl0aXZlLlxuICovXG5mdW5jdGlvbiBpc1ByaW1pdGl2ZSAodmFsdWUpIHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8XG4gICAgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyB8fFxuICAgIC8vICRmbG93LWRpc2FibGUtbGluZVxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ3N5bWJvbCcgfHxcbiAgICB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJ1xuICApXG59XG5cbi8qKlxuICogUXVpY2sgb2JqZWN0IGNoZWNrIC0gdGhpcyBpcyBwcmltYXJpbHkgdXNlZCB0byB0ZWxsXG4gKiBPYmplY3RzIGZyb20gcHJpbWl0aXZlIHZhbHVlcyB3aGVuIHdlIGtub3cgdGhlIHZhbHVlXG4gKiBpcyBhIEpTT04tY29tcGxpYW50IHR5cGUuXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0IChvYmopIHtcbiAgcmV0dXJuIG9iaiAhPT0gbnVsbCAmJiB0eXBlb2Ygb2JqID09PSAnb2JqZWN0J1xufVxuXG4vKipcbiAqIEdldCB0aGUgcmF3IHR5cGUgc3RyaW5nIG9mIGEgdmFsdWUsIGUuZy4sIFtvYmplY3QgT2JqZWN0XS5cbiAqL1xudmFyIF90b1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG5cbmZ1bmN0aW9uIHRvUmF3VHlwZSAodmFsdWUpIHtcbiAgcmV0dXJuIF90b1N0cmluZy5jYWxsKHZhbHVlKS5zbGljZSg4LCAtMSlcbn1cblxuLyoqXG4gKiBTdHJpY3Qgb2JqZWN0IHR5cGUgY2hlY2suIE9ubHkgcmV0dXJucyB0cnVlXG4gKiBmb3IgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3RzLlxuICovXG5mdW5jdGlvbiBpc1BsYWluT2JqZWN0IChvYmopIHtcbiAgcmV0dXJuIF90b1N0cmluZy5jYWxsKG9iaikgPT09ICdbb2JqZWN0IE9iamVjdF0nXG59XG5cbmZ1bmN0aW9uIGlzUmVnRXhwICh2KSB7XG4gIHJldHVybiBfdG9TdHJpbmcuY2FsbCh2KSA9PT0gJ1tvYmplY3QgUmVnRXhwXSdcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB2YWwgaXMgYSB2YWxpZCBhcnJheSBpbmRleC5cbiAqL1xuZnVuY3Rpb24gaXNWYWxpZEFycmF5SW5kZXggKHZhbCkge1xuICB2YXIgbiA9IHBhcnNlRmxvYXQoU3RyaW5nKHZhbCkpO1xuICByZXR1cm4gbiA+PSAwICYmIE1hdGguZmxvb3IobikgPT09IG4gJiYgaXNGaW5pdGUodmFsKVxufVxuXG5mdW5jdGlvbiBpc1Byb21pc2UgKHZhbCkge1xuICByZXR1cm4gKFxuICAgIGlzRGVmKHZhbCkgJiZcbiAgICB0eXBlb2YgdmFsLnRoZW4gPT09ICdmdW5jdGlvbicgJiZcbiAgICB0eXBlb2YgdmFsLmNhdGNoID09PSAnZnVuY3Rpb24nXG4gIClcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgdmFsdWUgdG8gYSBzdHJpbmcgdGhhdCBpcyBhY3R1YWxseSByZW5kZXJlZC5cbiAqL1xuZnVuY3Rpb24gdG9TdHJpbmcgKHZhbCkge1xuICByZXR1cm4gdmFsID09IG51bGxcbiAgICA/ICcnXG4gICAgOiBBcnJheS5pc0FycmF5KHZhbCkgfHwgKGlzUGxhaW5PYmplY3QodmFsKSAmJiB2YWwudG9TdHJpbmcgPT09IF90b1N0cmluZylcbiAgICAgID8gSlNPTi5zdHJpbmdpZnkodmFsLCBudWxsLCAyKVxuICAgICAgOiBTdHJpbmcodmFsKVxufVxuXG4vKipcbiAqIENvbnZlcnQgYW4gaW5wdXQgdmFsdWUgdG8gYSBudW1iZXIgZm9yIHBlcnNpc3RlbmNlLlxuICogSWYgdGhlIGNvbnZlcnNpb24gZmFpbHMsIHJldHVybiBvcmlnaW5hbCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIHRvTnVtYmVyICh2YWwpIHtcbiAgdmFyIG4gPSBwYXJzZUZsb2F0KHZhbCk7XG4gIHJldHVybiBpc05hTihuKSA/IHZhbCA6IG5cbn1cblxuLyoqXG4gKiBNYWtlIGEgbWFwIGFuZCByZXR1cm4gYSBmdW5jdGlvbiBmb3IgY2hlY2tpbmcgaWYgYSBrZXlcbiAqIGlzIGluIHRoYXQgbWFwLlxuICovXG5mdW5jdGlvbiBtYWtlTWFwIChcbiAgc3RyLFxuICBleHBlY3RzTG93ZXJDYXNlXG4pIHtcbiAgdmFyIG1hcCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIHZhciBsaXN0ID0gc3RyLnNwbGl0KCcsJyk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgIG1hcFtsaXN0W2ldXSA9IHRydWU7XG4gIH1cbiAgcmV0dXJuIGV4cGVjdHNMb3dlckNhc2VcbiAgICA/IGZ1bmN0aW9uICh2YWwpIHsgcmV0dXJuIG1hcFt2YWwudG9Mb3dlckNhc2UoKV07IH1cbiAgICA6IGZ1bmN0aW9uICh2YWwpIHsgcmV0dXJuIG1hcFt2YWxdOyB9XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYSB0YWcgaXMgYSBidWlsdC1pbiB0YWcuXG4gKi9cbnZhciBpc0J1aWx0SW5UYWcgPSBtYWtlTWFwKCdzbG90LGNvbXBvbmVudCcsIHRydWUpO1xuXG4vKipcbiAqIENoZWNrIGlmIGFuIGF0dHJpYnV0ZSBpcyBhIHJlc2VydmVkIGF0dHJpYnV0ZS5cbiAqL1xudmFyIGlzUmVzZXJ2ZWRBdHRyaWJ1dGUgPSBtYWtlTWFwKCdrZXkscmVmLHNsb3Qsc2xvdC1zY29wZSxpcycpO1xuXG4vKipcbiAqIFJlbW92ZSBhbiBpdGVtIGZyb20gYW4gYXJyYXkuXG4gKi9cbmZ1bmN0aW9uIHJlbW92ZSAoYXJyLCBpdGVtKSB7XG4gIGlmIChhcnIubGVuZ3RoKSB7XG4gICAgdmFyIGluZGV4ID0gYXJyLmluZGV4T2YoaXRlbSk7XG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIHJldHVybiBhcnIuc3BsaWNlKGluZGV4LCAxKVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIENoZWNrIHdoZXRoZXIgYW4gb2JqZWN0IGhhcyB0aGUgcHJvcGVydHkuXG4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5mdW5jdGlvbiBoYXNPd24gKG9iaiwga2V5KSB7XG4gIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KVxufVxuXG4vKipcbiAqIENyZWF0ZSBhIGNhY2hlZCB2ZXJzaW9uIG9mIGEgcHVyZSBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gY2FjaGVkIChmbikge1xuICB2YXIgY2FjaGUgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICByZXR1cm4gKGZ1bmN0aW9uIGNhY2hlZEZuIChzdHIpIHtcbiAgICB2YXIgaGl0ID0gY2FjaGVbc3RyXTtcbiAgICByZXR1cm4gaGl0IHx8IChjYWNoZVtzdHJdID0gZm4oc3RyKSlcbiAgfSlcbn1cblxuLyoqXG4gKiBDYW1lbGl6ZSBhIGh5cGhlbi1kZWxpbWl0ZWQgc3RyaW5nLlxuICovXG52YXIgY2FtZWxpemVSRSA9IC8tKFxcdykvZztcbnZhciBjYW1lbGl6ZSA9IGNhY2hlZChmdW5jdGlvbiAoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZShjYW1lbGl6ZVJFLCBmdW5jdGlvbiAoXywgYykgeyByZXR1cm4gYyA/IGMudG9VcHBlckNhc2UoKSA6ICcnOyB9KVxufSk7XG5cbi8qKlxuICogQ2FwaXRhbGl6ZSBhIHN0cmluZy5cbiAqL1xudmFyIGNhcGl0YWxpemUgPSBjYWNoZWQoZnVuY3Rpb24gKHN0cikge1xuICByZXR1cm4gc3RyLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc3RyLnNsaWNlKDEpXG59KTtcblxuLyoqXG4gKiBIeXBoZW5hdGUgYSBjYW1lbENhc2Ugc3RyaW5nLlxuICovXG52YXIgaHlwaGVuYXRlUkUgPSAvXFxCKFtBLVpdKS9nO1xudmFyIGh5cGhlbmF0ZSA9IGNhY2hlZChmdW5jdGlvbiAoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZShoeXBoZW5hdGVSRSwgJy0kMScpLnRvTG93ZXJDYXNlKClcbn0pO1xuXG4vKipcbiAqIFNpbXBsZSBiaW5kIHBvbHlmaWxsIGZvciBlbnZpcm9ubWVudHMgdGhhdCBkbyBub3Qgc3VwcG9ydCBpdCxcbiAqIGUuZy4sIFBoYW50b21KUyAxLnguIFRlY2huaWNhbGx5LCB3ZSBkb24ndCBuZWVkIHRoaXMgYW55bW9yZVxuICogc2luY2UgbmF0aXZlIGJpbmQgaXMgbm93IHBlcmZvcm1hbnQgZW5vdWdoIGluIG1vc3QgYnJvd3NlcnMuXG4gKiBCdXQgcmVtb3ZpbmcgaXQgd291bGQgbWVhbiBicmVha2luZyBjb2RlIHRoYXQgd2FzIGFibGUgdG8gcnVuIGluXG4gKiBQaGFudG9tSlMgMS54LCBzbyB0aGlzIG11c3QgYmUga2VwdCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbiAqL1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuZnVuY3Rpb24gcG9seWZpbGxCaW5kIChmbiwgY3R4KSB7XG4gIGZ1bmN0aW9uIGJvdW5kRm4gKGEpIHtcbiAgICB2YXIgbCA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgcmV0dXJuIGxcbiAgICAgID8gbCA+IDFcbiAgICAgICAgPyBmbi5hcHBseShjdHgsIGFyZ3VtZW50cylcbiAgICAgICAgOiBmbi5jYWxsKGN0eCwgYSlcbiAgICAgIDogZm4uY2FsbChjdHgpXG4gIH1cblxuICBib3VuZEZuLl9sZW5ndGggPSBmbi5sZW5ndGg7XG4gIHJldHVybiBib3VuZEZuXG59XG5cbmZ1bmN0aW9uIG5hdGl2ZUJpbmQgKGZuLCBjdHgpIHtcbiAgcmV0dXJuIGZuLmJpbmQoY3R4KVxufVxuXG52YXIgYmluZCA9IEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kXG4gID8gbmF0aXZlQmluZFxuICA6IHBvbHlmaWxsQmluZDtcblxuLyoqXG4gKiBDb252ZXJ0IGFuIEFycmF5LWxpa2Ugb2JqZWN0IHRvIGEgcmVhbCBBcnJheS5cbiAqL1xuZnVuY3Rpb24gdG9BcnJheSAobGlzdCwgc3RhcnQpIHtcbiAgc3RhcnQgPSBzdGFydCB8fCAwO1xuICB2YXIgaSA9IGxpc3QubGVuZ3RoIC0gc3RhcnQ7XG4gIHZhciByZXQgPSBuZXcgQXJyYXkoaSk7XG4gIHdoaWxlIChpLS0pIHtcbiAgICByZXRbaV0gPSBsaXN0W2kgKyBzdGFydF07XG4gIH1cbiAgcmV0dXJuIHJldFxufVxuXG4vKipcbiAqIE1peCBwcm9wZXJ0aWVzIGludG8gdGFyZ2V0IG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gZXh0ZW5kICh0bywgX2Zyb20pIHtcbiAgZm9yICh2YXIga2V5IGluIF9mcm9tKSB7XG4gICAgdG9ba2V5XSA9IF9mcm9tW2tleV07XG4gIH1cbiAgcmV0dXJuIHRvXG59XG5cbi8qKlxuICogTWVyZ2UgYW4gQXJyYXkgb2YgT2JqZWN0cyBpbnRvIGEgc2luZ2xlIE9iamVjdC5cbiAqL1xuZnVuY3Rpb24gdG9PYmplY3QgKGFycikge1xuICB2YXIgcmVzID0ge307XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGFycltpXSkge1xuICAgICAgZXh0ZW5kKHJlcywgYXJyW2ldKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuXG4vKipcbiAqIFBlcmZvcm0gbm8gb3BlcmF0aW9uLlxuICogU3R1YmJpbmcgYXJncyB0byBtYWtlIEZsb3cgaGFwcHkgd2l0aG91dCBsZWF2aW5nIHVzZWxlc3MgdHJhbnNwaWxlZCBjb2RlXG4gKiB3aXRoIC4uLnJlc3QgKGh0dHBzOi8vZmxvdy5vcmcvYmxvZy8yMDE3LzA1LzA3L1N0cmljdC1GdW5jdGlvbi1DYWxsLUFyaXR5LykuXG4gKi9cbmZ1bmN0aW9uIG5vb3AgKGEsIGIsIGMpIHt9XG5cbi8qKlxuICogQWx3YXlzIHJldHVybiBmYWxzZS5cbiAqL1xudmFyIG5vID0gZnVuY3Rpb24gKGEsIGIsIGMpIHsgcmV0dXJuIGZhbHNlOyB9O1xuXG4vKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC12YXJzICovXG5cbi8qKlxuICogUmV0dXJuIHRoZSBzYW1lIHZhbHVlLlxuICovXG52YXIgaWRlbnRpdHkgPSBmdW5jdGlvbiAoXykgeyByZXR1cm4gXzsgfTtcblxuLyoqXG4gKiBDaGVjayBpZiB0d28gdmFsdWVzIGFyZSBsb29zZWx5IGVxdWFsIC0gdGhhdCBpcyxcbiAqIGlmIHRoZXkgYXJlIHBsYWluIG9iamVjdHMsIGRvIHRoZXkgaGF2ZSB0aGUgc2FtZSBzaGFwZT9cbiAqL1xuZnVuY3Rpb24gbG9vc2VFcXVhbCAoYSwgYikge1xuICBpZiAoYSA9PT0gYikgeyByZXR1cm4gdHJ1ZSB9XG4gIHZhciBpc09iamVjdEEgPSBpc09iamVjdChhKTtcbiAgdmFyIGlzT2JqZWN0QiA9IGlzT2JqZWN0KGIpO1xuICBpZiAoaXNPYmplY3RBICYmIGlzT2JqZWN0Qikge1xuICAgIHRyeSB7XG4gICAgICB2YXIgaXNBcnJheUEgPSBBcnJheS5pc0FycmF5KGEpO1xuICAgICAgdmFyIGlzQXJyYXlCID0gQXJyYXkuaXNBcnJheShiKTtcbiAgICAgIGlmIChpc0FycmF5QSAmJiBpc0FycmF5Qikge1xuICAgICAgICByZXR1cm4gYS5sZW5ndGggPT09IGIubGVuZ3RoICYmIGEuZXZlcnkoZnVuY3Rpb24gKGUsIGkpIHtcbiAgICAgICAgICByZXR1cm4gbG9vc2VFcXVhbChlLCBiW2ldKVxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIGlmIChhIGluc3RhbmNlb2YgRGF0ZSAmJiBiIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICByZXR1cm4gYS5nZXRUaW1lKCkgPT09IGIuZ2V0VGltZSgpXG4gICAgICB9IGVsc2UgaWYgKCFpc0FycmF5QSAmJiAhaXNBcnJheUIpIHtcbiAgICAgICAgdmFyIGtleXNBID0gT2JqZWN0LmtleXMoYSk7XG4gICAgICAgIHZhciBrZXlzQiA9IE9iamVjdC5rZXlzKGIpO1xuICAgICAgICByZXR1cm4ga2V5c0EubGVuZ3RoID09PSBrZXlzQi5sZW5ndGggJiYga2V5c0EuZXZlcnkoZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgIHJldHVybiBsb29zZUVxdWFsKGFba2V5XSwgYltrZXldKVxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfSBlbHNlIGlmICghaXNPYmplY3RBICYmICFpc09iamVjdEIpIHtcbiAgICByZXR1cm4gU3RyaW5nKGEpID09PSBTdHJpbmcoYilcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybiB0aGUgZmlyc3QgaW5kZXggYXQgd2hpY2ggYSBsb29zZWx5IGVxdWFsIHZhbHVlIGNhbiBiZVxuICogZm91bmQgaW4gdGhlIGFycmF5IChpZiB2YWx1ZSBpcyBhIHBsYWluIG9iamVjdCwgdGhlIGFycmF5IG11c3RcbiAqIGNvbnRhaW4gYW4gb2JqZWN0IG9mIHRoZSBzYW1lIHNoYXBlKSwgb3IgLTEgaWYgaXQgaXMgbm90IHByZXNlbnQuXG4gKi9cbmZ1bmN0aW9uIGxvb3NlSW5kZXhPZiAoYXJyLCB2YWwpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAobG9vc2VFcXVhbChhcnJbaV0sIHZhbCkpIHsgcmV0dXJuIGkgfVxuICB9XG4gIHJldHVybiAtMVxufVxuXG4vKipcbiAqIEVuc3VyZSBhIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbmx5IG9uY2UuXG4gKi9cbmZ1bmN0aW9uIG9uY2UgKGZuKSB7XG4gIHZhciBjYWxsZWQgPSBmYWxzZTtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIWNhbGxlZCkge1xuICAgICAgY2FsbGVkID0gdHJ1ZTtcbiAgICAgIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgfVxuICB9XG59XG5cbnZhciBTU1JfQVRUUiA9ICdkYXRhLXNlcnZlci1yZW5kZXJlZCc7XG5cbnZhciBBU1NFVF9UWVBFUyA9IFtcbiAgJ2NvbXBvbmVudCcsXG4gICdkaXJlY3RpdmUnLFxuICAnZmlsdGVyJ1xuXTtcblxudmFyIExJRkVDWUNMRV9IT09LUyA9IFtcbiAgJ2JlZm9yZUNyZWF0ZScsXG4gICdjcmVhdGVkJyxcbiAgJ2JlZm9yZU1vdW50JyxcbiAgJ21vdW50ZWQnLFxuICAnYmVmb3JlVXBkYXRlJyxcbiAgJ3VwZGF0ZWQnLFxuICAnYmVmb3JlRGVzdHJveScsXG4gICdkZXN0cm95ZWQnLFxuICAnYWN0aXZhdGVkJyxcbiAgJ2RlYWN0aXZhdGVkJyxcbiAgJ2Vycm9yQ2FwdHVyZWQnLFxuICAnc2VydmVyUHJlZmV0Y2gnXG5dO1xuXG4vKiAgKi9cblxuXG5cbnZhciBjb25maWcgPSAoe1xuICAvKipcbiAgICogT3B0aW9uIG1lcmdlIHN0cmF0ZWdpZXMgKHVzZWQgaW4gY29yZS91dGlsL29wdGlvbnMpXG4gICAqL1xuICAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbiAgb3B0aW9uTWVyZ2VTdHJhdGVnaWVzOiBPYmplY3QuY3JlYXRlKG51bGwpLFxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHN1cHByZXNzIHdhcm5pbmdzLlxuICAgKi9cbiAgc2lsZW50OiBmYWxzZSxcblxuICAvKipcbiAgICogU2hvdyBwcm9kdWN0aW9uIG1vZGUgdGlwIG1lc3NhZ2Ugb24gYm9vdD9cbiAgICovXG4gIHByb2R1Y3Rpb25UaXA6IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicsXG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIGRldnRvb2xzXG4gICAqL1xuICBkZXZ0b29sczogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyxcblxuICAvKipcbiAgICogV2hldGhlciB0byByZWNvcmQgcGVyZlxuICAgKi9cbiAgcGVyZm9ybWFuY2U6IGZhbHNlLFxuXG4gIC8qKlxuICAgKiBFcnJvciBoYW5kbGVyIGZvciB3YXRjaGVyIGVycm9yc1xuICAgKi9cbiAgZXJyb3JIYW5kbGVyOiBudWxsLFxuXG4gIC8qKlxuICAgKiBXYXJuIGhhbmRsZXIgZm9yIHdhdGNoZXIgd2FybnNcbiAgICovXG4gIHdhcm5IYW5kbGVyOiBudWxsLFxuXG4gIC8qKlxuICAgKiBJZ25vcmUgY2VydGFpbiBjdXN0b20gZWxlbWVudHNcbiAgICovXG4gIGlnbm9yZWRFbGVtZW50czogW10sXG5cbiAgLyoqXG4gICAqIEN1c3RvbSB1c2VyIGtleSBhbGlhc2VzIGZvciB2LW9uXG4gICAqL1xuICAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbiAga2V5Q29kZXM6IE9iamVjdC5jcmVhdGUobnVsbCksXG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgdGFnIGlzIHJlc2VydmVkIHNvIHRoYXQgaXQgY2Fubm90IGJlIHJlZ2lzdGVyZWQgYXMgYVxuICAgKiBjb21wb25lbnQuIFRoaXMgaXMgcGxhdGZvcm0tZGVwZW5kZW50IGFuZCBtYXkgYmUgb3ZlcndyaXR0ZW4uXG4gICAqL1xuICBpc1Jlc2VydmVkVGFnOiBubyxcblxuICAvKipcbiAgICogQ2hlY2sgaWYgYW4gYXR0cmlidXRlIGlzIHJlc2VydmVkIHNvIHRoYXQgaXQgY2Fubm90IGJlIHVzZWQgYXMgYSBjb21wb25lbnRcbiAgICogcHJvcC4gVGhpcyBpcyBwbGF0Zm9ybS1kZXBlbmRlbnQgYW5kIG1heSBiZSBvdmVyd3JpdHRlbi5cbiAgICovXG4gIGlzUmVzZXJ2ZWRBdHRyOiBubyxcblxuICAvKipcbiAgICogQ2hlY2sgaWYgYSB0YWcgaXMgYW4gdW5rbm93biBlbGVtZW50LlxuICAgKiBQbGF0Zm9ybS1kZXBlbmRlbnQuXG4gICAqL1xuICBpc1Vua25vd25FbGVtZW50OiBubyxcblxuICAvKipcbiAgICogR2V0IHRoZSBuYW1lc3BhY2Ugb2YgYW4gZWxlbWVudFxuICAgKi9cbiAgZ2V0VGFnTmFtZXNwYWNlOiBub29wLFxuXG4gIC8qKlxuICAgKiBQYXJzZSB0aGUgcmVhbCB0YWcgbmFtZSBmb3IgdGhlIHNwZWNpZmljIHBsYXRmb3JtLlxuICAgKi9cbiAgcGFyc2VQbGF0Zm9ybVRhZ05hbWU6IGlkZW50aXR5LFxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhbiBhdHRyaWJ1dGUgbXVzdCBiZSBib3VuZCB1c2luZyBwcm9wZXJ0eSwgZS5nLiB2YWx1ZVxuICAgKiBQbGF0Zm9ybS1kZXBlbmRlbnQuXG4gICAqL1xuICBtdXN0VXNlUHJvcDogbm8sXG5cbiAgLyoqXG4gICAqIFBlcmZvcm0gdXBkYXRlcyBhc3luY2hyb25vdXNseS4gSW50ZW5kZWQgdG8gYmUgdXNlZCBieSBWdWUgVGVzdCBVdGlsc1xuICAgKiBUaGlzIHdpbGwgc2lnbmlmaWNhbnRseSByZWR1Y2UgcGVyZm9ybWFuY2UgaWYgc2V0IHRvIGZhbHNlLlxuICAgKi9cbiAgYXN5bmM6IHRydWUsXG5cbiAgLyoqXG4gICAqIEV4cG9zZWQgZm9yIGxlZ2FjeSByZWFzb25zXG4gICAqL1xuICBfbGlmZWN5Y2xlSG9va3M6IExJRkVDWUNMRV9IT09LU1xufSk7XG5cbi8qICAqL1xuXG4vKipcbiAqIHVuaWNvZGUgbGV0dGVycyB1c2VkIGZvciBwYXJzaW5nIGh0bWwgdGFncywgY29tcG9uZW50IG5hbWVzIGFuZCBwcm9wZXJ0eSBwYXRocy5cbiAqIHVzaW5nIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNTMvc2VtYW50aWNzLXNjcmlwdGluZy5odG1sI3BvdGVudGlhbGN1c3RvbWVsZW1lbnRuYW1lXG4gKiBza2lwcGluZyBcXHUxMDAwMC1cXHVFRkZGRiBkdWUgdG8gaXQgZnJlZXppbmcgdXAgUGhhbnRvbUpTXG4gKi9cbnZhciB1bmljb2RlUmVnRXhwID0gL2EtekEtWlxcdTAwQjdcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAzN0RcXHUwMzdGLVxcdTFGRkZcXHUyMDBDLVxcdTIwMERcXHUyMDNGLVxcdTIwNDBcXHUyMDcwLVxcdTIxOEZcXHUyQzAwLVxcdTJGRUZcXHUzMDAxLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRkQvO1xuXG4vKipcbiAqIENoZWNrIGlmIGEgc3RyaW5nIHN0YXJ0cyB3aXRoICQgb3IgX1xuICovXG5mdW5jdGlvbiBpc1Jlc2VydmVkIChzdHIpIHtcbiAgdmFyIGMgPSAoc3RyICsgJycpLmNoYXJDb2RlQXQoMCk7XG4gIHJldHVybiBjID09PSAweDI0IHx8IGMgPT09IDB4NUZcbn1cblxuLyoqXG4gKiBEZWZpbmUgYSBwcm9wZXJ0eS5cbiAqL1xuZnVuY3Rpb24gZGVmIChvYmosIGtleSwgdmFsLCBlbnVtZXJhYmxlKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwge1xuICAgIHZhbHVlOiB2YWwsXG4gICAgZW51bWVyYWJsZTogISFlbnVtZXJhYmxlLFxuICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICB9KTtcbn1cblxuLyoqXG4gKiBQYXJzZSBzaW1wbGUgcGF0aC5cbiAqL1xudmFyIGJhaWxSRSA9IG5ldyBSZWdFeHAoKFwiW15cIiArICh1bmljb2RlUmVnRXhwLnNvdXJjZSkgKyBcIi4kX1xcXFxkXVwiKSk7XG5mdW5jdGlvbiBwYXJzZVBhdGggKHBhdGgpIHtcbiAgaWYgKGJhaWxSRS50ZXN0KHBhdGgpKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgdmFyIHNlZ21lbnRzID0gcGF0aC5zcGxpdCgnLicpO1xuICByZXR1cm4gZnVuY3Rpb24gKG9iaikge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VnbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICghb2JqKSB7IHJldHVybiB9XG4gICAgICBvYmogPSBvYmpbc2VnbWVudHNbaV1dO1xuICAgIH1cbiAgICByZXR1cm4gb2JqXG4gIH1cbn1cblxuLyogICovXG5cbi8vIGNhbiB3ZSB1c2UgX19wcm90b19fP1xudmFyIGhhc1Byb3RvID0gJ19fcHJvdG9fXycgaW4ge307XG5cbi8vIEJyb3dzZXIgZW52aXJvbm1lbnQgc25pZmZpbmdcbnZhciBpbkJyb3dzZXIgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJztcbnZhciBpbldlZXggPSB0eXBlb2YgV1hFbnZpcm9ubWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgISFXWEVudmlyb25tZW50LnBsYXRmb3JtO1xudmFyIHdlZXhQbGF0Zm9ybSA9IGluV2VleCAmJiBXWEVudmlyb25tZW50LnBsYXRmb3JtLnRvTG93ZXJDYXNlKCk7XG52YXIgVUEgPSBpbkJyb3dzZXIgJiYgd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTtcbnZhciBpc0lFID0gVUEgJiYgL21zaWV8dHJpZGVudC8udGVzdChVQSk7XG52YXIgaXNJRTkgPSBVQSAmJiBVQS5pbmRleE9mKCdtc2llIDkuMCcpID4gMDtcbnZhciBpc0VkZ2UgPSBVQSAmJiBVQS5pbmRleE9mKCdlZGdlLycpID4gMDtcbnZhciBpc0FuZHJvaWQgPSAoVUEgJiYgVUEuaW5kZXhPZignYW5kcm9pZCcpID4gMCkgfHwgKHdlZXhQbGF0Zm9ybSA9PT0gJ2FuZHJvaWQnKTtcbnZhciBpc0lPUyA9IChVQSAmJiAvaXBob25lfGlwYWR8aXBvZHxpb3MvLnRlc3QoVUEpKSB8fCAod2VleFBsYXRmb3JtID09PSAnaW9zJyk7XG52YXIgaXNDaHJvbWUgPSBVQSAmJiAvY2hyb21lXFwvXFxkKy8udGVzdChVQSkgJiYgIWlzRWRnZTtcbnZhciBpc1BoYW50b21KUyA9IFVBICYmIC9waGFudG9tanMvLnRlc3QoVUEpO1xudmFyIGlzRkYgPSBVQSAmJiBVQS5tYXRjaCgvZmlyZWZveFxcLyhcXGQrKS8pO1xuXG4vLyBGaXJlZm94IGhhcyBhIFwid2F0Y2hcIiBmdW5jdGlvbiBvbiBPYmplY3QucHJvdG90eXBlLi4uXG52YXIgbmF0aXZlV2F0Y2ggPSAoe30pLndhdGNoO1xuXG52YXIgc3VwcG9ydHNQYXNzaXZlID0gZmFsc2U7XG5pZiAoaW5Ccm93c2VyKSB7XG4gIHRyeSB7XG4gICAgdmFyIG9wdHMgPSB7fTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob3B0cywgJ3Bhc3NpdmUnLCAoe1xuICAgICAgZ2V0OiBmdW5jdGlvbiBnZXQgKCkge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICBzdXBwb3J0c1Bhc3NpdmUgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pKTsgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2Zsb3cvaXNzdWVzLzI4NVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd0ZXN0LXBhc3NpdmUnLCBudWxsLCBvcHRzKTtcbiAgfSBjYXRjaCAoZSkge31cbn1cblxuLy8gdGhpcyBuZWVkcyB0byBiZSBsYXp5LWV2YWxlZCBiZWNhdXNlIHZ1ZSBtYXkgYmUgcmVxdWlyZWQgYmVmb3JlXG4vLyB2dWUtc2VydmVyLXJlbmRlcmVyIGNhbiBzZXQgVlVFX0VOVlxudmFyIF9pc1NlcnZlcjtcbnZhciBpc1NlcnZlclJlbmRlcmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKF9pc1NlcnZlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKCFpbkJyb3dzZXIgJiYgIWluV2VleCAmJiB0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gZGV0ZWN0IHByZXNlbmNlIG9mIHZ1ZS1zZXJ2ZXItcmVuZGVyZXIgYW5kIGF2b2lkXG4gICAgICAvLyBXZWJwYWNrIHNoaW1taW5nIHRoZSBwcm9jZXNzXG4gICAgICBfaXNTZXJ2ZXIgPSBnbG9iYWxbJ3Byb2Nlc3MnXSAmJiBnbG9iYWxbJ3Byb2Nlc3MnXS5lbnYuVlVFX0VOViA9PT0gJ3NlcnZlcic7XG4gICAgfSBlbHNlIHtcbiAgICAgIF9pc1NlcnZlciA9IGZhbHNlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gX2lzU2VydmVyXG59O1xuXG4vLyBkZXRlY3QgZGV2dG9vbHNcbnZhciBkZXZ0b29scyA9IGluQnJvd3NlciAmJiB3aW5kb3cuX19WVUVfREVWVE9PTFNfR0xPQkFMX0hPT0tfXztcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmZ1bmN0aW9uIGlzTmF0aXZlIChDdG9yKSB7XG4gIHJldHVybiB0eXBlb2YgQ3RvciA9PT0gJ2Z1bmN0aW9uJyAmJiAvbmF0aXZlIGNvZGUvLnRlc3QoQ3Rvci50b1N0cmluZygpKVxufVxuXG52YXIgaGFzU3ltYm9sID1cbiAgdHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgaXNOYXRpdmUoU3ltYm9sKSAmJlxuICB0eXBlb2YgUmVmbGVjdCAhPT0gJ3VuZGVmaW5lZCcgJiYgaXNOYXRpdmUoUmVmbGVjdC5vd25LZXlzKTtcblxudmFyIF9TZXQ7XG4vKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi8gLy8gJGZsb3ctZGlzYWJsZS1saW5lXG5pZiAodHlwZW9mIFNldCAhPT0gJ3VuZGVmaW5lZCcgJiYgaXNOYXRpdmUoU2V0KSkge1xuICAvLyB1c2UgbmF0aXZlIFNldCB3aGVuIGF2YWlsYWJsZS5cbiAgX1NldCA9IFNldDtcbn0gZWxzZSB7XG4gIC8vIGEgbm9uLXN0YW5kYXJkIFNldCBwb2x5ZmlsbCB0aGF0IG9ubHkgd29ya3Mgd2l0aCBwcmltaXRpdmUga2V5cy5cbiAgX1NldCA9IC8qQF9fUFVSRV9fKi8oZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFNldCAoKSB7XG4gICAgICB0aGlzLnNldCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgfVxuICAgIFNldC5wcm90b3R5cGUuaGFzID0gZnVuY3Rpb24gaGFzIChrZXkpIHtcbiAgICAgIHJldHVybiB0aGlzLnNldFtrZXldID09PSB0cnVlXG4gICAgfTtcbiAgICBTZXQucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIGFkZCAoa2V5KSB7XG4gICAgICB0aGlzLnNldFtrZXldID0gdHJ1ZTtcbiAgICB9O1xuICAgIFNldC5wcm90b3R5cGUuY2xlYXIgPSBmdW5jdGlvbiBjbGVhciAoKSB7XG4gICAgICB0aGlzLnNldCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgfTtcblxuICAgIHJldHVybiBTZXQ7XG4gIH0oKSk7XG59XG5cbi8qICAqL1xuXG52YXIgd2FybiA9IG5vb3A7XG52YXIgdGlwID0gbm9vcDtcbnZhciBnZW5lcmF0ZUNvbXBvbmVudFRyYWNlID0gKG5vb3ApOyAvLyB3b3JrIGFyb3VuZCBmbG93IGNoZWNrXG52YXIgZm9ybWF0Q29tcG9uZW50TmFtZSA9IChub29wKTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFyIGhhc0NvbnNvbGUgPSB0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCc7XG4gIHZhciBjbGFzc2lmeVJFID0gLyg/Ol58Wy1fXSkoXFx3KS9nO1xuICB2YXIgY2xhc3NpZnkgPSBmdW5jdGlvbiAoc3RyKSB7IHJldHVybiBzdHJcbiAgICAucmVwbGFjZShjbGFzc2lmeVJFLCBmdW5jdGlvbiAoYykgeyByZXR1cm4gYy50b1VwcGVyQ2FzZSgpOyB9KVxuICAgIC5yZXBsYWNlKC9bLV9dL2csICcnKTsgfTtcblxuICB3YXJuID0gZnVuY3Rpb24gKG1zZywgdm0pIHtcbiAgICB2YXIgdHJhY2UgPSB2bSA/IGdlbmVyYXRlQ29tcG9uZW50VHJhY2Uodm0pIDogJyc7XG5cbiAgICBpZiAoY29uZmlnLndhcm5IYW5kbGVyKSB7XG4gICAgICBjb25maWcud2FybkhhbmRsZXIuY2FsbChudWxsLCBtc2csIHZtLCB0cmFjZSk7XG4gICAgfSBlbHNlIGlmIChoYXNDb25zb2xlICYmICghY29uZmlnLnNpbGVudCkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoKFwiW1Z1ZSB3YXJuXTogXCIgKyBtc2cgKyB0cmFjZSkpO1xuICAgIH1cbiAgfTtcblxuICB0aXAgPSBmdW5jdGlvbiAobXNnLCB2bSkge1xuICAgIGlmIChoYXNDb25zb2xlICYmICghY29uZmlnLnNpbGVudCkpIHtcbiAgICAgIGNvbnNvbGUud2FybihcIltWdWUgdGlwXTogXCIgKyBtc2cgKyAoXG4gICAgICAgIHZtID8gZ2VuZXJhdGVDb21wb25lbnRUcmFjZSh2bSkgOiAnJ1xuICAgICAgKSk7XG4gICAgfVxuICB9O1xuXG4gIGZvcm1hdENvbXBvbmVudE5hbWUgPSBmdW5jdGlvbiAodm0sIGluY2x1ZGVGaWxlKSB7XG4gICAgaWYgKHZtLiRyb290ID09PSB2bSkge1xuICAgICAgcmV0dXJuICc8Um9vdD4nXG4gICAgfVxuICAgIHZhciBvcHRpb25zID0gdHlwZW9mIHZtID09PSAnZnVuY3Rpb24nICYmIHZtLmNpZCAhPSBudWxsXG4gICAgICA/IHZtLm9wdGlvbnNcbiAgICAgIDogdm0uX2lzVnVlXG4gICAgICAgID8gdm0uJG9wdGlvbnMgfHwgdm0uY29uc3RydWN0b3Iub3B0aW9uc1xuICAgICAgICA6IHZtO1xuICAgIHZhciBuYW1lID0gb3B0aW9ucy5uYW1lIHx8IG9wdGlvbnMuX2NvbXBvbmVudFRhZztcbiAgICB2YXIgZmlsZSA9IG9wdGlvbnMuX19maWxlO1xuICAgIGlmICghbmFtZSAmJiBmaWxlKSB7XG4gICAgICB2YXIgbWF0Y2ggPSBmaWxlLm1hdGNoKC8oW14vXFxcXF0rKVxcLnZ1ZSQvKTtcbiAgICAgIG5hbWUgPSBtYXRjaCAmJiBtYXRjaFsxXTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgKG5hbWUgPyAoXCI8XCIgKyAoY2xhc3NpZnkobmFtZSkpICsgXCI+XCIpIDogXCI8QW5vbnltb3VzPlwiKSArXG4gICAgICAoZmlsZSAmJiBpbmNsdWRlRmlsZSAhPT0gZmFsc2UgPyAoXCIgYXQgXCIgKyBmaWxlKSA6ICcnKVxuICAgIClcbiAgfTtcblxuICB2YXIgcmVwZWF0ID0gZnVuY3Rpb24gKHN0ciwgbikge1xuICAgIHZhciByZXMgPSAnJztcbiAgICB3aGlsZSAobikge1xuICAgICAgaWYgKG4gJSAyID09PSAxKSB7IHJlcyArPSBzdHI7IH1cbiAgICAgIGlmIChuID4gMSkgeyBzdHIgKz0gc3RyOyB9XG4gICAgICBuID4+PSAxO1xuICAgIH1cbiAgICByZXR1cm4gcmVzXG4gIH07XG5cbiAgZ2VuZXJhdGVDb21wb25lbnRUcmFjZSA9IGZ1bmN0aW9uICh2bSkge1xuICAgIGlmICh2bS5faXNWdWUgJiYgdm0uJHBhcmVudCkge1xuICAgICAgdmFyIHRyZWUgPSBbXTtcbiAgICAgIHZhciBjdXJyZW50UmVjdXJzaXZlU2VxdWVuY2UgPSAwO1xuICAgICAgd2hpbGUgKHZtKSB7XG4gICAgICAgIGlmICh0cmVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB2YXIgbGFzdCA9IHRyZWVbdHJlZS5sZW5ndGggLSAxXTtcbiAgICAgICAgICBpZiAobGFzdC5jb25zdHJ1Y3RvciA9PT0gdm0uY29uc3RydWN0b3IpIHtcbiAgICAgICAgICAgIGN1cnJlbnRSZWN1cnNpdmVTZXF1ZW5jZSsrO1xuICAgICAgICAgICAgdm0gPSB2bS4kcGFyZW50O1xuICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnRSZWN1cnNpdmVTZXF1ZW5jZSA+IDApIHtcbiAgICAgICAgICAgIHRyZWVbdHJlZS5sZW5ndGggLSAxXSA9IFtsYXN0LCBjdXJyZW50UmVjdXJzaXZlU2VxdWVuY2VdO1xuICAgICAgICAgICAgY3VycmVudFJlY3Vyc2l2ZVNlcXVlbmNlID0gMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdHJlZS5wdXNoKHZtKTtcbiAgICAgICAgdm0gPSB2bS4kcGFyZW50O1xuICAgICAgfVxuICAgICAgcmV0dXJuICdcXG5cXG5mb3VuZCBpblxcblxcbicgKyB0cmVlXG4gICAgICAgIC5tYXAoZnVuY3Rpb24gKHZtLCBpKSB7IHJldHVybiAoXCJcIiArIChpID09PSAwID8gJy0tLT4gJyA6IHJlcGVhdCgnICcsIDUgKyBpICogMikpICsgKEFycmF5LmlzQXJyYXkodm0pXG4gICAgICAgICAgICA/ICgoZm9ybWF0Q29tcG9uZW50TmFtZSh2bVswXSkpICsgXCIuLi4gKFwiICsgKHZtWzFdKSArIFwiIHJlY3Vyc2l2ZSBjYWxscylcIilcbiAgICAgICAgICAgIDogZm9ybWF0Q29tcG9uZW50TmFtZSh2bSkpKTsgfSlcbiAgICAgICAgLmpvaW4oJ1xcbicpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAoXCJcXG5cXG4oZm91bmQgaW4gXCIgKyAoZm9ybWF0Q29tcG9uZW50TmFtZSh2bSkpICsgXCIpXCIpXG4gICAgfVxuICB9O1xufVxuXG4vKiAgKi9cblxudmFyIHVpZCA9IDA7XG5cbi8qKlxuICogQSBkZXAgaXMgYW4gb2JzZXJ2YWJsZSB0aGF0IGNhbiBoYXZlIG11bHRpcGxlXG4gKiBkaXJlY3RpdmVzIHN1YnNjcmliaW5nIHRvIGl0LlxuICovXG52YXIgRGVwID0gZnVuY3Rpb24gRGVwICgpIHtcbiAgdGhpcy5pZCA9IHVpZCsrO1xuICB0aGlzLnN1YnMgPSBbXTtcbn07XG5cbkRlcC5wcm90b3R5cGUuYWRkU3ViID0gZnVuY3Rpb24gYWRkU3ViIChzdWIpIHtcbiAgdGhpcy5zdWJzLnB1c2goc3ViKTtcbn07XG5cbkRlcC5wcm90b3R5cGUucmVtb3ZlU3ViID0gZnVuY3Rpb24gcmVtb3ZlU3ViIChzdWIpIHtcbiAgcmVtb3ZlKHRoaXMuc3Vicywgc3ViKTtcbn07XG5cbkRlcC5wcm90b3R5cGUuZGVwZW5kID0gZnVuY3Rpb24gZGVwZW5kICgpIHtcbiAgaWYgKERlcC50YXJnZXQpIHtcbiAgICBEZXAudGFyZ2V0LmFkZERlcCh0aGlzKTtcbiAgfVxufTtcblxuRGVwLnByb3RvdHlwZS5ub3RpZnkgPSBmdW5jdGlvbiBub3RpZnkgKCkge1xuICAvLyBzdGFiaWxpemUgdGhlIHN1YnNjcmliZXIgbGlzdCBmaXJzdFxuICB2YXIgc3VicyA9IHRoaXMuc3Vicy5zbGljZSgpO1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiAhY29uZmlnLmFzeW5jKSB7XG4gICAgLy8gc3VicyBhcmVuJ3Qgc29ydGVkIGluIHNjaGVkdWxlciBpZiBub3QgcnVubmluZyBhc3luY1xuICAgIC8vIHdlIG5lZWQgdG8gc29ydCB0aGVtIG5vdyB0byBtYWtlIHN1cmUgdGhleSBmaXJlIGluIGNvcnJlY3RcbiAgICAvLyBvcmRlclxuICAgIHN1YnMuc29ydChmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gYS5pZCAtIGIuaWQ7IH0pO1xuICB9XG4gIGZvciAodmFyIGkgPSAwLCBsID0gc3Vicy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBzdWJzW2ldLnVwZGF0ZSgpO1xuICB9XG59O1xuXG4vLyBUaGUgY3VycmVudCB0YXJnZXQgd2F0Y2hlciBiZWluZyBldmFsdWF0ZWQuXG4vLyBUaGlzIGlzIGdsb2JhbGx5IHVuaXF1ZSBiZWNhdXNlIG9ubHkgb25lIHdhdGNoZXJcbi8vIGNhbiBiZSBldmFsdWF0ZWQgYXQgYSB0aW1lLlxuRGVwLnRhcmdldCA9IG51bGw7XG52YXIgdGFyZ2V0U3RhY2sgPSBbXTtcblxuZnVuY3Rpb24gcHVzaFRhcmdldCAodGFyZ2V0KSB7XG4gIHRhcmdldFN0YWNrLnB1c2godGFyZ2V0KTtcbiAgRGVwLnRhcmdldCA9IHRhcmdldDtcbn1cblxuZnVuY3Rpb24gcG9wVGFyZ2V0ICgpIHtcbiAgdGFyZ2V0U3RhY2sucG9wKCk7XG4gIERlcC50YXJnZXQgPSB0YXJnZXRTdGFja1t0YXJnZXRTdGFjay5sZW5ndGggLSAxXTtcbn1cblxuLyogICovXG5cbnZhciBWTm9kZSA9IGZ1bmN0aW9uIFZOb2RlIChcbiAgdGFnLFxuICBkYXRhLFxuICBjaGlsZHJlbixcbiAgdGV4dCxcbiAgZWxtLFxuICBjb250ZXh0LFxuICBjb21wb25lbnRPcHRpb25zLFxuICBhc3luY0ZhY3Rvcnlcbikge1xuICB0aGlzLnRhZyA9IHRhZztcbiAgdGhpcy5kYXRhID0gZGF0YTtcbiAgdGhpcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICB0aGlzLnRleHQgPSB0ZXh0O1xuICB0aGlzLmVsbSA9IGVsbTtcbiAgdGhpcy5ucyA9IHVuZGVmaW5lZDtcbiAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgdGhpcy5mbkNvbnRleHQgPSB1bmRlZmluZWQ7XG4gIHRoaXMuZm5PcHRpb25zID0gdW5kZWZpbmVkO1xuICB0aGlzLmZuU2NvcGVJZCA9IHVuZGVmaW5lZDtcbiAgdGhpcy5rZXkgPSBkYXRhICYmIGRhdGEua2V5O1xuICB0aGlzLmNvbXBvbmVudE9wdGlvbnMgPSBjb21wb25lbnRPcHRpb25zO1xuICB0aGlzLmNvbXBvbmVudEluc3RhbmNlID0gdW5kZWZpbmVkO1xuICB0aGlzLnBhcmVudCA9IHVuZGVmaW5lZDtcbiAgdGhpcy5yYXcgPSBmYWxzZTtcbiAgdGhpcy5pc1N0YXRpYyA9IGZhbHNlO1xuICB0aGlzLmlzUm9vdEluc2VydCA9IHRydWU7XG4gIHRoaXMuaXNDb21tZW50ID0gZmFsc2U7XG4gIHRoaXMuaXNDbG9uZWQgPSBmYWxzZTtcbiAgdGhpcy5pc09uY2UgPSBmYWxzZTtcbiAgdGhpcy5hc3luY0ZhY3RvcnkgPSBhc3luY0ZhY3Rvcnk7XG4gIHRoaXMuYXN5bmNNZXRhID0gdW5kZWZpbmVkO1xuICB0aGlzLmlzQXN5bmNQbGFjZWhvbGRlciA9IGZhbHNlO1xufTtcblxudmFyIHByb3RvdHlwZUFjY2Vzc29ycyA9IHsgY2hpbGQ6IHsgY29uZmlndXJhYmxlOiB0cnVlIH0gfTtcblxuLy8gREVQUkVDQVRFRDogYWxpYXMgZm9yIGNvbXBvbmVudEluc3RhbmNlIGZvciBiYWNrd2FyZHMgY29tcGF0LlxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbnByb3RvdHlwZUFjY2Vzc29ycy5jaGlsZC5nZXQgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLmNvbXBvbmVudEluc3RhbmNlXG59O1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydGllcyggVk5vZGUucHJvdG90eXBlLCBwcm90b3R5cGVBY2Nlc3NvcnMgKTtcblxudmFyIGNyZWF0ZUVtcHR5Vk5vZGUgPSBmdW5jdGlvbiAodGV4dCkge1xuICBpZiAoIHRleHQgPT09IHZvaWQgMCApIHRleHQgPSAnJztcblxuICB2YXIgbm9kZSA9IG5ldyBWTm9kZSgpO1xuICBub2RlLnRleHQgPSB0ZXh0O1xuICBub2RlLmlzQ29tbWVudCA9IHRydWU7XG4gIHJldHVybiBub2RlXG59O1xuXG5mdW5jdGlvbiBjcmVhdGVUZXh0Vk5vZGUgKHZhbCkge1xuICByZXR1cm4gbmV3IFZOb2RlKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIFN0cmluZyh2YWwpKVxufVxuXG4vLyBvcHRpbWl6ZWQgc2hhbGxvdyBjbG9uZVxuLy8gdXNlZCBmb3Igc3RhdGljIG5vZGVzIGFuZCBzbG90IG5vZGVzIGJlY2F1c2UgdGhleSBtYXkgYmUgcmV1c2VkIGFjcm9zc1xuLy8gbXVsdGlwbGUgcmVuZGVycywgY2xvbmluZyB0aGVtIGF2b2lkcyBlcnJvcnMgd2hlbiBET00gbWFuaXB1bGF0aW9ucyByZWx5XG4vLyBvbiB0aGVpciBlbG0gcmVmZXJlbmNlLlxuZnVuY3Rpb24gY2xvbmVWTm9kZSAodm5vZGUpIHtcbiAgdmFyIGNsb25lZCA9IG5ldyBWTm9kZShcbiAgICB2bm9kZS50YWcsXG4gICAgdm5vZGUuZGF0YSxcbiAgICAvLyAjNzk3NVxuICAgIC8vIGNsb25lIGNoaWxkcmVuIGFycmF5IHRvIGF2b2lkIG11dGF0aW5nIG9yaWdpbmFsIGluIGNhc2Ugb2YgY2xvbmluZ1xuICAgIC8vIGEgY2hpbGQuXG4gICAgdm5vZGUuY2hpbGRyZW4gJiYgdm5vZGUuY2hpbGRyZW4uc2xpY2UoKSxcbiAgICB2bm9kZS50ZXh0LFxuICAgIHZub2RlLmVsbSxcbiAgICB2bm9kZS5jb250ZXh0LFxuICAgIHZub2RlLmNvbXBvbmVudE9wdGlvbnMsXG4gICAgdm5vZGUuYXN5bmNGYWN0b3J5XG4gICk7XG4gIGNsb25lZC5ucyA9IHZub2RlLm5zO1xuICBjbG9uZWQuaXNTdGF0aWMgPSB2bm9kZS5pc1N0YXRpYztcbiAgY2xvbmVkLmtleSA9IHZub2RlLmtleTtcbiAgY2xvbmVkLmlzQ29tbWVudCA9IHZub2RlLmlzQ29tbWVudDtcbiAgY2xvbmVkLmZuQ29udGV4dCA9IHZub2RlLmZuQ29udGV4dDtcbiAgY2xvbmVkLmZuT3B0aW9ucyA9IHZub2RlLmZuT3B0aW9ucztcbiAgY2xvbmVkLmZuU2NvcGVJZCA9IHZub2RlLmZuU2NvcGVJZDtcbiAgY2xvbmVkLmFzeW5jTWV0YSA9IHZub2RlLmFzeW5jTWV0YTtcbiAgY2xvbmVkLmlzQ2xvbmVkID0gdHJ1ZTtcbiAgcmV0dXJuIGNsb25lZFxufVxuXG4vKlxuICogbm90IHR5cGUgY2hlY2tpbmcgdGhpcyBmaWxlIGJlY2F1c2UgZmxvdyBkb2Vzbid0IHBsYXkgd2VsbCB3aXRoXG4gKiBkeW5hbWljYWxseSBhY2Nlc3NpbmcgbWV0aG9kcyBvbiBBcnJheSBwcm90b3R5cGVcbiAqL1xuXG52YXIgYXJyYXlQcm90byA9IEFycmF5LnByb3RvdHlwZTtcbnZhciBhcnJheU1ldGhvZHMgPSBPYmplY3QuY3JlYXRlKGFycmF5UHJvdG8pO1xuXG52YXIgbWV0aG9kc1RvUGF0Y2ggPSBbXG4gICdwdXNoJyxcbiAgJ3BvcCcsXG4gICdzaGlmdCcsXG4gICd1bnNoaWZ0JyxcbiAgJ3NwbGljZScsXG4gICdzb3J0JyxcbiAgJ3JldmVyc2UnXG5dO1xuXG4vKipcbiAqIEludGVyY2VwdCBtdXRhdGluZyBtZXRob2RzIGFuZCBlbWl0IGV2ZW50c1xuICovXG5tZXRob2RzVG9QYXRjaC5mb3JFYWNoKGZ1bmN0aW9uIChtZXRob2QpIHtcbiAgLy8gY2FjaGUgb3JpZ2luYWwgbWV0aG9kXG4gIHZhciBvcmlnaW5hbCA9IGFycmF5UHJvdG9bbWV0aG9kXTtcbiAgZGVmKGFycmF5TWV0aG9kcywgbWV0aG9kLCBmdW5jdGlvbiBtdXRhdG9yICgpIHtcbiAgICB2YXIgYXJncyA9IFtdLCBsZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIHdoaWxlICggbGVuLS0gKSBhcmdzWyBsZW4gXSA9IGFyZ3VtZW50c1sgbGVuIF07XG5cbiAgICB2YXIgcmVzdWx0ID0gb3JpZ2luYWwuYXBwbHkodGhpcywgYXJncyk7XG4gICAgdmFyIG9iID0gdGhpcy5fX29iX187XG4gICAgdmFyIGluc2VydGVkO1xuICAgIHN3aXRjaCAobWV0aG9kKSB7XG4gICAgICBjYXNlICdwdXNoJzpcbiAgICAgIGNhc2UgJ3Vuc2hpZnQnOlxuICAgICAgICBpbnNlcnRlZCA9IGFyZ3M7XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdzcGxpY2UnOlxuICAgICAgICBpbnNlcnRlZCA9IGFyZ3Muc2xpY2UoMik7XG4gICAgICAgIGJyZWFrXG4gICAgfVxuICAgIGlmIChpbnNlcnRlZCkgeyBvYi5vYnNlcnZlQXJyYXkoaW5zZXJ0ZWQpOyB9XG4gICAgLy8gbm90aWZ5IGNoYW5nZVxuICAgIG9iLmRlcC5ub3RpZnkoKTtcbiAgICByZXR1cm4gcmVzdWx0XG4gIH0pO1xufSk7XG5cbi8qICAqL1xuXG52YXIgYXJyYXlLZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYXJyYXlNZXRob2RzKTtcblxuLyoqXG4gKiBJbiBzb21lIGNhc2VzIHdlIG1heSB3YW50IHRvIGRpc2FibGUgb2JzZXJ2YXRpb24gaW5zaWRlIGEgY29tcG9uZW50J3NcbiAqIHVwZGF0ZSBjb21wdXRhdGlvbi5cbiAqL1xudmFyIHNob3VsZE9ic2VydmUgPSB0cnVlO1xuXG5mdW5jdGlvbiB0b2dnbGVPYnNlcnZpbmcgKHZhbHVlKSB7XG4gIHNob3VsZE9ic2VydmUgPSB2YWx1ZTtcbn1cblxuLyoqXG4gKiBPYnNlcnZlciBjbGFzcyB0aGF0IGlzIGF0dGFjaGVkIHRvIGVhY2ggb2JzZXJ2ZWRcbiAqIG9iamVjdC4gT25jZSBhdHRhY2hlZCwgdGhlIG9ic2VydmVyIGNvbnZlcnRzIHRoZSB0YXJnZXRcbiAqIG9iamVjdCdzIHByb3BlcnR5IGtleXMgaW50byBnZXR0ZXIvc2V0dGVycyB0aGF0XG4gKiBjb2xsZWN0IGRlcGVuZGVuY2llcyBhbmQgZGlzcGF0Y2ggdXBkYXRlcy5cbiAqL1xudmFyIE9ic2VydmVyID0gZnVuY3Rpb24gT2JzZXJ2ZXIgKHZhbHVlKSB7XG4gIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgdGhpcy5kZXAgPSBuZXcgRGVwKCk7XG4gIHRoaXMudm1Db3VudCA9IDA7XG4gIGRlZih2YWx1ZSwgJ19fb2JfXycsIHRoaXMpO1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBpZiAoaGFzUHJvdG8pIHtcbiAgICAgIHByb3RvQXVnbWVudCh2YWx1ZSwgYXJyYXlNZXRob2RzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29weUF1Z21lbnQodmFsdWUsIGFycmF5TWV0aG9kcywgYXJyYXlLZXlzKTtcbiAgICB9XG4gICAgdGhpcy5vYnNlcnZlQXJyYXkodmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIHRoaXMud2Fsayh2YWx1ZSk7XG4gIH1cbn07XG5cbi8qKlxuICogV2FsayB0aHJvdWdoIGFsbCBwcm9wZXJ0aWVzIGFuZCBjb252ZXJ0IHRoZW0gaW50b1xuICogZ2V0dGVyL3NldHRlcnMuIFRoaXMgbWV0aG9kIHNob3VsZCBvbmx5IGJlIGNhbGxlZCB3aGVuXG4gKiB2YWx1ZSB0eXBlIGlzIE9iamVjdC5cbiAqL1xuT2JzZXJ2ZXIucHJvdG90eXBlLndhbGsgPSBmdW5jdGlvbiB3YWxrIChvYmopIHtcbiAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICBkZWZpbmVSZWFjdGl2ZSQkMShvYmosIGtleXNbaV0pO1xuICB9XG59O1xuXG4vKipcbiAqIE9ic2VydmUgYSBsaXN0IG9mIEFycmF5IGl0ZW1zLlxuICovXG5PYnNlcnZlci5wcm90b3R5cGUub2JzZXJ2ZUFycmF5ID0gZnVuY3Rpb24gb2JzZXJ2ZUFycmF5IChpdGVtcykge1xuICBmb3IgKHZhciBpID0gMCwgbCA9IGl0ZW1zLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIG9ic2VydmUoaXRlbXNbaV0pO1xuICB9XG59O1xuXG4vLyBoZWxwZXJzXG5cbi8qKlxuICogQXVnbWVudCBhIHRhcmdldCBPYmplY3Qgb3IgQXJyYXkgYnkgaW50ZXJjZXB0aW5nXG4gKiB0aGUgcHJvdG90eXBlIGNoYWluIHVzaW5nIF9fcHJvdG9fX1xuICovXG5mdW5jdGlvbiBwcm90b0F1Z21lbnQgKHRhcmdldCwgc3JjKSB7XG4gIC8qIGVzbGludC1kaXNhYmxlIG5vLXByb3RvICovXG4gIHRhcmdldC5fX3Byb3RvX18gPSBzcmM7XG4gIC8qIGVzbGludC1lbmFibGUgbm8tcHJvdG8gKi9cbn1cblxuLyoqXG4gKiBBdWdtZW50IGEgdGFyZ2V0IE9iamVjdCBvciBBcnJheSBieSBkZWZpbmluZ1xuICogaGlkZGVuIHByb3BlcnRpZXMuXG4gKi9cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5mdW5jdGlvbiBjb3B5QXVnbWVudCAodGFyZ2V0LCBzcmMsIGtleXMpIHtcbiAgZm9yICh2YXIgaSA9IDAsIGwgPSBrZXlzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIHZhciBrZXkgPSBrZXlzW2ldO1xuICAgIGRlZih0YXJnZXQsIGtleSwgc3JjW2tleV0pO1xuICB9XG59XG5cbi8qKlxuICogQXR0ZW1wdCB0byBjcmVhdGUgYW4gb2JzZXJ2ZXIgaW5zdGFuY2UgZm9yIGEgdmFsdWUsXG4gKiByZXR1cm5zIHRoZSBuZXcgb2JzZXJ2ZXIgaWYgc3VjY2Vzc2Z1bGx5IG9ic2VydmVkLFxuICogb3IgdGhlIGV4aXN0aW5nIG9ic2VydmVyIGlmIHRoZSB2YWx1ZSBhbHJlYWR5IGhhcyBvbmUuXG4gKi9cbmZ1bmN0aW9uIG9ic2VydmUgKHZhbHVlLCBhc1Jvb3REYXRhKSB7XG4gIGlmICghaXNPYmplY3QodmFsdWUpIHx8IHZhbHVlIGluc3RhbmNlb2YgVk5vZGUpIHtcbiAgICByZXR1cm5cbiAgfVxuICB2YXIgb2I7XG4gIGlmIChoYXNPd24odmFsdWUsICdfX29iX18nKSAmJiB2YWx1ZS5fX29iX18gaW5zdGFuY2VvZiBPYnNlcnZlcikge1xuICAgIG9iID0gdmFsdWUuX19vYl9fO1xuICB9IGVsc2UgaWYgKFxuICAgIHNob3VsZE9ic2VydmUgJiZcbiAgICAhaXNTZXJ2ZXJSZW5kZXJpbmcoKSAmJlxuICAgIChBcnJheS5pc0FycmF5KHZhbHVlKSB8fCBpc1BsYWluT2JqZWN0KHZhbHVlKSkgJiZcbiAgICBPYmplY3QuaXNFeHRlbnNpYmxlKHZhbHVlKSAmJlxuICAgICF2YWx1ZS5faXNWdWVcbiAgKSB7XG4gICAgb2IgPSBuZXcgT2JzZXJ2ZXIodmFsdWUpO1xuICB9XG4gIGlmIChhc1Jvb3REYXRhICYmIG9iKSB7XG4gICAgb2Iudm1Db3VudCsrO1xuICB9XG4gIHJldHVybiBvYlxufVxuXG4vKipcbiAqIERlZmluZSBhIHJlYWN0aXZlIHByb3BlcnR5IG9uIGFuIE9iamVjdC5cbiAqL1xuZnVuY3Rpb24gZGVmaW5lUmVhY3RpdmUkJDEgKFxuICBvYmosXG4gIGtleSxcbiAgdmFsLFxuICBjdXN0b21TZXR0ZXIsXG4gIHNoYWxsb3dcbikge1xuICB2YXIgZGVwID0gbmV3IERlcCgpO1xuXG4gIHZhciBwcm9wZXJ0eSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpO1xuICBpZiAocHJvcGVydHkgJiYgcHJvcGVydHkuY29uZmlndXJhYmxlID09PSBmYWxzZSkge1xuICAgIHJldHVyblxuICB9XG5cbiAgLy8gY2F0ZXIgZm9yIHByZS1kZWZpbmVkIGdldHRlci9zZXR0ZXJzXG4gIHZhciBnZXR0ZXIgPSBwcm9wZXJ0eSAmJiBwcm9wZXJ0eS5nZXQ7XG4gIHZhciBzZXR0ZXIgPSBwcm9wZXJ0eSAmJiBwcm9wZXJ0eS5zZXQ7XG4gIGlmICgoIWdldHRlciB8fCBzZXR0ZXIpICYmIGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIHtcbiAgICB2YWwgPSBvYmpba2V5XTtcbiAgfVxuXG4gIHZhciBjaGlsZE9iID0gIXNoYWxsb3cgJiYgb2JzZXJ2ZSh2YWwpO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uIHJlYWN0aXZlR2V0dGVyICgpIHtcbiAgICAgIHZhciB2YWx1ZSA9IGdldHRlciA/IGdldHRlci5jYWxsKG9iaikgOiB2YWw7XG4gICAgICBpZiAoRGVwLnRhcmdldCkge1xuICAgICAgICBkZXAuZGVwZW5kKCk7XG4gICAgICAgIGlmIChjaGlsZE9iKSB7XG4gICAgICAgICAgY2hpbGRPYi5kZXAuZGVwZW5kKCk7XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICBkZXBlbmRBcnJheSh2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWVcbiAgICB9LFxuICAgIHNldDogZnVuY3Rpb24gcmVhY3RpdmVTZXR0ZXIgKG5ld1ZhbCkge1xuICAgICAgdmFyIHZhbHVlID0gZ2V0dGVyID8gZ2V0dGVyLmNhbGwob2JqKSA6IHZhbDtcbiAgICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXNlbGYtY29tcGFyZSAqL1xuICAgICAgaWYgKG5ld1ZhbCA9PT0gdmFsdWUgfHwgKG5ld1ZhbCAhPT0gbmV3VmFsICYmIHZhbHVlICE9PSB2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXNlbGYtY29tcGFyZSAqL1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgY3VzdG9tU2V0dGVyKSB7XG4gICAgICAgIGN1c3RvbVNldHRlcigpO1xuICAgICAgfVxuICAgICAgLy8gIzc5ODE6IGZvciBhY2Nlc3NvciBwcm9wZXJ0aWVzIHdpdGhvdXQgc2V0dGVyXG4gICAgICBpZiAoZ2V0dGVyICYmICFzZXR0ZXIpIHsgcmV0dXJuIH1cbiAgICAgIGlmIChzZXR0ZXIpIHtcbiAgICAgICAgc2V0dGVyLmNhbGwob2JqLCBuZXdWYWwpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFsID0gbmV3VmFsO1xuICAgICAgfVxuICAgICAgY2hpbGRPYiA9ICFzaGFsbG93ICYmIG9ic2VydmUobmV3VmFsKTtcbiAgICAgIGRlcC5ub3RpZnkoKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIFNldCBhIHByb3BlcnR5IG9uIGFuIG9iamVjdC4gQWRkcyB0aGUgbmV3IHByb3BlcnR5IGFuZFxuICogdHJpZ2dlcnMgY2hhbmdlIG5vdGlmaWNhdGlvbiBpZiB0aGUgcHJvcGVydHkgZG9lc24ndFxuICogYWxyZWFkeSBleGlzdC5cbiAqL1xuZnVuY3Rpb24gc2V0ICh0YXJnZXQsIGtleSwgdmFsKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmXG4gICAgKGlzVW5kZWYodGFyZ2V0KSB8fCBpc1ByaW1pdGl2ZSh0YXJnZXQpKVxuICApIHtcbiAgICB3YXJuKChcIkNhbm5vdCBzZXQgcmVhY3RpdmUgcHJvcGVydHkgb24gdW5kZWZpbmVkLCBudWxsLCBvciBwcmltaXRpdmUgdmFsdWU6IFwiICsgKCh0YXJnZXQpKSkpO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHRhcmdldCkgJiYgaXNWYWxpZEFycmF5SW5kZXgoa2V5KSkge1xuICAgIHRhcmdldC5sZW5ndGggPSBNYXRoLm1heCh0YXJnZXQubGVuZ3RoLCBrZXkpO1xuICAgIHRhcmdldC5zcGxpY2Uoa2V5LCAxLCB2YWwpO1xuICAgIHJldHVybiB2YWxcbiAgfVxuICBpZiAoa2V5IGluIHRhcmdldCAmJiAhKGtleSBpbiBPYmplY3QucHJvdG90eXBlKSkge1xuICAgIHRhcmdldFtrZXldID0gdmFsO1xuICAgIHJldHVybiB2YWxcbiAgfVxuICB2YXIgb2IgPSAodGFyZ2V0KS5fX29iX187XG4gIGlmICh0YXJnZXQuX2lzVnVlIHx8IChvYiAmJiBvYi52bUNvdW50KSkge1xuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgd2FybihcbiAgICAgICdBdm9pZCBhZGRpbmcgcmVhY3RpdmUgcHJvcGVydGllcyB0byBhIFZ1ZSBpbnN0YW5jZSBvciBpdHMgcm9vdCAkZGF0YSAnICtcbiAgICAgICdhdCBydW50aW1lIC0gZGVjbGFyZSBpdCB1cGZyb250IGluIHRoZSBkYXRhIG9wdGlvbi4nXG4gICAgKTtcbiAgICByZXR1cm4gdmFsXG4gIH1cbiAgaWYgKCFvYikge1xuICAgIHRhcmdldFtrZXldID0gdmFsO1xuICAgIHJldHVybiB2YWxcbiAgfVxuICBkZWZpbmVSZWFjdGl2ZSQkMShvYi52YWx1ZSwga2V5LCB2YWwpO1xuICBvYi5kZXAubm90aWZ5KCk7XG4gIHJldHVybiB2YWxcbn1cblxuLyoqXG4gKiBEZWxldGUgYSBwcm9wZXJ0eSBhbmQgdHJpZ2dlciBjaGFuZ2UgaWYgbmVjZXNzYXJ5LlxuICovXG5mdW5jdGlvbiBkZWwgKHRhcmdldCwga2V5KSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmXG4gICAgKGlzVW5kZWYodGFyZ2V0KSB8fCBpc1ByaW1pdGl2ZSh0YXJnZXQpKVxuICApIHtcbiAgICB3YXJuKChcIkNhbm5vdCBkZWxldGUgcmVhY3RpdmUgcHJvcGVydHkgb24gdW5kZWZpbmVkLCBudWxsLCBvciBwcmltaXRpdmUgdmFsdWU6IFwiICsgKCh0YXJnZXQpKSkpO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHRhcmdldCkgJiYgaXNWYWxpZEFycmF5SW5kZXgoa2V5KSkge1xuICAgIHRhcmdldC5zcGxpY2Uoa2V5LCAxKTtcbiAgICByZXR1cm5cbiAgfVxuICB2YXIgb2IgPSAodGFyZ2V0KS5fX29iX187XG4gIGlmICh0YXJnZXQuX2lzVnVlIHx8IChvYiAmJiBvYi52bUNvdW50KSkge1xuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgd2FybihcbiAgICAgICdBdm9pZCBkZWxldGluZyBwcm9wZXJ0aWVzIG9uIGEgVnVlIGluc3RhbmNlIG9yIGl0cyByb290ICRkYXRhICcgK1xuICAgICAgJy0ganVzdCBzZXQgaXQgdG8gbnVsbC4nXG4gICAgKTtcbiAgICByZXR1cm5cbiAgfVxuICBpZiAoIWhhc093bih0YXJnZXQsIGtleSkpIHtcbiAgICByZXR1cm5cbiAgfVxuICBkZWxldGUgdGFyZ2V0W2tleV07XG4gIGlmICghb2IpIHtcbiAgICByZXR1cm5cbiAgfVxuICBvYi5kZXAubm90aWZ5KCk7XG59XG5cbi8qKlxuICogQ29sbGVjdCBkZXBlbmRlbmNpZXMgb24gYXJyYXkgZWxlbWVudHMgd2hlbiB0aGUgYXJyYXkgaXMgdG91Y2hlZCwgc2luY2VcbiAqIHdlIGNhbm5vdCBpbnRlcmNlcHQgYXJyYXkgZWxlbWVudCBhY2Nlc3MgbGlrZSBwcm9wZXJ0eSBnZXR0ZXJzLlxuICovXG5mdW5jdGlvbiBkZXBlbmRBcnJheSAodmFsdWUpIHtcbiAgZm9yICh2YXIgZSA9ICh2b2lkIDApLCBpID0gMCwgbCA9IHZhbHVlLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIGUgPSB2YWx1ZVtpXTtcbiAgICBlICYmIGUuX19vYl9fICYmIGUuX19vYl9fLmRlcC5kZXBlbmQoKTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShlKSkge1xuICAgICAgZGVwZW5kQXJyYXkoZSk7XG4gICAgfVxuICB9XG59XG5cbi8qICAqL1xuXG4vKipcbiAqIE9wdGlvbiBvdmVyd3JpdGluZyBzdHJhdGVnaWVzIGFyZSBmdW5jdGlvbnMgdGhhdCBoYW5kbGVcbiAqIGhvdyB0byBtZXJnZSBhIHBhcmVudCBvcHRpb24gdmFsdWUgYW5kIGEgY2hpbGQgb3B0aW9uXG4gKiB2YWx1ZSBpbnRvIHRoZSBmaW5hbCB2YWx1ZS5cbiAqL1xudmFyIHN0cmF0cyA9IGNvbmZpZy5vcHRpb25NZXJnZVN0cmF0ZWdpZXM7XG5cbi8qKlxuICogT3B0aW9ucyB3aXRoIHJlc3RyaWN0aW9uc1xuICovXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBzdHJhdHMuZWwgPSBzdHJhdHMucHJvcHNEYXRhID0gZnVuY3Rpb24gKHBhcmVudCwgY2hpbGQsIHZtLCBrZXkpIHtcbiAgICBpZiAoIXZtKSB7XG4gICAgICB3YXJuKFxuICAgICAgICBcIm9wdGlvbiBcXFwiXCIgKyBrZXkgKyBcIlxcXCIgY2FuIG9ubHkgYmUgdXNlZCBkdXJpbmcgaW5zdGFuY2UgXCIgK1xuICAgICAgICAnY3JlYXRpb24gd2l0aCB0aGUgYG5ld2Aga2V5d29yZC4nXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gZGVmYXVsdFN0cmF0KHBhcmVudCwgY2hpbGQpXG4gIH07XG59XG5cbi8qKlxuICogSGVscGVyIHRoYXQgcmVjdXJzaXZlbHkgbWVyZ2VzIHR3byBkYXRhIG9iamVjdHMgdG9nZXRoZXIuXG4gKi9cbmZ1bmN0aW9uIG1lcmdlRGF0YSAodG8sIGZyb20pIHtcbiAgaWYgKCFmcm9tKSB7IHJldHVybiB0byB9XG4gIHZhciBrZXksIHRvVmFsLCBmcm9tVmFsO1xuXG4gIHZhciBrZXlzID0gaGFzU3ltYm9sXG4gICAgPyBSZWZsZWN0Lm93bktleXMoZnJvbSlcbiAgICA6IE9iamVjdC5rZXlzKGZyb20pO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgIGtleSA9IGtleXNbaV07XG4gICAgLy8gaW4gY2FzZSB0aGUgb2JqZWN0IGlzIGFscmVhZHkgb2JzZXJ2ZWQuLi5cbiAgICBpZiAoa2V5ID09PSAnX19vYl9fJykgeyBjb250aW51ZSB9XG4gICAgdG9WYWwgPSB0b1trZXldO1xuICAgIGZyb21WYWwgPSBmcm9tW2tleV07XG4gICAgaWYgKCFoYXNPd24odG8sIGtleSkpIHtcbiAgICAgIHNldCh0bywga2V5LCBmcm9tVmFsKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgdG9WYWwgIT09IGZyb21WYWwgJiZcbiAgICAgIGlzUGxhaW5PYmplY3QodG9WYWwpICYmXG4gICAgICBpc1BsYWluT2JqZWN0KGZyb21WYWwpXG4gICAgKSB7XG4gICAgICBtZXJnZURhdGEodG9WYWwsIGZyb21WYWwpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdG9cbn1cblxuLyoqXG4gKiBEYXRhXG4gKi9cbmZ1bmN0aW9uIG1lcmdlRGF0YU9yRm4gKFxuICBwYXJlbnRWYWwsXG4gIGNoaWxkVmFsLFxuICB2bVxuKSB7XG4gIGlmICghdm0pIHtcbiAgICAvLyBpbiBhIFZ1ZS5leHRlbmQgbWVyZ2UsIGJvdGggc2hvdWxkIGJlIGZ1bmN0aW9uc1xuICAgIGlmICghY2hpbGRWYWwpIHtcbiAgICAgIHJldHVybiBwYXJlbnRWYWxcbiAgICB9XG4gICAgaWYgKCFwYXJlbnRWYWwpIHtcbiAgICAgIHJldHVybiBjaGlsZFZhbFxuICAgIH1cbiAgICAvLyB3aGVuIHBhcmVudFZhbCAmIGNoaWxkVmFsIGFyZSBib3RoIHByZXNlbnQsXG4gICAgLy8gd2UgbmVlZCB0byByZXR1cm4gYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlXG4gICAgLy8gbWVyZ2VkIHJlc3VsdCBvZiBib3RoIGZ1bmN0aW9ucy4uLiBubyBuZWVkIHRvXG4gICAgLy8gY2hlY2sgaWYgcGFyZW50VmFsIGlzIGEgZnVuY3Rpb24gaGVyZSBiZWNhdXNlXG4gICAgLy8gaXQgaGFzIHRvIGJlIGEgZnVuY3Rpb24gdG8gcGFzcyBwcmV2aW91cyBtZXJnZXMuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIG1lcmdlZERhdGFGbiAoKSB7XG4gICAgICByZXR1cm4gbWVyZ2VEYXRhKFxuICAgICAgICB0eXBlb2YgY2hpbGRWYWwgPT09ICdmdW5jdGlvbicgPyBjaGlsZFZhbC5jYWxsKHRoaXMsIHRoaXMpIDogY2hpbGRWYWwsXG4gICAgICAgIHR5cGVvZiBwYXJlbnRWYWwgPT09ICdmdW5jdGlvbicgPyBwYXJlbnRWYWwuY2FsbCh0aGlzLCB0aGlzKSA6IHBhcmVudFZhbFxuICAgICAgKVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gbWVyZ2VkSW5zdGFuY2VEYXRhRm4gKCkge1xuICAgICAgLy8gaW5zdGFuY2UgbWVyZ2VcbiAgICAgIHZhciBpbnN0YW5jZURhdGEgPSB0eXBlb2YgY2hpbGRWYWwgPT09ICdmdW5jdGlvbidcbiAgICAgICAgPyBjaGlsZFZhbC5jYWxsKHZtLCB2bSlcbiAgICAgICAgOiBjaGlsZFZhbDtcbiAgICAgIHZhciBkZWZhdWx0RGF0YSA9IHR5cGVvZiBwYXJlbnRWYWwgPT09ICdmdW5jdGlvbidcbiAgICAgICAgPyBwYXJlbnRWYWwuY2FsbCh2bSwgdm0pXG4gICAgICAgIDogcGFyZW50VmFsO1xuICAgICAgaWYgKGluc3RhbmNlRGF0YSkge1xuICAgICAgICByZXR1cm4gbWVyZ2VEYXRhKGluc3RhbmNlRGF0YSwgZGVmYXVsdERhdGEpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZGVmYXVsdERhdGFcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuc3RyYXRzLmRhdGEgPSBmdW5jdGlvbiAoXG4gIHBhcmVudFZhbCxcbiAgY2hpbGRWYWwsXG4gIHZtXG4pIHtcbiAgaWYgKCF2bSkge1xuICAgIGlmIChjaGlsZFZhbCAmJiB0eXBlb2YgY2hpbGRWYWwgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgd2FybihcbiAgICAgICAgJ1RoZSBcImRhdGFcIiBvcHRpb24gc2hvdWxkIGJlIGEgZnVuY3Rpb24gJyArXG4gICAgICAgICd0aGF0IHJldHVybnMgYSBwZXItaW5zdGFuY2UgdmFsdWUgaW4gY29tcG9uZW50ICcgK1xuICAgICAgICAnZGVmaW5pdGlvbnMuJyxcbiAgICAgICAgdm1cbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBwYXJlbnRWYWxcbiAgICB9XG4gICAgcmV0dXJuIG1lcmdlRGF0YU9yRm4ocGFyZW50VmFsLCBjaGlsZFZhbClcbiAgfVxuXG4gIHJldHVybiBtZXJnZURhdGFPckZuKHBhcmVudFZhbCwgY2hpbGRWYWwsIHZtKVxufTtcblxuLyoqXG4gKiBIb29rcyBhbmQgcHJvcHMgYXJlIG1lcmdlZCBhcyBhcnJheXMuXG4gKi9cbmZ1bmN0aW9uIG1lcmdlSG9vayAoXG4gIHBhcmVudFZhbCxcbiAgY2hpbGRWYWxcbikge1xuICB2YXIgcmVzID0gY2hpbGRWYWxcbiAgICA/IHBhcmVudFZhbFxuICAgICAgPyBwYXJlbnRWYWwuY29uY2F0KGNoaWxkVmFsKVxuICAgICAgOiBBcnJheS5pc0FycmF5KGNoaWxkVmFsKVxuICAgICAgICA/IGNoaWxkVmFsXG4gICAgICAgIDogW2NoaWxkVmFsXVxuICAgIDogcGFyZW50VmFsO1xuICByZXR1cm4gcmVzXG4gICAgPyBkZWR1cGVIb29rcyhyZXMpXG4gICAgOiByZXNcbn1cblxuZnVuY3Rpb24gZGVkdXBlSG9va3MgKGhvb2tzKSB7XG4gIHZhciByZXMgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBob29rcy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChyZXMuaW5kZXhPZihob29rc1tpXSkgPT09IC0xKSB7XG4gICAgICByZXMucHVzaChob29rc1tpXSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXNcbn1cblxuTElGRUNZQ0xFX0hPT0tTLmZvckVhY2goZnVuY3Rpb24gKGhvb2spIHtcbiAgc3RyYXRzW2hvb2tdID0gbWVyZ2VIb29rO1xufSk7XG5cbi8qKlxuICogQXNzZXRzXG4gKlxuICogV2hlbiBhIHZtIGlzIHByZXNlbnQgKGluc3RhbmNlIGNyZWF0aW9uKSwgd2UgbmVlZCB0byBkb1xuICogYSB0aHJlZS13YXkgbWVyZ2UgYmV0d2VlbiBjb25zdHJ1Y3RvciBvcHRpb25zLCBpbnN0YW5jZVxuICogb3B0aW9ucyBhbmQgcGFyZW50IG9wdGlvbnMuXG4gKi9cbmZ1bmN0aW9uIG1lcmdlQXNzZXRzIChcbiAgcGFyZW50VmFsLFxuICBjaGlsZFZhbCxcbiAgdm0sXG4gIGtleVxuKSB7XG4gIHZhciByZXMgPSBPYmplY3QuY3JlYXRlKHBhcmVudFZhbCB8fCBudWxsKTtcbiAgaWYgKGNoaWxkVmFsKSB7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBhc3NlcnRPYmplY3RUeXBlKGtleSwgY2hpbGRWYWwsIHZtKTtcbiAgICByZXR1cm4gZXh0ZW5kKHJlcywgY2hpbGRWYWwpXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHJlc1xuICB9XG59XG5cbkFTU0VUX1RZUEVTLmZvckVhY2goZnVuY3Rpb24gKHR5cGUpIHtcbiAgc3RyYXRzW3R5cGUgKyAncyddID0gbWVyZ2VBc3NldHM7XG59KTtcblxuLyoqXG4gKiBXYXRjaGVycy5cbiAqXG4gKiBXYXRjaGVycyBoYXNoZXMgc2hvdWxkIG5vdCBvdmVyd3JpdGUgb25lXG4gKiBhbm90aGVyLCBzbyB3ZSBtZXJnZSB0aGVtIGFzIGFycmF5cy5cbiAqL1xuc3RyYXRzLndhdGNoID0gZnVuY3Rpb24gKFxuICBwYXJlbnRWYWwsXG4gIGNoaWxkVmFsLFxuICB2bSxcbiAga2V5XG4pIHtcbiAgLy8gd29yayBhcm91bmQgRmlyZWZveCdzIE9iamVjdC5wcm90b3R5cGUud2F0Y2guLi5cbiAgaWYgKHBhcmVudFZhbCA9PT0gbmF0aXZlV2F0Y2gpIHsgcGFyZW50VmFsID0gdW5kZWZpbmVkOyB9XG4gIGlmIChjaGlsZFZhbCA9PT0gbmF0aXZlV2F0Y2gpIHsgY2hpbGRWYWwgPSB1bmRlZmluZWQ7IH1cbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmICghY2hpbGRWYWwpIHsgcmV0dXJuIE9iamVjdC5jcmVhdGUocGFyZW50VmFsIHx8IG51bGwpIH1cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBhc3NlcnRPYmplY3RUeXBlKGtleSwgY2hpbGRWYWwsIHZtKTtcbiAgfVxuICBpZiAoIXBhcmVudFZhbCkgeyByZXR1cm4gY2hpbGRWYWwgfVxuICB2YXIgcmV0ID0ge307XG4gIGV4dGVuZChyZXQsIHBhcmVudFZhbCk7XG4gIGZvciAodmFyIGtleSQxIGluIGNoaWxkVmFsKSB7XG4gICAgdmFyIHBhcmVudCA9IHJldFtrZXkkMV07XG4gICAgdmFyIGNoaWxkID0gY2hpbGRWYWxba2V5JDFdO1xuICAgIGlmIChwYXJlbnQgJiYgIUFycmF5LmlzQXJyYXkocGFyZW50KSkge1xuICAgICAgcGFyZW50ID0gW3BhcmVudF07XG4gICAgfVxuICAgIHJldFtrZXkkMV0gPSBwYXJlbnRcbiAgICAgID8gcGFyZW50LmNvbmNhdChjaGlsZClcbiAgICAgIDogQXJyYXkuaXNBcnJheShjaGlsZCkgPyBjaGlsZCA6IFtjaGlsZF07XG4gIH1cbiAgcmV0dXJuIHJldFxufTtcblxuLyoqXG4gKiBPdGhlciBvYmplY3QgaGFzaGVzLlxuICovXG5zdHJhdHMucHJvcHMgPVxuc3RyYXRzLm1ldGhvZHMgPVxuc3RyYXRzLmluamVjdCA9XG5zdHJhdHMuY29tcHV0ZWQgPSBmdW5jdGlvbiAoXG4gIHBhcmVudFZhbCxcbiAgY2hpbGRWYWwsXG4gIHZtLFxuICBrZXlcbikge1xuICBpZiAoY2hpbGRWYWwgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGFzc2VydE9iamVjdFR5cGUoa2V5LCBjaGlsZFZhbCwgdm0pO1xuICB9XG4gIGlmICghcGFyZW50VmFsKSB7IHJldHVybiBjaGlsZFZhbCB9XG4gIHZhciByZXQgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBleHRlbmQocmV0LCBwYXJlbnRWYWwpO1xuICBpZiAoY2hpbGRWYWwpIHsgZXh0ZW5kKHJldCwgY2hpbGRWYWwpOyB9XG4gIHJldHVybiByZXRcbn07XG5zdHJhdHMucHJvdmlkZSA9IG1lcmdlRGF0YU9yRm47XG5cbi8qKlxuICogRGVmYXVsdCBzdHJhdGVneS5cbiAqL1xudmFyIGRlZmF1bHRTdHJhdCA9IGZ1bmN0aW9uIChwYXJlbnRWYWwsIGNoaWxkVmFsKSB7XG4gIHJldHVybiBjaGlsZFZhbCA9PT0gdW5kZWZpbmVkXG4gICAgPyBwYXJlbnRWYWxcbiAgICA6IGNoaWxkVmFsXG59O1xuXG4vKipcbiAqIFZhbGlkYXRlIGNvbXBvbmVudCBuYW1lc1xuICovXG5mdW5jdGlvbiBjaGVja0NvbXBvbmVudHMgKG9wdGlvbnMpIHtcbiAgZm9yICh2YXIga2V5IGluIG9wdGlvbnMuY29tcG9uZW50cykge1xuICAgIHZhbGlkYXRlQ29tcG9uZW50TmFtZShrZXkpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlQ29tcG9uZW50TmFtZSAobmFtZSkge1xuICBpZiAoIW5ldyBSZWdFeHAoKFwiXlthLXpBLVpdW1xcXFwtXFxcXC4wLTlfXCIgKyAodW5pY29kZVJlZ0V4cC5zb3VyY2UpICsgXCJdKiRcIikpLnRlc3QobmFtZSkpIHtcbiAgICB3YXJuKFxuICAgICAgJ0ludmFsaWQgY29tcG9uZW50IG5hbWU6IFwiJyArIG5hbWUgKyAnXCIuIENvbXBvbmVudCBuYW1lcyAnICtcbiAgICAgICdzaG91bGQgY29uZm9ybSB0byB2YWxpZCBjdXN0b20gZWxlbWVudCBuYW1lIGluIGh0bWw1IHNwZWNpZmljYXRpb24uJ1xuICAgICk7XG4gIH1cbiAgaWYgKGlzQnVpbHRJblRhZyhuYW1lKSB8fCBjb25maWcuaXNSZXNlcnZlZFRhZyhuYW1lKSkge1xuICAgIHdhcm4oXG4gICAgICAnRG8gbm90IHVzZSBidWlsdC1pbiBvciByZXNlcnZlZCBIVE1MIGVsZW1lbnRzIGFzIGNvbXBvbmVudCAnICtcbiAgICAgICdpZDogJyArIG5hbWVcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogRW5zdXJlIGFsbCBwcm9wcyBvcHRpb24gc3ludGF4IGFyZSBub3JtYWxpemVkIGludG8gdGhlXG4gKiBPYmplY3QtYmFzZWQgZm9ybWF0LlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVQcm9wcyAob3B0aW9ucywgdm0pIHtcbiAgdmFyIHByb3BzID0gb3B0aW9ucy5wcm9wcztcbiAgaWYgKCFwcm9wcykgeyByZXR1cm4gfVxuICB2YXIgcmVzID0ge307XG4gIHZhciBpLCB2YWwsIG5hbWU7XG4gIGlmIChBcnJheS5pc0FycmF5KHByb3BzKSkge1xuICAgIGkgPSBwcm9wcy5sZW5ndGg7XG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgdmFsID0gcHJvcHNbaV07XG4gICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgbmFtZSA9IGNhbWVsaXplKHZhbCk7XG4gICAgICAgIHJlc1tuYW1lXSA9IHsgdHlwZTogbnVsbCB9O1xuICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIHdhcm4oJ3Byb3BzIG11c3QgYmUgc3RyaW5ncyB3aGVuIHVzaW5nIGFycmF5IHN5bnRheC4nKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNQbGFpbk9iamVjdChwcm9wcykpIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gcHJvcHMpIHtcbiAgICAgIHZhbCA9IHByb3BzW2tleV07XG4gICAgICBuYW1lID0gY2FtZWxpemUoa2V5KTtcbiAgICAgIHJlc1tuYW1lXSA9IGlzUGxhaW5PYmplY3QodmFsKVxuICAgICAgICA/IHZhbFxuICAgICAgICA6IHsgdHlwZTogdmFsIH07XG4gICAgfVxuICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICB3YXJuKFxuICAgICAgXCJJbnZhbGlkIHZhbHVlIGZvciBvcHRpb24gXFxcInByb3BzXFxcIjogZXhwZWN0ZWQgYW4gQXJyYXkgb3IgYW4gT2JqZWN0LCBcIiArXG4gICAgICBcImJ1dCBnb3QgXCIgKyAodG9SYXdUeXBlKHByb3BzKSkgKyBcIi5cIixcbiAgICAgIHZtXG4gICAgKTtcbiAgfVxuICBvcHRpb25zLnByb3BzID0gcmVzO1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZSBhbGwgaW5qZWN0aW9ucyBpbnRvIE9iamVjdC1iYXNlZCBmb3JtYXRcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplSW5qZWN0IChvcHRpb25zLCB2bSkge1xuICB2YXIgaW5qZWN0ID0gb3B0aW9ucy5pbmplY3Q7XG4gIGlmICghaW5qZWN0KSB7IHJldHVybiB9XG4gIHZhciBub3JtYWxpemVkID0gb3B0aW9ucy5pbmplY3QgPSB7fTtcbiAgaWYgKEFycmF5LmlzQXJyYXkoaW5qZWN0KSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5qZWN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBub3JtYWxpemVkW2luamVjdFtpXV0gPSB7IGZyb206IGluamVjdFtpXSB9O1xuICAgIH1cbiAgfSBlbHNlIGlmIChpc1BsYWluT2JqZWN0KGluamVjdCkpIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gaW5qZWN0KSB7XG4gICAgICB2YXIgdmFsID0gaW5qZWN0W2tleV07XG4gICAgICBub3JtYWxpemVkW2tleV0gPSBpc1BsYWluT2JqZWN0KHZhbClcbiAgICAgICAgPyBleHRlbmQoeyBmcm9tOiBrZXkgfSwgdmFsKVxuICAgICAgICA6IHsgZnJvbTogdmFsIH07XG4gICAgfVxuICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICB3YXJuKFxuICAgICAgXCJJbnZhbGlkIHZhbHVlIGZvciBvcHRpb24gXFxcImluamVjdFxcXCI6IGV4cGVjdGVkIGFuIEFycmF5IG9yIGFuIE9iamVjdCwgXCIgK1xuICAgICAgXCJidXQgZ290IFwiICsgKHRvUmF3VHlwZShpbmplY3QpKSArIFwiLlwiLFxuICAgICAgdm1cbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogTm9ybWFsaXplIHJhdyBmdW5jdGlvbiBkaXJlY3RpdmVzIGludG8gb2JqZWN0IGZvcm1hdC5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplRGlyZWN0aXZlcyAob3B0aW9ucykge1xuICB2YXIgZGlycyA9IG9wdGlvbnMuZGlyZWN0aXZlcztcbiAgaWYgKGRpcnMpIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gZGlycykge1xuICAgICAgdmFyIGRlZiQkMSA9IGRpcnNba2V5XTtcbiAgICAgIGlmICh0eXBlb2YgZGVmJCQxID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGRpcnNba2V5XSA9IHsgYmluZDogZGVmJCQxLCB1cGRhdGU6IGRlZiQkMSB9O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBhc3NlcnRPYmplY3RUeXBlIChuYW1lLCB2YWx1ZSwgdm0pIHtcbiAgaWYgKCFpc1BsYWluT2JqZWN0KHZhbHVlKSkge1xuICAgIHdhcm4oXG4gICAgICBcIkludmFsaWQgdmFsdWUgZm9yIG9wdGlvbiBcXFwiXCIgKyBuYW1lICsgXCJcXFwiOiBleHBlY3RlZCBhbiBPYmplY3QsIFwiICtcbiAgICAgIFwiYnV0IGdvdCBcIiArICh0b1Jhd1R5cGUodmFsdWUpKSArIFwiLlwiLFxuICAgICAgdm1cbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogTWVyZ2UgdHdvIG9wdGlvbiBvYmplY3RzIGludG8gYSBuZXcgb25lLlxuICogQ29yZSB1dGlsaXR5IHVzZWQgaW4gYm90aCBpbnN0YW50aWF0aW9uIGFuZCBpbmhlcml0YW5jZS5cbiAqL1xuZnVuY3Rpb24gbWVyZ2VPcHRpb25zIChcbiAgcGFyZW50LFxuICBjaGlsZCxcbiAgdm1cbikge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGNoZWNrQ29tcG9uZW50cyhjaGlsZCk7XG4gIH1cblxuICBpZiAodHlwZW9mIGNoaWxkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY2hpbGQgPSBjaGlsZC5vcHRpb25zO1xuICB9XG5cbiAgbm9ybWFsaXplUHJvcHMoY2hpbGQsIHZtKTtcbiAgbm9ybWFsaXplSW5qZWN0KGNoaWxkLCB2bSk7XG4gIG5vcm1hbGl6ZURpcmVjdGl2ZXMoY2hpbGQpO1xuXG4gIC8vIEFwcGx5IGV4dGVuZHMgYW5kIG1peGlucyBvbiB0aGUgY2hpbGQgb3B0aW9ucyxcbiAgLy8gYnV0IG9ubHkgaWYgaXQgaXMgYSByYXcgb3B0aW9ucyBvYmplY3QgdGhhdCBpc24ndFxuICAvLyB0aGUgcmVzdWx0IG9mIGFub3RoZXIgbWVyZ2VPcHRpb25zIGNhbGwuXG4gIC8vIE9ubHkgbWVyZ2VkIG9wdGlvbnMgaGFzIHRoZSBfYmFzZSBwcm9wZXJ0eS5cbiAgaWYgKCFjaGlsZC5fYmFzZSkge1xuICAgIGlmIChjaGlsZC5leHRlbmRzKSB7XG4gICAgICBwYXJlbnQgPSBtZXJnZU9wdGlvbnMocGFyZW50LCBjaGlsZC5leHRlbmRzLCB2bSk7XG4gICAgfVxuICAgIGlmIChjaGlsZC5taXhpbnMpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwLCBsID0gY2hpbGQubWl4aW5zLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICBwYXJlbnQgPSBtZXJnZU9wdGlvbnMocGFyZW50LCBjaGlsZC5taXhpbnNbaV0sIHZtKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgb3B0aW9ucyA9IHt9O1xuICB2YXIga2V5O1xuICBmb3IgKGtleSBpbiBwYXJlbnQpIHtcbiAgICBtZXJnZUZpZWxkKGtleSk7XG4gIH1cbiAgZm9yIChrZXkgaW4gY2hpbGQpIHtcbiAgICBpZiAoIWhhc093bihwYXJlbnQsIGtleSkpIHtcbiAgICAgIG1lcmdlRmllbGQoa2V5KTtcbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gbWVyZ2VGaWVsZCAoa2V5KSB7XG4gICAgdmFyIHN0cmF0ID0gc3RyYXRzW2tleV0gfHwgZGVmYXVsdFN0cmF0O1xuICAgIG9wdGlvbnNba2V5XSA9IHN0cmF0KHBhcmVudFtrZXldLCBjaGlsZFtrZXldLCB2bSwga2V5KTtcbiAgfVxuICByZXR1cm4gb3B0aW9uc1xufVxuXG4vKipcbiAqIFJlc29sdmUgYW4gYXNzZXQuXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgYmVjYXVzZSBjaGlsZCBpbnN0YW5jZXMgbmVlZCBhY2Nlc3NcbiAqIHRvIGFzc2V0cyBkZWZpbmVkIGluIGl0cyBhbmNlc3RvciBjaGFpbi5cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZUFzc2V0IChcbiAgb3B0aW9ucyxcbiAgdHlwZSxcbiAgaWQsXG4gIHdhcm5NaXNzaW5nXG4pIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmICh0eXBlb2YgaWQgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgdmFyIGFzc2V0cyA9IG9wdGlvbnNbdHlwZV07XG4gIC8vIGNoZWNrIGxvY2FsIHJlZ2lzdHJhdGlvbiB2YXJpYXRpb25zIGZpcnN0XG4gIGlmIChoYXNPd24oYXNzZXRzLCBpZCkpIHsgcmV0dXJuIGFzc2V0c1tpZF0gfVxuICB2YXIgY2FtZWxpemVkSWQgPSBjYW1lbGl6ZShpZCk7XG4gIGlmIChoYXNPd24oYXNzZXRzLCBjYW1lbGl6ZWRJZCkpIHsgcmV0dXJuIGFzc2V0c1tjYW1lbGl6ZWRJZF0gfVxuICB2YXIgUGFzY2FsQ2FzZUlkID0gY2FwaXRhbGl6ZShjYW1lbGl6ZWRJZCk7XG4gIGlmIChoYXNPd24oYXNzZXRzLCBQYXNjYWxDYXNlSWQpKSB7IHJldHVybiBhc3NldHNbUGFzY2FsQ2FzZUlkXSB9XG4gIC8vIGZhbGxiYWNrIHRvIHByb3RvdHlwZSBjaGFpblxuICB2YXIgcmVzID0gYXNzZXRzW2lkXSB8fCBhc3NldHNbY2FtZWxpemVkSWRdIHx8IGFzc2V0c1tQYXNjYWxDYXNlSWRdO1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB3YXJuTWlzc2luZyAmJiAhcmVzKSB7XG4gICAgd2FybihcbiAgICAgICdGYWlsZWQgdG8gcmVzb2x2ZSAnICsgdHlwZS5zbGljZSgwLCAtMSkgKyAnOiAnICsgaWQsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbi8qICAqL1xuXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVQcm9wIChcbiAga2V5LFxuICBwcm9wT3B0aW9ucyxcbiAgcHJvcHNEYXRhLFxuICB2bVxuKSB7XG4gIHZhciBwcm9wID0gcHJvcE9wdGlvbnNba2V5XTtcbiAgdmFyIGFic2VudCA9ICFoYXNPd24ocHJvcHNEYXRhLCBrZXkpO1xuICB2YXIgdmFsdWUgPSBwcm9wc0RhdGFba2V5XTtcbiAgLy8gYm9vbGVhbiBjYXN0aW5nXG4gIHZhciBib29sZWFuSW5kZXggPSBnZXRUeXBlSW5kZXgoQm9vbGVhbiwgcHJvcC50eXBlKTtcbiAgaWYgKGJvb2xlYW5JbmRleCA+IC0xKSB7XG4gICAgaWYgKGFic2VudCAmJiAhaGFzT3duKHByb3AsICdkZWZhdWx0JykpIHtcbiAgICAgIHZhbHVlID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09IGh5cGhlbmF0ZShrZXkpKSB7XG4gICAgICAvLyBvbmx5IGNhc3QgZW1wdHkgc3RyaW5nIC8gc2FtZSBuYW1lIHRvIGJvb2xlYW4gaWZcbiAgICAgIC8vIGJvb2xlYW4gaGFzIGhpZ2hlciBwcmlvcml0eVxuICAgICAgdmFyIHN0cmluZ0luZGV4ID0gZ2V0VHlwZUluZGV4KFN0cmluZywgcHJvcC50eXBlKTtcbiAgICAgIGlmIChzdHJpbmdJbmRleCA8IDAgfHwgYm9vbGVhbkluZGV4IDwgc3RyaW5nSW5kZXgpIHtcbiAgICAgICAgdmFsdWUgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyBjaGVjayBkZWZhdWx0IHZhbHVlXG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdmFsdWUgPSBnZXRQcm9wRGVmYXVsdFZhbHVlKHZtLCBwcm9wLCBrZXkpO1xuICAgIC8vIHNpbmNlIHRoZSBkZWZhdWx0IHZhbHVlIGlzIGEgZnJlc2ggY29weSxcbiAgICAvLyBtYWtlIHN1cmUgdG8gb2JzZXJ2ZSBpdC5cbiAgICB2YXIgcHJldlNob3VsZE9ic2VydmUgPSBzaG91bGRPYnNlcnZlO1xuICAgIHRvZ2dsZU9ic2VydmluZyh0cnVlKTtcbiAgICBvYnNlcnZlKHZhbHVlKTtcbiAgICB0b2dnbGVPYnNlcnZpbmcocHJldlNob3VsZE9ic2VydmUpO1xuICB9XG4gIGlmIChcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmXG4gICAgLy8gc2tpcCB2YWxpZGF0aW9uIGZvciB3ZWV4IHJlY3ljbGUtbGlzdCBjaGlsZCBjb21wb25lbnQgcHJvcHNcbiAgICAhKGZhbHNlKVxuICApIHtcbiAgICBhc3NlcnRQcm9wKHByb3AsIGtleSwgdmFsdWUsIHZtLCBhYnNlbnQpO1xuICB9XG4gIHJldHVybiB2YWx1ZVxufVxuXG4vKipcbiAqIEdldCB0aGUgZGVmYXVsdCB2YWx1ZSBvZiBhIHByb3AuXG4gKi9cbmZ1bmN0aW9uIGdldFByb3BEZWZhdWx0VmFsdWUgKHZtLCBwcm9wLCBrZXkpIHtcbiAgLy8gbm8gZGVmYXVsdCwgcmV0dXJuIHVuZGVmaW5lZFxuICBpZiAoIWhhc093bihwcm9wLCAnZGVmYXVsdCcpKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG4gIHZhciBkZWYgPSBwcm9wLmRlZmF1bHQ7XG4gIC8vIHdhcm4gYWdhaW5zdCBub24tZmFjdG9yeSBkZWZhdWx0cyBmb3IgT2JqZWN0ICYgQXJyYXlcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgaXNPYmplY3QoZGVmKSkge1xuICAgIHdhcm4oXG4gICAgICAnSW52YWxpZCBkZWZhdWx0IHZhbHVlIGZvciBwcm9wIFwiJyArIGtleSArICdcIjogJyArXG4gICAgICAnUHJvcHMgd2l0aCB0eXBlIE9iamVjdC9BcnJheSBtdXN0IHVzZSBhIGZhY3RvcnkgZnVuY3Rpb24gJyArXG4gICAgICAndG8gcmV0dXJuIHRoZSBkZWZhdWx0IHZhbHVlLicsXG4gICAgICB2bVxuICAgICk7XG4gIH1cbiAgLy8gdGhlIHJhdyBwcm9wIHZhbHVlIHdhcyBhbHNvIHVuZGVmaW5lZCBmcm9tIHByZXZpb3VzIHJlbmRlcixcbiAgLy8gcmV0dXJuIHByZXZpb3VzIGRlZmF1bHQgdmFsdWUgdG8gYXZvaWQgdW5uZWNlc3Nhcnkgd2F0Y2hlciB0cmlnZ2VyXG4gIGlmICh2bSAmJiB2bS4kb3B0aW9ucy5wcm9wc0RhdGEgJiZcbiAgICB2bS4kb3B0aW9ucy5wcm9wc0RhdGFba2V5XSA9PT0gdW5kZWZpbmVkICYmXG4gICAgdm0uX3Byb3BzW2tleV0gIT09IHVuZGVmaW5lZFxuICApIHtcbiAgICByZXR1cm4gdm0uX3Byb3BzW2tleV1cbiAgfVxuICAvLyBjYWxsIGZhY3RvcnkgZnVuY3Rpb24gZm9yIG5vbi1GdW5jdGlvbiB0eXBlc1xuICAvLyBhIHZhbHVlIGlzIEZ1bmN0aW9uIGlmIGl0cyBwcm90b3R5cGUgaXMgZnVuY3Rpb24gZXZlbiBhY3Jvc3MgZGlmZmVyZW50IGV4ZWN1dGlvbiBjb250ZXh0XG4gIHJldHVybiB0eXBlb2YgZGVmID09PSAnZnVuY3Rpb24nICYmIGdldFR5cGUocHJvcC50eXBlKSAhPT0gJ0Z1bmN0aW9uJ1xuICAgID8gZGVmLmNhbGwodm0pXG4gICAgOiBkZWZcbn1cblxuLyoqXG4gKiBBc3NlcnQgd2hldGhlciBhIHByb3AgaXMgdmFsaWQuXG4gKi9cbmZ1bmN0aW9uIGFzc2VydFByb3AgKFxuICBwcm9wLFxuICBuYW1lLFxuICB2YWx1ZSxcbiAgdm0sXG4gIGFic2VudFxuKSB7XG4gIGlmIChwcm9wLnJlcXVpcmVkICYmIGFic2VudCkge1xuICAgIHdhcm4oXG4gICAgICAnTWlzc2luZyByZXF1aXJlZCBwcm9wOiBcIicgKyBuYW1lICsgJ1wiJyxcbiAgICAgIHZtXG4gICAgKTtcbiAgICByZXR1cm5cbiAgfVxuICBpZiAodmFsdWUgPT0gbnVsbCAmJiAhcHJvcC5yZXF1aXJlZCkge1xuICAgIHJldHVyblxuICB9XG4gIHZhciB0eXBlID0gcHJvcC50eXBlO1xuICB2YXIgdmFsaWQgPSAhdHlwZSB8fCB0eXBlID09PSB0cnVlO1xuICB2YXIgZXhwZWN0ZWRUeXBlcyA9IFtdO1xuICBpZiAodHlwZSkge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh0eXBlKSkge1xuICAgICAgdHlwZSA9IFt0eXBlXTtcbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0eXBlLmxlbmd0aCAmJiAhdmFsaWQ7IGkrKykge1xuICAgICAgdmFyIGFzc2VydGVkVHlwZSA9IGFzc2VydFR5cGUodmFsdWUsIHR5cGVbaV0sIHZtKTtcbiAgICAgIGV4cGVjdGVkVHlwZXMucHVzaChhc3NlcnRlZFR5cGUuZXhwZWN0ZWRUeXBlIHx8ICcnKTtcbiAgICAgIHZhbGlkID0gYXNzZXJ0ZWRUeXBlLnZhbGlkO1xuICAgIH1cbiAgfVxuXG4gIHZhciBoYXZlRXhwZWN0ZWRUeXBlcyA9IGV4cGVjdGVkVHlwZXMuc29tZShmdW5jdGlvbiAodCkgeyByZXR1cm4gdDsgfSk7XG4gIGlmICghdmFsaWQgJiYgaGF2ZUV4cGVjdGVkVHlwZXMpIHtcbiAgICB3YXJuKFxuICAgICAgZ2V0SW52YWxpZFR5cGVNZXNzYWdlKG5hbWUsIHZhbHVlLCBleHBlY3RlZFR5cGVzKSxcbiAgICAgIHZtXG4gICAgKTtcbiAgICByZXR1cm5cbiAgfVxuICB2YXIgdmFsaWRhdG9yID0gcHJvcC52YWxpZGF0b3I7XG4gIGlmICh2YWxpZGF0b3IpIHtcbiAgICBpZiAoIXZhbGlkYXRvcih2YWx1ZSkpIHtcbiAgICAgIHdhcm4oXG4gICAgICAgICdJbnZhbGlkIHByb3A6IGN1c3RvbSB2YWxpZGF0b3IgY2hlY2sgZmFpbGVkIGZvciBwcm9wIFwiJyArIG5hbWUgKyAnXCIuJyxcbiAgICAgICAgdm1cbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbnZhciBzaW1wbGVDaGVja1JFID0gL14oU3RyaW5nfE51bWJlcnxCb29sZWFufEZ1bmN0aW9ufFN5bWJvbHxCaWdJbnQpJC87XG5cbmZ1bmN0aW9uIGFzc2VydFR5cGUgKHZhbHVlLCB0eXBlLCB2bSkge1xuICB2YXIgdmFsaWQ7XG4gIHZhciBleHBlY3RlZFR5cGUgPSBnZXRUeXBlKHR5cGUpO1xuICBpZiAoc2ltcGxlQ2hlY2tSRS50ZXN0KGV4cGVjdGVkVHlwZSkpIHtcbiAgICB2YXIgdCA9IHR5cGVvZiB2YWx1ZTtcbiAgICB2YWxpZCA9IHQgPT09IGV4cGVjdGVkVHlwZS50b0xvd2VyQ2FzZSgpO1xuICAgIC8vIGZvciBwcmltaXRpdmUgd3JhcHBlciBvYmplY3RzXG4gICAgaWYgKCF2YWxpZCAmJiB0ID09PSAnb2JqZWN0Jykge1xuICAgICAgdmFsaWQgPSB2YWx1ZSBpbnN0YW5jZW9mIHR5cGU7XG4gICAgfVxuICB9IGVsc2UgaWYgKGV4cGVjdGVkVHlwZSA9PT0gJ09iamVjdCcpIHtcbiAgICB2YWxpZCA9IGlzUGxhaW5PYmplY3QodmFsdWUpO1xuICB9IGVsc2UgaWYgKGV4cGVjdGVkVHlwZSA9PT0gJ0FycmF5Jykge1xuICAgIHZhbGlkID0gQXJyYXkuaXNBcnJheSh2YWx1ZSk7XG4gIH0gZWxzZSB7XG4gICAgdHJ5IHtcbiAgICAgIHZhbGlkID0gdmFsdWUgaW5zdGFuY2VvZiB0eXBlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHdhcm4oJ0ludmFsaWQgcHJvcCB0eXBlOiBcIicgKyBTdHJpbmcodHlwZSkgKyAnXCIgaXMgbm90IGEgY29uc3RydWN0b3InLCB2bSk7XG4gICAgICB2YWxpZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuICByZXR1cm4ge1xuICAgIHZhbGlkOiB2YWxpZCxcbiAgICBleHBlY3RlZFR5cGU6IGV4cGVjdGVkVHlwZVxuICB9XG59XG5cbnZhciBmdW5jdGlvblR5cGVDaGVja1JFID0gL15cXHMqZnVuY3Rpb24gKFxcdyspLztcblxuLyoqXG4gKiBVc2UgZnVuY3Rpb24gc3RyaW5nIG5hbWUgdG8gY2hlY2sgYnVpbHQtaW4gdHlwZXMsXG4gKiBiZWNhdXNlIGEgc2ltcGxlIGVxdWFsaXR5IGNoZWNrIHdpbGwgZmFpbCB3aGVuIHJ1bm5pbmdcbiAqIGFjcm9zcyBkaWZmZXJlbnQgdm1zIC8gaWZyYW1lcy5cbiAqL1xuZnVuY3Rpb24gZ2V0VHlwZSAoZm4pIHtcbiAgdmFyIG1hdGNoID0gZm4gJiYgZm4udG9TdHJpbmcoKS5tYXRjaChmdW5jdGlvblR5cGVDaGVja1JFKTtcbiAgcmV0dXJuIG1hdGNoID8gbWF0Y2hbMV0gOiAnJ1xufVxuXG5mdW5jdGlvbiBpc1NhbWVUeXBlIChhLCBiKSB7XG4gIHJldHVybiBnZXRUeXBlKGEpID09PSBnZXRUeXBlKGIpXG59XG5cbmZ1bmN0aW9uIGdldFR5cGVJbmRleCAodHlwZSwgZXhwZWN0ZWRUeXBlcykge1xuICBpZiAoIUFycmF5LmlzQXJyYXkoZXhwZWN0ZWRUeXBlcykpIHtcbiAgICByZXR1cm4gaXNTYW1lVHlwZShleHBlY3RlZFR5cGVzLCB0eXBlKSA/IDAgOiAtMVxuICB9XG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBleHBlY3RlZFR5cGVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgaWYgKGlzU2FtZVR5cGUoZXhwZWN0ZWRUeXBlc1tpXSwgdHlwZSkpIHtcbiAgICAgIHJldHVybiBpXG4gICAgfVxuICB9XG4gIHJldHVybiAtMVxufVxuXG5mdW5jdGlvbiBnZXRJbnZhbGlkVHlwZU1lc3NhZ2UgKG5hbWUsIHZhbHVlLCBleHBlY3RlZFR5cGVzKSB7XG4gIHZhciBtZXNzYWdlID0gXCJJbnZhbGlkIHByb3A6IHR5cGUgY2hlY2sgZmFpbGVkIGZvciBwcm9wIFxcXCJcIiArIG5hbWUgKyBcIlxcXCIuXCIgK1xuICAgIFwiIEV4cGVjdGVkIFwiICsgKGV4cGVjdGVkVHlwZXMubWFwKGNhcGl0YWxpemUpLmpvaW4oJywgJykpO1xuICB2YXIgZXhwZWN0ZWRUeXBlID0gZXhwZWN0ZWRUeXBlc1swXTtcbiAgdmFyIHJlY2VpdmVkVHlwZSA9IHRvUmF3VHlwZSh2YWx1ZSk7XG4gIC8vIGNoZWNrIGlmIHdlIG5lZWQgdG8gc3BlY2lmeSBleHBlY3RlZCB2YWx1ZVxuICBpZiAoXG4gICAgZXhwZWN0ZWRUeXBlcy5sZW5ndGggPT09IDEgJiZcbiAgICBpc0V4cGxpY2FibGUoZXhwZWN0ZWRUeXBlKSAmJlxuICAgIGlzRXhwbGljYWJsZSh0eXBlb2YgdmFsdWUpICYmXG4gICAgIWlzQm9vbGVhbihleHBlY3RlZFR5cGUsIHJlY2VpdmVkVHlwZSlcbiAgKSB7XG4gICAgbWVzc2FnZSArPSBcIiB3aXRoIHZhbHVlIFwiICsgKHN0eWxlVmFsdWUodmFsdWUsIGV4cGVjdGVkVHlwZSkpO1xuICB9XG4gIG1lc3NhZ2UgKz0gXCIsIGdvdCBcIiArIHJlY2VpdmVkVHlwZSArIFwiIFwiO1xuICAvLyBjaGVjayBpZiB3ZSBuZWVkIHRvIHNwZWNpZnkgcmVjZWl2ZWQgdmFsdWVcbiAgaWYgKGlzRXhwbGljYWJsZShyZWNlaXZlZFR5cGUpKSB7XG4gICAgbWVzc2FnZSArPSBcIndpdGggdmFsdWUgXCIgKyAoc3R5bGVWYWx1ZSh2YWx1ZSwgcmVjZWl2ZWRUeXBlKSkgKyBcIi5cIjtcbiAgfVxuICByZXR1cm4gbWVzc2FnZVxufVxuXG5mdW5jdGlvbiBzdHlsZVZhbHVlICh2YWx1ZSwgdHlwZSkge1xuICBpZiAodHlwZSA9PT0gJ1N0cmluZycpIHtcbiAgICByZXR1cm4gKFwiXFxcIlwiICsgdmFsdWUgKyBcIlxcXCJcIilcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnTnVtYmVyJykge1xuICAgIHJldHVybiAoXCJcIiArIChOdW1iZXIodmFsdWUpKSlcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gKFwiXCIgKyB2YWx1ZSlcbiAgfVxufVxuXG52YXIgRVhQTElDQUJMRV9UWVBFUyA9IFsnc3RyaW5nJywgJ251bWJlcicsICdib29sZWFuJ107XG5mdW5jdGlvbiBpc0V4cGxpY2FibGUgKHZhbHVlKSB7XG4gIHJldHVybiBFWFBMSUNBQkxFX1RZUEVTLnNvbWUoZnVuY3Rpb24gKGVsZW0pIHsgcmV0dXJuIHZhbHVlLnRvTG93ZXJDYXNlKCkgPT09IGVsZW07IH0pXG59XG5cbmZ1bmN0aW9uIGlzQm9vbGVhbiAoKSB7XG4gIHZhciBhcmdzID0gW10sIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gIHdoaWxlICggbGVuLS0gKSBhcmdzWyBsZW4gXSA9IGFyZ3VtZW50c1sgbGVuIF07XG5cbiAgcmV0dXJuIGFyZ3Muc29tZShmdW5jdGlvbiAoZWxlbSkgeyByZXR1cm4gZWxlbS50b0xvd2VyQ2FzZSgpID09PSAnYm9vbGVhbic7IH0pXG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBoYW5kbGVFcnJvciAoZXJyLCB2bSwgaW5mbykge1xuICAvLyBEZWFjdGl2YXRlIGRlcHMgdHJhY2tpbmcgd2hpbGUgcHJvY2Vzc2luZyBlcnJvciBoYW5kbGVyIHRvIGF2b2lkIHBvc3NpYmxlIGluZmluaXRlIHJlbmRlcmluZy5cbiAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vdnVlanMvdnVleC9pc3N1ZXMvMTUwNVxuICBwdXNoVGFyZ2V0KCk7XG4gIHRyeSB7XG4gICAgaWYgKHZtKSB7XG4gICAgICB2YXIgY3VyID0gdm07XG4gICAgICB3aGlsZSAoKGN1ciA9IGN1ci4kcGFyZW50KSkge1xuICAgICAgICB2YXIgaG9va3MgPSBjdXIuJG9wdGlvbnMuZXJyb3JDYXB0dXJlZDtcbiAgICAgICAgaWYgKGhvb2tzKSB7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBob29rcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgdmFyIGNhcHR1cmUgPSBob29rc1tpXS5jYWxsKGN1ciwgZXJyLCB2bSwgaW5mbykgPT09IGZhbHNlO1xuICAgICAgICAgICAgICBpZiAoY2FwdHVyZSkgeyByZXR1cm4gfVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICBnbG9iYWxIYW5kbGVFcnJvcihlLCBjdXIsICdlcnJvckNhcHR1cmVkIGhvb2snKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZ2xvYmFsSGFuZGxlRXJyb3IoZXJyLCB2bSwgaW5mbyk7XG4gIH0gZmluYWxseSB7XG4gICAgcG9wVGFyZ2V0KCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW52b2tlV2l0aEVycm9ySGFuZGxpbmcgKFxuICBoYW5kbGVyLFxuICBjb250ZXh0LFxuICBhcmdzLFxuICB2bSxcbiAgaW5mb1xuKSB7XG4gIHZhciByZXM7XG4gIHRyeSB7XG4gICAgcmVzID0gYXJncyA/IGhhbmRsZXIuYXBwbHkoY29udGV4dCwgYXJncykgOiBoYW5kbGVyLmNhbGwoY29udGV4dCk7XG4gICAgaWYgKHJlcyAmJiAhcmVzLl9pc1Z1ZSAmJiBpc1Byb21pc2UocmVzKSAmJiAhcmVzLl9oYW5kbGVkKSB7XG4gICAgICByZXMuY2F0Y2goZnVuY3Rpb24gKGUpIHsgcmV0dXJuIGhhbmRsZUVycm9yKGUsIHZtLCBpbmZvICsgXCIgKFByb21pc2UvYXN5bmMpXCIpOyB9KTtcbiAgICAgIC8vIGlzc3VlICM5NTExXG4gICAgICAvLyBhdm9pZCBjYXRjaCB0cmlnZ2VyaW5nIG11bHRpcGxlIHRpbWVzIHdoZW4gbmVzdGVkIGNhbGxzXG4gICAgICByZXMuX2hhbmRsZWQgPSB0cnVlO1xuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIGhhbmRsZUVycm9yKGUsIHZtLCBpbmZvKTtcbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbmZ1bmN0aW9uIGdsb2JhbEhhbmRsZUVycm9yIChlcnIsIHZtLCBpbmZvKSB7XG4gIGlmIChjb25maWcuZXJyb3JIYW5kbGVyKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBjb25maWcuZXJyb3JIYW5kbGVyLmNhbGwobnVsbCwgZXJyLCB2bSwgaW5mbylcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBpZiB0aGUgdXNlciBpbnRlbnRpb25hbGx5IHRocm93cyB0aGUgb3JpZ2luYWwgZXJyb3IgaW4gdGhlIGhhbmRsZXIsXG4gICAgICAvLyBkbyBub3QgbG9nIGl0IHR3aWNlXG4gICAgICBpZiAoZSAhPT0gZXJyKSB7XG4gICAgICAgIGxvZ0Vycm9yKGUsIG51bGwsICdjb25maWcuZXJyb3JIYW5kbGVyJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGxvZ0Vycm9yKGVyciwgdm0sIGluZm8pO1xufVxuXG5mdW5jdGlvbiBsb2dFcnJvciAoZXJyLCB2bSwgaW5mbykge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIHdhcm4oKFwiRXJyb3IgaW4gXCIgKyBpbmZvICsgXCI6IFxcXCJcIiArIChlcnIudG9TdHJpbmcoKSkgKyBcIlxcXCJcIiksIHZtKTtcbiAgfVxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICBpZiAoKGluQnJvd3NlciB8fCBpbldlZXgpICYmIHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJykge1xuICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBlcnJcbiAgfVxufVxuXG4vKiAgKi9cblxudmFyIGlzVXNpbmdNaWNyb1Rhc2sgPSBmYWxzZTtcblxudmFyIGNhbGxiYWNrcyA9IFtdO1xudmFyIHBlbmRpbmcgPSBmYWxzZTtcblxuZnVuY3Rpb24gZmx1c2hDYWxsYmFja3MgKCkge1xuICBwZW5kaW5nID0gZmFsc2U7XG4gIHZhciBjb3BpZXMgPSBjYWxsYmFja3Muc2xpY2UoMCk7XG4gIGNhbGxiYWNrcy5sZW5ndGggPSAwO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGNvcGllcy5sZW5ndGg7IGkrKykge1xuICAgIGNvcGllc1tpXSgpO1xuICB9XG59XG5cbi8vIEhlcmUgd2UgaGF2ZSBhc3luYyBkZWZlcnJpbmcgd3JhcHBlcnMgdXNpbmcgbWljcm90YXNrcy5cbi8vIEluIDIuNSB3ZSB1c2VkIChtYWNybykgdGFza3MgKGluIGNvbWJpbmF0aW9uIHdpdGggbWljcm90YXNrcykuXG4vLyBIb3dldmVyLCBpdCBoYXMgc3VidGxlIHByb2JsZW1zIHdoZW4gc3RhdGUgaXMgY2hhbmdlZCByaWdodCBiZWZvcmUgcmVwYWludFxuLy8gKGUuZy4gIzY4MTMsIG91dC1pbiB0cmFuc2l0aW9ucykuXG4vLyBBbHNvLCB1c2luZyAobWFjcm8pIHRhc2tzIGluIGV2ZW50IGhhbmRsZXIgd291bGQgY2F1c2Ugc29tZSB3ZWlyZCBiZWhhdmlvcnNcbi8vIHRoYXQgY2Fubm90IGJlIGNpcmN1bXZlbnRlZCAoZS5nLiAjNzEwOSwgIzcxNTMsICM3NTQ2LCAjNzgzNCwgIzgxMDkpLlxuLy8gU28gd2Ugbm93IHVzZSBtaWNyb3Rhc2tzIGV2ZXJ5d2hlcmUsIGFnYWluLlxuLy8gQSBtYWpvciBkcmF3YmFjayBvZiB0aGlzIHRyYWRlb2ZmIGlzIHRoYXQgdGhlcmUgYXJlIHNvbWUgc2NlbmFyaW9zXG4vLyB3aGVyZSBtaWNyb3Rhc2tzIGhhdmUgdG9vIGhpZ2ggYSBwcmlvcml0eSBhbmQgZmlyZSBpbiBiZXR3ZWVuIHN1cHBvc2VkbHlcbi8vIHNlcXVlbnRpYWwgZXZlbnRzIChlLmcuICM0NTIxLCAjNjY5MCwgd2hpY2ggaGF2ZSB3b3JrYXJvdW5kcylcbi8vIG9yIGV2ZW4gYmV0d2VlbiBidWJibGluZyBvZiB0aGUgc2FtZSBldmVudCAoIzY1NjYpLlxudmFyIHRpbWVyRnVuYztcblxuLy8gVGhlIG5leHRUaWNrIGJlaGF2aW9yIGxldmVyYWdlcyB0aGUgbWljcm90YXNrIHF1ZXVlLCB3aGljaCBjYW4gYmUgYWNjZXNzZWRcbi8vIHZpYSBlaXRoZXIgbmF0aXZlIFByb21pc2UudGhlbiBvciBNdXRhdGlvbk9ic2VydmVyLlxuLy8gTXV0YXRpb25PYnNlcnZlciBoYXMgd2lkZXIgc3VwcG9ydCwgaG93ZXZlciBpdCBpcyBzZXJpb3VzbHkgYnVnZ2VkIGluXG4vLyBVSVdlYlZpZXcgaW4gaU9TID49IDkuMy4zIHdoZW4gdHJpZ2dlcmVkIGluIHRvdWNoIGV2ZW50IGhhbmRsZXJzLiBJdFxuLy8gY29tcGxldGVseSBzdG9wcyB3b3JraW5nIGFmdGVyIHRyaWdnZXJpbmcgYSBmZXcgdGltZXMuLi4gc28sIGlmIG5hdGl2ZVxuLy8gUHJvbWlzZSBpcyBhdmFpbGFibGUsIHdlIHdpbGwgdXNlIGl0OlxuLyogaXN0YW5idWwgaWdub3JlIG5leHQsICRmbG93LWRpc2FibGUtbGluZSAqL1xuaWYgKHR5cGVvZiBQcm9taXNlICE9PSAndW5kZWZpbmVkJyAmJiBpc05hdGl2ZShQcm9taXNlKSkge1xuICB2YXIgcCA9IFByb21pc2UucmVzb2x2ZSgpO1xuICB0aW1lckZ1bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgcC50aGVuKGZsdXNoQ2FsbGJhY2tzKTtcbiAgICAvLyBJbiBwcm9ibGVtYXRpYyBVSVdlYlZpZXdzLCBQcm9taXNlLnRoZW4gZG9lc24ndCBjb21wbGV0ZWx5IGJyZWFrLCBidXRcbiAgICAvLyBpdCBjYW4gZ2V0IHN0dWNrIGluIGEgd2VpcmQgc3RhdGUgd2hlcmUgY2FsbGJhY2tzIGFyZSBwdXNoZWQgaW50byB0aGVcbiAgICAvLyBtaWNyb3Rhc2sgcXVldWUgYnV0IHRoZSBxdWV1ZSBpc24ndCBiZWluZyBmbHVzaGVkLCB1bnRpbCB0aGUgYnJvd3NlclxuICAgIC8vIG5lZWRzIHRvIGRvIHNvbWUgb3RoZXIgd29yaywgZS5nLiBoYW5kbGUgYSB0aW1lci4gVGhlcmVmb3JlIHdlIGNhblxuICAgIC8vIFwiZm9yY2VcIiB0aGUgbWljcm90YXNrIHF1ZXVlIHRvIGJlIGZsdXNoZWQgYnkgYWRkaW5nIGFuIGVtcHR5IHRpbWVyLlxuICAgIGlmIChpc0lPUykgeyBzZXRUaW1lb3V0KG5vb3ApOyB9XG4gIH07XG4gIGlzVXNpbmdNaWNyb1Rhc2sgPSB0cnVlO1xufSBlbHNlIGlmICghaXNJRSAmJiB0eXBlb2YgTXV0YXRpb25PYnNlcnZlciAhPT0gJ3VuZGVmaW5lZCcgJiYgKFxuICBpc05hdGl2ZShNdXRhdGlvbk9ic2VydmVyKSB8fFxuICAvLyBQaGFudG9tSlMgYW5kIGlPUyA3LnhcbiAgTXV0YXRpb25PYnNlcnZlci50b1N0cmluZygpID09PSAnW29iamVjdCBNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3JdJ1xuKSkge1xuICAvLyBVc2UgTXV0YXRpb25PYnNlcnZlciB3aGVyZSBuYXRpdmUgUHJvbWlzZSBpcyBub3QgYXZhaWxhYmxlLFxuICAvLyBlLmcuIFBoYW50b21KUywgaU9TNywgQW5kcm9pZCA0LjRcbiAgLy8gKCM2NDY2IE11dGF0aW9uT2JzZXJ2ZXIgaXMgdW5yZWxpYWJsZSBpbiBJRTExKVxuICB2YXIgY291bnRlciA9IDE7XG4gIHZhciBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZsdXNoQ2FsbGJhY2tzKTtcbiAgdmFyIHRleHROb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoU3RyaW5nKGNvdW50ZXIpKTtcbiAgb2JzZXJ2ZXIub2JzZXJ2ZSh0ZXh0Tm9kZSwge1xuICAgIGNoYXJhY3RlckRhdGE6IHRydWVcbiAgfSk7XG4gIHRpbWVyRnVuYyA9IGZ1bmN0aW9uICgpIHtcbiAgICBjb3VudGVyID0gKGNvdW50ZXIgKyAxKSAlIDI7XG4gICAgdGV4dE5vZGUuZGF0YSA9IFN0cmluZyhjb3VudGVyKTtcbiAgfTtcbiAgaXNVc2luZ01pY3JvVGFzayA9IHRydWU7XG59IGVsc2UgaWYgKHR5cGVvZiBzZXRJbW1lZGlhdGUgIT09ICd1bmRlZmluZWQnICYmIGlzTmF0aXZlKHNldEltbWVkaWF0ZSkpIHtcbiAgLy8gRmFsbGJhY2sgdG8gc2V0SW1tZWRpYXRlLlxuICAvLyBUZWNobmljYWxseSBpdCBsZXZlcmFnZXMgdGhlIChtYWNybykgdGFzayBxdWV1ZSxcbiAgLy8gYnV0IGl0IGlzIHN0aWxsIGEgYmV0dGVyIGNob2ljZSB0aGFuIHNldFRpbWVvdXQuXG4gIHRpbWVyRnVuYyA9IGZ1bmN0aW9uICgpIHtcbiAgICBzZXRJbW1lZGlhdGUoZmx1c2hDYWxsYmFja3MpO1xuICB9O1xufSBlbHNlIHtcbiAgLy8gRmFsbGJhY2sgdG8gc2V0VGltZW91dC5cbiAgdGltZXJGdW5jID0gZnVuY3Rpb24gKCkge1xuICAgIHNldFRpbWVvdXQoZmx1c2hDYWxsYmFja3MsIDApO1xuICB9O1xufVxuXG5mdW5jdGlvbiBuZXh0VGljayAoY2IsIGN0eCkge1xuICB2YXIgX3Jlc29sdmU7XG4gIGNhbGxiYWNrcy5wdXNoKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoY2IpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNiLmNhbGwoY3R4KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgaGFuZGxlRXJyb3IoZSwgY3R4LCAnbmV4dFRpY2snKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKF9yZXNvbHZlKSB7XG4gICAgICBfcmVzb2x2ZShjdHgpO1xuICAgIH1cbiAgfSk7XG4gIGlmICghcGVuZGluZykge1xuICAgIHBlbmRpbmcgPSB0cnVlO1xuICAgIHRpbWVyRnVuYygpO1xuICB9XG4gIC8vICRmbG93LWRpc2FibGUtbGluZVxuICBpZiAoIWNiICYmIHR5cGVvZiBQcm9taXNlICE9PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkge1xuICAgICAgX3Jlc29sdmUgPSByZXNvbHZlO1xuICAgIH0pXG4gIH1cbn1cblxuLyogICovXG5cbi8qIG5vdCB0eXBlIGNoZWNraW5nIHRoaXMgZmlsZSBiZWNhdXNlIGZsb3cgZG9lc24ndCBwbGF5IHdlbGwgd2l0aCBQcm94eSAqL1xuXG52YXIgaW5pdFByb3h5O1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgYWxsb3dlZEdsb2JhbHMgPSBtYWtlTWFwKFxuICAgICdJbmZpbml0eSx1bmRlZmluZWQsTmFOLGlzRmluaXRlLGlzTmFOLCcgK1xuICAgICdwYXJzZUZsb2F0LHBhcnNlSW50LGRlY29kZVVSSSxkZWNvZGVVUklDb21wb25lbnQsZW5jb2RlVVJJLGVuY29kZVVSSUNvbXBvbmVudCwnICtcbiAgICAnTWF0aCxOdW1iZXIsRGF0ZSxBcnJheSxPYmplY3QsQm9vbGVhbixTdHJpbmcsUmVnRXhwLE1hcCxTZXQsSlNPTixJbnRsLEJpZ0ludCwnICtcbiAgICAncmVxdWlyZScgLy8gZm9yIFdlYnBhY2svQnJvd3NlcmlmeVxuICApO1xuXG4gIHZhciB3YXJuTm9uUHJlc2VudCA9IGZ1bmN0aW9uICh0YXJnZXQsIGtleSkge1xuICAgIHdhcm4oXG4gICAgICBcIlByb3BlcnR5IG9yIG1ldGhvZCBcXFwiXCIgKyBrZXkgKyBcIlxcXCIgaXMgbm90IGRlZmluZWQgb24gdGhlIGluc3RhbmNlIGJ1dCBcIiArXG4gICAgICAncmVmZXJlbmNlZCBkdXJpbmcgcmVuZGVyLiBNYWtlIHN1cmUgdGhhdCB0aGlzIHByb3BlcnR5IGlzIHJlYWN0aXZlLCAnICtcbiAgICAgICdlaXRoZXIgaW4gdGhlIGRhdGEgb3B0aW9uLCBvciBmb3IgY2xhc3MtYmFzZWQgY29tcG9uZW50cywgYnkgJyArXG4gICAgICAnaW5pdGlhbGl6aW5nIHRoZSBwcm9wZXJ0eS4gJyArXG4gICAgICAnU2VlOiBodHRwczovL3Z1ZWpzLm9yZy92Mi9ndWlkZS9yZWFjdGl2aXR5Lmh0bWwjRGVjbGFyaW5nLVJlYWN0aXZlLVByb3BlcnRpZXMuJyxcbiAgICAgIHRhcmdldFxuICAgICk7XG4gIH07XG5cbiAgdmFyIHdhcm5SZXNlcnZlZFByZWZpeCA9IGZ1bmN0aW9uICh0YXJnZXQsIGtleSkge1xuICAgIHdhcm4oXG4gICAgICBcIlByb3BlcnR5IFxcXCJcIiArIGtleSArIFwiXFxcIiBtdXN0IGJlIGFjY2Vzc2VkIHdpdGggXFxcIiRkYXRhLlwiICsga2V5ICsgXCJcXFwiIGJlY2F1c2UgXCIgK1xuICAgICAgJ3Byb3BlcnRpZXMgc3RhcnRpbmcgd2l0aCBcIiRcIiBvciBcIl9cIiBhcmUgbm90IHByb3hpZWQgaW4gdGhlIFZ1ZSBpbnN0YW5jZSB0byAnICtcbiAgICAgICdwcmV2ZW50IGNvbmZsaWN0cyB3aXRoIFZ1ZSBpbnRlcm5hbHMuICcgK1xuICAgICAgJ1NlZTogaHR0cHM6Ly92dWVqcy5vcmcvdjIvYXBpLyNkYXRhJyxcbiAgICAgIHRhcmdldFxuICAgICk7XG4gIH07XG5cbiAgdmFyIGhhc1Byb3h5ID1cbiAgICB0eXBlb2YgUHJveHkgIT09ICd1bmRlZmluZWQnICYmIGlzTmF0aXZlKFByb3h5KTtcblxuICBpZiAoaGFzUHJveHkpIHtcbiAgICB2YXIgaXNCdWlsdEluTW9kaWZpZXIgPSBtYWtlTWFwKCdzdG9wLHByZXZlbnQsc2VsZixjdHJsLHNoaWZ0LGFsdCxtZXRhLGV4YWN0Jyk7XG4gICAgY29uZmlnLmtleUNvZGVzID0gbmV3IFByb3h5KGNvbmZpZy5rZXlDb2Rlcywge1xuICAgICAgc2V0OiBmdW5jdGlvbiBzZXQgKHRhcmdldCwga2V5LCB2YWx1ZSkge1xuICAgICAgICBpZiAoaXNCdWlsdEluTW9kaWZpZXIoa2V5KSkge1xuICAgICAgICAgIHdhcm4oKFwiQXZvaWQgb3ZlcndyaXRpbmcgYnVpbHQtaW4gbW9kaWZpZXIgaW4gY29uZmlnLmtleUNvZGVzOiAuXCIgKyBrZXkpKTtcbiAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YXJnZXRba2V5XSA9IHZhbHVlO1xuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHZhciBoYXNIYW5kbGVyID0ge1xuICAgIGhhczogZnVuY3Rpb24gaGFzICh0YXJnZXQsIGtleSkge1xuICAgICAgdmFyIGhhcyA9IGtleSBpbiB0YXJnZXQ7XG4gICAgICB2YXIgaXNBbGxvd2VkID0gYWxsb3dlZEdsb2JhbHMoa2V5KSB8fFxuICAgICAgICAodHlwZW9mIGtleSA9PT0gJ3N0cmluZycgJiYga2V5LmNoYXJBdCgwKSA9PT0gJ18nICYmICEoa2V5IGluIHRhcmdldC4kZGF0YSkpO1xuICAgICAgaWYgKCFoYXMgJiYgIWlzQWxsb3dlZCkge1xuICAgICAgICBpZiAoa2V5IGluIHRhcmdldC4kZGF0YSkgeyB3YXJuUmVzZXJ2ZWRQcmVmaXgodGFyZ2V0LCBrZXkpOyB9XG4gICAgICAgIGVsc2UgeyB3YXJuTm9uUHJlc2VudCh0YXJnZXQsIGtleSk7IH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBoYXMgfHwgIWlzQWxsb3dlZFxuICAgIH1cbiAgfTtcblxuICB2YXIgZ2V0SGFuZGxlciA9IHtcbiAgICBnZXQ6IGZ1bmN0aW9uIGdldCAodGFyZ2V0LCBrZXkpIHtcbiAgICAgIGlmICh0eXBlb2Yga2V5ID09PSAnc3RyaW5nJyAmJiAhKGtleSBpbiB0YXJnZXQpKSB7XG4gICAgICAgIGlmIChrZXkgaW4gdGFyZ2V0LiRkYXRhKSB7IHdhcm5SZXNlcnZlZFByZWZpeCh0YXJnZXQsIGtleSk7IH1cbiAgICAgICAgZWxzZSB7IHdhcm5Ob25QcmVzZW50KHRhcmdldCwga2V5KTsgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRhcmdldFtrZXldXG4gICAgfVxuICB9O1xuXG4gIGluaXRQcm94eSA9IGZ1bmN0aW9uIGluaXRQcm94eSAodm0pIHtcbiAgICBpZiAoaGFzUHJveHkpIHtcbiAgICAgIC8vIGRldGVybWluZSB3aGljaCBwcm94eSBoYW5kbGVyIHRvIHVzZVxuICAgICAgdmFyIG9wdGlvbnMgPSB2bS4kb3B0aW9ucztcbiAgICAgIHZhciBoYW5kbGVycyA9IG9wdGlvbnMucmVuZGVyICYmIG9wdGlvbnMucmVuZGVyLl93aXRoU3RyaXBwZWRcbiAgICAgICAgPyBnZXRIYW5kbGVyXG4gICAgICAgIDogaGFzSGFuZGxlcjtcbiAgICAgIHZtLl9yZW5kZXJQcm94eSA9IG5ldyBQcm94eSh2bSwgaGFuZGxlcnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2bS5fcmVuZGVyUHJveHkgPSB2bTtcbiAgICB9XG4gIH07XG59XG5cbi8qICAqL1xuXG52YXIgc2Vlbk9iamVjdHMgPSBuZXcgX1NldCgpO1xuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IHRyYXZlcnNlIGFuIG9iamVjdCB0byBldm9rZSBhbGwgY29udmVydGVkXG4gKiBnZXR0ZXJzLCBzbyB0aGF0IGV2ZXJ5IG5lc3RlZCBwcm9wZXJ0eSBpbnNpZGUgdGhlIG9iamVjdFxuICogaXMgY29sbGVjdGVkIGFzIGEgXCJkZWVwXCIgZGVwZW5kZW5jeS5cbiAqL1xuZnVuY3Rpb24gdHJhdmVyc2UgKHZhbCkge1xuICBfdHJhdmVyc2UodmFsLCBzZWVuT2JqZWN0cyk7XG4gIHNlZW5PYmplY3RzLmNsZWFyKCk7XG59XG5cbmZ1bmN0aW9uIF90cmF2ZXJzZSAodmFsLCBzZWVuKSB7XG4gIHZhciBpLCBrZXlzO1xuICB2YXIgaXNBID0gQXJyYXkuaXNBcnJheSh2YWwpO1xuICBpZiAoKCFpc0EgJiYgIWlzT2JqZWN0KHZhbCkpIHx8IE9iamVjdC5pc0Zyb3plbih2YWwpIHx8IHZhbCBpbnN0YW5jZW9mIFZOb2RlKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgaWYgKHZhbC5fX29iX18pIHtcbiAgICB2YXIgZGVwSWQgPSB2YWwuX19vYl9fLmRlcC5pZDtcbiAgICBpZiAoc2Vlbi5oYXMoZGVwSWQpKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgc2Vlbi5hZGQoZGVwSWQpO1xuICB9XG4gIGlmIChpc0EpIHtcbiAgICBpID0gdmFsLmxlbmd0aDtcbiAgICB3aGlsZSAoaS0tKSB7IF90cmF2ZXJzZSh2YWxbaV0sIHNlZW4pOyB9XG4gIH0gZWxzZSB7XG4gICAga2V5cyA9IE9iamVjdC5rZXlzKHZhbCk7XG4gICAgaSA9IGtleXMubGVuZ3RoO1xuICAgIHdoaWxlIChpLS0pIHsgX3RyYXZlcnNlKHZhbFtrZXlzW2ldXSwgc2Vlbik7IH1cbiAgfVxufVxuXG52YXIgbWFyaztcbnZhciBtZWFzdXJlO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgcGVyZiA9IGluQnJvd3NlciAmJiB3aW5kb3cucGVyZm9ybWFuY2U7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoXG4gICAgcGVyZiAmJlxuICAgIHBlcmYubWFyayAmJlxuICAgIHBlcmYubWVhc3VyZSAmJlxuICAgIHBlcmYuY2xlYXJNYXJrcyAmJlxuICAgIHBlcmYuY2xlYXJNZWFzdXJlc1xuICApIHtcbiAgICBtYXJrID0gZnVuY3Rpb24gKHRhZykgeyByZXR1cm4gcGVyZi5tYXJrKHRhZyk7IH07XG4gICAgbWVhc3VyZSA9IGZ1bmN0aW9uIChuYW1lLCBzdGFydFRhZywgZW5kVGFnKSB7XG4gICAgICBwZXJmLm1lYXN1cmUobmFtZSwgc3RhcnRUYWcsIGVuZFRhZyk7XG4gICAgICBwZXJmLmNsZWFyTWFya3Moc3RhcnRUYWcpO1xuICAgICAgcGVyZi5jbGVhck1hcmtzKGVuZFRhZyk7XG4gICAgICAvLyBwZXJmLmNsZWFyTWVhc3VyZXMobmFtZSlcbiAgICB9O1xuICB9XG59XG5cbi8qICAqL1xuXG52YXIgbm9ybWFsaXplRXZlbnQgPSBjYWNoZWQoZnVuY3Rpb24gKG5hbWUpIHtcbiAgdmFyIHBhc3NpdmUgPSBuYW1lLmNoYXJBdCgwKSA9PT0gJyYnO1xuICBuYW1lID0gcGFzc2l2ZSA/IG5hbWUuc2xpY2UoMSkgOiBuYW1lO1xuICB2YXIgb25jZSQkMSA9IG5hbWUuY2hhckF0KDApID09PSAnfic7IC8vIFByZWZpeGVkIGxhc3QsIGNoZWNrZWQgZmlyc3RcbiAgbmFtZSA9IG9uY2UkJDEgPyBuYW1lLnNsaWNlKDEpIDogbmFtZTtcbiAgdmFyIGNhcHR1cmUgPSBuYW1lLmNoYXJBdCgwKSA9PT0gJyEnO1xuICBuYW1lID0gY2FwdHVyZSA/IG5hbWUuc2xpY2UoMSkgOiBuYW1lO1xuICByZXR1cm4ge1xuICAgIG5hbWU6IG5hbWUsXG4gICAgb25jZTogb25jZSQkMSxcbiAgICBjYXB0dXJlOiBjYXB0dXJlLFxuICAgIHBhc3NpdmU6IHBhc3NpdmVcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIGNyZWF0ZUZuSW52b2tlciAoZm5zLCB2bSkge1xuICBmdW5jdGlvbiBpbnZva2VyICgpIHtcbiAgICB2YXIgYXJndW1lbnRzJDEgPSBhcmd1bWVudHM7XG5cbiAgICB2YXIgZm5zID0gaW52b2tlci5mbnM7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZm5zKSkge1xuICAgICAgdmFyIGNsb25lZCA9IGZucy5zbGljZSgpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjbG9uZWQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaW52b2tlV2l0aEVycm9ySGFuZGxpbmcoY2xvbmVkW2ldLCBudWxsLCBhcmd1bWVudHMkMSwgdm0sIFwidi1vbiBoYW5kbGVyXCIpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyByZXR1cm4gaGFuZGxlciByZXR1cm4gdmFsdWUgZm9yIHNpbmdsZSBoYW5kbGVyc1xuICAgICAgcmV0dXJuIGludm9rZVdpdGhFcnJvckhhbmRsaW5nKGZucywgbnVsbCwgYXJndW1lbnRzLCB2bSwgXCJ2LW9uIGhhbmRsZXJcIilcbiAgICB9XG4gIH1cbiAgaW52b2tlci5mbnMgPSBmbnM7XG4gIHJldHVybiBpbnZva2VyXG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUxpc3RlbmVycyAoXG4gIG9uLFxuICBvbGRPbixcbiAgYWRkLFxuICByZW1vdmUkJDEsXG4gIGNyZWF0ZU9uY2VIYW5kbGVyLFxuICB2bVxuKSB7XG4gIHZhciBuYW1lLCBkZWYkJDEsIGN1ciwgb2xkLCBldmVudDtcbiAgZm9yIChuYW1lIGluIG9uKSB7XG4gICAgZGVmJCQxID0gY3VyID0gb25bbmFtZV07XG4gICAgb2xkID0gb2xkT25bbmFtZV07XG4gICAgZXZlbnQgPSBub3JtYWxpemVFdmVudChuYW1lKTtcbiAgICBpZiAoaXNVbmRlZihjdXIpKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICAgIFwiSW52YWxpZCBoYW5kbGVyIGZvciBldmVudCBcXFwiXCIgKyAoZXZlbnQubmFtZSkgKyBcIlxcXCI6IGdvdCBcIiArIFN0cmluZyhjdXIpLFxuICAgICAgICB2bVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKGlzVW5kZWYob2xkKSkge1xuICAgICAgaWYgKGlzVW5kZWYoY3VyLmZucykpIHtcbiAgICAgICAgY3VyID0gb25bbmFtZV0gPSBjcmVhdGVGbkludm9rZXIoY3VyLCB2bSk7XG4gICAgICB9XG4gICAgICBpZiAoaXNUcnVlKGV2ZW50Lm9uY2UpKSB7XG4gICAgICAgIGN1ciA9IG9uW25hbWVdID0gY3JlYXRlT25jZUhhbmRsZXIoZXZlbnQubmFtZSwgY3VyLCBldmVudC5jYXB0dXJlKTtcbiAgICAgIH1cbiAgICAgIGFkZChldmVudC5uYW1lLCBjdXIsIGV2ZW50LmNhcHR1cmUsIGV2ZW50LnBhc3NpdmUsIGV2ZW50LnBhcmFtcyk7XG4gICAgfSBlbHNlIGlmIChjdXIgIT09IG9sZCkge1xuICAgICAgb2xkLmZucyA9IGN1cjtcbiAgICAgIG9uW25hbWVdID0gb2xkO1xuICAgIH1cbiAgfVxuICBmb3IgKG5hbWUgaW4gb2xkT24pIHtcbiAgICBpZiAoaXNVbmRlZihvbltuYW1lXSkpIHtcbiAgICAgIGV2ZW50ID0gbm9ybWFsaXplRXZlbnQobmFtZSk7XG4gICAgICByZW1vdmUkJDEoZXZlbnQubmFtZSwgb2xkT25bbmFtZV0sIGV2ZW50LmNhcHR1cmUpO1xuICAgIH1cbiAgfVxufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gbWVyZ2VWTm9kZUhvb2sgKGRlZiwgaG9va0tleSwgaG9vaykge1xuICBpZiAoZGVmIGluc3RhbmNlb2YgVk5vZGUpIHtcbiAgICBkZWYgPSBkZWYuZGF0YS5ob29rIHx8IChkZWYuZGF0YS5ob29rID0ge30pO1xuICB9XG4gIHZhciBpbnZva2VyO1xuICB2YXIgb2xkSG9vayA9IGRlZltob29rS2V5XTtcblxuICBmdW5jdGlvbiB3cmFwcGVkSG9vayAoKSB7XG4gICAgaG9vay5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIC8vIGltcG9ydGFudDogcmVtb3ZlIG1lcmdlZCBob29rIHRvIGVuc3VyZSBpdCdzIGNhbGxlZCBvbmx5IG9uY2VcbiAgICAvLyBhbmQgcHJldmVudCBtZW1vcnkgbGVha1xuICAgIHJlbW92ZShpbnZva2VyLmZucywgd3JhcHBlZEhvb2spO1xuICB9XG5cbiAgaWYgKGlzVW5kZWYob2xkSG9vaykpIHtcbiAgICAvLyBubyBleGlzdGluZyBob29rXG4gICAgaW52b2tlciA9IGNyZWF0ZUZuSW52b2tlcihbd3JhcHBlZEhvb2tdKTtcbiAgfSBlbHNlIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoaXNEZWYob2xkSG9vay5mbnMpICYmIGlzVHJ1ZShvbGRIb29rLm1lcmdlZCkpIHtcbiAgICAgIC8vIGFscmVhZHkgYSBtZXJnZWQgaW52b2tlclxuICAgICAgaW52b2tlciA9IG9sZEhvb2s7XG4gICAgICBpbnZva2VyLmZucy5wdXNoKHdyYXBwZWRIb29rKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZXhpc3RpbmcgcGxhaW4gaG9va1xuICAgICAgaW52b2tlciA9IGNyZWF0ZUZuSW52b2tlcihbb2xkSG9vaywgd3JhcHBlZEhvb2tdKTtcbiAgICB9XG4gIH1cblxuICBpbnZva2VyLm1lcmdlZCA9IHRydWU7XG4gIGRlZltob29rS2V5XSA9IGludm9rZXI7XG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBleHRyYWN0UHJvcHNGcm9tVk5vZGVEYXRhIChcbiAgZGF0YSxcbiAgQ3RvcixcbiAgdGFnXG4pIHtcbiAgLy8gd2UgYXJlIG9ubHkgZXh0cmFjdGluZyByYXcgdmFsdWVzIGhlcmUuXG4gIC8vIHZhbGlkYXRpb24gYW5kIGRlZmF1bHQgdmFsdWVzIGFyZSBoYW5kbGVkIGluIHRoZSBjaGlsZFxuICAvLyBjb21wb25lbnQgaXRzZWxmLlxuICB2YXIgcHJvcE9wdGlvbnMgPSBDdG9yLm9wdGlvbnMucHJvcHM7XG4gIGlmIChpc1VuZGVmKHByb3BPcHRpb25zKSkge1xuICAgIHJldHVyblxuICB9XG4gIHZhciByZXMgPSB7fTtcbiAgdmFyIGF0dHJzID0gZGF0YS5hdHRycztcbiAgdmFyIHByb3BzID0gZGF0YS5wcm9wcztcbiAgaWYgKGlzRGVmKGF0dHJzKSB8fCBpc0RlZihwcm9wcykpIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gcHJvcE9wdGlvbnMpIHtcbiAgICAgIHZhciBhbHRLZXkgPSBoeXBoZW5hdGUoa2V5KTtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIHZhciBrZXlJbkxvd2VyQ2FzZSA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAga2V5ICE9PSBrZXlJbkxvd2VyQ2FzZSAmJlxuICAgICAgICAgIGF0dHJzICYmIGhhc093bihhdHRycywga2V5SW5Mb3dlckNhc2UpXG4gICAgICAgICkge1xuICAgICAgICAgIHRpcChcbiAgICAgICAgICAgIFwiUHJvcCBcXFwiXCIgKyBrZXlJbkxvd2VyQ2FzZSArIFwiXFxcIiBpcyBwYXNzZWQgdG8gY29tcG9uZW50IFwiICtcbiAgICAgICAgICAgIChmb3JtYXRDb21wb25lbnROYW1lKHRhZyB8fCBDdG9yKSkgKyBcIiwgYnV0IHRoZSBkZWNsYXJlZCBwcm9wIG5hbWUgaXNcIiArXG4gICAgICAgICAgICBcIiBcXFwiXCIgKyBrZXkgKyBcIlxcXCIuIFwiICtcbiAgICAgICAgICAgIFwiTm90ZSB0aGF0IEhUTUwgYXR0cmlidXRlcyBhcmUgY2FzZS1pbnNlbnNpdGl2ZSBhbmQgY2FtZWxDYXNlZCBcIiArXG4gICAgICAgICAgICBcInByb3BzIG5lZWQgdG8gdXNlIHRoZWlyIGtlYmFiLWNhc2UgZXF1aXZhbGVudHMgd2hlbiB1c2luZyBpbi1ET00gXCIgK1xuICAgICAgICAgICAgXCJ0ZW1wbGF0ZXMuIFlvdSBzaG91bGQgcHJvYmFibHkgdXNlIFxcXCJcIiArIGFsdEtleSArIFwiXFxcIiBpbnN0ZWFkIG9mIFxcXCJcIiArIGtleSArIFwiXFxcIi5cIlxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNoZWNrUHJvcChyZXMsIHByb3BzLCBrZXksIGFsdEtleSwgdHJ1ZSkgfHxcbiAgICAgIGNoZWNrUHJvcChyZXMsIGF0dHJzLCBrZXksIGFsdEtleSwgZmFsc2UpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbmZ1bmN0aW9uIGNoZWNrUHJvcCAoXG4gIHJlcyxcbiAgaGFzaCxcbiAga2V5LFxuICBhbHRLZXksXG4gIHByZXNlcnZlXG4pIHtcbiAgaWYgKGlzRGVmKGhhc2gpKSB7XG4gICAgaWYgKGhhc093bihoYXNoLCBrZXkpKSB7XG4gICAgICByZXNba2V5XSA9IGhhc2hba2V5XTtcbiAgICAgIGlmICghcHJlc2VydmUpIHtcbiAgICAgICAgZGVsZXRlIGhhc2hba2V5XTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlXG4gICAgfSBlbHNlIGlmIChoYXNPd24oaGFzaCwgYWx0S2V5KSkge1xuICAgICAgcmVzW2tleV0gPSBoYXNoW2FsdEtleV07XG4gICAgICBpZiAoIXByZXNlcnZlKSB7XG4gICAgICAgIGRlbGV0ZSBoYXNoW2FsdEtleV07XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2Vcbn1cblxuLyogICovXG5cbi8vIFRoZSB0ZW1wbGF0ZSBjb21waWxlciBhdHRlbXB0cyB0byBtaW5pbWl6ZSB0aGUgbmVlZCBmb3Igbm9ybWFsaXphdGlvbiBieVxuLy8gc3RhdGljYWxseSBhbmFseXppbmcgdGhlIHRlbXBsYXRlIGF0IGNvbXBpbGUgdGltZS5cbi8vXG4vLyBGb3IgcGxhaW4gSFRNTCBtYXJrdXAsIG5vcm1hbGl6YXRpb24gY2FuIGJlIGNvbXBsZXRlbHkgc2tpcHBlZCBiZWNhdXNlIHRoZVxuLy8gZ2VuZXJhdGVkIHJlbmRlciBmdW5jdGlvbiBpcyBndWFyYW50ZWVkIHRvIHJldHVybiBBcnJheTxWTm9kZT4uIFRoZXJlIGFyZVxuLy8gdHdvIGNhc2VzIHdoZXJlIGV4dHJhIG5vcm1hbGl6YXRpb24gaXMgbmVlZGVkOlxuXG4vLyAxLiBXaGVuIHRoZSBjaGlsZHJlbiBjb250YWlucyBjb21wb25lbnRzIC0gYmVjYXVzZSBhIGZ1bmN0aW9uYWwgY29tcG9uZW50XG4vLyBtYXkgcmV0dXJuIGFuIEFycmF5IGluc3RlYWQgb2YgYSBzaW5nbGUgcm9vdC4gSW4gdGhpcyBjYXNlLCBqdXN0IGEgc2ltcGxlXG4vLyBub3JtYWxpemF0aW9uIGlzIG5lZWRlZCAtIGlmIGFueSBjaGlsZCBpcyBhbiBBcnJheSwgd2UgZmxhdHRlbiB0aGUgd2hvbGVcbi8vIHRoaW5nIHdpdGggQXJyYXkucHJvdG90eXBlLmNvbmNhdC4gSXQgaXMgZ3VhcmFudGVlZCB0byBiZSBvbmx5IDEtbGV2ZWwgZGVlcFxuLy8gYmVjYXVzZSBmdW5jdGlvbmFsIGNvbXBvbmVudHMgYWxyZWFkeSBub3JtYWxpemUgdGhlaXIgb3duIGNoaWxkcmVuLlxuZnVuY3Rpb24gc2ltcGxlTm9ybWFsaXplQ2hpbGRyZW4gKGNoaWxkcmVuKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbltpXSkpIHtcbiAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLCBjaGlsZHJlbilcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNoaWxkcmVuXG59XG5cbi8vIDIuIFdoZW4gdGhlIGNoaWxkcmVuIGNvbnRhaW5zIGNvbnN0cnVjdHMgdGhhdCBhbHdheXMgZ2VuZXJhdGVkIG5lc3RlZCBBcnJheXMsXG4vLyBlLmcuIDx0ZW1wbGF0ZT4sIDxzbG90Piwgdi1mb3IsIG9yIHdoZW4gdGhlIGNoaWxkcmVuIGlzIHByb3ZpZGVkIGJ5IHVzZXJcbi8vIHdpdGggaGFuZC13cml0dGVuIHJlbmRlciBmdW5jdGlvbnMgLyBKU1guIEluIHN1Y2ggY2FzZXMgYSBmdWxsIG5vcm1hbGl6YXRpb25cbi8vIGlzIG5lZWRlZCB0byBjYXRlciB0byBhbGwgcG9zc2libGUgdHlwZXMgb2YgY2hpbGRyZW4gdmFsdWVzLlxuZnVuY3Rpb24gbm9ybWFsaXplQ2hpbGRyZW4gKGNoaWxkcmVuKSB7XG4gIHJldHVybiBpc1ByaW1pdGl2ZShjaGlsZHJlbilcbiAgICA/IFtjcmVhdGVUZXh0Vk5vZGUoY2hpbGRyZW4pXVxuICAgIDogQXJyYXkuaXNBcnJheShjaGlsZHJlbilcbiAgICAgID8gbm9ybWFsaXplQXJyYXlDaGlsZHJlbihjaGlsZHJlbilcbiAgICAgIDogdW5kZWZpbmVkXG59XG5cbmZ1bmN0aW9uIGlzVGV4dE5vZGUgKG5vZGUpIHtcbiAgcmV0dXJuIGlzRGVmKG5vZGUpICYmIGlzRGVmKG5vZGUudGV4dCkgJiYgaXNGYWxzZShub2RlLmlzQ29tbWVudClcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplQXJyYXlDaGlsZHJlbiAoY2hpbGRyZW4sIG5lc3RlZEluZGV4KSB7XG4gIHZhciByZXMgPSBbXTtcbiAgdmFyIGksIGMsIGxhc3RJbmRleCwgbGFzdDtcbiAgZm9yIChpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgYyA9IGNoaWxkcmVuW2ldO1xuICAgIGlmIChpc1VuZGVmKGMpIHx8IHR5cGVvZiBjID09PSAnYm9vbGVhbicpIHsgY29udGludWUgfVxuICAgIGxhc3RJbmRleCA9IHJlcy5sZW5ndGggLSAxO1xuICAgIGxhc3QgPSByZXNbbGFzdEluZGV4XTtcbiAgICAvLyAgbmVzdGVkXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYykpIHtcbiAgICAgIGlmIChjLmxlbmd0aCA+IDApIHtcbiAgICAgICAgYyA9IG5vcm1hbGl6ZUFycmF5Q2hpbGRyZW4oYywgKChuZXN0ZWRJbmRleCB8fCAnJykgKyBcIl9cIiArIGkpKTtcbiAgICAgICAgLy8gbWVyZ2UgYWRqYWNlbnQgdGV4dCBub2Rlc1xuICAgICAgICBpZiAoaXNUZXh0Tm9kZShjWzBdKSAmJiBpc1RleHROb2RlKGxhc3QpKSB7XG4gICAgICAgICAgcmVzW2xhc3RJbmRleF0gPSBjcmVhdGVUZXh0Vk5vZGUobGFzdC50ZXh0ICsgKGNbMF0pLnRleHQpO1xuICAgICAgICAgIGMuc2hpZnQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXMucHVzaC5hcHBseShyZXMsIGMpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaXNQcmltaXRpdmUoYykpIHtcbiAgICAgIGlmIChpc1RleHROb2RlKGxhc3QpKSB7XG4gICAgICAgIC8vIG1lcmdlIGFkamFjZW50IHRleHQgbm9kZXNcbiAgICAgICAgLy8gdGhpcyBpcyBuZWNlc3NhcnkgZm9yIFNTUiBoeWRyYXRpb24gYmVjYXVzZSB0ZXh0IG5vZGVzIGFyZVxuICAgICAgICAvLyBlc3NlbnRpYWxseSBtZXJnZWQgd2hlbiByZW5kZXJlZCB0byBIVE1MIHN0cmluZ3NcbiAgICAgICAgcmVzW2xhc3RJbmRleF0gPSBjcmVhdGVUZXh0Vk5vZGUobGFzdC50ZXh0ICsgYyk7XG4gICAgICB9IGVsc2UgaWYgKGMgIT09ICcnKSB7XG4gICAgICAgIC8vIGNvbnZlcnQgcHJpbWl0aXZlIHRvIHZub2RlXG4gICAgICAgIHJlcy5wdXNoKGNyZWF0ZVRleHRWTm9kZShjKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChpc1RleHROb2RlKGMpICYmIGlzVGV4dE5vZGUobGFzdCkpIHtcbiAgICAgICAgLy8gbWVyZ2UgYWRqYWNlbnQgdGV4dCBub2Rlc1xuICAgICAgICByZXNbbGFzdEluZGV4XSA9IGNyZWF0ZVRleHRWTm9kZShsYXN0LnRleHQgKyBjLnRleHQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gZGVmYXVsdCBrZXkgZm9yIG5lc3RlZCBhcnJheSBjaGlsZHJlbiAobGlrZWx5IGdlbmVyYXRlZCBieSB2LWZvcilcbiAgICAgICAgaWYgKGlzVHJ1ZShjaGlsZHJlbi5faXNWTGlzdCkgJiZcbiAgICAgICAgICBpc0RlZihjLnRhZykgJiZcbiAgICAgICAgICBpc1VuZGVmKGMua2V5KSAmJlxuICAgICAgICAgIGlzRGVmKG5lc3RlZEluZGV4KSkge1xuICAgICAgICAgIGMua2V5ID0gXCJfX3ZsaXN0XCIgKyBuZXN0ZWRJbmRleCArIFwiX1wiICsgaSArIFwiX19cIjtcbiAgICAgICAgfVxuICAgICAgICByZXMucHVzaChjKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gaW5pdFByb3ZpZGUgKHZtKSB7XG4gIHZhciBwcm92aWRlID0gdm0uJG9wdGlvbnMucHJvdmlkZTtcbiAgaWYgKHByb3ZpZGUpIHtcbiAgICB2bS5fcHJvdmlkZWQgPSB0eXBlb2YgcHJvdmlkZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgPyBwcm92aWRlLmNhbGwodm0pXG4gICAgICA6IHByb3ZpZGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5pdEluamVjdGlvbnMgKHZtKSB7XG4gIHZhciByZXN1bHQgPSByZXNvbHZlSW5qZWN0KHZtLiRvcHRpb25zLmluamVjdCwgdm0pO1xuICBpZiAocmVzdWx0KSB7XG4gICAgdG9nZ2xlT2JzZXJ2aW5nKGZhbHNlKTtcbiAgICBPYmplY3Qua2V5cyhyZXN1bHQpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGRlZmluZVJlYWN0aXZlJCQxKHZtLCBrZXksIHJlc3VsdFtrZXldLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgd2FybihcbiAgICAgICAgICAgIFwiQXZvaWQgbXV0YXRpbmcgYW4gaW5qZWN0ZWQgdmFsdWUgZGlyZWN0bHkgc2luY2UgdGhlIGNoYW5nZXMgd2lsbCBiZSBcIiArXG4gICAgICAgICAgICBcIm92ZXJ3cml0dGVuIHdoZW5ldmVyIHRoZSBwcm92aWRlZCBjb21wb25lbnQgcmUtcmVuZGVycy4gXCIgK1xuICAgICAgICAgICAgXCJpbmplY3Rpb24gYmVpbmcgbXV0YXRlZDogXFxcIlwiICsga2V5ICsgXCJcXFwiXCIsXG4gICAgICAgICAgICB2bVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVmaW5lUmVhY3RpdmUkJDEodm0sIGtleSwgcmVzdWx0W2tleV0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRvZ2dsZU9ic2VydmluZyh0cnVlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXNvbHZlSW5qZWN0IChpbmplY3QsIHZtKSB7XG4gIGlmIChpbmplY3QpIHtcbiAgICAvLyBpbmplY3QgaXMgOmFueSBiZWNhdXNlIGZsb3cgaXMgbm90IHNtYXJ0IGVub3VnaCB0byBmaWd1cmUgb3V0IGNhY2hlZFxuICAgIHZhciByZXN1bHQgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHZhciBrZXlzID0gaGFzU3ltYm9sXG4gICAgICA/IFJlZmxlY3Qub3duS2V5cyhpbmplY3QpXG4gICAgICA6IE9iamVjdC5rZXlzKGluamVjdCk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBrZXkgPSBrZXlzW2ldO1xuICAgICAgLy8gIzY1NzQgaW4gY2FzZSB0aGUgaW5qZWN0IG9iamVjdCBpcyBvYnNlcnZlZC4uLlxuICAgICAgaWYgKGtleSA9PT0gJ19fb2JfXycpIHsgY29udGludWUgfVxuICAgICAgdmFyIHByb3ZpZGVLZXkgPSBpbmplY3Rba2V5XS5mcm9tO1xuICAgICAgdmFyIHNvdXJjZSA9IHZtO1xuICAgICAgd2hpbGUgKHNvdXJjZSkge1xuICAgICAgICBpZiAoc291cmNlLl9wcm92aWRlZCAmJiBoYXNPd24oc291cmNlLl9wcm92aWRlZCwgcHJvdmlkZUtleSkpIHtcbiAgICAgICAgICByZXN1bHRba2V5XSA9IHNvdXJjZS5fcHJvdmlkZWRbcHJvdmlkZUtleV07XG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBzb3VyY2UgPSBzb3VyY2UuJHBhcmVudDtcbiAgICAgIH1cbiAgICAgIGlmICghc291cmNlKSB7XG4gICAgICAgIGlmICgnZGVmYXVsdCcgaW4gaW5qZWN0W2tleV0pIHtcbiAgICAgICAgICB2YXIgcHJvdmlkZURlZmF1bHQgPSBpbmplY3Rba2V5XS5kZWZhdWx0O1xuICAgICAgICAgIHJlc3VsdFtrZXldID0gdHlwZW9mIHByb3ZpZGVEZWZhdWx0ID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICA/IHByb3ZpZGVEZWZhdWx0LmNhbGwodm0pXG4gICAgICAgICAgICA6IHByb3ZpZGVEZWZhdWx0O1xuICAgICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICB3YXJuKChcIkluamVjdGlvbiBcXFwiXCIgKyBrZXkgKyBcIlxcXCIgbm90IGZvdW5kXCIpLCB2bSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG59XG5cbi8qICAqL1xuXG5cblxuLyoqXG4gKiBSdW50aW1lIGhlbHBlciBmb3IgcmVzb2x2aW5nIHJhdyBjaGlsZHJlbiBWTm9kZXMgaW50byBhIHNsb3Qgb2JqZWN0LlxuICovXG5mdW5jdGlvbiByZXNvbHZlU2xvdHMgKFxuICBjaGlsZHJlbixcbiAgY29udGV4dFxuKSB7XG4gIGlmICghY2hpbGRyZW4gfHwgIWNoaWxkcmVuLmxlbmd0aCkge1xuICAgIHJldHVybiB7fVxuICB9XG4gIHZhciBzbG90cyA9IHt9O1xuICBmb3IgKHZhciBpID0gMCwgbCA9IGNoaWxkcmVuLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIHZhciBjaGlsZCA9IGNoaWxkcmVuW2ldO1xuICAgIHZhciBkYXRhID0gY2hpbGQuZGF0YTtcbiAgICAvLyByZW1vdmUgc2xvdCBhdHRyaWJ1dGUgaWYgdGhlIG5vZGUgaXMgcmVzb2x2ZWQgYXMgYSBWdWUgc2xvdCBub2RlXG4gICAgaWYgKGRhdGEgJiYgZGF0YS5hdHRycyAmJiBkYXRhLmF0dHJzLnNsb3QpIHtcbiAgICAgIGRlbGV0ZSBkYXRhLmF0dHJzLnNsb3Q7XG4gICAgfVxuICAgIC8vIG5hbWVkIHNsb3RzIHNob3VsZCBvbmx5IGJlIHJlc3BlY3RlZCBpZiB0aGUgdm5vZGUgd2FzIHJlbmRlcmVkIGluIHRoZVxuICAgIC8vIHNhbWUgY29udGV4dC5cbiAgICBpZiAoKGNoaWxkLmNvbnRleHQgPT09IGNvbnRleHQgfHwgY2hpbGQuZm5Db250ZXh0ID09PSBjb250ZXh0KSAmJlxuICAgICAgZGF0YSAmJiBkYXRhLnNsb3QgIT0gbnVsbFxuICAgICkge1xuICAgICAgdmFyIG5hbWUgPSBkYXRhLnNsb3Q7XG4gICAgICB2YXIgc2xvdCA9IChzbG90c1tuYW1lXSB8fCAoc2xvdHNbbmFtZV0gPSBbXSkpO1xuICAgICAgaWYgKGNoaWxkLnRhZyA9PT0gJ3RlbXBsYXRlJykge1xuICAgICAgICBzbG90LnB1c2guYXBwbHkoc2xvdCwgY2hpbGQuY2hpbGRyZW4gfHwgW10pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2xvdC5wdXNoKGNoaWxkKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgKHNsb3RzLmRlZmF1bHQgfHwgKHNsb3RzLmRlZmF1bHQgPSBbXSkpLnB1c2goY2hpbGQpO1xuICAgIH1cbiAgfVxuICAvLyBpZ25vcmUgc2xvdHMgdGhhdCBjb250YWlucyBvbmx5IHdoaXRlc3BhY2VcbiAgZm9yICh2YXIgbmFtZSQxIGluIHNsb3RzKSB7XG4gICAgaWYgKHNsb3RzW25hbWUkMV0uZXZlcnkoaXNXaGl0ZXNwYWNlKSkge1xuICAgICAgZGVsZXRlIHNsb3RzW25hbWUkMV07XG4gICAgfVxuICB9XG4gIHJldHVybiBzbG90c1xufVxuXG5mdW5jdGlvbiBpc1doaXRlc3BhY2UgKG5vZGUpIHtcbiAgcmV0dXJuIChub2RlLmlzQ29tbWVudCAmJiAhbm9kZS5hc3luY0ZhY3RvcnkpIHx8IG5vZGUudGV4dCA9PT0gJyAnXG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBpc0FzeW5jUGxhY2Vob2xkZXIgKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUuaXNDb21tZW50ICYmIG5vZGUuYXN5bmNGYWN0b3J5XG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBub3JtYWxpemVTY29wZWRTbG90cyAoXG4gIHNsb3RzLFxuICBub3JtYWxTbG90cyxcbiAgcHJldlNsb3RzXG4pIHtcbiAgdmFyIHJlcztcbiAgdmFyIGhhc05vcm1hbFNsb3RzID0gT2JqZWN0LmtleXMobm9ybWFsU2xvdHMpLmxlbmd0aCA+IDA7XG4gIHZhciBpc1N0YWJsZSA9IHNsb3RzID8gISFzbG90cy4kc3RhYmxlIDogIWhhc05vcm1hbFNsb3RzO1xuICB2YXIga2V5ID0gc2xvdHMgJiYgc2xvdHMuJGtleTtcbiAgaWYgKCFzbG90cykge1xuICAgIHJlcyA9IHt9O1xuICB9IGVsc2UgaWYgKHNsb3RzLl9ub3JtYWxpemVkKSB7XG4gICAgLy8gZmFzdCBwYXRoIDE6IGNoaWxkIGNvbXBvbmVudCByZS1yZW5kZXIgb25seSwgcGFyZW50IGRpZCBub3QgY2hhbmdlXG4gICAgcmV0dXJuIHNsb3RzLl9ub3JtYWxpemVkXG4gIH0gZWxzZSBpZiAoXG4gICAgaXNTdGFibGUgJiZcbiAgICBwcmV2U2xvdHMgJiZcbiAgICBwcmV2U2xvdHMgIT09IGVtcHR5T2JqZWN0ICYmXG4gICAga2V5ID09PSBwcmV2U2xvdHMuJGtleSAmJlxuICAgICFoYXNOb3JtYWxTbG90cyAmJlxuICAgICFwcmV2U2xvdHMuJGhhc05vcm1hbFxuICApIHtcbiAgICAvLyBmYXN0IHBhdGggMjogc3RhYmxlIHNjb3BlZCBzbG90cyB3LyBubyBub3JtYWwgc2xvdHMgdG8gcHJveHksXG4gICAgLy8gb25seSBuZWVkIHRvIG5vcm1hbGl6ZSBvbmNlXG4gICAgcmV0dXJuIHByZXZTbG90c1xuICB9IGVsc2Uge1xuICAgIHJlcyA9IHt9O1xuICAgIGZvciAodmFyIGtleSQxIGluIHNsb3RzKSB7XG4gICAgICBpZiAoc2xvdHNba2V5JDFdICYmIGtleSQxWzBdICE9PSAnJCcpIHtcbiAgICAgICAgcmVzW2tleSQxXSA9IG5vcm1hbGl6ZVNjb3BlZFNsb3Qobm9ybWFsU2xvdHMsIGtleSQxLCBzbG90c1trZXkkMV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyBleHBvc2Ugbm9ybWFsIHNsb3RzIG9uIHNjb3BlZFNsb3RzXG4gIGZvciAodmFyIGtleSQyIGluIG5vcm1hbFNsb3RzKSB7XG4gICAgaWYgKCEoa2V5JDIgaW4gcmVzKSkge1xuICAgICAgcmVzW2tleSQyXSA9IHByb3h5Tm9ybWFsU2xvdChub3JtYWxTbG90cywga2V5JDIpO1xuICAgIH1cbiAgfVxuICAvLyBhdm9yaWF6IHNlZW1zIHRvIG1vY2sgYSBub24tZXh0ZW5zaWJsZSAkc2NvcGVkU2xvdHMgb2JqZWN0XG4gIC8vIGFuZCB3aGVuIHRoYXQgaXMgcGFzc2VkIGRvd24gdGhpcyB3b3VsZCBjYXVzZSBhbiBlcnJvclxuICBpZiAoc2xvdHMgJiYgT2JqZWN0LmlzRXh0ZW5zaWJsZShzbG90cykpIHtcbiAgICAoc2xvdHMpLl9ub3JtYWxpemVkID0gcmVzO1xuICB9XG4gIGRlZihyZXMsICckc3RhYmxlJywgaXNTdGFibGUpO1xuICBkZWYocmVzLCAnJGtleScsIGtleSk7XG4gIGRlZihyZXMsICckaGFzTm9ybWFsJywgaGFzTm9ybWFsU2xvdHMpO1xuICByZXR1cm4gcmVzXG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZVNjb3BlZFNsb3Qobm9ybWFsU2xvdHMsIGtleSwgZm4pIHtcbiAgdmFyIG5vcm1hbGl6ZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHJlcyA9IGFyZ3VtZW50cy5sZW5ndGggPyBmbi5hcHBseShudWxsLCBhcmd1bWVudHMpIDogZm4oe30pO1xuICAgIHJlcyA9IHJlcyAmJiB0eXBlb2YgcmVzID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShyZXMpXG4gICAgICA/IFtyZXNdIC8vIHNpbmdsZSB2bm9kZVxuICAgICAgOiBub3JtYWxpemVDaGlsZHJlbihyZXMpO1xuICAgIHZhciB2bm9kZSA9IHJlcyAmJiByZXNbMF07XG4gICAgcmV0dXJuIHJlcyAmJiAoXG4gICAgICAhdm5vZGUgfHxcbiAgICAgIChyZXMubGVuZ3RoID09PSAxICYmIHZub2RlLmlzQ29tbWVudCAmJiAhaXNBc3luY1BsYWNlaG9sZGVyKHZub2RlKSkgLy8gIzk2NTgsICMxMDM5MVxuICAgICkgPyB1bmRlZmluZWRcbiAgICAgIDogcmVzXG4gIH07XG4gIC8vIHRoaXMgaXMgYSBzbG90IHVzaW5nIHRoZSBuZXcgdi1zbG90IHN5bnRheCB3aXRob3V0IHNjb3BlLiBhbHRob3VnaCBpdCBpc1xuICAvLyBjb21waWxlZCBhcyBhIHNjb3BlZCBzbG90LCByZW5kZXIgZm4gdXNlcnMgd291bGQgZXhwZWN0IGl0IHRvIGJlIHByZXNlbnRcbiAgLy8gb24gdGhpcy4kc2xvdHMgYmVjYXVzZSB0aGUgdXNhZ2UgaXMgc2VtYW50aWNhbGx5IGEgbm9ybWFsIHNsb3QuXG4gIGlmIChmbi5wcm94eSkge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShub3JtYWxTbG90cywga2V5LCB7XG4gICAgICBnZXQ6IG5vcm1hbGl6ZWQsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIG5vcm1hbGl6ZWRcbn1cblxuZnVuY3Rpb24gcHJveHlOb3JtYWxTbG90KHNsb3RzLCBrZXkpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHsgcmV0dXJuIHNsb3RzW2tleV07IH1cbn1cblxuLyogICovXG5cbi8qKlxuICogUnVudGltZSBoZWxwZXIgZm9yIHJlbmRlcmluZyB2LWZvciBsaXN0cy5cbiAqL1xuZnVuY3Rpb24gcmVuZGVyTGlzdCAoXG4gIHZhbCxcbiAgcmVuZGVyXG4pIHtcbiAgdmFyIHJldCwgaSwgbCwga2V5cywga2V5O1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpIHx8IHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0ID0gbmV3IEFycmF5KHZhbC5sZW5ndGgpO1xuICAgIGZvciAoaSA9IDAsIGwgPSB2YWwubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICByZXRbaV0gPSByZW5kZXIodmFsW2ldLCBpKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICByZXQgPSBuZXcgQXJyYXkodmFsKTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgdmFsOyBpKyspIHtcbiAgICAgIHJldFtpXSA9IHJlbmRlcihpICsgMSwgaSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKGlzT2JqZWN0KHZhbCkpIHtcbiAgICBpZiAoaGFzU3ltYm9sICYmIHZhbFtTeW1ib2wuaXRlcmF0b3JdKSB7XG4gICAgICByZXQgPSBbXTtcbiAgICAgIHZhciBpdGVyYXRvciA9IHZhbFtTeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgICB2YXIgcmVzdWx0ID0gaXRlcmF0b3IubmV4dCgpO1xuICAgICAgd2hpbGUgKCFyZXN1bHQuZG9uZSkge1xuICAgICAgICByZXQucHVzaChyZW5kZXIocmVzdWx0LnZhbHVlLCByZXQubGVuZ3RoKSk7XG4gICAgICAgIHJlc3VsdCA9IGl0ZXJhdG9yLm5leHQoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAga2V5cyA9IE9iamVjdC5rZXlzKHZhbCk7XG4gICAgICByZXQgPSBuZXcgQXJyYXkoa2V5cy5sZW5ndGgpO1xuICAgICAgZm9yIChpID0gMCwgbCA9IGtleXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIGtleSA9IGtleXNbaV07XG4gICAgICAgIHJldFtpXSA9IHJlbmRlcih2YWxba2V5XSwga2V5LCBpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKCFpc0RlZihyZXQpKSB7XG4gICAgcmV0ID0gW107XG4gIH1cbiAgKHJldCkuX2lzVkxpc3QgPSB0cnVlO1xuICByZXR1cm4gcmV0XG59XG5cbi8qICAqL1xuXG4vKipcbiAqIFJ1bnRpbWUgaGVscGVyIGZvciByZW5kZXJpbmcgPHNsb3Q+XG4gKi9cbmZ1bmN0aW9uIHJlbmRlclNsb3QgKFxuICBuYW1lLFxuICBmYWxsYmFja1JlbmRlcixcbiAgcHJvcHMsXG4gIGJpbmRPYmplY3Rcbikge1xuICB2YXIgc2NvcGVkU2xvdEZuID0gdGhpcy4kc2NvcGVkU2xvdHNbbmFtZV07XG4gIHZhciBub2RlcztcbiAgaWYgKHNjb3BlZFNsb3RGbikge1xuICAgIC8vIHNjb3BlZCBzbG90XG4gICAgcHJvcHMgPSBwcm9wcyB8fCB7fTtcbiAgICBpZiAoYmluZE9iamVjdCkge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgIWlzT2JqZWN0KGJpbmRPYmplY3QpKSB7XG4gICAgICAgIHdhcm4oJ3Nsb3Qgdi1iaW5kIHdpdGhvdXQgYXJndW1lbnQgZXhwZWN0cyBhbiBPYmplY3QnLCB0aGlzKTtcbiAgICAgIH1cbiAgICAgIHByb3BzID0gZXh0ZW5kKGV4dGVuZCh7fSwgYmluZE9iamVjdCksIHByb3BzKTtcbiAgICB9XG4gICAgbm9kZXMgPVxuICAgICAgc2NvcGVkU2xvdEZuKHByb3BzKSB8fFxuICAgICAgKHR5cGVvZiBmYWxsYmFja1JlbmRlciA9PT0gJ2Z1bmN0aW9uJyA/IGZhbGxiYWNrUmVuZGVyKCkgOiBmYWxsYmFja1JlbmRlcik7XG4gIH0gZWxzZSB7XG4gICAgbm9kZXMgPVxuICAgICAgdGhpcy4kc2xvdHNbbmFtZV0gfHxcbiAgICAgICh0eXBlb2YgZmFsbGJhY2tSZW5kZXIgPT09ICdmdW5jdGlvbicgPyBmYWxsYmFja1JlbmRlcigpIDogZmFsbGJhY2tSZW5kZXIpO1xuICB9XG5cbiAgdmFyIHRhcmdldCA9IHByb3BzICYmIHByb3BzLnNsb3Q7XG4gIGlmICh0YXJnZXQpIHtcbiAgICByZXR1cm4gdGhpcy4kY3JlYXRlRWxlbWVudCgndGVtcGxhdGUnLCB7IHNsb3Q6IHRhcmdldCB9LCBub2RlcylcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbm9kZXNcbiAgfVxufVxuXG4vKiAgKi9cblxuLyoqXG4gKiBSdW50aW1lIGhlbHBlciBmb3IgcmVzb2x2aW5nIGZpbHRlcnNcbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZUZpbHRlciAoaWQpIHtcbiAgcmV0dXJuIHJlc29sdmVBc3NldCh0aGlzLiRvcHRpb25zLCAnZmlsdGVycycsIGlkLCB0cnVlKSB8fCBpZGVudGl0eVxufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gaXNLZXlOb3RNYXRjaCAoZXhwZWN0LCBhY3R1YWwpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoZXhwZWN0KSkge1xuICAgIHJldHVybiBleHBlY3QuaW5kZXhPZihhY3R1YWwpID09PSAtMVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBleHBlY3QgIT09IGFjdHVhbFxuICB9XG59XG5cbi8qKlxuICogUnVudGltZSBoZWxwZXIgZm9yIGNoZWNraW5nIGtleUNvZGVzIGZyb20gY29uZmlnLlxuICogZXhwb3NlZCBhcyBWdWUucHJvdG90eXBlLl9rXG4gKiBwYXNzaW5nIGluIGV2ZW50S2V5TmFtZSBhcyBsYXN0IGFyZ3VtZW50IHNlcGFyYXRlbHkgZm9yIGJhY2t3YXJkcyBjb21wYXRcbiAqL1xuZnVuY3Rpb24gY2hlY2tLZXlDb2RlcyAoXG4gIGV2ZW50S2V5Q29kZSxcbiAga2V5LFxuICBidWlsdEluS2V5Q29kZSxcbiAgZXZlbnRLZXlOYW1lLFxuICBidWlsdEluS2V5TmFtZVxuKSB7XG4gIHZhciBtYXBwZWRLZXlDb2RlID0gY29uZmlnLmtleUNvZGVzW2tleV0gfHwgYnVpbHRJbktleUNvZGU7XG4gIGlmIChidWlsdEluS2V5TmFtZSAmJiBldmVudEtleU5hbWUgJiYgIWNvbmZpZy5rZXlDb2Rlc1trZXldKSB7XG4gICAgcmV0dXJuIGlzS2V5Tm90TWF0Y2goYnVpbHRJbktleU5hbWUsIGV2ZW50S2V5TmFtZSlcbiAgfSBlbHNlIGlmIChtYXBwZWRLZXlDb2RlKSB7XG4gICAgcmV0dXJuIGlzS2V5Tm90TWF0Y2gobWFwcGVkS2V5Q29kZSwgZXZlbnRLZXlDb2RlKVxuICB9IGVsc2UgaWYgKGV2ZW50S2V5TmFtZSkge1xuICAgIHJldHVybiBoeXBoZW5hdGUoZXZlbnRLZXlOYW1lKSAhPT0ga2V5XG4gIH1cbiAgcmV0dXJuIGV2ZW50S2V5Q29kZSA9PT0gdW5kZWZpbmVkXG59XG5cbi8qICAqL1xuXG4vKipcbiAqIFJ1bnRpbWUgaGVscGVyIGZvciBtZXJnaW5nIHYtYmluZD1cIm9iamVjdFwiIGludG8gYSBWTm9kZSdzIGRhdGEuXG4gKi9cbmZ1bmN0aW9uIGJpbmRPYmplY3RQcm9wcyAoXG4gIGRhdGEsXG4gIHRhZyxcbiAgdmFsdWUsXG4gIGFzUHJvcCxcbiAgaXNTeW5jXG4pIHtcbiAgaWYgKHZhbHVlKSB7XG4gICAgaWYgKCFpc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgd2FybihcbiAgICAgICAgJ3YtYmluZCB3aXRob3V0IGFyZ3VtZW50IGV4cGVjdHMgYW4gT2JqZWN0IG9yIEFycmF5IHZhbHVlJyxcbiAgICAgICAgdGhpc1xuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHZhbHVlID0gdG9PYmplY3QodmFsdWUpO1xuICAgICAgfVxuICAgICAgdmFyIGhhc2g7XG4gICAgICB2YXIgbG9vcCA9IGZ1bmN0aW9uICgga2V5ICkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAga2V5ID09PSAnY2xhc3MnIHx8XG4gICAgICAgICAga2V5ID09PSAnc3R5bGUnIHx8XG4gICAgICAgICAgaXNSZXNlcnZlZEF0dHJpYnV0ZShrZXkpXG4gICAgICAgICkge1xuICAgICAgICAgIGhhc2ggPSBkYXRhO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciB0eXBlID0gZGF0YS5hdHRycyAmJiBkYXRhLmF0dHJzLnR5cGU7XG4gICAgICAgICAgaGFzaCA9IGFzUHJvcCB8fCBjb25maWcubXVzdFVzZVByb3AodGFnLCB0eXBlLCBrZXkpXG4gICAgICAgICAgICA/IGRhdGEuZG9tUHJvcHMgfHwgKGRhdGEuZG9tUHJvcHMgPSB7fSlcbiAgICAgICAgICAgIDogZGF0YS5hdHRycyB8fCAoZGF0YS5hdHRycyA9IHt9KTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY2FtZWxpemVkS2V5ID0gY2FtZWxpemUoa2V5KTtcbiAgICAgICAgdmFyIGh5cGhlbmF0ZWRLZXkgPSBoeXBoZW5hdGUoa2V5KTtcbiAgICAgICAgaWYgKCEoY2FtZWxpemVkS2V5IGluIGhhc2gpICYmICEoaHlwaGVuYXRlZEtleSBpbiBoYXNoKSkge1xuICAgICAgICAgIGhhc2hba2V5XSA9IHZhbHVlW2tleV07XG5cbiAgICAgICAgICBpZiAoaXNTeW5jKSB7XG4gICAgICAgICAgICB2YXIgb24gPSBkYXRhLm9uIHx8IChkYXRhLm9uID0ge30pO1xuICAgICAgICAgICAgb25bKFwidXBkYXRlOlwiICsga2V5KV0gPSBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAgIHZhbHVlW2tleV0gPSAkZXZlbnQ7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgZm9yICh2YXIga2V5IGluIHZhbHVlKSBsb29wKCBrZXkgKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRhdGFcbn1cblxuLyogICovXG5cbi8qKlxuICogUnVudGltZSBoZWxwZXIgZm9yIHJlbmRlcmluZyBzdGF0aWMgdHJlZXMuXG4gKi9cbmZ1bmN0aW9uIHJlbmRlclN0YXRpYyAoXG4gIGluZGV4LFxuICBpc0luRm9yXG4pIHtcbiAgdmFyIGNhY2hlZCA9IHRoaXMuX3N0YXRpY1RyZWVzIHx8ICh0aGlzLl9zdGF0aWNUcmVlcyA9IFtdKTtcbiAgdmFyIHRyZWUgPSBjYWNoZWRbaW5kZXhdO1xuICAvLyBpZiBoYXMgYWxyZWFkeS1yZW5kZXJlZCBzdGF0aWMgdHJlZSBhbmQgbm90IGluc2lkZSB2LWZvcixcbiAgLy8gd2UgY2FuIHJldXNlIHRoZSBzYW1lIHRyZWUuXG4gIGlmICh0cmVlICYmICFpc0luRm9yKSB7XG4gICAgcmV0dXJuIHRyZWVcbiAgfVxuICAvLyBvdGhlcndpc2UsIHJlbmRlciBhIGZyZXNoIHRyZWUuXG4gIHRyZWUgPSBjYWNoZWRbaW5kZXhdID0gdGhpcy4kb3B0aW9ucy5zdGF0aWNSZW5kZXJGbnNbaW5kZXhdLmNhbGwoXG4gICAgdGhpcy5fcmVuZGVyUHJveHksXG4gICAgbnVsbCxcbiAgICB0aGlzIC8vIGZvciByZW5kZXIgZm5zIGdlbmVyYXRlZCBmb3IgZnVuY3Rpb25hbCBjb21wb25lbnQgdGVtcGxhdGVzXG4gICk7XG4gIG1hcmtTdGF0aWModHJlZSwgKFwiX19zdGF0aWNfX1wiICsgaW5kZXgpLCBmYWxzZSk7XG4gIHJldHVybiB0cmVlXG59XG5cbi8qKlxuICogUnVudGltZSBoZWxwZXIgZm9yIHYtb25jZS5cbiAqIEVmZmVjdGl2ZWx5IGl0IG1lYW5zIG1hcmtpbmcgdGhlIG5vZGUgYXMgc3RhdGljIHdpdGggYSB1bmlxdWUga2V5LlxuICovXG5mdW5jdGlvbiBtYXJrT25jZSAoXG4gIHRyZWUsXG4gIGluZGV4LFxuICBrZXlcbikge1xuICBtYXJrU3RhdGljKHRyZWUsIChcIl9fb25jZV9fXCIgKyBpbmRleCArIChrZXkgPyAoXCJfXCIgKyBrZXkpIDogXCJcIikpLCB0cnVlKTtcbiAgcmV0dXJuIHRyZWVcbn1cblxuZnVuY3Rpb24gbWFya1N0YXRpYyAoXG4gIHRyZWUsXG4gIGtleSxcbiAgaXNPbmNlXG4pIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodHJlZSkpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRyZWUubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0cmVlW2ldICYmIHR5cGVvZiB0cmVlW2ldICE9PSAnc3RyaW5nJykge1xuICAgICAgICBtYXJrU3RhdGljTm9kZSh0cmVlW2ldLCAoa2V5ICsgXCJfXCIgKyBpKSwgaXNPbmNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbWFya1N0YXRpY05vZGUodHJlZSwga2V5LCBpc09uY2UpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1hcmtTdGF0aWNOb2RlIChub2RlLCBrZXksIGlzT25jZSkge1xuICBub2RlLmlzU3RhdGljID0gdHJ1ZTtcbiAgbm9kZS5rZXkgPSBrZXk7XG4gIG5vZGUuaXNPbmNlID0gaXNPbmNlO1xufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gYmluZE9iamVjdExpc3RlbmVycyAoZGF0YSwgdmFsdWUpIHtcbiAgaWYgKHZhbHVlKSB7XG4gICAgaWYgKCFpc1BsYWluT2JqZWN0KHZhbHVlKSkge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB3YXJuKFxuICAgICAgICAndi1vbiB3aXRob3V0IGFyZ3VtZW50IGV4cGVjdHMgYW4gT2JqZWN0IHZhbHVlJyxcbiAgICAgICAgdGhpc1xuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIG9uID0gZGF0YS5vbiA9IGRhdGEub24gPyBleHRlbmQoe30sIGRhdGEub24pIDoge307XG4gICAgICBmb3IgKHZhciBrZXkgaW4gdmFsdWUpIHtcbiAgICAgICAgdmFyIGV4aXN0aW5nID0gb25ba2V5XTtcbiAgICAgICAgdmFyIG91cnMgPSB2YWx1ZVtrZXldO1xuICAgICAgICBvbltrZXldID0gZXhpc3RpbmcgPyBbXS5jb25jYXQoZXhpc3RpbmcsIG91cnMpIDogb3VycztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRhdGFcbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIHJlc29sdmVTY29wZWRTbG90cyAoXG4gIGZucywgLy8gc2VlIGZsb3cvdm5vZGVcbiAgcmVzLFxuICAvLyB0aGUgZm9sbG93aW5nIGFyZSBhZGRlZCBpbiAyLjZcbiAgaGFzRHluYW1pY0tleXMsXG4gIGNvbnRlbnRIYXNoS2V5XG4pIHtcbiAgcmVzID0gcmVzIHx8IHsgJHN0YWJsZTogIWhhc0R5bmFtaWNLZXlzIH07XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZm5zLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHNsb3QgPSBmbnNbaV07XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc2xvdCkpIHtcbiAgICAgIHJlc29sdmVTY29wZWRTbG90cyhzbG90LCByZXMsIGhhc0R5bmFtaWNLZXlzKTtcbiAgICB9IGVsc2UgaWYgKHNsb3QpIHtcbiAgICAgIC8vIG1hcmtlciBmb3IgcmV2ZXJzZSBwcm94eWluZyB2LXNsb3Qgd2l0aG91dCBzY29wZSBvbiB0aGlzLiRzbG90c1xuICAgICAgaWYgKHNsb3QucHJveHkpIHtcbiAgICAgICAgc2xvdC5mbi5wcm94eSA9IHRydWU7XG4gICAgICB9XG4gICAgICByZXNbc2xvdC5rZXldID0gc2xvdC5mbjtcbiAgICB9XG4gIH1cbiAgaWYgKGNvbnRlbnRIYXNoS2V5KSB7XG4gICAgKHJlcykuJGtleSA9IGNvbnRlbnRIYXNoS2V5O1xuICB9XG4gIHJldHVybiByZXNcbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIGJpbmREeW5hbWljS2V5cyAoYmFzZU9iaiwgdmFsdWVzKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgdmFyIGtleSA9IHZhbHVlc1tpXTtcbiAgICBpZiAodHlwZW9mIGtleSA9PT0gJ3N0cmluZycgJiYga2V5KSB7XG4gICAgICBiYXNlT2JqW3ZhbHVlc1tpXV0gPSB2YWx1ZXNbaSArIDFdO1xuICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBrZXkgIT09ICcnICYmIGtleSAhPT0gbnVsbCkge1xuICAgICAgLy8gbnVsbCBpcyBhIHNwZWNpYWwgdmFsdWUgZm9yIGV4cGxpY2l0bHkgcmVtb3ZpbmcgYSBiaW5kaW5nXG4gICAgICB3YXJuKFxuICAgICAgICAoXCJJbnZhbGlkIHZhbHVlIGZvciBkeW5hbWljIGRpcmVjdGl2ZSBhcmd1bWVudCAoZXhwZWN0ZWQgc3RyaW5nIG9yIG51bGwpOiBcIiArIGtleSksXG4gICAgICAgIHRoaXNcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHJldHVybiBiYXNlT2JqXG59XG5cbi8vIGhlbHBlciB0byBkeW5hbWljYWxseSBhcHBlbmQgbW9kaWZpZXIgcnVudGltZSBtYXJrZXJzIHRvIGV2ZW50IG5hbWVzLlxuLy8gZW5zdXJlIG9ubHkgYXBwZW5kIHdoZW4gdmFsdWUgaXMgYWxyZWFkeSBzdHJpbmcsIG90aGVyd2lzZSBpdCB3aWxsIGJlIGNhc3Rcbi8vIHRvIHN0cmluZyBhbmQgY2F1c2UgdGhlIHR5cGUgY2hlY2sgdG8gbWlzcy5cbmZ1bmN0aW9uIHByZXBlbmRNb2RpZmllciAodmFsdWUsIHN5bWJvbCkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHN5bWJvbCArIHZhbHVlIDogdmFsdWVcbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIGluc3RhbGxSZW5kZXJIZWxwZXJzICh0YXJnZXQpIHtcbiAgdGFyZ2V0Ll9vID0gbWFya09uY2U7XG4gIHRhcmdldC5fbiA9IHRvTnVtYmVyO1xuICB0YXJnZXQuX3MgPSB0b1N0cmluZztcbiAgdGFyZ2V0Ll9sID0gcmVuZGVyTGlzdDtcbiAgdGFyZ2V0Ll90ID0gcmVuZGVyU2xvdDtcbiAgdGFyZ2V0Ll9xID0gbG9vc2VFcXVhbDtcbiAgdGFyZ2V0Ll9pID0gbG9vc2VJbmRleE9mO1xuICB0YXJnZXQuX20gPSByZW5kZXJTdGF0aWM7XG4gIHRhcmdldC5fZiA9IHJlc29sdmVGaWx0ZXI7XG4gIHRhcmdldC5fayA9IGNoZWNrS2V5Q29kZXM7XG4gIHRhcmdldC5fYiA9IGJpbmRPYmplY3RQcm9wcztcbiAgdGFyZ2V0Ll92ID0gY3JlYXRlVGV4dFZOb2RlO1xuICB0YXJnZXQuX2UgPSBjcmVhdGVFbXB0eVZOb2RlO1xuICB0YXJnZXQuX3UgPSByZXNvbHZlU2NvcGVkU2xvdHM7XG4gIHRhcmdldC5fZyA9IGJpbmRPYmplY3RMaXN0ZW5lcnM7XG4gIHRhcmdldC5fZCA9IGJpbmREeW5hbWljS2V5cztcbiAgdGFyZ2V0Ll9wID0gcHJlcGVuZE1vZGlmaWVyO1xufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gRnVuY3Rpb25hbFJlbmRlckNvbnRleHQgKFxuICBkYXRhLFxuICBwcm9wcyxcbiAgY2hpbGRyZW4sXG4gIHBhcmVudCxcbiAgQ3RvclxuKSB7XG4gIHZhciB0aGlzJDEgPSB0aGlzO1xuXG4gIHZhciBvcHRpb25zID0gQ3Rvci5vcHRpb25zO1xuICAvLyBlbnN1cmUgdGhlIGNyZWF0ZUVsZW1lbnQgZnVuY3Rpb24gaW4gZnVuY3Rpb25hbCBjb21wb25lbnRzXG4gIC8vIGdldHMgYSB1bmlxdWUgY29udGV4dCAtIHRoaXMgaXMgbmVjZXNzYXJ5IGZvciBjb3JyZWN0IG5hbWVkIHNsb3QgY2hlY2tcbiAgdmFyIGNvbnRleHRWbTtcbiAgaWYgKGhhc093bihwYXJlbnQsICdfdWlkJykpIHtcbiAgICBjb250ZXh0Vm0gPSBPYmplY3QuY3JlYXRlKHBhcmVudCk7XG4gICAgLy8gJGZsb3ctZGlzYWJsZS1saW5lXG4gICAgY29udGV4dFZtLl9vcmlnaW5hbCA9IHBhcmVudDtcbiAgfSBlbHNlIHtcbiAgICAvLyB0aGUgY29udGV4dCB2bSBwYXNzZWQgaW4gaXMgYSBmdW5jdGlvbmFsIGNvbnRleHQgYXMgd2VsbC5cbiAgICAvLyBpbiB0aGlzIGNhc2Ugd2Ugd2FudCB0byBtYWtlIHN1cmUgd2UgYXJlIGFibGUgdG8gZ2V0IGEgaG9sZCB0byB0aGVcbiAgICAvLyByZWFsIGNvbnRleHQgaW5zdGFuY2UuXG4gICAgY29udGV4dFZtID0gcGFyZW50O1xuICAgIC8vICRmbG93LWRpc2FibGUtbGluZVxuICAgIHBhcmVudCA9IHBhcmVudC5fb3JpZ2luYWw7XG4gIH1cbiAgdmFyIGlzQ29tcGlsZWQgPSBpc1RydWUob3B0aW9ucy5fY29tcGlsZWQpO1xuICB2YXIgbmVlZE5vcm1hbGl6YXRpb24gPSAhaXNDb21waWxlZDtcblxuICB0aGlzLmRhdGEgPSBkYXRhO1xuICB0aGlzLnByb3BzID0gcHJvcHM7XG4gIHRoaXMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7XG4gIHRoaXMubGlzdGVuZXJzID0gZGF0YS5vbiB8fCBlbXB0eU9iamVjdDtcbiAgdGhpcy5pbmplY3Rpb25zID0gcmVzb2x2ZUluamVjdChvcHRpb25zLmluamVjdCwgcGFyZW50KTtcbiAgdGhpcy5zbG90cyA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIXRoaXMkMS4kc2xvdHMpIHtcbiAgICAgIG5vcm1hbGl6ZVNjb3BlZFNsb3RzKFxuICAgICAgICBkYXRhLnNjb3BlZFNsb3RzLFxuICAgICAgICB0aGlzJDEuJHNsb3RzID0gcmVzb2x2ZVNsb3RzKGNoaWxkcmVuLCBwYXJlbnQpXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcyQxLiRzbG90c1xuICB9O1xuXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAnc2NvcGVkU2xvdHMnLCAoe1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiBnZXQgKCkge1xuICAgICAgcmV0dXJuIG5vcm1hbGl6ZVNjb3BlZFNsb3RzKGRhdGEuc2NvcGVkU2xvdHMsIHRoaXMuc2xvdHMoKSlcbiAgICB9XG4gIH0pKTtcblxuICAvLyBzdXBwb3J0IGZvciBjb21waWxlZCBmdW5jdGlvbmFsIHRlbXBsYXRlXG4gIGlmIChpc0NvbXBpbGVkKSB7XG4gICAgLy8gZXhwb3NpbmcgJG9wdGlvbnMgZm9yIHJlbmRlclN0YXRpYygpXG4gICAgdGhpcy4kb3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgLy8gcHJlLXJlc29sdmUgc2xvdHMgZm9yIHJlbmRlclNsb3QoKVxuICAgIHRoaXMuJHNsb3RzID0gdGhpcy5zbG90cygpO1xuICAgIHRoaXMuJHNjb3BlZFNsb3RzID0gbm9ybWFsaXplU2NvcGVkU2xvdHMoZGF0YS5zY29wZWRTbG90cywgdGhpcy4kc2xvdHMpO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuX3Njb3BlSWQpIHtcbiAgICB0aGlzLl9jID0gZnVuY3Rpb24gKGEsIGIsIGMsIGQpIHtcbiAgICAgIHZhciB2bm9kZSA9IGNyZWF0ZUVsZW1lbnQoY29udGV4dFZtLCBhLCBiLCBjLCBkLCBuZWVkTm9ybWFsaXphdGlvbik7XG4gICAgICBpZiAodm5vZGUgJiYgIUFycmF5LmlzQXJyYXkodm5vZGUpKSB7XG4gICAgICAgIHZub2RlLmZuU2NvcGVJZCA9IG9wdGlvbnMuX3Njb3BlSWQ7XG4gICAgICAgIHZub2RlLmZuQ29udGV4dCA9IHBhcmVudDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2bm9kZVxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5fYyA9IGZ1bmN0aW9uIChhLCBiLCBjLCBkKSB7IHJldHVybiBjcmVhdGVFbGVtZW50KGNvbnRleHRWbSwgYSwgYiwgYywgZCwgbmVlZE5vcm1hbGl6YXRpb24pOyB9O1xuICB9XG59XG5cbmluc3RhbGxSZW5kZXJIZWxwZXJzKEZ1bmN0aW9uYWxSZW5kZXJDb250ZXh0LnByb3RvdHlwZSk7XG5cbmZ1bmN0aW9uIGNyZWF0ZUZ1bmN0aW9uYWxDb21wb25lbnQgKFxuICBDdG9yLFxuICBwcm9wc0RhdGEsXG4gIGRhdGEsXG4gIGNvbnRleHRWbSxcbiAgY2hpbGRyZW5cbikge1xuICB2YXIgb3B0aW9ucyA9IEN0b3Iub3B0aW9ucztcbiAgdmFyIHByb3BzID0ge307XG4gIHZhciBwcm9wT3B0aW9ucyA9IG9wdGlvbnMucHJvcHM7XG4gIGlmIChpc0RlZihwcm9wT3B0aW9ucykpIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gcHJvcE9wdGlvbnMpIHtcbiAgICAgIHByb3BzW2tleV0gPSB2YWxpZGF0ZVByb3Aoa2V5LCBwcm9wT3B0aW9ucywgcHJvcHNEYXRhIHx8IGVtcHR5T2JqZWN0KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKGlzRGVmKGRhdGEuYXR0cnMpKSB7IG1lcmdlUHJvcHMocHJvcHMsIGRhdGEuYXR0cnMpOyB9XG4gICAgaWYgKGlzRGVmKGRhdGEucHJvcHMpKSB7IG1lcmdlUHJvcHMocHJvcHMsIGRhdGEucHJvcHMpOyB9XG4gIH1cblxuICB2YXIgcmVuZGVyQ29udGV4dCA9IG5ldyBGdW5jdGlvbmFsUmVuZGVyQ29udGV4dChcbiAgICBkYXRhLFxuICAgIHByb3BzLFxuICAgIGNoaWxkcmVuLFxuICAgIGNvbnRleHRWbSxcbiAgICBDdG9yXG4gICk7XG5cbiAgdmFyIHZub2RlID0gb3B0aW9ucy5yZW5kZXIuY2FsbChudWxsLCByZW5kZXJDb250ZXh0Ll9jLCByZW5kZXJDb250ZXh0KTtcblxuICBpZiAodm5vZGUgaW5zdGFuY2VvZiBWTm9kZSkge1xuICAgIHJldHVybiBjbG9uZUFuZE1hcmtGdW5jdGlvbmFsUmVzdWx0KHZub2RlLCBkYXRhLCByZW5kZXJDb250ZXh0LnBhcmVudCwgb3B0aW9ucywgcmVuZGVyQ29udGV4dClcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZub2RlKSkge1xuICAgIHZhciB2bm9kZXMgPSBub3JtYWxpemVDaGlsZHJlbih2bm9kZSkgfHwgW107XG4gICAgdmFyIHJlcyA9IG5ldyBBcnJheSh2bm9kZXMubGVuZ3RoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZub2Rlcy5sZW5ndGg7IGkrKykge1xuICAgICAgcmVzW2ldID0gY2xvbmVBbmRNYXJrRnVuY3Rpb25hbFJlc3VsdCh2bm9kZXNbaV0sIGRhdGEsIHJlbmRlckNvbnRleHQucGFyZW50LCBvcHRpb25zLCByZW5kZXJDb250ZXh0KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc1xuICB9XG59XG5cbmZ1bmN0aW9uIGNsb25lQW5kTWFya0Z1bmN0aW9uYWxSZXN1bHQgKHZub2RlLCBkYXRhLCBjb250ZXh0Vm0sIG9wdGlvbnMsIHJlbmRlckNvbnRleHQpIHtcbiAgLy8gIzc4MTcgY2xvbmUgbm9kZSBiZWZvcmUgc2V0dGluZyBmbkNvbnRleHQsIG90aGVyd2lzZSBpZiB0aGUgbm9kZSBpcyByZXVzZWRcbiAgLy8gKGUuZy4gaXQgd2FzIGZyb20gYSBjYWNoZWQgbm9ybWFsIHNsb3QpIHRoZSBmbkNvbnRleHQgY2F1c2VzIG5hbWVkIHNsb3RzXG4gIC8vIHRoYXQgc2hvdWxkIG5vdCBiZSBtYXRjaGVkIHRvIG1hdGNoLlxuICB2YXIgY2xvbmUgPSBjbG9uZVZOb2RlKHZub2RlKTtcbiAgY2xvbmUuZm5Db250ZXh0ID0gY29udGV4dFZtO1xuICBjbG9uZS5mbk9wdGlvbnMgPSBvcHRpb25zO1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIChjbG9uZS5kZXZ0b29sc01ldGEgPSBjbG9uZS5kZXZ0b29sc01ldGEgfHwge30pLnJlbmRlckNvbnRleHQgPSByZW5kZXJDb250ZXh0O1xuICB9XG4gIGlmIChkYXRhLnNsb3QpIHtcbiAgICAoY2xvbmUuZGF0YSB8fCAoY2xvbmUuZGF0YSA9IHt9KSkuc2xvdCA9IGRhdGEuc2xvdDtcbiAgfVxuICByZXR1cm4gY2xvbmVcbn1cblxuZnVuY3Rpb24gbWVyZ2VQcm9wcyAodG8sIGZyb20pIHtcbiAgZm9yICh2YXIga2V5IGluIGZyb20pIHtcbiAgICB0b1tjYW1lbGl6ZShrZXkpXSA9IGZyb21ba2V5XTtcbiAgfVxufVxuXG4vKiAgKi9cblxuLyogICovXG5cbi8qICAqL1xuXG4vKiAgKi9cblxuLy8gaW5saW5lIGhvb2tzIHRvIGJlIGludm9rZWQgb24gY29tcG9uZW50IFZOb2RlcyBkdXJpbmcgcGF0Y2hcbnZhciBjb21wb25lbnRWTm9kZUhvb2tzID0ge1xuICBpbml0OiBmdW5jdGlvbiBpbml0ICh2bm9kZSwgaHlkcmF0aW5nKSB7XG4gICAgaWYgKFxuICAgICAgdm5vZGUuY29tcG9uZW50SW5zdGFuY2UgJiZcbiAgICAgICF2bm9kZS5jb21wb25lbnRJbnN0YW5jZS5faXNEZXN0cm95ZWQgJiZcbiAgICAgIHZub2RlLmRhdGEua2VlcEFsaXZlXG4gICAgKSB7XG4gICAgICAvLyBrZXB0LWFsaXZlIGNvbXBvbmVudHMsIHRyZWF0IGFzIGEgcGF0Y2hcbiAgICAgIHZhciBtb3VudGVkTm9kZSA9IHZub2RlOyAvLyB3b3JrIGFyb3VuZCBmbG93XG4gICAgICBjb21wb25lbnRWTm9kZUhvb2tzLnByZXBhdGNoKG1vdW50ZWROb2RlLCBtb3VudGVkTm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBjaGlsZCA9IHZub2RlLmNvbXBvbmVudEluc3RhbmNlID0gY3JlYXRlQ29tcG9uZW50SW5zdGFuY2VGb3JWbm9kZShcbiAgICAgICAgdm5vZGUsXG4gICAgICAgIGFjdGl2ZUluc3RhbmNlXG4gICAgICApO1xuICAgICAgY2hpbGQuJG1vdW50KGh5ZHJhdGluZyA/IHZub2RlLmVsbSA6IHVuZGVmaW5lZCwgaHlkcmF0aW5nKTtcbiAgICB9XG4gIH0sXG5cbiAgcHJlcGF0Y2g6IGZ1bmN0aW9uIHByZXBhdGNoIChvbGRWbm9kZSwgdm5vZGUpIHtcbiAgICB2YXIgb3B0aW9ucyA9IHZub2RlLmNvbXBvbmVudE9wdGlvbnM7XG4gICAgdmFyIGNoaWxkID0gdm5vZGUuY29tcG9uZW50SW5zdGFuY2UgPSBvbGRWbm9kZS5jb21wb25lbnRJbnN0YW5jZTtcbiAgICB1cGRhdGVDaGlsZENvbXBvbmVudChcbiAgICAgIGNoaWxkLFxuICAgICAgb3B0aW9ucy5wcm9wc0RhdGEsIC8vIHVwZGF0ZWQgcHJvcHNcbiAgICAgIG9wdGlvbnMubGlzdGVuZXJzLCAvLyB1cGRhdGVkIGxpc3RlbmVyc1xuICAgICAgdm5vZGUsIC8vIG5ldyBwYXJlbnQgdm5vZGVcbiAgICAgIG9wdGlvbnMuY2hpbGRyZW4gLy8gbmV3IGNoaWxkcmVuXG4gICAgKTtcbiAgfSxcblxuICBpbnNlcnQ6IGZ1bmN0aW9uIGluc2VydCAodm5vZGUpIHtcbiAgICB2YXIgY29udGV4dCA9IHZub2RlLmNvbnRleHQ7XG4gICAgdmFyIGNvbXBvbmVudEluc3RhbmNlID0gdm5vZGUuY29tcG9uZW50SW5zdGFuY2U7XG4gICAgaWYgKCFjb21wb25lbnRJbnN0YW5jZS5faXNNb3VudGVkKSB7XG4gICAgICBjb21wb25lbnRJbnN0YW5jZS5faXNNb3VudGVkID0gdHJ1ZTtcbiAgICAgIGNhbGxIb29rKGNvbXBvbmVudEluc3RhbmNlLCAnbW91bnRlZCcpO1xuICAgIH1cbiAgICBpZiAodm5vZGUuZGF0YS5rZWVwQWxpdmUpIHtcbiAgICAgIGlmIChjb250ZXh0Ll9pc01vdW50ZWQpIHtcbiAgICAgICAgLy8gdnVlLXJvdXRlciMxMjEyXG4gICAgICAgIC8vIER1cmluZyB1cGRhdGVzLCBhIGtlcHQtYWxpdmUgY29tcG9uZW50J3MgY2hpbGQgY29tcG9uZW50cyBtYXlcbiAgICAgICAgLy8gY2hhbmdlLCBzbyBkaXJlY3RseSB3YWxraW5nIHRoZSB0cmVlIGhlcmUgbWF5IGNhbGwgYWN0aXZhdGVkIGhvb2tzXG4gICAgICAgIC8vIG9uIGluY29ycmVjdCBjaGlsZHJlbi4gSW5zdGVhZCB3ZSBwdXNoIHRoZW0gaW50byBhIHF1ZXVlIHdoaWNoIHdpbGxcbiAgICAgICAgLy8gYmUgcHJvY2Vzc2VkIGFmdGVyIHRoZSB3aG9sZSBwYXRjaCBwcm9jZXNzIGVuZGVkLlxuICAgICAgICBxdWV1ZUFjdGl2YXRlZENvbXBvbmVudChjb21wb25lbnRJbnN0YW5jZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhY3RpdmF0ZUNoaWxkQ29tcG9uZW50KGNvbXBvbmVudEluc3RhbmNlLCB0cnVlIC8qIGRpcmVjdCAqLyk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIGRlc3Ryb3k6IGZ1bmN0aW9uIGRlc3Ryb3kgKHZub2RlKSB7XG4gICAgdmFyIGNvbXBvbmVudEluc3RhbmNlID0gdm5vZGUuY29tcG9uZW50SW5zdGFuY2U7XG4gICAgaWYgKCFjb21wb25lbnRJbnN0YW5jZS5faXNEZXN0cm95ZWQpIHtcbiAgICAgIGlmICghdm5vZGUuZGF0YS5rZWVwQWxpdmUpIHtcbiAgICAgICAgY29tcG9uZW50SW5zdGFuY2UuJGRlc3Ryb3koKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlYWN0aXZhdGVDaGlsZENvbXBvbmVudChjb21wb25lbnRJbnN0YW5jZSwgdHJ1ZSAvKiBkaXJlY3QgKi8pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxudmFyIGhvb2tzVG9NZXJnZSA9IE9iamVjdC5rZXlzKGNvbXBvbmVudFZOb2RlSG9va3MpO1xuXG5mdW5jdGlvbiBjcmVhdGVDb21wb25lbnQgKFxuICBDdG9yLFxuICBkYXRhLFxuICBjb250ZXh0LFxuICBjaGlsZHJlbixcbiAgdGFnXG4pIHtcbiAgaWYgKGlzVW5kZWYoQ3RvcikpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIHZhciBiYXNlQ3RvciA9IGNvbnRleHQuJG9wdGlvbnMuX2Jhc2U7XG5cbiAgLy8gcGxhaW4gb3B0aW9ucyBvYmplY3Q6IHR1cm4gaXQgaW50byBhIGNvbnN0cnVjdG9yXG4gIGlmIChpc09iamVjdChDdG9yKSkge1xuICAgIEN0b3IgPSBiYXNlQ3Rvci5leHRlbmQoQ3Rvcik7XG4gIH1cblxuICAvLyBpZiBhdCB0aGlzIHN0YWdlIGl0J3Mgbm90IGEgY29uc3RydWN0b3Igb3IgYW4gYXN5bmMgY29tcG9uZW50IGZhY3RvcnksXG4gIC8vIHJlamVjdC5cbiAgaWYgKHR5cGVvZiBDdG9yICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHdhcm4oKFwiSW52YWxpZCBDb21wb25lbnQgZGVmaW5pdGlvbjogXCIgKyAoU3RyaW5nKEN0b3IpKSksIGNvbnRleHQpO1xuICAgIH1cbiAgICByZXR1cm5cbiAgfVxuXG4gIC8vIGFzeW5jIGNvbXBvbmVudFxuICB2YXIgYXN5bmNGYWN0b3J5O1xuICBpZiAoaXNVbmRlZihDdG9yLmNpZCkpIHtcbiAgICBhc3luY0ZhY3RvcnkgPSBDdG9yO1xuICAgIEN0b3IgPSByZXNvbHZlQXN5bmNDb21wb25lbnQoYXN5bmNGYWN0b3J5LCBiYXNlQ3Rvcik7XG4gICAgaWYgKEN0b3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gcmV0dXJuIGEgcGxhY2Vob2xkZXIgbm9kZSBmb3IgYXN5bmMgY29tcG9uZW50LCB3aGljaCBpcyByZW5kZXJlZFxuICAgICAgLy8gYXMgYSBjb21tZW50IG5vZGUgYnV0IHByZXNlcnZlcyBhbGwgdGhlIHJhdyBpbmZvcm1hdGlvbiBmb3IgdGhlIG5vZGUuXG4gICAgICAvLyB0aGUgaW5mb3JtYXRpb24gd2lsbCBiZSB1c2VkIGZvciBhc3luYyBzZXJ2ZXItcmVuZGVyaW5nIGFuZCBoeWRyYXRpb24uXG4gICAgICByZXR1cm4gY3JlYXRlQXN5bmNQbGFjZWhvbGRlcihcbiAgICAgICAgYXN5bmNGYWN0b3J5LFxuICAgICAgICBkYXRhLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgdGFnXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgZGF0YSA9IGRhdGEgfHwge307XG5cbiAgLy8gcmVzb2x2ZSBjb25zdHJ1Y3RvciBvcHRpb25zIGluIGNhc2UgZ2xvYmFsIG1peGlucyBhcmUgYXBwbGllZCBhZnRlclxuICAvLyBjb21wb25lbnQgY29uc3RydWN0b3IgY3JlYXRpb25cbiAgcmVzb2x2ZUNvbnN0cnVjdG9yT3B0aW9ucyhDdG9yKTtcblxuICAvLyB0cmFuc2Zvcm0gY29tcG9uZW50IHYtbW9kZWwgZGF0YSBpbnRvIHByb3BzICYgZXZlbnRzXG4gIGlmIChpc0RlZihkYXRhLm1vZGVsKSkge1xuICAgIHRyYW5zZm9ybU1vZGVsKEN0b3Iub3B0aW9ucywgZGF0YSk7XG4gIH1cblxuICAvLyBleHRyYWN0IHByb3BzXG4gIHZhciBwcm9wc0RhdGEgPSBleHRyYWN0UHJvcHNGcm9tVk5vZGVEYXRhKGRhdGEsIEN0b3IsIHRhZyk7XG5cbiAgLy8gZnVuY3Rpb25hbCBjb21wb25lbnRcbiAgaWYgKGlzVHJ1ZShDdG9yLm9wdGlvbnMuZnVuY3Rpb25hbCkpIHtcbiAgICByZXR1cm4gY3JlYXRlRnVuY3Rpb25hbENvbXBvbmVudChDdG9yLCBwcm9wc0RhdGEsIGRhdGEsIGNvbnRleHQsIGNoaWxkcmVuKVxuICB9XG5cbiAgLy8gZXh0cmFjdCBsaXN0ZW5lcnMsIHNpbmNlIHRoZXNlIG5lZWRzIHRvIGJlIHRyZWF0ZWQgYXNcbiAgLy8gY2hpbGQgY29tcG9uZW50IGxpc3RlbmVycyBpbnN0ZWFkIG9mIERPTSBsaXN0ZW5lcnNcbiAgdmFyIGxpc3RlbmVycyA9IGRhdGEub247XG4gIC8vIHJlcGxhY2Ugd2l0aCBsaXN0ZW5lcnMgd2l0aCAubmF0aXZlIG1vZGlmaWVyXG4gIC8vIHNvIGl0IGdldHMgcHJvY2Vzc2VkIGR1cmluZyBwYXJlbnQgY29tcG9uZW50IHBhdGNoLlxuICBkYXRhLm9uID0gZGF0YS5uYXRpdmVPbjtcblxuICBpZiAoaXNUcnVlKEN0b3Iub3B0aW9ucy5hYnN0cmFjdCkpIHtcbiAgICAvLyBhYnN0cmFjdCBjb21wb25lbnRzIGRvIG5vdCBrZWVwIGFueXRoaW5nXG4gICAgLy8gb3RoZXIgdGhhbiBwcm9wcyAmIGxpc3RlbmVycyAmIHNsb3RcblxuICAgIC8vIHdvcmsgYXJvdW5kIGZsb3dcbiAgICB2YXIgc2xvdCA9IGRhdGEuc2xvdDtcbiAgICBkYXRhID0ge307XG4gICAgaWYgKHNsb3QpIHtcbiAgICAgIGRhdGEuc2xvdCA9IHNsb3Q7XG4gICAgfVxuICB9XG5cbiAgLy8gaW5zdGFsbCBjb21wb25lbnQgbWFuYWdlbWVudCBob29rcyBvbnRvIHRoZSBwbGFjZWhvbGRlciBub2RlXG4gIGluc3RhbGxDb21wb25lbnRIb29rcyhkYXRhKTtcblxuICAvLyByZXR1cm4gYSBwbGFjZWhvbGRlciB2bm9kZVxuICB2YXIgbmFtZSA9IEN0b3Iub3B0aW9ucy5uYW1lIHx8IHRhZztcbiAgdmFyIHZub2RlID0gbmV3IFZOb2RlKFxuICAgIChcInZ1ZS1jb21wb25lbnQtXCIgKyAoQ3Rvci5jaWQpICsgKG5hbWUgPyAoXCItXCIgKyBuYW1lKSA6ICcnKSksXG4gICAgZGF0YSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29udGV4dCxcbiAgICB7IEN0b3I6IEN0b3IsIHByb3BzRGF0YTogcHJvcHNEYXRhLCBsaXN0ZW5lcnM6IGxpc3RlbmVycywgdGFnOiB0YWcsIGNoaWxkcmVuOiBjaGlsZHJlbiB9LFxuICAgIGFzeW5jRmFjdG9yeVxuICApO1xuXG4gIHJldHVybiB2bm9kZVxufVxuXG5mdW5jdGlvbiBjcmVhdGVDb21wb25lbnRJbnN0YW5jZUZvclZub2RlIChcbiAgLy8gd2Uga25vdyBpdCdzIE1vdW50ZWRDb21wb25lbnRWTm9kZSBidXQgZmxvdyBkb2Vzbid0XG4gIHZub2RlLFxuICAvLyBhY3RpdmVJbnN0YW5jZSBpbiBsaWZlY3ljbGUgc3RhdGVcbiAgcGFyZW50XG4pIHtcbiAgdmFyIG9wdGlvbnMgPSB7XG4gICAgX2lzQ29tcG9uZW50OiB0cnVlLFxuICAgIF9wYXJlbnRWbm9kZTogdm5vZGUsXG4gICAgcGFyZW50OiBwYXJlbnRcbiAgfTtcbiAgLy8gY2hlY2sgaW5saW5lLXRlbXBsYXRlIHJlbmRlciBmdW5jdGlvbnNcbiAgdmFyIGlubGluZVRlbXBsYXRlID0gdm5vZGUuZGF0YS5pbmxpbmVUZW1wbGF0ZTtcbiAgaWYgKGlzRGVmKGlubGluZVRlbXBsYXRlKSkge1xuICAgIG9wdGlvbnMucmVuZGVyID0gaW5saW5lVGVtcGxhdGUucmVuZGVyO1xuICAgIG9wdGlvbnMuc3RhdGljUmVuZGVyRm5zID0gaW5saW5lVGVtcGxhdGUuc3RhdGljUmVuZGVyRm5zO1xuICB9XG4gIHJldHVybiBuZXcgdm5vZGUuY29tcG9uZW50T3B0aW9ucy5DdG9yKG9wdGlvbnMpXG59XG5cbmZ1bmN0aW9uIGluc3RhbGxDb21wb25lbnRIb29rcyAoZGF0YSkge1xuICB2YXIgaG9va3MgPSBkYXRhLmhvb2sgfHwgKGRhdGEuaG9vayA9IHt9KTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBob29rc1RvTWVyZ2UubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIga2V5ID0gaG9va3NUb01lcmdlW2ldO1xuICAgIHZhciBleGlzdGluZyA9IGhvb2tzW2tleV07XG4gICAgdmFyIHRvTWVyZ2UgPSBjb21wb25lbnRWTm9kZUhvb2tzW2tleV07XG4gICAgaWYgKGV4aXN0aW5nICE9PSB0b01lcmdlICYmICEoZXhpc3RpbmcgJiYgZXhpc3RpbmcuX21lcmdlZCkpIHtcbiAgICAgIGhvb2tzW2tleV0gPSBleGlzdGluZyA/IG1lcmdlSG9vayQxKHRvTWVyZ2UsIGV4aXN0aW5nKSA6IHRvTWVyZ2U7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIG1lcmdlSG9vayQxIChmMSwgZjIpIHtcbiAgdmFyIG1lcmdlZCA9IGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgLy8gZmxvdyBjb21wbGFpbnMgYWJvdXQgZXh0cmEgYXJncyB3aGljaCBpcyB3aHkgd2UgdXNlIGFueVxuICAgIGYxKGEsIGIpO1xuICAgIGYyKGEsIGIpO1xuICB9O1xuICBtZXJnZWQuX21lcmdlZCA9IHRydWU7XG4gIHJldHVybiBtZXJnZWRcbn1cblxuLy8gdHJhbnNmb3JtIGNvbXBvbmVudCB2LW1vZGVsIGluZm8gKHZhbHVlIGFuZCBjYWxsYmFjaykgaW50b1xuLy8gcHJvcCBhbmQgZXZlbnQgaGFuZGxlciByZXNwZWN0aXZlbHkuXG5mdW5jdGlvbiB0cmFuc2Zvcm1Nb2RlbCAob3B0aW9ucywgZGF0YSkge1xuICB2YXIgcHJvcCA9IChvcHRpb25zLm1vZGVsICYmIG9wdGlvbnMubW9kZWwucHJvcCkgfHwgJ3ZhbHVlJztcbiAgdmFyIGV2ZW50ID0gKG9wdGlvbnMubW9kZWwgJiYgb3B0aW9ucy5tb2RlbC5ldmVudCkgfHwgJ2lucHV0J1xuICA7KGRhdGEuYXR0cnMgfHwgKGRhdGEuYXR0cnMgPSB7fSkpW3Byb3BdID0gZGF0YS5tb2RlbC52YWx1ZTtcbiAgdmFyIG9uID0gZGF0YS5vbiB8fCAoZGF0YS5vbiA9IHt9KTtcbiAgdmFyIGV4aXN0aW5nID0gb25bZXZlbnRdO1xuICB2YXIgY2FsbGJhY2sgPSBkYXRhLm1vZGVsLmNhbGxiYWNrO1xuICBpZiAoaXNEZWYoZXhpc3RpbmcpKSB7XG4gICAgaWYgKFxuICAgICAgQXJyYXkuaXNBcnJheShleGlzdGluZylcbiAgICAgICAgPyBleGlzdGluZy5pbmRleE9mKGNhbGxiYWNrKSA9PT0gLTFcbiAgICAgICAgOiBleGlzdGluZyAhPT0gY2FsbGJhY2tcbiAgICApIHtcbiAgICAgIG9uW2V2ZW50XSA9IFtjYWxsYmFja10uY29uY2F0KGV4aXN0aW5nKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgb25bZXZlbnRdID0gY2FsbGJhY2s7XG4gIH1cbn1cblxuLyogICovXG5cbnZhciBTSU1QTEVfTk9STUFMSVpFID0gMTtcbnZhciBBTFdBWVNfTk9STUFMSVpFID0gMjtcblxuLy8gd3JhcHBlciBmdW5jdGlvbiBmb3IgcHJvdmlkaW5nIGEgbW9yZSBmbGV4aWJsZSBpbnRlcmZhY2Vcbi8vIHdpdGhvdXQgZ2V0dGluZyB5ZWxsZWQgYXQgYnkgZmxvd1xuZnVuY3Rpb24gY3JlYXRlRWxlbWVudCAoXG4gIGNvbnRleHQsXG4gIHRhZyxcbiAgZGF0YSxcbiAgY2hpbGRyZW4sXG4gIG5vcm1hbGl6YXRpb25UeXBlLFxuICBhbHdheXNOb3JtYWxpemVcbikge1xuICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSB8fCBpc1ByaW1pdGl2ZShkYXRhKSkge1xuICAgIG5vcm1hbGl6YXRpb25UeXBlID0gY2hpbGRyZW47XG4gICAgY2hpbGRyZW4gPSBkYXRhO1xuICAgIGRhdGEgPSB1bmRlZmluZWQ7XG4gIH1cbiAgaWYgKGlzVHJ1ZShhbHdheXNOb3JtYWxpemUpKSB7XG4gICAgbm9ybWFsaXphdGlvblR5cGUgPSBBTFdBWVNfTk9STUFMSVpFO1xuICB9XG4gIHJldHVybiBfY3JlYXRlRWxlbWVudChjb250ZXh0LCB0YWcsIGRhdGEsIGNoaWxkcmVuLCBub3JtYWxpemF0aW9uVHlwZSlcbn1cblxuZnVuY3Rpb24gX2NyZWF0ZUVsZW1lbnQgKFxuICBjb250ZXh0LFxuICB0YWcsXG4gIGRhdGEsXG4gIGNoaWxkcmVuLFxuICBub3JtYWxpemF0aW9uVHlwZVxuKSB7XG4gIGlmIChpc0RlZihkYXRhKSAmJiBpc0RlZigoZGF0YSkuX19vYl9fKSkge1xuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgd2FybihcbiAgICAgIFwiQXZvaWQgdXNpbmcgb2JzZXJ2ZWQgZGF0YSBvYmplY3QgYXMgdm5vZGUgZGF0YTogXCIgKyAoSlNPTi5zdHJpbmdpZnkoZGF0YSkpICsgXCJcXG5cIiArXG4gICAgICAnQWx3YXlzIGNyZWF0ZSBmcmVzaCB2bm9kZSBkYXRhIG9iamVjdHMgaW4gZWFjaCByZW5kZXIhJyxcbiAgICAgIGNvbnRleHRcbiAgICApO1xuICAgIHJldHVybiBjcmVhdGVFbXB0eVZOb2RlKClcbiAgfVxuICAvLyBvYmplY3Qgc3ludGF4IGluIHYtYmluZFxuICBpZiAoaXNEZWYoZGF0YSkgJiYgaXNEZWYoZGF0YS5pcykpIHtcbiAgICB0YWcgPSBkYXRhLmlzO1xuICB9XG4gIGlmICghdGFnKSB7XG4gICAgLy8gaW4gY2FzZSBvZiBjb21wb25lbnQgOmlzIHNldCB0byBmYWxzeSB2YWx1ZVxuICAgIHJldHVybiBjcmVhdGVFbXB0eVZOb2RlKClcbiAgfVxuICAvLyB3YXJuIGFnYWluc3Qgbm9uLXByaW1pdGl2ZSBrZXlcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiZcbiAgICBpc0RlZihkYXRhKSAmJiBpc0RlZihkYXRhLmtleSkgJiYgIWlzUHJpbWl0aXZlKGRhdGEua2V5KVxuICApIHtcbiAgICB7XG4gICAgICB3YXJuKFxuICAgICAgICAnQXZvaWQgdXNpbmcgbm9uLXByaW1pdGl2ZSB2YWx1ZSBhcyBrZXksICcgK1xuICAgICAgICAndXNlIHN0cmluZy9udW1iZXIgdmFsdWUgaW5zdGVhZC4nLFxuICAgICAgICBjb250ZXh0XG4gICAgICApO1xuICAgIH1cbiAgfVxuICAvLyBzdXBwb3J0IHNpbmdsZSBmdW5jdGlvbiBjaGlsZHJlbiBhcyBkZWZhdWx0IHNjb3BlZCBzbG90XG4gIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSAmJlxuICAgIHR5cGVvZiBjaGlsZHJlblswXSA9PT0gJ2Z1bmN0aW9uJ1xuICApIHtcbiAgICBkYXRhID0gZGF0YSB8fCB7fTtcbiAgICBkYXRhLnNjb3BlZFNsb3RzID0geyBkZWZhdWx0OiBjaGlsZHJlblswXSB9O1xuICAgIGNoaWxkcmVuLmxlbmd0aCA9IDA7XG4gIH1cbiAgaWYgKG5vcm1hbGl6YXRpb25UeXBlID09PSBBTFdBWVNfTk9STUFMSVpFKSB7XG4gICAgY2hpbGRyZW4gPSBub3JtYWxpemVDaGlsZHJlbihjaGlsZHJlbik7XG4gIH0gZWxzZSBpZiAobm9ybWFsaXphdGlvblR5cGUgPT09IFNJTVBMRV9OT1JNQUxJWkUpIHtcbiAgICBjaGlsZHJlbiA9IHNpbXBsZU5vcm1hbGl6ZUNoaWxkcmVuKGNoaWxkcmVuKTtcbiAgfVxuICB2YXIgdm5vZGUsIG5zO1xuICBpZiAodHlwZW9mIHRhZyA9PT0gJ3N0cmluZycpIHtcbiAgICB2YXIgQ3RvcjtcbiAgICBucyA9IChjb250ZXh0LiR2bm9kZSAmJiBjb250ZXh0LiR2bm9kZS5ucykgfHwgY29uZmlnLmdldFRhZ05hbWVzcGFjZSh0YWcpO1xuICAgIGlmIChjb25maWcuaXNSZXNlcnZlZFRhZyh0YWcpKSB7XG4gICAgICAvLyBwbGF0Zm9ybSBidWlsdC1pbiBlbGVtZW50c1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgaXNEZWYoZGF0YSkgJiYgaXNEZWYoZGF0YS5uYXRpdmVPbikgJiYgZGF0YS50YWcgIT09ICdjb21wb25lbnQnKSB7XG4gICAgICAgIHdhcm4oXG4gICAgICAgICAgKFwiVGhlIC5uYXRpdmUgbW9kaWZpZXIgZm9yIHYtb24gaXMgb25seSB2YWxpZCBvbiBjb21wb25lbnRzIGJ1dCBpdCB3YXMgdXNlZCBvbiA8XCIgKyB0YWcgKyBcIj4uXCIpLFxuICAgICAgICAgIGNvbnRleHRcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHZub2RlID0gbmV3IFZOb2RlKFxuICAgICAgICBjb25maWcucGFyc2VQbGF0Zm9ybVRhZ05hbWUodGFnKSwgZGF0YSwgY2hpbGRyZW4sXG4gICAgICAgIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb250ZXh0XG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoKCFkYXRhIHx8ICFkYXRhLnByZSkgJiYgaXNEZWYoQ3RvciA9IHJlc29sdmVBc3NldChjb250ZXh0LiRvcHRpb25zLCAnY29tcG9uZW50cycsIHRhZykpKSB7XG4gICAgICAvLyBjb21wb25lbnRcbiAgICAgIHZub2RlID0gY3JlYXRlQ29tcG9uZW50KEN0b3IsIGRhdGEsIGNvbnRleHQsIGNoaWxkcmVuLCB0YWcpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyB1bmtub3duIG9yIHVubGlzdGVkIG5hbWVzcGFjZWQgZWxlbWVudHNcbiAgICAgIC8vIGNoZWNrIGF0IHJ1bnRpbWUgYmVjYXVzZSBpdCBtYXkgZ2V0IGFzc2lnbmVkIGEgbmFtZXNwYWNlIHdoZW4gaXRzXG4gICAgICAvLyBwYXJlbnQgbm9ybWFsaXplcyBjaGlsZHJlblxuICAgICAgdm5vZGUgPSBuZXcgVk5vZGUoXG4gICAgICAgIHRhZywgZGF0YSwgY2hpbGRyZW4sXG4gICAgICAgIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb250ZXh0XG4gICAgICApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBkaXJlY3QgY29tcG9uZW50IG9wdGlvbnMgLyBjb25zdHJ1Y3RvclxuICAgIHZub2RlID0gY3JlYXRlQ29tcG9uZW50KHRhZywgZGF0YSwgY29udGV4dCwgY2hpbGRyZW4pO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHZub2RlKSkge1xuICAgIHJldHVybiB2bm9kZVxuICB9IGVsc2UgaWYgKGlzRGVmKHZub2RlKSkge1xuICAgIGlmIChpc0RlZihucykpIHsgYXBwbHlOUyh2bm9kZSwgbnMpOyB9XG4gICAgaWYgKGlzRGVmKGRhdGEpKSB7IHJlZ2lzdGVyRGVlcEJpbmRpbmdzKGRhdGEpOyB9XG4gICAgcmV0dXJuIHZub2RlXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGNyZWF0ZUVtcHR5Vk5vZGUoKVxuICB9XG59XG5cbmZ1bmN0aW9uIGFwcGx5TlMgKHZub2RlLCBucywgZm9yY2UpIHtcbiAgdm5vZGUubnMgPSBucztcbiAgaWYgKHZub2RlLnRhZyA9PT0gJ2ZvcmVpZ25PYmplY3QnKSB7XG4gICAgLy8gdXNlIGRlZmF1bHQgbmFtZXNwYWNlIGluc2lkZSBmb3JlaWduT2JqZWN0XG4gICAgbnMgPSB1bmRlZmluZWQ7XG4gICAgZm9yY2UgPSB0cnVlO1xuICB9XG4gIGlmIChpc0RlZih2bm9kZS5jaGlsZHJlbikpIHtcbiAgICBmb3IgKHZhciBpID0gMCwgbCA9IHZub2RlLmNoaWxkcmVuLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgdmFyIGNoaWxkID0gdm5vZGUuY2hpbGRyZW5baV07XG4gICAgICBpZiAoaXNEZWYoY2hpbGQudGFnKSAmJiAoXG4gICAgICAgIGlzVW5kZWYoY2hpbGQubnMpIHx8IChpc1RydWUoZm9yY2UpICYmIGNoaWxkLnRhZyAhPT0gJ3N2ZycpKSkge1xuICAgICAgICBhcHBseU5TKGNoaWxkLCBucywgZm9yY2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyByZWYgIzUzMThcbi8vIG5lY2Vzc2FyeSB0byBlbnN1cmUgcGFyZW50IHJlLXJlbmRlciB3aGVuIGRlZXAgYmluZGluZ3MgbGlrZSA6c3R5bGUgYW5kXG4vLyA6Y2xhc3MgYXJlIHVzZWQgb24gc2xvdCBub2Rlc1xuZnVuY3Rpb24gcmVnaXN0ZXJEZWVwQmluZGluZ3MgKGRhdGEpIHtcbiAgaWYgKGlzT2JqZWN0KGRhdGEuc3R5bGUpKSB7XG4gICAgdHJhdmVyc2UoZGF0YS5zdHlsZSk7XG4gIH1cbiAgaWYgKGlzT2JqZWN0KGRhdGEuY2xhc3MpKSB7XG4gICAgdHJhdmVyc2UoZGF0YS5jbGFzcyk7XG4gIH1cbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIGluaXRSZW5kZXIgKHZtKSB7XG4gIHZtLl92bm9kZSA9IG51bGw7IC8vIHRoZSByb290IG9mIHRoZSBjaGlsZCB0cmVlXG4gIHZtLl9zdGF0aWNUcmVlcyA9IG51bGw7IC8vIHYtb25jZSBjYWNoZWQgdHJlZXNcbiAgdmFyIG9wdGlvbnMgPSB2bS4kb3B0aW9ucztcbiAgdmFyIHBhcmVudFZub2RlID0gdm0uJHZub2RlID0gb3B0aW9ucy5fcGFyZW50Vm5vZGU7IC8vIHRoZSBwbGFjZWhvbGRlciBub2RlIGluIHBhcmVudCB0cmVlXG4gIHZhciByZW5kZXJDb250ZXh0ID0gcGFyZW50Vm5vZGUgJiYgcGFyZW50Vm5vZGUuY29udGV4dDtcbiAgdm0uJHNsb3RzID0gcmVzb2x2ZVNsb3RzKG9wdGlvbnMuX3JlbmRlckNoaWxkcmVuLCByZW5kZXJDb250ZXh0KTtcbiAgdm0uJHNjb3BlZFNsb3RzID0gZW1wdHlPYmplY3Q7XG4gIC8vIGJpbmQgdGhlIGNyZWF0ZUVsZW1lbnQgZm4gdG8gdGhpcyBpbnN0YW5jZVxuICAvLyBzbyB0aGF0IHdlIGdldCBwcm9wZXIgcmVuZGVyIGNvbnRleHQgaW5zaWRlIGl0LlxuICAvLyBhcmdzIG9yZGVyOiB0YWcsIGRhdGEsIGNoaWxkcmVuLCBub3JtYWxpemF0aW9uVHlwZSwgYWx3YXlzTm9ybWFsaXplXG4gIC8vIGludGVybmFsIHZlcnNpb24gaXMgdXNlZCBieSByZW5kZXIgZnVuY3Rpb25zIGNvbXBpbGVkIGZyb20gdGVtcGxhdGVzXG4gIHZtLl9jID0gZnVuY3Rpb24gKGEsIGIsIGMsIGQpIHsgcmV0dXJuIGNyZWF0ZUVsZW1lbnQodm0sIGEsIGIsIGMsIGQsIGZhbHNlKTsgfTtcbiAgLy8gbm9ybWFsaXphdGlvbiBpcyBhbHdheXMgYXBwbGllZCBmb3IgdGhlIHB1YmxpYyB2ZXJzaW9uLCB1c2VkIGluXG4gIC8vIHVzZXItd3JpdHRlbiByZW5kZXIgZnVuY3Rpb25zLlxuICB2bS4kY3JlYXRlRWxlbWVudCA9IGZ1bmN0aW9uIChhLCBiLCBjLCBkKSB7IHJldHVybiBjcmVhdGVFbGVtZW50KHZtLCBhLCBiLCBjLCBkLCB0cnVlKTsgfTtcblxuICAvLyAkYXR0cnMgJiAkbGlzdGVuZXJzIGFyZSBleHBvc2VkIGZvciBlYXNpZXIgSE9DIGNyZWF0aW9uLlxuICAvLyB0aGV5IG5lZWQgdG8gYmUgcmVhY3RpdmUgc28gdGhhdCBIT0NzIHVzaW5nIHRoZW0gYXJlIGFsd2F5cyB1cGRhdGVkXG4gIHZhciBwYXJlbnREYXRhID0gcGFyZW50Vm5vZGUgJiYgcGFyZW50Vm5vZGUuZGF0YTtcblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGRlZmluZVJlYWN0aXZlJCQxKHZtLCAnJGF0dHJzJywgcGFyZW50RGF0YSAmJiBwYXJlbnREYXRhLmF0dHJzIHx8IGVtcHR5T2JqZWN0LCBmdW5jdGlvbiAoKSB7XG4gICAgICAhaXNVcGRhdGluZ0NoaWxkQ29tcG9uZW50ICYmIHdhcm4oXCIkYXR0cnMgaXMgcmVhZG9ubHkuXCIsIHZtKTtcbiAgICB9LCB0cnVlKTtcbiAgICBkZWZpbmVSZWFjdGl2ZSQkMSh2bSwgJyRsaXN0ZW5lcnMnLCBvcHRpb25zLl9wYXJlbnRMaXN0ZW5lcnMgfHwgZW1wdHlPYmplY3QsIGZ1bmN0aW9uICgpIHtcbiAgICAgICFpc1VwZGF0aW5nQ2hpbGRDb21wb25lbnQgJiYgd2FybihcIiRsaXN0ZW5lcnMgaXMgcmVhZG9ubHkuXCIsIHZtKTtcbiAgICB9LCB0cnVlKTtcbiAgfSBlbHNlIHtcbiAgICBkZWZpbmVSZWFjdGl2ZSQkMSh2bSwgJyRhdHRycycsIHBhcmVudERhdGEgJiYgcGFyZW50RGF0YS5hdHRycyB8fCBlbXB0eU9iamVjdCwgbnVsbCwgdHJ1ZSk7XG4gICAgZGVmaW5lUmVhY3RpdmUkJDEodm0sICckbGlzdGVuZXJzJywgb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzIHx8IGVtcHR5T2JqZWN0LCBudWxsLCB0cnVlKTtcbiAgfVxufVxuXG52YXIgY3VycmVudFJlbmRlcmluZ0luc3RhbmNlID0gbnVsbDtcblxuZnVuY3Rpb24gcmVuZGVyTWl4aW4gKFZ1ZSkge1xuICAvLyBpbnN0YWxsIHJ1bnRpbWUgY29udmVuaWVuY2UgaGVscGVyc1xuICBpbnN0YWxsUmVuZGVySGVscGVycyhWdWUucHJvdG90eXBlKTtcblxuICBWdWUucHJvdG90eXBlLiRuZXh0VGljayA9IGZ1bmN0aW9uIChmbikge1xuICAgIHJldHVybiBuZXh0VGljayhmbiwgdGhpcylcbiAgfTtcblxuICBWdWUucHJvdG90eXBlLl9yZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHZtID0gdGhpcztcbiAgICB2YXIgcmVmID0gdm0uJG9wdGlvbnM7XG4gICAgdmFyIHJlbmRlciA9IHJlZi5yZW5kZXI7XG4gICAgdmFyIF9wYXJlbnRWbm9kZSA9IHJlZi5fcGFyZW50Vm5vZGU7XG5cbiAgICBpZiAoX3BhcmVudFZub2RlKSB7XG4gICAgICB2bS4kc2NvcGVkU2xvdHMgPSBub3JtYWxpemVTY29wZWRTbG90cyhcbiAgICAgICAgX3BhcmVudFZub2RlLmRhdGEuc2NvcGVkU2xvdHMsXG4gICAgICAgIHZtLiRzbG90cyxcbiAgICAgICAgdm0uJHNjb3BlZFNsb3RzXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIHNldCBwYXJlbnQgdm5vZGUuIHRoaXMgYWxsb3dzIHJlbmRlciBmdW5jdGlvbnMgdG8gaGF2ZSBhY2Nlc3NcbiAgICAvLyB0byB0aGUgZGF0YSBvbiB0aGUgcGxhY2Vob2xkZXIgbm9kZS5cbiAgICB2bS4kdm5vZGUgPSBfcGFyZW50Vm5vZGU7XG4gICAgLy8gcmVuZGVyIHNlbGZcbiAgICB2YXIgdm5vZGU7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFRoZXJlJ3Mgbm8gbmVlZCB0byBtYWludGFpbiBhIHN0YWNrIGJlY2F1c2UgYWxsIHJlbmRlciBmbnMgYXJlIGNhbGxlZFxuICAgICAgLy8gc2VwYXJhdGVseSBmcm9tIG9uZSBhbm90aGVyLiBOZXN0ZWQgY29tcG9uZW50J3MgcmVuZGVyIGZucyBhcmUgY2FsbGVkXG4gICAgICAvLyB3aGVuIHBhcmVudCBjb21wb25lbnQgaXMgcGF0Y2hlZC5cbiAgICAgIGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZSA9IHZtO1xuICAgICAgdm5vZGUgPSByZW5kZXIuY2FsbCh2bS5fcmVuZGVyUHJveHksIHZtLiRjcmVhdGVFbGVtZW50KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBoYW5kbGVFcnJvcihlLCB2bSwgXCJyZW5kZXJcIik7XG4gICAgICAvLyByZXR1cm4gZXJyb3IgcmVuZGVyIHJlc3VsdCxcbiAgICAgIC8vIG9yIHByZXZpb3VzIHZub2RlIHRvIHByZXZlbnQgcmVuZGVyIGVycm9yIGNhdXNpbmcgYmxhbmsgY29tcG9uZW50XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgdm0uJG9wdGlvbnMucmVuZGVyRXJyb3IpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB2bm9kZSA9IHZtLiRvcHRpb25zLnJlbmRlckVycm9yLmNhbGwodm0uX3JlbmRlclByb3h5LCB2bS4kY3JlYXRlRWxlbWVudCwgZSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBoYW5kbGVFcnJvcihlLCB2bSwgXCJyZW5kZXJFcnJvclwiKTtcbiAgICAgICAgICB2bm9kZSA9IHZtLl92bm9kZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdm5vZGUgPSB2bS5fdm5vZGU7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZSA9IG51bGw7XG4gICAgfVxuICAgIC8vIGlmIHRoZSByZXR1cm5lZCBhcnJheSBjb250YWlucyBvbmx5IGEgc2luZ2xlIG5vZGUsIGFsbG93IGl0XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodm5vZGUpICYmIHZub2RlLmxlbmd0aCA9PT0gMSkge1xuICAgICAgdm5vZGUgPSB2bm9kZVswXTtcbiAgICB9XG4gICAgLy8gcmV0dXJuIGVtcHR5IHZub2RlIGluIGNhc2UgdGhlIHJlbmRlciBmdW5jdGlvbiBlcnJvcmVkIG91dFxuICAgIGlmICghKHZub2RlIGluc3RhbmNlb2YgVk5vZGUpKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBBcnJheS5pc0FycmF5KHZub2RlKSkge1xuICAgICAgICB3YXJuKFxuICAgICAgICAgICdNdWx0aXBsZSByb290IG5vZGVzIHJldHVybmVkIGZyb20gcmVuZGVyIGZ1bmN0aW9uLiBSZW5kZXIgZnVuY3Rpb24gJyArXG4gICAgICAgICAgJ3Nob3VsZCByZXR1cm4gYSBzaW5nbGUgcm9vdCBub2RlLicsXG4gICAgICAgICAgdm1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHZub2RlID0gY3JlYXRlRW1wdHlWTm9kZSgpO1xuICAgIH1cbiAgICAvLyBzZXQgcGFyZW50XG4gICAgdm5vZGUucGFyZW50ID0gX3BhcmVudFZub2RlO1xuICAgIHJldHVybiB2bm9kZVxuICB9O1xufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gZW5zdXJlQ3RvciAoY29tcCwgYmFzZSkge1xuICBpZiAoXG4gICAgY29tcC5fX2VzTW9kdWxlIHx8XG4gICAgKGhhc1N5bWJvbCAmJiBjb21wW1N5bWJvbC50b1N0cmluZ1RhZ10gPT09ICdNb2R1bGUnKVxuICApIHtcbiAgICBjb21wID0gY29tcC5kZWZhdWx0O1xuICB9XG4gIHJldHVybiBpc09iamVjdChjb21wKVxuICAgID8gYmFzZS5leHRlbmQoY29tcClcbiAgICA6IGNvbXBcbn1cblxuZnVuY3Rpb24gY3JlYXRlQXN5bmNQbGFjZWhvbGRlciAoXG4gIGZhY3RvcnksXG4gIGRhdGEsXG4gIGNvbnRleHQsXG4gIGNoaWxkcmVuLFxuICB0YWdcbikge1xuICB2YXIgbm9kZSA9IGNyZWF0ZUVtcHR5Vk5vZGUoKTtcbiAgbm9kZS5hc3luY0ZhY3RvcnkgPSBmYWN0b3J5O1xuICBub2RlLmFzeW5jTWV0YSA9IHsgZGF0YTogZGF0YSwgY29udGV4dDogY29udGV4dCwgY2hpbGRyZW46IGNoaWxkcmVuLCB0YWc6IHRhZyB9O1xuICByZXR1cm4gbm9kZVxufVxuXG5mdW5jdGlvbiByZXNvbHZlQXN5bmNDb21wb25lbnQgKFxuICBmYWN0b3J5LFxuICBiYXNlQ3RvclxuKSB7XG4gIGlmIChpc1RydWUoZmFjdG9yeS5lcnJvcikgJiYgaXNEZWYoZmFjdG9yeS5lcnJvckNvbXApKSB7XG4gICAgcmV0dXJuIGZhY3RvcnkuZXJyb3JDb21wXG4gIH1cblxuICBpZiAoaXNEZWYoZmFjdG9yeS5yZXNvbHZlZCkpIHtcbiAgICByZXR1cm4gZmFjdG9yeS5yZXNvbHZlZFxuICB9XG5cbiAgdmFyIG93bmVyID0gY3VycmVudFJlbmRlcmluZ0luc3RhbmNlO1xuICBpZiAob3duZXIgJiYgaXNEZWYoZmFjdG9yeS5vd25lcnMpICYmIGZhY3Rvcnkub3duZXJzLmluZGV4T2Yob3duZXIpID09PSAtMSkge1xuICAgIC8vIGFscmVhZHkgcGVuZGluZ1xuICAgIGZhY3Rvcnkub3duZXJzLnB1c2gob3duZXIpO1xuICB9XG5cbiAgaWYgKGlzVHJ1ZShmYWN0b3J5LmxvYWRpbmcpICYmIGlzRGVmKGZhY3RvcnkubG9hZGluZ0NvbXApKSB7XG4gICAgcmV0dXJuIGZhY3RvcnkubG9hZGluZ0NvbXBcbiAgfVxuXG4gIGlmIChvd25lciAmJiAhaXNEZWYoZmFjdG9yeS5vd25lcnMpKSB7XG4gICAgdmFyIG93bmVycyA9IGZhY3Rvcnkub3duZXJzID0gW293bmVyXTtcbiAgICB2YXIgc3luYyA9IHRydWU7XG4gICAgdmFyIHRpbWVyTG9hZGluZyA9IG51bGw7XG4gICAgdmFyIHRpbWVyVGltZW91dCA9IG51bGxcblxuICAgIDsob3duZXIpLiRvbignaG9vazpkZXN0cm95ZWQnLCBmdW5jdGlvbiAoKSB7IHJldHVybiByZW1vdmUob3duZXJzLCBvd25lcik7IH0pO1xuXG4gICAgdmFyIGZvcmNlUmVuZGVyID0gZnVuY3Rpb24gKHJlbmRlckNvbXBsZXRlZCkge1xuICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSBvd25lcnMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIChvd25lcnNbaV0pLiRmb3JjZVVwZGF0ZSgpO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVuZGVyQ29tcGxldGVkKSB7XG4gICAgICAgIG93bmVycy5sZW5ndGggPSAwO1xuICAgICAgICBpZiAodGltZXJMb2FkaW5nICE9PSBudWxsKSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyTG9hZGluZyk7XG4gICAgICAgICAgdGltZXJMb2FkaW5nID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGltZXJUaW1lb3V0ICE9PSBudWxsKSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyVGltZW91dCk7XG4gICAgICAgICAgdGltZXJUaW1lb3V0ID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICB2YXIgcmVzb2x2ZSA9IG9uY2UoZnVuY3Rpb24gKHJlcykge1xuICAgICAgLy8gY2FjaGUgcmVzb2x2ZWRcbiAgICAgIGZhY3RvcnkucmVzb2x2ZWQgPSBlbnN1cmVDdG9yKHJlcywgYmFzZUN0b3IpO1xuICAgICAgLy8gaW52b2tlIGNhbGxiYWNrcyBvbmx5IGlmIHRoaXMgaXMgbm90IGEgc3luY2hyb25vdXMgcmVzb2x2ZVxuICAgICAgLy8gKGFzeW5jIHJlc29sdmVzIGFyZSBzaGltbWVkIGFzIHN5bmNocm9ub3VzIGR1cmluZyBTU1IpXG4gICAgICBpZiAoIXN5bmMpIHtcbiAgICAgICAgZm9yY2VSZW5kZXIodHJ1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvd25lcnMubGVuZ3RoID0gMDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHZhciByZWplY3QgPSBvbmNlKGZ1bmN0aW9uIChyZWFzb24pIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgd2FybihcbiAgICAgICAgXCJGYWlsZWQgdG8gcmVzb2x2ZSBhc3luYyBjb21wb25lbnQ6IFwiICsgKFN0cmluZyhmYWN0b3J5KSkgK1xuICAgICAgICAocmVhc29uID8gKFwiXFxuUmVhc29uOiBcIiArIHJlYXNvbikgOiAnJylcbiAgICAgICk7XG4gICAgICBpZiAoaXNEZWYoZmFjdG9yeS5lcnJvckNvbXApKSB7XG4gICAgICAgIGZhY3RvcnkuZXJyb3IgPSB0cnVlO1xuICAgICAgICBmb3JjZVJlbmRlcih0cnVlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHZhciByZXMgPSBmYWN0b3J5KHJlc29sdmUsIHJlamVjdCk7XG5cbiAgICBpZiAoaXNPYmplY3QocmVzKSkge1xuICAgICAgaWYgKGlzUHJvbWlzZShyZXMpKSB7XG4gICAgICAgIC8vICgpID0+IFByb21pc2VcbiAgICAgICAgaWYgKGlzVW5kZWYoZmFjdG9yeS5yZXNvbHZlZCkpIHtcbiAgICAgICAgICByZXMudGhlbihyZXNvbHZlLCByZWplY3QpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGlzUHJvbWlzZShyZXMuY29tcG9uZW50KSkge1xuICAgICAgICByZXMuY29tcG9uZW50LnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTtcblxuICAgICAgICBpZiAoaXNEZWYocmVzLmVycm9yKSkge1xuICAgICAgICAgIGZhY3RvcnkuZXJyb3JDb21wID0gZW5zdXJlQ3RvcihyZXMuZXJyb3IsIGJhc2VDdG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0RlZihyZXMubG9hZGluZykpIHtcbiAgICAgICAgICBmYWN0b3J5LmxvYWRpbmdDb21wID0gZW5zdXJlQ3RvcihyZXMubG9hZGluZywgYmFzZUN0b3IpO1xuICAgICAgICAgIGlmIChyZXMuZGVsYXkgPT09IDApIHtcbiAgICAgICAgICAgIGZhY3RvcnkubG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRpbWVyTG9hZGluZyA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICB0aW1lckxvYWRpbmcgPSBudWxsO1xuICAgICAgICAgICAgICBpZiAoaXNVbmRlZihmYWN0b3J5LnJlc29sdmVkKSAmJiBpc1VuZGVmKGZhY3RvcnkuZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgZmFjdG9yeS5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBmb3JjZVJlbmRlcihmYWxzZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHJlcy5kZWxheSB8fCAyMDApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0RlZihyZXMudGltZW91dCkpIHtcbiAgICAgICAgICB0aW1lclRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRpbWVyVGltZW91dCA9IG51bGw7XG4gICAgICAgICAgICBpZiAoaXNVbmRlZihmYWN0b3J5LnJlc29sdmVkKSkge1xuICAgICAgICAgICAgICByZWplY3QoXG4gICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJ1xuICAgICAgICAgICAgICAgICAgPyAoXCJ0aW1lb3V0IChcIiArIChyZXMudGltZW91dCkgKyBcIm1zKVwiKVxuICAgICAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSwgcmVzLnRpbWVvdXQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3luYyA9IGZhbHNlO1xuICAgIC8vIHJldHVybiBpbiBjYXNlIHJlc29sdmVkIHN5bmNocm9ub3VzbHlcbiAgICByZXR1cm4gZmFjdG9yeS5sb2FkaW5nXG4gICAgICA/IGZhY3RvcnkubG9hZGluZ0NvbXBcbiAgICAgIDogZmFjdG9yeS5yZXNvbHZlZFxuICB9XG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBnZXRGaXJzdENvbXBvbmVudENoaWxkIChjaGlsZHJlbikge1xuICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgYyA9IGNoaWxkcmVuW2ldO1xuICAgICAgaWYgKGlzRGVmKGMpICYmIChpc0RlZihjLmNvbXBvbmVudE9wdGlvbnMpIHx8IGlzQXN5bmNQbGFjZWhvbGRlcihjKSkpIHtcbiAgICAgICAgcmV0dXJuIGNcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyogICovXG5cbi8qICAqL1xuXG5mdW5jdGlvbiBpbml0RXZlbnRzICh2bSkge1xuICB2bS5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgdm0uX2hhc0hvb2tFdmVudCA9IGZhbHNlO1xuICAvLyBpbml0IHBhcmVudCBhdHRhY2hlZCBldmVudHNcbiAgdmFyIGxpc3RlbmVycyA9IHZtLiRvcHRpb25zLl9wYXJlbnRMaXN0ZW5lcnM7XG4gIGlmIChsaXN0ZW5lcnMpIHtcbiAgICB1cGRhdGVDb21wb25lbnRMaXN0ZW5lcnModm0sIGxpc3RlbmVycyk7XG4gIH1cbn1cblxudmFyIHRhcmdldDtcblxuZnVuY3Rpb24gYWRkIChldmVudCwgZm4pIHtcbiAgdGFyZ2V0LiRvbihldmVudCwgZm4pO1xufVxuXG5mdW5jdGlvbiByZW1vdmUkMSAoZXZlbnQsIGZuKSB7XG4gIHRhcmdldC4kb2ZmKGV2ZW50LCBmbik7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZU9uY2VIYW5kbGVyIChldmVudCwgZm4pIHtcbiAgdmFyIF90YXJnZXQgPSB0YXJnZXQ7XG4gIHJldHVybiBmdW5jdGlvbiBvbmNlSGFuZGxlciAoKSB7XG4gICAgdmFyIHJlcyA9IGZuLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgaWYgKHJlcyAhPT0gbnVsbCkge1xuICAgICAgX3RhcmdldC4kb2ZmKGV2ZW50LCBvbmNlSGFuZGxlcik7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUNvbXBvbmVudExpc3RlbmVycyAoXG4gIHZtLFxuICBsaXN0ZW5lcnMsXG4gIG9sZExpc3RlbmVyc1xuKSB7XG4gIHRhcmdldCA9IHZtO1xuICB1cGRhdGVMaXN0ZW5lcnMobGlzdGVuZXJzLCBvbGRMaXN0ZW5lcnMgfHwge30sIGFkZCwgcmVtb3ZlJDEsIGNyZWF0ZU9uY2VIYW5kbGVyLCB2bSk7XG4gIHRhcmdldCA9IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZXZlbnRzTWl4aW4gKFZ1ZSkge1xuICB2YXIgaG9va1JFID0gL15ob29rOi87XG4gIFZ1ZS5wcm90b3R5cGUuJG9uID0gZnVuY3Rpb24gKGV2ZW50LCBmbikge1xuICAgIHZhciB2bSA9IHRoaXM7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZXZlbnQpKSB7XG4gICAgICBmb3IgKHZhciBpID0gMCwgbCA9IGV2ZW50Lmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICB2bS4kb24oZXZlbnRbaV0sIGZuKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgKHZtLl9ldmVudHNbZXZlbnRdIHx8ICh2bS5fZXZlbnRzW2V2ZW50XSA9IFtdKSkucHVzaChmbik7XG4gICAgICAvLyBvcHRpbWl6ZSBob29rOmV2ZW50IGNvc3QgYnkgdXNpbmcgYSBib29sZWFuIGZsYWcgbWFya2VkIGF0IHJlZ2lzdHJhdGlvblxuICAgICAgLy8gaW5zdGVhZCBvZiBhIGhhc2ggbG9va3VwXG4gICAgICBpZiAoaG9va1JFLnRlc3QoZXZlbnQpKSB7XG4gICAgICAgIHZtLl9oYXNIb29rRXZlbnQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdm1cbiAgfTtcblxuICBWdWUucHJvdG90eXBlLiRvbmNlID0gZnVuY3Rpb24gKGV2ZW50LCBmbikge1xuICAgIHZhciB2bSA9IHRoaXM7XG4gICAgZnVuY3Rpb24gb24gKCkge1xuICAgICAgdm0uJG9mZihldmVudCwgb24pO1xuICAgICAgZm4uYXBwbHkodm0sIGFyZ3VtZW50cyk7XG4gICAgfVxuICAgIG9uLmZuID0gZm47XG4gICAgdm0uJG9uKGV2ZW50LCBvbik7XG4gICAgcmV0dXJuIHZtXG4gIH07XG5cbiAgVnVlLnByb3RvdHlwZS4kb2ZmID0gZnVuY3Rpb24gKGV2ZW50LCBmbikge1xuICAgIHZhciB2bSA9IHRoaXM7XG4gICAgLy8gYWxsXG4gICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgICB2bS5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgIHJldHVybiB2bVxuICAgIH1cbiAgICAvLyBhcnJheSBvZiBldmVudHNcbiAgICBpZiAoQXJyYXkuaXNBcnJheShldmVudCkpIHtcbiAgICAgIGZvciAodmFyIGkkMSA9IDAsIGwgPSBldmVudC5sZW5ndGg7IGkkMSA8IGw7IGkkMSsrKSB7XG4gICAgICAgIHZtLiRvZmYoZXZlbnRbaSQxXSwgZm4pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZtXG4gICAgfVxuICAgIC8vIHNwZWNpZmljIGV2ZW50XG4gICAgdmFyIGNicyA9IHZtLl9ldmVudHNbZXZlbnRdO1xuICAgIGlmICghY2JzKSB7XG4gICAgICByZXR1cm4gdm1cbiAgICB9XG4gICAgaWYgKCFmbikge1xuICAgICAgdm0uX2V2ZW50c1tldmVudF0gPSBudWxsO1xuICAgICAgcmV0dXJuIHZtXG4gICAgfVxuICAgIC8vIHNwZWNpZmljIGhhbmRsZXJcbiAgICB2YXIgY2I7XG4gICAgdmFyIGkgPSBjYnMubGVuZ3RoO1xuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgIGNiID0gY2JzW2ldO1xuICAgICAgaWYgKGNiID09PSBmbiB8fCBjYi5mbiA9PT0gZm4pIHtcbiAgICAgICAgY2JzLnNwbGljZShpLCAxKTtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZtXG4gIH07XG5cbiAgVnVlLnByb3RvdHlwZS4kZW1pdCA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgIHZhciB2bSA9IHRoaXM7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHZhciBsb3dlckNhc2VFdmVudCA9IGV2ZW50LnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAobG93ZXJDYXNlRXZlbnQgIT09IGV2ZW50ICYmIHZtLl9ldmVudHNbbG93ZXJDYXNlRXZlbnRdKSB7XG4gICAgICAgIHRpcChcbiAgICAgICAgICBcIkV2ZW50IFxcXCJcIiArIGxvd2VyQ2FzZUV2ZW50ICsgXCJcXFwiIGlzIGVtaXR0ZWQgaW4gY29tcG9uZW50IFwiICtcbiAgICAgICAgICAoZm9ybWF0Q29tcG9uZW50TmFtZSh2bSkpICsgXCIgYnV0IHRoZSBoYW5kbGVyIGlzIHJlZ2lzdGVyZWQgZm9yIFxcXCJcIiArIGV2ZW50ICsgXCJcXFwiLiBcIiArXG4gICAgICAgICAgXCJOb3RlIHRoYXQgSFRNTCBhdHRyaWJ1dGVzIGFyZSBjYXNlLWluc2Vuc2l0aXZlIGFuZCB5b3UgY2Fubm90IHVzZSBcIiArXG4gICAgICAgICAgXCJ2LW9uIHRvIGxpc3RlbiB0byBjYW1lbENhc2UgZXZlbnRzIHdoZW4gdXNpbmcgaW4tRE9NIHRlbXBsYXRlcy4gXCIgK1xuICAgICAgICAgIFwiWW91IHNob3VsZCBwcm9iYWJseSB1c2UgXFxcIlwiICsgKGh5cGhlbmF0ZShldmVudCkpICsgXCJcXFwiIGluc3RlYWQgb2YgXFxcIlwiICsgZXZlbnQgKyBcIlxcXCIuXCJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdmFyIGNicyA9IHZtLl9ldmVudHNbZXZlbnRdO1xuICAgIGlmIChjYnMpIHtcbiAgICAgIGNicyA9IGNicy5sZW5ndGggPiAxID8gdG9BcnJheShjYnMpIDogY2JzO1xuICAgICAgdmFyIGFyZ3MgPSB0b0FycmF5KGFyZ3VtZW50cywgMSk7XG4gICAgICB2YXIgaW5mbyA9IFwiZXZlbnQgaGFuZGxlciBmb3IgXFxcIlwiICsgZXZlbnQgKyBcIlxcXCJcIjtcbiAgICAgIGZvciAodmFyIGkgPSAwLCBsID0gY2JzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICBpbnZva2VXaXRoRXJyb3JIYW5kbGluZyhjYnNbaV0sIHZtLCBhcmdzLCB2bSwgaW5mbyk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2bVxuICB9O1xufVxuXG4vKiAgKi9cblxudmFyIGFjdGl2ZUluc3RhbmNlID0gbnVsbDtcbnZhciBpc1VwZGF0aW5nQ2hpbGRDb21wb25lbnQgPSBmYWxzZTtcblxuZnVuY3Rpb24gc2V0QWN0aXZlSW5zdGFuY2Uodm0pIHtcbiAgdmFyIHByZXZBY3RpdmVJbnN0YW5jZSA9IGFjdGl2ZUluc3RhbmNlO1xuICBhY3RpdmVJbnN0YW5jZSA9IHZtO1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIGFjdGl2ZUluc3RhbmNlID0gcHJldkFjdGl2ZUluc3RhbmNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGluaXRMaWZlY3ljbGUgKHZtKSB7XG4gIHZhciBvcHRpb25zID0gdm0uJG9wdGlvbnM7XG5cbiAgLy8gbG9jYXRlIGZpcnN0IG5vbi1hYnN0cmFjdCBwYXJlbnRcbiAgdmFyIHBhcmVudCA9IG9wdGlvbnMucGFyZW50O1xuICBpZiAocGFyZW50ICYmICFvcHRpb25zLmFic3RyYWN0KSB7XG4gICAgd2hpbGUgKHBhcmVudC4kb3B0aW9ucy5hYnN0cmFjdCAmJiBwYXJlbnQuJHBhcmVudCkge1xuICAgICAgcGFyZW50ID0gcGFyZW50LiRwYXJlbnQ7XG4gICAgfVxuICAgIHBhcmVudC4kY2hpbGRyZW4ucHVzaCh2bSk7XG4gIH1cblxuICB2bS4kcGFyZW50ID0gcGFyZW50O1xuICB2bS4kcm9vdCA9IHBhcmVudCA/IHBhcmVudC4kcm9vdCA6IHZtO1xuXG4gIHZtLiRjaGlsZHJlbiA9IFtdO1xuICB2bS4kcmVmcyA9IHt9O1xuXG4gIHZtLl93YXRjaGVyID0gbnVsbDtcbiAgdm0uX2luYWN0aXZlID0gbnVsbDtcbiAgdm0uX2RpcmVjdEluYWN0aXZlID0gZmFsc2U7XG4gIHZtLl9pc01vdW50ZWQgPSBmYWxzZTtcbiAgdm0uX2lzRGVzdHJveWVkID0gZmFsc2U7XG4gIHZtLl9pc0JlaW5nRGVzdHJveWVkID0gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGxpZmVjeWNsZU1peGluIChWdWUpIHtcbiAgVnVlLnByb3RvdHlwZS5fdXBkYXRlID0gZnVuY3Rpb24gKHZub2RlLCBoeWRyYXRpbmcpIHtcbiAgICB2YXIgdm0gPSB0aGlzO1xuICAgIHZhciBwcmV2RWwgPSB2bS4kZWw7XG4gICAgdmFyIHByZXZWbm9kZSA9IHZtLl92bm9kZTtcbiAgICB2YXIgcmVzdG9yZUFjdGl2ZUluc3RhbmNlID0gc2V0QWN0aXZlSW5zdGFuY2Uodm0pO1xuICAgIHZtLl92bm9kZSA9IHZub2RlO1xuICAgIC8vIFZ1ZS5wcm90b3R5cGUuX19wYXRjaF9fIGlzIGluamVjdGVkIGluIGVudHJ5IHBvaW50c1xuICAgIC8vIGJhc2VkIG9uIHRoZSByZW5kZXJpbmcgYmFja2VuZCB1c2VkLlxuICAgIGlmICghcHJldlZub2RlKSB7XG4gICAgICAvLyBpbml0aWFsIHJlbmRlclxuICAgICAgdm0uJGVsID0gdm0uX19wYXRjaF9fKHZtLiRlbCwgdm5vZGUsIGh5ZHJhdGluZywgZmFsc2UgLyogcmVtb3ZlT25seSAqLyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHVwZGF0ZXNcbiAgICAgIHZtLiRlbCA9IHZtLl9fcGF0Y2hfXyhwcmV2Vm5vZGUsIHZub2RlKTtcbiAgICB9XG4gICAgcmVzdG9yZUFjdGl2ZUluc3RhbmNlKCk7XG4gICAgLy8gdXBkYXRlIF9fdnVlX18gcmVmZXJlbmNlXG4gICAgaWYgKHByZXZFbCkge1xuICAgICAgcHJldkVsLl9fdnVlX18gPSBudWxsO1xuICAgIH1cbiAgICBpZiAodm0uJGVsKSB7XG4gICAgICB2bS4kZWwuX192dWVfXyA9IHZtO1xuICAgIH1cbiAgICAvLyBpZiBwYXJlbnQgaXMgYW4gSE9DLCB1cGRhdGUgaXRzICRlbCBhcyB3ZWxsXG4gICAgaWYgKHZtLiR2bm9kZSAmJiB2bS4kcGFyZW50ICYmIHZtLiR2bm9kZSA9PT0gdm0uJHBhcmVudC5fdm5vZGUpIHtcbiAgICAgIHZtLiRwYXJlbnQuJGVsID0gdm0uJGVsO1xuICAgIH1cbiAgICAvLyB1cGRhdGVkIGhvb2sgaXMgY2FsbGVkIGJ5IHRoZSBzY2hlZHVsZXIgdG8gZW5zdXJlIHRoYXQgY2hpbGRyZW4gYXJlXG4gICAgLy8gdXBkYXRlZCBpbiBhIHBhcmVudCdzIHVwZGF0ZWQgaG9vay5cbiAgfTtcblxuICBWdWUucHJvdG90eXBlLiRmb3JjZVVwZGF0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgdm0gPSB0aGlzO1xuICAgIGlmICh2bS5fd2F0Y2hlcikge1xuICAgICAgdm0uX3dhdGNoZXIudXBkYXRlKCk7XG4gICAgfVxuICB9O1xuXG4gIFZ1ZS5wcm90b3R5cGUuJGRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHZtID0gdGhpcztcbiAgICBpZiAodm0uX2lzQmVpbmdEZXN0cm95ZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjYWxsSG9vayh2bSwgJ2JlZm9yZURlc3Ryb3knKTtcbiAgICB2bS5faXNCZWluZ0Rlc3Ryb3llZCA9IHRydWU7XG4gICAgLy8gcmVtb3ZlIHNlbGYgZnJvbSBwYXJlbnRcbiAgICB2YXIgcGFyZW50ID0gdm0uJHBhcmVudDtcbiAgICBpZiAocGFyZW50ICYmICFwYXJlbnQuX2lzQmVpbmdEZXN0cm95ZWQgJiYgIXZtLiRvcHRpb25zLmFic3RyYWN0KSB7XG4gICAgICByZW1vdmUocGFyZW50LiRjaGlsZHJlbiwgdm0pO1xuICAgIH1cbiAgICAvLyB0ZWFyZG93biB3YXRjaGVyc1xuICAgIGlmICh2bS5fd2F0Y2hlcikge1xuICAgICAgdm0uX3dhdGNoZXIudGVhcmRvd24oKTtcbiAgICB9XG4gICAgdmFyIGkgPSB2bS5fd2F0Y2hlcnMubGVuZ3RoO1xuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgIHZtLl93YXRjaGVyc1tpXS50ZWFyZG93bigpO1xuICAgIH1cbiAgICAvLyByZW1vdmUgcmVmZXJlbmNlIGZyb20gZGF0YSBvYlxuICAgIC8vIGZyb3plbiBvYmplY3QgbWF5IG5vdCBoYXZlIG9ic2VydmVyLlxuICAgIGlmICh2bS5fZGF0YS5fX29iX18pIHtcbiAgICAgIHZtLl9kYXRhLl9fb2JfXy52bUNvdW50LS07XG4gICAgfVxuICAgIC8vIGNhbGwgdGhlIGxhc3QgaG9vay4uLlxuICAgIHZtLl9pc0Rlc3Ryb3llZCA9IHRydWU7XG4gICAgLy8gaW52b2tlIGRlc3Ryb3kgaG9va3Mgb24gY3VycmVudCByZW5kZXJlZCB0cmVlXG4gICAgdm0uX19wYXRjaF9fKHZtLl92bm9kZSwgbnVsbCk7XG4gICAgLy8gZmlyZSBkZXN0cm95ZWQgaG9va1xuICAgIGNhbGxIb29rKHZtLCAnZGVzdHJveWVkJyk7XG4gICAgLy8gdHVybiBvZmYgYWxsIGluc3RhbmNlIGxpc3RlbmVycy5cbiAgICB2bS4kb2ZmKCk7XG4gICAgLy8gcmVtb3ZlIF9fdnVlX18gcmVmZXJlbmNlXG4gICAgaWYgKHZtLiRlbCkge1xuICAgICAgdm0uJGVsLl9fdnVlX18gPSBudWxsO1xuICAgIH1cbiAgICAvLyByZWxlYXNlIGNpcmN1bGFyIHJlZmVyZW5jZSAoIzY3NTkpXG4gICAgaWYgKHZtLiR2bm9kZSkge1xuICAgICAgdm0uJHZub2RlLnBhcmVudCA9IG51bGw7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBtb3VudENvbXBvbmVudCAoXG4gIHZtLFxuICBlbCxcbiAgaHlkcmF0aW5nXG4pIHtcbiAgdm0uJGVsID0gZWw7XG4gIGlmICghdm0uJG9wdGlvbnMucmVuZGVyKSB7XG4gICAgdm0uJG9wdGlvbnMucmVuZGVyID0gY3JlYXRlRW1wdHlWTm9kZTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICBpZiAoKHZtLiRvcHRpb25zLnRlbXBsYXRlICYmIHZtLiRvcHRpb25zLnRlbXBsYXRlLmNoYXJBdCgwKSAhPT0gJyMnKSB8fFxuICAgICAgICB2bS4kb3B0aW9ucy5lbCB8fCBlbCkge1xuICAgICAgICB3YXJuKFxuICAgICAgICAgICdZb3UgYXJlIHVzaW5nIHRoZSBydW50aW1lLW9ubHkgYnVpbGQgb2YgVnVlIHdoZXJlIHRoZSB0ZW1wbGF0ZSAnICtcbiAgICAgICAgICAnY29tcGlsZXIgaXMgbm90IGF2YWlsYWJsZS4gRWl0aGVyIHByZS1jb21waWxlIHRoZSB0ZW1wbGF0ZXMgaW50byAnICtcbiAgICAgICAgICAncmVuZGVyIGZ1bmN0aW9ucywgb3IgdXNlIHRoZSBjb21waWxlci1pbmNsdWRlZCBidWlsZC4nLFxuICAgICAgICAgIHZtXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3YXJuKFxuICAgICAgICAgICdGYWlsZWQgdG8gbW91bnQgY29tcG9uZW50OiB0ZW1wbGF0ZSBvciByZW5kZXIgZnVuY3Rpb24gbm90IGRlZmluZWQuJyxcbiAgICAgICAgICB2bVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBjYWxsSG9vayh2bSwgJ2JlZm9yZU1vdW50Jyk7XG5cbiAgdmFyIHVwZGF0ZUNvbXBvbmVudDtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGNvbmZpZy5wZXJmb3JtYW5jZSAmJiBtYXJrKSB7XG4gICAgdXBkYXRlQ29tcG9uZW50ID0gZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIG5hbWUgPSB2bS5fbmFtZTtcbiAgICAgIHZhciBpZCA9IHZtLl91aWQ7XG4gICAgICB2YXIgc3RhcnRUYWcgPSBcInZ1ZS1wZXJmLXN0YXJ0OlwiICsgaWQ7XG4gICAgICB2YXIgZW5kVGFnID0gXCJ2dWUtcGVyZi1lbmQ6XCIgKyBpZDtcblxuICAgICAgbWFyayhzdGFydFRhZyk7XG4gICAgICB2YXIgdm5vZGUgPSB2bS5fcmVuZGVyKCk7XG4gICAgICBtYXJrKGVuZFRhZyk7XG4gICAgICBtZWFzdXJlKChcInZ1ZSBcIiArIG5hbWUgKyBcIiByZW5kZXJcIiksIHN0YXJ0VGFnLCBlbmRUYWcpO1xuXG4gICAgICBtYXJrKHN0YXJ0VGFnKTtcbiAgICAgIHZtLl91cGRhdGUodm5vZGUsIGh5ZHJhdGluZyk7XG4gICAgICBtYXJrKGVuZFRhZyk7XG4gICAgICBtZWFzdXJlKChcInZ1ZSBcIiArIG5hbWUgKyBcIiBwYXRjaFwiKSwgc3RhcnRUYWcsIGVuZFRhZyk7XG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICB1cGRhdGVDb21wb25lbnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB2bS5fdXBkYXRlKHZtLl9yZW5kZXIoKSwgaHlkcmF0aW5nKTtcbiAgICB9O1xuICB9XG5cbiAgLy8gd2Ugc2V0IHRoaXMgdG8gdm0uX3dhdGNoZXIgaW5zaWRlIHRoZSB3YXRjaGVyJ3MgY29uc3RydWN0b3JcbiAgLy8gc2luY2UgdGhlIHdhdGNoZXIncyBpbml0aWFsIHBhdGNoIG1heSBjYWxsICRmb3JjZVVwZGF0ZSAoZS5nLiBpbnNpZGUgY2hpbGRcbiAgLy8gY29tcG9uZW50J3MgbW91bnRlZCBob29rKSwgd2hpY2ggcmVsaWVzIG9uIHZtLl93YXRjaGVyIGJlaW5nIGFscmVhZHkgZGVmaW5lZFxuICBuZXcgV2F0Y2hlcih2bSwgdXBkYXRlQ29tcG9uZW50LCBub29wLCB7XG4gICAgYmVmb3JlOiBmdW5jdGlvbiBiZWZvcmUgKCkge1xuICAgICAgaWYgKHZtLl9pc01vdW50ZWQgJiYgIXZtLl9pc0Rlc3Ryb3llZCkge1xuICAgICAgICBjYWxsSG9vayh2bSwgJ2JlZm9yZVVwZGF0ZScpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgdHJ1ZSAvKiBpc1JlbmRlcldhdGNoZXIgKi8pO1xuICBoeWRyYXRpbmcgPSBmYWxzZTtcblxuICAvLyBtYW51YWxseSBtb3VudGVkIGluc3RhbmNlLCBjYWxsIG1vdW50ZWQgb24gc2VsZlxuICAvLyBtb3VudGVkIGlzIGNhbGxlZCBmb3IgcmVuZGVyLWNyZWF0ZWQgY2hpbGQgY29tcG9uZW50cyBpbiBpdHMgaW5zZXJ0ZWQgaG9va1xuICBpZiAodm0uJHZub2RlID09IG51bGwpIHtcbiAgICB2bS5faXNNb3VudGVkID0gdHJ1ZTtcbiAgICBjYWxsSG9vayh2bSwgJ21vdW50ZWQnKTtcbiAgfVxuICByZXR1cm4gdm1cbn1cblxuZnVuY3Rpb24gdXBkYXRlQ2hpbGRDb21wb25lbnQgKFxuICB2bSxcbiAgcHJvcHNEYXRhLFxuICBsaXN0ZW5lcnMsXG4gIHBhcmVudFZub2RlLFxuICByZW5kZXJDaGlsZHJlblxuKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgaXNVcGRhdGluZ0NoaWxkQ29tcG9uZW50ID0gdHJ1ZTtcbiAgfVxuXG4gIC8vIGRldGVybWluZSB3aGV0aGVyIGNvbXBvbmVudCBoYXMgc2xvdCBjaGlsZHJlblxuICAvLyB3ZSBuZWVkIHRvIGRvIHRoaXMgYmVmb3JlIG92ZXJ3cml0aW5nICRvcHRpb25zLl9yZW5kZXJDaGlsZHJlbi5cblxuICAvLyBjaGVjayBpZiB0aGVyZSBhcmUgZHluYW1pYyBzY29wZWRTbG90cyAoaGFuZC13cml0dGVuIG9yIGNvbXBpbGVkIGJ1dCB3aXRoXG4gIC8vIGR5bmFtaWMgc2xvdCBuYW1lcykuIFN0YXRpYyBzY29wZWQgc2xvdHMgY29tcGlsZWQgZnJvbSB0ZW1wbGF0ZSBoYXMgdGhlXG4gIC8vIFwiJHN0YWJsZVwiIG1hcmtlci5cbiAgdmFyIG5ld1Njb3BlZFNsb3RzID0gcGFyZW50Vm5vZGUuZGF0YS5zY29wZWRTbG90cztcbiAgdmFyIG9sZFNjb3BlZFNsb3RzID0gdm0uJHNjb3BlZFNsb3RzO1xuICB2YXIgaGFzRHluYW1pY1Njb3BlZFNsb3QgPSAhIShcbiAgICAobmV3U2NvcGVkU2xvdHMgJiYgIW5ld1Njb3BlZFNsb3RzLiRzdGFibGUpIHx8XG4gICAgKG9sZFNjb3BlZFNsb3RzICE9PSBlbXB0eU9iamVjdCAmJiAhb2xkU2NvcGVkU2xvdHMuJHN0YWJsZSkgfHxcbiAgICAobmV3U2NvcGVkU2xvdHMgJiYgdm0uJHNjb3BlZFNsb3RzLiRrZXkgIT09IG5ld1Njb3BlZFNsb3RzLiRrZXkpIHx8XG4gICAgKCFuZXdTY29wZWRTbG90cyAmJiB2bS4kc2NvcGVkU2xvdHMuJGtleSlcbiAgKTtcblxuICAvLyBBbnkgc3RhdGljIHNsb3QgY2hpbGRyZW4gZnJvbSB0aGUgcGFyZW50IG1heSBoYXZlIGNoYW5nZWQgZHVyaW5nIHBhcmVudCdzXG4gIC8vIHVwZGF0ZS4gRHluYW1pYyBzY29wZWQgc2xvdHMgbWF5IGFsc28gaGF2ZSBjaGFuZ2VkLiBJbiBzdWNoIGNhc2VzLCBhIGZvcmNlZFxuICAvLyB1cGRhdGUgaXMgbmVjZXNzYXJ5IHRvIGVuc3VyZSBjb3JyZWN0bmVzcy5cbiAgdmFyIG5lZWRzRm9yY2VVcGRhdGUgPSAhIShcbiAgICByZW5kZXJDaGlsZHJlbiB8fCAgICAgICAgICAgICAgIC8vIGhhcyBuZXcgc3RhdGljIHNsb3RzXG4gICAgdm0uJG9wdGlvbnMuX3JlbmRlckNoaWxkcmVuIHx8ICAvLyBoYXMgb2xkIHN0YXRpYyBzbG90c1xuICAgIGhhc0R5bmFtaWNTY29wZWRTbG90XG4gICk7XG5cbiAgdm0uJG9wdGlvbnMuX3BhcmVudFZub2RlID0gcGFyZW50Vm5vZGU7XG4gIHZtLiR2bm9kZSA9IHBhcmVudFZub2RlOyAvLyB1cGRhdGUgdm0ncyBwbGFjZWhvbGRlciBub2RlIHdpdGhvdXQgcmUtcmVuZGVyXG5cbiAgaWYgKHZtLl92bm9kZSkgeyAvLyB1cGRhdGUgY2hpbGQgdHJlZSdzIHBhcmVudFxuICAgIHZtLl92bm9kZS5wYXJlbnQgPSBwYXJlbnRWbm9kZTtcbiAgfVxuICB2bS4kb3B0aW9ucy5fcmVuZGVyQ2hpbGRyZW4gPSByZW5kZXJDaGlsZHJlbjtcblxuICAvLyB1cGRhdGUgJGF0dHJzIGFuZCAkbGlzdGVuZXJzIGhhc2hcbiAgLy8gdGhlc2UgYXJlIGFsc28gcmVhY3RpdmUgc28gdGhleSBtYXkgdHJpZ2dlciBjaGlsZCB1cGRhdGUgaWYgdGhlIGNoaWxkXG4gIC8vIHVzZWQgdGhlbSBkdXJpbmcgcmVuZGVyXG4gIHZtLiRhdHRycyA9IHBhcmVudFZub2RlLmRhdGEuYXR0cnMgfHwgZW1wdHlPYmplY3Q7XG4gIHZtLiRsaXN0ZW5lcnMgPSBsaXN0ZW5lcnMgfHwgZW1wdHlPYmplY3Q7XG5cbiAgLy8gdXBkYXRlIHByb3BzXG4gIGlmIChwcm9wc0RhdGEgJiYgdm0uJG9wdGlvbnMucHJvcHMpIHtcbiAgICB0b2dnbGVPYnNlcnZpbmcoZmFsc2UpO1xuICAgIHZhciBwcm9wcyA9IHZtLl9wcm9wcztcbiAgICB2YXIgcHJvcEtleXMgPSB2bS4kb3B0aW9ucy5fcHJvcEtleXMgfHwgW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wS2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGtleSA9IHByb3BLZXlzW2ldO1xuICAgICAgdmFyIHByb3BPcHRpb25zID0gdm0uJG9wdGlvbnMucHJvcHM7IC8vIHd0ZiBmbG93P1xuICAgICAgcHJvcHNba2V5XSA9IHZhbGlkYXRlUHJvcChrZXksIHByb3BPcHRpb25zLCBwcm9wc0RhdGEsIHZtKTtcbiAgICB9XG4gICAgdG9nZ2xlT2JzZXJ2aW5nKHRydWUpO1xuICAgIC8vIGtlZXAgYSBjb3B5IG9mIHJhdyBwcm9wc0RhdGFcbiAgICB2bS4kb3B0aW9ucy5wcm9wc0RhdGEgPSBwcm9wc0RhdGE7XG4gIH1cblxuICAvLyB1cGRhdGUgbGlzdGVuZXJzXG4gIGxpc3RlbmVycyA9IGxpc3RlbmVycyB8fCBlbXB0eU9iamVjdDtcbiAgdmFyIG9sZExpc3RlbmVycyA9IHZtLiRvcHRpb25zLl9wYXJlbnRMaXN0ZW5lcnM7XG4gIHZtLiRvcHRpb25zLl9wYXJlbnRMaXN0ZW5lcnMgPSBsaXN0ZW5lcnM7XG4gIHVwZGF0ZUNvbXBvbmVudExpc3RlbmVycyh2bSwgbGlzdGVuZXJzLCBvbGRMaXN0ZW5lcnMpO1xuXG4gIC8vIHJlc29sdmUgc2xvdHMgKyBmb3JjZSB1cGRhdGUgaWYgaGFzIGNoaWxkcmVuXG4gIGlmIChuZWVkc0ZvcmNlVXBkYXRlKSB7XG4gICAgdm0uJHNsb3RzID0gcmVzb2x2ZVNsb3RzKHJlbmRlckNoaWxkcmVuLCBwYXJlbnRWbm9kZS5jb250ZXh0KTtcbiAgICB2bS4kZm9yY2VVcGRhdGUoKTtcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgaXNVcGRhdGluZ0NoaWxkQ29tcG9uZW50ID0gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNJbkluYWN0aXZlVHJlZSAodm0pIHtcbiAgd2hpbGUgKHZtICYmICh2bSA9IHZtLiRwYXJlbnQpKSB7XG4gICAgaWYgKHZtLl9pbmFjdGl2ZSkgeyByZXR1cm4gdHJ1ZSB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmZ1bmN0aW9uIGFjdGl2YXRlQ2hpbGRDb21wb25lbnQgKHZtLCBkaXJlY3QpIHtcbiAgaWYgKGRpcmVjdCkge1xuICAgIHZtLl9kaXJlY3RJbmFjdGl2ZSA9IGZhbHNlO1xuICAgIGlmIChpc0luSW5hY3RpdmVUcmVlKHZtKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICB9IGVsc2UgaWYgKHZtLl9kaXJlY3RJbmFjdGl2ZSkge1xuICAgIHJldHVyblxuICB9XG4gIGlmICh2bS5faW5hY3RpdmUgfHwgdm0uX2luYWN0aXZlID09PSBudWxsKSB7XG4gICAgdm0uX2luYWN0aXZlID0gZmFsc2U7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2bS4kY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgIGFjdGl2YXRlQ2hpbGRDb21wb25lbnQodm0uJGNoaWxkcmVuW2ldKTtcbiAgICB9XG4gICAgY2FsbEhvb2sodm0sICdhY3RpdmF0ZWQnKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBkZWFjdGl2YXRlQ2hpbGRDb21wb25lbnQgKHZtLCBkaXJlY3QpIHtcbiAgaWYgKGRpcmVjdCkge1xuICAgIHZtLl9kaXJlY3RJbmFjdGl2ZSA9IHRydWU7XG4gICAgaWYgKGlzSW5JbmFjdGl2ZVRyZWUodm0pKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gIH1cbiAgaWYgKCF2bS5faW5hY3RpdmUpIHtcbiAgICB2bS5faW5hY3RpdmUgPSB0cnVlO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdm0uJGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICBkZWFjdGl2YXRlQ2hpbGRDb21wb25lbnQodm0uJGNoaWxkcmVuW2ldKTtcbiAgICB9XG4gICAgY2FsbEhvb2sodm0sICdkZWFjdGl2YXRlZCcpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNhbGxIb29rICh2bSwgaG9vaykge1xuICAvLyAjNzU3MyBkaXNhYmxlIGRlcCBjb2xsZWN0aW9uIHdoZW4gaW52b2tpbmcgbGlmZWN5Y2xlIGhvb2tzXG4gIHB1c2hUYXJnZXQoKTtcbiAgdmFyIGhhbmRsZXJzID0gdm0uJG9wdGlvbnNbaG9va107XG4gIHZhciBpbmZvID0gaG9vayArIFwiIGhvb2tcIjtcbiAgaWYgKGhhbmRsZXJzKSB7XG4gICAgZm9yICh2YXIgaSA9IDAsIGogPSBoYW5kbGVycy5sZW5ndGg7IGkgPCBqOyBpKyspIHtcbiAgICAgIGludm9rZVdpdGhFcnJvckhhbmRsaW5nKGhhbmRsZXJzW2ldLCB2bSwgbnVsbCwgdm0sIGluZm8pO1xuICAgIH1cbiAgfVxuICBpZiAodm0uX2hhc0hvb2tFdmVudCkge1xuICAgIHZtLiRlbWl0KCdob29rOicgKyBob29rKTtcbiAgfVxuICBwb3BUYXJnZXQoKTtcbn1cblxuLyogICovXG5cbnZhciBNQVhfVVBEQVRFX0NPVU5UID0gMTAwO1xuXG52YXIgcXVldWUgPSBbXTtcbnZhciBhY3RpdmF0ZWRDaGlsZHJlbiA9IFtdO1xudmFyIGhhcyA9IHt9O1xudmFyIGNpcmN1bGFyID0ge307XG52YXIgd2FpdGluZyA9IGZhbHNlO1xudmFyIGZsdXNoaW5nID0gZmFsc2U7XG52YXIgaW5kZXggPSAwO1xuXG4vKipcbiAqIFJlc2V0IHRoZSBzY2hlZHVsZXIncyBzdGF0ZS5cbiAqL1xuZnVuY3Rpb24gcmVzZXRTY2hlZHVsZXJTdGF0ZSAoKSB7XG4gIGluZGV4ID0gcXVldWUubGVuZ3RoID0gYWN0aXZhdGVkQ2hpbGRyZW4ubGVuZ3RoID0gMDtcbiAgaGFzID0ge307XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgY2lyY3VsYXIgPSB7fTtcbiAgfVxuICB3YWl0aW5nID0gZmx1c2hpbmcgPSBmYWxzZTtcbn1cblxuLy8gQXN5bmMgZWRnZSBjYXNlICM2NTY2IHJlcXVpcmVzIHNhdmluZyB0aGUgdGltZXN0YW1wIHdoZW4gZXZlbnQgbGlzdGVuZXJzIGFyZVxuLy8gYXR0YWNoZWQuIEhvd2V2ZXIsIGNhbGxpbmcgcGVyZm9ybWFuY2Uubm93KCkgaGFzIGEgcGVyZiBvdmVyaGVhZCBlc3BlY2lhbGx5XG4vLyBpZiB0aGUgcGFnZSBoYXMgdGhvdXNhbmRzIG9mIGV2ZW50IGxpc3RlbmVycy4gSW5zdGVhZCwgd2UgdGFrZSBhIHRpbWVzdGFtcFxuLy8gZXZlcnkgdGltZSB0aGUgc2NoZWR1bGVyIGZsdXNoZXMgYW5kIHVzZSB0aGF0IGZvciBhbGwgZXZlbnQgbGlzdGVuZXJzXG4vLyBhdHRhY2hlZCBkdXJpbmcgdGhhdCBmbHVzaC5cbnZhciBjdXJyZW50Rmx1c2hUaW1lc3RhbXAgPSAwO1xuXG4vLyBBc3luYyBlZGdlIGNhc2UgZml4IHJlcXVpcmVzIHN0b3JpbmcgYW4gZXZlbnQgbGlzdGVuZXIncyBhdHRhY2ggdGltZXN0YW1wLlxudmFyIGdldE5vdyA9IERhdGUubm93O1xuXG4vLyBEZXRlcm1pbmUgd2hhdCBldmVudCB0aW1lc3RhbXAgdGhlIGJyb3dzZXIgaXMgdXNpbmcuIEFubm95aW5nbHksIHRoZVxuLy8gdGltZXN0YW1wIGNhbiBlaXRoZXIgYmUgaGktcmVzIChyZWxhdGl2ZSB0byBwYWdlIGxvYWQpIG9yIGxvdy1yZXNcbi8vIChyZWxhdGl2ZSB0byBVTklYIGVwb2NoKSwgc28gaW4gb3JkZXIgdG8gY29tcGFyZSB0aW1lIHdlIGhhdmUgdG8gdXNlIHRoZVxuLy8gc2FtZSB0aW1lc3RhbXAgdHlwZSB3aGVuIHNhdmluZyB0aGUgZmx1c2ggdGltZXN0YW1wLlxuLy8gQWxsIElFIHZlcnNpb25zIHVzZSBsb3ctcmVzIGV2ZW50IHRpbWVzdGFtcHMsIGFuZCBoYXZlIHByb2JsZW1hdGljIGNsb2NrXG4vLyBpbXBsZW1lbnRhdGlvbnMgKCM5NjMyKVxuaWYgKGluQnJvd3NlciAmJiAhaXNJRSkge1xuICB2YXIgcGVyZm9ybWFuY2UgPSB3aW5kb3cucGVyZm9ybWFuY2U7XG4gIGlmIChcbiAgICBwZXJmb3JtYW5jZSAmJlxuICAgIHR5cGVvZiBwZXJmb3JtYW5jZS5ub3cgPT09ICdmdW5jdGlvbicgJiZcbiAgICBnZXROb3coKSA+IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdFdmVudCcpLnRpbWVTdGFtcFxuICApIHtcbiAgICAvLyBpZiB0aGUgZXZlbnQgdGltZXN0YW1wLCBhbHRob3VnaCBldmFsdWF0ZWQgQUZURVIgdGhlIERhdGUubm93KCksIGlzXG4gICAgLy8gc21hbGxlciB0aGFuIGl0LCBpdCBtZWFucyB0aGUgZXZlbnQgaXMgdXNpbmcgYSBoaS1yZXMgdGltZXN0YW1wLFxuICAgIC8vIGFuZCB3ZSBuZWVkIHRvIHVzZSB0aGUgaGktcmVzIHZlcnNpb24gZm9yIGV2ZW50IGxpc3RlbmVyIHRpbWVzdGFtcHMgYXNcbiAgICAvLyB3ZWxsLlxuICAgIGdldE5vdyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHBlcmZvcm1hbmNlLm5vdygpOyB9O1xuICB9XG59XG5cbi8qKlxuICogRmx1c2ggYm90aCBxdWV1ZXMgYW5kIHJ1biB0aGUgd2F0Y2hlcnMuXG4gKi9cbmZ1bmN0aW9uIGZsdXNoU2NoZWR1bGVyUXVldWUgKCkge1xuICBjdXJyZW50Rmx1c2hUaW1lc3RhbXAgPSBnZXROb3coKTtcbiAgZmx1c2hpbmcgPSB0cnVlO1xuICB2YXIgd2F0Y2hlciwgaWQ7XG5cbiAgLy8gU29ydCBxdWV1ZSBiZWZvcmUgZmx1c2guXG4gIC8vIFRoaXMgZW5zdXJlcyB0aGF0OlxuICAvLyAxLiBDb21wb25lbnRzIGFyZSB1cGRhdGVkIGZyb20gcGFyZW50IHRvIGNoaWxkLiAoYmVjYXVzZSBwYXJlbnQgaXMgYWx3YXlzXG4gIC8vICAgIGNyZWF0ZWQgYmVmb3JlIHRoZSBjaGlsZClcbiAgLy8gMi4gQSBjb21wb25lbnQncyB1c2VyIHdhdGNoZXJzIGFyZSBydW4gYmVmb3JlIGl0cyByZW5kZXIgd2F0Y2hlciAoYmVjYXVzZVxuICAvLyAgICB1c2VyIHdhdGNoZXJzIGFyZSBjcmVhdGVkIGJlZm9yZSB0aGUgcmVuZGVyIHdhdGNoZXIpXG4gIC8vIDMuIElmIGEgY29tcG9uZW50IGlzIGRlc3Ryb3llZCBkdXJpbmcgYSBwYXJlbnQgY29tcG9uZW50J3Mgd2F0Y2hlciBydW4sXG4gIC8vICAgIGl0cyB3YXRjaGVycyBjYW4gYmUgc2tpcHBlZC5cbiAgcXVldWUuc29ydChmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gYS5pZCAtIGIuaWQ7IH0pO1xuXG4gIC8vIGRvIG5vdCBjYWNoZSBsZW5ndGggYmVjYXVzZSBtb3JlIHdhdGNoZXJzIG1pZ2h0IGJlIHB1c2hlZFxuICAvLyBhcyB3ZSBydW4gZXhpc3Rpbmcgd2F0Y2hlcnNcbiAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgcXVldWUubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgd2F0Y2hlciA9IHF1ZXVlW2luZGV4XTtcbiAgICBpZiAod2F0Y2hlci5iZWZvcmUpIHtcbiAgICAgIHdhdGNoZXIuYmVmb3JlKCk7XG4gICAgfVxuICAgIGlkID0gd2F0Y2hlci5pZDtcbiAgICBoYXNbaWRdID0gbnVsbDtcbiAgICB3YXRjaGVyLnJ1bigpO1xuICAgIC8vIGluIGRldiBidWlsZCwgY2hlY2sgYW5kIHN0b3AgY2lyY3VsYXIgdXBkYXRlcy5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBoYXNbaWRdICE9IG51bGwpIHtcbiAgICAgIGNpcmN1bGFyW2lkXSA9IChjaXJjdWxhcltpZF0gfHwgMCkgKyAxO1xuICAgICAgaWYgKGNpcmN1bGFyW2lkXSA+IE1BWF9VUERBVEVfQ09VTlQpIHtcbiAgICAgICAgd2FybihcbiAgICAgICAgICAnWW91IG1heSBoYXZlIGFuIGluZmluaXRlIHVwZGF0ZSBsb29wICcgKyAoXG4gICAgICAgICAgICB3YXRjaGVyLnVzZXJcbiAgICAgICAgICAgICAgPyAoXCJpbiB3YXRjaGVyIHdpdGggZXhwcmVzc2lvbiBcXFwiXCIgKyAod2F0Y2hlci5leHByZXNzaW9uKSArIFwiXFxcIlwiKVxuICAgICAgICAgICAgICA6IFwiaW4gYSBjb21wb25lbnQgcmVuZGVyIGZ1bmN0aW9uLlwiXG4gICAgICAgICAgKSxcbiAgICAgICAgICB3YXRjaGVyLnZtXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8ga2VlcCBjb3BpZXMgb2YgcG9zdCBxdWV1ZXMgYmVmb3JlIHJlc2V0dGluZyBzdGF0ZVxuICB2YXIgYWN0aXZhdGVkUXVldWUgPSBhY3RpdmF0ZWRDaGlsZHJlbi5zbGljZSgpO1xuICB2YXIgdXBkYXRlZFF1ZXVlID0gcXVldWUuc2xpY2UoKTtcblxuICByZXNldFNjaGVkdWxlclN0YXRlKCk7XG5cbiAgLy8gY2FsbCBjb21wb25lbnQgdXBkYXRlZCBhbmQgYWN0aXZhdGVkIGhvb2tzXG4gIGNhbGxBY3RpdmF0ZWRIb29rcyhhY3RpdmF0ZWRRdWV1ZSk7XG4gIGNhbGxVcGRhdGVkSG9va3ModXBkYXRlZFF1ZXVlKTtcblxuICAvLyBkZXZ0b29sIGhvb2tcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChkZXZ0b29scyAmJiBjb25maWcuZGV2dG9vbHMpIHtcbiAgICBkZXZ0b29scy5lbWl0KCdmbHVzaCcpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNhbGxVcGRhdGVkSG9va3MgKHF1ZXVlKSB7XG4gIHZhciBpID0gcXVldWUubGVuZ3RoO1xuICB3aGlsZSAoaS0tKSB7XG4gICAgdmFyIHdhdGNoZXIgPSBxdWV1ZVtpXTtcbiAgICB2YXIgdm0gPSB3YXRjaGVyLnZtO1xuICAgIGlmICh2bS5fd2F0Y2hlciA9PT0gd2F0Y2hlciAmJiB2bS5faXNNb3VudGVkICYmICF2bS5faXNEZXN0cm95ZWQpIHtcbiAgICAgIGNhbGxIb29rKHZtLCAndXBkYXRlZCcpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFF1ZXVlIGEga2VwdC1hbGl2ZSBjb21wb25lbnQgdGhhdCB3YXMgYWN0aXZhdGVkIGR1cmluZyBwYXRjaC5cbiAqIFRoZSBxdWV1ZSB3aWxsIGJlIHByb2Nlc3NlZCBhZnRlciB0aGUgZW50aXJlIHRyZWUgaGFzIGJlZW4gcGF0Y2hlZC5cbiAqL1xuZnVuY3Rpb24gcXVldWVBY3RpdmF0ZWRDb21wb25lbnQgKHZtKSB7XG4gIC8vIHNldHRpbmcgX2luYWN0aXZlIHRvIGZhbHNlIGhlcmUgc28gdGhhdCBhIHJlbmRlciBmdW5jdGlvbiBjYW5cbiAgLy8gcmVseSBvbiBjaGVja2luZyB3aGV0aGVyIGl0J3MgaW4gYW4gaW5hY3RpdmUgdHJlZSAoZS5nLiByb3V0ZXItdmlldylcbiAgdm0uX2luYWN0aXZlID0gZmFsc2U7XG4gIGFjdGl2YXRlZENoaWxkcmVuLnB1c2godm0pO1xufVxuXG5mdW5jdGlvbiBjYWxsQWN0aXZhdGVkSG9va3MgKHF1ZXVlKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcXVldWUubGVuZ3RoOyBpKyspIHtcbiAgICBxdWV1ZVtpXS5faW5hY3RpdmUgPSB0cnVlO1xuICAgIGFjdGl2YXRlQ2hpbGRDb21wb25lbnQocXVldWVbaV0sIHRydWUgLyogdHJ1ZSAqLyk7XG4gIH1cbn1cblxuLyoqXG4gKiBQdXNoIGEgd2F0Y2hlciBpbnRvIHRoZSB3YXRjaGVyIHF1ZXVlLlxuICogSm9icyB3aXRoIGR1cGxpY2F0ZSBJRHMgd2lsbCBiZSBza2lwcGVkIHVubGVzcyBpdCdzXG4gKiBwdXNoZWQgd2hlbiB0aGUgcXVldWUgaXMgYmVpbmcgZmx1c2hlZC5cbiAqL1xuZnVuY3Rpb24gcXVldWVXYXRjaGVyICh3YXRjaGVyKSB7XG4gIHZhciBpZCA9IHdhdGNoZXIuaWQ7XG4gIGlmIChoYXNbaWRdID09IG51bGwpIHtcbiAgICBoYXNbaWRdID0gdHJ1ZTtcbiAgICBpZiAoIWZsdXNoaW5nKSB7XG4gICAgICBxdWV1ZS5wdXNoKHdhdGNoZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpZiBhbHJlYWR5IGZsdXNoaW5nLCBzcGxpY2UgdGhlIHdhdGNoZXIgYmFzZWQgb24gaXRzIGlkXG4gICAgICAvLyBpZiBhbHJlYWR5IHBhc3QgaXRzIGlkLCBpdCB3aWxsIGJlIHJ1biBuZXh0IGltbWVkaWF0ZWx5LlxuICAgICAgdmFyIGkgPSBxdWV1ZS5sZW5ndGggLSAxO1xuICAgICAgd2hpbGUgKGkgPiBpbmRleCAmJiBxdWV1ZVtpXS5pZCA+IHdhdGNoZXIuaWQpIHtcbiAgICAgICAgaS0tO1xuICAgICAgfVxuICAgICAgcXVldWUuc3BsaWNlKGkgKyAxLCAwLCB3YXRjaGVyKTtcbiAgICB9XG4gICAgLy8gcXVldWUgdGhlIGZsdXNoXG4gICAgaWYgKCF3YWl0aW5nKSB7XG4gICAgICB3YWl0aW5nID0gdHJ1ZTtcblxuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgIWNvbmZpZy5hc3luYykge1xuICAgICAgICBmbHVzaFNjaGVkdWxlclF1ZXVlKCk7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgbmV4dFRpY2soZmx1c2hTY2hlZHVsZXJRdWV1ZSk7XG4gICAgfVxuICB9XG59XG5cbi8qICAqL1xuXG5cblxudmFyIHVpZCQyID0gMDtcblxuLyoqXG4gKiBBIHdhdGNoZXIgcGFyc2VzIGFuIGV4cHJlc3Npb24sIGNvbGxlY3RzIGRlcGVuZGVuY2llcyxcbiAqIGFuZCBmaXJlcyBjYWxsYmFjayB3aGVuIHRoZSBleHByZXNzaW9uIHZhbHVlIGNoYW5nZXMuXG4gKiBUaGlzIGlzIHVzZWQgZm9yIGJvdGggdGhlICR3YXRjaCgpIGFwaSBhbmQgZGlyZWN0aXZlcy5cbiAqL1xudmFyIFdhdGNoZXIgPSBmdW5jdGlvbiBXYXRjaGVyIChcbiAgdm0sXG4gIGV4cE9yRm4sXG4gIGNiLFxuICBvcHRpb25zLFxuICBpc1JlbmRlcldhdGNoZXJcbikge1xuICB0aGlzLnZtID0gdm07XG4gIGlmIChpc1JlbmRlcldhdGNoZXIpIHtcbiAgICB2bS5fd2F0Y2hlciA9IHRoaXM7XG4gIH1cbiAgdm0uX3dhdGNoZXJzLnB1c2godGhpcyk7XG4gIC8vIG9wdGlvbnNcbiAgaWYgKG9wdGlvbnMpIHtcbiAgICB0aGlzLmRlZXAgPSAhIW9wdGlvbnMuZGVlcDtcbiAgICB0aGlzLnVzZXIgPSAhIW9wdGlvbnMudXNlcjtcbiAgICB0aGlzLmxhenkgPSAhIW9wdGlvbnMubGF6eTtcbiAgICB0aGlzLnN5bmMgPSAhIW9wdGlvbnMuc3luYztcbiAgICB0aGlzLmJlZm9yZSA9IG9wdGlvbnMuYmVmb3JlO1xuICB9IGVsc2Uge1xuICAgIHRoaXMuZGVlcCA9IHRoaXMudXNlciA9IHRoaXMubGF6eSA9IHRoaXMuc3luYyA9IGZhbHNlO1xuICB9XG4gIHRoaXMuY2IgPSBjYjtcbiAgdGhpcy5pZCA9ICsrdWlkJDI7IC8vIHVpZCBmb3IgYmF0Y2hpbmdcbiAgdGhpcy5hY3RpdmUgPSB0cnVlO1xuICB0aGlzLmRpcnR5ID0gdGhpcy5sYXp5OyAvLyBmb3IgbGF6eSB3YXRjaGVyc1xuICB0aGlzLmRlcHMgPSBbXTtcbiAgdGhpcy5uZXdEZXBzID0gW107XG4gIHRoaXMuZGVwSWRzID0gbmV3IF9TZXQoKTtcbiAgdGhpcy5uZXdEZXBJZHMgPSBuZXcgX1NldCgpO1xuICB0aGlzLmV4cHJlc3Npb24gPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nXG4gICAgPyBleHBPckZuLnRvU3RyaW5nKClcbiAgICA6ICcnO1xuICAvLyBwYXJzZSBleHByZXNzaW9uIGZvciBnZXR0ZXJcbiAgaWYgKHR5cGVvZiBleHBPckZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhpcy5nZXR0ZXIgPSBleHBPckZuO1xuICB9IGVsc2Uge1xuICAgIHRoaXMuZ2V0dGVyID0gcGFyc2VQYXRoKGV4cE9yRm4pO1xuICAgIGlmICghdGhpcy5nZXR0ZXIpIHtcbiAgICAgIHRoaXMuZ2V0dGVyID0gbm9vcDtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgd2FybihcbiAgICAgICAgXCJGYWlsZWQgd2F0Y2hpbmcgcGF0aDogXFxcIlwiICsgZXhwT3JGbiArIFwiXFxcIiBcIiArXG4gICAgICAgICdXYXRjaGVyIG9ubHkgYWNjZXB0cyBzaW1wbGUgZG90LWRlbGltaXRlZCBwYXRocy4gJyArXG4gICAgICAgICdGb3IgZnVsbCBjb250cm9sLCB1c2UgYSBmdW5jdGlvbiBpbnN0ZWFkLicsXG4gICAgICAgIHZtXG4gICAgICApO1xuICAgIH1cbiAgfVxuICB0aGlzLnZhbHVlID0gdGhpcy5sYXp5XG4gICAgPyB1bmRlZmluZWRcbiAgICA6IHRoaXMuZ2V0KCk7XG59O1xuXG4vKipcbiAqIEV2YWx1YXRlIHRoZSBnZXR0ZXIsIGFuZCByZS1jb2xsZWN0IGRlcGVuZGVuY2llcy5cbiAqL1xuV2F0Y2hlci5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gZ2V0ICgpIHtcbiAgcHVzaFRhcmdldCh0aGlzKTtcbiAgdmFyIHZhbHVlO1xuICB2YXIgdm0gPSB0aGlzLnZtO1xuICB0cnkge1xuICAgIHZhbHVlID0gdGhpcy5nZXR0ZXIuY2FsbCh2bSwgdm0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKHRoaXMudXNlcikge1xuICAgICAgaGFuZGxlRXJyb3IoZSwgdm0sIChcImdldHRlciBmb3Igd2F0Y2hlciBcXFwiXCIgKyAodGhpcy5leHByZXNzaW9uKSArIFwiXFxcIlwiKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IGVcbiAgICB9XG4gIH0gZmluYWxseSB7XG4gICAgLy8gXCJ0b3VjaFwiIGV2ZXJ5IHByb3BlcnR5IHNvIHRoZXkgYXJlIGFsbCB0cmFja2VkIGFzXG4gICAgLy8gZGVwZW5kZW5jaWVzIGZvciBkZWVwIHdhdGNoaW5nXG4gICAgaWYgKHRoaXMuZGVlcCkge1xuICAgICAgdHJhdmVyc2UodmFsdWUpO1xuICAgIH1cbiAgICBwb3BUYXJnZXQoKTtcbiAgICB0aGlzLmNsZWFudXBEZXBzKCk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlXG59O1xuXG4vKipcbiAqIEFkZCBhIGRlcGVuZGVuY3kgdG8gdGhpcyBkaXJlY3RpdmUuXG4gKi9cbldhdGNoZXIucHJvdG90eXBlLmFkZERlcCA9IGZ1bmN0aW9uIGFkZERlcCAoZGVwKSB7XG4gIHZhciBpZCA9IGRlcC5pZDtcbiAgaWYgKCF0aGlzLm5ld0RlcElkcy5oYXMoaWQpKSB7XG4gICAgdGhpcy5uZXdEZXBJZHMuYWRkKGlkKTtcbiAgICB0aGlzLm5ld0RlcHMucHVzaChkZXApO1xuICAgIGlmICghdGhpcy5kZXBJZHMuaGFzKGlkKSkge1xuICAgICAgZGVwLmFkZFN1Yih0aGlzKTtcbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogQ2xlYW4gdXAgZm9yIGRlcGVuZGVuY3kgY29sbGVjdGlvbi5cbiAqL1xuV2F0Y2hlci5wcm90b3R5cGUuY2xlYW51cERlcHMgPSBmdW5jdGlvbiBjbGVhbnVwRGVwcyAoKSB7XG4gIHZhciBpID0gdGhpcy5kZXBzLmxlbmd0aDtcbiAgd2hpbGUgKGktLSkge1xuICAgIHZhciBkZXAgPSB0aGlzLmRlcHNbaV07XG4gICAgaWYgKCF0aGlzLm5ld0RlcElkcy5oYXMoZGVwLmlkKSkge1xuICAgICAgZGVwLnJlbW92ZVN1Yih0aGlzKTtcbiAgICB9XG4gIH1cbiAgdmFyIHRtcCA9IHRoaXMuZGVwSWRzO1xuICB0aGlzLmRlcElkcyA9IHRoaXMubmV3RGVwSWRzO1xuICB0aGlzLm5ld0RlcElkcyA9IHRtcDtcbiAgdGhpcy5uZXdEZXBJZHMuY2xlYXIoKTtcbiAgdG1wID0gdGhpcy5kZXBzO1xuICB0aGlzLmRlcHMgPSB0aGlzLm5ld0RlcHM7XG4gIHRoaXMubmV3RGVwcyA9IHRtcDtcbiAgdGhpcy5uZXdEZXBzLmxlbmd0aCA9IDA7XG59O1xuXG4vKipcbiAqIFN1YnNjcmliZXIgaW50ZXJmYWNlLlxuICogV2lsbCBiZSBjYWxsZWQgd2hlbiBhIGRlcGVuZGVuY3kgY2hhbmdlcy5cbiAqL1xuV2F0Y2hlci5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24gdXBkYXRlICgpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKHRoaXMubGF6eSkge1xuICAgIHRoaXMuZGlydHkgPSB0cnVlO1xuICB9IGVsc2UgaWYgKHRoaXMuc3luYykge1xuICAgIHRoaXMucnVuKCk7XG4gIH0gZWxzZSB7XG4gICAgcXVldWVXYXRjaGVyKHRoaXMpO1xuICB9XG59O1xuXG4vKipcbiAqIFNjaGVkdWxlciBqb2IgaW50ZXJmYWNlLlxuICogV2lsbCBiZSBjYWxsZWQgYnkgdGhlIHNjaGVkdWxlci5cbiAqL1xuV2F0Y2hlci5wcm90b3R5cGUucnVuID0gZnVuY3Rpb24gcnVuICgpIHtcbiAgaWYgKHRoaXMuYWN0aXZlKSB7XG4gICAgdmFyIHZhbHVlID0gdGhpcy5nZXQoKTtcbiAgICBpZiAoXG4gICAgICB2YWx1ZSAhPT0gdGhpcy52YWx1ZSB8fFxuICAgICAgLy8gRGVlcCB3YXRjaGVycyBhbmQgd2F0Y2hlcnMgb24gT2JqZWN0L0FycmF5cyBzaG91bGQgZmlyZSBldmVuXG4gICAgICAvLyB3aGVuIHRoZSB2YWx1ZSBpcyB0aGUgc2FtZSwgYmVjYXVzZSB0aGUgdmFsdWUgbWF5XG4gICAgICAvLyBoYXZlIG11dGF0ZWQuXG4gICAgICBpc09iamVjdCh2YWx1ZSkgfHxcbiAgICAgIHRoaXMuZGVlcFxuICAgICkge1xuICAgICAgLy8gc2V0IG5ldyB2YWx1ZVxuICAgICAgdmFyIG9sZFZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgIGlmICh0aGlzLnVzZXIpIHtcbiAgICAgICAgdmFyIGluZm8gPSBcImNhbGxiYWNrIGZvciB3YXRjaGVyIFxcXCJcIiArICh0aGlzLmV4cHJlc3Npb24pICsgXCJcXFwiXCI7XG4gICAgICAgIGludm9rZVdpdGhFcnJvckhhbmRsaW5nKHRoaXMuY2IsIHRoaXMudm0sIFt2YWx1ZSwgb2xkVmFsdWVdLCB0aGlzLnZtLCBpbmZvKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2IuY2FsbCh0aGlzLnZtLCB2YWx1ZSwgb2xkVmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiBFdmFsdWF0ZSB0aGUgdmFsdWUgb2YgdGhlIHdhdGNoZXIuXG4gKiBUaGlzIG9ubHkgZ2V0cyBjYWxsZWQgZm9yIGxhenkgd2F0Y2hlcnMuXG4gKi9cbldhdGNoZXIucHJvdG90eXBlLmV2YWx1YXRlID0gZnVuY3Rpb24gZXZhbHVhdGUgKCkge1xuICB0aGlzLnZhbHVlID0gdGhpcy5nZXQoKTtcbiAgdGhpcy5kaXJ0eSA9IGZhbHNlO1xufTtcblxuLyoqXG4gKiBEZXBlbmQgb24gYWxsIGRlcHMgY29sbGVjdGVkIGJ5IHRoaXMgd2F0Y2hlci5cbiAqL1xuV2F0Y2hlci5wcm90b3R5cGUuZGVwZW5kID0gZnVuY3Rpb24gZGVwZW5kICgpIHtcbiAgdmFyIGkgPSB0aGlzLmRlcHMubGVuZ3RoO1xuICB3aGlsZSAoaS0tKSB7XG4gICAgdGhpcy5kZXBzW2ldLmRlcGVuZCgpO1xuICB9XG59O1xuXG4vKipcbiAqIFJlbW92ZSBzZWxmIGZyb20gYWxsIGRlcGVuZGVuY2llcycgc3Vic2NyaWJlciBsaXN0LlxuICovXG5XYXRjaGVyLnByb3RvdHlwZS50ZWFyZG93biA9IGZ1bmN0aW9uIHRlYXJkb3duICgpIHtcbiAgaWYgKHRoaXMuYWN0aXZlKSB7XG4gICAgLy8gcmVtb3ZlIHNlbGYgZnJvbSB2bSdzIHdhdGNoZXIgbGlzdFxuICAgIC8vIHRoaXMgaXMgYSBzb21ld2hhdCBleHBlbnNpdmUgb3BlcmF0aW9uIHNvIHdlIHNraXAgaXRcbiAgICAvLyBpZiB0aGUgdm0gaXMgYmVpbmcgZGVzdHJveWVkLlxuICAgIGlmICghdGhpcy52bS5faXNCZWluZ0Rlc3Ryb3llZCkge1xuICAgICAgcmVtb3ZlKHRoaXMudm0uX3dhdGNoZXJzLCB0aGlzKTtcbiAgICB9XG4gICAgdmFyIGkgPSB0aGlzLmRlcHMubGVuZ3RoO1xuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgIHRoaXMuZGVwc1tpXS5yZW1vdmVTdWIodGhpcyk7XG4gICAgfVxuICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG4gIH1cbn07XG5cbi8qICAqL1xuXG52YXIgc2hhcmVkUHJvcGVydHlEZWZpbml0aW9uID0ge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBjb25maWd1cmFibGU6IHRydWUsXG4gIGdldDogbm9vcCxcbiAgc2V0OiBub29wXG59O1xuXG5mdW5jdGlvbiBwcm94eSAodGFyZ2V0LCBzb3VyY2VLZXksIGtleSkge1xuICBzaGFyZWRQcm9wZXJ0eURlZmluaXRpb24uZ2V0ID0gZnVuY3Rpb24gcHJveHlHZXR0ZXIgKCkge1xuICAgIHJldHVybiB0aGlzW3NvdXJjZUtleV1ba2V5XVxuICB9O1xuICBzaGFyZWRQcm9wZXJ0eURlZmluaXRpb24uc2V0ID0gZnVuY3Rpb24gcHJveHlTZXR0ZXIgKHZhbCkge1xuICAgIHRoaXNbc291cmNlS2V5XVtrZXldID0gdmFsO1xuICB9O1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNoYXJlZFByb3BlcnR5RGVmaW5pdGlvbik7XG59XG5cbmZ1bmN0aW9uIGluaXRTdGF0ZSAodm0pIHtcbiAgdm0uX3dhdGNoZXJzID0gW107XG4gIHZhciBvcHRzID0gdm0uJG9wdGlvbnM7XG4gIGlmIChvcHRzLnByb3BzKSB7IGluaXRQcm9wcyh2bSwgb3B0cy5wcm9wcyk7IH1cbiAgaWYgKG9wdHMubWV0aG9kcykgeyBpbml0TWV0aG9kcyh2bSwgb3B0cy5tZXRob2RzKTsgfVxuICBpZiAob3B0cy5kYXRhKSB7XG4gICAgaW5pdERhdGEodm0pO1xuICB9IGVsc2Uge1xuICAgIG9ic2VydmUodm0uX2RhdGEgPSB7fSwgdHJ1ZSAvKiBhc1Jvb3REYXRhICovKTtcbiAgfVxuICBpZiAob3B0cy5jb21wdXRlZCkgeyBpbml0Q29tcHV0ZWQodm0sIG9wdHMuY29tcHV0ZWQpOyB9XG4gIGlmIChvcHRzLndhdGNoICYmIG9wdHMud2F0Y2ggIT09IG5hdGl2ZVdhdGNoKSB7XG4gICAgaW5pdFdhdGNoKHZtLCBvcHRzLndhdGNoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbml0UHJvcHMgKHZtLCBwcm9wc09wdGlvbnMpIHtcbiAgdmFyIHByb3BzRGF0YSA9IHZtLiRvcHRpb25zLnByb3BzRGF0YSB8fCB7fTtcbiAgdmFyIHByb3BzID0gdm0uX3Byb3BzID0ge307XG4gIC8vIGNhY2hlIHByb3Aga2V5cyBzbyB0aGF0IGZ1dHVyZSBwcm9wcyB1cGRhdGVzIGNhbiBpdGVyYXRlIHVzaW5nIEFycmF5XG4gIC8vIGluc3RlYWQgb2YgZHluYW1pYyBvYmplY3Qga2V5IGVudW1lcmF0aW9uLlxuICB2YXIga2V5cyA9IHZtLiRvcHRpb25zLl9wcm9wS2V5cyA9IFtdO1xuICB2YXIgaXNSb290ID0gIXZtLiRwYXJlbnQ7XG4gIC8vIHJvb3QgaW5zdGFuY2UgcHJvcHMgc2hvdWxkIGJlIGNvbnZlcnRlZFxuICBpZiAoIWlzUm9vdCkge1xuICAgIHRvZ2dsZU9ic2VydmluZyhmYWxzZSk7XG4gIH1cbiAgdmFyIGxvb3AgPSBmdW5jdGlvbiAoIGtleSApIHtcbiAgICBrZXlzLnB1c2goa2V5KTtcbiAgICB2YXIgdmFsdWUgPSB2YWxpZGF0ZVByb3Aoa2V5LCBwcm9wc09wdGlvbnMsIHByb3BzRGF0YSwgdm0pO1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHZhciBoeXBoZW5hdGVkS2V5ID0gaHlwaGVuYXRlKGtleSk7XG4gICAgICBpZiAoaXNSZXNlcnZlZEF0dHJpYnV0ZShoeXBoZW5hdGVkS2V5KSB8fFxuICAgICAgICAgIGNvbmZpZy5pc1Jlc2VydmVkQXR0cihoeXBoZW5hdGVkS2V5KSkge1xuICAgICAgICB3YXJuKFxuICAgICAgICAgIChcIlxcXCJcIiArIGh5cGhlbmF0ZWRLZXkgKyBcIlxcXCIgaXMgYSByZXNlcnZlZCBhdHRyaWJ1dGUgYW5kIGNhbm5vdCBiZSB1c2VkIGFzIGNvbXBvbmVudCBwcm9wLlwiKSxcbiAgICAgICAgICB2bVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgZGVmaW5lUmVhY3RpdmUkJDEocHJvcHMsIGtleSwgdmFsdWUsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCFpc1Jvb3QgJiYgIWlzVXBkYXRpbmdDaGlsZENvbXBvbmVudCkge1xuICAgICAgICAgIHdhcm4oXG4gICAgICAgICAgICBcIkF2b2lkIG11dGF0aW5nIGEgcHJvcCBkaXJlY3RseSBzaW5jZSB0aGUgdmFsdWUgd2lsbCBiZSBcIiArXG4gICAgICAgICAgICBcIm92ZXJ3cml0dGVuIHdoZW5ldmVyIHRoZSBwYXJlbnQgY29tcG9uZW50IHJlLXJlbmRlcnMuIFwiICtcbiAgICAgICAgICAgIFwiSW5zdGVhZCwgdXNlIGEgZGF0YSBvciBjb21wdXRlZCBwcm9wZXJ0eSBiYXNlZCBvbiB0aGUgcHJvcCdzIFwiICtcbiAgICAgICAgICAgIFwidmFsdWUuIFByb3AgYmVpbmcgbXV0YXRlZDogXFxcIlwiICsga2V5ICsgXCJcXFwiXCIsXG4gICAgICAgICAgICB2bVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWZpbmVSZWFjdGl2ZSQkMShwcm9wcywga2V5LCB2YWx1ZSk7XG4gICAgfVxuICAgIC8vIHN0YXRpYyBwcm9wcyBhcmUgYWxyZWFkeSBwcm94aWVkIG9uIHRoZSBjb21wb25lbnQncyBwcm90b3R5cGVcbiAgICAvLyBkdXJpbmcgVnVlLmV4dGVuZCgpLiBXZSBvbmx5IG5lZWQgdG8gcHJveHkgcHJvcHMgZGVmaW5lZCBhdFxuICAgIC8vIGluc3RhbnRpYXRpb24gaGVyZS5cbiAgICBpZiAoIShrZXkgaW4gdm0pKSB7XG4gICAgICBwcm94eSh2bSwgXCJfcHJvcHNcIiwga2V5KTtcbiAgICB9XG4gIH07XG5cbiAgZm9yICh2YXIga2V5IGluIHByb3BzT3B0aW9ucykgbG9vcCgga2V5ICk7XG4gIHRvZ2dsZU9ic2VydmluZyh0cnVlKTtcbn1cblxuZnVuY3Rpb24gaW5pdERhdGEgKHZtKSB7XG4gIHZhciBkYXRhID0gdm0uJG9wdGlvbnMuZGF0YTtcbiAgZGF0YSA9IHZtLl9kYXRhID0gdHlwZW9mIGRhdGEgPT09ICdmdW5jdGlvbidcbiAgICA/IGdldERhdGEoZGF0YSwgdm0pXG4gICAgOiBkYXRhIHx8IHt9O1xuICBpZiAoIWlzUGxhaW5PYmplY3QoZGF0YSkpIHtcbiAgICBkYXRhID0ge307XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB3YXJuKFxuICAgICAgJ2RhdGEgZnVuY3Rpb25zIHNob3VsZCByZXR1cm4gYW4gb2JqZWN0OlxcbicgK1xuICAgICAgJ2h0dHBzOi8vdnVlanMub3JnL3YyL2d1aWRlL2NvbXBvbmVudHMuaHRtbCNkYXRhLU11c3QtQmUtYS1GdW5jdGlvbicsXG4gICAgICB2bVxuICAgICk7XG4gIH1cbiAgLy8gcHJveHkgZGF0YSBvbiBpbnN0YW5jZVxuICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGRhdGEpO1xuICB2YXIgcHJvcHMgPSB2bS4kb3B0aW9ucy5wcm9wcztcbiAgdmFyIG1ldGhvZHMgPSB2bS4kb3B0aW9ucy5tZXRob2RzO1xuICB2YXIgaSA9IGtleXMubGVuZ3RoO1xuICB3aGlsZSAoaS0tKSB7XG4gICAgdmFyIGtleSA9IGtleXNbaV07XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGlmIChtZXRob2RzICYmIGhhc093bihtZXRob2RzLCBrZXkpKSB7XG4gICAgICAgIHdhcm4oXG4gICAgICAgICAgKFwiTWV0aG9kIFxcXCJcIiArIGtleSArIFwiXFxcIiBoYXMgYWxyZWFkeSBiZWVuIGRlZmluZWQgYXMgYSBkYXRhIHByb3BlcnR5LlwiKSxcbiAgICAgICAgICB2bVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvcHMgJiYgaGFzT3duKHByb3BzLCBrZXkpKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICAgIFwiVGhlIGRhdGEgcHJvcGVydHkgXFxcIlwiICsga2V5ICsgXCJcXFwiIGlzIGFscmVhZHkgZGVjbGFyZWQgYXMgYSBwcm9wLiBcIiArXG4gICAgICAgIFwiVXNlIHByb3AgZGVmYXVsdCB2YWx1ZSBpbnN0ZWFkLlwiLFxuICAgICAgICB2bVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKCFpc1Jlc2VydmVkKGtleSkpIHtcbiAgICAgIHByb3h5KHZtLCBcIl9kYXRhXCIsIGtleSk7XG4gICAgfVxuICB9XG4gIC8vIG9ic2VydmUgZGF0YVxuICBvYnNlcnZlKGRhdGEsIHRydWUgLyogYXNSb290RGF0YSAqLyk7XG59XG5cbmZ1bmN0aW9uIGdldERhdGEgKGRhdGEsIHZtKSB7XG4gIC8vICM3NTczIGRpc2FibGUgZGVwIGNvbGxlY3Rpb24gd2hlbiBpbnZva2luZyBkYXRhIGdldHRlcnNcbiAgcHVzaFRhcmdldCgpO1xuICB0cnkge1xuICAgIHJldHVybiBkYXRhLmNhbGwodm0sIHZtKVxuICB9IGNhdGNoIChlKSB7XG4gICAgaGFuZGxlRXJyb3IoZSwgdm0sIFwiZGF0YSgpXCIpO1xuICAgIHJldHVybiB7fVxuICB9IGZpbmFsbHkge1xuICAgIHBvcFRhcmdldCgpO1xuICB9XG59XG5cbnZhciBjb21wdXRlZFdhdGNoZXJPcHRpb25zID0geyBsYXp5OiB0cnVlIH07XG5cbmZ1bmN0aW9uIGluaXRDb21wdXRlZCAodm0sIGNvbXB1dGVkKSB7XG4gIC8vICRmbG93LWRpc2FibGUtbGluZVxuICB2YXIgd2F0Y2hlcnMgPSB2bS5fY29tcHV0ZWRXYXRjaGVycyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIC8vIGNvbXB1dGVkIHByb3BlcnRpZXMgYXJlIGp1c3QgZ2V0dGVycyBkdXJpbmcgU1NSXG4gIHZhciBpc1NTUiA9IGlzU2VydmVyUmVuZGVyaW5nKCk7XG5cbiAgZm9yICh2YXIga2V5IGluIGNvbXB1dGVkKSB7XG4gICAgdmFyIHVzZXJEZWYgPSBjb21wdXRlZFtrZXldO1xuICAgIHZhciBnZXR0ZXIgPSB0eXBlb2YgdXNlckRlZiA9PT0gJ2Z1bmN0aW9uJyA/IHVzZXJEZWYgOiB1c2VyRGVmLmdldDtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBnZXR0ZXIgPT0gbnVsbCkge1xuICAgICAgd2FybihcbiAgICAgICAgKFwiR2V0dGVyIGlzIG1pc3NpbmcgZm9yIGNvbXB1dGVkIHByb3BlcnR5IFxcXCJcIiArIGtleSArIFwiXFxcIi5cIiksXG4gICAgICAgIHZtXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghaXNTU1IpIHtcbiAgICAgIC8vIGNyZWF0ZSBpbnRlcm5hbCB3YXRjaGVyIGZvciB0aGUgY29tcHV0ZWQgcHJvcGVydHkuXG4gICAgICB3YXRjaGVyc1trZXldID0gbmV3IFdhdGNoZXIoXG4gICAgICAgIHZtLFxuICAgICAgICBnZXR0ZXIgfHwgbm9vcCxcbiAgICAgICAgbm9vcCxcbiAgICAgICAgY29tcHV0ZWRXYXRjaGVyT3B0aW9uc1xuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBjb21wb25lbnQtZGVmaW5lZCBjb21wdXRlZCBwcm9wZXJ0aWVzIGFyZSBhbHJlYWR5IGRlZmluZWQgb24gdGhlXG4gICAgLy8gY29tcG9uZW50IHByb3RvdHlwZS4gV2Ugb25seSBuZWVkIHRvIGRlZmluZSBjb21wdXRlZCBwcm9wZXJ0aWVzIGRlZmluZWRcbiAgICAvLyBhdCBpbnN0YW50aWF0aW9uIGhlcmUuXG4gICAgaWYgKCEoa2V5IGluIHZtKSkge1xuICAgICAgZGVmaW5lQ29tcHV0ZWQodm0sIGtleSwgdXNlckRlZik7XG4gICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBpZiAoa2V5IGluIHZtLiRkYXRhKSB7XG4gICAgICAgIHdhcm4oKFwiVGhlIGNvbXB1dGVkIHByb3BlcnR5IFxcXCJcIiArIGtleSArIFwiXFxcIiBpcyBhbHJlYWR5IGRlZmluZWQgaW4gZGF0YS5cIiksIHZtKTtcbiAgICAgIH0gZWxzZSBpZiAodm0uJG9wdGlvbnMucHJvcHMgJiYga2V5IGluIHZtLiRvcHRpb25zLnByb3BzKSB7XG4gICAgICAgIHdhcm4oKFwiVGhlIGNvbXB1dGVkIHByb3BlcnR5IFxcXCJcIiArIGtleSArIFwiXFxcIiBpcyBhbHJlYWR5IGRlZmluZWQgYXMgYSBwcm9wLlwiKSwgdm0pO1xuICAgICAgfSBlbHNlIGlmICh2bS4kb3B0aW9ucy5tZXRob2RzICYmIGtleSBpbiB2bS4kb3B0aW9ucy5tZXRob2RzKSB7XG4gICAgICAgIHdhcm4oKFwiVGhlIGNvbXB1dGVkIHByb3BlcnR5IFxcXCJcIiArIGtleSArIFwiXFxcIiBpcyBhbHJlYWR5IGRlZmluZWQgYXMgYSBtZXRob2QuXCIpLCB2bSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGRlZmluZUNvbXB1dGVkIChcbiAgdGFyZ2V0LFxuICBrZXksXG4gIHVzZXJEZWZcbikge1xuICB2YXIgc2hvdWxkQ2FjaGUgPSAhaXNTZXJ2ZXJSZW5kZXJpbmcoKTtcbiAgaWYgKHR5cGVvZiB1c2VyRGVmID09PSAnZnVuY3Rpb24nKSB7XG4gICAgc2hhcmVkUHJvcGVydHlEZWZpbml0aW9uLmdldCA9IHNob3VsZENhY2hlXG4gICAgICA/IGNyZWF0ZUNvbXB1dGVkR2V0dGVyKGtleSlcbiAgICAgIDogY3JlYXRlR2V0dGVySW52b2tlcih1c2VyRGVmKTtcbiAgICBzaGFyZWRQcm9wZXJ0eURlZmluaXRpb24uc2V0ID0gbm9vcDtcbiAgfSBlbHNlIHtcbiAgICBzaGFyZWRQcm9wZXJ0eURlZmluaXRpb24uZ2V0ID0gdXNlckRlZi5nZXRcbiAgICAgID8gc2hvdWxkQ2FjaGUgJiYgdXNlckRlZi5jYWNoZSAhPT0gZmFsc2VcbiAgICAgICAgPyBjcmVhdGVDb21wdXRlZEdldHRlcihrZXkpXG4gICAgICAgIDogY3JlYXRlR2V0dGVySW52b2tlcih1c2VyRGVmLmdldClcbiAgICAgIDogbm9vcDtcbiAgICBzaGFyZWRQcm9wZXJ0eURlZmluaXRpb24uc2V0ID0gdXNlckRlZi5zZXQgfHwgbm9vcDtcbiAgfVxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJlxuICAgICAgc2hhcmVkUHJvcGVydHlEZWZpbml0aW9uLnNldCA9PT0gbm9vcCkge1xuICAgIHNoYXJlZFByb3BlcnR5RGVmaW5pdGlvbi5zZXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB3YXJuKFxuICAgICAgICAoXCJDb21wdXRlZCBwcm9wZXJ0eSBcXFwiXCIgKyBrZXkgKyBcIlxcXCIgd2FzIGFzc2lnbmVkIHRvIGJ1dCBpdCBoYXMgbm8gc2V0dGVyLlwiKSxcbiAgICAgICAgdGhpc1xuICAgICAgKTtcbiAgICB9O1xuICB9XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgc2hhcmVkUHJvcGVydHlEZWZpbml0aW9uKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ29tcHV0ZWRHZXR0ZXIgKGtleSkge1xuICByZXR1cm4gZnVuY3Rpb24gY29tcHV0ZWRHZXR0ZXIgKCkge1xuICAgIHZhciB3YXRjaGVyID0gdGhpcy5fY29tcHV0ZWRXYXRjaGVycyAmJiB0aGlzLl9jb21wdXRlZFdhdGNoZXJzW2tleV07XG4gICAgaWYgKHdhdGNoZXIpIHtcbiAgICAgIGlmICh3YXRjaGVyLmRpcnR5KSB7XG4gICAgICAgIHdhdGNoZXIuZXZhbHVhdGUoKTtcbiAgICAgIH1cbiAgICAgIGlmIChEZXAudGFyZ2V0KSB7XG4gICAgICAgIHdhdGNoZXIuZGVwZW5kKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gd2F0Y2hlci52YWx1ZVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVHZXR0ZXJJbnZva2VyKGZuKSB7XG4gIHJldHVybiBmdW5jdGlvbiBjb21wdXRlZEdldHRlciAoKSB7XG4gICAgcmV0dXJuIGZuLmNhbGwodGhpcywgdGhpcylcbiAgfVxufVxuXG5mdW5jdGlvbiBpbml0TWV0aG9kcyAodm0sIG1ldGhvZHMpIHtcbiAgdmFyIHByb3BzID0gdm0uJG9wdGlvbnMucHJvcHM7XG4gIGZvciAodmFyIGtleSBpbiBtZXRob2RzKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGlmICh0eXBlb2YgbWV0aG9kc1trZXldICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHdhcm4oXG4gICAgICAgICAgXCJNZXRob2QgXFxcIlwiICsga2V5ICsgXCJcXFwiIGhhcyB0eXBlIFxcXCJcIiArICh0eXBlb2YgbWV0aG9kc1trZXldKSArIFwiXFxcIiBpbiB0aGUgY29tcG9uZW50IGRlZmluaXRpb24uIFwiICtcbiAgICAgICAgICBcIkRpZCB5b3UgcmVmZXJlbmNlIHRoZSBmdW5jdGlvbiBjb3JyZWN0bHk/XCIsXG4gICAgICAgICAgdm1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcyAmJiBoYXNPd24ocHJvcHMsIGtleSkpIHtcbiAgICAgICAgd2FybihcbiAgICAgICAgICAoXCJNZXRob2QgXFxcIlwiICsga2V5ICsgXCJcXFwiIGhhcyBhbHJlYWR5IGJlZW4gZGVmaW5lZCBhcyBhIHByb3AuXCIpLFxuICAgICAgICAgIHZtXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAoKGtleSBpbiB2bSkgJiYgaXNSZXNlcnZlZChrZXkpKSB7XG4gICAgICAgIHdhcm4oXG4gICAgICAgICAgXCJNZXRob2QgXFxcIlwiICsga2V5ICsgXCJcXFwiIGNvbmZsaWN0cyB3aXRoIGFuIGV4aXN0aW5nIFZ1ZSBpbnN0YW5jZSBtZXRob2QuIFwiICtcbiAgICAgICAgICBcIkF2b2lkIGRlZmluaW5nIGNvbXBvbmVudCBtZXRob2RzIHRoYXQgc3RhcnQgd2l0aCBfIG9yICQuXCJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdm1ba2V5XSA9IHR5cGVvZiBtZXRob2RzW2tleV0gIT09ICdmdW5jdGlvbicgPyBub29wIDogYmluZChtZXRob2RzW2tleV0sIHZtKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbml0V2F0Y2ggKHZtLCB3YXRjaCkge1xuICBmb3IgKHZhciBrZXkgaW4gd2F0Y2gpIHtcbiAgICB2YXIgaGFuZGxlciA9IHdhdGNoW2tleV07XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaGFuZGxlcikpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaGFuZGxlci5sZW5ndGg7IGkrKykge1xuICAgICAgICBjcmVhdGVXYXRjaGVyKHZtLCBrZXksIGhhbmRsZXJbaV0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjcmVhdGVXYXRjaGVyKHZtLCBrZXksIGhhbmRsZXIpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVXYXRjaGVyIChcbiAgdm0sXG4gIGV4cE9yRm4sXG4gIGhhbmRsZXIsXG4gIG9wdGlvbnNcbikge1xuICBpZiAoaXNQbGFpbk9iamVjdChoYW5kbGVyKSkge1xuICAgIG9wdGlvbnMgPSBoYW5kbGVyO1xuICAgIGhhbmRsZXIgPSBoYW5kbGVyLmhhbmRsZXI7XG4gIH1cbiAgaWYgKHR5cGVvZiBoYW5kbGVyID09PSAnc3RyaW5nJykge1xuICAgIGhhbmRsZXIgPSB2bVtoYW5kbGVyXTtcbiAgfVxuICByZXR1cm4gdm0uJHdhdGNoKGV4cE9yRm4sIGhhbmRsZXIsIG9wdGlvbnMpXG59XG5cbmZ1bmN0aW9uIHN0YXRlTWl4aW4gKFZ1ZSkge1xuICAvLyBmbG93IHNvbWVob3cgaGFzIHByb2JsZW1zIHdpdGggZGlyZWN0bHkgZGVjbGFyZWQgZGVmaW5pdGlvbiBvYmplY3RcbiAgLy8gd2hlbiB1c2luZyBPYmplY3QuZGVmaW5lUHJvcGVydHksIHNvIHdlIGhhdmUgdG8gcHJvY2VkdXJhbGx5IGJ1aWxkIHVwXG4gIC8vIHRoZSBvYmplY3QgaGVyZS5cbiAgdmFyIGRhdGFEZWYgPSB7fTtcbiAgZGF0YURlZi5nZXQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLl9kYXRhIH07XG4gIHZhciBwcm9wc0RlZiA9IHt9O1xuICBwcm9wc0RlZi5nZXQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLl9wcm9wcyB9O1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGRhdGFEZWYuc2V0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgd2FybihcbiAgICAgICAgJ0F2b2lkIHJlcGxhY2luZyBpbnN0YW5jZSByb290ICRkYXRhLiAnICtcbiAgICAgICAgJ1VzZSBuZXN0ZWQgZGF0YSBwcm9wZXJ0aWVzIGluc3RlYWQuJyxcbiAgICAgICAgdGhpc1xuICAgICAgKTtcbiAgICB9O1xuICAgIHByb3BzRGVmLnNldCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHdhcm4oXCIkcHJvcHMgaXMgcmVhZG9ubHkuXCIsIHRoaXMpO1xuICAgIH07XG4gIH1cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFZ1ZS5wcm90b3R5cGUsICckZGF0YScsIGRhdGFEZWYpO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoVnVlLnByb3RvdHlwZSwgJyRwcm9wcycsIHByb3BzRGVmKTtcblxuICBWdWUucHJvdG90eXBlLiRzZXQgPSBzZXQ7XG4gIFZ1ZS5wcm90b3R5cGUuJGRlbGV0ZSA9IGRlbDtcblxuICBWdWUucHJvdG90eXBlLiR3YXRjaCA9IGZ1bmN0aW9uIChcbiAgICBleHBPckZuLFxuICAgIGNiLFxuICAgIG9wdGlvbnNcbiAgKSB7XG4gICAgdmFyIHZtID0gdGhpcztcbiAgICBpZiAoaXNQbGFpbk9iamVjdChjYikpIHtcbiAgICAgIHJldHVybiBjcmVhdGVXYXRjaGVyKHZtLCBleHBPckZuLCBjYiwgb3B0aW9ucylcbiAgICB9XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgb3B0aW9ucy51c2VyID0gdHJ1ZTtcbiAgICB2YXIgd2F0Y2hlciA9IG5ldyBXYXRjaGVyKHZtLCBleHBPckZuLCBjYiwgb3B0aW9ucyk7XG4gICAgaWYgKG9wdGlvbnMuaW1tZWRpYXRlKSB7XG4gICAgICB2YXIgaW5mbyA9IFwiY2FsbGJhY2sgZm9yIGltbWVkaWF0ZSB3YXRjaGVyIFxcXCJcIiArICh3YXRjaGVyLmV4cHJlc3Npb24pICsgXCJcXFwiXCI7XG4gICAgICBwdXNoVGFyZ2V0KCk7XG4gICAgICBpbnZva2VXaXRoRXJyb3JIYW5kbGluZyhjYiwgdm0sIFt3YXRjaGVyLnZhbHVlXSwgdm0sIGluZm8pO1xuICAgICAgcG9wVGFyZ2V0KCk7XG4gICAgfVxuICAgIHJldHVybiBmdW5jdGlvbiB1bndhdGNoRm4gKCkge1xuICAgICAgd2F0Y2hlci50ZWFyZG93bigpO1xuICAgIH1cbiAgfTtcbn1cblxuLyogICovXG5cbnZhciB1aWQkMyA9IDA7XG5cbmZ1bmN0aW9uIGluaXRNaXhpbiAoVnVlKSB7XG4gIFZ1ZS5wcm90b3R5cGUuX2luaXQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgIHZhciB2bSA9IHRoaXM7XG4gICAgLy8gYSB1aWRcbiAgICB2bS5fdWlkID0gdWlkJDMrKztcblxuICAgIHZhciBzdGFydFRhZywgZW5kVGFnO1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGNvbmZpZy5wZXJmb3JtYW5jZSAmJiBtYXJrKSB7XG4gICAgICBzdGFydFRhZyA9IFwidnVlLXBlcmYtc3RhcnQ6XCIgKyAodm0uX3VpZCk7XG4gICAgICBlbmRUYWcgPSBcInZ1ZS1wZXJmLWVuZDpcIiArICh2bS5fdWlkKTtcbiAgICAgIG1hcmsoc3RhcnRUYWcpO1xuICAgIH1cblxuICAgIC8vIGEgZmxhZyB0byBhdm9pZCB0aGlzIGJlaW5nIG9ic2VydmVkXG4gICAgdm0uX2lzVnVlID0gdHJ1ZTtcbiAgICAvLyBtZXJnZSBvcHRpb25zXG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5faXNDb21wb25lbnQpIHtcbiAgICAgIC8vIG9wdGltaXplIGludGVybmFsIGNvbXBvbmVudCBpbnN0YW50aWF0aW9uXG4gICAgICAvLyBzaW5jZSBkeW5hbWljIG9wdGlvbnMgbWVyZ2luZyBpcyBwcmV0dHkgc2xvdywgYW5kIG5vbmUgb2YgdGhlXG4gICAgICAvLyBpbnRlcm5hbCBjb21wb25lbnQgb3B0aW9ucyBuZWVkcyBzcGVjaWFsIHRyZWF0bWVudC5cbiAgICAgIGluaXRJbnRlcm5hbENvbXBvbmVudCh2bSwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZtLiRvcHRpb25zID0gbWVyZ2VPcHRpb25zKFxuICAgICAgICByZXNvbHZlQ29uc3RydWN0b3JPcHRpb25zKHZtLmNvbnN0cnVjdG9yKSxcbiAgICAgICAgb3B0aW9ucyB8fCB7fSxcbiAgICAgICAgdm1cbiAgICAgICk7XG4gICAgfVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGluaXRQcm94eSh2bSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZtLl9yZW5kZXJQcm94eSA9IHZtO1xuICAgIH1cbiAgICAvLyBleHBvc2UgcmVhbCBzZWxmXG4gICAgdm0uX3NlbGYgPSB2bTtcbiAgICBpbml0TGlmZWN5Y2xlKHZtKTtcbiAgICBpbml0RXZlbnRzKHZtKTtcbiAgICBpbml0UmVuZGVyKHZtKTtcbiAgICBjYWxsSG9vayh2bSwgJ2JlZm9yZUNyZWF0ZScpO1xuICAgIGluaXRJbmplY3Rpb25zKHZtKTsgLy8gcmVzb2x2ZSBpbmplY3Rpb25zIGJlZm9yZSBkYXRhL3Byb3BzXG4gICAgaW5pdFN0YXRlKHZtKTtcbiAgICBpbml0UHJvdmlkZSh2bSk7IC8vIHJlc29sdmUgcHJvdmlkZSBhZnRlciBkYXRhL3Byb3BzXG4gICAgY2FsbEhvb2sodm0sICdjcmVhdGVkJyk7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBjb25maWcucGVyZm9ybWFuY2UgJiYgbWFyaykge1xuICAgICAgdm0uX25hbWUgPSBmb3JtYXRDb21wb25lbnROYW1lKHZtLCBmYWxzZSk7XG4gICAgICBtYXJrKGVuZFRhZyk7XG4gICAgICBtZWFzdXJlKChcInZ1ZSBcIiArICh2bS5fbmFtZSkgKyBcIiBpbml0XCIpLCBzdGFydFRhZywgZW5kVGFnKTtcbiAgICB9XG5cbiAgICBpZiAodm0uJG9wdGlvbnMuZWwpIHtcbiAgICAgIHZtLiRtb3VudCh2bS4kb3B0aW9ucy5lbCk7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBpbml0SW50ZXJuYWxDb21wb25lbnQgKHZtLCBvcHRpb25zKSB7XG4gIHZhciBvcHRzID0gdm0uJG9wdGlvbnMgPSBPYmplY3QuY3JlYXRlKHZtLmNvbnN0cnVjdG9yLm9wdGlvbnMpO1xuICAvLyBkb2luZyB0aGlzIGJlY2F1c2UgaXQncyBmYXN0ZXIgdGhhbiBkeW5hbWljIGVudW1lcmF0aW9uLlxuICB2YXIgcGFyZW50Vm5vZGUgPSBvcHRpb25zLl9wYXJlbnRWbm9kZTtcbiAgb3B0cy5wYXJlbnQgPSBvcHRpb25zLnBhcmVudDtcbiAgb3B0cy5fcGFyZW50Vm5vZGUgPSBwYXJlbnRWbm9kZTtcblxuICB2YXIgdm5vZGVDb21wb25lbnRPcHRpb25zID0gcGFyZW50Vm5vZGUuY29tcG9uZW50T3B0aW9ucztcbiAgb3B0cy5wcm9wc0RhdGEgPSB2bm9kZUNvbXBvbmVudE9wdGlvbnMucHJvcHNEYXRhO1xuICBvcHRzLl9wYXJlbnRMaXN0ZW5lcnMgPSB2bm9kZUNvbXBvbmVudE9wdGlvbnMubGlzdGVuZXJzO1xuICBvcHRzLl9yZW5kZXJDaGlsZHJlbiA9IHZub2RlQ29tcG9uZW50T3B0aW9ucy5jaGlsZHJlbjtcbiAgb3B0cy5fY29tcG9uZW50VGFnID0gdm5vZGVDb21wb25lbnRPcHRpb25zLnRhZztcblxuICBpZiAob3B0aW9ucy5yZW5kZXIpIHtcbiAgICBvcHRzLnJlbmRlciA9IG9wdGlvbnMucmVuZGVyO1xuICAgIG9wdHMuc3RhdGljUmVuZGVyRm5zID0gb3B0aW9ucy5zdGF0aWNSZW5kZXJGbnM7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZUNvbnN0cnVjdG9yT3B0aW9ucyAoQ3Rvcikge1xuICB2YXIgb3B0aW9ucyA9IEN0b3Iub3B0aW9ucztcbiAgaWYgKEN0b3Iuc3VwZXIpIHtcbiAgICB2YXIgc3VwZXJPcHRpb25zID0gcmVzb2x2ZUNvbnN0cnVjdG9yT3B0aW9ucyhDdG9yLnN1cGVyKTtcbiAgICB2YXIgY2FjaGVkU3VwZXJPcHRpb25zID0gQ3Rvci5zdXBlck9wdGlvbnM7XG4gICAgaWYgKHN1cGVyT3B0aW9ucyAhPT0gY2FjaGVkU3VwZXJPcHRpb25zKSB7XG4gICAgICAvLyBzdXBlciBvcHRpb24gY2hhbmdlZCxcbiAgICAgIC8vIG5lZWQgdG8gcmVzb2x2ZSBuZXcgb3B0aW9ucy5cbiAgICAgIEN0b3Iuc3VwZXJPcHRpb25zID0gc3VwZXJPcHRpb25zO1xuICAgICAgLy8gY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBsYXRlLW1vZGlmaWVkL2F0dGFjaGVkIG9wdGlvbnMgKCM0OTc2KVxuICAgICAgdmFyIG1vZGlmaWVkT3B0aW9ucyA9IHJlc29sdmVNb2RpZmllZE9wdGlvbnMoQ3Rvcik7XG4gICAgICAvLyB1cGRhdGUgYmFzZSBleHRlbmQgb3B0aW9uc1xuICAgICAgaWYgKG1vZGlmaWVkT3B0aW9ucykge1xuICAgICAgICBleHRlbmQoQ3Rvci5leHRlbmRPcHRpb25zLCBtb2RpZmllZE9wdGlvbnMpO1xuICAgICAgfVxuICAgICAgb3B0aW9ucyA9IEN0b3Iub3B0aW9ucyA9IG1lcmdlT3B0aW9ucyhzdXBlck9wdGlvbnMsIEN0b3IuZXh0ZW5kT3B0aW9ucyk7XG4gICAgICBpZiAob3B0aW9ucy5uYW1lKSB7XG4gICAgICAgIG9wdGlvbnMuY29tcG9uZW50c1tvcHRpb25zLm5hbWVdID0gQ3RvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9wdGlvbnNcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZU1vZGlmaWVkT3B0aW9ucyAoQ3Rvcikge1xuICB2YXIgbW9kaWZpZWQ7XG4gIHZhciBsYXRlc3QgPSBDdG9yLm9wdGlvbnM7XG4gIHZhciBzZWFsZWQgPSBDdG9yLnNlYWxlZE9wdGlvbnM7XG4gIGZvciAodmFyIGtleSBpbiBsYXRlc3QpIHtcbiAgICBpZiAobGF0ZXN0W2tleV0gIT09IHNlYWxlZFtrZXldKSB7XG4gICAgICBpZiAoIW1vZGlmaWVkKSB7IG1vZGlmaWVkID0ge307IH1cbiAgICAgIG1vZGlmaWVkW2tleV0gPSBsYXRlc3Rba2V5XTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1vZGlmaWVkXG59XG5cbmZ1bmN0aW9uIFZ1ZSAob3B0aW9ucykge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJlxuICAgICEodGhpcyBpbnN0YW5jZW9mIFZ1ZSlcbiAgKSB7XG4gICAgd2FybignVnVlIGlzIGEgY29uc3RydWN0b3IgYW5kIHNob3VsZCBiZSBjYWxsZWQgd2l0aCB0aGUgYG5ld2Aga2V5d29yZCcpO1xuICB9XG4gIHRoaXMuX2luaXQob3B0aW9ucyk7XG59XG5cbmluaXRNaXhpbihWdWUpO1xuc3RhdGVNaXhpbihWdWUpO1xuZXZlbnRzTWl4aW4oVnVlKTtcbmxpZmVjeWNsZU1peGluKFZ1ZSk7XG5yZW5kZXJNaXhpbihWdWUpO1xuXG4vKiAgKi9cblxuZnVuY3Rpb24gaW5pdFVzZSAoVnVlKSB7XG4gIFZ1ZS51c2UgPSBmdW5jdGlvbiAocGx1Z2luKSB7XG4gICAgdmFyIGluc3RhbGxlZFBsdWdpbnMgPSAodGhpcy5faW5zdGFsbGVkUGx1Z2lucyB8fCAodGhpcy5faW5zdGFsbGVkUGx1Z2lucyA9IFtdKSk7XG4gICAgaWYgKGluc3RhbGxlZFBsdWdpbnMuaW5kZXhPZihwbHVnaW4pID4gLTEpIHtcbiAgICAgIHJldHVybiB0aGlzXG4gICAgfVxuXG4gICAgLy8gYWRkaXRpb25hbCBwYXJhbWV0ZXJzXG4gICAgdmFyIGFyZ3MgPSB0b0FycmF5KGFyZ3VtZW50cywgMSk7XG4gICAgYXJncy51bnNoaWZ0KHRoaXMpO1xuICAgIGlmICh0eXBlb2YgcGx1Z2luLmluc3RhbGwgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHBsdWdpbi5pbnN0YWxsLmFwcGx5KHBsdWdpbiwgYXJncyk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgcGx1Z2luID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwbHVnaW4uYXBwbHkobnVsbCwgYXJncyk7XG4gICAgfVxuICAgIGluc3RhbGxlZFBsdWdpbnMucHVzaChwbHVnaW4pO1xuICAgIHJldHVybiB0aGlzXG4gIH07XG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBpbml0TWl4aW4kMSAoVnVlKSB7XG4gIFZ1ZS5taXhpbiA9IGZ1bmN0aW9uIChtaXhpbikge1xuICAgIHRoaXMub3B0aW9ucyA9IG1lcmdlT3B0aW9ucyh0aGlzLm9wdGlvbnMsIG1peGluKTtcbiAgICByZXR1cm4gdGhpc1xuICB9O1xufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gaW5pdEV4dGVuZCAoVnVlKSB7XG4gIC8qKlxuICAgKiBFYWNoIGluc3RhbmNlIGNvbnN0cnVjdG9yLCBpbmNsdWRpbmcgVnVlLCBoYXMgYSB1bmlxdWVcbiAgICogY2lkLiBUaGlzIGVuYWJsZXMgdXMgdG8gY3JlYXRlIHdyYXBwZWQgXCJjaGlsZFxuICAgKiBjb25zdHJ1Y3RvcnNcIiBmb3IgcHJvdG90eXBhbCBpbmhlcml0YW5jZSBhbmQgY2FjaGUgdGhlbS5cbiAgICovXG4gIFZ1ZS5jaWQgPSAwO1xuICB2YXIgY2lkID0gMTtcblxuICAvKipcbiAgICogQ2xhc3MgaW5oZXJpdGFuY2VcbiAgICovXG4gIFZ1ZS5leHRlbmQgPSBmdW5jdGlvbiAoZXh0ZW5kT3B0aW9ucykge1xuICAgIGV4dGVuZE9wdGlvbnMgPSBleHRlbmRPcHRpb25zIHx8IHt9O1xuICAgIHZhciBTdXBlciA9IHRoaXM7XG4gICAgdmFyIFN1cGVySWQgPSBTdXBlci5jaWQ7XG4gICAgdmFyIGNhY2hlZEN0b3JzID0gZXh0ZW5kT3B0aW9ucy5fQ3RvciB8fCAoZXh0ZW5kT3B0aW9ucy5fQ3RvciA9IHt9KTtcbiAgICBpZiAoY2FjaGVkQ3RvcnNbU3VwZXJJZF0pIHtcbiAgICAgIHJldHVybiBjYWNoZWRDdG9yc1tTdXBlcklkXVxuICAgIH1cblxuICAgIHZhciBuYW1lID0gZXh0ZW5kT3B0aW9ucy5uYW1lIHx8IFN1cGVyLm9wdGlvbnMubmFtZTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBuYW1lKSB7XG4gICAgICB2YWxpZGF0ZUNvbXBvbmVudE5hbWUobmFtZSk7XG4gICAgfVxuXG4gICAgdmFyIFN1YiA9IGZ1bmN0aW9uIFZ1ZUNvbXBvbmVudCAob3B0aW9ucykge1xuICAgICAgdGhpcy5faW5pdChvcHRpb25zKTtcbiAgICB9O1xuICAgIFN1Yi5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKFN1cGVyLnByb3RvdHlwZSk7XG4gICAgU3ViLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFN1YjtcbiAgICBTdWIuY2lkID0gY2lkKys7XG4gICAgU3ViLm9wdGlvbnMgPSBtZXJnZU9wdGlvbnMoXG4gICAgICBTdXBlci5vcHRpb25zLFxuICAgICAgZXh0ZW5kT3B0aW9uc1xuICAgICk7XG4gICAgU3ViWydzdXBlciddID0gU3VwZXI7XG5cbiAgICAvLyBGb3IgcHJvcHMgYW5kIGNvbXB1dGVkIHByb3BlcnRpZXMsIHdlIGRlZmluZSB0aGUgcHJveHkgZ2V0dGVycyBvblxuICAgIC8vIHRoZSBWdWUgaW5zdGFuY2VzIGF0IGV4dGVuc2lvbiB0aW1lLCBvbiB0aGUgZXh0ZW5kZWQgcHJvdG90eXBlLiBUaGlzXG4gICAgLy8gYXZvaWRzIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSBjYWxscyBmb3IgZWFjaCBpbnN0YW5jZSBjcmVhdGVkLlxuICAgIGlmIChTdWIub3B0aW9ucy5wcm9wcykge1xuICAgICAgaW5pdFByb3BzJDEoU3ViKTtcbiAgICB9XG4gICAgaWYgKFN1Yi5vcHRpb25zLmNvbXB1dGVkKSB7XG4gICAgICBpbml0Q29tcHV0ZWQkMShTdWIpO1xuICAgIH1cblxuICAgIC8vIGFsbG93IGZ1cnRoZXIgZXh0ZW5zaW9uL21peGluL3BsdWdpbiB1c2FnZVxuICAgIFN1Yi5leHRlbmQgPSBTdXBlci5leHRlbmQ7XG4gICAgU3ViLm1peGluID0gU3VwZXIubWl4aW47XG4gICAgU3ViLnVzZSA9IFN1cGVyLnVzZTtcblxuICAgIC8vIGNyZWF0ZSBhc3NldCByZWdpc3RlcnMsIHNvIGV4dGVuZGVkIGNsYXNzZXNcbiAgICAvLyBjYW4gaGF2ZSB0aGVpciBwcml2YXRlIGFzc2V0cyB0b28uXG4gICAgQVNTRVRfVFlQRVMuZm9yRWFjaChmdW5jdGlvbiAodHlwZSkge1xuICAgICAgU3ViW3R5cGVdID0gU3VwZXJbdHlwZV07XG4gICAgfSk7XG4gICAgLy8gZW5hYmxlIHJlY3Vyc2l2ZSBzZWxmLWxvb2t1cFxuICAgIGlmIChuYW1lKSB7XG4gICAgICBTdWIub3B0aW9ucy5jb21wb25lbnRzW25hbWVdID0gU3ViO1xuICAgIH1cblxuICAgIC8vIGtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIHN1cGVyIG9wdGlvbnMgYXQgZXh0ZW5zaW9uIHRpbWUuXG4gICAgLy8gbGF0ZXIgYXQgaW5zdGFudGlhdGlvbiB3ZSBjYW4gY2hlY2sgaWYgU3VwZXIncyBvcHRpb25zIGhhdmVcbiAgICAvLyBiZWVuIHVwZGF0ZWQuXG4gICAgU3ViLnN1cGVyT3B0aW9ucyA9IFN1cGVyLm9wdGlvbnM7XG4gICAgU3ViLmV4dGVuZE9wdGlvbnMgPSBleHRlbmRPcHRpb25zO1xuICAgIFN1Yi5zZWFsZWRPcHRpb25zID0gZXh0ZW5kKHt9LCBTdWIub3B0aW9ucyk7XG5cbiAgICAvLyBjYWNoZSBjb25zdHJ1Y3RvclxuICAgIGNhY2hlZEN0b3JzW1N1cGVySWRdID0gU3ViO1xuICAgIHJldHVybiBTdWJcbiAgfTtcbn1cblxuZnVuY3Rpb24gaW5pdFByb3BzJDEgKENvbXApIHtcbiAgdmFyIHByb3BzID0gQ29tcC5vcHRpb25zLnByb3BzO1xuICBmb3IgKHZhciBrZXkgaW4gcHJvcHMpIHtcbiAgICBwcm94eShDb21wLnByb3RvdHlwZSwgXCJfcHJvcHNcIiwga2V5KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbml0Q29tcHV0ZWQkMSAoQ29tcCkge1xuICB2YXIgY29tcHV0ZWQgPSBDb21wLm9wdGlvbnMuY29tcHV0ZWQ7XG4gIGZvciAodmFyIGtleSBpbiBjb21wdXRlZCkge1xuICAgIGRlZmluZUNvbXB1dGVkKENvbXAucHJvdG90eXBlLCBrZXksIGNvbXB1dGVkW2tleV0pO1xuICB9XG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBpbml0QXNzZXRSZWdpc3RlcnMgKFZ1ZSkge1xuICAvKipcbiAgICogQ3JlYXRlIGFzc2V0IHJlZ2lzdHJhdGlvbiBtZXRob2RzLlxuICAgKi9cbiAgQVNTRVRfVFlQRVMuZm9yRWFjaChmdW5jdGlvbiAodHlwZSkge1xuICAgIFZ1ZVt0eXBlXSA9IGZ1bmN0aW9uIChcbiAgICAgIGlkLFxuICAgICAgZGVmaW5pdGlvblxuICAgICkge1xuICAgICAgaWYgKCFkZWZpbml0aW9uKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnNbdHlwZSArICdzJ11baWRdXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgdHlwZSA9PT0gJ2NvbXBvbmVudCcpIHtcbiAgICAgICAgICB2YWxpZGF0ZUNvbXBvbmVudE5hbWUoaWQpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlID09PSAnY29tcG9uZW50JyAmJiBpc1BsYWluT2JqZWN0KGRlZmluaXRpb24pKSB7XG4gICAgICAgICAgZGVmaW5pdGlvbi5uYW1lID0gZGVmaW5pdGlvbi5uYW1lIHx8IGlkO1xuICAgICAgICAgIGRlZmluaXRpb24gPSB0aGlzLm9wdGlvbnMuX2Jhc2UuZXh0ZW5kKGRlZmluaXRpb24pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlID09PSAnZGlyZWN0aXZlJyAmJiB0eXBlb2YgZGVmaW5pdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGRlZmluaXRpb24gPSB7IGJpbmQ6IGRlZmluaXRpb24sIHVwZGF0ZTogZGVmaW5pdGlvbiB9O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3B0aW9uc1t0eXBlICsgJ3MnXVtpZF0gPSBkZWZpbml0aW9uO1xuICAgICAgICByZXR1cm4gZGVmaW5pdGlvblxuICAgICAgfVxuICAgIH07XG4gIH0pO1xufVxuXG4vKiAgKi9cblxuXG5cblxuXG5mdW5jdGlvbiBnZXRDb21wb25lbnROYW1lIChvcHRzKSB7XG4gIHJldHVybiBvcHRzICYmIChvcHRzLkN0b3Iub3B0aW9ucy5uYW1lIHx8IG9wdHMudGFnKVxufVxuXG5mdW5jdGlvbiBtYXRjaGVzIChwYXR0ZXJuLCBuYW1lKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHBhdHRlcm4pKSB7XG4gICAgcmV0dXJuIHBhdHRlcm4uaW5kZXhPZihuYW1lKSA+IC0xXG4gIH0gZWxzZSBpZiAodHlwZW9mIHBhdHRlcm4gPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHBhdHRlcm4uc3BsaXQoJywnKS5pbmRleE9mKG5hbWUpID4gLTFcbiAgfSBlbHNlIGlmIChpc1JlZ0V4cChwYXR0ZXJuKSkge1xuICAgIHJldHVybiBwYXR0ZXJuLnRlc3QobmFtZSlcbiAgfVxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICByZXR1cm4gZmFsc2Vcbn1cblxuZnVuY3Rpb24gcHJ1bmVDYWNoZSAoa2VlcEFsaXZlSW5zdGFuY2UsIGZpbHRlcikge1xuICB2YXIgY2FjaGUgPSBrZWVwQWxpdmVJbnN0YW5jZS5jYWNoZTtcbiAgdmFyIGtleXMgPSBrZWVwQWxpdmVJbnN0YW5jZS5rZXlzO1xuICB2YXIgX3Zub2RlID0ga2VlcEFsaXZlSW5zdGFuY2UuX3Zub2RlO1xuICBmb3IgKHZhciBrZXkgaW4gY2FjaGUpIHtcbiAgICB2YXIgZW50cnkgPSBjYWNoZVtrZXldO1xuICAgIGlmIChlbnRyeSkge1xuICAgICAgdmFyIG5hbWUgPSBlbnRyeS5uYW1lO1xuICAgICAgaWYgKG5hbWUgJiYgIWZpbHRlcihuYW1lKSkge1xuICAgICAgICBwcnVuZUNhY2hlRW50cnkoY2FjaGUsIGtleSwga2V5cywgX3Zub2RlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJ1bmVDYWNoZUVudHJ5IChcbiAgY2FjaGUsXG4gIGtleSxcbiAga2V5cyxcbiAgY3VycmVudFxuKSB7XG4gIHZhciBlbnRyeSA9IGNhY2hlW2tleV07XG4gIGlmIChlbnRyeSAmJiAoIWN1cnJlbnQgfHwgZW50cnkudGFnICE9PSBjdXJyZW50LnRhZykpIHtcbiAgICBlbnRyeS5jb21wb25lbnRJbnN0YW5jZS4kZGVzdHJveSgpO1xuICB9XG4gIGNhY2hlW2tleV0gPSBudWxsO1xuICByZW1vdmUoa2V5cywga2V5KTtcbn1cblxudmFyIHBhdHRlcm5UeXBlcyA9IFtTdHJpbmcsIFJlZ0V4cCwgQXJyYXldO1xuXG52YXIgS2VlcEFsaXZlID0ge1xuICBuYW1lOiAna2VlcC1hbGl2ZScsXG4gIGFic3RyYWN0OiB0cnVlLFxuXG4gIHByb3BzOiB7XG4gICAgaW5jbHVkZTogcGF0dGVyblR5cGVzLFxuICAgIGV4Y2x1ZGU6IHBhdHRlcm5UeXBlcyxcbiAgICBtYXg6IFtTdHJpbmcsIE51bWJlcl1cbiAgfSxcblxuICBtZXRob2RzOiB7XG4gICAgY2FjaGVWTm9kZTogZnVuY3Rpb24gY2FjaGVWTm9kZSgpIHtcbiAgICAgIHZhciByZWYgPSB0aGlzO1xuICAgICAgdmFyIGNhY2hlID0gcmVmLmNhY2hlO1xuICAgICAgdmFyIGtleXMgPSByZWYua2V5cztcbiAgICAgIHZhciB2bm9kZVRvQ2FjaGUgPSByZWYudm5vZGVUb0NhY2hlO1xuICAgICAgdmFyIGtleVRvQ2FjaGUgPSByZWYua2V5VG9DYWNoZTtcbiAgICAgIGlmICh2bm9kZVRvQ2FjaGUpIHtcbiAgICAgICAgdmFyIHRhZyA9IHZub2RlVG9DYWNoZS50YWc7XG4gICAgICAgIHZhciBjb21wb25lbnRJbnN0YW5jZSA9IHZub2RlVG9DYWNoZS5jb21wb25lbnRJbnN0YW5jZTtcbiAgICAgICAgdmFyIGNvbXBvbmVudE9wdGlvbnMgPSB2bm9kZVRvQ2FjaGUuY29tcG9uZW50T3B0aW9ucztcbiAgICAgICAgY2FjaGVba2V5VG9DYWNoZV0gPSB7XG4gICAgICAgICAgbmFtZTogZ2V0Q29tcG9uZW50TmFtZShjb21wb25lbnRPcHRpb25zKSxcbiAgICAgICAgICB0YWc6IHRhZyxcbiAgICAgICAgICBjb21wb25lbnRJbnN0YW5jZTogY29tcG9uZW50SW5zdGFuY2UsXG4gICAgICAgIH07XG4gICAgICAgIGtleXMucHVzaChrZXlUb0NhY2hlKTtcbiAgICAgICAgLy8gcHJ1bmUgb2xkZXN0IGVudHJ5XG4gICAgICAgIGlmICh0aGlzLm1heCAmJiBrZXlzLmxlbmd0aCA+IHBhcnNlSW50KHRoaXMubWF4KSkge1xuICAgICAgICAgIHBydW5lQ2FjaGVFbnRyeShjYWNoZSwga2V5c1swXSwga2V5cywgdGhpcy5fdm5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudm5vZGVUb0NhY2hlID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgY3JlYXRlZDogZnVuY3Rpb24gY3JlYXRlZCAoKSB7XG4gICAgdGhpcy5jYWNoZSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgdGhpcy5rZXlzID0gW107XG4gIH0sXG5cbiAgZGVzdHJveWVkOiBmdW5jdGlvbiBkZXN0cm95ZWQgKCkge1xuICAgIGZvciAodmFyIGtleSBpbiB0aGlzLmNhY2hlKSB7XG4gICAgICBwcnVuZUNhY2hlRW50cnkodGhpcy5jYWNoZSwga2V5LCB0aGlzLmtleXMpO1xuICAgIH1cbiAgfSxcblxuICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkICgpIHtcbiAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuICAgIHRoaXMuY2FjaGVWTm9kZSgpO1xuICAgIHRoaXMuJHdhdGNoKCdpbmNsdWRlJywgZnVuY3Rpb24gKHZhbCkge1xuICAgICAgcHJ1bmVDYWNoZSh0aGlzJDEsIGZ1bmN0aW9uIChuYW1lKSB7IHJldHVybiBtYXRjaGVzKHZhbCwgbmFtZSk7IH0pO1xuICAgIH0pO1xuICAgIHRoaXMuJHdhdGNoKCdleGNsdWRlJywgZnVuY3Rpb24gKHZhbCkge1xuICAgICAgcHJ1bmVDYWNoZSh0aGlzJDEsIGZ1bmN0aW9uIChuYW1lKSB7IHJldHVybiAhbWF0Y2hlcyh2YWwsIG5hbWUpOyB9KTtcbiAgICB9KTtcbiAgfSxcblxuICB1cGRhdGVkOiBmdW5jdGlvbiB1cGRhdGVkICgpIHtcbiAgICB0aGlzLmNhY2hlVk5vZGUoKTtcbiAgfSxcblxuICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlciAoKSB7XG4gICAgdmFyIHNsb3QgPSB0aGlzLiRzbG90cy5kZWZhdWx0O1xuICAgIHZhciB2bm9kZSA9IGdldEZpcnN0Q29tcG9uZW50Q2hpbGQoc2xvdCk7XG4gICAgdmFyIGNvbXBvbmVudE9wdGlvbnMgPSB2bm9kZSAmJiB2bm9kZS5jb21wb25lbnRPcHRpb25zO1xuICAgIGlmIChjb21wb25lbnRPcHRpb25zKSB7XG4gICAgICAvLyBjaGVjayBwYXR0ZXJuXG4gICAgICB2YXIgbmFtZSA9IGdldENvbXBvbmVudE5hbWUoY29tcG9uZW50T3B0aW9ucyk7XG4gICAgICB2YXIgcmVmID0gdGhpcztcbiAgICAgIHZhciBpbmNsdWRlID0gcmVmLmluY2x1ZGU7XG4gICAgICB2YXIgZXhjbHVkZSA9IHJlZi5leGNsdWRlO1xuICAgICAgaWYgKFxuICAgICAgICAvLyBub3QgaW5jbHVkZWRcbiAgICAgICAgKGluY2x1ZGUgJiYgKCFuYW1lIHx8ICFtYXRjaGVzKGluY2x1ZGUsIG5hbWUpKSkgfHxcbiAgICAgICAgLy8gZXhjbHVkZWRcbiAgICAgICAgKGV4Y2x1ZGUgJiYgbmFtZSAmJiBtYXRjaGVzKGV4Y2x1ZGUsIG5hbWUpKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB2bm9kZVxuICAgICAgfVxuXG4gICAgICB2YXIgcmVmJDEgPSB0aGlzO1xuICAgICAgdmFyIGNhY2hlID0gcmVmJDEuY2FjaGU7XG4gICAgICB2YXIga2V5cyA9IHJlZiQxLmtleXM7XG4gICAgICB2YXIga2V5ID0gdm5vZGUua2V5ID09IG51bGxcbiAgICAgICAgLy8gc2FtZSBjb25zdHJ1Y3RvciBtYXkgZ2V0IHJlZ2lzdGVyZWQgYXMgZGlmZmVyZW50IGxvY2FsIGNvbXBvbmVudHNcbiAgICAgICAgLy8gc28gY2lkIGFsb25lIGlzIG5vdCBlbm91Z2ggKCMzMjY5KVxuICAgICAgICA/IGNvbXBvbmVudE9wdGlvbnMuQ3Rvci5jaWQgKyAoY29tcG9uZW50T3B0aW9ucy50YWcgPyAoXCI6OlwiICsgKGNvbXBvbmVudE9wdGlvbnMudGFnKSkgOiAnJylcbiAgICAgICAgOiB2bm9kZS5rZXk7XG4gICAgICBpZiAoY2FjaGVba2V5XSkge1xuICAgICAgICB2bm9kZS5jb21wb25lbnRJbnN0YW5jZSA9IGNhY2hlW2tleV0uY29tcG9uZW50SW5zdGFuY2U7XG4gICAgICAgIC8vIG1ha2UgY3VycmVudCBrZXkgZnJlc2hlc3RcbiAgICAgICAgcmVtb3ZlKGtleXMsIGtleSk7XG4gICAgICAgIGtleXMucHVzaChrZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gZGVsYXkgc2V0dGluZyB0aGUgY2FjaGUgdW50aWwgdXBkYXRlXG4gICAgICAgIHRoaXMudm5vZGVUb0NhY2hlID0gdm5vZGU7XG4gICAgICAgIHRoaXMua2V5VG9DYWNoZSA9IGtleTtcbiAgICAgIH1cblxuICAgICAgdm5vZGUuZGF0YS5rZWVwQWxpdmUgPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gdm5vZGUgfHwgKHNsb3QgJiYgc2xvdFswXSlcbiAgfVxufTtcblxudmFyIGJ1aWx0SW5Db21wb25lbnRzID0ge1xuICBLZWVwQWxpdmU6IEtlZXBBbGl2ZVxufTtcblxuLyogICovXG5cbmZ1bmN0aW9uIGluaXRHbG9iYWxBUEkgKFZ1ZSkge1xuICAvLyBjb25maWdcbiAgdmFyIGNvbmZpZ0RlZiA9IHt9O1xuICBjb25maWdEZWYuZ2V0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gY29uZmlnOyB9O1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGNvbmZpZ0RlZi5zZXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB3YXJuKFxuICAgICAgICAnRG8gbm90IHJlcGxhY2UgdGhlIFZ1ZS5jb25maWcgb2JqZWN0LCBzZXQgaW5kaXZpZHVhbCBmaWVsZHMgaW5zdGVhZC4nXG4gICAgICApO1xuICAgIH07XG4gIH1cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFZ1ZSwgJ2NvbmZpZycsIGNvbmZpZ0RlZik7XG5cbiAgLy8gZXhwb3NlZCB1dGlsIG1ldGhvZHMuXG4gIC8vIE5PVEU6IHRoZXNlIGFyZSBub3QgY29uc2lkZXJlZCBwYXJ0IG9mIHRoZSBwdWJsaWMgQVBJIC0gYXZvaWQgcmVseWluZyBvblxuICAvLyB0aGVtIHVubGVzcyB5b3UgYXJlIGF3YXJlIG9mIHRoZSByaXNrLlxuICBWdWUudXRpbCA9IHtcbiAgICB3YXJuOiB3YXJuLFxuICAgIGV4dGVuZDogZXh0ZW5kLFxuICAgIG1lcmdlT3B0aW9uczogbWVyZ2VPcHRpb25zLFxuICAgIGRlZmluZVJlYWN0aXZlOiBkZWZpbmVSZWFjdGl2ZSQkMVxuICB9O1xuXG4gIFZ1ZS5zZXQgPSBzZXQ7XG4gIFZ1ZS5kZWxldGUgPSBkZWw7XG4gIFZ1ZS5uZXh0VGljayA9IG5leHRUaWNrO1xuXG4gIC8vIDIuNiBleHBsaWNpdCBvYnNlcnZhYmxlIEFQSVxuICBWdWUub2JzZXJ2YWJsZSA9IGZ1bmN0aW9uIChvYmopIHtcbiAgICBvYnNlcnZlKG9iaik7XG4gICAgcmV0dXJuIG9ialxuICB9O1xuXG4gIFZ1ZS5vcHRpb25zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgQVNTRVRfVFlQRVMuZm9yRWFjaChmdW5jdGlvbiAodHlwZSkge1xuICAgIFZ1ZS5vcHRpb25zW3R5cGUgKyAncyddID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgfSk7XG5cbiAgLy8gdGhpcyBpcyB1c2VkIHRvIGlkZW50aWZ5IHRoZSBcImJhc2VcIiBjb25zdHJ1Y3RvciB0byBleHRlbmQgYWxsIHBsYWluLW9iamVjdFxuICAvLyBjb21wb25lbnRzIHdpdGggaW4gV2VleCdzIG11bHRpLWluc3RhbmNlIHNjZW5hcmlvcy5cbiAgVnVlLm9wdGlvbnMuX2Jhc2UgPSBWdWU7XG5cbiAgZXh0ZW5kKFZ1ZS5vcHRpb25zLmNvbXBvbmVudHMsIGJ1aWx0SW5Db21wb25lbnRzKTtcblxuICBpbml0VXNlKFZ1ZSk7XG4gIGluaXRNaXhpbiQxKFZ1ZSk7XG4gIGluaXRFeHRlbmQoVnVlKTtcbiAgaW5pdEFzc2V0UmVnaXN0ZXJzKFZ1ZSk7XG59XG5cbmluaXRHbG9iYWxBUEkoVnVlKTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KFZ1ZS5wcm90b3R5cGUsICckaXNTZXJ2ZXInLCB7XG4gIGdldDogaXNTZXJ2ZXJSZW5kZXJpbmdcbn0pO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoVnVlLnByb3RvdHlwZSwgJyRzc3JDb250ZXh0Jywge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCAoKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gdGhpcy4kdm5vZGUgJiYgdGhpcy4kdm5vZGUuc3NyQ29udGV4dFxuICB9XG59KTtcblxuLy8gZXhwb3NlIEZ1bmN0aW9uYWxSZW5kZXJDb250ZXh0IGZvciBzc3IgcnVudGltZSBoZWxwZXIgaW5zdGFsbGF0aW9uXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoVnVlLCAnRnVuY3Rpb25hbFJlbmRlckNvbnRleHQnLCB7XG4gIHZhbHVlOiBGdW5jdGlvbmFsUmVuZGVyQ29udGV4dFxufSk7XG5cblZ1ZS52ZXJzaW9uID0gJzIuNi4xNCc7XG5cbi8qICAqL1xuXG4vLyB0aGVzZSBhcmUgcmVzZXJ2ZWQgZm9yIHdlYiBiZWNhdXNlIHRoZXkgYXJlIGRpcmVjdGx5IGNvbXBpbGVkIGF3YXlcbi8vIGR1cmluZyB0ZW1wbGF0ZSBjb21waWxhdGlvblxudmFyIGlzUmVzZXJ2ZWRBdHRyID0gbWFrZU1hcCgnc3R5bGUsY2xhc3MnKTtcblxuLy8gYXR0cmlidXRlcyB0aGF0IHNob3VsZCBiZSB1c2luZyBwcm9wcyBmb3IgYmluZGluZ1xudmFyIGFjY2VwdFZhbHVlID0gbWFrZU1hcCgnaW5wdXQsdGV4dGFyZWEsb3B0aW9uLHNlbGVjdCxwcm9ncmVzcycpO1xudmFyIG11c3RVc2VQcm9wID0gZnVuY3Rpb24gKHRhZywgdHlwZSwgYXR0cikge1xuICByZXR1cm4gKFxuICAgIChhdHRyID09PSAndmFsdWUnICYmIGFjY2VwdFZhbHVlKHRhZykpICYmIHR5cGUgIT09ICdidXR0b24nIHx8XG4gICAgKGF0dHIgPT09ICdzZWxlY3RlZCcgJiYgdGFnID09PSAnb3B0aW9uJykgfHxcbiAgICAoYXR0ciA9PT0gJ2NoZWNrZWQnICYmIHRhZyA9PT0gJ2lucHV0JykgfHxcbiAgICAoYXR0ciA9PT0gJ211dGVkJyAmJiB0YWcgPT09ICd2aWRlbycpXG4gIClcbn07XG5cbnZhciBpc0VudW1lcmF0ZWRBdHRyID0gbWFrZU1hcCgnY29udGVudGVkaXRhYmxlLGRyYWdnYWJsZSxzcGVsbGNoZWNrJyk7XG5cbnZhciBpc1ZhbGlkQ29udGVudEVkaXRhYmxlVmFsdWUgPSBtYWtlTWFwKCdldmVudHMsY2FyZXQsdHlwaW5nLHBsYWludGV4dC1vbmx5Jyk7XG5cbnZhciBjb252ZXJ0RW51bWVyYXRlZFZhbHVlID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIGlzRmFsc3lBdHRyVmFsdWUodmFsdWUpIHx8IHZhbHVlID09PSAnZmFsc2UnXG4gICAgPyAnZmFsc2UnXG4gICAgLy8gYWxsb3cgYXJiaXRyYXJ5IHN0cmluZyB2YWx1ZSBmb3IgY29udGVudGVkaXRhYmxlXG4gICAgOiBrZXkgPT09ICdjb250ZW50ZWRpdGFibGUnICYmIGlzVmFsaWRDb250ZW50RWRpdGFibGVWYWx1ZSh2YWx1ZSlcbiAgICAgID8gdmFsdWVcbiAgICAgIDogJ3RydWUnXG59O1xuXG52YXIgaXNCb29sZWFuQXR0ciA9IG1ha2VNYXAoXG4gICdhbGxvd2Z1bGxzY3JlZW4sYXN5bmMsYXV0b2ZvY3VzLGF1dG9wbGF5LGNoZWNrZWQsY29tcGFjdCxjb250cm9scyxkZWNsYXJlLCcgK1xuICAnZGVmYXVsdCxkZWZhdWx0Y2hlY2tlZCxkZWZhdWx0bXV0ZWQsZGVmYXVsdHNlbGVjdGVkLGRlZmVyLGRpc2FibGVkLCcgK1xuICAnZW5hYmxlZCxmb3Jtbm92YWxpZGF0ZSxoaWRkZW4saW5kZXRlcm1pbmF0ZSxpbmVydCxpc21hcCxpdGVtc2NvcGUsbG9vcCxtdWx0aXBsZSwnICtcbiAgJ211dGVkLG5vaHJlZixub3Jlc2l6ZSxub3NoYWRlLG5vdmFsaWRhdGUsbm93cmFwLG9wZW4scGF1c2VvbmV4aXQscmVhZG9ubHksJyArXG4gICdyZXF1aXJlZCxyZXZlcnNlZCxzY29wZWQsc2VhbWxlc3Msc2VsZWN0ZWQsc29ydGFibGUsJyArXG4gICd0cnVlc3BlZWQsdHlwZW11c3RtYXRjaCx2aXNpYmxlJ1xuKTtcblxudmFyIHhsaW5rTlMgPSAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayc7XG5cbnZhciBpc1hsaW5rID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgcmV0dXJuIG5hbWUuY2hhckF0KDUpID09PSAnOicgJiYgbmFtZS5zbGljZSgwLCA1KSA9PT0gJ3hsaW5rJ1xufTtcblxudmFyIGdldFhsaW5rUHJvcCA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIHJldHVybiBpc1hsaW5rKG5hbWUpID8gbmFtZS5zbGljZSg2LCBuYW1lLmxlbmd0aCkgOiAnJ1xufTtcblxudmFyIGlzRmFsc3lBdHRyVmFsdWUgPSBmdW5jdGlvbiAodmFsKSB7XG4gIHJldHVybiB2YWwgPT0gbnVsbCB8fCB2YWwgPT09IGZhbHNlXG59O1xuXG4vKiAgKi9cblxuZnVuY3Rpb24gZ2VuQ2xhc3NGb3JWbm9kZSAodm5vZGUpIHtcbiAgdmFyIGRhdGEgPSB2bm9kZS5kYXRhO1xuICB2YXIgcGFyZW50Tm9kZSA9IHZub2RlO1xuICB2YXIgY2hpbGROb2RlID0gdm5vZGU7XG4gIHdoaWxlIChpc0RlZihjaGlsZE5vZGUuY29tcG9uZW50SW5zdGFuY2UpKSB7XG4gICAgY2hpbGROb2RlID0gY2hpbGROb2RlLmNvbXBvbmVudEluc3RhbmNlLl92bm9kZTtcbiAgICBpZiAoY2hpbGROb2RlICYmIGNoaWxkTm9kZS5kYXRhKSB7XG4gICAgICBkYXRhID0gbWVyZ2VDbGFzc0RhdGEoY2hpbGROb2RlLmRhdGEsIGRhdGEpO1xuICAgIH1cbiAgfVxuICB3aGlsZSAoaXNEZWYocGFyZW50Tm9kZSA9IHBhcmVudE5vZGUucGFyZW50KSkge1xuICAgIGlmIChwYXJlbnROb2RlICYmIHBhcmVudE5vZGUuZGF0YSkge1xuICAgICAgZGF0YSA9IG1lcmdlQ2xhc3NEYXRhKGRhdGEsIHBhcmVudE5vZGUuZGF0YSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZW5kZXJDbGFzcyhkYXRhLnN0YXRpY0NsYXNzLCBkYXRhLmNsYXNzKVxufVxuXG5mdW5jdGlvbiBtZXJnZUNsYXNzRGF0YSAoY2hpbGQsIHBhcmVudCkge1xuICByZXR1cm4ge1xuICAgIHN0YXRpY0NsYXNzOiBjb25jYXQoY2hpbGQuc3RhdGljQ2xhc3MsIHBhcmVudC5zdGF0aWNDbGFzcyksXG4gICAgY2xhc3M6IGlzRGVmKGNoaWxkLmNsYXNzKVxuICAgICAgPyBbY2hpbGQuY2xhc3MsIHBhcmVudC5jbGFzc11cbiAgICAgIDogcGFyZW50LmNsYXNzXG4gIH1cbn1cblxuZnVuY3Rpb24gcmVuZGVyQ2xhc3MgKFxuICBzdGF0aWNDbGFzcyxcbiAgZHluYW1pY0NsYXNzXG4pIHtcbiAgaWYgKGlzRGVmKHN0YXRpY0NsYXNzKSB8fCBpc0RlZihkeW5hbWljQ2xhc3MpKSB7XG4gICAgcmV0dXJuIGNvbmNhdChzdGF0aWNDbGFzcywgc3RyaW5naWZ5Q2xhc3MoZHluYW1pY0NsYXNzKSlcbiAgfVxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICByZXR1cm4gJydcbn1cblxuZnVuY3Rpb24gY29uY2F0IChhLCBiKSB7XG4gIHJldHVybiBhID8gYiA/IChhICsgJyAnICsgYikgOiBhIDogKGIgfHwgJycpXG59XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeUNsYXNzICh2YWx1ZSkge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gc3RyaW5naWZ5QXJyYXkodmFsdWUpXG4gIH1cbiAgaWYgKGlzT2JqZWN0KHZhbHVlKSkge1xuICAgIHJldHVybiBzdHJpbmdpZnlPYmplY3QodmFsdWUpXG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICByZXR1cm4gJydcbn1cblxuZnVuY3Rpb24gc3RyaW5naWZ5QXJyYXkgKHZhbHVlKSB7XG4gIHZhciByZXMgPSAnJztcbiAgdmFyIHN0cmluZ2lmaWVkO1xuICBmb3IgKHZhciBpID0gMCwgbCA9IHZhbHVlLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIGlmIChpc0RlZihzdHJpbmdpZmllZCA9IHN0cmluZ2lmeUNsYXNzKHZhbHVlW2ldKSkgJiYgc3RyaW5naWZpZWQgIT09ICcnKSB7XG4gICAgICBpZiAocmVzKSB7IHJlcyArPSAnICc7IH1cbiAgICAgIHJlcyArPSBzdHJpbmdpZmllZDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG5mdW5jdGlvbiBzdHJpbmdpZnlPYmplY3QgKHZhbHVlKSB7XG4gIHZhciByZXMgPSAnJztcbiAgZm9yICh2YXIga2V5IGluIHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlW2tleV0pIHtcbiAgICAgIGlmIChyZXMpIHsgcmVzICs9ICcgJzsgfVxuICAgICAgcmVzICs9IGtleTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG4vKiAgKi9cblxudmFyIG5hbWVzcGFjZU1hcCA9IHtcbiAgc3ZnOiAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLFxuICBtYXRoOiAnaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCdcbn07XG5cbnZhciBpc0hUTUxUYWcgPSBtYWtlTWFwKFxuICAnaHRtbCxib2R5LGJhc2UsaGVhZCxsaW5rLG1ldGEsc3R5bGUsdGl0bGUsJyArXG4gICdhZGRyZXNzLGFydGljbGUsYXNpZGUsZm9vdGVyLGhlYWRlcixoMSxoMixoMyxoNCxoNSxoNixoZ3JvdXAsbmF2LHNlY3Rpb24sJyArXG4gICdkaXYsZGQsZGwsZHQsZmlnY2FwdGlvbixmaWd1cmUscGljdHVyZSxocixpbWcsbGksbWFpbixvbCxwLHByZSx1bCwnICtcbiAgJ2EsYixhYmJyLGJkaSxiZG8sYnIsY2l0ZSxjb2RlLGRhdGEsZGZuLGVtLGksa2JkLG1hcmsscSxycCxydCxydGMscnVieSwnICtcbiAgJ3Msc2FtcCxzbWFsbCxzcGFuLHN0cm9uZyxzdWIsc3VwLHRpbWUsdSx2YXIsd2JyLGFyZWEsYXVkaW8sbWFwLHRyYWNrLHZpZGVvLCcgK1xuICAnZW1iZWQsb2JqZWN0LHBhcmFtLHNvdXJjZSxjYW52YXMsc2NyaXB0LG5vc2NyaXB0LGRlbCxpbnMsJyArXG4gICdjYXB0aW9uLGNvbCxjb2xncm91cCx0YWJsZSx0aGVhZCx0Ym9keSx0ZCx0aCx0ciwnICtcbiAgJ2J1dHRvbixkYXRhbGlzdCxmaWVsZHNldCxmb3JtLGlucHV0LGxhYmVsLGxlZ2VuZCxtZXRlcixvcHRncm91cCxvcHRpb24sJyArXG4gICdvdXRwdXQscHJvZ3Jlc3Msc2VsZWN0LHRleHRhcmVhLCcgK1xuICAnZGV0YWlscyxkaWFsb2csbWVudSxtZW51aXRlbSxzdW1tYXJ5LCcgK1xuICAnY29udGVudCxlbGVtZW50LHNoYWRvdyx0ZW1wbGF0ZSxibG9ja3F1b3RlLGlmcmFtZSx0Zm9vdCdcbik7XG5cbi8vIHRoaXMgbWFwIGlzIGludGVudGlvbmFsbHkgc2VsZWN0aXZlLCBvbmx5IGNvdmVyaW5nIFNWRyBlbGVtZW50cyB0aGF0IG1heVxuLy8gY29udGFpbiBjaGlsZCBlbGVtZW50cy5cbnZhciBpc1NWRyA9IG1ha2VNYXAoXG4gICdzdmcsYW5pbWF0ZSxjaXJjbGUsY2xpcHBhdGgsY3Vyc29yLGRlZnMsZGVzYyxlbGxpcHNlLGZpbHRlcixmb250LWZhY2UsJyArXG4gICdmb3JlaWdub2JqZWN0LGcsZ2x5cGgsaW1hZ2UsbGluZSxtYXJrZXIsbWFzayxtaXNzaW5nLWdseXBoLHBhdGgscGF0dGVybiwnICtcbiAgJ3BvbHlnb24scG9seWxpbmUscmVjdCxzd2l0Y2gsc3ltYm9sLHRleHQsdGV4dHBhdGgsdHNwYW4sdXNlLHZpZXcnLFxuICB0cnVlXG4pO1xuXG52YXIgaXNSZXNlcnZlZFRhZyA9IGZ1bmN0aW9uICh0YWcpIHtcbiAgcmV0dXJuIGlzSFRNTFRhZyh0YWcpIHx8IGlzU1ZHKHRhZylcbn07XG5cbmZ1bmN0aW9uIGdldFRhZ05hbWVzcGFjZSAodGFnKSB7XG4gIGlmIChpc1NWRyh0YWcpKSB7XG4gICAgcmV0dXJuICdzdmcnXG4gIH1cbiAgLy8gYmFzaWMgc3VwcG9ydCBmb3IgTWF0aE1MXG4gIC8vIG5vdGUgaXQgZG9lc24ndCBzdXBwb3J0IG90aGVyIE1hdGhNTCBlbGVtZW50cyBiZWluZyBjb21wb25lbnQgcm9vdHNcbiAgaWYgKHRhZyA9PT0gJ21hdGgnKSB7XG4gICAgcmV0dXJuICdtYXRoJ1xuICB9XG59XG5cbnZhciB1bmtub3duRWxlbWVudENhY2hlID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbmZ1bmN0aW9uIGlzVW5rbm93bkVsZW1lbnQgKHRhZykge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKCFpbkJyb3dzZXIpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG4gIGlmIChpc1Jlc2VydmVkVGFnKHRhZykpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICB0YWcgPSB0YWcudG9Mb3dlckNhc2UoKTtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmICh1bmtub3duRWxlbWVudENhY2hlW3RhZ10gIT0gbnVsbCkge1xuICAgIHJldHVybiB1bmtub3duRWxlbWVudENhY2hlW3RhZ11cbiAgfVxuICB2YXIgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZyk7XG4gIGlmICh0YWcuaW5kZXhPZignLScpID4gLTEpIHtcbiAgICAvLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8yODIxMDM2NC8xMDcwMjQ0XG4gICAgcmV0dXJuICh1bmtub3duRWxlbWVudENhY2hlW3RhZ10gPSAoXG4gICAgICBlbC5jb25zdHJ1Y3RvciA9PT0gd2luZG93LkhUTUxVbmtub3duRWxlbWVudCB8fFxuICAgICAgZWwuY29uc3RydWN0b3IgPT09IHdpbmRvdy5IVE1MRWxlbWVudFxuICAgICkpXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuICh1bmtub3duRWxlbWVudENhY2hlW3RhZ10gPSAvSFRNTFVua25vd25FbGVtZW50Ly50ZXN0KGVsLnRvU3RyaW5nKCkpKVxuICB9XG59XG5cbnZhciBpc1RleHRJbnB1dFR5cGUgPSBtYWtlTWFwKCd0ZXh0LG51bWJlcixwYXNzd29yZCxzZWFyY2gsZW1haWwsdGVsLHVybCcpO1xuXG4vKiAgKi9cblxuLyoqXG4gKiBRdWVyeSBhbiBlbGVtZW50IHNlbGVjdG9yIGlmIGl0J3Mgbm90IGFuIGVsZW1lbnQgYWxyZWFkeS5cbiAqL1xuZnVuY3Rpb24gcXVlcnkgKGVsKSB7XG4gIGlmICh0eXBlb2YgZWwgPT09ICdzdHJpbmcnKSB7XG4gICAgdmFyIHNlbGVjdGVkID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihlbCk7XG4gICAgaWYgKCFzZWxlY3RlZCkge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB3YXJuKFxuICAgICAgICAnQ2Fubm90IGZpbmQgZWxlbWVudDogJyArIGVsXG4gICAgICApO1xuICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gICAgfVxuICAgIHJldHVybiBzZWxlY3RlZFxuICB9IGVsc2Uge1xuICAgIHJldHVybiBlbFxuICB9XG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBjcmVhdGVFbGVtZW50JDEgKHRhZ05hbWUsIHZub2RlKSB7XG4gIHZhciBlbG0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZ05hbWUpO1xuICBpZiAodGFnTmFtZSAhPT0gJ3NlbGVjdCcpIHtcbiAgICByZXR1cm4gZWxtXG4gIH1cbiAgLy8gZmFsc2Ugb3IgbnVsbCB3aWxsIHJlbW92ZSB0aGUgYXR0cmlidXRlIGJ1dCB1bmRlZmluZWQgd2lsbCBub3RcbiAgaWYgKHZub2RlLmRhdGEgJiYgdm5vZGUuZGF0YS5hdHRycyAmJiB2bm9kZS5kYXRhLmF0dHJzLm11bHRpcGxlICE9PSB1bmRlZmluZWQpIHtcbiAgICBlbG0uc2V0QXR0cmlidXRlKCdtdWx0aXBsZScsICdtdWx0aXBsZScpO1xuICB9XG4gIHJldHVybiBlbG1cbn1cblxuZnVuY3Rpb24gY3JlYXRlRWxlbWVudE5TIChuYW1lc3BhY2UsIHRhZ05hbWUpIHtcbiAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhuYW1lc3BhY2VNYXBbbmFtZXNwYWNlXSwgdGFnTmFtZSlcbn1cblxuZnVuY3Rpb24gY3JlYXRlVGV4dE5vZGUgKHRleHQpIHtcbiAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbW1lbnQgKHRleHQpIHtcbiAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQodGV4dClcbn1cblxuZnVuY3Rpb24gaW5zZXJ0QmVmb3JlIChwYXJlbnROb2RlLCBuZXdOb2RlLCByZWZlcmVuY2VOb2RlKSB7XG4gIHBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG5ld05vZGUsIHJlZmVyZW5jZU5vZGUpO1xufVxuXG5mdW5jdGlvbiByZW1vdmVDaGlsZCAobm9kZSwgY2hpbGQpIHtcbiAgbm9kZS5yZW1vdmVDaGlsZChjaGlsZCk7XG59XG5cbmZ1bmN0aW9uIGFwcGVuZENoaWxkIChub2RlLCBjaGlsZCkge1xuICBub2RlLmFwcGVuZENoaWxkKGNoaWxkKTtcbn1cblxuZnVuY3Rpb24gcGFyZW50Tm9kZSAobm9kZSkge1xuICByZXR1cm4gbm9kZS5wYXJlbnROb2RlXG59XG5cbmZ1bmN0aW9uIG5leHRTaWJsaW5nIChub2RlKSB7XG4gIHJldHVybiBub2RlLm5leHRTaWJsaW5nXG59XG5cbmZ1bmN0aW9uIHRhZ05hbWUgKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUudGFnTmFtZVxufVxuXG5mdW5jdGlvbiBzZXRUZXh0Q29udGVudCAobm9kZSwgdGV4dCkge1xuICBub2RlLnRleHRDb250ZW50ID0gdGV4dDtcbn1cblxuZnVuY3Rpb24gc2V0U3R5bGVTY29wZSAobm9kZSwgc2NvcGVJZCkge1xuICBub2RlLnNldEF0dHJpYnV0ZShzY29wZUlkLCAnJyk7XG59XG5cbnZhciBub2RlT3BzID0gLyojX19QVVJFX18qL09iamVjdC5mcmVlemUoe1xuICBjcmVhdGVFbGVtZW50OiBjcmVhdGVFbGVtZW50JDEsXG4gIGNyZWF0ZUVsZW1lbnROUzogY3JlYXRlRWxlbWVudE5TLFxuICBjcmVhdGVUZXh0Tm9kZTogY3JlYXRlVGV4dE5vZGUsXG4gIGNyZWF0ZUNvbW1lbnQ6IGNyZWF0ZUNvbW1lbnQsXG4gIGluc2VydEJlZm9yZTogaW5zZXJ0QmVmb3JlLFxuICByZW1vdmVDaGlsZDogcmVtb3ZlQ2hpbGQsXG4gIGFwcGVuZENoaWxkOiBhcHBlbmRDaGlsZCxcbiAgcGFyZW50Tm9kZTogcGFyZW50Tm9kZSxcbiAgbmV4dFNpYmxpbmc6IG5leHRTaWJsaW5nLFxuICB0YWdOYW1lOiB0YWdOYW1lLFxuICBzZXRUZXh0Q29udGVudDogc2V0VGV4dENvbnRlbnQsXG4gIHNldFN0eWxlU2NvcGU6IHNldFN0eWxlU2NvcGVcbn0pO1xuXG4vKiAgKi9cblxudmFyIHJlZiA9IHtcbiAgY3JlYXRlOiBmdW5jdGlvbiBjcmVhdGUgKF8sIHZub2RlKSB7XG4gICAgcmVnaXN0ZXJSZWYodm5vZGUpO1xuICB9LFxuICB1cGRhdGU6IGZ1bmN0aW9uIHVwZGF0ZSAob2xkVm5vZGUsIHZub2RlKSB7XG4gICAgaWYgKG9sZFZub2RlLmRhdGEucmVmICE9PSB2bm9kZS5kYXRhLnJlZikge1xuICAgICAgcmVnaXN0ZXJSZWYob2xkVm5vZGUsIHRydWUpO1xuICAgICAgcmVnaXN0ZXJSZWYodm5vZGUpO1xuICAgIH1cbiAgfSxcbiAgZGVzdHJveTogZnVuY3Rpb24gZGVzdHJveSAodm5vZGUpIHtcbiAgICByZWdpc3RlclJlZih2bm9kZSwgdHJ1ZSk7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyUmVmICh2bm9kZSwgaXNSZW1vdmFsKSB7XG4gIHZhciBrZXkgPSB2bm9kZS5kYXRhLnJlZjtcbiAgaWYgKCFpc0RlZihrZXkpKSB7IHJldHVybiB9XG5cbiAgdmFyIHZtID0gdm5vZGUuY29udGV4dDtcbiAgdmFyIHJlZiA9IHZub2RlLmNvbXBvbmVudEluc3RhbmNlIHx8IHZub2RlLmVsbTtcbiAgdmFyIHJlZnMgPSB2bS4kcmVmcztcbiAgaWYgKGlzUmVtb3ZhbCkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHJlZnNba2V5XSkpIHtcbiAgICAgIHJlbW92ZShyZWZzW2tleV0sIHJlZik7XG4gICAgfSBlbHNlIGlmIChyZWZzW2tleV0gPT09IHJlZikge1xuICAgICAgcmVmc1trZXldID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAodm5vZGUuZGF0YS5yZWZJbkZvcikge1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHJlZnNba2V5XSkpIHtcbiAgICAgICAgcmVmc1trZXldID0gW3JlZl07XG4gICAgICB9IGVsc2UgaWYgKHJlZnNba2V5XS5pbmRleE9mKHJlZikgPCAwKSB7XG4gICAgICAgIC8vICRmbG93LWRpc2FibGUtbGluZVxuICAgICAgICByZWZzW2tleV0ucHVzaChyZWYpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZWZzW2tleV0gPSByZWY7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVmlydHVhbCBET00gcGF0Y2hpbmcgYWxnb3JpdGhtIGJhc2VkIG9uIFNuYWJiZG9tIGJ5XG4gKiBTaW1vbiBGcmlpcyBWaW5kdW0gKEBwYWxkZXBpbmQpXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2VcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxkZXBpbmQvc25hYmJkb20vYmxvYi9tYXN0ZXIvTElDRU5TRVxuICpcbiAqIG1vZGlmaWVkIGJ5IEV2YW4gWW91IChAeXl4OTkwODAzKVxuICpcbiAqIE5vdCB0eXBlLWNoZWNraW5nIHRoaXMgYmVjYXVzZSB0aGlzIGZpbGUgaXMgcGVyZi1jcml0aWNhbCBhbmQgdGhlIGNvc3RcbiAqIG9mIG1ha2luZyBmbG93IHVuZGVyc3RhbmQgaXQgaXMgbm90IHdvcnRoIGl0LlxuICovXG5cbnZhciBlbXB0eU5vZGUgPSBuZXcgVk5vZGUoJycsIHt9LCBbXSk7XG5cbnZhciBob29rcyA9IFsnY3JlYXRlJywgJ2FjdGl2YXRlJywgJ3VwZGF0ZScsICdyZW1vdmUnLCAnZGVzdHJveSddO1xuXG5mdW5jdGlvbiBzYW1lVm5vZGUgKGEsIGIpIHtcbiAgcmV0dXJuIChcbiAgICBhLmtleSA9PT0gYi5rZXkgJiZcbiAgICBhLmFzeW5jRmFjdG9yeSA9PT0gYi5hc3luY0ZhY3RvcnkgJiYgKFxuICAgICAgKFxuICAgICAgICBhLnRhZyA9PT0gYi50YWcgJiZcbiAgICAgICAgYS5pc0NvbW1lbnQgPT09IGIuaXNDb21tZW50ICYmXG4gICAgICAgIGlzRGVmKGEuZGF0YSkgPT09IGlzRGVmKGIuZGF0YSkgJiZcbiAgICAgICAgc2FtZUlucHV0VHlwZShhLCBiKVxuICAgICAgKSB8fCAoXG4gICAgICAgIGlzVHJ1ZShhLmlzQXN5bmNQbGFjZWhvbGRlcikgJiZcbiAgICAgICAgaXNVbmRlZihiLmFzeW5jRmFjdG9yeS5lcnJvcilcbiAgICAgIClcbiAgICApXG4gIClcbn1cblxuZnVuY3Rpb24gc2FtZUlucHV0VHlwZSAoYSwgYikge1xuICBpZiAoYS50YWcgIT09ICdpbnB1dCcpIHsgcmV0dXJuIHRydWUgfVxuICB2YXIgaTtcbiAgdmFyIHR5cGVBID0gaXNEZWYoaSA9IGEuZGF0YSkgJiYgaXNEZWYoaSA9IGkuYXR0cnMpICYmIGkudHlwZTtcbiAgdmFyIHR5cGVCID0gaXNEZWYoaSA9IGIuZGF0YSkgJiYgaXNEZWYoaSA9IGkuYXR0cnMpICYmIGkudHlwZTtcbiAgcmV0dXJuIHR5cGVBID09PSB0eXBlQiB8fCBpc1RleHRJbnB1dFR5cGUodHlwZUEpICYmIGlzVGV4dElucHV0VHlwZSh0eXBlQilcbn1cblxuZnVuY3Rpb24gY3JlYXRlS2V5VG9PbGRJZHggKGNoaWxkcmVuLCBiZWdpbklkeCwgZW5kSWR4KSB7XG4gIHZhciBpLCBrZXk7XG4gIHZhciBtYXAgPSB7fTtcbiAgZm9yIChpID0gYmVnaW5JZHg7IGkgPD0gZW5kSWR4OyArK2kpIHtcbiAgICBrZXkgPSBjaGlsZHJlbltpXS5rZXk7XG4gICAgaWYgKGlzRGVmKGtleSkpIHsgbWFwW2tleV0gPSBpOyB9XG4gIH1cbiAgcmV0dXJuIG1hcFxufVxuXG5mdW5jdGlvbiBjcmVhdGVQYXRjaEZ1bmN0aW9uIChiYWNrZW5kKSB7XG4gIHZhciBpLCBqO1xuICB2YXIgY2JzID0ge307XG5cbiAgdmFyIG1vZHVsZXMgPSBiYWNrZW5kLm1vZHVsZXM7XG4gIHZhciBub2RlT3BzID0gYmFja2VuZC5ub2RlT3BzO1xuXG4gIGZvciAoaSA9IDA7IGkgPCBob29rcy5sZW5ndGg7ICsraSkge1xuICAgIGNic1tob29rc1tpXV0gPSBbXTtcbiAgICBmb3IgKGogPSAwOyBqIDwgbW9kdWxlcy5sZW5ndGg7ICsraikge1xuICAgICAgaWYgKGlzRGVmKG1vZHVsZXNbal1baG9va3NbaV1dKSkge1xuICAgICAgICBjYnNbaG9va3NbaV1dLnB1c2gobW9kdWxlc1tqXVtob29rc1tpXV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGVtcHR5Tm9kZUF0IChlbG0pIHtcbiAgICByZXR1cm4gbmV3IFZOb2RlKG5vZGVPcHMudGFnTmFtZShlbG0pLnRvTG93ZXJDYXNlKCksIHt9LCBbXSwgdW5kZWZpbmVkLCBlbG0pXG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVSbUNiIChjaGlsZEVsbSwgbGlzdGVuZXJzKSB7XG4gICAgZnVuY3Rpb24gcmVtb3ZlJCQxICgpIHtcbiAgICAgIGlmICgtLXJlbW92ZSQkMS5saXN0ZW5lcnMgPT09IDApIHtcbiAgICAgICAgcmVtb3ZlTm9kZShjaGlsZEVsbSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJlbW92ZSQkMS5saXN0ZW5lcnMgPSBsaXN0ZW5lcnM7XG4gICAgcmV0dXJuIHJlbW92ZSQkMVxuICB9XG5cbiAgZnVuY3Rpb24gcmVtb3ZlTm9kZSAoZWwpIHtcbiAgICB2YXIgcGFyZW50ID0gbm9kZU9wcy5wYXJlbnROb2RlKGVsKTtcbiAgICAvLyBlbGVtZW50IG1heSBoYXZlIGFscmVhZHkgYmVlbiByZW1vdmVkIGR1ZSB0byB2LWh0bWwgLyB2LXRleHRcbiAgICBpZiAoaXNEZWYocGFyZW50KSkge1xuICAgICAgbm9kZU9wcy5yZW1vdmVDaGlsZChwYXJlbnQsIGVsKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBpc1Vua25vd25FbGVtZW50JCQxICh2bm9kZSwgaW5WUHJlKSB7XG4gICAgcmV0dXJuIChcbiAgICAgICFpblZQcmUgJiZcbiAgICAgICF2bm9kZS5ucyAmJlxuICAgICAgIShcbiAgICAgICAgY29uZmlnLmlnbm9yZWRFbGVtZW50cy5sZW5ndGggJiZcbiAgICAgICAgY29uZmlnLmlnbm9yZWRFbGVtZW50cy5zb21lKGZ1bmN0aW9uIChpZ25vcmUpIHtcbiAgICAgICAgICByZXR1cm4gaXNSZWdFeHAoaWdub3JlKVxuICAgICAgICAgICAgPyBpZ25vcmUudGVzdCh2bm9kZS50YWcpXG4gICAgICAgICAgICA6IGlnbm9yZSA9PT0gdm5vZGUudGFnXG4gICAgICAgIH0pXG4gICAgICApICYmXG4gICAgICBjb25maWcuaXNVbmtub3duRWxlbWVudCh2bm9kZS50YWcpXG4gICAgKVxuICB9XG5cbiAgdmFyIGNyZWF0aW5nRWxtSW5WUHJlID0gMDtcblxuICBmdW5jdGlvbiBjcmVhdGVFbG0gKFxuICAgIHZub2RlLFxuICAgIGluc2VydGVkVm5vZGVRdWV1ZSxcbiAgICBwYXJlbnRFbG0sXG4gICAgcmVmRWxtLFxuICAgIG5lc3RlZCxcbiAgICBvd25lckFycmF5LFxuICAgIGluZGV4XG4gICkge1xuICAgIGlmIChpc0RlZih2bm9kZS5lbG0pICYmIGlzRGVmKG93bmVyQXJyYXkpKSB7XG4gICAgICAvLyBUaGlzIHZub2RlIHdhcyB1c2VkIGluIGEgcHJldmlvdXMgcmVuZGVyIVxuICAgICAgLy8gbm93IGl0J3MgdXNlZCBhcyBhIG5ldyBub2RlLCBvdmVyd3JpdGluZyBpdHMgZWxtIHdvdWxkIGNhdXNlXG4gICAgICAvLyBwb3RlbnRpYWwgcGF0Y2ggZXJyb3JzIGRvd24gdGhlIHJvYWQgd2hlbiBpdCdzIHVzZWQgYXMgYW4gaW5zZXJ0aW9uXG4gICAgICAvLyByZWZlcmVuY2Ugbm9kZS4gSW5zdGVhZCwgd2UgY2xvbmUgdGhlIG5vZGUgb24tZGVtYW5kIGJlZm9yZSBjcmVhdGluZ1xuICAgICAgLy8gYXNzb2NpYXRlZCBET00gZWxlbWVudCBmb3IgaXQuXG4gICAgICB2bm9kZSA9IG93bmVyQXJyYXlbaW5kZXhdID0gY2xvbmVWTm9kZSh2bm9kZSk7XG4gICAgfVxuXG4gICAgdm5vZGUuaXNSb290SW5zZXJ0ID0gIW5lc3RlZDsgLy8gZm9yIHRyYW5zaXRpb24gZW50ZXIgY2hlY2tcbiAgICBpZiAoY3JlYXRlQ29tcG9uZW50KHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIHBhcmVudEVsbSwgcmVmRWxtKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdmFyIGRhdGEgPSB2bm9kZS5kYXRhO1xuICAgIHZhciBjaGlsZHJlbiA9IHZub2RlLmNoaWxkcmVuO1xuICAgIHZhciB0YWcgPSB2bm9kZS50YWc7XG4gICAgaWYgKGlzRGVmKHRhZykpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGlmIChkYXRhICYmIGRhdGEucHJlKSB7XG4gICAgICAgICAgY3JlYXRpbmdFbG1JblZQcmUrKztcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNVbmtub3duRWxlbWVudCQkMSh2bm9kZSwgY3JlYXRpbmdFbG1JblZQcmUpKSB7XG4gICAgICAgICAgd2FybihcbiAgICAgICAgICAgICdVbmtub3duIGN1c3RvbSBlbGVtZW50OiA8JyArIHRhZyArICc+IC0gZGlkIHlvdSAnICtcbiAgICAgICAgICAgICdyZWdpc3RlciB0aGUgY29tcG9uZW50IGNvcnJlY3RseT8gRm9yIHJlY3Vyc2l2ZSBjb21wb25lbnRzLCAnICtcbiAgICAgICAgICAgICdtYWtlIHN1cmUgdG8gcHJvdmlkZSB0aGUgXCJuYW1lXCIgb3B0aW9uLicsXG4gICAgICAgICAgICB2bm9kZS5jb250ZXh0XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2bm9kZS5lbG0gPSB2bm9kZS5uc1xuICAgICAgICA/IG5vZGVPcHMuY3JlYXRlRWxlbWVudE5TKHZub2RlLm5zLCB0YWcpXG4gICAgICAgIDogbm9kZU9wcy5jcmVhdGVFbGVtZW50KHRhZywgdm5vZGUpO1xuICAgICAgc2V0U2NvcGUodm5vZGUpO1xuXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgIHtcbiAgICAgICAgY3JlYXRlQ2hpbGRyZW4odm5vZGUsIGNoaWxkcmVuLCBpbnNlcnRlZFZub2RlUXVldWUpO1xuICAgICAgICBpZiAoaXNEZWYoZGF0YSkpIHtcbiAgICAgICAgICBpbnZva2VDcmVhdGVIb29rcyh2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKTtcbiAgICAgICAgfVxuICAgICAgICBpbnNlcnQocGFyZW50RWxtLCB2bm9kZS5lbG0sIHJlZkVsbSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGRhdGEgJiYgZGF0YS5wcmUpIHtcbiAgICAgICAgY3JlYXRpbmdFbG1JblZQcmUtLTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzVHJ1ZSh2bm9kZS5pc0NvbW1lbnQpKSB7XG4gICAgICB2bm9kZS5lbG0gPSBub2RlT3BzLmNyZWF0ZUNvbW1lbnQodm5vZGUudGV4dCk7XG4gICAgICBpbnNlcnQocGFyZW50RWxtLCB2bm9kZS5lbG0sIHJlZkVsbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZub2RlLmVsbSA9IG5vZGVPcHMuY3JlYXRlVGV4dE5vZGUodm5vZGUudGV4dCk7XG4gICAgICBpbnNlcnQocGFyZW50RWxtLCB2bm9kZS5lbG0sIHJlZkVsbSk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlQ29tcG9uZW50ICh2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCBwYXJlbnRFbG0sIHJlZkVsbSkge1xuICAgIHZhciBpID0gdm5vZGUuZGF0YTtcbiAgICBpZiAoaXNEZWYoaSkpIHtcbiAgICAgIHZhciBpc1JlYWN0aXZhdGVkID0gaXNEZWYodm5vZGUuY29tcG9uZW50SW5zdGFuY2UpICYmIGkua2VlcEFsaXZlO1xuICAgICAgaWYgKGlzRGVmKGkgPSBpLmhvb2spICYmIGlzRGVmKGkgPSBpLmluaXQpKSB7XG4gICAgICAgIGkodm5vZGUsIGZhbHNlIC8qIGh5ZHJhdGluZyAqLyk7XG4gICAgICB9XG4gICAgICAvLyBhZnRlciBjYWxsaW5nIHRoZSBpbml0IGhvb2ssIGlmIHRoZSB2bm9kZSBpcyBhIGNoaWxkIGNvbXBvbmVudFxuICAgICAgLy8gaXQgc2hvdWxkJ3ZlIGNyZWF0ZWQgYSBjaGlsZCBpbnN0YW5jZSBhbmQgbW91bnRlZCBpdC4gdGhlIGNoaWxkXG4gICAgICAvLyBjb21wb25lbnQgYWxzbyBoYXMgc2V0IHRoZSBwbGFjZWhvbGRlciB2bm9kZSdzIGVsbS5cbiAgICAgIC8vIGluIHRoYXQgY2FzZSB3ZSBjYW4ganVzdCByZXR1cm4gdGhlIGVsZW1lbnQgYW5kIGJlIGRvbmUuXG4gICAgICBpZiAoaXNEZWYodm5vZGUuY29tcG9uZW50SW5zdGFuY2UpKSB7XG4gICAgICAgIGluaXRDb21wb25lbnQodm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSk7XG4gICAgICAgIGluc2VydChwYXJlbnRFbG0sIHZub2RlLmVsbSwgcmVmRWxtKTtcbiAgICAgICAgaWYgKGlzVHJ1ZShpc1JlYWN0aXZhdGVkKSkge1xuICAgICAgICAgIHJlYWN0aXZhdGVDb21wb25lbnQodm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSwgcGFyZW50RWxtLCByZWZFbG0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaW5pdENvbXBvbmVudCAodm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSkge1xuICAgIGlmIChpc0RlZih2bm9kZS5kYXRhLnBlbmRpbmdJbnNlcnQpKSB7XG4gICAgICBpbnNlcnRlZFZub2RlUXVldWUucHVzaC5hcHBseShpbnNlcnRlZFZub2RlUXVldWUsIHZub2RlLmRhdGEucGVuZGluZ0luc2VydCk7XG4gICAgICB2bm9kZS5kYXRhLnBlbmRpbmdJbnNlcnQgPSBudWxsO1xuICAgIH1cbiAgICB2bm9kZS5lbG0gPSB2bm9kZS5jb21wb25lbnRJbnN0YW5jZS4kZWw7XG4gICAgaWYgKGlzUGF0Y2hhYmxlKHZub2RlKSkge1xuICAgICAgaW52b2tlQ3JlYXRlSG9va3Modm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSk7XG4gICAgICBzZXRTY29wZSh2bm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGVtcHR5IGNvbXBvbmVudCByb290LlxuICAgICAgLy8gc2tpcCBhbGwgZWxlbWVudC1yZWxhdGVkIG1vZHVsZXMgZXhjZXB0IGZvciByZWYgKCMzNDU1KVxuICAgICAgcmVnaXN0ZXJSZWYodm5vZGUpO1xuICAgICAgLy8gbWFrZSBzdXJlIHRvIGludm9rZSB0aGUgaW5zZXJ0IGhvb2tcbiAgICAgIGluc2VydGVkVm5vZGVRdWV1ZS5wdXNoKHZub2RlKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiByZWFjdGl2YXRlQ29tcG9uZW50ICh2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCBwYXJlbnRFbG0sIHJlZkVsbSkge1xuICAgIHZhciBpO1xuICAgIC8vIGhhY2sgZm9yICM0MzM5OiBhIHJlYWN0aXZhdGVkIGNvbXBvbmVudCB3aXRoIGlubmVyIHRyYW5zaXRpb25cbiAgICAvLyBkb2VzIG5vdCB0cmlnZ2VyIGJlY2F1c2UgdGhlIGlubmVyIG5vZGUncyBjcmVhdGVkIGhvb2tzIGFyZSBub3QgY2FsbGVkXG4gICAgLy8gYWdhaW4uIEl0J3Mgbm90IGlkZWFsIHRvIGludm9sdmUgbW9kdWxlLXNwZWNpZmljIGxvZ2ljIGluIGhlcmUgYnV0XG4gICAgLy8gdGhlcmUgZG9lc24ndCBzZWVtIHRvIGJlIGEgYmV0dGVyIHdheSB0byBkbyBpdC5cbiAgICB2YXIgaW5uZXJOb2RlID0gdm5vZGU7XG4gICAgd2hpbGUgKGlubmVyTm9kZS5jb21wb25lbnRJbnN0YW5jZSkge1xuICAgICAgaW5uZXJOb2RlID0gaW5uZXJOb2RlLmNvbXBvbmVudEluc3RhbmNlLl92bm9kZTtcbiAgICAgIGlmIChpc0RlZihpID0gaW5uZXJOb2RlLmRhdGEpICYmIGlzRGVmKGkgPSBpLnRyYW5zaXRpb24pKSB7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBjYnMuYWN0aXZhdGUubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICBjYnMuYWN0aXZhdGVbaV0oZW1wdHlOb2RlLCBpbm5lck5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIGluc2VydGVkVm5vZGVRdWV1ZS5wdXNoKGlubmVyTm9kZSk7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuICAgIC8vIHVubGlrZSBhIG5ld2x5IGNyZWF0ZWQgY29tcG9uZW50LFxuICAgIC8vIGEgcmVhY3RpdmF0ZWQga2VlcC1hbGl2ZSBjb21wb25lbnQgZG9lc24ndCBpbnNlcnQgaXRzZWxmXG4gICAgaW5zZXJ0KHBhcmVudEVsbSwgdm5vZGUuZWxtLCByZWZFbG0pO1xuICB9XG5cbiAgZnVuY3Rpb24gaW5zZXJ0IChwYXJlbnQsIGVsbSwgcmVmJCQxKSB7XG4gICAgaWYgKGlzRGVmKHBhcmVudCkpIHtcbiAgICAgIGlmIChpc0RlZihyZWYkJDEpKSB7XG4gICAgICAgIGlmIChub2RlT3BzLnBhcmVudE5vZGUocmVmJCQxKSA9PT0gcGFyZW50KSB7XG4gICAgICAgICAgbm9kZU9wcy5pbnNlcnRCZWZvcmUocGFyZW50LCBlbG0sIHJlZiQkMSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5vZGVPcHMuYXBwZW5kQ2hpbGQocGFyZW50LCBlbG0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUNoaWxkcmVuICh2bm9kZSwgY2hpbGRyZW4sIGluc2VydGVkVm5vZGVRdWV1ZSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgY2hlY2tEdXBsaWNhdGVLZXlzKGNoaWxkcmVuKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgY3JlYXRlRWxtKGNoaWxkcmVuW2ldLCBpbnNlcnRlZFZub2RlUXVldWUsIHZub2RlLmVsbSwgbnVsbCwgdHJ1ZSwgY2hpbGRyZW4sIGkpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaXNQcmltaXRpdmUodm5vZGUudGV4dCkpIHtcbiAgICAgIG5vZGVPcHMuYXBwZW5kQ2hpbGQodm5vZGUuZWxtLCBub2RlT3BzLmNyZWF0ZVRleHROb2RlKFN0cmluZyh2bm9kZS50ZXh0KSkpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGlzUGF0Y2hhYmxlICh2bm9kZSkge1xuICAgIHdoaWxlICh2bm9kZS5jb21wb25lbnRJbnN0YW5jZSkge1xuICAgICAgdm5vZGUgPSB2bm9kZS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGU7XG4gICAgfVxuICAgIHJldHVybiBpc0RlZih2bm9kZS50YWcpXG4gIH1cblxuICBmdW5jdGlvbiBpbnZva2VDcmVhdGVIb29rcyAodm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSkge1xuICAgIGZvciAodmFyIGkkMSA9IDA7IGkkMSA8IGNicy5jcmVhdGUubGVuZ3RoOyArK2kkMSkge1xuICAgICAgY2JzLmNyZWF0ZVtpJDFdKGVtcHR5Tm9kZSwgdm5vZGUpO1xuICAgIH1cbiAgICBpID0gdm5vZGUuZGF0YS5ob29rOyAvLyBSZXVzZSB2YXJpYWJsZVxuICAgIGlmIChpc0RlZihpKSkge1xuICAgICAgaWYgKGlzRGVmKGkuY3JlYXRlKSkgeyBpLmNyZWF0ZShlbXB0eU5vZGUsIHZub2RlKTsgfVxuICAgICAgaWYgKGlzRGVmKGkuaW5zZXJ0KSkgeyBpbnNlcnRlZFZub2RlUXVldWUucHVzaCh2bm9kZSk7IH1cbiAgICB9XG4gIH1cblxuICAvLyBzZXQgc2NvcGUgaWQgYXR0cmlidXRlIGZvciBzY29wZWQgQ1NTLlxuICAvLyB0aGlzIGlzIGltcGxlbWVudGVkIGFzIGEgc3BlY2lhbCBjYXNlIHRvIGF2b2lkIHRoZSBvdmVyaGVhZFxuICAvLyBvZiBnb2luZyB0aHJvdWdoIHRoZSBub3JtYWwgYXR0cmlidXRlIHBhdGNoaW5nIHByb2Nlc3MuXG4gIGZ1bmN0aW9uIHNldFNjb3BlICh2bm9kZSkge1xuICAgIHZhciBpO1xuICAgIGlmIChpc0RlZihpID0gdm5vZGUuZm5TY29wZUlkKSkge1xuICAgICAgbm9kZU9wcy5zZXRTdHlsZVNjb3BlKHZub2RlLmVsbSwgaSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBhbmNlc3RvciA9IHZub2RlO1xuICAgICAgd2hpbGUgKGFuY2VzdG9yKSB7XG4gICAgICAgIGlmIChpc0RlZihpID0gYW5jZXN0b3IuY29udGV4dCkgJiYgaXNEZWYoaSA9IGkuJG9wdGlvbnMuX3Njb3BlSWQpKSB7XG4gICAgICAgICAgbm9kZU9wcy5zZXRTdHlsZVNjb3BlKHZub2RlLmVsbSwgaSk7XG4gICAgICAgIH1cbiAgICAgICAgYW5jZXN0b3IgPSBhbmNlc3Rvci5wYXJlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIGZvciBzbG90IGNvbnRlbnQgdGhleSBzaG91bGQgYWxzbyBnZXQgdGhlIHNjb3BlSWQgZnJvbSB0aGUgaG9zdCBpbnN0YW5jZS5cbiAgICBpZiAoaXNEZWYoaSA9IGFjdGl2ZUluc3RhbmNlKSAmJlxuICAgICAgaSAhPT0gdm5vZGUuY29udGV4dCAmJlxuICAgICAgaSAhPT0gdm5vZGUuZm5Db250ZXh0ICYmXG4gICAgICBpc0RlZihpID0gaS4kb3B0aW9ucy5fc2NvcGVJZClcbiAgICApIHtcbiAgICAgIG5vZGVPcHMuc2V0U3R5bGVTY29wZSh2bm9kZS5lbG0sIGkpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGFkZFZub2RlcyAocGFyZW50RWxtLCByZWZFbG0sIHZub2Rlcywgc3RhcnRJZHgsIGVuZElkeCwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKSB7XG4gICAgZm9yICg7IHN0YXJ0SWR4IDw9IGVuZElkeDsgKytzdGFydElkeCkge1xuICAgICAgY3JlYXRlRWxtKHZub2Rlc1tzdGFydElkeF0sIGluc2VydGVkVm5vZGVRdWV1ZSwgcGFyZW50RWxtLCByZWZFbG0sIGZhbHNlLCB2bm9kZXMsIHN0YXJ0SWR4KTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBpbnZva2VEZXN0cm95SG9vayAodm5vZGUpIHtcbiAgICB2YXIgaSwgajtcbiAgICB2YXIgZGF0YSA9IHZub2RlLmRhdGE7XG4gICAgaWYgKGlzRGVmKGRhdGEpKSB7XG4gICAgICBpZiAoaXNEZWYoaSA9IGRhdGEuaG9vaykgJiYgaXNEZWYoaSA9IGkuZGVzdHJveSkpIHsgaSh2bm9kZSk7IH1cbiAgICAgIGZvciAoaSA9IDA7IGkgPCBjYnMuZGVzdHJveS5sZW5ndGg7ICsraSkgeyBjYnMuZGVzdHJveVtpXSh2bm9kZSk7IH1cbiAgICB9XG4gICAgaWYgKGlzRGVmKGkgPSB2bm9kZS5jaGlsZHJlbikpIHtcbiAgICAgIGZvciAoaiA9IDA7IGogPCB2bm9kZS5jaGlsZHJlbi5sZW5ndGg7ICsraikge1xuICAgICAgICBpbnZva2VEZXN0cm95SG9vayh2bm9kZS5jaGlsZHJlbltqXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcmVtb3ZlVm5vZGVzICh2bm9kZXMsIHN0YXJ0SWR4LCBlbmRJZHgpIHtcbiAgICBmb3IgKDsgc3RhcnRJZHggPD0gZW5kSWR4OyArK3N0YXJ0SWR4KSB7XG4gICAgICB2YXIgY2ggPSB2bm9kZXNbc3RhcnRJZHhdO1xuICAgICAgaWYgKGlzRGVmKGNoKSkge1xuICAgICAgICBpZiAoaXNEZWYoY2gudGFnKSkge1xuICAgICAgICAgIHJlbW92ZUFuZEludm9rZVJlbW92ZUhvb2soY2gpO1xuICAgICAgICAgIGludm9rZURlc3Ryb3lIb29rKGNoKTtcbiAgICAgICAgfSBlbHNlIHsgLy8gVGV4dCBub2RlXG4gICAgICAgICAgcmVtb3ZlTm9kZShjaC5lbG0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcmVtb3ZlQW5kSW52b2tlUmVtb3ZlSG9vayAodm5vZGUsIHJtKSB7XG4gICAgaWYgKGlzRGVmKHJtKSB8fCBpc0RlZih2bm9kZS5kYXRhKSkge1xuICAgICAgdmFyIGk7XG4gICAgICB2YXIgbGlzdGVuZXJzID0gY2JzLnJlbW92ZS5sZW5ndGggKyAxO1xuICAgICAgaWYgKGlzRGVmKHJtKSkge1xuICAgICAgICAvLyB3ZSBoYXZlIGEgcmVjdXJzaXZlbHkgcGFzc2VkIGRvd24gcm0gY2FsbGJhY2tcbiAgICAgICAgLy8gaW5jcmVhc2UgdGhlIGxpc3RlbmVycyBjb3VudFxuICAgICAgICBybS5saXN0ZW5lcnMgKz0gbGlzdGVuZXJzO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gZGlyZWN0bHkgcmVtb3ZpbmdcbiAgICAgICAgcm0gPSBjcmVhdGVSbUNiKHZub2RlLmVsbSwgbGlzdGVuZXJzKTtcbiAgICAgIH1cbiAgICAgIC8vIHJlY3Vyc2l2ZWx5IGludm9rZSBob29rcyBvbiBjaGlsZCBjb21wb25lbnQgcm9vdCBub2RlXG4gICAgICBpZiAoaXNEZWYoaSA9IHZub2RlLmNvbXBvbmVudEluc3RhbmNlKSAmJiBpc0RlZihpID0gaS5fdm5vZGUpICYmIGlzRGVmKGkuZGF0YSkpIHtcbiAgICAgICAgcmVtb3ZlQW5kSW52b2tlUmVtb3ZlSG9vayhpLCBybSk7XG4gICAgICB9XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgY2JzLnJlbW92ZS5sZW5ndGg7ICsraSkge1xuICAgICAgICBjYnMucmVtb3ZlW2ldKHZub2RlLCBybSk7XG4gICAgICB9XG4gICAgICBpZiAoaXNEZWYoaSA9IHZub2RlLmRhdGEuaG9vaykgJiYgaXNEZWYoaSA9IGkucmVtb3ZlKSkge1xuICAgICAgICBpKHZub2RlLCBybSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBybSgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZW1vdmVOb2RlKHZub2RlLmVsbSk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gdXBkYXRlQ2hpbGRyZW4gKHBhcmVudEVsbSwgb2xkQ2gsIG5ld0NoLCBpbnNlcnRlZFZub2RlUXVldWUsIHJlbW92ZU9ubHkpIHtcbiAgICB2YXIgb2xkU3RhcnRJZHggPSAwO1xuICAgIHZhciBuZXdTdGFydElkeCA9IDA7XG4gICAgdmFyIG9sZEVuZElkeCA9IG9sZENoLmxlbmd0aCAtIDE7XG4gICAgdmFyIG9sZFN0YXJ0Vm5vZGUgPSBvbGRDaFswXTtcbiAgICB2YXIgb2xkRW5kVm5vZGUgPSBvbGRDaFtvbGRFbmRJZHhdO1xuICAgIHZhciBuZXdFbmRJZHggPSBuZXdDaC5sZW5ndGggLSAxO1xuICAgIHZhciBuZXdTdGFydFZub2RlID0gbmV3Q2hbMF07XG4gICAgdmFyIG5ld0VuZFZub2RlID0gbmV3Q2hbbmV3RW5kSWR4XTtcbiAgICB2YXIgb2xkS2V5VG9JZHgsIGlkeEluT2xkLCB2bm9kZVRvTW92ZSwgcmVmRWxtO1xuXG4gICAgLy8gcmVtb3ZlT25seSBpcyBhIHNwZWNpYWwgZmxhZyB1c2VkIG9ubHkgYnkgPHRyYW5zaXRpb24tZ3JvdXA+XG4gICAgLy8gdG8gZW5zdXJlIHJlbW92ZWQgZWxlbWVudHMgc3RheSBpbiBjb3JyZWN0IHJlbGF0aXZlIHBvc2l0aW9uc1xuICAgIC8vIGR1cmluZyBsZWF2aW5nIHRyYW5zaXRpb25zXG4gICAgdmFyIGNhbk1vdmUgPSAhcmVtb3ZlT25seTtcblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBjaGVja0R1cGxpY2F0ZUtleXMobmV3Q2gpO1xuICAgIH1cblxuICAgIHdoaWxlIChvbGRTdGFydElkeCA8PSBvbGRFbmRJZHggJiYgbmV3U3RhcnRJZHggPD0gbmV3RW5kSWR4KSB7XG4gICAgICBpZiAoaXNVbmRlZihvbGRTdGFydFZub2RlKSkge1xuICAgICAgICBvbGRTdGFydFZub2RlID0gb2xkQ2hbKytvbGRTdGFydElkeF07IC8vIFZub2RlIGhhcyBiZWVuIG1vdmVkIGxlZnRcbiAgICAgIH0gZWxzZSBpZiAoaXNVbmRlZihvbGRFbmRWbm9kZSkpIHtcbiAgICAgICAgb2xkRW5kVm5vZGUgPSBvbGRDaFstLW9sZEVuZElkeF07XG4gICAgICB9IGVsc2UgaWYgKHNhbWVWbm9kZShvbGRTdGFydFZub2RlLCBuZXdTdGFydFZub2RlKSkge1xuICAgICAgICBwYXRjaFZub2RlKG9sZFN0YXJ0Vm5vZGUsIG5ld1N0YXJ0Vm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSwgbmV3Q2gsIG5ld1N0YXJ0SWR4KTtcbiAgICAgICAgb2xkU3RhcnRWbm9kZSA9IG9sZENoWysrb2xkU3RhcnRJZHhdO1xuICAgICAgICBuZXdTdGFydFZub2RlID0gbmV3Q2hbKytuZXdTdGFydElkeF07XG4gICAgICB9IGVsc2UgaWYgKHNhbWVWbm9kZShvbGRFbmRWbm9kZSwgbmV3RW5kVm5vZGUpKSB7XG4gICAgICAgIHBhdGNoVm5vZGUob2xkRW5kVm5vZGUsIG5ld0VuZFZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIG5ld0NoLCBuZXdFbmRJZHgpO1xuICAgICAgICBvbGRFbmRWbm9kZSA9IG9sZENoWy0tb2xkRW5kSWR4XTtcbiAgICAgICAgbmV3RW5kVm5vZGUgPSBuZXdDaFstLW5ld0VuZElkeF07XG4gICAgICB9IGVsc2UgaWYgKHNhbWVWbm9kZShvbGRTdGFydFZub2RlLCBuZXdFbmRWbm9kZSkpIHsgLy8gVm5vZGUgbW92ZWQgcmlnaHRcbiAgICAgICAgcGF0Y2hWbm9kZShvbGRTdGFydFZub2RlLCBuZXdFbmRWbm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCBuZXdDaCwgbmV3RW5kSWR4KTtcbiAgICAgICAgY2FuTW92ZSAmJiBub2RlT3BzLmluc2VydEJlZm9yZShwYXJlbnRFbG0sIG9sZFN0YXJ0Vm5vZGUuZWxtLCBub2RlT3BzLm5leHRTaWJsaW5nKG9sZEVuZFZub2RlLmVsbSkpO1xuICAgICAgICBvbGRTdGFydFZub2RlID0gb2xkQ2hbKytvbGRTdGFydElkeF07XG4gICAgICAgIG5ld0VuZFZub2RlID0gbmV3Q2hbLS1uZXdFbmRJZHhdO1xuICAgICAgfSBlbHNlIGlmIChzYW1lVm5vZGUob2xkRW5kVm5vZGUsIG5ld1N0YXJ0Vm5vZGUpKSB7IC8vIFZub2RlIG1vdmVkIGxlZnRcbiAgICAgICAgcGF0Y2hWbm9kZShvbGRFbmRWbm9kZSwgbmV3U3RhcnRWbm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCBuZXdDaCwgbmV3U3RhcnRJZHgpO1xuICAgICAgICBjYW5Nb3ZlICYmIG5vZGVPcHMuaW5zZXJ0QmVmb3JlKHBhcmVudEVsbSwgb2xkRW5kVm5vZGUuZWxtLCBvbGRTdGFydFZub2RlLmVsbSk7XG4gICAgICAgIG9sZEVuZFZub2RlID0gb2xkQ2hbLS1vbGRFbmRJZHhdO1xuICAgICAgICBuZXdTdGFydFZub2RlID0gbmV3Q2hbKytuZXdTdGFydElkeF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoaXNVbmRlZihvbGRLZXlUb0lkeCkpIHsgb2xkS2V5VG9JZHggPSBjcmVhdGVLZXlUb09sZElkeChvbGRDaCwgb2xkU3RhcnRJZHgsIG9sZEVuZElkeCk7IH1cbiAgICAgICAgaWR4SW5PbGQgPSBpc0RlZihuZXdTdGFydFZub2RlLmtleSlcbiAgICAgICAgICA/IG9sZEtleVRvSWR4W25ld1N0YXJ0Vm5vZGUua2V5XVxuICAgICAgICAgIDogZmluZElkeEluT2xkKG5ld1N0YXJ0Vm5vZGUsIG9sZENoLCBvbGRTdGFydElkeCwgb2xkRW5kSWR4KTtcbiAgICAgICAgaWYgKGlzVW5kZWYoaWR4SW5PbGQpKSB7IC8vIE5ldyBlbGVtZW50XG4gICAgICAgICAgY3JlYXRlRWxtKG5ld1N0YXJ0Vm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSwgcGFyZW50RWxtLCBvbGRTdGFydFZub2RlLmVsbSwgZmFsc2UsIG5ld0NoLCBuZXdTdGFydElkeCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdm5vZGVUb01vdmUgPSBvbGRDaFtpZHhJbk9sZF07XG4gICAgICAgICAgaWYgKHNhbWVWbm9kZSh2bm9kZVRvTW92ZSwgbmV3U3RhcnRWbm9kZSkpIHtcbiAgICAgICAgICAgIHBhdGNoVm5vZGUodm5vZGVUb01vdmUsIG5ld1N0YXJ0Vm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSwgbmV3Q2gsIG5ld1N0YXJ0SWR4KTtcbiAgICAgICAgICAgIG9sZENoW2lkeEluT2xkXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNhbk1vdmUgJiYgbm9kZU9wcy5pbnNlcnRCZWZvcmUocGFyZW50RWxtLCB2bm9kZVRvTW92ZS5lbG0sIG9sZFN0YXJ0Vm5vZGUuZWxtKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gc2FtZSBrZXkgYnV0IGRpZmZlcmVudCBlbGVtZW50LiB0cmVhdCBhcyBuZXcgZWxlbWVudFxuICAgICAgICAgICAgY3JlYXRlRWxtKG5ld1N0YXJ0Vm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSwgcGFyZW50RWxtLCBvbGRTdGFydFZub2RlLmVsbSwgZmFsc2UsIG5ld0NoLCBuZXdTdGFydElkeCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG5ld1N0YXJ0Vm5vZGUgPSBuZXdDaFsrK25ld1N0YXJ0SWR4XTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG9sZFN0YXJ0SWR4ID4gb2xkRW5kSWR4KSB7XG4gICAgICByZWZFbG0gPSBpc1VuZGVmKG5ld0NoW25ld0VuZElkeCArIDFdKSA/IG51bGwgOiBuZXdDaFtuZXdFbmRJZHggKyAxXS5lbG07XG4gICAgICBhZGRWbm9kZXMocGFyZW50RWxtLCByZWZFbG0sIG5ld0NoLCBuZXdTdGFydElkeCwgbmV3RW5kSWR4LCBpbnNlcnRlZFZub2RlUXVldWUpO1xuICAgIH0gZWxzZSBpZiAobmV3U3RhcnRJZHggPiBuZXdFbmRJZHgpIHtcbiAgICAgIHJlbW92ZVZub2RlcyhvbGRDaCwgb2xkU3RhcnRJZHgsIG9sZEVuZElkeCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gY2hlY2tEdXBsaWNhdGVLZXlzIChjaGlsZHJlbikge1xuICAgIHZhciBzZWVuS2V5cyA9IHt9O1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciB2bm9kZSA9IGNoaWxkcmVuW2ldO1xuICAgICAgdmFyIGtleSA9IHZub2RlLmtleTtcbiAgICAgIGlmIChpc0RlZihrZXkpKSB7XG4gICAgICAgIGlmIChzZWVuS2V5c1trZXldKSB7XG4gICAgICAgICAgd2FybihcbiAgICAgICAgICAgIChcIkR1cGxpY2F0ZSBrZXlzIGRldGVjdGVkOiAnXCIgKyBrZXkgKyBcIicuIFRoaXMgbWF5IGNhdXNlIGFuIHVwZGF0ZSBlcnJvci5cIiksXG4gICAgICAgICAgICB2bm9kZS5jb250ZXh0XG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZWVuS2V5c1trZXldID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGZpbmRJZHhJbk9sZCAobm9kZSwgb2xkQ2gsIHN0YXJ0LCBlbmQpIHtcbiAgICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgICAgdmFyIGMgPSBvbGRDaFtpXTtcbiAgICAgIGlmIChpc0RlZihjKSAmJiBzYW1lVm5vZGUobm9kZSwgYykpIHsgcmV0dXJuIGkgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHBhdGNoVm5vZGUgKFxuICAgIG9sZFZub2RlLFxuICAgIHZub2RlLFxuICAgIGluc2VydGVkVm5vZGVRdWV1ZSxcbiAgICBvd25lckFycmF5LFxuICAgIGluZGV4LFxuICAgIHJlbW92ZU9ubHlcbiAgKSB7XG4gICAgaWYgKG9sZFZub2RlID09PSB2bm9kZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGlzRGVmKHZub2RlLmVsbSkgJiYgaXNEZWYob3duZXJBcnJheSkpIHtcbiAgICAgIC8vIGNsb25lIHJldXNlZCB2bm9kZVxuICAgICAgdm5vZGUgPSBvd25lckFycmF5W2luZGV4XSA9IGNsb25lVk5vZGUodm5vZGUpO1xuICAgIH1cblxuICAgIHZhciBlbG0gPSB2bm9kZS5lbG0gPSBvbGRWbm9kZS5lbG07XG5cbiAgICBpZiAoaXNUcnVlKG9sZFZub2RlLmlzQXN5bmNQbGFjZWhvbGRlcikpIHtcbiAgICAgIGlmIChpc0RlZih2bm9kZS5hc3luY0ZhY3RvcnkucmVzb2x2ZWQpKSB7XG4gICAgICAgIGh5ZHJhdGUob2xkVm5vZGUuZWxtLCB2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZub2RlLmlzQXN5bmNQbGFjZWhvbGRlciA9IHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyByZXVzZSBlbGVtZW50IGZvciBzdGF0aWMgdHJlZXMuXG4gICAgLy8gbm90ZSB3ZSBvbmx5IGRvIHRoaXMgaWYgdGhlIHZub2RlIGlzIGNsb25lZCAtXG4gICAgLy8gaWYgdGhlIG5ldyBub2RlIGlzIG5vdCBjbG9uZWQgaXQgbWVhbnMgdGhlIHJlbmRlciBmdW5jdGlvbnMgaGF2ZSBiZWVuXG4gICAgLy8gcmVzZXQgYnkgdGhlIGhvdC1yZWxvYWQtYXBpIGFuZCB3ZSBuZWVkIHRvIGRvIGEgcHJvcGVyIHJlLXJlbmRlci5cbiAgICBpZiAoaXNUcnVlKHZub2RlLmlzU3RhdGljKSAmJlxuICAgICAgaXNUcnVlKG9sZFZub2RlLmlzU3RhdGljKSAmJlxuICAgICAgdm5vZGUua2V5ID09PSBvbGRWbm9kZS5rZXkgJiZcbiAgICAgIChpc1RydWUodm5vZGUuaXNDbG9uZWQpIHx8IGlzVHJ1ZSh2bm9kZS5pc09uY2UpKVxuICAgICkge1xuICAgICAgdm5vZGUuY29tcG9uZW50SW5zdGFuY2UgPSBvbGRWbm9kZS5jb21wb25lbnRJbnN0YW5jZTtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHZhciBpO1xuICAgIHZhciBkYXRhID0gdm5vZGUuZGF0YTtcbiAgICBpZiAoaXNEZWYoZGF0YSkgJiYgaXNEZWYoaSA9IGRhdGEuaG9vaykgJiYgaXNEZWYoaSA9IGkucHJlcGF0Y2gpKSB7XG4gICAgICBpKG9sZFZub2RlLCB2bm9kZSk7XG4gICAgfVxuXG4gICAgdmFyIG9sZENoID0gb2xkVm5vZGUuY2hpbGRyZW47XG4gICAgdmFyIGNoID0gdm5vZGUuY2hpbGRyZW47XG4gICAgaWYgKGlzRGVmKGRhdGEpICYmIGlzUGF0Y2hhYmxlKHZub2RlKSkge1xuICAgICAgZm9yIChpID0gMDsgaSA8IGNicy51cGRhdGUubGVuZ3RoOyArK2kpIHsgY2JzLnVwZGF0ZVtpXShvbGRWbm9kZSwgdm5vZGUpOyB9XG4gICAgICBpZiAoaXNEZWYoaSA9IGRhdGEuaG9vaykgJiYgaXNEZWYoaSA9IGkudXBkYXRlKSkgeyBpKG9sZFZub2RlLCB2bm9kZSk7IH1cbiAgICB9XG4gICAgaWYgKGlzVW5kZWYodm5vZGUudGV4dCkpIHtcbiAgICAgIGlmIChpc0RlZihvbGRDaCkgJiYgaXNEZWYoY2gpKSB7XG4gICAgICAgIGlmIChvbGRDaCAhPT0gY2gpIHsgdXBkYXRlQ2hpbGRyZW4oZWxtLCBvbGRDaCwgY2gsIGluc2VydGVkVm5vZGVRdWV1ZSwgcmVtb3ZlT25seSk7IH1cbiAgICAgIH0gZWxzZSBpZiAoaXNEZWYoY2gpKSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgY2hlY2tEdXBsaWNhdGVLZXlzKGNoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNEZWYob2xkVm5vZGUudGV4dCkpIHsgbm9kZU9wcy5zZXRUZXh0Q29udGVudChlbG0sICcnKTsgfVxuICAgICAgICBhZGRWbm9kZXMoZWxtLCBudWxsLCBjaCwgMCwgY2gubGVuZ3RoIC0gMSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKTtcbiAgICAgIH0gZWxzZSBpZiAoaXNEZWYob2xkQ2gpKSB7XG4gICAgICAgIHJlbW92ZVZub2RlcyhvbGRDaCwgMCwgb2xkQ2gubGVuZ3RoIC0gMSk7XG4gICAgICB9IGVsc2UgaWYgKGlzRGVmKG9sZFZub2RlLnRleHQpKSB7XG4gICAgICAgIG5vZGVPcHMuc2V0VGV4dENvbnRlbnQoZWxtLCAnJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChvbGRWbm9kZS50ZXh0ICE9PSB2bm9kZS50ZXh0KSB7XG4gICAgICBub2RlT3BzLnNldFRleHRDb250ZW50KGVsbSwgdm5vZGUudGV4dCk7XG4gICAgfVxuICAgIGlmIChpc0RlZihkYXRhKSkge1xuICAgICAgaWYgKGlzRGVmKGkgPSBkYXRhLmhvb2spICYmIGlzRGVmKGkgPSBpLnBvc3RwYXRjaCkpIHsgaShvbGRWbm9kZSwgdm5vZGUpOyB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaW52b2tlSW5zZXJ0SG9vayAodm5vZGUsIHF1ZXVlLCBpbml0aWFsKSB7XG4gICAgLy8gZGVsYXkgaW5zZXJ0IGhvb2tzIGZvciBjb21wb25lbnQgcm9vdCBub2RlcywgaW52b2tlIHRoZW0gYWZ0ZXIgdGhlXG4gICAgLy8gZWxlbWVudCBpcyByZWFsbHkgaW5zZXJ0ZWRcbiAgICBpZiAoaXNUcnVlKGluaXRpYWwpICYmIGlzRGVmKHZub2RlLnBhcmVudCkpIHtcbiAgICAgIHZub2RlLnBhcmVudC5kYXRhLnBlbmRpbmdJbnNlcnQgPSBxdWV1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBxdWV1ZS5sZW5ndGg7ICsraSkge1xuICAgICAgICBxdWV1ZVtpXS5kYXRhLmhvb2suaW5zZXJ0KHF1ZXVlW2ldKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgaHlkcmF0aW9uQmFpbGVkID0gZmFsc2U7XG4gIC8vIGxpc3Qgb2YgbW9kdWxlcyB0aGF0IGNhbiBza2lwIGNyZWF0ZSBob29rIGR1cmluZyBoeWRyYXRpb24gYmVjYXVzZSB0aGV5XG4gIC8vIGFyZSBhbHJlYWR5IHJlbmRlcmVkIG9uIHRoZSBjbGllbnQgb3IgaGFzIG5vIG5lZWQgZm9yIGluaXRpYWxpemF0aW9uXG4gIC8vIE5vdGU6IHN0eWxlIGlzIGV4Y2x1ZGVkIGJlY2F1c2UgaXQgcmVsaWVzIG9uIGluaXRpYWwgY2xvbmUgZm9yIGZ1dHVyZVxuICAvLyBkZWVwIHVwZGF0ZXMgKCM3MDYzKS5cbiAgdmFyIGlzUmVuZGVyZWRNb2R1bGUgPSBtYWtlTWFwKCdhdHRycyxjbGFzcyxzdGF0aWNDbGFzcyxzdGF0aWNTdHlsZSxrZXknKTtcblxuICAvLyBOb3RlOiB0aGlzIGlzIGEgYnJvd3Nlci1vbmx5IGZ1bmN0aW9uIHNvIHdlIGNhbiBhc3N1bWUgZWxtcyBhcmUgRE9NIG5vZGVzLlxuICBmdW5jdGlvbiBoeWRyYXRlIChlbG0sIHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIGluVlByZSkge1xuICAgIHZhciBpO1xuICAgIHZhciB0YWcgPSB2bm9kZS50YWc7XG4gICAgdmFyIGRhdGEgPSB2bm9kZS5kYXRhO1xuICAgIHZhciBjaGlsZHJlbiA9IHZub2RlLmNoaWxkcmVuO1xuICAgIGluVlByZSA9IGluVlByZSB8fCAoZGF0YSAmJiBkYXRhLnByZSk7XG4gICAgdm5vZGUuZWxtID0gZWxtO1xuXG4gICAgaWYgKGlzVHJ1ZSh2bm9kZS5pc0NvbW1lbnQpICYmIGlzRGVmKHZub2RlLmFzeW5jRmFjdG9yeSkpIHtcbiAgICAgIHZub2RlLmlzQXN5bmNQbGFjZWhvbGRlciA9IHRydWU7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICAvLyBhc3NlcnQgbm9kZSBtYXRjaFxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBpZiAoIWFzc2VydE5vZGVNYXRjaChlbG0sIHZub2RlLCBpblZQcmUpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaXNEZWYoZGF0YSkpIHtcbiAgICAgIGlmIChpc0RlZihpID0gZGF0YS5ob29rKSAmJiBpc0RlZihpID0gaS5pbml0KSkgeyBpKHZub2RlLCB0cnVlIC8qIGh5ZHJhdGluZyAqLyk7IH1cbiAgICAgIGlmIChpc0RlZihpID0gdm5vZGUuY29tcG9uZW50SW5zdGFuY2UpKSB7XG4gICAgICAgIC8vIGNoaWxkIGNvbXBvbmVudC4gaXQgc2hvdWxkIGhhdmUgaHlkcmF0ZWQgaXRzIG93biB0cmVlLlxuICAgICAgICBpbml0Q29tcG9uZW50KHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUpO1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaXNEZWYodGFnKSkge1xuICAgICAgaWYgKGlzRGVmKGNoaWxkcmVuKSkge1xuICAgICAgICAvLyBlbXB0eSBlbGVtZW50LCBhbGxvdyBjbGllbnQgdG8gcGljayB1cCBhbmQgcG9wdWxhdGUgY2hpbGRyZW5cbiAgICAgICAgaWYgKCFlbG0uaGFzQ2hpbGROb2RlcygpKSB7XG4gICAgICAgICAgY3JlYXRlQ2hpbGRyZW4odm5vZGUsIGNoaWxkcmVuLCBpbnNlcnRlZFZub2RlUXVldWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIHYtaHRtbCBhbmQgZG9tUHJvcHM6IGlubmVySFRNTFxuICAgICAgICAgIGlmIChpc0RlZihpID0gZGF0YSkgJiYgaXNEZWYoaSA9IGkuZG9tUHJvcHMpICYmIGlzRGVmKGkgPSBpLmlubmVySFRNTCkpIHtcbiAgICAgICAgICAgIGlmIChpICE9PSBlbG0uaW5uZXJIVE1MKSB7XG4gICAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJlxuICAgICAgICAgICAgICAgIHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgICAgICAgICAgICFoeWRyYXRpb25CYWlsZWRcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgaHlkcmF0aW9uQmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ1BhcmVudDogJywgZWxtKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ3NlcnZlciBpbm5lckhUTUw6ICcsIGkpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignY2xpZW50IGlubmVySFRNTDogJywgZWxtLmlubmVySFRNTCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGl0ZXJhdGUgYW5kIGNvbXBhcmUgY2hpbGRyZW4gbGlzdHNcbiAgICAgICAgICAgIHZhciBjaGlsZHJlbk1hdGNoID0gdHJ1ZTtcbiAgICAgICAgICAgIHZhciBjaGlsZE5vZGUgPSBlbG0uZmlyc3RDaGlsZDtcbiAgICAgICAgICAgIGZvciAodmFyIGkkMSA9IDA7IGkkMSA8IGNoaWxkcmVuLmxlbmd0aDsgaSQxKyspIHtcbiAgICAgICAgICAgICAgaWYgKCFjaGlsZE5vZGUgfHwgIWh5ZHJhdGUoY2hpbGROb2RlLCBjaGlsZHJlbltpJDFdLCBpbnNlcnRlZFZub2RlUXVldWUsIGluVlByZSkpIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbk1hdGNoID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjaGlsZE5vZGUgPSBjaGlsZE5vZGUubmV4dFNpYmxpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBpZiBjaGlsZE5vZGUgaXMgbm90IG51bGwsIGl0IG1lYW5zIHRoZSBhY3R1YWwgY2hpbGROb2RlcyBsaXN0IGlzXG4gICAgICAgICAgICAvLyBsb25nZXIgdGhhbiB0aGUgdmlydHVhbCBjaGlsZHJlbiBsaXN0LlxuICAgICAgICAgICAgaWYgKCFjaGlsZHJlbk1hdGNoIHx8IGNoaWxkTm9kZSkge1xuICAgICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiZcbiAgICAgICAgICAgICAgICB0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgICAgICAgICAhaHlkcmF0aW9uQmFpbGVkXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGh5ZHJhdGlvbkJhaWxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdQYXJlbnQ6ICcsIGVsbSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdNaXNtYXRjaGluZyBjaGlsZE5vZGVzIHZzLiBWTm9kZXM6ICcsIGVsbS5jaGlsZE5vZGVzLCBjaGlsZHJlbik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaXNEZWYoZGF0YSkpIHtcbiAgICAgICAgdmFyIGZ1bGxJbnZva2UgPSBmYWxzZTtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIGRhdGEpIHtcbiAgICAgICAgICBpZiAoIWlzUmVuZGVyZWRNb2R1bGUoa2V5KSkge1xuICAgICAgICAgICAgZnVsbEludm9rZSA9IHRydWU7XG4gICAgICAgICAgICBpbnZva2VDcmVhdGVIb29rcyh2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKTtcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghZnVsbEludm9rZSAmJiBkYXRhWydjbGFzcyddKSB7XG4gICAgICAgICAgLy8gZW5zdXJlIGNvbGxlY3RpbmcgZGVwcyBmb3IgZGVlcCBjbGFzcyBiaW5kaW5ncyBmb3IgZnV0dXJlIHVwZGF0ZXNcbiAgICAgICAgICB0cmF2ZXJzZShkYXRhWydjbGFzcyddKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZWxtLmRhdGEgIT09IHZub2RlLnRleHQpIHtcbiAgICAgIGVsbS5kYXRhID0gdm5vZGUudGV4dDtcbiAgICB9XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGZ1bmN0aW9uIGFzc2VydE5vZGVNYXRjaCAobm9kZSwgdm5vZGUsIGluVlByZSkge1xuICAgIGlmIChpc0RlZih2bm9kZS50YWcpKSB7XG4gICAgICByZXR1cm4gdm5vZGUudGFnLmluZGV4T2YoJ3Z1ZS1jb21wb25lbnQnKSA9PT0gMCB8fCAoXG4gICAgICAgICFpc1Vua25vd25FbGVtZW50JCQxKHZub2RlLCBpblZQcmUpICYmXG4gICAgICAgIHZub2RlLnRhZy50b0xvd2VyQ2FzZSgpID09PSAobm9kZS50YWdOYW1lICYmIG5vZGUudGFnTmFtZS50b0xvd2VyQ2FzZSgpKVxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbm9kZS5ub2RlVHlwZSA9PT0gKHZub2RlLmlzQ29tbWVudCA/IDggOiAzKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmdW5jdGlvbiBwYXRjaCAob2xkVm5vZGUsIHZub2RlLCBoeWRyYXRpbmcsIHJlbW92ZU9ubHkpIHtcbiAgICBpZiAoaXNVbmRlZih2bm9kZSkpIHtcbiAgICAgIGlmIChpc0RlZihvbGRWbm9kZSkpIHsgaW52b2tlRGVzdHJveUhvb2sob2xkVm5vZGUpOyB9XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB2YXIgaXNJbml0aWFsUGF0Y2ggPSBmYWxzZTtcbiAgICB2YXIgaW5zZXJ0ZWRWbm9kZVF1ZXVlID0gW107XG5cbiAgICBpZiAoaXNVbmRlZihvbGRWbm9kZSkpIHtcbiAgICAgIC8vIGVtcHR5IG1vdW50IChsaWtlbHkgYXMgY29tcG9uZW50KSwgY3JlYXRlIG5ldyByb290IGVsZW1lbnRcbiAgICAgIGlzSW5pdGlhbFBhdGNoID0gdHJ1ZTtcbiAgICAgIGNyZWF0ZUVsbSh2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGlzUmVhbEVsZW1lbnQgPSBpc0RlZihvbGRWbm9kZS5ub2RlVHlwZSk7XG4gICAgICBpZiAoIWlzUmVhbEVsZW1lbnQgJiYgc2FtZVZub2RlKG9sZFZub2RlLCB2bm9kZSkpIHtcbiAgICAgICAgLy8gcGF0Y2ggZXhpc3Rpbmcgcm9vdCBub2RlXG4gICAgICAgIHBhdGNoVm5vZGUob2xkVm5vZGUsIHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIG51bGwsIG51bGwsIHJlbW92ZU9ubHkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGlzUmVhbEVsZW1lbnQpIHtcbiAgICAgICAgICAvLyBtb3VudGluZyB0byBhIHJlYWwgZWxlbWVudFxuICAgICAgICAgIC8vIGNoZWNrIGlmIHRoaXMgaXMgc2VydmVyLXJlbmRlcmVkIGNvbnRlbnQgYW5kIGlmIHdlIGNhbiBwZXJmb3JtXG4gICAgICAgICAgLy8gYSBzdWNjZXNzZnVsIGh5ZHJhdGlvbi5cbiAgICAgICAgICBpZiAob2xkVm5vZGUubm9kZVR5cGUgPT09IDEgJiYgb2xkVm5vZGUuaGFzQXR0cmlidXRlKFNTUl9BVFRSKSkge1xuICAgICAgICAgICAgb2xkVm5vZGUucmVtb3ZlQXR0cmlidXRlKFNTUl9BVFRSKTtcbiAgICAgICAgICAgIGh5ZHJhdGluZyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc1RydWUoaHlkcmF0aW5nKSkge1xuICAgICAgICAgICAgaWYgKGh5ZHJhdGUob2xkVm5vZGUsIHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUpKSB7XG4gICAgICAgICAgICAgIGludm9rZUluc2VydEhvb2sodm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgIHJldHVybiBvbGRWbm9kZVxuICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAgIHdhcm4oXG4gICAgICAgICAgICAgICAgJ1RoZSBjbGllbnQtc2lkZSByZW5kZXJlZCB2aXJ0dWFsIERPTSB0cmVlIGlzIG5vdCBtYXRjaGluZyAnICtcbiAgICAgICAgICAgICAgICAnc2VydmVyLXJlbmRlcmVkIGNvbnRlbnQuIFRoaXMgaXMgbGlrZWx5IGNhdXNlZCBieSBpbmNvcnJlY3QgJyArXG4gICAgICAgICAgICAgICAgJ0hUTUwgbWFya3VwLCBmb3IgZXhhbXBsZSBuZXN0aW5nIGJsb2NrLWxldmVsIGVsZW1lbnRzIGluc2lkZSAnICtcbiAgICAgICAgICAgICAgICAnPHA+LCBvciBtaXNzaW5nIDx0Ym9keT4uIEJhaWxpbmcgaHlkcmF0aW9uIGFuZCBwZXJmb3JtaW5nICcgK1xuICAgICAgICAgICAgICAgICdmdWxsIGNsaWVudC1zaWRlIHJlbmRlci4nXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIGVpdGhlciBub3Qgc2VydmVyLXJlbmRlcmVkLCBvciBoeWRyYXRpb24gZmFpbGVkLlxuICAgICAgICAgIC8vIGNyZWF0ZSBhbiBlbXB0eSBub2RlIGFuZCByZXBsYWNlIGl0XG4gICAgICAgICAgb2xkVm5vZGUgPSBlbXB0eU5vZGVBdChvbGRWbm9kZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyByZXBsYWNpbmcgZXhpc3RpbmcgZWxlbWVudFxuICAgICAgICB2YXIgb2xkRWxtID0gb2xkVm5vZGUuZWxtO1xuICAgICAgICB2YXIgcGFyZW50RWxtID0gbm9kZU9wcy5wYXJlbnROb2RlKG9sZEVsbSk7XG5cbiAgICAgICAgLy8gY3JlYXRlIG5ldyBub2RlXG4gICAgICAgIGNyZWF0ZUVsbShcbiAgICAgICAgICB2bm9kZSxcbiAgICAgICAgICBpbnNlcnRlZFZub2RlUXVldWUsXG4gICAgICAgICAgLy8gZXh0cmVtZWx5IHJhcmUgZWRnZSBjYXNlOiBkbyBub3QgaW5zZXJ0IGlmIG9sZCBlbGVtZW50IGlzIGluIGFcbiAgICAgICAgICAvLyBsZWF2aW5nIHRyYW5zaXRpb24uIE9ubHkgaGFwcGVucyB3aGVuIGNvbWJpbmluZyB0cmFuc2l0aW9uICtcbiAgICAgICAgICAvLyBrZWVwLWFsaXZlICsgSE9Dcy4gKCM0NTkwKVxuICAgICAgICAgIG9sZEVsbS5fbGVhdmVDYiA/IG51bGwgOiBwYXJlbnRFbG0sXG4gICAgICAgICAgbm9kZU9wcy5uZXh0U2libGluZyhvbGRFbG0pXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gdXBkYXRlIHBhcmVudCBwbGFjZWhvbGRlciBub2RlIGVsZW1lbnQsIHJlY3Vyc2l2ZWx5XG4gICAgICAgIGlmIChpc0RlZih2bm9kZS5wYXJlbnQpKSB7XG4gICAgICAgICAgdmFyIGFuY2VzdG9yID0gdm5vZGUucGFyZW50O1xuICAgICAgICAgIHZhciBwYXRjaGFibGUgPSBpc1BhdGNoYWJsZSh2bm9kZSk7XG4gICAgICAgICAgd2hpbGUgKGFuY2VzdG9yKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNicy5kZXN0cm95Lmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICAgIGNicy5kZXN0cm95W2ldKGFuY2VzdG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFuY2VzdG9yLmVsbSA9IHZub2RlLmVsbTtcbiAgICAgICAgICAgIGlmIChwYXRjaGFibGUpIHtcbiAgICAgICAgICAgICAgZm9yICh2YXIgaSQxID0gMDsgaSQxIDwgY2JzLmNyZWF0ZS5sZW5ndGg7ICsraSQxKSB7XG4gICAgICAgICAgICAgICAgY2JzLmNyZWF0ZVtpJDFdKGVtcHR5Tm9kZSwgYW5jZXN0b3IpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8vICM2NTEzXG4gICAgICAgICAgICAgIC8vIGludm9rZSBpbnNlcnQgaG9va3MgdGhhdCBtYXkgaGF2ZSBiZWVuIG1lcmdlZCBieSBjcmVhdGUgaG9va3MuXG4gICAgICAgICAgICAgIC8vIGUuZy4gZm9yIGRpcmVjdGl2ZXMgdGhhdCB1c2VzIHRoZSBcImluc2VydGVkXCIgaG9vay5cbiAgICAgICAgICAgICAgdmFyIGluc2VydCA9IGFuY2VzdG9yLmRhdGEuaG9vay5pbnNlcnQ7XG4gICAgICAgICAgICAgIGlmIChpbnNlcnQubWVyZ2VkKSB7XG4gICAgICAgICAgICAgICAgLy8gc3RhcnQgYXQgaW5kZXggMSB0byBhdm9pZCByZS1pbnZva2luZyBjb21wb25lbnQgbW91bnRlZCBob29rXG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaSQyID0gMTsgaSQyIDwgaW5zZXJ0LmZucy5sZW5ndGg7IGkkMisrKSB7XG4gICAgICAgICAgICAgICAgICBpbnNlcnQuZm5zW2kkMl0oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlZ2lzdGVyUmVmKGFuY2VzdG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFuY2VzdG9yID0gYW5jZXN0b3IucGFyZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGRlc3Ryb3kgb2xkIG5vZGVcbiAgICAgICAgaWYgKGlzRGVmKHBhcmVudEVsbSkpIHtcbiAgICAgICAgICByZW1vdmVWbm9kZXMoW29sZFZub2RlXSwgMCwgMCk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNEZWYob2xkVm5vZGUudGFnKSkge1xuICAgICAgICAgIGludm9rZURlc3Ryb3lIb29rKG9sZFZub2RlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGludm9rZUluc2VydEhvb2sodm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSwgaXNJbml0aWFsUGF0Y2gpO1xuICAgIHJldHVybiB2bm9kZS5lbG1cbiAgfVxufVxuXG4vKiAgKi9cblxudmFyIGRpcmVjdGl2ZXMgPSB7XG4gIGNyZWF0ZTogdXBkYXRlRGlyZWN0aXZlcyxcbiAgdXBkYXRlOiB1cGRhdGVEaXJlY3RpdmVzLFxuICBkZXN0cm95OiBmdW5jdGlvbiB1bmJpbmREaXJlY3RpdmVzICh2bm9kZSkge1xuICAgIHVwZGF0ZURpcmVjdGl2ZXModm5vZGUsIGVtcHR5Tm9kZSk7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIHVwZGF0ZURpcmVjdGl2ZXMgKG9sZFZub2RlLCB2bm9kZSkge1xuICBpZiAob2xkVm5vZGUuZGF0YS5kaXJlY3RpdmVzIHx8IHZub2RlLmRhdGEuZGlyZWN0aXZlcykge1xuICAgIF91cGRhdGUob2xkVm5vZGUsIHZub2RlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBfdXBkYXRlIChvbGRWbm9kZSwgdm5vZGUpIHtcbiAgdmFyIGlzQ3JlYXRlID0gb2xkVm5vZGUgPT09IGVtcHR5Tm9kZTtcbiAgdmFyIGlzRGVzdHJveSA9IHZub2RlID09PSBlbXB0eU5vZGU7XG4gIHZhciBvbGREaXJzID0gbm9ybWFsaXplRGlyZWN0aXZlcyQxKG9sZFZub2RlLmRhdGEuZGlyZWN0aXZlcywgb2xkVm5vZGUuY29udGV4dCk7XG4gIHZhciBuZXdEaXJzID0gbm9ybWFsaXplRGlyZWN0aXZlcyQxKHZub2RlLmRhdGEuZGlyZWN0aXZlcywgdm5vZGUuY29udGV4dCk7XG5cbiAgdmFyIGRpcnNXaXRoSW5zZXJ0ID0gW107XG4gIHZhciBkaXJzV2l0aFBvc3RwYXRjaCA9IFtdO1xuXG4gIHZhciBrZXksIG9sZERpciwgZGlyO1xuICBmb3IgKGtleSBpbiBuZXdEaXJzKSB7XG4gICAgb2xkRGlyID0gb2xkRGlyc1trZXldO1xuICAgIGRpciA9IG5ld0RpcnNba2V5XTtcbiAgICBpZiAoIW9sZERpcikge1xuICAgICAgLy8gbmV3IGRpcmVjdGl2ZSwgYmluZFxuICAgICAgY2FsbEhvb2skMShkaXIsICdiaW5kJywgdm5vZGUsIG9sZFZub2RlKTtcbiAgICAgIGlmIChkaXIuZGVmICYmIGRpci5kZWYuaW5zZXJ0ZWQpIHtcbiAgICAgICAgZGlyc1dpdGhJbnNlcnQucHVzaChkaXIpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBleGlzdGluZyBkaXJlY3RpdmUsIHVwZGF0ZVxuICAgICAgZGlyLm9sZFZhbHVlID0gb2xkRGlyLnZhbHVlO1xuICAgICAgZGlyLm9sZEFyZyA9IG9sZERpci5hcmc7XG4gICAgICBjYWxsSG9vayQxKGRpciwgJ3VwZGF0ZScsIHZub2RlLCBvbGRWbm9kZSk7XG4gICAgICBpZiAoZGlyLmRlZiAmJiBkaXIuZGVmLmNvbXBvbmVudFVwZGF0ZWQpIHtcbiAgICAgICAgZGlyc1dpdGhQb3N0cGF0Y2gucHVzaChkaXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChkaXJzV2l0aEluc2VydC5sZW5ndGgpIHtcbiAgICB2YXIgY2FsbEluc2VydCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGlyc1dpdGhJbnNlcnQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY2FsbEhvb2skMShkaXJzV2l0aEluc2VydFtpXSwgJ2luc2VydGVkJywgdm5vZGUsIG9sZFZub2RlKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGlmIChpc0NyZWF0ZSkge1xuICAgICAgbWVyZ2VWTm9kZUhvb2sodm5vZGUsICdpbnNlcnQnLCBjYWxsSW5zZXJ0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FsbEluc2VydCgpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChkaXJzV2l0aFBvc3RwYXRjaC5sZW5ndGgpIHtcbiAgICBtZXJnZVZOb2RlSG9vayh2bm9kZSwgJ3Bvc3RwYXRjaCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGlyc1dpdGhQb3N0cGF0Y2gubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY2FsbEhvb2skMShkaXJzV2l0aFBvc3RwYXRjaFtpXSwgJ2NvbXBvbmVudFVwZGF0ZWQnLCB2bm9kZSwgb2xkVm5vZGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgaWYgKCFpc0NyZWF0ZSkge1xuICAgIGZvciAoa2V5IGluIG9sZERpcnMpIHtcbiAgICAgIGlmICghbmV3RGlyc1trZXldKSB7XG4gICAgICAgIC8vIG5vIGxvbmdlciBwcmVzZW50LCB1bmJpbmRcbiAgICAgICAgY2FsbEhvb2skMShvbGREaXJzW2tleV0sICd1bmJpbmQnLCBvbGRWbm9kZSwgb2xkVm5vZGUsIGlzRGVzdHJveSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciBlbXB0eU1vZGlmaWVycyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZURpcmVjdGl2ZXMkMSAoXG4gIGRpcnMsXG4gIHZtXG4pIHtcbiAgdmFyIHJlcyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIGlmICghZGlycykge1xuICAgIC8vICRmbG93LWRpc2FibGUtbGluZVxuICAgIHJldHVybiByZXNcbiAgfVxuICB2YXIgaSwgZGlyO1xuICBmb3IgKGkgPSAwOyBpIDwgZGlycy5sZW5ndGg7IGkrKykge1xuICAgIGRpciA9IGRpcnNbaV07XG4gICAgaWYgKCFkaXIubW9kaWZpZXJzKSB7XG4gICAgICAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbiAgICAgIGRpci5tb2RpZmllcnMgPSBlbXB0eU1vZGlmaWVycztcbiAgICB9XG4gICAgcmVzW2dldFJhd0Rpck5hbWUoZGlyKV0gPSBkaXI7XG4gICAgZGlyLmRlZiA9IHJlc29sdmVBc3NldCh2bS4kb3B0aW9ucywgJ2RpcmVjdGl2ZXMnLCBkaXIubmFtZSwgdHJ1ZSk7XG4gIH1cbiAgLy8gJGZsb3ctZGlzYWJsZS1saW5lXG4gIHJldHVybiByZXNcbn1cblxuZnVuY3Rpb24gZ2V0UmF3RGlyTmFtZSAoZGlyKSB7XG4gIHJldHVybiBkaXIucmF3TmFtZSB8fCAoKGRpci5uYW1lKSArIFwiLlwiICsgKE9iamVjdC5rZXlzKGRpci5tb2RpZmllcnMgfHwge30pLmpvaW4oJy4nKSkpXG59XG5cbmZ1bmN0aW9uIGNhbGxIb29rJDEgKGRpciwgaG9vaywgdm5vZGUsIG9sZFZub2RlLCBpc0Rlc3Ryb3kpIHtcbiAgdmFyIGZuID0gZGlyLmRlZiAmJiBkaXIuZGVmW2hvb2tdO1xuICBpZiAoZm4pIHtcbiAgICB0cnkge1xuICAgICAgZm4odm5vZGUuZWxtLCBkaXIsIHZub2RlLCBvbGRWbm9kZSwgaXNEZXN0cm95KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBoYW5kbGVFcnJvcihlLCB2bm9kZS5jb250ZXh0LCAoXCJkaXJlY3RpdmUgXCIgKyAoZGlyLm5hbWUpICsgXCIgXCIgKyBob29rICsgXCIgaG9va1wiKSk7XG4gICAgfVxuICB9XG59XG5cbnZhciBiYXNlTW9kdWxlcyA9IFtcbiAgcmVmLFxuICBkaXJlY3RpdmVzXG5dO1xuXG4vKiAgKi9cblxuZnVuY3Rpb24gdXBkYXRlQXR0cnMgKG9sZFZub2RlLCB2bm9kZSkge1xuICB2YXIgb3B0cyA9IHZub2RlLmNvbXBvbmVudE9wdGlvbnM7XG4gIGlmIChpc0RlZihvcHRzKSAmJiBvcHRzLkN0b3Iub3B0aW9ucy5pbmhlcml0QXR0cnMgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgaWYgKGlzVW5kZWYob2xkVm5vZGUuZGF0YS5hdHRycykgJiYgaXNVbmRlZih2bm9kZS5kYXRhLmF0dHJzKSkge1xuICAgIHJldHVyblxuICB9XG4gIHZhciBrZXksIGN1ciwgb2xkO1xuICB2YXIgZWxtID0gdm5vZGUuZWxtO1xuICB2YXIgb2xkQXR0cnMgPSBvbGRWbm9kZS5kYXRhLmF0dHJzIHx8IHt9O1xuICB2YXIgYXR0cnMgPSB2bm9kZS5kYXRhLmF0dHJzIHx8IHt9O1xuICAvLyBjbG9uZSBvYnNlcnZlZCBvYmplY3RzLCBhcyB0aGUgdXNlciBwcm9iYWJseSB3YW50cyB0byBtdXRhdGUgaXRcbiAgaWYgKGlzRGVmKGF0dHJzLl9fb2JfXykpIHtcbiAgICBhdHRycyA9IHZub2RlLmRhdGEuYXR0cnMgPSBleHRlbmQoe30sIGF0dHJzKTtcbiAgfVxuXG4gIGZvciAoa2V5IGluIGF0dHJzKSB7XG4gICAgY3VyID0gYXR0cnNba2V5XTtcbiAgICBvbGQgPSBvbGRBdHRyc1trZXldO1xuICAgIGlmIChvbGQgIT09IGN1cikge1xuICAgICAgc2V0QXR0cihlbG0sIGtleSwgY3VyLCB2bm9kZS5kYXRhLnByZSk7XG4gICAgfVxuICB9XG4gIC8vICM0MzkxOiBpbiBJRTksIHNldHRpbmcgdHlwZSBjYW4gcmVzZXQgdmFsdWUgZm9yIGlucHV0W3R5cGU9cmFkaW9dXG4gIC8vICM2NjY2OiBJRS9FZGdlIGZvcmNlcyBwcm9ncmVzcyB2YWx1ZSBkb3duIHRvIDEgYmVmb3JlIHNldHRpbmcgYSBtYXhcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmICgoaXNJRSB8fCBpc0VkZ2UpICYmIGF0dHJzLnZhbHVlICE9PSBvbGRBdHRycy52YWx1ZSkge1xuICAgIHNldEF0dHIoZWxtLCAndmFsdWUnLCBhdHRycy52YWx1ZSk7XG4gIH1cbiAgZm9yIChrZXkgaW4gb2xkQXR0cnMpIHtcbiAgICBpZiAoaXNVbmRlZihhdHRyc1trZXldKSkge1xuICAgICAgaWYgKGlzWGxpbmsoa2V5KSkge1xuICAgICAgICBlbG0ucmVtb3ZlQXR0cmlidXRlTlMoeGxpbmtOUywgZ2V0WGxpbmtQcm9wKGtleSkpO1xuICAgICAgfSBlbHNlIGlmICghaXNFbnVtZXJhdGVkQXR0cihrZXkpKSB7XG4gICAgICAgIGVsbS5yZW1vdmVBdHRyaWJ1dGUoa2V5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gc2V0QXR0ciAoZWwsIGtleSwgdmFsdWUsIGlzSW5QcmUpIHtcbiAgaWYgKGlzSW5QcmUgfHwgZWwudGFnTmFtZS5pbmRleE9mKCctJykgPiAtMSkge1xuICAgIGJhc2VTZXRBdHRyKGVsLCBrZXksIHZhbHVlKTtcbiAgfSBlbHNlIGlmIChpc0Jvb2xlYW5BdHRyKGtleSkpIHtcbiAgICAvLyBzZXQgYXR0cmlidXRlIGZvciBibGFuayB2YWx1ZVxuICAgIC8vIGUuZy4gPG9wdGlvbiBkaXNhYmxlZD5TZWxlY3Qgb25lPC9vcHRpb24+XG4gICAgaWYgKGlzRmFsc3lBdHRyVmFsdWUodmFsdWUpKSB7XG4gICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUoa2V5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdGVjaG5pY2FsbHkgYWxsb3dmdWxsc2NyZWVuIGlzIGEgYm9vbGVhbiBhdHRyaWJ1dGUgZm9yIDxpZnJhbWU+LFxuICAgICAgLy8gYnV0IEZsYXNoIGV4cGVjdHMgYSB2YWx1ZSBvZiBcInRydWVcIiB3aGVuIHVzZWQgb24gPGVtYmVkPiB0YWdcbiAgICAgIHZhbHVlID0ga2V5ID09PSAnYWxsb3dmdWxsc2NyZWVuJyAmJiBlbC50YWdOYW1lID09PSAnRU1CRUQnXG4gICAgICAgID8gJ3RydWUnXG4gICAgICAgIDoga2V5O1xuICAgICAgZWwuc2V0QXR0cmlidXRlKGtleSwgdmFsdWUpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChpc0VudW1lcmF0ZWRBdHRyKGtleSkpIHtcbiAgICBlbC5zZXRBdHRyaWJ1dGUoa2V5LCBjb252ZXJ0RW51bWVyYXRlZFZhbHVlKGtleSwgdmFsdWUpKTtcbiAgfSBlbHNlIGlmIChpc1hsaW5rKGtleSkpIHtcbiAgICBpZiAoaXNGYWxzeUF0dHJWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZU5TKHhsaW5rTlMsIGdldFhsaW5rUHJvcChrZXkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWwuc2V0QXR0cmlidXRlTlMoeGxpbmtOUywga2V5LCB2YWx1ZSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGJhc2VTZXRBdHRyKGVsLCBrZXksIHZhbHVlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBiYXNlU2V0QXR0ciAoZWwsIGtleSwgdmFsdWUpIHtcbiAgaWYgKGlzRmFsc3lBdHRyVmFsdWUodmFsdWUpKSB7XG4gICAgZWwucmVtb3ZlQXR0cmlidXRlKGtleSk7XG4gIH0gZWxzZSB7XG4gICAgLy8gIzcxMzg6IElFMTAgJiAxMSBmaXJlcyBpbnB1dCBldmVudCB3aGVuIHNldHRpbmcgcGxhY2Vob2xkZXIgb25cbiAgICAvLyA8dGV4dGFyZWE+Li4uIGJsb2NrIHRoZSBmaXJzdCBpbnB1dCBldmVudCBhbmQgcmVtb3ZlIHRoZSBibG9ja2VyXG4gICAgLy8gaW1tZWRpYXRlbHkuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKFxuICAgICAgaXNJRSAmJiAhaXNJRTkgJiZcbiAgICAgIGVsLnRhZ05hbWUgPT09ICdURVhUQVJFQScgJiZcbiAgICAgIGtleSA9PT0gJ3BsYWNlaG9sZGVyJyAmJiB2YWx1ZSAhPT0gJycgJiYgIWVsLl9faWVwaFxuICAgICkge1xuICAgICAgdmFyIGJsb2NrZXIgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICBlbC5yZW1vdmVFdmVudExpc3RlbmVyKCdpbnB1dCcsIGJsb2NrZXIpO1xuICAgICAgfTtcbiAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgYmxvY2tlcik7XG4gICAgICAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbiAgICAgIGVsLl9faWVwaCA9IHRydWU7IC8qIElFIHBsYWNlaG9sZGVyIHBhdGNoZWQgKi9cbiAgICB9XG4gICAgZWwuc2V0QXR0cmlidXRlKGtleSwgdmFsdWUpO1xuICB9XG59XG5cbnZhciBhdHRycyA9IHtcbiAgY3JlYXRlOiB1cGRhdGVBdHRycyxcbiAgdXBkYXRlOiB1cGRhdGVBdHRyc1xufTtcblxuLyogICovXG5cbmZ1bmN0aW9uIHVwZGF0ZUNsYXNzIChvbGRWbm9kZSwgdm5vZGUpIHtcbiAgdmFyIGVsID0gdm5vZGUuZWxtO1xuICB2YXIgZGF0YSA9IHZub2RlLmRhdGE7XG4gIHZhciBvbGREYXRhID0gb2xkVm5vZGUuZGF0YTtcbiAgaWYgKFxuICAgIGlzVW5kZWYoZGF0YS5zdGF0aWNDbGFzcykgJiZcbiAgICBpc1VuZGVmKGRhdGEuY2xhc3MpICYmIChcbiAgICAgIGlzVW5kZWYob2xkRGF0YSkgfHwgKFxuICAgICAgICBpc1VuZGVmKG9sZERhdGEuc3RhdGljQ2xhc3MpICYmXG4gICAgICAgIGlzVW5kZWYob2xkRGF0YS5jbGFzcylcbiAgICAgIClcbiAgICApXG4gICkge1xuICAgIHJldHVyblxuICB9XG5cbiAgdmFyIGNscyA9IGdlbkNsYXNzRm9yVm5vZGUodm5vZGUpO1xuXG4gIC8vIGhhbmRsZSB0cmFuc2l0aW9uIGNsYXNzZXNcbiAgdmFyIHRyYW5zaXRpb25DbGFzcyA9IGVsLl90cmFuc2l0aW9uQ2xhc3NlcztcbiAgaWYgKGlzRGVmKHRyYW5zaXRpb25DbGFzcykpIHtcbiAgICBjbHMgPSBjb25jYXQoY2xzLCBzdHJpbmdpZnlDbGFzcyh0cmFuc2l0aW9uQ2xhc3MpKTtcbiAgfVxuXG4gIC8vIHNldCB0aGUgY2xhc3NcbiAgaWYgKGNscyAhPT0gZWwuX3ByZXZDbGFzcykge1xuICAgIGVsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCBjbHMpO1xuICAgIGVsLl9wcmV2Q2xhc3MgPSBjbHM7XG4gIH1cbn1cblxudmFyIGtsYXNzID0ge1xuICBjcmVhdGU6IHVwZGF0ZUNsYXNzLFxuICB1cGRhdGU6IHVwZGF0ZUNsYXNzXG59O1xuXG4vKiAgKi9cblxuLyogICovXG5cbi8qICAqL1xuXG4vKiAgKi9cblxuLy8gaW4gc29tZSBjYXNlcywgdGhlIGV2ZW50IHVzZWQgaGFzIHRvIGJlIGRldGVybWluZWQgYXQgcnVudGltZVxuLy8gc28gd2UgdXNlZCBzb21lIHJlc2VydmVkIHRva2VucyBkdXJpbmcgY29tcGlsZS5cbnZhciBSQU5HRV9UT0tFTiA9ICdfX3InO1xudmFyIENIRUNLQk9YX1JBRElPX1RPS0VOID0gJ19fYyc7XG5cbi8qICAqL1xuXG4vLyBub3JtYWxpemUgdi1tb2RlbCBldmVudCB0b2tlbnMgdGhhdCBjYW4gb25seSBiZSBkZXRlcm1pbmVkIGF0IHJ1bnRpbWUuXG4vLyBpdCdzIGltcG9ydGFudCB0byBwbGFjZSB0aGUgZXZlbnQgYXMgdGhlIGZpcnN0IGluIHRoZSBhcnJheSBiZWNhdXNlXG4vLyB0aGUgd2hvbGUgcG9pbnQgaXMgZW5zdXJpbmcgdGhlIHYtbW9kZWwgY2FsbGJhY2sgZ2V0cyBjYWxsZWQgYmVmb3JlXG4vLyB1c2VyLWF0dGFjaGVkIGhhbmRsZXJzLlxuZnVuY3Rpb24gbm9ybWFsaXplRXZlbnRzIChvbikge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKGlzRGVmKG9uW1JBTkdFX1RPS0VOXSkpIHtcbiAgICAvLyBJRSBpbnB1dFt0eXBlPXJhbmdlXSBvbmx5IHN1cHBvcnRzIGBjaGFuZ2VgIGV2ZW50XG4gICAgdmFyIGV2ZW50ID0gaXNJRSA/ICdjaGFuZ2UnIDogJ2lucHV0JztcbiAgICBvbltldmVudF0gPSBbXS5jb25jYXQob25bUkFOR0VfVE9LRU5dLCBvbltldmVudF0gfHwgW10pO1xuICAgIGRlbGV0ZSBvbltSQU5HRV9UT0tFTl07XG4gIH1cbiAgLy8gVGhpcyB3YXMgb3JpZ2luYWxseSBpbnRlbmRlZCB0byBmaXggIzQ1MjEgYnV0IG5vIGxvbmdlciBuZWNlc3NhcnlcbiAgLy8gYWZ0ZXIgMi41LiBLZWVwaW5nIGl0IGZvciBiYWNrd2FyZHMgY29tcGF0IHdpdGggZ2VuZXJhdGVkIGNvZGUgZnJvbSA8IDIuNFxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKGlzRGVmKG9uW0NIRUNLQk9YX1JBRElPX1RPS0VOXSkpIHtcbiAgICBvbi5jaGFuZ2UgPSBbXS5jb25jYXQob25bQ0hFQ0tCT1hfUkFESU9fVE9LRU5dLCBvbi5jaGFuZ2UgfHwgW10pO1xuICAgIGRlbGV0ZSBvbltDSEVDS0JPWF9SQURJT19UT0tFTl07XG4gIH1cbn1cblxudmFyIHRhcmdldCQxO1xuXG5mdW5jdGlvbiBjcmVhdGVPbmNlSGFuZGxlciQxIChldmVudCwgaGFuZGxlciwgY2FwdHVyZSkge1xuICB2YXIgX3RhcmdldCA9IHRhcmdldCQxOyAvLyBzYXZlIGN1cnJlbnQgdGFyZ2V0IGVsZW1lbnQgaW4gY2xvc3VyZVxuICByZXR1cm4gZnVuY3Rpb24gb25jZUhhbmRsZXIgKCkge1xuICAgIHZhciByZXMgPSBoYW5kbGVyLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgaWYgKHJlcyAhPT0gbnVsbCkge1xuICAgICAgcmVtb3ZlJDIoZXZlbnQsIG9uY2VIYW5kbGVyLCBjYXB0dXJlLCBfdGFyZ2V0KTtcbiAgICB9XG4gIH1cbn1cblxuLy8gIzk0NDY6IEZpcmVmb3ggPD0gNTMgKGluIHBhcnRpY3VsYXIsIEVTUiA1MikgaGFzIGluY29ycmVjdCBFdmVudC50aW1lU3RhbXBcbi8vIGltcGxlbWVudGF0aW9uIGFuZCBkb2VzIG5vdCBmaXJlIG1pY3JvdGFza3MgaW4gYmV0d2VlbiBldmVudCBwcm9wYWdhdGlvbiwgc29cbi8vIHNhZmUgdG8gZXhjbHVkZS5cbnZhciB1c2VNaWNyb3Rhc2tGaXggPSBpc1VzaW5nTWljcm9UYXNrICYmICEoaXNGRiAmJiBOdW1iZXIoaXNGRlsxXSkgPD0gNTMpO1xuXG5mdW5jdGlvbiBhZGQkMSAoXG4gIG5hbWUsXG4gIGhhbmRsZXIsXG4gIGNhcHR1cmUsXG4gIHBhc3NpdmVcbikge1xuICAvLyBhc3luYyBlZGdlIGNhc2UgIzY1NjY6IGlubmVyIGNsaWNrIGV2ZW50IHRyaWdnZXJzIHBhdGNoLCBldmVudCBoYW5kbGVyXG4gIC8vIGF0dGFjaGVkIHRvIG91dGVyIGVsZW1lbnQgZHVyaW5nIHBhdGNoLCBhbmQgdHJpZ2dlcmVkIGFnYWluLiBUaGlzXG4gIC8vIGhhcHBlbnMgYmVjYXVzZSBicm93c2VycyBmaXJlIG1pY3JvdGFzayB0aWNrcyBiZXR3ZWVuIGV2ZW50IHByb3BhZ2F0aW9uLlxuICAvLyB0aGUgc29sdXRpb24gaXMgc2ltcGxlOiB3ZSBzYXZlIHRoZSB0aW1lc3RhbXAgd2hlbiBhIGhhbmRsZXIgaXMgYXR0YWNoZWQsXG4gIC8vIGFuZCB0aGUgaGFuZGxlciB3b3VsZCBvbmx5IGZpcmUgaWYgdGhlIGV2ZW50IHBhc3NlZCB0byBpdCB3YXMgZmlyZWRcbiAgLy8gQUZURVIgaXQgd2FzIGF0dGFjaGVkLlxuICBpZiAodXNlTWljcm90YXNrRml4KSB7XG4gICAgdmFyIGF0dGFjaGVkVGltZXN0YW1wID0gY3VycmVudEZsdXNoVGltZXN0YW1wO1xuICAgIHZhciBvcmlnaW5hbCA9IGhhbmRsZXI7XG4gICAgaGFuZGxlciA9IG9yaWdpbmFsLl93cmFwcGVyID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIGlmIChcbiAgICAgICAgLy8gbm8gYnViYmxpbmcsIHNob3VsZCBhbHdheXMgZmlyZS5cbiAgICAgICAgLy8gdGhpcyBpcyBqdXN0IGEgc2FmZXR5IG5ldCBpbiBjYXNlIGV2ZW50LnRpbWVTdGFtcCBpcyB1bnJlbGlhYmxlIGluXG4gICAgICAgIC8vIGNlcnRhaW4gd2VpcmQgZW52aXJvbm1lbnRzLi4uXG4gICAgICAgIGUudGFyZ2V0ID09PSBlLmN1cnJlbnRUYXJnZXQgfHxcbiAgICAgICAgLy8gZXZlbnQgaXMgZmlyZWQgYWZ0ZXIgaGFuZGxlciBhdHRhY2htZW50XG4gICAgICAgIGUudGltZVN0YW1wID49IGF0dGFjaGVkVGltZXN0YW1wIHx8XG4gICAgICAgIC8vIGJhaWwgZm9yIGVudmlyb25tZW50cyB0aGF0IGhhdmUgYnVnZ3kgZXZlbnQudGltZVN0YW1wIGltcGxlbWVudGF0aW9uc1xuICAgICAgICAvLyAjOTQ2MiBpT1MgOSBidWc6IGV2ZW50LnRpbWVTdGFtcCBpcyAwIGFmdGVyIGhpc3RvcnkucHVzaFN0YXRlXG4gICAgICAgIC8vICM5NjgxIFF0V2ViRW5naW5lIGV2ZW50LnRpbWVTdGFtcCBpcyBuZWdhdGl2ZSB2YWx1ZVxuICAgICAgICBlLnRpbWVTdGFtcCA8PSAwIHx8XG4gICAgICAgIC8vICM5NDQ4IGJhaWwgaWYgZXZlbnQgaXMgZmlyZWQgaW4gYW5vdGhlciBkb2N1bWVudCBpbiBhIG11bHRpLXBhZ2VcbiAgICAgICAgLy8gZWxlY3Ryb24vbncuanMgYXBwLCBzaW5jZSBldmVudC50aW1lU3RhbXAgd2lsbCBiZSB1c2luZyBhIGRpZmZlcmVudFxuICAgICAgICAvLyBzdGFydGluZyByZWZlcmVuY2VcbiAgICAgICAgZS50YXJnZXQub3duZXJEb2N1bWVudCAhPT0gZG9jdW1lbnRcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gb3JpZ2luYWwuYXBwbHkodGhpcywgYXJndW1lbnRzKVxuICAgICAgfVxuICAgIH07XG4gIH1cbiAgdGFyZ2V0JDEuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICBuYW1lLFxuICAgIGhhbmRsZXIsXG4gICAgc3VwcG9ydHNQYXNzaXZlXG4gICAgICA/IHsgY2FwdHVyZTogY2FwdHVyZSwgcGFzc2l2ZTogcGFzc2l2ZSB9XG4gICAgICA6IGNhcHR1cmVcbiAgKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlJDIgKFxuICBuYW1lLFxuICBoYW5kbGVyLFxuICBjYXB0dXJlLFxuICBfdGFyZ2V0XG4pIHtcbiAgKF90YXJnZXQgfHwgdGFyZ2V0JDEpLnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgbmFtZSxcbiAgICBoYW5kbGVyLl93cmFwcGVyIHx8IGhhbmRsZXIsXG4gICAgY2FwdHVyZVxuICApO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVET01MaXN0ZW5lcnMgKG9sZFZub2RlLCB2bm9kZSkge1xuICBpZiAoaXNVbmRlZihvbGRWbm9kZS5kYXRhLm9uKSAmJiBpc1VuZGVmKHZub2RlLmRhdGEub24pKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgdmFyIG9uID0gdm5vZGUuZGF0YS5vbiB8fCB7fTtcbiAgdmFyIG9sZE9uID0gb2xkVm5vZGUuZGF0YS5vbiB8fCB7fTtcbiAgdGFyZ2V0JDEgPSB2bm9kZS5lbG07XG4gIG5vcm1hbGl6ZUV2ZW50cyhvbik7XG4gIHVwZGF0ZUxpc3RlbmVycyhvbiwgb2xkT24sIGFkZCQxLCByZW1vdmUkMiwgY3JlYXRlT25jZUhhbmRsZXIkMSwgdm5vZGUuY29udGV4dCk7XG4gIHRhcmdldCQxID0gdW5kZWZpbmVkO1xufVxuXG52YXIgZXZlbnRzID0ge1xuICBjcmVhdGU6IHVwZGF0ZURPTUxpc3RlbmVycyxcbiAgdXBkYXRlOiB1cGRhdGVET01MaXN0ZW5lcnNcbn07XG5cbi8qICAqL1xuXG52YXIgc3ZnQ29udGFpbmVyO1xuXG5mdW5jdGlvbiB1cGRhdGVET01Qcm9wcyAob2xkVm5vZGUsIHZub2RlKSB7XG4gIGlmIChpc1VuZGVmKG9sZFZub2RlLmRhdGEuZG9tUHJvcHMpICYmIGlzVW5kZWYodm5vZGUuZGF0YS5kb21Qcm9wcykpIHtcbiAgICByZXR1cm5cbiAgfVxuICB2YXIga2V5LCBjdXI7XG4gIHZhciBlbG0gPSB2bm9kZS5lbG07XG4gIHZhciBvbGRQcm9wcyA9IG9sZFZub2RlLmRhdGEuZG9tUHJvcHMgfHwge307XG4gIHZhciBwcm9wcyA9IHZub2RlLmRhdGEuZG9tUHJvcHMgfHwge307XG4gIC8vIGNsb25lIG9ic2VydmVkIG9iamVjdHMsIGFzIHRoZSB1c2VyIHByb2JhYmx5IHdhbnRzIHRvIG11dGF0ZSBpdFxuICBpZiAoaXNEZWYocHJvcHMuX19vYl9fKSkge1xuICAgIHByb3BzID0gdm5vZGUuZGF0YS5kb21Qcm9wcyA9IGV4dGVuZCh7fSwgcHJvcHMpO1xuICB9XG5cbiAgZm9yIChrZXkgaW4gb2xkUHJvcHMpIHtcbiAgICBpZiAoIShrZXkgaW4gcHJvcHMpKSB7XG4gICAgICBlbG1ba2V5XSA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoa2V5IGluIHByb3BzKSB7XG4gICAgY3VyID0gcHJvcHNba2V5XTtcbiAgICAvLyBpZ25vcmUgY2hpbGRyZW4gaWYgdGhlIG5vZGUgaGFzIHRleHRDb250ZW50IG9yIGlubmVySFRNTCxcbiAgICAvLyBhcyB0aGVzZSB3aWxsIHRocm93IGF3YXkgZXhpc3RpbmcgRE9NIG5vZGVzIGFuZCBjYXVzZSByZW1vdmFsIGVycm9yc1xuICAgIC8vIG9uIHN1YnNlcXVlbnQgcGF0Y2hlcyAoIzMzNjApXG4gICAgaWYgKGtleSA9PT0gJ3RleHRDb250ZW50JyB8fCBrZXkgPT09ICdpbm5lckhUTUwnKSB7XG4gICAgICBpZiAodm5vZGUuY2hpbGRyZW4pIHsgdm5vZGUuY2hpbGRyZW4ubGVuZ3RoID0gMDsgfVxuICAgICAgaWYgKGN1ciA9PT0gb2xkUHJvcHNba2V5XSkgeyBjb250aW51ZSB9XG4gICAgICAvLyAjNjYwMSB3b3JrIGFyb3VuZCBDaHJvbWUgdmVyc2lvbiA8PSA1NSBidWcgd2hlcmUgc2luZ2xlIHRleHROb2RlXG4gICAgICAvLyByZXBsYWNlZCBieSBpbm5lckhUTUwvdGV4dENvbnRlbnQgcmV0YWlucyBpdHMgcGFyZW50Tm9kZSBwcm9wZXJ0eVxuICAgICAgaWYgKGVsbS5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICBlbG0ucmVtb3ZlQ2hpbGQoZWxtLmNoaWxkTm9kZXNbMF0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChrZXkgPT09ICd2YWx1ZScgJiYgZWxtLnRhZ05hbWUgIT09ICdQUk9HUkVTUycpIHtcbiAgICAgIC8vIHN0b3JlIHZhbHVlIGFzIF92YWx1ZSBhcyB3ZWxsIHNpbmNlXG4gICAgICAvLyBub24tc3RyaW5nIHZhbHVlcyB3aWxsIGJlIHN0cmluZ2lmaWVkXG4gICAgICBlbG0uX3ZhbHVlID0gY3VyO1xuICAgICAgLy8gYXZvaWQgcmVzZXR0aW5nIGN1cnNvciBwb3NpdGlvbiB3aGVuIHZhbHVlIGlzIHRoZSBzYW1lXG4gICAgICB2YXIgc3RyQ3VyID0gaXNVbmRlZihjdXIpID8gJycgOiBTdHJpbmcoY3VyKTtcbiAgICAgIGlmIChzaG91bGRVcGRhdGVWYWx1ZShlbG0sIHN0ckN1cikpIHtcbiAgICAgICAgZWxtLnZhbHVlID0gc3RyQ3VyO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnaW5uZXJIVE1MJyAmJiBpc1NWRyhlbG0udGFnTmFtZSkgJiYgaXNVbmRlZihlbG0uaW5uZXJIVE1MKSkge1xuICAgICAgLy8gSUUgZG9lc24ndCBzdXBwb3J0IGlubmVySFRNTCBmb3IgU1ZHIGVsZW1lbnRzXG4gICAgICBzdmdDb250YWluZXIgPSBzdmdDb250YWluZXIgfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICBzdmdDb250YWluZXIuaW5uZXJIVE1MID0gXCI8c3ZnPlwiICsgY3VyICsgXCI8L3N2Zz5cIjtcbiAgICAgIHZhciBzdmcgPSBzdmdDb250YWluZXIuZmlyc3RDaGlsZDtcbiAgICAgIHdoaWxlIChlbG0uZmlyc3RDaGlsZCkge1xuICAgICAgICBlbG0ucmVtb3ZlQ2hpbGQoZWxtLmZpcnN0Q2hpbGQpO1xuICAgICAgfVxuICAgICAgd2hpbGUgKHN2Zy5maXJzdENoaWxkKSB7XG4gICAgICAgIGVsbS5hcHBlbmRDaGlsZChzdmcuZmlyc3RDaGlsZCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIC8vIHNraXAgdGhlIHVwZGF0ZSBpZiBvbGQgYW5kIG5ldyBWRE9NIHN0YXRlIGlzIHRoZSBzYW1lLlxuICAgICAgLy8gYHZhbHVlYCBpcyBoYW5kbGVkIHNlcGFyYXRlbHkgYmVjYXVzZSB0aGUgRE9NIHZhbHVlIG1heSBiZSB0ZW1wb3JhcmlseVxuICAgICAgLy8gb3V0IG9mIHN5bmMgd2l0aCBWRE9NIHN0YXRlIGR1ZSB0byBmb2N1cywgY29tcG9zaXRpb24gYW5kIG1vZGlmaWVycy5cbiAgICAgIC8vIFRoaXMgICM0NTIxIGJ5IHNraXBwaW5nIHRoZSB1bm5lY2Vzc2FyeSBgY2hlY2tlZGAgdXBkYXRlLlxuICAgICAgY3VyICE9PSBvbGRQcm9wc1trZXldXG4gICAgKSB7XG4gICAgICAvLyBzb21lIHByb3BlcnR5IHVwZGF0ZXMgY2FuIHRocm93XG4gICAgICAvLyBlLmcuIGB2YWx1ZWAgb24gPHByb2dyZXNzPiB3LyBub24tZmluaXRlIHZhbHVlXG4gICAgICB0cnkge1xuICAgICAgICBlbG1ba2V5XSA9IGN1cjtcbiAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgfVxuICB9XG59XG5cbi8vIGNoZWNrIHBsYXRmb3Jtcy93ZWIvdXRpbC9hdHRycy5qcyBhY2NlcHRWYWx1ZVxuXG5cbmZ1bmN0aW9uIHNob3VsZFVwZGF0ZVZhbHVlIChlbG0sIGNoZWNrVmFsKSB7XG4gIHJldHVybiAoIWVsbS5jb21wb3NpbmcgJiYgKFxuICAgIGVsbS50YWdOYW1lID09PSAnT1BUSU9OJyB8fFxuICAgIGlzTm90SW5Gb2N1c0FuZERpcnR5KGVsbSwgY2hlY2tWYWwpIHx8XG4gICAgaXNEaXJ0eVdpdGhNb2RpZmllcnMoZWxtLCBjaGVja1ZhbClcbiAgKSlcbn1cblxuZnVuY3Rpb24gaXNOb3RJbkZvY3VzQW5kRGlydHkgKGVsbSwgY2hlY2tWYWwpIHtcbiAgLy8gcmV0dXJuIHRydWUgd2hlbiB0ZXh0Ym94ICgubnVtYmVyIGFuZCAudHJpbSkgbG9zZXMgZm9jdXMgYW5kIGl0cyB2YWx1ZSBpc1xuICAvLyBub3QgZXF1YWwgdG8gdGhlIHVwZGF0ZWQgdmFsdWVcbiAgdmFyIG5vdEluRm9jdXMgPSB0cnVlO1xuICAvLyAjNjE1N1xuICAvLyB3b3JrIGFyb3VuZCBJRSBidWcgd2hlbiBhY2Nlc3NpbmcgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbiBhbiBpZnJhbWVcbiAgdHJ5IHsgbm90SW5Gb2N1cyA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IGVsbTsgfSBjYXRjaCAoZSkge31cbiAgcmV0dXJuIG5vdEluRm9jdXMgJiYgZWxtLnZhbHVlICE9PSBjaGVja1ZhbFxufVxuXG5mdW5jdGlvbiBpc0RpcnR5V2l0aE1vZGlmaWVycyAoZWxtLCBuZXdWYWwpIHtcbiAgdmFyIHZhbHVlID0gZWxtLnZhbHVlO1xuICB2YXIgbW9kaWZpZXJzID0gZWxtLl92TW9kaWZpZXJzOyAvLyBpbmplY3RlZCBieSB2LW1vZGVsIHJ1bnRpbWVcbiAgaWYgKGlzRGVmKG1vZGlmaWVycykpIHtcbiAgICBpZiAobW9kaWZpZXJzLm51bWJlcikge1xuICAgICAgcmV0dXJuIHRvTnVtYmVyKHZhbHVlKSAhPT0gdG9OdW1iZXIobmV3VmFsKVxuICAgIH1cbiAgICBpZiAobW9kaWZpZXJzLnRyaW0pIHtcbiAgICAgIHJldHVybiB2YWx1ZS50cmltKCkgIT09IG5ld1ZhbC50cmltKClcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHZhbHVlICE9PSBuZXdWYWxcbn1cblxudmFyIGRvbVByb3BzID0ge1xuICBjcmVhdGU6IHVwZGF0ZURPTVByb3BzLFxuICB1cGRhdGU6IHVwZGF0ZURPTVByb3BzXG59O1xuXG4vKiAgKi9cblxudmFyIHBhcnNlU3R5bGVUZXh0ID0gY2FjaGVkKGZ1bmN0aW9uIChjc3NUZXh0KSB7XG4gIHZhciByZXMgPSB7fTtcbiAgdmFyIGxpc3REZWxpbWl0ZXIgPSAvOyg/IVteKF0qXFwpKS9nO1xuICB2YXIgcHJvcGVydHlEZWxpbWl0ZXIgPSAvOiguKykvO1xuICBjc3NUZXh0LnNwbGl0KGxpc3REZWxpbWl0ZXIpLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICBpZiAoaXRlbSkge1xuICAgICAgdmFyIHRtcCA9IGl0ZW0uc3BsaXQocHJvcGVydHlEZWxpbWl0ZXIpO1xuICAgICAgdG1wLmxlbmd0aCA+IDEgJiYgKHJlc1t0bXBbMF0udHJpbSgpXSA9IHRtcFsxXS50cmltKCkpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByZXNcbn0pO1xuXG4vLyBtZXJnZSBzdGF0aWMgYW5kIGR5bmFtaWMgc3R5bGUgZGF0YSBvbiB0aGUgc2FtZSB2bm9kZVxuZnVuY3Rpb24gbm9ybWFsaXplU3R5bGVEYXRhIChkYXRhKSB7XG4gIHZhciBzdHlsZSA9IG5vcm1hbGl6ZVN0eWxlQmluZGluZyhkYXRhLnN0eWxlKTtcbiAgLy8gc3RhdGljIHN0eWxlIGlzIHByZS1wcm9jZXNzZWQgaW50byBhbiBvYmplY3QgZHVyaW5nIGNvbXBpbGF0aW9uXG4gIC8vIGFuZCBpcyBhbHdheXMgYSBmcmVzaCBvYmplY3QsIHNvIGl0J3Mgc2FmZSB0byBtZXJnZSBpbnRvIGl0XG4gIHJldHVybiBkYXRhLnN0YXRpY1N0eWxlXG4gICAgPyBleHRlbmQoZGF0YS5zdGF0aWNTdHlsZSwgc3R5bGUpXG4gICAgOiBzdHlsZVxufVxuXG4vLyBub3JtYWxpemUgcG9zc2libGUgYXJyYXkgLyBzdHJpbmcgdmFsdWVzIGludG8gT2JqZWN0XG5mdW5jdGlvbiBub3JtYWxpemVTdHlsZUJpbmRpbmcgKGJpbmRpbmdTdHlsZSkge1xuICBpZiAoQXJyYXkuaXNBcnJheShiaW5kaW5nU3R5bGUpKSB7XG4gICAgcmV0dXJuIHRvT2JqZWN0KGJpbmRpbmdTdHlsZSlcbiAgfVxuICBpZiAodHlwZW9mIGJpbmRpbmdTdHlsZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gcGFyc2VTdHlsZVRleHQoYmluZGluZ1N0eWxlKVxuICB9XG4gIHJldHVybiBiaW5kaW5nU3R5bGVcbn1cblxuLyoqXG4gKiBwYXJlbnQgY29tcG9uZW50IHN0eWxlIHNob3VsZCBiZSBhZnRlciBjaGlsZCdzXG4gKiBzbyB0aGF0IHBhcmVudCBjb21wb25lbnQncyBzdHlsZSBjb3VsZCBvdmVycmlkZSBpdFxuICovXG5mdW5jdGlvbiBnZXRTdHlsZSAodm5vZGUsIGNoZWNrQ2hpbGQpIHtcbiAgdmFyIHJlcyA9IHt9O1xuICB2YXIgc3R5bGVEYXRhO1xuXG4gIGlmIChjaGVja0NoaWxkKSB7XG4gICAgdmFyIGNoaWxkTm9kZSA9IHZub2RlO1xuICAgIHdoaWxlIChjaGlsZE5vZGUuY29tcG9uZW50SW5zdGFuY2UpIHtcbiAgICAgIGNoaWxkTm9kZSA9IGNoaWxkTm9kZS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGU7XG4gICAgICBpZiAoXG4gICAgICAgIGNoaWxkTm9kZSAmJiBjaGlsZE5vZGUuZGF0YSAmJlxuICAgICAgICAoc3R5bGVEYXRhID0gbm9ybWFsaXplU3R5bGVEYXRhKGNoaWxkTm9kZS5kYXRhKSlcbiAgICAgICkge1xuICAgICAgICBleHRlbmQocmVzLCBzdHlsZURhdGEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICgoc3R5bGVEYXRhID0gbm9ybWFsaXplU3R5bGVEYXRhKHZub2RlLmRhdGEpKSkge1xuICAgIGV4dGVuZChyZXMsIHN0eWxlRGF0YSk7XG4gIH1cblxuICB2YXIgcGFyZW50Tm9kZSA9IHZub2RlO1xuICB3aGlsZSAoKHBhcmVudE5vZGUgPSBwYXJlbnROb2RlLnBhcmVudCkpIHtcbiAgICBpZiAocGFyZW50Tm9kZS5kYXRhICYmIChzdHlsZURhdGEgPSBub3JtYWxpemVTdHlsZURhdGEocGFyZW50Tm9kZS5kYXRhKSkpIHtcbiAgICAgIGV4dGVuZChyZXMsIHN0eWxlRGF0YSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXNcbn1cblxuLyogICovXG5cbnZhciBjc3NWYXJSRSA9IC9eLS0vO1xudmFyIGltcG9ydGFudFJFID0gL1xccyohaW1wb3J0YW50JC87XG52YXIgc2V0UHJvcCA9IGZ1bmN0aW9uIChlbCwgbmFtZSwgdmFsKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoY3NzVmFyUkUudGVzdChuYW1lKSkge1xuICAgIGVsLnN0eWxlLnNldFByb3BlcnR5KG5hbWUsIHZhbCk7XG4gIH0gZWxzZSBpZiAoaW1wb3J0YW50UkUudGVzdCh2YWwpKSB7XG4gICAgZWwuc3R5bGUuc2V0UHJvcGVydHkoaHlwaGVuYXRlKG5hbWUpLCB2YWwucmVwbGFjZShpbXBvcnRhbnRSRSwgJycpLCAnaW1wb3J0YW50Jyk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIG5vcm1hbGl6ZWROYW1lID0gbm9ybWFsaXplKG5hbWUpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgIC8vIFN1cHBvcnQgdmFsdWVzIGFycmF5IGNyZWF0ZWQgYnkgYXV0b3ByZWZpeGVyLCBlLmcuXG4gICAgICAvLyB7ZGlzcGxheTogW1wiLXdlYmtpdC1ib3hcIiwgXCItbXMtZmxleGJveFwiLCBcImZsZXhcIl19XG4gICAgICAvLyBTZXQgdGhlbSBvbmUgYnkgb25lLCBhbmQgdGhlIGJyb3dzZXIgd2lsbCBvbmx5IHNldCB0aG9zZSBpdCBjYW4gcmVjb2duaXplXG4gICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gdmFsLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgIGVsLnN0eWxlW25vcm1hbGl6ZWROYW1lXSA9IHZhbFtpXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZWwuc3R5bGVbbm9ybWFsaXplZE5hbWVdID0gdmFsO1xuICAgIH1cbiAgfVxufTtcblxudmFyIHZlbmRvck5hbWVzID0gWydXZWJraXQnLCAnTW96JywgJ21zJ107XG5cbnZhciBlbXB0eVN0eWxlO1xudmFyIG5vcm1hbGl6ZSA9IGNhY2hlZChmdW5jdGlvbiAocHJvcCkge1xuICBlbXB0eVN0eWxlID0gZW1wdHlTdHlsZSB8fCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKS5zdHlsZTtcbiAgcHJvcCA9IGNhbWVsaXplKHByb3ApO1xuICBpZiAocHJvcCAhPT0gJ2ZpbHRlcicgJiYgKHByb3AgaW4gZW1wdHlTdHlsZSkpIHtcbiAgICByZXR1cm4gcHJvcFxuICB9XG4gIHZhciBjYXBOYW1lID0gcHJvcC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHByb3Auc2xpY2UoMSk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgdmVuZG9yTmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgbmFtZSA9IHZlbmRvck5hbWVzW2ldICsgY2FwTmFtZTtcbiAgICBpZiAobmFtZSBpbiBlbXB0eVN0eWxlKSB7XG4gICAgICByZXR1cm4gbmFtZVxuICAgIH1cbiAgfVxufSk7XG5cbmZ1bmN0aW9uIHVwZGF0ZVN0eWxlIChvbGRWbm9kZSwgdm5vZGUpIHtcbiAgdmFyIGRhdGEgPSB2bm9kZS5kYXRhO1xuICB2YXIgb2xkRGF0YSA9IG9sZFZub2RlLmRhdGE7XG5cbiAgaWYgKGlzVW5kZWYoZGF0YS5zdGF0aWNTdHlsZSkgJiYgaXNVbmRlZihkYXRhLnN0eWxlKSAmJlxuICAgIGlzVW5kZWYob2xkRGF0YS5zdGF0aWNTdHlsZSkgJiYgaXNVbmRlZihvbGREYXRhLnN0eWxlKVxuICApIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIHZhciBjdXIsIG5hbWU7XG4gIHZhciBlbCA9IHZub2RlLmVsbTtcbiAgdmFyIG9sZFN0YXRpY1N0eWxlID0gb2xkRGF0YS5zdGF0aWNTdHlsZTtcbiAgdmFyIG9sZFN0eWxlQmluZGluZyA9IG9sZERhdGEubm9ybWFsaXplZFN0eWxlIHx8IG9sZERhdGEuc3R5bGUgfHwge307XG5cbiAgLy8gaWYgc3RhdGljIHN0eWxlIGV4aXN0cywgc3R5bGViaW5kaW5nIGFscmVhZHkgbWVyZ2VkIGludG8gaXQgd2hlbiBkb2luZyBub3JtYWxpemVTdHlsZURhdGFcbiAgdmFyIG9sZFN0eWxlID0gb2xkU3RhdGljU3R5bGUgfHwgb2xkU3R5bGVCaW5kaW5nO1xuXG4gIHZhciBzdHlsZSA9IG5vcm1hbGl6ZVN0eWxlQmluZGluZyh2bm9kZS5kYXRhLnN0eWxlKSB8fCB7fTtcblxuICAvLyBzdG9yZSBub3JtYWxpemVkIHN0eWxlIHVuZGVyIGEgZGlmZmVyZW50IGtleSBmb3IgbmV4dCBkaWZmXG4gIC8vIG1ha2Ugc3VyZSB0byBjbG9uZSBpdCBpZiBpdCdzIHJlYWN0aXZlLCBzaW5jZSB0aGUgdXNlciBsaWtlbHkgd2FudHNcbiAgLy8gdG8gbXV0YXRlIGl0LlxuICB2bm9kZS5kYXRhLm5vcm1hbGl6ZWRTdHlsZSA9IGlzRGVmKHN0eWxlLl9fb2JfXylcbiAgICA/IGV4dGVuZCh7fSwgc3R5bGUpXG4gICAgOiBzdHlsZTtcblxuICB2YXIgbmV3U3R5bGUgPSBnZXRTdHlsZSh2bm9kZSwgdHJ1ZSk7XG5cbiAgZm9yIChuYW1lIGluIG9sZFN0eWxlKSB7XG4gICAgaWYgKGlzVW5kZWYobmV3U3R5bGVbbmFtZV0pKSB7XG4gICAgICBzZXRQcm9wKGVsLCBuYW1lLCAnJyk7XG4gICAgfVxuICB9XG4gIGZvciAobmFtZSBpbiBuZXdTdHlsZSkge1xuICAgIGN1ciA9IG5ld1N0eWxlW25hbWVdO1xuICAgIGlmIChjdXIgIT09IG9sZFN0eWxlW25hbWVdKSB7XG4gICAgICAvLyBpZTkgc2V0dGluZyB0byBudWxsIGhhcyBubyBlZmZlY3QsIG11c3QgdXNlIGVtcHR5IHN0cmluZ1xuICAgICAgc2V0UHJvcChlbCwgbmFtZSwgY3VyID09IG51bGwgPyAnJyA6IGN1cik7XG4gICAgfVxuICB9XG59XG5cbnZhciBzdHlsZSA9IHtcbiAgY3JlYXRlOiB1cGRhdGVTdHlsZSxcbiAgdXBkYXRlOiB1cGRhdGVTdHlsZVxufTtcblxuLyogICovXG5cbnZhciB3aGl0ZXNwYWNlUkUgPSAvXFxzKy87XG5cbi8qKlxuICogQWRkIGNsYXNzIHdpdGggY29tcGF0aWJpbGl0eSBmb3IgU1ZHIHNpbmNlIGNsYXNzTGlzdCBpcyBub3Qgc3VwcG9ydGVkIG9uXG4gKiBTVkcgZWxlbWVudHMgaW4gSUVcbiAqL1xuZnVuY3Rpb24gYWRkQ2xhc3MgKGVsLCBjbHMpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmICghY2xzIHx8ICEoY2xzID0gY2xzLnRyaW0oKSkpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gIGlmIChlbC5jbGFzc0xpc3QpIHtcbiAgICBpZiAoY2xzLmluZGV4T2YoJyAnKSA+IC0xKSB7XG4gICAgICBjbHMuc3BsaXQod2hpdGVzcGFjZVJFKS5mb3JFYWNoKGZ1bmN0aW9uIChjKSB7IHJldHVybiBlbC5jbGFzc0xpc3QuYWRkKGMpOyB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWwuY2xhc3NMaXN0LmFkZChjbHMpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgY3VyID0gXCIgXCIgKyAoZWwuZ2V0QXR0cmlidXRlKCdjbGFzcycpIHx8ICcnKSArIFwiIFwiO1xuICAgIGlmIChjdXIuaW5kZXhPZignICcgKyBjbHMgKyAnICcpIDwgMCkge1xuICAgICAgZWwuc2V0QXR0cmlidXRlKCdjbGFzcycsIChjdXIgKyBjbHMpLnRyaW0oKSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUmVtb3ZlIGNsYXNzIHdpdGggY29tcGF0aWJpbGl0eSBmb3IgU1ZHIHNpbmNlIGNsYXNzTGlzdCBpcyBub3Qgc3VwcG9ydGVkIG9uXG4gKiBTVkcgZWxlbWVudHMgaW4gSUVcbiAqL1xuZnVuY3Rpb24gcmVtb3ZlQ2xhc3MgKGVsLCBjbHMpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmICghY2xzIHx8ICEoY2xzID0gY2xzLnRyaW0oKSkpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gIGlmIChlbC5jbGFzc0xpc3QpIHtcbiAgICBpZiAoY2xzLmluZGV4T2YoJyAnKSA+IC0xKSB7XG4gICAgICBjbHMuc3BsaXQod2hpdGVzcGFjZVJFKS5mb3JFYWNoKGZ1bmN0aW9uIChjKSB7IHJldHVybiBlbC5jbGFzc0xpc3QucmVtb3ZlKGMpOyB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZShjbHMpO1xuICAgIH1cbiAgICBpZiAoIWVsLmNsYXNzTGlzdC5sZW5ndGgpIHtcbiAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZSgnY2xhc3MnKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIGN1ciA9IFwiIFwiICsgKGVsLmdldEF0dHJpYnV0ZSgnY2xhc3MnKSB8fCAnJykgKyBcIiBcIjtcbiAgICB2YXIgdGFyID0gJyAnICsgY2xzICsgJyAnO1xuICAgIHdoaWxlIChjdXIuaW5kZXhPZih0YXIpID49IDApIHtcbiAgICAgIGN1ciA9IGN1ci5yZXBsYWNlKHRhciwgJyAnKTtcbiAgICB9XG4gICAgY3VyID0gY3VyLnRyaW0oKTtcbiAgICBpZiAoY3VyKSB7XG4gICAgICBlbC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgY3VyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWwucmVtb3ZlQXR0cmlidXRlKCdjbGFzcycpO1xuICAgIH1cbiAgfVxufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gcmVzb2x2ZVRyYW5zaXRpb24gKGRlZiQkMSkge1xuICBpZiAoIWRlZiQkMSkge1xuICAgIHJldHVyblxuICB9XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gIGlmICh0eXBlb2YgZGVmJCQxID09PSAnb2JqZWN0Jykge1xuICAgIHZhciByZXMgPSB7fTtcbiAgICBpZiAoZGVmJCQxLmNzcyAhPT0gZmFsc2UpIHtcbiAgICAgIGV4dGVuZChyZXMsIGF1dG9Dc3NUcmFuc2l0aW9uKGRlZiQkMS5uYW1lIHx8ICd2JykpO1xuICAgIH1cbiAgICBleHRlbmQocmVzLCBkZWYkJDEpO1xuICAgIHJldHVybiByZXNcbiAgfSBlbHNlIGlmICh0eXBlb2YgZGVmJCQxID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBhdXRvQ3NzVHJhbnNpdGlvbihkZWYkJDEpXG4gIH1cbn1cblxudmFyIGF1dG9Dc3NUcmFuc2l0aW9uID0gY2FjaGVkKGZ1bmN0aW9uIChuYW1lKSB7XG4gIHJldHVybiB7XG4gICAgZW50ZXJDbGFzczogKG5hbWUgKyBcIi1lbnRlclwiKSxcbiAgICBlbnRlclRvQ2xhc3M6IChuYW1lICsgXCItZW50ZXItdG9cIiksXG4gICAgZW50ZXJBY3RpdmVDbGFzczogKG5hbWUgKyBcIi1lbnRlci1hY3RpdmVcIiksXG4gICAgbGVhdmVDbGFzczogKG5hbWUgKyBcIi1sZWF2ZVwiKSxcbiAgICBsZWF2ZVRvQ2xhc3M6IChuYW1lICsgXCItbGVhdmUtdG9cIiksXG4gICAgbGVhdmVBY3RpdmVDbGFzczogKG5hbWUgKyBcIi1sZWF2ZS1hY3RpdmVcIilcbiAgfVxufSk7XG5cbnZhciBoYXNUcmFuc2l0aW9uID0gaW5Ccm93c2VyICYmICFpc0lFOTtcbnZhciBUUkFOU0lUSU9OID0gJ3RyYW5zaXRpb24nO1xudmFyIEFOSU1BVElPTiA9ICdhbmltYXRpb24nO1xuXG4vLyBUcmFuc2l0aW9uIHByb3BlcnR5L2V2ZW50IHNuaWZmaW5nXG52YXIgdHJhbnNpdGlvblByb3AgPSAndHJhbnNpdGlvbic7XG52YXIgdHJhbnNpdGlvbkVuZEV2ZW50ID0gJ3RyYW5zaXRpb25lbmQnO1xudmFyIGFuaW1hdGlvblByb3AgPSAnYW5pbWF0aW9uJztcbnZhciBhbmltYXRpb25FbmRFdmVudCA9ICdhbmltYXRpb25lbmQnO1xuaWYgKGhhc1RyYW5zaXRpb24pIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmICh3aW5kb3cub250cmFuc2l0aW9uZW5kID09PSB1bmRlZmluZWQgJiZcbiAgICB3aW5kb3cub253ZWJraXR0cmFuc2l0aW9uZW5kICE9PSB1bmRlZmluZWRcbiAgKSB7XG4gICAgdHJhbnNpdGlvblByb3AgPSAnV2Via2l0VHJhbnNpdGlvbic7XG4gICAgdHJhbnNpdGlvbkVuZEV2ZW50ID0gJ3dlYmtpdFRyYW5zaXRpb25FbmQnO1xuICB9XG4gIGlmICh3aW5kb3cub25hbmltYXRpb25lbmQgPT09IHVuZGVmaW5lZCAmJlxuICAgIHdpbmRvdy5vbndlYmtpdGFuaW1hdGlvbmVuZCAhPT0gdW5kZWZpbmVkXG4gICkge1xuICAgIGFuaW1hdGlvblByb3AgPSAnV2Via2l0QW5pbWF0aW9uJztcbiAgICBhbmltYXRpb25FbmRFdmVudCA9ICd3ZWJraXRBbmltYXRpb25FbmQnO1xuICB9XG59XG5cbi8vIGJpbmRpbmcgdG8gd2luZG93IGlzIG5lY2Vzc2FyeSB0byBtYWtlIGhvdCByZWxvYWQgd29yayBpbiBJRSBpbiBzdHJpY3QgbW9kZVxudmFyIHJhZiA9IGluQnJvd3NlclxuICA/IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWVcbiAgICA/IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpXG4gICAgOiBzZXRUaW1lb3V0XG4gIDogLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gZnVuY3Rpb24gKGZuKSB7IHJldHVybiBmbigpOyB9O1xuXG5mdW5jdGlvbiBuZXh0RnJhbWUgKGZuKSB7XG4gIHJhZihmdW5jdGlvbiAoKSB7XG4gICAgcmFmKGZuKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGFkZFRyYW5zaXRpb25DbGFzcyAoZWwsIGNscykge1xuICB2YXIgdHJhbnNpdGlvbkNsYXNzZXMgPSBlbC5fdHJhbnNpdGlvbkNsYXNzZXMgfHwgKGVsLl90cmFuc2l0aW9uQ2xhc3NlcyA9IFtdKTtcbiAgaWYgKHRyYW5zaXRpb25DbGFzc2VzLmluZGV4T2YoY2xzKSA8IDApIHtcbiAgICB0cmFuc2l0aW9uQ2xhc3Nlcy5wdXNoKGNscyk7XG4gICAgYWRkQ2xhc3MoZWwsIGNscyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVtb3ZlVHJhbnNpdGlvbkNsYXNzIChlbCwgY2xzKSB7XG4gIGlmIChlbC5fdHJhbnNpdGlvbkNsYXNzZXMpIHtcbiAgICByZW1vdmUoZWwuX3RyYW5zaXRpb25DbGFzc2VzLCBjbHMpO1xuICB9XG4gIHJlbW92ZUNsYXNzKGVsLCBjbHMpO1xufVxuXG5mdW5jdGlvbiB3aGVuVHJhbnNpdGlvbkVuZHMgKFxuICBlbCxcbiAgZXhwZWN0ZWRUeXBlLFxuICBjYlxuKSB7XG4gIHZhciByZWYgPSBnZXRUcmFuc2l0aW9uSW5mbyhlbCwgZXhwZWN0ZWRUeXBlKTtcbiAgdmFyIHR5cGUgPSByZWYudHlwZTtcbiAgdmFyIHRpbWVvdXQgPSByZWYudGltZW91dDtcbiAgdmFyIHByb3BDb3VudCA9IHJlZi5wcm9wQ291bnQ7XG4gIGlmICghdHlwZSkgeyByZXR1cm4gY2IoKSB9XG4gIHZhciBldmVudCA9IHR5cGUgPT09IFRSQU5TSVRJT04gPyB0cmFuc2l0aW9uRW5kRXZlbnQgOiBhbmltYXRpb25FbmRFdmVudDtcbiAgdmFyIGVuZGVkID0gMDtcbiAgdmFyIGVuZCA9IGZ1bmN0aW9uICgpIHtcbiAgICBlbC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50LCBvbkVuZCk7XG4gICAgY2IoKTtcbiAgfTtcbiAgdmFyIG9uRW5kID0gZnVuY3Rpb24gKGUpIHtcbiAgICBpZiAoZS50YXJnZXQgPT09IGVsKSB7XG4gICAgICBpZiAoKytlbmRlZCA+PSBwcm9wQ291bnQpIHtcbiAgICAgICAgZW5kKCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoZW5kZWQgPCBwcm9wQ291bnQpIHtcbiAgICAgIGVuZCgpO1xuICAgIH1cbiAgfSwgdGltZW91dCArIDEpO1xuICBlbC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBvbkVuZCk7XG59XG5cbnZhciB0cmFuc2Zvcm1SRSA9IC9cXGIodHJhbnNmb3JtfGFsbCkoLHwkKS87XG5cbmZ1bmN0aW9uIGdldFRyYW5zaXRpb25JbmZvIChlbCwgZXhwZWN0ZWRUeXBlKSB7XG4gIHZhciBzdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCk7XG4gIC8vIEpTRE9NIG1heSByZXR1cm4gdW5kZWZpbmVkIGZvciB0cmFuc2l0aW9uIHByb3BlcnRpZXNcbiAgdmFyIHRyYW5zaXRpb25EZWxheXMgPSAoc3R5bGVzW3RyYW5zaXRpb25Qcm9wICsgJ0RlbGF5J10gfHwgJycpLnNwbGl0KCcsICcpO1xuICB2YXIgdHJhbnNpdGlvbkR1cmF0aW9ucyA9IChzdHlsZXNbdHJhbnNpdGlvblByb3AgKyAnRHVyYXRpb24nXSB8fCAnJykuc3BsaXQoJywgJyk7XG4gIHZhciB0cmFuc2l0aW9uVGltZW91dCA9IGdldFRpbWVvdXQodHJhbnNpdGlvbkRlbGF5cywgdHJhbnNpdGlvbkR1cmF0aW9ucyk7XG4gIHZhciBhbmltYXRpb25EZWxheXMgPSAoc3R5bGVzW2FuaW1hdGlvblByb3AgKyAnRGVsYXknXSB8fCAnJykuc3BsaXQoJywgJyk7XG4gIHZhciBhbmltYXRpb25EdXJhdGlvbnMgPSAoc3R5bGVzW2FuaW1hdGlvblByb3AgKyAnRHVyYXRpb24nXSB8fCAnJykuc3BsaXQoJywgJyk7XG4gIHZhciBhbmltYXRpb25UaW1lb3V0ID0gZ2V0VGltZW91dChhbmltYXRpb25EZWxheXMsIGFuaW1hdGlvbkR1cmF0aW9ucyk7XG5cbiAgdmFyIHR5cGU7XG4gIHZhciB0aW1lb3V0ID0gMDtcbiAgdmFyIHByb3BDb3VudCA9IDA7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoZXhwZWN0ZWRUeXBlID09PSBUUkFOU0lUSU9OKSB7XG4gICAgaWYgKHRyYW5zaXRpb25UaW1lb3V0ID4gMCkge1xuICAgICAgdHlwZSA9IFRSQU5TSVRJT047XG4gICAgICB0aW1lb3V0ID0gdHJhbnNpdGlvblRpbWVvdXQ7XG4gICAgICBwcm9wQ291bnQgPSB0cmFuc2l0aW9uRHVyYXRpb25zLmxlbmd0aDtcbiAgICB9XG4gIH0gZWxzZSBpZiAoZXhwZWN0ZWRUeXBlID09PSBBTklNQVRJT04pIHtcbiAgICBpZiAoYW5pbWF0aW9uVGltZW91dCA+IDApIHtcbiAgICAgIHR5cGUgPSBBTklNQVRJT047XG4gICAgICB0aW1lb3V0ID0gYW5pbWF0aW9uVGltZW91dDtcbiAgICAgIHByb3BDb3VudCA9IGFuaW1hdGlvbkR1cmF0aW9ucy5sZW5ndGg7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHRpbWVvdXQgPSBNYXRoLm1heCh0cmFuc2l0aW9uVGltZW91dCwgYW5pbWF0aW9uVGltZW91dCk7XG4gICAgdHlwZSA9IHRpbWVvdXQgPiAwXG4gICAgICA/IHRyYW5zaXRpb25UaW1lb3V0ID4gYW5pbWF0aW9uVGltZW91dFxuICAgICAgICA/IFRSQU5TSVRJT05cbiAgICAgICAgOiBBTklNQVRJT05cbiAgICAgIDogbnVsbDtcbiAgICBwcm9wQ291bnQgPSB0eXBlXG4gICAgICA/IHR5cGUgPT09IFRSQU5TSVRJT05cbiAgICAgICAgPyB0cmFuc2l0aW9uRHVyYXRpb25zLmxlbmd0aFxuICAgICAgICA6IGFuaW1hdGlvbkR1cmF0aW9ucy5sZW5ndGhcbiAgICAgIDogMDtcbiAgfVxuICB2YXIgaGFzVHJhbnNmb3JtID1cbiAgICB0eXBlID09PSBUUkFOU0lUSU9OICYmXG4gICAgdHJhbnNmb3JtUkUudGVzdChzdHlsZXNbdHJhbnNpdGlvblByb3AgKyAnUHJvcGVydHknXSk7XG4gIHJldHVybiB7XG4gICAgdHlwZTogdHlwZSxcbiAgICB0aW1lb3V0OiB0aW1lb3V0LFxuICAgIHByb3BDb3VudDogcHJvcENvdW50LFxuICAgIGhhc1RyYW5zZm9ybTogaGFzVHJhbnNmb3JtXG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0VGltZW91dCAoZGVsYXlzLCBkdXJhdGlvbnMpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgd2hpbGUgKGRlbGF5cy5sZW5ndGggPCBkdXJhdGlvbnMubGVuZ3RoKSB7XG4gICAgZGVsYXlzID0gZGVsYXlzLmNvbmNhdChkZWxheXMpO1xuICB9XG5cbiAgcmV0dXJuIE1hdGgubWF4LmFwcGx5KG51bGwsIGR1cmF0aW9ucy5tYXAoZnVuY3Rpb24gKGQsIGkpIHtcbiAgICByZXR1cm4gdG9NcyhkKSArIHRvTXMoZGVsYXlzW2ldKVxuICB9KSlcbn1cblxuLy8gT2xkIHZlcnNpb25zIG9mIENocm9taXVtIChiZWxvdyA2MS4wLjMxNjMuMTAwKSBmb3JtYXRzIGZsb2F0aW5nIHBvaW50ZXIgbnVtYmVyc1xuLy8gaW4gYSBsb2NhbGUtZGVwZW5kZW50IHdheSwgdXNpbmcgYSBjb21tYSBpbnN0ZWFkIG9mIGEgZG90LlxuLy8gSWYgY29tbWEgaXMgbm90IHJlcGxhY2VkIHdpdGggYSBkb3QsIHRoZSBpbnB1dCB3aWxsIGJlIHJvdW5kZWQgZG93biAoaS5lLiBhY3Rpbmdcbi8vIGFzIGEgZmxvb3IgZnVuY3Rpb24pIGNhdXNpbmcgdW5leHBlY3RlZCBiZWhhdmlvcnNcbmZ1bmN0aW9uIHRvTXMgKHMpIHtcbiAgcmV0dXJuIE51bWJlcihzLnNsaWNlKDAsIC0xKS5yZXBsYWNlKCcsJywgJy4nKSkgKiAxMDAwXG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBlbnRlciAodm5vZGUsIHRvZ2dsZURpc3BsYXkpIHtcbiAgdmFyIGVsID0gdm5vZGUuZWxtO1xuXG4gIC8vIGNhbGwgbGVhdmUgY2FsbGJhY2sgbm93XG4gIGlmIChpc0RlZihlbC5fbGVhdmVDYikpIHtcbiAgICBlbC5fbGVhdmVDYi5jYW5jZWxsZWQgPSB0cnVlO1xuICAgIGVsLl9sZWF2ZUNiKCk7XG4gIH1cblxuICB2YXIgZGF0YSA9IHJlc29sdmVUcmFuc2l0aW9uKHZub2RlLmRhdGEudHJhbnNpdGlvbik7XG4gIGlmIChpc1VuZGVmKGRhdGEpKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKGlzRGVmKGVsLl9lbnRlckNiKSB8fCBlbC5ub2RlVHlwZSAhPT0gMSkge1xuICAgIHJldHVyblxuICB9XG5cbiAgdmFyIGNzcyA9IGRhdGEuY3NzO1xuICB2YXIgdHlwZSA9IGRhdGEudHlwZTtcbiAgdmFyIGVudGVyQ2xhc3MgPSBkYXRhLmVudGVyQ2xhc3M7XG4gIHZhciBlbnRlclRvQ2xhc3MgPSBkYXRhLmVudGVyVG9DbGFzcztcbiAgdmFyIGVudGVyQWN0aXZlQ2xhc3MgPSBkYXRhLmVudGVyQWN0aXZlQ2xhc3M7XG4gIHZhciBhcHBlYXJDbGFzcyA9IGRhdGEuYXBwZWFyQ2xhc3M7XG4gIHZhciBhcHBlYXJUb0NsYXNzID0gZGF0YS5hcHBlYXJUb0NsYXNzO1xuICB2YXIgYXBwZWFyQWN0aXZlQ2xhc3MgPSBkYXRhLmFwcGVhckFjdGl2ZUNsYXNzO1xuICB2YXIgYmVmb3JlRW50ZXIgPSBkYXRhLmJlZm9yZUVudGVyO1xuICB2YXIgZW50ZXIgPSBkYXRhLmVudGVyO1xuICB2YXIgYWZ0ZXJFbnRlciA9IGRhdGEuYWZ0ZXJFbnRlcjtcbiAgdmFyIGVudGVyQ2FuY2VsbGVkID0gZGF0YS5lbnRlckNhbmNlbGxlZDtcbiAgdmFyIGJlZm9yZUFwcGVhciA9IGRhdGEuYmVmb3JlQXBwZWFyO1xuICB2YXIgYXBwZWFyID0gZGF0YS5hcHBlYXI7XG4gIHZhciBhZnRlckFwcGVhciA9IGRhdGEuYWZ0ZXJBcHBlYXI7XG4gIHZhciBhcHBlYXJDYW5jZWxsZWQgPSBkYXRhLmFwcGVhckNhbmNlbGxlZDtcbiAgdmFyIGR1cmF0aW9uID0gZGF0YS5kdXJhdGlvbjtcblxuICAvLyBhY3RpdmVJbnN0YW5jZSB3aWxsIGFsd2F5cyBiZSB0aGUgPHRyYW5zaXRpb24+IGNvbXBvbmVudCBtYW5hZ2luZyB0aGlzXG4gIC8vIHRyYW5zaXRpb24uIE9uZSBlZGdlIGNhc2UgdG8gY2hlY2sgaXMgd2hlbiB0aGUgPHRyYW5zaXRpb24+IGlzIHBsYWNlZFxuICAvLyBhcyB0aGUgcm9vdCBub2RlIG9mIGEgY2hpbGQgY29tcG9uZW50LiBJbiB0aGF0IGNhc2Ugd2UgbmVlZCB0byBjaGVja1xuICAvLyA8dHJhbnNpdGlvbj4ncyBwYXJlbnQgZm9yIGFwcGVhciBjaGVjay5cbiAgdmFyIGNvbnRleHQgPSBhY3RpdmVJbnN0YW5jZTtcbiAgdmFyIHRyYW5zaXRpb25Ob2RlID0gYWN0aXZlSW5zdGFuY2UuJHZub2RlO1xuICB3aGlsZSAodHJhbnNpdGlvbk5vZGUgJiYgdHJhbnNpdGlvbk5vZGUucGFyZW50KSB7XG4gICAgY29udGV4dCA9IHRyYW5zaXRpb25Ob2RlLmNvbnRleHQ7XG4gICAgdHJhbnNpdGlvbk5vZGUgPSB0cmFuc2l0aW9uTm9kZS5wYXJlbnQ7XG4gIH1cblxuICB2YXIgaXNBcHBlYXIgPSAhY29udGV4dC5faXNNb3VudGVkIHx8ICF2bm9kZS5pc1Jvb3RJbnNlcnQ7XG5cbiAgaWYgKGlzQXBwZWFyICYmICFhcHBlYXIgJiYgYXBwZWFyICE9PSAnJykge1xuICAgIHJldHVyblxuICB9XG5cbiAgdmFyIHN0YXJ0Q2xhc3MgPSBpc0FwcGVhciAmJiBhcHBlYXJDbGFzc1xuICAgID8gYXBwZWFyQ2xhc3NcbiAgICA6IGVudGVyQ2xhc3M7XG4gIHZhciBhY3RpdmVDbGFzcyA9IGlzQXBwZWFyICYmIGFwcGVhckFjdGl2ZUNsYXNzXG4gICAgPyBhcHBlYXJBY3RpdmVDbGFzc1xuICAgIDogZW50ZXJBY3RpdmVDbGFzcztcbiAgdmFyIHRvQ2xhc3MgPSBpc0FwcGVhciAmJiBhcHBlYXJUb0NsYXNzXG4gICAgPyBhcHBlYXJUb0NsYXNzXG4gICAgOiBlbnRlclRvQ2xhc3M7XG5cbiAgdmFyIGJlZm9yZUVudGVySG9vayA9IGlzQXBwZWFyXG4gICAgPyAoYmVmb3JlQXBwZWFyIHx8IGJlZm9yZUVudGVyKVxuICAgIDogYmVmb3JlRW50ZXI7XG4gIHZhciBlbnRlckhvb2sgPSBpc0FwcGVhclxuICAgID8gKHR5cGVvZiBhcHBlYXIgPT09ICdmdW5jdGlvbicgPyBhcHBlYXIgOiBlbnRlcilcbiAgICA6IGVudGVyO1xuICB2YXIgYWZ0ZXJFbnRlckhvb2sgPSBpc0FwcGVhclxuICAgID8gKGFmdGVyQXBwZWFyIHx8IGFmdGVyRW50ZXIpXG4gICAgOiBhZnRlckVudGVyO1xuICB2YXIgZW50ZXJDYW5jZWxsZWRIb29rID0gaXNBcHBlYXJcbiAgICA/IChhcHBlYXJDYW5jZWxsZWQgfHwgZW50ZXJDYW5jZWxsZWQpXG4gICAgOiBlbnRlckNhbmNlbGxlZDtcblxuICB2YXIgZXhwbGljaXRFbnRlckR1cmF0aW9uID0gdG9OdW1iZXIoXG4gICAgaXNPYmplY3QoZHVyYXRpb24pXG4gICAgICA/IGR1cmF0aW9uLmVudGVyXG4gICAgICA6IGR1cmF0aW9uXG4gICk7XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgZXhwbGljaXRFbnRlckR1cmF0aW9uICE9IG51bGwpIHtcbiAgICBjaGVja0R1cmF0aW9uKGV4cGxpY2l0RW50ZXJEdXJhdGlvbiwgJ2VudGVyJywgdm5vZGUpO1xuICB9XG5cbiAgdmFyIGV4cGVjdHNDU1MgPSBjc3MgIT09IGZhbHNlICYmICFpc0lFOTtcbiAgdmFyIHVzZXJXYW50c0NvbnRyb2wgPSBnZXRIb29rQXJndW1lbnRzTGVuZ3RoKGVudGVySG9vayk7XG5cbiAgdmFyIGNiID0gZWwuX2VudGVyQ2IgPSBvbmNlKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoZXhwZWN0c0NTUykge1xuICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKGVsLCB0b0NsYXNzKTtcbiAgICAgIHJlbW92ZVRyYW5zaXRpb25DbGFzcyhlbCwgYWN0aXZlQ2xhc3MpO1xuICAgIH1cbiAgICBpZiAoY2IuY2FuY2VsbGVkKSB7XG4gICAgICBpZiAoZXhwZWN0c0NTUykge1xuICAgICAgICByZW1vdmVUcmFuc2l0aW9uQ2xhc3MoZWwsIHN0YXJ0Q2xhc3MpO1xuICAgICAgfVxuICAgICAgZW50ZXJDYW5jZWxsZWRIb29rICYmIGVudGVyQ2FuY2VsbGVkSG9vayhlbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFmdGVyRW50ZXJIb29rICYmIGFmdGVyRW50ZXJIb29rKGVsKTtcbiAgICB9XG4gICAgZWwuX2VudGVyQ2IgPSBudWxsO1xuICB9KTtcblxuICBpZiAoIXZub2RlLmRhdGEuc2hvdykge1xuICAgIC8vIHJlbW92ZSBwZW5kaW5nIGxlYXZlIGVsZW1lbnQgb24gZW50ZXIgYnkgaW5qZWN0aW5nIGFuIGluc2VydCBob29rXG4gICAgbWVyZ2VWTm9kZUhvb2sodm5vZGUsICdpbnNlcnQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgcGFyZW50ID0gZWwucGFyZW50Tm9kZTtcbiAgICAgIHZhciBwZW5kaW5nTm9kZSA9IHBhcmVudCAmJiBwYXJlbnQuX3BlbmRpbmcgJiYgcGFyZW50Ll9wZW5kaW5nW3Zub2RlLmtleV07XG4gICAgICBpZiAocGVuZGluZ05vZGUgJiZcbiAgICAgICAgcGVuZGluZ05vZGUudGFnID09PSB2bm9kZS50YWcgJiZcbiAgICAgICAgcGVuZGluZ05vZGUuZWxtLl9sZWF2ZUNiXG4gICAgICApIHtcbiAgICAgICAgcGVuZGluZ05vZGUuZWxtLl9sZWF2ZUNiKCk7XG4gICAgICB9XG4gICAgICBlbnRlckhvb2sgJiYgZW50ZXJIb29rKGVsLCBjYik7XG4gICAgfSk7XG4gIH1cblxuICAvLyBzdGFydCBlbnRlciB0cmFuc2l0aW9uXG4gIGJlZm9yZUVudGVySG9vayAmJiBiZWZvcmVFbnRlckhvb2soZWwpO1xuICBpZiAoZXhwZWN0c0NTUykge1xuICAgIGFkZFRyYW5zaXRpb25DbGFzcyhlbCwgc3RhcnRDbGFzcyk7XG4gICAgYWRkVHJhbnNpdGlvbkNsYXNzKGVsLCBhY3RpdmVDbGFzcyk7XG4gICAgbmV4dEZyYW1lKGZ1bmN0aW9uICgpIHtcbiAgICAgIHJlbW92ZVRyYW5zaXRpb25DbGFzcyhlbCwgc3RhcnRDbGFzcyk7XG4gICAgICBpZiAoIWNiLmNhbmNlbGxlZCkge1xuICAgICAgICBhZGRUcmFuc2l0aW9uQ2xhc3MoZWwsIHRvQ2xhc3MpO1xuICAgICAgICBpZiAoIXVzZXJXYW50c0NvbnRyb2wpIHtcbiAgICAgICAgICBpZiAoaXNWYWxpZER1cmF0aW9uKGV4cGxpY2l0RW50ZXJEdXJhdGlvbikpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoY2IsIGV4cGxpY2l0RW50ZXJEdXJhdGlvbik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHdoZW5UcmFuc2l0aW9uRW5kcyhlbCwgdHlwZSwgY2IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgaWYgKHZub2RlLmRhdGEuc2hvdykge1xuICAgIHRvZ2dsZURpc3BsYXkgJiYgdG9nZ2xlRGlzcGxheSgpO1xuICAgIGVudGVySG9vayAmJiBlbnRlckhvb2soZWwsIGNiKTtcbiAgfVxuXG4gIGlmICghZXhwZWN0c0NTUyAmJiAhdXNlcldhbnRzQ29udHJvbCkge1xuICAgIGNiKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbGVhdmUgKHZub2RlLCBybSkge1xuICB2YXIgZWwgPSB2bm9kZS5lbG07XG5cbiAgLy8gY2FsbCBlbnRlciBjYWxsYmFjayBub3dcbiAgaWYgKGlzRGVmKGVsLl9lbnRlckNiKSkge1xuICAgIGVsLl9lbnRlckNiLmNhbmNlbGxlZCA9IHRydWU7XG4gICAgZWwuX2VudGVyQ2IoKTtcbiAgfVxuXG4gIHZhciBkYXRhID0gcmVzb2x2ZVRyYW5zaXRpb24odm5vZGUuZGF0YS50cmFuc2l0aW9uKTtcbiAgaWYgKGlzVW5kZWYoZGF0YSkgfHwgZWwubm9kZVR5cGUgIT09IDEpIHtcbiAgICByZXR1cm4gcm0oKVxuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChpc0RlZihlbC5fbGVhdmVDYikpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIHZhciBjc3MgPSBkYXRhLmNzcztcbiAgdmFyIHR5cGUgPSBkYXRhLnR5cGU7XG4gIHZhciBsZWF2ZUNsYXNzID0gZGF0YS5sZWF2ZUNsYXNzO1xuICB2YXIgbGVhdmVUb0NsYXNzID0gZGF0YS5sZWF2ZVRvQ2xhc3M7XG4gIHZhciBsZWF2ZUFjdGl2ZUNsYXNzID0gZGF0YS5sZWF2ZUFjdGl2ZUNsYXNzO1xuICB2YXIgYmVmb3JlTGVhdmUgPSBkYXRhLmJlZm9yZUxlYXZlO1xuICB2YXIgbGVhdmUgPSBkYXRhLmxlYXZlO1xuICB2YXIgYWZ0ZXJMZWF2ZSA9IGRhdGEuYWZ0ZXJMZWF2ZTtcbiAgdmFyIGxlYXZlQ2FuY2VsbGVkID0gZGF0YS5sZWF2ZUNhbmNlbGxlZDtcbiAgdmFyIGRlbGF5TGVhdmUgPSBkYXRhLmRlbGF5TGVhdmU7XG4gIHZhciBkdXJhdGlvbiA9IGRhdGEuZHVyYXRpb247XG5cbiAgdmFyIGV4cGVjdHNDU1MgPSBjc3MgIT09IGZhbHNlICYmICFpc0lFOTtcbiAgdmFyIHVzZXJXYW50c0NvbnRyb2wgPSBnZXRIb29rQXJndW1lbnRzTGVuZ3RoKGxlYXZlKTtcblxuICB2YXIgZXhwbGljaXRMZWF2ZUR1cmF0aW9uID0gdG9OdW1iZXIoXG4gICAgaXNPYmplY3QoZHVyYXRpb24pXG4gICAgICA/IGR1cmF0aW9uLmxlYXZlXG4gICAgICA6IGR1cmF0aW9uXG4gICk7XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgaXNEZWYoZXhwbGljaXRMZWF2ZUR1cmF0aW9uKSkge1xuICAgIGNoZWNrRHVyYXRpb24oZXhwbGljaXRMZWF2ZUR1cmF0aW9uLCAnbGVhdmUnLCB2bm9kZSk7XG4gIH1cblxuICB2YXIgY2IgPSBlbC5fbGVhdmVDYiA9IG9uY2UoZnVuY3Rpb24gKCkge1xuICAgIGlmIChlbC5wYXJlbnROb2RlICYmIGVsLnBhcmVudE5vZGUuX3BlbmRpbmcpIHtcbiAgICAgIGVsLnBhcmVudE5vZGUuX3BlbmRpbmdbdm5vZGUua2V5XSA9IG51bGw7XG4gICAgfVxuICAgIGlmIChleHBlY3RzQ1NTKSB7XG4gICAgICByZW1vdmVUcmFuc2l0aW9uQ2xhc3MoZWwsIGxlYXZlVG9DbGFzcyk7XG4gICAgICByZW1vdmVUcmFuc2l0aW9uQ2xhc3MoZWwsIGxlYXZlQWN0aXZlQ2xhc3MpO1xuICAgIH1cbiAgICBpZiAoY2IuY2FuY2VsbGVkKSB7XG4gICAgICBpZiAoZXhwZWN0c0NTUykge1xuICAgICAgICByZW1vdmVUcmFuc2l0aW9uQ2xhc3MoZWwsIGxlYXZlQ2xhc3MpO1xuICAgICAgfVxuICAgICAgbGVhdmVDYW5jZWxsZWQgJiYgbGVhdmVDYW5jZWxsZWQoZWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBybSgpO1xuICAgICAgYWZ0ZXJMZWF2ZSAmJiBhZnRlckxlYXZlKGVsKTtcbiAgICB9XG4gICAgZWwuX2xlYXZlQ2IgPSBudWxsO1xuICB9KTtcblxuICBpZiAoZGVsYXlMZWF2ZSkge1xuICAgIGRlbGF5TGVhdmUocGVyZm9ybUxlYXZlKTtcbiAgfSBlbHNlIHtcbiAgICBwZXJmb3JtTGVhdmUoKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHBlcmZvcm1MZWF2ZSAoKSB7XG4gICAgLy8gdGhlIGRlbGF5ZWQgbGVhdmUgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIGNhbmNlbGxlZFxuICAgIGlmIChjYi5jYW5jZWxsZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICAvLyByZWNvcmQgbGVhdmluZyBlbGVtZW50XG4gICAgaWYgKCF2bm9kZS5kYXRhLnNob3cgJiYgZWwucGFyZW50Tm9kZSkge1xuICAgICAgKGVsLnBhcmVudE5vZGUuX3BlbmRpbmcgfHwgKGVsLnBhcmVudE5vZGUuX3BlbmRpbmcgPSB7fSkpWyh2bm9kZS5rZXkpXSA9IHZub2RlO1xuICAgIH1cbiAgICBiZWZvcmVMZWF2ZSAmJiBiZWZvcmVMZWF2ZShlbCk7XG4gICAgaWYgKGV4cGVjdHNDU1MpIHtcbiAgICAgIGFkZFRyYW5zaXRpb25DbGFzcyhlbCwgbGVhdmVDbGFzcyk7XG4gICAgICBhZGRUcmFuc2l0aW9uQ2xhc3MoZWwsIGxlYXZlQWN0aXZlQ2xhc3MpO1xuICAgICAgbmV4dEZyYW1lKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKGVsLCBsZWF2ZUNsYXNzKTtcbiAgICAgICAgaWYgKCFjYi5jYW5jZWxsZWQpIHtcbiAgICAgICAgICBhZGRUcmFuc2l0aW9uQ2xhc3MoZWwsIGxlYXZlVG9DbGFzcyk7XG4gICAgICAgICAgaWYgKCF1c2VyV2FudHNDb250cm9sKSB7XG4gICAgICAgICAgICBpZiAoaXNWYWxpZER1cmF0aW9uKGV4cGxpY2l0TGVhdmVEdXJhdGlvbikpIHtcbiAgICAgICAgICAgICAgc2V0VGltZW91dChjYiwgZXhwbGljaXRMZWF2ZUR1cmF0aW9uKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHdoZW5UcmFuc2l0aW9uRW5kcyhlbCwgdHlwZSwgY2IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGxlYXZlICYmIGxlYXZlKGVsLCBjYik7XG4gICAgaWYgKCFleHBlY3RzQ1NTICYmICF1c2VyV2FudHNDb250cm9sKSB7XG4gICAgICBjYigpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBvbmx5IHVzZWQgaW4gZGV2IG1vZGVcbmZ1bmN0aW9uIGNoZWNrRHVyYXRpb24gKHZhbCwgbmFtZSwgdm5vZGUpIHtcbiAgaWYgKHR5cGVvZiB2YWwgIT09ICdudW1iZXInKSB7XG4gICAgd2FybihcbiAgICAgIFwiPHRyYW5zaXRpb24+IGV4cGxpY2l0IFwiICsgbmFtZSArIFwiIGR1cmF0aW9uIGlzIG5vdCBhIHZhbGlkIG51bWJlciAtIFwiICtcbiAgICAgIFwiZ290IFwiICsgKEpTT04uc3RyaW5naWZ5KHZhbCkpICsgXCIuXCIsXG4gICAgICB2bm9kZS5jb250ZXh0XG4gICAgKTtcbiAgfSBlbHNlIGlmIChpc05hTih2YWwpKSB7XG4gICAgd2FybihcbiAgICAgIFwiPHRyYW5zaXRpb24+IGV4cGxpY2l0IFwiICsgbmFtZSArIFwiIGR1cmF0aW9uIGlzIE5hTiAtIFwiICtcbiAgICAgICd0aGUgZHVyYXRpb24gZXhwcmVzc2lvbiBtaWdodCBiZSBpbmNvcnJlY3QuJyxcbiAgICAgIHZub2RlLmNvbnRleHRcbiAgICApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzVmFsaWREdXJhdGlvbiAodmFsKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsID09PSAnbnVtYmVyJyAmJiAhaXNOYU4odmFsKVxufVxuXG4vKipcbiAqIE5vcm1hbGl6ZSBhIHRyYW5zaXRpb24gaG9vaydzIGFyZ3VtZW50IGxlbmd0aC4gVGhlIGhvb2sgbWF5IGJlOlxuICogLSBhIG1lcmdlZCBob29rIChpbnZva2VyKSB3aXRoIHRoZSBvcmlnaW5hbCBpbiAuZm5zXG4gKiAtIGEgd3JhcHBlZCBjb21wb25lbnQgbWV0aG9kIChjaGVjayAuX2xlbmd0aClcbiAqIC0gYSBwbGFpbiBmdW5jdGlvbiAoLmxlbmd0aClcbiAqL1xuZnVuY3Rpb24gZ2V0SG9va0FyZ3VtZW50c0xlbmd0aCAoZm4pIHtcbiAgaWYgKGlzVW5kZWYoZm4pKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgdmFyIGludm9rZXJGbnMgPSBmbi5mbnM7XG4gIGlmIChpc0RlZihpbnZva2VyRm5zKSkge1xuICAgIC8vIGludm9rZXJcbiAgICByZXR1cm4gZ2V0SG9va0FyZ3VtZW50c0xlbmd0aChcbiAgICAgIEFycmF5LmlzQXJyYXkoaW52b2tlckZucylcbiAgICAgICAgPyBpbnZva2VyRm5zWzBdXG4gICAgICAgIDogaW52b2tlckZuc1xuICAgIClcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gKGZuLl9sZW5ndGggfHwgZm4ubGVuZ3RoKSA+IDFcbiAgfVxufVxuXG5mdW5jdGlvbiBfZW50ZXIgKF8sIHZub2RlKSB7XG4gIGlmICh2bm9kZS5kYXRhLnNob3cgIT09IHRydWUpIHtcbiAgICBlbnRlcih2bm9kZSk7XG4gIH1cbn1cblxudmFyIHRyYW5zaXRpb24gPSBpbkJyb3dzZXIgPyB7XG4gIGNyZWF0ZTogX2VudGVyLFxuICBhY3RpdmF0ZTogX2VudGVyLFxuICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZSQkMSAodm5vZGUsIHJtKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodm5vZGUuZGF0YS5zaG93ICE9PSB0cnVlKSB7XG4gICAgICBsZWF2ZSh2bm9kZSwgcm0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBybSgpO1xuICAgIH1cbiAgfVxufSA6IHt9O1xuXG52YXIgcGxhdGZvcm1Nb2R1bGVzID0gW1xuICBhdHRycyxcbiAga2xhc3MsXG4gIGV2ZW50cyxcbiAgZG9tUHJvcHMsXG4gIHN0eWxlLFxuICB0cmFuc2l0aW9uXG5dO1xuXG4vKiAgKi9cblxuLy8gdGhlIGRpcmVjdGl2ZSBtb2R1bGUgc2hvdWxkIGJlIGFwcGxpZWQgbGFzdCwgYWZ0ZXIgYWxsXG4vLyBidWlsdC1pbiBtb2R1bGVzIGhhdmUgYmVlbiBhcHBsaWVkLlxudmFyIG1vZHVsZXMgPSBwbGF0Zm9ybU1vZHVsZXMuY29uY2F0KGJhc2VNb2R1bGVzKTtcblxudmFyIHBhdGNoID0gY3JlYXRlUGF0Y2hGdW5jdGlvbih7IG5vZGVPcHM6IG5vZGVPcHMsIG1vZHVsZXM6IG1vZHVsZXMgfSk7XG5cbi8qKlxuICogTm90IHR5cGUgY2hlY2tpbmcgdGhpcyBmaWxlIGJlY2F1c2UgZmxvdyBkb2Vzbid0IGxpa2UgYXR0YWNoaW5nXG4gKiBwcm9wZXJ0aWVzIHRvIEVsZW1lbnRzLlxuICovXG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuaWYgKGlzSUU5KSB7XG4gIC8vIGh0dHA6Ly93d3cubWF0dHM0MTEuY29tL3Bvc3QvaW50ZXJuZXQtZXhwbG9yZXItOS1vbmlucHV0L1xuICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzZWxlY3Rpb25jaGFuZ2UnLCBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGVsID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgICBpZiAoZWwgJiYgZWwudm1vZGVsKSB7XG4gICAgICB0cmlnZ2VyKGVsLCAnaW5wdXQnKTtcbiAgICB9XG4gIH0pO1xufVxuXG52YXIgZGlyZWN0aXZlID0ge1xuICBpbnNlcnRlZDogZnVuY3Rpb24gaW5zZXJ0ZWQgKGVsLCBiaW5kaW5nLCB2bm9kZSwgb2xkVm5vZGUpIHtcbiAgICBpZiAodm5vZGUudGFnID09PSAnc2VsZWN0Jykge1xuICAgICAgLy8gIzY5MDNcbiAgICAgIGlmIChvbGRWbm9kZS5lbG0gJiYgIW9sZFZub2RlLmVsbS5fdk9wdGlvbnMpIHtcbiAgICAgICAgbWVyZ2VWTm9kZUhvb2sodm5vZGUsICdwb3N0cGF0Y2gnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgZGlyZWN0aXZlLmNvbXBvbmVudFVwZGF0ZWQoZWwsIGJpbmRpbmcsIHZub2RlKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRTZWxlY3RlZChlbCwgYmluZGluZywgdm5vZGUuY29udGV4dCk7XG4gICAgICB9XG4gICAgICBlbC5fdk9wdGlvbnMgPSBbXS5tYXAuY2FsbChlbC5vcHRpb25zLCBnZXRWYWx1ZSk7XG4gICAgfSBlbHNlIGlmICh2bm9kZS50YWcgPT09ICd0ZXh0YXJlYScgfHwgaXNUZXh0SW5wdXRUeXBlKGVsLnR5cGUpKSB7XG4gICAgICBlbC5fdk1vZGlmaWVycyA9IGJpbmRpbmcubW9kaWZpZXJzO1xuICAgICAgaWYgKCFiaW5kaW5nLm1vZGlmaWVycy5sYXp5KSB7XG4gICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NvbXBvc2l0aW9uc3RhcnQnLCBvbkNvbXBvc2l0aW9uU3RhcnQpO1xuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdjb21wb3NpdGlvbmVuZCcsIG9uQ29tcG9zaXRpb25FbmQpO1xuICAgICAgICAvLyBTYWZhcmkgPCAxMC4yICYgVUlXZWJWaWV3IGRvZXNuJ3QgZmlyZSBjb21wb3NpdGlvbmVuZCB3aGVuXG4gICAgICAgIC8vIHN3aXRjaGluZyBmb2N1cyBiZWZvcmUgY29uZmlybWluZyBjb21wb3NpdGlvbiBjaG9pY2VcbiAgICAgICAgLy8gdGhpcyBhbHNvIGZpeGVzIHRoZSBpc3N1ZSB3aGVyZSBzb21lIGJyb3dzZXJzIGUuZy4gaU9TIENocm9tZVxuICAgICAgICAvLyBmaXJlcyBcImNoYW5nZVwiIGluc3RlYWQgb2YgXCJpbnB1dFwiIG9uIGF1dG9jb21wbGV0ZS5cbiAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgb25Db21wb3NpdGlvbkVuZCk7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgICBpZiAoaXNJRTkpIHtcbiAgICAgICAgICBlbC52bW9kZWwgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIGNvbXBvbmVudFVwZGF0ZWQ6IGZ1bmN0aW9uIGNvbXBvbmVudFVwZGF0ZWQgKGVsLCBiaW5kaW5nLCB2bm9kZSkge1xuICAgIGlmICh2bm9kZS50YWcgPT09ICdzZWxlY3QnKSB7XG4gICAgICBzZXRTZWxlY3RlZChlbCwgYmluZGluZywgdm5vZGUuY29udGV4dCk7XG4gICAgICAvLyBpbiBjYXNlIHRoZSBvcHRpb25zIHJlbmRlcmVkIGJ5IHYtZm9yIGhhdmUgY2hhbmdlZCxcbiAgICAgIC8vIGl0J3MgcG9zc2libGUgdGhhdCB0aGUgdmFsdWUgaXMgb3V0LW9mLXN5bmMgd2l0aCB0aGUgcmVuZGVyZWQgb3B0aW9ucy5cbiAgICAgIC8vIGRldGVjdCBzdWNoIGNhc2VzIGFuZCBmaWx0ZXIgb3V0IHZhbHVlcyB0aGF0IG5vIGxvbmdlciBoYXMgYSBtYXRjaGluZ1xuICAgICAgLy8gb3B0aW9uIGluIHRoZSBET00uXG4gICAgICB2YXIgcHJldk9wdGlvbnMgPSBlbC5fdk9wdGlvbnM7XG4gICAgICB2YXIgY3VyT3B0aW9ucyA9IGVsLl92T3B0aW9ucyA9IFtdLm1hcC5jYWxsKGVsLm9wdGlvbnMsIGdldFZhbHVlKTtcbiAgICAgIGlmIChjdXJPcHRpb25zLnNvbWUoZnVuY3Rpb24gKG8sIGkpIHsgcmV0dXJuICFsb29zZUVxdWFsKG8sIHByZXZPcHRpb25zW2ldKTsgfSkpIHtcbiAgICAgICAgLy8gdHJpZ2dlciBjaGFuZ2UgZXZlbnQgaWZcbiAgICAgICAgLy8gbm8gbWF0Y2hpbmcgb3B0aW9uIGZvdW5kIGZvciBhdCBsZWFzdCBvbmUgdmFsdWVcbiAgICAgICAgdmFyIG5lZWRSZXNldCA9IGVsLm11bHRpcGxlXG4gICAgICAgICAgPyBiaW5kaW5nLnZhbHVlLnNvbWUoZnVuY3Rpb24gKHYpIHsgcmV0dXJuIGhhc05vTWF0Y2hpbmdPcHRpb24odiwgY3VyT3B0aW9ucyk7IH0pXG4gICAgICAgICAgOiBiaW5kaW5nLnZhbHVlICE9PSBiaW5kaW5nLm9sZFZhbHVlICYmIGhhc05vTWF0Y2hpbmdPcHRpb24oYmluZGluZy52YWx1ZSwgY3VyT3B0aW9ucyk7XG4gICAgICAgIGlmIChuZWVkUmVzZXQpIHtcbiAgICAgICAgICB0cmlnZ2VyKGVsLCAnY2hhbmdlJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbmZ1bmN0aW9uIHNldFNlbGVjdGVkIChlbCwgYmluZGluZywgdm0pIHtcbiAgYWN0dWFsbHlTZXRTZWxlY3RlZChlbCwgYmluZGluZywgdm0pO1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKGlzSUUgfHwgaXNFZGdlKSB7XG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICBhY3R1YWxseVNldFNlbGVjdGVkKGVsLCBiaW5kaW5nLCB2bSk7XG4gICAgfSwgMCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYWN0dWFsbHlTZXRTZWxlY3RlZCAoZWwsIGJpbmRpbmcsIHZtKSB7XG4gIHZhciB2YWx1ZSA9IGJpbmRpbmcudmFsdWU7XG4gIHZhciBpc011bHRpcGxlID0gZWwubXVsdGlwbGU7XG4gIGlmIChpc011bHRpcGxlICYmICFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgd2FybihcbiAgICAgIFwiPHNlbGVjdCBtdWx0aXBsZSB2LW1vZGVsPVxcXCJcIiArIChiaW5kaW5nLmV4cHJlc3Npb24pICsgXCJcXFwiPiBcIiArXG4gICAgICBcImV4cGVjdHMgYW4gQXJyYXkgdmFsdWUgZm9yIGl0cyBiaW5kaW5nLCBidXQgZ290IFwiICsgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkuc2xpY2UoOCwgLTEpKSxcbiAgICAgIHZtXG4gICAgKTtcbiAgICByZXR1cm5cbiAgfVxuICB2YXIgc2VsZWN0ZWQsIG9wdGlvbjtcbiAgZm9yICh2YXIgaSA9IDAsIGwgPSBlbC5vcHRpb25zLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIG9wdGlvbiA9IGVsLm9wdGlvbnNbaV07XG4gICAgaWYgKGlzTXVsdGlwbGUpIHtcbiAgICAgIHNlbGVjdGVkID0gbG9vc2VJbmRleE9mKHZhbHVlLCBnZXRWYWx1ZShvcHRpb24pKSA+IC0xO1xuICAgICAgaWYgKG9wdGlvbi5zZWxlY3RlZCAhPT0gc2VsZWN0ZWQpIHtcbiAgICAgICAgb3B0aW9uLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChsb29zZUVxdWFsKGdldFZhbHVlKG9wdGlvbiksIHZhbHVlKSkge1xuICAgICAgICBpZiAoZWwuc2VsZWN0ZWRJbmRleCAhPT0gaSkge1xuICAgICAgICAgIGVsLnNlbGVjdGVkSW5kZXggPSBpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoIWlzTXVsdGlwbGUpIHtcbiAgICBlbC5zZWxlY3RlZEluZGV4ID0gLTE7XG4gIH1cbn1cblxuZnVuY3Rpb24gaGFzTm9NYXRjaGluZ09wdGlvbiAodmFsdWUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIG9wdGlvbnMuZXZlcnkoZnVuY3Rpb24gKG8pIHsgcmV0dXJuICFsb29zZUVxdWFsKG8sIHZhbHVlKTsgfSlcbn1cblxuZnVuY3Rpb24gZ2V0VmFsdWUgKG9wdGlvbikge1xuICByZXR1cm4gJ192YWx1ZScgaW4gb3B0aW9uXG4gICAgPyBvcHRpb24uX3ZhbHVlXG4gICAgOiBvcHRpb24udmFsdWVcbn1cblxuZnVuY3Rpb24gb25Db21wb3NpdGlvblN0YXJ0IChlKSB7XG4gIGUudGFyZ2V0LmNvbXBvc2luZyA9IHRydWU7XG59XG5cbmZ1bmN0aW9uIG9uQ29tcG9zaXRpb25FbmQgKGUpIHtcbiAgLy8gcHJldmVudCB0cmlnZ2VyaW5nIGFuIGlucHV0IGV2ZW50IGZvciBubyByZWFzb25cbiAgaWYgKCFlLnRhcmdldC5jb21wb3NpbmcpIHsgcmV0dXJuIH1cbiAgZS50YXJnZXQuY29tcG9zaW5nID0gZmFsc2U7XG4gIHRyaWdnZXIoZS50YXJnZXQsICdpbnB1dCcpO1xufVxuXG5mdW5jdGlvbiB0cmlnZ2VyIChlbCwgdHlwZSkge1xuICB2YXIgZSA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdIVE1MRXZlbnRzJyk7XG4gIGUuaW5pdEV2ZW50KHR5cGUsIHRydWUsIHRydWUpO1xuICBlbC5kaXNwYXRjaEV2ZW50KGUpO1xufVxuXG4vKiAgKi9cblxuLy8gcmVjdXJzaXZlbHkgc2VhcmNoIGZvciBwb3NzaWJsZSB0cmFuc2l0aW9uIGRlZmluZWQgaW5zaWRlIHRoZSBjb21wb25lbnQgcm9vdFxuZnVuY3Rpb24gbG9jYXRlTm9kZSAodm5vZGUpIHtcbiAgcmV0dXJuIHZub2RlLmNvbXBvbmVudEluc3RhbmNlICYmICghdm5vZGUuZGF0YSB8fCAhdm5vZGUuZGF0YS50cmFuc2l0aW9uKVxuICAgID8gbG9jYXRlTm9kZSh2bm9kZS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUpXG4gICAgOiB2bm9kZVxufVxuXG52YXIgc2hvdyA9IHtcbiAgYmluZDogZnVuY3Rpb24gYmluZCAoZWwsIHJlZiwgdm5vZGUpIHtcbiAgICB2YXIgdmFsdWUgPSByZWYudmFsdWU7XG5cbiAgICB2bm9kZSA9IGxvY2F0ZU5vZGUodm5vZGUpO1xuICAgIHZhciB0cmFuc2l0aW9uJCQxID0gdm5vZGUuZGF0YSAmJiB2bm9kZS5kYXRhLnRyYW5zaXRpb247XG4gICAgdmFyIG9yaWdpbmFsRGlzcGxheSA9IGVsLl9fdk9yaWdpbmFsRGlzcGxheSA9XG4gICAgICBlbC5zdHlsZS5kaXNwbGF5ID09PSAnbm9uZScgPyAnJyA6IGVsLnN0eWxlLmRpc3BsYXk7XG4gICAgaWYgKHZhbHVlICYmIHRyYW5zaXRpb24kJDEpIHtcbiAgICAgIHZub2RlLmRhdGEuc2hvdyA9IHRydWU7XG4gICAgICBlbnRlcih2bm9kZSwgZnVuY3Rpb24gKCkge1xuICAgICAgICBlbC5zdHlsZS5kaXNwbGF5ID0gb3JpZ2luYWxEaXNwbGF5O1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsLnN0eWxlLmRpc3BsYXkgPSB2YWx1ZSA/IG9yaWdpbmFsRGlzcGxheSA6ICdub25lJztcbiAgICB9XG4gIH0sXG5cbiAgdXBkYXRlOiBmdW5jdGlvbiB1cGRhdGUgKGVsLCByZWYsIHZub2RlKSB7XG4gICAgdmFyIHZhbHVlID0gcmVmLnZhbHVlO1xuICAgIHZhciBvbGRWYWx1ZSA9IHJlZi5vbGRWYWx1ZTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmICghdmFsdWUgPT09ICFvbGRWYWx1ZSkgeyByZXR1cm4gfVxuICAgIHZub2RlID0gbG9jYXRlTm9kZSh2bm9kZSk7XG4gICAgdmFyIHRyYW5zaXRpb24kJDEgPSB2bm9kZS5kYXRhICYmIHZub2RlLmRhdGEudHJhbnNpdGlvbjtcbiAgICBpZiAodHJhbnNpdGlvbiQkMSkge1xuICAgICAgdm5vZGUuZGF0YS5zaG93ID0gdHJ1ZTtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBlbnRlcih2bm9kZSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGVsLnN0eWxlLmRpc3BsYXkgPSBlbC5fX3ZPcmlnaW5hbERpc3BsYXk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGVhdmUodm5vZGUsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBlbC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZWwuc3R5bGUuZGlzcGxheSA9IHZhbHVlID8gZWwuX192T3JpZ2luYWxEaXNwbGF5IDogJ25vbmUnO1xuICAgIH1cbiAgfSxcblxuICB1bmJpbmQ6IGZ1bmN0aW9uIHVuYmluZCAoXG4gICAgZWwsXG4gICAgYmluZGluZyxcbiAgICB2bm9kZSxcbiAgICBvbGRWbm9kZSxcbiAgICBpc0Rlc3Ryb3lcbiAgKSB7XG4gICAgaWYgKCFpc0Rlc3Ryb3kpIHtcbiAgICAgIGVsLnN0eWxlLmRpc3BsYXkgPSBlbC5fX3ZPcmlnaW5hbERpc3BsYXk7XG4gICAgfVxuICB9XG59O1xuXG52YXIgcGxhdGZvcm1EaXJlY3RpdmVzID0ge1xuICBtb2RlbDogZGlyZWN0aXZlLFxuICBzaG93OiBzaG93XG59O1xuXG4vKiAgKi9cblxudmFyIHRyYW5zaXRpb25Qcm9wcyA9IHtcbiAgbmFtZTogU3RyaW5nLFxuICBhcHBlYXI6IEJvb2xlYW4sXG4gIGNzczogQm9vbGVhbixcbiAgbW9kZTogU3RyaW5nLFxuICB0eXBlOiBTdHJpbmcsXG4gIGVudGVyQ2xhc3M6IFN0cmluZyxcbiAgbGVhdmVDbGFzczogU3RyaW5nLFxuICBlbnRlclRvQ2xhc3M6IFN0cmluZyxcbiAgbGVhdmVUb0NsYXNzOiBTdHJpbmcsXG4gIGVudGVyQWN0aXZlQ2xhc3M6IFN0cmluZyxcbiAgbGVhdmVBY3RpdmVDbGFzczogU3RyaW5nLFxuICBhcHBlYXJDbGFzczogU3RyaW5nLFxuICBhcHBlYXJBY3RpdmVDbGFzczogU3RyaW5nLFxuICBhcHBlYXJUb0NsYXNzOiBTdHJpbmcsXG4gIGR1cmF0aW9uOiBbTnVtYmVyLCBTdHJpbmcsIE9iamVjdF1cbn07XG5cbi8vIGluIGNhc2UgdGhlIGNoaWxkIGlzIGFsc28gYW4gYWJzdHJhY3QgY29tcG9uZW50LCBlLmcuIDxrZWVwLWFsaXZlPlxuLy8gd2Ugd2FudCB0byByZWN1cnNpdmVseSByZXRyaWV2ZSB0aGUgcmVhbCBjb21wb25lbnQgdG8gYmUgcmVuZGVyZWRcbmZ1bmN0aW9uIGdldFJlYWxDaGlsZCAodm5vZGUpIHtcbiAgdmFyIGNvbXBPcHRpb25zID0gdm5vZGUgJiYgdm5vZGUuY29tcG9uZW50T3B0aW9ucztcbiAgaWYgKGNvbXBPcHRpb25zICYmIGNvbXBPcHRpb25zLkN0b3Iub3B0aW9ucy5hYnN0cmFjdCkge1xuICAgIHJldHVybiBnZXRSZWFsQ2hpbGQoZ2V0Rmlyc3RDb21wb25lbnRDaGlsZChjb21wT3B0aW9ucy5jaGlsZHJlbikpXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHZub2RlXG4gIH1cbn1cblxuZnVuY3Rpb24gZXh0cmFjdFRyYW5zaXRpb25EYXRhIChjb21wKSB7XG4gIHZhciBkYXRhID0ge307XG4gIHZhciBvcHRpb25zID0gY29tcC4kb3B0aW9ucztcbiAgLy8gcHJvcHNcbiAgZm9yICh2YXIga2V5IGluIG9wdGlvbnMucHJvcHNEYXRhKSB7XG4gICAgZGF0YVtrZXldID0gY29tcFtrZXldO1xuICB9XG4gIC8vIGV2ZW50cy5cbiAgLy8gZXh0cmFjdCBsaXN0ZW5lcnMgYW5kIHBhc3MgdGhlbSBkaXJlY3RseSB0byB0aGUgdHJhbnNpdGlvbiBtZXRob2RzXG4gIHZhciBsaXN0ZW5lcnMgPSBvcHRpb25zLl9wYXJlbnRMaXN0ZW5lcnM7XG4gIGZvciAodmFyIGtleSQxIGluIGxpc3RlbmVycykge1xuICAgIGRhdGFbY2FtZWxpemUoa2V5JDEpXSA9IGxpc3RlbmVyc1trZXkkMV07XG4gIH1cbiAgcmV0dXJuIGRhdGFcbn1cblxuZnVuY3Rpb24gcGxhY2Vob2xkZXIgKGgsIHJhd0NoaWxkKSB7XG4gIGlmICgvXFxkLWtlZXAtYWxpdmUkLy50ZXN0KHJhd0NoaWxkLnRhZykpIHtcbiAgICByZXR1cm4gaCgna2VlcC1hbGl2ZScsIHtcbiAgICAgIHByb3BzOiByYXdDaGlsZC5jb21wb25lbnRPcHRpb25zLnByb3BzRGF0YVxuICAgIH0pXG4gIH1cbn1cblxuZnVuY3Rpb24gaGFzUGFyZW50VHJhbnNpdGlvbiAodm5vZGUpIHtcbiAgd2hpbGUgKCh2bm9kZSA9IHZub2RlLnBhcmVudCkpIHtcbiAgICBpZiAodm5vZGUuZGF0YS50cmFuc2l0aW9uKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpc1NhbWVDaGlsZCAoY2hpbGQsIG9sZENoaWxkKSB7XG4gIHJldHVybiBvbGRDaGlsZC5rZXkgPT09IGNoaWxkLmtleSAmJiBvbGRDaGlsZC50YWcgPT09IGNoaWxkLnRhZ1xufVxuXG52YXIgaXNOb3RUZXh0Tm9kZSA9IGZ1bmN0aW9uIChjKSB7IHJldHVybiBjLnRhZyB8fCBpc0FzeW5jUGxhY2Vob2xkZXIoYyk7IH07XG5cbnZhciBpc1ZTaG93RGlyZWN0aXZlID0gZnVuY3Rpb24gKGQpIHsgcmV0dXJuIGQubmFtZSA9PT0gJ3Nob3cnOyB9O1xuXG52YXIgVHJhbnNpdGlvbiA9IHtcbiAgbmFtZTogJ3RyYW5zaXRpb24nLFxuICBwcm9wczogdHJhbnNpdGlvblByb3BzLFxuICBhYnN0cmFjdDogdHJ1ZSxcblxuICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlciAoaCkge1xuICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG4gICAgdmFyIGNoaWxkcmVuID0gdGhpcy4kc2xvdHMuZGVmYXVsdDtcbiAgICBpZiAoIWNoaWxkcmVuKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBmaWx0ZXIgb3V0IHRleHQgbm9kZXMgKHBvc3NpYmxlIHdoaXRlc3BhY2VzKVxuICAgIGNoaWxkcmVuID0gY2hpbGRyZW4uZmlsdGVyKGlzTm90VGV4dE5vZGUpO1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmICghY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyB3YXJuIG11bHRpcGxlIGVsZW1lbnRzXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgY2hpbGRyZW4ubGVuZ3RoID4gMSkge1xuICAgICAgd2FybihcbiAgICAgICAgJzx0cmFuc2l0aW9uPiBjYW4gb25seSBiZSB1c2VkIG9uIGEgc2luZ2xlIGVsZW1lbnQuIFVzZSAnICtcbiAgICAgICAgJzx0cmFuc2l0aW9uLWdyb3VwPiBmb3IgbGlzdHMuJyxcbiAgICAgICAgdGhpcy4kcGFyZW50XG4gICAgICApO1xuICAgIH1cblxuICAgIHZhciBtb2RlID0gdGhpcy5tb2RlO1xuXG4gICAgLy8gd2FybiBpbnZhbGlkIG1vZGVcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJlxuICAgICAgbW9kZSAmJiBtb2RlICE9PSAnaW4tb3V0JyAmJiBtb2RlICE9PSAnb3V0LWluJ1xuICAgICkge1xuICAgICAgd2FybihcbiAgICAgICAgJ2ludmFsaWQgPHRyYW5zaXRpb24+IG1vZGU6ICcgKyBtb2RlLFxuICAgICAgICB0aGlzLiRwYXJlbnRcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdmFyIHJhd0NoaWxkID0gY2hpbGRyZW5bMF07XG5cbiAgICAvLyBpZiB0aGlzIGlzIGEgY29tcG9uZW50IHJvb3Qgbm9kZSBhbmQgdGhlIGNvbXBvbmVudCdzXG4gICAgLy8gcGFyZW50IGNvbnRhaW5lciBub2RlIGFsc28gaGFzIHRyYW5zaXRpb24sIHNraXAuXG4gICAgaWYgKGhhc1BhcmVudFRyYW5zaXRpb24odGhpcy4kdm5vZGUpKSB7XG4gICAgICByZXR1cm4gcmF3Q2hpbGRcbiAgICB9XG5cbiAgICAvLyBhcHBseSB0cmFuc2l0aW9uIGRhdGEgdG8gY2hpbGRcbiAgICAvLyB1c2UgZ2V0UmVhbENoaWxkKCkgdG8gaWdub3JlIGFic3RyYWN0IGNvbXBvbmVudHMgZS5nLiBrZWVwLWFsaXZlXG4gICAgdmFyIGNoaWxkID0gZ2V0UmVhbENoaWxkKHJhd0NoaWxkKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoIWNoaWxkKSB7XG4gICAgICByZXR1cm4gcmF3Q2hpbGRcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fbGVhdmluZykge1xuICAgICAgcmV0dXJuIHBsYWNlaG9sZGVyKGgsIHJhd0NoaWxkKVxuICAgIH1cblxuICAgIC8vIGVuc3VyZSBhIGtleSB0aGF0IGlzIHVuaXF1ZSB0byB0aGUgdm5vZGUgdHlwZSBhbmQgdG8gdGhpcyB0cmFuc2l0aW9uXG4gICAgLy8gY29tcG9uZW50IGluc3RhbmNlLiBUaGlzIGtleSB3aWxsIGJlIHVzZWQgdG8gcmVtb3ZlIHBlbmRpbmcgbGVhdmluZyBub2Rlc1xuICAgIC8vIGR1cmluZyBlbnRlcmluZy5cbiAgICB2YXIgaWQgPSBcIl9fdHJhbnNpdGlvbi1cIiArICh0aGlzLl91aWQpICsgXCItXCI7XG4gICAgY2hpbGQua2V5ID0gY2hpbGQua2V5ID09IG51bGxcbiAgICAgID8gY2hpbGQuaXNDb21tZW50XG4gICAgICAgID8gaWQgKyAnY29tbWVudCdcbiAgICAgICAgOiBpZCArIGNoaWxkLnRhZ1xuICAgICAgOiBpc1ByaW1pdGl2ZShjaGlsZC5rZXkpXG4gICAgICAgID8gKFN0cmluZyhjaGlsZC5rZXkpLmluZGV4T2YoaWQpID09PSAwID8gY2hpbGQua2V5IDogaWQgKyBjaGlsZC5rZXkpXG4gICAgICAgIDogY2hpbGQua2V5O1xuXG4gICAgdmFyIGRhdGEgPSAoY2hpbGQuZGF0YSB8fCAoY2hpbGQuZGF0YSA9IHt9KSkudHJhbnNpdGlvbiA9IGV4dHJhY3RUcmFuc2l0aW9uRGF0YSh0aGlzKTtcbiAgICB2YXIgb2xkUmF3Q2hpbGQgPSB0aGlzLl92bm9kZTtcbiAgICB2YXIgb2xkQ2hpbGQgPSBnZXRSZWFsQ2hpbGQob2xkUmF3Q2hpbGQpO1xuXG4gICAgLy8gbWFyayB2LXNob3dcbiAgICAvLyBzbyB0aGF0IHRoZSB0cmFuc2l0aW9uIG1vZHVsZSBjYW4gaGFuZCBvdmVyIHRoZSBjb250cm9sIHRvIHRoZSBkaXJlY3RpdmVcbiAgICBpZiAoY2hpbGQuZGF0YS5kaXJlY3RpdmVzICYmIGNoaWxkLmRhdGEuZGlyZWN0aXZlcy5zb21lKGlzVlNob3dEaXJlY3RpdmUpKSB7XG4gICAgICBjaGlsZC5kYXRhLnNob3cgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIG9sZENoaWxkICYmXG4gICAgICBvbGRDaGlsZC5kYXRhICYmXG4gICAgICAhaXNTYW1lQ2hpbGQoY2hpbGQsIG9sZENoaWxkKSAmJlxuICAgICAgIWlzQXN5bmNQbGFjZWhvbGRlcihvbGRDaGlsZCkgJiZcbiAgICAgIC8vICM2Njg3IGNvbXBvbmVudCByb290IGlzIGEgY29tbWVudCBub2RlXG4gICAgICAhKG9sZENoaWxkLmNvbXBvbmVudEluc3RhbmNlICYmIG9sZENoaWxkLmNvbXBvbmVudEluc3RhbmNlLl92bm9kZS5pc0NvbW1lbnQpXG4gICAgKSB7XG4gICAgICAvLyByZXBsYWNlIG9sZCBjaGlsZCB0cmFuc2l0aW9uIGRhdGEgd2l0aCBmcmVzaCBvbmVcbiAgICAgIC8vIGltcG9ydGFudCBmb3IgZHluYW1pYyB0cmFuc2l0aW9ucyFcbiAgICAgIHZhciBvbGREYXRhID0gb2xkQ2hpbGQuZGF0YS50cmFuc2l0aW9uID0gZXh0ZW5kKHt9LCBkYXRhKTtcbiAgICAgIC8vIGhhbmRsZSB0cmFuc2l0aW9uIG1vZGVcbiAgICAgIGlmIChtb2RlID09PSAnb3V0LWluJykge1xuICAgICAgICAvLyByZXR1cm4gcGxhY2Vob2xkZXIgbm9kZSBhbmQgcXVldWUgdXBkYXRlIHdoZW4gbGVhdmUgZmluaXNoZXNcbiAgICAgICAgdGhpcy5fbGVhdmluZyA9IHRydWU7XG4gICAgICAgIG1lcmdlVk5vZGVIb29rKG9sZERhdGEsICdhZnRlckxlYXZlJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHRoaXMkMS5fbGVhdmluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMkMS4kZm9yY2VVcGRhdGUoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBwbGFjZWhvbGRlcihoLCByYXdDaGlsZClcbiAgICAgIH0gZWxzZSBpZiAobW9kZSA9PT0gJ2luLW91dCcpIHtcbiAgICAgICAgaWYgKGlzQXN5bmNQbGFjZWhvbGRlcihjaGlsZCkpIHtcbiAgICAgICAgICByZXR1cm4gb2xkUmF3Q2hpbGRcbiAgICAgICAgfVxuICAgICAgICB2YXIgZGVsYXllZExlYXZlO1xuICAgICAgICB2YXIgcGVyZm9ybUxlYXZlID0gZnVuY3Rpb24gKCkgeyBkZWxheWVkTGVhdmUoKTsgfTtcbiAgICAgICAgbWVyZ2VWTm9kZUhvb2soZGF0YSwgJ2FmdGVyRW50ZXInLCBwZXJmb3JtTGVhdmUpO1xuICAgICAgICBtZXJnZVZOb2RlSG9vayhkYXRhLCAnZW50ZXJDYW5jZWxsZWQnLCBwZXJmb3JtTGVhdmUpO1xuICAgICAgICBtZXJnZVZOb2RlSG9vayhvbGREYXRhLCAnZGVsYXlMZWF2ZScsIGZ1bmN0aW9uIChsZWF2ZSkgeyBkZWxheWVkTGVhdmUgPSBsZWF2ZTsgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJhd0NoaWxkXG4gIH1cbn07XG5cbi8qICAqL1xuXG52YXIgcHJvcHMgPSBleHRlbmQoe1xuICB0YWc6IFN0cmluZyxcbiAgbW92ZUNsYXNzOiBTdHJpbmdcbn0sIHRyYW5zaXRpb25Qcm9wcyk7XG5cbmRlbGV0ZSBwcm9wcy5tb2RlO1xuXG52YXIgVHJhbnNpdGlvbkdyb3VwID0ge1xuICBwcm9wczogcHJvcHMsXG5cbiAgYmVmb3JlTW91bnQ6IGZ1bmN0aW9uIGJlZm9yZU1vdW50ICgpIHtcbiAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuICAgIHZhciB1cGRhdGUgPSB0aGlzLl91cGRhdGU7XG4gICAgdGhpcy5fdXBkYXRlID0gZnVuY3Rpb24gKHZub2RlLCBoeWRyYXRpbmcpIHtcbiAgICAgIHZhciByZXN0b3JlQWN0aXZlSW5zdGFuY2UgPSBzZXRBY3RpdmVJbnN0YW5jZSh0aGlzJDEpO1xuICAgICAgLy8gZm9yY2UgcmVtb3ZpbmcgcGFzc1xuICAgICAgdGhpcyQxLl9fcGF0Y2hfXyhcbiAgICAgICAgdGhpcyQxLl92bm9kZSxcbiAgICAgICAgdGhpcyQxLmtlcHQsXG4gICAgICAgIGZhbHNlLCAvLyBoeWRyYXRpbmdcbiAgICAgICAgdHJ1ZSAvLyByZW1vdmVPbmx5ICghaW1wb3J0YW50LCBhdm9pZHMgdW5uZWNlc3NhcnkgbW92ZXMpXG4gICAgICApO1xuICAgICAgdGhpcyQxLl92bm9kZSA9IHRoaXMkMS5rZXB0O1xuICAgICAgcmVzdG9yZUFjdGl2ZUluc3RhbmNlKCk7XG4gICAgICB1cGRhdGUuY2FsbCh0aGlzJDEsIHZub2RlLCBoeWRyYXRpbmcpO1xuICAgIH07XG4gIH0sXG5cbiAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIgKGgpIHtcbiAgICB2YXIgdGFnID0gdGhpcy50YWcgfHwgdGhpcy4kdm5vZGUuZGF0YS50YWcgfHwgJ3NwYW4nO1xuICAgIHZhciBtYXAgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHZhciBwcmV2Q2hpbGRyZW4gPSB0aGlzLnByZXZDaGlsZHJlbiA9IHRoaXMuY2hpbGRyZW47XG4gICAgdmFyIHJhd0NoaWxkcmVuID0gdGhpcy4kc2xvdHMuZGVmYXVsdCB8fCBbXTtcbiAgICB2YXIgY2hpbGRyZW4gPSB0aGlzLmNoaWxkcmVuID0gW107XG4gICAgdmFyIHRyYW5zaXRpb25EYXRhID0gZXh0cmFjdFRyYW5zaXRpb25EYXRhKHRoaXMpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCByYXdDaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGMgPSByYXdDaGlsZHJlbltpXTtcbiAgICAgIGlmIChjLnRhZykge1xuICAgICAgICBpZiAoYy5rZXkgIT0gbnVsbCAmJiBTdHJpbmcoYy5rZXkpLmluZGV4T2YoJ19fdmxpc3QnKSAhPT0gMCkge1xuICAgICAgICAgIGNoaWxkcmVuLnB1c2goYyk7XG4gICAgICAgICAgbWFwW2Mua2V5XSA9IGNcbiAgICAgICAgICA7KGMuZGF0YSB8fCAoYy5kYXRhID0ge30pKS50cmFuc2l0aW9uID0gdHJhbnNpdGlvbkRhdGE7XG4gICAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIHZhciBvcHRzID0gYy5jb21wb25lbnRPcHRpb25zO1xuICAgICAgICAgIHZhciBuYW1lID0gb3B0cyA/IChvcHRzLkN0b3Iub3B0aW9ucy5uYW1lIHx8IG9wdHMudGFnIHx8ICcnKSA6IGMudGFnO1xuICAgICAgICAgIHdhcm4oKFwiPHRyYW5zaXRpb24tZ3JvdXA+IGNoaWxkcmVuIG11c3QgYmUga2V5ZWQ6IDxcIiArIG5hbWUgKyBcIj5cIikpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHByZXZDaGlsZHJlbikge1xuICAgICAgdmFyIGtlcHQgPSBbXTtcbiAgICAgIHZhciByZW1vdmVkID0gW107XG4gICAgICBmb3IgKHZhciBpJDEgPSAwOyBpJDEgPCBwcmV2Q2hpbGRyZW4ubGVuZ3RoOyBpJDErKykge1xuICAgICAgICB2YXIgYyQxID0gcHJldkNoaWxkcmVuW2kkMV07XG4gICAgICAgIGMkMS5kYXRhLnRyYW5zaXRpb24gPSB0cmFuc2l0aW9uRGF0YTtcbiAgICAgICAgYyQxLmRhdGEucG9zID0gYyQxLmVsbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgaWYgKG1hcFtjJDEua2V5XSkge1xuICAgICAgICAgIGtlcHQucHVzaChjJDEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlbW92ZWQucHVzaChjJDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmtlcHQgPSBoKHRhZywgbnVsbCwga2VwdCk7XG4gICAgICB0aGlzLnJlbW92ZWQgPSByZW1vdmVkO1xuICAgIH1cblxuICAgIHJldHVybiBoKHRhZywgbnVsbCwgY2hpbGRyZW4pXG4gIH0sXG5cbiAgdXBkYXRlZDogZnVuY3Rpb24gdXBkYXRlZCAoKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gdGhpcy5wcmV2Q2hpbGRyZW47XG4gICAgdmFyIG1vdmVDbGFzcyA9IHRoaXMubW92ZUNsYXNzIHx8ICgodGhpcy5uYW1lIHx8ICd2JykgKyAnLW1vdmUnKTtcbiAgICBpZiAoIWNoaWxkcmVuLmxlbmd0aCB8fCAhdGhpcy5oYXNNb3ZlKGNoaWxkcmVuWzBdLmVsbSwgbW92ZUNsYXNzKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gd2UgZGl2aWRlIHRoZSB3b3JrIGludG8gdGhyZWUgbG9vcHMgdG8gYXZvaWQgbWl4aW5nIERPTSByZWFkcyBhbmQgd3JpdGVzXG4gICAgLy8gaW4gZWFjaCBpdGVyYXRpb24gLSB3aGljaCBoZWxwcyBwcmV2ZW50IGxheW91dCB0aHJhc2hpbmcuXG4gICAgY2hpbGRyZW4uZm9yRWFjaChjYWxsUGVuZGluZ0Nicyk7XG4gICAgY2hpbGRyZW4uZm9yRWFjaChyZWNvcmRQb3NpdGlvbik7XG4gICAgY2hpbGRyZW4uZm9yRWFjaChhcHBseVRyYW5zbGF0aW9uKTtcblxuICAgIC8vIGZvcmNlIHJlZmxvdyB0byBwdXQgZXZlcnl0aGluZyBpbiBwb3NpdGlvblxuICAgIC8vIGFzc2lnbiB0byB0aGlzIHRvIGF2b2lkIGJlaW5nIHJlbW92ZWQgaW4gdHJlZS1zaGFraW5nXG4gICAgLy8gJGZsb3ctZGlzYWJsZS1saW5lXG4gICAgdGhpcy5fcmVmbG93ID0gZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQ7XG5cbiAgICBjaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIChjKSB7XG4gICAgICBpZiAoYy5kYXRhLm1vdmVkKSB7XG4gICAgICAgIHZhciBlbCA9IGMuZWxtO1xuICAgICAgICB2YXIgcyA9IGVsLnN0eWxlO1xuICAgICAgICBhZGRUcmFuc2l0aW9uQ2xhc3MoZWwsIG1vdmVDbGFzcyk7XG4gICAgICAgIHMudHJhbnNmb3JtID0gcy5XZWJraXRUcmFuc2Zvcm0gPSBzLnRyYW5zaXRpb25EdXJhdGlvbiA9ICcnO1xuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKHRyYW5zaXRpb25FbmRFdmVudCwgZWwuX21vdmVDYiA9IGZ1bmN0aW9uIGNiIChlKSB7XG4gICAgICAgICAgaWYgKGUgJiYgZS50YXJnZXQgIT09IGVsKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFlIHx8IC90cmFuc2Zvcm0kLy50ZXN0KGUucHJvcGVydHlOYW1lKSkge1xuICAgICAgICAgICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcih0cmFuc2l0aW9uRW5kRXZlbnQsIGNiKTtcbiAgICAgICAgICAgIGVsLl9tb3ZlQ2IgPSBudWxsO1xuICAgICAgICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKGVsLCBtb3ZlQ2xhc3MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0sXG5cbiAgbWV0aG9kczoge1xuICAgIGhhc01vdmU6IGZ1bmN0aW9uIGhhc01vdmUgKGVsLCBtb3ZlQ2xhc3MpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgaWYgKCFoYXNUcmFuc2l0aW9uKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICBpZiAodGhpcy5faGFzTW92ZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzTW92ZVxuICAgICAgfVxuICAgICAgLy8gRGV0ZWN0IHdoZXRoZXIgYW4gZWxlbWVudCB3aXRoIHRoZSBtb3ZlIGNsYXNzIGFwcGxpZWQgaGFzXG4gICAgICAvLyBDU1MgdHJhbnNpdGlvbnMuIFNpbmNlIHRoZSBlbGVtZW50IG1heSBiZSBpbnNpZGUgYW4gZW50ZXJpbmdcbiAgICAgIC8vIHRyYW5zaXRpb24gYXQgdGhpcyB2ZXJ5IG1vbWVudCwgd2UgbWFrZSBhIGNsb25lIG9mIGl0IGFuZCByZW1vdmVcbiAgICAgIC8vIGFsbCBvdGhlciB0cmFuc2l0aW9uIGNsYXNzZXMgYXBwbGllZCB0byBlbnN1cmUgb25seSB0aGUgbW92ZSBjbGFzc1xuICAgICAgLy8gaXMgYXBwbGllZC5cbiAgICAgIHZhciBjbG9uZSA9IGVsLmNsb25lTm9kZSgpO1xuICAgICAgaWYgKGVsLl90cmFuc2l0aW9uQ2xhc3Nlcykge1xuICAgICAgICBlbC5fdHJhbnNpdGlvbkNsYXNzZXMuZm9yRWFjaChmdW5jdGlvbiAoY2xzKSB7IHJlbW92ZUNsYXNzKGNsb25lLCBjbHMpOyB9KTtcbiAgICAgIH1cbiAgICAgIGFkZENsYXNzKGNsb25lLCBtb3ZlQ2xhc3MpO1xuICAgICAgY2xvbmUuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgIHRoaXMuJGVsLmFwcGVuZENoaWxkKGNsb25lKTtcbiAgICAgIHZhciBpbmZvID0gZ2V0VHJhbnNpdGlvbkluZm8oY2xvbmUpO1xuICAgICAgdGhpcy4kZWwucmVtb3ZlQ2hpbGQoY2xvbmUpO1xuICAgICAgcmV0dXJuICh0aGlzLl9oYXNNb3ZlID0gaW5mby5oYXNUcmFuc2Zvcm0pXG4gICAgfVxuICB9XG59O1xuXG5mdW5jdGlvbiBjYWxsUGVuZGluZ0NicyAoYykge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKGMuZWxtLl9tb3ZlQ2IpIHtcbiAgICBjLmVsbS5fbW92ZUNiKCk7XG4gIH1cbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChjLmVsbS5fZW50ZXJDYikge1xuICAgIGMuZWxtLl9lbnRlckNiKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVjb3JkUG9zaXRpb24gKGMpIHtcbiAgYy5kYXRhLm5ld1BvcyA9IGMuZWxtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xufVxuXG5mdW5jdGlvbiBhcHBseVRyYW5zbGF0aW9uIChjKSB7XG4gIHZhciBvbGRQb3MgPSBjLmRhdGEucG9zO1xuICB2YXIgbmV3UG9zID0gYy5kYXRhLm5ld1BvcztcbiAgdmFyIGR4ID0gb2xkUG9zLmxlZnQgLSBuZXdQb3MubGVmdDtcbiAgdmFyIGR5ID0gb2xkUG9zLnRvcCAtIG5ld1Bvcy50b3A7XG4gIGlmIChkeCB8fCBkeSkge1xuICAgIGMuZGF0YS5tb3ZlZCA9IHRydWU7XG4gICAgdmFyIHMgPSBjLmVsbS5zdHlsZTtcbiAgICBzLnRyYW5zZm9ybSA9IHMuV2Via2l0VHJhbnNmb3JtID0gXCJ0cmFuc2xhdGUoXCIgKyBkeCArIFwicHgsXCIgKyBkeSArIFwicHgpXCI7XG4gICAgcy50cmFuc2l0aW9uRHVyYXRpb24gPSAnMHMnO1xuICB9XG59XG5cbnZhciBwbGF0Zm9ybUNvbXBvbmVudHMgPSB7XG4gIFRyYW5zaXRpb246IFRyYW5zaXRpb24sXG4gIFRyYW5zaXRpb25Hcm91cDogVHJhbnNpdGlvbkdyb3VwXG59O1xuXG4vKiAgKi9cblxuLy8gaW5zdGFsbCBwbGF0Zm9ybSBzcGVjaWZpYyB1dGlsc1xuVnVlLmNvbmZpZy5tdXN0VXNlUHJvcCA9IG11c3RVc2VQcm9wO1xuVnVlLmNvbmZpZy5pc1Jlc2VydmVkVGFnID0gaXNSZXNlcnZlZFRhZztcblZ1ZS5jb25maWcuaXNSZXNlcnZlZEF0dHIgPSBpc1Jlc2VydmVkQXR0cjtcblZ1ZS5jb25maWcuZ2V0VGFnTmFtZXNwYWNlID0gZ2V0VGFnTmFtZXNwYWNlO1xuVnVlLmNvbmZpZy5pc1Vua25vd25FbGVtZW50ID0gaXNVbmtub3duRWxlbWVudDtcblxuLy8gaW5zdGFsbCBwbGF0Zm9ybSBydW50aW1lIGRpcmVjdGl2ZXMgJiBjb21wb25lbnRzXG5leHRlbmQoVnVlLm9wdGlvbnMuZGlyZWN0aXZlcywgcGxhdGZvcm1EaXJlY3RpdmVzKTtcbmV4dGVuZChWdWUub3B0aW9ucy5jb21wb25lbnRzLCBwbGF0Zm9ybUNvbXBvbmVudHMpO1xuXG4vLyBpbnN0YWxsIHBsYXRmb3JtIHBhdGNoIGZ1bmN0aW9uXG5WdWUucHJvdG90eXBlLl9fcGF0Y2hfXyA9IGluQnJvd3NlciA/IHBhdGNoIDogbm9vcDtcblxuLy8gcHVibGljIG1vdW50IG1ldGhvZFxuVnVlLnByb3RvdHlwZS4kbW91bnQgPSBmdW5jdGlvbiAoXG4gIGVsLFxuICBoeWRyYXRpbmdcbikge1xuICBlbCA9IGVsICYmIGluQnJvd3NlciA/IHF1ZXJ5KGVsKSA6IHVuZGVmaW5lZDtcbiAgcmV0dXJuIG1vdW50Q29tcG9uZW50KHRoaXMsIGVsLCBoeWRyYXRpbmcpXG59O1xuXG4vLyBkZXZ0b29scyBnbG9iYWwgaG9va1xuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmlmIChpbkJyb3dzZXIpIHtcbiAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGNvbmZpZy5kZXZ0b29scykge1xuICAgICAgaWYgKGRldnRvb2xzKSB7XG4gICAgICAgIGRldnRvb2xzLmVtaXQoJ2luaXQnLCBWdWUpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJlxuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Rlc3QnXG4gICAgICApIHtcbiAgICAgICAgY29uc29sZVtjb25zb2xlLmluZm8gPyAnaW5mbycgOiAnbG9nJ10oXG4gICAgICAgICAgJ0Rvd25sb2FkIHRoZSBWdWUgRGV2dG9vbHMgZXh0ZW5zaW9uIGZvciBhIGJldHRlciBkZXZlbG9wbWVudCBleHBlcmllbmNlOlxcbicgK1xuICAgICAgICAgICdodHRwczovL2dpdGh1Yi5jb20vdnVlanMvdnVlLWRldnRvb2xzJ1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJlxuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICd0ZXN0JyAmJlxuICAgICAgY29uZmlnLnByb2R1Y3Rpb25UaXAgIT09IGZhbHNlICYmXG4gICAgICB0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICApIHtcbiAgICAgIGNvbnNvbGVbY29uc29sZS5pbmZvID8gJ2luZm8nIDogJ2xvZyddKFxuICAgICAgICBcIllvdSBhcmUgcnVubmluZyBWdWUgaW4gZGV2ZWxvcG1lbnQgbW9kZS5cXG5cIiArXG4gICAgICAgIFwiTWFrZSBzdXJlIHRvIHR1cm4gb24gcHJvZHVjdGlvbiBtb2RlIHdoZW4gZGVwbG95aW5nIGZvciBwcm9kdWN0aW9uLlxcblwiICtcbiAgICAgICAgXCJTZWUgbW9yZSB0aXBzIGF0IGh0dHBzOi8vdnVlanMub3JnL2d1aWRlL2RlcGxveW1lbnQuaHRtbFwiXG4gICAgICApO1xuICAgIH1cbiAgfSwgMCk7XG59XG5cbi8qICAqL1xuXG5leHBvcnQgZGVmYXVsdCBWdWU7XG4iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikge1xuICBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDtcblxuICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIHtcbiAgICBhcnIyW2ldID0gYXJyW2ldO1xuICB9XG5cbiAgcmV0dXJuIGFycjI7XG59IiwiaW1wb3J0IGFycmF5TGlrZVRvQXJyYXkgZnJvbSBcIi4vYXJyYXlMaWtlVG9BcnJheS5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2FycmF5V2l0aG91dEhvbGVzKGFycikge1xuICBpZiAoQXJyYXkuaXNBcnJheShhcnIpKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShhcnIpO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHtcbiAgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpO1xuICB9XG59IiwiZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTtcbiAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7XG4gICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgIGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHtcbiAgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7XG4gIGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgcmV0dXJuIENvbnN0cnVjdG9yO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHtcbiAgaWYgKGtleSBpbiBvYmopIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHtcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICB3cml0YWJsZTogdHJ1ZVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIG9ialtrZXldID0gdmFsdWU7XG4gIH1cblxuICByZXR1cm4gb2JqO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXkoaXRlcikge1xuICBpZiAodHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBpdGVyW1N5bWJvbC5pdGVyYXRvcl0gIT0gbnVsbCB8fCBpdGVyW1wiQEBpdGVyYXRvclwiXSAhPSBudWxsKSByZXR1cm4gQXJyYXkuZnJvbShpdGVyKTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfbm9uSXRlcmFibGVTcHJlYWQoKSB7XG4gIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpO1xufSIsImltcG9ydCBhcnJheVdpdGhvdXRIb2xlcyBmcm9tIFwiLi9hcnJheVdpdGhvdXRIb2xlcy5qc1wiO1xuaW1wb3J0IGl0ZXJhYmxlVG9BcnJheSBmcm9tIFwiLi9pdGVyYWJsZVRvQXJyYXkuanNcIjtcbmltcG9ydCB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSBmcm9tIFwiLi91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qc1wiO1xuaW1wb3J0IG5vbkl0ZXJhYmxlU3ByZWFkIGZyb20gXCIuL25vbkl0ZXJhYmxlU3ByZWFkLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfdG9Db25zdW1hYmxlQXJyYXkoYXJyKSB7XG4gIHJldHVybiBhcnJheVdpdGhvdXRIb2xlcyhhcnIpIHx8IGl0ZXJhYmxlVG9BcnJheShhcnIpIHx8IHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KGFycikgfHwgbm9uSXRlcmFibGVTcHJlYWQoKTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfdHlwZW9mKG9iaikge1xuICBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7XG5cbiAgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7XG4gICAgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIG9iajtcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikge1xuICAgICAgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBfdHlwZW9mKG9iaik7XG59IiwiaW1wb3J0IGFycmF5TGlrZVRvQXJyYXkgZnJvbSBcIi4vYXJyYXlMaWtlVG9BcnJheS5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sIG1pbkxlbikge1xuICBpZiAoIW8pIHJldHVybjtcbiAgaWYgKHR5cGVvZiBvID09PSBcInN0cmluZ1wiKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xuICB2YXIgbiA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKS5zbGljZSg4LCAtMSk7XG4gIGlmIChuID09PSBcIk9iamVjdFwiICYmIG8uY29uc3RydWN0b3IpIG4gPSBvLmNvbnN0cnVjdG9yLm5hbWU7XG4gIGlmIChuID09PSBcIk1hcFwiIHx8IG4gPT09IFwiU2V0XCIpIHJldHVybiBBcnJheS5mcm9tKG8pO1xuICBpZiAobiA9PT0gXCJBcmd1bWVudHNcIiB8fCAvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSkgcmV0dXJuIGFycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTtcbn0iLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdGlkOiBtb2R1bGVJZCxcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuLy8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbl9fd2VicGFja19yZXF1aXJlX18ubSA9IF9fd2VicGFja19tb2R1bGVzX187XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcblx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG5cdFx0ZnVuY3Rpb24oKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG5cdFx0ZnVuY3Rpb24oKSB7IHJldHVybiBtb2R1bGU7IH07XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuXHRyZXR1cm4gZ2V0dGVyO1xufTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBkZWZpbml0aW9uKSB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18uZyA9IChmdW5jdGlvbigpIHtcblx0aWYgKHR5cGVvZiBnbG9iYWxUaGlzID09PSAnb2JqZWN0JykgcmV0dXJuIGdsb2JhbFRoaXM7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIHRoaXMgfHwgbmV3IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ29iamVjdCcpIHJldHVybiB3aW5kb3c7XG5cdH1cbn0pKCk7IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqLCBwcm9wKSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKTsgfSIsIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IGZ1bmN0aW9uKGV4cG9ydHMpIHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5iID0gZG9jdW1lbnQuYmFzZVVSSSB8fCBzZWxmLmxvY2F0aW9uLmhyZWY7XG5cbi8vIG9iamVjdCB0byBzdG9yZSBsb2FkZWQgYW5kIGxvYWRpbmcgY2h1bmtzXG4vLyB1bmRlZmluZWQgPSBjaHVuayBub3QgbG9hZGVkLCBudWxsID0gY2h1bmsgcHJlbG9hZGVkL3ByZWZldGNoZWRcbi8vIFtyZXNvbHZlLCByZWplY3QsIFByb21pc2VdID0gY2h1bmsgbG9hZGluZywgMCA9IGNodW5rIGxvYWRlZFxudmFyIGluc3RhbGxlZENodW5rcyA9IHtcblx0XCJtYWluXCI6IDBcbn07XG5cbi8vIG5vIGNodW5rIG9uIGRlbWFuZCBsb2FkaW5nXG5cbi8vIG5vIHByZWZldGNoaW5nXG5cbi8vIG5vIHByZWxvYWRlZFxuXG4vLyBubyBITVJcblxuLy8gbm8gSE1SIG1hbmlmZXN0XG5cbi8vIG5vIG9uIGNodW5rcyBsb2FkZWRcblxuLy8gbm8ganNvbnAgZnVuY3Rpb24iLCJpbXBvcnQgVnVlIGZyb20gJ3Z1ZSdcclxuaW1wb3J0IEFwcCBmcm9tICcuL2FwcCdcclxuXHJcbi8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vcXVhc2FyZnJhbWV3b3JrL3F1YXNhci9pc3N1ZXMvMTU3NlxyXG4vLyBmb3IgdGhlIGluZm9ybWF0aW9uIGFib3V0IFF1YXNhciBpbnRlZ3JhdGlvbiBpbnRvIGV4aXN0aW5nIGFwcC5cclxuaW1wb3J0ICdxdWFzYXItZnJhbWV3b3JrL2Rpc3QvdW1kL3F1YXNhci5tYXQuY3NzJ1xyXG5pbXBvcnQgUXVhc2FyIGZyb20gJ3F1YXNhci1mcmFtZXdvcmsvZGlzdC9xdWFzYXIubWF0LmVzbSdcclxuVnVlLnVzZShRdWFzYXIpXHJcblxyXG5uZXcgVnVlKHtcclxuXHRlbDogJyNhcHAnLFxyXG5cdHJlbmRlcjogKGgpID0+IGgoQXBwKSxcclxufSlcclxuIl0sIm5hbWVzIjpbImRlZmF1bHQiLCJBbmNob3JzIiwiQ2F0ZWdvcnkiLCJQcmV2aWV3IiwiU2VhcmNoIiwiU2tpbnMiLCJFbW9qaSIsIlBpY2tlciIsInN0b3JlIiwidW5jb21wcmVzcyIsImZyZXF1ZW50bHkiLCJFbW9qaUluZGV4IiwiRW1vamlWaWV3IiwiRW1vamlEYXRhIiwic2FuaXRpemUiLCJfU3RyaW5nIiwiU3RyaW5nIiwiZnJvbUNvZGVQb2ludCIsInN0cmluZ0Zyb21Db2RlUG9pbnQiLCJNQVhfU0laRSIsImNvZGVVbml0cyIsImhpZ2hTdXJyb2dhdGUiLCJsb3dTdXJyb2dhdGUiLCJpbmRleCIsImxlbmd0aCIsImFyZ3VtZW50cyIsInJlc3VsdCIsImNvZGVQb2ludCIsIk51bWJlciIsImlzRmluaXRlIiwiTWF0aCIsImZsb29yIiwiUmFuZ2VFcnJvciIsInB1c2giLCJmcm9tQ2hhckNvZGUiLCJhcHBseSIsIlNWR3MiLCJhY3Rpdml0eSIsImN1c3RvbSIsImZsYWdzIiwiZm9vZHMiLCJuYXR1cmUiLCJvYmplY3RzIiwic21pbGV5cyIsInBlb3BsZSIsInBsYWNlcyIsInJlY2VudCIsInN5bWJvbHMiLCJtYXBwaW5nIiwibmFtZSIsInVuaWZpZWQiLCJub25fcXVhbGlmaWVkIiwiaGFzX2ltZ19hcHBsZSIsImhhc19pbWdfZ29vZ2xlIiwiaGFzX2ltZ190d2l0dGVyIiwiaGFzX2ltZ19mYWNlYm9vayIsImtleXdvcmRzIiwic2hlZXQiLCJlbW90aWNvbnMiLCJ0ZXh0Iiwic2hvcnRfbmFtZXMiLCJhZGRlZF9pbiIsImJ1aWxkU2VhcmNoIiwiZW1vamkiLCJzZWFyY2giLCJhZGRUb1NlYXJjaCIsInN0cmluZ3MiLCJzcGxpdCIsIkFycmF5IiwiaXNBcnJheSIsImZvckVhY2giLCJzdHJpbmciLCJzIiwidG9Mb3dlckNhc2UiLCJpbmRleE9mIiwiam9pbiIsImRlZXBGcmVlemUiLCJvYmplY3QiLCJwcm9wTmFtZXMiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwidmFsdWUiLCJmcmVlemUiLCJkYXRhIiwiY29tcHJlc3NlZCIsImlkIiwiZW1vamlzIiwia2V5IiwidW5zaGlmdCIsInNoZWV0X3giLCJzaGVldF95IiwidG9GaXhlZCIsImludGVyc2VjdCIsInVuaWZpZWRUb05hdGl2ZSIsIlNIRUVUX0NPTFVNTlMiLCJDT0xPTlNfUkVHRVgiLCJTS0lOUyIsImVtb2ppc1RvU2hvd0ZpbHRlciIsImluY2x1ZGUiLCJleGNsdWRlIiwicmVjZW50TGVuZ3RoIiwiX2RhdGEiLCJfZW1vamlzRmlsdGVyIiwiX2luY2x1ZGUiLCJfZXhjbHVkZSIsIl9jdXN0b20iLCJfcmVjZW50IiwiZ2V0IiwiX2Vtb2ppcyIsIl9uYXRpdmVFbW9qaXMiLCJfZW1vdGljb25zIiwiX2NhdGVnb3JpZXMiLCJfcmVjZW50Q2F0ZWdvcnkiLCJfY3VzdG9tQ2F0ZWdvcnkiLCJfc2VhcmNoSW5kZXgiLCJidWlsZEluZGV4IiwiYWxsQ2F0ZWdvcmllcyIsImNhdGVnb3JpZXMiLCJmaWx0ZXIiLCJpdGVtIiwiaW5jbHVkZXMiLCJzb3J0IiwiYSIsImIiLCJpbmRleEEiLCJpbmRleEIiLCJjYXRlZ29yeURhdGEiLCJpc0NhdGVnb3J5TmVlZGVkIiwiY2F0ZWdvcnkiLCJlbW9qaUlkIiwiYWRkRW1vamkiLCJjdXN0b21FbW9qaSIsImFkZEN1c3RvbUVtb2ppIiwibWFwIiwiaGFzRW1vamkiLCJza2luIiwibWF0Y2hlcyIsIm1hdGNoIiwicGFyc2VJbnQiLCJhbGlhc2VzIiwiaGFzT3duUHJvcGVydHkiLCJlbW9qaU9iamVjdCIsImdldFNraW4iLCJFcnJvciIsImtleXMiLCJ1bmljb2RlRW1vamkiLCJtYXhSZXN1bHRzIiwidmFsdWVzIiwiYWxsUmVzdWx0cyIsImN1cnJlbnRJbmRleCIsImNoYXJJbmRleCIsImNoYXIiLCJyZXN1bHRzIiwic2NvcmVzIiwic3ViIiwic3Vic3RyIiwic3ViSW5kZXgiLCJzY29yZSIsImFTY29yZSIsImJTY29yZSIsInNsaWNlIiwiZW1vamlEYXRhIiwiYXNzaWduIiwiaXNFbW9qaU5lZWRlZCIsIm5hdGl2ZSIsIl9za2lucyIsImlkeCIsImVtb3RpY29uIiwiY2F0ZWdvcnlfaWQiLCJpc0luY2x1ZGVkIiwiaXNFeGNsdWRlZCIsInNraW5fdmFyaWF0aW9ucyIsInNraW5JZHgiLCJza2luS2V5IiwidmFyaWF0aW9uRGF0YSIsInNraW5EYXRhIiwiayIsIl9zYW5pdGl6ZWQiLCJzaG9ydF9uYW1lIiwiYWRqdXN0ZWRDb2x1bW5zIiwieCIsInkiLCJjb25jYXQiLCJCb29sZWFuIiwic2V0IiwiZmFsbGJhY2siLCJlbW9qaVRvb2x0aXAiLCJlbW9qaVNpemUiLCJfZW1vamkiLCJfbmF0aXZlIiwiX3NraW4iLCJfc2V0IiwiX2ZhbGxiYWNrIiwiY2FuUmVuZGVyIiwiX2NhblJlbmRlciIsImNzc0NsYXNzIiwiX2Nzc0NsYXNzIiwiY3NzU3R5bGUiLCJfY3NzU3R5bGUiLCJjb250ZW50IiwiX2NvbnRlbnQiLCJ0aXRsZSIsImFyaWFMYWJlbCIsIl9pc0N1c3RvbSIsIl9pc05hdGl2ZSIsIl9oYXNFbW9qaSIsIl9lbW9qaVR5cGUiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJnZXRFbW9qaSIsImltYWdlVXJsIiwiYmFja2dyb3VuZFNpemUiLCJ3aWR0aCIsImhlaWdodCIsImJhY2tncm91bmRQb3NpdGlvbiIsImdldFBvc2l0aW9uIiwiZm9udFNpemUiLCJyb3VuZCIsImhhc0ltYWdlIiwidW5kZWZpbmVkIiwic2tpbl90b25lIiwiY29sb25zIiwiREVGQVVMVFMiLCJpbml0aWFsaXplZCIsImRlZmF1bHRzIiwiaW5pdCIsImFkZCIsIm1heE51bWJlciIsImRlZmF1bHRMZW5ndGgiLCJtaW4iLCJpIiwicXVhbnRpdHkiLCJmcmVxdWVudGx5S2V5cyIsInNvcnRlZCIsInJldmVyc2UiLCJzbGljZWQiLCJsYXN0IiwicG9wIiwidW5pY29kZXMiLCJjb2RlUG9pbnRzIiwidSIsInVuaXEiLCJhcnIiLCJyZWR1Y2UiLCJhY2MiLCJ1bmlxQSIsInVuaXFCIiwiZGVlcE1lcmdlIiwibyIsIm9yaWdpbmFsVmFsdWUiLCJtZWFzdXJlU2Nyb2xsYmFyIiwiZG9jdW1lbnQiLCJkaXYiLCJjcmVhdGVFbGVtZW50Iiwic3R5bGUiLCJvdmVyZmxvdyIsInBvc2l0aW9uIiwidG9wIiwiYm9keSIsImFwcGVuZENoaWxkIiwic2Nyb2xsYmFyV2lkdGgiLCJvZmZzZXRXaWR0aCIsImNsaWVudFdpZHRoIiwicmVtb3ZlQ2hpbGQiLCJQaWNrZXJWaWV3IiwicGlja2VyQ29tcG9uZW50IiwiX3ZtIiwiX3BlckxpbmUiLCJwZXJMaW5lIiwiZmlyc3QiLCJhY3RpdmVDYXRlZ29yeSIsInNlYXJjaEVtb2ppcyIsInByZXZpZXdFbW9qaSIsInByZXZpZXdFbW9qaUNhdGVnb3J5SWR4IiwicHJldmlld0Vtb2ppSWR4Iiwic2Nyb2xsRWxlbWVudCIsIiRyZWZzIiwic2Nyb2xsIiwic2Nyb2xsVG9wIiwiZmlsdGVyZWRDYXRlZ29yaWVzIiwibCIsImNvbXBvbmVudCIsImdldENhdGVnb3J5Q29tcG9uZW50IiwiJGVsIiwib2Zmc2V0VG9wIiwiaGFzRW1vamlzIiwic2Nyb2xsVG9Db21wb25lbnQiLCJpbmZpbml0ZVNjcm9sbCIsIm1heFNlYXJjaFJlc3VsdHMiLCJ1cGRhdGVQcmV2aWV3RW1vamkiLCJlbW9qaXNMZW5ndGgiLCJvbkFycm93UmlnaHQiLCJjYXRlZ29yeUxlbmd0aCIsImRpZmYiLCJwcmV2Q2F0ZWdvcnlMYXN0Um93TGVuZ3RoIiwib25BcnJvd0xlZnQiLCIkbmV4dFRpY2siLCJzY3JvbGxFbCIsImVtb2ppRWwiLCJxdWVyeVNlbGVjdG9yIiwic2Nyb2xsSGVpZ2h0Iiwib2Zmc2V0SGVpZ2h0IiwiY2F0ZWdvcnlJZHgiLCJFbW9qaVByb3BzIiwidHlwZSIsInRvb2x0aXAiLCJGdW5jdGlvbiIsInJlcXVpcmVkIiwic2l6ZSIsInRhZyIsIlBpY2tlclByb3BzIiwiY29sb3IiLCJkZWZhdWx0U2tpbiIsImF1dG9Gb2N1cyIsImkxOG4iLCJzaG93UHJldmlldyIsInNob3dTZWFyY2giLCJzaG93Q2F0ZWdvcmllcyIsInNob3dTa2luVG9uZXMiLCJwaWNrZXJTdHlsZXMiLCJOQU1FU1BBQ0UiLCJfSlNPTiIsIkpTT04iLCJpc0xvY2FsU3RvcmFnZVN1cHBvcnRlZCIsIndpbmRvdyIsImdldHRlciIsInNldHRlciIsInNldEhhbmRsZXJzIiwiaGFuZGxlcnMiLCJzZXROYW1lc3BhY2UiLCJuYW1lc3BhY2UiLCJ1cGRhdGUiLCJzdGF0ZSIsImxvY2FsU3RvcmFnZSIsInN0cmluZ2lmeSIsImUiLCJwYXJzZSIsImlzV2luZG93QXZhaWxhYmxlIiwibGFzdFRpbWUiLCJ2ZW5kb3JzIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJjYWxsYmFjayIsImVsZW1lbnQiLCJjdXJyVGltZSIsIkRhdGUiLCJnZXRUaW1lIiwidGltZVRvQ2FsbCIsIm1heCIsInNldFRpbWVvdXQiLCJjbGVhclRpbWVvdXQiLCJWdWUiLCJBcHAiLCJRdWFzYXIiLCJ1c2UiLCJlbCIsInJlbmRlciIsImgiXSwic291cmNlUm9vdCI6IiJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,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WUFBWSxhQUFhLFdBQVcsVUFBVSxZQUFZLGFBQWEsYUFBYSxPQUFPLEtBQUssWUFBWSxPQUFPLEtBQUssVUFBVSxVQUFVLFVBQVUsT0FBTyxLQUFLLE1BQU0sT0FBTyxhQUFhLE9BQU8sS0FBSyxZQUFZLE1BQU0sT0FBTyxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE9BQU8sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsT0FBTyxLQUFLLFlBQVksYUFBYSxZQUFZLFVBQVUsVUFBVSxZQUFZLHVCQUF1Qix5QkFBeUIsYUFBYSxPQUFPLEtBQUssV0FBVyxXQUFXLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxXQUFXLFVBQVUsVUFBVSxPQUFPLEtBQUssWUFBWSxXQUFXLFdBQVcsV0FBVyxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLFdBQVcsWUFBWSxhQUFhLGFBQWEsTUFBTSxNQUFNLFVBQVUsT0FBTyxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxZQUFZLE9BQU8sS0FBSyxZQUFZLFdBQVcsVUFBVSxPQUFPLEtBQUssWUFBWSxhQUFhLE9BQU8sS0FBSyxVQUFVLFlBQVksWUFBWSxVQUFVLFVBQVUsWUFBWSx1QkFBdUIseUJBQXlCLGFBQWEsT0FBTyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsV0FBVyxLQUFLLEtBQUssVUFBVSxZQUFZLE9BQU8sS0FBSyxZQUFZLE9BQU8sS0FBSyxVQUFVLFlBQVksYUFBYSxXQUFXLE9BQU8sTUFBTSxVQUFVLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxXQUFXLEtBQUssTUFBTSxVQUFVLE1BQU0sS0FBSyxZQUFZLGFBQWEsV0FBVyxLQUFLLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxPQUFPLEtBQUssVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxPQUFPLEtBQUssWUFBWSxhQUFhLFdBQVcsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLFdBQVcsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksV0FBVyxNQUFNLE9BQU8sWUFBWSxXQUFXLFlBQVksYUFBYSxhQUFhLE9BQU8sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxPQUFPLEtBQUssVUFBVSxZQUFZLE9BQU8sS0FBSyxVQUFVLE9BQU8sS0FBSyxVQUFVLFVBQVUsS0FBSyxPQUFPLFlBQVksT0FBTyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLE9BQU8sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxPQUFPLEtBQUssVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLE9BQU8sS0FBSyxVQUFVLFVBQVUsT0FBTyxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksV0FBVyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE9BQU8sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE9BQU8sS0FBSyxZQUFZLFdBQVcsVUFBVSxNQUFNLEtBQUssVUFBVSxZQUFZLFdBQVcsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxXQUFXLFlBQVksYUFBYSxhQUFhLE9BQU8sS0FBSyxZQUFZLFdBQVcsWUFBWSxXQUFXLFlBQVksT0FBTyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlB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QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxtQkFBbUIsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxtQkFBbUIsMkJBQTJCLEdBQUcscUJBQXFCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyx3QkFBd0IsOEJBQThCLEdBQUcsd0JBQXdCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyx3QkFBd0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxtQkFBbUIsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxtQkFBbUIsOEJBQThCLEdBQUcsY0FBYyw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLG9CQUFvQiw4QkFBOEIsR0FBRyxzQkFBc0IsOEJBQThCLEdBQUcsc0JBQXNCLDhCQUE4QixHQUFHLHNCQUFzQiw4QkFBOEIsR0FBRyxzQkFBc0IsOEJBQThCLEdBQUcsc0JBQXNCLDhCQUE4QixHQUFHLHNCQUFzQiw4QkFBOEIsR0FBRyxzQkFBc0IsOEJBQThCLEdBQUcsc0JBQXNCLDhCQUE4QixHQUFHLHNCQUFzQiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLGNBQWMsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxjQUFjLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsZUFBZSw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLHFCQUFxQiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx3QkFBd0IsOEJBQThCLEdBQUcsd0JBQXdCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyx3QkFBd0IsOEJBQThCLEdBQUcsd0JBQXdCLDhCQUE4QixHQUFHLGNBQWMsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxtQkFBbUIsMkJBQTJCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxlQUFlLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIs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LGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsZ0NBQWdDLEdBQUcsbUJBQW1CLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLFlBQVksbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGtCQUFrQixtQ0FBbUMsR0FBRyxvQkFBb0IsbUNBQW1DLEdBQUcsb0JBQW9CLG1DQUFtQyxHQUFHLG9CQUFvQixtQ0FBbUMsR0FBRyxvQkFBb0IsbUNBQW1DLEdBQUcsb0JBQW9CLG1DQUFtQyxHQUFHLG9CQUFvQixtQ0FBbUMsR0FBRyxvQkFBb0IsbUNBQW1DLEdBQUcsb0JBQW9CLG1DQUFtQyxHQUFHLG9CQUFvQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLFlBQVksbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLFlBQVksbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGFBQWEsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxtQkFBbUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxZQUFZLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLGdDQUFnQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsYUFBYSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxtQkFBbUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJB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USxZQUFZLGFBQWEsTUFBTSxnQkFBZ0IsVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sUUFBUSxZQUFZLFdBQVcsTUFBTSxLQUFLLFlBQVksYUFBYSxXQUFXLFlBQVksTUFBTSxRQUFRLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLE9BQU8sWUFBWSxNQUFNLE1BQU0sVUFBVSxVQUFVLEtBQUssTUFBTSxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsV0FBVyxNQUFNLE1BQU0sWUFBWSxhQUFhLGFBQWEsYUFBYSxXQUFXLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxNQUFNLFlBQVksV0FBVyxLQUFLLE1BQU0sVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxXQUFXLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxXQUFXLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxNQUFNLFVBQVUsVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxNQUFNLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksV0FBVyxZQUFZLFdBQVcsWUFBWSxXQUFXLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLFdBQVcsVUFBVSxVQUFVLFVBQVUsWUFBWSxXQUFXLFlBQVksYUFBYSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsV0FBVyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLE1BQU0sWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sTUFBTSxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxLQUFLLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLFdBQVcsTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sT0FBTyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxNQUFNLFlBQVksYUFBYSxhQUFhLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLE1BQU0sVUFBVSxZQUFZLE1BQU0sTUFBTSxVQUFVLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxZQUFZLFlBQVksVUFBVSxXQUFXLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxXQUFXLFlBQVksYUFBYSxXQUFXLEtBQUssS0FBSyxZQUFZLGFBQWEsV0FBVyxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsV0FBVyxNQUFNLE1BQU0sVUFBVSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLFdBQVcsVUFBVSxVQUFVLFVBQVUsWUFBWSxXQUFXLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsV0FBVyxZQUFZLE1BQU0sS0FBSyxZQUFZLFlBQVksVUFBVSxNQUFNLE1BQU0sVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLE9BQU8sWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLFdBQVcsWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFlBQVksV0FBVyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsV0FBVyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksYUFBYSxZQUFZLFVBQVUsTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLFVBQVUsWUFBWSxXQUFXLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLFVBQVUsWUFBWSxhQUFhLFdBQVcsVUFBVSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsWUFBWSxXQUFXLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sTUFBTSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLFdBQVcsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsV0FBVyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsVUFBVSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsV0FBVyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsV0FBVyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxXQUFXLE1BQU0sS0FBSyxVQUFVLFlBQVksV0FBVyxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLFdBQVcsVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsS0FBSyxNQUFNLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksV0FBVyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksV0FBVyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksYUFBYSxXQUFXLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxZQUFZLFdBQVcsWUFBWSxXQUFXLFVBQVUsVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsV0FBVyxZQUFZLFdBQVcsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxXQUFXLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxNQUFNLFVBQVUsS0FBSyxNQUFNLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxXQUFXLFVBQVUsVUFBVSxZQUFZLFdBQVcsVUFBVSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxZQUFZLFVBQVUsTUFBTSxLQUFLLFlBQVksWUFBWSxVQUFVLE1BQU0sS0FBSyxLQUFLLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsV0FBVyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLFdBQVcsS0FBSyxLQUFLLFlBQVksYUFBYSxXQUFXLEtBQUssTUFBTSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLFdBQVcsVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsV0FBVyxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsV0FBVyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLFdBQVcsVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksV0FBVyxNQUFNLEtBQUssWUFBWSxXQUFXLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksV0FBVyxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxRQUFRLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxPQUFPLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sT0FBTyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxZQUFZLFlBQVksYUFBYSxNQUFNLFFBQVEsVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLFdBQVcsS0FBSyxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sTUFBTSxVQUFVLEtBQUssTUFBTSxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLFdBQVcsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLFdBQVcsWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLE1BQU0sWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLE9BQU8sWUFBWSxNQUFNLE9BQU8sVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxPQUFPLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxRQUFRLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLE9BQU8sWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxNQUFNLE9BQU8sWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLFlBQVksTUFBTSxPQUFPLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsV0FBVyxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksTUFBTSxPQUFPLFVBQVUsWUFBWSxNQUFNLE9BQU8sVUFBVSxLQUFLLE9BQU8sVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssTUFBTSxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxXQUFXLFlBQVksYUFBYSxXQUFXLFlBQVksYUFBYSxhQUFhLFdBQVcsS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sTUFBTSxVQUFVLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksV0FBVyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLFdBQVcsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxNQUFNLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxXQUFXLFVBQVUsVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsTUFBTSxRQUFRLFlBQVksTUFBTSxNQUFNLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLFNBQVMsVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLE1BQU0sVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLFFBQVEsWUFBWSxhQUFhLE1BQU0sUUFBUSxZQUFZLE1BQU0sUUFBUSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxZQUFZLFVBQVUsV0FBVyxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sVUFBVSxVQUFVLFlBQVksTUFBTSxNQUFNLFVBQVUsTUFBTSxLQUFLLFlBQVksV0FBVyxZQUFZLFdBQVcsVUFBVSxLQUFLLE1BQU0sVUFBVSxNQUFNLEtBQUssWUFBWSxZQUFZLFVBQVUsV0FBVyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLFdBQVcsWUFBWSxhQUFhLGFBQWEsV0FBVyxZQUFZLGFBQWEsYUFBYSxNQUFNLE9BQU8sWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxNQUFNLFlBQVksYUFBYSxhQUFhLE1BQU0sTUFBTSxVQUFVLE1BQU0sUUFBUSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxVQUFVLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxZQUFZLE1BQU0sTUFBTSxZQUFZLFdBQVcsTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sVUFBVSxLQUFLLE1BQU0sVUFBVSxZQUFZLE1BQU0sUUFBUSxVQUFVLE1BQU0sTUFBTSxVQUFVLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sUUFBUSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLFdBQVcsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxVQUFVLEtBQUssS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxPQUFPLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxZQUFZLFdBQVcsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxNQUFNLFVBQVUsS0FBSyxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sVUFBVSxLQUFLLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxVQUFVLEtBQUssTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLFVBQVUsS0FBSyxNQUFNLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsV0FBVyxVQUFVLE1BQU0sVUFBVSxVQUFVLFlBQVksYUFBYSxXQUFXLEtBQUssZ0JBQWdCLFVBQVUsWUFBWSxhQUFhLFdBQVcsS0FBSyxhQUFhLFlBQVksV0FBVyxVQUFVLFVBQVUsTUFBTSxNQUFNLFVBQVUsS0FBSyxPQUFPLFVBQVUsS0FBSyxLQUFLLFlBQVksV0FBVyxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxZQUFZLGFBQWEsTUFBTSxNQUFNLFlBQVksV0FBVyxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsV0FBVyxZQUFZLGFBQWEsYUFBYSxXQUFXLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLFdBQVcsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLFdBQVcsVUFBVSxZQUFZLGFBQWEsTUFBTSxNQUFNLFVBQVUsWUFBWSxhQUFhLFdBQVcsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLE9BQU8sWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLFdBQVcsVUFBVSxZQUFZLGFBQWEsY0FBYyxlQUFlLE9BQU8sTUFBTSxZQUFZLFdBQVcsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sT0FBTyxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsV0FBVyxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsV0FBVyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLE1BQU0sVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLFVBQVUsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxNQUFNLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLFVBQVUsWUFBWSxhQUFhLFdBQVcsVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLFVBQVUsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxXQUFXLFVBQVUsVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLFdBQVcsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLFdBQVcsWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sT0FBTyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsWUFBWSxXQUFXLE1BQU0sTUFBTSxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksV0FBVyxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsV0FBVyxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksV0FBVyxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sTUFBTSxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sT0FBTyxVQUFVLEtBQUssTUFBTSxZQUFZLFdBQVcsVUFBVSxVQUFVLFlBQVksTUFBTSxNQUFNLFVBQVUsVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sVUFBVSxZQUFZLFdBQVcsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssTUFBTSxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFlBQVksV0FBVyxZQUFZLE1BQU0sTUFBTSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxXQUFXLEtBQUssS0FBSyxNQUFNLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxLQUFLLE1BQU0sWUFBWSxZQUFZLFVBQVUsTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLEtBQUssTUFBTSxZQUFZLGFBQWEsYUFBYSxNQUFNLE1BQU0sVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxZQUFZLFVBQVUsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLFlBQVksV0FBVyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxXQUFXLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLFdBQVcsWUFBWSxVQUFVLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxNQUFNLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxXQUFXLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxXQUFXLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksV0FBVyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sT0FBTyxZQUFZLFdBQVcsTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sUUFBUSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssTUFBTSxZQUFZLGFBQWEsTUFBTSxRQUFRLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLFdBQVcsVUFBVSxVQUFVLFVBQVUsS0FBSyxNQUFNLFVBQVUsWUFBWSxXQUFXLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLFdBQVcsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxLQUFLLFlBQVksV0FBVyxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssT0FBTyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksV0FBVyxNQUFNLFFBQVEsVUFBVSxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksV0FBVyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxNQUFNLFVBQVUsS0FBSyxNQUFNLFVBQVUsWUFBWSxhQUFhLE1BQU0sTUFBTSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxLQUFLLFlBQVksYUFBYSxXQUFXLFVBQVUsWUFBWSxhQUFhLFdBQVcsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsV0FBVyxVQUFVLFVBQVUsVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLFdBQVcsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksWUFBWSxVQUFVLFdBQVcsVUFBVSxVQUFVLFlBQVksV0FBVyxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssTUFBTSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsWUFBWSxXQUFXLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLFdBQVcsVUFBVSxVQUFVLFVBQVUsVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLFdBQVcsVUFBVSxVQUFVLFVBQVUsVUFBVSxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssTUFBTSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLE9BQU8sVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxPQUFPLFlBQVksYUFBYSxXQUFXLFlBQVksVUFBVSxNQUFNLE9BQU8sWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxXQUFXLE1BQU0sS0FBSyxZQUFZLGFBQWEsV0FBVyxNQUFNLEtBQUssWUFBWSxhQUFhLFVBQVUsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsWUFBWSxNQUFNLE1BQU0sWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsWUFBWSxNQUFNLE1BQU0sWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxNQUFNLFVBQVUsTUFBTSxNQUFNLFVBQVUsTUFBTSxNQUFNLFVBQVUsS0FBSyxNQUFNLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLG9FQUFvRSxXQUFXLFVBQVUsVUFBVSxNQUFNLG9FQUFvRSxXQUFXLFVBQVUsWUFBWSxNQUFNLE1BQU0sWUFBWSxhQUFhLGFBQWEsTUFBTSxnQ0FBZ0MsYUFBYSxZQUFZLFVBQVUsTUFBTSxNQUFNLFlBQVksWUFBWSxVQUFVLE1BQU0sTUFBTSxVQUFVLFVBQVUsS0FBSyxNQUFNLFVBQVUsTUFBTSxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxVQUFVLFVBQVUsS0FBSyxNQUFNLFVBQVUsVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxXQUFXLEtBQUssTUFBTSxVQUFVLFVBQVUsS0FBSyxNQUFNLFlBQVksTUFBTSxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLFdBQVcsS0FBSyxNQUFNLFVBQVUsVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxXQUFXLEtBQUssTUFBTSxVQUFVLFVBQVUsS0FBSyxNQUFNLFlBQVksTUFBTSxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLFdBQVcsS0FBSyxNQUFNLFVBQVUsVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxXQUFXLEtBQUssTUFBTSxVQUFVLFVBQVUsS0FBSyxNQUFNLFlBQVksTUFBTSxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLFdBQVcsS0FBSyxNQUFNLFVBQVUsVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxXQUFXLEtBQUssTUFBTSxVQUFVLFVBQVUsS0FBSyxNQUFNLFlBQVksTUFBTSxNQUFNLFVBQVUsVUFBVSxLQUFLLEtBQUssS0FBSyxvQ0FBb0MsV0FBVyxVQUFVLFVBQVUsTUFBTSxvQ0FBb0MsV0FBVyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sa0JBQWtCLFlBQVksWUFBWSxVQUFVLE1BQU0sS0FBSyxZQUFZLFlBQVksVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLEtBQUssb0NBQW9DLFdBQVcsVUFBVSxVQUFVLE1BQU0sb0NBQW9DLFdBQVcsVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLGtCQUFrQixZQUFZLFlBQVksVUFBVSxNQUFNLEtBQUssWUFBWSxZQUFZLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxLQUFLLG9DQUFvQyxXQUFXLFVBQVUsVUFBVSxNQUFNLG9DQUFvQyxXQUFXLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxrQkFBa0IsWUFBWSxZQUFZLFVBQVUsTUFBTSxLQUFLLFlBQVksWUFBWSxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssS0FBSyxvQ0FBb0MsV0FBVyxVQUFVLFVBQVUsTUFBTSxvQ0FBb0MsV0FBVyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sa0JBQWtCLFlBQVksWUFBWSxVQUFVLE1BQU0sS0FBSyxZQUFZLFlBQVksVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sUUFBUSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsTUFBTSxPQUFPLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLGVBQWUsVUFBVSxNQUFNLGVBQWUsWUFBWSxNQUFNLE1BQU0sVUFBVSxVQUFVLFVBQVUsS0FBSyxNQUFNLFVBQVUsVUFBVSxVQUFVLEtBQUssTUFBTSxVQUFVLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxVQUFVLFVBQVUsS0FBSyxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxVQUFVLEtBQUssTUFBTSxVQUFVLFVBQVUsS0FBSyxNQUFNLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxNQUFNLE1BQU0sVUFBVSxVQUFVLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxZQUFZLFdBQVcsWUFBWSxhQUFhLFdBQVcsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLFdBQVcsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsV0FBVyxVQUFVLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsV0FBVyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsV0FBVyxZQUFZLFdBQVcsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssTUFBTSxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssTUFBTSxVQUFVLE1BQU0sTUFBTSxVQUFVLE1BQU0sTUFBTSxVQUFVLEtBQUssTUFBTSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsV0FBVyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsV0FBVyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLEtBQUssVUFBVSxNQUFNLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLEtBQUssVUFBVSxNQUFNLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLFdBQVcsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLFdBQVcsWUFBWSxhQUFhLFdBQVcsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLFdBQVcsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLFlBQVksYUFBYSxXQUFXLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxNQUFNLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sUUFBUSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxVQUFVLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLGFBQWEsWUFBWSxNQUFNLEtBQUssS0FBSyxhQUFhLFlBQVksTUFBTSxLQUFLLEtBQUssYUFBYSxZQUFZLE1BQU0sS0FBSyxLQUFLLGFBQWEsWUFBWSxNQUFNLEtBQUssS0FBSyxhQUFhLFlBQVksTUFBTSxLQUFLLEtBQUssWUFBWSxXQUFXLFlBQVksV0FBVyxVQUFVLFlBQVksYUFBYSxXQUFXLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLE1BQU0sT0FBTyxVQUFVLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLE1BQU0sT0FBTyxVQUFVLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksV0FBVyxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksV0FBVyxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxLQUFLLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxLQUFLLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxNQUFN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OEIsR0FBRyxzQkFBc0IsOEJBQThCLEdBQUcsc0JBQXNCLDhCQUE4QixHQUFHLHNCQUFzQiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLGNBQWMsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxjQUFjLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsZUFBZSw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLHFCQUFxQiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx3QkFBd0IsOEJBQThCLEdBQUcsd0JBQXdCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyx3QkFBd0IsOEJBQThCLEdBQUcsd0JBQXdCLDhCQUE4QixHQUFHLGNBQWMsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxtQkFBbUIsMkJBQTJCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxlQUFlLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxtQkFBbUIsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxtQkFBbUIsOEJBQThCLEdBQUcscUJBQXFCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyx3QkFBd0IsOEJBQThCLEdBQUcsd0JBQXdCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyx3QkFBd0IsOEJBQThCLEdBQUcsZUFBZSw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGNBQWMsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsMkJBQTJCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsMkJBQTJCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxtQkFBbUIsOEJBQThCLEdBQUcscUJBQXFCLDhCQUE4QixHQUFHLHFCQUFxQiw4QkFBOEIsR0FBRyxxQkFBcUIsOEJBQThCLEdBQUcscUJBQXFCLDhCQUE4QixHQUFHLHFCQUFxQiw4QkFBOEIsR0FBRyxxQkFBcUIsOEJBQThCLEdBQUcscUJBQXFCLDhCQUE4QixHQUFHLHFCQUFxQiw4QkFBOEIsR0FBRyxxQkFBcUIsOEJBQThCLEdBQUcsc0JBQXNCLDhCQUE4QixHQUFHLHNCQUFzQiw4QkFBOEIsR0FBRyxzQkFBc0IsOEJBQThCLEdBQUcsc0JBQXNCLDhCQUE4QixHQUFHLHNCQUFzQiw4QkFBOEIsR0FBRyxXQUFXLG1DQUFtQyxHQUFHLGFBQWEsbUNBQW1DLEdBQUcsYUFBYSxtQ0FBbUMsR0FBRyxhQUFhLG1DQUFtQyxHQUFHLGFBQWEsbUNBQW1DLEdBQUcsYUFBYSxtQ0FBbUMsR0FBRyxhQUFhLG1DQUFtQyxHQUFHLGFBQWEsbUNBQW1DLEdBQUcsYUFBYSxtQ0FBbUMsR0FBRyxhQUFhLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxZQUFZLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsZ0NBQWdDLEdBQUcsbUJBQW1CLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLFlBQVksbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGtCQUFrQixtQ0FBbUMsR0FBRyxvQkFBb0IsbUNBQW1DLEdBQUcsb0JBQW9CLG1DQUFtQyxHQUFHLG9CQUFvQixtQ0FBbUMsR0FBRyxvQkFBb0IsbUNBQW1DLEdBQUcsb0JBQW9CLG1DQUFtQyxHQUFHLG9CQUFvQixtQ0FBbUMsR0FBRyxvQkFBb0IsbUNBQW1DLEdBQUcsb0JBQW9CLG1DQUFtQyxHQUFHLG9CQUFvQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLFlBQVksbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLFlBQVksbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGFBQWEsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxtQkFBbUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxZQUFZLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLGdDQUFnQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsYUFBYSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxtQkFBbUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxhQUFhLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1D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QXVCLHNCQUFzQixHQUFHLHVCQUF1Qix1QkFBdUIsR0FBRyx1QkFBdUIscUJBQXFCLEdBQUcsdUJBQXVCLHdCQUF3QixHQUFHLFlBQVksb0JBQW9CLEdBQUcsdUJBQXVCLHFCQUFxQixHQUFHLHVCQUF1QixzQkFBc0IsR0FBRyx1QkFBdUIsb0JBQW9CLEdBQUcsdUJBQXVCLHVCQUF1QixHQUFHLFlBQVkscUJBQXFCLEdBQUcsdUJBQXVCLHNCQUFzQixHQUFHLHVCQUF1Qix1QkFBdUIsR0FBRyx1QkFBdUIscUJBQXFCLEdBQUcsdUJBQXVCLHdCQUF3QixHQUFHLFlBQVksb0JBQW9CLEdBQUcsdUJBQXVCLHFCQUFxQixHQUFHLHVCQUF1QixzQkFBc0IsR0FBRyx1QkFBdUIsb0JBQW9CLEdBQUcsdUJBQXVCLHVCQUF1QixHQUFHLFlBQVksdUJBQXVCLEdBQUcsdUJBQXVCLHVCQUF1QixHQUFHLHVCQUF1Qix3QkFBd0IsR0FBRyx1QkFBdUIsc0JBQXNCLEdBQUcsdUJBQXVCLHlCQUF5QixHQUFHLFlBQVksc0JBQXNCLEdBQUcsdUJBQXVCLHNCQUFzQixHQUFHLHVCQUF1Qix1QkFBdUIsR0FBRyx1QkFBdUIscUJBQXFCLEdBQUcsdUJBQXVCLHdCQUF3QixHQUFHLFlBQVksdUJBQXVCLEdBQUcsdUJBQXVCLHVCQUF1QixHQUFHLHVCQUF1Qix3QkFBd0IsR0FBRyx1QkFBdUIsc0JBQXNCLEdBQUcsdUJBQXVCLHlCQUF5QixHQUFHLFlBQVksc0JBQXNCLEdBQUcsdUJBQXVCLHNCQUFzQixHQUFHLHVCQUF1Qix1QkFBdUIsR0FBRyx1QkFBdUIscUJBQXFCLEdBQUcsdUJBQXVCLHdCQUF3QixHQUFHLFlBQVksdUJBQXVCLEdBQUcsdUJBQXVCLHVCQUF1QixHQUFHLHVCQUF1Qix3QkFBd0IsR0FBRyx1QkFBdUIsc0JBQXNCLEdBQUcsdUJBQXVCLHlCQUF5QixHQUFHLFlBQVksc0JBQXNCLEdBQUcsdUJBQXVCLHNCQUFzQixHQUFHLHVCQUF1Qix1QkFBdUIsR0FBRyx1QkFBdUIscUJBQXFCLEdBQUcsdUJBQXVCLHdC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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0M7QUFDaEM7QUFDQSwwQ0FBMEM7QUFDMUM7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTSxLQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0MscUJBQXFCO0FBQ3JEO0FBQ0EsbUNBQW1DLE9BQU87QUFDMUM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsMkJBQTJCLFNBQVM7O0FBRXBDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILENBQUM7O0FBRUQ7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLGlCQUFpQjtBQUNuQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MsT0FBTztBQUMzQztBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxPQUFPO0FBQzFDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sSUFBcUM7QUFDM0M7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQyxPQUFPO0FBQ3REO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEI7QUFDNUI7QUFDQSxxQ0FBcUM7QUFDckM7QUFDQSxzQ0FBc0M7QUFDdEM7QUFDQTtBQUNBLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUVRO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiwyQkFBMkI7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSw0REFBNEQsV0FBVztBQUN2RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEMsU0FBUztBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGlEQUFpRCxzQ0FBc0M7QUFDdkY7O0FBRUE7QUFDQTtBQUNBOztBQUVBLHFDQUFxQywwQ0FBMEM7QUFDL0U7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsa0JBQWtCO0FBQzVDO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0IsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLHVEQUF1RDtBQUN0RjtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNLElBQXFDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsbUJBQW1CO0FBQ3JDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQSxJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUM7QUFDbkMsZUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQyxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCLElBQUk7QUFDSjtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsbUJBQW1CO0FBQ3pDO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLDhDQUE4QztBQUM5QztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVLElBQXFDO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLHFCQUFxQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsY0FBYyxxQkFBcUI7QUFDbkM7QUFDQSxnREFBZ0Q7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSxJQUFxQztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxRQUFRLEtBQUssRUFFTjtBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsb0JBQW9CLGlCQUFpQjtBQUNyQztBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsU0FBUyxJQUFxQztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMsT0FBTztBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGtFQUFrRTtBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBO0FBQ0EsdUJBQXVCO0FBQ3ZCOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLE9BQU87QUFDdkM7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLGdCQUFnQixTQUFTO0FBQ3pCO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsbUNBQW1DLE9BQU87QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVLEtBQXFDO0FBQy9DO0FBQ0E7QUFDQSw4QkFBOEI7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDZDQUE2QyxjQUFjO0FBQzNELElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLGtEQUFrRDtBQUNsRCw0Q0FBNEM7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDZDQUE2QztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsaUJBQWlCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOLDRDQUE0QztBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakIsa0JBQWtCLGdCQUFnQjtBQUNsQztBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0Esa0JBQWtCLG1CQUFtQjtBQUNyQztBQUNBO0FBQ0E7QUFDQSxNQUFNLFNBQVMsS0FBcUM7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSixzQ0FBc0M7QUFDdEM7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKLDZCQUE2QjtBQUM3Qiw2QkFBNkI7QUFDN0I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0Esb0JBQW9CLG1CQUFtQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxJQUFxQztBQUMzQyxrREFBa0Q7QUFDbEQ7QUFDQTtBQUNBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0I7QUFDL0I7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsSUFBcUM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxzRkFBc0Y7QUFDNUY7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsMENBQTBDO0FBQzFDLGtCQUFrQix5QkFBeUI7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsK0JBQStCO0FBQ2xDLG1DQUFtQztBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLEtBQXFDO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVLEtBQXFDO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSixxQkFBcUI7QUFDckIsdUJBQXVCO0FBQ3ZCO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLE9BQU87QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0Esb0JBQW9CO0FBQ3BCLDBCQUEwQjtBQUMxQjtBQUNBLHNEQUFzRDtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQztBQUNsQztBQUNBO0FBQ0EsOENBQThDOztBQUU5QztBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNLElBQXFDO0FBQzNDO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTCxJQUFJLEtBQUssRUFHTjtBQUNIOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSxLQUFxQztBQUMvQztBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVLEtBQXFDO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsS0FBSyw0Q0FBNEMsK0JBQStCOztBQUVoRjtBQUNBLHlDQUF5QyxPQUFPO0FBQ2hEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0EsTUFBTSxLQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLEtBQXFDO0FBQ3JEO0FBQ0Esb0JBQW9CLENBQUk7QUFDeEI7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLG9CQUFvQixxQkFBcUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQztBQUMvQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0MsT0FBTztBQUMvQztBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEMsU0FBUztBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUSxJQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyxPQUFPO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsSUFBcUM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxJQUFxQztBQUMzQztBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsMkJBQTJCOztBQUUzQixtQkFBbUI7QUFDbkI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixxQkFBcUI7QUFDekM7QUFDQSwyQ0FBMkM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNLElBQXFDO0FBQzNDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IseUJBQXlCO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHlCQUF5QjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QyxPQUFPO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxJQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQixxQkFBcUI7O0FBRXBEO0FBQ0E7QUFDQSxrQkFBa0Isc0JBQXNCO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLEtBQXFDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrQkFBa0Isa0JBQWtCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxVQUFVLEtBQXFDO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7O0FBSUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixLQUFxQztBQUN6RDtBQUNBLE1BQU0sQ0FBRTtBQUNSO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQSxNQUFNLEtBQXFDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQixzQkFBc0I7QUFDdEI7QUFDQTtBQUNBLElBQUk7QUFDSix5QkFBeUI7QUFDekI7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsTUFBTSxLQUFLLEVBRU47QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLEtBQXFDO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsSUFBcUM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUEsK0JBQStCOztBQUUvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsS0FBcUM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sU0FBUyxJQUFxQztBQUNwRDtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsSUFBcUM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixvQkFBb0I7QUFDMUM7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QjtBQUM5QjtBQUNBLCtCQUErQjtBQUMvQixNQUFNLElBQXFDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRLEtBQXFDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsSUFBcUM7QUFDN0M7QUFDQSxNQUFNLEtBQUssRUFFTjtBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBLHFCQUFxQjtBQUNyQjs7QUFFQTtBQUNBLFFBQVEsS0FBcUM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNLEtBQXFDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNFQUFzRTtBQUN0RTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxRQUFRLEtBQXFDO0FBQzdDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQzs7QUFFakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQSxZQUFZLEtBQXFDO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7Ozs7OztBQU1BO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBOztBQUVBO0FBQ0E7QUFDQSwyQ0FBMkMsNEJBQTRCO0FBQ3ZFLEtBQUs7QUFDTDtBQUNBLDJDQUEyQyw2QkFBNkI7QUFDeEUsS0FBSztBQUNMLEdBQUc7O0FBRUg7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQztBQUNoQyxNQUFNLElBQXFDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyxPQUFPO0FBQzNDO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxLQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxxQkFBcUI7O0FBRXJCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBLFFB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O0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxzQkFBc0IsMkJBQTJCO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxzQkFBc0IsOEJBQThCO0FBQ3BEO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyxpQkFBaUI7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDRFQUE0RTtBQUM1RTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0M7QUFDeEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDO0FBQzNDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCLG1DQUFtQztBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTs7QUFFQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSwrQ0FBK0M7QUFDdkQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSx3Q0FBd0MsU0FBUztBQUNqRDtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0Isd0JBQXdCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCw2QkFBNkI7QUFDbEYsTUFBTTtBQUNOO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQsZ0NBQWdDO0FBQ3JGLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0M7O0FBRS9DO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNLEtBQXFDO0FBQzNDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE1BQU0s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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLG1DQUFtQzs7QUFFbkMsc0NBQXNDOztBQUV0QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFFBQVEsS0FBcUM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsUUFBUSxLQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDhDQUE4QztBQUM5QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3REFBd0Q7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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QVI7QUFBQTtBQUZELENBQVIsRSIsInNvdXJjZXMiOlsid2VicGFjazovL0Vtb2ppTWFydC93ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L2RvY3MvYXBwLnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvc3JjL2NvbXBvbmVudHMvRW1vamkudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC9zcmMvY29tcG9uZW50cy9QaWNrZXIudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC9zcmMvY29tcG9uZW50cy9hbmNob3JzLnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvc3JjL2NvbXBvbmVudHMvY2F0ZWdvcnkudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC9zcmMvY29tcG9uZW50cy9wcmV2aWV3LnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvc3JjL2NvbXBvbmVudHMvc2VhcmNoLnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvc3JjL2NvbXBvbmVudHMvc2tpbnMudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL2luZGV4LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9pbmRleC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvcG9seWZpbGxzL3N0cmluZ0Zyb21Db2RlUG9pbnQuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL3N2Z3MvaW5kZXguanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL3V0aWxzL2RhdGEuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL3V0aWxzL2Vtb2ppLWRhdGEuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL3V0aWxzL2ZyZXF1ZW50bHkuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL3V0aWxzL2luZGV4LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy91dGlscy9waWNrZXIuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL3V0aWxzL3NoYXJlZC1wcm9wcy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdXRpbHMvc3RvcmUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL3ZlbmRvci9yYWYtcG9seWZpbGwuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fYS1mdW5jdGlvbi5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19hZGQtdG8tdW5zY29wYWJsZXMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fYWR2YW5jZS1zdHJpbmctaW5kZXguanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fYW4tb2JqZWN0LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2FycmF5LWluY2x1ZGVzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2FycmF5LW1ldGhvZHMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fYXJyYXktc3BlY2llcy1jb25zdHJ1Y3Rvci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19hcnJheS1zcGVjaWVzLWNyZWF0ZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19jbGFzc29mLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2NvZi5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19jb3JlLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2NyZWF0ZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19jdHguanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fZGVmaW5lZC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19kZXNjcmlwdG9ycy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19kb20tY3JlYXRlLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2VudW0tYnVnLWtleXMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fZW51bS1rZXlzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2V4cG9ydC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19mYWlscy1pcy1yZWdleHAuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fZmFpbHMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fZml4LXJlLXdrcy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19mbGFncy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19mdW5jdGlvbi10by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fZ2xvYmFsLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2hhcy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19oaWRlLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2h0bWwuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faWU4LWRvbS1kZWZpbmUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faW5oZXJpdC1pZi1yZXF1aXJlZC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pb2JqZWN0LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2lzLWFycmF5LWl0ZXIuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faXMtYXJyYXkuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faXMtb2JqZWN0LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2lzLXJlZ2V4cC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pdGVyLWNhbGwuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faXRlci1jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faXRlci1kZWZpbmUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faXRlci1kZXRlY3QuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faXRlci1zdGVwLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2l0ZXJhdG9ycy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19saWJyYXJ5LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX21ldGEuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fb2JqZWN0LWFzc2lnbi5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19vYmplY3QtY3JlYXRlLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX29iamVjdC1kcC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19vYmplY3QtZHBzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX29iamVjdC1nb3BkLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX29iamVjdC1nb3BuLWV4dC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19vYmplY3QtZ29wbi5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19vYmplY3QtZ29wcy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19vYmplY3QtZ3BvLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX29iamVjdC1rZXlzLWludGVybmFsLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX29iamVjdC1rZXlzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX29iamVjdC1waWUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fb2JqZWN0LXNhcC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19vd24ta2V5cy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19wcm9wZXJ0eS1kZXNjLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3JlZGVmaW5lLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3JlZ2V4cC1leGVjLWFic3RyYWN0LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3JlZ2V4cC1leGVjLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3NhbWUtdmFsdWUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fc2V0LXByb3RvLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3NldC10by1zdHJpbmctdGFnLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3NoYXJlZC1rZXkuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fc2hhcmVkLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3NwZWNpZXMtY29uc3RydWN0b3IuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fc3RyaWN0LW1ldGhvZC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19zdHJpbmctYXQuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fc3RyaW5nLWNvbnRleHQuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fc3RyaW5nLXRyaW0uanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fc3RyaW5nLXdzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3RvLWFic29sdXRlLWluZGV4LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3RvLWludGVnZXIuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fdG8taW9iamVjdC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL190by1sZW5ndGguanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fdG8tb2JqZWN0LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3RvLXByaW1pdGl2ZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL191aWQuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fd2tzLWRlZmluZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL193a3MtZXh0LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3drcy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2NvcmUuZ2V0LWl0ZXJhdG9yLW1ldGhvZC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5hcnJheS5maWx0ZXIuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuYXJyYXkuZnJvbS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5hcnJheS5pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5hcnJheS5tYXAuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuYXJyYXkuc2xpY2UuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuYXJyYXkuc29ydC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5mdW5jdGlvbi5uYW1lLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm51bWJlci5jb25zdHJ1Y3Rvci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5vYmplY3QuYXNzaWduLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm9iamVjdC5mcmVlemUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYub2JqZWN0LmdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5vYmplY3QuZ2V0LW93bi1wcm9wZXJ0eS1uYW1lcy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5vYmplY3Qua2V5cy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5vYmplY3QudG8tc3RyaW5nLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnJlZ2V4cC5leGVjLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnJlZ2V4cC5mbGFncy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5yZWdleHAubWF0Y2guanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYucmVnZXhwLnNlYXJjaC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5yZWdleHAuc3BsaXQuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuc3RyaW5nLmZyb20tY29kZS1wb2ludC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNi5zdHJpbmcuaW5jbHVkZXMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lczYuc3RyaW5nLml0ZXJhdG9yLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnN5bWJvbC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNy5hcnJheS5pbmNsdWRlcy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNy5vYmplY3QuZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9ycy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL3dlYi5kb20uaXRlcmFibGUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vY3NzL2Vtb2ppLW1hcnQuY3NzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9xdWFzYXItZnJhbWV3b3JrL2Rpc3QvdW1kL3F1YXNhci5tYXQuY3NzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL2RvY3MvYXBwLnZ1ZT8wNzAzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2dldFVybC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvcXVhc2FyLWZyYW1ld29yay9kaXN0L3F1YXNhci5tYXQuZXNtLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL2RvY3MvYXBwLnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9FbW9qaS52dWUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvUGlja2VyLnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9hbmNob3JzLnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9jYXRlZ29yeS52dWUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvcHJldmlldy52dWUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvc2VhcmNoLnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9za2lucy52dWUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vZG9jcy9hcHAudnVlPzY0YTIiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvRW1vamkudnVlPzQ4NjgiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvUGlja2VyLnZ1ZT8xMTUxIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL2FuY2hvcnMudnVlPzgyZjMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvY2F0ZWdvcnkudnVlP2IwOGUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvcHJldmlldy52dWU/NWIxOSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9zZWFyY2gudnVlP2E3YzkiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvc2tpbnMudnVlPzRlYTkiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vZG9jcy9hcHAudnVlPzBkZmIiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvRW1vamkudnVlPzliOWQiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvUGlja2VyLnZ1ZT9lZGE1Iiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL2FuY2hvcnMudnVlPzRlNTciLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvY2F0ZWdvcnkudnVlPzYwMTIiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvcHJldmlldy52dWU/MDJiNSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9zZWFyY2gudnVlPzBmZDgiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvc2tpbnMudnVlPzE2YTEiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vZG9jcy9hcHAudnVlPzAwMjIiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vZG9jcy9hcHAudnVlPzdlMmIiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvRW1vamkudnVlPzZhMTQiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvUGlja2VyLnZ1ZT84ZjZjIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL2FuY2hvcnMudnVlP2RjZWYiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvY2F0ZWdvcnkudnVlPzc0ZDUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvcHJldmlldy52dWU/YjU0YSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9zZWFyY2gudnVlPzc3ZGQiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvc2tpbnMudnVlPzU2OWIiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9jc3MvZW1vamktbWFydC5jc3M/ZjdiOSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvcXVhc2FyLWZyYW1ld29yay9kaXN0L3VtZC9xdWFzYXIubWF0LmNzcz82NGJmIiwid2VicGFjazovL0Vtb2ppTWFydC8uL2RvY3MvYXBwLnZ1ZT9hMjViIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy92dWUtc3R5bGUtbG9hZGVyL2xpYi9hZGRTdHlsZXNDbGllbnQuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL3Z1ZS1zdHlsZS1sb2FkZXIvbGliL2xpc3RUb1N0eWxlcy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvdnVlL2Rpc3QvdnVlLnJ1bnRpbWUuZXNtLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hcnJheUxpa2VUb0FycmF5LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hcnJheVdpdGhvdXRIb2xlcy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY2xhc3NDYWxsQ2hlY2suanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZUNsYXNzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaXRlcmFibGVUb0FycmF5LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9ub25JdGVyYWJsZVNwcmVhZC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdG9Db25zdW1hYmxlQXJyYXkuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZi5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL0Vtb2ppTWFydC93ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL0Vtb2ppTWFydC93ZWJwYWNrL3J1bnRpbWUvZ2xvYmFsIiwid2VicGFjazovL0Vtb2ppTWFydC93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL0Vtb2ppTWFydC93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL0Vtb2ppTWFydC93ZWJwYWNrL3J1bnRpbWUvanNvbnAgY2h1bmsgbG9hZGluZyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9kb2NzL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIkVtb2ppTWFydFwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJFbW9qaU1hcnRcIl0gPSBmYWN0b3J5KCk7XG59KShzZWxmLCBmdW5jdGlvbigpIHtcbnJldHVybiAiLCI8dGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJhcHBcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8aDE+RW1vamkgTWFydCBWdWUg8J+PrDwvaDE+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGVtb2ppIDpkYXRhPVwiaW5kZXhcIiBlbW9qaT1cIjpzYW50YTo6c2tpbi10b25lLTM6XCIgOnNpemU9XCIzMlwiIC8+XG4gICAgICA8ZW1vamkgOmRhdGE9XCJpbmRleFwiIGVtb2ppPVwic2FudGFcIiBzZXQ9XCJ0d2l0dGVyXCIgOnNpemU9XCIzMlwiIC8+XG4gICAgICA8ZW1vamkgOmRhdGE9XCJpbmRleFwiIDplbW9qaT1cInNhbnRhRW1vamlPYmplY3RcIiA6c2l6ZT1cIjMyXCIgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxidXR0b24gQGNsaWNrPVwidG9nZ2xlVmlzaWJsZVwiPlNob3cgLyBoaWRlIHRoZSBwaWNrZXI8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gQGNsaWNrPVwidG9nZ2xlVmlzaWJsZVwiIHYtaHRtbD1cInNtaWxlXCI+PC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8dGVtcGxhdGVcbiAgICAgICAgdi1mb3I9XCJzZXQgaW4gWyduYXRpdmUnLCAnYXBwbGUnLCAnZ29vZ2xlJywgJ3R3aXR0ZXInLCAnZmFjZWJvb2snXVwiXG4gICAgICA+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICA6a2V5PVwic2V0XCJcbiAgICAgICAgICBAY2xpY2s9XCJhY3RpdmVTZXQgPSBzZXRcIlxuICAgICAgICAgIDpkaXNhYmxlZD1cImFjdGl2ZVNldCA9PSBzZXRcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgc2V0IH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC90ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgdi1pZj1cImlzVmlzaWJsZVwiIGNsYXNzPVwicm93XCI+XG4gICAgICA8cGlja2VyXG4gICAgICAgIDpkYXRhPVwiaW5kZXhcIlxuICAgICAgICA6c2V0PVwiYWN0aXZlU2V0XCJcbiAgICAgICAgOm5hdGl2ZT1cIm5hdGl2ZVwiXG4gICAgICAgIDplbW9qaT1cImVtb2ppXCJcbiAgICAgICAgOmVtb2ppVG9vbHRpcD1cInRydWVcIlxuICAgICAgICA6dGl0bGU9XCJ0aXRsZVwiXG4gICAgICAgIDplbW9qaVNpemU9XCIzMFwiXG4gICAgICAgIEBzZWxlY3Q9XCJzaG93RW1vamlcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxlbW9qaVxuICAgICAgICB2LWZvcj1cImVtbyBpbiBzZWxlY3RlZEVtb2ppc1wiXG4gICAgICAgIDprZXk9XCJlbW9cIlxuICAgICAgICA6ZGF0YT1cImluZGV4XCJcbiAgICAgICAgOmVtb2ppPVwiZW1vXCJcbiAgICAgICAgOnNldD1cImFjdGl2ZVNldFwiXG4gICAgICAgIDpuYXRpdmU9XCJuYXRpdmVcIlxuICAgICAgICA6c2l6ZT1cIjMyXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICB7eyBlbW9qaXNPdXRwdXQgfX1cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJyb3ctc21hbGxcIj5cbiAgICAgIDxpZnJhbWVcbiAgICAgICAgc3JjPVwiaHR0cHM6Ly9naGJ0bnMuY29tL2dpdGh1Yi1idG4uaHRtbD91c2VyPXNlcmVicm92JnJlcG89ZW1vamktbWFydC12dWUmdHlwZT1zdGFyJmNvdW50PXRydWVcIlxuICAgICAgICBmcmFtZUJvcmRlcj1cIjBcIlxuICAgICAgICBzY3JvbGxpbmc9XCIwXCJcbiAgICAgICAgd2lkdGg9XCI5MHB4XCJcbiAgICAgICAgaGVpZ2h0PVwiMjBweFwiXG4gICAgICA+PC9pZnJhbWU+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+PC9kaXY+XG4gICAgPGgyPlFEaWFsb2cgRXhhbXBsZTwvaDI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPHEtYnRuIGxhYmVsPVwiT3BlbiBRRGlhbG9nXCIgQGNsaWNrPVwiZW1vamlQaWNrZXJEaWFsb2cgPSB0cnVlXCIgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxxLWRpYWxvZyB2LW1vZGVsPVwiZW1vamlQaWNrZXJEaWFsb2dcIj5cbiAgICAgIDx0ZW1wbGF0ZSB2LXNsb3Q6Ym9keSBzdHlsZT1cImhlaWdodDogNDUwcHhcIj5cbiAgICAgICAgPHBpY2tlciA6ZGF0YT1cImluZGV4XCIgOmVtb2ppU2l6ZT1cIjI0XCIgOm5hdGl2ZT1cInRydWVcIj48L3BpY2tlcj5cbiAgICAgIDwvdGVtcGxhdGU+XG4gICAgPC9xLWRpYWxvZz5cblxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj48L2Rpdj5cbiAgICA8aDI+Q3VzdG9tIERpYWxvZyBFeGFtcGxlPC9oMj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8YnV0dG9uIEBjbGljaz1cImVtb2ppUGlja2VyQ3VzdG9tRGlhbG9nID0gdHJ1ZVwiPlxuICAgICAgICBPcGVuIEN1c3RvbSBEaWFsb2dcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInBvcHVwXCIgdi1pZj1cImVtb2ppUGlja2VyQ3VzdG9tRGlhbG9nXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtYm94XCIgQGNsaWNrPVwiZW1vamlQaWNrZXJDdXN0b21EaWFsb2cgPSBmYWxzZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtY29udGVudFwiIEBjbGljaz1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jbG9zZVwiPlxuICAgICAgICAgICAgPGEgQGNsaWNrPVwiZW1vamlQaWNrZXJDdXN0b21EaWFsb2cgPSBmYWxzZVwiPlg8L2E+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGgyPkVtb2ppIFNlbGVjdG9yPC9oMj5cbiAgICAgICAgICA8cGlja2VyIDpkYXRhPVwiaW5kZXhcIiA6ZW1vamlTaXplPVwiMjRcIiA6bmF0aXZlPVwidHJ1ZVwiPjwvcGlja2VyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPjwvZGl2PlxuICAgIDxoMj5DdXN0b20gU2VhcmNoIEFuZCBQcmV2aWV3IFRlbXBsYXRlcyBFeGFtcGxlPC9oMj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8UGlja2VyIDpkYXRhPVwiaW5kZXhcIiA6bmF0aXZlPVwidHJ1ZVwiPlxuICAgICAgICA8dGVtcGxhdGUgc2xvdD1cInNlYXJjaFRlbXBsYXRlXCIgc2xvdC1zY29wZT1cInNsb3RQcm9wc1wiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgOnBsYWNlaG9sZGVyPVwic2xvdFByb3BzLmkxOG4uc2VhcmNoXCJcbiAgICAgICAgICAgIHYtb246aW5wdXQ9XCJzbG90UHJvcHMub25TZWFyY2goJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgIDx0ZW1wbGF0ZSBzbG90PVwicHJldmlld1RlbXBsYXRlXCIgc2xvdC1zY29wZT1cInNsb3RQcm9wc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXdcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctZW1vamlcIj5cbiAgICAgICAgICAgICAgPEVtb2ppXG4gICAgICAgICAgICAgICAgOmRhdGE9XCJzbG90UHJvcHMuZGF0YVwiXG4gICAgICAgICAgICAgICAgOmVtb2ppPVwic2xvdFByb3BzLmVtb2ppID8gc2xvdFByb3BzLmVtb2ppIDogJ3BvaW50X3VwJ1wiXG4gICAgICAgICAgICAgICAgOm5hdGl2ZT1cInNsb3RQcm9wcy5lbW9qaVByb3BzLm5hdGl2ZVwiXG4gICAgICAgICAgICAgICAgOnNraW49XCJzbG90UHJvcHMuZW1vamlQcm9wcy5za2luXCJcbiAgICAgICAgICAgICAgICA6c2V0PVwic2xvdFByb3BzLmVtb2ppUHJvcHMuc2V0XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1kYXRhXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctbmFtZVwiPlxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICBzbG90UHJvcHMuZW1vamlcbiAgICAgICAgICAgICAgICAgICAgPyAnficgKyBzbG90UHJvcHMuZW1vamkubmFtZSArICd+J1xuICAgICAgICAgICAgICAgICAgICA6ICdDaG9vc2UuLi4nXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctc2hvcnRuYW1lc1wiPlxuICAgICAgICAgICAgICAgIHt7IHNsb3RQcm9wcy5lbW9qaSA/IHNsb3RQcm9wcy5lbW9qaS5jb2xvbnMgOiAnJyB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgPC9QaWNrZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+PC9kaXY+XG4gICAgPGgyPkZpbHRlcmVkIHBpY2tlciBleGFtcGxlPC9oMj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCIgdi1zaG93PVwiZmxhZ3NWaXNpYmxlXCI+XG4gICAgICA8UGlja2VyXG4gICAgICAgIDpuYXRpdmU9XCJ0cnVlXCJcbiAgICAgICAgZW1vamk9XCJmbGFnLXRmXCJcbiAgICAgICAgOmVtb2ppU2l6ZT1cIjE4XCJcbiAgICAgICAgOmRhdGE9XCJpbmRleEZpbHRlcmVkXCJcbiAgICAgICAgcmVmPVwiZmxhZ3NcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8YnV0dG9uIEBjbGljaz1cInRvZ2dsZUZsYWdzVmlzaWJsZVwiPlxuICAgICAgICBTaG93IC8gaGlkZSB0aGUgZmxhZ3MgcGlja2VyICh3aXRoIHYtc2hvdylcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPjwvZGl2PlxuICAgIDxoMj5JMThuIHBpY2tlciBleGFtcGxlPC9oMj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8UGlja2VyIGVtb2ppPVwiZGVwYXJ0bWVudF9zdG9yZVwiIDpkYXRhPVwiaW5kZXhJMThuXCIgOmkxOG49XCJpMThuXCIgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj48L2Rpdj5cbiAgICA8aDI+Q3VzdG9tIG9yZGVyIGV4YW1wbGU8L2gyPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxQaWNrZXIgOmRhdGE9XCJpbmRleEluY2x1ZGVcIiAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPjwvZGl2PlxuICAgIDxoMj5TbWFsbCBwaWNrZXIgZXhhbXBsZTwvaDI+XG4gICAgPGRpdiBjbGFzcz1cInJvdyByb3ctc21hbGwtcGlja2VyXCI+XG4gICAgICA8UGlja2VyXG4gICAgICAgIDpkYXRhPVwiaW5kZXhcIlxuICAgICAgICA6bmF0aXZlPVwibmF0aXZlXCJcbiAgICAgICAgOnNldD1cImFjdGl2ZVNldFwiXG4gICAgICAgIDplbW9qaVNpemU9XCIxMlwiXG4gICAgICAgIDpwZXJMaW5lPVwiNVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5pbXBvcnQgZGF0YSBmcm9tICcuLi9kYXRhL2FsbC5qc29uJ1xuaW1wb3J0IHsgUGlja2VyLCBFbW9qaSwgRW1vamlJbmRleCB9IGZyb20gJy4uL3NyYydcbmltcG9ydCAnLi4vY3NzL2Vtb2ppLW1hcnQuY3NzJ1xuXG5pbXBvcnQgeyBRQnRuLCBRRGlhbG9nIH0gZnJvbSAncXVhc2FyLWZyYW1ld29yay9kaXN0L3F1YXNhci5tYXQuZXNtJ1xuXG5jb25zdCBDVVNUT01fRU1PSklTID0gW1xuICB7XG4gICAgbmFtZTogJ1BhcnR5IFBhcnJvdCcsXG4gICAgc2hvcnRfbmFtZXM6IFsncGFycm90J10sXG4gICAga2V5d29yZHM6IFsncGFydHknXSxcbiAgICBpbWFnZVVybDogJy4vaW1hZ2VzL3BhcnJvdC5naWYnLFxuICB9LFxuICB7XG4gICAgbmFtZTogJ09jdG9jYXQnLFxuICAgIHNob3J0X25hbWVzOiBbJ29jdG9jYXQnXSxcbiAgICBrZXl3b3JkczogWydnaXRodWInXSxcbiAgICBpbWFnZVVybDogJ2h0dHBzOi8vZ2l0aHViLmdpdGh1YmFzc2V0cy5jb20vaW1hZ2VzL2ljb25zL2Vtb2ppL29jdG9jYXQucG5nJyxcbiAgfSxcbiAge1xuICAgIG5hbWU6ICdTcXVpcnJlbCcsXG4gICAgc2hvcnRfbmFtZXM6IFsnc2hpcGl0JywgJ3NxdWlycmVsJ10sXG4gICAga2V5d29yZHM6IFsnZ2l0aHViJ10sXG4gICAgaW1hZ2VVcmw6ICdodHRwczovL2dpdGh1Yi5naXRodWJhc3NldHMuY29tL2ltYWdlcy9pY29ucy9lbW9qaS9zaGlwaXQucG5nJyxcbiAgfSxcbl1cblxubGV0IGluZGV4ID0gbmV3IEVtb2ppSW5kZXgoZGF0YSwge1xuICBjdXN0b206IENVU1RPTV9FTU9KSVMsXG59KVxuXG5sZXQgaW5kZXhGaWx0ZXJlZCA9IG5ldyBFbW9qaUluZGV4KGRhdGEsIHtcbiAgY3VzdG9tOiBDVVNUT01fRU1PSklTLFxuICBlbW9qaXNUb1Nob3dGaWx0ZXI6IChlbW9qaSkgPT4ge1xuICAgIHJldHVybiBlbW9qaS5zaG9ydF9uYW1lc1swXS5tYXRjaCgvXmZsYWcuKi8pICE9PSBudWxsXG4gIH0sXG59KVxuXG5jb25zdCBpMThuID0ge1xuICBjYXRlZ29yaWVzOiB7XG4gICAgc2VhcmNoOiAn5pCc57Si57uT5p6cJyxcbiAgICByZWNlbnQ6ICfnu4/luLjkvb/nlKgnLFxuICAgIHNtaWxleXM6ICflv4Pmg4UnLFxuICAgIHBlb3BsZTogJ+S6uueJqScsXG4gICAgbmF0dXJlOiAn5Yqo54mpICYg5aSn6Ieq54S2JyxcbiAgICBmb29kczogJ+mjn+eJqSAmIOmlruaWmScsXG4gICAgYWN0aXZpdHk6ICfmtLvliqgnLFxuICAgIHBsYWNlczogJ+aXheihjCAmIOWcsOaghycsXG4gICAgb2JqZWN0czogJ+eJqeS9kycsXG4gICAgc3ltYm9sczogJ+espuWPtycsXG4gICAgZmxhZ3M6ICflm73ml5cnLFxuICAgIGN1c3RvbTogJ+iHquWumuS5iScsXG4gIH0sXG59XG5cbmNvbnN0IGluZGV4STE4biA9IG5ldyBFbW9qaUluZGV4KGRhdGEsIHtcbiAgZXhjbHVkZTogW1xuICAgICdmbGFncycsXG4gICAgJ3N5bWJvbHMnLFxuICAgICdvYmplY3RzJyxcbiAgICAnYWN0aXZpdHknLFxuICAgICdmb29kcycsXG4gICAgJ3Blb3BsZScsXG4gICAgJ3BsYWNlcycsXG4gIF0sXG59KVxuXG5jb25zdCBpbmRleEluY2x1ZGUgPSBuZXcgRW1vamlJbmRleChkYXRhLCB7XG4gIGluY2x1ZGU6IFsnbmF0dXJlJywgJ3NtaWxleXMnLCAncmVjZW50J10sXG59KVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGluZGV4OiBpbmRleCxcbiAgICAgIGluZGV4RmlsdGVyZWQ6IGluZGV4RmlsdGVyZWQsXG4gICAgICBpbmRleEluY2x1ZGU6IGluZGV4SW5jbHVkZSxcbiAgICAgIGluZGV4STE4bjogaW5kZXhJMThuLFxuICAgICAgaTE4bjogaTE4bixcbiAgICAgIGFjdGl2ZVNldDogJ25hdGl2ZScsXG4gICAgICBlbW9qaTogJ3BvaW50X3VwJyxcbiAgICAgIHRpdGxlOiAnUGljayB5b3VyIGVtb2pp4oCmJyxcbiAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcbiAgICAgIGVtb2ppUGlja2VyRGlhbG9nOiBmYWxzZSxcbiAgICAgIGVtb2ppUGlja2VyQ3VzdG9tRGlhbG9nOiBmYWxzZSxcbiAgICAgIGVtb2ppc091dHB1dDogJycsXG4gICAgICBzZWxlY3RlZEVtb2ppczogW10sXG4gICAgICBmbGFnc1Zpc2libGU6IHRydWUsXG4gICAgfVxuICB9LFxuICBjb21wdXRlZDoge1xuICAgIG5hdGl2ZSgpIHtcbiAgICAgIHJldHVybiB0aGlzLmFjdGl2ZVNldCA9PSAnbmF0aXZlJ1xuICAgIH0sXG4gICAgc21pbGUoKSB7XG4gICAgICAvLyBTdGF0aWMgZW1vamkgZXhhbXBsZVxuICAgICAgbGV0IGVtb2ppID0gaW5kZXguZmluZEVtb2ppKCc6c21pbGU6JylcbiAgICAgIC8vIE5vdGUsIHRoYXQgcG9zaXRpb24gaW4gdGhlIGVtb2ppIHNoZWV0IGlzIGNhbGN1bGF0ZWQgYnlcbiAgICAgIC8vIGBlbW9qaWAgb2JqZWN0XG4gICAgICBsZXQgc3R5bGUgPSBgYmFja2dyb3VuZC1wb3NpdGlvbjogJHtlbW9qaS5nZXRQb3NpdGlvbigpfTsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHBzOi8vdW5wa2cuY29tL2Vtb2ppLWRhdGFzb3VyY2UtdHdpdHRlckAxNC4wLjAvaW1nL3R3aXR0ZXIvc2hlZXRzLTI1Ni82NC5wbmcpOyB3aWR0aDogMjRweDsgaGVpZ2h0OiAyNHB4OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJhY2tncm91bmQtc2l6ZTogNTcwMCVgXG4gICAgICByZXR1cm4gYDxkaXYgY2xhc3M9J2Vtb2ppJyBzdHlsZT1cIiR7c3R5bGV9XCI+PC9kaXY+YFxuICAgIH0sXG4gICAgc2FudGFFbW9qaU9iamVjdCgpIHtcbiAgICAgIHJldHVybiBpbmRleC5maW5kRW1vamkoJzpzYW50YTonKVxuICAgIH0sXG4gIH0sXG4gIG1ldGhvZHM6IHtcbiAgICB0b2dnbGVWaXNpYmxlKCkge1xuICAgICAgdGhpcy5pc1Zpc2libGUgPSAhdGhpcy5pc1Zpc2libGVcbiAgICB9LFxuICAgIHRvZ2dsZUZsYWdzVmlzaWJsZSgpIHtcbiAgICAgIHRoaXMuZmxhZ3NWaXNpYmxlID0gIXRoaXMuZmxhZ3NWaXNpYmxlXG4gICAgICBpZiAoIXRoaXMuZmxhZ3NWaXNpYmxlKSB7XG4gICAgICAgIHRoaXMuJHJlZnMuZmxhZ3Mub25BbmNob3JDbGljayh0aGlzLiRyZWZzLmZsYWdzLmNhdGVnb3JpZXNbMF0pXG4gICAgICB9XG4gICAgfSxcbiAgICBzaG93RW1vamkoZW1vamkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRFbW9qaXMucHVzaChlbW9qaSlcbiAgICAgIGlmIChlbW9qaS5uYXRpdmUpIHtcbiAgICAgICAgdGhpcy5lbW9qaXNPdXRwdXQgPSB0aGlzLmVtb2ppc091dHB1dCArIGVtb2ppLm5hdGl2ZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5lbW9qaXNPdXRwdXQgPSB0aGlzLmVtb2ppc091dHB1dCArICc/J1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG4gIGNvbXBvbmVudHM6IHtcbiAgICBQaWNrZXIsXG4gICAgRW1vamksXG4gICAgUUJ0bixcbiAgICBRRGlhbG9nLFxuICB9LFxufVxuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG5idXR0b24gKyBidXR0b24ge1xuICBtYXJnaW4tbGVmdDogMC41ZW07XG59XG5idXR0b24ge1xuICBwYWRkaW5nOiAwLjRlbSAwLjZlbTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIG91dGxpbmU6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuYnV0dG9uW2Rpc2FibGVkXSB7XG4gIGJvcmRlci1jb2xvcjogI2FlNjVjNTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4ubW9kYWwge1xuICBjb2xvcjogcmVkO1xufVxuXG4vKipcbiAqIFNlZSBodHRwczovL3Z1ZS1sb2FkZXIudnVlanMub3JnL2d1aWRlL3Njb3BlZC1jc3MuaHRtbCNkZWVwLXNlbGVjdG9yc1xuICogdGhlIGA+Pj5gIGFsbG93cyB0byBhcHBseSBzY29wZWQgY3NzIHRvIGNoaWxkIGVsZW1lbnQgdGhhdCBpcyBnZW5lcmF0ZWRcbiAqIGR5bmFtaWNhbGx5XG4qKi9cbi5tb2RhbCA+Pj4gLm1vZGFsLXNjcm9sbCB7XG4gIGNvbG9yOiByZWQ7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG59XG4ubW9kYWwgLm1vZGFsLWJvZHkge1xuICBtYXgtaGVpZ2h0OiBub25lO1xufVxuXG5oMSB7XG4gIGZvbnQtZmFtaWx5OiBDb3VyaWVyO1xuICBmb250LXNpemU6IDJyZW07XG59XG5cbmgyIHtcbiAgZm9udC1mYW1pbHk6IENvdXJpZXI7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbn1cblxuLmFwcCAucm93IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5yb3cgKyAucm93IHtcbiAgbWFyZ2luLXRvcDogMmVtO1xufVxuXG4ucm93LXNtYWxsIHtcbiAgbWFyZ2luLXRvcDogMWVtO1xufVxuXG4uZW1vamktbWFydCB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uZW1vamktbWFydC10aXRsZS1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMjFweDtcbn1cblxuLnBvcHVwIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAyMDA7XG4gIGJhY2tncm91bmQ6IHJlYmVjY2FwdXJwbGU7XG4gIG9wYWNpdHk6IDk1JTtcbn1cbi5wb3B1cC1ib3gge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZy10b3A6IDEyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogODBweDtcbn1cbi5wb3B1cC1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJveC1zaGFkb3c6IDBweCAyNHB4IDU0cHggcmdiYSgyMCwgMjgsIDQ5LCAwLjE0KTtcbiAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgcGFkZGluZzogNnB4IDZweCA5cHggNnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDQ2MnB4O1xuICBtYXJnaW46IDAgYXV0bztcbn1cbi5wb3B1cC1jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAyMHB4O1xuICByaWdodDogMzBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ucm93LXNtYWxsLXBpY2tlciA+Pj4gLmVtb2ppLW1hcnQtYW5jaG9ycyBzdmcge1xuICB3aWR0aDogOXB4O1xuICBoZWlnaHQ6IDlweDtcbn1cbi5yb3ctc21hbGwtcGlja2VyID4+PiAuZW1vamktbWFydC10aXRsZS1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogOXB4O1xufVxuLnJvdy1zbWFsbC1waWNrZXIgPj4+IC5lbW9qaS1tYXJ0LXByZXZpZXctZGF0YSB7XG4gIGxlZnQ6IDQwcHg7XG4gIGZvbnQtc2l6ZTogOXB4O1xufVxuLnJvdy1zbWFsbC1waWNrZXIgPj4+IC5lbW9qaS1tYXJ0LXByZXZpZXctbmFtZSB7XG4gIGZvbnQtc2l6ZTogOXB4O1xufVxuLnJvdy1zbWFsbC1waWNrZXIgPj4+IC5lbW9qaS1tYXJ0LXByZXZpZXctZW1vamkgLmVtb2ppLXR5cGUtbmF0aXZlIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxMnB4O1xufVxuPC9zdHlsZT5cbiIsIjx0ZW1wbGF0ZT5cbiAgPGNvbXBvbmVudFxuICAgIDppcz1cInRhZ1wiXG4gICAgdi1pZj1cInZpZXcuY2FuUmVuZGVyXCJcbiAgICA6dGl0bGU9XCJ2aWV3LnRpdGxlXCJcbiAgICA6YXJpYS1sYWJlbD1cInZpZXcuYXJpYUxhYmVsXCJcbiAgICA6ZGF0YS10aXRsZT1cInRpdGxlXCJcbiAgICBjbGFzcz1cImVtb2ppLW1hcnQtZW1vamlcIlxuICAgIEBtb3VzZWVudGVyPVwib25Nb3VzZUVudGVyXCJcbiAgICBAbW91c2VsZWF2ZT1cIm9uTW91c2VMZWF2ZVwiXG4gICAgQGNsaWNrPVwib25DbGlja1wiXG4gID5cbiAgICA8c3BhbiA6Y2xhc3M9XCJ2aWV3LmNzc0NsYXNzXCIgOnN0eWxlPVwidmlldy5jc3NTdHlsZVwiPnt7XG4gICAgICB2aWV3LmNvbnRlbnRcbiAgICB9fTwvc3Bhbj5cbiAgPC9jb21wb25lbnQ+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuaW1wb3J0IHsgRW1vamlQcm9wcyB9IGZyb20gJy4uL3V0aWxzL3NoYXJlZC1wcm9wcydcbmltcG9ydCB7IEVtb2ppVmlldyB9IGZyb20gJy4uL3V0aWxzL2Vtb2ppLWRhdGEnXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgcHJvcHM6IHtcbiAgICAuLi5FbW9qaVByb3BzLFxuICAgIGRhdGE6IHtcbiAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0sXG4gIH0sXG4gIGNvbXB1dGVkOiB7XG4gICAgdmlldygpIHtcbiAgICAgIHJldHVybiBuZXcgRW1vamlWaWV3KFxuICAgICAgICB0aGlzLmVtb2ppT2JqZWN0LFxuICAgICAgICB0aGlzLnNraW4sXG4gICAgICAgIHRoaXMuc2V0LFxuICAgICAgICB0aGlzLm5hdGl2ZSxcbiAgICAgICAgdGhpcy5mYWxsYmFjayxcbiAgICAgICAgdGhpcy50b29sdGlwLFxuICAgICAgICB0aGlzLnNpemUsXG4gICAgICApXG4gICAgfSxcbiAgICBzYW5pdGl6ZWREYXRhKCkge1xuICAgICAgcmV0dXJuIHRoaXMuZW1vamlPYmplY3QuX3Nhbml0aXplZFxuICAgIH0sXG4gICAgdGl0bGUoKSB7XG4gICAgICByZXR1cm4gdGhpcy50b29sdGlwID8gdGhpcy5lbW9qaU9iamVjdC5zaG9ydF9uYW1lIDogbnVsbFxuICAgIH0sXG4gICAgZW1vamlPYmplY3QoKSB7XG4gICAgICBpZiAodHlwZW9mIHRoaXMuZW1vamkgPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5maW5kRW1vamkodGhpcy5lbW9qaSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVtb2ppXG4gICAgICB9XG4gICAgfSxcbiAgfSxcbiAgY3JlYXRlZCgpIHt9LFxuICBtZXRob2RzOiB7XG4gICAgb25DbGljaygpIHtcbiAgICAgIHRoaXMuJGVtaXQoJ2NsaWNrJywgdGhpcy5lbW9qaU9iamVjdClcbiAgICB9LFxuICAgIG9uTW91c2VFbnRlcigpIHtcbiAgICAgIHRoaXMuJGVtaXQoJ21vdXNlZW50ZXInLCB0aGlzLmVtb2ppT2JqZWN0KVxuICAgIH0sXG4gICAgb25Nb3VzZUxlYXZlKCkge1xuICAgICAgdGhpcy4kZW1pdCgnbW91c2VsZWF2ZScsIHRoaXMuZW1vamlPYmplY3QpXG4gICAgfSxcbiAgfSxcbn1cbjwvc2NyaXB0PlxuIiwiPHRlbXBsYXRlPlxuICA8c2VjdGlvbiBjbGFzcz1cImVtb2ppLW1hcnQgZW1vamktbWFydC1zdGF0aWNcIiA6c3R5bGU9XCJjdXN0b21TdHlsZXNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZW1vamktbWFydC1iYXIgZW1vamktbWFydC1iYXItYW5jaG9yc1wiIHYtaWY9XCJzaG93Q2F0ZWdvcmllc1wiPlxuICAgICAgPGFuY2hvcnNcbiAgICAgICAgOmRhdGE9XCJkYXRhXCJcbiAgICAgICAgOmkxOG49XCJtZXJnZWRJMThuXCJcbiAgICAgICAgOmNvbG9yPVwiY29sb3JcIlxuICAgICAgICA6Y2F0ZWdvcmllcz1cInZpZXcuYWxsQ2F0ZWdvcmllc1wiXG4gICAgICAgIDphY3RpdmUtY2F0ZWdvcnk9XCJ2aWV3LmFjdGl2ZUNhdGVnb3J5XCJcbiAgICAgICAgQGNsaWNrPVwib25BbmNob3JDbGlja1wiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuXG4gICAgPHNsb3RcbiAgICAgIG5hbWU9XCJzZWFyY2hUZW1wbGF0ZVwiXG4gICAgICA6ZGF0YT1cImRhdGFcIlxuICAgICAgOmkxOG49XCJpMThuXCJcbiAgICAgIDphdXRvLWZvY3VzPVwiYXV0b0ZvY3VzXCJcbiAgICAgIDpvbi1zZWFyY2g9XCJvblNlYXJjaFwiXG4gICAgPlxuICAgICAgPHNlYXJjaFxuICAgICAgICB2LWlmPVwic2hvd1NlYXJjaFwiXG4gICAgICAgIHJlZj1cInNlYXJjaFwiXG4gICAgICAgIDpkYXRhPVwiZGF0YVwiXG4gICAgICAgIDppMThuPVwibWVyZ2VkSTE4blwiXG4gICAgICAgIDphdXRvLWZvY3VzPVwiYXV0b0ZvY3VzXCJcbiAgICAgICAgOm9uLXNlYXJjaD1cIm9uU2VhcmNoXCJcbiAgICAgICAgQHNlYXJjaD1cIm9uU2VhcmNoXCJcbiAgICAgICAgQGFycm93TGVmdD1cIm9uQXJyb3dMZWZ0XCJcbiAgICAgICAgQGFycm93UmlnaHQ9XCJvbkFycm93UmlnaHRcIlxuICAgICAgICBAYXJyb3dEb3duPVwib25BcnJvd0Rvd25cIlxuICAgICAgICBAYXJyb3dVcD1cIm9uQXJyb3dVcFwiXG4gICAgICAgIEBlbnRlcj1cIm9uRW50ZXJcIlxuICAgICAgLz5cbiAgICA8L3Nsb3Q+XG5cbiAgICA8ZGl2XG4gICAgICByb2xlPVwidGFicGFuZWxcIlxuICAgICAgY2xhc3M9XCJlbW9qaS1tYXJ0LXNjcm9sbFwiXG4gICAgICByZWY9XCJzY3JvbGxcIlxuICAgICAgQHNjcm9sbD1cIm9uU2Nyb2xsXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGlkPVwiZW1vamktbWFydC1saXN0XCJcbiAgICAgICAgcmVmPVwic2Nyb2xsQ29udGVudFwiXG4gICAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgICAgYXJpYS1leHBhbmRlZD1cInRydWVcIlxuICAgICAgPlxuICAgICAgICA8Y2F0ZWdvcnlcbiAgICAgICAgICB2LWZvcj1cIihjYXRlZ29yeSwgaWR4KSBpbiB2aWV3LmZpbHRlcmVkQ2F0ZWdvcmllc1wiXG4gICAgICAgICAgdi1zaG93PVwiaW5maW5pdGVTY3JvbGwgfHwgY2F0ZWdvcnkgPT0gdmlldy5hY3RpdmVDYXRlZ29yeVwiXG4gICAgICAgICAgOnJlZj1cIidjYXRlZ29yaWVzXycgKyBpZHhcIlxuICAgICAgICAgIDprZXk9XCJjYXRlZ29yeS5pZFwiXG4gICAgICAgICAgOmRhdGE9XCJkYXRhXCJcbiAgICAgICAgICA6aTE4bj1cIm1lcmdlZEkxOG5cIlxuICAgICAgICAgIDppZD1cImNhdGVnb3J5LmlkXCJcbiAgICAgICAgICA6bmFtZT1cImNhdGVnb3J5Lm5hbWVcIlxuICAgICAgICAgIDplbW9qaXM9XCJjYXRlZ29yeS5lbW9qaXNcIlxuICAgICAgICAgIDplbW9qaS1wcm9wcz1cImVtb2ppUHJvcHNcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8c2xvdFxuICAgICAgbmFtZT1cInByZXZpZXdUZW1wbGF0ZVwiXG4gICAgICA6ZGF0YT1cImRhdGFcIlxuICAgICAgOnRpdGxlPVwidGl0bGVcIlxuICAgICAgOmVtb2ppPVwidmlldy5wcmV2aWV3RW1vamlcIlxuICAgICAgOmlkbGUtZW1vamk9XCJpZGxlRW1vamlcIlxuICAgICAgOnNob3ctc2tpbi10b25lcz1cInNob3dTa2luVG9uZXNcIlxuICAgICAgOmVtb2ppLXByb3BzPVwiZW1vamlQcm9wc1wiXG4gICAgICA6c2tpbi1wcm9wcz1cInNraW5Qcm9wc1wiXG4gICAgICA6b24tc2tpbi1jaGFuZ2U9XCJvblNraW5DaGFuZ2VcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LWJhciBlbW9qaS1tYXJ0LWJhci1wcmV2aWV3XCIgdi1pZj1cInNob3dQcmV2aWV3XCI+XG4gICAgICAgIDxwcmV2aWV3XG4gICAgICAgICAgOmRhdGE9XCJkYXRhXCJcbiAgICAgICAgICA6dGl0bGU9XCJ0aXRsZVwiXG4gICAgICAgICAgOmVtb2ppPVwidmlldy5wcmV2aWV3RW1vamlcIlxuICAgICAgICAgIDppZGxlLWVtb2ppPVwiaWRsZUVtb2ppXCJcbiAgICAgICAgICA6c2hvdy1za2luLXRvbmVzPVwic2hvd1NraW5Ub25lc1wiXG4gICAgICAgICAgOmVtb2ppLXByb3BzPVwiZW1vamlQcm9wc1wiXG4gICAgICAgICAgOnNraW4tcHJvcHM9XCJza2luUHJvcHNcIlxuICAgICAgICAgIDpvbi1za2luLWNoYW5nZT1cIm9uU2tpbkNoYW5nZVwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L3Nsb3Q+XG4gIDwvc2VjdGlvbj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5pbXBvcnQgJy4uL3ZlbmRvci9yYWYtcG9seWZpbGwnXG5pbXBvcnQgc3RvcmUgZnJvbSAnLi4vdXRpbHMvc3RvcmUnXG5pbXBvcnQgZnJlcXVlbnRseSBmcm9tICcuLi91dGlscy9mcmVxdWVudGx5J1xuaW1wb3J0IHsgZGVlcE1lcmdlLCBtZWFzdXJlU2Nyb2xsYmFyIH0gZnJvbSAnLi4vdXRpbHMnXG5pbXBvcnQgeyBQaWNrZXJQcm9wcyB9IGZyb20gJy4uL3V0aWxzL3NoYXJlZC1wcm9wcydcbmltcG9ydCB7IFBpY2tlclZpZXcgfSBmcm9tICcuLi91dGlscy9waWNrZXInXG5pbXBvcnQgQW5jaG9ycyBmcm9tICcuL2FuY2hvcnMudnVlJ1xuaW1wb3J0IENhdGVnb3J5IGZyb20gJy4vY2F0ZWdvcnkudnVlJ1xuaW1wb3J0IFByZXZpZXcgZnJvbSAnLi9wcmV2aWV3LnZ1ZSdcbmltcG9ydCBTZWFyY2ggZnJvbSAnLi9zZWFyY2gudnVlJ1xuXG5jb25zdCBJMThOID0ge1xuICBzZWFyY2g6ICdTZWFyY2gnLFxuICBub3Rmb3VuZDogJ05vIEVtb2ppIEZvdW5kJyxcbiAgY2F0ZWdvcmllczoge1xuICAgIHNlYXJjaDogJ1NlYXJjaCBSZXN1bHRzJyxcbiAgICByZWNlbnQ6ICdGcmVxdWVudGx5IFVzZWQnLFxuICAgIHNtaWxleXM6ICdTbWlsZXlzICYgRW1vdGlvbicsXG4gICAgcGVvcGxlOiAnUGVvcGxlICYgQm9keScsXG4gICAgbmF0dXJlOiAnQW5pbWFscyAmIE5hdHVyZScsXG4gICAgZm9vZHM6ICdGb29kICYgRHJpbmsnLFxuICAgIGFjdGl2aXR5OiAnQWN0aXZpdHknLFxuICAgIHBsYWNlczogJ1RyYXZlbCAmIFBsYWNlcycsXG4gICAgb2JqZWN0czogJ09iamVjdHMnLFxuICAgIHN5bWJvbHM6ICdTeW1ib2xzJyxcbiAgICBmbGFnczogJ0ZsYWdzJyxcbiAgICBjdXN0b206ICdDdXN0b20nLFxuICB9LFxufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHByb3BzOiB7XG4gICAgLi4uUGlja2VyUHJvcHMsXG4gICAgZGF0YToge1xuICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSxcbiAgfSxcbiAgZGF0YSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYWN0aXZlU2tpbjogdGhpcy5za2luIHx8IHN0b3JlLmdldCgnc2tpbicpIHx8IHRoaXMuZGVmYXVsdFNraW4sXG4gICAgICB2aWV3OiBuZXcgUGlja2VyVmlldyh0aGlzKSxcbiAgICB9XG4gIH0sXG4gIGNvbXB1dGVkOiB7XG4gICAgY3VzdG9tU3R5bGVzKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgd2lkdGg6IHRoaXMuY2FsY3VsYXRlV2lkdGggKyAncHgnLFxuICAgICAgICAuLi50aGlzLnBpY2tlclN0eWxlcyxcbiAgICAgIH1cbiAgICB9LFxuICAgIGVtb2ppUHJvcHMoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYXRpdmU6IHRoaXMubmF0aXZlLFxuICAgICAgICBza2luOiB0aGlzLmFjdGl2ZVNraW4sXG4gICAgICAgIHNldDogdGhpcy5zZXQsXG4gICAgICAgIGVtb2ppVG9vbHRpcDogdGhpcy5lbW9qaVRvb2x0aXAsXG4gICAgICAgIGVtb2ppU2l6ZTogdGhpcy5lbW9qaVNpemUsXG4gICAgICAgIHNlbGVjdGVkRW1vamk6IHRoaXMudmlldy5wcmV2aWV3RW1vamksXG4gICAgICAgIHNlbGVjdGVkRW1vamlDYXRlZ29yeTogdGhpcy52aWV3LnByZXZpZXdFbW9qaUNhdGVnb3J5LFxuICAgICAgICBvbkVudGVyOiB0aGlzLm9uRW1vamlFbnRlci5iaW5kKHRoaXMpLFxuICAgICAgICBvbkxlYXZlOiB0aGlzLm9uRW1vamlMZWF2ZS5iaW5kKHRoaXMpLFxuICAgICAgICBvbkNsaWNrOiB0aGlzLm9uRW1vamlDbGljay5iaW5kKHRoaXMpLFxuICAgICAgfVxuICAgIH0sXG4gICAgc2tpblByb3BzKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2tpbjogdGhpcy5hY3RpdmVTa2luLFxuICAgICAgfVxuICAgIH0sXG4gICAgY2FsY3VsYXRlV2lkdGgoKSB7XG4gICAgICByZXR1cm4gdGhpcy5wZXJMaW5lICogKHRoaXMuZW1vamlTaXplICsgMTIpICsgMTIgKyAyICsgbWVhc3VyZVNjcm9sbGJhcigpXG4gICAgfSxcbiAgICAvLyBlbW9qaXNQZXJSb3coKSB7XG4gICAgLy8gICBjb25zdCBsaXN0RWwgPSB0aGlzLiRyZWZzLnNjcm9sbENvbnRlbnRcbiAgICAvLyAgIGNvbnN0IGVtb2ppRWwgPSBsaXN0RWwucXVlcnlTZWxlY3RvcignLmVtb2ppLW1hcnQtZW1vamknKVxuICAgIC8vICAgcmV0dXJuIE1hdGguZmxvb3IobGlzdEVsLm9mZnNldFdpZHRoIC8gZW1vamlFbC5vZmZzZXRXaWR0aClcbiAgICAvLyB9LFxuICAgIGZpbHRlcmVkQ2F0ZWdvcmllcygpIHtcbiAgICAgIHJldHVybiB0aGlzLnZpZXcuZmlsdGVyZWRDYXRlZ29yaWVzXG4gICAgfSxcbiAgICBtZXJnZWRJMThuKCkge1xuICAgICAgcmV0dXJuIE9iamVjdC5mcmVlemUoZGVlcE1lcmdlKEkxOE4sIHRoaXMuaTE4bikpXG4gICAgfSxcbiAgICBpZGxlRW1vamkoKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmVtb2ppKHRoaXMuZW1vamkpXG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgJ0RlZmF1bHQgcHJldmlldyBlbW9qaSBgJyArXG4gICAgICAgICAgICB0aGlzLmVtb2ppICtcbiAgICAgICAgICAgICdgIGlzIG5vdCBhdmFpbGFibGUsIGNoZWNrIHRoZSBQaWNrZXIgYGVtb2ppYCBwcm9wZXJ0eScsXG4gICAgICAgIClcbiAgICAgICAgY29uc29sZS5lcnJvcihlKVxuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmZpcnN0RW1vamkoKVxuICAgICAgfVxuICAgIH0sXG4gIH0sXG4gIG1ldGhvZHM6IHtcbiAgICBvblNjcm9sbCgpIHtcbiAgICAgIGlmICh0aGlzLmluZmluaXRlU2Nyb2xsICYmICF0aGlzLndhaXRpbmdGb3JQYWludCkge1xuICAgICAgICB0aGlzLndhaXRpbmdGb3JQYWludCA9IHRydWVcbiAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLm9uU2Nyb2xsUGFpbnQuYmluZCh0aGlzKSlcbiAgICAgIH1cbiAgICB9LFxuICAgIG9uU2Nyb2xsUGFpbnQoKSB7XG4gICAgICB0aGlzLndhaXRpbmdGb3JQYWludCA9IGZhbHNlXG4gICAgICB0aGlzLnZpZXcub25TY3JvbGwoKVxuICAgIH0sXG4gICAgb25BbmNob3JDbGljayhjYXRlZ29yeSkge1xuICAgICAgdGhpcy52aWV3Lm9uQW5jaG9yQ2xpY2soY2F0ZWdvcnkpXG4gICAgfSxcbiAgICBvblNlYXJjaCh2YWx1ZSkge1xuICAgICAgdGhpcy52aWV3Lm9uU2VhcmNoKHZhbHVlKVxuICAgIH0sXG4gICAgb25FbW9qaUVudGVyKGVtb2ppKSB7XG4gICAgICB0aGlzLnZpZXcub25FbW9qaUVudGVyKGVtb2ppKVxuICAgIH0sXG4gICAgb25FbW9qaUxlYXZlKGVtb2ppKSB7XG4gICAgICB0aGlzLnZpZXcub25FbW9qaUxlYXZlKGVtb2ppKVxuICAgIH0sXG4gICAgb25BcnJvd0xlZnQoJGV2ZW50KSB7XG4gICAgICBjb25zdCBvbGRJZHggPSB0aGlzLnZpZXcucHJldmlld0Vtb2ppSWR4XG4gICAgICB0aGlzLnZpZXcub25BcnJvd0xlZnQoKVxuICAgICAgaWYgKCRldmVudCAmJiB0aGlzLnZpZXcucHJldmlld0Vtb2ppSWR4ICE9PSBvbGRJZHgpIHtcbiAgICAgICAgLy8gUHJldmVudCBjdXJzb3IgbW92ZW1lbnQgaW5zaWRlIHRoZSBpbnB1dFxuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgfVxuICAgIH0sXG4gICAgb25BcnJvd1JpZ2h0KCkge1xuICAgICAgdGhpcy52aWV3Lm9uQXJyb3dSaWdodCgpXG4gICAgfSxcbiAgICBvbkFycm93RG93bigpIHtcbiAgICAgIHRoaXMudmlldy5vbkFycm93RG93bigpXG4gICAgfSxcbiAgICBvbkFycm93VXAoJGV2ZW50KSB7XG4gICAgICB0aGlzLnZpZXcub25BcnJvd1VwKClcbiAgICAgIC8vIFByZXZlbnQgY3Vyc29yIG1vdmVtZW50IGluc2lkZSB0aGUgaW5wdXRcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgfSxcbiAgICBvbkVudGVyKGVtb2ppKSB7XG4gICAgICB0aGlzLiRlbWl0KCdzZWxlY3QnLCB0aGlzLnZpZXcucHJldmlld0Vtb2ppKVxuICAgICAgZnJlcXVlbnRseS5hZGQodGhpcy52aWV3LnByZXZpZXdFbW9qaSlcbiAgICB9LFxuICAgIG9uRW1vamlDbGljayhlbW9qaSkge1xuICAgICAgdGhpcy4kZW1pdCgnc2VsZWN0JywgZW1vamkpXG4gICAgICBmcmVxdWVudGx5LmFkZChlbW9qaSlcbiAgICB9LFxuICAgIG9uU2tpbkNoYW5nZShza2luKSB7XG4gICAgICB0aGlzLmFjdGl2ZVNraW4gPSBza2luXG4gICAgICBzdG9yZS51cGRhdGUoeyBza2luIH0pXG5cbiAgICAgIHRoaXMuJGVtaXQoJ3NraW4tY2hhbmdlJywgc2tpbilcbiAgICB9LFxuICAgIGdldENhdGVnb3J5Q29tcG9uZW50KGluZGV4KSB7XG4gICAgICBsZXQgY29tcG9uZW50ID0gdGhpcy4kcmVmc1snY2F0ZWdvcmllc18nICsgaW5kZXhdXG4gICAgICBpZiAoY29tcG9uZW50ICYmICcwJyBpbiBjb21wb25lbnQpIHtcbiAgICAgICAgLy8gVnVlIDIgaGFzICRyZWZzIHVuZGVyIHYtZm9yIGFzIGFuIGFycmF5LlxuICAgICAgICByZXR1cm4gY29tcG9uZW50WycwJ11cbiAgICAgIH1cbiAgICAgIC8vIFZ1ZSAzIGRvZXMgbm90IHN1cHBvcnQgJHJlZnMgYXMgYXJyYXkuXG4gICAgICByZXR1cm4gY29tcG9uZW50XG4gICAgfSxcbiAgfSxcbiAgY29tcG9uZW50czoge1xuICAgIEFuY2hvcnMsXG4gICAgQ2F0ZWdvcnksXG4gICAgUHJldmlldyxcbiAgICBTZWFyY2gsXG4gIH0sXG59XG48L3NjcmlwdD5cbiIsIjx0ZW1wbGF0ZT5cbiAgPGRpdiByb2xlPVwidGFibGlzdFwiIGNsYXNzPVwiZW1vamktbWFydC1hbmNob3JzXCI+XG4gICAgPGJ1dHRvblxuICAgICAgdi1mb3I9XCJjYXRlZ29yeSBpbiBjYXRlZ29yaWVzXCJcbiAgICAgIHJvbGU9XCJ0YWJcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA6YXJpYS1sYWJlbD1cImNhdGVnb3J5Lm5hbWVcIlxuICAgICAgOmFyaWEtc2VsZWN0ZWQ9XCJjYXRlZ29yeS5pZCA9PSBhY3RpdmVDYXRlZ29yeS5pZFwiXG4gICAgICA6a2V5PVwiY2F0ZWdvcnkuaWRcIlxuICAgICAgOmNsYXNzPVwie1xuICAgICAgICAnZW1vamktbWFydC1hbmNob3InOiB0cnVlLFxuICAgICAgICAnZW1vamktbWFydC1hbmNob3Itc2VsZWN0ZWQnOiBjYXRlZ29yeS5pZCA9PSBhY3RpdmVDYXRlZ29yeS5pZCxcbiAgICAgIH1cIlxuICAgICAgOnN0eWxlPVwieyBjb2xvcjogY2F0ZWdvcnkuaWQgPT0gYWN0aXZlQ2F0ZWdvcnkuaWQgPyBjb2xvciA6ICcnIH1cIlxuICAgICAgOmRhdGEtdGl0bGU9XCJpMThuLmNhdGVnb3JpZXNbY2F0ZWdvcnkuaWRdXCJcbiAgICAgIEBjbGljaz1cIiRlbWl0KCdjbGljaycsIGNhdGVnb3J5KVwiXG4gICAgPlxuICAgICAgPGRpdiBhcmlhLWhpZGRlbj1cInRydWVcIiB2LWh0bWw9XCJzdmdzW2NhdGVnb3J5LmlkXVwiIC8+XG4gICAgICA8c3BhblxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICBjbGFzcz1cImVtb2ppLW1hcnQtYW5jaG9yLWJhclwiXG4gICAgICAgIDpzdHlsZT1cInsgYmFja2dyb3VuZENvbG9yOiBjb2xvciB9XCJcbiAgICAgID48L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbmltcG9ydCBzdmdzIGZyb20gJy4uL3N2Z3MnXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgcHJvcHM6IHtcbiAgICBpMThuOiB7XG4gICAgICB0eXBlOiBPYmplY3QsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9LFxuICAgIGNvbG9yOiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgfSxcbiAgICBjYXRlZ29yaWVzOiB7XG4gICAgICB0eXBlOiBBcnJheSxcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0sXG4gICAgYWN0aXZlQ2F0ZWdvcnk6IHtcbiAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgIGRlZmF1bHQoKSB7XG4gICAgICAgIHJldHVybiB7fVxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICBjcmVhdGVkKCkge1xuICAgIHRoaXMuc3ZncyA9IHN2Z3NcbiAgfSxcbn1cbjwvc2NyaXB0PlxuIiwiPHRlbXBsYXRlPlxuICA8c2VjdGlvblxuICAgIDpjbGFzcz1cIntcbiAgICAgICdlbW9qaS1tYXJ0LWNhdGVnb3J5JzogdHJ1ZSxcbiAgICAgICdlbW9qaS1tYXJ0LW5vLXJlc3VsdHMnOiAhaGFzUmVzdWx0cyxcbiAgICB9XCJcbiAgICA6YXJpYS1sYWJlbD1cImkxOG4uY2F0ZWdvcmllc1tpZF1cIlxuICAgIHYtaWY9XCJpc1Zpc2libGUgJiYgKGlzU2VhcmNoIHx8IGhhc1Jlc3VsdHMpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LWNhdGVnb3J5LWxhYmVsXCI+XG4gICAgICA8aDMgY2xhc3M9XCJlbW9qaS1tYXJ0LWNhdGVnb3J5LWxhYmVsXCI+e3sgaTE4bi5jYXRlZ29yaWVzW2lkXSB9fTwvaDM+XG4gICAgPC9kaXY+XG5cbiAgICA8dGVtcGxhdGUgdi1mb3I9XCJ7IGVtb2ppT2JqZWN0LCBlbW9qaVZpZXcgfSBpbiBlbW9qaU9iamVjdHNcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdi1pZj1cImVtb2ppVmlldy5jYW5SZW5kZXJcIlxuICAgICAgICA6YXJpYS1sYWJlbD1cImVtb2ppVmlldy5hcmlhTGFiZWxcIlxuICAgICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICAgYXJpYS1zZWxlY3RlZD1cImZhbHNlXCJcbiAgICAgICAgYXJpYS1wb3NpbnNldD1cIjFcIlxuICAgICAgICBhcmlhLXNldHNpemU9XCIxODEyXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIDpkYXRhLXRpdGxlPVwiZW1vamlPYmplY3Quc2hvcnRfbmFtZVwiXG4gICAgICAgIDprZXk9XCJlbW9qaU9iamVjdC5pZFwiXG4gICAgICAgIDp0aXRsZT1cImVtb2ppVmlldy50aXRsZVwiXG4gICAgICAgIGNsYXNzPVwiZW1vamktbWFydC1lbW9qaVwiXG4gICAgICAgIDpjbGFzcz1cImFjdGl2ZUNsYXNzKGVtb2ppT2JqZWN0KVwiXG4gICAgICAgIEBtb3VzZWVudGVyPVwiZW1vamlQcm9wcy5vbkVudGVyKGVtb2ppVmlldy5nZXRFbW9qaSgpKVwiXG4gICAgICAgIEBtb3VzZWxlYXZlPVwiZW1vamlQcm9wcy5vbkxlYXZlKGVtb2ppVmlldy5nZXRFbW9qaSgpKVwiXG4gICAgICAgIEBjbGljaz1cImVtb2ppUHJvcHMub25DbGljayhlbW9qaVZpZXcuZ2V0RW1vamkoKSlcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiA6Y2xhc3M9XCJlbW9qaVZpZXcuY3NzQ2xhc3NcIiA6c3R5bGU9XCJlbW9qaVZpZXcuY3NzU3R5bGVcIj57e1xuICAgICAgICAgIGVtb2ppVmlldy5jb250ZW50XG4gICAgICAgIH19PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC90ZW1wbGF0ZT5cblxuICAgIDxkaXYgdi1pZj1cIiFoYXNSZXN1bHRzXCI+XG4gICAgICA8ZW1vamlcbiAgICAgICAgOmRhdGE9XCJkYXRhXCJcbiAgICAgICAgZW1vamk9XCJzbGV1dGhfb3Jfc3B5XCJcbiAgICAgICAgOm5hdGl2ZT1cImVtb2ppUHJvcHMubmF0aXZlXCJcbiAgICAgICAgOnNraW49XCJlbW9qaVByb3BzLnNraW5cIlxuICAgICAgICA6c2V0PVwiZW1vamlQcm9wcy5zZXRcIlxuICAgICAgLz5cbiAgICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LW5vLXJlc3VsdHMtbGFiZWxcIj57eyBpMThuLm5vdGZvdW5kIH19PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvc2VjdGlvbj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5pbXBvcnQgeyBFbW9qaVZpZXcgfSBmcm9tICcuLi91dGlscy9lbW9qaS1kYXRhJ1xuaW1wb3J0IEVtb2ppIGZyb20gJy4vRW1vamkudnVlJ1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHByb3BzOiB7XG4gICAgZGF0YToge1xuICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSxcbiAgICBpMThuOiB7XG4gICAgICB0eXBlOiBPYmplY3QsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9LFxuICAgIGlkOiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9LFxuICAgIG5hbWU6IHtcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0sXG4gICAgZW1vamlzOiB7XG4gICAgICB0eXBlOiBBcnJheSxcbiAgICB9LFxuICAgIGVtb2ppUHJvcHM6IHtcbiAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0sXG4gIH0sXG4gIG1ldGhvZHM6IHtcbiAgICBhY3RpdmVDbGFzczogZnVuY3Rpb24oZW1vamlPYmplY3QpIHtcbiAgICAgIGlmICghdGhpcy5lbW9qaVByb3BzLnNlbGVjdGVkRW1vamkpIHtcbiAgICAgICAgcmV0dXJuICcnXG4gICAgICB9XG4gICAgICBpZiAoIXRoaXMuZW1vamlQcm9wcy5zZWxlY3RlZEVtb2ppQ2F0ZWdvcnkpIHtcbiAgICAgICAgcmV0dXJuICcnXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuZW1vamlQcm9wcy5zZWxlY3RlZEVtb2ppLmlkID09IGVtb2ppT2JqZWN0LmlkICYmXG4gICAgICAgIHRoaXMuZW1vamlQcm9wcy5zZWxlY3RlZEVtb2ppQ2F0ZWdvcnkuaWQgPT0gdGhpcy5pZFxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiAnZW1vamktbWFydC1lbW9qaS1zZWxlY3RlZCdcbiAgICAgIH1cbiAgICAgIHJldHVybiAnJ1xuICAgIH0sXG4gIH0sXG4gIGNvbXB1dGVkOiB7XG4gICAgaXNWaXNpYmxlKCkge1xuICAgICAgcmV0dXJuICEhdGhpcy5lbW9qaXNcbiAgICB9LFxuICAgIGlzU2VhcmNoKCkge1xuICAgICAgcmV0dXJuIHRoaXMubmFtZSA9PSAnU2VhcmNoJ1xuICAgIH0sXG4gICAgaGFzUmVzdWx0cygpIHtcbiAgICAgIHJldHVybiB0aGlzLmVtb2ppcy5sZW5ndGggPiAwXG4gICAgfSxcbiAgICBlbW9qaU9iamVjdHMoKSB7XG4gICAgICByZXR1cm4gdGhpcy5lbW9qaXMubWFwKChlbW9qaSkgPT4ge1xuICAgICAgICBsZXQgZW1vamlPYmplY3QgPSBlbW9qaVxuICAgICAgICBsZXQgZW1vamlWaWV3ID0gbmV3IEVtb2ppVmlldyhcbiAgICAgICAgICBlbW9qaSxcbiAgICAgICAgICB0aGlzLmVtb2ppUHJvcHMuc2tpbixcbiAgICAgICAgICB0aGlzLmVtb2ppUHJvcHMuc2V0LFxuICAgICAgICAgIHRoaXMuZW1vamlQcm9wcy5uYXRpdmUsXG4gICAgICAgICAgdGhpcy5lbW9qaVByb3BzLmZhbGxiYWNrLFxuICAgICAgICAgIHRoaXMuZW1vamlQcm9wcy5lbW9qaVRvb2x0aXAsXG4gICAgICAgICAgdGhpcy5lbW9qaVByb3BzLmVtb2ppU2l6ZSxcbiAgICAgICAgKVxuICAgICAgICByZXR1cm4geyBlbW9qaU9iamVjdCwgZW1vamlWaWV3IH1cbiAgICAgIH0pXG4gICAgfSxcbiAgfSxcbiAgY29tcG9uZW50czoge1xuICAgIEVtb2ppLFxuICB9LFxufVxuPC9zY3JpcHQ+XG4iLCI8dGVtcGxhdGU+XG5cbjxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXdcIj5cbiAgPHRlbXBsYXRlIHYtaWY9XCJlbW9qaVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1lbW9qaVwiPlxuICAgICAgICA8ZW1vamlcbiAgICAgICAgICA6ZGF0YT1cImRhdGFcIlxuICAgICAgICAgIDplbW9qaT1cImVtb2ppXCJcbiAgICAgICAgICA6bmF0aXZlPVwiZW1vamlQcm9wcy5uYXRpdmVcIlxuICAgICAgICAgIDpza2luPVwiZW1vamlQcm9wcy5za2luXCJcbiAgICAgICAgICA6c2V0PVwiZW1vamlQcm9wcy5zZXRcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctZGF0YVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW1vamktbWFydC1wcmV2aWV3LW5hbWVcIj57eyBlbW9qaS5uYW1lIH19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctc2hvcnRuYW1lc1wiPlxuICAgICAgICAgIDxzcGFuIHYtZm9yPVwic2hvcnROYW1lIGluIGVtb2ppU2hvcnROYW1lc1wiIDprZXk9XCJzaG9ydE5hbWVcIiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1zaG9ydG5hbWVcIj46e3sgc2hvcnROYW1lIH19Ojwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctZW1vdGljb25zXCI+XG4gICAgICAgICAgPHNwYW4gdi1mb3I9XCJlbW90aWNvbiBpbiBlbW9qaUVtb3RpY29uc1wiIDprZXk9XCJlbW90aWNvblwiIGNsYXNzPVwiZW1vamktbWFydC1wcmV2aWV3LWVtb3RpY29uXCI+e3sgZW1vdGljb24gfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gIDwvdGVtcGxhdGU+XG5cbiAgPHRlbXBsYXRlIHYtZWxzZT5cbiAgICA8ZGl2IGNsYXNzPVwiZW1vamktbWFydC1wcmV2aWV3LWVtb2ppXCI+XG4gICAgICA8ZW1vamlcbiAgICAgICAgOmRhdGE9XCJkYXRhXCJcbiAgICAgICAgOmVtb2ppPVwiaWRsZUVtb2ppXCJcbiAgICAgICAgOm5hdGl2ZT1cImVtb2ppUHJvcHMubmF0aXZlXCJcbiAgICAgICAgOnNraW49XCJlbW9qaVByb3BzLnNraW5cIlxuICAgICAgICA6c2V0PVwiZW1vamlQcm9wcy5zZXRcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctZGF0YVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJlbW9qaS1tYXJ0LXRpdGxlLWxhYmVsXCI+e3sgdGl0bGUgfX08L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IHYtaWY9XCJzaG93U2tpblRvbmVzXCIgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctc2tpbnNcIj5cbiAgICAgIDxza2lucyA6c2tpbj1cInNraW5Qcm9wcy5za2luXCIgQGNoYW5nZT1cIm9uU2tpbkNoYW5nZSgkZXZlbnQpXCIgLz5cbiAgICA8L2Rpdj5cbiAgPC90ZW1wbGF0ZT5cbjwvZGl2PlxuXG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuXG5pbXBvcnQgRW1vamkgZnJvbSAnLi9FbW9qaS52dWUnXG5pbXBvcnQgU2tpbnMgZnJvbSAnLi9za2lucy52dWUnXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgcHJvcHM6IHtcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiBPYmplY3QsXG4gICAgICByZXF1aXJlZDogdHJ1ZVxuICAgIH0sXG4gICAgdGl0bGU6IHtcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgfSxcbiAgICBlbW9qaToge1xuICAgICAgdHlwZTogW1N0cmluZywgT2JqZWN0XVxuICAgIH0sXG4gICAgaWRsZUVtb2ppOiB7XG4gICAgICB0eXBlOiBbU3RyaW5nLCBPYmplY3RdLFxuICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICB9LFxuICAgIHNob3dTa2luVG9uZXM6IHtcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICBkZWZhdWx0OiB0cnVlXG4gICAgfSxcbiAgICBlbW9qaVByb3BzOiB7XG4gICAgICB0eXBlOiBPYmplY3QsXG4gICAgICByZXF1aXJlZDogdHJ1ZVxuICAgIH0sXG4gICAgc2tpblByb3BzOiB7XG4gICAgICB0eXBlOiBPYmplY3QsXG4gICAgICByZXF1aXJlZDogdHJ1ZVxuICAgIH0sXG4gICAgb25Ta2luQ2hhbmdlOiB7XG4gICAgICB0eXBlOiBGdW5jdGlvbixcbiAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgfVxuICB9LFxuICBjb21wdXRlZDoge1xuICAgIGVtb2ppRGF0YSgpIHtcbiAgICAgIGlmICh0aGlzLmVtb2ppKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVtb2ppXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4ge31cbiAgICAgIH1cbiAgICB9LFxuICAgIGVtb2ppU2hvcnROYW1lcygpIHtcbiAgICAgIHJldHVybiB0aGlzLmVtb2ppRGF0YS5zaG9ydF9uYW1lc1xuICAgIH0sXG4gICAgZW1vamlFbW90aWNvbnMoKSB7XG4gICAgICByZXR1cm4gdGhpcy5lbW9qaURhdGEuZW1vdGljb25zXG4gICAgfVxuICB9LFxuICBjb21wb25lbnRzOiB7XG4gICAgRW1vamksXG4gICAgU2tpbnNcbiAgfVxufVxuXG48L3NjcmlwdD5cbiIsIjx0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtc2VhcmNoXCI+XG4gICAgPGlucHV0XG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICA6cGxhY2Vob2xkZXI9XCJpMThuLnNlYXJjaFwiXG4gICAgICByb2xlPVwidGV4dGJveFwiXG4gICAgICBhcmlhLWF1dG9jb21wbGV0ZT1cImxpc3RcIlxuICAgICAgYXJpYS1vd25zPVwiZW1vamktbWFydC1saXN0XCJcbiAgICAgIGFyaWEtbGFiZWw9XCJTZWFyY2ggZm9yIGFuIGVtb2ppXCJcbiAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJlbW9qaS1tYXJ0LXNlYXJjaC1kZXNjcmlwdGlvblwiXG4gICAgICBAa2V5ZG93bi5sZWZ0PVwiKCRldmVudCkgPT4gJGVtaXQoJ2Fycm93TGVmdCcsICRldmVudClcIlxuICAgICAgQGtleWRvd24ucmlnaHQ9XCIoKSA9PiAkZW1pdCgnYXJyb3dSaWdodCcpXCJcbiAgICAgIEBrZXlkb3duLmRvd249XCIoKSA9PiAkZW1pdCgnYXJyb3dEb3duJylcIlxuICAgICAgQGtleWRvd24udXA9XCIoJGV2ZW50KSA9PiAkZW1pdCgnYXJyb3dVcCcsICRldmVudClcIlxuICAgICAgQGtleWRvd24uZW50ZXI9XCIoKSA9PiAkZW1pdCgnZW50ZXInKVwiXG4gICAgICB2LW1vZGVsPVwidmFsdWVcIlxuICAgIC8+XG4gICAgPHNwYW4gY2xhc3M9XCJoaWRkZW5cIiBpZD1cImVtb2ppLXBpY2tlci1zZWFyY2gtZGVzY3JpcHRpb25cIlxuICAgICAgPlVzZSB0aGUgbGVmdCwgcmlnaHQsIHVwIGFuZCBkb3duIGFycm93IGtleXMgdG8gbmF2aWdhdGUgdGhlIGVtb2ppIHNlYXJjaFxuICAgICAgcmVzdWx0cy48L3NwYW5cbiAgICA+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgcHJvcHM6IHtcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiBPYmplY3QsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9LFxuICAgIGkxOG46IHtcbiAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0sXG4gICAgYXV0b0ZvY3VzOiB7XG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgfSxcbiAgICBvblNlYXJjaDoge1xuICAgICAgdHlwZTogRnVuY3Rpb24sXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9LFxuICAgIG9uQXJyb3dMZWZ0OiB7XG4gICAgICB0eXBlOiBGdW5jdGlvbixcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICB9LFxuICAgIG9uQXJyb3dSaWdodDoge1xuICAgICAgdHlwZTogRnVuY3Rpb24sXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgfSxcbiAgICBvbkFycm93RG93bjoge1xuICAgICAgdHlwZTogRnVuY3Rpb24sXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgfSxcbiAgICBvbkFycm93VXA6IHtcbiAgICAgIHR5cGU6IEZ1bmN0aW9uLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIH0sXG4gICAgb25FbnRlcjoge1xuICAgICAgdHlwZTogRnVuY3Rpb24sXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgfSxcbiAgfSxcbiAgZGF0YSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6ICcnLFxuICAgIH1cbiAgfSxcbiAgY29tcHV0ZWQ6IHtcbiAgICBlbW9qaUluZGV4KCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGF0YVxuICAgIH0sXG4gIH0sXG4gIHdhdGNoOiB7XG4gICAgdmFsdWUoKSB7XG4gICAgICB0aGlzLiRlbWl0KCdzZWFyY2gnLCB0aGlzLnZhbHVlKVxuICAgIH0sXG4gIH0sXG4gIG1ldGhvZHM6IHtcbiAgICBjbGVhcigpIHtcbiAgICAgIHRoaXMudmFsdWUgPSAnJ1xuICAgIH0sXG4gIH0sXG4gIG1vdW50ZWQoKSB7XG4gICAgbGV0ICRpbnB1dCA9IHRoaXMuJGVsLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JylcblxuICAgIGlmICh0aGlzLmF1dG9Gb2N1cykge1xuICAgICAgJGlucHV0LmZvY3VzKClcbiAgICB9XG4gIH0sXG59XG48L3NjcmlwdD5cbiIsIjx0ZW1wbGF0ZT5cblxuPGRpdiA6Y2xhc3M9XCJ7ICdlbW9qaS1tYXJ0LXNraW4tc3dhdGNoZXMnOiB0cnVlLCAnZW1vamktbWFydC1za2luLXN3YXRjaGVzLW9wZW5lZCc6IG9wZW5lZCB9XCI+XG4gIDxzcGFuIHYtZm9yPVwic2tpblRvbmUgaW4gNlwiIDprZXk9XCJza2luVG9uZVwiIDpjbGFzcz1cInsgJ2Vtb2ppLW1hcnQtc2tpbi1zd2F0Y2gnOiB0cnVlLCAnZW1vamktbWFydC1za2luLXN3YXRjaC1zZWxlY3RlZCc6IHNraW4gPT0gc2tpblRvbmUgfVwiPlxuICAgIDxzcGFuIDpjbGFzcz1cIidlbW9qaS1tYXJ0LXNraW4gZW1vamktbWFydC1za2luLXRvbmUtJyArIHNraW5Ub25lXCIgQGNsaWNrPVwib25DbGljayhza2luVG9uZSlcIj48L3NwYW4+XG4gIDwvc3Bhbj5cbjwvZGl2PlxuXG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHByb3BzOiB7XG4gICAgc2tpbjoge1xuICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICB9XG4gIH0sXG4gIGRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9wZW5lZDogZmFsc2VcbiAgICB9XG4gIH0sXG4gIG1ldGhvZHM6IHtcbiAgICBvbkNsaWNrKHNraW5Ub25lKSB7XG4gICAgICBpZiAodGhpcy5vcGVuZWQpIHtcbiAgICAgICAgaWYgKHNraW5Ub25lICE9IHRoaXMuc2tpbikge1xuICAgICAgICAgIHRoaXMuJGVtaXQoJ2NoYW5nZScsIHNraW5Ub25lKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMub3BlbmVkID0gIXRoaXMub3BlbmVkXG4gICAgfVxuICB9XG59XG5cbjwvc2NyaXB0PlxuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBBbmNob3JzIH0gZnJvbSAnLi9hbmNob3JzLnZ1ZSdcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2F0ZWdvcnkgfSBmcm9tICcuL2NhdGVnb3J5LnZ1ZSdcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUHJldmlldyB9IGZyb20gJy4vcHJldmlldy52dWUnXG5leHBvcnQgeyBkZWZhdWx0IGFzIFNlYXJjaCB9IGZyb20gJy4vc2VhcmNoLnZ1ZSdcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2tpbnMgfSBmcm9tICcuL3NraW5zLnZ1ZSdcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRW1vamkgfSBmcm9tICcuL0Vtb2ppLnZ1ZSdcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGlja2VyIH0gZnJvbSAnLi9QaWNrZXIudnVlJ1xuIiwiaW1wb3J0IHN0b3JlIGZyb20gJy4vdXRpbHMvc3RvcmUnXG5pbXBvcnQgeyB1bmNvbXByZXNzIH0gZnJvbSAnLi91dGlscy9kYXRhJ1xuaW1wb3J0IGZyZXF1ZW50bHkgZnJvbSAnLi91dGlscy9mcmVxdWVudGx5J1xuXG5leHBvcnQge1xuICBQaWNrZXIsXG4gIEVtb2ppLFxuICBBbmNob3JzLFxuICBQcmV2aWV3LFxuICBTZWFyY2gsXG4gIENhdGVnb3J5LFxuICBTa2lucyxcbn0gZnJvbSAnLi9jb21wb25lbnRzJ1xuXG5leHBvcnQgeyBFbW9qaUluZGV4LCBFbW9qaVZpZXcsIEVtb2ppRGF0YSwgc2FuaXRpemUgfSBmcm9tICcuL3V0aWxzL2Vtb2ppLWRhdGEnXG5leHBvcnQgeyB1bmNvbXByZXNzLCBzdG9yZSwgZnJlcXVlbnRseSB9XG4iLCJjb25zdCBfU3RyaW5nID0gU3RyaW5nXG5cbmV4cG9ydCBkZWZhdWx0IF9TdHJpbmcuZnJvbUNvZGVQb2ludCB8fFxuICBmdW5jdGlvbiBzdHJpbmdGcm9tQ29kZVBvaW50KCkge1xuICAgIHZhciBNQVhfU0laRSA9IDB4NDAwMFxuICAgIHZhciBjb2RlVW5pdHMgPSBbXVxuICAgIHZhciBoaWdoU3Vycm9nYXRlXG4gICAgdmFyIGxvd1N1cnJvZ2F0ZVxuICAgIHZhciBpbmRleCA9IC0xXG4gICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGhcbiAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgcmV0dXJuICcnXG4gICAgfVxuICAgIHZhciByZXN1bHQgPSAnJ1xuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICB2YXIgY29kZVBvaW50ID0gTnVtYmVyKGFyZ3VtZW50c1tpbmRleF0pXG4gICAgICBpZiAoXG4gICAgICAgICFpc0Zpbml0ZShjb2RlUG9pbnQpIHx8IC8vIGBOYU5gLCBgK0luZmluaXR5YCwgb3IgYC1JbmZpbml0eWBcbiAgICAgICAgY29kZVBvaW50IDwgMCB8fCAvLyBub3QgYSB2YWxpZCBVbmljb2RlIGNvZGUgcG9pbnRcbiAgICAgICAgY29kZVBvaW50ID4gMHgxMGZmZmYgfHwgLy8gbm90IGEgdmFsaWQgVW5pY29kZSBjb2RlIHBvaW50XG4gICAgICAgIE1hdGguZmxvb3IoY29kZVBvaW50KSAhPSBjb2RlUG9pbnQgLy8gbm90IGFuIGludGVnZXJcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBSYW5nZUVycm9yKCdJbnZhbGlkIGNvZGUgcG9pbnQ6ICcgKyBjb2RlUG9pbnQpXG4gICAgICB9XG4gICAgICBpZiAoY29kZVBvaW50IDw9IDB4ZmZmZikge1xuICAgICAgICAvLyBCTVAgY29kZSBwb2ludFxuICAgICAgICBjb2RlVW5pdHMucHVzaChjb2RlUG9pbnQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBBc3RyYWwgY29kZSBwb2ludDsgc3BsaXQgaW4gc3Vycm9nYXRlIGhhbHZlc1xuICAgICAgICAvLyBodHRwOi8vbWF0aGlhc2J5bmVucy5iZS9ub3Rlcy9qYXZhc2NyaXB0LWVuY29kaW5nI3N1cnJvZ2F0ZS1mb3JtdWxhZVxuICAgICAgICBjb2RlUG9pbnQgLT0gMHgxMDAwMFxuICAgICAgICBoaWdoU3Vycm9nYXRlID0gKGNvZGVQb2ludCA+PiAxMCkgKyAweGQ4MDBcbiAgICAgICAgbG93U3Vycm9nYXRlID0gKGNvZGVQb2ludCAlIDB4NDAwKSArIDB4ZGMwMFxuICAgICAgICBjb2RlVW5pdHMucHVzaChoaWdoU3Vycm9nYXRlLCBsb3dTdXJyb2dhdGUpXG4gICAgICB9XG4gICAgICBpZiAoaW5kZXggKyAxID09PSBsZW5ndGggfHwgY29kZVVuaXRzLmxlbmd0aCA+IE1BWF9TSVpFKSB7XG4gICAgICAgIHJlc3VsdCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIGNvZGVVbml0cylcbiAgICAgICAgY29kZVVuaXRzLmxlbmd0aCA9IDBcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG4iLCJjb25zdCBTVkdzID0ge1xuICBhY3Rpdml0eTogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIj48cGF0aCBkPVwiTTEyIDBDNS4zNzMgMCAwIDUuMzcyIDAgMTJjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMiA2LjYyOCAwIDEyLTUuMzczIDEyLTEyIDAtNi42MjgtNS4zNzItMTItMTItMTJtOS45NDkgMTFIMTcuMDVjLjIyNC0yLjUyNyAxLjIzMi00Ljc3MyAxLjk2OC02LjExM0E5Ljk2NiA5Ljk2NiAwIDAgMSAyMS45NDkgMTFNMTMgMTFWMi4wNTFhOS45NDUgOS45NDUgMCAwIDEgNC40MzIgMS41NjRjLS44NTggMS40OTEtMi4xNTYgNC4yMi0yLjM5MiA3LjM4NUgxM3ptLTIgMEg4Ljk2MWMtLjIzOC0zLjE2NS0xLjUzNi01Ljg5NC0yLjM5My03LjM4NUE5Ljk1IDkuOTUgMCAwIDEgMTEgMi4wNTFWMTF6bTAgMnY4Ljk0OWE5LjkzNyA5LjkzNyAwIDAgMS00LjQzMi0xLjU2NGMuODU3LTEuNDkyIDIuMTU1LTQuMjIxIDIuMzkzLTcuMzg1SDExem00LjA0IDBjLjIzNiAzLjE2NCAxLjUzNCA1Ljg5MyAyLjM5MiA3LjM4NUE5LjkyIDkuOTIgMCAwIDEgMTMgMjEuOTQ5VjEzaDIuMDR6TTQuOTgyIDQuODg3QzUuNzE4IDYuMjI3IDYuNzI2IDguNDczIDYuOTUxIDExaC00LjlhOS45NzcgOS45NzcgMCAwIDEgMi45MzEtNi4xMTNNMi4wNTEgMTNoNC45Yy0uMjI2IDIuNTI3LTEuMjMzIDQuNzcxLTEuOTY5IDYuMTEzQTkuOTcyIDkuOTcyIDAgMCAxIDIuMDUxIDEzbTE2Ljk2NyA2LjExM2MtLjczNS0xLjM0Mi0xLjc0NC0zLjU4Ni0xLjk2OC02LjExM2g0Ljg5OWE5Ljk2MSA5Ljk2MSAwIDAgMS0yLjkzMSA2LjExM1wiLz48L3N2Zz5gLFxuXG4gIGN1c3RvbTogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIj48ZyB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMi4wMDAwMDAsIDEuMDAwMDAwKVwiPjxyZWN0IGlkPVwiUmVjdGFuZ2xlXCIgeD1cIjhcIiB5PVwiMFwiIHdpZHRoPVwiM1wiIGhlaWdodD1cIjIxXCIgcng9XCIxLjVcIj48L3JlY3Q+PHJlY3QgaWQ9XCJSZWN0YW5nbGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoOS44NDMsIDEwLjU0OSkgcm90YXRlKDYwKSB0cmFuc2xhdGUoLTkuODQzLCAtMTAuNTQ5KSBcIiB4PVwiOC4zNDNcIiB5PVwiMC4wNDlcIiB3aWR0aD1cIjNcIiBoZWlnaHQ9XCIyMVwiIHJ4PVwiMS41XCI+PC9yZWN0PjxyZWN0IGlkPVwiUmVjdGFuZ2xlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDkuODQzLCAxMC41NDkpIHJvdGF0ZSgtNjApIHRyYW5zbGF0ZSgtOS44NDMsIC0xMC41NDkpIFwiIHg9XCI4LjM0M1wiIHk9XCIwLjA0OVwiIHdpZHRoPVwiM1wiIGhlaWdodD1cIjIxXCIgcng9XCIxLjVcIj48L3JlY3Q+PC9nPjwvc3ZnPmAsXG5cbiAgZmxhZ3M6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCI+PHBhdGggZD1cIk0wIDBsNi4wODQgMjRIOEwxLjkxNiAwek0yMSA1aC00bC0xLTRINGwzIDEyaDNsMSA0aDEzTDIxIDV6TTYuNTYzIDNoNy44NzVsMiA4SDguNTYzbC0yLTh6bTguODMyIDEwbC0yLjg1NiAxLjkwNEwxMi4wNjMgMTNoMy4zMzJ6TTE5IDEzbC0xLjUtNmgxLjkzOGwyIDhIMTZsMy0yelwiLz48L3N2Zz5gLFxuXG4gIGZvb2RzOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjxwYXRoIGQ9XCJNMTcgNC45NzhjLTEuODM4IDAtMi44NzYuMzk2LTMuNjguOTM0LjUxMy0xLjE3MiAxLjc2OC0yLjkzNCA0LjY4LTIuOTM0YTEgMSAwIDAgMCAwLTJjLTIuOTIxIDAtNC42MjkgMS4zNjUtNS41NDcgMi41MTItLjA2NC4wNzgtLjExOS4xNjItLjE4LjI0NEMxMS43MyAxLjgzOCAxMC43OTguMDIzIDkuMjA3LjAyMyA4LjU3OS4wMjIgNy44NS4zMDYgNyAuOTc4IDUuMDI3IDIuNTQgNS4zMjkgMy45MDIgNi40OTIgNC45OTkgMy42MDkgNS4yMjIgMCA3LjM1MiAwIDEyLjk2OWMwIDQuNTgyIDQuOTYxIDExLjAwOSA5IDExLjAwOSAxLjk3NSAwIDIuMzcxLS40ODYgMy0xIC42MjkuNTE0IDEuMDI1IDEgMyAxIDQuMDM5IDAgOS02LjQxOCA5LTExIDAtNS45NTMtNC4wNTUtOC03LThNOC4yNDIgMi41NDZjLjY0MS0uNTA4Ljk0My0uNTIzLjk2NS0uNTIzLjQyNi4xNjkuOTc1IDEuNDA1IDEuMzU3IDMuMDU1LTEuNTI3LS42MjktMi43NDEtMS4zNTItMi45OC0xLjg0Ni4wNTktLjExMi4yNDEtLjM1Ni42NTgtLjY4Nk0xNSAyMS45NzhjLTEuMDggMC0xLjIxLS4xMDktMS41NTktLjQwMmwtLjE3Ni0uMTQ2Yy0uMzY3LS4zMDItLjgxNi0uNDUyLTEuMjY2LS40NTJzLS44OTguMTUtMS4yNjYuNDUybC0uMTc2LjE0NmMtLjM0Ny4yOTItLjQ3Ny40MDItMS41NTcuNDAyLTIuODEzIDAtNy01LjM4OS03LTkuMDA5IDAtNS44MjMgNC40ODgtNS45OTEgNS01Ljk5MSAxLjkzOSAwIDIuNDg0LjQ3MSAzLjM4NyAxLjI1MWwuMzIzLjI3NmExLjk5NSAxLjk5NSAwIDAgMCAyLjU4IDBsLjMyMy0uMjc2Yy45MDItLjc4IDEuNDQ3LTEuMjUxIDMuMzg3LTEuMjUxLjUxMiAwIDUgLjE2OCA1IDYgMCAzLjYxNy00LjE4NyA5LTcgOVwiLz48L3N2Zz5gLFxuXG4gIG5hdHVyZTogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIj48cGF0aCBkPVwiTTE1LjUgOGExLjUgMS41IDAgMSAwIC4wMDEgMy4wMDFBMS41IDEuNSAwIDAgMCAxNS41IDhNOC41IDhhMS41IDEuNSAwIDEgMCAuMDAxIDMuMDAxQTEuNSAxLjUgMCAwIDAgOC41IDhcIi8+PHBhdGggZD1cIk0xOC45MzMgMGgtLjAyN2MtLjk3IDAtMi4xMzguNzg3LTMuMDE4IDEuNDk3LTEuMjc0LS4zNzQtMi42MTItLjUxLTMuODg3LS41MS0xLjI4NSAwLTIuNjE2LjEzMy0zLjg3NC41MTdDNy4yNDUuNzkgNi4wNjkgMCA1LjA5MyAwaC0uMDI3QzMuMzUyIDAgLjA3IDIuNjcuMDAyIDcuMDI2Yy0uMDM5IDIuNDc5LjI3NiA0LjIzOCAxLjA0IDUuMDEzLjI1NC4yNTguODgyLjY3NyAxLjI5NS44ODIuMTkxIDMuMTc3LjkyMiA1LjIzOCAyLjUzNiA2LjM4Ljg5Ny42MzcgMi4xODcuOTQ5IDMuMiAxLjEwMkM4LjA0IDIwLjYgOCAyMC43OTUgOCAyMWMwIDEuNzczIDIuMzUgMyA0IDMgMS42NDggMCA0LTEuMjI3IDQtMyAwLS4yMDEtLjAzOC0uMzkzLS4wNzItLjU4NiAyLjU3My0uMzg1IDUuNDM1LTEuODc3IDUuOTI1LTcuNTg3LjM5Ni0uMjIuODg3LS41NjggMS4xMDQtLjc4OC43NjMtLjc3NCAxLjA3OS0yLjUzNCAxLjA0LTUuMDEzQzIzLjkyOSAyLjY3IDIwLjY0NiAwIDE4LjkzMyAwTTMuMjIzIDkuMTM1Yy0uMjM3LjI4MS0uODM3IDEuMTU1LS44ODQgMS4yMzgtLjE1LS40MS0uMzY4LTEuMzQ5LS4zMzctMy4yOTEuMDUxLTMuMjgxIDIuNDc4LTQuOTcyIDMuMDkxLTUuMDMxLjI1Ni4wMTUuNzMxLjI3IDEuMjY1LjY0Ni0xLjExIDEuMTcxLTIuMjc1IDIuOTE1LTIuMzUyIDUuMTI1LS4xMzMuNTQ2LS4zOTguODU4LS43ODMgMS4zMTNNMTIgMjJjLS45MDEgMC0xLjk1NC0uNjkzLTItMSAwLS42NTQuNDc1LTEuMjM2IDEtMS42MDJWMjBhMSAxIDAgMSAwIDIgMHYtLjYwMmMuNTI0LjM2NSAxIC45NDcgMSAxLjYwMi0uMDQ2LjMwNy0xLjA5OSAxLTIgMW0zLTMuNDh2LjAyYTQuNzUyIDQuNzUyIDAgMCAwLTEuMjYyLTEuMDJjMS4wOTItLjUxNiAyLjIzOS0xLjMzNCAyLjIzOS0yLjIxNyAwLTEuODQyLTEuNzgxLTIuMTk1LTMuOTc3LTIuMTk1LTIuMTk2IDAtMy45NzguMzU0LTMuOTc4IDIuMTk1IDAgLjg4MyAxLjE0OCAxLjcwMSAyLjIzOCAyLjIxN0E0LjggNC44IDAgMCAwIDkgMTguNTM5di0uMDI1Yy0xLS4wNzYtMi4xODItLjI4MS0yLjk3My0uODQyLTEuMzAxLS45Mi0xLjgzOC0zLjA0NS0xLjg1My02LjQ3OGwuMDIzLS4wNDFjLjQ5Ni0uODI2IDEuNDktMS40NSAxLjgwNC0zLjEwMiAwLTIuMDQ3IDEuMzU3LTMuNjMxIDIuMzYyLTQuNTIyQzkuMzcgMy4xNzggMTAuNTU1IDMgMTEuOTQ4IDNjMS40NDcgMCAyLjY4NS4xOTIgMy43MzMuNTcgMSAuOSAyLjMxNiAyLjQ2NSAyLjMxNiA0LjQ4LjMxMyAxLjY1MSAxLjMwNyAyLjI3NSAxLjgwMyAzLjEwMi4wMzUuMDU4LjA2OC4xMTcuMTAyLjE3OC0uMDU5IDUuOTY3LTEuOTQ5IDcuMDEtNC45MDIgNy4xOW02LjYyOC04LjIwMmMtLjAzNy0uMDY1LS4wNzQtLjEzLS4xMTMtLjE5NWE3LjU4NyA3LjU4NyAwIDAgMC0uNzM5LS45ODdjLS4zODUtLjQ1NS0uNjQ4LS43NjgtLjc4Mi0xLjMxMy0uMDc2LTIuMjA5LTEuMjQxLTMuOTU0LTIuMzUzLTUuMTI0LjUzMS0uMzc2IDEuMDA0LS42MyAxLjI2MS0uNjQ3LjYzNi4wNzEgMy4wNDQgMS43NjQgMy4wOTYgNS4wMzEuMDI3IDEuODEtLjM0NyAzLjIxOC0uMzcgMy4yMzVcIi8+PC9zdmc+YCxcblxuICBvYmplY3RzOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjxwYXRoIGQ9XCJNMTIgMGE5IDkgMCAwIDAtNSAxNi40ODJWMjFzMi4wMzUgMyA1IDMgNS0zIDUtM3YtNC41MThBOSA5IDAgMCAwIDEyIDB6bTAgMmMzLjg2IDAgNyAzLjE0MSA3IDdzLTMuMTQgNy03IDctNy0zLjE0MS03LTcgMy4xNC03IDctN3pNOSAxNy40NzdjLjk0LjMzMiAxLjk0Ni41MjMgMyAuNTIzczIuMDYtLjE5IDMtLjUyM3YuODM0Yy0uOTEuNDM2LTEuOTI1LjY4OS0zIC42ODlhNi45MjQgNi45MjQgMCAwIDEtMy0uNjl2LS44MzN6bS4yMzYgMy4wN0E4Ljg1NCA4Ljg1NCAwIDAgMCAxMiAyMWMuOTY1IDAgMS44ODgtLjE2NyAyLjc1OC0uNDUxQzE0LjE1NSAyMS4xNzMgMTMuMTUzIDIyIDEyIDIyYy0xLjEwMiAwLTIuMTE3LS43ODktMi43NjQtMS40NTN6XCIvPjxwYXRoIGQ9XCJNMTQuNzQ1IDEyLjQ0OWgtLjAwNGMtLjg1Mi0uMDI0LTEuMTg4LS44NTgtMS41NzctMS44MjQtLjQyMS0xLjA2MS0uNzAzLTEuNTYxLTEuMTgyLTEuNTY2aC0uMDA5Yy0uNDgxIDAtLjc4My40OTctMS4yMzUgMS41MzctLjQzNi45ODItLjgwMSAxLjgxMS0xLjYzNiAxLjc5MWwtLjI3Ni0uMDQzYy0uNTY1LS4xNzEtLjg1My0uNjkxLTEuMjg0LTEuNzk0LS4xMjUtLjMxMy0uMjAyLS42MzItLjI3LS45MTMtLjA1MS0uMjEzLS4xMjctLjUzLS4xOTUtLjYzNEM3LjA2NyA5LjAwNCA3LjAzOSA5IDYuOTkgOUExIDEgMCAwIDEgNyA3aC4wMWMxLjY2Mi4wMTcgMi4wMTUgMS4zNzMgMi4xOTggMi4xMzQuNDg2LS45ODEgMS4zMDQtMi4wNTggMi43OTctMi4wNzUgMS41MzEuMDE4IDIuMjggMS4xNTMgMi43MzEgMi4xNDFsLjAwMi0uMDA4QzE0Ljk0NCA4LjQyNCAxNS4zMjcgNyAxNi45NzkgN2guMDMyQTEgMSAwIDEgMSAxNyA5aC0uMDExYy0uMTQ5LjA3Ni0uMjU2LjQ3NC0uMzE5LjcwOWE2LjQ4NCA2LjQ4NCAwIDAgMS0uMzExLjk1MWMtLjQyOS45NzMtLjc5IDEuNzg5LTEuNjE0IDEuNzg5XCIvPjwvc3ZnPmAsXG5cbiAgc21pbGV5czogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIj48cGF0aCBkPVwiTTEyIDBDNS4zNzMgMCAwIDUuMzczIDAgMTJzNS4zNzMgMTIgMTIgMTIgMTItNS4zNzMgMTItMTJTMTguNjI3IDAgMTIgMG0wIDIyQzYuNDg2IDIyIDIgMTcuNTE0IDIgMTJTNi40ODYgMiAxMiAyczEwIDQuNDg2IDEwIDEwLTQuNDg2IDEwLTEwIDEwXCIvPjxwYXRoIGQ9XCJNOCA3YTIgMiAwIDEgMC0uMDAxIDMuOTk5QTIgMiAwIDAgMCA4IDdNMTYgN2EyIDIgMCAxIDAtLjAwMSAzLjk5OUEyIDIgMCAwIDAgMTYgN00xNS4yMzIgMTVjLS42OTMgMS4xOTUtMS44NyAyLTMuMzQ5IDItMS40NzcgMC0yLjY1NS0uODA1LTMuMzQ3LTJIMTVtMy0ySDZhNiA2IDAgMSAwIDEyIDBcIi8+PC9zdmc+YCxcblxuICBwZW9wbGU6IGA8c3ZnIHhtbG5zOnN2Zz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgaGVpZ2h0PVwiMjRcIiB3aWR0aD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPiA8cGF0aCBpZD1cInBhdGgzODE0XCIgZD1cIm0gMy4zNTkxMDg5LDIxLjE3NzI2IGMgMC4xNzIwMzYsMC4wOTM4NSA0LjI2NTk5NCwyLjI5ODM3IDguODE0NDQ1MSwyLjI5ODM3IDQuOTI3NzY3LDAgOC42NzA4OTQsLTIuMjExODgzIDguODI3ODIsLTIuMzA2MDE5IDAuMTEzMDc5LC0wLjA2Nzg1IDAuMTgyMjY4LC0wLjE5MDA1MSAwLjE4MjI2NywtMC4zMjE5MjMgMCwtMy4wMzExOSAtMC45Mjk0OTQsLTUuODA0OTM2IC0yLjYxNzE5NiwtNy44MTA3MTIgLTEuMTgwNjAzLC0xLjQwMzEzNCAtMi42NjE5MTgsLTIuMzU5NTE2IC00LjI5NTY5OSwtMi43OTk3OTEgNC42OTkxMTgsLTIuMjM2MjU4IDMuMTAyMzA2LC05LjI4NjE3MTYyIC0yLjA5NzE5MSwtOS4yODYxNzE2MiAtNS4xOTk0OTc4LDAgLTYuNzk2MzEwMyw3LjA0OTkxMzYyIC0yLjA5NzE5Miw5LjI4NjE3MTYyIC0xLjYzMzc4MjEsMC40NDAyNzUgLTMuMTE1MDk3MSwxLjM5Njc5OCAtNC4yOTU2OTkxLDIuNzk5NzkxIC0xLjY4NzcwMywyLjAwNTc3NiAtMi42MTcxOTYsNC43Nzk1MjIgLTIuNjE3MTk2LDcuODEwNzEyIDEuMmUtNiwwLjEzNzM3OCAwLjA3NTAzOSwwLjI2Mzc4NSAwLjE5NTY0MSwwLjMyOTU3MiB6IE0gOC4wNDM5MzE5LDUuODMwODc4MyBDIDguMDQzOTMwOSwyLjE1MTUyMSAxMi40OTIxMDcsMC4zMDk1NTgxMSAxNS4wOTM0OTEsMi45MTA5NDExIDE3LjY5NDg3NCw1LjUxMjMyNDEgMTUuODUyOTExLDkuOTYwNTAwNiAxMi4xNzM1NTQsOS45NjA1IDkuODkzODk5MSw5Ljk1NzkxMzUgOC4wNDY1MTg2LDguMTEwNTMzMiA4LjA0MzkzMTksNS44MzA4NzgzIFogbSAtMS42ODg3ODIsNy42ODk0OTc3IGMgMS41MjQ1MzUsLTEuODExNDQ5IDMuNTkwNjYwMSwtMi44MDkwMzUgNS44MTg0MDQxLC0yLjgwOTAzNSAyLjIyNzc0NCwwIDQuMjkzODY5LDAuOTk3NTg2IDUuODE4NDA0LDIuODA5MDM1IDEuNTMzNjM5LDEuODIyNTcxIDIuMzk1OTMyLDQuMzM5ODU4IDIuNDM5MTUyLDcuMTA4MzAxIC0wLjgwMzM1MiwwLjQzNDg3NyAtNC4xNDE2MzYsMi4wOTYxMTIgLTguMjU3NTU2LDIuMDk2MTEyIC0zLjgwNjI5MjEsMCAtNy4zOTEwODYxLC0xLjY3MTA0MyAtOC4yNTczNjgxLC0yLjEwNDk4MSAwLjA0NTA1LC0yLjc2NTAxNyAwLjkwNjk2OCwtNS4yNzg3ODUgMi40Mzg5NjQsLTcuMDk5NDMyIHpcIiAvPiA8cGF0aCBpZD1cInBhdGgzODE2XCIgZD1cIk0gMTIuMTczODI4IDAuMzg4NjcxODggQyA5LjMxOTg1MTMgMC4zODg2NzE4NyA3LjM3NzA5ODggMi4zNjcyMjg1IDYuODY1MjM0NCA0LjYzMDg1OTQgQyA2LjQyMTg2MDggNi41OTE2MDE1IDcuMTE1MzU2MiA4Ljc2NzYxMTcgOC45NjQ4NDM4IDEwLjEyNjk1MyBDIDcuNjE0MTI0OSAxMC42NzczNzYgNi4zNTUwNTExIDExLjQ4MDk0NCA1LjM0OTYwOTQgMTIuNjc1NzgxIEMgMy41NjI5MzE3IDE0Ljc5OTE4NSAyLjYwMTU2MjUgMTcuNzAxNDc1IDIuNjAxNTYyNSAyMC44NDc2NTYgQyAyLjYwMTU2NTQgMjEuMTg5ODYxIDIuNzg5NDI3NiAyMS41MDgwMDIgMy4wODk4NDM4IDIxLjY3MTg3NSBDIDMuMzA0NDA2OCAyMS43ODg5MjUgNy40NDM2MjM5IDI0LjAzOTA2MiAxMi4xNzM4MjggMjQuMDM5MDYyIEMgMTcuMjY5OTE4IDI0LjAzOTA2MiAyMS4wODM1NjggMjEuNzc2Nzg2IDIxLjI5MTAxNiAyMS42NTIzNDQgQyAyMS41NzI4MSAyMS40ODMyNjYgMjEuNzQ2MDk3IDIxLjE3NjI4MiAyMS43NDYwOTQgMjAuODQ3NjU2IEMgMjEuNzQ2MDk0IDE3LjcwMTQ3NSAyMC43ODI3NyAxNC43OTkxODUgMTguOTk2MDk0IDEyLjY3NTc4MSBDIDE3Ljk5MDQ1NSAxMS40ODA1OTEgMTYuNzMzODE4IDEwLjY3NTM2MiAxNS4zODI4MTIgMTAuMTI1IEMgMTcuMjMxMTMyIDguNzY1NTU1MiAxNy45MjU2NzUgNi41OTEwNzAxIDE3LjQ4MjQyMiA0LjYzMDg1OTQgQyAxNi45NzA1NTcgMi4zNjcyMjg1IDE1LjAyNzgwNSAwLjM4ODY3MTg4IDEyLjE3MzgyOCAwLjM4ODY3MTg4IHogTSAxMi43OTI5NjkgMi4zMDA3ODEyIEMgMTMuNDY2MjUzIDIuNDE2MTc5MiAxNC4xMjUxMTMgMi43MzgzOTQxIDE0LjY5NTMxMiAzLjMwODU5MzggQyAxNS44MzU3MTIgNC40NDg5OTMxIDE1Ljk4NTYwNCA1Ljk0NzM1NDkgMTUuNDY4NzUgNy4xOTUzMTI1IEMgMTQuOTUxODk2IDguNDQzMjcwMSAxMy43ODY4MjggOS4zOTg0Mzc4IDEyLjE3MzgyOCA5LjM5ODQzNzUgQyAxMC4xOTc3MTkgOS4zOTYxOTU0IDguNjA3NzExIDcuODA2MTg3IDguNjA1NDY4OCA1LjgzMDA3ODEgQyA4LjYwNTQ2ODMgNC4yMTcwNzg1IDkuNTYwNjM2MiAzLjA1MjAxMDIgMTAuODA4NTk0IDIuNTM1MTU2MiBDIDExLjQzMjU3MyAyLjI3NjcyOTMgMTIuMTE5Njg1IDIuMTg1MzgzMyAxMi43OTI5NjkgMi4zMDA3ODEyIHogTSAxMi4xNzM4MjggMTEuMjczNDM4IEMgMTQuMjMzNjQ3IDExLjI3MzQzOCAxNi4xMzM2NzQgMTIuMTg1MDg0IDE3LjU2MjUgMTMuODgyODEyIEMgMTguOTMwNjkgMTUuNTA4NzY1IDE5LjY5ODM0NyAxNy43NzY5NjkgMTkuODA4NTk0IDIwLjI4MzIwMyBDIDE4LjgwNzM5NSAyMC44MDAyMzUgMTUuODg2MTU3IDIyLjE2MjEwOSAxMi4xNzM4MjggMjIuMTYyMTA5IEMgOC43NjE0NjMyIDIyLjE2MjEwOSA1LjYyNDU3NTQgMjAuNzg3MDY5IDQuNTM5MDYyNSAyMC4yNjU2MjUgQyA0LjY1MjU4OTYgMTcuNzY2NzE3IDUuNDIwMzMxNSAxNS41MDQ3OTEgNi43ODUxNTYyIDEzLjg4MjgxMiBDIDguMjEzOTgyNyAxMi4xODUwODQgMTAuMTE0MDEgMTEuMjczNDM4IDEyLjE3MzgyOCAxMS4yNzM0MzggeiBcIiAvPiA8L3N2Zz5gLFxuXG4gIHBsYWNlczogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIj48cGF0aCBkPVwiTTYuNSAxMkM1LjEyMiAxMiA0IDEzLjEyMSA0IDE0LjVTNS4xMjIgMTcgNi41IDE3IDkgMTUuODc5IDkgMTQuNSA3Ljg3OCAxMiA2LjUgMTJtMCAzYy0uMjc1IDAtLjUtLjIyNS0uNS0uNXMuMjI1LS41LjUtLjUuNS4yMjUuNS41LS4yMjUuNS0uNS41TTE3LjUgMTJjLTEuMzc4IDAtMi41IDEuMTIxLTIuNSAyLjVzMS4xMjIgMi41IDIuNSAyLjUgMi41LTEuMTIxIDIuNS0yLjUtMS4xMjItMi41LTIuNS0yLjVtMCAzYy0uMjc1IDAtLjUtLjIyNS0uNS0uNXMuMjI1LS41LjUtLjUuNS4yMjUuNS41LS4yMjUuNS0uNS41XCIvPjxwYXRoIGQ9XCJNMjIuNDgyIDkuNDk0bC0xLjAzOS0uMzQ2TDIxLjQgOWguNmMuNTUyIDAgMS0uNDM5IDEtLjk5MiAwLS4wMDYtLjAwMy0uMDA4LS4wMDMtLjAwOEgyM2MwLTEtLjg4OS0yLTEuOTg0LTJoLS42NDJsLS43MzEtMS43MTdDMTkuMjYyIDMuMDEyIDE4LjA5MSAyIDE2Ljc2NCAySDcuMjM2QzUuOTA5IDIgNC43MzggMy4wMTIgNC4zNTcgNC4yODNMMy42MjYgNmgtLjY0MkMxLjg4OSA2IDEgNyAxIDhoLjAwM1MxIDguMDAyIDEgOC4wMDhDMSA4LjU2MSAxLjQ0OCA5IDIgOWguNmwtLjA0My4xNDgtMS4wMzkuMzQ2YTIuMDAxIDIuMDAxIDAgMCAwLTEuMzU5IDIuMDk3bC43NTEgNy41MDhhMSAxIDAgMCAwIC45OTQuOTAxSDN2MWMwIDEuMTAzLjg5NiAyIDIgMmgyYzEuMTA0IDAgMi0uODk3IDItMnYtMWg2djFjMCAxLjEwMy44OTYgMiAyIDJoMmMxLjEwNCAwIDItLjg5NyAyLTJ2LTFoMS4wOTZhLjk5OS45OTkgMCAwIDAgLjk5NC0uOTAxbC43NTEtNy41MDhhMi4wMDEgMi4wMDEgMCAwIDAtMS4zNTktMi4wOTdNNi4yNzMgNC44NTdDNi40MDIgNC40MyA2Ljc4OCA0IDcuMjM2IDRoOS41MjdjLjQ0OCAwIC44MzQuNDMuOTYzLjg1N0wxOS4zMTMgOUg0LjY4OGwxLjU4NS00LjE0M3pNNyAyMUg1di0xaDJ2MXptMTIgMGgtMnYtMWgydjF6bTIuMTg5LTNIMi44MTFsLS42NjItNi42MDdMMyAxMWgxOGwuODUyLjM5M0wyMS4xODkgMTh6XCIvPjwvc3ZnPmAsXG5cbiAgcmVjZW50OiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjxwYXRoIGQ9XCJNMTMgNGgtMmwtLjAwMSA3SDl2MmgydjJoMnYtMmg0di0yaC00elwiLz48cGF0aCBkPVwiTTEyIDBDNS4zNzMgMCAwIDUuMzczIDAgMTJzNS4zNzMgMTIgMTIgMTIgMTItNS4zNzMgMTItMTJTMTguNjI3IDAgMTIgMG0wIDIyQzYuNDg2IDIyIDIgMTcuNTE0IDIgMTJTNi40ODYgMiAxMiAyczEwIDQuNDg2IDEwIDEwLTQuNDg2IDEwLTEwIDEwXCIvPjwvc3ZnPmAsXG5cbiAgc3ltYm9sczogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIj48cGF0aCBkPVwiTTAgMGgxMXYySDB6TTQgMTFoM1Y2aDRWNEgwdjJoNHpNMTUuNSAxN2MxLjM4MSAwIDIuNS0xLjExNiAyLjUtMi40OTNzLTEuMTE5LTIuNDkzLTIuNS0yLjQ5M1MxMyAxMy4xMyAxMyAxNC41MDcgMTQuMTE5IDE3IDE1LjUgMTdtMC0yLjk4NmMuMjc2IDAgLjUuMjIyLjUuNDkzIDAgLjI3Mi0uMjI0LjQ5My0uNS40OTNzLS41LS4yMjEtLjUtLjQ5My4yMjQtLjQ5My41LS40OTNNMjEuNSAxOS4wMTRjLTEuMzgxIDAtMi41IDEuMTE2LTIuNSAyLjQ5M1MyMC4xMTkgMjQgMjEuNSAyNHMyLjUtMS4xMTYgMi41LTIuNDkzLTEuMTE5LTIuNDkzLTIuNS0yLjQ5M20wIDIuOTg2YS40OTcuNDk3IDAgMCAxLS41LS40OTNjMC0uMjcxLjIyNC0uNDkzLjUtLjQ5M3MuNS4yMjIuNS40OTNhLjQ5Ny40OTcgMCAwIDEtLjUuNDkzTTIyIDEzbC05IDkgMS41MTMgMS41IDguOTktOS4wMDl6TTE3IDExYzIuMjA5IDAgNC0xLjExOSA0LTIuNVYycy45ODUtLjE2MSAxLjQ5OC45NDlDMjMuMDEgNC4wNTUgMjMgNiAyMyA2czEtMS4xMTkgMS0zLjEzNUMyNC0uMDIgMjEgMCAyMSAwaC0ydjYuMzQ3QTUuODUzIDUuODUzIDAgMCAwIDE3IDZjLTIuMjA5IDAtNCAxLjExOS00IDIuNXMxLjc5MSAyLjUgNCAyLjVNMTAuMjk3IDIwLjQ4MmwtMS40NzUtMS41ODVhNDcuNTQgNDcuNTQgMCAwIDEtMS40NDIgMS4xMjljLS4zMDctLjI4OC0uOTg5LTEuMDE2LTIuMDQ1LTIuMTgzLjkwMi0uODM2IDEuNDc5LTEuNDY2IDEuNzI5LTEuODkycy4zNzYtLjg3MS4zNzYtMS4zMzZjMC0uNTkyLS4yNzMtMS4xNzgtLjgxOC0xLjc1OS0uNTQ2LS41ODEtMS4zMjktLjg3MS0yLjM0OS0uODcxLTEuMDA4IDAtMS43OS4yOTMtMi4zNDQuODc5LS41NTYuNTg3LS44MzIgMS4xODEtLjgzMiAxLjc4NCAwIC44MTMuNDE5IDEuNzQ4IDEuMjU2IDIuODA1LS44NDcuNjE0LTEuNDQ0IDEuMjA4LTEuNzk0IDEuNzg0YTMuNDY1IDMuNDY1IDAgMCAwLS41MjMgMS44MzNjMCAuODU3LjMwOCAxLjU2LjkyNCAyLjEwNy42MTYuNTQ5IDEuNDIzLjgyMyAyLjQyLjgyMyAxLjE3MyAwIDIuNDQ0LS4zNzkgMy44MTMtMS4xMzdMOC4yMzUgMjRoMi44MTlsLTIuMDktMi4zODMgMS4zMzMtMS4xMzV6bS02LjczNi02LjM4OWExLjAyIDEuMDIgMCAwIDEgLjczLS4yODZjLjMxIDAgLjU1OS4wODUuNzQ3LjI1NGEuODQ5Ljg0OSAwIDAgMSAuMjgzLjY1OWMwIC41MTgtLjQxOSAxLjExMi0xLjI1NyAxLjc4NC0uNTM2LS42NTEtLjgwNS0xLjIzMS0uODA1LTEuNzQyYS45MDEuOTAxIDAgMCAxIC4zMDItLjY2OU0zLjc0IDIyYy0uNDI3IDAtLjc3OC0uMTE2LTEuMDU3LS4zNDktLjI3OS0uMjMyLS40MTgtLjQ4Ny0uNDE4LS43NjYgMC0uNTk0LjUwOS0xLjI4OCAxLjUyNy0yLjA4My45NjggMS4xMzQgMS43MTcgMS45NDYgMi4yNDggMi40MzgtLjkyMS41MDctMS42ODYuNzYtMi4zLjc2XCIvPjwvc3ZnPmAsXG59XG5cbmV4cG9ydCBkZWZhdWx0IFNWR3NcbiIsImNvbnN0IG1hcHBpbmcgPSB7XG4gIG5hbWU6ICdhJyxcbiAgdW5pZmllZDogJ2InLFxuICBub25fcXVhbGlmaWVkOiAnYycsXG4gIGhhc19pbWdfYXBwbGU6ICdkJyxcbiAgaGFzX2ltZ19nb29nbGU6ICdlJyxcbiAgaGFzX2ltZ190d2l0dGVyOiAnZicsXG4gIGhhc19pbWdfZmFjZWJvb2s6ICdoJyxcbiAga2V5d29yZHM6ICdqJyxcbiAgc2hlZXQ6ICdrJyxcbiAgZW1vdGljb25zOiAnbCcsXG4gIHRleHQ6ICdtJyxcbiAgc2hvcnRfbmFtZXM6ICduJyxcbiAgYWRkZWRfaW46ICdvJyxcbn1cblxuY29uc3QgYnVpbGRTZWFyY2ggPSAoZW1vamkpID0+IHtcbiAgY29uc3Qgc2VhcmNoID0gW11cblxuICB2YXIgYWRkVG9TZWFyY2ggPSAoc3RyaW5ncywgc3BsaXQpID0+IHtcbiAgICBpZiAoIXN0cmluZ3MpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIDsoQXJyYXkuaXNBcnJheShzdHJpbmdzKSA/IHN0cmluZ3MgOiBbc3RyaW5nc10pLmZvckVhY2goKHN0cmluZykgPT4ge1xuICAgICAgOyhzcGxpdCA/IHN0cmluZy5zcGxpdCgvWy18X3xcXHNdKy8pIDogW3N0cmluZ10pLmZvckVhY2goKHMpID0+IHtcbiAgICAgICAgcyA9IHMudG9Mb3dlckNhc2UoKVxuXG4gICAgICAgIGlmIChzZWFyY2guaW5kZXhPZihzKSA9PSAtMSkge1xuICAgICAgICAgIHNlYXJjaC5wdXNoKHMpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIGFkZFRvU2VhcmNoKGVtb2ppLnNob3J0X25hbWVzLCB0cnVlKVxuICBhZGRUb1NlYXJjaChlbW9qaS5uYW1lLCB0cnVlKVxuICBhZGRUb1NlYXJjaChlbW9qaS5rZXl3b3JkcywgZmFsc2UpXG4gIGFkZFRvU2VhcmNoKGVtb2ppLmVtb3RpY29ucywgZmFsc2UpXG5cbiAgcmV0dXJuIHNlYXJjaC5qb2luKCcsJylcbn1cblxuZnVuY3Rpb24gZGVlcEZyZWV6ZShvYmplY3QpIHtcbiAgLy8gUmV0cmlldmUgdGhlIHByb3BlcnR5IG5hbWVzIGRlZmluZWQgb24gb2JqZWN0XG4gIHZhciBwcm9wTmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QpXG5cbiAgLy8gRnJlZXplIHByb3BlcnRpZXMgYmVmb3JlIGZyZWV6aW5nIHNlbGZcbiAgZm9yIChsZXQgbmFtZSBvZiBwcm9wTmFtZXMpIHtcbiAgICBsZXQgdmFsdWUgPSBvYmplY3RbbmFtZV1cbiAgICBvYmplY3RbbmFtZV0gPVxuICAgICAgdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyA/IGRlZXBGcmVlemUodmFsdWUpIDogdmFsdWVcbiAgfVxuICByZXR1cm4gT2JqZWN0LmZyZWV6ZShvYmplY3QpXG59XG5cbmNvbnN0IHVuY29tcHJlc3MgPSAoZGF0YSkgPT4ge1xuICBpZiAoIWRhdGEuY29tcHJlc3NlZCkge1xuICAgIHJldHVybiBkYXRhXG4gIH1cbiAgZGF0YS5jb21wcmVzc2VkID0gZmFsc2VcblxuICBmb3IgKGxldCBpZCBpbiBkYXRhLmVtb2ppcykge1xuICAgIGxldCBlbW9qaSA9IGRhdGEuZW1vamlzW2lkXVxuXG4gICAgZm9yIChsZXQga2V5IGluIG1hcHBpbmcpIHtcbiAgICAgIGVtb2ppW2tleV0gPSBlbW9qaVttYXBwaW5nW2tleV1dXG4gICAgICBkZWxldGUgZW1vamlbbWFwcGluZ1trZXldXVxuICAgIH1cblxuICAgIGlmICghZW1vamkuc2hvcnRfbmFtZXMpIGVtb2ppLnNob3J0X25hbWVzID0gW11cbiAgICBlbW9qaS5zaG9ydF9uYW1lcy51bnNoaWZ0KGlkKVxuXG4gICAgZW1vamkuc2hlZXRfeCA9IGVtb2ppLnNoZWV0WzBdXG4gICAgZW1vamkuc2hlZXRfeSA9IGVtb2ppLnNoZWV0WzFdXG4gICAgZGVsZXRlIGVtb2ppLnNoZWV0XG5cbiAgICBpZiAoIWVtb2ppLnRleHQpIGVtb2ppLnRleHQgPSAnJ1xuXG4gICAgaWYgKCFlbW9qaS5hZGRlZF9pbikgZW1vamkuYWRkZWRfaW4gPSA2XG4gICAgZW1vamkuYWRkZWRfaW4gPSBlbW9qaS5hZGRlZF9pbi50b0ZpeGVkKDEpXG5cbiAgICBlbW9qaS5zZWFyY2ggPSBidWlsZFNlYXJjaChlbW9qaSlcbiAgfVxuICBkYXRhID0gZGVlcEZyZWV6ZShkYXRhKVxuICByZXR1cm4gZGF0YVxufVxuXG5leHBvcnQgeyBidWlsZFNlYXJjaCwgdW5jb21wcmVzcyB9XG4iLCJpbXBvcnQgeyBpbnRlcnNlY3QsIHVuaWZpZWRUb05hdGl2ZSB9IGZyb20gJy4vaW5kZXgnXG5pbXBvcnQgeyB1bmNvbXByZXNzLCBidWlsZFNlYXJjaCB9IGZyb20gJy4vZGF0YSdcbmltcG9ydCBmcmVxdWVudGx5IGZyb20gJy4vZnJlcXVlbnRseSdcblxuY29uc3QgU0hFRVRfQ09MVU1OUyA9IDYxXG5jb25zdCBDT0xPTlNfUkVHRVggPSAvXig/OlxcOihbXlxcOl0rKVxcOikoPzpcXDpza2luLXRvbmUtKFxcZClcXDopPyQvXG4vLyBTa2luIHRvbmVzXG5jb25zdCBTS0lOUyA9IFsnMUYzRkEnLCAnMUYzRkInLCAnMUYzRkMnLCAnMUYzRkQnLCAnMUYzRkUnLCAnMUYzRkYnXVxuXG4vKipcbiAqIEVtb2ppIGRhdGEgc3RydWN0dXJlOlxuICoge1xuICogICAgXCJjb21wcmVzc2VkXCI6IGZhbHNlLFxuICogICAgXCJhbGlhc2VzXCI6IHtcbiAqICAgICAgY29sbGlzaW9uOiBcImJvb21cIlxuICogICAgICBjb29raW5nOiBcImZyaWVkX2VnZ1wiXG4gKiAgICAgIGVudmVsb3BlOiBcImVtYWlsXCJcbiAqICAgICAgZmFjZV93aXRoX2Zpbmdlcl9jb3ZlcmluZ19jbG9zZWRfbGlwczogXCJzaHVzaGluZ19mYWNlXCJcbiAqICAgICAgLi4uXG4gKiAgICB9LFxuICogICAgXCJjYXRlZ29yaWVzXCI6IFsge1xuICogICAgICBpZDogXCJwZW9wbGVcIixcbiAqICAgICAgbmFtZTogXCJTbWlsZXlzICYgRW1vdGlvblwiLFxuICogICAgICBlbW9qaXM6IFsgXCJncmlubmluZ1wiLCBcImdyaW5cIiwgXCJqb3lcIiwgLi4uIF1cbiAqICAgIH0sIHtcbiAqICAgICAgaWQ6IFwibmF0dXJlXCIsXG4gKiAgICAgIG5hbWU6IFwiQW5pbWFscyAmIE5hdHVyZVwiLFxuICogICAgICBlbW9qaXM6IFsgXCJtb25rZXlfZmFjZVwiLCBcIm1vbmV5XCIsIFwiZ29yaWxsYVwiLCAuLi4gXVxuICogICAgfSxcbiAqICAgIC4uLlxuICogICAgXSxcbiAqICAgIFwiZW1vamlzXCI6IFtcbiAqICAgICAgc21pbGV5OiB7XG4gKiAgICAgICAgYWRkZWRfaW46IFwiNi4wXCIsXG4gKiAgICAgICAgZW1vdGljb25zOiBbXCI9KVwiLCBcIj0tKVwiXSxcbiAqICAgICAgICBoYXNfaW1nX2FwcGxlOiB0cnVlLFxuICogICAgICAgIGhhc19pbWdfZmFjZWJvb2s6IHRydWUsXG4gKiAgICAgICAgaGFzX2ltZ19nb29nbGU6IHRydWUsXG4gKiAgICAgICAgaGFzX2ltZ190d2l0dGVyOiB0cnVlLFxuICogICAgICAgIGtleXdvcmRzOiBbXCJmYWNlXCIsIFwiaGFwcHlcIiwgXCJqb3lcIiwgXCJoYWhhXCIsIFwiOkRcIiwgXCI6KVwiLCBcInNtaWxlXCIsIFwiZnVubnlcIl0sXG4gKiAgICAgICAgbmFtZTogXCJTbWlsaW5nIEZhY2Ugd2l0aCBPcGVuIE1vdXRoXCIsXG4gKiAgICAgICAgbm9uX3F1YWxpZmllZDogdW5kZWZpbmVkLFxuICogICAgICAgIHNlYXJjaDogXCJzbWlsZXksc21pbGluZyxmYWNlLHdpdGgsb3Blbixtb3V0aCxoYXBweSxqb3ksaGFoYSw6ZCw6KSxzbWlsZSxmdW5ueSw9KSw9LSlcIixcbiAqICAgICAgICBzaGVldF94OiAzMCxcbiAqICAgICAgICBzaGVldF95OiAyNyxcbiAqICAgICAgICBzaG9ydF9uYW1lczogW1wic21pbGV5XCJdLFxuICogICAgICAgIHRleHQ6IFwiOilcIixcbiAqICAgICAgICB1bmlmaWVkOiBcIjFGNjAzXCIsXG4gKiAgICAgIH0sIHtcbiAqICAgICAgKzE6IHsgICAgLy8gZW1vamkgd2l0aCBza2luX3ZhcmlhdGlvbnNcbiAqICAgICAgICAgIC4uLiwgLy8gYWxsIHRoZSByZWd1bGFyIGZpZWxkcyBhcmUgcHJlc2VudFxuICogICAgICAgICAgbmFtZTogXCJUaHVtYnMgVXAgU2lnblwiLFxuICogICAgICAgICAgc2hvcnRfbmFtZXM6ICgyKSBbXCIrMVwiLCBcInRodW1ic3VwXCJdLFxuICogICAgICAgICAgc2tpbl92YXJpYXRpb25zOiB7XG4gKiAgICAgICAgICAgIDFGM0ZCOiAgICAgICAgICAgICAvLyBlYWNoIHZhcmlhdGlvbiBoYXMgYWRkaXRpb25hbCBzZXQgb2YgZmllbGRzOlxuICogICAgICAgICAgICAgIGFkZGVkX2luOiBcIjguMFwiLFxuICogICAgICAgICAgICAgIGhhc19pbWdfYXBwbGU6IHRydWUsXG4gKiAgICAgICAgICAgICAgaGFzX2ltZ19mYWNlYm9vazogdHJ1ZSxcbiAqICAgICAgICAgICAgICBoYXNfaW1nX2dvb2dsZTogdHJ1ZSxcbiAqICAgICAgICAgICAgICBoYXNfaW1nX3R3aXR0ZXI6IHRydWUsXG4gKiAgICAgICAgICAgICAgaW1hZ2U6IFwiMWY0NGQtMWYzZmIucG5nXCIsXG4gKiAgICAgICAgICAgICAgbm9uX3F1YWxpZmllZDogbnVsbCxcbiAqICAgICAgICAgICAgICBzaGVldF94OiAxNCxcbiAqICAgICAgICAgICAgICBzaGVldF95OiA1MCxcbiAqICAgICAgICAgICAgICB1bmlmaWVkOiBcIjFGNDRELTFGM0ZCXCIsXG4gKiAgICAgICAgICAgIDFGM0ZCOiB74oCmfSxcbiAqICAgICAgICAgICAgMUYzRkM6IHvigKZ9LFxuICogICAgICAgICAgICAxRjNGRDoge+KApn0sXG4gKiAgICAgICAgICAgIDFGM0ZFOiB74oCmfSxcbiAqICAgICAgICAgICAgMUYzRkY6IHvigKZ9XG4gKiAgICAgICAgICAgIH0sXG4gKiAgICAgICAgICAuLi5cbiAqICAgICAgfSxcbiAqICAgICAgYTogeyAgLy8gZW1vamkgd2l0aCBub25fcXVhbGlmaWVkIGZpZWxkIHNldFxuICogICAgICAgIGFkZGVkX2luOiBcIjYuMFwiLFxuICogICAgICAgIGVtb3RpY29uczogdW5kZWZpbmVkLFxuICogICAgICAgIGhhc19pbWdfYXBwbGU6IHRydWUsXG4gKiAgICAgICAgLi4uXG4gKiAgICAgICAgbm9uX3F1YWxpZmllZDogXCIxRjE3MFwiLFxuICogICAgICAgIHVuaWZpZWQ6IFwiMUYxNzAtRkUwRlwiLFxuICogICAgIH0sXG4gKiAgICAgLi4uXG4gKiAgIF1cbiAqIH1cbiAqL1xuXG4vKipcbiAqIFdyYXBzIHJhdyBqYXNvbiBlbW9qaSBkYXRhLCBzZXJ2ZXMgYXMgZGF0YSBzb3VyY2UgZm9yXG4gKiBlbW9qaSBwaWNrZXIgY29tcG9uZW50cy5cbiAqXG4gKiBVc2FnZTpcbiAqXG4gKiAgIGltcG9ydCBkYXRhIGZyb20gJy4uL2RhdGEvYWxsLmpzb24nXG4gKiAgIGxldCBpbmRleCA9IG5ldyBFbW9qaUluZGV4KGRhdGEpXG4gKlxuICovXG5leHBvcnQgY2xhc3MgRW1vamlJbmRleCB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3Rvci5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGRhdGEgLSBSYXcganNvbiBkYXRhLCBzZWUgdGhlIHN0cnVjdHVyZSBhYm92ZS5cbiAgICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnMgLSBhZGRpdGlvbmFsIG9wdGlvbnMsIGFzIGFuIG9iamVjdDpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gZW1vamlzVG9TaG93RmlsdGVyIC0gb3B0aW9uYWwsIGZ1bmN0aW9uIHRvIGZpbHRlciBvdXRcbiAgICogICBzb21lIGVtb2ppcywgZnVuY3Rpb24oZW1vamkpIHsgcmV0dXJuIHRydWV8ZmFsc2UgfVxuICAgKiAgIHdoZXJlIGBlbW9qaWAgaXMgYW4gcmF3IGVtb2ppIG9iamVjdCwgc2VlIGRhdGEuZW1vamlzIGFib3ZlLlxuICAgKiBAcGFyYW0ge0FycmF5fSBpbmNsdWRlIC0gb3B0aW9uYWwsIGEgbGlzdCBvZiBjYXRlZ29yeSBpZHMgdG8gaW5jbHVkZS5cbiAgICogQHBhcmFtIHtBcnJheX0gZXhjbHVkZSAtIG9wdGlvbmFsLCBhIGxpc3Qgb2YgY2F0ZWdvcnkgaWRzIHRvIGV4Y2x1ZGUuXG4gICAqIEBwYXJhbSB7QXJyYXl9IGN1c3RvbSAtIG9wdGlvbmFsLCBhIGxpc3QgY3VzdG9tIGVtb2ppcywgZWFjaCBlbW9qaSBpc1xuICAgKiAgIGFuIG9iamVjdCwgc2VlIGRhdGEuZW1vamlzIGFib3ZlIGZvciBleGFtcGxlcy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIGRhdGEsXG4gICAge1xuICAgICAgZW1vamlzVG9TaG93RmlsdGVyLFxuICAgICAgaW5jbHVkZSxcbiAgICAgIGV4Y2x1ZGUsXG4gICAgICBjdXN0b20sXG4gICAgICByZWNlbnQsXG4gICAgICByZWNlbnRMZW5ndGggPSAyMCxcbiAgICB9ID0ge30sXG4gICkge1xuICAgIHRoaXMuX2RhdGEgPSB1bmNvbXByZXNzKGRhdGEpXG4gICAgLy8gQ2FsbGJhY2sgdG8gZXhjbHVkZSBzcGVjaWZpYyBlbW9qaXNcbiAgICB0aGlzLl9lbW9qaXNGaWx0ZXIgPSBlbW9qaXNUb1Nob3dGaWx0ZXIgfHwgbnVsbFxuICAgIC8vIENhdGVnb3JpZXMgdG8gaW5jbHVkZSAvIGV4Y2x1ZGVcbiAgICB0aGlzLl9pbmNsdWRlID0gaW5jbHVkZSB8fCBudWxsXG4gICAgdGhpcy5fZXhjbHVkZSA9IGV4Y2x1ZGUgfHwgbnVsbFxuICAgIC8vIEN1c3RvbSBlbW9qaXNcbiAgICB0aGlzLl9jdXN0b20gPSBjdXN0b20gfHwgW11cbiAgICAvLyBSZWNlbnQgZW1vamlzXG4gICAgLy8gVE9ETzogbWFrZSBwYXJhbWV0ZXIgY29uZmlndXJhYmxlXG4gICAgdGhpcy5fcmVjZW50ID0gcmVjZW50IHx8IGZyZXF1ZW50bHkuZ2V0KHJlY2VudExlbmd0aClcblxuICAgIHRoaXMuX2Vtb2ppcyA9IHt9XG4gICAgdGhpcy5fbmF0aXZlRW1vamlzID0ge31cbiAgICB0aGlzLl9lbW90aWNvbnMgPSB7fVxuXG4gICAgdGhpcy5fY2F0ZWdvcmllcyA9IFtdXG4gICAgdGhpcy5fcmVjZW50Q2F0ZWdvcnkgPSB7IGlkOiAncmVjZW50JywgbmFtZTogJ1JlY2VudCcsIGVtb2ppczogW10gfVxuICAgIHRoaXMuX2N1c3RvbUNhdGVnb3J5ID0geyBpZDogJ2N1c3RvbScsIG5hbWU6ICdDdXN0b20nLCBlbW9qaXM6IFtdIH1cbiAgICB0aGlzLl9zZWFyY2hJbmRleCA9IHt9XG4gICAgdGhpcy5idWlsZEluZGV4KClcbiAgICBPYmplY3QuZnJlZXplKHRoaXMpXG4gIH1cblxuICBidWlsZEluZGV4KCkge1xuICAgIGxldCBhbGxDYXRlZ29yaWVzID0gdGhpcy5fZGF0YS5jYXRlZ29yaWVzXG5cbiAgICBpZiAodGhpcy5faW5jbHVkZSkge1xuICAgICAgLy8gUmVtb3ZlIGNhdGVnb3JpZXMgdGhhdCBhcmUgbm90IGluIHRoZSBpbmNsdWRlIGxpc3QuXG4gICAgICBhbGxDYXRlZ29yaWVzID0gYWxsQ2F0ZWdvcmllcy5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luY2x1ZGUuaW5jbHVkZXMoaXRlbS5pZClcbiAgICAgIH0pXG4gICAgICAvLyBTb3J0IGNhdGVnb3JpZXMgYWNjb3JkaW5nIHRvIHRoZSBpbmNsdWRlIGxpc3QuXG4gICAgICBhbGxDYXRlZ29yaWVzID0gYWxsQ2F0ZWdvcmllcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgIGNvbnN0IGluZGV4QSA9IHRoaXMuX2luY2x1ZGUuaW5kZXhPZihhLmlkKVxuICAgICAgICBjb25zdCBpbmRleEIgPSB0aGlzLl9pbmNsdWRlLmluZGV4T2YoYi5pZClcbiAgICAgICAgaWYgKGluZGV4QSA8IGluZGV4Qikge1xuICAgICAgICAgIHJldHVybiAtMVxuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRleEEgPiBpbmRleEIpIHtcbiAgICAgICAgICByZXR1cm4gMVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAwXG4gICAgICB9KVxuICAgIH1cblxuICAgIGFsbENhdGVnb3JpZXMuZm9yRWFjaCgoY2F0ZWdvcnlEYXRhKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuaXNDYXRlZ29yeU5lZWRlZChjYXRlZ29yeURhdGEuaWQpKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgbGV0IGNhdGVnb3J5ID0ge1xuICAgICAgICBpZDogY2F0ZWdvcnlEYXRhLmlkLFxuICAgICAgICBuYW1lOiBjYXRlZ29yeURhdGEubmFtZSxcbiAgICAgICAgZW1vamlzOiBbXSxcbiAgICAgIH1cbiAgICAgIGNhdGVnb3J5RGF0YS5lbW9qaXMuZm9yRWFjaCgoZW1vamlJZCkgPT4ge1xuICAgICAgICBsZXQgZW1vamkgPSB0aGlzLmFkZEVtb2ppKGVtb2ppSWQpXG4gICAgICAgIGlmIChlbW9qaSkge1xuICAgICAgICAgIGNhdGVnb3J5LmVtb2ppcy5wdXNoKGVtb2ppKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgaWYgKGNhdGVnb3J5LmVtb2ppcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5fY2F0ZWdvcmllcy5wdXNoKGNhdGVnb3J5KVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBpZiAodGhpcy5pc0NhdGVnb3J5TmVlZGVkKCdjdXN0b20nKSkge1xuICAgICAgaWYgKHRoaXMuX2N1c3RvbS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAobGV0IGN1c3RvbUVtb2ppIG9mIHRoaXMuX2N1c3RvbSkge1xuICAgICAgICAgIHRoaXMuYWRkQ3VzdG9tRW1vamkoY3VzdG9tRW1vamkpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9jdXN0b21DYXRlZ29yeS5lbW9qaXMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuX2NhdGVnb3JpZXMucHVzaCh0aGlzLl9jdXN0b21DYXRlZ29yeSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0NhdGVnb3J5TmVlZGVkKCdyZWNlbnQnKSkge1xuICAgICAgaWYgKHRoaXMuX3JlY2VudC5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5fcmVjZW50Lm1hcCgoaWQpID0+IHtcbiAgICAgICAgICBmb3IgKGxldCBjdXN0b21FbW9qaSBvZiB0aGlzLl9jdXN0b21DYXRlZ29yeS5lbW9qaXMpIHtcbiAgICAgICAgICAgIGlmIChjdXN0b21FbW9qaS5pZCA9PT0gaWQpIHtcbiAgICAgICAgICAgICAgdGhpcy5fcmVjZW50Q2F0ZWdvcnkuZW1vamlzLnB1c2goY3VzdG9tRW1vamkpXG4gICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodGhpcy5oYXNFbW9qaShpZCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlY2VudENhdGVnb3J5LmVtb2ppcy5wdXNoKHRoaXMuZW1vamkoaWQpKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIC8vIEFkZCByZWNlbnQgY2F0ZWdvcnkgdG8gdGhlIHRvcFxuICAgICAgaWYgKHRoaXMuX3JlY2VudENhdGVnb3J5LmVtb2ppcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5fY2F0ZWdvcmllcy51bnNoaWZ0KHRoaXMuX3JlY2VudENhdGVnb3J5KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIHRoZSBlbW9qaSBmcm9tIHRoZSBzdHJpbmdcbiAgICovXG4gIGZpbmRFbW9qaShlbW9qaSwgc2tpbikge1xuICAgIC8vIDEuIFBhcnNlIGFzIDplbW9qaV9uYW1lOnNraW4tdG9uZS14eDpcbiAgICBsZXQgbWF0Y2hlcyA9IGVtb2ppLm1hdGNoKENPTE9OU19SRUdFWClcblxuICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICBlbW9qaSA9IG1hdGNoZXNbMV1cbiAgICAgIGlmIChtYXRjaGVzWzJdKSB7XG4gICAgICAgIHNraW4gPSBwYXJzZUludChtYXRjaGVzWzJdLCAxMClcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAyLiBDaGVjayBpZiB0aGUgc3BlY2lmaWVkIGVtb2ppIGlzIGFuIGFsaWFzXG4gICAgaWYgKHRoaXMuX2RhdGEuYWxpYXNlcy5oYXNPd25Qcm9wZXJ0eShlbW9qaSkpIHtcbiAgICAgIGVtb2ppID0gdGhpcy5fZGF0YS5hbGlhc2VzW2Vtb2ppXVxuICAgIH1cblxuICAgIC8vIDMuIENoZWNrIGlmIHdlIGhhdmUgdGhlIHNwZWNpZmllZCBlbW9qaVxuICAgIGlmICh0aGlzLl9lbW9qaXMuaGFzT3duUHJvcGVydHkoZW1vamkpKSB7XG4gICAgICBsZXQgZW1vamlPYmplY3QgPSB0aGlzLl9lbW9qaXNbZW1vamldXG4gICAgICBpZiAoc2tpbikge1xuICAgICAgICByZXR1cm4gZW1vamlPYmplY3QuZ2V0U2tpbihza2luKVxuICAgICAgfVxuICAgICAgcmV0dXJuIGVtb2ppT2JqZWN0XG4gICAgfVxuXG4gICAgLy8gNC4gQ2hlY2sgaWYgd2UgaGF2ZSB0aGUgc3BlY2lmaWVkIG5hdGl2ZSBlbW9qaVxuICAgIGlmICh0aGlzLl9uYXRpdmVFbW9qaXMuaGFzT3duUHJvcGVydHkoZW1vamkpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fbmF0aXZlRW1vamlzW2Vtb2ppXVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY2F0ZWdvcmllcygpIHtcbiAgICByZXR1cm4gdGhpcy5fY2F0ZWdvcmllc1xuICB9XG5cbiAgZW1vamkoZW1vamlJZCkge1xuICAgIGlmICh0aGlzLl9kYXRhLmFsaWFzZXMuaGFzT3duUHJvcGVydHkoZW1vamlJZCkpIHtcbiAgICAgIGVtb2ppSWQgPSB0aGlzLl9kYXRhLmFsaWFzZXNbZW1vamlJZF1cbiAgICB9XG4gICAgbGV0IGVtb2ppID0gdGhpcy5fZW1vamlzW2Vtb2ppSWRdXG4gICAgaWYgKCFlbW9qaSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW4gbm90IGZpbmQgZW1vamkgYnkgaWQ6ICcgKyBlbW9qaUlkKVxuICAgIH1cbiAgICByZXR1cm4gZW1vamlcbiAgfVxuXG4gIGZpcnN0RW1vamkoKSB7XG4gICAgbGV0IGVtb2ppID0gdGhpcy5fZW1vamlzW09iamVjdC5rZXlzKHRoaXMuX2Vtb2ppcylbMF1dXG4gICAgaWYgKCFlbW9qaSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW4gbm90IGdldCBmaXJzdCBlbW9qaScpXG4gICAgfVxuICAgIHJldHVybiBlbW9qaVxuICB9XG5cbiAgaGFzRW1vamkoZW1vamlJZCkge1xuICAgIGlmICh0aGlzLl9kYXRhLmFsaWFzZXMuaGFzT3duUHJvcGVydHkoZW1vamlJZCkpIHtcbiAgICAgIGVtb2ppSWQgPSB0aGlzLl9kYXRhLmFsaWFzZXNbZW1vamlJZF1cbiAgICB9XG4gICAgaWYgKHRoaXMuX2Vtb2ppc1tlbW9qaUlkXSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBuYXRpdmVFbW9qaSh1bmljb2RlRW1vamkpIHtcbiAgICBpZiAodGhpcy5fbmF0aXZlRW1vamlzLmhhc093blByb3BlcnR5KHVuaWNvZGVFbW9qaSkpIHtcbiAgICAgIHJldHVybiB0aGlzLl9uYXRpdmVFbW9qaXNbdW5pY29kZUVtb2ppXVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgc2VhcmNoKHZhbHVlLCBtYXhSZXN1bHRzKSB7XG4gICAgbWF4UmVzdWx0cyB8fCAobWF4UmVzdWx0cyA9IDc1KVxuICAgIGlmICghdmFsdWUubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICBpZiAodmFsdWUgPT0gJy0nIHx8IHZhbHVlID09ICctMScpIHtcbiAgICAgIHJldHVybiBbdGhpcy5lbW9qaSgnLTEnKV1cbiAgICB9XG5cbiAgICBsZXQgdmFsdWVzID0gdmFsdWUudG9Mb3dlckNhc2UoKS5zcGxpdCgvW1xcc3wsfFxcLXxfXSsvKVxuICAgIGxldCBhbGxSZXN1bHRzID0gW11cblxuICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gMikge1xuICAgICAgdmFsdWVzID0gW3ZhbHVlc1swXSwgdmFsdWVzWzFdXVxuICAgIH1cblxuICAgIGFsbFJlc3VsdHMgPSB2YWx1ZXNcbiAgICAgIC5tYXAoKHZhbHVlKSA9PiB7XG4gICAgICAgIC8vIFN0YXJ0IHNlYXJjaGluIGluIHRoZSBnbG9iYWwgbGlzdCBvZiBlbW9qaXNcbiAgICAgICAgbGV0IGVtb2ppcyA9IHRoaXMuX2Vtb2ppc1xuICAgICAgICBsZXQgY3VycmVudEluZGV4ID0gdGhpcy5fc2VhcmNoSW5kZXhcbiAgICAgICAgbGV0IGxlbmd0aCA9IDBcblxuICAgICAgICBmb3IgKGxldCBjaGFySW5kZXggPSAwOyBjaGFySW5kZXggPCB2YWx1ZS5sZW5ndGg7IGNoYXJJbmRleCsrKSB7XG4gICAgICAgICAgY29uc3QgY2hhciA9IHZhbHVlW2NoYXJJbmRleF1cbiAgICAgICAgICBsZW5ndGgrK1xuXG4gICAgICAgICAgY3VycmVudEluZGV4W2NoYXJdIHx8IChjdXJyZW50SW5kZXhbY2hhcl0gPSB7fSlcbiAgICAgICAgICBjdXJyZW50SW5kZXggPSBjdXJyZW50SW5kZXhbY2hhcl1cblxuICAgICAgICAgIGlmICghY3VycmVudEluZGV4LnJlc3VsdHMpIHtcbiAgICAgICAgICAgIGxldCBzY29yZXMgPSB7fVxuICAgICAgICAgICAgY3VycmVudEluZGV4LnJlc3VsdHMgPSBbXVxuICAgICAgICAgICAgY3VycmVudEluZGV4LmVtb2ppcyA9IHt9XG5cbiAgICAgICAgICAgIGZvciAobGV0IGVtb2ppSWQgaW4gZW1vamlzKSB7XG4gICAgICAgICAgICAgIGxldCBlbW9qaSA9IGVtb2ppc1tlbW9qaUlkXVxuICAgICAgICAgICAgICAvLyBzZWFyY2ggaXMgYSBjb21tYS1zZXBhcmF0ZWQgc3RyaW5nIHdpdGggd29yZHMsIHJlbGF0ZWRcbiAgICAgICAgICAgICAgLy8gdG8gdGhlIGVtb2ppLCBmb3IgZXhhbXBsZTpcbiAgICAgICAgICAgICAgLy8gc2VhcmNoOiBcInNtaWxleSxzbWlsaW5nLGZhY2Usam95LGhhaGEsOmQsOiksc21pbGUsZnVubnksPSksPS0pXCIsXG4gICAgICAgICAgICAgIGxldCBzZWFyY2ggPSBlbW9qaS5fZGF0YS5zZWFyY2hcbiAgICAgICAgICAgICAgbGV0IHN1YiA9IHZhbHVlLnN1YnN0cigwLCBsZW5ndGgpXG4gICAgICAgICAgICAgIGxldCBzdWJJbmRleCA9IHNlYXJjaC5pbmRleE9mKHN1YilcbiAgICAgICAgICAgICAgaWYgKHN1YkluZGV4ICE9IC0xKSB7XG4gICAgICAgICAgICAgICAgbGV0IHNjb3JlID0gc3ViSW5kZXggKyAxXG4gICAgICAgICAgICAgICAgaWYgKHN1YiA9PSBlbW9qaUlkKSBzY29yZSA9IDBcblxuICAgICAgICAgICAgICAgIGN1cnJlbnRJbmRleC5yZXN1bHRzLnB1c2goZW1vamkpXG4gICAgICAgICAgICAgICAgY3VycmVudEluZGV4LmVtb2ppc1tlbW9qaUlkXSA9IGVtb2ppXG5cbiAgICAgICAgICAgICAgICBzY29yZXNbZW1vamlJZF0gPSBzY29yZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjdXJyZW50SW5kZXgucmVzdWx0cy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgICAgIHZhciBhU2NvcmUgPSBzY29yZXNbYS5pZF0sXG4gICAgICAgICAgICAgICAgYlNjb3JlID0gc2NvcmVzW2IuaWRdXG4gICAgICAgICAgICAgIHJldHVybiBhU2NvcmUgLSBiU2NvcmVcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gY29udGludWUgc2VhcmNoIGluIHRoZSByZWR1Y2VkIHNldCBvZiBlbW9qaXNcbiAgICAgICAgICBlbW9qaXMgPSBjdXJyZW50SW5kZXguZW1vamlzXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGN1cnJlbnRJbmRleC5yZXN1bHRzXG4gICAgICAgIC8vIFRoZSBcImZpbHRlclwiIGNhbGwgcmVtb3ZlcyB1bmRlZmluZWQgdmFsdWVzIGZyb20gYWxsUmVzdWx0c1xuICAgICAgICAvLyBhcnJheSwgZm9yIGV4YW1wbGUsIGlmIHdlIGhhdmUgXCJ0ZXN0IFwiICh3aXRoIHRyYWlsaW5nIHNwYWNlKSxcbiAgICAgICAgLy8gd2Ugd2lsbCBnZXQgXCJbQXJyYXksIHVuZGVmaW5lZF1cIiBmb3IgYWxsUmVzdWx0cyBhbmQgYWZ0ZXJcbiAgICAgICAgLy8gdGhlIFwiZmlsdGVyXCIgY2FsbCBpdCB3aWxsIHR1cm4gaW50byBcIltBcnJheV1cIlxuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoKGEpID0+IGEpXG5cbiAgICB2YXIgcmVzdWx0cyA9IG51bGxcbiAgICBpZiAoYWxsUmVzdWx0cy5sZW5ndGggPiAxKSB7XG4gICAgICByZXN1bHRzID0gaW50ZXJzZWN0LmFwcGx5KG51bGwsIGFsbFJlc3VsdHMpXG4gICAgfSBlbHNlIGlmIChhbGxSZXN1bHRzLmxlbmd0aCkge1xuICAgICAgcmVzdWx0cyA9IGFsbFJlc3VsdHNbMF1cbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0cyA9IFtdXG4gICAgfVxuICAgIGlmIChyZXN1bHRzICYmIHJlc3VsdHMubGVuZ3RoID4gbWF4UmVzdWx0cykge1xuICAgICAgcmVzdWx0cyA9IHJlc3VsdHMuc2xpY2UoMCwgbWF4UmVzdWx0cylcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdHNcbiAgfVxuXG4gIGFkZEN1c3RvbUVtb2ppKGN1c3RvbUVtb2ppKSB7XG4gICAgbGV0IGVtb2ppRGF0YSA9IE9iamVjdC5hc3NpZ24oe30sIGN1c3RvbUVtb2ppLCB7XG4gICAgICBpZDogY3VzdG9tRW1vamkuc2hvcnRfbmFtZXNbMF0sXG4gICAgICBjdXN0b206IHRydWUsXG4gICAgfSlcbiAgICBpZiAoIWVtb2ppRGF0YS5zZWFyY2gpIHtcbiAgICAgIGVtb2ppRGF0YS5zZWFyY2ggPSBidWlsZFNlYXJjaChlbW9qaURhdGEpXG4gICAgfVxuICAgIGxldCBlbW9qaSA9IG5ldyBFbW9qaURhdGEoZW1vamlEYXRhKVxuICAgIHRoaXMuX2Vtb2ppc1tlbW9qaS5pZF0gPSBlbW9qaVxuICAgIHRoaXMuX2N1c3RvbUNhdGVnb3J5LmVtb2ppcy5wdXNoKGVtb2ppKVxuICAgIHJldHVybiBlbW9qaVxuICB9XG5cbiAgYWRkRW1vamkoZW1vamlJZCkge1xuICAgIC8vIFdlIGV4cGVjdCB0aGUgY29ycmVjdCBlbW9qaSBpZCB0aGF0IGlzIHByZXNlbnQgaW4gdGhlIGVtb2ppcyBkYXRhLlxuICAgIGxldCBkYXRhID0gdGhpcy5fZGF0YS5lbW9qaXNbZW1vamlJZF1cblxuICAgIGlmICghdGhpcy5pc0Vtb2ppTmVlZGVkKGRhdGEpKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICBsZXQgZW1vamkgPSBuZXcgRW1vamlEYXRhKGRhdGEpXG4gICAgdGhpcy5fZW1vamlzW2Vtb2ppSWRdID0gZW1vamlcbiAgICBpZiAoZW1vamkubmF0aXZlKSB7XG4gICAgICB0aGlzLl9uYXRpdmVFbW9qaXNbZW1vamkubmF0aXZlXSA9IGVtb2ppXG4gICAgfVxuICAgIGlmIChlbW9qaS5fc2tpbnMpIHtcbiAgICAgIGZvciAobGV0IGlkeCBpbiBlbW9qaS5fc2tpbnMpIHtcbiAgICAgICAgbGV0IHNraW4gPSBlbW9qaS5fc2tpbnNbaWR4XVxuICAgICAgICBpZiAoc2tpbi5uYXRpdmUpIHtcbiAgICAgICAgICB0aGlzLl9uYXRpdmVFbW9qaXNbc2tpbi5uYXRpdmVdID0gc2tpblxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGVtb2ppLmVtb3RpY29ucykge1xuICAgICAgZW1vamkuZW1vdGljb25zLmZvckVhY2goKGVtb3RpY29uKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9lbW90aWNvbnNbZW1vdGljb25dKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZW1vdGljb25zW2Vtb3RpY29uXSA9IGVtb2ppSWRcbiAgICAgIH0pXG4gICAgfVxuICAgIHJldHVybiBlbW9qaVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHdlIG5lZWQgdG8gaW5jbHVkZSBnaXZlbiBjYXRlZ29yeS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNhdGVnb3J5X2lkIC0gVGhlIGNhdGVnb3J5IGlkLlxuICAgKiBAcmV0dXJuIHtib29sZWFufSAtIFdoZXRoZXIgdG8gaW5jbHVkZSB0aGUgZW1vamkuXG4gICAqL1xuICBpc0NhdGVnb3J5TmVlZGVkKGNhdGVnb3J5X2lkKSB7XG4gICAgbGV0IGlzSW5jbHVkZWQgPVxuICAgICAgdGhpcy5faW5jbHVkZSAmJiB0aGlzLl9pbmNsdWRlLmxlbmd0aFxuICAgICAgICA/IHRoaXMuX2luY2x1ZGUuaW5kZXhPZihjYXRlZ29yeV9pZCkgPiAtMVxuICAgICAgICA6IHRydWVcbiAgICBsZXQgaXNFeGNsdWRlZCA9XG4gICAgICB0aGlzLl9leGNsdWRlICYmIHRoaXMuX2V4Y2x1ZGUubGVuZ3RoXG4gICAgICAgID8gdGhpcy5fZXhjbHVkZS5pbmRleE9mKGNhdGVnb3J5X2lkKSA+IC0xXG4gICAgICAgIDogZmFsc2VcbiAgICBpZiAoIWlzSW5jbHVkZWQgfHwgaXNFeGNsdWRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgd2UgbmVlZCB0byBpbmNsdWRlIGdpdmVuIGVtb2ppLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gZW1vamkgLSBUaGUgcmF3IGVtb2ppIG9iamVjdC5cbiAgICogQHJldHVybiB7Ym9vbGVhbn0gLSBXaGV0aGVyIHRvIGluY2x1ZGUgdGhlIGVtb2ppLlxuICAgKi9cbiAgaXNFbW9qaU5lZWRlZChlbW9qaSkge1xuICAgIGlmICh0aGlzLl9lbW9qaXNGaWx0ZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLl9lbW9qaXNGaWx0ZXIoZW1vamkpXG4gICAgfVxuICAgIHJldHVybiB0cnVlXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVtb2ppRGF0YSB7XG4gIGNvbnN0cnVjdG9yKGRhdGEpIHtcbiAgICB0aGlzLl9kYXRhID0gT2JqZWN0LmFzc2lnbih7fSwgZGF0YSlcbiAgICB0aGlzLl9za2lucyA9IG51bGxcbiAgICBpZiAodGhpcy5fZGF0YS5za2luX3ZhcmlhdGlvbnMpIHtcbiAgICAgIHRoaXMuX3NraW5zID0gW11cbiAgICAgIGZvciAodmFyIHNraW5JZHggaW4gU0tJTlMpIHtcbiAgICAgICAgbGV0IHNraW5LZXkgPSBTS0lOU1tza2luSWR4XVxuICAgICAgICBsZXQgdmFyaWF0aW9uRGF0YSA9IHRoaXMuX2RhdGEuc2tpbl92YXJpYXRpb25zW3NraW5LZXldXG4gICAgICAgIGxldCBza2luRGF0YSA9IE9iamVjdC5hc3NpZ24oe30sIGRhdGEpXG4gICAgICAgIGZvciAobGV0IGsgaW4gdmFyaWF0aW9uRGF0YSkge1xuICAgICAgICAgIHNraW5EYXRhW2tdID0gdmFyaWF0aW9uRGF0YVtrXVxuICAgICAgICB9XG4gICAgICAgIGRlbGV0ZSBza2luRGF0YS5za2luX3ZhcmlhdGlvbnNcbiAgICAgICAgc2tpbkRhdGFbJ3NraW5fdG9uZSddID0gcGFyc2VJbnQoc2tpbklkeCkgKyAxXG4gICAgICAgIHRoaXMuX3NraW5zLnB1c2gobmV3IEVtb2ppRGF0YShza2luRGF0YSkpXG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX3Nhbml0aXplZCA9IHNhbml0aXplKHRoaXMuX2RhdGEpXG4gICAgZm9yIChsZXQga2V5IGluIHRoaXMuX3Nhbml0aXplZCkge1xuICAgICAgdGhpc1trZXldID0gdGhpcy5fc2FuaXRpemVkW2tleV1cbiAgICB9XG4gICAgdGhpcy5zaG9ydF9uYW1lcyA9IHRoaXMuX2RhdGEuc2hvcnRfbmFtZXNcbiAgICB0aGlzLnNob3J0X25hbWUgPSB0aGlzLl9kYXRhLnNob3J0X25hbWVzWzBdXG4gICAgT2JqZWN0LmZyZWV6ZSh0aGlzKVxuICB9XG5cbiAgZ2V0U2tpbihza2luSWR4KSB7XG4gICAgaWYgKHNraW5JZHggJiYgc2tpbklkeCAhPSAnbmF0aXZlJyAmJiB0aGlzLl9za2lucykge1xuICAgICAgcmV0dXJuIHRoaXMuX3NraW5zW3NraW5JZHggLSAxXVxuICAgIH1cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgZ2V0UG9zaXRpb24oKSB7XG4gICAgbGV0IGFkanVzdGVkQ29sdW1ucyA9IFNIRUVUX0NPTFVNTlMgLSAxLFxuICAgICAgeCA9ICsoKDEwMCAvIGFkanVzdGVkQ29sdW1ucykgKiB0aGlzLl9kYXRhLnNoZWV0X3gpLnRvRml4ZWQoMiksXG4gICAgICB5ID0gKygoMTAwIC8gYWRqdXN0ZWRDb2x1bW5zKSAqIHRoaXMuX2RhdGEuc2hlZXRfeSkudG9GaXhlZCgyKVxuICAgIHJldHVybiBgJHt4fSUgJHt5fSVgXG4gIH1cblxuICBhcmlhTGFiZWwoKSB7XG4gICAgcmV0dXJuIFt0aGlzLm5hdGl2ZV0uY29uY2F0KHRoaXMuc2hvcnRfbmFtZXMpLmZpbHRlcihCb29sZWFuKS5qb2luKCcsICcpXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVtb2ppVmlldyB7XG4gIC8qKlxuICAgKiBlbW9qaSAtIEVtb2ppIHRvIGRpc3BsYXlcbiAgICogc2V0IC0gc3RyaW5nLCBlbW9qaSBzZXQgbmFtZVxuICAgKiBuYXRpdmUgLSBib29sZWFuLCB3aGV0aGVyIHRvIHJlbmRlciBuYXRpdmUgZW1vamlcbiAgICogZmFsbGJhY2sgLSBmYWxsYmFjayBmdW5jdGlvbiB0byByZW5kZXIgbWlzc2luZyBlbW9qaSwgb3B0aW9uYWxcbiAgICogZW1vamlUb29sdGlwIC0gd2V0aGVyIHdlIG5lZWQgdG8gc2hvdyB0aGUgZW1vamkgdG9vbHRpcCwgb3B0aW9uYWxcbiAgICogZW1vamlTaXplIC0gZW1vamkgc2l6ZSBpbiBwaXhlbHMsIG9wdGlvbmFsXG4gICAqL1xuICBjb25zdHJ1Y3RvcihlbW9qaSwgc2tpbiwgc2V0LCBuYXRpdmUsIGZhbGxiYWNrLCBlbW9qaVRvb2x0aXAsIGVtb2ppU2l6ZSkge1xuICAgIHRoaXMuX2Vtb2ppID0gZW1vamlcbiAgICB0aGlzLl9uYXRpdmUgPSBuYXRpdmVcbiAgICB0aGlzLl9za2luID0gc2tpblxuICAgIHRoaXMuX3NldCA9IHNldFxuICAgIHRoaXMuX2ZhbGxiYWNrID0gZmFsbGJhY2tcblxuICAgIHRoaXMuY2FuUmVuZGVyID0gdGhpcy5fY2FuUmVuZGVyKClcbiAgICB0aGlzLmNzc0NsYXNzID0gdGhpcy5fY3NzQ2xhc3MoKVxuICAgIHRoaXMuY3NzU3R5bGUgPSB0aGlzLl9jc3NTdHlsZShlbW9qaVNpemUpXG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5fY29udGVudCgpXG4gICAgdGhpcy50aXRsZSA9IGVtb2ppVG9vbHRpcCA9PT0gdHJ1ZSA/IGVtb2ppLnNob3J0X25hbWUgOiBudWxsXG4gICAgdGhpcy5hcmlhTGFiZWwgPSBlbW9qaS5hcmlhTGFiZWwoKVxuXG4gICAgT2JqZWN0LmZyZWV6ZSh0aGlzKVxuICB9XG5cbiAgZ2V0RW1vamkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Vtb2ppLmdldFNraW4odGhpcy5fc2tpbilcbiAgfVxuXG4gIF9jYW5SZW5kZXIoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuX2lzQ3VzdG9tKCkgfHwgdGhpcy5faXNOYXRpdmUoKSB8fCB0aGlzLl9oYXNFbW9qaSgpIHx8IHRoaXMuX2ZhbGxiYWNrXG4gICAgKVxuICB9XG5cbiAgX2Nzc0NsYXNzKCkge1xuICAgIHJldHVybiBbJ2Vtb2ppLXNldC0nICsgdGhpcy5fc2V0LCAnZW1vamktdHlwZS0nICsgdGhpcy5fZW1vamlUeXBlKCldXG4gIH1cblxuICBfY3NzU3R5bGUoZW1vamlTaXplKSB7XG4gICAgbGV0IGNzc1N0eWxlID0ge31cbiAgICBpZiAodGhpcy5faXNDdXN0b20oKSkge1xuICAgICAgY3NzU3R5bGUgPSB7XG4gICAgICAgIGJhY2tncm91bmRJbWFnZTogJ3VybCgnICsgdGhpcy5nZXRFbW9qaSgpLl9kYXRhLmltYWdlVXJsICsgJyknLFxuICAgICAgICBiYWNrZ3JvdW5kU2l6ZTogJzEwMCUnLFxuICAgICAgICB3aWR0aDogZW1vamlTaXplICsgJ3B4JyxcbiAgICAgICAgaGVpZ2h0OiBlbW9qaVNpemUgKyAncHgnLFxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5faGFzRW1vamkoKSAmJiAhdGhpcy5faXNOYXRpdmUoKSkge1xuICAgICAgY3NzU3R5bGUgPSB7XG4gICAgICAgIGJhY2tncm91bmRQb3NpdGlvbjogdGhpcy5nZXRFbW9qaSgpLmdldFBvc2l0aW9uKCksXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChlbW9qaVNpemUpIHtcbiAgICAgIGlmICh0aGlzLl9pc05hdGl2ZSgpKSB7XG4gICAgICAgIC8vIFNldCBmb250LXNpemUgZm9yIG5hdGl2ZSBlbW9qaS5cbiAgICAgICAgY3NzU3R5bGUgPSBPYmplY3QuYXNzaWduKGNzc1N0eWxlLCB7XG4gICAgICAgICAgLy8gZm9udC1zaXplIGlzIHVzZWQgZm9yIG5hdGl2ZSBlbW9qaSB3aGljaCB3ZSBuZWVkXG4gICAgICAgICAgLy8gdG8gc2NhbGUgd2l0aCAwLjk1IGZhY3RvciB0byBoYXZlIHRoZW0gbG9vayBhcHByb3hpbWF0ZWx5XG4gICAgICAgICAgLy8gdGhlIHNhbWUgc2l6ZSBhcyBpbWFnZS1iYXNlZCBlbW9qaS5cbiAgICAgICAgICBmb250U2l6ZTogTWF0aC5yb3VuZChlbW9qaVNpemUgKiAwLjk1ICogMTApIC8gMTAgKyAncHgnLFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2V0IHdpZHRoL2hlaWdodCBmb3IgaW1hZ2UgZW1vamkuXG4gICAgICAgIGNzc1N0eWxlID0gT2JqZWN0LmFzc2lnbihjc3NTdHlsZSwge1xuICAgICAgICAgIHdpZHRoOiBlbW9qaVNpemUgKyAncHgnLFxuICAgICAgICAgIGhlaWdodDogZW1vamlTaXplICsgJ3B4JyxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNzc1N0eWxlXG4gIH1cblxuICBfY29udGVudCgpIHtcbiAgICBpZiAodGhpcy5faXNDdXN0b20oKSkge1xuICAgICAgcmV0dXJuICcnXG4gICAgfVxuICAgIGlmICh0aGlzLl9pc05hdGl2ZSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRFbW9qaSgpLm5hdGl2ZVxuICAgIH1cbiAgICBpZiAodGhpcy5faGFzRW1vamkoKSkge1xuICAgICAgcmV0dXJuICcnXG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9mYWxsYmFjayA/IHRoaXMuX2ZhbGxiYWNrKHRoaXMuZ2V0RW1vamkoKSkgOiBudWxsXG4gIH1cblxuICBfaXNOYXRpdmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX25hdGl2ZVxuICB9XG5cbiAgX2lzQ3VzdG9tKCkge1xuICAgIHJldHVybiB0aGlzLmdldEVtb2ppKCkuY3VzdG9tXG4gIH1cblxuICBfaGFzRW1vamkoKSB7XG4gICAgaWYgKCF0aGlzLmdldEVtb2ppKCkuX2RhdGEpIHtcbiAgICAgIC8vIFJldHVybiBmYWxzZSBpZiB3ZSBoYXZlIG5vIGRhdGEuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgY29uc3QgaGFzSW1hZ2UgPSB0aGlzLmdldEVtb2ppKCkuX2RhdGFbJ2hhc19pbWdfJyArIHRoaXMuX3NldF1cbiAgICBpZiAoaGFzSW1hZ2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gaGFzX2ltZ194eHggaW4gdGhlIGRhdGEsIHdlIGFyZSB3b3JraW5nIHdpdGhcbiAgICAgIC8vIHNwZWNpZmljIGRhdGEgZmlsZSwgbGlrZSBmYWNlYm9vay5qc29uLCBzbyB3ZSBhc3N1bWUgYWxsXG4gICAgICAvLyBlbW9qaXMgYXJlIGF2YWlsYWJsZSAodGhlIDpzZXQgc2V0dGluZyBmb3IgcGlja2VyIHNob3VsZFxuICAgICAgLy8gbWF0Y2ggdGhlIGRhdGEgZmlsZSkuXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICAvLyBPdGhlcndpc2UsIHdlIGFyZSB1c2luZyBhbGwuanNvbiBhbmQgY2FuIHN3aXRjaCBiZXR3ZWVuIGRpZmZlcmVudFxuICAgIC8vIHNldHMgLSBpbiB0aGlzIGNhc2UgdGhlIGBoYXNfaW1nX3tzZXRfbmFtZX1gIGlzIGEgYm9vbGVhbiB0aGF0XG4gICAgLy8gaW5kaWNhdGVzIGlmIHRoZXJlIGlzIHN1Y2ggaW1hZ2Ugb3Igbm90IGZvciBhIGdpdmVuIHNldC5cbiAgICByZXR1cm4gaGFzSW1hZ2VcbiAgfVxuXG4gIF9lbW9qaVR5cGUoKSB7XG4gICAgaWYgKHRoaXMuX2lzQ3VzdG9tKCkpIHtcbiAgICAgIHJldHVybiAnY3VzdG9tJ1xuICAgIH1cbiAgICBpZiAodGhpcy5faXNOYXRpdmUoKSkge1xuICAgICAgcmV0dXJuICduYXRpdmUnXG4gICAgfVxuICAgIGlmICh0aGlzLl9oYXNFbW9qaSgpKSB7XG4gICAgICByZXR1cm4gJ2ltYWdlJ1xuICAgIH1cbiAgICByZXR1cm4gJ2ZhbGxiYWNrJ1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYW5pdGl6ZShlbW9qaSkge1xuICB2YXIge1xuICAgICAgbmFtZSxcbiAgICAgIHNob3J0X25hbWVzLFxuICAgICAgc2tpbl90b25lLFxuICAgICAgc2tpbl92YXJpYXRpb25zLFxuICAgICAgZW1vdGljb25zLFxuICAgICAgdW5pZmllZCxcbiAgICAgIGN1c3RvbSxcbiAgICAgIGltYWdlVXJsLFxuICAgIH0gPSBlbW9qaSxcbiAgICBpZCA9IGVtb2ppLmlkIHx8IHNob3J0X25hbWVzWzBdLFxuICAgIGNvbG9ucyA9IGA6JHtpZH06YFxuXG4gIGlmIChjdXN0b20pIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQsXG4gICAgICBuYW1lLFxuICAgICAgY29sb25zLFxuICAgICAgZW1vdGljb25zLFxuICAgICAgY3VzdG9tLFxuICAgICAgaW1hZ2VVcmwsXG4gICAgfVxuICB9XG5cbiAgaWYgKHNraW5fdG9uZSkge1xuICAgIGNvbG9ucyArPSBgOnNraW4tdG9uZS0ke3NraW5fdG9uZX06YFxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBpZCxcbiAgICBuYW1lLFxuICAgIGNvbG9ucyxcbiAgICBlbW90aWNvbnMsXG4gICAgdW5pZmllZDogdW5pZmllZC50b0xvd2VyQ2FzZSgpLFxuICAgIHNraW46IHNraW5fdG9uZSB8fCAoc2tpbl92YXJpYXRpb25zID8gMSA6IG51bGwpLFxuICAgIG5hdGl2ZTogdW5pZmllZFRvTmF0aXZlKHVuaWZpZWQpLFxuICB9XG59XG4iLCJpbXBvcnQgc3RvcmUgZnJvbSAnLi9zdG9yZSdcblxuY29uc3QgREVGQVVMVFMgPSBbXG4gICcrMScsXG4gICdncmlubmluZycsXG4gICdraXNzaW5nX2hlYXJ0JyxcbiAgJ2hlYXJ0X2V5ZXMnLFxuICAnbGF1Z2hpbmcnLFxuICAnc3R1Y2tfb3V0X3Rvbmd1ZV93aW5raW5nX2V5ZScsXG4gICdzd2VhdF9zbWlsZScsXG4gICdqb3knLFxuICAnc2NyZWFtJyxcbiAgJ2Rpc2FwcG9pbnRlZCcsXG4gICd1bmFtdXNlZCcsXG4gICd3ZWFyeScsXG4gICdzb2InLFxuICAnc3VuZ2xhc3NlcycsXG4gICdoZWFydCcsXG4gICdoYW5rZXknLFxuXVxuXG5sZXQgZnJlcXVlbnRseSwgaW5pdGlhbGl6ZWRcbmxldCBkZWZhdWx0cyA9IHt9XG5cbmZ1bmN0aW9uIGluaXQoKSB7XG4gIGluaXRpYWxpemVkID0gdHJ1ZVxuICBmcmVxdWVudGx5ID0gc3RvcmUuZ2V0KCdmcmVxdWVudGx5Jylcbn1cblxuZnVuY3Rpb24gYWRkKGVtb2ppKSB7XG4gIGlmICghaW5pdGlhbGl6ZWQpIGluaXQoKVxuICB2YXIgeyBpZCB9ID0gZW1vamlcblxuICBmcmVxdWVudGx5IHx8IChmcmVxdWVudGx5ID0gZGVmYXVsdHMpXG4gIGZyZXF1ZW50bHlbaWRdIHx8IChmcmVxdWVudGx5W2lkXSA9IDApXG4gIGZyZXF1ZW50bHlbaWRdICs9IDFcblxuICBzdG9yZS5zZXQoJ2xhc3QnLCBpZClcbiAgc3RvcmUuc2V0KCdmcmVxdWVudGx5JywgZnJlcXVlbnRseSlcbn1cblxuZnVuY3Rpb24gZ2V0KG1heE51bWJlcikge1xuICBpZiAoIWluaXRpYWxpemVkKSBpbml0KClcbiAgaWYgKCFmcmVxdWVudGx5KSB7XG4gICAgZGVmYXVsdHMgPSB7fVxuXG4gICAgY29uc3QgcmVzdWx0ID0gW11cblxuICAgIGxldCBkZWZhdWx0TGVuZ3RoID0gTWF0aC5taW4obWF4TnVtYmVyLCBERUZBVUxUUy5sZW5ndGgpXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkZWZhdWx0TGVuZ3RoOyBpKyspIHtcbiAgICAgIGRlZmF1bHRzW0RFRkFVTFRTW2ldXSA9IHBhcnNlSW50KChkZWZhdWx0TGVuZ3RoIC0gaSkgLyA0LCAxMCkgKyAxXG4gICAgICByZXN1bHQucHVzaChERUZBVUxUU1tpXSlcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICBjb25zdCBxdWFudGl0eSA9IG1heE51bWJlclxuICBjb25zdCBmcmVxdWVudGx5S2V5cyA9IFtdXG5cbiAgZm9yIChsZXQga2V5IGluIGZyZXF1ZW50bHkpIHtcbiAgICBpZiAoZnJlcXVlbnRseS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICBmcmVxdWVudGx5S2V5cy5wdXNoKGtleSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBzb3J0ZWQgPSBmcmVxdWVudGx5S2V5c1xuICAgIC5zb3J0KChhLCBiKSA9PiBmcmVxdWVudGx5W2FdIC0gZnJlcXVlbnRseVtiXSlcbiAgICAucmV2ZXJzZSgpXG4gIGNvbnN0IHNsaWNlZCA9IHNvcnRlZC5zbGljZSgwLCBxdWFudGl0eSlcblxuICBjb25zdCBsYXN0ID0gc3RvcmUuZ2V0KCdsYXN0JylcblxuICBpZiAobGFzdCAmJiBzbGljZWQuaW5kZXhPZihsYXN0KSA9PSAtMSkge1xuICAgIHNsaWNlZC5wb3AoKVxuICAgIHNsaWNlZC5wdXNoKGxhc3QpXG4gIH1cblxuICByZXR1cm4gc2xpY2VkXG59XG5cbmV4cG9ydCBkZWZhdWx0IHsgYWRkLCBnZXQgfVxuIiwiaW1wb3J0IHN0cmluZ0Zyb21Db2RlUG9pbnQgZnJvbSAnLi4vcG9seWZpbGxzL3N0cmluZ0Zyb21Db2RlUG9pbnQnXG5cbmZ1bmN0aW9uIHVuaWZpZWRUb05hdGl2ZSh1bmlmaWVkKSB7XG4gIHZhciB1bmljb2RlcyA9IHVuaWZpZWQuc3BsaXQoJy0nKSxcbiAgICBjb2RlUG9pbnRzID0gdW5pY29kZXMubWFwKCh1KSA9PiBgMHgke3V9YClcblxuICByZXR1cm4gc3RyaW5nRnJvbUNvZGVQb2ludC5hcHBseShudWxsLCBjb2RlUG9pbnRzKVxufVxuXG5mdW5jdGlvbiB1bmlxKGFycikge1xuICByZXR1cm4gYXJyLnJlZHVjZSgoYWNjLCBpdGVtKSA9PiB7XG4gICAgaWYgKGFjYy5pbmRleE9mKGl0ZW0pID09PSAtMSkge1xuICAgICAgYWNjLnB1c2goaXRlbSlcbiAgICB9XG4gICAgcmV0dXJuIGFjY1xuICB9LCBbXSlcbn1cblxuZnVuY3Rpb24gaW50ZXJzZWN0KGEsIGIpIHtcbiAgY29uc3QgdW5pcUEgPSB1bmlxKGEpXG4gIGNvbnN0IHVuaXFCID0gdW5pcShiKVxuXG4gIHJldHVybiB1bmlxQS5maWx0ZXIoKGl0ZW0pID0+IHVuaXFCLmluZGV4T2YoaXRlbSkgPj0gMClcbn1cblxuZnVuY3Rpb24gZGVlcE1lcmdlKGEsIGIpIHtcbiAgdmFyIG8gPSB7fVxuXG4gIGZvciAobGV0IGtleSBpbiBhKSB7XG4gICAgbGV0IG9yaWdpbmFsVmFsdWUgPSBhW2tleV0sXG4gICAgICB2YWx1ZSA9IG9yaWdpbmFsVmFsdWVcblxuICAgIGlmIChiLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgIHZhbHVlID0gYltrZXldXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHZhbHVlID0gZGVlcE1lcmdlKG9yaWdpbmFsVmFsdWUsIHZhbHVlKVxuICAgIH1cblxuICAgIG9ba2V5XSA9IHZhbHVlXG4gIH1cblxuICByZXR1cm4gb1xufVxuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vc29uaWNkb2UvbWVhc3VyZS1zY3JvbGxiYXJcbmZ1bmN0aW9uIG1lYXN1cmVTY3JvbGxiYXIoKSB7XG4gIGlmICh0eXBlb2YgZG9jdW1lbnQgPT0gJ3VuZGVmaW5lZCcpIHJldHVybiAwXG4gIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG5cbiAgZGl2LnN0eWxlLndpZHRoID0gJzEwMHB4J1xuICBkaXYuc3R5bGUuaGVpZ2h0ID0gJzEwMHB4J1xuICBkaXYuc3R5bGUub3ZlcmZsb3cgPSAnc2Nyb2xsJ1xuICBkaXYuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnXG4gIGRpdi5zdHlsZS50b3AgPSAnLTk5OTlweCdcblxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdilcbiAgY29uc3Qgc2Nyb2xsYmFyV2lkdGggPSBkaXYub2Zmc2V0V2lkdGggLSBkaXYuY2xpZW50V2lkdGhcbiAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkaXYpXG5cbiAgcmV0dXJuIHNjcm9sbGJhcldpZHRoXG59XG5cbmV4cG9ydCB7IHVuaXEsIGludGVyc2VjdCwgZGVlcE1lcmdlLCB1bmlmaWVkVG9OYXRpdmUsIG1lYXN1cmVTY3JvbGxiYXIgfVxuIiwiZXhwb3J0IGNsYXNzIFBpY2tlclZpZXcge1xuICBjb25zdHJ1Y3RvcihwaWNrZXJDb21wb25lbnQpIHtcbiAgICB0aGlzLl92bSA9IHBpY2tlckNvbXBvbmVudFxuICAgIHRoaXMuX2RhdGEgPSBwaWNrZXJDb21wb25lbnQuZGF0YVxuICAgIHRoaXMuX3BlckxpbmUgPSBwaWNrZXJDb21wb25lbnQucGVyTGluZVxuXG4gICAgdGhpcy5fY2F0ZWdvcmllcyA9IFtdXG4gICAgdGhpcy5fY2F0ZWdvcmllcy5wdXNoKC4uLnRoaXMuX2RhdGEuY2F0ZWdvcmllcygpKVxuICAgIHRoaXMuX2NhdGVnb3JpZXMgPSB0aGlzLl9jYXRlZ29yaWVzLmZpbHRlcigoY2F0ZWdvcnkpID0+IHtcbiAgICAgIHJldHVybiBjYXRlZ29yeS5lbW9qaXMubGVuZ3RoID4gMFxuICAgIH0pXG5cbiAgICB0aGlzLl9jYXRlZ29yaWVzWzBdLmZpcnN0ID0gdHJ1ZVxuICAgIE9iamVjdC5mcmVlemUodGhpcy5fY2F0ZWdvcmllcylcblxuICAgIHRoaXMuYWN0aXZlQ2F0ZWdvcnkgPSB0aGlzLl9jYXRlZ29yaWVzWzBdXG4gICAgdGhpcy5zZWFyY2hFbW9qaXMgPSBudWxsXG5cbiAgICAvLyBQcmV2aWV3IGVtb2ppLCBzaG93biBvbiBtb3VzZSBvdmVyIG9yIHdoZW4gd2UgbW92ZVxuICAgIC8vIHdpdGggYXJyb3cga2V5cy5cbiAgICB0aGlzLnByZXZpZXdFbW9qaSA9IG51bGxcbiAgICAvLyBJbmRleGVzIGFyZSB1c2VkIHRvIGtlZXAgdGhlIHBvc2l0aW9uIHdoZW4gbW92aW5nXG4gICAgLy8gd2l0aCBhcnJvd3M6IGN1cnJlbnQgY2F0ZWdvcnkgYW5kIGN1cnJlbnQgZW1vamlcbiAgICAvLyBpbnNpZGUgdGhlIGNhdGVnb3J5LlxuICAgIHRoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHggPSAwXG4gICAgdGhpcy5wcmV2aWV3RW1vamlJZHggPSAtMVxuICB9XG5cbiAgb25TY3JvbGwoKSB7XG4gICAgY29uc3Qgc2Nyb2xsRWxlbWVudCA9IHRoaXMuX3ZtLiRyZWZzLnNjcm9sbFxuICAgIGNvbnN0IHNjcm9sbFRvcCA9IHNjcm9sbEVsZW1lbnQuc2Nyb2xsVG9wXG5cbiAgICBsZXQgYWN0aXZlQ2F0ZWdvcnkgPSB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllc1swXVxuICAgIGZvciAobGV0IGkgPSAwLCBsID0gdGhpcy5maWx0ZXJlZENhdGVnb3JpZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICBsZXQgY2F0ZWdvcnkgPSB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllc1tpXVxuICAgICAgbGV0IGNvbXBvbmVudCA9IHRoaXMuX3ZtLmdldENhdGVnb3J5Q29tcG9uZW50KGkpXG4gICAgICAvLyBUaGUgYC01MGAgb2Zmc2V0IHN3aXRjaGVzIGFjdGl2ZSBjYXRlZ29yeSAoc2VsZWN0ZWQgaW4gdGhlXG4gICAgICAvLyBhbmNob3JzIGJhcikgYSBiaXQgZWFyaWxlciwgYmVmb3JlIGl0IGFjdHVhbGx5IHJlYWNoZXMgdGhlIHRvcC5cbiAgICAgIGlmIChjb21wb25lbnQgJiYgY29tcG9uZW50LiRlbC5vZmZzZXRUb3AgLSA1MCA+IHNjcm9sbFRvcCkge1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgYWN0aXZlQ2F0ZWdvcnkgPSBjYXRlZ29yeVxuICAgIH1cbiAgICB0aGlzLmFjdGl2ZUNhdGVnb3J5ID0gYWN0aXZlQ2F0ZWdvcnlcbiAgfVxuXG4gIGdldCBhbGxDYXRlZ29yaWVzKCkge1xuICAgIHJldHVybiB0aGlzLl9jYXRlZ29yaWVzXG4gIH1cblxuICBnZXQgZmlsdGVyZWRDYXRlZ29yaWVzKCkge1xuICAgIGlmICh0aGlzLnNlYXJjaEVtb2ppcykge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnc2VhcmNoJyxcbiAgICAgICAgICBuYW1lOiAnU2VhcmNoJyxcbiAgICAgICAgICBlbW9qaXM6IHRoaXMuc2VhcmNoRW1vamlzLFxuICAgICAgICB9LFxuICAgICAgXVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fY2F0ZWdvcmllcy5maWx0ZXIoKGNhdGVnb3J5KSA9PiB7XG4gICAgICBsZXQgaGFzRW1vamlzID0gY2F0ZWdvcnkuZW1vamlzLmxlbmd0aCA+IDBcbiAgICAgIHJldHVybiBoYXNFbW9qaXNcbiAgICB9KVxuICB9XG5cbiAgZ2V0IHByZXZpZXdFbW9qaUNhdGVnb3J5KCkge1xuICAgIGlmICh0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4ID49IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllc1t0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4XVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgb25BbmNob3JDbGljayhjYXRlZ29yeSkge1xuICAgIGlmICh0aGlzLnNlYXJjaEVtb2ppcykge1xuICAgICAgLy8gTm8gY2F0ZWdvcmllcyBhcmUgc2hvd24gd2hlbiBzZWFyY2ggaXMgYWN0aXZlLlxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGxldCBpID0gdGhpcy5maWx0ZXJlZENhdGVnb3JpZXMuaW5kZXhPZihjYXRlZ29yeSlcbiAgICBsZXQgY29tcG9uZW50ID0gdGhpcy5fdm0uZ2V0Q2F0ZWdvcnlDb21wb25lbnQoaSlcbiAgICBsZXQgc2Nyb2xsVG9Db21wb25lbnQgPSAoKSA9PiB7XG4gICAgICBpZiAoY29tcG9uZW50KSB7XG4gICAgICAgIGxldCB0b3AgPSBjb21wb25lbnQuJGVsLm9mZnNldFRvcFxuICAgICAgICBpZiAoY2F0ZWdvcnkuZmlyc3QpIHtcbiAgICAgICAgICB0b3AgPSAwXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdm0uJHJlZnMuc2Nyb2xsLnNjcm9sbFRvcCA9IHRvcFxuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5fdm0uaW5maW5pdGVTY3JvbGwpIHtcbiAgICAgIHNjcm9sbFRvQ29tcG9uZW50KClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3RpdmVDYXRlZ29yeSA9IHRoaXMuZmlsdGVyZWRDYXRlZ29yaWVzW2ldXG4gICAgfVxuICB9XG5cbiAgb25TZWFyY2godmFsdWUpIHtcbiAgICBsZXQgZW1vamlzID0gdGhpcy5fZGF0YS5zZWFyY2godmFsdWUsIHRoaXMubWF4U2VhcmNoUmVzdWx0cylcbiAgICB0aGlzLnNlYXJjaEVtb2ppcyA9IGVtb2ppc1xuXG4gICAgdGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeCA9IDBcbiAgICB0aGlzLnByZXZpZXdFbW9qaUlkeCA9IDBcbiAgICB0aGlzLnVwZGF0ZVByZXZpZXdFbW9qaSgpXG4gIH1cblxuICBvbkVtb2ppRW50ZXIoZW1vamkpIHtcbiAgICB0aGlzLnByZXZpZXdFbW9qaSA9IGVtb2ppXG4gICAgdGhpcy5wcmV2aWV3RW1vamlJZHggPSAtMVxuICAgIHRoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHggPSAtMVxuICB9XG5cbiAgb25FbW9qaUxlYXZlKGVtb2ppKSB7XG4gICAgdGhpcy5wcmV2aWV3RW1vamkgPSBudWxsXG4gIH1cblxuICBvbkFycm93TGVmdCgpIHtcbiAgICAvLyBNb3ZpbmcgbGVmdCwgZGVjcmVhc2UgZW1vamkgaW5kZXguXG4gICAgaWYgKHRoaXMucHJldmlld0Vtb2ppSWR4ID4gMCkge1xuICAgICAgdGhpcy5wcmV2aWV3RW1vamlJZHggLT0gMVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiBlbW9qaSBpbmRleCBpcyB6ZXJvLCBnbyB0byB0aGUgcHJldmlvdXMgY2F0ZWdvcnkuXG4gICAgICB0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4IC09IDFcbiAgICAgIGlmICh0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4IDwgMCkge1xuICAgICAgICAvLyBJZiB3ZSByZWFjaGVkIGZpcnN0IGNhdGVnb3J5LCBrZWVwIGl0LlxuICAgICAgICB0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4ID0gMFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVXBkYXRlIGVtb2ppIGluZGV4IC0gd2UgbW92ZWQgdG8gdGhlIHByZXZpb3VzIGNhdGVnb3J5LFxuICAgICAgICAvLyBnZXQgdGhlIGxhc3QgZW1vamkgaW4gaXQuXG4gICAgICAgIHRoaXMucHJldmlld0Vtb2ppSWR4ID1cbiAgICAgICAgICB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllc1t0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4XS5lbW9qaXMubGVuZ3RoIC1cbiAgICAgICAgICAxXG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMudXBkYXRlUHJldmlld0Vtb2ppKClcbiAgfVxuXG4gIG9uQXJyb3dSaWdodCgpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnByZXZpZXdFbW9qaUlkeCA8XG4gICAgICB0aGlzLmVtb2ppc0xlbmd0aCh0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4KSAtIDFcbiAgICApIHtcbiAgICAgIC8vIE1vdmluZyByaWdodCB3aXRoaW4gY2F0ZWdvcnksIGluY3JlYXNlIGVtb2ppIGluZGV4LlxuICAgICAgdGhpcy5wcmV2aWV3RW1vamlJZHggKz0gMVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBHbyB0byB0aGUgbmV4dCBjYXRlZ29yeS5cbiAgICAgIHRoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHggKz0gMVxuICAgICAgaWYgKHRoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHggPj0gdGhpcy5maWx0ZXJlZENhdGVnb3JpZXMubGVuZ3RoKSB7XG4gICAgICAgIC8vIElmIHdlIHJlYWNoZWQgdGhlIGxhc3QgY2F0ZWdvcnkgLSBrZWVwIGl0LlxuICAgICAgICB0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4ID0gdGhpcy5maWx0ZXJlZENhdGVnb3JpZXMubGVuZ3RoIC0gMVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gSWYgd2UgbW92ZWQgdG8gdGhlIG5leHQgY2F0ZWdvcnksIHVwZGF0ZSBlbW9qaSBpbmRleCB0byB0aGVcbiAgICAgICAgLy8gZmlyc3QgZW1vamkgaW4gdGhlIG5ldyBjYXRlZ29yeS5cbiAgICAgICAgdGhpcy5wcmV2aWV3RW1vamlJZHggPSAwXG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMudXBkYXRlUHJldmlld0Vtb2ppKClcbiAgfVxuXG4gIG9uQXJyb3dEb3duKCkge1xuICAgIC8vIElmIHdlIGFyZSBvdXQgb2YgdGhlIGVtb2ppIGNvbnRyb2wgKGluZGV4IGlzIC0xKSwgc2VsZWN0IHRoZSBmaXJzdFxuICAgIC8vIGVtb2ppIGluIHRoZSBmaXJzdCBjYXRlZ29yeSBieSBjYWxsaW5nIGBvbkFycm93UmlnaHRgLlxuICAgIGlmICh0aGlzLnByZXZpZXdFbW9qaUlkeCA9PSAtMSkge1xuICAgICAgcmV0dXJuIHRoaXMub25BcnJvd1JpZ2h0KClcbiAgICB9XG5cbiAgICBjb25zdCBjYXRlZ29yeUxlbmd0aCA9XG4gICAgICB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllc1t0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4XS5lbW9qaXMubGVuZ3RoXG5cbiAgICAvLyBXaGVuIG1vdmluZyBkb3duLCB3ZSBjYW4gbW92ZSBgX3BlckxpbmVgIGljb25zIHJpZ2h0IHRvXG4gICAgLy8ganVtcCB0byB0aGUgc2FtZSBwb3NpdGlvbiBpbiB0aGUgbmV4dCByb3cuXG4gICAgbGV0IGRpZmYgPSB0aGlzLl9wZXJMaW5lXG5cbiAgICAvLyBUT0RPOiBwcmV2aWV3Q2F0ZWdvcnkgc2hvdWxkIG1hdGNoIGFjdGl2ZUNhdGVnb3J5XG4gICAgLy8gKHNvIGl0IHdvdWxkIGJlIGJvdGggaGlnaGxpZ2h0ZWQgaW4gVUkgYW5kIHVzZWRcbiAgICAvLyB3aGVuIHdlIHN0YXJ0IG1vdmluZyB3aXRoIGFycm93cyBhZnRlciBjbGlja2luZ1xuICAgIC8vIHRoZSBjYXRlZ29yeSkuXG5cbiAgICAvLyBOb3RlOiBwcm9iYWJseSB3ZSBjYW4gYWx3YXN5IHRha2UgY3VycmVudCByb3cgbGVuZ3RoXG4gICAgLy8gYXMgYSBgZGlmZmAgLSBpdCB3aWxsIGZpdCBib3RoIGNhc2Ugb2YgYW55IHJvdyBhbmRcbiAgICAvLyBzcGVjaWFsIGNhc2Ugb2YgdGhlIGxhc3Qgcm93LlxuICAgIC8vIE5vdGU6IGl0IGNhbiBiZSBhbHNvIGVhc2llciB0byB1cGRhdGUgaW5kZXhlc1xuICAgIC8vIGRpcmVjdGx5IGhlcmUgaW5zdGVhZCBvZiBjYWxsaW5nIG9uQXJyb3dSaWdodC5cbiAgICAvLyBTYW1lIGlzIHRydWUgZm9yIGBvbkFycm93VXBgLlxuXG4gICAgLy8gVW5sZXNzIGlmIHdlIGFyZSBvbiB0aGUgbGFzdCByb3cgb2YgdGhlIGNhdGVnb3J5IGFuZFxuICAgIC8vIHRoZXJlIGFyZSBsZXNzIHRoZW4gYF9wZXJMaW5lYCBlbW9qaXMgaW4gaXQuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIHVzZSB0aGUgbGFzdCByb3cgbGVuZ3RoIGFzIGRpZmZcbiAgICAvLyBzbyB3ZSBnbyBzdHJhaWdodCBkb3duLCBmb3IgZXhhbXBsZTpcbiAgICAvL1xuICAgIC8vICAgMSAyIDMgNCA1IDZcbiAgICAvLyAgIDcgOCA5XG4gICAgLy8gICBBIEIgQyBEIEUgRlxuICAgIC8vXG4gICAgLy8gSWYgd2UgZ28gZG93biBmcm9tIGA4YCwgd2UgbmVlZCB0byBtb3ZlIDMgZW1vamlzIHJpZ2h0XG4gICAgLy8gdG8gbGVuZCBhdCBgQmAgKGFuZCAzIGlzIHRoZSBsZW5ndGggb2YgdGhlIGxhc3Qgcm93IG9mXG4gICAgLy8gdGhpcyBjYXRlZ29yeSkuXG4gICAgLy8gQW5kIGlmIHdlIHVzZWQgNiBpbnN0ZWFkIChyb3cgbGVuZ3RoLCBgX3BlckxpbmVgKSwgd2Ugd291bGRcbiAgICAvLyBsZW5kIHVwIGF0IGBFYC5cbiAgICBpZiAodGhpcy5wcmV2aWV3RW1vamlJZHggKyBkaWZmID4gY2F0ZWdvcnlMZW5ndGgpIHtcbiAgICAgIC8vIENhbGN1bGF0ZSB0aGUgbGFzdCByb3cgbGVuZ3RoLlxuICAgICAgZGlmZiA9IGNhdGVnb3J5TGVuZ3RoICUgdGhpcy5fcGVyTGluZVxuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRpZmY7IGkrKykge1xuICAgICAgdGhpcy5vbkFycm93UmlnaHQoKVxuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVByZXZpZXdFbW9qaSgpXG4gIH1cblxuICBvbkFycm93VXAoKSB7XG4gICAgLy8gU2ltaWxhciB0byBgb25BcnJvd0Rvd25gLCB0byBtb3ZlIHVwIHdlIGNhbiBtb3ZlIGxlZnRcbiAgICAvLyBieSBgX3BlckxpbmVgIG51bWJlciBvZiBlbW9qaXMuXG4gICAgbGV0IGRpZmYgPSB0aGlzLl9wZXJMaW5lXG5cbiAgICBpZiAodGhpcy5wcmV2aWV3RW1vamlJZHggLSBkaWZmIDwgMCkge1xuICAgICAgaWYgKHRoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHggPiAwKSB7XG4gICAgICAgIC8vIFVubGVzcyBpZiB3ZSBhcmUgb24gdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGNhdGVnb3J5IGFuZFxuICAgICAgICAvLyB0aGUgbGFzdCBsaW5lIGluIHRoZSBwcmV2aW91cyBjYXRlZ29yeSBpcyBzaG9ydGVyIHRoYW5cbiAgICAgICAgLy8gYF9wZXJMaW5lYC5cbiAgICAgICAgLy8gSW4gdGhpcyBjYXNlIHdlIHVzZSB0aGUgbGFzdCByb3cgbGVuZ3RoIGFzIGRpZmYsIHNvXG4gICAgICAgIC8vIHdlIGdvIHN0cmFpZ2h0IHVwLCBmb3IgZXhhbXBsZTpcbiAgICAgICAgLy9cbiAgICAgICAgLy8gICAxIDIgMyA0IDVcbiAgICAgICAgLy8gICA2IDcgOFxuICAgICAgICAvLyAgIDkgQSBCIEMgRFxuICAgICAgICAvL1xuICAgICAgICAvLyBJZiB3ZSBnbyB1cCBmcm9tIGBBYCwgd2UgbmVlZCB0byBtb3ZlIDMgZW1vamlzIGxlZnQgdG8gZ2V0XG4gICAgICAgIC8vIHRvIGA3YCAoYW5kIDMgaXMgdGhlIGxlbmd0aCBvZiB0aGUgbGFzdCByb3cgb2YgdGhlIHByZXZpb3VzXG4gICAgICAgIC8vIGNhdGVnb3J5KS5cbiAgICAgICAgY29uc3QgcHJldkNhdGVnb3J5TGFzdFJvd0xlbmd0aCA9XG4gICAgICAgICAgdGhpcy5maWx0ZXJlZENhdGVnb3JpZXNbdGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeCAtIDFdLmVtb2ppc1xuICAgICAgICAgICAgLmxlbmd0aCAlIHRoaXMuX3BlckxpbmVcbiAgICAgICAgLy8gZGlmZiA9IHRoaXMucHJldmlld0Vtb2ppSWR4ICsgcHJldkNhdGVnb3J5TGFzdFJvd0xlbmd0aFxuICAgICAgICBkaWZmID0gcHJldkNhdGVnb3J5TGFzdFJvd0xlbmd0aFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGlmZiA9IDBcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaWZmOyBpKyspIHtcbiAgICAgIHRoaXMub25BcnJvd0xlZnQoKVxuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVByZXZpZXdFbW9qaSgpXG4gIH1cblxuICB1cGRhdGVQcmV2aWV3RW1vamkoKSB7XG4gICAgdGhpcy5wcmV2aWV3RW1vamkgPVxuICAgICAgdGhpcy5maWx0ZXJlZENhdGVnb3JpZXNbdGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeF0uZW1vamlzW1xuICAgICAgICB0aGlzLnByZXZpZXdFbW9qaUlkeFxuICAgICAgXVxuXG4gICAgdGhpcy5fdm0uJG5leHRUaWNrKCgpID0+IHtcbiAgICAgIC8vIFNjcm9sbCB0aGUgdmlldyBpZiB0aGUgYHByZXZpZXdFbW9qaWAgZ29lcyBvdXQgb2YgdGhlIHZpc2libGUgYXJlYS5cbiAgICAgIGNvbnN0IHNjcm9sbEVsID0gdGhpcy5fdm0uJHJlZnMuc2Nyb2xsXG5cbiAgICAgIC8vIE5vdGU6IGl0IHdvdWxkIGJlIG1vcmUgVnVlLWlzaCB0byBtYXJrIGFsbCBlbW9qaXMgd2l0aCBgcmVmYHNcbiAgICAgIC8vIGFuZCB0aGVuIGRvIHNvbWV0aGluZyBzaW1pbGFyIGhlcmUgdG8gd2hhdCB3ZSBkbyBpbiB0aGVcbiAgICAgIC8vIGBnZXRDYXRlZ29yaWVzYCBpbnN0ZWFkIG9mIHVzaW5nIGBxdWVyeVNlbGVjdG9yYCBkaXJlY3RseSxcbiAgICAgIC8vIGJ1dCBJIGFtIG5vdCBzdXJlIGlmIGhhdmluZyBtYW55IHJlZnMgd291bGQgYWZmZWN0IHRoZSBwZXJmb3JtYW5jZVxuICAgICAgLy8gKGl0IG1pZ2h0LCBzbyBJIHVzZSBgcXVlcnlTZWxlY3RvcmAgZm9yIG5vdykuXG4gICAgICBjb25zdCBlbW9qaUVsID0gc2Nyb2xsRWwucXVlcnlTZWxlY3RvcignLmVtb2ppLW1hcnQtZW1vamktc2VsZWN0ZWQnKVxuXG4gICAgICBjb25zdCBzY3JvbGxIZWlnaHQgPSBzY3JvbGxFbC5vZmZzZXRUb3AgLSBzY3JvbGxFbC5vZmZzZXRIZWlnaHRcbiAgICAgIGlmIChcbiAgICAgICAgZW1vamlFbCAmJlxuICAgICAgICBlbW9qaUVsLm9mZnNldFRvcCArIGVtb2ppRWwub2Zmc2V0SGVpZ2h0ID5cbiAgICAgICAgICBzY3JvbGxIZWlnaHQgKyBzY3JvbGxFbC5zY3JvbGxUb3BcbiAgICAgICkge1xuICAgICAgICBzY3JvbGxFbC5zY3JvbGxUb3AgKz0gZW1vamlFbC5vZmZzZXRIZWlnaHRcbiAgICAgIH1cbiAgICAgIGlmIChlbW9qaUVsICYmIGVtb2ppRWwub2Zmc2V0VG9wIDwgc2Nyb2xsRWwuc2Nyb2xsVG9wKSB7XG4gICAgICAgIHNjcm9sbEVsLnNjcm9sbFRvcCAtPSBlbW9qaUVsLm9mZnNldEhlaWdodFxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBlbW9qaXNMZW5ndGgoY2F0ZWdvcnlJZHgpIHtcbiAgICBpZiAoY2F0ZWdvcnlJZHggPT0gLTEpIHtcbiAgICAgIHJldHVybiAwXG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllc1tjYXRlZ29yeUlkeF0uZW1vamlzLmxlbmd0aFxuICB9XG59XG4iLCJjb25zdCBFbW9qaVByb3BzID0ge1xuICBuYXRpdmU6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICB0b29sdGlwOiB7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgZmFsbGJhY2s6IHtcbiAgICB0eXBlOiBGdW5jdGlvbixcbiAgfSxcbiAgc2tpbjoge1xuICAgIHR5cGU6IE51bWJlcixcbiAgICBkZWZhdWx0OiAxLFxuICB9LFxuICBzZXQ6IHtcbiAgICB0eXBlOiBTdHJpbmcsXG4gICAgZGVmYXVsdDogJ2FwcGxlJyxcbiAgfSxcbiAgZW1vamk6IHtcbiAgICB0eXBlOiBbU3RyaW5nLCBPYmplY3RdLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxuICBzaXplOiB7XG4gICAgdHlwZTogTnVtYmVyLFxuICAgIGRlZmF1bHQ6IG51bGwsXG4gIH0sXG4gIHRhZzoge1xuICAgIHR5cGU6IFN0cmluZyxcbiAgICBkZWZhdWx0OiAnc3BhbicsXG4gIH0sXG59XG5cbmNvbnN0IFBpY2tlclByb3BzID0ge1xuICBwZXJMaW5lOiB7XG4gICAgdHlwZTogTnVtYmVyLFxuICAgIGRlZmF1bHQ6IDksXG4gIH0sXG4gIG1heFNlYXJjaFJlc3VsdHM6IHtcbiAgICB0eXBlOiBOdW1iZXIsXG4gICAgZGVmYXVsdDogNzUsXG4gIH0sXG4gIGVtb2ppU2l6ZToge1xuICAgIHR5cGU6IE51bWJlcixcbiAgICBkZWZhdWx0OiAyNCxcbiAgfSxcbiAgdGl0bGU6IHtcbiAgICB0eXBlOiBTdHJpbmcsXG4gICAgZGVmYXVsdDogJ0Vtb2ppIE1hcnTihKInLFxuICB9LFxuICBlbW9qaToge1xuICAgIHR5cGU6IFN0cmluZyxcbiAgICBkZWZhdWx0OiAnZGVwYXJ0bWVudF9zdG9yZScsXG4gIH0sXG4gIGNvbG9yOiB7XG4gICAgdHlwZTogU3RyaW5nLFxuICAgIGRlZmF1bHQ6ICcjYWU2NWM1JyxcbiAgfSxcbiAgc2V0OiB7XG4gICAgdHlwZTogU3RyaW5nLFxuICAgIGRlZmF1bHQ6ICdhcHBsZScsXG4gIH0sXG4gIHNraW46IHtcbiAgICB0eXBlOiBOdW1iZXIsXG4gICAgZGVmYXVsdDogbnVsbCxcbiAgfSxcbiAgZGVmYXVsdFNraW46IHtcbiAgICB0eXBlOiBOdW1iZXIsXG4gICAgZGVmYXVsdDogMSxcbiAgfSxcbiAgbmF0aXZlOiB7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgZW1vamlUb29sdGlwOiB7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgYXV0b0ZvY3VzOiB7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgaTE4bjoge1xuICAgIHR5cGU6IE9iamVjdCxcbiAgICBkZWZhdWx0KCkge1xuICAgICAgcmV0dXJuIHt9XG4gICAgfSxcbiAgfSxcbiAgc2hvd1ByZXZpZXc6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIHNob3dTZWFyY2g6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIHNob3dDYXRlZ29yaWVzOiB7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBzaG93U2tpblRvbmVzOiB7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBpbmZpbml0ZVNjcm9sbDoge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgcGlja2VyU3R5bGVzOiB7XG4gICAgdHlwZTogT2JqZWN0LFxuICAgIGRlZmF1bHQoKSB7XG4gICAgICByZXR1cm4ge31cbiAgICB9LFxuICB9LFxufVxuXG5leHBvcnQgeyBFbW9qaVByb3BzLCBQaWNrZXJQcm9wcyB9XG4iLCJ2YXIgTkFNRVNQQUNFID0gJ2Vtb2ppLW1hcnQnXG5cbmNvbnN0IF9KU09OID0gSlNPTlxuXG52YXIgaXNMb2NhbFN0b3JhZ2VTdXBwb3J0ZWQgPVxuICB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiAnbG9jYWxTdG9yYWdlJyBpbiB3aW5kb3dcblxubGV0IGdldHRlclxubGV0IHNldHRlclxuXG5mdW5jdGlvbiBzZXRIYW5kbGVycyhoYW5kbGVycykge1xuICBoYW5kbGVycyB8fCAoaGFuZGxlcnMgPSB7fSlcblxuICBnZXR0ZXIgPSBoYW5kbGVycy5nZXR0ZXJcbiAgc2V0dGVyID0gaGFuZGxlcnMuc2V0dGVyXG59XG5cbmZ1bmN0aW9uIHNldE5hbWVzcGFjZShuYW1lc3BhY2UpIHtcbiAgTkFNRVNQQUNFID0gbmFtZXNwYWNlXG59XG5cbmZ1bmN0aW9uIHVwZGF0ZShzdGF0ZSkge1xuICBmb3IgKGxldCBrZXkgaW4gc3RhdGUpIHtcbiAgICBsZXQgdmFsdWUgPSBzdGF0ZVtrZXldXG4gICAgc2V0KGtleSwgdmFsdWUpXG4gIH1cbn1cblxuZnVuY3Rpb24gc2V0KGtleSwgdmFsdWUpIHtcbiAgaWYgKHNldHRlcikge1xuICAgIHNldHRlcihrZXksIHZhbHVlKVxuICB9IGVsc2Uge1xuICAgIGlmICghaXNMb2NhbFN0b3JhZ2VTdXBwb3J0ZWQpIHJldHVyblxuICAgIHRyeSB7XG4gICAgICB3aW5kb3cubG9jYWxTdG9yYWdlW2Ake05BTUVTUEFDRX0uJHtrZXl9YF0gPSBfSlNPTi5zdHJpbmdpZnkodmFsdWUpXG4gICAgfSBjYXRjaCAoZSkge31cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXQoa2V5KSB7XG4gIGlmIChnZXR0ZXIpIHtcbiAgICByZXR1cm4gZ2V0dGVyKGtleSlcbiAgfSBlbHNlIHtcbiAgICBpZiAoIWlzTG9jYWxTdG9yYWdlU3VwcG9ydGVkKSByZXR1cm5cbiAgICB0cnkge1xuICAgICAgdmFyIHZhbHVlID0gd2luZG93LmxvY2FsU3RvcmFnZVtgJHtOQU1FU1BBQ0V9LiR7a2V5fWBdXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZSh2YWx1ZSlcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgeyB1cGRhdGUsIHNldCwgZ2V0LCBzZXROYW1lc3BhY2UsIHNldEhhbmRsZXJzIH1cbiIsIi8vIGh0dHA6Ly9wYXVsaXJpc2guY29tLzIwMTEvcmVxdWVzdGFuaW1hdGlvbmZyYW1lLWZvci1zbWFydC1hbmltYXRpbmcvXG4vLyBodHRwOi8vbXkub3BlcmEuY29tL2Vtb2xsZXIvYmxvZy8yMDExLzEyLzIwL3JlcXVlc3RhbmltYXRpb25mcmFtZS1mb3Itc21hcnQtZXItYW5pbWF0aW5nXG5cbi8vIHJlcXVlc3RBbmltYXRpb25GcmFtZSBwb2x5ZmlsbCBieSBFcmlrIE3DtmxsZXIuIGZpeGVzIGZyb20gUGF1bCBJcmlzaCBhbmQgVGlubyBaaWpkZWxcblxuLy8gTUlUIGxpY2Vuc2VcblxudmFyIGlzV2luZG93QXZhaWxhYmxlID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCdcblxuaXNXaW5kb3dBdmFpbGFibGUgJiZcbiAgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgbGFzdFRpbWUgPSAwXG4gICAgdmFyIHZlbmRvcnMgPSBbJ21zJywgJ21veicsICd3ZWJraXQnLCAnbyddXG5cbiAgICBmb3IgKHZhciB4ID0gMDsgeCA8IHZlbmRvcnMubGVuZ3RoICYmICF3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lOyArK3gpIHtcbiAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPVxuICAgICAgICB3aW5kb3dbdmVuZG9yc1t4XSArICdSZXF1ZXN0QW5pbWF0aW9uRnJhbWUnXVxuICAgICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lID1cbiAgICAgICAgd2luZG93W3ZlbmRvcnNbeF0gKyAnQ2FuY2VsQW5pbWF0aW9uRnJhbWUnXSB8fFxuICAgICAgICB3aW5kb3dbdmVuZG9yc1t4XSArICdDYW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWUnXVxuICAgIH1cblxuICAgIGlmICghd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSlcbiAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPSBmdW5jdGlvbiAoY2FsbGJhY2ssIGVsZW1lbnQpIHtcbiAgICAgICAgdmFyIGN1cnJUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKClcbiAgICAgICAgdmFyIHRpbWVUb0NhbGwgPSBNYXRoLm1heCgwLCAxNiAtIChjdXJyVGltZSAtIGxhc3RUaW1lKSlcbiAgICAgICAgdmFyIGlkID0gd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGNhbGxiYWNrKGN1cnJUaW1lICsgdGltZVRvQ2FsbClcbiAgICAgICAgfSwgdGltZVRvQ2FsbClcblxuICAgICAgICBsYXN0VGltZSA9IGN1cnJUaW1lICsgdGltZVRvQ2FsbFxuICAgICAgICByZXR1cm4gaWRcbiAgICAgIH1cblxuICAgIGlmICghd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKVxuICAgICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lID0gZnVuY3Rpb24gKGlkKSB7XG4gICAgICAgIGNsZWFyVGltZW91dChpZClcbiAgICAgIH1cbiAgfSkoKVxuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKHR5cGVvZiBpdCAhPSAnZnVuY3Rpb24nKSB0aHJvdyBUeXBlRXJyb3IoaXQgKyAnIGlzIG5vdCBhIGZ1bmN0aW9uIScpO1xuICByZXR1cm4gaXQ7XG59O1xuIiwiLy8gMjIuMS4zLjMxIEFycmF5LnByb3RvdHlwZVtAQHVuc2NvcGFibGVzXVxudmFyIFVOU0NPUEFCTEVTID0gcmVxdWlyZSgnLi9fd2tzJykoJ3Vuc2NvcGFibGVzJyk7XG52YXIgQXJyYXlQcm90byA9IEFycmF5LnByb3RvdHlwZTtcbmlmIChBcnJheVByb3RvW1VOU0NPUEFCTEVTXSA9PSB1bmRlZmluZWQpIHJlcXVpcmUoJy4vX2hpZGUnKShBcnJheVByb3RvLCBVTlNDT1BBQkxFUywge30pO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5KSB7XG4gIEFycmF5UHJvdG9bVU5TQ09QQUJMRVNdW2tleV0gPSB0cnVlO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBhdCA9IHJlcXVpcmUoJy4vX3N0cmluZy1hdCcpKHRydWUpO1xuXG4gLy8gYEFkdmFuY2VTdHJpbmdJbmRleGAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hZHZhbmNlc3RyaW5naW5kZXhcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKFMsIGluZGV4LCB1bmljb2RlKSB7XG4gIHJldHVybiBpbmRleCArICh1bmljb2RlID8gYXQoUywgaW5kZXgpLmxlbmd0aCA6IDEpO1xufTtcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKCFpc09iamVjdChpdCkpIHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGFuIG9iamVjdCEnKTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsIi8vIGZhbHNlIC0+IEFycmF5I2luZGV4T2Zcbi8vIHRydWUgIC0+IEFycmF5I2luY2x1ZGVzXG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi9fdG8tbGVuZ3RoJyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi9fdG8tYWJzb2x1dGUtaW5kZXgnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKElTX0lOQ0xVREVTKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoJHRoaXMsIGVsLCBmcm9tSW5kZXgpIHtcbiAgICB2YXIgTyA9IHRvSU9iamVjdCgkdGhpcyk7XG4gICAgdmFyIGxlbmd0aCA9IHRvTGVuZ3RoKE8ubGVuZ3RoKTtcbiAgICB2YXIgaW5kZXggPSB0b0Fic29sdXRlSW5kZXgoZnJvbUluZGV4LCBsZW5ndGgpO1xuICAgIHZhciB2YWx1ZTtcbiAgICAvLyBBcnJheSNpbmNsdWRlcyB1c2VzIFNhbWVWYWx1ZVplcm8gZXF1YWxpdHkgYWxnb3JpdGhtXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZVxuICAgIGlmIChJU19JTkNMVURFUyAmJiBlbCAhPSBlbCkgd2hpbGUgKGxlbmd0aCA+IGluZGV4KSB7XG4gICAgICB2YWx1ZSA9IE9baW5kZXgrK107XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gICAgICBpZiAodmFsdWUgIT0gdmFsdWUpIHJldHVybiB0cnVlO1xuICAgIC8vIEFycmF5I2luZGV4T2YgaWdub3JlcyBob2xlcywgQXJyYXkjaW5jbHVkZXMgLSBub3RcbiAgICB9IGVsc2UgZm9yICg7bGVuZ3RoID4gaW5kZXg7IGluZGV4KyspIGlmIChJU19JTkNMVURFUyB8fCBpbmRleCBpbiBPKSB7XG4gICAgICBpZiAoT1tpbmRleF0gPT09IGVsKSByZXR1cm4gSVNfSU5DTFVERVMgfHwgaW5kZXggfHwgMDtcbiAgICB9IHJldHVybiAhSVNfSU5DTFVERVMgJiYgLTE7XG4gIH07XG59O1xuIiwiLy8gMCAtPiBBcnJheSNmb3JFYWNoXG4vLyAxIC0+IEFycmF5I21hcFxuLy8gMiAtPiBBcnJheSNmaWx0ZXJcbi8vIDMgLT4gQXJyYXkjc29tZVxuLy8gNCAtPiBBcnJheSNldmVyeVxuLy8gNSAtPiBBcnJheSNmaW5kXG4vLyA2IC0+IEFycmF5I2ZpbmRJbmRleFxudmFyIGN0eCA9IHJlcXVpcmUoJy4vX2N0eCcpO1xudmFyIElPYmplY3QgPSByZXF1aXJlKCcuL19pb2JqZWN0Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL190by1vYmplY3QnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4vX3RvLWxlbmd0aCcpO1xudmFyIGFzYyA9IHJlcXVpcmUoJy4vX2FycmF5LXNwZWNpZXMtY3JlYXRlJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChUWVBFLCAkY3JlYXRlKSB7XG4gIHZhciBJU19NQVAgPSBUWVBFID09IDE7XG4gIHZhciBJU19GSUxURVIgPSBUWVBFID09IDI7XG4gIHZhciBJU19TT01FID0gVFlQRSA9PSAzO1xuICB2YXIgSVNfRVZFUlkgPSBUWVBFID09IDQ7XG4gIHZhciBJU19GSU5EX0lOREVYID0gVFlQRSA9PSA2O1xuICB2YXIgTk9fSE9MRVMgPSBUWVBFID09IDUgfHwgSVNfRklORF9JTkRFWDtcbiAgdmFyIGNyZWF0ZSA9ICRjcmVhdGUgfHwgYXNjO1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBjYWxsYmFja2ZuLCB0aGF0KSB7XG4gICAgdmFyIE8gPSB0b09iamVjdCgkdGhpcyk7XG4gICAgdmFyIHNlbGYgPSBJT2JqZWN0KE8pO1xuICAgIHZhciBmID0gY3R4KGNhbGxiYWNrZm4sIHRoYXQsIDMpO1xuICAgIHZhciBsZW5ndGggPSB0b0xlbmd0aChzZWxmLmxlbmd0aCk7XG4gICAgdmFyIGluZGV4ID0gMDtcbiAgICB2YXIgcmVzdWx0ID0gSVNfTUFQID8gY3JlYXRlKCR0aGlzLCBsZW5ndGgpIDogSVNfRklMVEVSID8gY3JlYXRlKCR0aGlzLCAwKSA6IHVuZGVmaW5lZDtcbiAgICB2YXIgdmFsLCByZXM7XG4gICAgZm9yICg7bGVuZ3RoID4gaW5kZXg7IGluZGV4KyspIGlmIChOT19IT0xFUyB8fCBpbmRleCBpbiBzZWxmKSB7XG4gICAgICB2YWwgPSBzZWxmW2luZGV4XTtcbiAgICAgIHJlcyA9IGYodmFsLCBpbmRleCwgTyk7XG4gICAgICBpZiAoVFlQRSkge1xuICAgICAgICBpZiAoSVNfTUFQKSByZXN1bHRbaW5kZXhdID0gcmVzOyAgIC8vIG1hcFxuICAgICAgICBlbHNlIGlmIChyZXMpIHN3aXRjaCAoVFlQRSkge1xuICAgICAgICAgIGNhc2UgMzogcmV0dXJuIHRydWU7ICAgICAgICAgICAgIC8vIHNvbWVcbiAgICAgICAgICBjYXNlIDU6IHJldHVybiB2YWw7ICAgICAgICAgICAgICAvLyBmaW5kXG4gICAgICAgICAgY2FzZSA2OiByZXR1cm4gaW5kZXg7ICAgICAgICAgICAgLy8gZmluZEluZGV4XG4gICAgICAgICAgY2FzZSAyOiByZXN1bHQucHVzaCh2YWwpOyAgICAgICAgLy8gZmlsdGVyXG4gICAgICAgIH0gZWxzZSBpZiAoSVNfRVZFUlkpIHJldHVybiBmYWxzZTsgLy8gZXZlcnlcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIElTX0ZJTkRfSU5ERVggPyAtMSA6IElTX1NPTUUgfHwgSVNfRVZFUlkgPyBJU19FVkVSWSA6IHJlc3VsdDtcbiAgfTtcbn07XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi9faXMtYXJyYXknKTtcbnZhciBTUEVDSUVTID0gcmVxdWlyZSgnLi9fd2tzJykoJ3NwZWNpZXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob3JpZ2luYWwpIHtcbiAgdmFyIEM7XG4gIGlmIChpc0FycmF5KG9yaWdpbmFsKSkge1xuICAgIEMgPSBvcmlnaW5hbC5jb25zdHJ1Y3RvcjtcbiAgICAvLyBjcm9zcy1yZWFsbSBmYWxsYmFja1xuICAgIGlmICh0eXBlb2YgQyA9PSAnZnVuY3Rpb24nICYmIChDID09PSBBcnJheSB8fCBpc0FycmF5KEMucHJvdG90eXBlKSkpIEMgPSB1bmRlZmluZWQ7XG4gICAgaWYgKGlzT2JqZWN0KEMpKSB7XG4gICAgICBDID0gQ1tTUEVDSUVTXTtcbiAgICAgIGlmIChDID09PSBudWxsKSBDID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSByZXR1cm4gQyA9PT0gdW5kZWZpbmVkID8gQXJyYXkgOiBDO1xufTtcbiIsIi8vIDkuNC4yLjMgQXJyYXlTcGVjaWVzQ3JlYXRlKG9yaWdpbmFsQXJyYXksIGxlbmd0aClcbnZhciBzcGVjaWVzQ29uc3RydWN0b3IgPSByZXF1aXJlKCcuL19hcnJheS1zcGVjaWVzLWNvbnN0cnVjdG9yJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9yaWdpbmFsLCBsZW5ndGgpIHtcbiAgcmV0dXJuIG5ldyAoc3BlY2llc0NvbnN0cnVjdG9yKG9yaWdpbmFsKSkobGVuZ3RoKTtcbn07XG4iLCIvLyBnZXR0aW5nIHRhZyBmcm9tIDE5LjEuMy42IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcoKVxudmFyIGNvZiA9IHJlcXVpcmUoJy4vX2NvZicpO1xudmFyIFRBRyA9IHJlcXVpcmUoJy4vX3drcycpKCd0b1N0cmluZ1RhZycpO1xuLy8gRVMzIHdyb25nIGhlcmVcbnZhciBBUkcgPSBjb2YoZnVuY3Rpb24gKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpID09ICdBcmd1bWVudHMnO1xuXG4vLyBmYWxsYmFjayBmb3IgSUUxMSBTY3JpcHQgQWNjZXNzIERlbmllZCBlcnJvclxudmFyIHRyeUdldCA9IGZ1bmN0aW9uIChpdCwga2V5KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGl0W2tleV07XG4gIH0gY2F0Y2ggKGUpIHsgLyogZW1wdHkgKi8gfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIE8sIFQsIEI7XG4gIHJldHVybiBpdCA9PT0gdW5kZWZpbmVkID8gJ1VuZGVmaW5lZCcgOiBpdCA9PT0gbnVsbCA/ICdOdWxsJ1xuICAgIC8vIEBAdG9TdHJpbmdUYWcgY2FzZVxuICAgIDogdHlwZW9mIChUID0gdHJ5R2V0KE8gPSBPYmplY3QoaXQpLCBUQUcpKSA9PSAnc3RyaW5nJyA/IFRcbiAgICAvLyBidWlsdGluVGFnIGNhc2VcbiAgICA6IEFSRyA/IGNvZihPKVxuICAgIC8vIEVTMyBhcmd1bWVudHMgZmFsbGJhY2tcbiAgICA6IChCID0gY29mKE8pKSA9PSAnT2JqZWN0JyAmJiB0eXBlb2YgTy5jYWxsZWUgPT0gJ2Z1bmN0aW9uJyA/ICdBcmd1bWVudHMnIDogQjtcbn07XG4iLCJ2YXIgdG9TdHJpbmcgPSB7fS50b1N0cmluZztcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHRvU3RyaW5nLmNhbGwoaXQpLnNsaWNlKDgsIC0xKTtcbn07XG4iLCJ2YXIgY29yZSA9IG1vZHVsZS5leHBvcnRzID0geyB2ZXJzaW9uOiAnMi42LjUnIH07XG5pZiAodHlwZW9mIF9fZSA9PSAnbnVtYmVyJykgX19lID0gY29yZTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpO1xudmFyIGNyZWF0ZURlc2MgPSByZXF1aXJlKCcuL19wcm9wZXJ0eS1kZXNjJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iamVjdCwgaW5kZXgsIHZhbHVlKSB7XG4gIGlmIChpbmRleCBpbiBvYmplY3QpICRkZWZpbmVQcm9wZXJ0eS5mKG9iamVjdCwgaW5kZXgsIGNyZWF0ZURlc2MoMCwgdmFsdWUpKTtcbiAgZWxzZSBvYmplY3RbaW5kZXhdID0gdmFsdWU7XG59O1xuIiwiLy8gb3B0aW9uYWwgLyBzaW1wbGUgY29udGV4dCBiaW5kaW5nXG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi9fYS1mdW5jdGlvbicpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZm4sIHRoYXQsIGxlbmd0aCkge1xuICBhRnVuY3Rpb24oZm4pO1xuICBpZiAodGhhdCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZm47XG4gIHN3aXRjaCAobGVuZ3RoKSB7XG4gICAgY2FzZSAxOiByZXR1cm4gZnVuY3Rpb24gKGEpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEpO1xuICAgIH07XG4gICAgY2FzZSAyOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIpO1xuICAgIH07XG4gICAgY2FzZSAzOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIsIGMpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIsIGMpO1xuICAgIH07XG4gIH1cbiAgcmV0dXJuIGZ1bmN0aW9uICgvKiAuLi5hcmdzICovKSB7XG4gICAgcmV0dXJuIGZuLmFwcGx5KHRoYXQsIGFyZ3VtZW50cyk7XG4gIH07XG59O1xuIiwiLy8gNy4yLjEgUmVxdWlyZU9iamVjdENvZXJjaWJsZShhcmd1bWVudClcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmIChpdCA9PSB1bmRlZmluZWQpIHRocm93IFR5cGVFcnJvcihcIkNhbid0IGNhbGwgbWV0aG9kIG9uICBcIiArIGl0KTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsIi8vIFRoYW5rJ3MgSUU4IGZvciBoaXMgZnVubnkgZGVmaW5lUHJvcGVydHlcbm1vZHVsZS5leHBvcnRzID0gIXJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnYScsIHsgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9IH0pLmEgIT0gNztcbn0pO1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG52YXIgZG9jdW1lbnQgPSByZXF1aXJlKCcuL19nbG9iYWwnKS5kb2N1bWVudDtcbi8vIHR5cGVvZiBkb2N1bWVudC5jcmVhdGVFbGVtZW50IGlzICdvYmplY3QnIGluIG9sZCBJRVxudmFyIGlzID0gaXNPYmplY3QoZG9jdW1lbnQpICYmIGlzT2JqZWN0KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGlzID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdCkgOiB7fTtcbn07XG4iLCIvLyBJRSA4LSBkb24ndCBlbnVtIGJ1ZyBrZXlzXG5tb2R1bGUuZXhwb3J0cyA9IChcbiAgJ2NvbnN0cnVjdG9yLGhhc093blByb3BlcnR5LGlzUHJvdG90eXBlT2YscHJvcGVydHlJc0VudW1lcmFibGUsdG9Mb2NhbGVTdHJpbmcsdG9TdHJpbmcsdmFsdWVPZidcbikuc3BsaXQoJywnKTtcbiIsIi8vIGFsbCBlbnVtZXJhYmxlIG9iamVjdCBrZXlzLCBpbmNsdWRlcyBzeW1ib2xzXG52YXIgZ2V0S2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG52YXIgZ09QUyA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BzJyk7XG52YXIgcElFID0gcmVxdWlyZSgnLi9fb2JqZWN0LXBpZScpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIHJlc3VsdCA9IGdldEtleXMoaXQpO1xuICB2YXIgZ2V0U3ltYm9scyA9IGdPUFMuZjtcbiAgaWYgKGdldFN5bWJvbHMpIHtcbiAgICB2YXIgc3ltYm9scyA9IGdldFN5bWJvbHMoaXQpO1xuICAgIHZhciBpc0VudW0gPSBwSUUuZjtcbiAgICB2YXIgaSA9IDA7XG4gICAgdmFyIGtleTtcbiAgICB3aGlsZSAoc3ltYm9scy5sZW5ndGggPiBpKSBpZiAoaXNFbnVtLmNhbGwoaXQsIGtleSA9IHN5bWJvbHNbaSsrXSkpIHJlc3VsdC5wdXNoKGtleSk7XG4gIH0gcmV0dXJuIHJlc3VsdDtcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgY29yZSA9IHJlcXVpcmUoJy4vX2NvcmUnKTtcbnZhciBoaWRlID0gcmVxdWlyZSgnLi9faGlkZScpO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi9fcmVkZWZpbmUnKTtcbnZhciBjdHggPSByZXF1aXJlKCcuL19jdHgnKTtcbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcblxudmFyICRleHBvcnQgPSBmdW5jdGlvbiAodHlwZSwgbmFtZSwgc291cmNlKSB7XG4gIHZhciBJU19GT1JDRUQgPSB0eXBlICYgJGV4cG9ydC5GO1xuICB2YXIgSVNfR0xPQkFMID0gdHlwZSAmICRleHBvcnQuRztcbiAgdmFyIElTX1NUQVRJQyA9IHR5cGUgJiAkZXhwb3J0LlM7XG4gIHZhciBJU19QUk9UTyA9IHR5cGUgJiAkZXhwb3J0LlA7XG4gIHZhciBJU19CSU5EID0gdHlwZSAmICRleHBvcnQuQjtcbiAgdmFyIHRhcmdldCA9IElTX0dMT0JBTCA/IGdsb2JhbCA6IElTX1NUQVRJQyA/IGdsb2JhbFtuYW1lXSB8fCAoZ2xvYmFsW25hbWVdID0ge30pIDogKGdsb2JhbFtuYW1lXSB8fCB7fSlbUFJPVE9UWVBFXTtcbiAgdmFyIGV4cG9ydHMgPSBJU19HTE9CQUwgPyBjb3JlIDogY29yZVtuYW1lXSB8fCAoY29yZVtuYW1lXSA9IHt9KTtcbiAgdmFyIGV4cFByb3RvID0gZXhwb3J0c1tQUk9UT1RZUEVdIHx8IChleHBvcnRzW1BST1RPVFlQRV0gPSB7fSk7XG4gIHZhciBrZXksIG93biwgb3V0LCBleHA7XG4gIGlmIChJU19HTE9CQUwpIHNvdXJjZSA9IG5hbWU7XG4gIGZvciAoa2V5IGluIHNvdXJjZSkge1xuICAgIC8vIGNvbnRhaW5zIGluIG5hdGl2ZVxuICAgIG93biA9ICFJU19GT1JDRUQgJiYgdGFyZ2V0ICYmIHRhcmdldFtrZXldICE9PSB1bmRlZmluZWQ7XG4gICAgLy8gZXhwb3J0IG5hdGl2ZSBvciBwYXNzZWRcbiAgICBvdXQgPSAob3duID8gdGFyZ2V0IDogc291cmNlKVtrZXldO1xuICAgIC8vIGJpbmQgdGltZXJzIHRvIGdsb2JhbCBmb3IgY2FsbCBmcm9tIGV4cG9ydCBjb250ZXh0XG4gICAgZXhwID0gSVNfQklORCAmJiBvd24gPyBjdHgob3V0LCBnbG9iYWwpIDogSVNfUFJPVE8gJiYgdHlwZW9mIG91dCA9PSAnZnVuY3Rpb24nID8gY3R4KEZ1bmN0aW9uLmNhbGwsIG91dCkgOiBvdXQ7XG4gICAgLy8gZXh0ZW5kIGdsb2JhbFxuICAgIGlmICh0YXJnZXQpIHJlZGVmaW5lKHRhcmdldCwga2V5LCBvdXQsIHR5cGUgJiAkZXhwb3J0LlUpO1xuICAgIC8vIGV4cG9ydFxuICAgIGlmIChleHBvcnRzW2tleV0gIT0gb3V0KSBoaWRlKGV4cG9ydHMsIGtleSwgZXhwKTtcbiAgICBpZiAoSVNfUFJPVE8gJiYgZXhwUHJvdG9ba2V5XSAhPSBvdXQpIGV4cFByb3RvW2tleV0gPSBvdXQ7XG4gIH1cbn07XG5nbG9iYWwuY29yZSA9IGNvcmU7XG4vLyB0eXBlIGJpdG1hcFxuJGV4cG9ydC5GID0gMTsgICAvLyBmb3JjZWRcbiRleHBvcnQuRyA9IDI7ICAgLy8gZ2xvYmFsXG4kZXhwb3J0LlMgPSA0OyAgIC8vIHN0YXRpY1xuJGV4cG9ydC5QID0gODsgICAvLyBwcm90b1xuJGV4cG9ydC5CID0gMTY7ICAvLyBiaW5kXG4kZXhwb3J0LlcgPSAzMjsgIC8vIHdyYXBcbiRleHBvcnQuVSA9IDY0OyAgLy8gc2FmZVxuJGV4cG9ydC5SID0gMTI4OyAvLyByZWFsIHByb3RvIG1ldGhvZCBmb3IgYGxpYnJhcnlgXG5tb2R1bGUuZXhwb3J0cyA9ICRleHBvcnQ7XG4iLCJ2YXIgTUFUQ0ggPSByZXF1aXJlKCcuL193a3MnKSgnbWF0Y2gnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKEtFWSkge1xuICB2YXIgcmUgPSAvLi87XG4gIHRyeSB7XG4gICAgJy8uLydbS0VZXShyZSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0cnkge1xuICAgICAgcmVbTUFUQ0hdID0gZmFsc2U7XG4gICAgICByZXR1cm4gIScvLi8nW0tFWV0ocmUpO1xuICAgIH0gY2F0Y2ggKGYpIHsgLyogZW1wdHkgKi8gfVxuICB9IHJldHVybiB0cnVlO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGV4ZWMpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gISFleGVjKCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnJlcXVpcmUoJy4vZXM2LnJlZ2V4cC5leGVjJyk7XG52YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuL19yZWRlZmluZScpO1xudmFyIGhpZGUgPSByZXF1aXJlKCcuL19oaWRlJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuL19mYWlscycpO1xudmFyIGRlZmluZWQgPSByZXF1aXJlKCcuL19kZWZpbmVkJyk7XG52YXIgd2tzID0gcmVxdWlyZSgnLi9fd2tzJyk7XG52YXIgcmVnZXhwRXhlYyA9IHJlcXVpcmUoJy4vX3JlZ2V4cC1leGVjJyk7XG5cbnZhciBTUEVDSUVTID0gd2tzKCdzcGVjaWVzJyk7XG5cbnZhciBSRVBMQUNFX1NVUFBPUlRTX05BTUVEX0dST1VQUyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vICNyZXBsYWNlIG5lZWRzIGJ1aWx0LWluIHN1cHBvcnQgZm9yIG5hbWVkIGdyb3Vwcy5cbiAgLy8gI21hdGNoIHdvcmtzIGZpbmUgYmVjYXVzZSBpdCBqdXN0IHJldHVybiB0aGUgZXhlYyByZXN1bHRzLCBldmVuIGlmIGl0IGhhc1xuICAvLyBhIFwiZ3JvcHNcIiBwcm9wZXJ0eS5cbiAgdmFyIHJlID0gLy4vO1xuICByZS5leGVjID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICByZXN1bHQuZ3JvdXBzID0geyBhOiAnNycgfTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuICByZXR1cm4gJycucmVwbGFjZShyZSwgJyQ8YT4nKSAhPT0gJzcnO1xufSk7XG5cbnZhciBTUExJVF9XT1JLU19XSVRIX09WRVJXUklUVEVOX0VYRUMgPSAoZnVuY3Rpb24gKCkge1xuICAvLyBDaHJvbWUgNTEgaGFzIGEgYnVnZ3kgXCJzcGxpdFwiIGltcGxlbWVudGF0aW9uIHdoZW4gUmVnRXhwI2V4ZWMgIT09IG5hdGl2ZUV4ZWNcbiAgdmFyIHJlID0gLyg/OikvO1xuICB2YXIgb3JpZ2luYWxFeGVjID0gcmUuZXhlYztcbiAgcmUuZXhlYyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG9yaWdpbmFsRXhlYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9O1xuICB2YXIgcmVzdWx0ID0gJ2FiJy5zcGxpdChyZSk7XG4gIHJldHVybiByZXN1bHQubGVuZ3RoID09PSAyICYmIHJlc3VsdFswXSA9PT0gJ2EnICYmIHJlc3VsdFsxXSA9PT0gJ2InO1xufSkoKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoS0VZLCBsZW5ndGgsIGV4ZWMpIHtcbiAgdmFyIFNZTUJPTCA9IHdrcyhLRVkpO1xuXG4gIHZhciBERUxFR0FURVNfVE9fU1lNQk9MID0gIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICAvLyBTdHJpbmcgbWV0aG9kcyBjYWxsIHN5bWJvbC1uYW1lZCBSZWdFcCBtZXRob2RzXG4gICAgdmFyIE8gPSB7fTtcbiAgICBPW1NZTUJPTF0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9O1xuICAgIHJldHVybiAnJ1tLRVldKE8pICE9IDc7XG4gIH0pO1xuXG4gIHZhciBERUxFR0FURVNfVE9fRVhFQyA9IERFTEVHQVRFU19UT19TWU1CT0wgPyAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIC8vIFN5bWJvbC1uYW1lZCBSZWdFeHAgbWV0aG9kcyBjYWxsIC5leGVjXG4gICAgdmFyIGV4ZWNDYWxsZWQgPSBmYWxzZTtcbiAgICB2YXIgcmUgPSAvYS87XG4gICAgcmUuZXhlYyA9IGZ1bmN0aW9uICgpIHsgZXhlY0NhbGxlZCA9IHRydWU7IHJldHVybiBudWxsOyB9O1xuICAgIGlmIChLRVkgPT09ICdzcGxpdCcpIHtcbiAgICAgIC8vIFJlZ0V4cFtAQHNwbGl0XSBkb2Vzbid0IGNhbGwgdGhlIHJlZ2V4J3MgZXhlYyBtZXRob2QsIGJ1dCBmaXJzdCBjcmVhdGVzXG4gICAgICAvLyBhIG5ldyBvbmUuIFdlIG5lZWQgdG8gcmV0dXJuIHRoZSBwYXRjaGVkIHJlZ2V4IHdoZW4gY3JlYXRpbmcgdGhlIG5ldyBvbmUuXG4gICAgICByZS5jb25zdHJ1Y3RvciA9IHt9O1xuICAgICAgcmUuY29uc3RydWN0b3JbU1BFQ0lFU10gPSBmdW5jdGlvbiAoKSB7IHJldHVybiByZTsgfTtcbiAgICB9XG4gICAgcmVbU1lNQk9MXSgnJyk7XG4gICAgcmV0dXJuICFleGVjQ2FsbGVkO1xuICB9KSA6IHVuZGVmaW5lZDtcblxuICBpZiAoXG4gICAgIURFTEVHQVRFU19UT19TWU1CT0wgfHxcbiAgICAhREVMRUdBVEVTX1RPX0VYRUMgfHxcbiAgICAoS0VZID09PSAncmVwbGFjZScgJiYgIVJFUExBQ0VfU1VQUE9SVFNfTkFNRURfR1JPVVBTKSB8fFxuICAgIChLRVkgPT09ICdzcGxpdCcgJiYgIVNQTElUX1dPUktTX1dJVEhfT1ZFUldSSVRURU5fRVhFQylcbiAgKSB7XG4gICAgdmFyIG5hdGl2ZVJlZ0V4cE1ldGhvZCA9IC8uL1tTWU1CT0xdO1xuICAgIHZhciBmbnMgPSBleGVjKFxuICAgICAgZGVmaW5lZCxcbiAgICAgIFNZTUJPTCxcbiAgICAgICcnW0tFWV0sXG4gICAgICBmdW5jdGlvbiBtYXliZUNhbGxOYXRpdmUobmF0aXZlTWV0aG9kLCByZWdleHAsIHN0ciwgYXJnMiwgZm9yY2VTdHJpbmdNZXRob2QpIHtcbiAgICAgICAgaWYgKHJlZ2V4cC5leGVjID09PSByZWdleHBFeGVjKSB7XG4gICAgICAgICAgaWYgKERFTEVHQVRFU19UT19TWU1CT0wgJiYgIWZvcmNlU3RyaW5nTWV0aG9kKSB7XG4gICAgICAgICAgICAvLyBUaGUgbmF0aXZlIFN0cmluZyBtZXRob2QgYWxyZWFkeSBkZWxlZ2F0ZXMgdG8gQEBtZXRob2QgKHRoaXNcbiAgICAgICAgICAgIC8vIHBvbHlmaWxsZWQgZnVuY3Rpb24pLCBsZWFzaW5nIHRvIGluZmluaXRlIHJlY3Vyc2lvbi5cbiAgICAgICAgICAgIC8vIFdlIGF2b2lkIGl0IGJ5IGRpcmVjdGx5IGNhbGxpbmcgdGhlIG5hdGl2ZSBAQG1ldGhvZCBtZXRob2QuXG4gICAgICAgICAgICByZXR1cm4geyBkb25lOiB0cnVlLCB2YWx1ZTogbmF0aXZlUmVnRXhwTWV0aG9kLmNhbGwocmVnZXhwLCBzdHIsIGFyZzIpIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB7IGRvbmU6IHRydWUsIHZhbHVlOiBuYXRpdmVNZXRob2QuY2FsbChzdHIsIHJlZ2V4cCwgYXJnMikgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBkb25lOiBmYWxzZSB9O1xuICAgICAgfVxuICAgICk7XG4gICAgdmFyIHN0cmZuID0gZm5zWzBdO1xuICAgIHZhciByeGZuID0gZm5zWzFdO1xuXG4gICAgcmVkZWZpbmUoU3RyaW5nLnByb3RvdHlwZSwgS0VZLCBzdHJmbik7XG4gICAgaGlkZShSZWdFeHAucHJvdG90eXBlLCBTWU1CT0wsIGxlbmd0aCA9PSAyXG4gICAgICAvLyAyMS4yLjUuOCBSZWdFeHAucHJvdG90eXBlW0BAcmVwbGFjZV0oc3RyaW5nLCByZXBsYWNlVmFsdWUpXG4gICAgICAvLyAyMS4yLjUuMTEgUmVnRXhwLnByb3RvdHlwZVtAQHNwbGl0XShzdHJpbmcsIGxpbWl0KVxuICAgICAgPyBmdW5jdGlvbiAoc3RyaW5nLCBhcmcpIHsgcmV0dXJuIHJ4Zm4uY2FsbChzdHJpbmcsIHRoaXMsIGFyZyk7IH1cbiAgICAgIC8vIDIxLjIuNS42IFJlZ0V4cC5wcm90b3R5cGVbQEBtYXRjaF0oc3RyaW5nKVxuICAgICAgLy8gMjEuMi41LjkgUmVnRXhwLnByb3RvdHlwZVtAQHNlYXJjaF0oc3RyaW5nKVxuICAgICAgOiBmdW5jdGlvbiAoc3RyaW5nKSB7IHJldHVybiByeGZuLmNhbGwoc3RyaW5nLCB0aGlzKTsgfVxuICAgICk7XG4gIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG4vLyAyMS4yLjUuMyBnZXQgUmVnRXhwLnByb3RvdHlwZS5mbGFnc1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIHRoYXQgPSBhbk9iamVjdCh0aGlzKTtcbiAgdmFyIHJlc3VsdCA9ICcnO1xuICBpZiAodGhhdC5nbG9iYWwpIHJlc3VsdCArPSAnZyc7XG4gIGlmICh0aGF0Lmlnbm9yZUNhc2UpIHJlc3VsdCArPSAnaSc7XG4gIGlmICh0aGF0Lm11bHRpbGluZSkgcmVzdWx0ICs9ICdtJztcbiAgaWYgKHRoYXQudW5pY29kZSkgcmVzdWx0ICs9ICd1JztcbiAgaWYgKHRoYXQuc3RpY2t5KSByZXN1bHQgKz0gJ3knO1xuICByZXR1cm4gcmVzdWx0O1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9fc2hhcmVkJykoJ25hdGl2ZS1mdW5jdGlvbi10by1zdHJpbmcnLCBGdW5jdGlvbi50b1N0cmluZyk7XG4iLCIvLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvODYjaXNzdWVjb21tZW50LTExNTc1OTAyOFxudmFyIGdsb2JhbCA9IG1vZHVsZS5leHBvcnRzID0gdHlwZW9mIHdpbmRvdyAhPSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuTWF0aCA9PSBNYXRoXG4gID8gd2luZG93IDogdHlwZW9mIHNlbGYgIT0gJ3VuZGVmaW5lZCcgJiYgc2VsZi5NYXRoID09IE1hdGggPyBzZWxmXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXctZnVuY1xuICA6IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5pZiAodHlwZW9mIF9fZyA9PSAnbnVtYmVyJykgX19nID0gZ2xvYmFsOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG4iLCJ2YXIgaGFzT3duUHJvcGVydHkgPSB7fS5oYXNPd25Qcm9wZXJ0eTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCBrZXkpIHtcbiAgcmV0dXJuIGhhc093blByb3BlcnR5LmNhbGwoaXQsIGtleSk7XG59O1xuIiwidmFyIGRQID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJyk7XG52YXIgY3JlYXRlRGVzYyA9IHJlcXVpcmUoJy4vX3Byb3BlcnR5LWRlc2MnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIGRQLmYob2JqZWN0LCBrZXksIGNyZWF0ZURlc2MoMSwgdmFsdWUpKTtcbn0gOiBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIG9iamVjdFtrZXldID0gdmFsdWU7XG4gIHJldHVybiBvYmplY3Q7XG59O1xuIiwidmFyIGRvY3VtZW50ID0gcmVxdWlyZSgnLi9fZ2xvYmFsJykuZG9jdW1lbnQ7XG5tb2R1bGUuZXhwb3J0cyA9IGRvY3VtZW50ICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiIsIm1vZHVsZS5leHBvcnRzID0gIXJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgJiYgIXJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcXVpcmUoJy4vX2RvbS1jcmVhdGUnKSgnZGl2JyksICdhJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSkuYSAhPSA3O1xufSk7XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBzZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4vX3NldC1wcm90bycpLnNldDtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHRoYXQsIHRhcmdldCwgQykge1xuICB2YXIgUyA9IHRhcmdldC5jb25zdHJ1Y3RvcjtcbiAgdmFyIFA7XG4gIGlmIChTICE9PSBDICYmIHR5cGVvZiBTID09ICdmdW5jdGlvbicgJiYgKFAgPSBTLnByb3RvdHlwZSkgIT09IEMucHJvdG90eXBlICYmIGlzT2JqZWN0KFApICYmIHNldFByb3RvdHlwZU9mKSB7XG4gICAgc2V0UHJvdG90eXBlT2YodGhhdCwgUCk7XG4gIH0gcmV0dXJuIHRoYXQ7XG59O1xuIiwiLy8gZmFsbGJhY2sgZm9yIG5vbi1hcnJheS1saWtlIEVTMyBhbmQgbm9uLWVudW1lcmFibGUgb2xkIFY4IHN0cmluZ3NcbnZhciBjb2YgPSByZXF1aXJlKCcuL19jb2YnKTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnNcbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0KCd6JykucHJvcGVydHlJc0VudW1lcmFibGUoMCkgPyBPYmplY3QgOiBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGNvZihpdCkgPT0gJ1N0cmluZycgPyBpdC5zcGxpdCgnJykgOiBPYmplY3QoaXQpO1xufTtcbiIsIi8vIGNoZWNrIG9uIGRlZmF1bHQgQXJyYXkgaXRlcmF0b3JcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuL19pdGVyYXRvcnMnKTtcbnZhciBJVEVSQVRPUiA9IHJlcXVpcmUoJy4vX3drcycpKCdpdGVyYXRvcicpO1xudmFyIEFycmF5UHJvdG8gPSBBcnJheS5wcm90b3R5cGU7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpdCAhPT0gdW5kZWZpbmVkICYmIChJdGVyYXRvcnMuQXJyYXkgPT09IGl0IHx8IEFycmF5UHJvdG9bSVRFUkFUT1JdID09PSBpdCk7XG59O1xuIiwiLy8gNy4yLjIgSXNBcnJheShhcmd1bWVudClcbnZhciBjb2YgPSByZXF1aXJlKCcuL19jb2YnKTtcbm1vZHVsZS5leHBvcnRzID0gQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbiBpc0FycmF5KGFyZykge1xuICByZXR1cm4gY29mKGFyZykgPT0gJ0FycmF5Jztcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdHlwZW9mIGl0ID09PSAnb2JqZWN0JyA/IGl0ICE9PSBudWxsIDogdHlwZW9mIGl0ID09PSAnZnVuY3Rpb24nO1xufTtcbiIsIi8vIDcuMi44IElzUmVnRXhwKGFyZ3VtZW50KVxudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG52YXIgY29mID0gcmVxdWlyZSgnLi9fY29mJyk7XG52YXIgTUFUQ0ggPSByZXF1aXJlKCcuL193a3MnKSgnbWF0Y2gnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBpc1JlZ0V4cDtcbiAgcmV0dXJuIGlzT2JqZWN0KGl0KSAmJiAoKGlzUmVnRXhwID0gaXRbTUFUQ0hdKSAhPT0gdW5kZWZpbmVkID8gISFpc1JlZ0V4cCA6IGNvZihpdCkgPT0gJ1JlZ0V4cCcpO1xufTtcbiIsIi8vIGNhbGwgc29tZXRoaW5nIG9uIGl0ZXJhdG9yIHN0ZXAgd2l0aCBzYWZlIGNsb3Npbmcgb24gZXJyb3JcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXRlcmF0b3IsIGZuLCB2YWx1ZSwgZW50cmllcykge1xuICB0cnkge1xuICAgIHJldHVybiBlbnRyaWVzID8gZm4oYW5PYmplY3QodmFsdWUpWzBdLCB2YWx1ZVsxXSkgOiBmbih2YWx1ZSk7XG4gIC8vIDcuNC42IEl0ZXJhdG9yQ2xvc2UoaXRlcmF0b3IsIGNvbXBsZXRpb24pXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB2YXIgcmV0ID0gaXRlcmF0b3JbJ3JldHVybiddO1xuICAgIGlmIChyZXQgIT09IHVuZGVmaW5lZCkgYW5PYmplY3QocmV0LmNhbGwoaXRlcmF0b3IpKTtcbiAgICB0aHJvdyBlO1xuICB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4vX29iamVjdC1jcmVhdGUnKTtcbnZhciBkZXNjcmlwdG9yID0gcmVxdWlyZSgnLi9fcHJvcGVydHktZGVzYycpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi9fc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBJdGVyYXRvclByb3RvdHlwZSA9IHt9O1xuXG4vLyAyNS4xLjIuMS4xICVJdGVyYXRvclByb3RvdHlwZSVbQEBpdGVyYXRvcl0oKVxucmVxdWlyZSgnLi9faGlkZScpKEl0ZXJhdG9yUHJvdG90eXBlLCByZXF1aXJlKCcuL193a3MnKSgnaXRlcmF0b3InKSwgZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBOQU1FLCBuZXh0KSB7XG4gIENvbnN0cnVjdG9yLnByb3RvdHlwZSA9IGNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSwgeyBuZXh0OiBkZXNjcmlwdG9yKDEsIG5leHQpIH0pO1xuICBzZXRUb1N0cmluZ1RhZyhDb25zdHJ1Y3RvciwgTkFNRSArICcgSXRlcmF0b3InKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgTElCUkFSWSA9IHJlcXVpcmUoJy4vX2xpYnJhcnknKTtcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuL19yZWRlZmluZScpO1xudmFyIGhpZGUgPSByZXF1aXJlKCcuL19oaWRlJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi9faXRlcmF0b3JzJyk7XG52YXIgJGl0ZXJDcmVhdGUgPSByZXF1aXJlKCcuL19pdGVyLWNyZWF0ZScpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi9fc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4vX29iamVjdC1ncG8nKTtcbnZhciBJVEVSQVRPUiA9IHJlcXVpcmUoJy4vX3drcycpKCdpdGVyYXRvcicpO1xudmFyIEJVR0dZID0gIShbXS5rZXlzICYmICduZXh0JyBpbiBbXS5rZXlzKCkpOyAvLyBTYWZhcmkgaGFzIGJ1Z2d5IGl0ZXJhdG9ycyB3L28gYG5leHRgXG52YXIgRkZfSVRFUkFUT1IgPSAnQEBpdGVyYXRvcic7XG52YXIgS0VZUyA9ICdrZXlzJztcbnZhciBWQUxVRVMgPSAndmFsdWVzJztcblxudmFyIHJldHVyblRoaXMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChCYXNlLCBOQU1FLCBDb25zdHJ1Y3RvciwgbmV4dCwgREVGQVVMVCwgSVNfU0VULCBGT1JDRUQpIHtcbiAgJGl0ZXJDcmVhdGUoQ29uc3RydWN0b3IsIE5BTUUsIG5leHQpO1xuICB2YXIgZ2V0TWV0aG9kID0gZnVuY3Rpb24gKGtpbmQpIHtcbiAgICBpZiAoIUJVR0dZICYmIGtpbmQgaW4gcHJvdG8pIHJldHVybiBwcm90b1traW5kXTtcbiAgICBzd2l0Y2ggKGtpbmQpIHtcbiAgICAgIGNhc2UgS0VZUzogcmV0dXJuIGZ1bmN0aW9uIGtleXMoKSB7IHJldHVybiBuZXcgQ29uc3RydWN0b3IodGhpcywga2luZCk7IH07XG4gICAgICBjYXNlIFZBTFVFUzogcmV0dXJuIGZ1bmN0aW9uIHZhbHVlcygpIHsgcmV0dXJuIG5ldyBDb25zdHJ1Y3Rvcih0aGlzLCBraW5kKTsgfTtcbiAgICB9IHJldHVybiBmdW5jdGlvbiBlbnRyaWVzKCkgeyByZXR1cm4gbmV3IENvbnN0cnVjdG9yKHRoaXMsIGtpbmQpOyB9O1xuICB9O1xuICB2YXIgVEFHID0gTkFNRSArICcgSXRlcmF0b3InO1xuICB2YXIgREVGX1ZBTFVFUyA9IERFRkFVTFQgPT0gVkFMVUVTO1xuICB2YXIgVkFMVUVTX0JVRyA9IGZhbHNlO1xuICB2YXIgcHJvdG8gPSBCYXNlLnByb3RvdHlwZTtcbiAgdmFyICRuYXRpdmUgPSBwcm90b1tJVEVSQVRPUl0gfHwgcHJvdG9bRkZfSVRFUkFUT1JdIHx8IERFRkFVTFQgJiYgcHJvdG9bREVGQVVMVF07XG4gIHZhciAkZGVmYXVsdCA9ICRuYXRpdmUgfHwgZ2V0TWV0aG9kKERFRkFVTFQpO1xuICB2YXIgJGVudHJpZXMgPSBERUZBVUxUID8gIURFRl9WQUxVRVMgPyAkZGVmYXVsdCA6IGdldE1ldGhvZCgnZW50cmllcycpIDogdW5kZWZpbmVkO1xuICB2YXIgJGFueU5hdGl2ZSA9IE5BTUUgPT0gJ0FycmF5JyA/IHByb3RvLmVudHJpZXMgfHwgJG5hdGl2ZSA6ICRuYXRpdmU7XG4gIHZhciBtZXRob2RzLCBrZXksIEl0ZXJhdG9yUHJvdG90eXBlO1xuICAvLyBGaXggbmF0aXZlXG4gIGlmICgkYW55TmF0aXZlKSB7XG4gICAgSXRlcmF0b3JQcm90b3R5cGUgPSBnZXRQcm90b3R5cGVPZigkYW55TmF0aXZlLmNhbGwobmV3IEJhc2UoKSkpO1xuICAgIGlmIChJdGVyYXRvclByb3RvdHlwZSAhPT0gT2JqZWN0LnByb3RvdHlwZSAmJiBJdGVyYXRvclByb3RvdHlwZS5uZXh0KSB7XG4gICAgICAvLyBTZXQgQEB0b1N0cmluZ1RhZyB0byBuYXRpdmUgaXRlcmF0b3JzXG4gICAgICBzZXRUb1N0cmluZ1RhZyhJdGVyYXRvclByb3RvdHlwZSwgVEFHLCB0cnVlKTtcbiAgICAgIC8vIGZpeCBmb3Igc29tZSBvbGQgZW5naW5lc1xuICAgICAgaWYgKCFMSUJSQVJZICYmIHR5cGVvZiBJdGVyYXRvclByb3RvdHlwZVtJVEVSQVRPUl0gIT0gJ2Z1bmN0aW9uJykgaGlkZShJdGVyYXRvclByb3RvdHlwZSwgSVRFUkFUT1IsIHJldHVyblRoaXMpO1xuICAgIH1cbiAgfVxuICAvLyBmaXggQXJyYXkje3ZhbHVlcywgQEBpdGVyYXRvcn0ubmFtZSBpbiBWOCAvIEZGXG4gIGlmIChERUZfVkFMVUVTICYmICRuYXRpdmUgJiYgJG5hdGl2ZS5uYW1lICE9PSBWQUxVRVMpIHtcbiAgICBWQUxVRVNfQlVHID0gdHJ1ZTtcbiAgICAkZGVmYXVsdCA9IGZ1bmN0aW9uIHZhbHVlcygpIHsgcmV0dXJuICRuYXRpdmUuY2FsbCh0aGlzKTsgfTtcbiAgfVxuICAvLyBEZWZpbmUgaXRlcmF0b3JcbiAgaWYgKCghTElCUkFSWSB8fCBGT1JDRUQpICYmIChCVUdHWSB8fCBWQUxVRVNfQlVHIHx8ICFwcm90b1tJVEVSQVRPUl0pKSB7XG4gICAgaGlkZShwcm90bywgSVRFUkFUT1IsICRkZWZhdWx0KTtcbiAgfVxuICAvLyBQbHVnIGZvciBsaWJyYXJ5XG4gIEl0ZXJhdG9yc1tOQU1FXSA9ICRkZWZhdWx0O1xuICBJdGVyYXRvcnNbVEFHXSA9IHJldHVyblRoaXM7XG4gIGlmIChERUZBVUxUKSB7XG4gICAgbWV0aG9kcyA9IHtcbiAgICAgIHZhbHVlczogREVGX1ZBTFVFUyA/ICRkZWZhdWx0IDogZ2V0TWV0aG9kKFZBTFVFUyksXG4gICAgICBrZXlzOiBJU19TRVQgPyAkZGVmYXVsdCA6IGdldE1ldGhvZChLRVlTKSxcbiAgICAgIGVudHJpZXM6ICRlbnRyaWVzXG4gICAgfTtcbiAgICBpZiAoRk9SQ0VEKSBmb3IgKGtleSBpbiBtZXRob2RzKSB7XG4gICAgICBpZiAoIShrZXkgaW4gcHJvdG8pKSByZWRlZmluZShwcm90bywga2V5LCBtZXRob2RzW2tleV0pO1xuICAgIH0gZWxzZSAkZXhwb3J0KCRleHBvcnQuUCArICRleHBvcnQuRiAqIChCVUdHWSB8fCBWQUxVRVNfQlVHKSwgTkFNRSwgbWV0aG9kcyk7XG4gIH1cbiAgcmV0dXJuIG1ldGhvZHM7XG59O1xuIiwidmFyIElURVJBVE9SID0gcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyk7XG52YXIgU0FGRV9DTE9TSU5HID0gZmFsc2U7XG5cbnRyeSB7XG4gIHZhciByaXRlciA9IFs3XVtJVEVSQVRPUl0oKTtcbiAgcml0ZXJbJ3JldHVybiddID0gZnVuY3Rpb24gKCkgeyBTQUZFX0NMT1NJTkcgPSB0cnVlOyB9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdGhyb3ctbGl0ZXJhbFxuICBBcnJheS5mcm9tKHJpdGVyLCBmdW5jdGlvbiAoKSB7IHRocm93IDI7IH0pO1xufSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGV4ZWMsIHNraXBDbG9zaW5nKSB7XG4gIGlmICghc2tpcENsb3NpbmcgJiYgIVNBRkVfQ0xPU0lORykgcmV0dXJuIGZhbHNlO1xuICB2YXIgc2FmZSA9IGZhbHNlO1xuICB0cnkge1xuICAgIHZhciBhcnIgPSBbN107XG4gICAgdmFyIGl0ZXIgPSBhcnJbSVRFUkFUT1JdKCk7XG4gICAgaXRlci5uZXh0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4geyBkb25lOiBzYWZlID0gdHJ1ZSB9OyB9O1xuICAgIGFycltJVEVSQVRPUl0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiBpdGVyOyB9O1xuICAgIGV4ZWMoYXJyKTtcbiAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG4gIHJldHVybiBzYWZlO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGRvbmUsIHZhbHVlKSB7XG4gIHJldHVybiB7IHZhbHVlOiB2YWx1ZSwgZG9uZTogISFkb25lIH07XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSB7fTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZmFsc2U7XG4iLCJ2YXIgTUVUQSA9IHJlcXVpcmUoJy4vX3VpZCcpKCdtZXRhJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBzZXREZXNjID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJykuZjtcbnZhciBpZCA9IDA7XG52YXIgaXNFeHRlbnNpYmxlID0gT2JqZWN0LmlzRXh0ZW5zaWJsZSB8fCBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0cnVlO1xufTtcbnZhciBGUkVFWkUgPSAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBpc0V4dGVuc2libGUoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHt9KSk7XG59KTtcbnZhciBzZXRNZXRhID0gZnVuY3Rpb24gKGl0KSB7XG4gIHNldERlc2MoaXQsIE1FVEEsIHsgdmFsdWU6IHtcbiAgICBpOiAnTycgKyArK2lkLCAvLyBvYmplY3QgSURcbiAgICB3OiB7fSAgICAgICAgICAvLyB3ZWFrIGNvbGxlY3Rpb25zIElEc1xuICB9IH0pO1xufTtcbnZhciBmYXN0S2V5ID0gZnVuY3Rpb24gKGl0LCBjcmVhdGUpIHtcbiAgLy8gcmV0dXJuIHByaW1pdGl2ZSB3aXRoIHByZWZpeFxuICBpZiAoIWlzT2JqZWN0KGl0KSkgcmV0dXJuIHR5cGVvZiBpdCA9PSAnc3ltYm9sJyA/IGl0IDogKHR5cGVvZiBpdCA9PSAnc3RyaW5nJyA/ICdTJyA6ICdQJykgKyBpdDtcbiAgaWYgKCFoYXMoaXQsIE1FVEEpKSB7XG4gICAgLy8gY2FuJ3Qgc2V0IG1ldGFkYXRhIHRvIHVuY2F1Z2h0IGZyb3plbiBvYmplY3RcbiAgICBpZiAoIWlzRXh0ZW5zaWJsZShpdCkpIHJldHVybiAnRic7XG4gICAgLy8gbm90IG5lY2Vzc2FyeSB0byBhZGQgbWV0YWRhdGFcbiAgICBpZiAoIWNyZWF0ZSkgcmV0dXJuICdFJztcbiAgICAvLyBhZGQgbWlzc2luZyBtZXRhZGF0YVxuICAgIHNldE1ldGEoaXQpO1xuICAvLyByZXR1cm4gb2JqZWN0IElEXG4gIH0gcmV0dXJuIGl0W01FVEFdLmk7XG59O1xudmFyIGdldFdlYWsgPSBmdW5jdGlvbiAoaXQsIGNyZWF0ZSkge1xuICBpZiAoIWhhcyhpdCwgTUVUQSkpIHtcbiAgICAvLyBjYW4ndCBzZXQgbWV0YWRhdGEgdG8gdW5jYXVnaHQgZnJvemVuIG9iamVjdFxuICAgIGlmICghaXNFeHRlbnNpYmxlKGl0KSkgcmV0dXJuIHRydWU7XG4gICAgLy8gbm90IG5lY2Vzc2FyeSB0byBhZGQgbWV0YWRhdGFcbiAgICBpZiAoIWNyZWF0ZSkgcmV0dXJuIGZhbHNlO1xuICAgIC8vIGFkZCBtaXNzaW5nIG1ldGFkYXRhXG4gICAgc2V0TWV0YShpdCk7XG4gIC8vIHJldHVybiBoYXNoIHdlYWsgY29sbGVjdGlvbnMgSURzXG4gIH0gcmV0dXJuIGl0W01FVEFdLnc7XG59O1xuLy8gYWRkIG1ldGFkYXRhIG9uIGZyZWV6ZS1mYW1pbHkgbWV0aG9kcyBjYWxsaW5nXG52YXIgb25GcmVlemUgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKEZSRUVaRSAmJiBtZXRhLk5FRUQgJiYgaXNFeHRlbnNpYmxlKGl0KSAmJiAhaGFzKGl0LCBNRVRBKSkgc2V0TWV0YShpdCk7XG4gIHJldHVybiBpdDtcbn07XG52YXIgbWV0YSA9IG1vZHVsZS5leHBvcnRzID0ge1xuICBLRVk6IE1FVEEsXG4gIE5FRUQ6IGZhbHNlLFxuICBmYXN0S2V5OiBmYXN0S2V5LFxuICBnZXRXZWFrOiBnZXRXZWFrLFxuICBvbkZyZWV6ZTogb25GcmVlemVcbn07XG4iLCIndXNlIHN0cmljdCc7XG4vLyAxOS4xLjIuMSBPYmplY3QuYXNzaWduKHRhcmdldCwgc291cmNlLCAuLi4pXG52YXIgZ2V0S2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG52YXIgZ09QUyA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BzJyk7XG52YXIgcElFID0gcmVxdWlyZSgnLi9fb2JqZWN0LXBpZScpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8tb2JqZWN0Jyk7XG52YXIgSU9iamVjdCA9IHJlcXVpcmUoJy4vX2lvYmplY3QnKTtcbnZhciAkYXNzaWduID0gT2JqZWN0LmFzc2lnbjtcblxuLy8gc2hvdWxkIHdvcmsgd2l0aCBzeW1ib2xzIGFuZCBzaG91bGQgaGF2ZSBkZXRlcm1pbmlzdGljIHByb3BlcnR5IG9yZGVyIChWOCBidWcpXG5tb2R1bGUuZXhwb3J0cyA9ICEkYXNzaWduIHx8IHJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24gKCkge1xuICB2YXIgQSA9IHt9O1xuICB2YXIgQiA9IHt9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgdmFyIFMgPSBTeW1ib2woKTtcbiAgdmFyIEsgPSAnYWJjZGVmZ2hpamtsbW5vcHFyc3QnO1xuICBBW1NdID0gNztcbiAgSy5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbiAoaykgeyBCW2tdID0gazsgfSk7XG4gIHJldHVybiAkYXNzaWduKHt9LCBBKVtTXSAhPSA3IHx8IE9iamVjdC5rZXlzKCRhc3NpZ24oe30sIEIpKS5qb2luKCcnKSAhPSBLO1xufSkgPyBmdW5jdGlvbiBhc3NpZ24odGFyZ2V0LCBzb3VyY2UpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICB2YXIgVCA9IHRvT2JqZWN0KHRhcmdldCk7XG4gIHZhciBhTGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgdmFyIGluZGV4ID0gMTtcbiAgdmFyIGdldFN5bWJvbHMgPSBnT1BTLmY7XG4gIHZhciBpc0VudW0gPSBwSUUuZjtcbiAgd2hpbGUgKGFMZW4gPiBpbmRleCkge1xuICAgIHZhciBTID0gSU9iamVjdChhcmd1bWVudHNbaW5kZXgrK10pO1xuICAgIHZhciBrZXlzID0gZ2V0U3ltYm9scyA/IGdldEtleXMoUykuY29uY2F0KGdldFN5bWJvbHMoUykpIDogZ2V0S2V5cyhTKTtcbiAgICB2YXIgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gICAgdmFyIGogPSAwO1xuICAgIHZhciBrZXk7XG4gICAgd2hpbGUgKGxlbmd0aCA+IGopIGlmIChpc0VudW0uY2FsbChTLCBrZXkgPSBrZXlzW2orK10pKSBUW2tleV0gPSBTW2tleV07XG4gIH0gcmV0dXJuIFQ7XG59IDogJGFzc2lnbjtcbiIsIi8vIDE5LjEuMi4yIC8gMTUuMi4zLjUgT2JqZWN0LmNyZWF0ZShPIFssIFByb3BlcnRpZXNdKVxudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgZFBzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwcycpO1xudmFyIGVudW1CdWdLZXlzID0gcmVxdWlyZSgnLi9fZW51bS1idWcta2V5cycpO1xudmFyIElFX1BST1RPID0gcmVxdWlyZSgnLi9fc2hhcmVkLWtleScpKCdJRV9QUk9UTycpO1xudmFyIEVtcHR5ID0gZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9O1xudmFyIFBST1RPVFlQRSA9ICdwcm90b3R5cGUnO1xuXG4vLyBDcmVhdGUgb2JqZWN0IHdpdGggZmFrZSBgbnVsbGAgcHJvdG90eXBlOiB1c2UgaWZyYW1lIE9iamVjdCB3aXRoIGNsZWFyZWQgcHJvdG90eXBlXG52YXIgY3JlYXRlRGljdCA9IGZ1bmN0aW9uICgpIHtcbiAgLy8gVGhyYXNoLCB3YXN0ZSBhbmQgc29kb215OiBJRSBHQyBidWdcbiAgdmFyIGlmcmFtZSA9IHJlcXVpcmUoJy4vX2RvbS1jcmVhdGUnKSgnaWZyYW1lJyk7XG4gIHZhciBpID0gZW51bUJ1Z0tleXMubGVuZ3RoO1xuICB2YXIgbHQgPSAnPCc7XG4gIHZhciBndCA9ICc+JztcbiAgdmFyIGlmcmFtZURvY3VtZW50O1xuICBpZnJhbWUuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgcmVxdWlyZSgnLi9faHRtbCcpLmFwcGVuZENoaWxkKGlmcmFtZSk7XG4gIGlmcmFtZS5zcmMgPSAnamF2YXNjcmlwdDonOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXNjcmlwdC11cmxcbiAgLy8gY3JlYXRlRGljdCA9IGlmcmFtZS5jb250ZW50V2luZG93Lk9iamVjdDtcbiAgLy8gaHRtbC5yZW1vdmVDaGlsZChpZnJhbWUpO1xuICBpZnJhbWVEb2N1bWVudCA9IGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50O1xuICBpZnJhbWVEb2N1bWVudC5vcGVuKCk7XG4gIGlmcmFtZURvY3VtZW50LndyaXRlKGx0ICsgJ3NjcmlwdCcgKyBndCArICdkb2N1bWVudC5GPU9iamVjdCcgKyBsdCArICcvc2NyaXB0JyArIGd0KTtcbiAgaWZyYW1lRG9jdW1lbnQuY2xvc2UoKTtcbiAgY3JlYXRlRGljdCA9IGlmcmFtZURvY3VtZW50LkY7XG4gIHdoaWxlIChpLS0pIGRlbGV0ZSBjcmVhdGVEaWN0W1BST1RPVFlQRV1bZW51bUJ1Z0tleXNbaV1dO1xuICByZXR1cm4gY3JlYXRlRGljdCgpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QuY3JlYXRlIHx8IGZ1bmN0aW9uIGNyZWF0ZShPLCBQcm9wZXJ0aWVzKSB7XG4gIHZhciByZXN1bHQ7XG4gIGlmIChPICE9PSBudWxsKSB7XG4gICAgRW1wdHlbUFJPVE9UWVBFXSA9IGFuT2JqZWN0KE8pO1xuICAgIHJlc3VsdCA9IG5ldyBFbXB0eSgpO1xuICAgIEVtcHR5W1BST1RPVFlQRV0gPSBudWxsO1xuICAgIC8vIGFkZCBcIl9fcHJvdG9fX1wiIGZvciBPYmplY3QuZ2V0UHJvdG90eXBlT2YgcG9seWZpbGxcbiAgICByZXN1bHRbSUVfUFJPVE9dID0gTztcbiAgfSBlbHNlIHJlc3VsdCA9IGNyZWF0ZURpY3QoKTtcbiAgcmV0dXJuIFByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCA/IHJlc3VsdCA6IGRQcyhyZXN1bHQsIFByb3BlcnRpZXMpO1xufTtcbiIsInZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIElFOF9ET01fREVGSU5FID0gcmVxdWlyZSgnLi9faWU4LWRvbS1kZWZpbmUnKTtcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4vX3RvLXByaW1pdGl2ZScpO1xudmFyIGRQID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xuXG5leHBvcnRzLmYgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpID8gT2JqZWN0LmRlZmluZVByb3BlcnR5IDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcykge1xuICBhbk9iamVjdChPKTtcbiAgUCA9IHRvUHJpbWl0aXZlKFAsIHRydWUpO1xuICBhbk9iamVjdChBdHRyaWJ1dGVzKTtcbiAgaWYgKElFOF9ET01fREVGSU5FKSB0cnkge1xuICAgIHJldHVybiBkUChPLCBQLCBBdHRyaWJ1dGVzKTtcbiAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG4gIGlmICgnZ2V0JyBpbiBBdHRyaWJ1dGVzIHx8ICdzZXQnIGluIEF0dHJpYnV0ZXMpIHRocm93IFR5cGVFcnJvcignQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQhJyk7XG4gIGlmICgndmFsdWUnIGluIEF0dHJpYnV0ZXMpIE9bUF0gPSBBdHRyaWJ1dGVzLnZhbHVlO1xuICByZXR1cm4gTztcbn07XG4iLCJ2YXIgZFAgPSByZXF1aXJlKCcuL19vYmplY3QtZHAnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIGdldEtleXMgPSByZXF1aXJlKCcuL19vYmplY3Qta2V5cycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyA6IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoTywgUHJvcGVydGllcykge1xuICBhbk9iamVjdChPKTtcbiAgdmFyIGtleXMgPSBnZXRLZXlzKFByb3BlcnRpZXMpO1xuICB2YXIgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gIHZhciBpID0gMDtcbiAgdmFyIFA7XG4gIHdoaWxlIChsZW5ndGggPiBpKSBkUC5mKE8sIFAgPSBrZXlzW2krK10sIFByb3BlcnRpZXNbUF0pO1xuICByZXR1cm4gTztcbn07XG4iLCJ2YXIgcElFID0gcmVxdWlyZSgnLi9fb2JqZWN0LXBpZScpO1xudmFyIGNyZWF0ZURlc2MgPSByZXF1aXJlKCcuL19wcm9wZXJ0eS1kZXNjJyk7XG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi9fdG8tcHJpbWl0aXZlJyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgSUU4X0RPTV9ERUZJTkUgPSByZXF1aXJlKCcuL19pZTgtZG9tLWRlZmluZScpO1xudmFyIGdPUEQgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuXG5leHBvcnRzLmYgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpID8gZ09QRCA6IGZ1bmN0aW9uIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihPLCBQKSB7XG4gIE8gPSB0b0lPYmplY3QoTyk7XG4gIFAgPSB0b1ByaW1pdGl2ZShQLCB0cnVlKTtcbiAgaWYgKElFOF9ET01fREVGSU5FKSB0cnkge1xuICAgIHJldHVybiBnT1BEKE8sIFApO1xuICB9IGNhdGNoIChlKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKGhhcyhPLCBQKSkgcmV0dXJuIGNyZWF0ZURlc2MoIXBJRS5mLmNhbGwoTywgUCksIE9bUF0pO1xufTtcbiIsIi8vIGZhbGxiYWNrIGZvciBJRTExIGJ1Z2d5IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHdpdGggaWZyYW1lIGFuZCB3aW5kb3dcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgZ09QTiA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BuJykuZjtcbnZhciB0b1N0cmluZyA9IHt9LnRvU3RyaW5nO1xuXG52YXIgd2luZG93TmFtZXMgPSB0eXBlb2Ygd2luZG93ID09ICdvYmplY3QnICYmIHdpbmRvdyAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc1xuICA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHdpbmRvdykgOiBbXTtcblxudmFyIGdldFdpbmRvd05hbWVzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGdPUE4oaXQpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIHdpbmRvd05hbWVzLnNsaWNlKCk7XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzLmYgPSBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eU5hbWVzKGl0KSB7XG4gIHJldHVybiB3aW5kb3dOYW1lcyAmJiB0b1N0cmluZy5jYWxsKGl0KSA9PSAnW29iamVjdCBXaW5kb3ddJyA/IGdldFdpbmRvd05hbWVzKGl0KSA6IGdPUE4odG9JT2JqZWN0KGl0KSk7XG59O1xuIiwiLy8gMTkuMS4yLjcgLyAxNS4yLjMuNCBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhPKVxudmFyICRrZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMtaW50ZXJuYWwnKTtcbnZhciBoaWRkZW5LZXlzID0gcmVxdWlyZSgnLi9fZW51bS1idWcta2V5cycpLmNvbmNhdCgnbGVuZ3RoJywgJ3Byb3RvdHlwZScpO1xuXG5leHBvcnRzLmYgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fCBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eU5hbWVzKE8pIHtcbiAgcmV0dXJuICRrZXlzKE8sIGhpZGRlbktleXMpO1xufTtcbiIsImV4cG9ydHMuZiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG4iLCIvLyAxOS4xLjIuOSAvIDE1LjIuMy4yIE9iamVjdC5nZXRQcm90b3R5cGVPZihPKVxudmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8tb2JqZWN0Jyk7XG52YXIgSUVfUFJPVE8gPSByZXF1aXJlKCcuL19zaGFyZWQta2V5JykoJ0lFX1BST1RPJyk7XG52YXIgT2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5nZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiAoTykge1xuICBPID0gdG9PYmplY3QoTyk7XG4gIGlmIChoYXMoTywgSUVfUFJPVE8pKSByZXR1cm4gT1tJRV9QUk9UT107XG4gIGlmICh0eXBlb2YgTy5jb25zdHJ1Y3RvciA9PSAnZnVuY3Rpb24nICYmIE8gaW5zdGFuY2VvZiBPLmNvbnN0cnVjdG9yKSB7XG4gICAgcmV0dXJuIE8uY29uc3RydWN0b3IucHJvdG90eXBlO1xuICB9IHJldHVybiBPIGluc3RhbmNlb2YgT2JqZWN0ID8gT2JqZWN0UHJvdG8gOiBudWxsO1xufTtcbiIsInZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgYXJyYXlJbmRleE9mID0gcmVxdWlyZSgnLi9fYXJyYXktaW5jbHVkZXMnKShmYWxzZSk7XG52YXIgSUVfUFJPVE8gPSByZXF1aXJlKCcuL19zaGFyZWQta2V5JykoJ0lFX1BST1RPJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iamVjdCwgbmFtZXMpIHtcbiAgdmFyIE8gPSB0b0lPYmplY3Qob2JqZWN0KTtcbiAgdmFyIGkgPSAwO1xuICB2YXIgcmVzdWx0ID0gW107XG4gIHZhciBrZXk7XG4gIGZvciAoa2V5IGluIE8pIGlmIChrZXkgIT0gSUVfUFJPVE8pIGhhcyhPLCBrZXkpICYmIHJlc3VsdC5wdXNoKGtleSk7XG4gIC8vIERvbid0IGVudW0gYnVnICYgaGlkZGVuIGtleXNcbiAgd2hpbGUgKG5hbWVzLmxlbmd0aCA+IGkpIGlmIChoYXMoTywga2V5ID0gbmFtZXNbaSsrXSkpIHtcbiAgICB+YXJyYXlJbmRleE9mKHJlc3VsdCwga2V5KSB8fCByZXN1bHQucHVzaChrZXkpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuIiwiLy8gMTkuMS4yLjE0IC8gMTUuMi4zLjE0IE9iamVjdC5rZXlzKE8pXG52YXIgJGtleXMgPSByZXF1aXJlKCcuL19vYmplY3Qta2V5cy1pbnRlcm5hbCcpO1xudmFyIGVudW1CdWdLZXlzID0gcmVxdWlyZSgnLi9fZW51bS1idWcta2V5cycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5rZXlzIHx8IGZ1bmN0aW9uIGtleXMoTykge1xuICByZXR1cm4gJGtleXMoTywgZW51bUJ1Z0tleXMpO1xufTtcbiIsImV4cG9ydHMuZiA9IHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuIiwiLy8gbW9zdCBPYmplY3QgbWV0aG9kcyBieSBFUzYgc2hvdWxkIGFjY2VwdCBwcmltaXRpdmVzXG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIGNvcmUgPSByZXF1aXJlKCcuL19jb3JlJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuL19mYWlscycpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoS0VZLCBleGVjKSB7XG4gIHZhciBmbiA9IChjb3JlLk9iamVjdCB8fCB7fSlbS0VZXSB8fCBPYmplY3RbS0VZXTtcbiAgdmFyIGV4cCA9IHt9O1xuICBleHBbS0VZXSA9IGV4ZWMoZm4pO1xuICAkZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqIGZhaWxzKGZ1bmN0aW9uICgpIHsgZm4oMSk7IH0pLCAnT2JqZWN0JywgZXhwKTtcbn07XG4iLCIvLyBhbGwgb2JqZWN0IGtleXMsIGluY2x1ZGVzIG5vbi1lbnVtZXJhYmxlIGFuZCBzeW1ib2xzXG52YXIgZ09QTiA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BuJyk7XG52YXIgZ09QUyA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BzJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBSZWZsZWN0ID0gcmVxdWlyZSgnLi9fZ2xvYmFsJykuUmVmbGVjdDtcbm1vZHVsZS5leHBvcnRzID0gUmVmbGVjdCAmJiBSZWZsZWN0Lm93bktleXMgfHwgZnVuY3Rpb24gb3duS2V5cyhpdCkge1xuICB2YXIga2V5cyA9IGdPUE4uZihhbk9iamVjdChpdCkpO1xuICB2YXIgZ2V0U3ltYm9scyA9IGdPUFMuZjtcbiAgcmV0dXJuIGdldFN5bWJvbHMgPyBrZXlzLmNvbmNhdChnZXRTeW1ib2xzKGl0KSkgOiBrZXlzO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGJpdG1hcCwgdmFsdWUpIHtcbiAgcmV0dXJuIHtcbiAgICBlbnVtZXJhYmxlOiAhKGJpdG1hcCAmIDEpLFxuICAgIGNvbmZpZ3VyYWJsZTogIShiaXRtYXAgJiAyKSxcbiAgICB3cml0YWJsZTogIShiaXRtYXAgJiA0KSxcbiAgICB2YWx1ZTogdmFsdWVcbiAgfTtcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBTUkMgPSByZXF1aXJlKCcuL191aWQnKSgnc3JjJyk7XG52YXIgJHRvU3RyaW5nID0gcmVxdWlyZSgnLi9fZnVuY3Rpb24tdG8tc3RyaW5nJyk7XG52YXIgVE9fU1RSSU5HID0gJ3RvU3RyaW5nJztcbnZhciBUUEwgPSAoJycgKyAkdG9TdHJpbmcpLnNwbGl0KFRPX1NUUklORyk7XG5cbnJlcXVpcmUoJy4vX2NvcmUnKS5pbnNwZWN0U291cmNlID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiAkdG9TdHJpbmcuY2FsbChpdCk7XG59O1xuXG4obW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTywga2V5LCB2YWwsIHNhZmUpIHtcbiAgdmFyIGlzRnVuY3Rpb24gPSB0eXBlb2YgdmFsID09ICdmdW5jdGlvbic7XG4gIGlmIChpc0Z1bmN0aW9uKSBoYXModmFsLCAnbmFtZScpIHx8IGhpZGUodmFsLCAnbmFtZScsIGtleSk7XG4gIGlmIChPW2tleV0gPT09IHZhbCkgcmV0dXJuO1xuICBpZiAoaXNGdW5jdGlvbikgaGFzKHZhbCwgU1JDKSB8fCBoaWRlKHZhbCwgU1JDLCBPW2tleV0gPyAnJyArIE9ba2V5XSA6IFRQTC5qb2luKFN0cmluZyhrZXkpKSk7XG4gIGlmIChPID09PSBnbG9iYWwpIHtcbiAgICBPW2tleV0gPSB2YWw7XG4gIH0gZWxzZSBpZiAoIXNhZmUpIHtcbiAgICBkZWxldGUgT1trZXldO1xuICAgIGhpZGUoTywga2V5LCB2YWwpO1xuICB9IGVsc2UgaWYgKE9ba2V5XSkge1xuICAgIE9ba2V5XSA9IHZhbDtcbiAgfSBlbHNlIHtcbiAgICBoaWRlKE8sIGtleSwgdmFsKTtcbiAgfVxuLy8gYWRkIGZha2UgRnVuY3Rpb24jdG9TdHJpbmcgZm9yIGNvcnJlY3Qgd29yayB3cmFwcGVkIG1ldGhvZHMgLyBjb25zdHJ1Y3RvcnMgd2l0aCBtZXRob2RzIGxpa2UgTG9EYXNoIGlzTmF0aXZlXG59KShGdW5jdGlvbi5wcm90b3R5cGUsIFRPX1NUUklORywgZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gIHJldHVybiB0eXBlb2YgdGhpcyA9PSAnZnVuY3Rpb24nICYmIHRoaXNbU1JDXSB8fCAkdG9TdHJpbmcuY2FsbCh0aGlzKTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4vX2NsYXNzb2YnKTtcbnZhciBidWlsdGluRXhlYyA9IFJlZ0V4cC5wcm90b3R5cGUuZXhlYztcblxuIC8vIGBSZWdFeHBFeGVjYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlZ2V4cGV4ZWNcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKFIsIFMpIHtcbiAgdmFyIGV4ZWMgPSBSLmV4ZWM7XG4gIGlmICh0eXBlb2YgZXhlYyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHZhciByZXN1bHQgPSBleGVjLmNhbGwoUiwgUyk7XG4gICAgaWYgKHR5cGVvZiByZXN1bHQgIT09ICdvYmplY3QnKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdSZWdFeHAgZXhlYyBtZXRob2QgcmV0dXJuZWQgc29tZXRoaW5nIG90aGVyIHRoYW4gYW4gT2JqZWN0IG9yIG51bGwnKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBpZiAoY2xhc3NvZihSKSAhPT0gJ1JlZ0V4cCcpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdSZWdFeHAjZXhlYyBjYWxsZWQgb24gaW5jb21wYXRpYmxlIHJlY2VpdmVyJyk7XG4gIH1cbiAgcmV0dXJuIGJ1aWx0aW5FeGVjLmNhbGwoUiwgUyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcmVnZXhwRmxhZ3MgPSByZXF1aXJlKCcuL19mbGFncycpO1xuXG52YXIgbmF0aXZlRXhlYyA9IFJlZ0V4cC5wcm90b3R5cGUuZXhlYztcbi8vIFRoaXMgYWx3YXlzIHJlZmVycyB0byB0aGUgbmF0aXZlIGltcGxlbWVudGF0aW9uLCBiZWNhdXNlIHRoZVxuLy8gU3RyaW5nI3JlcGxhY2UgcG9seWZpbGwgdXNlcyAuL2ZpeC1yZWdleHAtd2VsbC1rbm93bi1zeW1ib2wtbG9naWMuanMsXG4vLyB3aGljaCBsb2FkcyB0aGlzIGZpbGUgYmVmb3JlIHBhdGNoaW5nIHRoZSBtZXRob2QuXG52YXIgbmF0aXZlUmVwbGFjZSA9IFN0cmluZy5wcm90b3R5cGUucmVwbGFjZTtcblxudmFyIHBhdGNoZWRFeGVjID0gbmF0aXZlRXhlYztcblxudmFyIExBU1RfSU5ERVggPSAnbGFzdEluZGV4JztcblxudmFyIFVQREFURVNfTEFTVF9JTkRFWF9XUk9ORyA9IChmdW5jdGlvbiAoKSB7XG4gIHZhciByZTEgPSAvYS8sXG4gICAgICByZTIgPSAvYiovZztcbiAgbmF0aXZlRXhlYy5jYWxsKHJlMSwgJ2EnKTtcbiAgbmF0aXZlRXhlYy5jYWxsKHJlMiwgJ2EnKTtcbiAgcmV0dXJuIHJlMVtMQVNUX0lOREVYXSAhPT0gMCB8fCByZTJbTEFTVF9JTkRFWF0gIT09IDA7XG59KSgpO1xuXG4vLyBub25wYXJ0aWNpcGF0aW5nIGNhcHR1cmluZyBncm91cCwgY29waWVkIGZyb20gZXM1LXNoaW0ncyBTdHJpbmcjc3BsaXQgcGF0Y2guXG52YXIgTlBDR19JTkNMVURFRCA9IC8oKT8/Ly5leGVjKCcnKVsxXSAhPT0gdW5kZWZpbmVkO1xuXG52YXIgUEFUQ0ggPSBVUERBVEVTX0xBU1RfSU5ERVhfV1JPTkcgfHwgTlBDR19JTkNMVURFRDtcblxuaWYgKFBBVENIKSB7XG4gIHBhdGNoZWRFeGVjID0gZnVuY3Rpb24gZXhlYyhzdHIpIHtcbiAgICB2YXIgcmUgPSB0aGlzO1xuICAgIHZhciBsYXN0SW5kZXgsIHJlQ29weSwgbWF0Y2gsIGk7XG5cbiAgICBpZiAoTlBDR19JTkNMVURFRCkge1xuICAgICAgcmVDb3B5ID0gbmV3IFJlZ0V4cCgnXicgKyByZS5zb3VyY2UgKyAnJCg/IVxcXFxzKScsIHJlZ2V4cEZsYWdzLmNhbGwocmUpKTtcbiAgICB9XG4gICAgaWYgKFVQREFURVNfTEFTVF9JTkRFWF9XUk9ORykgbGFzdEluZGV4ID0gcmVbTEFTVF9JTkRFWF07XG5cbiAgICBtYXRjaCA9IG5hdGl2ZUV4ZWMuY2FsbChyZSwgc3RyKTtcblxuICAgIGlmIChVUERBVEVTX0xBU1RfSU5ERVhfV1JPTkcgJiYgbWF0Y2gpIHtcbiAgICAgIHJlW0xBU1RfSU5ERVhdID0gcmUuZ2xvYmFsID8gbWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGggOiBsYXN0SW5kZXg7XG4gICAgfVxuICAgIGlmIChOUENHX0lOQ0xVREVEICYmIG1hdGNoICYmIG1hdGNoLmxlbmd0aCA+IDEpIHtcbiAgICAgIC8vIEZpeCBicm93c2VycyB3aG9zZSBgZXhlY2AgbWV0aG9kcyBkb24ndCBjb25zaXN0ZW50bHkgcmV0dXJuIGB1bmRlZmluZWRgXG4gICAgICAvLyBmb3IgTlBDRywgbGlrZSBJRTguIE5PVEU6IFRoaXMgZG9lc24nIHdvcmsgZm9yIC8oLj8pPy9cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1sb29wLWZ1bmNcbiAgICAgIG5hdGl2ZVJlcGxhY2UuY2FsbChtYXRjaFswXSwgcmVDb3B5LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGZvciAoaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoIC0gMjsgaSsrKSB7XG4gICAgICAgICAgaWYgKGFyZ3VtZW50c1tpXSA9PT0gdW5kZWZpbmVkKSBtYXRjaFtpXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hdGNoO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHBhdGNoZWRFeGVjO1xuIiwiLy8gNy4yLjkgU2FtZVZhbHVlKHgsIHkpXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5pcyB8fCBmdW5jdGlvbiBpcyh4LCB5KSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcbiAgcmV0dXJuIHggPT09IHkgPyB4ICE9PSAwIHx8IDEgLyB4ID09PSAxIC8geSA6IHggIT0geCAmJiB5ICE9IHk7XG59O1xuIiwiLy8gV29ya3Mgd2l0aCBfX3Byb3RvX18gb25seS4gT2xkIHY4IGNhbid0IHdvcmsgd2l0aCBudWxsIHByb3RvIG9iamVjdHMuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90byAqL1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBjaGVjayA9IGZ1bmN0aW9uIChPLCBwcm90bykge1xuICBhbk9iamVjdChPKTtcbiAgaWYgKCFpc09iamVjdChwcm90bykgJiYgcHJvdG8gIT09IG51bGwpIHRocm93IFR5cGVFcnJvcihwcm90byArIFwiOiBjYW4ndCBzZXQgYXMgcHJvdG90eXBlIVwiKTtcbn07XG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgc2V0OiBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgKCdfX3Byb3RvX18nIGluIHt9ID8gLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICAgIGZ1bmN0aW9uICh0ZXN0LCBidWdneSwgc2V0KSB7XG4gICAgICB0cnkge1xuICAgICAgICBzZXQgPSByZXF1aXJlKCcuL19jdHgnKShGdW5jdGlvbi5jYWxsLCByZXF1aXJlKCcuL19vYmplY3QtZ29wZCcpLmYoT2JqZWN0LnByb3RvdHlwZSwgJ19fcHJvdG9fXycpLnNldCwgMik7XG4gICAgICAgIHNldCh0ZXN0LCBbXSk7XG4gICAgICAgIGJ1Z2d5ID0gISh0ZXN0IGluc3RhbmNlb2YgQXJyYXkpO1xuICAgICAgfSBjYXRjaCAoZSkgeyBidWdneSA9IHRydWU7IH1cbiAgICAgIHJldHVybiBmdW5jdGlvbiBzZXRQcm90b3R5cGVPZihPLCBwcm90bykge1xuICAgICAgICBjaGVjayhPLCBwcm90byk7XG4gICAgICAgIGlmIChidWdneSkgTy5fX3Byb3RvX18gPSBwcm90bztcbiAgICAgICAgZWxzZSBzZXQoTywgcHJvdG8pO1xuICAgICAgICByZXR1cm4gTztcbiAgICAgIH07XG4gICAgfSh7fSwgZmFsc2UpIDogdW5kZWZpbmVkKSxcbiAgY2hlY2s6IGNoZWNrXG59O1xuIiwidmFyIGRlZiA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmY7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgVEFHID0gcmVxdWlyZSgnLi9fd2tzJykoJ3RvU3RyaW5nVGFnJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCB0YWcsIHN0YXQpIHtcbiAgaWYgKGl0ICYmICFoYXMoaXQgPSBzdGF0ID8gaXQgOiBpdC5wcm90b3R5cGUsIFRBRykpIGRlZihpdCwgVEFHLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6IHRhZyB9KTtcbn07XG4iLCJ2YXIgc2hhcmVkID0gcmVxdWlyZSgnLi9fc2hhcmVkJykoJ2tleXMnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuL191aWQnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gc2hhcmVkW2tleV0gfHwgKHNoYXJlZFtrZXldID0gdWlkKGtleSkpO1xufTtcbiIsInZhciBjb3JlID0gcmVxdWlyZSgnLi9fY29yZScpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIFNIQVJFRCA9ICdfX2NvcmUtanNfc2hhcmVkX18nO1xudmFyIHN0b3JlID0gZ2xvYmFsW1NIQVJFRF0gfHwgKGdsb2JhbFtTSEFSRURdID0ge30pO1xuXG4obW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICByZXR1cm4gc3RvcmVba2V5XSB8fCAoc3RvcmVba2V5XSA9IHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6IHt9KTtcbn0pKCd2ZXJzaW9ucycsIFtdKS5wdXNoKHtcbiAgdmVyc2lvbjogY29yZS52ZXJzaW9uLFxuICBtb2RlOiByZXF1aXJlKCcuL19saWJyYXJ5JykgPyAncHVyZScgOiAnZ2xvYmFsJyxcbiAgY29weXJpZ2h0OiAnwqkgMjAxOSBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSdcbn0pO1xuIiwiLy8gNy4zLjIwIFNwZWNpZXNDb25zdHJ1Y3RvcihPLCBkZWZhdWx0Q29uc3RydWN0b3IpXG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuL19hLWZ1bmN0aW9uJyk7XG52YXIgU1BFQ0lFUyA9IHJlcXVpcmUoJy4vX3drcycpKCdzcGVjaWVzJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChPLCBEKSB7XG4gIHZhciBDID0gYW5PYmplY3QoTykuY29uc3RydWN0b3I7XG4gIHZhciBTO1xuICByZXR1cm4gQyA9PT0gdW5kZWZpbmVkIHx8IChTID0gYW5PYmplY3QoQylbU1BFQ0lFU10pID09IHVuZGVmaW5lZCA/IEQgOiBhRnVuY3Rpb24oUyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi9fZmFpbHMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobWV0aG9kLCBhcmcpIHtcbiAgcmV0dXJuICEhbWV0aG9kICYmIGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1jYWxsXG4gICAgYXJnID8gbWV0aG9kLmNhbGwobnVsbCwgZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9LCAxKSA6IG1ldGhvZC5jYWxsKG51bGwpO1xuICB9KTtcbn07XG4iLCJ2YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi9fdG8taW50ZWdlcicpO1xudmFyIGRlZmluZWQgPSByZXF1aXJlKCcuL19kZWZpbmVkJyk7XG4vLyB0cnVlICAtPiBTdHJpbmcjYXRcbi8vIGZhbHNlIC0+IFN0cmluZyNjb2RlUG9pbnRBdFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoVE9fU1RSSU5HKSB7XG4gIHJldHVybiBmdW5jdGlvbiAodGhhdCwgcG9zKSB7XG4gICAgdmFyIHMgPSBTdHJpbmcoZGVmaW5lZCh0aGF0KSk7XG4gICAgdmFyIGkgPSB0b0ludGVnZXIocG9zKTtcbiAgICB2YXIgbCA9IHMubGVuZ3RoO1xuICAgIHZhciBhLCBiO1xuICAgIGlmIChpIDwgMCB8fCBpID49IGwpIHJldHVybiBUT19TVFJJTkcgPyAnJyA6IHVuZGVmaW5lZDtcbiAgICBhID0gcy5jaGFyQ29kZUF0KGkpO1xuICAgIHJldHVybiBhIDwgMHhkODAwIHx8IGEgPiAweGRiZmYgfHwgaSArIDEgPT09IGwgfHwgKGIgPSBzLmNoYXJDb2RlQXQoaSArIDEpKSA8IDB4ZGMwMCB8fCBiID4gMHhkZmZmXG4gICAgICA/IFRPX1NUUklORyA/IHMuY2hhckF0KGkpIDogYVxuICAgICAgOiBUT19TVFJJTkcgPyBzLnNsaWNlKGksIGkgKyAyKSA6IChhIC0gMHhkODAwIDw8IDEwKSArIChiIC0gMHhkYzAwKSArIDB4MTAwMDA7XG4gIH07XG59O1xuIiwiLy8gaGVscGVyIGZvciBTdHJpbmcje3N0YXJ0c1dpdGgsIGVuZHNXaXRoLCBpbmNsdWRlc31cbnZhciBpc1JlZ0V4cCA9IHJlcXVpcmUoJy4vX2lzLXJlZ2V4cCcpO1xudmFyIGRlZmluZWQgPSByZXF1aXJlKCcuL19kZWZpbmVkJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHRoYXQsIHNlYXJjaFN0cmluZywgTkFNRSkge1xuICBpZiAoaXNSZWdFeHAoc2VhcmNoU3RyaW5nKSkgdGhyb3cgVHlwZUVycm9yKCdTdHJpbmcjJyArIE5BTUUgKyBcIiBkb2Vzbid0IGFjY2VwdCByZWdleCFcIik7XG4gIHJldHVybiBTdHJpbmcoZGVmaW5lZCh0aGF0KSk7XG59O1xuIiwidmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciBkZWZpbmVkID0gcmVxdWlyZSgnLi9fZGVmaW5lZCcpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi9fZmFpbHMnKTtcbnZhciBzcGFjZXMgPSByZXF1aXJlKCcuL19zdHJpbmctd3MnKTtcbnZhciBzcGFjZSA9ICdbJyArIHNwYWNlcyArICddJztcbnZhciBub24gPSAnXFx1MjAwYlxcdTAwODUnO1xudmFyIGx0cmltID0gUmVnRXhwKCdeJyArIHNwYWNlICsgc3BhY2UgKyAnKicpO1xudmFyIHJ0cmltID0gUmVnRXhwKHNwYWNlICsgc3BhY2UgKyAnKiQnKTtcblxudmFyIGV4cG9ydGVyID0gZnVuY3Rpb24gKEtFWSwgZXhlYywgQUxJQVMpIHtcbiAgdmFyIGV4cCA9IHt9O1xuICB2YXIgRk9SQ0UgPSBmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuICEhc3BhY2VzW0tFWV0oKSB8fCBub25bS0VZXSgpICE9IG5vbjtcbiAgfSk7XG4gIHZhciBmbiA9IGV4cFtLRVldID0gRk9SQ0UgPyBleGVjKHRyaW0pIDogc3BhY2VzW0tFWV07XG4gIGlmIChBTElBUykgZXhwW0FMSUFTXSA9IGZuO1xuICAkZXhwb3J0KCRleHBvcnQuUCArICRleHBvcnQuRiAqIEZPUkNFLCAnU3RyaW5nJywgZXhwKTtcbn07XG5cbi8vIDEgLT4gU3RyaW5nI3RyaW1MZWZ0XG4vLyAyIC0+IFN0cmluZyN0cmltUmlnaHRcbi8vIDMgLT4gU3RyaW5nI3RyaW1cbnZhciB0cmltID0gZXhwb3J0ZXIudHJpbSA9IGZ1bmN0aW9uIChzdHJpbmcsIFRZUEUpIHtcbiAgc3RyaW5nID0gU3RyaW5nKGRlZmluZWQoc3RyaW5nKSk7XG4gIGlmIChUWVBFICYgMSkgc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UobHRyaW0sICcnKTtcbiAgaWYgKFRZUEUgJiAyKSBzdHJpbmcgPSBzdHJpbmcucmVwbGFjZShydHJpbSwgJycpO1xuICByZXR1cm4gc3RyaW5nO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRlcjtcbiIsIm1vZHVsZS5leHBvcnRzID0gJ1xceDA5XFx4MEFcXHgwQlxceDBDXFx4MERcXHgyMFxceEEwXFx1MTY4MFxcdTE4MEVcXHUyMDAwXFx1MjAwMVxcdTIwMDJcXHUyMDAzJyArXG4gICdcXHUyMDA0XFx1MjAwNVxcdTIwMDZcXHUyMDA3XFx1MjAwOFxcdTIwMDlcXHUyMDBBXFx1MjAyRlxcdTIwNUZcXHUzMDAwXFx1MjAyOFxcdTIwMjlcXHVGRUZGJztcbiIsInZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuL190by1pbnRlZ2VyJyk7XG52YXIgbWF4ID0gTWF0aC5tYXg7XG52YXIgbWluID0gTWF0aC5taW47XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpbmRleCwgbGVuZ3RoKSB7XG4gIGluZGV4ID0gdG9JbnRlZ2VyKGluZGV4KTtcbiAgcmV0dXJuIGluZGV4IDwgMCA/IG1heChpbmRleCArIGxlbmd0aCwgMCkgOiBtaW4oaW5kZXgsIGxlbmd0aCk7XG59O1xuIiwiLy8gNy4xLjQgVG9JbnRlZ2VyXG52YXIgY2VpbCA9IE1hdGguY2VpbDtcbnZhciBmbG9vciA9IE1hdGguZmxvb3I7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXNOYU4oaXQgPSAraXQpID8gMCA6IChpdCA+IDAgPyBmbG9vciA6IGNlaWwpKGl0KTtcbn07XG4iLCIvLyB0byBpbmRleGVkIG9iamVjdCwgdG9PYmplY3Qgd2l0aCBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIHN0cmluZ3NcbnZhciBJT2JqZWN0ID0gcmVxdWlyZSgnLi9faW9iamVjdCcpO1xudmFyIGRlZmluZWQgPSByZXF1aXJlKCcuL19kZWZpbmVkJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gSU9iamVjdChkZWZpbmVkKGl0KSk7XG59O1xuIiwiLy8gNy4xLjE1IFRvTGVuZ3RoXG52YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi9fdG8taW50ZWdlcicpO1xudmFyIG1pbiA9IE1hdGgubWluO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ID4gMCA/IG1pbih0b0ludGVnZXIoaXQpLCAweDFmZmZmZmZmZmZmZmZmKSA6IDA7IC8vIHBvdygyLCA1MykgLSAxID09IDkwMDcxOTkyNTQ3NDA5OTFcbn07XG4iLCIvLyA3LjEuMTMgVG9PYmplY3QoYXJndW1lbnQpXG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBPYmplY3QoZGVmaW5lZChpdCkpO1xufTtcbiIsIi8vIDcuMS4xIFRvUHJpbWl0aXZlKGlucHV0IFssIFByZWZlcnJlZFR5cGVdKVxudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG4vLyBpbnN0ZWFkIG9mIHRoZSBFUzYgc3BlYyB2ZXJzaW9uLCB3ZSBkaWRuJ3QgaW1wbGVtZW50IEBAdG9QcmltaXRpdmUgY2FzZVxuLy8gYW5kIHRoZSBzZWNvbmQgYXJndW1lbnQgLSBmbGFnIC0gcHJlZmVycmVkIHR5cGUgaXMgYSBzdHJpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCBTKSB7XG4gIGlmICghaXNPYmplY3QoaXQpKSByZXR1cm4gaXQ7XG4gIHZhciBmbiwgdmFsO1xuICBpZiAoUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKHR5cGVvZiAoZm4gPSBpdC52YWx1ZU9mKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHJldHVybiB2YWw7XG4gIGlmICghUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpO1xufTtcbiIsInZhciBpZCA9IDA7XG52YXIgcHggPSBNYXRoLnJhbmRvbSgpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5KSB7XG4gIHJldHVybiAnU3ltYm9sKCcuY29uY2F0KGtleSA9PT0gdW5kZWZpbmVkID8gJycgOiBrZXksICcpXycsICgrK2lkICsgcHgpLnRvU3RyaW5nKDM2KSk7XG59O1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIGNvcmUgPSByZXF1aXJlKCcuL19jb3JlJyk7XG52YXIgTElCUkFSWSA9IHJlcXVpcmUoJy4vX2xpYnJhcnknKTtcbnZhciB3a3NFeHQgPSByZXF1aXJlKCcuL193a3MtZXh0Jyk7XG52YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuL19vYmplY3QtZHAnKS5mO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobmFtZSkge1xuICB2YXIgJFN5bWJvbCA9IGNvcmUuU3ltYm9sIHx8IChjb3JlLlN5bWJvbCA9IExJQlJBUlkgPyB7fSA6IGdsb2JhbC5TeW1ib2wgfHwge30pO1xuICBpZiAobmFtZS5jaGFyQXQoMCkgIT0gJ18nICYmICEobmFtZSBpbiAkU3ltYm9sKSkgZGVmaW5lUHJvcGVydHkoJFN5bWJvbCwgbmFtZSwgeyB2YWx1ZTogd2tzRXh0LmYobmFtZSkgfSk7XG59O1xuIiwiZXhwb3J0cy5mID0gcmVxdWlyZSgnLi9fd2tzJyk7XG4iLCJ2YXIgc3RvcmUgPSByZXF1aXJlKCcuL19zaGFyZWQnKSgnd2tzJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi9fdWlkJyk7XG52YXIgU3ltYm9sID0gcmVxdWlyZSgnLi9fZ2xvYmFsJykuU3ltYm9sO1xudmFyIFVTRV9TWU1CT0wgPSB0eXBlb2YgU3ltYm9sID09ICdmdW5jdGlvbic7XG5cbnZhciAkZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgcmV0dXJuIHN0b3JlW25hbWVdIHx8IChzdG9yZVtuYW1lXSA9XG4gICAgVVNFX1NZTUJPTCAmJiBTeW1ib2xbbmFtZV0gfHwgKFVTRV9TWU1CT0wgPyBTeW1ib2wgOiB1aWQpKCdTeW1ib2wuJyArIG5hbWUpKTtcbn07XG5cbiRleHBvcnRzLnN0b3JlID0gc3RvcmU7XG4iLCJ2YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4vX2NsYXNzb2YnKTtcbnZhciBJVEVSQVRPUiA9IHJlcXVpcmUoJy4vX3drcycpKCdpdGVyYXRvcicpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4vX2l0ZXJhdG9ycycpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19jb3JlJykuZ2V0SXRlcmF0b3JNZXRob2QgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKGl0ICE9IHVuZGVmaW5lZCkgcmV0dXJuIGl0W0lURVJBVE9SXVxuICAgIHx8IGl0WydAQGl0ZXJhdG9yJ11cbiAgICB8fCBJdGVyYXRvcnNbY2xhc3NvZihpdCldO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgJGZpbHRlciA9IHJlcXVpcmUoJy4vX2FycmF5LW1ldGhvZHMnKSgyKTtcblxuJGV4cG9ydCgkZXhwb3J0LlAgKyAkZXhwb3J0LkYgKiAhcmVxdWlyZSgnLi9fc3RyaWN0LW1ldGhvZCcpKFtdLmZpbHRlciwgdHJ1ZSksICdBcnJheScsIHtcbiAgLy8gMjIuMS4zLjcgLyAxNS40LjQuMjAgQXJyYXkucHJvdG90eXBlLmZpbHRlcihjYWxsYmFja2ZuIFssIHRoaXNBcmddKVxuICBmaWx0ZXI6IGZ1bmN0aW9uIGZpbHRlcihjYWxsYmFja2ZuIC8qICwgdGhpc0FyZyAqLykge1xuICAgIHJldHVybiAkZmlsdGVyKHRoaXMsIGNhbGxiYWNrZm4sIGFyZ3VtZW50c1sxXSk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGN0eCA9IHJlcXVpcmUoJy4vX2N0eCcpO1xudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4vX3RvLW9iamVjdCcpO1xudmFyIGNhbGwgPSByZXF1aXJlKCcuL19pdGVyLWNhbGwnKTtcbnZhciBpc0FycmF5SXRlciA9IHJlcXVpcmUoJy4vX2lzLWFycmF5LWl0ZXInKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4vX3RvLWxlbmd0aCcpO1xudmFyIGNyZWF0ZVByb3BlcnR5ID0gcmVxdWlyZSgnLi9fY3JlYXRlLXByb3BlcnR5Jyk7XG52YXIgZ2V0SXRlckZuID0gcmVxdWlyZSgnLi9jb3JlLmdldC1pdGVyYXRvci1tZXRob2QnKTtcblxuJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiAhcmVxdWlyZSgnLi9faXRlci1kZXRlY3QnKShmdW5jdGlvbiAoaXRlcikgeyBBcnJheS5mcm9tKGl0ZXIpOyB9KSwgJ0FycmF5Jywge1xuICAvLyAyMi4xLjIuMSBBcnJheS5mcm9tKGFycmF5TGlrZSwgbWFwZm4gPSB1bmRlZmluZWQsIHRoaXNBcmcgPSB1bmRlZmluZWQpXG4gIGZyb206IGZ1bmN0aW9uIGZyb20oYXJyYXlMaWtlIC8qICwgbWFwZm4gPSB1bmRlZmluZWQsIHRoaXNBcmcgPSB1bmRlZmluZWQgKi8pIHtcbiAgICB2YXIgTyA9IHRvT2JqZWN0KGFycmF5TGlrZSk7XG4gICAgdmFyIEMgPSB0eXBlb2YgdGhpcyA9PSAnZnVuY3Rpb24nID8gdGhpcyA6IEFycmF5O1xuICAgIHZhciBhTGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICB2YXIgbWFwZm4gPSBhTGVuID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZDtcbiAgICB2YXIgbWFwcGluZyA9IG1hcGZuICE9PSB1bmRlZmluZWQ7XG4gICAgdmFyIGluZGV4ID0gMDtcbiAgICB2YXIgaXRlckZuID0gZ2V0SXRlckZuKE8pO1xuICAgIHZhciBsZW5ndGgsIHJlc3VsdCwgc3RlcCwgaXRlcmF0b3I7XG4gICAgaWYgKG1hcHBpbmcpIG1hcGZuID0gY3R4KG1hcGZuLCBhTGVuID4gMiA/IGFyZ3VtZW50c1syXSA6IHVuZGVmaW5lZCwgMik7XG4gICAgLy8gaWYgb2JqZWN0IGlzbid0IGl0ZXJhYmxlIG9yIGl0J3MgYXJyYXkgd2l0aCBkZWZhdWx0IGl0ZXJhdG9yIC0gdXNlIHNpbXBsZSBjYXNlXG4gICAgaWYgKGl0ZXJGbiAhPSB1bmRlZmluZWQgJiYgIShDID09IEFycmF5ICYmIGlzQXJyYXlJdGVyKGl0ZXJGbikpKSB7XG4gICAgICBmb3IgKGl0ZXJhdG9yID0gaXRlckZuLmNhbGwoTyksIHJlc3VsdCA9IG5ldyBDKCk7ICEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZTsgaW5kZXgrKykge1xuICAgICAgICBjcmVhdGVQcm9wZXJ0eShyZXN1bHQsIGluZGV4LCBtYXBwaW5nID8gY2FsbChpdGVyYXRvciwgbWFwZm4sIFtzdGVwLnZhbHVlLCBpbmRleF0sIHRydWUpIDogc3RlcC52YWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGxlbmd0aCA9IHRvTGVuZ3RoKE8ubGVuZ3RoKTtcbiAgICAgIGZvciAocmVzdWx0ID0gbmV3IEMobGVuZ3RoKTsgbGVuZ3RoID4gaW5kZXg7IGluZGV4KyspIHtcbiAgICAgICAgY3JlYXRlUHJvcGVydHkocmVzdWx0LCBpbmRleCwgbWFwcGluZyA/IG1hcGZuKE9baW5kZXhdLCBpbmRleCkgOiBPW2luZGV4XSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJlc3VsdC5sZW5ndGggPSBpbmRleDtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBhZGRUb1Vuc2NvcGFibGVzID0gcmVxdWlyZSgnLi9fYWRkLXRvLXVuc2NvcGFibGVzJyk7XG52YXIgc3RlcCA9IHJlcXVpcmUoJy4vX2l0ZXItc3RlcCcpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4vX2l0ZXJhdG9ycycpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcblxuLy8gMjIuMS4zLjQgQXJyYXkucHJvdG90eXBlLmVudHJpZXMoKVxuLy8gMjIuMS4zLjEzIEFycmF5LnByb3RvdHlwZS5rZXlzKClcbi8vIDIyLjEuMy4yOSBBcnJheS5wcm90b3R5cGUudmFsdWVzKClcbi8vIDIyLjEuMy4zMCBBcnJheS5wcm90b3R5cGVbQEBpdGVyYXRvcl0oKVxubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19pdGVyLWRlZmluZScpKEFycmF5LCAnQXJyYXknLCBmdW5jdGlvbiAoaXRlcmF0ZWQsIGtpbmQpIHtcbiAgdGhpcy5fdCA9IHRvSU9iamVjdChpdGVyYXRlZCk7IC8vIHRhcmdldFxuICB0aGlzLl9pID0gMDsgICAgICAgICAgICAgICAgICAgLy8gbmV4dCBpbmRleFxuICB0aGlzLl9rID0ga2luZDsgICAgICAgICAgICAgICAgLy8ga2luZFxuLy8gMjIuMS41LjIuMSAlQXJyYXlJdGVyYXRvclByb3RvdHlwZSUubmV4dCgpXG59LCBmdW5jdGlvbiAoKSB7XG4gIHZhciBPID0gdGhpcy5fdDtcbiAgdmFyIGtpbmQgPSB0aGlzLl9rO1xuICB2YXIgaW5kZXggPSB0aGlzLl9pKys7XG4gIGlmICghTyB8fCBpbmRleCA+PSBPLmxlbmd0aCkge1xuICAgIHRoaXMuX3QgPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHN0ZXAoMSk7XG4gIH1cbiAgaWYgKGtpbmQgPT0gJ2tleXMnKSByZXR1cm4gc3RlcCgwLCBpbmRleCk7XG4gIGlmIChraW5kID09ICd2YWx1ZXMnKSByZXR1cm4gc3RlcCgwLCBPW2luZGV4XSk7XG4gIHJldHVybiBzdGVwKDAsIFtpbmRleCwgT1tpbmRleF1dKTtcbn0sICd2YWx1ZXMnKTtcblxuLy8gYXJndW1lbnRzTGlzdFtAQGl0ZXJhdG9yXSBpcyAlQXJyYXlQcm90b192YWx1ZXMlICg5LjQuNC42LCA5LjQuNC43KVxuSXRlcmF0b3JzLkFyZ3VtZW50cyA9IEl0ZXJhdG9ycy5BcnJheTtcblxuYWRkVG9VbnNjb3BhYmxlcygna2V5cycpO1xuYWRkVG9VbnNjb3BhYmxlcygndmFsdWVzJyk7XG5hZGRUb1Vuc2NvcGFibGVzKCdlbnRyaWVzJyk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyICRtYXAgPSByZXF1aXJlKCcuL19hcnJheS1tZXRob2RzJykoMSk7XG5cbiRleHBvcnQoJGV4cG9ydC5QICsgJGV4cG9ydC5GICogIXJlcXVpcmUoJy4vX3N0cmljdC1tZXRob2QnKShbXS5tYXAsIHRydWUpLCAnQXJyYXknLCB7XG4gIC8vIDIyLjEuMy4xNSAvIDE1LjQuNC4xOSBBcnJheS5wcm90b3R5cGUubWFwKGNhbGxiYWNrZm4gWywgdGhpc0FyZ10pXG4gIG1hcDogZnVuY3Rpb24gbWFwKGNhbGxiYWNrZm4gLyogLCB0aGlzQXJnICovKSB7XG4gICAgcmV0dXJuICRtYXAodGhpcywgY2FsbGJhY2tmbiwgYXJndW1lbnRzWzFdKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIGh0bWwgPSByZXF1aXJlKCcuL19odG1sJyk7XG52YXIgY29mID0gcmVxdWlyZSgnLi9fY29mJyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi9fdG8tYWJzb2x1dGUtaW5kZXgnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4vX3RvLWxlbmd0aCcpO1xudmFyIGFycmF5U2xpY2UgPSBbXS5zbGljZTtcblxuLy8gZmFsbGJhY2sgZm9yIG5vdCBhcnJheS1saWtlIEVTMyBzdHJpbmdzIGFuZCBET00gb2JqZWN0c1xuJGV4cG9ydCgkZXhwb3J0LlAgKyAkZXhwb3J0LkYgKiByZXF1aXJlKCcuL19mYWlscycpKGZ1bmN0aW9uICgpIHtcbiAgaWYgKGh0bWwpIGFycmF5U2xpY2UuY2FsbChodG1sKTtcbn0pLCAnQXJyYXknLCB7XG4gIHNsaWNlOiBmdW5jdGlvbiBzbGljZShiZWdpbiwgZW5kKSB7XG4gICAgdmFyIGxlbiA9IHRvTGVuZ3RoKHRoaXMubGVuZ3RoKTtcbiAgICB2YXIga2xhc3MgPSBjb2YodGhpcyk7XG4gICAgZW5kID0gZW5kID09PSB1bmRlZmluZWQgPyBsZW4gOiBlbmQ7XG4gICAgaWYgKGtsYXNzID09ICdBcnJheScpIHJldHVybiBhcnJheVNsaWNlLmNhbGwodGhpcywgYmVnaW4sIGVuZCk7XG4gICAgdmFyIHN0YXJ0ID0gdG9BYnNvbHV0ZUluZGV4KGJlZ2luLCBsZW4pO1xuICAgIHZhciB1cFRvID0gdG9BYnNvbHV0ZUluZGV4KGVuZCwgbGVuKTtcbiAgICB2YXIgc2l6ZSA9IHRvTGVuZ3RoKHVwVG8gLSBzdGFydCk7XG4gICAgdmFyIGNsb25lZCA9IG5ldyBBcnJheShzaXplKTtcbiAgICB2YXIgaSA9IDA7XG4gICAgZm9yICg7IGkgPCBzaXplOyBpKyspIGNsb25lZFtpXSA9IGtsYXNzID09ICdTdHJpbmcnXG4gICAgICA/IHRoaXMuY2hhckF0KHN0YXJ0ICsgaSlcbiAgICAgIDogdGhpc1tzdGFydCArIGldO1xuICAgIHJldHVybiBjbG9uZWQ7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuL19hLWZ1bmN0aW9uJyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL190by1vYmplY3QnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4vX2ZhaWxzJyk7XG52YXIgJHNvcnQgPSBbXS5zb3J0O1xudmFyIHRlc3QgPSBbMSwgMiwgM107XG5cbiRleHBvcnQoJGV4cG9ydC5QICsgJGV4cG9ydC5GICogKGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gSUU4LVxuICB0ZXN0LnNvcnQodW5kZWZpbmVkKTtcbn0pIHx8ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIFY4IGJ1Z1xuICB0ZXN0LnNvcnQobnVsbCk7XG4gIC8vIE9sZCBXZWJLaXRcbn0pIHx8ICFyZXF1aXJlKCcuL19zdHJpY3QtbWV0aG9kJykoJHNvcnQpKSwgJ0FycmF5Jywge1xuICAvLyAyMi4xLjMuMjUgQXJyYXkucHJvdG90eXBlLnNvcnQoY29tcGFyZWZuKVxuICBzb3J0OiBmdW5jdGlvbiBzb3J0KGNvbXBhcmVmbikge1xuICAgIHJldHVybiBjb21wYXJlZm4gPT09IHVuZGVmaW5lZFxuICAgICAgPyAkc29ydC5jYWxsKHRvT2JqZWN0KHRoaXMpKVxuICAgICAgOiAkc29ydC5jYWxsKHRvT2JqZWN0KHRoaXMpLCBhRnVuY3Rpb24oY29tcGFyZWZuKSk7XG4gIH1cbn0pO1xuIiwidmFyIGRQID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJykuZjtcbnZhciBGUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGU7XG52YXIgbmFtZVJFID0gL15cXHMqZnVuY3Rpb24gKFteIChdKikvO1xudmFyIE5BTUUgPSAnbmFtZSc7XG5cbi8vIDE5LjIuNC4yIG5hbWVcbk5BTUUgaW4gRlByb3RvIHx8IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgJiYgZFAoRlByb3RvLCBOQU1FLCB7XG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiAoJycgKyB0aGlzKS5tYXRjaChuYW1lUkUpWzFdO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIGNvZiA9IHJlcXVpcmUoJy4vX2NvZicpO1xudmFyIGluaGVyaXRJZlJlcXVpcmVkID0gcmVxdWlyZSgnLi9faW5oZXJpdC1pZi1yZXF1aXJlZCcpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi9fdG8tcHJpbWl0aXZlJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuL19mYWlscycpO1xudmFyIGdPUE4gPSByZXF1aXJlKCcuL19vYmplY3QtZ29wbicpLmY7XG52YXIgZ09QRCA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BkJykuZjtcbnZhciBkUCA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmY7XG52YXIgJHRyaW0gPSByZXF1aXJlKCcuL19zdHJpbmctdHJpbScpLnRyaW07XG52YXIgTlVNQkVSID0gJ051bWJlcic7XG52YXIgJE51bWJlciA9IGdsb2JhbFtOVU1CRVJdO1xudmFyIEJhc2UgPSAkTnVtYmVyO1xudmFyIHByb3RvID0gJE51bWJlci5wcm90b3R5cGU7XG4vLyBPcGVyYSB+MTIgaGFzIGJyb2tlbiBPYmplY3QjdG9TdHJpbmdcbnZhciBCUk9LRU5fQ09GID0gY29mKHJlcXVpcmUoJy4vX29iamVjdC1jcmVhdGUnKShwcm90bykpID09IE5VTUJFUjtcbnZhciBUUklNID0gJ3RyaW0nIGluIFN0cmluZy5wcm90b3R5cGU7XG5cbi8vIDcuMS4zIFRvTnVtYmVyKGFyZ3VtZW50KVxudmFyIHRvTnVtYmVyID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHZhciBpdCA9IHRvUHJpbWl0aXZlKGFyZ3VtZW50LCBmYWxzZSk7XG4gIGlmICh0eXBlb2YgaXQgPT0gJ3N0cmluZycgJiYgaXQubGVuZ3RoID4gMikge1xuICAgIGl0ID0gVFJJTSA/IGl0LnRyaW0oKSA6ICR0cmltKGl0LCAzKTtcbiAgICB2YXIgZmlyc3QgPSBpdC5jaGFyQ29kZUF0KDApO1xuICAgIHZhciB0aGlyZCwgcmFkaXgsIG1heENvZGU7XG4gICAgaWYgKGZpcnN0ID09PSA0MyB8fCBmaXJzdCA9PT0gNDUpIHtcbiAgICAgIHRoaXJkID0gaXQuY2hhckNvZGVBdCgyKTtcbiAgICAgIGlmICh0aGlyZCA9PT0gODggfHwgdGhpcmQgPT09IDEyMCkgcmV0dXJuIE5hTjsgLy8gTnVtYmVyKCcrMHgxJykgc2hvdWxkIGJlIE5hTiwgb2xkIFY4IGZpeFxuICAgIH0gZWxzZSBpZiAoZmlyc3QgPT09IDQ4KSB7XG4gICAgICBzd2l0Y2ggKGl0LmNoYXJDb2RlQXQoMSkpIHtcbiAgICAgICAgY2FzZSA2NjogY2FzZSA5ODogcmFkaXggPSAyOyBtYXhDb2RlID0gNDk7IGJyZWFrOyAvLyBmYXN0IGVxdWFsIC9eMGJbMDFdKyQvaVxuICAgICAgICBjYXNlIDc5OiBjYXNlIDExMTogcmFkaXggPSA4OyBtYXhDb2RlID0gNTU7IGJyZWFrOyAvLyBmYXN0IGVxdWFsIC9eMG9bMC03XSskL2lcbiAgICAgICAgZGVmYXVsdDogcmV0dXJuICtpdDtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGRpZ2l0cyA9IGl0LnNsaWNlKDIpLCBpID0gMCwgbCA9IGRpZ2l0cy5sZW5ndGgsIGNvZGU7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgY29kZSA9IGRpZ2l0cy5jaGFyQ29kZUF0KGkpO1xuICAgICAgICAvLyBwYXJzZUludCBwYXJzZXMgYSBzdHJpbmcgdG8gYSBmaXJzdCB1bmF2YWlsYWJsZSBzeW1ib2xcbiAgICAgICAgLy8gYnV0IFRvTnVtYmVyIHNob3VsZCByZXR1cm4gTmFOIGlmIGEgc3RyaW5nIGNvbnRhaW5zIHVuYXZhaWxhYmxlIHN5bWJvbHNcbiAgICAgICAgaWYgKGNvZGUgPCA0OCB8fCBjb2RlID4gbWF4Q29kZSkgcmV0dXJuIE5hTjtcbiAgICAgIH0gcmV0dXJuIHBhcnNlSW50KGRpZ2l0cywgcmFkaXgpO1xuICAgIH1cbiAgfSByZXR1cm4gK2l0O1xufTtcblxuaWYgKCEkTnVtYmVyKCcgMG8xJykgfHwgISROdW1iZXIoJzBiMScpIHx8ICROdW1iZXIoJysweDEnKSkge1xuICAkTnVtYmVyID0gZnVuY3Rpb24gTnVtYmVyKHZhbHVlKSB7XG4gICAgdmFyIGl0ID0gYXJndW1lbnRzLmxlbmd0aCA8IDEgPyAwIDogdmFsdWU7XG4gICAgdmFyIHRoYXQgPSB0aGlzO1xuICAgIHJldHVybiB0aGF0IGluc3RhbmNlb2YgJE51bWJlclxuICAgICAgLy8gY2hlY2sgb24gMS4uY29uc3RydWN0b3IoZm9vKSBjYXNlXG4gICAgICAmJiAoQlJPS0VOX0NPRiA/IGZhaWxzKGZ1bmN0aW9uICgpIHsgcHJvdG8udmFsdWVPZi5jYWxsKHRoYXQpOyB9KSA6IGNvZih0aGF0KSAhPSBOVU1CRVIpXG4gICAgICAgID8gaW5oZXJpdElmUmVxdWlyZWQobmV3IEJhc2UodG9OdW1iZXIoaXQpKSwgdGhhdCwgJE51bWJlcikgOiB0b051bWJlcihpdCk7XG4gIH07XG4gIGZvciAodmFyIGtleXMgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpID8gZ09QTihCYXNlKSA6IChcbiAgICAvLyBFUzM6XG4gICAgJ01BWF9WQUxVRSxNSU5fVkFMVUUsTmFOLE5FR0FUSVZFX0lORklOSVRZLFBPU0lUSVZFX0lORklOSVRZLCcgK1xuICAgIC8vIEVTNiAoaW4gY2FzZSwgaWYgbW9kdWxlcyB3aXRoIEVTNiBOdW1iZXIgc3RhdGljcyByZXF1aXJlZCBiZWZvcmUpOlxuICAgICdFUFNJTE9OLGlzRmluaXRlLGlzSW50ZWdlcixpc05hTixpc1NhZmVJbnRlZ2VyLE1BWF9TQUZFX0lOVEVHRVIsJyArXG4gICAgJ01JTl9TQUZFX0lOVEVHRVIscGFyc2VGbG9hdCxwYXJzZUludCxpc0ludGVnZXInXG4gICkuc3BsaXQoJywnKSwgaiA9IDAsIGtleTsga2V5cy5sZW5ndGggPiBqOyBqKyspIHtcbiAgICBpZiAoaGFzKEJhc2UsIGtleSA9IGtleXNbal0pICYmICFoYXMoJE51bWJlciwga2V5KSkge1xuICAgICAgZFAoJE51bWJlciwga2V5LCBnT1BEKEJhc2UsIGtleSkpO1xuICAgIH1cbiAgfVxuICAkTnVtYmVyLnByb3RvdHlwZSA9IHByb3RvO1xuICBwcm90by5jb25zdHJ1Y3RvciA9ICROdW1iZXI7XG4gIHJlcXVpcmUoJy4vX3JlZGVmaW5lJykoZ2xvYmFsLCBOVU1CRVIsICROdW1iZXIpO1xufVxuIiwiLy8gMTkuMS4zLjEgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHNvdXJjZSlcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG5cbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GLCAnT2JqZWN0JywgeyBhc3NpZ246IHJlcXVpcmUoJy4vX29iamVjdC1hc3NpZ24nKSB9KTtcbiIsIi8vIDE5LjEuMi41IE9iamVjdC5mcmVlemUoTylcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIG1ldGEgPSByZXF1aXJlKCcuL19tZXRhJykub25GcmVlemU7XG5cbnJlcXVpcmUoJy4vX29iamVjdC1zYXAnKSgnZnJlZXplJywgZnVuY3Rpb24gKCRmcmVlemUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGZyZWV6ZShpdCkge1xuICAgIHJldHVybiAkZnJlZXplICYmIGlzT2JqZWN0KGl0KSA/ICRmcmVlemUobWV0YShpdCkpIDogaXQ7XG4gIH07XG59KTtcbiIsIi8vIDE5LjEuMi42IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUClcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgJGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BkJykuZjtcblxucmVxdWlyZSgnLi9fb2JqZWN0LXNhcCcpKCdnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3InLCBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaXQsIGtleSkge1xuICAgIHJldHVybiAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRvSU9iamVjdChpdCksIGtleSk7XG4gIH07XG59KTtcbiIsIi8vIDE5LjEuMi43IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKE8pXG5yZXF1aXJlKCcuL19vYmplY3Qtc2FwJykoJ2dldE93blByb3BlcnR5TmFtZXMnLCBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiByZXF1aXJlKCcuL19vYmplY3QtZ29wbi1leHQnKS5mO1xufSk7XG4iLCIvLyAxOS4xLjIuMTQgT2JqZWN0LmtleXMoTylcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4vX3RvLW9iamVjdCcpO1xudmFyICRrZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMnKTtcblxucmVxdWlyZSgnLi9fb2JqZWN0LXNhcCcpKCdrZXlzJywgZnVuY3Rpb24gKCkge1xuICByZXR1cm4gZnVuY3Rpb24ga2V5cyhpdCkge1xuICAgIHJldHVybiAka2V5cyh0b09iamVjdChpdCkpO1xuICB9O1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG4vLyAxOS4xLjMuNiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nKClcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi9fY2xhc3NvZicpO1xudmFyIHRlc3QgPSB7fTtcbnRlc3RbcmVxdWlyZSgnLi9fd2tzJykoJ3RvU3RyaW5nVGFnJyldID0gJ3onO1xuaWYgKHRlc3QgKyAnJyAhPSAnW29iamVjdCB6XScpIHtcbiAgcmVxdWlyZSgnLi9fcmVkZWZpbmUnKShPYmplY3QucHJvdG90eXBlLCAndG9TdHJpbmcnLCBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gJ1tvYmplY3QgJyArIGNsYXNzb2YodGhpcykgKyAnXSc7XG4gIH0sIHRydWUpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHJlZ2V4cEV4ZWMgPSByZXF1aXJlKCcuL19yZWdleHAtZXhlYycpO1xucmVxdWlyZSgnLi9fZXhwb3J0Jykoe1xuICB0YXJnZXQ6ICdSZWdFeHAnLFxuICBwcm90bzogdHJ1ZSxcbiAgZm9yY2VkOiByZWdleHBFeGVjICE9PSAvLi8uZXhlY1xufSwge1xuICBleGVjOiByZWdleHBFeGVjXG59KTtcbiIsIi8vIDIxLjIuNS4zIGdldCBSZWdFeHAucHJvdG90eXBlLmZsYWdzKClcbmlmIChyZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpICYmIC8uL2cuZmxhZ3MgIT0gJ2cnKSByZXF1aXJlKCcuL19vYmplY3QtZHAnKS5mKFJlZ0V4cC5wcm90b3R5cGUsICdmbGFncycsIHtcbiAgY29uZmlndXJhYmxlOiB0cnVlLFxuICBnZXQ6IHJlcXVpcmUoJy4vX2ZsYWdzJylcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4vX3RvLWxlbmd0aCcpO1xudmFyIGFkdmFuY2VTdHJpbmdJbmRleCA9IHJlcXVpcmUoJy4vX2FkdmFuY2Utc3RyaW5nLWluZGV4Jyk7XG52YXIgcmVnRXhwRXhlYyA9IHJlcXVpcmUoJy4vX3JlZ2V4cC1leGVjLWFic3RyYWN0Jyk7XG5cbi8vIEBAbWF0Y2ggbG9naWNcbnJlcXVpcmUoJy4vX2ZpeC1yZS13a3MnKSgnbWF0Y2gnLCAxLCBmdW5jdGlvbiAoZGVmaW5lZCwgTUFUQ0gsICRtYXRjaCwgbWF5YmVDYWxsTmF0aXZlKSB7XG4gIHJldHVybiBbXG4gICAgLy8gYFN0cmluZy5wcm90b3R5cGUubWF0Y2hgIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUubWF0Y2hcbiAgICBmdW5jdGlvbiBtYXRjaChyZWdleHApIHtcbiAgICAgIHZhciBPID0gZGVmaW5lZCh0aGlzKTtcbiAgICAgIHZhciBmbiA9IHJlZ2V4cCA9PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiByZWdleHBbTUFUQ0hdO1xuICAgICAgcmV0dXJuIGZuICE9PSB1bmRlZmluZWQgPyBmbi5jYWxsKHJlZ2V4cCwgTykgOiBuZXcgUmVnRXhwKHJlZ2V4cClbTUFUQ0hdKFN0cmluZyhPKSk7XG4gICAgfSxcbiAgICAvLyBgUmVnRXhwLnByb3RvdHlwZVtAQG1hdGNoXWAgbWV0aG9kXG4gICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtcmVnZXhwLnByb3RvdHlwZS1AQG1hdGNoXG4gICAgZnVuY3Rpb24gKHJlZ2V4cCkge1xuICAgICAgdmFyIHJlcyA9IG1heWJlQ2FsbE5hdGl2ZSgkbWF0Y2gsIHJlZ2V4cCwgdGhpcyk7XG4gICAgICBpZiAocmVzLmRvbmUpIHJldHVybiByZXMudmFsdWU7XG4gICAgICB2YXIgcnggPSBhbk9iamVjdChyZWdleHApO1xuICAgICAgdmFyIFMgPSBTdHJpbmcodGhpcyk7XG4gICAgICBpZiAoIXJ4Lmdsb2JhbCkgcmV0dXJuIHJlZ0V4cEV4ZWMocngsIFMpO1xuICAgICAgdmFyIGZ1bGxVbmljb2RlID0gcngudW5pY29kZTtcbiAgICAgIHJ4Lmxhc3RJbmRleCA9IDA7XG4gICAgICB2YXIgQSA9IFtdO1xuICAgICAgdmFyIG4gPSAwO1xuICAgICAgdmFyIHJlc3VsdDtcbiAgICAgIHdoaWxlICgocmVzdWx0ID0gcmVnRXhwRXhlYyhyeCwgUykpICE9PSBudWxsKSB7XG4gICAgICAgIHZhciBtYXRjaFN0ciA9IFN0cmluZyhyZXN1bHRbMF0pO1xuICAgICAgICBBW25dID0gbWF0Y2hTdHI7XG4gICAgICAgIGlmIChtYXRjaFN0ciA9PT0gJycpIHJ4Lmxhc3RJbmRleCA9IGFkdmFuY2VTdHJpbmdJbmRleChTLCB0b0xlbmd0aChyeC5sYXN0SW5kZXgpLCBmdWxsVW5pY29kZSk7XG4gICAgICAgIG4rKztcbiAgICAgIH1cbiAgICAgIHJldHVybiBuID09PSAwID8gbnVsbCA6IEE7XG4gICAgfVxuICBdO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIHNhbWVWYWx1ZSA9IHJlcXVpcmUoJy4vX3NhbWUtdmFsdWUnKTtcbnZhciByZWdFeHBFeGVjID0gcmVxdWlyZSgnLi9fcmVnZXhwLWV4ZWMtYWJzdHJhY3QnKTtcblxuLy8gQEBzZWFyY2ggbG9naWNcbnJlcXVpcmUoJy4vX2ZpeC1yZS13a3MnKSgnc2VhcmNoJywgMSwgZnVuY3Rpb24gKGRlZmluZWQsIFNFQVJDSCwgJHNlYXJjaCwgbWF5YmVDYWxsTmF0aXZlKSB7XG4gIHJldHVybiBbXG4gICAgLy8gYFN0cmluZy5wcm90b3R5cGUuc2VhcmNoYCBtZXRob2RcbiAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLnNlYXJjaFxuICAgIGZ1bmN0aW9uIHNlYXJjaChyZWdleHApIHtcbiAgICAgIHZhciBPID0gZGVmaW5lZCh0aGlzKTtcbiAgICAgIHZhciBmbiA9IHJlZ2V4cCA9PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiByZWdleHBbU0VBUkNIXTtcbiAgICAgIHJldHVybiBmbiAhPT0gdW5kZWZpbmVkID8gZm4uY2FsbChyZWdleHAsIE8pIDogbmV3IFJlZ0V4cChyZWdleHApW1NFQVJDSF0oU3RyaW5nKE8pKTtcbiAgICB9LFxuICAgIC8vIGBSZWdFeHAucHJvdG90eXBlW0BAc2VhcmNoXWAgbWV0aG9kXG4gICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtcmVnZXhwLnByb3RvdHlwZS1AQHNlYXJjaFxuICAgIGZ1bmN0aW9uIChyZWdleHApIHtcbiAgICAgIHZhciByZXMgPSBtYXliZUNhbGxOYXRpdmUoJHNlYXJjaCwgcmVnZXhwLCB0aGlzKTtcbiAgICAgIGlmIChyZXMuZG9uZSkgcmV0dXJuIHJlcy52YWx1ZTtcbiAgICAgIHZhciByeCA9IGFuT2JqZWN0KHJlZ2V4cCk7XG4gICAgICB2YXIgUyA9IFN0cmluZyh0aGlzKTtcbiAgICAgIHZhciBwcmV2aW91c0xhc3RJbmRleCA9IHJ4Lmxhc3RJbmRleDtcbiAgICAgIGlmICghc2FtZVZhbHVlKHByZXZpb3VzTGFzdEluZGV4LCAwKSkgcngubGFzdEluZGV4ID0gMDtcbiAgICAgIHZhciByZXN1bHQgPSByZWdFeHBFeGVjKHJ4LCBTKTtcbiAgICAgIGlmICghc2FtZVZhbHVlKHJ4Lmxhc3RJbmRleCwgcHJldmlvdXNMYXN0SW5kZXgpKSByeC5sYXN0SW5kZXggPSBwcmV2aW91c0xhc3RJbmRleDtcbiAgICAgIHJldHVybiByZXN1bHQgPT09IG51bGwgPyAtMSA6IHJlc3VsdC5pbmRleDtcbiAgICB9XG4gIF07XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGlzUmVnRXhwID0gcmVxdWlyZSgnLi9faXMtcmVnZXhwJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBzcGVjaWVzQ29uc3RydWN0b3IgPSByZXF1aXJlKCcuL19zcGVjaWVzLWNvbnN0cnVjdG9yJyk7XG52YXIgYWR2YW5jZVN0cmluZ0luZGV4ID0gcmVxdWlyZSgnLi9fYWR2YW5jZS1zdHJpbmctaW5kZXgnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4vX3RvLWxlbmd0aCcpO1xudmFyIGNhbGxSZWdFeHBFeGVjID0gcmVxdWlyZSgnLi9fcmVnZXhwLWV4ZWMtYWJzdHJhY3QnKTtcbnZhciByZWdleHBFeGVjID0gcmVxdWlyZSgnLi9fcmVnZXhwLWV4ZWMnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4vX2ZhaWxzJyk7XG52YXIgJG1pbiA9IE1hdGgubWluO1xudmFyICRwdXNoID0gW10ucHVzaDtcbnZhciAkU1BMSVQgPSAnc3BsaXQnO1xudmFyIExFTkdUSCA9ICdsZW5ndGgnO1xudmFyIExBU1RfSU5ERVggPSAnbGFzdEluZGV4JztcbnZhciBNQVhfVUlOVDMyID0gMHhmZmZmZmZmZjtcblxuLy8gYmFiZWwtbWluaWZ5IHRyYW5zcGlsZXMgUmVnRXhwKCd4JywgJ3knKSAtPiAveC95IGFuZCBpdCBjYXVzZXMgU3ludGF4RXJyb3JcbnZhciBTVVBQT1JUU19ZID0gIWZhaWxzKGZ1bmN0aW9uICgpIHsgUmVnRXhwKE1BWF9VSU5UMzIsICd5Jyk7IH0pO1xuXG4vLyBAQHNwbGl0IGxvZ2ljXG5yZXF1aXJlKCcuL19maXgtcmUtd2tzJykoJ3NwbGl0JywgMiwgZnVuY3Rpb24gKGRlZmluZWQsIFNQTElULCAkc3BsaXQsIG1heWJlQ2FsbE5hdGl2ZSkge1xuICB2YXIgaW50ZXJuYWxTcGxpdDtcbiAgaWYgKFxuICAgICdhYmJjJ1skU1BMSVRdKC8oYikqLylbMV0gPT0gJ2MnIHx8XG4gICAgJ3Rlc3QnWyRTUExJVF0oLyg/OikvLCAtMSlbTEVOR1RIXSAhPSA0IHx8XG4gICAgJ2FiJ1skU1BMSVRdKC8oPzphYikqLylbTEVOR1RIXSAhPSAyIHx8XG4gICAgJy4nWyRTUExJVF0oLyguPykoLj8pLylbTEVOR1RIXSAhPSA0IHx8XG4gICAgJy4nWyRTUExJVF0oLygpKCkvKVtMRU5HVEhdID4gMSB8fFxuICAgICcnWyRTUExJVF0oLy4/LylbTEVOR1RIXVxuICApIHtcbiAgICAvLyBiYXNlZCBvbiBlczUtc2hpbSBpbXBsZW1lbnRhdGlvbiwgbmVlZCB0byByZXdvcmsgaXRcbiAgICBpbnRlcm5hbFNwbGl0ID0gZnVuY3Rpb24gKHNlcGFyYXRvciwgbGltaXQpIHtcbiAgICAgIHZhciBzdHJpbmcgPSBTdHJpbmcodGhpcyk7XG4gICAgICBpZiAoc2VwYXJhdG9yID09PSB1bmRlZmluZWQgJiYgbGltaXQgPT09IDApIHJldHVybiBbXTtcbiAgICAgIC8vIElmIGBzZXBhcmF0b3JgIGlzIG5vdCBhIHJlZ2V4LCB1c2UgbmF0aXZlIHNwbGl0XG4gICAgICBpZiAoIWlzUmVnRXhwKHNlcGFyYXRvcikpIHJldHVybiAkc3BsaXQuY2FsbChzdHJpbmcsIHNlcGFyYXRvciwgbGltaXQpO1xuICAgICAgdmFyIG91dHB1dCA9IFtdO1xuICAgICAgdmFyIGZsYWdzID0gKHNlcGFyYXRvci5pZ25vcmVDYXNlID8gJ2knIDogJycpICtcbiAgICAgICAgICAgICAgICAgIChzZXBhcmF0b3IubXVsdGlsaW5lID8gJ20nIDogJycpICtcbiAgICAgICAgICAgICAgICAgIChzZXBhcmF0b3IudW5pY29kZSA/ICd1JyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAoc2VwYXJhdG9yLnN0aWNreSA/ICd5JyA6ICcnKTtcbiAgICAgIHZhciBsYXN0TGFzdEluZGV4ID0gMDtcbiAgICAgIHZhciBzcGxpdExpbWl0ID0gbGltaXQgPT09IHVuZGVmaW5lZCA/IE1BWF9VSU5UMzIgOiBsaW1pdCA+Pj4gMDtcbiAgICAgIC8vIE1ha2UgYGdsb2JhbGAgYW5kIGF2b2lkIGBsYXN0SW5kZXhgIGlzc3VlcyBieSB3b3JraW5nIHdpdGggYSBjb3B5XG4gICAgICB2YXIgc2VwYXJhdG9yQ29weSA9IG5ldyBSZWdFeHAoc2VwYXJhdG9yLnNvdXJjZSwgZmxhZ3MgKyAnZycpO1xuICAgICAgdmFyIG1hdGNoLCBsYXN0SW5kZXgsIGxhc3RMZW5ndGg7XG4gICAgICB3aGlsZSAobWF0Y2ggPSByZWdleHBFeGVjLmNhbGwoc2VwYXJhdG9yQ29weSwgc3RyaW5nKSkge1xuICAgICAgICBsYXN0SW5kZXggPSBzZXBhcmF0b3JDb3B5W0xBU1RfSU5ERVhdO1xuICAgICAgICBpZiAobGFzdEluZGV4ID4gbGFzdExhc3RJbmRleCkge1xuICAgICAgICAgIG91dHB1dC5wdXNoKHN0cmluZy5zbGljZShsYXN0TGFzdEluZGV4LCBtYXRjaC5pbmRleCkpO1xuICAgICAgICAgIGlmIChtYXRjaFtMRU5HVEhdID4gMSAmJiBtYXRjaC5pbmRleCA8IHN0cmluZ1tMRU5HVEhdKSAkcHVzaC5hcHBseShvdXRwdXQsIG1hdGNoLnNsaWNlKDEpKTtcbiAgICAgICAgICBsYXN0TGVuZ3RoID0gbWF0Y2hbMF1bTEVOR1RIXTtcbiAgICAgICAgICBsYXN0TGFzdEluZGV4ID0gbGFzdEluZGV4O1xuICAgICAgICAgIGlmIChvdXRwdXRbTEVOR1RIXSA+PSBzcGxpdExpbWl0KSBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2VwYXJhdG9yQ29weVtMQVNUX0lOREVYXSA9PT0gbWF0Y2guaW5kZXgpIHNlcGFyYXRvckNvcHlbTEFTVF9JTkRFWF0rKzsgLy8gQXZvaWQgYW4gaW5maW5pdGUgbG9vcFxuICAgICAgfVxuICAgICAgaWYgKGxhc3RMYXN0SW5kZXggPT09IHN0cmluZ1tMRU5HVEhdKSB7XG4gICAgICAgIGlmIChsYXN0TGVuZ3RoIHx8ICFzZXBhcmF0b3JDb3B5LnRlc3QoJycpKSBvdXRwdXQucHVzaCgnJyk7XG4gICAgICB9IGVsc2Ugb3V0cHV0LnB1c2goc3RyaW5nLnNsaWNlKGxhc3RMYXN0SW5kZXgpKTtcbiAgICAgIHJldHVybiBvdXRwdXRbTEVOR1RIXSA+IHNwbGl0TGltaXQgPyBvdXRwdXQuc2xpY2UoMCwgc3BsaXRMaW1pdCkgOiBvdXRwdXQ7XG4gICAgfTtcbiAgLy8gQ2hha3JhLCBWOFxuICB9IGVsc2UgaWYgKCcwJ1skU1BMSVRdKHVuZGVmaW5lZCwgMClbTEVOR1RIXSkge1xuICAgIGludGVybmFsU3BsaXQgPSBmdW5jdGlvbiAoc2VwYXJhdG9yLCBsaW1pdCkge1xuICAgICAgcmV0dXJuIHNlcGFyYXRvciA9PT0gdW5kZWZpbmVkICYmIGxpbWl0ID09PSAwID8gW10gOiAkc3BsaXQuY2FsbCh0aGlzLCBzZXBhcmF0b3IsIGxpbWl0KTtcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIGludGVybmFsU3BsaXQgPSAkc3BsaXQ7XG4gIH1cblxuICByZXR1cm4gW1xuICAgIC8vIGBTdHJpbmcucHJvdG90eXBlLnNwbGl0YCBtZXRob2RcbiAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLnNwbGl0XG4gICAgZnVuY3Rpb24gc3BsaXQoc2VwYXJhdG9yLCBsaW1pdCkge1xuICAgICAgdmFyIE8gPSBkZWZpbmVkKHRoaXMpO1xuICAgICAgdmFyIHNwbGl0dGVyID0gc2VwYXJhdG9yID09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IHNlcGFyYXRvcltTUExJVF07XG4gICAgICByZXR1cm4gc3BsaXR0ZXIgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IHNwbGl0dGVyLmNhbGwoc2VwYXJhdG9yLCBPLCBsaW1pdClcbiAgICAgICAgOiBpbnRlcm5hbFNwbGl0LmNhbGwoU3RyaW5nKE8pLCBzZXBhcmF0b3IsIGxpbWl0KTtcbiAgICB9LFxuICAgIC8vIGBSZWdFeHAucHJvdG90eXBlW0BAc3BsaXRdYCBtZXRob2RcbiAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZWdleHAucHJvdG90eXBlLUBAc3BsaXRcbiAgICAvL1xuICAgIC8vIE5PVEU6IFRoaXMgY2Fubm90IGJlIHByb3Blcmx5IHBvbHlmaWxsZWQgaW4gZW5naW5lcyB0aGF0IGRvbid0IHN1cHBvcnRcbiAgICAvLyB0aGUgJ3knIGZsYWcuXG4gICAgZnVuY3Rpb24gKHJlZ2V4cCwgbGltaXQpIHtcbiAgICAgIHZhciByZXMgPSBtYXliZUNhbGxOYXRpdmUoaW50ZXJuYWxTcGxpdCwgcmVnZXhwLCB0aGlzLCBsaW1pdCwgaW50ZXJuYWxTcGxpdCAhPT0gJHNwbGl0KTtcbiAgICAgIGlmIChyZXMuZG9uZSkgcmV0dXJuIHJlcy52YWx1ZTtcblxuICAgICAgdmFyIHJ4ID0gYW5PYmplY3QocmVnZXhwKTtcbiAgICAgIHZhciBTID0gU3RyaW5nKHRoaXMpO1xuICAgICAgdmFyIEMgPSBzcGVjaWVzQ29uc3RydWN0b3IocngsIFJlZ0V4cCk7XG5cbiAgICAgIHZhciB1bmljb2RlTWF0Y2hpbmcgPSByeC51bmljb2RlO1xuICAgICAgdmFyIGZsYWdzID0gKHJ4Lmlnbm9yZUNhc2UgPyAnaScgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgKHJ4Lm11bHRpbGluZSA/ICdtJyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAocngudW5pY29kZSA/ICd1JyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAoU1VQUE9SVFNfWSA/ICd5JyA6ICdnJyk7XG5cbiAgICAgIC8vIF4oPyArIHJ4ICsgKSBpcyBuZWVkZWQsIGluIGNvbWJpbmF0aW9uIHdpdGggc29tZSBTIHNsaWNpbmcsIHRvXG4gICAgICAvLyBzaW11bGF0ZSB0aGUgJ3knIGZsYWcuXG4gICAgICB2YXIgc3BsaXR0ZXIgPSBuZXcgQyhTVVBQT1JUU19ZID8gcnggOiAnXig/OicgKyByeC5zb3VyY2UgKyAnKScsIGZsYWdzKTtcbiAgICAgIHZhciBsaW0gPSBsaW1pdCA9PT0gdW5kZWZpbmVkID8gTUFYX1VJTlQzMiA6IGxpbWl0ID4+PiAwO1xuICAgICAgaWYgKGxpbSA9PT0gMCkgcmV0dXJuIFtdO1xuICAgICAgaWYgKFMubGVuZ3RoID09PSAwKSByZXR1cm4gY2FsbFJlZ0V4cEV4ZWMoc3BsaXR0ZXIsIFMpID09PSBudWxsID8gW1NdIDogW107XG4gICAgICB2YXIgcCA9IDA7XG4gICAgICB2YXIgcSA9IDA7XG4gICAgICB2YXIgQSA9IFtdO1xuICAgICAgd2hpbGUgKHEgPCBTLmxlbmd0aCkge1xuICAgICAgICBzcGxpdHRlci5sYXN0SW5kZXggPSBTVVBQT1JUU19ZID8gcSA6IDA7XG4gICAgICAgIHZhciB6ID0gY2FsbFJlZ0V4cEV4ZWMoc3BsaXR0ZXIsIFNVUFBPUlRTX1kgPyBTIDogUy5zbGljZShxKSk7XG4gICAgICAgIHZhciBlO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgeiA9PT0gbnVsbCB8fFxuICAgICAgICAgIChlID0gJG1pbih0b0xlbmd0aChzcGxpdHRlci5sYXN0SW5kZXggKyAoU1VQUE9SVFNfWSA/IDAgOiBxKSksIFMubGVuZ3RoKSkgPT09IHBcbiAgICAgICAgKSB7XG4gICAgICAgICAgcSA9IGFkdmFuY2VTdHJpbmdJbmRleChTLCBxLCB1bmljb2RlTWF0Y2hpbmcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIEEucHVzaChTLnNsaWNlKHAsIHEpKTtcbiAgICAgICAgICBpZiAoQS5sZW5ndGggPT09IGxpbSkgcmV0dXJuIEE7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gei5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgICAgIEEucHVzaCh6W2ldKTtcbiAgICAgICAgICAgIGlmIChBLmxlbmd0aCA9PT0gbGltKSByZXR1cm4gQTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcSA9IHAgPSBlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBBLnB1c2goUy5zbGljZShwKSk7XG4gICAgICByZXR1cm4gQTtcbiAgICB9XG4gIF07XG59KTtcbiIsInZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi9fdG8tYWJzb2x1dGUtaW5kZXgnKTtcbnZhciBmcm9tQ2hhckNvZGUgPSBTdHJpbmcuZnJvbUNoYXJDb2RlO1xudmFyICRmcm9tQ29kZVBvaW50ID0gU3RyaW5nLmZyb21Db2RlUG9pbnQ7XG5cbi8vIGxlbmd0aCBzaG91bGQgYmUgMSwgb2xkIEZGIHByb2JsZW1cbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogKCEhJGZyb21Db2RlUG9pbnQgJiYgJGZyb21Db2RlUG9pbnQubGVuZ3RoICE9IDEpLCAnU3RyaW5nJywge1xuICAvLyAyMS4xLjIuMiBTdHJpbmcuZnJvbUNvZGVQb2ludCguLi5jb2RlUG9pbnRzKVxuICBmcm9tQ29kZVBvaW50OiBmdW5jdGlvbiBmcm9tQ29kZVBvaW50KHgpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICAgIHZhciByZXMgPSBbXTtcbiAgICB2YXIgYUxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgdmFyIGkgPSAwO1xuICAgIHZhciBjb2RlO1xuICAgIHdoaWxlIChhTGVuID4gaSkge1xuICAgICAgY29kZSA9ICthcmd1bWVudHNbaSsrXTtcbiAgICAgIGlmICh0b0Fic29sdXRlSW5kZXgoY29kZSwgMHgxMGZmZmYpICE9PSBjb2RlKSB0aHJvdyBSYW5nZUVycm9yKGNvZGUgKyAnIGlzIG5vdCBhIHZhbGlkIGNvZGUgcG9pbnQnKTtcbiAgICAgIHJlcy5wdXNoKGNvZGUgPCAweDEwMDAwXG4gICAgICAgID8gZnJvbUNoYXJDb2RlKGNvZGUpXG4gICAgICAgIDogZnJvbUNoYXJDb2RlKCgoY29kZSAtPSAweDEwMDAwKSA+PiAxMCkgKyAweGQ4MDAsIGNvZGUgJSAweDQwMCArIDB4ZGMwMClcbiAgICAgICk7XG4gICAgfSByZXR1cm4gcmVzLmpvaW4oJycpO1xuICB9XG59KTtcbiIsIi8vIDIxLjEuMy43IFN0cmluZy5wcm90b3R5cGUuaW5jbHVkZXMoc2VhcmNoU3RyaW5nLCBwb3NpdGlvbiA9IDApXG4ndXNlIHN0cmljdCc7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIGNvbnRleHQgPSByZXF1aXJlKCcuL19zdHJpbmctY29udGV4dCcpO1xudmFyIElOQ0xVREVTID0gJ2luY2x1ZGVzJztcblxuJGV4cG9ydCgkZXhwb3J0LlAgKyAkZXhwb3J0LkYgKiByZXF1aXJlKCcuL19mYWlscy1pcy1yZWdleHAnKShJTkNMVURFUyksICdTdHJpbmcnLCB7XG4gIGluY2x1ZGVzOiBmdW5jdGlvbiBpbmNsdWRlcyhzZWFyY2hTdHJpbmcgLyogLCBwb3NpdGlvbiA9IDAgKi8pIHtcbiAgICByZXR1cm4gISF+Y29udGV4dCh0aGlzLCBzZWFyY2hTdHJpbmcsIElOQ0xVREVTKVxuICAgICAgLmluZGV4T2Yoc2VhcmNoU3RyaW5nLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRhdCA9IHJlcXVpcmUoJy4vX3N0cmluZy1hdCcpKHRydWUpO1xuXG4vLyAyMS4xLjMuMjcgU3RyaW5nLnByb3RvdHlwZVtAQGl0ZXJhdG9yXSgpXG5yZXF1aXJlKCcuL19pdGVyLWRlZmluZScpKFN0cmluZywgJ1N0cmluZycsIGZ1bmN0aW9uIChpdGVyYXRlZCkge1xuICB0aGlzLl90ID0gU3RyaW5nKGl0ZXJhdGVkKTsgLy8gdGFyZ2V0XG4gIHRoaXMuX2kgPSAwOyAgICAgICAgICAgICAgICAvLyBuZXh0IGluZGV4XG4vLyAyMS4xLjUuMi4xICVTdHJpbmdJdGVyYXRvclByb3RvdHlwZSUubmV4dCgpXG59LCBmdW5jdGlvbiAoKSB7XG4gIHZhciBPID0gdGhpcy5fdDtcbiAgdmFyIGluZGV4ID0gdGhpcy5faTtcbiAgdmFyIHBvaW50O1xuICBpZiAoaW5kZXggPj0gTy5sZW5ndGgpIHJldHVybiB7IHZhbHVlOiB1bmRlZmluZWQsIGRvbmU6IHRydWUgfTtcbiAgcG9pbnQgPSAkYXQoTywgaW5kZXgpO1xuICB0aGlzLl9pICs9IHBvaW50Lmxlbmd0aDtcbiAgcmV0dXJuIHsgdmFsdWU6IHBvaW50LCBkb25lOiBmYWxzZSB9O1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG4vLyBFQ01BU2NyaXB0IDYgc3ltYm9scyBzaGltXG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpO1xudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciByZWRlZmluZSA9IHJlcXVpcmUoJy4vX3JlZGVmaW5lJyk7XG52YXIgTUVUQSA9IHJlcXVpcmUoJy4vX21ldGEnKS5LRVk7XG52YXIgJGZhaWxzID0gcmVxdWlyZSgnLi9fZmFpbHMnKTtcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuL19zaGFyZWQnKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4vX3NldC10by1zdHJpbmctdGFnJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi9fdWlkJyk7XG52YXIgd2tzID0gcmVxdWlyZSgnLi9fd2tzJyk7XG52YXIgd2tzRXh0ID0gcmVxdWlyZSgnLi9fd2tzLWV4dCcpO1xudmFyIHdrc0RlZmluZSA9IHJlcXVpcmUoJy4vX3drcy1kZWZpbmUnKTtcbnZhciBlbnVtS2V5cyA9IHJlcXVpcmUoJy4vX2VudW0ta2V5cycpO1xudmFyIGlzQXJyYXkgPSByZXF1aXJlKCcuL19pcy1hcnJheScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuL190by1wcmltaXRpdmUnKTtcbnZhciBjcmVhdGVEZXNjID0gcmVxdWlyZSgnLi9fcHJvcGVydHktZGVzYycpO1xudmFyIF9jcmVhdGUgPSByZXF1aXJlKCcuL19vYmplY3QtY3JlYXRlJyk7XG52YXIgZ09QTkV4dCA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BuLWV4dCcpO1xudmFyICRHT1BEID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdvcGQnKTtcbnZhciAkRFAgPSByZXF1aXJlKCcuL19vYmplY3QtZHAnKTtcbnZhciAka2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG52YXIgZ09QRCA9ICRHT1BELmY7XG52YXIgZFAgPSAkRFAuZjtcbnZhciBnT1BOID0gZ09QTkV4dC5mO1xudmFyICRTeW1ib2wgPSBnbG9iYWwuU3ltYm9sO1xudmFyICRKU09OID0gZ2xvYmFsLkpTT047XG52YXIgX3N0cmluZ2lmeSA9ICRKU09OICYmICRKU09OLnN0cmluZ2lmeTtcbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcbnZhciBISURERU4gPSB3a3MoJ19oaWRkZW4nKTtcbnZhciBUT19QUklNSVRJVkUgPSB3a3MoJ3RvUHJpbWl0aXZlJyk7XG52YXIgaXNFbnVtID0ge30ucHJvcGVydHlJc0VudW1lcmFibGU7XG52YXIgU3ltYm9sUmVnaXN0cnkgPSBzaGFyZWQoJ3N5bWJvbC1yZWdpc3RyeScpO1xudmFyIEFsbFN5bWJvbHMgPSBzaGFyZWQoJ3N5bWJvbHMnKTtcbnZhciBPUFN5bWJvbHMgPSBzaGFyZWQoJ29wLXN5bWJvbHMnKTtcbnZhciBPYmplY3RQcm90byA9IE9iamVjdFtQUk9UT1RZUEVdO1xudmFyIFVTRV9OQVRJVkUgPSB0eXBlb2YgJFN5bWJvbCA9PSAnZnVuY3Rpb24nO1xudmFyIFFPYmplY3QgPSBnbG9iYWwuUU9iamVjdDtcbi8vIERvbid0IHVzZSBzZXR0ZXJzIGluIFF0IFNjcmlwdCwgaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzE3M1xudmFyIHNldHRlciA9ICFRT2JqZWN0IHx8ICFRT2JqZWN0W1BST1RPVFlQRV0gfHwgIVFPYmplY3RbUFJPVE9UWVBFXS5maW5kQ2hpbGQ7XG5cbi8vIGZhbGxiYWNrIGZvciBvbGQgQW5kcm9pZCwgaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTY4N1xudmFyIHNldFN5bWJvbERlc2MgPSBERVNDUklQVE9SUyAmJiAkZmFpbHMoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gX2NyZWF0ZShkUCh7fSwgJ2EnLCB7XG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBkUCh0aGlzLCAnYScsIHsgdmFsdWU6IDcgfSkuYTsgfVxuICB9KSkuYSAhPSA3O1xufSkgPyBmdW5jdGlvbiAoaXQsIGtleSwgRCkge1xuICB2YXIgcHJvdG9EZXNjID0gZ09QRChPYmplY3RQcm90bywga2V5KTtcbiAgaWYgKHByb3RvRGVzYykgZGVsZXRlIE9iamVjdFByb3RvW2tleV07XG4gIGRQKGl0LCBrZXksIEQpO1xuICBpZiAocHJvdG9EZXNjICYmIGl0ICE9PSBPYmplY3RQcm90bykgZFAoT2JqZWN0UHJvdG8sIGtleSwgcHJvdG9EZXNjKTtcbn0gOiBkUDtcblxudmFyIHdyYXAgPSBmdW5jdGlvbiAodGFnKSB7XG4gIHZhciBzeW0gPSBBbGxTeW1ib2xzW3RhZ10gPSBfY3JlYXRlKCRTeW1ib2xbUFJPVE9UWVBFXSk7XG4gIHN5bS5fayA9IHRhZztcbiAgcmV0dXJuIHN5bTtcbn07XG5cbnZhciBpc1N5bWJvbCA9IFVTRV9OQVRJVkUgJiYgdHlwZW9mICRTeW1ib2wuaXRlcmF0b3IgPT0gJ3N5bWJvbCcgPyBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHR5cGVvZiBpdCA9PSAnc3ltYm9sJztcbn0gOiBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0IGluc3RhbmNlb2YgJFN5bWJvbDtcbn07XG5cbnZhciAkZGVmaW5lUHJvcGVydHkgPSBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShpdCwga2V5LCBEKSB7XG4gIGlmIChpdCA9PT0gT2JqZWN0UHJvdG8pICRkZWZpbmVQcm9wZXJ0eShPUFN5bWJvbHMsIGtleSwgRCk7XG4gIGFuT2JqZWN0KGl0KTtcbiAga2V5ID0gdG9QcmltaXRpdmUoa2V5LCB0cnVlKTtcbiAgYW5PYmplY3QoRCk7XG4gIGlmIChoYXMoQWxsU3ltYm9scywga2V5KSkge1xuICAgIGlmICghRC5lbnVtZXJhYmxlKSB7XG4gICAgICBpZiAoIWhhcyhpdCwgSElEREVOKSkgZFAoaXQsIEhJRERFTiwgY3JlYXRlRGVzYygxLCB7fSkpO1xuICAgICAgaXRbSElEREVOXVtrZXldID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGhhcyhpdCwgSElEREVOKSAmJiBpdFtISURERU5dW2tleV0pIGl0W0hJRERFTl1ba2V5XSA9IGZhbHNlO1xuICAgICAgRCA9IF9jcmVhdGUoRCwgeyBlbnVtZXJhYmxlOiBjcmVhdGVEZXNjKDAsIGZhbHNlKSB9KTtcbiAgICB9IHJldHVybiBzZXRTeW1ib2xEZXNjKGl0LCBrZXksIEQpO1xuICB9IHJldHVybiBkUChpdCwga2V5LCBEKTtcbn07XG52YXIgJGRlZmluZVByb3BlcnRpZXMgPSBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKGl0LCBQKSB7XG4gIGFuT2JqZWN0KGl0KTtcbiAgdmFyIGtleXMgPSBlbnVtS2V5cyhQID0gdG9JT2JqZWN0KFApKTtcbiAgdmFyIGkgPSAwO1xuICB2YXIgbCA9IGtleXMubGVuZ3RoO1xuICB2YXIga2V5O1xuICB3aGlsZSAobCA+IGkpICRkZWZpbmVQcm9wZXJ0eShpdCwga2V5ID0ga2V5c1tpKytdLCBQW2tleV0pO1xuICByZXR1cm4gaXQ7XG59O1xudmFyICRjcmVhdGUgPSBmdW5jdGlvbiBjcmVhdGUoaXQsIFApIHtcbiAgcmV0dXJuIFAgPT09IHVuZGVmaW5lZCA/IF9jcmVhdGUoaXQpIDogJGRlZmluZVByb3BlcnRpZXMoX2NyZWF0ZShpdCksIFApO1xufTtcbnZhciAkcHJvcGVydHlJc0VudW1lcmFibGUgPSBmdW5jdGlvbiBwcm9wZXJ0eUlzRW51bWVyYWJsZShrZXkpIHtcbiAgdmFyIEUgPSBpc0VudW0uY2FsbCh0aGlzLCBrZXkgPSB0b1ByaW1pdGl2ZShrZXksIHRydWUpKTtcbiAgaWYgKHRoaXMgPT09IE9iamVjdFByb3RvICYmIGhhcyhBbGxTeW1ib2xzLCBrZXkpICYmICFoYXMoT1BTeW1ib2xzLCBrZXkpKSByZXR1cm4gZmFsc2U7XG4gIHJldHVybiBFIHx8ICFoYXModGhpcywga2V5KSB8fCAhaGFzKEFsbFN5bWJvbHMsIGtleSkgfHwgaGFzKHRoaXMsIEhJRERFTikgJiYgdGhpc1tISURERU5dW2tleV0gPyBFIDogdHJ1ZTtcbn07XG52YXIgJGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IGZ1bmN0aW9uIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihpdCwga2V5KSB7XG4gIGl0ID0gdG9JT2JqZWN0KGl0KTtcbiAga2V5ID0gdG9QcmltaXRpdmUoa2V5LCB0cnVlKTtcbiAgaWYgKGl0ID09PSBPYmplY3RQcm90byAmJiBoYXMoQWxsU3ltYm9scywga2V5KSAmJiAhaGFzKE9QU3ltYm9scywga2V5KSkgcmV0dXJuO1xuICB2YXIgRCA9IGdPUEQoaXQsIGtleSk7XG4gIGlmIChEICYmIGhhcyhBbGxTeW1ib2xzLCBrZXkpICYmICEoaGFzKGl0LCBISURERU4pICYmIGl0W0hJRERFTl1ba2V5XSkpIEQuZW51bWVyYWJsZSA9IHRydWU7XG4gIHJldHVybiBEO1xufTtcbnZhciAkZ2V0T3duUHJvcGVydHlOYW1lcyA9IGZ1bmN0aW9uIGdldE93blByb3BlcnR5TmFtZXMoaXQpIHtcbiAgdmFyIG5hbWVzID0gZ09QTih0b0lPYmplY3QoaXQpKTtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICB2YXIgaSA9IDA7XG4gIHZhciBrZXk7XG4gIHdoaWxlIChuYW1lcy5sZW5ndGggPiBpKSB7XG4gICAgaWYgKCFoYXMoQWxsU3ltYm9scywga2V5ID0gbmFtZXNbaSsrXSkgJiYga2V5ICE9IEhJRERFTiAmJiBrZXkgIT0gTUVUQSkgcmVzdWx0LnB1c2goa2V5KTtcbiAgfSByZXR1cm4gcmVzdWx0O1xufTtcbnZhciAkZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlTeW1ib2xzKGl0KSB7XG4gIHZhciBJU19PUCA9IGl0ID09PSBPYmplY3RQcm90bztcbiAgdmFyIG5hbWVzID0gZ09QTihJU19PUCA/IE9QU3ltYm9scyA6IHRvSU9iamVjdChpdCkpO1xuICB2YXIgcmVzdWx0ID0gW107XG4gIHZhciBpID0gMDtcbiAgdmFyIGtleTtcbiAgd2hpbGUgKG5hbWVzLmxlbmd0aCA+IGkpIHtcbiAgICBpZiAoaGFzKEFsbFN5bWJvbHMsIGtleSA9IG5hbWVzW2krK10pICYmIChJU19PUCA/IGhhcyhPYmplY3RQcm90bywga2V5KSA6IHRydWUpKSByZXN1bHQucHVzaChBbGxTeW1ib2xzW2tleV0pO1xuICB9IHJldHVybiByZXN1bHQ7XG59O1xuXG4vLyAxOS40LjEuMSBTeW1ib2woW2Rlc2NyaXB0aW9uXSlcbmlmICghVVNFX05BVElWRSkge1xuICAkU3ltYm9sID0gZnVuY3Rpb24gU3ltYm9sKCkge1xuICAgIGlmICh0aGlzIGluc3RhbmNlb2YgJFN5bWJvbCkgdGhyb3cgVHlwZUVycm9yKCdTeW1ib2wgaXMgbm90IGEgY29uc3RydWN0b3IhJyk7XG4gICAgdmFyIHRhZyA9IHVpZChhcmd1bWVudHMubGVuZ3RoID4gMCA/IGFyZ3VtZW50c1swXSA6IHVuZGVmaW5lZCk7XG4gICAgdmFyICRzZXQgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGlmICh0aGlzID09PSBPYmplY3RQcm90bykgJHNldC5jYWxsKE9QU3ltYm9scywgdmFsdWUpO1xuICAgICAgaWYgKGhhcyh0aGlzLCBISURERU4pICYmIGhhcyh0aGlzW0hJRERFTl0sIHRhZykpIHRoaXNbSElEREVOXVt0YWddID0gZmFsc2U7XG4gICAgICBzZXRTeW1ib2xEZXNjKHRoaXMsIHRhZywgY3JlYXRlRGVzYygxLCB2YWx1ZSkpO1xuICAgIH07XG4gICAgaWYgKERFU0NSSVBUT1JTICYmIHNldHRlcikgc2V0U3ltYm9sRGVzYyhPYmplY3RQcm90bywgdGFnLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgc2V0OiAkc2V0IH0pO1xuICAgIHJldHVybiB3cmFwKHRhZyk7XG4gIH07XG4gIHJlZGVmaW5lKCRTeW1ib2xbUFJPVE9UWVBFXSwgJ3RvU3RyaW5nJywgZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2s7XG4gIH0pO1xuXG4gICRHT1BELmYgPSAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuICAkRFAuZiA9ICRkZWZpbmVQcm9wZXJ0eTtcbiAgcmVxdWlyZSgnLi9fb2JqZWN0LWdvcG4nKS5mID0gZ09QTkV4dC5mID0gJGdldE93blByb3BlcnR5TmFtZXM7XG4gIHJlcXVpcmUoJy4vX29iamVjdC1waWUnKS5mID0gJHByb3BlcnR5SXNFbnVtZXJhYmxlO1xuICByZXF1aXJlKCcuL19vYmplY3QtZ29wcycpLmYgPSAkZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xuXG4gIGlmIChERVNDUklQVE9SUyAmJiAhcmVxdWlyZSgnLi9fbGlicmFyeScpKSB7XG4gICAgcmVkZWZpbmUoT2JqZWN0UHJvdG8sICdwcm9wZXJ0eUlzRW51bWVyYWJsZScsICRwcm9wZXJ0eUlzRW51bWVyYWJsZSwgdHJ1ZSk7XG4gIH1cblxuICB3a3NFeHQuZiA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgcmV0dXJuIHdyYXAod2tzKG5hbWUpKTtcbiAgfTtcbn1cblxuJGV4cG9ydCgkZXhwb3J0LkcgKyAkZXhwb3J0LlcgKyAkZXhwb3J0LkYgKiAhVVNFX05BVElWRSwgeyBTeW1ib2w6ICRTeW1ib2wgfSk7XG5cbmZvciAodmFyIGVzNlN5bWJvbHMgPSAoXG4gIC8vIDE5LjQuMi4yLCAxOS40LjIuMywgMTkuNC4yLjQsIDE5LjQuMi42LCAxOS40LjIuOCwgMTkuNC4yLjksIDE5LjQuMi4xMCwgMTkuNC4yLjExLCAxOS40LjIuMTIsIDE5LjQuMi4xMywgMTkuNC4yLjE0XG4gICdoYXNJbnN0YW5jZSxpc0NvbmNhdFNwcmVhZGFibGUsaXRlcmF0b3IsbWF0Y2gscmVwbGFjZSxzZWFyY2gsc3BlY2llcyxzcGxpdCx0b1ByaW1pdGl2ZSx0b1N0cmluZ1RhZyx1bnNjb3BhYmxlcydcbikuc3BsaXQoJywnKSwgaiA9IDA7IGVzNlN5bWJvbHMubGVuZ3RoID4gajspd2tzKGVzNlN5bWJvbHNbaisrXSk7XG5cbmZvciAodmFyIHdlbGxLbm93blN5bWJvbHMgPSAka2V5cyh3a3Muc3RvcmUpLCBrID0gMDsgd2VsbEtub3duU3ltYm9scy5sZW5ndGggPiBrOykgd2tzRGVmaW5lKHdlbGxLbm93blN5bWJvbHNbaysrXSk7XG5cbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogIVVTRV9OQVRJVkUsICdTeW1ib2wnLCB7XG4gIC8vIDE5LjQuMi4xIFN5bWJvbC5mb3Ioa2V5KVxuICAnZm9yJzogZnVuY3Rpb24gKGtleSkge1xuICAgIHJldHVybiBoYXMoU3ltYm9sUmVnaXN0cnksIGtleSArPSAnJylcbiAgICAgID8gU3ltYm9sUmVnaXN0cnlba2V5XVxuICAgICAgOiBTeW1ib2xSZWdpc3RyeVtrZXldID0gJFN5bWJvbChrZXkpO1xuICB9LFxuICAvLyAxOS40LjIuNSBTeW1ib2wua2V5Rm9yKHN5bSlcbiAga2V5Rm9yOiBmdW5jdGlvbiBrZXlGb3Ioc3ltKSB7XG4gICAgaWYgKCFpc1N5bWJvbChzeW0pKSB0aHJvdyBUeXBlRXJyb3Ioc3ltICsgJyBpcyBub3QgYSBzeW1ib2whJyk7XG4gICAgZm9yICh2YXIga2V5IGluIFN5bWJvbFJlZ2lzdHJ5KSBpZiAoU3ltYm9sUmVnaXN0cnlba2V5XSA9PT0gc3ltKSByZXR1cm4ga2V5O1xuICB9LFxuICB1c2VTZXR0ZXI6IGZ1bmN0aW9uICgpIHsgc2V0dGVyID0gdHJ1ZTsgfSxcbiAgdXNlU2ltcGxlOiBmdW5jdGlvbiAoKSB7IHNldHRlciA9IGZhbHNlOyB9XG59KTtcblxuJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiAhVVNFX05BVElWRSwgJ09iamVjdCcsIHtcbiAgLy8gMTkuMS4yLjIgT2JqZWN0LmNyZWF0ZShPIFssIFByb3BlcnRpZXNdKVxuICBjcmVhdGU6ICRjcmVhdGUsXG4gIC8vIDE5LjEuMi40IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKVxuICBkZWZpbmVQcm9wZXJ0eTogJGRlZmluZVByb3BlcnR5LFxuICAvLyAxOS4xLjIuMyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhPLCBQcm9wZXJ0aWVzKVxuICBkZWZpbmVQcm9wZXJ0aWVzOiAkZGVmaW5lUHJvcGVydGllcyxcbiAgLy8gMTkuMS4yLjYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPLCBQKVxuICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsXG4gIC8vIDE5LjEuMi43IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKE8pXG4gIGdldE93blByb3BlcnR5TmFtZXM6ICRnZXRPd25Qcm9wZXJ0eU5hbWVzLFxuICAvLyAxOS4xLjIuOCBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKE8pXG4gIGdldE93blByb3BlcnR5U3ltYm9sczogJGdldE93blByb3BlcnR5U3ltYm9sc1xufSk7XG5cbi8vIDI0LjMuMiBKU09OLnN0cmluZ2lmeSh2YWx1ZSBbLCByZXBsYWNlciBbLCBzcGFjZV1dKVxuJEpTT04gJiYgJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiAoIVVTRV9OQVRJVkUgfHwgJGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIFMgPSAkU3ltYm9sKCk7XG4gIC8vIE1TIEVkZ2UgY29udmVydHMgc3ltYm9sIHZhbHVlcyB0byBKU09OIGFzIHt9XG4gIC8vIFdlYktpdCBjb252ZXJ0cyBzeW1ib2wgdmFsdWVzIHRvIEpTT04gYXMgbnVsbFxuICAvLyBWOCB0aHJvd3Mgb24gYm94ZWQgc3ltYm9sc1xuICByZXR1cm4gX3N0cmluZ2lmeShbU10pICE9ICdbbnVsbF0nIHx8IF9zdHJpbmdpZnkoeyBhOiBTIH0pICE9ICd7fScgfHwgX3N0cmluZ2lmeShPYmplY3QoUykpICE9ICd7fSc7XG59KSksICdKU09OJywge1xuICBzdHJpbmdpZnk6IGZ1bmN0aW9uIHN0cmluZ2lmeShpdCkge1xuICAgIHZhciBhcmdzID0gW2l0XTtcbiAgICB2YXIgaSA9IDE7XG4gICAgdmFyIHJlcGxhY2VyLCAkcmVwbGFjZXI7XG4gICAgd2hpbGUgKGFyZ3VtZW50cy5sZW5ndGggPiBpKSBhcmdzLnB1c2goYXJndW1lbnRzW2krK10pO1xuICAgICRyZXBsYWNlciA9IHJlcGxhY2VyID0gYXJnc1sxXTtcbiAgICBpZiAoIWlzT2JqZWN0KHJlcGxhY2VyKSAmJiBpdCA9PT0gdW5kZWZpbmVkIHx8IGlzU3ltYm9sKGl0KSkgcmV0dXJuOyAvLyBJRTggcmV0dXJucyBzdHJpbmcgb24gdW5kZWZpbmVkXG4gICAgaWYgKCFpc0FycmF5KHJlcGxhY2VyKSkgcmVwbGFjZXIgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICAgICAgaWYgKHR5cGVvZiAkcmVwbGFjZXIgPT0gJ2Z1bmN0aW9uJykgdmFsdWUgPSAkcmVwbGFjZXIuY2FsbCh0aGlzLCBrZXksIHZhbHVlKTtcbiAgICAgIGlmICghaXNTeW1ib2wodmFsdWUpKSByZXR1cm4gdmFsdWU7XG4gICAgfTtcbiAgICBhcmdzWzFdID0gcmVwbGFjZXI7XG4gICAgcmV0dXJuIF9zdHJpbmdpZnkuYXBwbHkoJEpTT04sIGFyZ3MpO1xuICB9XG59KTtcblxuLy8gMTkuNC4zLjQgU3ltYm9sLnByb3RvdHlwZVtAQHRvUHJpbWl0aXZlXShoaW50KVxuJFN5bWJvbFtQUk9UT1RZUEVdW1RPX1BSSU1JVElWRV0gfHwgcmVxdWlyZSgnLi9faGlkZScpKCRTeW1ib2xbUFJPVE9UWVBFXSwgVE9fUFJJTUlUSVZFLCAkU3ltYm9sW1BST1RPVFlQRV0udmFsdWVPZik7XG4vLyAxOS40LjMuNSBTeW1ib2wucHJvdG90eXBlW0BAdG9TdHJpbmdUYWddXG5zZXRUb1N0cmluZ1RhZygkU3ltYm9sLCAnU3ltYm9sJyk7XG4vLyAyMC4yLjEuOSBNYXRoW0BAdG9TdHJpbmdUYWddXG5zZXRUb1N0cmluZ1RhZyhNYXRoLCAnTWF0aCcsIHRydWUpO1xuLy8gMjQuMy4zIEpTT05bQEB0b1N0cmluZ1RhZ11cbnNldFRvU3RyaW5nVGFnKGdsb2JhbC5KU09OLCAnSlNPTicsIHRydWUpO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvQXJyYXkucHJvdG90eXBlLmluY2x1ZGVzXG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyICRpbmNsdWRlcyA9IHJlcXVpcmUoJy4vX2FycmF5LWluY2x1ZGVzJykodHJ1ZSk7XG5cbiRleHBvcnQoJGV4cG9ydC5QLCAnQXJyYXknLCB7XG4gIGluY2x1ZGVzOiBmdW5jdGlvbiBpbmNsdWRlcyhlbCAvKiAsIGZyb21JbmRleCA9IDAgKi8pIHtcbiAgICByZXR1cm4gJGluY2x1ZGVzKHRoaXMsIGVsLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG4gIH1cbn0pO1xuXG5yZXF1aXJlKCcuL19hZGQtdG8tdW5zY29wYWJsZXMnKSgnaW5jbHVkZXMnKTtcbiIsIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLW9iamVjdC1nZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3JzXG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIG93bktleXMgPSByZXF1aXJlKCcuL19vd24ta2V5cycpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciBnT1BEID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdvcGQnKTtcbnZhciBjcmVhdGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vX2NyZWF0ZS1wcm9wZXJ0eScpO1xuXG4kZXhwb3J0KCRleHBvcnQuUywgJ09iamVjdCcsIHtcbiAgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yczogZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhvYmplY3QpIHtcbiAgICB2YXIgTyA9IHRvSU9iamVjdChvYmplY3QpO1xuICAgIHZhciBnZXREZXNjID0gZ09QRC5mO1xuICAgIHZhciBrZXlzID0gb3duS2V5cyhPKTtcbiAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgdmFyIGkgPSAwO1xuICAgIHZhciBrZXksIGRlc2M7XG4gICAgd2hpbGUgKGtleXMubGVuZ3RoID4gaSkge1xuICAgICAgZGVzYyA9IGdldERlc2MoTywga2V5ID0ga2V5c1tpKytdKTtcbiAgICAgIGlmIChkZXNjICE9PSB1bmRlZmluZWQpIGNyZWF0ZVByb3BlcnR5KHJlc3VsdCwga2V5LCBkZXNjKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufSk7XG4iLCJ2YXIgJGl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4vZXM2LmFycmF5Lml0ZXJhdG9yJyk7XG52YXIgZ2V0S2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG52YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuL19yZWRlZmluZScpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIGhpZGUgPSByZXF1aXJlKCcuL19oaWRlJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi9faXRlcmF0b3JzJyk7XG52YXIgd2tzID0gcmVxdWlyZSgnLi9fd2tzJyk7XG52YXIgSVRFUkFUT1IgPSB3a3MoJ2l0ZXJhdG9yJyk7XG52YXIgVE9fU1RSSU5HX1RBRyA9IHdrcygndG9TdHJpbmdUYWcnKTtcbnZhciBBcnJheVZhbHVlcyA9IEl0ZXJhdG9ycy5BcnJheTtcblxudmFyIERPTUl0ZXJhYmxlcyA9IHtcbiAgQ1NTUnVsZUxpc3Q6IHRydWUsIC8vIFRPRE86IE5vdCBzcGVjIGNvbXBsaWFudCwgc2hvdWxkIGJlIGZhbHNlLlxuICBDU1NTdHlsZURlY2xhcmF0aW9uOiBmYWxzZSxcbiAgQ1NTVmFsdWVMaXN0OiBmYWxzZSxcbiAgQ2xpZW50UmVjdExpc3Q6IGZhbHNlLFxuICBET01SZWN0TGlzdDogZmFsc2UsXG4gIERPTVN0cmluZ0xpc3Q6IGZhbHNlLFxuICBET01Ub2tlbkxpc3Q6IHRydWUsXG4gIERhdGFUcmFuc2Zlckl0ZW1MaXN0OiBmYWxzZSxcbiAgRmlsZUxpc3Q6IGZhbHNlLFxuICBIVE1MQWxsQ29sbGVjdGlvbjogZmFsc2UsXG4gIEhUTUxDb2xsZWN0aW9uOiBmYWxzZSxcbiAgSFRNTEZvcm1FbGVtZW50OiBmYWxzZSxcbiAgSFRNTFNlbGVjdEVsZW1lbnQ6IGZhbHNlLFxuICBNZWRpYUxpc3Q6IHRydWUsIC8vIFRPRE86IE5vdCBzcGVjIGNvbXBsaWFudCwgc2hvdWxkIGJlIGZhbHNlLlxuICBNaW1lVHlwZUFycmF5OiBmYWxzZSxcbiAgTmFtZWROb2RlTWFwOiBmYWxzZSxcbiAgTm9kZUxpc3Q6IHRydWUsXG4gIFBhaW50UmVxdWVzdExpc3Q6IGZhbHNlLFxuICBQbHVnaW46IGZhbHNlLFxuICBQbHVnaW5BcnJheTogZmFsc2UsXG4gIFNWR0xlbmd0aExpc3Q6IGZhbHNlLFxuICBTVkdOdW1iZXJMaXN0OiBmYWxzZSxcbiAgU1ZHUGF0aFNlZ0xpc3Q6IGZhbHNlLFxuICBTVkdQb2ludExpc3Q6IGZhbHNlLFxuICBTVkdTdHJpbmdMaXN0OiBmYWxzZSxcbiAgU1ZHVHJhbnNmb3JtTGlzdDogZmFsc2UsXG4gIFNvdXJjZUJ1ZmZlckxpc3Q6IGZhbHNlLFxuICBTdHlsZVNoZWV0TGlzdDogdHJ1ZSwgLy8gVE9ETzogTm90IHNwZWMgY29tcGxpYW50LCBzaG91bGQgYmUgZmFsc2UuXG4gIFRleHRUcmFja0N1ZUxpc3Q6IGZhbHNlLFxuICBUZXh0VHJhY2tMaXN0OiBmYWxzZSxcbiAgVG91Y2hMaXN0OiBmYWxzZVxufTtcblxuZm9yICh2YXIgY29sbGVjdGlvbnMgPSBnZXRLZXlzKERPTUl0ZXJhYmxlcyksIGkgPSAwOyBpIDwgY29sbGVjdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgdmFyIE5BTUUgPSBjb2xsZWN0aW9uc1tpXTtcbiAgdmFyIGV4cGxpY2l0ID0gRE9NSXRlcmFibGVzW05BTUVdO1xuICB2YXIgQ29sbGVjdGlvbiA9IGdsb2JhbFtOQU1FXTtcbiAgdmFyIHByb3RvID0gQ29sbGVjdGlvbiAmJiBDb2xsZWN0aW9uLnByb3RvdHlwZTtcbiAgdmFyIGtleTtcbiAgaWYgKHByb3RvKSB7XG4gICAgaWYgKCFwcm90b1tJVEVSQVRPUl0pIGhpZGUocHJvdG8sIElURVJBVE9SLCBBcnJheVZhbHVlcyk7XG4gICAgaWYgKCFwcm90b1tUT19TVFJJTkdfVEFHXSkgaGlkZShwcm90bywgVE9fU1RSSU5HX1RBRywgTkFNRSk7XG4gICAgSXRlcmF0b3JzW05BTUVdID0gQXJyYXlWYWx1ZXM7XG4gICAgaWYgKGV4cGxpY2l0KSBmb3IgKGtleSBpbiAkaXRlcmF0b3JzKSBpZiAoIXByb3RvW2tleV0pIHJlZGVmaW5lKHByb3RvLCBrZXksICRpdGVyYXRvcnNba2V5XSwgdHJ1ZSk7XG4gIH1cbn1cbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiLmVtb2ppLW1hcnQsXFxuLmVtb2ppLW1hcnQgKiB7XFxuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICBsaW5lLWhlaWdodDogMS4xNTtcXG59XFxuXFxuLmVtb2ppLW1hcnQge1xcbiAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG4gIC8qIGRpc3BsYXk6IGlubGluZS1ibG9jazsgKi9cXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgaGVpZ2h0OiA0MjBweDtcXG4gIGNvbG9yOiAjMjIyNDI3O1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2Q5ZDlkOTtcXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWVtb2ppIHtcXG4gIHBhZGRpbmc6IDZweDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIGZvbnQtc2l6ZTogMDtcXG4gIGJvcmRlcjogbm9uZTtcXG4gIGJhY2tncm91bmQ6IG5vbmU7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWVtb2ppIHNwYW4ge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbn1cXG5cXG4uZW1vamktbWFydC1wcmV2aWV3LWVtb2ppIC5lbW9qaS1tYXJ0LWVtb2ppIHNwYW4ge1xcbiAgd2lkdGg6IDM4cHg7XFxuICBoZWlnaHQ6IDM4cHg7XFxuICBmb250LXNpemU6IDMycHg7XFxufVxcblxcbi5lbW9qaS10eXBlLW5hdGl2ZSB7XFxuICBmb250LWZhbWlseTogJ1NlZ29lIFVJIEVtb2ppJywgJ1NlZ29lIFVJIFN5bWJvbCcsICdTZWdvZSBVSScsXFxuICAgICdBcHBsZSBDb2xvciBFbW9qaScsICdUd2Vtb2ppIE1vemlsbGEnLCAnTm90byBDb2xvciBFbW9qaScsICdFbW9qaU9uZSBDb2xvcicsXFxuICAgICdBbmRyb2lkIEVtb2ppJztcXG4gIHdvcmQtYnJlYWs6IGtlZXAtYWxsO1xcbn1cXG5cXG4uZW1vamktdHlwZS1pbWFnZSB7XFxuICAvKiBFbW9qaSBzaGVldCBoYXMgNTYgY29sdW1ucywgc2VlIGFsc28gdXRpbHMvZW1vamktZGF0YS5qcywgU0hFRVRfQ09MVU1OUyB2YXJpYWJsZSAqL1xcbiAgLyogSGVyZSB3ZSB1c2UgKDU2KzEpICogMTAwJSB0byBhdm9pZCB2aXNpYmxlIGVkZ2VzIG9mIG5lYXJieSBpY29ucyB3aGVuIHNjYWxpbmcgZm9yIGRpZmZlcmVudFxcbiAgICogc2NyZWVuIHNpemVzICovXFxuICBiYWNrZ3JvdW5kLXNpemU6IDYxMDAlO1xcbn1cXG4uZW1vamktdHlwZS1pbWFnZS5lbW9qaS1zZXQtYXBwbGUge1xcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3VucGtnLmNvbS9lbW9qaS1kYXRhc291cmNlLWFwcGxlQDE0LjAuMC9pbWcvYXBwbGUvc2hlZXRzLTI1Ni82NC5wbmcnKTtcXG59XFxuLmVtb2ppLXR5cGUtaW1hZ2UuZW1vamktc2V0LWZhY2Vib29rIHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly91bnBrZy5jb20vZW1vamktZGF0YXNvdXJjZS1mYWNlYm9va0AxNC4wLjAvaW1nL2ZhY2Vib29rL3NoZWV0cy0yNTYvNjQucG5nJyk7XFxufVxcbi5lbW9qaS10eXBlLWltYWdlLmVtb2ppLXNldC1nb29nbGUge1xcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3VucGtnLmNvbS9lbW9qaS1kYXRhc291cmNlLWdvb2dsZUAxNC4wLjAvaW1nL2dvb2dsZS9zaGVldHMtMjU2LzY0LnBuZycpO1xcbn1cXG4uZW1vamktdHlwZS1pbWFnZS5lbW9qaS1zZXQtdHdpdHRlciB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vdW5wa2cuY29tL2Vtb2ppLWRhdGFzb3VyY2UtdHdpdHRlckAxNC4wLjAvaW1nL3R3aXR0ZXIvc2hlZXRzLTI1Ni82NC5wbmcnKTtcXG59XFxuXFxuLmVtb2ppLW1hcnQtYmFyIHtcXG4gIGJvcmRlcjogMCBzb2xpZCAjZDlkOWQ5O1xcbn1cXG4uZW1vamktbWFydC1iYXI6Zmlyc3QtY2hpbGQge1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcXG59XFxuLmVtb2ppLW1hcnQtYmFyOmxhc3QtY2hpbGQge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNXB4O1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDVweDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2Nyb2xsIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDE7XFxuICAgICAgICAgIGZsZXg6IDE7XFxuICBwYWRkaW5nOiAwIDZweCA2cHggNnB4O1xcbiAgei1pbmRleDogMDsgLyogRml4IGZvciByZW5kZXJpbmcgc3RpY2t5IHBvc2l0aW9uZWQgY2F0ZWdvcnkgbGFiZWxzIG9uIENocm9tZSAqL1xcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgLyogYXZvaWRzIFxcXCJyZXBhaW50cyBvbiBzY3JvbGxcXFwiIGluIG1vYmlsZSBDaHJvbWUgKi9cXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtYW5jaG9ycyB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgLXdlYmtpdC1ib3gtcGFjazoganVzdGlmeTtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5O1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICBwYWRkaW5nOiAwIDZweDtcXG4gIGNvbG9yOiAjODU4NTg1O1xcbiAgbGluZS1oZWlnaHQ6IDA7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWFuY2hvciB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIHBhZGRpbmc6IDEycHggNHB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlLW91dDtcXG4gIC1vLXRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZS1vdXQ7XFxuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2Utb3V0O1xcbiAgYm9yZGVyOiBub25lO1xcbiAgYmFja2dyb3VuZDogbm9uZTtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuLmVtb2ppLW1hcnQtYW5jaG9yOmhvdmVyLFxcbi5lbW9qaS1tYXJ0LWFuY2hvci1zZWxlY3RlZCB7XFxuICBjb2xvcjogIzQ2NDY0NjtcXG59XFxuXFxuLmVtb2ppLW1hcnQtYW5jaG9yLXNlbGVjdGVkIC5lbW9qaS1tYXJ0LWFuY2hvci1iYXIge1xcbiAgYm90dG9tOiAwO1xcbn1cXG5cXG4uZW1vamktbWFydC1hbmNob3ItYmFyIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGJvdHRvbTogLTNweDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogM3B4O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ2NDY0NjtcXG59XFxuXFxuLmVtb2ppLW1hcnQtYW5jaG9ycyBpIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgbWF4LXdpZHRoOiAyMnB4O1xcbn1cXG5cXG4uZW1vamktbWFydC1hbmNob3JzIHN2ZyB7XFxuICBmaWxsOiBjdXJyZW50Q29sb3I7XFxuICBtYXgtaGVpZ2h0OiAxOHB4O1xcbn1cXG5cXG4uZW1vamktbWFydCAuc2Nyb2xsZXIge1xcbiAgaGVpZ2h0OiAyNTBweDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDE7XFxuICAgICAgICAgIGZsZXg6IDE7XFxuICBwYWRkaW5nOiAwIDZweCA2cHggNnB4O1xcbiAgei1pbmRleDogMDsgLyogRml4IGZvciByZW5kZXJpbmcgc3RpY2t5IHBvc2l0aW9uZWQgY2F0ZWdvcnkgbGFiZWxzIG9uIENocm9tZSAqL1xcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgLyogYXZvaWRzIFxcXCJyZXBhaW50cyBvbiBzY3JvbGxcXFwiIGluIG1vYmlsZSBDaHJvbWUgKi9cXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2VhcmNoIHtcXG4gIG1hcmdpbi10b3A6IDZweDtcXG4gIHBhZGRpbmc6IDAgNnB4O1xcbn1cXG4uZW1vamktbWFydC1zZWFyY2ggaW5wdXQge1xcbiAgZm9udC1zaXplOiAxNnB4O1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICB3aWR0aDogMTAwJTtcXG4gIHBhZGRpbmc6IDAuMmVtIDAuNmVtO1xcbiAgYm9yZGVyLXJhZGl1czogMjVweDtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XFxuICBvdXRsaW5lOiAwO1xcbn1cXG4uZW1vamktbWFydC1zZWFyY2gtcmVzdWx0cyB7XFxuICBoZWlnaHQ6IDI1MHB4O1xcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xcbn1cXG5cXG4uZW1vamktbWFydC1jYXRlZ29yeSB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWNhdGVnb3J5IC5lbW9qaS1tYXJ0LWVtb2ppIHNwYW4ge1xcbiAgei1pbmRleDogMTtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIGN1cnNvcjogZGVmYXVsdDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtY2F0ZWdvcnkgLmVtb2ppLW1hcnQtZW1vamk6aG92ZXI6YmVmb3JlLFxcbi5lbW9qaS1tYXJ0LWVtb2ppLXNlbGVjdGVkOmJlZm9yZSB7XFxuICB6LWluZGV4OiAwO1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5lbW9qaS1tYXJ0LWNhdGVnb3J5IC5lbW9qaS1tYXJ0LWVtb2ppOmhvdmVyOmJlZm9yZSxcXG4uZW1vamktbWFydC1lbW9qaS1zZWxlY3RlZDpiZWZvcmUge1xcbiAgb3BhY2l0eTogMTtcXG59XFxuXFxuLmVtb2ppLW1hcnQtY2F0ZWdvcnktbGFiZWwge1xcbiAgcG9zaXRpb246IC13ZWJraXQtc3RpY2t5O1xcbiAgcG9zaXRpb246IHN0aWNreTtcXG4gIHRvcDogMDtcXG59XFxuLmVtb2ppLW1hcnQtc3RhdGljIC5lbW9qaS1tYXJ0LWNhdGVnb3J5LWxhYmVsIHtcXG4gIHotaW5kZXg6IDI7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAvKiBwb3NpdGlvbjogc3RpY2t5OyAqL1xcbiAgLyogcG9zaXRpb246IC13ZWJraXQtc3RpY2t5OyAqL1xcbn1cXG5cXG4uZW1vamktbWFydC1jYXRlZ29yeS1sYWJlbCBoMyB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIHBhZGRpbmc6IDVweCA2cHg7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcXG59XFxuXFxuLmVtb2ppLW1hcnQtZW1vamkge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgZm9udC1zaXplOiAwO1xcbn1cXG5cXG4uZW1vamktbWFydC1uby1yZXN1bHRzIHtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIHBhZGRpbmctdG9wOiA3MHB4O1xcbiAgY29sb3I6ICM4NTg1ODU7XFxufVxcbi5lbW9qaS1tYXJ0LW5vLXJlc3VsdHMgLmVtb2ppLW1hcnQtY2F0ZWdvcnktbGFiZWwge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLmVtb2ppLW1hcnQtbm8tcmVzdWx0cyAuZW1vamktbWFydC1uby1yZXN1bHRzLWxhYmVsIHtcXG4gIG1hcmdpbi10b3A6IDAuMmVtO1xcbn1cXG4uZW1vamktbWFydC1uby1yZXN1bHRzIC5lbW9qaS1tYXJ0LWVtb2ppOmhvdmVyOmJlZm9yZSB7XFxuICBjb250ZW50OiBub25lO1xcbn1cXG5cXG4uZW1vamktbWFydC1wcmV2aWV3IHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGhlaWdodDogNzBweDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtcHJldmlldy1lbW9qaSxcXG4uZW1vamktbWFydC1wcmV2aWV3LWRhdGEsXFxuLmVtb2ppLW1hcnQtcHJldmlldy1za2lucyB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG59XFxuXFxuLmVtb2ppLW1hcnQtcHJldmlldy1lbW9qaSB7XFxuICBsZWZ0OiAxMnB4O1xcbn1cXG5cXG4uZW1vamktbWFydC1wcmV2aWV3LWRhdGEge1xcbiAgbGVmdDogNjhweDtcXG4gIHJpZ2h0OiAxMnB4O1xcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xcbn1cXG5cXG4uZW1vamktbWFydC1wcmV2aWV3LXNraW5zIHtcXG4gIHJpZ2h0OiAzMHB4O1xcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXByZXZpZXctbmFtZSB7XFxuICBmb250LXNpemU6IDE0cHg7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXByZXZpZXctc2hvcnRuYW1lIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIGNvbG9yOiAjODg4O1xcbn1cXG4uZW1vamktbWFydC1wcmV2aWV3LXNob3J0bmFtZSArIC5lbW9qaS1tYXJ0LXByZXZpZXctc2hvcnRuYW1lLFxcbi5lbW9qaS1tYXJ0LXByZXZpZXctc2hvcnRuYW1lICsgLmVtb2ppLW1hcnQtcHJldmlldy1lbW90aWNvbixcXG4uZW1vamktbWFydC1wcmV2aWV3LWVtb3RpY29uICsgLmVtb2ppLW1hcnQtcHJldmlldy1lbW90aWNvbiB7XFxuICBtYXJnaW4tbGVmdDogMC41ZW07XFxufVxcblxcbi5lbW9qaS1tYXJ0LXByZXZpZXctZW1vdGljb24ge1xcbiAgZm9udC1zaXplOiAxMXB4O1xcbiAgY29sb3I6ICNiYmI7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXRpdGxlIHNwYW4ge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG59XFxuXFxuLmVtb2ppLW1hcnQtdGl0bGUgLmVtb2ppLW1hcnQtZW1vamkge1xcbiAgcGFkZGluZzogMDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtdGl0bGUtbGFiZWwge1xcbiAgY29sb3I6ICM5OTlhOWM7XFxuICBmb250LXNpemU6IDIxcHg7XFxuICBmb250LXdlaWdodDogMzAwO1xcbn1cXG5cXG4uZW1vamktbWFydC1za2luLXN3YXRjaGVzIHtcXG4gIGZvbnQtc2l6ZTogMDtcXG4gIHBhZGRpbmc6IDJweCAwO1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2Q5ZDlkOTtcXG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbn1cXG5cXG4uZW1vamktbWFydC1za2luLXN3YXRjaGVzLW9wZW5lZCAuZW1vamktbWFydC1za2luLXN3YXRjaCB7XFxuICB3aWR0aDogMTZweDtcXG4gIHBhZGRpbmc6IDAgMnB4O1xcbn1cXG5cXG4uZW1vamktbWFydC1za2luLXN3YXRjaGVzLW9wZW5lZCAuZW1vamktbWFydC1za2luLXN3YXRjaC1zZWxlY3RlZDphZnRlciB7XFxuICBvcGFjaXR5OiAwLjc1O1xcbn1cXG5cXG4uZW1vamktbWFydC1za2luLXN3YXRjaCB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB3aWR0aDogMDtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IHdpZHRoLCBwYWRkaW5nO1xcbiAgLW8tdHJhbnNpdGlvbi1wcm9wZXJ0eTogd2lkdGgsIHBhZGRpbmc7XFxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB3aWR0aCwgcGFkZGluZztcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xMjVzO1xcbiAgICAgICAtby10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjEyNXM7XFxuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMTI1cztcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xcbiAgICAgICAtby10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XFxuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2g6bnRoLWNoaWxkKDEpIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogMHM7XFxuICAgICAgIC1vLXRyYW5zaXRpb24tZGVsYXk6IDBzO1xcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcXG59XFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2g6bnRoLWNoaWxkKDIpIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogMC4wM3M7XFxuICAgICAgIC1vLXRyYW5zaXRpb24tZGVsYXk6IDAuMDNzO1xcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjAzcztcXG59XFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2g6bnRoLWNoaWxkKDMpIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogMC4wNnM7XFxuICAgICAgIC1vLXRyYW5zaXRpb24tZGVsYXk6IDAuMDZzO1xcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjA2cztcXG59XFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2g6bnRoLWNoaWxkKDQpIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogMC4wOXM7XFxuICAgICAgIC1vLXRyYW5zaXRpb24tZGVsYXk6IDAuMDlzO1xcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjA5cztcXG59XFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2g6bnRoLWNoaWxkKDUpIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogMC4xMnM7XFxuICAgICAgIC1vLXRyYW5zaXRpb24tZGVsYXk6IDAuMTJzO1xcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjEycztcXG59XFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2g6bnRoLWNoaWxkKDYpIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogMC4xNXM7XFxuICAgICAgIC1vLXRyYW5zaXRpb24tZGVsYXk6IDAuMTVzO1xcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjE1cztcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2gtc2VsZWN0ZWQge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgd2lkdGg6IDE2cHg7XFxuICBwYWRkaW5nOiAwIDJweDtcXG59XFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2gtc2VsZWN0ZWQ6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDUwJTtcXG4gIHdpZHRoOiA0cHg7XFxuICBoZWlnaHQ6IDRweDtcXG4gIG1hcmdpbjogLTJweCAwIDAgLTJweDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICBib3JkZXItcmFkaXVzOiAxMDAlO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBvcGFjaXR5OiAwO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZS1vdXQ7XFxuICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZS1vdXQ7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZS1vdXQ7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXNraW4ge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBwYWRkaW5nLXRvcDogMTAwJTtcXG4gIG1heC13aWR0aDogMTJweDtcXG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXNraW4tdG9uZS0xIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmM5M2E7XFxufVxcbi5lbW9qaS1tYXJ0LXNraW4tdG9uZS0yIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWRjYmM7XFxufVxcbi5lbW9qaS1tYXJ0LXNraW4tdG9uZS0zIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlMGJiOTU7XFxufVxcbi5lbW9qaS1tYXJ0LXNraW4tdG9uZS00IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNiZjhmNjg7XFxufVxcbi5lbW9qaS1tYXJ0LXNraW4tdG9uZS01IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM5YjY0M2Q7XFxufVxcbi5lbW9qaS1tYXJ0LXNraW4tdG9uZS02IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM1OTQ1Mzk7XFxufVxcblxcbi8qIHZ1ZS12aXJ0dWFsLXNjcm9sbGVyL2Rpc3QvdnVlLXZpcnR1YWwtc2Nyb2xsZXIuY3NzICovXFxuLmVtb2ppLW1hcnQgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLmVtb2ppLW1hcnQgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyLmRpcmVjdGlvbi12ZXJ0aWNhbDpub3QoLnBhZ2UtbW9kZSkge1xcbiAgb3ZlcmZsb3cteTogYXV0bztcXG59XFxuLmVtb2ppLW1hcnQgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyLmRpcmVjdGlvbi1ob3Jpem9udGFsOm5vdCgucGFnZS1tb2RlKSB7XFxuICBvdmVyZmxvdy14OiBhdXRvO1xcbn1cXG4uZW1vamktbWFydCAudnVlLXJlY3ljbGUtc2Nyb2xsZXIuZGlyZWN0aW9uLWhvcml6b250YWwge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxufVxcbi5lbW9qaS1tYXJ0IC52dWUtcmVjeWNsZS1zY3JvbGxlcl9fc2xvdCB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiBhdXRvIDAgMHB4O1xcbiAgICAgICAgICBmbGV4OiBhdXRvIDAgMDtcXG59XFxuLmVtb2ppLW1hcnQgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyX19pdGVtLXdyYXBwZXIge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAtbXMtZmxleDogMTtcXG4gICAgICAgICAgZmxleDogMTtcXG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5lbW9qaS1tYXJ0IC52dWUtcmVjeWNsZS1zY3JvbGxlci5yZWFkeSAudnVlLXJlY3ljbGUtc2Nyb2xsZXJfX2l0ZW0tdmlldyB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcXG59XFxuLmVtb2ppLW1hcnRcXG4gIC52dWUtcmVjeWNsZS1zY3JvbGxlci5kaXJlY3Rpb24tdmVydGljYWxcXG4gIC52dWUtcmVjeWNsZS1zY3JvbGxlcl9faXRlbS13cmFwcGVyIHtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXG4uZW1vamktbWFydFxcbiAgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyLmRpcmVjdGlvbi1ob3Jpem9udGFsXFxuICAudnVlLXJlY3ljbGUtc2Nyb2xsZXJfX2l0ZW0td3JhcHBlciB7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5lbW9qaS1tYXJ0XFxuICAudnVlLXJlY3ljbGUtc2Nyb2xsZXIucmVhZHkuZGlyZWN0aW9uLXZlcnRpY2FsXFxuICAudnVlLXJlY3ljbGUtc2Nyb2xsZXJfX2l0ZW0tdmlldyB7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLmVtb2ppLW1hcnRcXG4gIC52dWUtcmVjeWNsZS1zY3JvbGxlci5yZWFkeS5kaXJlY3Rpb24taG9yaXpvbnRhbFxcbiAgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyX19pdGVtLXZpZXcge1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG4uZW1vamktbWFydCAucmVzaXplLW9ic2VydmVyW2RhdGEtdi1iMzI5ZWU0Y10ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHotaW5kZXg6IC0xO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBib3JkZXI6IG5vbmU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLmVtb2ppLW1hcnQgLnJlc2l6ZS1vYnNlcnZlcltkYXRhLXYtYjMyOWVlNGNdIG9iamVjdCB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICB3aWR0aDogMTAwJTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIHotaW5kZXg6IC0xO1xcbn1cXG4uZW1vamktbWFydC1zZWFyY2ggLmhpZGRlbiB7XFxuICBkaXNwbGF5OiBub25lO1xcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbn1cXG5cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9jc3MvZW1vamktbWFydC5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUE7O0VBRUUsOEJBQXNCO1VBQXRCLHNCQUFzQjtFQUN0QixpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSw0RUFBNEU7RUFDNUUsZUFBZTtFQUNmLDJCQUEyQjtFQUMzQixvQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtFQUNiLDRCQUFzQjtFQUF0Qiw2QkFBc0I7TUFBdEIsMEJBQXNCO1VBQXRCLHNCQUFzQjtFQUN0QixhQUFhO0VBQ2IsY0FBYztFQUNkLHlCQUF5QjtFQUN6QixrQkFBa0I7RUFDbEIsZ0JBQWdCO0FB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QWE7RUFBYixhQUFhO0FBQ2Y7QUFDQTtFQUNFLG1CQUFjO01BQWQsb0JBQWM7VUFBZCxjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxtQkFBTztNQUFQLFdBQU87VUFBUCxPQUFPO0VBQ1AsOEJBQXNCO1VBQXRCLHNCQUFzQjtFQUN0QixnQkFBZ0I7RUFDaEIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxzQkFBc0I7QUFDeEI7QUFDQTs7O0VBR0UsV0FBVztBQUNiO0FBQ0E7OztFQUdFLFlBQVk7QUFDZDtBQUNBOzs7RUFHRSxXQUFXO0FBQ2I7QUFDQTs7O0VBR0UsWUFBWTtBQUNkO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxXQUFXO0VBQ1gsV0FBVztFQUNYLFlBQVk7RUFDWixZQUFZO0VBQ1osNkJBQTZCO0VBQzdCLG9CQUFvQjtFQUNwQixjQUFjO0VBQ2QsZ0JBQWdCO0VBQ2hCLFVBQVU7QUFDWjtBQUNBO0VBQ0UsY0FBYztFQUNkLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sT0FBTztFQUNQLFlBQVk7RUFDWixXQUFXO0VBQ1gsZ0JBQWdCO0VBQ2hCLG9CQUFvQjtFQUNwQixXQUFXO0FBQ2I7QUFDQTtFQUNFLGFBQWE7RUFDYixrQkFBa0I7QUFDcEJcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLmVtb2ppLW1hcnQsXFxuLmVtb2ppLW1hcnQgKiB7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XFxufVxcblxcbi5lbW9qaS1tYXJ0IHtcXG4gIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWY7XFxuICBmb250LXNpemU6IDE2cHg7XFxuICAvKiBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7ICovXFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIGhlaWdodDogNDIwcHg7XFxuICBjb2xvcjogIzIyMjQyNztcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XFxuICBib3JkZXItcmFkaXVzOiA1cHg7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbn1cXG5cXG4uZW1vamktbWFydC1lbW9qaSB7XFxuICBwYWRkaW5nOiA2cHg7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBmb250LXNpemU6IDA7XFxuICBib3JkZXI6IG5vbmU7XFxuICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuXFxuLmVtb2ppLW1hcnQtZW1vamkgc3BhbiB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXByZXZpZXctZW1vamkgLmVtb2ppLW1hcnQtZW1vamkgc3BhbiB7XFxuICB3aWR0aDogMzhweDtcXG4gIGhlaWdodDogMzhweDtcXG4gIGZvbnQtc2l6ZTogMzJweDtcXG59XFxuXFxuLmVtb2ppLXR5cGUtbmF0aXZlIHtcXG4gIGZvbnQtZmFtaWx5OiAnU2Vnb2UgVUkgRW1vamknLCAnU2Vnb2UgVUkgU3ltYm9sJywgJ1NlZ29lIFVJJyxcXG4gICAgJ0FwcGxlIENvbG9yIEVtb2ppJywgJ1R3ZW1vamkgTW96aWxsYScsICdOb3RvIENvbG9yIEVtb2ppJywgJ0Vtb2ppT25lIENvbG9yJyxcXG4gICAgJ0FuZHJvaWQgRW1vamknO1xcbiAgd29yZC1icmVhazoga2VlcC1hbGw7XFxufVxcblxcbi5lbW9qaS10eXBlLWltYWdlIHtcXG4gIC8qIEVtb2ppIHNoZWV0IGhhcyA1NiBjb2x1bW5zLCBzZWUgYWxzbyB1dGlscy9lbW9qaS1kYXRhLmpzLCBTSEVFVF9DT0xVTU5TIHZhcmlhYmxlICovXFxuICAvKiBIZXJlIHdlIHVzZSAoNTYrMSkgKiAxMDAlIHRvIGF2b2lkIHZpc2libGUgZWRnZXMgb2YgbmVhcmJ5IGljb25zIHdoZW4gc2NhbGluZyBmb3IgZGlmZmVyZW50XFxuICAgKiBzY3JlZW4gc2l6ZXMgKi9cXG4gIGJhY2tncm91bmQtc2l6ZTogNjEwMCU7XFxufVxcbi5lbW9qaS10eXBlLWltYWdlLmVtb2ppLXNldC1hcHBsZSB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vdW5wa2cuY29tL2Vtb2ppLWRhdGFzb3VyY2UtYXBwbGVAMTQuMC4wL2ltZy9hcHBsZS9zaGVldHMtMjU2LzY0LnBuZycpO1xcbn1cXG4uZW1vamktdHlwZS1pbWFnZS5lbW9qaS1zZXQtZmFjZWJvb2sge1xcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3VucGtnLmNvbS9lbW9qaS1kYXRhc291cmNlLWZhY2Vib29rQDE0LjAuMC9pbWcvZmFjZWJvb2svc2hlZXRzLTI1Ni82NC5wbmcnKTtcXG59XFxuLmVtb2ppLXR5cGUtaW1hZ2UuZW1vamktc2V0LWdvb2dsZSB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vdW5wa2cuY29tL2Vtb2ppLWRhdGFzb3VyY2UtZ29vZ2xlQDE0LjAuMC9pbWcvZ29vZ2xlL3NoZWV0cy0yNTYvNjQucG5nJyk7XFxufVxcbi5lbW9qaS10eXBlLWltYWdlLmVtb2ppLXNldC10d2l0dGVyIHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly91bnBrZy5jb20vZW1vamktZGF0YXNvdXJjZS10d2l0dGVyQDE0LjAuMC9pbWcvdHdpdHRlci9zaGVldHMtMjU2LzY0LnBuZycpO1xcbn1cXG5cXG4uZW1vamktbWFydC1iYXIge1xcbiAgYm9yZGVyOiAwIHNvbGlkICNkOWQ5ZDk7XFxufVxcbi5lbW9qaS1tYXJ0LWJhcjpmaXJzdC1jaGlsZCB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xcbn1cXG4uZW1vamktbWFydC1iYXI6bGFzdC1jaGlsZCB7XFxuICBib3JkZXItdG9wLXdpZHRoOiAxcHg7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA1cHg7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNXB4O1xcbn1cXG5cXG4uZW1vamktbWFydC1zY3JvbGwge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xcbiAgZmxleDogMTtcXG4gIHBhZGRpbmc6IDAgNnB4IDZweCA2cHg7XFxuICB6LWluZGV4OiAwOyAvKiBGaXggZm9yIHJlbmRlcmluZyBzdGlja3kgcG9zaXRpb25lZCBjYXRlZ29yeSBsYWJlbHMgb24gQ2hyb21lICovXFxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOyAvKiBhdm9pZHMgXFxcInJlcGFpbnRzIG9uIHNjcm9sbFxcXCIgaW4gbW9iaWxlIENocm9tZSAqL1xcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xcbn1cXG5cXG4uZW1vamktbWFydC1hbmNob3JzIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbiAgcGFkZGluZzogMCA2cHg7XFxuICBjb2xvcjogIzg1ODU4NTtcXG4gIGxpbmUtaGVpZ2h0OiAwO1xcbn1cXG5cXG4uZW1vamktbWFydC1hbmNob3Ige1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBmbGV4OiAxIDEgYXV0bztcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIHBhZGRpbmc6IDEycHggNHB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZS1vdXQ7XFxuICBib3JkZXI6IG5vbmU7XFxuICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuLmVtb2ppLW1hcnQtYW5jaG9yOmhvdmVyLFxcbi5lbW9qaS1tYXJ0LWFuY2hvci1zZWxlY3RlZCB7XFxuICBjb2xvcjogIzQ2NDY0NjtcXG59XFxuXFxuLmVtb2ppLW1hcnQtYW5jaG9yLXNlbGVjdGVkIC5lbW9qaS1tYXJ0LWFuY2hvci1iYXIge1xcbiAgYm90dG9tOiAwO1xcbn1cXG5cXG4uZW1vamktbWFydC1hbmNob3ItYmFyIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGJvdHRvbTogLTNweDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogM3B4O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ2NDY0NjtcXG59XFxuXFxuLmVtb2ppLW1hcnQtYW5jaG9ycyBpIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgbWF4LXdpZHRoOiAyMnB4O1xcbn1cXG5cXG4uZW1vamktbWFydC1hbmNob3JzIHN2ZyB7XFxuICBmaWxsOiBjdXJyZW50Q29sb3I7XFxuICBtYXgtaGVpZ2h0OiAxOHB4O1xcbn1cXG5cXG4uZW1vamktbWFydCAuc2Nyb2xsZXIge1xcbiAgaGVpZ2h0OiAyNTBweDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGZsZXg6IDE7XFxuICBwYWRkaW5nOiAwIDZweCA2cHggNnB4O1xcbiAgei1pbmRleDogMDsgLyogRml4IGZvciByZW5kZXJpbmcgc3RpY2t5IHBvc2l0aW9uZWQgY2F0ZWdvcnkgbGFiZWxzIG9uIENocm9tZSAqL1xcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgLyogYXZvaWRzIFxcXCJyZXBhaW50cyBvbiBzY3JvbGxcXFwiIGluIG1vYmlsZSBDaHJvbWUgKi9cXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2VhcmNoIHtcXG4gIG1hcmdpbi10b3A6IDZweDtcXG4gIHBhZGRpbmc6IDAgNnB4O1xcbn1cXG4uZW1vamktbWFydC1zZWFyY2ggaW5wdXQge1xcbiAgZm9udC1zaXplOiAxNnB4O1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICB3aWR0aDogMTAwJTtcXG4gIHBhZGRpbmc6IDAuMmVtIDAuNmVtO1xcbiAgYm9yZGVyLXJhZGl1czogMjVweDtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XFxuICBvdXRsaW5lOiAwO1xcbn1cXG4uZW1vamktbWFydC1zZWFyY2gtcmVzdWx0cyB7XFxuICBoZWlnaHQ6IDI1MHB4O1xcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xcbn1cXG5cXG4uZW1vamktbWFydC1jYXRlZ29yeSB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWNhdGVnb3J5IC5lbW9qaS1tYXJ0LWVtb2ppIHNwYW4ge1xcbiAgei1pbmRleDogMTtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIGN1cnNvcjogZGVmYXVsdDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtY2F0ZWdvcnkgLmVtb2ppLW1hcnQtZW1vamk6aG92ZXI6YmVmb3JlLFxcbi5lbW9qaS1tYXJ0LWVtb2ppLXNlbGVjdGVkOmJlZm9yZSB7XFxuICB6LWluZGV4OiAwO1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5lbW9qaS1tYXJ0LWNhdGVnb3J5IC5lbW9qaS1tYXJ0LWVtb2ppOmhvdmVyOmJlZm9yZSxcXG4uZW1vamktbWFydC1lbW9qaS1zZWxlY3RlZDpiZWZvcmUge1xcbiAgb3BhY2l0eTogMTtcXG59XFxuXFxuLmVtb2ppLW1hcnQtY2F0ZWdvcnktbGFiZWwge1xcbiAgcG9zaXRpb246IHN0aWNreTtcXG4gIHRvcDogMDtcXG59XFxuLmVtb2ppLW1hcnQtc3RhdGljIC5lbW9qaS1tYXJ0LWNhdGVnb3J5LWxhYmVsIHtcXG4gIHotaW5kZXg6IDI7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAvKiBwb3NpdGlvbjogc3RpY2t5OyAqL1xcbiAgLyogcG9zaXRpb246IC13ZWJraXQtc3RpY2t5OyAqL1xcbn1cXG5cXG4uZW1vamktbWFydC1jYXRlZ29yeS1sYWJlbCBoMyB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIHBhZGRpbmc6IDVweCA2cHg7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcXG59XFxuXFxuLmVtb2ppLW1hcnQtZW1vamkge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgZm9udC1zaXplOiAwO1xcbn1cXG5cXG4uZW1vamktbWFydC1uby1yZXN1bHRzIHtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIHBhZGRpbmctdG9wOiA3MHB4O1xcbiAgY29sb3I6ICM4NTg1ODU7XFxufVxcbi5lbW9qaS1tYXJ0LW5vLXJlc3VsdHMgLmVtb2ppLW1hcnQtY2F0ZWdvcnktbGFiZWwge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLmVtb2ppLW1hcnQtbm8tcmVzdWx0cyAuZW1vamktbWFydC1uby1yZXN1bHRzLWxhYmVsIHtcXG4gIG1hcmdpbi10b3A6IDAuMmVtO1xcbn1cXG4uZW1vamktbWFydC1uby1yZXN1bHRzIC5lbW9qaS1tYXJ0LWVtb2ppOmhvdmVyOmJlZm9yZSB7XFxuICBjb250ZW50OiBub25lO1xcbn1cXG5cXG4uZW1vamktbWFydC1wcmV2aWV3IHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGhlaWdodDogNzBweDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtcHJldmlldy1lbW9qaSxcXG4uZW1vamktbWFydC1wcmV2aWV3LWRhdGEsXFxuLmVtb2ppLW1hcnQtcHJldmlldy1za2lucyB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG59XFxuXFxuLmVtb2ppLW1hcnQtcHJldmlldy1lbW9qaSB7XFxuICBsZWZ0OiAxMnB4O1xcbn1cXG5cXG4uZW1vamktbWFydC1wcmV2aWV3LWRhdGEge1xcbiAgbGVmdDogNjhweDtcXG4gIHJpZ2h0OiAxMnB4O1xcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xcbn1cXG5cXG4uZW1vamktbWFydC1wcmV2aWV3LXNraW5zIHtcXG4gIHJpZ2h0OiAzMHB4O1xcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXByZXZpZXctbmFtZSB7XFxuICBmb250LXNpemU6IDE0cHg7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXByZXZpZXctc2hvcnRuYW1lIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIGNvbG9yOiAjODg4O1xcbn1cXG4uZW1vamktbWFydC1wcmV2aWV3LXNob3J0bmFtZSArIC5lbW9qaS1tYXJ0LXByZXZpZXctc2hvcnRuYW1lLFxcbi5lbW9qaS1tYXJ0LXByZXZpZXctc2hvcnRuYW1lICsgLmVtb2ppLW1hcnQtcHJldmlldy1lbW90aWNvbixcXG4uZW1vamktbWFydC1wcmV2aWV3LWVtb3RpY29uICsgLmVtb2ppLW1hcnQtcHJldmlldy1lbW90aWNvbiB7XFxuICBtYXJnaW4tbGVmdDogMC41ZW07XFxufVxcblxcbi5lbW9qaS1tYXJ0LXByZXZpZXctZW1vdGljb24ge1xcbiAgZm9udC1zaXplOiAxMXB4O1xcbiAgY29sb3I6ICNiYmI7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXRpdGxlIHNwYW4ge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG59XFxuXFxuLmVtb2ppLW1hcnQtdGl0bGUgLmVtb2ppLW1hcnQtZW1vamkge1xcbiAgcGFkZGluZzogMDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtdGl0bGUtbGFiZWwge1xcbiAgY29sb3I6ICM5OTlhOWM7XFxuICBmb250LXNpemU6IDIxcHg7XFxuICBmb250LXdlaWdodDogMzAwO1xcbn1cXG5cXG4uZW1vamktbWFydC1za2luLXN3YXRjaGVzIHtcXG4gIGZvbnQtc2l6ZTogMDtcXG4gIHBhZGRpbmc6IDJweCAwO1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2Q5ZDlkOTtcXG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbn1cXG5cXG4uZW1vamktbWFydC1za2luLXN3YXRjaGVzLW9wZW5lZCAuZW1vamktbWFydC1za2luLXN3YXRjaCB7XFxuICB3aWR0aDogMTZweDtcXG4gIHBhZGRpbmc6IDAgMnB4O1xcbn1cXG5cXG4uZW1vamktbWFydC1za2luLXN3YXRjaGVzLW9wZW5lZCAuZW1vamktbWFydC1za2luLXN3YXRjaC1zZWxlY3RlZDphZnRlciB7XFxuICBvcGFjaXR5OiAwLjc1O1xcbn1cXG5cXG4uZW1vamktbWFydC1za2luLXN3YXRjaCB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB3aWR0aDogMDtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB3aWR0aCwgcGFkZGluZztcXG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMTI1cztcXG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2g6bnRoLWNoaWxkKDEpIHtcXG4gIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xcbn1cXG4uZW1vamktbWFydC1za2luLXN3YXRjaDpudGgtY2hpbGQoMikge1xcbiAgdHJhbnNpdGlvbi1kZWxheTogMC4wM3M7XFxufVxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoOm50aC1jaGlsZCgzKSB7XFxuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjA2cztcXG59XFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2g6bnRoLWNoaWxkKDQpIHtcXG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMDlzO1xcbn1cXG4uZW1vamktbWFydC1za2luLXN3YXRjaDpudGgtY2hpbGQoNSkge1xcbiAgdHJhbnNpdGlvbi1kZWxheTogMC4xMnM7XFxufVxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoOm50aC1jaGlsZCg2KSB7XFxuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjE1cztcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2gtc2VsZWN0ZWQge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgd2lkdGg6IDE2cHg7XFxuICBwYWRkaW5nOiAwIDJweDtcXG59XFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2gtc2VsZWN0ZWQ6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDUwJTtcXG4gIHdpZHRoOiA0cHg7XFxuICBoZWlnaHQ6IDRweDtcXG4gIG1hcmdpbjogLTJweCAwIDAgLTJweDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICBib3JkZXItcmFkaXVzOiAxMDAlO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBvcGFjaXR5OiAwO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2Utb3V0O1xcbn1cXG5cXG4uZW1vamktbWFydC1za2luIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgcGFkZGluZy10b3A6IDEwMCU7XFxuICBtYXgtd2lkdGg6IDEycHg7XFxuICBib3JkZXItcmFkaXVzOiAxMDAlO1xcbn1cXG5cXG4uZW1vamktbWFydC1za2luLXRvbmUtMSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjOTNhO1xcbn1cXG4uZW1vamktbWFydC1za2luLXRvbmUtMiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFkY2JjO1xcbn1cXG4uZW1vamktbWFydC1za2luLXRvbmUtMyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBiYjk1O1xcbn1cXG4uZW1vamktbWFydC1za2luLXRvbmUtNCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmY4ZjY4O1xcbn1cXG4uZW1vamktbWFydC1za2luLXRvbmUtNSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWI2NDNkO1xcbn1cXG4uZW1vamktbWFydC1za2luLXRvbmUtNiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTk0NTM5O1xcbn1cXG5cXG4vKiB2dWUtdmlydHVhbC1zY3JvbGxlci9kaXN0L3Z1ZS12aXJ0dWFsLXNjcm9sbGVyLmNzcyAqL1xcbi5lbW9qaS1tYXJ0IC52dWUtcmVjeWNsZS1zY3JvbGxlciB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5lbW9qaS1tYXJ0IC52dWUtcmVjeWNsZS1zY3JvbGxlci5kaXJlY3Rpb24tdmVydGljYWw6bm90KC5wYWdlLW1vZGUpIHtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxufVxcbi5lbW9qaS1tYXJ0IC52dWUtcmVjeWNsZS1zY3JvbGxlci5kaXJlY3Rpb24taG9yaXpvbnRhbDpub3QoLnBhZ2UtbW9kZSkge1xcbiAgb3ZlcmZsb3cteDogYXV0bztcXG59XFxuLmVtb2ppLW1hcnQgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyLmRpcmVjdGlvbi1ob3Jpem9udGFsIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxufVxcbi5lbW9qaS1tYXJ0IC52dWUtcmVjeWNsZS1zY3JvbGxlcl9fc2xvdCB7XFxuICBmbGV4OiBhdXRvIDAgMDtcXG59XFxuLmVtb2ppLW1hcnQgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyX19pdGVtLXdyYXBwZXIge1xcbiAgZmxleDogMTtcXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4uZW1vamktbWFydCAudnVlLXJlY3ljbGUtc2Nyb2xsZXIucmVhZHkgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyX19pdGVtLXZpZXcge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XFxufVxcbi5lbW9qaS1tYXJ0XFxuICAudnVlLXJlY3ljbGUtc2Nyb2xsZXIuZGlyZWN0aW9uLXZlcnRpY2FsXFxuICAudnVlLXJlY3ljbGUtc2Nyb2xsZXJfX2l0ZW0td3JhcHBlciB7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLmVtb2ppLW1hcnRcXG4gIC52dWUtcmVjeWNsZS1zY3JvbGxlci5kaXJlY3Rpb24taG9yaXpvbnRhbFxcbiAgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyX19pdGVtLXdyYXBwZXIge1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG4uZW1vamktbWFydFxcbiAgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyLnJlYWR5LmRpcmVjdGlvbi12ZXJ0aWNhbFxcbiAgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyX19pdGVtLXZpZXcge1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi5lbW9qaS1tYXJ0XFxuICAudnVlLXJlY3ljbGUtc2Nyb2xsZXIucmVhZHkuZGlyZWN0aW9uLWhvcml6b250YWxcXG4gIC52dWUtcmVjeWNsZS1zY3JvbGxlcl9faXRlbS12aWV3IHtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuLmVtb2ppLW1hcnQgLnJlc2l6ZS1vYnNlcnZlcltkYXRhLXYtYjMyOWVlNGNdIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB6LWluZGV4OiAtMTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgYm9yZGVyOiBub25lO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5lbW9qaS1tYXJ0IC5yZXNpemUtb2JzZXJ2ZXJbZGF0YS12LWIzMjllZTRjXSBvYmplY3Qge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICB6LWluZGV4OiAtMTtcXG59XFxuLmVtb2ppLW1hcnQtc2VhcmNoIC5oaWRkZW4ge1xcbiAgZGlzcGxheTogbm9uZTtcXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0dFVF9VUkxfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9nZXRVcmwuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMF9fXyA9IG5ldyBVUkwoXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFnQUFBQUlDQVlBQUFERUQ3NkxBQUFBSDBsRVFWUW9VMk5rWUdBd1prQUZaNUc1alBSUmdPWUVWRGVCM0VCakJRQk9ad1RWdWdJR3lBQUFBQUJKUlU1RXJrSmdnZz09XCIsIGltcG9ydC5tZXRhLnVybCk7XG52YXIgX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzFfX18gPSBuZXcgVVJMKFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJajgrQ2p4emRtY2dkMmxrZEdnOUlqRXlJaUJvWldsbmFIUTlJalFpSUhacFpYZFFiM0owUFNJd0lEQWdNVElnTkNJZ2RtVnljMmx2YmowaU1TNHhJaUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lQZ29nSUR4bGJHeHBjSE5sSUdONFBTSXlJaUJqZVQwaU1pSWdjbmc5SWpJaUlISjVQU0l5SWo0S0lDQWdJRHhoYm1sdFlYUmxJR0YwZEhKcFluVjBaVTVoYldVOUltTjRJaUJtY205dFBTSXlJaUIwYnowaUxURXdJaUJrZFhJOUlqQXVObk1pSUhKbGNHVmhkRU52ZFc1MFBTSnBibVJsWm1sdWFYUmxJaUF2UGdvZ0lEd3ZaV3hzYVhCelpUNEtJQ0E4Wld4c2FYQnpaU0JqZUQwaU1UUWlJR041UFNJeUlpQnllRDBpTWlJZ2NuazlJaklpSUdOc1lYTnpQU0pzYjJGa1pYSWlQZ29nSUNBZ1BHRnVhVzFoZEdVZ1lYUjBjbWxpZFhSbFRtRnRaVDBpWTNnaUlHWnliMjA5SWpFMElpQjBiejBpTWlJZ1pIVnlQU0l3TGpaeklpQnlaWEJsWVhSRGIzVnVkRDBpYVc1a1pXWnBibWwwWlNJZ0x6NEtJQ0E4TDJWc2JHbHdjMlUrQ2p3dmMzWm5QZ289XCIsIGltcG9ydC5tZXRhLnVybCk7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG52YXIgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMF9fXyA9IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzBfX18pO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzFfX18gPSBfX19DU1NfTE9BREVSX0dFVF9VUkxfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8xX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi8qXFxuICogUXVhc2FyIEZyYW1ld29yayB2MC4xNy4yMFxcbiAqIChjKSAyMDE2LXByZXNlbnQgUmF6dmFuIFN0b2VuZXNjdVxcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cXG4gKi9cXG4qLFxcbio6YmVmb3JlLFxcbio6YWZ0ZXIge1xcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBpbmhlcml0O1xcbiAgICAgICAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIC1tb3otdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbmh0bWwsXFxuYm9keSxcXG4jcS1hcHAge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBkaXJlY3Rpb246IGx0cjtcXG59XFxuaHRtbCxcXG5ib2R5IHtcXG4gIG1hcmdpbjogMDtcXG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG59XFxuaW5wdXRbdHlwZT0ndGV4dCddLFxcbmlucHV0W3R5cGU9J2VtYWlsJ10sXFxuaW5wdXRbdHlwZT0nc2VhcmNoJ10sXFxuaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XFxuICAtbW96LWFwcGVhcmFuY2U6IG5vbmUgLyogbW9iaWxlIGZpcmVmb3ggdG9vISAqLztcXG59XFxuYXJ0aWNsZSxcXG5hc2lkZSxcXG5kZXRhaWxzLFxcbmZpZ2NhcHRpb24sXFxuZmlndXJlLFxcbmZvb3RlcixcXG5oZWFkZXIsXFxubWFpbixcXG5tZW51LFxcbm5hdixcXG5zZWN0aW9uLFxcbnN1bW1hcnkge1xcbiAgZGlzcGxheTogYmxvY2s7XFxufVxcbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XFxuICBkaXNwbGF5OiBub25lO1xcbiAgaGVpZ2h0OiAwO1xcbn1cXG5hYmJyW3RpdGxlXSB7XFxuICBib3JkZXItYm90dG9tOiBub25lO1xcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XFxuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbn1cXG5kZm4ge1xcbiAgZm9udC1zdHlsZTogaXRhbGljO1xcbn1cXG5pbWcge1xcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xcbn1cXG5zdmc6bm90KDpyb290KSB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG5jb2RlLFxcbmtiZCxcXG5wcmUsXFxuc2FtcCB7XFxuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XFxuICBmb250LXNpemU6IDFlbTtcXG59XFxuaHIge1xcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG4gICAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICBoZWlnaHQ6IDA7XFxuICBvdmVyZmxvdzogdmlzaWJsZTtcXG59XFxuYnV0dG9uLFxcbmlucHV0LFxcbnNlbGVjdCxcXG50ZXh0YXJlYSB7XFxuICBmb250OiBpbmhlcml0O1xcbiAgbWFyZ2luOiAwO1xcbn1cXG5vcHRncm91cCB7XFxuICBmb250LXdlaWdodDogYm9sZDtcXG59XFxuYnV0dG9uLFxcbmlucHV0LFxcbnNlbGVjdCB7XFxuICBvdmVyZmxvdzogdmlzaWJsZTtcXG59XFxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcXG4gIGJvcmRlcjogMDtcXG4gIHBhZGRpbmc6IDA7XFxufVxcbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcXG5pbnB1dDotbW96LWZvY3VzcmluZyB7XFxuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XFxufVxcbnRleHRhcmVhIHtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbn1cXG5pbnB1dFt0eXBlPSdzZWFyY2gnXSB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcXG59XFxuaW5wdXRbdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXFxuaW5wdXRbdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbn1cXG4ucS1pY29uIHtcXG4gIGxpbmUtaGVpZ2h0OiAxO1xcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIHdvcmQtd3JhcDogbm9ybWFsO1xcbiAgZGlyZWN0aW9uOiBsdHI7XFxufVxcbi5xLWljb24sXFxuLm1hdGVyaWFsLWljb25zIHtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICBjdXJzb3I6IGluaGVyaXQ7XFxuICBmb250LXNpemU6IGluaGVyaXQ7XFxuICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XFxuICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG59XFxuLnEtYWN0aW9uc2hlZXQtdGl0bGUge1xcbiAgbWluLWhlaWdodDogNTZweDtcXG4gIHBhZGRpbmc6IDAgMTZweDtcXG4gIGNvbG9yOiAjNzc3O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItZmFkZWQpO1xcbn1cXG4ucS1hY3Rpb25zaGVldC1ib2R5IHtcXG4gIG1heC1oZWlnaHQ6IDUwMHB4O1xcbn1cXG4ucS1hY3Rpb25zaGVldC1ncmlkIHtcXG4gIHBhZGRpbmc6IDhweCAxNnB4O1xcbn1cXG4ucS1hY3Rpb25zaGVldC1ncmlkIC5xLWl0ZW0tc2VwYXJhdG9yLWNvbXBvbmVudCB7XFxuICBtYXJnaW46IDI0cHggMDtcXG59XFxuLnEtYWN0aW9uc2hlZXQtZ3JpZC1pdGVtIHtcXG4gIHBhZGRpbmc6IDhweCAxNnB4O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3M7XFxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3M7XFxufVxcbi5xLWFjdGlvbnNoZWV0LWdyaWQtaXRlbTpob3ZlcixcXG4ucS1hY3Rpb25zaGVldC1ncmlkLWl0ZW06Zm9jdXMge1xcbiAgYmFja2dyb3VuZDogI2QwZDBkMDtcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5xLWFjdGlvbnNoZWV0LWdyaWQtaXRlbSBpLFxcbi5xLWFjdGlvbnNoZWV0LWdyaWQtaXRlbSBpbWcge1xcbiAgZm9udC1zaXplOiA0OHB4O1xcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbn1cXG4ucS1hY3Rpb25zaGVldC1ncmlkLWl0ZW0gLmF2YXRhciB7XFxuICB3aWR0aDogNDhweDtcXG4gIGhlaWdodDogNDhweDtcXG59XFxuLnEtYWN0aW9uc2hlZXQtZ3JpZC1pdGVtIHNwYW4ge1xcbiAgY29sb3I6ICM3Nzc7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1mYWRlZCk7XFxufVxcbi5xLWxvYWRpbmctYmFyIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIHotaW5kZXg6IDk5OTg7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC41cywgLXdlYmtpdC10cmFuc2Zvcm0gMC41cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cywgLXdlYmtpdC10cmFuc2Zvcm0gMC41cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpLCBvcGFjaXR5IDAuNXM7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSwgb3BhY2l0eSAwLjVzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjVzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xcbn1cXG4ucS1sb2FkaW5nLWJhci50b3Age1xcbiAgbGVmdDogMCAvKiBydGw6aWdub3JlICovO1xcbiAgcmlnaHQ6IDAgLyogcnRsOmlnbm9yZSAqLztcXG4gIHRvcDogMDtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXG4ucS1sb2FkaW5nLWJhci5ib3R0b20ge1xcbiAgbGVmdDogMCAvKiBydGw6aWdub3JlICovO1xcbiAgcmlnaHQ6IDAgLyogcnRsOmlnbm9yZSAqLztcXG4gIGJvdHRvbTogMDtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXG4ucS1sb2FkaW5nLWJhci5yaWdodCB7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICByaWdodDogMDtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuLnEtbG9hZGluZy1iYXIubGVmdCB7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG4ucS1hbGVydCB7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcbi5xLWFsZXJ0IC5hdmF0YXIge1xcbiAgd2lkdGg6IDMycHg7XFxuICBoZWlnaHQ6IDMycHg7XFxufVxcbi5xLWFsZXJ0LXNpZGUsXFxuLnEtYWxlcnQtY29udGVudCB7XFxuICBwYWRkaW5nOiAxMnB4O1xcbiAgZm9udC1zaXplOiAxNnB4O1xcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcXG59XFxuLnEtYWxlcnQtc2lkZSB7XFxuICBmb250LXNpemU6IDI0cHg7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMSk7XFxufVxcbi5xLWFsZXJ0LWFjdGlvbnMge1xcbiAgcGFkZGluZzogMTJweCAxMnB4IDEycHggMDtcXG59XFxuLnEtYWxlcnQtZGV0YWlsIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG59XFxuLnEtYnJlYWRjcnVtYnMgLnEtaWNvbixcXG4ucS1icmVhZGNydW1icyAucS1icmVhZGNydW1icy1zZXBhcmF0b3Ige1xcbiAgZm9udC1zaXplOiAxNTAlO1xcbn1cXG4ucS1icmVhZGNydW1icy1sYXN0IGEge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcbltkaXI9cnRsXSAucS1icmVhZGNydW1icy1zZXBhcmF0b3IgLnEtaWNvbiB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKC0xKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSkgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtYnRuIHtcXG4gIG91dGxpbmU6IDA7XFxuICBib3JkZXI6IDA7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgcGFkZGluZzogNHB4IDE2cHg7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICBtaW4taGVpZ2h0OiAyLjU3MmVtO1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcXG59XFxuYnV0dG9uLnEtYnRuIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xcbn1cXG5hLnEtYnRuIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbn1cXG4ucS1idG4gLnEtaWNvbixcXG4ucS1idG4gLnEtc3Bpbm5lciB7XFxuICBmb250LXNpemU6IDEuNGVtO1xcbn1cXG4ucS1idG4gLnEtYnRuLWlubmVyIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzO1xcbn1cXG4ucS1idG4gLnEtYnRuLWlubmVyLS1oaWRkZW4ge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtYnRuIC5xLWJ0bi1pbm5lcjpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxufVxcbi5xLWJ0bi5kaXNhYmxlZCB7XFxuICBvcGFjaXR5OiAwLjcgIWltcG9ydGFudDtcXG59XFxuLnEtYnRuOm5vdCguZGlzYWJsZWQpOm5vdCgucS1idG4tZmxhdCk6bm90KC5xLWJ0bi1vdXRsaW5lKTpub3QoLnEtYnRuLXB1c2gpOmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxuICB6LWluZGV4OiAtMTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbn1cXG4ucS1idG46bm90KC5kaXNhYmxlZCk6bm90KC5xLWJ0bi1mbGF0KTpub3QoLnEtYnRuLW91dGxpbmUpOm5vdCgucS1idG4tcHVzaCk6YWN0aXZlOmJlZm9yZSxcXG4ucS1idG46bm90KC5kaXNhYmxlZCk6bm90KC5xLWJ0bi1mbGF0KTpub3QoLnEtYnRuLW91dGxpbmUpOm5vdCgucS1idG4tcHVzaCkuYWN0aXZlOmJlZm9yZSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNXB4IDVweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCA4cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMTRweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA1cHggNXB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIDhweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxNHB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS1idG4tcHJvZ3Jlc3Mge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcztcXG4gIHRyYW5zaXRpb246IGFsbCAwLjNzO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjI1KTtcXG59XFxuLnEtYnRuLXByb2dyZXNzLnEtYnRuLWRhcmstcHJvZ3Jlc3Mge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjIpO1xcbn1cXG4ucS1idG4tbm8tdXBwZXJjYXNlIHtcXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xcbn1cXG4ucS1idG4tcmVjdGFuZ2xlIHtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG59XFxuLnEtYnRuLW91dGxpbmUge1xcbiAgYm9yZGVyOiAxcHggc29saWQgY3VycmVudENvbG9yO1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG59XFxuLnEtYnRuLXB1c2gge1xcbiAgYm9yZGVyLXJhZGl1czogN3B4O1xcbiAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkIHJnYmEoMCwwLDAsMC4xNSk7XFxufVxcbi5xLWJ0bi1wdXNoOmFjdGl2ZTpub3QoLmRpc2FibGVkKSxcXG4ucS1idG4tcHVzaC5hY3RpdmU6bm90KC5kaXNhYmxlZCkge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoM3B4KTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDNweCk7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLnEtYnRuLXB1c2ggLnEtZm9jdXMtaGVscGVyLFxcbi5xLWJ0bi1wdXNoIC5xLXJpcHBsZS1jb250YWluZXIge1xcbiAgaGVpZ2h0OiBhdXRvO1xcbiAgYm90dG9tOiAtM3B4O1xcbn1cXG4ucS1idG4tcm91bmRlZCB7XFxuICBib3JkZXItcmFkaXVzOiAyOHB4O1xcbn1cXG4ucS1idG4tcm91bmQge1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgcGFkZGluZzogMDtcXG4gIG1pbi1oZWlnaHQ6IDA7XFxuICBoZWlnaHQ6IDNlbTtcXG4gIHdpZHRoOiAzZW07XFxufVxcbi5xLWJ0bi1mbGF0LFxcbi5xLWJ0bi1vdXRsaW5lIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuLnEtYnRuLWRlbnNlIHtcXG4gIHBhZGRpbmc6IDAuMjg1ZW07XFxuICBtaW4taGVpZ2h0OiAyZW07XFxufVxcbi5xLWJ0bi1kZW5zZS5xLWJ0bi1yb3VuZCB7XFxuICBwYWRkaW5nOiAwO1xcbiAgaGVpZ2h0OiAyLjRlbTtcXG4gIHdpZHRoOiAyLjRlbTtcXG59XFxuLnEtYnRuLWRlbnNlIC5vbi1sZWZ0IHtcXG4gIG1hcmdpbi1yaWdodDogNnB4O1xcbn1cXG4ucS1idG4tZGVuc2UgLm9uLXJpZ2h0IHtcXG4gIG1hcmdpbi1sZWZ0OiA2cHg7XFxufVxcbi5xLWJ0bi1mYWIgLnEtaWNvbixcXG4ucS1idG4tZmFiLW1pbmkgLnEtaWNvbiB7XFxuICBmb250LXNpemU6IDI0cHg7XFxufVxcbi5xLWJ0bi1mYWIge1xcbiAgaGVpZ2h0OiA1NnB4O1xcbiAgd2lkdGg6IDU2cHg7XFxufVxcbi5xLWJ0bi1mYWItbWluaSB7XFxuICBoZWlnaHQ6IDQwcHg7XFxuICB3aWR0aDogNDBweDtcXG59XFxuLnEtdHJhbnNpdGlvbi0tZmFkZS1sZWF2ZS1hY3RpdmUge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbn1cXG4ucS10cmFuc2l0aW9uLS1mYWRlLWVudGVyLWFjdGl2ZSxcXG4ucS10cmFuc2l0aW9uLS1mYWRlLWxlYXZlLWFjdGl2ZSB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLW91dDtcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLW91dDtcXG59XFxuLnEtdHJhbnNpdGlvbi0tZmFkZS1lbnRlcixcXG4ucS10cmFuc2l0aW9uLS1mYWRlLWxlYXZlLFxcbi5xLXRyYW5zaXRpb24tLWZhZGUtbGVhdmUtdG8ge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtYnRuLWRyb3Bkb3duLXNwbGl0IC5xLWJ0bi1kcm9wZG93bi1hcnJvdyB7XFxuICBwYWRkaW5nOiAwIDRweDtcXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjMpO1xcbn1cXG4ucS1idG4tZ3JvdXAge1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG4ucS1idG4tZ3JvdXAgPiAucS1idG4taXRlbSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcbi5xLWJ0bi1ncm91cCA+IC5xLWJ0bi1ncm91cCA+IC5xLWJ0bjpmaXJzdC1jaGlsZCB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogaW5oZXJpdDtcXG59XFxuLnEtYnRuLWdyb3VwID4gLnEtYnRuLWdyb3VwID4gLnEtYnRuOmxhc3QtY2hpbGQge1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcXG59XFxuLnEtYnRuLWdyb3VwID4gLnEtYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpID4gLnEtYnRuOmZpcnN0LWNoaWxkIHtcXG4gIGJvcmRlci1sZWZ0OiAwO1xcbn1cXG4ucS1idG4tZ3JvdXAgPiAucS1idG4tZ3JvdXA6bm90KDpsYXN0LWNoaWxkKSA+IC5xLWJ0bjpsYXN0LWNoaWxkIHtcXG4gIGJvcmRlci1yaWdodDogMDtcXG59XFxuLnEtYnRuLWdyb3VwID4gLnEtYnRuLWl0ZW06bm90KDpsYXN0LWNoaWxkKSB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xcbn1cXG4ucS1idG4tZ3JvdXAgPiAucS1idG4taXRlbSArIC5xLWJ0bi1pdGVtIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xcbn1cXG4ucS1idG4tZ3JvdXAtcHVzaCB7XFxuICBib3JkZXItcmFkaXVzOiA3cHg7XFxufVxcbi5xLWJ0bi1ncm91cC1wdXNoID4gLnEtYnRuLXB1c2ggLnEtYnRuLWlubmVyIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbn1cXG4ucS1idG4tZ3JvdXAtcHVzaCA+IC5xLWJ0bi1wdXNoOmFjdGl2ZTpub3QoLmRpc2FibGVkKSxcXG4ucS1idG4tZ3JvdXAtcHVzaCA+IC5xLWJ0bi1wdXNoLmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsMCwwLDAuMTUpO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG59XFxuLnEtYnRuLWdyb3VwLXB1c2ggPiAucS1idG4tcHVzaDphY3RpdmU6bm90KC5kaXNhYmxlZCkgLnEtYnRuLWlubmVyLFxcbi5xLWJ0bi1ncm91cC1wdXNoID4gLnEtYnRuLXB1c2guYWN0aXZlOm5vdCguZGlzYWJsZWQpIC5xLWJ0bi1pbm5lciB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgzcHgpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoM3B4KTtcXG59XFxuLnEtYnRuLWdyb3VwLXJvdW5kZWQge1xcbiAgYm9yZGVyLXJhZGl1czogMjhweDtcXG59XFxuLnEtYnRuLWdyb3VwLWZsYXQsXFxuLnEtYnRuLWdyb3VwLW91dGxpbmUge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbn1cXG4ucS1idG4tZ3JvdXAtb3V0bGluZSA+IC5xLWJ0bi1pdGVtICsgLnEtYnRuLWl0ZW0ge1xcbiAgYm9yZGVyLWxlZnQ6IDA7XFxufVxcbi5xLWJ0bi1ncm91cC1vdXRsaW5lID4gLnEtYnRuLWl0ZW06bm90KDpsYXN0LWNoaWxkKSB7XFxuICBib3JkZXItcmlnaHQ6IDA7XFxufVxcbi5xLWNhcmQge1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbn1cXG4ucS1jYXJkID4gZGl2OmZpcnN0LWNoaWxkIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGluaGVyaXQ7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcXG59XFxuLnEtY2FyZCA+IGRpdjpsYXN0LWNoaWxkIHtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGluaGVyaXQ7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcXG59XFxuLnEtY2FyZCA+IC5xLWxpc3Qge1xcbiAgYm9yZGVyOiAwO1xcbn1cXG4ucS1jYXJkLXNlcGFyYXRvciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMSk7XFxuICBoZWlnaHQ6IDFweDtcXG59XFxuLnEtY2FyZC1zZXBhcmF0b3IuaW5zZXQge1xcbiAgbWFyZ2luOiAwIDE2cHg7XFxufVxcbi5xLWNhcmQtY29udGFpbmVyIHtcXG4gIHBhZGRpbmc6IDE2cHg7XFxufVxcbi5xLWNhcmQtdGl0bGUge1xcbiAgZm9udC1zaXplOiAxOHB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxuICBsaW5lLWhlaWdodDogMnJlbTtcXG59XFxuLnEtY2FyZC10aXRsZTplbXB0eSB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1jYXJkLXN1YnRpdGxlLFxcbi5xLWNhcmQtdGl0bGUtZXh0cmEge1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgY29sb3I6IHJnYmEoMCwwLDAsMC40KTtcXG59XFxuLnEtY2FyZC1zdWJ0aXRsZSAucS1pY29uLFxcbi5xLWNhcmQtdGl0bGUtZXh0cmEgLnEtaWNvbiB7XFxuICBmb250LXNpemU6IDI0cHg7XFxufVxcbi5xLWNhcmQtbWFpbiB7XFxuICBmb250LXNpemU6IDE0cHg7XFxufVxcbi5xLWNhcmQtcHJpbWFyeSArIC5xLWNhcmQtbWFpbiB7XFxuICBwYWRkaW5nLXRvcDogMDtcXG59XFxuLnEtY2FyZC1hY3Rpb25zIHtcXG4gIHBhZGRpbmc6IDhweDtcXG59XFxuLnEtY2FyZC1hY3Rpb25zIC5xLWJ0biB7XFxuICBwYWRkaW5nOiAwIDhweDtcXG59XFxuLnEtY2FyZC1hY3Rpb25zLWhvcml6IC5xLWJ0bjpub3QoOmxhc3QtY2hpbGQpIHtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbn1cXG4ucS1jYXJkLWFjdGlvbnMtdmVydCAucS1idG4gKyAucS1idG4ge1xcbiAgbWFyZ2luLXRvcDogNHB4O1xcbn1cXG4ucS1jYXJkLW1lZGlhIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5xLWNhcmQtbWVkaWEgPiBpbWcge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIGJvcmRlcjogMDtcXG59XFxuLnEtY2FyZC1tZWRpYS1vdmVybGF5IHtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjQ3KTtcXG59XFxuLnEtY2FyZC1tZWRpYS1vdmVybGF5IC5xLWNhcmQtc3VidGl0bGUge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLWNhcmQtZGFyayAucS1jYXJkLXNlcGFyYXRvciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMik7XFxufVxcbi5xLWNhcmQtZGFyayAucS1jYXJkLXN1YnRpdGxlLFxcbi5xLWNhcmQtZGFyayAucS1jYXJkLXRpdGxlLWV4dHJhIHtcXG4gIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNik7XFxufVxcbi5xLWNhcm91c2VsIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5xLWNhcm91c2VsLWlubmVyIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuLnEtY2Fyb3VzZWwtc2xpZGUge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAtbXMtZmxleDogMCAwIDEwMCU7XFxuICAgICAgICAgIGZsZXg6IDAgMCAxMDAlO1xcbiAgbWFyZ2luOiAwO1xcbiAgcGFkZGluZzogMThweDtcXG59XFxuLnEtY2Fyb3VzZWwtdHJhY2sge1xcbiAgcGFkZGluZzogMDtcXG4gIG1hcmdpbjogMDtcXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC1tcy1mbGV4LXdyYXA6IG5vd3JhcDtcXG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuLnEtY2Fyb3VzZWwtdHJhY2suaW5maW5pdGUtbGVmdCA+IGRpdjpudGgtbGFzdC1jaGlsZCgyKSB7XFxuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAtOTk5O1xcbiAgICAgIC1tcy1mbGV4LW9yZGVyOiAtMTAwMDtcXG4gICAgICAgICAgb3JkZXI6IC0xMDAwO1xcbiAgbWFyZ2luLWxlZnQ6IC0xMDAlO1xcbn1cXG4ucS1jYXJvdXNlbC10cmFjay5pbmZpbml0ZS1yaWdodCA+IGRpdjpudGgtY2hpbGQoMikge1xcbiAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMTAwMTtcXG4gICAgICAtbXMtZmxleC1vcmRlcjogMTAwMDtcXG4gICAgICAgICAgb3JkZXI6IDEwMDA7XFxufVxcbi5xLWNhcm91c2VsLWxlZnQtYXJyb3csXFxuLnEtY2Fyb3VzZWwtcmlnaHQtYXJyb3cge1xcbiAgdG9wOiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjMpO1xcbn1cXG4ucS1jYXJvdXNlbC1sZWZ0LWFycm93IHtcXG4gIGxlZnQ6IDVweDtcXG59XFxuLnEtY2Fyb3VzZWwtcmlnaHQtYXJyb3cge1xcbiAgcmlnaHQ6IDVweDtcXG59XFxuLnEtY2Fyb3VzZWwtcXVpY2stbmF2IHtcXG4gIHBhZGRpbmc6IDJweCAwO1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjMpO1xcbn1cXG4ucS1jYXJvdXNlbC1xdWljay1uYXYgLnEtaWNvbiB7XFxuICBmb250LXNpemU6IDE4cHggIWltcG9ydGFudDtcXG59XFxuLnEtY2Fyb3VzZWwtcXVpY2stbmF2IC5xLWJ0bi5pbmFjdGl2ZSB7XFxuICBvcGFjaXR5OiAwLjU7XFxufVxcbi5xLWNhcm91c2VsLXF1aWNrLW5hdiAucS1idG4uaW5hY3RpdmUgLnEtaWNvbiB7XFxuICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcXG59XFxuLnEtY2Fyb3VzZWwtdGh1bWJuYWlscyB7XFxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjNzO1xcbiAgdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4zcztcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MsIC13ZWJraXQtdHJhbnNmb3JtIDAuM3M7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDUlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwNSUpO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IGF1dG87XFxuICBtYXgtaGVpZ2h0OiA2MCU7XFxuICBvdmVyZmxvdzogYXV0bztcXG4gIGJhY2tncm91bmQ6ICMwMDA7XFxuICBwYWRkaW5nOiAwLjVyZW07XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTNweCA2cHggcmdiYSgwLDAsMCwwLjE2KSwgMCAtNXB4IDZweCByZ2JhKDAsMCwwLDAuMjMpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0zcHggNnB4IHJnYmEoMCwwLDAsMC4xNiksIDAgLTVweCA2cHggcmdiYSgwLDAsMCwwLjIzKTtcXG59XFxuLnEtY2Fyb3VzZWwtdGh1bWJuYWlscy5hY3RpdmUge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG59XFxuLnEtY2Fyb3VzZWwtdGh1bWJuYWlscyBpbWcge1xcbiAgaGVpZ2h0OiBhdXRvO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIG9wYWNpdHk6IDAuNTtcXG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xcbn1cXG4ucS1jYXJvdXNlbC10aHVtYm5haWxzID4gZGl2ID4gZGl2IHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgLW1zLWZsZXg6IDAgMCAxMDhweDtcXG4gICAgICAgICAgZmxleDogMCAwIDEwOHB4O1xcbn1cXG4ucS1jYXJvdXNlbC10aHVtYm5haWxzID4gZGl2ID4gZGl2LmFjdGl2ZSBpbWcsXFxuLnEtY2Fyb3VzZWwtdGh1bWJuYWlscyA+IGRpdiA+IGRpdiBpbWcuYWN0aXZlIHtcXG4gIG9wYWNpdHk6IDE7XFxuICBib3JkZXItY29sb3I6ICNmZmY7XFxufVxcbi5xLWNhcm91c2VsLXRodW1ibmFpbC1idG4ge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjMpO1xcbiAgdG9wOiA1cHg7XFxuICByaWdodDogNXB4O1xcbn1cXG5ib2R5LmRlc2t0b3AgLnEtY2Fyb3VzZWwtdGh1bWJuYWlscyBpbWc6aG92ZXIge1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLnEtbWVzc2FnZS1uYW1lLFxcbi5xLW1lc3NhZ2Utc3RhbXAsXFxuLnEtbWVzc2FnZS1sYWJlbCB7XFxuICBmb250LXNpemU6IHNtYWxsO1xcbn1cXG4ucS1tZXNzYWdlLWxhYmVsIHtcXG4gIG1hcmdpbjogMjRweCAwO1xcbn1cXG4ucS1tZXNzYWdlLXN0YW1wIHtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgbWFyZ2luLXRvcDogNHB4O1xcbiAgb3BhY2l0eTogMC42O1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtbWVzc2FnZS1hdmF0YXIge1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgd2lkdGg6IDQ4cHg7XFxuICBoZWlnaHQ6IDQ4cHg7XFxufVxcbi5xLW1lc3NhZ2Uge1xcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbn1cXG4ucS1tZXNzYWdlOmZpcnN0LWNoaWxkIC5xLW1lc3NhZ2UtbGFiZWwge1xcbiAgbWFyZ2luLXRvcDogMDtcXG59XFxuLnEtbWVzc2FnZS1yZWNlaXZlZCAucS1tZXNzYWdlLWF2YXRhciB7XFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcXG59XFxuLnEtbWVzc2FnZS1yZWNlaXZlZCAucS1tZXNzYWdlLXRleHQge1xcbiAgY29sb3I6ICM4MWM3ODQ7XFxuICBib3JkZXItcmFkaXVzOiAzcHggM3B4IDNweCAwO1xcbn1cXG4ucS1tZXNzYWdlLXJlY2VpdmVkIC5xLW1lc3NhZ2UtdGV4dDpsYXN0LWNoaWxkOmJlZm9yZSB7XFxuICByaWdodDogMTAwJTtcXG4gIGJvcmRlci1yaWdodDogMCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1sZWZ0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItYm90dG9tOiA4cHggc29saWQgY3VycmVudENvbG9yO1xcbn1cXG4ucS1tZXNzYWdlLXJlY2VpdmVkIC5xLW1lc3NhZ2UtdGV4dC1jb250ZW50IHtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1tZXNzYWdlLXNlbnQgLnEtbWVzc2FnZS1uYW1lIHtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXG4ucS1tZXNzYWdlLXNlbnQgLnEtbWVzc2FnZS1hdmF0YXIge1xcbiAgbWFyZ2luLWxlZnQ6IDhweDtcXG59XFxuLnEtbWVzc2FnZS1zZW50IC5xLW1lc3NhZ2UtY29udGFpbmVyIHtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZTtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XFxufVxcbi5xLW1lc3NhZ2Utc2VudCAucS1tZXNzYWdlLXRleHQge1xcbiAgY29sb3I6ICNlMGUwZTA7XFxuICBib3JkZXItcmFkaXVzOiAzcHggM3B4IDAgM3B4O1xcbn1cXG4ucS1tZXNzYWdlLXNlbnQgLnEtbWVzc2FnZS10ZXh0Omxhc3QtY2hpbGQ6YmVmb3JlIHtcXG4gIGxlZnQ6IDEwMCU7XFxuICBib3JkZXItbGVmdDogMCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1yaWdodDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLWJvdHRvbTogOHB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtbWVzc2FnZS1zZW50IC5xLW1lc3NhZ2UtdGV4dC1jb250ZW50IHtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1tZXNzYWdlLXRleHQge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbiAgcGFkZGluZzogOHB4O1xcbiAgbGluZS1oZWlnaHQ6IDEuMjtcXG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XFxufVxcbi5xLW1lc3NhZ2UtdGV4dCArIC5xLW1lc3NhZ2UtdGV4dCB7XFxuICBtYXJnaW4tdG9wOiAzcHg7XFxufVxcbi5xLW1lc3NhZ2UtdGV4dDpsYXN0LWNoaWxkIHtcXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XFxufVxcbi5xLW1lc3NhZ2UtdGV4dDpsYXN0LWNoaWxkIC5xLW1lc3NhZ2Utc3RhbXAge1xcbiAgZGlzcGxheTogYmxvY2s7XFxufVxcbi5xLW1lc3NhZ2UtdGV4dDpsYXN0LWNoaWxkOmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGJvdHRvbTogMDtcXG4gIHdpZHRoOiAwO1xcbiAgaGVpZ2h0OiAwO1xcbn1cXG4ucS1jaGVja2JveC1pY29uIHtcXG4gIGhlaWdodDogMjFweDtcXG4gIHdpZHRoOiAyMXB4O1xcbiAgZm9udC1zaXplOiAyMXB4O1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtY2hpcCB7XFxuICBtaW4taGVpZ2h0OiAzMnB4O1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgcGFkZGluZzogMCAxMnB4O1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgYm9yZGVyOiAjZTBlMGUwO1xcbiAgYm9yZGVyLXJhZGl1czogMnJlbTtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICBjb2xvcjogIzAwMDtcXG4gIGJhY2tncm91bmQ6ICNlZWU7XFxufVxcbi5xLWNoaXA6Zm9jdXMgLnEtY2hpcC1jbG9zZSB7XFxuICBvcGFjaXR5OiAwLjg7XFxufVxcbi5xLWNoaXAgLnEtaWNvbiB7XFxuICBmb250LXNpemU6IDI0cHg7XFxuICBsaW5lLWhlaWdodDogMTtcXG59XFxuLnEtY2hpcC1tYWluIHtcXG4gIGxpbmUtaGVpZ2h0OiBpbml0aWFsO1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xcbn1cXG4ucS1jaGlwLXNpZGUge1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgaGVpZ2h0OiAzMnB4O1xcbiAgd2lkdGg6IDMycHg7XFxuICBtaW4td2lkdGg6IDMycHg7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucS1jaGlwLXNpZGUgaW1nIHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG4ucS1jaGlwLWxlZnQge1xcbiAgbWFyZ2luLWxlZnQ6IC0xMnB4O1xcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxufVxcbi5xLWNoaXAtcmlnaHQge1xcbiAgbWFyZ2luLWxlZnQ6IDJweDtcXG4gIG1hcmdpbi1yaWdodDogLTEycHg7XFxufVxcbi5xLWNoaXAtc3F1YXJlIHtcXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcXG59XFxuLnEtY2hpcC1mbG9hdGluZyB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IC0wLjNlbTtcXG4gIHJpZ2h0OiAtMC4zZW07XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIHotaW5kZXg6IDE7XFxufVxcbi5xLWNoaXAtdGFnIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHBhZGRpbmctbGVmdDogMS43cmVtO1xcbn1cXG4ucS1jaGlwLXRhZzphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMC41cmVtO1xcbiAgbWFyZ2luLXRvcDogLTAuMjVyZW07XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgd2lkdGg6IDAuNXJlbTtcXG4gIGhlaWdodDogMC41cmVtO1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xcHggMXB4IDAgcmdiYSgwLDAsMCwwLjMpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xcHggMXB4IDAgcmdiYSgwLDAsMCwwLjMpO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHotaW5kZXg6IDA7XFxufVxcbi5xLWNoaXAtcG9pbnRpbmc6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgei1pbmRleDogLTE7XFxuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xcbiAgd2lkdGg6IDE2cHg7XFxuICBoZWlnaHQ6IDE2cHg7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxufVxcbi5xLWNoaXAtcG9pbnRpbmctdXAge1xcbiAgbWFyZ2luLXRvcDogMC44cmVtO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nLXVwOmJlZm9yZSB7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC0yMiUpIHJvdGF0ZSg0NWRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC0yMiUpIHJvdGF0ZSg0NWRlZyk7XFxufVxcbi5xLWNoaXAtcG9pbnRpbmctZG93biB7XFxuICBtYXJnaW4tYm90dG9tOiAwLjhyZW07XFxufVxcbi5xLWNoaXAtcG9pbnRpbmctZG93bjpiZWZvcmUge1xcbiAgcmlnaHQ6IGF1dG87XFxuICB0b3A6IDEwMCU7XFxuICBsZWZ0OiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC03OCUpIHJvdGF0ZSg0NWRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC03OCUpIHJvdGF0ZSg0NWRlZyk7XFxufVxcbi5xLWNoaXAtcG9pbnRpbmctcmlnaHQge1xcbiAgbWFyZ2luLXJpZ2h0OiAwLjhyZW07XFxufVxcbi5xLWNoaXAtcG9pbnRpbmctcmlnaHQ6YmVmb3JlIHtcXG4gIHRvcDogNTAlO1xcbiAgcmlnaHQ6IDJweDtcXG4gIGJvdHRvbTogYXV0bztcXG4gIGxlZnQ6IGF1dG87XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMyUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDMzJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nLWxlZnQge1xcbiAgbWFyZ2luLWxlZnQ6IDAuOHJlbTtcXG59XFxuLnEtY2hpcC1wb2ludGluZy1sZWZ0OmJlZm9yZSB7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDJweDtcXG4gIGJvdHRvbTogYXV0bztcXG4gIHJpZ2h0OiBhdXRvO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMzJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMzJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xcbn1cXG4ucS1jaGlwLWRldGFpbCB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMSk7XFxuICBvcGFjaXR5OiAwLjg7XFxuICBwYWRkaW5nOiAwIDVweDtcXG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xcbn1cXG4ucS1jaGlwLXNtYWxsIHtcXG4gIG1pbi1oZWlnaHQ6IDI2cHg7XFxufVxcbi5xLWNoaXAtc21hbGwgLnEtY2hpcC1tYWluIHtcXG4gIHBhZGRpbmc6IDRweCAxcHg7XFxuICBsaW5lLWhlaWdodDogaW5pdGlhbDtcXG59XFxuLnEtY2hpcC1zbWFsbCAucS1jaGlwLXNpZGUge1xcbiAgaGVpZ2h0OiAyNnB4O1xcbiAgd2lkdGg6IDI2cHg7XFxuICBtaW4td2lkdGg6IDI2cHg7XFxufVxcbi5xLWNoaXAtc21hbGwgLnEtY2hpcC1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG59XFxuLnEtY2hpcC1kZW5zZSB7XFxuICBtaW4taGVpZ2h0OiAxcHg7XFxuICBwYWRkaW5nOiAwIDNweDtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG59XFxuLnEtY2hpcC1kZW5zZS5xLWNoaXAtdGFnIHtcXG4gIHBhZGRpbmctbGVmdDogMS4zcmVtO1xcbn1cXG4ucS1jaGlwLWRlbnNlLnEtY2hpcC1wb2ludGluZzpiZWZvcmUge1xcbiAgd2lkdGg6IDlweDtcXG4gIGhlaWdodDogOXB4O1xcbn1cXG4ucS1jaGlwLWRlbnNlIC5xLWNoaXAtbWFpbiB7XFxuICBwYWRkaW5nOiAxcHg7XFxufVxcbi5xLWNoaXAtZGVuc2UgLnEtY2hpcC1zaWRlIHtcXG4gIGhlaWdodDogMThweDtcXG4gIHdpZHRoOiAxOHB4O1xcbiAgbWluLXdpZHRoOiAxNnB4O1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbn1cXG4ucS1jaGlwLWRlbnNlIC5xLWNoaXAtbGVmdCB7XFxuICBtYXJnaW4tbGVmdDogLTNweDtcXG4gIG1hcmdpbi1yaWdodDogMnB4O1xcbn1cXG4ucS1jaGlwLWRlbnNlIC5xLWNoaXAtcmlnaHQge1xcbiAgbWFyZ2luLWxlZnQ6IDJweDtcXG4gIG1hcmdpbi1yaWdodDogLTJweDtcXG59XFxuLnEtY2hpcC1kZW5zZSAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG59XFxuLnEtaW5wdXQtY2hpcHMge1xcbiAgbWFyZ2luLXRvcDogLTFweDtcXG4gIG1hcmdpbi1ib3R0b206IC0xcHg7XFxufVxcbi5xLWlucHV0LWNoaXBzIC5xLWNoaXAge1xcbiAgbWFyZ2luOiAxcHg7XFxufVxcbi5xLWlucHV0LWNoaXBzIGlucHV0LnEtaW5wdXQtdGFyZ2V0IHtcXG4gIG1pbi13aWR0aDogNzBweCAhaW1wb3J0YW50O1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1zdWItaXRlbSB7XFxuICBwYWRkaW5nOiA4cHggMTZweDtcXG59XFxuLnEtY29sbGFwc2libGUtc3ViLWl0ZW0uaW5kZW50IHtcXG4gIHBhZGRpbmctbGVmdDogNDhweDtcXG4gIHBhZGRpbmctcmlnaHQ6IDA7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXN1Yi1pdGVtIC5xLWNhcmQge1xcbiAgbWFyZ2luLWJvdHRvbTogMDtcXG59XFxuLnEtY29sbGFwc2libGUucm91dGVyLWxpbmstYWN0aXZlID4gLnEtaXRlbSB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDE4OSwxODksMTg5LDAuNCk7XFxufVxcbi5xLWNvbGxhcHNpYmxlIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogcGFkZGluZyAwLjVzO1xcbiAgdHJhbnNpdGlvbjogcGFkZGluZyAwLjVzO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1wb3B1cC1jbG9zZWQge1xcbiAgcGFkZGluZzogMCAxNXB4O1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1wb3B1cC1jbG9zZWQgLnEtY29sbGFwc2libGUtaW5uZXIge1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcXG59XFxuLnEtY29sbGFwc2libGUtcG9wdXAtY2xvc2VkICsgLnEtY29sbGFwc2libGUtcG9wdXAtY2xvc2VkIC5xLWNvbGxhcHNpYmxlLWlubmVyIHtcXG4gIGJvcmRlci10b3A6IDA7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXBvcHVwLW9wZW5lZCB7XFxuICBwYWRkaW5nOiAxNXB4IDA7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXBvcHVwLW9wZW5lZCAucS1jb2xsYXBzaWJsZS1pbm5lciB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtY29sbGFwc2libGUtcG9wdXAtb3BlbmVkICsgLnEtY29sbGFwc2libGUtcG9wdXAtb3BlbmVkLFxcbi5xLWNvbGxhcHNpYmxlLXBvcHVwLW9wZW5lZDpmaXJzdC1jaGlsZCB7XFxuICBwYWRkaW5nLXRvcDogMDtcXG59XFxuLnEtY29sbGFwc2libGUtcG9wdXAtb3BlbmVkOmxhc3QtY2hpbGQge1xcbiAgcGFkZGluZy1ib3R0b206IDA7XFxufVxcbi5xLWNvbGxhcHNpYmxlLWN1cnNvci1wb2ludGVyID4gLnEtY29sbGFwc2libGUtaW5uZXIgPiAucS1pdGVtIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnEtY29sbGFwc2libGUtdG9nZ2xlLWljb24ge1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgd2lkdGg6IDFlbTtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuLnEtY29sb3Ige1xcbiAgbWF4LXdpZHRoOiAxMDB2dztcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB3aWR0aDogMTAwJTtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxufVxcbi5xLWNvbG9yLXNhdHVyYXRpb24ge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEyM3B4O1xcbn1cXG4ucS1jb2xvci1zYXR1cmF0aW9uLXdoaXRlIHtcXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBmcm9tKCNmZmYpLCB0byhyZ2JhKDI1NSwyNTUsMjU1LDApKSk7XFxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNmZmYsIHJnYmEoMjU1LDI1NSwyNTUsMCkpO1xcbn1cXG4ucS1jb2xvci1zYXR1cmF0aW9uLWJsYWNrIHtcXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IGJvdHRvbSwgbGVmdCB0b3AsIGZyb20oIzAwMCksIHRvKHJnYmEoMCwwLDAsMCkpKTtcXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsICMwMDAsIHJnYmEoMCwwLDAsMCkpO1xcbn1cXG4ucS1jb2xvci1zYXR1cmF0aW9uLWNpcmNsZSB7XFxuICB3aWR0aDogMTBweDtcXG4gIGhlaWdodDogMTBweDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMS41cHggI2ZmZiwgaW5zZXQgMCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjMpLCAwIDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuNCk7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDEuNXB4ICNmZmYsIGluc2V0IDAgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4zKSwgMCAwIDFweCAycHggcmdiYSgwLDAsMCwwLjQpO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNXB4LCAtNXB4KTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgLTVweCk7XFxufVxcbi5xLWNvbG9yLXN3YXRjaCxcXG4ucS1jb2xvci1hbHBoYSAucS1zbGlkZXItdHJhY2sge1xcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiICsgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMF9fXyArIFwiKSAhaW1wb3J0YW50O1xcbn1cXG4ucS1jb2xvci1zd2F0Y2gge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgd2lkdGg6IDMycHg7XFxuICBoZWlnaHQ6IDMycHg7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcXG59XFxuLnEtY29sb3ItaHVlIC5xLXNsaWRlci10cmFjayB7XFxuICBib3JkZXItcmFkaXVzOiAycHg7XFxuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgZnJvbSgjZjAwKSwgY29sb3Itc3RvcCgxNyUsICNmZjApLCBjb2xvci1zdG9wKDMzJSwgIzBmMCksIGNvbG9yLXN0b3AoNTAlLCAjMGZmKSwgY29sb3Itc3RvcCg2NyUsICMwMGYpLCBjb2xvci1zdG9wKDgzJSwgI2YwZiksIHRvKCNmMDApKTtcXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2YwMCAwJSwgI2ZmMCAxNyUsICMwZjAgMzMlLCAjMGZmIDUwJSwgIzAwZiA2NyUsICNmMGYgODMlLCAjZjAwIDEwMCUpO1xcbiAgb3BhY2l0eTogMTtcXG4gIGhlaWdodDogOHB4O1xcbn1cXG4ucS1jb2xvci1odWUgLnEtc2xpZGVyLXRyYWNrLmFjdGl2ZS10cmFjayB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1jb2xvci1hbHBoYSAucS1zbGlkZXItdHJhY2sge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIG9wYWNpdHk6IDE7XFxuICBoZWlnaHQ6IDhweDtcXG59XFxuLnEtY29sb3ItYWxwaGEgLnEtc2xpZGVyLXRyYWNrOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGZyb20ocmdiYSgyNTUsMjU1LDI1NSwwKSksIHRvKCM3NTc1NzUpKTtcXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyNTUsMjU1LDI1NSwwKSwgIzc1NzU3NSk7XFxufVxcbi5xLWNvbG9yLWFscGhhIC5xLXNsaWRlci10cmFjay5hY3RpdmUtdHJhY2sge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtY29sb3Itc2xpZGVycyB7XFxuICBoZWlnaHQ6IDU2cHg7XFxufVxcbi5xLWNvbG9yLXNsaWRlcnMgLnEtc2xpZGVyIHtcXG4gIGhlaWdodDogMjBweDtcXG59XFxuLnEtY29sb3Itc2xpZGVycyAucS1zbGlkZXItaGFuZGxlIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNHB4IDAgcmdiYSgwLDAsMCwwLjM3KTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNHB4IDAgcmdiYSgwLDAsMCwwLjM3KTtcXG59XFxuLnEtY29sb3Itc2xpZGVycyAucS1zbGlkZXItcmluZyB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1jb2xvci1pbnB1dHMge1xcbiAgZm9udC1zaXplOiAxMXB4O1xcbiAgY29sb3I6ICM3NTc1NzU7XFxufVxcbi5xLWNvbG9yLWlucHV0cyBpbnB1dCB7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xcbiAgb3V0bGluZTogMDtcXG59XFxuLnEtY29sb3ItcGFkZGluZyB7XFxuICBwYWRkaW5nOiAwIDJweDtcXG59XFxuLnEtY29sb3ItbGFiZWwge1xcbiAgcGFkZGluZy10b3A6IDRweDtcXG59XFxuLnEtY29sb3ItZGFyayB7XFxuICBiYWNrZ3JvdW5kOiAjMDAwO1xcbiAgYm9yZGVyOiAxcHggc29saWQgIzQyNDI0MjtcXG59XFxuLnEtY29sb3ItZGFyayBpbnB1dCB7XFxuICBiYWNrZ3JvdW5kOiAjMDAwO1xcbiAgY29sb3I6ICNiZGJkYmQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1saWdodCk7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjNDI0MjQyO1xcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcS1jb2xvci1kYXJrKTtcXG59XFxuLnEtY29sb3ItZGFyayAucS1jb2xvci1pbnB1dHMge1xcbiAgY29sb3I6ICNiZGJkYmQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1saWdodCk7XFxufVxcbi5xLWNvbG9yLWRhcmsgLnEtY29sb3Itc3dhdGNoIHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICM0MjQyNDI7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1xLWNvbG9yLWRhcmspO1xcbn1cXG4ucS1kYXRldGltZS1pbnB1dCB7XFxuICBtaW4td2lkdGg6IDcwcHg7XFxufVxcbi5xLWRhdGV0aW1lLWNvbnRyb2xzIHtcXG4gIHBhZGRpbmc6IDAgMTBweCA4cHg7XFxufVxcbi5xLWRhdGV0aW1lIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICBsaW5lLWhlaWdodDogaW5pdGlhbDtcXG59XFxuLnEtZGF0ZXRpbWUgLm1vZGFsLWJ1dHRvbnMge1xcbiAgcGFkZGluZy10b3A6IDhweDtcXG59XFxuLnEtZGF0ZXRpbWU6bm90KC5uby1ib3JkZXIpOm5vdCgucS1kYXRldGltZS1kYXJrKSAucS1kYXRldGltZS1jb250ZW50IHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XFxufVxcbi5xLWRhdGV0aW1lOm5vdCgubm8tYm9yZGVyKS5xLWRhdGV0aW1lLWRhcmsge1xcbiAgYm9yZGVyOiAxcHggc29saWQgIzQyNDI0MjtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXEtY29sb3ItZGFyayk7XFxufVxcbi5xLWRhdGV0aW1lLWhlYWRlciB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLWRhdGV0aW1lLWhlYWRlciA+IGRpdiB7XFxuICBjb2xvcjogI2ZmZjtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXG4ubW9kYWwtY29udGVudCA+IC5xLWRhdGV0aW1lID4gLnEtZGF0ZXRpbWUtaGVhZGVyLFxcbi5xLXBvcG92ZXIgPiAucS1kYXRldGltZSA+IC5xLWRhdGV0aW1lLWhlYWRlciB7XFxuICBtaW4td2lkdGg6IDE3NXB4O1xcbn1cXG4ucS1kYXRldGltZS13ZWVrZGF5c3RyaW5nIHtcXG4gIGZvbnQtc2l6ZTogMC44cmVtO1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEpO1xcbiAgcGFkZGluZzogNXB4IDA7XFxufVxcbi5xLWRhdGV0aW1lLXRpbWUge1xcbiAgcGFkZGluZzogMTBweCAwO1xcbiAgd2lsbC1jaGFuZ2U6IHNjcm9sbC1wb3NpdGlvbjtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbn1cXG4ucS1kYXRldGltZS1hbXBtIHtcXG4gIGZvbnQtc2l6ZTogMC45cmVtO1xcbiAgcGFkZGluZzogNXB4O1xcbn1cXG4ucS1kYXRldGltZS1kYXRlc3RyaW5nIHtcXG4gIHBhZGRpbmc6IDEwcHggMDtcXG59XFxuLnEtZGF0ZXRpbWUtZGF0ZXN0cmluZyAucS1kYXRldGltZS1saW5rIHtcXG4gIGZvbnQtc2l6ZTogMi43cmVtO1xcbn1cXG4ucS1kYXRldGltZS1kYXRlc3RyaW5nIC5xLWRhdGV0aW1lLWxpbmsgc3BhbiB7XFxuICBwYWRkaW5nOiAwIDVweDtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXG4ucS1kYXRldGltZS1kYXRlc3RyaW5nIC5xLWRhdGV0aW1lLWxpbmsuc21hbGwge1xcbiAgbWFyZ2luOiAwIDVweDtcXG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xcbn1cXG4ucS1kYXRldGltZS1kYXRlc3RyaW5nIC5xLWRhdGV0aW1lLWxpbmsuc21hbGwgc3BhbiB7XFxuICBwYWRkaW5nOiA1cHg7XFxufVxcbi5xLWRhdGV0aW1lLWxpbmsge1xcbiAgb3BhY2l0eTogMC42O1xcbn1cXG4ucS1kYXRldGltZS1saW5rID4gc3BhbiB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBvdXRsaW5lOiAwO1xcbn1cXG4ucS1kYXRldGltZS1saW5rLmFjdGl2ZSB7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4ucS1kYXRldGltZS1jbG9ja3N0cmluZyB7XFxuICBtaW4td2lkdGg6IDIxMHB4O1xcbiAgZm9udC1zaXplOiAyLjdyZW07XFxuICBkaXJlY3Rpb246IGx0ciAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1zZWxlY3RvciB7XFxuICBtaW4td2lkdGg6IDI5MHB4O1xcbiAgaGVpZ2h0OiAzMTBweDtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbn1cXG4ucS1kYXRldGltZS12aWV3LWRheSB7XFxuICB3aWR0aDogMjUwcHg7XFxuICBoZWlnaHQ6IDI4NXB4O1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLWRhdGV0aW1lLXZpZXcteWVhciA+IC5xLWJ0bjpub3QoLmFjdGl2ZSksXFxuLnEtZGF0ZXRpbWUtdmlldy1tb250aCA+IC5xLWJ0bjpub3QoLmFjdGl2ZSkge1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLWRhdGV0aW1lLW1vbnRoLXN0YW1wIHtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG59XFxuLnEtZGF0ZXRpbWUtd2Vla2RheXMge1xcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xcbn1cXG4ucS1kYXRldGltZS13ZWVrZGF5cyBkaXYge1xcbiAgb3BhY2l0eTogMC42O1xcbiAgd2lkdGg6IDM1cHg7XFxuICBoZWlnaHQ6IDM1cHg7XFxuICBsaW5lLWhlaWdodDogMzVweDtcXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDA7XFxuICBtaW4td2lkdGg6IDA7XFxuICBtaW4taGVpZ2h0OiAwO1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxufVxcbi5xLWRhdGV0aW1lLWRheXMgZGl2IHtcXG4gIG1hcmdpbjogMXB4O1xcbiAgbGluZS1oZWlnaHQ6IDMzcHg7XFxuICB3aWR0aDogMzNweDtcXG4gIGhlaWdodDogMzNweDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG59XFxuLnEtZGF0ZXRpbWUtZGF5cyBkaXYucS1kYXRldGltZS1kYXktYWN0aXZlIHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtZGF0ZXRpbWUtZGF5cyBkaXYucS1kYXRldGltZS1kYXktYWN0aXZlID4gc3BhbiB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtZGF0ZXRpbWUtZGF5cyBkaXYucS1kYXRldGltZS1kYXktdG9kYXkge1xcbiAgY29sb3I6IGN1cnJlbnRDb2xvcjtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtZGF0ZXRpbWUtZGF5cyBkaXY6bm90KC5xLWRhdGV0aW1lLWZpbGxlcmRheSk6bm90KC5kaXNhYmxlZCk6bm90KC5xLWRhdGV0aW1lLWRheS1hY3RpdmUpOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6ICNlMGUwZTA7XFxufVxcbi5xLWRhdGV0aW1lLWJ0biB7XFxuICBmb250LXdlaWdodDogbm9ybWFsO1xcbn1cXG4ucS1kYXRldGltZS1idG4uYWN0aXZlIHtcXG4gIGZvbnQtc2l6ZTogMS41cmVtO1xcbiAgcGFkZGluZy10b3A6IDFyZW07XFxuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2sge1xcbiAgd2lkdGg6IDI1MHB4O1xcbiAgaGVpZ2h0OiAyNTBweDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGJhY2tncm91bmQ6ICNlMGUwZTA7XFxuICBwYWRkaW5nOiAyNHB4O1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1jaXJjbGUge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtcG9wIDAuNXMgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXBvcCAwLjVzIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLWNlbnRlciB7XFxuICBoZWlnaHQ6IDZweDtcXG4gIHdpZHRoOiA2cHg7XFxuICB0b3A6IDA7XFxuICBtYXJnaW46IGF1dG87XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBtaW4taGVpZ2h0OiAwO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb2ludGVyIHtcXG4gIHdpZHRoOiAxcHg7XFxuICBoZWlnaHQ6IDUwJTtcXG4gIG1hcmdpbjogMCBhdXRvO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXIgLyogcnRsOmlnbm9yZSAqLztcXG4gIG1pbi1oZWlnaHQ6IDA7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvaW50ZXIgc3BhbiB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICB3aWR0aDogOHB4O1xcbiAgaGVpZ2h0OiA4cHg7XFxuICBib3R0b206IC04cHg7XFxuICBsZWZ0OiAwO1xcbiAgbWluLXdpZHRoOiAwO1xcbiAgbWluLWhlaWdodDogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1kYXRldGltZS1hcnJvdyB7XFxuICBjb2xvcjogIzc1NzU3NTtcXG59XFxuLnEtZGF0ZXRpbWUtZGFyayB7XFxuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci1kYXJrKTtcXG59XFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS1hcnJvdyB7XFxuICBjb2xvcjogI2JkYmRiZDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWxpZ2h0KTtcXG59XFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS1oZWFkZXIsXFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS1jbG9jayB7XFxuICBiYWNrZ3JvdW5kOiAjNjE2MTYxO1xcbn1cXG4ucS1kYXRldGltZS1kYXJrIC5xLWRhdGV0aW1lLXZpZXctZGF5IHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1kYXRldGltZS1kYXJrIC5xLWRhdGV0aW1lLXZpZXcteWVhciA+IC5xLWJ0bjpub3QoLmFjdGl2ZSksXFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS12aWV3LW1vbnRoID4gLnEtYnRuOm5vdCguYWN0aXZlKSB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS1kYXlzIGRpdi5xLWRhdGV0aW1lLWRheS1hY3RpdmUgPiBzcGFuLFxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtZGF5cyBkaXY6bm90KC5xLWRhdGV0aW1lLWZpbGxlcmRheSk6bm90KC5kaXNhYmxlZCk6bm90KC5xLWRhdGV0aW1lLWRheS1hY3RpdmUpOmhvdmVyIHtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG5ib2R5LmRlc2t0b3AgLnEtZGF0ZXRpbWUtY2xvY2stcG9zaXRpb246bm90KC5hY3RpdmUpOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6ICNmNWY1ZjUgIWltcG9ydGFudDtcXG59XFxuYm9keS5kZXNrdG9wIC5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtY2xvY2stcG9zaXRpb246bm90KC5hY3RpdmUpOmhvdmVyIHtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3NpdGlvbiB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBtaW4taGVpZ2h0OiAzMnB4O1xcbiAgd2lkdGg6IDMycHg7XFxuICBoZWlnaHQ6IDMycHg7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBsaW5lLWhlaWdodDogMzJweDtcXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIC8qIHJ0bDppZ25vcmUgKi87XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvc2l0aW9uOm5vdCguYWN0aXZlKSB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS1jbG9jay1wb3NpdGlvbjpub3QoLmFjdGl2ZSkge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvc2l0aW9uLmFjdGl2ZSB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvc2l0aW9uLmFjdGl2ZSA+IHNwYW4ge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0wIHtcXG4gIHRvcDogMCU7XFxuICBsZWZ0OiA1MCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTEge1xcbiAgdG9wOiA2LjclO1xcbiAgbGVmdDogNzUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0yIHtcXG4gIHRvcDogMjUlO1xcbiAgbGVmdDogOTMuMyUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTMge1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAxMDAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy00IHtcXG4gIHRvcDogNzUlO1xcbiAgbGVmdDogOTMuMyUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTUge1xcbiAgdG9wOiA5My4zJTtcXG4gIGxlZnQ6IDc1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtNiB7XFxuICB0b3A6IDEwMCU7XFxuICBsZWZ0OiA1MCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTcge1xcbiAgdG9wOiA5My4zJTtcXG4gIGxlZnQ6IDI1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtOCB7XFxuICB0b3A6IDc1JTtcXG4gIGxlZnQ6IDYuNyUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTkge1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTAge1xcbiAgdG9wOiAyNSU7XFxuICBsZWZ0OiA2LjclIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xMSB7XFxuICB0b3A6IDYuNyU7XFxuICBsZWZ0OiAyNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTEyIHtcXG4gIHRvcDogMCU7XFxuICBsZWZ0OiA1MCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTEuZm10MjQge1xcbiAgdG9wOiA2LjclO1xcbiAgbGVmdDogNzUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0yLmZtdDI0IHtcXG4gIHRvcDogMjUlO1xcbiAgbGVmdDogOTMuMyUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTMuZm10MjQge1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAxMDAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy00LmZtdDI0IHtcXG4gIHRvcDogNzUlO1xcbiAgbGVmdDogOTMuMyUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTUuZm10MjQge1xcbiAgdG9wOiA5My4zJTtcXG4gIGxlZnQ6IDc1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtNi5mbXQyNCB7XFxuICB0b3A6IDEwMCU7XFxuICBsZWZ0OiA1MCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTcuZm10MjQge1xcbiAgdG9wOiA5My4zJTtcXG4gIGxlZnQ6IDI1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtOC5mbXQyNCB7XFxuICB0b3A6IDc1JTtcXG4gIGxlZnQ6IDYuNyUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTkuZm10MjQge1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTAuZm10MjQge1xcbiAgdG9wOiAyNSU7XFxuICBsZWZ0OiA2LjclIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xMS5mbXQyNCB7XFxuICB0b3A6IDYuNyU7XFxuICBsZWZ0OiAyNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTEyLmZtdDI0IHtcXG4gIHRvcDogMCU7XFxuICBsZWZ0OiA1MCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTEzLmZtdDI0IHtcXG4gIHRvcDogMTkuNjklO1xcbiAgbGVmdDogNjcuNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTE0LmZtdDI0IHtcXG4gIHRvcDogMzIuNSU7XFxuICBsZWZ0OiA4MC4zMSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTE1LmZtdDI0IHtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogODUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xNi5mbXQyNCB7XFxuICB0b3A6IDY3LjUlO1xcbiAgbGVmdDogODAuMzElIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xNy5mbXQyNCB7XFxuICB0b3A6IDgwLjMxJTtcXG4gIGxlZnQ6IDY3LjUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xOC5mbXQyNCB7XFxuICB0b3A6IDg1JTtcXG4gIGxlZnQ6IDUwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTkuZm10MjQge1xcbiAgdG9wOiA4MC4zMSU7XFxuICBsZWZ0OiAzMi41JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMjAuZm10MjQge1xcbiAgdG9wOiA2Ny41JTtcXG4gIGxlZnQ6IDE5LjY5JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMjEuZm10MjQge1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAxNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTIyLmZtdDI0IHtcXG4gIHRvcDogMzIuNSU7XFxuICBsZWZ0OiAxOS42OSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTIzLmZtdDI0IHtcXG4gIHRvcDogMTkuNjklO1xcbiAgbGVmdDogMzIuNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTAuZm10MjQge1xcbiAgdG9wOiAxNSU7XFxuICBsZWZ0OiA1MCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtcmFuZ2Uucm93IC5xLWRhdGV0aW1lLXJhbmdlLWxlZnQge1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcXG59XFxuLnEtZGF0ZXRpbWUtcmFuZ2Uucm93IC5xLWRhdGV0aW1lLXJhbmdlLXJpZ2h0IHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xcbn1cXG4ucS1kYXRldGltZS1yYW5nZS5jb2x1bW4gPiBkaXYgKyBkaXYge1xcbiAgbWFyZ2luLXRvcDogMTBweDtcXG59XFxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICAucS1kYXRldGltZSB7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWwgIWltcG9ydGFudDtcXG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWwgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gIC5xLWRhdGV0aW1lLWhlYWRlciB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XFxuICB9XFxuICAucS1kYXRldGltZS1jb250ZW50IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMjtcXG4gICAgICAgIC1tcy1mbGV4OiAyIDIgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAyIDIgYXV0bztcXG4gIH1cXG59XFxuLnEtZG90IHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogLTJweDtcXG4gIHJpZ2h0OiAtMTBweDtcXG4gIGhlaWdodDogMTBweDtcXG4gIHdpZHRoOiAxMHB4O1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgYmFja2dyb3VuZDogI2Y0NDMzNjtcXG4gIG9wYWNpdHk6IDAuODtcXG59XFxuLnEtZWRpdG9yIHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XFxufVxcbi5xLWVkaXRvci5kaXNhYmxlZCB7XFxuICBib3JkZXItc3R5bGU6IGRhc2hlZDtcXG59XFxuLnEtZWRpdG9yLmZ1bGxzY3JlZW4ge1xcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XFxufVxcbi5xLWVkaXRvci1jb250ZW50IHtcXG4gIG91dGxpbmU6IDA7XFxuICBwYWRkaW5nOiAxMHB4O1xcbiAgbWluLWhlaWdodDogMTBlbTtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxufVxcbi5xLWVkaXRvci1jb250ZW50IGhyIHtcXG4gIGJvcmRlcjogMDtcXG4gIG91dGxpbmU6IDA7XFxuICBtYXJnaW46IDFweDtcXG4gIGhlaWdodDogMXB4O1xcbiAgYmFja2dyb3VuZDogI2NjYztcXG59XFxuLnEtZWRpdG9yLXRvb2xiYXItcGFkZGluZyB7XFxuICBwYWRkaW5nOiA0cHg7XFxufVxcbi5xLWVkaXRvci10b29sYmFyIHtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xcbiAgYmFja2dyb3VuZDogI2UwZTBlMDtcXG4gIG1pbi1oZWlnaHQ6IDM3cHg7XFxufVxcbi5xLWVkaXRvci10b29sYmFyIC5xLWJ0bi1ncm91cCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcbi5xLWVkaXRvci10b29sYmFyIC5xLWJ0bi1ncm91cCArIC5xLWJ0bi1ncm91cCB7XFxuICBtYXJnaW4tbGVmdDogNXB4O1xcbn1cXG4ucS1lZGl0b3ItdG9vbGJhci1zZXBhcmF0b3IgLnEtYnRuLWdyb3VwICsgLnEtYnRuLWdyb3VwIHtcXG4gIHBhZGRpbmctbGVmdDogNXB4O1xcbn1cXG4ucS1lZGl0b3ItdG9vbGJhci1zZXBhcmF0b3IgLnEtYnRuLWdyb3VwICsgLnEtYnRuLWdyb3VwOmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDA7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICB3aWR0aDogMXB4O1xcbiAgYmFja2dyb3VuZDogI2NjYztcXG59XFxuLnEtZWRpdG9yLWlucHV0IGlucHV0IHtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbn1cXG4ucS1mYWIge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG59XFxuLnotZmFiIHtcXG4gIHotaW5kZXg6IDk5MDtcXG59XFxuLnEtZmFiLW9wZW5lZCAucS1mYWItYWN0aW9ucyB7XFxuICBvcGFjaXR5OiAxO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgxKSBzY2FsZVkoMSkgdHJhbnNsYXRlWCgwKSB0cmFuc2xhdGVZKDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKSBzY2FsZVkoMSkgdHJhbnNsYXRlWCgwKSB0cmFuc2xhdGVZKDApO1xcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcXG59XFxuLnEtZmFiLW9wZW5lZCAucS1mYWItaWNvbiB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMTgwZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAxODBkZWcpO1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtZmFiLW9wZW5lZCAucS1mYWItYWN0aXZlLWljb24ge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDBkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDBkZWcpO1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLnEtZmFiLWljb24sXFxuLnEtZmFiLWFjdGl2ZS1pY29uIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjRzO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjRzO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzLCB0cmFuc2Zvcm0gMC40cztcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cywgdHJhbnNmb3JtIDAuNHMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNHM7XFxufVxcbi5xLWZhYi1pY29uIHtcXG4gIG9wYWNpdHk6IDE7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMGRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMGRlZyk7XFxufVxcbi5xLWZhYi1hY3RpdmUtaWNvbiB7XFxuICBvcGFjaXR5OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0xODBkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0xODBkZWcpO1xcbn1cXG4ucS1mYWItYWN0aW9ucyB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBvcGFjaXR5OiAwO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbjtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4ucS1mYWItYWN0aW9ucyAucS1idG4ge1xcbiAgbWFyZ2luOiA1cHg7XFxufVxcbi5xLWZhYi1yaWdodCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDAuNCkgc2NhbGVZKDAuNCkgdHJhbnNsYXRlWCgtMTAwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuNCkgc2NhbGVZKDAuNCkgdHJhbnNsYXRlWCgtMTAwJSk7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAxMjAlO1xcbn1cXG4ucS1mYWItbGVmdCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDAuNCkgc2NhbGVZKDAuNCkgdHJhbnNsYXRlWCgxMDAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMC40KSBzY2FsZVkoMC40KSB0cmFuc2xhdGVYKDEwMCUpO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgcmlnaHQ6IDEyMCU7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2U7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbn1cXG4ucS1mYWItdXAge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgwLjQpIHNjYWxlWSgwLjQpIHRyYW5zbGF0ZVkoMTAwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuNCkgc2NhbGVZKDAuNCkgdHJhbnNsYXRlWSgxMDAlKTtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2U7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICBib3R0b206IDEyMCU7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxufVxcbi5xLWZhYi1kb3duIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoMC40KSBzY2FsZVkoMC40KSB0cmFuc2xhdGVZKC0xMDAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMC40KSBzY2FsZVkoMC40KSB0cmFuc2xhdGVZKC0xMDAlKTtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgdG9wOiAxMjAlO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbn1cXG4ucS1maWVsZC1pY29uIHtcXG4gIHdpZHRoOiAyOHB4O1xcbiAgaGVpZ2h0OiAyOHB4O1xcbiAgbWluLXdpZHRoOiAyOHB4O1xcbiAgZm9udC1zaXplOiAyOHB4O1xcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xcbiAgY29sb3I6ICM5Nzk3OTc7XFxufVxcbi5xLWZpZWxkLWxhYmVsIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcXG4gIGNvbG9yOiAjOTc5Nzk3O1xcbn1cXG4ucS1maWVsZC1sYWJlbC1pbm5lciB7XFxuICBtaW4taGVpZ2h0OiAyOHB4O1xcbn1cXG4ucS1maWVsZC1sYWJlbC1oaW50IHtcXG4gIHBhZGRpbmctbGVmdDogOHB4O1xcbn1cXG4ucS1maWVsZC1ib3R0b20ge1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgcGFkZGluZy10b3A6IDhweDtcXG4gIGNvbG9yOiAjOTc5Nzk3O1xcbn1cXG4ucS1maWVsZC1uby1pbnB1dCAucS1maWVsZC1ib3R0b20ge1xcbiAgbWFyZ2luLXRvcDogOHB4O1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLWZpZWxkLWNvdW50ZXIge1xcbiAgY29sb3I6ICM5Nzk3OTc7XFxuICBwYWRkaW5nLWxlZnQ6IDhweDtcXG59XFxuLnEtZmllbGQtZGFyayAucS1maWVsZC1sYWJlbCxcXG4ucS1maWVsZC1kYXJrIC5xLWZpZWxkLWljb24sXFxuLnEtZmllbGQtZGFyayAucS1maWVsZC1jb3VudGVyLFxcbi5xLWZpZWxkLWRhcmsgLnEtZmllbGQtYm90dG9tIHtcXG4gIGNvbG9yOiAjYTdhN2E3O1xcbn1cXG4ucS1maWVsZC1kYXJrIC5xLWZpZWxkLW5vLWlucHV0IC5xLWZpZWxkLWJvdHRvbSB7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgIzk3OTc5NztcXG59XFxuLnEtZmllbGQtd2l0aC1lcnJvciAucS1maWVsZC1pY29uLFxcbi5xLWZpZWxkLXdpdGgtZXJyb3IgLnEtZmllbGQtbGFiZWwsXFxuLnEtZmllbGQtd2l0aC1lcnJvciAucS1maWVsZC1ib3R0b20ge1xcbiAgY29sb3I6ICNkYjI4Mjg7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1uZWdhdGl2ZSk7XFxufVxcbi5xLWZpZWxkLXdpdGgtZXJyb3IgLnEtZmllbGQtbm8taW5wdXQgLnEtZmllbGQtYm90dG9tIHtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGIyODI4O1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXEtY29sb3ItbmVnYXRpdmUpO1xcbn1cXG4ucS1maWVsZC13aXRoLXdhcm5pbmcgLnEtZmllbGQtaWNvbixcXG4ucS1maWVsZC13aXRoLXdhcm5pbmcgLnEtZmllbGQtbGFiZWwsXFxuLnEtZmllbGQtd2l0aC13YXJuaW5nIC5xLWZpZWxkLWJvdHRvbSB7XFxuICBjb2xvcjogI2YyYzAzNztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXdhcm5pbmcpO1xcbn1cXG4ucS1maWVsZC13aXRoLXdhcm5pbmcgLnEtZmllbGQtbm8taW5wdXQgLnEtZmllbGQtYm90dG9tIHtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZjJjMDM3O1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXEtY29sb3Itd2FybmluZyk7XFxufVxcbi5xLWZpZWxkLW1hcmdpbiB7XFxuICBtYXJnaW4tdG9wOiA1cHg7XFxufVxcbi5xLWZpZWxkLWZsb2F0aW5nIC5xLWZpZWxkLW1hcmdpbiB7XFxuICBtYXJnaW4tdG9wOiAyM3B4O1xcbn1cXG4ucS1maWVsZC1uby1pbnB1dCAucS1maWVsZC1tYXJnaW4ge1xcbiAgbWFyZ2luLXRvcDogM3B4O1xcbn1cXG4ucS1maWVsZC1jb250ZW50IC5xLWlmLnEtaWYtaGFzLWxhYmVsOm5vdCgucS1pZi1zdGFuZGFyZCkge1xcbiAgbWFyZ2luLXRvcDogOXB4O1xcbn1cXG4ucS1maWVsZC1jb250ZW50IC5xLWlmLXN0YW5kYXJkOm5vdCgucS1pZi1oYXMtbGFiZWwpIHtcXG4gIHBhZGRpbmctdG9wOiA2cHg7XFxufVxcbi5xLWZpZWxkLWNvbnRlbnQgLnEtb3B0aW9uLWdyb3VwIHtcXG4gIHBhZGRpbmctdG9wOiAwO1xcbn1cXG4ucS1maWVsZC1uby1pbnB1dCAucS1maWVsZC1jb250ZW50IHtcXG4gIHBhZGRpbmctdG9wOiA2cHg7XFxufVxcbi5xLWZpZWxkLXZlcnRpY2FsOm5vdCgucS1maWVsZC1uby1sYWJlbCkgLnEtZmllbGQtbWFyZ2luIHtcXG4gIG1hcmdpbi10b3A6IDA7XFxufVxcbi5xLWZpZWxkLXZlcnRpY2FsOm5vdCgucS1maWVsZC1uby1sYWJlbCkgLnEtaWYtc3RhbmRhcmQ6bm90KC5xLWlmLWhhcy1sYWJlbCkge1xcbiAgcGFkZGluZy10b3A6IDA7XFxufVxcbi5xLWZpZWxkLXZlcnRpY2FsOm5vdCgucS1maWVsZC1uby1sYWJlbCkgLnEtaWYucS1pZi1oYXMtbGFiZWw6bm90KC5xLWlmLXN0YW5kYXJkKSB7XFxuICBtYXJnaW4tdG9wOiAwcHg7XFxufVxcbi5xLWZpZWxkLXZlcnRpY2FsLnEtZmllbGQtbm8tbGFiZWwgLnEtZmllbGQtbGFiZWwge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7XFxuICAucS1maWVsZC1yZXNwb25zaXZlOm5vdCgucS1maWVsZC1uby1sYWJlbCkgLnEtZmllbGQtbWFyZ2luIHtcXG4gICAgbWFyZ2luLXRvcDogMDtcXG4gIH1cXG4gIC5xLWZpZWxkLXJlc3BvbnNpdmU6bm90KC5xLWZpZWxkLW5vLWxhYmVsKSAucS1pZi1zdGFuZGFyZDpub3QoLnEtaWYtaGFzLWxhYmVsKSB7XFxuICAgIHBhZGRpbmctdG9wOiAwO1xcbiAgfVxcbiAgLnEtZmllbGQtcmVzcG9uc2l2ZTpub3QoLnEtZmllbGQtbm8tbGFiZWwpIC5xLWlmLnEtaWYtaGFzLWxhYmVsOm5vdCgucS1pZi1zdGFuZGFyZCkge1xcbiAgICBtYXJnaW4tdG9wOiAwcHg7XFxuICB9XFxuICAucS1maWVsZC1yZXNwb25zaXZlLnEtZmllbGQtbm8tbGFiZWwgLnEtZmllbGQtbGFiZWwge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgfVxcbn1cXG4ucS1pbm5lci1sb2FkaW5nIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC42KTtcXG59XFxuLnEtaW5uZXItbG9hZGluZy5kYXJrIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC40KTtcXG59XFxuLnEtaWYsXFxuLnEtaWY6YmVmb3JlLFxcbi5xLWlmLWxhYmVsLFxcbi5xLWlmLWFkZG9uLFxcbi5xLWZpZWxkLWljb24sXFxuLnEtZmllbGQtbGFiZWwsXFxuLnEtaWYtY29udHJvbCxcXG4ucS1maWVsZC1ib3R0b20ge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpLCBkaXNwbGF5IDBzIDBzO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSwgZGlzcGxheSAwcyAwcztcXG59XFxuLnEtaWYucS1pZi1oaWRlLXVuZGVybGluZTpiZWZvcmUsXFxuLnEtaWYucS1pZi1pbnZlcnRlZDpiZWZvcmUsXFxuLnEtaWYucS1pZi1oaWRlLXVuZGVybGluZTphZnRlcixcXG4ucS1pZi5xLWlmLWludmVydGVkOmFmdGVyIHtcXG4gIGNvbnRlbnQ6IG5vbmU7XFxufVxcbi5xLWlmLWludmVydGVkIHtcXG4gIHBhZGRpbmctbGVmdDogOHB4O1xcbiAgcGFkZGluZy1yaWdodDogOHB4O1xcbn1cXG4ucS1pZi1pbnZlcnRlZCAucS1pZi1pbm5lciB7XFxuICBtYXJnaW4tdG9wOiA3cHg7XFxuICBtYXJnaW4tYm90dG9tOiA3cHg7XFxufVxcbi5xLWlmLWludmVydGVkLnEtaWYtaGFzLWxhYmVsIC5xLWlmLWlubmVyIHtcXG4gIG1hcmdpbi10b3A6IDI1cHg7XFxufVxcbi5xLWlmOmJlZm9yZSxcXG4ucS1pZjphZnRlciB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3JkZXI6IDFweCBoaWRkZW4gY3VycmVudENvbG9yO1xcbiAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgY29udGVudDogJyc7XFxufVxcbi5xLWlmOmJlZm9yZSB7XFxuICBjb2xvcjogI2JkYmRiZDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWxpZ2h0KTtcXG59XFxuLnEtaWY6YWZ0ZXIge1xcbiAgYm9yZGVyLXdpZHRoOiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyIDA7XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXIgMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xcbn1cXG4ucS1pZjpub3QoLnEtaWYtZGlzYWJsZWQpOm5vdCgucS1pZi1lcnJvcik6bm90KC5xLWlmLXdhcm5pbmcpOmhvdmVyOmJlZm9yZSxcXG4ucS1pZi5xLWlmLXJlYWRvbmx5Om5vdCgucS1pZi1lcnJvcik6bm90KC5xLWlmLXdhcm5pbmcpOmFmdGVyIHtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1pZi1kYXJrLnEtaWY6bm90KC5xLWlmLWRpc2FibGVkKTpub3QoLnEtaWYtZXJyb3IpOm5vdCgucS1pZi13YXJuaW5nKTpob3ZlcjpiZWZvcmUsXFxuLnEtaWYtZGFyay5xLWlmLnEtaWYtcmVhZG9ubHk6bm90KC5xLWlmLWVycm9yKTpub3QoLnEtaWYtd2FybmluZyk6YWZ0ZXIge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLWlmLWZvY3VzZWQ6YWZ0ZXIge1xcbiAgYm9yZGVyLXdpZHRoOiAycHg7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDEpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYm9yZGVyLWxlZnQtd2lkdGggMHMgMC40NXMsIGJvcmRlci1yaWdodC13aWR0aCAwcyAwLjQ1cywgLXdlYmtpdC10cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWxlZnQtd2lkdGggMHMgMC40NXMsIGJvcmRlci1yaWdodC13aWR0aCAwcyAwLjQ1cywgLXdlYmtpdC10cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSwgYm9yZGVyLWxlZnQtd2lkdGggMHMgMC40NXMsIGJvcmRlci1yaWdodC13aWR0aCAwcyAwLjQ1cztcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSksIGJvcmRlci1sZWZ0LXdpZHRoIDBzIDAuNDVzLCBib3JkZXItcmlnaHQtd2lkdGggMHMgMC40NXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG59XFxuLnEtaWYge1xcbiAgb3V0bGluZTogMDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXG59XFxuLnEtaWYgLnEtaWYtaW5uZXIge1xcbiAgbWluLWhlaWdodDogMjRweDtcXG59XFxuLnEtaWYtc3RhbmRhcmQge1xcbiAgcGFkZGluZy10b3A6IDdweDtcXG4gIHBhZGRpbmctYm90dG9tOiA3cHg7XFxufVxcbi5xLWlmLXN0YW5kYXJkLnEtaWYtaGFzLWxhYmVsIHtcXG4gIHBhZGRpbmctdG9wOiAyNXB4O1xcbn1cXG4ucS1pZi1oaWRlLXVuZGVybGluZSB7XFxuICBwYWRkaW5nLXRvcDogMDtcXG4gIHBhZGRpbmctYm90dG9tOiAwO1xcbn1cXG4ucS1pZi1oaWRlLXVuZGVybGluZS5xLWlmLWhhcy1sYWJlbCB7XFxuICBwYWRkaW5nLXRvcDogMThweDtcXG59XFxuLnEtaWYtc3RhbmRhcmQgLnEtaWYtbGFiZWwsXFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaWYtbGFiZWwge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XFxufVxcbi5xLWlmLXN0YW5kYXJkIC5xLWlmLWxhYmVsLnEtaWYtbGFiZWwtYWJvdmUsXFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaWYtbGFiZWwucS1pZi1sYWJlbC1hYm92ZSB7XFxuICBmb250LXNpemU6IDAuNzVyZW07XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xMDAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTEwMCUpO1xcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XFxufVxcbi5xLWlmLWludmVydGVkIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbn1cXG4ucS1pZi1pbnZlcnRlZCAucS1pZi1sYWJlbCB7XFxuICB0b3A6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTIxcHgpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjFweCk7XFxufVxcbi5xLWlmLWludmVydGVkIC5xLWlmLWxhYmVsLnEtaWYtbGFiZWwtYWJvdmUge1xcbiAgdG9wOiA0cHg7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xMjUlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTEyNSUpO1xcbn1cXG4ucS1pZi1pbnZlcnRlZCAucS1pbnB1dC10YXJnZXQge1xcbiAgY29sb3I6IGluaGVyaXQ7XFxufVxcbi5xLWlmLWZvY3VzZWQ6bm90KC5xLWlmLXJlYWRvbmx5KSAucS1pZi1sYWJlbCxcXG4ucS1pZi1mb2N1c2VkOm5vdCgucS1pZi1yZWFkb25seSkgLnEtaWYtYWRkb24sXFxuLnEtaWYtZm9jdXNlZDpub3QoLnEtaWYtcmVhZG9ubHkpIC5xLWlmLWNvbnRyb2wge1xcbiAgY29sb3I6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtaWYtd2FybmluZzpiZWZvcmUsXFxuLnEtaWYtd2FybmluZzphZnRlcixcXG4ucS1pZi13YXJuaW5nOm5vdCgucS1pZi1pbnZlcnRlZCkgLnEtaWYtbGFiZWwge1xcbiAgY29sb3I6ICNmMmMwMzc7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci13YXJuaW5nKTtcXG59XFxuLnEtaWYtd2FybmluZzpob3ZlcjpiZWZvcmUge1xcbiAgY29sb3I6ICNmOGRkOTM7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci13YXJuaW5nLWwpO1xcbn1cXG4ucS1pZi1lcnJvcjpiZWZvcmUsXFxuLnEtaWYtZXJyb3I6YWZ0ZXIsXFxuLnEtaWYtZXJyb3I6bm90KC5xLWlmLWludmVydGVkKSAucS1pZi1sYWJlbCB7XFxuICBjb2xvcjogI2RiMjgyODtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLW5lZ2F0aXZlKTtcXG59XFxuLnEtaWYtZXJyb3I6aG92ZXI6YmVmb3JlIHtcXG4gIGNvbG9yOiAjZWM4YjhiO1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbmVnYXRpdmUtbCk7XFxufVxcbi5xLWlmLWRpc2FibGVkIHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICBvcGFjaXR5OiAwLjY7XFxufVxcbi5xLWlmLWRpc2FibGVkIC5xLWlmLWxhYmVsLFxcbi5xLWlmLWRpc2FibGVkIC5xLWlmLWNvbnRyb2wsXFxuLnEtaWYtZGlzYWJsZWQgLnEtaW5wdXQtdGFyZ2V0LFxcbi5xLWlmLWRpc2FibGVkIC5xLWNoaXAge1xcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG59XFxuLnEtaWYtZGFyazpub3QoLnEtaWYtaW52ZXJ0ZWQtbGlnaHQpIC5xLWlucHV0LXRhcmdldDpub3QoLnEtaW5wdXQtdGFyZ2V0LXBsYWNlaG9sZGVyKSB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtaWYtZm9jdXNhYmxlIHtcXG4gIG91dGxpbmU6IDA7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLWlmLWxhYmVsLFxcbi5xLWlucHV0LXRhcmdldCxcXG4ucS1pbnB1dC10YXJnZXQtcGxhY2Vob2xkZXIge1xcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XFxufVxcbi5xLWlmLWNvbnRyb2wge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbiAgd2lkdGg6IDI0cHg7XFxuICBoZWlnaHQ6IDI0cHg7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLWlmLWNvbnRyb2wgKyAucS1pZi1jb250cm9sLFxcbi5xLWlmLWNvbnRyb2wgKyAucS1pZi1pbm5lcixcXG4ucS1pZi1pbm5lciArIC5xLWlmLWNvbnRyb2wge1xcbiAgbWFyZ2luLWxlZnQ6IDRweDtcXG59XFxuLnEtaWYtY29udHJvbDpob3ZlciB7XFxuICBvcGFjaXR5OiAwLjc7XFxufVxcbi5xLWlmLWJhc2VsaW5lIHtcXG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbiAgd2lkdGg6IDA7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5xLWlmLWxhYmVsLWlubmVyLFxcbi5xLWlmLWxhYmVsLXNwYWNlcixcXG4ucS1pZi1iYXNlbGluZSB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxufVxcbi5xLWlmLWxhYmVsLXNwYWNlciB7XFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxuICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxufVxcbi5xLWlmLWxhYmVsIHtcXG4gIGN1cnNvcjogdGV4dDtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5xLWlmLWxhYmVsLFxcbi5xLWlmLWFkZG9uLFxcbi5xLWlmLWNvbnRyb2wge1xcbiAgY29sb3I6ICM5Nzk3OTc7XFxuICBsaW5lLWhlaWdodDogMjRweDtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaWYtbGFiZWwsXFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaWYtYWRkb24sXFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaWYtY29udHJvbCB7XFxuICBjb2xvcjogI2RkZDtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQtbGlnaHQgLnEtaWYtbGFiZWwsXFxuLnEtaWYtaW52ZXJ0ZWQtbGlnaHQgLnEtaWYtYWRkb24sXFxuLnEtaWYtaW52ZXJ0ZWQtbGlnaHQgLnEtaWYtY29udHJvbCB7XFxuICBjb2xvcjogIzY1NjU2NTtcXG59XFxuLnEtaWYtYWRkb24ge1xcbiAgb3BhY2l0eTogMDtcXG4gIGN1cnNvcjogaW5oZXJpdDtcXG59XFxuLnEtaWYtYWRkb246bm90KC5xLWlmLWFkZG9uLXZpc2libGUpIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLWlmLWFkZG9uLWxlZnQge1xcbiAgcGFkZGluZy1yaWdodDogMXB4O1xcbn1cXG4ucS1pZi1hZGRvbi1yaWdodCB7XFxuICBwYWRkaW5nLWxlZnQ6IDFweDtcXG59XFxuLnEtaWYtYWRkb24tdmlzaWJsZSB7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4ucS1pbnB1dC10YXJnZXQsXFxuLnEtaW5wdXQtc2hhZG93IHtcXG4gIGJvcmRlcjogMDtcXG4gIG91dGxpbmU6IDA7XFxuICBwYWRkaW5nOiAwO1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICBsaW5lLWhlaWdodDogMjRweDtcXG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcXG4gIHJlc2l6ZTogbm9uZTtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLWlucHV0LXRhcmdldDotd2Via2l0LWF1dG9maWxsIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHdlYmtpdC1hdXRvZmlsbC1vbjtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcXG59XFxuLnEtaW5wdXQtdGFyZ2V0LnEtaW5wdXQtYXV0b2ZpbGw6bm90KDotd2Via2l0LWF1dG9maWxsKSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB3ZWJraXQtYXV0b2ZpbGwtb2ZmO1xcbiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xcbn1cXG4ucS1pbnB1dC10YXJnZXQ6Oi1tcy1jbGVhcixcXG4ucS1pbnB1dC10YXJnZXQ6Oi1tcy1yZXZlYWwge1xcbiAgZGlzcGxheTogbm9uZTtcXG4gIHdpZHRoOiAwO1xcbiAgaGVpZ2h0OiAwO1xcbn1cXG4ucS1pbnB1dC10YXJnZXQ6aW52YWxpZCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IGluaGVyaXQ7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IGluaGVyaXQ7XFxufVxcbi5xLWlucHV0LXRhcmdldDpiZWZvcmUge1xcbiAgY29udGVudDogJ3wnO1xcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XFxuICB3aWR0aDogMDtcXG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuaW5wdXQucS1pbnB1dC10YXJnZXQge1xcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcXG4gIGhlaWdodDogMjRweDtcXG4gIG91dGxpbmU6IDA7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XFxufVxcbi5xLWlmIC5xLWlucHV0LXRhcmdldC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogIzk3OTc5NyAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZiAucS1pbnB1dC10YXJnZXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICM5Nzk3OTcgIWltcG9ydGFudDtcXG59XFxuLnEtaWYgLnEtaW5wdXQtdGFyZ2V0OjotbW96LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmIC5xLWlucHV0LXRhcmdldDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICM5Nzk3OTcgIWltcG9ydGFudDtcXG59XFxuLnEtaWYtZGFyayAucS1pbnB1dC10YXJnZXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICM5Nzk3OTcgIWltcG9ydGFudDtcXG59XFxuLnEtaWYtZGFyayAucS1pbnB1dC10YXJnZXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICM5Nzk3OTcgIWltcG9ydGFudDtcXG59XFxuLnEtaWYtZGFyayAucS1pbnB1dC10YXJnZXQ6Oi1tb3otcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICM5Nzk3OTcgIWltcG9ydGFudDtcXG59XFxuLnEtaWYtZGFyayAucS1pbnB1dC10YXJnZXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmLWludmVydGVkOm5vdCgucS1pZi1pbnZlcnRlZC1saWdodCkgLnEtaW5wdXQtdGFyZ2V0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjZGRkICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmLWludmVydGVkOm5vdCgucS1pZi1pbnZlcnRlZC1saWdodCkgLnEtaW5wdXQtdGFyZ2V0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjZGRkICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmLWludmVydGVkOm5vdCgucS1pZi1pbnZlcnRlZC1saWdodCkgLnEtaW5wdXQtdGFyZ2V0OjotbW96LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjZGRkICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmLWludmVydGVkOm5vdCgucS1pZi1pbnZlcnRlZC1saWdodCkgLnEtaW5wdXQtdGFyZ2V0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogI2RkZCAhaW1wb3J0YW50O1xcbn1cXG4ucS1pbnB1dC1zaGFkb3cge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgaGVpZ2h0OiBhdXRvO1xcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcXG59XFxuLnEtanVtYm90cm9uIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHBhZGRpbmc6IDJyZW0gMXJlbTtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XFxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcXG59XFxuLnEtanVtYm90cm9uLWRhcmsge1xcbiAgY29sb3I6ICNmZmY7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzU3NTc1O1xcbn1cXG4ucS1qdW1ib3Ryb24tZGFyayBoci5xLWhyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4zNik7XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgLnEtanVtYm90cm9uIHtcXG4gICAgcGFkZGluZzogNHJlbSAycmVtO1xcbiAgfVxcbn1cXG4ucS1rbm9iLFxcbi5xLWtub2IgPiBkaXYge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbn1cXG4ucS1rbm9iID4gZGl2IHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG4ucS1rbm9iLWxhYmVsIHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxufVxcbi5xLWtub2ItbGFiZWwgaSB7XFxuICBmb250LXNpemU6IDEzMCU7XFxufVxcbi5xLWxheW91dCB7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xcbn1cXG4ucS1sYXlvdXQtY29udGFpbmVyIC5xLWxheW91dCB7XFxuICBtaW4taGVpZ2h0OiAxMDAlO1xcbn1cXG4ucS1sYXlvdXQtY29udGFpbmVyID4gZGl2IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXG59XFxuLnEtbGF5b3V0LWNvbnRhaW5lciA+IGRpdiA+IGRpdiB7XFxuICBtaW4taGVpZ2h0OiAwO1xcbiAgbWF4LWhlaWdodDogMTAwJTtcXG59XFxuLnEtbGF5b3V0LWhlYWRlciB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDhweCByZ2JhKDAsMCwwLDAuMiksIDAgM3B4IDRweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAzcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA4cHggcmdiYSgwLDAsMCwwLjIpLCAwIDNweCA0cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggM3B4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtbGF5b3V0LWhlYWRlci1oaWRkZW4ge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTExMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTExMCUpO1xcbn1cXG4ucS1sYXlvdXQtZm9vdGVyIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMXB4IDhweCByZ2JhKDAsMCwwLDAuMiksIDAgLTNweCA0cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTFweCA4cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0zcHggNHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAzcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS1sYXlvdXQtZm9vdGVyLWhpZGRlbiB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMTAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDExMCUpO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICB6LWluZGV4OiAxMDAwO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLm9uLXRvcCB7XFxuICB6LWluZGV4OiAzMDAwO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLWRlbGltaXRlciB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCA1cHggOHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMXB4IDE0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAzcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIDVweCA4cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAxcHggMTRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLWxlZnQge1xcbiAgbGVmdDogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1yaWdodCB7XFxuICByaWdodDogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XFxufVxcbi5xLWxheW91dCxcXG4ucS1sYXlvdXQtaGVhZGVyLFxcbi5xLWxheW91dC1mb290ZXIsXFxuLnEtbGF5b3V0LXBhZ2Uge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4ucS1sYXlvdXQtaGVhZGVyLFxcbi5xLWxheW91dC1mb290ZXIge1xcbiAgei1pbmRleDogMjAwMDtcXG59XFxuLnEtbGF5b3V0LWJhY2tkcm9wIHtcXG4gIHotaW5kZXg6IDI5OTkgIWltcG9ydGFudDtcXG4gIHdpbGwtY2hhbmdlOiBiYWNrZ3JvdW5kLWNvbG9yO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLW1pbmkge1xcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtaXRlbSxcXG4ucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtaXRlbS1zaWRlIHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtbWluaS1kcmF3ZXItaGlkZSxcXG4ucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtY29sbGFwc2libGUtaW5uZXIgPiBkaXY6bGFzdC1vZi10eXBlLFxcbi5xLWxheW91dC1kcmF3ZXItbWluaSAucS1saXN0LWhlYWRlcixcXG4ucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtaXRlbS1tYWluLFxcbi5xLWxheW91dC1kcmF3ZXItbWluaSAucS1pdGVtLXNpZGUtcmlnaHQge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1ub3JtYWwgLnEtbWluaS1kcmF3ZXItb25seSB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLW1vYmlsZSAucS1taW5pLWRyYXdlci1vbmx5LFxcbi5xLWxheW91dC1kcmF3ZXItbW9iaWxlIC5xLW1pbmktZHJhd2VyLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1vcGVuZXIge1xcbiAgei1pbmRleDogMjAwMTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIHdpZHRoOiAxNXB4O1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG59XFxuLnEtcGFnZS1zdGlja3ktc2hyaW5rIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4ucS1wYWdlLXN0aWNreS1zaHJpbmsgPiBzcGFuIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xcbn1cXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci1wYWRkaW5nIC5xLWxheW91dCAucS1sYXlvdXQtaGVhZGVyID4gLnEtdG9vbGJhcjpudGgtY2hpbGQoMiksXFxuYm9keS5xLWlvcy1zdGF0dXNiYXItcGFkZGluZyAucS1sYXlvdXQgLnEtbGF5b3V0LWhlYWRlciA+IC5xLXRhYnM6bnRoLWNoaWxkKDIpIC5xLXRhYnMtaGVhZCxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci1wYWRkaW5nIC5xLWxheW91dCAucS1sYXlvdXQtZHJhd2VyLnRvcC1wYWRkaW5nLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXBhZGRpbmcgLm1vZGFsOm5vdCgubWluaW1pemVkKSAucS1sYXlvdXQtaGVhZGVyID4gLnEtdG9vbGJhcjpudGgtY2hpbGQoMSkge1xcbiAgcGFkZGluZy10b3A6IDIwcHg7XFxuICBtaW4taGVpZ2h0OiA3MHB4O1xcbn1cXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLWxheW91dCAucS1sYXlvdXQtaGVhZGVyID4gLnEtdG9vbGJhcjpudGgtY2hpbGQoMiksXFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1sYXlvdXQgLnEtbGF5b3V0LWhlYWRlciA+IC5xLXRhYnM6bnRoLWNoaWxkKDIpIC5xLXRhYnMtaGVhZCxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLWxheW91dCAucS1sYXlvdXQtZHJhd2VyLnRvcC1wYWRkaW5nLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLm1vZGFsOm5vdCgubWluaW1pemVkKSAucS1sYXlvdXQtaGVhZGVyID4gLnEtdG9vbGJhcjpudGgtY2hpbGQoMSkge1xcbiAgcGFkZGluZy10b3A6IGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKTtcXG59XFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1sYXlvdXQgLnEtbGF5b3V0LWZvb3RlciA+IC5xLXRvb2xiYXI6bGFzdC1jaGlsZCxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLWxheW91dCAucS1sYXlvdXQtZm9vdGVyID4gLnEtdGFiczpsYXN0LWNoaWxkIC5xLXRhYnMtaGVhZCxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLWxheW91dCAucS1sYXlvdXQtZHJhd2VyLnRvcC1wYWRkaW5nLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLm1vZGFsOm5vdCgubWluaW1pemVkKSAucS1sYXlvdXQtZm9vdGVyID4gLnEtdG9vbGJhcjpsYXN0LWNoaWxkIHtcXG4gIHBhZGRpbmctYm90dG9tOiBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSk7XFxuICBtaW4taGVpZ2h0OiA3MHB4O1xcbn1cXG4ucS1sYXlvdXQtYW5pbWF0ZSAucS1sYXlvdXQtdHJhbnNpdGlvbiB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjEycyBlYXNlLWluICFpbXBvcnRhbnQ7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4xMnMgZWFzZS1pbiAhaW1wb3J0YW50O1xcbn1cXG4ucS1ib2R5LWRyYXdlci10b2dnbGUge1xcbiAgb3ZlcmZsb3cteDogaGlkZGVuICFpbXBvcnRhbnQ7XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgLmxheW91dC1wYWRkaW5nIHtcXG4gICAgcGFkZGluZzogMS41cmVtIDAuNXJlbTtcXG4gIH1cXG4gIC5sYXlvdXQtcGFkZGluZy5ob3Jpem9udGFsIHtcXG4gICAgcGFkZGluZzogMCAwLjVyZW07XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XFxuICAubGF5b3V0LXBhZGRpbmcge1xcbiAgICBwYWRkaW5nOiAxLjVyZW0gMnJlbTtcXG4gICAgbWFyZ2luOiBhdXRvO1xcbiAgfVxcbiAgLmxheW91dC1wYWRkaW5nLmhvcml6b250YWwge1xcbiAgICBwYWRkaW5nOiAwIDJyZW07XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xcbiAgLmxheW91dC1wYWRkaW5nIHtcXG4gICAgcGFkZGluZzogMi41cmVtIDNyZW07XFxuICAgIG1hcmdpbjogYXV0bztcXG4gIH1cXG4gIC5sYXlvdXQtcGFkZGluZy5ob3Jpem9udGFsIHtcXG4gICAgcGFkZGluZzogMCAzcmVtO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XFxuICAubGF5b3V0LXBhZGRpbmcge1xcbiAgICBwYWRkaW5nOiAzcmVtIDRyZW07XFxuICAgIG1hcmdpbjogYXV0bztcXG4gIH1cXG4gIC5sYXlvdXQtcGFkZGluZy5ob3Jpem9udGFsIHtcXG4gICAgcGFkZGluZzogMCA0cmVtO1xcbiAgfVxcbn1cXG4ucS1pdGVtLXN0YW1wIHtcXG4gIGZvbnQtc2l6ZTogMC44cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDAuOHJlbTtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICBtYXJnaW46IDAuM3JlbSAwO1xcbn1cXG4ucS1pdGVtLXNpZGUge1xcbiAgY29sb3I6ICM3MzczNzM7XFxuICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcXG4gICAgICAgICAgZmxleDogMCAwIGF1dG87XFxuICBtaW4td2lkdGg6IDM4cHg7XFxufVxcbi5xLWl0ZW0tc2lkZS1yaWdodCB7XFxuICB0ZXh0LWFsaWduOiByaWdodDtcXG59XFxuLnEtaXRlbS1hdmF0YXIsXFxuLnEtaXRlbS1hdmF0YXIgaW1nIHtcXG4gIHdpZHRoOiAzOHB4O1xcbiAgaGVpZ2h0OiAzOHB4O1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbn1cXG4ucS1pdGVtLWxldHRlcixcXG4ucS1pdGVtLWljb24ge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbn1cXG4ucS1pdGVtLWludmVydGVkIHtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZDogIzczNzM3MztcXG4gIGhlaWdodDogMzhweDtcXG4gIHdpZHRoOiAzOHB4O1xcbn1cXG4ucS1pdGVtLWludmVydGVkLFxcbi5xLWl0ZW0taW52ZXJ0ZWQgLnEtaWNvbiB7XFxuICBmb250LXNpemU6IDIwcHg7XFxufVxcbi5xLWl0ZW0tbWFpbiB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICAgICAgZmxleDogMSAxIGF1dG87XFxuICBtaW4td2lkdGg6IDA7XFxufVxcbi5xLWl0ZW0tbWFpbi1pbnNldCB7XFxuICBtYXJnaW4tbGVmdDogNDhweDtcXG59XFxuLnEtaXRlbS1sYWJlbCB7XFxuICBsaW5lLWhlaWdodDogMS4yO1xcbn1cXG4ucS1pdGVtLWxhYmVsID4gc3BhbiB7XFxuICBjb2xvcjogIzc1NzU3NTtcXG59XFxuLnEtaXRlbS1zdWJsYWJlbCB7XFxuICBjb2xvcjogIzc1NzU3NTtcXG4gIGZvbnQtc2l6ZTogOTAlO1xcbiAgbWFyZ2luLXRvcDogMC4ycmVtO1xcbn1cXG4ucS1pdGVtLXN1YmxhYmVsID4gc3BhbiB7XFxuICBmb250LXdlaWdodDogNTAwO1xcbn1cXG4ucS1pdGVtLXNlY3Rpb24gKyAucS1pdGVtLXNlY3Rpb24ge1xcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XFxufVxcbi5xLWl0ZW0ge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBmb250LXNpemU6IDFyZW07XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgcGFkZGluZzogOHB4IDE2cHg7XFxuICBtaW4taGVpZ2h0OiA0MHB4O1xcbn1cXG4ucS1pdGVtLmFjdGl2ZSxcXG4ucS1pdGVtLnJvdXRlci1saW5rLWFjdGl2ZSxcXG4ucS1pdGVtOmZvY3VzIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMTg5LDE4OSwxODksMC40KTtcXG59XFxuLnEtaXRlbTpmb2N1cyB7XFxuICBvdXRsaW5lOiAwO1xcbn1cXG4ucS1pdGVtLWltYWdlIHtcXG4gIG1pbi13aWR0aDogMTE0cHg7XFxuICBtYXgtd2lkdGg6IDExNHB4O1xcbiAgbWF4LWhlaWdodDogMTE0cHg7XFxufVxcbi5xLWxpc3QtbXVsdGlsaW5lID4gLnEtaXRlbSxcXG4ucS1pdGVtLW11bHRpbGluZSB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogc3RhcnQ7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXG59XFxuLnEtbGlzdC1saW5rID4gLnEtaXRlbSxcXG4ucS1pdGVtLWxpbmsge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS1saXN0LWhpZ2hsaWdodCA+IC5xLWl0ZW06aG92ZXIsXFxuLnEtaXRlbS1oaWdobGlnaHQ6aG92ZXIsXFxuLnEtbGlzdC1saW5rID4gLnEtaXRlbTpob3ZlcixcXG4ucS1pdGVtLWxpbms6aG92ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgxODksMTg5LDE4OSwwLjUpO1xcbn1cXG4ucS1saXN0LXNlcGFyYXRvciA+IC5xLWl0ZW0tZGl2aXNpb24gKyAucS1pdGVtLWRpdmlzaW9uLFxcbi5xLWl0ZW0tZGl2aXNpb24gKyAucS1pdGVtLXNlcGFyYXRvciB7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2UwZTBlMDtcXG59XFxuLnEtbGlzdC1pbnNldC1zZXBhcmF0b3IgPiAucS1pdGVtLWRpdmlzaW9uICsgLnEtaXRlbS1kaXZpc2lvbjphZnRlcixcXG4ucS1pdGVtLWRpdmlzaW9uICsgLnEtaXRlbS1pbnNldC1zZXBhcmF0b3I6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGxlZnQ6IDY0cHg7XFxuICBoZWlnaHQ6IDFweDtcXG4gIGJhY2tncm91bmQ6ICNlMGUwZTA7XFxufVxcbi5xLWxpc3QtZGVuc2UgPiAucS1pdGVtLFxcbi5xLWl0ZW0tZGVuc2Uge1xcbiAgcGFkZGluZzogM3B4IDE2cHg7XFxuICBtaW4taGVpZ2h0OiA4cHg7XFxufVxcbi5xLWxpc3Qtc3BhcnNlID4gLnEtaXRlbSxcXG4ucS1pdGVtLXNwYXJzZSB7XFxuICBwYWRkaW5nOiAyMi40cHggMTZweDtcXG4gIG1pbi1oZWlnaHQ6IDU2cHg7XFxufVxcbi5xLWxpc3Qtc3RyaXBlZCA+IC5xLWl0ZW06bnRoLWNoaWxkKGV2ZW4pIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTg5LDE4OSwxODksMC42NSk7XFxufVxcbi5xLWxpc3Qtc3RyaXBlZC1vZGQgPiAucS1pdGVtOm50aC1jaGlsZChvZGQpIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTg5LDE4OSwxODksMC42NSk7XFxufVxcbi5xLWxpc3Qge1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcXG4gIHBhZGRpbmc6IDhweCAwO1xcbn1cXG4ucS1pdGVtLXNlcGFyYXRvci1jb21wb25lbnQge1xcbiAgbWFyZ2luOiA4cHggMDtcXG4gIGhlaWdodDogMXB4O1xcbiAgYm9yZGVyOiAwO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcXG59XFxuLnEtaXRlbS1zZXBhcmF0b3ItY29tcG9uZW50Omxhc3QtY2hpbGQge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtaXRlbS1zZXBhcmF0b3ItY29tcG9uZW50ICsgLnEtbGlzdC1oZWFkZXIge1xcbiAgbWFyZ2luLXRvcDogLThweDtcXG59XFxuLnEtaXRlbS1zZXBhcmF0b3ItaW5zZXQtY29tcG9uZW50IHtcXG4gIG1hcmdpbi1sZWZ0OiA2NHB4O1xcbn1cXG4ucS1saXN0LWhlYWRlciB7XFxuICBjb2xvcjogIzc1NzU3NTtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBsaW5lLWhlaWdodDogMThweDtcXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XFxuICBwYWRkaW5nOiAxNXB4IDE2cHg7XFxufVxcbi5xLWxpc3QtaGVhZGVyLWluc2V0IHtcXG4gIHBhZGRpbmctbGVmdDogNjRweDtcXG59XFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0tc2lkZSxcXG4ucS1pdGVtLWRhcmsgLnEtaXRlbS1zaWRlIHtcXG4gIGNvbG9yOiAjYmJiO1xcbn1cXG4ucS1saXN0LWRhcmsgLnEtaXRlbS1pbnZlcnRlZCxcXG4ucS1pdGVtLWRhcmsgLnEtaXRlbS1pbnZlcnRlZCB7XFxuICBjb2xvcjogIzAwMDtcXG4gIGJhY2tncm91bmQ6ICNiYmI7XFxufVxcbi5xLWxpc3QtZGFyayAucS1pdGVtLWxhYmVsID4gc3BhbixcXG4ucS1pdGVtLWRhcmsgLnEtaXRlbS1sYWJlbCA+IHNwYW4sXFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0tc3VibGFiZWwsXFxuLnEtaXRlbS1kYXJrIC5xLWl0ZW0tc3VibGFiZWwge1xcbiAgY29sb3I6ICNiZGJkYmQ7XFxufVxcbi5xLWxpc3QtZGFyayAucS1pdGVtLFxcbi5xLWl0ZW0tZGFyayAucS1pdGVtIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1saXN0LWRhcmsgLnEtaXRlbS5hY3RpdmUsXFxuLnEtaXRlbS1kYXJrIC5xLWl0ZW0uYWN0aXZlLFxcbi5xLWxpc3QtZGFyayAucS1pdGVtLnJvdXRlci1saW5rLWFjdGl2ZSxcXG4ucS1pdGVtLWRhcmsgLnEtaXRlbS5yb3V0ZXItbGluay1hY3RpdmUsXFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW06Zm9jdXMsXFxuLnEtaXRlbS1kYXJrIC5xLWl0ZW06Zm9jdXMge1xcbiAgYmFja2dyb3VuZDogcmdiYSgxMTcsMTE3LDExNywwLjIpO1xcbn1cXG4ucS1saXN0LWRhcmsge1xcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjMyKTtcXG59XFxuLnEtbGlzdC1kYXJrLnEtbGlzdC1zZXBhcmF0b3IgPiAucS1pdGVtLWRpdmlzaW9uICsgLnEtaXRlbS1kaXZpc2lvbixcXG4ucS1saXN0LWRhcmsgLnEtaXRlbS1kaXZpc2lvbiArIC5xLWl0ZW0tc2VwYXJhdG9yIHtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMzIpO1xcbn1cXG4ucS1saXN0LWRhcmsucS1saXN0LWluc2V0LXNlcGFyYXRvciA+IC5xLWl0ZW0tZGl2aXNpb24gKyAucS1pdGVtLWRpdmlzaW9uOmFmdGVyLFxcbi5xLWxpc3QtZGFyayAucS1pdGVtLWRpdmlzaW9uICsgLnEtaXRlbS1pbnNldC1zZXBhcmF0b3I6YWZ0ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjMyKTtcXG59XFxuLnEtbGlzdC1kYXJrLnEtbGlzdC1zdHJpcGVkID4gLnEtaXRlbTpudGgtY2hpbGQoZXZlbikge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMTcsMTE3LDExNywwLjQ1KTtcXG59XFxuLnEtbGlzdC1kYXJrLnEtbGlzdC1zdHJpcGVkLW9kZCA+IC5xLWl0ZW06bnRoLWNoaWxkKG9kZCkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMTcsMTE3LDExNywwLjQ1KTtcXG59XFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0tc2VwYXJhdG9yLWNvbXBvbmVudCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuMzIpO1xcbn1cXG4ucS1saXN0LWRhcmsgLnEtbGlzdC1oZWFkZXIge1xcbiAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC42NCk7XFxufVxcbi5xLWxpc3QtZGFyay5xLWxpc3QtaGlnaGxpZ2h0ID4gLnEtaXRlbTpob3ZlcixcXG4ucS1saXN0LWRhcmsgLnEtaXRlbS1oaWdobGlnaHQ6aG92ZXIsXFxuLnEtbGlzdC1kYXJrLnEtbGlzdC1saW5rID4gLnEtaXRlbTpob3ZlcixcXG4ucS1saXN0LWRhcmsgLnEtaXRlbS1saW5rOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMTE3LDExNywxMTcsMC4zKTtcXG59XFxuYm9keS53aXRoLWxvYWRpbmcge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnEtbG9hZGluZyB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNCk7XFxufVxcbi5xLWxvYWRpbmcgPiBkaXYge1xcbiAgbWFyZ2luOiA0MHB4IDIwcHggMDtcXG4gIG1heC13aWR0aDogNDUwcHg7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICB0ZXh0LXNoYWRvdzogMCAwIDdweCAjMDAwO1xcbn1cXG4ubW9kYWwtYmFja2Ryb3Age1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjQpO1xcbn1cXG4ubW9kYWwubWF4aW1pemVkIC5tb2RhbC1iYWNrZHJvcCB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ubW9kYWwtY29udGVudCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgd2lsbC1jaGFuZ2U6IHNjcm9sbC1wb3NpdGlvbjtcXG4gIG1pbi13aWR0aDogMjgwcHg7XFxuICBtYXgtaGVpZ2h0OiA4MHZoO1xcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XFxuICBvdXRsaW5lOiAwO1xcbn1cXG4ubW9kYWwge1xcbiAgei1pbmRleDogNTAwMDtcXG59XFxuLm1vZGFsLm1pbmltaXplZCAubW9kYWwtY29udGVudCB7XFxuICBtYXgtd2lkdGg6IDgwdnc7XFxuICBtYXgtaGVpZ2h0OiA4MHZoO1xcbn1cXG4ubW9kYWwubWF4aW1pemVkIC5tb2RhbC1jb250ZW50IHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgbWF4LWhlaWdodDogMTAwJTtcXG4gIGJvcmRlci1yYWRpdXM6IDA7XFxufVxcbi5tb2RhbC5tYXhpbWl6ZWQgLm1vZGFsLWNvbnRlbnQgLnEtbGF5b3V0LWNvbnRhaW5lciB7XFxuICBtaW4taGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50O1xcbn1cXG4ucS1tb2RhbC1lbnRlcixcXG4ucS1tb2RhbC1sZWF2ZS1hY3RpdmUge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAubW9kYWw6bm90KC5tYXhpbWl6ZWQpLnEtbW9kYWwtZW50ZXIgLm1vZGFsLWNvbnRlbnQge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4yKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XFxuICB9XFxuICAubW9kYWw6bm90KC5tYXhpbWl6ZWQpLnEtbW9kYWwtbGVhdmUtYWN0aXZlIC5tb2RhbC1jb250ZW50IHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuOCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xcbiAgfVxcbiAgLm1vZGFsLm1heGltaXplZC5xLW1vZGFsLWVudGVyIC5tb2RhbC1jb250ZW50LFxcbiAgLm1vZGFsLm1heGltaXplZC5xLW1vZGFsLWxlYXZlLWFjdGl2ZSAubW9kYWwtY29udGVudCB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwJSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwJSk7XFxuICB9XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgLnEtcmVzcG9uc2l2ZS1tb2RhbCB7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICB9XFxuICAubW9kYWw6bm90KC5taW5pbWl6ZWQpIC5tb2RhbC1jb250ZW50IHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xcbiAgICBib3JkZXItcmFkaXVzOiAwO1xcbiAgfVxcbiAgLm1vZGFsOm5vdCgubWluaW1pemVkKSAubW9kYWwtY29udGVudCAucS1sYXlvdXQtY29udGFpbmVyIHtcXG4gICAgbWluLWhlaWdodDogMTAwdmggIWltcG9ydGFudDtcXG4gIH1cXG4gIC5tb2RhbDpub3QoLm1pbmltaXplZCkucS1tb2RhbC1lbnRlciAubW9kYWwtY29udGVudCxcXG4gIC5tb2RhbDpub3QoLm1pbmltaXplZCkucS1tb2RhbC1sZWF2ZS1hY3RpdmUgLm1vZGFsLWNvbnRlbnQge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMCUpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMCUpO1xcbiAgfVxcbiAgLm1vZGFsLm1pbmltaXplZC5xLW1vZGFsLWVudGVyIC5tb2RhbC1jb250ZW50IHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMik7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xcbiAgfVxcbiAgLm1vZGFsLm1pbmltaXplZC5xLW1vZGFsLWxlYXZlLWFjdGl2ZSAubW9kYWwtY29udGVudCB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC44KTtcXG4gIH1cXG59XFxuLnEtbWF4aW1pemVkLW1vZGFsIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5tb2RhbCxcXG4ubW9kYWwtY29udGVudCB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XFxufVxcbi5tb2RhbC1oZWFkZXIge1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG4gIHBhZGRpbmc6IDI0cHggMjRweCAxMHB4IDI0cHg7XFxuICBmb250LXNpemU6IDEuNnJlbTtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxufVxcbi5tb2RhbC1ib2R5IHtcXG4gIHBhZGRpbmc6IDEwcHggMjRweDtcXG4gIGNvbG9yOiByZ2JhKDAsMCwwLDAuNSk7XFxufVxcbi5zbWFsbC1tb2RhbC1zY3JvbGwsXFxuLm1vZGFsLXNjcm9sbCxcXG4uYmlnLW1vZGFsLXNjcm9sbCB7XFxuICBvdmVyZmxvdzogYXV0bztcXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcXG4gIHdpbGwtY2hhbmdlOiBzY3JvbGwtcG9zaXRpb247XFxufVxcbi5zbWFsbC1tb2RhbC1zY3JvbGwge1xcbiAgbWF4LWhlaWdodDogMTU2cHg7XFxufVxcbi5tb2RhbC1zY3JvbGwge1xcbiAgbWF4LWhlaWdodDogMjQwcHg7XFxufVxcbi5iaWctbW9kYWwtc2Nyb2xsIHtcXG4gIG1heC1oZWlnaHQ6IDQ4MHB4O1xcbn1cXG4ubW9kYWwtYnV0dG9ucyB7XFxuICBwYWRkaW5nOiAyMnB4IDhweCA4cHg7XFxuICAtd2Via2l0LWJveC1wYWNrOiBlbmQ7XFxuICAgICAgLW1zLWZsZXgtcGFjazogZW5kO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xcbiAgY29sb3I6ICMwMjdiZTM7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1wcmltYXJ5KTtcXG59XFxuLm1vZGFsLWJ1dHRvbnMucm93IC5xLWJ0biArIC5xLWJ0biB7XFxuICBtYXJnaW4tbGVmdDogOHB4O1xcbn1cXG4ubW9kYWwtYnV0dG9ucy5jb2x1bW4ge1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGVuZDtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogZW5kO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XFxufVxcbi5tb2RhbC1idXR0b25zLmNvbHVtbiAucS1idG4gKyAucS1idG4ge1xcbiAgbWFyZ2luLXRvcDogOHB4O1xcbn1cXG4ucS1tb2RhbC1ib3R0b20tZW50ZXIsXFxuLnEtbW9kYWwtYm90dG9tLWxlYXZlLWFjdGl2ZSB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1tb2RhbC1ib3R0b20tZW50ZXIgLm1vZGFsLWNvbnRlbnQsXFxuLnEtbW9kYWwtYm90dG9tLWxlYXZlLWFjdGl2ZSAubW9kYWwtY29udGVudCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzAlKTtcXG59XFxuLnEtbW9kYWwtdG9wLWVudGVyLFxcbi5xLW1vZGFsLXRvcC1sZWF2ZS1hY3RpdmUge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtbW9kYWwtdG9wLWVudGVyIC5tb2RhbC1jb250ZW50LFxcbi5xLW1vZGFsLXRvcC1sZWF2ZS1hY3RpdmUgLm1vZGFsLWNvbnRlbnQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzAlKTtcXG59XFxuLnEtbW9kYWwtcmlnaHQtZW50ZXIsXFxuLnEtbW9kYWwtcmlnaHQtbGVhdmUtYWN0aXZlIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLW1vZGFsLXJpZ2h0LWVudGVyIC5tb2RhbC1jb250ZW50LFxcbi5xLW1vZGFsLXJpZ2h0LWxlYXZlLWFjdGl2ZSAubW9kYWwtY29udGVudCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzAlKTtcXG59XFxuLnEtbW9kYWwtbGVmdC1lbnRlcixcXG4ucS1tb2RhbC1sZWZ0LWxlYXZlLWFjdGl2ZSB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1tb2RhbC1sZWZ0LWVudGVyIC5tb2RhbC1jb250ZW50LFxcbi5xLW1vZGFsLWxlZnQtbGVhdmUtYWN0aXZlIC5tb2RhbC1jb250ZW50IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMwJSk7XFxufVxcbi5xLW5vdGlmaWNhdGlvbnMgPiBkaXYge1xcbiAgei1pbmRleDogOTUwMDtcXG59XFxuLnEtbm90aWZpY2F0aW9uLWxpc3Qge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4ucS1ub3RpZmljYXRpb24tbGlzdC1jZW50ZXIge1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbn1cXG4ucS1ub3RpZmljYXRpb24tbGlzdC10b3Age1xcbiAgdG9wOiAwO1xcbn1cXG4ucS1ub3RpZmljYXRpb24tbGlzdC1ib3R0b20ge1xcbiAgYm90dG9tOiAwO1xcbn1cXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLW5vdGlmaWNhdGlvbi1saXN0LWNlbnRlcixcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLW5vdGlmaWNhdGlvbi1saXN0LXRvcCB7XFxuICB0b3A6IGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKTtcXG59XFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1ub3RpZmljYXRpb24tbGlzdC1jZW50ZXIsXFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1ub3RpZmljYXRpb24tbGlzdC1ib3R0b20ge1xcbiAgYm90dG9tOiBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSk7XFxufVxcbi5xLW5vdGlmaWNhdGlvbiB7XFxuICBib3JkZXItcmFkaXVzOiA1cHg7XFxuICBwb2ludGVyLWV2ZW50czogYWxsO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgbWFyZ2luOiAxMHB4IDEwcHggMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XFxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XFxuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDFzO1xcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxcztcXG4gIHotaW5kZXg6IDk1MDA7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxufVxcbi5xLW5vdGlmaWNhdGlvbi10b3AtbGVmdC1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tdG9wLWxlZnQtbGVhdmUtdG8sXFxuLnEtbm90aWZpY2F0aW9uLXRvcC1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tdG9wLWxlYXZlLXRvLFxcbi5xLW5vdGlmaWNhdGlvbi10b3AtcmlnaHQtZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLXRvcC1yaWdodC1sZWF2ZS10byB7XFxuICBvcGFjaXR5OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwcHgpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwcHgpO1xcbiAgei1pbmRleDogOTQ5OTtcXG59XFxuLnEtbm90aWZpY2F0aW9uLWxlZnQtZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLWxlZnQtbGVhdmUtdG8sXFxuLnEtbm90aWZpY2F0aW9uLWNlbnRlci1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tY2VudGVyLWxlYXZlLXRvLFxcbi5xLW5vdGlmaWNhdGlvbi1yaWdodC1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tcmlnaHQtbGVhdmUtdG8sXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1sZWZ0LWVudGVyLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tbGVmdC1sZWF2ZS10byxcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLWVudGVyLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tbGVhdmUtdG8sXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1yaWdodC1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLXJpZ2h0LWxlYXZlLXRvIHtcXG4gIG9wYWNpdHk6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MHB4KTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwcHgpO1xcbiAgei1pbmRleDogOTQ5OTtcXG59XFxuLnEtbm90aWZpY2F0aW9uLXRvcC1sZWZ0LWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tdG9wLWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tdG9wLXJpZ2h0LWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tbGVmdC1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLWNlbnRlci1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLXJpZ2h0LWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLWxlZnQtbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tcmlnaHQtbGVhdmUtYWN0aXZlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHotaW5kZXg6IDk0OTk7XFxuICBtYXJnaW4tbGVmdDogMDtcXG4gIG1hcmdpbi1yaWdodDogMDtcXG59XFxuLnEtbm90aWZpY2F0aW9uLXRvcC1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLWNlbnRlci1sZWF2ZS1hY3RpdmUge1xcbiAgdG9wOiAwO1xcbn1cXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLWxlZnQtbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tcmlnaHQtbGVhdmUtYWN0aXZlIHtcXG4gIGJvdHRvbTogMDtcXG59XFxuLnEtb3B0aW9uLWlubmVyIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIGxpbmUtaGVpZ2h0OiAwO1xcbn1cXG4ucS1vcHRpb24taW5uZXIgKyAucS1vcHRpb24tbGFiZWwge1xcbiAgbWFyZ2luLWxlZnQ6IDhweDtcXG59XFxuLnEtb3B0aW9uIHtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcbi5xLW9wdGlvbiBpbnB1dCB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi5xLW9wdGlvbi5yZXZlcnNlIC5xLW9wdGlvbi1pbm5lciArIC5xLW9wdGlvbi1sYWJlbCB7XFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcXG4gIG1hcmdpbi1sZWZ0OiAwO1xcbn1cXG4ucS1vcHRpb24tZ3JvdXAtaW5saW5lLW9wdHMgPiBkaXYge1xcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxufVxcbi5xLW9wdGlvbi1ncm91cCB7XFxuICBtYXJnaW46IC01cHg7XFxuICBwYWRkaW5nOiA1cHggMDtcXG59XFxuLnEtcGFnaW5hdGlvbiBpbnB1dCB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi5xLXBhZ2luYXRpb24gLnEtYnRuIHtcXG4gIHBhZGRpbmc6IDAgNXB4ICFpbXBvcnRhbnQ7XFxufVxcbi5xLXBhZ2luYXRpb24gLnEtYnRuLmRpc2FibGVkIHtcXG4gIGNvbG9yOiAjNzc3O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItZmFkZWQpO1xcbn1cXG4ucS1wYXJhbGxheCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB3aWR0aDogMTAwJTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbn1cXG4ucS1wYXJhbGxheC1tZWRpYSA+IGltZyxcXG4ucS1wYXJhbGxheC1tZWRpYSA+IHZpZGVvIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDUwJTtcXG4gIGJvdHRvbTogMDtcXG4gIG1pbi13aWR0aDogMTAwJTtcXG4gIG1pbi1oZWlnaHQ6IDEwMCU7XFxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xcbn1cXG4ucS1wYXJhbGxheC10ZXh0IHtcXG4gIHRleHQtc2hhZG93OiAwIDAgNXB4ICNmZmY7XFxufVxcbi5xLXBvcG92ZXIge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgei1pbmRleDogODAwMDtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxuICBvdmVyZmxvdy14OiBoaWRkZW47XFxuICBtYXgtd2lkdGg6IDEwMHZ3O1xcbiAgb3V0bGluZTogMDtcXG59XFxuLnEtcG9wb3ZlciA+IC5xLWxpc3Q6b25seS1jaGlsZCB7XFxuICBib3JkZXI6IG5vbmU7XFxufVxcbmJvZHkgZGl2IC5xLXBvcG92ZXIge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtcHJvZ3Jlc3Mge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgaGVpZ2h0OiA1cHg7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5xLXByb2dyZXNzLW1vZGVsIHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtcHJvZ3Jlc3MtbW9kZWwuYW5pbWF0ZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1wcm9ncmVzcy1zdHJpcGVzIDJzIGxpbmVhciBpbmZpbml0ZTtcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXByb2dyZXNzLXN0cmlwZXMgMnMgbGluZWFyIGluZmluaXRlO1xcbn1cXG4ucS1wcm9ncmVzcy1tb2RlbDpub3QoLmluZGV0ZXJtaW5hdGUpIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogd2lkdGggMC4zcyBsaW5lYXI7XFxuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGxpbmVhcjtcXG59XFxuLnEtcHJvZ3Jlc3MtbW9kZWwuaW5kZXRlcm1pbmF0ZTpiZWZvcmUsXFxuLnEtcHJvZ3Jlc3MtbW9kZWwuaW5kZXRlcm1pbmF0ZTphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGJhY2tncm91bmQ6IGluaGVyaXQ7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgd2lsbC1jaGFuZ2U6IGxlZnQsIHJpZ2h0O1xcbn1cXG4ucS1wcm9ncmVzcy1tb2RlbC5pbmRldGVybWluYXRlOmJlZm9yZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1wcm9ncmVzcy1pbmRldGVybWluYXRlIDIuMXMgY3ViaWMtYmV6aWVyKDAuNjUsIDAuODE1LCAwLjczNSwgMC4zOTUpIGluZmluaXRlO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZSAyLjFzIGN1YmljLWJlemllcigwLjY1LCAwLjgxNSwgMC43MzUsIDAuMzk1KSBpbmZpbml0ZTtcXG59XFxuLnEtcHJvZ3Jlc3MtbW9kZWwuaW5kZXRlcm1pbmF0ZTphZnRlciB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1wcm9ncmVzcy1pbmRldGVybWluYXRlLXNob3J0IDIuMXMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKSBpbmZpbml0ZTtcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUtc2hvcnQgMi4xcyBjdWJpYy1iZXppZXIoMC4xNjUsIDAuODQsIDAuNDQsIDEpIGluZmluaXRlO1xcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDEuMTVzO1xcbiAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDEuMTVzO1xcbn1cXG4ucS1wcm9ncmVzcy1tb2RlbC5zdHJpcGUsXFxuLnEtcHJvZ3Jlc3MtbW9kZWwuc3RyaXBlOmJlZm9yZSxcXG4ucS1wcm9ncmVzcy1tb2RlbC5zdHJpcGU6YWZ0ZXIge1xcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCkgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQtc2l6ZTogNDBweCA0MHB4ICFpbXBvcnRhbnQ7XFxufVxcbi5xLXByb2dyZXNzLXRyYWNrIHtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICBib3R0b206IDA7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IHdpZHRoIDAuM3MgbGluZWFyO1xcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBsaW5lYXI7XFxufVxcbi5xLXByb2dyZXNzLWJ1ZmZlciB7XFxuICB0b3A6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxuICBoZWlnaHQ6IDRweDtcXG4gIHJpZ2h0OiAwO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGxpbmVhcjtcXG4gIHRyYW5zaXRpb246IHdpZHRoIDAuM3MgbGluZWFyO1xcbiAgLXdlYmtpdC1tYXNrOiB1cmwoXCIgKyBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8xX19fICsgXCIpO1xcbiAgICAgICAgICBtYXNrOiB1cmwoXCIgKyBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8xX19fICsgXCIpO1xcbn1cXG4ucS1wcm9ncmVzcy10cmFjayxcXG4ucS1wcm9ncmVzcy1idWZmZXIge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbiAgb3BhY2l0eTogMC4yO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbn1cXG4ucHVsbC10by1yZWZyZXNoIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLnB1bGwtdG8tcmVmcmVzaC1tZXNzYWdlIHtcXG4gIGhlaWdodDogNjVweDtcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXG59XFxuLnB1bGwtdG8tcmVmcmVzaC1tZXNzYWdlIC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAycmVtO1xcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcztcXG4gIHRyYW5zaXRpb246IGFsbCAwLjNzO1xcbn1cXG4ucS1yYWRpby11bmNoZWNrZWQsXFxuLnEtcmFkaW8tY2hlY2tlZCxcXG4ucS1yYWRpbyAucS1vcHRpb24taW5uZXIge1xcbiAgaGVpZ2h0OiAyMXB4O1xcbiAgd2lkdGg6IDIxcHg7XFxuICBtaW4td2lkdGg6IDIxcHg7XFxuICBmb250LXNpemU6IDIxcHg7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpLCAtd2Via2l0LXRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4ucS1yYWRpby11bmNoZWNrZWQge1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLnEtcmFkaW8tY2hlY2tlZCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCUgMDtcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJSAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xcbn1cXG4ucS1yYWRpbyAucS1vcHRpb24taW5uZXIuYWN0aXZlIC5xLXJhZGlvLXVuY2hlY2tlZCB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1yYWRpbyAucS1vcHRpb24taW5uZXIuYWN0aXZlIC5xLXJhZGlvLWNoZWNrZWQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbn1cXG4ucS1yYXRpbmcge1xcbiAgY29sb3I6ICNmZmViM2I7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG4ucS1yYXRpbmcgc3BhbiB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIGRpc3BsYXk6IGluaGVyaXQ7XFxufVxcbi5xLXJhdGluZyBpIHtcXG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XFxuICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4xMiksIDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMjQpO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgb3BhY2l0eTogMC40O1xcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcXG59XFxuLnEtcmF0aW5nIGkuaG92ZXJlZCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4zKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjMpO1xcbn1cXG4ucS1yYXRpbmcgaS5leHNlbGVjdGVkIHtcXG4gIG9wYWNpdHk6IDAuNztcXG59XFxuLnEtcmF0aW5nIGkuYWN0aXZlIHtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbi5xLXJhdGluZyBpICsgaSB7XFxuICBtYXJnaW4tbGVmdDogMC4zcmVtO1xcbn1cXG4ucS1yYXRpbmcuZWRpdGFibGUgaSB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLXJhdGluZzpub3QoLmVkaXRhYmxlKSBzcGFuLFxcbi5xLXJhdGluZyBpIHtcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5xLXNjcm9sbGFyZWEtdGh1bWIge1xcbiAgYmFja2dyb3VuZDogIzAwMDtcXG4gIHdpZHRoOiAxMHB4O1xcbiAgcmlnaHQ6IDA7XFxuICBvcGFjaXR5OiAwLjI7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcXG59XFxuLnEtc2Nyb2xsYXJlYS10aHVtYi5pbnZpc2libGUtdGh1bWIge1xcbiAgb3BhY2l0eTogMCAhaW1wb3J0YW50O1xcbn1cXG4ucS1zY3JvbGxhcmVhLXRodW1iOmhvdmVyIHtcXG4gIG9wYWNpdHk6IDAuMztcXG59XFxuLnEtc2Nyb2xsYXJlYS10aHVtYjphY3RpdmUge1xcbiAgb3BhY2l0eTogMC41O1xcbn1cXG4ucS10b29sYmFyIC5xLXNlYXJjaCB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpO1xcbn1cXG4ucS1zbGlkZXItdHJhY2ssXFxuLnEtc2xpZGVyLW1hcmsge1xcbiAgb3BhY2l0eTogMC40O1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1zbGlkZXItdHJhY2sge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG4gIGhlaWdodDogMnB4O1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi5xLXNsaWRlci10cmFjazpub3QoLmRyYWdnaW5nKSB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xcbn1cXG4ucS1zbGlkZXItdHJhY2suYWN0aXZlLXRyYWNrIHtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbi5xLXNsaWRlci10cmFjay50cmFjay1kcmFnZ2FibGUuZHJhZ2dpbmcge1xcbiAgaGVpZ2h0OiA0cHg7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGhlaWdodCAwLjNzIGVhc2U7XFxuICB0cmFuc2l0aW9uOiBoZWlnaHQgMC4zcyBlYXNlO1xcbn1cXG4ucS1zbGlkZXItdHJhY2suaGFuZGxlLWF0LW1pbmltdW0ge1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxufVxcbi5xLXNsaWRlci1tYXJrIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogNTAlO1xcbiAgaGVpZ2h0OiAxMHB4O1xcbiAgd2lkdGg6IDJweDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xcbn1cXG4ucS1zbGlkZXItaGFuZGxlLWNvbnRhaW5lciB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBtYXJnaW4tbGVmdDogNnB4O1xcbiAgbWFyZ2luLXJpZ2h0OiA2cHg7XFxufVxcbi5xLXNsaWRlci1sYWJlbCB7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiA2cHg7XFxuICBvcGFjaXR5OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgwKSBzY2FsZSgwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMCkgc2NhbGUoMCk7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XFxuICBwYWRkaW5nOiAycHggNHB4O1xcbn1cXG4ucS1zbGlkZXItbGFiZWwubGFiZWwtYWx3YXlzIHtcXG4gIG9wYWNpdHk6IDE7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC0xMzklKSBzY2FsZSgxKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTEzOSUpIHNjYWxlKDEpO1xcbn1cXG4ucS1zbGlkZXItaGFuZGxlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogNTAlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XFxuICB3aWR0aDogMTJweDtcXG4gIGhlaWdodDogMTJweDtcXG4gIG91dGxpbmU6IDA7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXNsaWRlci1oYW5kbGUgLnEtY2hpcCB7XFxuICBtYXgtd2lkdGg6IHVuc2V0O1xcbn1cXG4ucS1zbGlkZXItaGFuZGxlLmRyYWdnaW5nIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSBzY2FsZSgxLjMpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApIHNjYWxlKDEuMyk7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLCAtd2Via2l0LXRyYW5zZm9ybSAwLjNzIGVhc2U7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgLXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBlYXNlO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UsIHRyYW5zZm9ybSAwLjNzIGVhc2U7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuM3MgZWFzZSwgLXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBlYXNlO1xcbn1cXG4ucS1zbGlkZXItaGFuZGxlLmRyYWdnaW5nIC5xLXNsaWRlci1sYWJlbCB7XFxuICBvcGFjaXR5OiAxO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtMTM5JSkgc2NhbGUoMSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC0xMzklKSBzY2FsZSgxKTtcXG59XFxuLnEtc2xpZGVyLWhhbmRsZS5oYW5kbGUtYXQtbWluaW11bSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbn1cXG4ucS1zbGlkZXItaGFuZGxlLmhhbmRsZS1hdC1taW5pbXVtOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbiAgYm9yZGVyOiAycHggc29saWQgY3VycmVudENvbG9yO1xcbn1cXG4ucS1zbGlkZXItcmluZyB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IC01MCU7XFxuICBsZWZ0OiAtNTAlO1xcbiAgd2lkdGg6IDIwMCU7XFxuICBoZWlnaHQ6IDIwMCU7XFxuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBvcGFjaXR5OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbjtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtc2xpZGVyOm5vdCguZGlzYWJsZWQpOm5vdCgucmVhZG9ubHkpIC5xLXNsaWRlci1oYW5kbGUuZHJhZ2dpbmcgLnEtc2xpZGVyLXJpbmcsXFxuLnEtc2xpZGVyOm5vdCguZGlzYWJsZWQpOm5vdCgucmVhZG9ubHkpIC5xLXNsaWRlci1oYW5kbGU6Zm9jdXMgLnEtc2xpZGVyLXJpbmcsXFxuYm9keS5kZXNrdG9wIC5xLXNsaWRlcjpub3QoLmRpc2FibGVkKTpub3QoLnJlYWRvbmx5KTpob3ZlciAucS1zbGlkZXItcmluZyB7XFxuICBvcGFjaXR5OiAwLjQ7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxufVxcbi5xLXNsaWRlci5kaXNhYmxlZCAucS1zbGlkZXItaGFuZGxlIHtcXG4gIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XFxufVxcbi5xLXNsaWRlci5kaXNhYmxlZCAucS1zbGlkZXItaGFuZGxlLmhhbmRsZS1hdC1taW5pbXVtIHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtc2xpZGVyIHtcXG4gIGhlaWdodDogMjhweDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgY29sb3I6ICMwMjdiZTM7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1wcmltYXJ5KTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnEtc2xpZGVyLmxhYmVsLWFsd2F5cyxcXG4ucS1zbGlkZXIud2l0aC1wYWRkaW5nIHtcXG4gIHBhZGRpbmc6IDM2cHggMCA4cHg7XFxuICBoZWlnaHQ6IDY0cHg7XFxufVxcbi5xLXNsaWRlci5oYXMtZXJyb3Ige1xcbiAgY29sb3I6ICNkYjI4Mjg7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1uZWdhdGl2ZSk7XFxufVxcbi5xLXNsaWRlci5oYXMtd2FybmluZyB7XFxuICBjb2xvcjogI2YyYzAzNztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXdhcm5pbmcpO1xcbn1cXG4ucS1zcGlubmVyIHtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcbi5xLXNwaW5uZXItbWF0IHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXNwaW4gMnMgbGluZWFyIGluZmluaXRlIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1zcGluIDJzIGxpbmVhciBpbmZpbml0ZSAvKiBydGw6aWdub3JlICovO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXIgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtc3Bpbm5lci1tYXQgLnBhdGgge1xcbiAgc3Ryb2tlLWRhc2hhcnJheTogMSwgMjAwO1xcbiAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XFxuICBzdHJva2UtbGluZWNhcDogcm91bmQ7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1tYXQtZGFzaCAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1tYXQtZGFzaCAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLXN0ZXBwZXIge1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLXN0ZXBwZXItdGl0bGUge1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbn1cXG4ucS1zdGVwcGVyLXN1YnRpdGxlIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIG9wYWNpdHk6IDAuNztcXG59XFxuLnEtc3RlcHBlci1kb3Qge1xcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICB3aWR0aDogMjRweDtcXG4gIGhlaWdodDogMjRweDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtc3RlcHBlci1kb3Qgc3BhbiB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtc3RlcHBlci10YWIge1xcbiAgcGFkZGluZzogMjRweDtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAwLjI4cywgYmFja2dyb3VuZCAwLjI4cztcXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMjhzLCBiYWNrZ3JvdW5kIDAuMjhzO1xcbn1cXG4ucS1zdGVwcGVyLXRhYi5zdGVwLXdhaXRpbmcge1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtd2FpdGluZyAucS1zdGVwcGVyLWRvdCB7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjQyKTtcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC1uYXZpZ2F0aW9uIHtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtY29sb3Ige1xcbiAgY29sb3I6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC1hY3RpdmUgLnEtc3RlcHBlci10aXRsZSB7XFxuICBmb250LXdlaWdodDogYm9sZDtcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC1kaXNhYmxlZCB7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjQyKTtcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC1lcnJvciB7XFxuICBjb2xvcjogI2RiMjgyODtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLW5lZ2F0aXZlKTtcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC1lcnJvciAucS1zdGVwcGVyLWRvdCB7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC1lcnJvciAucS1zdGVwcGVyLWRvdCBzcGFuIHtcXG4gIGNvbG9yOiAjZGIyODI4O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbmVnYXRpdmUpO1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbn1cXG4ucS1zdGVwcGVyLWhlYWRlciB7XFxuICBtaW4taGVpZ2h0OiA3MnB4O1xcbn1cXG4ucS1zdGVwcGVyLWhlYWRlcjpub3QoLmFsdGVybmF0aXZlLWxhYmVscykgLnEtc3RlcHBlci10YWIge1xcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxufVxcbi5xLXN0ZXBwZXItaGVhZGVyOm5vdCguYWx0ZXJuYXRpdmUtbGFiZWxzKSAucS1zdGVwcGVyLWRvdDphZnRlciB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1zdGVwcGVyLWhlYWRlci5hbHRlcm5hdGl2ZS1sYWJlbHMge1xcbiAgbWluLWhlaWdodDogMTA0cHg7XFxufVxcbi5xLXN0ZXBwZXItaGVhZGVyLmFsdGVybmF0aXZlLWxhYmVscyAucS1zdGVwcGVyLXRhYiB7XFxuICBwYWRkaW5nOiAyNHB4IDMycHg7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAtd2Via2l0LWJveC1wYWNrOiBzdGFydDtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBzdGFydDtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xcbn1cXG4ucS1zdGVwcGVyLWhlYWRlci5hbHRlcm5hdGl2ZS1sYWJlbHMgLnEtc3RlcHBlci1kb3Qge1xcbiAgbWFyZ2luLXJpZ2h0OiAwO1xcbn1cXG4ucS1zdGVwcGVyLWhlYWRlci5hbHRlcm5hdGl2ZS1sYWJlbHMgLnEtc3RlcHBlci1sYWJlbCB7XFxuICBtYXJnaW4tdG9wOiA4cHg7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi5xLXN0ZXBwZXItaGVhZGVyLmFsdGVybmF0aXZlLWxhYmVscyAucS1zdGVwcGVyLWxhYmVsOmJlZm9yZSxcXG4ucS1zdGVwcGVyLWhlYWRlci5hbHRlcm5hdGl2ZS1sYWJlbHMgLnEtc3RlcHBlci1sYWJlbDphZnRlciB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1zdGVwcGVyLXN0ZXAtY29udGVudCB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci10YWIge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1maXJzdCAucS1zdGVwcGVyLWRvdDpiZWZvcmUsXFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1sYXN0IC5xLXN0ZXBwZXItbGFiZWw6YWZ0ZXIsXFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1sYXN0IC5xLXN0ZXBwZXItZG90OmFmdGVyIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItbGluZTpiZWZvcmUsXFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1saW5lOmFmdGVyIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogNTAlO1xcbiAgaGVpZ2h0OiAxcHg7XFxuICB3aWR0aDogMTAwdnc7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWxhYmVsOmFmdGVyLFxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItZG90OmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgbGVmdDogMTAwJTtcXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItZG90OmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG4gIHJpZ2h0OiAxMDAlO1xcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItbmF2IHtcXG4gIG1hcmdpbjogMCAxNnB4IDhweDtcXG59XFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1zdGVwIC5xLXN0ZXBwZXItbmF2IHtcXG4gIG1hcmdpbjogMTZweCAwIDA7XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItc3RlcCAucS1zdGVwcGVyLW5hdiA+IGRpdi5jb2wge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci1zdGVwLWNvbnRlbnQgPiAucS1zdGVwcGVyLXN0ZXAtaW5uZXIge1xcbiAgcGFkZGluZzogMjRweDtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCB7XFxuICBwYWRkaW5nOiA4cHggMCAxOHB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1uYXYge1xcbiAgbWFyZ2luLXRvcDogMTZweDtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItbmF2ID4gZGl2LmNvbCB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXN0ZXAtY29udGVudCA+IC5xLXN0ZXBwZXItc3RlcC1pbm5lciB7XFxuICBwYWRkaW5nOiAwIDI0cHggMjRweCA0OHB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIge1xcbiAgcGFkZGluZzogMTJweCAxNnB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIgLnEtc3RlcHBlci1kb3Q6YmVmb3JlLFxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYiAucS1zdGVwcGVyLWRvdDphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDUwJTtcXG4gIHdpZHRoOiAxcHg7XFxuICBoZWlnaHQ6IDEwMHZoO1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItdGFiIC5xLXN0ZXBwZXItZG90OmJlZm9yZSB7XFxuICBib3R0b206IDEwMCU7XFxuICBtYXJnaW4tYm90dG9tOiA4cHg7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYiAucS1zdGVwcGVyLWRvdDphZnRlciB7XFxuICB0b3A6IDEwMCU7XFxuICBtYXJnaW4tdG9wOiA4cHg7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYiAucS1zdGVwcGVyLWxhYmVsIHtcXG4gIHBhZGRpbmctdG9wOiA0cHg7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYiAucS1zdGVwcGVyLWxhYmVsIC5xLXN0ZXBwZXItdGl0bGUge1xcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYi5xLXN0ZXBwZXItZmlyc3QgLnEtc3RlcHBlci1kb3Q6YmVmb3JlLFxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYi5xLXN0ZXBwZXItbGFzdCAucS1zdGVwcGVyLWRvdDphZnRlciB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG5ib2R5LmRlc2t0b3AgLnEtc3RlcHBlci10YWIuc3RlcC1uYXZpZ2F0aW9uOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4wNSk7XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgLnEtc3RlcHBlci1ob3Jpem9udGFsLnEtc3RlcHBlci1jb250cmFjdGFibGUgPiAucS1zdGVwcGVyLWhlYWRlciB7XFxuICAgIG1pbi1oZWlnaHQ6IDcycHg7XFxuICB9XFxuICAucS1zdGVwcGVyLWhvcml6b250YWwucS1zdGVwcGVyLWNvbnRyYWN0YWJsZSA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItdGFiIHtcXG4gICAgcGFkZGluZzogMjRweCAwO1xcbiAgfVxcbiAgLnEtc3RlcHBlci1ob3Jpem9udGFsLnEtc3RlcHBlci1jb250cmFjdGFibGUgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLXRhYjpub3QoOmxhc3QtY2hpbGQpIC5xLXN0ZXBwZXItZG90OmFmdGVyIHtcXG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcXG4gIH1cXG4gIC5xLXN0ZXBwZXItaG9yaXpvbnRhbC5xLXN0ZXBwZXItY29udHJhY3RhYmxlID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1kb3Qge1xcbiAgICBtYXJnaW46IDA7XFxuICB9XFxuICAucS1zdGVwcGVyLWhvcml6b250YWwucS1zdGVwcGVyLWNvbnRyYWN0YWJsZSA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItbGFiZWwge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgfVxcbn1cXG4ucS10YWJzIHtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG59XFxuLnEtbGF5b3V0LW1hcmdpbmFsIC5xLXRhYnMge1xcbiAgYm9yZGVyLXJhZGl1czogMDtcXG59XFxuLnEtdGFicy1zY3JvbGxlciB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucS10YWItcGFuZSB7XFxuICBwYWRkaW5nOiAxMnB4O1xcbn1cXG4ucS10YWJzLXBhbmVzOmVtcHR5IHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXRhYnMtbm9ybWFsIC5xLXRhYi1pY29uLFxcbi5xLXRhYnMtbm9ybWFsIC5xLXRhYi1sYWJlbCB7XFxuICBvcGFjaXR5OiAwLjc7XFxufVxcbi5xLXRhYiB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGNvbG9yIDAuM3MsIGJhY2tncm91bmQgMC4zcztcXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3MsIGJhY2tncm91bmQgMC4zcztcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgcGFkZGluZzogOHB4IDEwcHg7XFxuICBtaW4taGVpZ2h0OiA0OHB4O1xcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcXG59XFxuLnEtdGFiIC5xLXRhYi1pY29uLXBhcmVudCArIC5xLXRhYi1sYWJlbC1wYXJlbnQge1xcbiAgbWFyZ2luLXRvcDogNHB4O1xcbn1cXG4ucS10YWIgLnEtY2hpcCB7XFxuICB0b3A6IC04cHg7XFxuICByaWdodDogLTEwcHg7XFxuICBsZWZ0OiBhdXRvO1xcbiAgbWluLWhlaWdodDogYXV0bztcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNDQsNjcsNTQsMC43NSk7XFxufVxcbi5xLXRhYi5hY3RpdmUgLnEtdGFiLWljb24sXFxuLnEtdGFiLmFjdGl2ZSAucS10YWItbGFiZWwge1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLnEtdGFiLWxhYmVsIHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuLnEtdGFiLWljb24ge1xcbiAgZm9udC1zaXplOiAyN3B4O1xcbn1cXG4ucS10YWItZm9jdXMtaGVscGVyIHtcXG4gIHotaW5kZXg6IC0xO1xcbiAgb3V0bGluZTogMDtcXG59XFxuLnEtdGFiLWZvY3VzLWhlbHBlcjpmb2N1cyB7XFxuICB6LWluZGV4OiB1bnNldDtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG4gIG9wYWNpdHk6IDAuMTtcXG59XFxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICAucS10YWIuaGlkZS1pY29uIC5xLXRhYi1pY29uLXBhcmVudCxcXG4gIC5xLXRhYi5oaWRlLWxhYmVsIC5xLXRhYi1sYWJlbC1wYXJlbnQge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxuICAucS10YWIuaGlkZS1pY29uIC5xLXRhYi1sYWJlbCB7XFxuICAgIG1hcmdpbi10b3A6IDA7XFxuICB9XFxuICAucS10YWItZnVsbC5oaWRlLW5vbmUgLnEtdGFiLWxhYmVsLXBhcmVudCAucS10YWItbWV0YSB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgLnEtdGFiLWZ1bGwgLnEtdGFiLWxhYmVsLXBhcmVudCAucS10YWItbWV0YSB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICB9XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xcbiAgLnEtdGFicy1oZWFkOm5vdCguc2Nyb2xsYWJsZSkgLnEtdGFicy1zY3JvbGxlcixcXG4gIC5xLXRhYnMtaGVhZDpub3QoLnNjcm9sbGFibGUpIC5xLXRhYiB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xcbiAgLnEtdGFiIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNXB4O1xcbiAgfVxcbiAgLnEtbGF5b3V0LW1hcmdpbmFsIC5xLXRhYnMtaGVhZDpub3QoLnNjcm9sbGFibGUpIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xcbiAgfVxcbn1cXG4ucS10YWJzLWhlYWQge1xcbiAgbWluLWhlaWdodDogNDhweDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBmb250LXNpemU6IDAuOTVyZW07XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAwLjE4cyBlYXNlLWluLCAtd2Via2l0LWJveC1zaGFkb3cgMC4xOHMgZWFzZS1pbjtcXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMThzIGVhc2UtaW4sIC13ZWJraXQtYm94LXNoYWRvdyAwLjE4cyBlYXNlLWluO1xcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xOHMgZWFzZS1pbiwgYm94LXNoYWRvdyAwLjE4cyBlYXNlLWluO1xcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xOHMgZWFzZS1pbiwgYm94LXNoYWRvdyAwLjE4cyBlYXNlLWluLCAtd2Via2l0LWJveC1zaGFkb3cgMC4xOHMgZWFzZS1pbjtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLnEtdGFicy1oZWFkOm5vdCguc2Nyb2xsYWJsZSkgLnEtdGFicy1sZWZ0LXNjcm9sbCxcXG4ucS10YWJzLWhlYWQ6bm90KC5zY3JvbGxhYmxlKSAucS10YWJzLXJpZ2h0LXNjcm9sbCB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi5xLXRhYnMtbGVmdC1zY3JvbGwsXFxuLnEtdGFicy1yaWdodC1zY3JvbGwge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgY29sb3I6ICNmZmY7XFxuICB0b3A6IDA7XFxufVxcbi5xLXRhYnMtbGVmdC1zY3JvbGwgLnEtaWNvbixcXG4ucS10YWJzLXJpZ2h0LXNjcm9sbCAucS1pY29uIHtcXG4gIHRleHQtc2hhZG93OiAwIDAgMTBweCAjMDAwO1xcbiAgZm9udC1zaXplOiAzMi40cHg7XFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxufVxcbi5xLXRhYnMtbGVmdC1zY3JvbGwuZGlzYWJsZWQsXFxuLnEtdGFicy1yaWdodC1zY3JvbGwuZGlzYWJsZWQge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtdGFiczpob3ZlciAucS10YWJzLWxlZnQtc2Nyb2xsIC5xLWljb24sXFxuLnEtdGFiczpob3ZlciAucS10YWJzLXJpZ2h0LXNjcm9sbCAucS1pY29uIHtcXG4gIHZpc2liaWxpdHk6IHZpc2libGU7XFxufVxcbi5xLXRhYnMtbGVmdC1zY3JvbGwge1xcbiAgbGVmdDogMCAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS10YWJzLXJpZ2h0LXNjcm9sbCB7XFxuICByaWdodDogMCAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS10YWJzLWFsaWduLWp1c3RpZnkgLnEtdGFicy1zY3JvbGxlcixcXG4ucS10YWJzLWFsaWduLWp1c3RpZnkgLnEtdGFiIHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcXG59XFxuLnEtdGFicy1hbGlnbi1jZW50ZXIge1xcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxufVxcbi5xLXRhYnMtYWxpZ24tcmlnaHQge1xcbiAgLXdlYmtpdC1ib3gtcGFjazogZW5kO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZDtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcXG59XFxuLnEtdGFicy1iYXIge1xcbiAgYm9yZGVyOiAycHggc29saWQgY3VycmVudENvbG9yO1xcbiAgYm9yZGVyLXdpZHRoOiAwO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgaGVpZ2h0OiAwO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbn1cXG4ucS10YWJzLWdsb2JhbC1iYXIge1xcbiAgd2lkdGg6IDFweDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybTtcXG4gIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtLCAtd2Via2l0LXRyYW5zZm9ybTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xNXM7XFxuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7XFxuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTtcXG59XFxuLnEtdGFicy1nbG9iYWwtYmFyLmNvbnRyYWN0IHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xOHM7XFxuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMThzO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XFxuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcXG59XFxuLnEtdGFicy1nbG9iYWwtYmFyLWNvbnRhaW5lci5oaWdobGlnaHQgPiAucS10YWJzLWdsb2JhbC1iYXIge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtdGFicy10d28tbGluZXMgLnEtdGFiIHtcXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XFxufVxcbi5xLXRhYnMtdHdvLWxpbmVzIC5xLXRhYiAucS10YWItbGFiZWwge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcXG59XFxuLnEtdGFicy1wb3NpdGlvbi10b3AgPiAucS10YWJzLWhlYWQgLnEtdGFicy1iYXIge1xcbiAgYm90dG9tOiAwO1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xcbn1cXG4ucS10YWJzLXBvc2l0aW9uLWJvdHRvbSA+IC5xLXRhYnMtaGVhZCAucS10YWJzLWJhciB7XFxuICB0b3A6IDA7XFxuICBib3JkZXItdG9wLXdpZHRoOiAycHg7XFxufVxcbi5xLXRhYnMtcG9zaXRpb24tYm90dG9tID4gLnEtdGFicy1wYW5lcyB7XFxuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAwO1xcbiAgICAgIC1tcy1mbGV4LW9yZGVyOiAtMTtcXG4gICAgICAgICAgb3JkZXI6IC0xO1xcbn1cXG4ucS10YWJzLWludmVydGVkIC5xLXRhYnMtaGVhZCB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbn1cXG4ucS10YWJzLWludmVydGVkLnEtdGFicy1wb3NpdGlvbi10b3AgPiAucS10YWJzLXBhbmVzIHtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7XFxufVxcbi5xLXRhYnMtaW52ZXJ0ZWQucS10YWJzLXBvc2l0aW9uLXRvcCA+IC5xLXRhYi1wYW5lIHtcXG4gIGJvcmRlci10b3A6IDA7XFxufVxcbi5xLXRhYnMtaW52ZXJ0ZWQucS10YWJzLXBvc2l0aW9uLWJvdHRvbSA+IC5xLXRhYnMtcGFuZXMge1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTtcXG59XFxuLnEtdGFicy1pbnZlcnRlZC5xLXRhYnMtcG9zaXRpb24tYm90dG9tID4gLnEtdGFiLXBhbmUge1xcbiAgYm9yZGVyLWJvdHRvbTogMDtcXG59XFxuYm9keS5tb2JpbGUgLnEtdGFicy1zY3JvbGxlciB7XFxuICBvdmVyZmxvdy15OiBoaWRkZW47XFxuICBvdmVyZmxvdy14OiBhdXRvO1xcbiAgd2lsbC1jaGFuZ2U6IHNjcm9sbC1wb3NpdGlvbjtcXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcXG59XFxuYm9keS5kZXNrdG9wIC5xLXRhYjpiZWZvcmUge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgb3BhY2l0eTogMC4xO1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG5ib2R5LmRlc2t0b3AgLnEtdGFiOmhvdmVyOmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG59XFxuLnEtdGFibGUtY29udGFpbmVyIHtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4ucS10YWJsZS1jb250YWluZXIuZnVsbHNjcmVlbiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xcbn1cXG4ucS10YWJsZS10b3Age1xcbiAgbWluLWhlaWdodDogNjRweDtcXG4gIHBhZGRpbmc6IDhweCAyNHB4O1xcbn1cXG4ucS10YWJsZS10b3A6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICBvcGFjaXR5OiAwLjI7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG59XFxuLnEtdGFibGUtdG9wIC5xLXRhYmxlLWNvbnRyb2wge1xcbiAgbWluLWhlaWdodDogMzZweDtcXG4gIHBhZGRpbmc6IDhweCAwO1xcbiAgLW1zLWZsZXgtd3JhcDogd3JhcDtcXG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XFxufVxcbi5xLXRhYmxlLXRpdGxlIHtcXG4gIGZvbnQtc2l6ZTogMjBweDtcXG4gIGxldHRlci1zcGFjaW5nOiAwLjAwNWVtO1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG59XFxuLnEtdGFibGUtc2VwYXJhdG9yIHtcXG4gIG1pbi13aWR0aDogOHB4ICFpbXBvcnRhbnQ7XFxufVxcbi5xLXRhYmxlLW5vZGF0YSAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMjAwJTtcXG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XFxufVxcbi5xLXRhYmxlLXByb2dyZXNzIHtcXG4gIGhlaWdodDogMCAhaW1wb3J0YW50O1xcbn1cXG4ucS10YWJsZS1wcm9ncmVzcyB0ZCB7XFxuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG59XFxuLnEtdGFibGUtcHJvZ3Jlc3MgLnEtcHJvZ3Jlc3Mge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgaGVpZ2h0OiAycHg7XFxuICBib3R0b206IDA7XFxufVxcbi5xLXRhYmxlLW1pZGRsZSB7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxufVxcbi5xLXRhYmxlLWJvdHRvbSB7XFxuICBtaW4taGVpZ2h0OiA0OHB4O1xcbiAgcGFkZGluZzogNHB4IDE0cHggNHB4IDI0cHg7XFxufVxcbi5xLXRhYmxlLWJvdHRvbSxcXG4ucS10YWJsZS1ib3R0b20gLnEtaWYge1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbn1cXG4ucS10YWJsZS1ib3R0b20gLnEtdGFibGUtY29udHJvbCB7XFxuICBtaW4taGVpZ2h0OiAyNHB4O1xcbn1cXG4ucS10YWJsZS1jb250cm9sIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG4ucS10YWJsZS1zb3J0LWljb24ge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB3aWxsLWNoYW5nZTogb3BhY2l0eSwgdHJhbnNmb3JtO1xcbiAgb3BhY2l0eTogMDtcXG4gIGZvbnQtc2l6ZTogMTIwJTtcXG59XFxuLnEtdGFibGUtc29ydC1pY29uLWxlZnQsXFxuLnEtdGFibGUtc29ydC1pY29uLWNlbnRlciB7XFxuICBtYXJnaW4tbGVmdDogNHB4O1xcbn1cXG4ucS10YWJsZS1zb3J0LWljb24tcmlnaHQge1xcbiAgbWFyZ2luLXJpZ2h0OiA0cHg7XFxufVxcbi5xLXRhYmxlIHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcXG4gIGJvcmRlci1zcGFjaW5nOiAwO1xcbn1cXG4ucS10YWJsZSB0aGVhZCB0ciB7XFxuICBoZWlnaHQ6IDU2cHg7XFxufVxcbi5xLXRhYmxlIHRoIHtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBmb250LXNpemU6IDEycHg7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxufVxcbi5xLXRhYmxlIHRoLnNvcnRhYmxlIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnEtdGFibGUgdGguc29ydGFibGU6aG92ZXIgLnEtdGFibGUtc29ydC1pY29uIHtcXG4gIG9wYWNpdHk6IDAuNTtcXG59XFxuLnEtdGFibGUgdGguc29ydGVkIC5xLXRhYmxlLXNvcnQtaWNvbiB7XFxuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XFxufVxcbi5xLXRhYmxlIHRoLnNvcnQtZGVzYyAucS10YWJsZS1zb3J0LWljb24ge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xcbn1cXG4ucS10YWJsZSB0Ym9keSB0ciB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHdpbGwtY2hhbmdlOiBiYWNrZ3JvdW5kO1xcbn1cXG4ucS10YWJsZSB0aCxcXG4ucS10YWJsZSB0ZCB7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgcGFkZGluZzogN3B4IDI0cHg7XFxufVxcbi5xLXRhYmxlIHRoZWFkLFxcbi5xLXRhYmxlIHRkLFxcbi5xLXRhYmxlIHRoIHtcXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XFxuICBib3JkZXItd2lkdGg6IDA7XFxufVxcbi5xLXRhYmxlIHRib2R5IHRkIHtcXG4gIGhlaWdodDogNDhweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBmb250LXNpemU6IDEzcHg7XFxufVxcbi5xLXRhYmxlLWNvbC1hdXRvLXdpZHRoIHtcXG4gIHdpZHRoOiAxcHg7XFxufVxcbi5xLXRhYmxlLWJvdHRvbS1pdGVtIHtcXG4gIG1hcmdpbi1yaWdodDogMjRweDtcXG59XFxuLnEtdGFibGUtZ3JpZCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcbi5xLXRhYmxlLWdyaWQgLnEtdGFibGUtYm90dG9tIHtcXG4gIGJvcmRlci10b3A6IDA7XFxufVxcbi5xLXRhYmxlLWdyaWQgLnEtdGFibGUge1xcbiAgaGVpZ2h0OiAycHg7XFxufVxcbi5xLXRhYmxlLWdyaWQgLnEtdGFibGUgdGhlYWQge1xcbiAgYm9yZGVyOiAwO1xcbn1cXG4ucS10YWJsZS1ob3Jpem9udGFsLXNlcGFyYXRvciB0aGVhZCxcXG4ucS10YWJsZS1ob3Jpem9udGFsLXNlcGFyYXRvciB0Ym9keSB0ZCB7XFxuICBib3JkZXItd2lkdGg6IDAgMCAxcHggMDtcXG59XFxuLnEtdGFibGUtdmVydGljYWwtc2VwYXJhdG9yIHRoZWFkIHtcXG4gIGJvcmRlci13aWR0aDogMCAwIDFweCAwO1xcbn1cXG4ucS10YWJsZS12ZXJ0aWNhbC1zZXBhcmF0b3IgdGQge1xcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMCAxcHg7XFxufVxcbi5xLXRhYmxlLXZlcnRpY2FsLXNlcGFyYXRvciB0ZDpmaXJzdC1jaGlsZCB7XFxuICBib3JkZXItbGVmdDogMDtcXG59XFxuLnEtdGFibGUtY2VsbC1zZXBhcmF0b3IgdGQge1xcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XFxufVxcbi5xLXRhYmxlLWNlbGwtc2VwYXJhdG9yIHRkOmZpcnN0LWNoaWxkIHtcXG4gIGJvcmRlci1sZWZ0OiAwO1xcbn1cXG4ucS10YWJsZS1jZWxsLXNlcGFyYXRvciB0ZDpsYXN0LWNoaWxkIHtcXG4gIGJvcmRlci1yaWdodDogMDtcXG59XFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUtdG9wIHtcXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XFxufVxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlLXRvcCxcXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZS1ib3R0b20ge1xcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XFxuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XFxufVxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlLWJvdHRvbSB7XFxuICBtaW4taGVpZ2h0OiA0MnB4O1xcbn1cXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZS1zb3J0LWljb24ge1xcbiAgZm9udC1zaXplOiAxMTAlO1xcbn1cXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZSB0aCxcXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZSB0ZCB7XFxuICBwYWRkaW5nOiA0cHggOHB4O1xcbn1cXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZSB0aGVhZCB0ciB7XFxuICBoZWlnaHQ6IDQwcHg7XFxufVxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlIHRib2R5IHRkIHtcXG4gIGhlaWdodDogMjhweDtcXG59XFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUtYm90dG9tLWl0ZW0ge1xcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgLnEtdGFibGUtdG9wIHtcXG4gICAgbWluLWhlaWdodDogNDhweDtcXG4gIH1cXG4gIC5xLXRhYmxlLXRvcCxcXG4gIC5xLXRhYmxlLWJvdHRvbSB7XFxuICAgIHBhZGRpbmctbGVmdDogOHB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XFxuICB9XFxuICAucS10YWJsZS1ib3R0b20ge1xcbiAgICBtaW4taGVpZ2h0OiA0MnB4O1xcbiAgfVxcbiAgLnEtdGFibGUtc29ydC1pY29uIHtcXG4gICAgZm9udC1zaXplOiAxMTAlO1xcbiAgfVxcbiAgLnEtdGFibGUgdGgsXFxuICAucS10YWJsZSB0ZCB7XFxuICAgIHBhZGRpbmc6IDRweCA4cHg7XFxuICB9XFxuICAucS10YWJsZSB0aGVhZCB0ciB7XFxuICAgIGhlaWdodDogNDBweDtcXG4gIH1cXG4gIC5xLXRhYmxlIHRib2R5IHRkIHtcXG4gICAgaGVpZ2h0OiAyOHB4O1xcbiAgfVxcbiAgLnEtdGFibGUtYm90dG9tLWl0ZW0ge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcXG4gIH1cXG59XFxuLnEtdGFibGUtYm90dG9tIHtcXG4gIGNvbG9yOiByZ2JhKDAsMCwwLDAuNTQpO1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLXRhYmxlIHtcXG4gIGNvbG9yOiByZ2JhKDAsMCwwLDAuODcpO1xcbn1cXG4ucS10YWJsZSB0aGVhZCxcXG4ucS10YWJsZSB0cixcXG4ucS10YWJsZSB0aCxcXG4ucS10YWJsZSB0ZCB7XFxuICBib3JkZXItY29sb3I6IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLXRhYmxlIHRoIHtcXG4gIGNvbG9yOiByZ2JhKDAsMCwwLDAuNTQpO1xcbn1cXG4ucS10YWJsZSB0aC5zb3J0YWJsZTpob3ZlcixcXG4ucS10YWJsZSB0aC5zb3J0ZWQge1xcbiAgY29sb3I6IHJnYmEoMCwwLDAsMC44Nyk7XFxufVxcbi5xLXRhYmxlIHRib2R5IHRyLnNlbGVjdGVkIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4wNik7XFxufVxcbi5xLXRhYmxlIHRib2R5IHRyOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4wMyk7XFxufVxcbi5xLXRhYmxlLWRhcmsge1xcbiAgY29sb3I6ICNlZWU7XFxufVxcbi5xLXRhYmxlLWRhcmsgLnEtdGFibGUtYm90dG9tLFxcbi5xLXRhYmxlLWRhcmsgLnEtdGFibGUtdG9wIHtcXG4gIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNjQpO1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xMik7XFxufVxcbi5xLXRhYmxlLWRhcmsgdGhlYWQsXFxuLnEtdGFibGUtZGFyayB0cixcXG4ucS10YWJsZS1kYXJrIHRoLFxcbi5xLXRhYmxlLWRhcmsgdGQge1xcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpO1xcbn1cXG4ucS10YWJsZS1kYXJrIHRoIHtcXG4gIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNjQpO1xcbn1cXG4ucS10YWJsZS1kYXJrIHRoLnNvcnRhYmxlOmhvdmVyLFxcbi5xLXRhYmxlLWRhcmsgdGguc29ydGVkIHtcXG4gIGNvbG9yOiAjZWVlO1xcbn1cXG4ucS10YWJsZS1kYXJrIHRib2R5IHRyLnNlbGVjdGVkIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcXG59XFxuLnEtdGFibGUtZGFyayB0Ym9keSB0cjpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMSk7XFxufVxcbi5xLXRpbWVsaW5lIHtcXG4gIHBhZGRpbmc6IDA7XFxuICB3aWR0aDogMTAwJTtcXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XFxufVxcbi5xLXRpbWVsaW5lIGg2IHtcXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbn1cXG4ucS10aW1lbGluZS10aXRsZSB7XFxuICBtYXJnaW4tdG9wOiAwO1xcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcXG59XFxuLnEtdGltZWxpbmUtc3VidGl0bGUge1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbiAgb3BhY2l0eTogMC40O1xcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcXG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XFxuICBmb250LXdlaWdodDogNzAwO1xcbn1cXG4ucS10aW1lbGluZS1kb3Qge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAxNXB4O1xcbn1cXG4ucS10aW1lbGluZS1kb3Q6YmVmb3JlLFxcbi5xLXRpbWVsaW5lLWRvdDphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbn1cXG4ucS10aW1lbGluZS1kb3Q6YmVmb3JlIHtcXG4gIGJvcmRlcjogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcXG4gIGhlaWdodDogMTVweDtcXG4gIHdpZHRoOiAxNXB4O1xcbiAgdG9wOiA0cHg7XFxuICBsZWZ0OiAwO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3MgZWFzZS1pbi1vdXQsIGJvcmRlciAwLjNzIGVhc2UtaW4tb3V0O1xcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzIGVhc2UtaW4tb3V0LCBib3JkZXIgMC4zcyBlYXNlLWluLW91dDtcXG59XFxuLnEtdGltZWxpbmUtZG90OmFmdGVyIHtcXG4gIHdpZHRoOiAzcHg7XFxuICBvcGFjaXR5OiAwLjQ7XFxuICB0b3A6IDI0cHg7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiA2cHg7XFxufVxcbi5xLXRpbWVsaW5lLWVudHJ5LXdpdGgtaWNvbiAucS10aW1lbGluZS1kb3Qge1xcbiAgd2lkdGg6IDMxcHg7XFxuICBsZWZ0OiAtOHB4O1xcbn1cXG4ucS10aW1lbGluZS1lbnRyeS13aXRoLWljb24gLnEtdGltZWxpbmUtZG90OmJlZm9yZSB7XFxuICBoZWlnaHQ6IDMxcHg7XFxuICB3aWR0aDogMzFweDtcXG59XFxuLnEtdGltZWxpbmUtZW50cnktd2l0aC1pY29uIC5xLXRpbWVsaW5lLWRvdDphZnRlciB7XFxuICB0b3A6IDQxcHg7XFxuICBsZWZ0OiAxNHB4O1xcbn1cXG4ucS10aW1lbGluZS1lbnRyeS13aXRoLWljb24gLnEtdGltZWxpbmUtc3VidGl0bGUge1xcbiAgcGFkZGluZy10b3A6IDhweDtcXG59XFxuLnEtdGltZWxpbmUtZG90IC5xLWljb24ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBmb250LXNpemU6IDE2cHg7XFxuICBoZWlnaHQ6IDM4cHg7XFxuICBjb2xvcjogI2ZmZjtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlLWluLW91dDtcXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZS1pbi1vdXQ7XFxufVxcbi5xLXRpbWVsaW5lLWRhcmsge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLXRpbWVsaW5lLWRhcmsgLnEtdGltZWxpbmUtc3VidGl0bGUge1xcbiAgb3BhY2l0eTogMC43O1xcbn1cXG4ucS10aW1lbGluZS1lbnRyeSB7XFxuICBwYWRkaW5nLWxlZnQ6IDQwcHg7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBsaW5lLWhlaWdodDogMjJweDtcXG59XFxuLnEtdGltZWxpbmUtZW50cnk6bGFzdC1jaGlsZCB7XFxuICBwYWRkaW5nLWJvdHRvbTogMDtcXG59XFxuLnEtdGltZWxpbmUtZW50cnk6bGFzdC1jaGlsZCAucS10aW1lbGluZS1kb3Q6YWZ0ZXIge1xcbiAgY29udGVudDogbm9uZTtcXG59XFxuLnEtdGltZWxpbmUtaG92ZXIgLnEtdGltZWxpbmUtZW50cnk6aG92ZXIgLnEtdGltZWxpbmUtZG90OmJlZm9yZSB7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlcjogM3B4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtdGltZWxpbmUtaG92ZXIgLnEtdGltZWxpbmUtZW50cnkucS10aW1lbGluZS1lbnRyeS13aXRoLWljb246aG92ZXIgLnEtdGltZWxpbmUtZG90IC5xLWljb24ge1xcbiAgY29sb3I6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtdGltZWxpbmUtY29udGVudCB7XFxuICBwYWRkaW5nLWJvdHRvbTogMjRweDtcXG59XFxuLnEtdGltZWxpbmUtaGVhZGluZyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5xLXRpbWVsaW5lLWhlYWRpbmc6Zmlyc3QtY2hpbGQgLnEtdGltZWxpbmUtaGVhZGluZy10aXRsZSB7XFxuICBwYWRkaW5nLXRvcDogMDtcXG59XFxuLnEtdGltZWxpbmUtaGVhZGluZzpsYXN0LWNoaWxkIC5xLXRpbWVsaW5lLWhlYWRpbmctdGl0bGUge1xcbiAgcGFkZGluZy1ib3R0b206IDA7XFxufVxcbi5xLXRpbWVsaW5lLWhlYWRpbmctdGl0bGUge1xcbiAgcGFkZGluZzogMzJweCAwO1xcbiAgbWFyZ2luOiAwO1xcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1oZWFkaW5nIHtcXG4gICAgZGlzcGxheTogdGFibGUtcm93O1xcbiAgICBmb250LXNpemU6IDIwMCU7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWhlYWRpbmcgPiBkaXYge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1oZWFkaW5nLXRpdGxlIHtcXG4gICAgbWFyZ2luLWxlZnQ6IC01MHB4O1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZSB7XFxuICAgIGRpc3BsYXk6IHRhYmxlO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeSB7XFxuICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcXG4gICAgcGFkZGluZzogMDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtc3VidGl0bGUsXFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWRvdCxcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtY29udGVudCB7XFxuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XFxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLXN1YnRpdGxlIHtcXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XFxuICAgIHdpZHRoOiAzNSU7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWRvdCB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtY29udGVudCB7XFxuICAgIHBhZGRpbmctbGVmdDogMzBweDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnktd2l0aC1pY29uIC5xLXRpbWVsaW5lLWNvbnRlbnQge1xcbiAgICBwYWRkaW5nLXRvcDogOHB4O1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1zdWJ0aXRsZSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1oZWFkaW5nLXRpdGxlIHtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICBtYXJnaW4tbGVmdDogMDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnksXFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLXN1YnRpdGxlLFxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1kb3QsXFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWNvbnRlbnQge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1kb3Qge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIGxlZnQ6IDUwJTtcXG4gICAgbWFyZ2luLWxlZnQ6IC03LjE1cHg7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5LXdpdGgtaWNvbiAucS10aW1lbGluZS1kb3Qge1xcbiAgICBsZWZ0OiA1MCU7XFxuICAgIG1hcmdpbi1sZWZ0OiAtMTVweDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtc3VidGl0bGUsXFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWNvbnRlbnQge1xcbiAgICB3aWR0aDogNTAlO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeS1sZWZ0IC5xLXRpbWVsaW5lLWNvbnRlbnQsXFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5LXJpZ2h0IC5xLXRpbWVsaW5lLXN1YnRpdGxlIHtcXG4gICAgZmxvYXQ6IGxlZnQ7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XFxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeS1sZWZ0IC5xLXRpbWVsaW5lLXN1YnRpdGxlLFxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeS1yaWdodCAucS10aW1lbGluZS1jb250ZW50IHtcXG4gICAgZmxvYXQ6IHJpZ2h0O1xcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5LXdpdGgtaWNvbiAucS10aW1lbGluZS1jb250ZW50IHtcXG4gICAgcGFkZGluZy10b3A6IDhweDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnkge1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMjRweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIH1cXG59XFxuLnEtdG9nZ2xlLWJhc2Uge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMnB4O1xcbiAgYm9yZGVyLXJhZGl1czogMzBweDtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG4gIG9wYWNpdHk6IDAuNTtcXG59XFxuLnEtdG9nZ2xlLWhhbmRsZSB7XFxuICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgNDUwbXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgdHJhbnNpdGlvbjogYWxsIDQ1MG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAyMXB4O1xcbiAgaGVpZ2h0OiAyMXB4O1xcbiAgbGluZS1oZWlnaHQ6IDIxcHg7XFxufVxcbi5xLXRvZ2dsZSAucS1vcHRpb24taW5uZXIge1xcbiAgaGVpZ2h0OiAyMXB4O1xcbiAgd2lkdGg6IDQwcHg7XFxuICBtaW4td2lkdGg6IDQwcHg7XFxuICBwYWRkaW5nOiA1cHggMDtcXG59XFxuLnEtdG9nZ2xlIC5xLW9wdGlvbi1pbm5lci5hY3RpdmUgLnEtdG9nZ2xlLWhhbmRsZSB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxuICBsZWZ0OiAxOXB4O1xcbn1cXG4ucS10b2dnbGUgLnEtb3B0aW9uLWlubmVyLmFjdGl2ZSAucS10b2dnbGUtaWNvbiB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtdG9vbGJhciB7XFxuICBwYWRkaW5nOiA0cHggMTJweDtcXG4gIG1pbi1oZWlnaHQ6IDUwcHg7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi5xLXRvb2xiYXItaW52ZXJ0ZWQge1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG59XFxuLnEtdG9vbGJhci10aXRsZSB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxIDEgMCU7XFxuICAgICAgICAgIGZsZXg6IDEgMSAwJTtcXG4gIG1pbi13aWR0aDogMXB4O1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgZm9udC1zaXplOiAxOHB4O1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIHBhZGRpbmc6IDAgMTJweDtcXG59XFxuLnEtdG9vbGJhci1zdWJ0aXRsZSB7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBvcGFjaXR5OiAwLjc7XFxufVxcbi5xLXRvb2xiYXItdGl0bGUsXFxuLnEtdG9vbGJhci1zdWJ0aXRsZSB7XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucS10b29sdGlwIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIGNvbG9yOiAjZmFmYWZhO1xcbiAgYmFja2dyb3VuZDogIzc0NzQ3NDtcXG4gIHotaW5kZXg6IDkwMDA7XFxuICBwYWRkaW5nOiAxMHB4O1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgb3ZlcmZsb3cteTogYXV0bztcXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4ucS10cmVlLW5vZGUge1xcbiAgbWFyZ2luOiAwO1xcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgcGFkZGluZzogMCAwIDNweCAyMnB4O1xcbn1cXG4ucS10cmVlLW5vZGU6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IC0zcHg7XFxuICBib3R0b206IDA7XFxuICB3aWR0aDogMXB4O1xcbiAgcmlnaHQ6IGF1dG87XFxuICBsZWZ0OiAtMTNweDtcXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgY3VycmVudENvbG9yO1xcbn1cXG4ucS10cmVlLW5vZGU6bGFzdC1jaGlsZDphZnRlciB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS10cmVlLW5vZGUtaGVhZGVyOmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogLTNweDtcXG4gIGJvdHRvbTogNTAlO1xcbiAgd2lkdGg6IDM1cHg7XFxuICBsZWZ0OiAtMzVweDtcXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgY3VycmVudENvbG9yO1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtdHJlZS1jaGlsZHJlbiB7XFxuICBwYWRkaW5nLWxlZnQ6IDI1cHg7XFxufVxcbi5xLXRyZWUtY2hpbGRyZW4uZGlzYWJsZWQge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcbi5xLXRyZWUtbm9kZS1ib2R5IHtcXG4gIHBhZGRpbmc6IDVweCAwIDhweCA1cHg7XFxufVxcbi5xLXRyZWUtbm9kZS1wYXJlbnQge1xcbiAgcGFkZGluZy1sZWZ0OiAycHg7XFxufVxcbi5xLXRyZWUtbm9kZS1wYXJlbnQgPiAucS10cmVlLW5vZGUtaGVhZGVyOmJlZm9yZSB7XFxuICB3aWR0aDogMTVweDtcXG4gIGxlZnQ6IC0xNXB4O1xcbn1cXG4ucS10cmVlLW5vZGUtcGFyZW50ID4gLnEtdHJlZS1ub2RlLWNvbGxhcHNpYmxlID4gLnEtdHJlZS1ub2RlLWJvZHkge1xcbiAgcGFkZGluZzogNXB4IDAgOHB4IDI3cHg7XFxufVxcbi5xLXRyZWUtbm9kZS1wYXJlbnQgPiAucS10cmVlLW5vZGUtY29sbGFwc2libGUgPiAucS10cmVlLW5vZGUtYm9keTphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHdpZHRoOiAxcHg7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICByaWdodDogYXV0bztcXG4gIGxlZnQ6IDEycHg7XFxuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG4gIGJvdHRvbTogNTBweDtcXG59XFxuLnEtdHJlZS1ub2RlLWxpbmsge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS10cmVlLW5vZGUtc2VsZWN0ZWQge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjE1KTtcXG59XFxuLnEtdHJlZS1kYXJrIC5xLXRyZWUtbm9kZS1zZWxlY3RlZCB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuNCk7XFxufVxcbmJvZHkuZGVza3RvcCAucS10cmVlLW5vZGUtbGluazpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMSk7XFxufVxcbmJvZHkuZGVza3RvcCAucS10cmVlLWRhcmsgLnEtdHJlZS1ub2RlLWxpbms6aG92ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjMpO1xcbn1cXG4ucS10cmVlLW5vZGUtaGVhZGVyIHtcXG4gIHBhZGRpbmc6IDRweDtcXG4gIG1hcmdpbi10b3A6IDNweDtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG59XFxuLnEtdHJlZS1ub2RlLWhlYWRlci5kaXNhYmxlZCB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLnEtdHJlZS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMS41ZW07XFxufVxcbi5xLXRyZWUtaW1nIHtcXG4gIGhlaWdodDogM2VtO1xcbn1cXG4ucS10cmVlLWltZy5hdmF0YXIge1xcbiAgd2lkdGg6IDJlbTtcXG4gIGhlaWdodDogMmVtO1xcbn1cXG4ucS10cmVlLWFycm93IHtcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXG4gIHdpZHRoOiAxcmVtO1xcbiAgaGVpZ2h0OiAxcmVtO1xcbn1cXG4ucS10cmVlLWFycm93LXJvdGF0ZSB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xcbn1cXG5bZGlyPXJ0bF0gLnEtdHJlZS1hcnJvdyB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG5bZGlyPXJ0bF0gLnEtdHJlZS1hcnJvdy1yb3RhdGUge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLXRyZWUgPiAucS10cmVlLW5vZGUge1xcbiAgcGFkZGluZzogMDtcXG59XFxuLnEtdHJlZSA+IC5xLXRyZWUtbm9kZTphZnRlcixcXG4ucS10cmVlID4gLnEtdHJlZS1ub2RlID4gLnEtdHJlZS1ub2RlLWhlYWRlcjpiZWZvcmUge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtdHJlZSA+IC5xLXRyZWUtbm9kZS1jaGlsZCA+IC5xLXRyZWUtbm9kZS1oZWFkZXIge1xcbiAgcGFkZGluZy1sZWZ0OiAyNHB4O1xcbn1cXG4ucS11cGxvYWRlci1leHBhbmRlZCAucS1pZiB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XFxufVxcbi5xLXVwbG9hZGVyLWlucHV0IHtcXG4gIG9wYWNpdHk6IDA7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICB3aWR0aDogMTAwJTtcXG4gIGZvbnQtc2l6ZTogMDtcXG59XFxuLnEtdXBsb2FkZXItcGljay1idXR0b25bZGlzYWJsZWRdIC5xLXVwbG9hZGVyLWlucHV0IHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXVwbG9hZGVyLWZpbGVzIHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBtYXgtaGVpZ2h0OiA1MDBweDtcXG59XFxuLnEtdXBsb2FkZXItZmlsZXMtbm8tYm9yZGVyIC5xLXVwbG9hZGVyLWZpbGVzIHtcXG4gIGJvcmRlci10b3A6IDAgIWltcG9ydGFudDtcXG59XFxuLnEtdXBsb2FkZXItZmlsZTpub3QoOmxhc3QtY2hpbGQpIHtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTBlMGUwO1xcbn1cXG4ucS11cGxvYWRlci1wcm9ncmVzcy1iZyxcXG4ucS11cGxvYWRlci1wcm9ncmVzcy10ZXh0IHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4ucS11cGxvYWRlci1wcm9ncmVzcy1iZyB7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBvcGFjaXR5OiAwLjI7XFxufVxcbi5xLXVwbG9hZGVyLXByb2dyZXNzLXRleHQge1xcbiAgZm9udC1zaXplOiA0MHB4O1xcbiAgb3BhY2l0eTogMC4xO1xcbiAgcmlnaHQ6IDQ0cHg7XFxuICBib3R0b206IDA7XFxufVxcbi5xLXVwbG9hZGVyLWRuZCB7XFxuICBvdXRsaW5lOiAycHggZGFzaGVkIGN1cnJlbnRDb2xvcjtcXG4gIG91dGxpbmUtb2Zmc2V0OiAtNnB4O1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjYpO1xcbn1cXG4ucS11cGxvYWRlci1kbmQuaW52ZXJ0ZWQge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjMpO1xcbn1cXG4ucS11cGxvYWRlci1kYXJrIC5xLXVwbG9hZGVyLWZpbGVzIHtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2E3YTdhNztcXG59XFxuLnEtdXBsb2FkZXItZGFyayAucS11cGxvYWRlci1iZyB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtdXBsb2FkZXItZGFyayAucS11cGxvYWRlci1wcm9ncmVzcy10ZXh0IHtcXG4gIG9wYWNpdHk6IDAuMjtcXG59XFxuLnEtdXBsb2FkZXItZGFyayAucS11cGxvYWRlci1maWxlOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0MjQyNDI7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tcS1jb2xvci1kYXJrKTtcXG59XFxuaW1nLnJlc3BvbnNpdmUge1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiBhdXRvO1xcbn1cXG5pbWcuYXZhdGFyIHtcXG4gIHdpZHRoOiA1MHB4O1xcbiAgaGVpZ2h0OiA1MHB4O1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG4ucS12aWRlbyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG59XFxuLnEtdmlkZW8gaWZyYW1lLFxcbi5xLXZpZGVvIG9iamVjdCxcXG4ucS12aWRlbyBlbWJlZCB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuOnJvb3Qge1xcbiAgLS1xLWNvbG9yLXByaW1hcnk6ICMwMjdiZTM7XFxuICAtLXEtY29sb3Itc2Vjb25kYXJ5OiAjMjZhNjlhO1xcbiAgLS1xLWNvbG9yLXRlcnRpYXJ5OiAjNTU1O1xcbiAgLS1xLWNvbG9yLXBvc2l0aXZlOiAjMjFiYTQ1O1xcbiAgLS1xLWNvbG9yLW5lZ2F0aXZlOiAjZGIyODI4O1xcbiAgLS1xLWNvbG9yLW5lZ2F0aXZlLWw6ICNlYzhiOGI7XFxuICAtLXEtY29sb3ItaW5mbzogIzMxY2NlYztcXG4gIC0tcS1jb2xvci13YXJuaW5nOiAjZjJjMDM3O1xcbiAgLS1xLWNvbG9yLXdhcm5pbmctbDogI2Y4ZGQ5MztcXG4gIC0tcS1jb2xvci1saWdodDogI2JkYmRiZDtcXG4gIC0tcS1jb2xvci1saWdodC1kOiAjYWFhO1xcbiAgLS1xLWNvbG9yLWZhZGVkOiAjNzc3O1xcbiAgLS1xLWNvbG9yLWRhcms6ICM0MjQyNDI7XFxufVxcbi50ZXh0LXByaW1hcnkge1xcbiAgY29sb3I6ICMwMjdiZTMgIWltcG9ydGFudDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXByaW1hcnkpICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wcmltYXJ5IHtcXG4gIGJhY2tncm91bmQ6ICMwMjdiZTMgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItcHJpbWFyeSkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtc2Vjb25kYXJ5IHtcXG4gIGNvbG9yOiAjMjZhNjlhICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1zZWNvbmRhcnkge1xcbiAgYmFja2dyb3VuZDogIzI2YTY5YSAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlcnRpYXJ5IHtcXG4gIGNvbG9yOiAjNTU1ICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci10ZXJ0aWFyeSkgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlcnRpYXJ5IHtcXG4gIGJhY2tncm91bmQ6ICM1NTUgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItdGVydGlhcnkpICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWZhZGVkIHtcXG4gIGNvbG9yOiAjNzc3ICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1mYWRlZCkgIWltcG9ydGFudDtcXG59XFxuLmJnLWZhZGVkIHtcXG4gIGJhY2tncm91bmQ6ICM3NzcgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItZmFkZWQpICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBvc2l0aXZlIHtcXG4gIGNvbG9yOiAjMjFiYTQ1ICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1wb3NpdGl2ZSkgIWltcG9ydGFudDtcXG59XFxuLmJnLXBvc2l0aXZlIHtcXG4gIGJhY2tncm91bmQ6ICMyMWJhNDUgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItcG9zaXRpdmUpICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW5lZ2F0aXZlIHtcXG4gIGNvbG9yOiAjZGIyODI4ICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1uZWdhdGl2ZSkgIWltcG9ydGFudDtcXG59XFxuLmJnLW5lZ2F0aXZlIHtcXG4gIGJhY2tncm91bmQ6ICNkYjI4MjggIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItbmVnYXRpdmUpICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZm8ge1xcbiAgY29sb3I6ICMzMWNjZWMgIWltcG9ydGFudDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWluZm8pICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmZvIHtcXG4gIGJhY2tncm91bmQ6ICMzMWNjZWMgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItaW5mbykgIWltcG9ydGFudDtcXG59XFxuLnRleHQtd2FybmluZyB7XFxuICBjb2xvcjogI2YyYzAzNyAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3Itd2FybmluZykgIWltcG9ydGFudDtcXG59XFxuLmJnLXdhcm5pbmcge1xcbiAgYmFja2dyb3VuZDogI2YyYzAzNyAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci13YXJuaW5nKSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC13aGl0ZSB7XFxuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctd2hpdGUge1xcbiAgYmFja2dyb3VuZDogI2ZmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibGFjayB7XFxuICBjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmxhY2sge1xcbiAgYmFja2dyb3VuZDogIzAwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodCB7XFxuICBjb2xvcjogI2JkYmRiZCAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbGlnaHQpICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodCB7XFxuICBiYWNrZ3JvdW5kOiAjYmRiZGJkICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLWxpZ2h0KSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kYXJrIHtcXG4gIGNvbG9yOiAjNDI0MjQyICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1kYXJrKSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGFyayB7XFxuICBiYWNrZ3JvdW5kOiAjNDI0MjQyICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLWRhcmspICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRyYW5zcGFyZW50IHtcXG4gIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcbn1cXG4uYmctdHJhbnNwYXJlbnQge1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkIHtcXG4gIGNvbG9yOiAjZjQ0MzM2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC0xIHtcXG4gIGNvbG9yOiAjZmZlYmVlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC0yIHtcXG4gIGNvbG9yOiAjZmZjZGQyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC0zIHtcXG4gIGNvbG9yOiAjZWY5YTlhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC00IHtcXG4gIGNvbG9yOiAjZTU3MzczICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC01IHtcXG4gIGNvbG9yOiAjZWY1MzUwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC02IHtcXG4gIGNvbG9yOiAjZjQ0MzM2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC03IHtcXG4gIGNvbG9yOiAjZTUzOTM1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC04IHtcXG4gIGNvbG9yOiAjZDMyZjJmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC05IHtcXG4gIGNvbG9yOiAjYzYyODI4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC0xMCB7XFxuICBjb2xvcjogI2I3MWMxYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtMTEge1xcbiAgY29sb3I6ICNmZjhhODAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTEyIHtcXG4gIGNvbG9yOiAjZmY1MjUyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC0xMyB7XFxuICBjb2xvcjogI2ZmMTc0NCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtMTQge1xcbiAgY29sb3I6ICNkNTAwMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluayB7XFxuICBjb2xvcjogI2U5MWU2MyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTEge1xcbiAgY29sb3I6ICNmY2U0ZWMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay0yIHtcXG4gIGNvbG9yOiAjZjhiYmQwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstMyB7XFxuICBjb2xvcjogI2Y0OGZiMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTQge1xcbiAgY29sb3I6ICNmMDYyOTIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay01IHtcXG4gIGNvbG9yOiAjZWM0MDdhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstNiB7XFxuICBjb2xvcjogI2U5MWU2MyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTcge1xcbiAgY29sb3I6ICNkODFiNjAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay04IHtcXG4gIGNvbG9yOiAjYzIxODViICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstOSB7XFxuICBjb2xvcjogI2FkMTQ1NyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTEwIHtcXG4gIGNvbG9yOiAjODgwZTRmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstMTEge1xcbiAgY29sb3I6ICNmZjgwYWIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay0xMiB7XFxuICBjb2xvcjogI2ZmNDA4MSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTEzIHtcXG4gIGNvbG9yOiAjZjUwMDU3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstMTQge1xcbiAgY29sb3I6ICNjNTExNjIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlIHtcXG4gIGNvbG9yOiAjOWMyN2IwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS0xIHtcXG4gIGNvbG9yOiAjZjNlNWY1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS0yIHtcXG4gIGNvbG9yOiAjZTFiZWU3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS0zIHtcXG4gIGNvbG9yOiAjY2U5M2Q4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS00IHtcXG4gIGNvbG9yOiAjYmE2OGM4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS01IHtcXG4gIGNvbG9yOiAjYWI0N2JjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS02IHtcXG4gIGNvbG9yOiAjOWMyN2IwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS03IHtcXG4gIGNvbG9yOiAjOGUyNGFhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS04IHtcXG4gIGNvbG9yOiAjN2IxZmEyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS05IHtcXG4gIGNvbG9yOiAjNmExYjlhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS0xMCB7XFxuICBjb2xvcjogIzRhMTQ4YyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtMTEge1xcbiAgY29sb3I6ICNlYTgwZmMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTEyIHtcXG4gIGNvbG9yOiAjZTA0MGZiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS0xMyB7XFxuICBjb2xvcjogI2Q1MDBmOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtMTQge1xcbiAgY29sb3I6ICNhMGYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUge1xcbiAgY29sb3I6ICM2NzNhYjcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtMSB7XFxuICBjb2xvcjogI2VkZTdmNiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS0yIHtcXG4gIGNvbG9yOiAjZDFjNGU5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTMge1xcbiAgY29sb3I6ICNiMzlkZGIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtNCB7XFxuICBjb2xvcjogIzk1NzVjZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS01IHtcXG4gIGNvbG9yOiAjN2U1N2MyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTYge1xcbiAgY29sb3I6ICM2NzNhYjcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtNyB7XFxuICBjb2xvcjogIzVlMzViMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS04IHtcXG4gIGNvbG9yOiAjNTEyZGE4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTkge1xcbiAgY29sb3I6ICM0NTI3YTAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtMTAge1xcbiAgY29sb3I6ICMzMTFiOTIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtMTEge1xcbiAgY29sb3I6ICNiMzg4ZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtMTIge1xcbiAgY29sb3I6ICM3YzRkZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtMTMge1xcbiAgY29sb3I6ICM2NTFmZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtMTQge1xcbiAgY29sb3I6ICM2MjAwZWEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvIHtcXG4gIGNvbG9yOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby0xIHtcXG4gIGNvbG9yOiAjZThlYWY2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby0yIHtcXG4gIGNvbG9yOiAjYzVjYWU5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby0zIHtcXG4gIGNvbG9yOiAjOWZhOGRhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby00IHtcXG4gIGNvbG9yOiAjNzk4NmNiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby01IHtcXG4gIGNvbG9yOiAjNWM2YmMwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby02IHtcXG4gIGNvbG9yOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby03IHtcXG4gIGNvbG9yOiAjMzk0OWFiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby04IHtcXG4gIGNvbG9yOiAjMzAzZjlmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby05IHtcXG4gIGNvbG9yOiAjMjgzNTkzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby0xMCB7XFxuICBjb2xvcjogIzFhMjM3ZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tMTEge1xcbiAgY29sb3I6ICM4YzllZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTEyIHtcXG4gIGNvbG9yOiAjNTM2ZGZlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby0xMyB7XFxuICBjb2xvcjogIzNkNWFmZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tMTQge1xcbiAgY29sb3I6ICMzMDRmZmUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZSB7XFxuICBjb2xvcjogIzIxOTZmMyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTEge1xcbiAgY29sb3I6ICNlM2YyZmQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS0yIHtcXG4gIGNvbG9yOiAjYmJkZWZiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtMyB7XFxuICBjb2xvcjogIzkwY2FmOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTQge1xcbiAgY29sb3I6ICM2NGI1ZjYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS01IHtcXG4gIGNvbG9yOiAjNDJhNWY1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtNiB7XFxuICBjb2xvcjogIzIxOTZmMyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTcge1xcbiAgY29sb3I6ICMxZTg4ZTUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS04IHtcXG4gIGNvbG9yOiAjMTk3NmQyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtOSB7XFxuICBjb2xvcjogIzE1NjVjMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTEwIHtcXG4gIGNvbG9yOiAjMGQ0N2ExICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtMTEge1xcbiAgY29sb3I6ICM4MmIxZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS0xMiB7XFxuICBjb2xvcjogIzQ0OGFmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTEzIHtcXG4gIGNvbG9yOiAjMjk3OWZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtMTQge1xcbiAgY29sb3I6ICMyOTYyZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZSB7XFxuICBjb2xvcjogIzAzYTlmNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTEge1xcbiAgY29sb3I6ICNlMWY1ZmUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS0yIHtcXG4gIGNvbG9yOiAjYjNlNWZjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtMyB7XFxuICBjb2xvcjogIzgxZDRmYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTQge1xcbiAgY29sb3I6ICM0ZmMzZjcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS01IHtcXG4gIGNvbG9yOiAjMjliNmY2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtNiB7XFxuICBjb2xvcjogIzAzYTlmNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTcge1xcbiAgY29sb3I6ICMwMzliZTUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS04IHtcXG4gIGNvbG9yOiAjMDI4OGQxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtOSB7XFxuICBjb2xvcjogIzAyNzdiZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTEwIHtcXG4gIGNvbG9yOiAjMDE1NzliICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtMTEge1xcbiAgY29sb3I6ICM4MGQ4ZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS0xMiB7XFxuICBjb2xvcjogIzQwYzRmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTEzIHtcXG4gIGNvbG9yOiAjMDBiMGZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtMTQge1xcbiAgY29sb3I6ICMwMDkxZWEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbiB7XFxuICBjb2xvcjogIzAwYmNkNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTEge1xcbiAgY29sb3I6ICNlMGY3ZmEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi0yIHtcXG4gIGNvbG9yOiAjYjJlYmYyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tMyB7XFxuICBjb2xvcjogIzgwZGVlYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTQge1xcbiAgY29sb3I6ICM0ZGQwZTEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi01IHtcXG4gIGNvbG9yOiAjMjZjNmRhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tNiB7XFxuICBjb2xvcjogIzAwYmNkNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTcge1xcbiAgY29sb3I6ICMwMGFjYzEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi04IHtcXG4gIGNvbG9yOiAjMDA5N2E3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tOSB7XFxuICBjb2xvcjogIzAwODM4ZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTEwIHtcXG4gIGNvbG9yOiAjMDA2MDY0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tMTEge1xcbiAgY29sb3I6ICM4NGZmZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi0xMiB7XFxuICBjb2xvcjogIzE4ZmZmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTEzIHtcXG4gIGNvbG9yOiAjMDBlNWZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tMTQge1xcbiAgY29sb3I6ICMwMGI4ZDQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbCB7XFxuICBjb2xvcjogIzAwOTY4OCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTEge1xcbiAgY29sb3I6ICNlMGYyZjEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC0yIHtcXG4gIGNvbG9yOiAjYjJkZmRiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtMyB7XFxuICBjb2xvcjogIzgwY2JjNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTQge1xcbiAgY29sb3I6ICM0ZGI2YWMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC01IHtcXG4gIGNvbG9yOiAjMjZhNjlhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtNiB7XFxuICBjb2xvcjogIzAwOTY4OCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTcge1xcbiAgY29sb3I6ICMwMDg5N2IgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC04IHtcXG4gIGNvbG9yOiAjMDA3OTZiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtOSB7XFxuICBjb2xvcjogIzAwNjk1YyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTEwIHtcXG4gIGNvbG9yOiAjMDA0ZDQwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtMTEge1xcbiAgY29sb3I6ICNhN2ZmZWIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC0xMiB7XFxuICBjb2xvcjogIzY0ZmZkYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTEzIHtcXG4gIGNvbG9yOiAjMWRlOWI2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtMTQge1xcbiAgY29sb3I6ICMwMGJmYTUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4ge1xcbiAgY29sb3I6ICM0Y2FmNTAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tMSB7XFxuICBjb2xvcjogI2U4ZjVlOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi0yIHtcXG4gIGNvbG9yOiAjYzhlNmM5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTMge1xcbiAgY29sb3I6ICNhNWQ2YTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tNCB7XFxuICBjb2xvcjogIzgxYzc4NCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi01IHtcXG4gIGNvbG9yOiAjNjZiYjZhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTYge1xcbiAgY29sb3I6ICM0Y2FmNTAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tNyB7XFxuICBjb2xvcjogIzQzYTA0NyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi04IHtcXG4gIGNvbG9yOiAjMzg4ZTNjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTkge1xcbiAgY29sb3I6ICMyZTdkMzIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tMTAge1xcbiAgY29sb3I6ICMxYjVlMjAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tMTEge1xcbiAgY29sb3I6ICNiOWY2Y2EgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tMTIge1xcbiAgY29sb3I6ICM2OWYwYWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tMTMge1xcbiAgY29sb3I6ICMwMGU2NzYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tMTQge1xcbiAgY29sb3I6ICMwMGM4NTMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4ge1xcbiAgY29sb3I6ICM4YmMzNGEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tMSB7XFxuICBjb2xvcjogI2YxZjhlOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi0yIHtcXG4gIGNvbG9yOiAjZGNlZGM4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTMge1xcbiAgY29sb3I6ICNjNWUxYTUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tNCB7XFxuICBjb2xvcjogI2FlZDU4MSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi01IHtcXG4gIGNvbG9yOiAjOWNjYzY1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTYge1xcbiAgY29sb3I6ICM4YmMzNGEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tNyB7XFxuICBjb2xvcjogIzdjYjM0MiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi04IHtcXG4gIGNvbG9yOiAjNjg5ZjM4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTkge1xcbiAgY29sb3I6ICM1NThiMmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tMTAge1xcbiAgY29sb3I6ICMzMzY5MWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tMTEge1xcbiAgY29sb3I6ICNjY2ZmOTAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tMTIge1xcbiAgY29sb3I6ICNiMmZmNTkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tMTMge1xcbiAgY29sb3I6ICM3NmZmMDMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tMTQge1xcbiAgY29sb3I6ICM2NGRkMTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZSB7XFxuICBjb2xvcjogI2NkZGMzOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTEge1xcbiAgY29sb3I6ICNmOWZiZTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS0yIHtcXG4gIGNvbG9yOiAjZjBmNGMzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtMyB7XFxuICBjb2xvcjogI2U2ZWU5YyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTQge1xcbiAgY29sb3I6ICNkY2U3NzUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS01IHtcXG4gIGNvbG9yOiAjZDRlMTU3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtNiB7XFxuICBjb2xvcjogI2NkZGMzOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTcge1xcbiAgY29sb3I6ICNjMGNhMzMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS04IHtcXG4gIGNvbG9yOiAjYWZiNDJiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtOSB7XFxuICBjb2xvcjogIzllOWQyNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTEwIHtcXG4gIGNvbG9yOiAjODI3NzE3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtMTEge1xcbiAgY29sb3I6ICNmNGZmODEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS0xMiB7XFxuICBjb2xvcjogI2VlZmY0MSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTEzIHtcXG4gIGNvbG9yOiAjYzZmZjAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtMTQge1xcbiAgY29sb3I6ICNhZWVhMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93IHtcXG4gIGNvbG9yOiAjZmZlYjNiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy0xIHtcXG4gIGNvbG9yOiAjZmZmZGU3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy0yIHtcXG4gIGNvbG9yOiAjZmZmOWM0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy0zIHtcXG4gIGNvbG9yOiAjZmZmNTlkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy00IHtcXG4gIGNvbG9yOiAjZmZmMTc2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy01IHtcXG4gIGNvbG9yOiAjZmZlZTU4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy02IHtcXG4gIGNvbG9yOiAjZmZlYjNiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy03IHtcXG4gIGNvbG9yOiAjZmRkODM1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy04IHtcXG4gIGNvbG9yOiAjZmJjMDJkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy05IHtcXG4gIGNvbG9yOiAjZjlhODI1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy0xMCB7XFxuICBjb2xvcjogI2Y1N2YxNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctMTEge1xcbiAgY29sb3I6ICNmZmZmOGQgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTEyIHtcXG4gIGNvbG9yOiAjZmYwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy0xMyB7XFxuICBjb2xvcjogI2ZmZWEwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctMTQge1xcbiAgY29sb3I6ICNmZmQ2MDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXIge1xcbiAgY29sb3I6ICNmZmMxMDcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItMSB7XFxuICBjb2xvcjogI2ZmZjhlMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci0yIHtcXG4gIGNvbG9yOiAjZmZlY2IzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTMge1xcbiAgY29sb3I6ICNmZmUwODIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItNCB7XFxuICBjb2xvcjogI2ZmZDU0ZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci01IHtcXG4gIGNvbG9yOiAjZmZjYTI4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTYge1xcbiAgY29sb3I6ICNmZmMxMDcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItNyB7XFxuICBjb2xvcjogI2ZmYjMwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci04IHtcXG4gIGNvbG9yOiAjZmZhMDAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTkge1xcbiAgY29sb3I6ICNmZjhmMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItMTAge1xcbiAgY29sb3I6ICNmZjZmMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItMTEge1xcbiAgY29sb3I6ICNmZmU1N2YgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItMTIge1xcbiAgY29sb3I6ICNmZmQ3NDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItMTMge1xcbiAgY29sb3I6ICNmZmM0MDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItMTQge1xcbiAgY29sb3I6ICNmZmFiMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlIHtcXG4gIGNvbG9yOiAjZmY5ODAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS0xIHtcXG4gIGNvbG9yOiAjZmZmM2UwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS0yIHtcXG4gIGNvbG9yOiAjZmZlMGIyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS0zIHtcXG4gIGNvbG9yOiAjZmZjYzgwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS00IHtcXG4gIGNvbG9yOiAjZmZiNzRkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS01IHtcXG4gIGNvbG9yOiAjZmZhNzI2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS02IHtcXG4gIGNvbG9yOiAjZmY5ODAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS03IHtcXG4gIGNvbG9yOiAjZmI4YzAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS04IHtcXG4gIGNvbG9yOiAjZjU3YzAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS05IHtcXG4gIGNvbG9yOiAjZWY2YzAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS0xMCB7XFxuICBjb2xvcjogI2U2NTEwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtMTEge1xcbiAgY29sb3I6ICNmZmQxODAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTEyIHtcXG4gIGNvbG9yOiAjZmZhYjQwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS0xMyB7XFxuICBjb2xvcjogI2ZmOTEwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtMTQge1xcbiAgY29sb3I6ICNmZjZkMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2Uge1xcbiAgY29sb3I6ICNmZjU3MjIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtMSB7XFxuICBjb2xvcjogI2ZiZTllNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS0yIHtcXG4gIGNvbG9yOiAjZmZjY2JjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTMge1xcbiAgY29sb3I6ICNmZmFiOTEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtNCB7XFxuICBjb2xvcjogI2ZmOGE2NSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS01IHtcXG4gIGNvbG9yOiAjZmY3MDQzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTYge1xcbiAgY29sb3I6ICNmZjU3MjIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtNyB7XFxuICBjb2xvcjogI2Y0NTExZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS04IHtcXG4gIGNvbG9yOiAjZTY0YTE5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTkge1xcbiAgY29sb3I6ICNkODQzMTUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtMTAge1xcbiAgY29sb3I6ICNiZjM2MGMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtMTEge1xcbiAgY29sb3I6ICNmZjllODAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtMTIge1xcbiAgY29sb3I6ICNmZjZlNDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtMTMge1xcbiAgY29sb3I6ICNmZjNkMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtMTQge1xcbiAgY29sb3I6ICNkZDJjMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24ge1xcbiAgY29sb3I6ICM3OTU1NDggIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tMSB7XFxuICBjb2xvcjogI2VmZWJlOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi0yIHtcXG4gIGNvbG9yOiAjZDdjY2M4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTMge1xcbiAgY29sb3I6ICNiY2FhYTQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tNCB7XFxuICBjb2xvcjogI2ExODg3ZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi01IHtcXG4gIGNvbG9yOiAjOGQ2ZTYzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTYge1xcbiAgY29sb3I6ICM3OTU1NDggIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tNyB7XFxuICBjb2xvcjogIzZkNGM0MSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi04IHtcXG4gIGNvbG9yOiAjNWQ0MDM3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTkge1xcbiAgY29sb3I6ICM0ZTM0MmUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tMTAge1xcbiAgY29sb3I6ICMzZTI3MjMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tMTEge1xcbiAgY29sb3I6ICNkN2NjYzggIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tMTIge1xcbiAgY29sb3I6ICNiY2FhYTQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tMTMge1xcbiAgY29sb3I6ICM4ZDZlNjMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tMTQge1xcbiAgY29sb3I6ICM1ZDQwMzcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleSB7XFxuICBjb2xvcjogIzllOWU5ZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTEge1xcbiAgY29sb3I6ICNmYWZhZmEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS0yIHtcXG4gIGNvbG9yOiAjZjVmNWY1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktMyB7XFxuICBjb2xvcjogI2VlZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTQge1xcbiAgY29sb3I6ICNlMGUwZTAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS01IHtcXG4gIGNvbG9yOiAjYmRiZGJkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktNiB7XFxuICBjb2xvcjogIzllOWU5ZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTcge1xcbiAgY29sb3I6ICM3NTc1NzUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS04IHtcXG4gIGNvbG9yOiAjNjE2MTYxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktOSB7XFxuICBjb2xvcjogIzQyNDI0MiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTEwIHtcXG4gIGNvbG9yOiAjMjEyMTIxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktMTEge1xcbiAgY29sb3I6ICNmNWY1ZjUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS0xMiB7XFxuICBjb2xvcjogI2VlZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTEzIHtcXG4gIGNvbG9yOiAjYmRiZGJkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktMTQge1xcbiAgY29sb3I6ICM2MTYxNjEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5IHtcXG4gIGNvbG9yOiAjNjA3ZDhiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS0xIHtcXG4gIGNvbG9yOiAjZWNlZmYxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS0yIHtcXG4gIGNvbG9yOiAjY2ZkOGRjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS0zIHtcXG4gIGNvbG9yOiAjYjBiZWM1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS00IHtcXG4gIGNvbG9yOiAjOTBhNGFlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS01IHtcXG4gIGNvbG9yOiAjNzg5MDljICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS02IHtcXG4gIGNvbG9yOiAjNjA3ZDhiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS03IHtcXG4gIGNvbG9yOiAjNTQ2ZTdhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS04IHtcXG4gIGNvbG9yOiAjNDU1YTY0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS05IHtcXG4gIGNvbG9yOiAjMzc0NzRmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS0xMCB7XFxuICBjb2xvcjogIzI2MzIzOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktMTEge1xcbiAgY29sb3I6ICNjZmQ4ZGMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTEyIHtcXG4gIGNvbG9yOiAjYjBiZWM1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS0xMyB7XFxuICBjb2xvcjogIzc4OTA5YyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktMTQge1xcbiAgY29sb3I6ICM0NTVhNjQgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZCB7XFxuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlYmVlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZjZGQyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtMyB7XFxuICBiYWNrZ3JvdW5kOiAjZWY5YTlhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtNCB7XFxuICBiYWNrZ3JvdW5kOiAjZTU3MzczICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtNSB7XFxuICBiYWNrZ3JvdW5kOiAjZWY1MzUwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtNiB7XFxuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtNyB7XFxuICBiYWNrZ3JvdW5kOiAjZTUzOTM1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtOCB7XFxuICBiYWNrZ3JvdW5kOiAjZDMyZjJmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtOSB7XFxuICBiYWNrZ3JvdW5kOiAjYzYyODI4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtMTAge1xcbiAgYmFja2dyb3VuZDogI2I3MWMxYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTExIHtcXG4gIGJhY2tncm91bmQ6ICNmZjhhODAgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmY1MjUyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtMTMge1xcbiAgYmFja2dyb3VuZDogI2ZmMTc0NCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTE0IHtcXG4gIGJhY2tncm91bmQ6ICNkNTAwMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmsge1xcbiAgYmFja2dyb3VuZDogI2U5MWU2MyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay0xIHtcXG4gIGJhY2tncm91bmQ6ICNmY2U0ZWMgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstMiB7XFxuICBiYWNrZ3JvdW5kOiAjZjhiYmQwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTMge1xcbiAgYmFja2dyb3VuZDogI2Y0OGZiMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay00IHtcXG4gIGJhY2tncm91bmQ6ICNmMDYyOTIgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstNSB7XFxuICBiYWNrZ3JvdW5kOiAjZWM0MDdhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTYge1xcbiAgYmFja2dyb3VuZDogI2U5MWU2MyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay03IHtcXG4gIGJhY2tncm91bmQ6ICNkODFiNjAgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstOCB7XFxuICBiYWNrZ3JvdW5kOiAjYzIxODViICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTkge1xcbiAgYmFja2dyb3VuZDogI2FkMTQ1NyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjODgwZTRmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTExIHtcXG4gIGJhY2tncm91bmQ6ICNmZjgwYWIgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstMTIge1xcbiAgYmFja2dyb3VuZDogI2ZmNDA4MSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjZjUwMDU3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTE0IHtcXG4gIGJhY2tncm91bmQ6ICNjNTExNjIgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZSB7XFxuICBiYWNrZ3JvdW5kOiAjOWMyN2IwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZjNlNWY1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtMiB7XFxuICBiYWNrZ3JvdW5kOiAjZTFiZWU3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtMyB7XFxuICBiYWNrZ3JvdW5kOiAjY2U5M2Q4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtNCB7XFxuICBiYWNrZ3JvdW5kOiAjYmE2OGM4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtNSB7XFxuICBiYWNrZ3JvdW5kOiAjYWI0N2JjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtNiB7XFxuICBiYWNrZ3JvdW5kOiAjOWMyN2IwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtNyB7XFxuICBiYWNrZ3JvdW5kOiAjOGUyNGFhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtOCB7XFxuICBiYWNrZ3JvdW5kOiAjN2IxZmEyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtOSB7XFxuICBiYWNrZ3JvdW5kOiAjNmExYjlhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtMTAge1xcbiAgYmFja2dyb3VuZDogIzRhMTQ4YyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTExIHtcXG4gIGJhY2tncm91bmQ6ICNlYTgwZmMgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjZTA0MGZiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtMTMge1xcbiAgYmFja2dyb3VuZDogI2Q1MDBmOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTE0IHtcXG4gIGJhY2tncm91bmQ6ICNhMGYgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlIHtcXG4gIGJhY2tncm91bmQ6ICM2NzNhYjcgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTEge1xcbiAgYmFja2dyb3VuZDogI2VkZTdmNiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtMiB7XFxuICBiYWNrZ3JvdW5kOiAjZDFjNGU5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS0zIHtcXG4gIGJhY2tncm91bmQ6ICNiMzlkZGIgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTQge1xcbiAgYmFja2dyb3VuZDogIzk1NzVjZCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtNSB7XFxuICBiYWNrZ3JvdW5kOiAjN2U1N2MyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS02IHtcXG4gIGJhY2tncm91bmQ6ICM2NzNhYjcgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTcge1xcbiAgYmFja2dyb3VuZDogIzVlMzViMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtOCB7XFxuICBiYWNrZ3JvdW5kOiAjNTEyZGE4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS05IHtcXG4gIGJhY2tncm91bmQ6ICM0NTI3YTAgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTEwIHtcXG4gIGJhY2tncm91bmQ6ICMzMTFiOTIgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTExIHtcXG4gIGJhY2tncm91bmQ6ICNiMzg4ZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTEyIHtcXG4gIGJhY2tncm91bmQ6ICM3YzRkZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTEzIHtcXG4gIGJhY2tncm91bmQ6ICM2NTFmZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTE0IHtcXG4gIGJhY2tncm91bmQ6ICM2MjAwZWEgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnbyB7XFxuICBiYWNrZ3JvdW5kOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tMSB7XFxuICBiYWNrZ3JvdW5kOiAjZThlYWY2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tMiB7XFxuICBiYWNrZ3JvdW5kOiAjYzVjYWU5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tMyB7XFxuICBiYWNrZ3JvdW5kOiAjOWZhOGRhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tNCB7XFxuICBiYWNrZ3JvdW5kOiAjNzk4NmNiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tNSB7XFxuICBiYWNrZ3JvdW5kOiAjNWM2YmMwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tNiB7XFxuICBiYWNrZ3JvdW5kOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tNyB7XFxuICBiYWNrZ3JvdW5kOiAjMzk0OWFiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tOCB7XFxuICBiYWNrZ3JvdW5kOiAjMzAzZjlmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tOSB7XFxuICBiYWNrZ3JvdW5kOiAjMjgzNTkzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tMTAge1xcbiAgYmFja2dyb3VuZDogIzFhMjM3ZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTExIHtcXG4gIGJhY2tncm91bmQ6ICM4YzllZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjNTM2ZGZlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tMTMge1xcbiAgYmFja2dyb3VuZDogIzNkNWFmZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTE0IHtcXG4gIGJhY2tncm91bmQ6ICMzMDRmZmUgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUge1xcbiAgYmFja2dyb3VuZDogIzIxOTZmMyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS0xIHtcXG4gIGJhY2tncm91bmQ6ICNlM2YyZmQgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtMiB7XFxuICBiYWNrZ3JvdW5kOiAjYmJkZWZiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTMge1xcbiAgYmFja2dyb3VuZDogIzkwY2FmOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS00IHtcXG4gIGJhY2tncm91bmQ6ICM2NGI1ZjYgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtNSB7XFxuICBiYWNrZ3JvdW5kOiAjNDJhNWY1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTYge1xcbiAgYmFja2dyb3VuZDogIzIxOTZmMyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS03IHtcXG4gIGJhY2tncm91bmQ6ICMxZTg4ZTUgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtOCB7XFxuICBiYWNrZ3JvdW5kOiAjMTk3NmQyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTkge1xcbiAgYmFja2dyb3VuZDogIzE1NjVjMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMGQ0N2ExICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTExIHtcXG4gIGJhY2tncm91bmQ6ICM4MmIxZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtMTIge1xcbiAgYmFja2dyb3VuZDogIzQ0OGFmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjMjk3OWZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTE0IHtcXG4gIGJhY2tncm91bmQ6ICMyOTYyZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUge1xcbiAgYmFja2dyb3VuZDogIzAzYTlmNCAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS0xIHtcXG4gIGJhY2tncm91bmQ6ICNlMWY1ZmUgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtMiB7XFxuICBiYWNrZ3JvdW5kOiAjYjNlNWZjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTMge1xcbiAgYmFja2dyb3VuZDogIzgxZDRmYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS00IHtcXG4gIGJhY2tncm91bmQ6ICM0ZmMzZjcgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtNSB7XFxuICBiYWNrZ3JvdW5kOiAjMjliNmY2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTYge1xcbiAgYmFja2dyb3VuZDogIzAzYTlmNCAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS03IHtcXG4gIGJhY2tncm91bmQ6ICMwMzliZTUgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtOCB7XFxuICBiYWNrZ3JvdW5kOiAjMDI4OGQxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTkge1xcbiAgYmFja2dyb3VuZDogIzAyNzdiZCAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMDE1NzliICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTExIHtcXG4gIGJhY2tncm91bmQ6ICM4MGQ4ZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtMTIge1xcbiAgYmFja2dyb3VuZDogIzQwYzRmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjMDBiMGZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTE0IHtcXG4gIGJhY2tncm91bmQ6ICMwMDkxZWEgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4ge1xcbiAgYmFja2dyb3VuZDogIzAwYmNkNCAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi0xIHtcXG4gIGJhY2tncm91bmQ6ICNlMGY3ZmEgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tMiB7XFxuICBiYWNrZ3JvdW5kOiAjYjJlYmYyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTMge1xcbiAgYmFja2dyb3VuZDogIzgwZGVlYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi00IHtcXG4gIGJhY2tncm91bmQ6ICM0ZGQwZTEgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tNSB7XFxuICBiYWNrZ3JvdW5kOiAjMjZjNmRhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTYge1xcbiAgYmFja2dyb3VuZDogIzAwYmNkNCAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi03IHtcXG4gIGJhY2tncm91bmQ6ICMwMGFjYzEgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tOCB7XFxuICBiYWNrZ3JvdW5kOiAjMDA5N2E3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTkge1xcbiAgYmFja2dyb3VuZDogIzAwODM4ZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMDA2MDY0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTExIHtcXG4gIGJhY2tncm91bmQ6ICM4NGZmZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tMTIge1xcbiAgYmFja2dyb3VuZDogIzE4ZmZmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjMDBlNWZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTE0IHtcXG4gIGJhY2tncm91bmQ6ICMwMGI4ZDQgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwge1xcbiAgYmFja2dyb3VuZDogIzAwOTY4OCAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC0xIHtcXG4gIGJhY2tncm91bmQ6ICNlMGYyZjEgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtMiB7XFxuICBiYWNrZ3JvdW5kOiAjYjJkZmRiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTMge1xcbiAgYmFja2dyb3VuZDogIzgwY2JjNCAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC00IHtcXG4gIGJhY2tncm91bmQ6ICM0ZGI2YWMgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtNSB7XFxuICBiYWNrZ3JvdW5kOiAjMjZhNjlhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTYge1xcbiAgYmFja2dyb3VuZDogIzAwOTY4OCAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC03IHtcXG4gIGJhY2tncm91bmQ6ICMwMDg5N2IgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtOCB7XFxuICBiYWNrZ3JvdW5kOiAjMDA3OTZiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTkge1xcbiAgYmFja2dyb3VuZDogIzAwNjk1YyAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMDA0ZDQwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTExIHtcXG4gIGJhY2tncm91bmQ6ICNhN2ZmZWIgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtMTIge1xcbiAgYmFja2dyb3VuZDogIzY0ZmZkYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjMWRlOWI2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTE0IHtcXG4gIGJhY2tncm91bmQ6ICMwMGJmYTUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuIHtcXG4gIGJhY2tncm91bmQ6ICM0Y2FmNTAgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTEge1xcbiAgYmFja2dyb3VuZDogI2U4ZjVlOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tMiB7XFxuICBiYWNrZ3JvdW5kOiAjYzhlNmM5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi0zIHtcXG4gIGJhY2tncm91bmQ6ICNhNWQ2YTcgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTQge1xcbiAgYmFja2dyb3VuZDogIzgxYzc4NCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tNSB7XFxuICBiYWNrZ3JvdW5kOiAjNjZiYjZhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi02IHtcXG4gIGJhY2tncm91bmQ6ICM0Y2FmNTAgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTcge1xcbiAgYmFja2dyb3VuZDogIzQzYTA0NyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tOCB7XFxuICBiYWNrZ3JvdW5kOiAjMzg4ZTNjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi05IHtcXG4gIGJhY2tncm91bmQ6ICMyZTdkMzIgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTEwIHtcXG4gIGJhY2tncm91bmQ6ICMxYjVlMjAgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTExIHtcXG4gIGJhY2tncm91bmQ6ICNiOWY2Y2EgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTEyIHtcXG4gIGJhY2tncm91bmQ6ICM2OWYwYWUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTEzIHtcXG4gIGJhY2tncm91bmQ6ICMwMGU2NzYgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTE0IHtcXG4gIGJhY2tncm91bmQ6ICMwMGM4NTMgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuIHtcXG4gIGJhY2tncm91bmQ6ICM4YmMzNGEgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTEge1xcbiAgYmFja2dyb3VuZDogI2YxZjhlOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tMiB7XFxuICBiYWNrZ3JvdW5kOiAjZGNlZGM4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi0zIHtcXG4gIGJhY2tncm91bmQ6ICNjNWUxYTUgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTQge1xcbiAgYmFja2dyb3VuZDogI2FlZDU4MSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tNSB7XFxuICBiYWNrZ3JvdW5kOiAjOWNjYzY1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi02IHtcXG4gIGJhY2tncm91bmQ6ICM4YmMzNGEgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTcge1xcbiAgYmFja2dyb3VuZDogIzdjYjM0MiAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tOCB7XFxuICBiYWNrZ3JvdW5kOiAjNjg5ZjM4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi05IHtcXG4gIGJhY2tncm91bmQ6ICM1NThiMmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTEwIHtcXG4gIGJhY2tncm91bmQ6ICMzMzY5MWUgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTExIHtcXG4gIGJhY2tncm91bmQ6ICNjY2ZmOTAgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTEyIHtcXG4gIGJhY2tncm91bmQ6ICNiMmZmNTkgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTEzIHtcXG4gIGJhY2tncm91bmQ6ICM3NmZmMDMgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTE0IHtcXG4gIGJhY2tncm91bmQ6ICM2NGRkMTcgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUge1xcbiAgYmFja2dyb3VuZDogI2NkZGMzOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS0xIHtcXG4gIGJhY2tncm91bmQ6ICNmOWZiZTcgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtMiB7XFxuICBiYWNrZ3JvdW5kOiAjZjBmNGMzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTMge1xcbiAgYmFja2dyb3VuZDogI2U2ZWU5YyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS00IHtcXG4gIGJhY2tncm91bmQ6ICNkY2U3NzUgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtNSB7XFxuICBiYWNrZ3JvdW5kOiAjZDRlMTU3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTYge1xcbiAgYmFja2dyb3VuZDogI2NkZGMzOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS03IHtcXG4gIGJhY2tncm91bmQ6ICNjMGNhMzMgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtOCB7XFxuICBiYWNrZ3JvdW5kOiAjYWZiNDJiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTkge1xcbiAgYmFja2dyb3VuZDogIzllOWQyNCAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjODI3NzE3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTExIHtcXG4gIGJhY2tncm91bmQ6ICNmNGZmODEgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtMTIge1xcbiAgYmFja2dyb3VuZDogI2VlZmY0MSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjYzZmZjAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTE0IHtcXG4gIGJhY2tncm91bmQ6ICNhZWVhMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdyB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlYjNiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmZGU3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmOWM0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctMyB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmNTlkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctNCB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmMTc2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctNSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlZTU4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctNiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlYjNiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctNyB7XFxuICBiYWNrZ3JvdW5kOiAjZmRkODM1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctOCB7XFxuICBiYWNrZ3JvdW5kOiAjZmJjMDJkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctOSB7XFxuICBiYWNrZ3JvdW5kOiAjZjlhODI1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctMTAge1xcbiAgYmFja2dyb3VuZDogI2Y1N2YxNyAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTExIHtcXG4gIGJhY2tncm91bmQ6ICNmZmZmOGQgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmYwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctMTMge1xcbiAgYmFja2dyb3VuZDogI2ZmZWEwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTE0IHtcXG4gIGJhY2tncm91bmQ6ICNmZmQ2MDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyIHtcXG4gIGJhY2tncm91bmQ6ICNmZmMxMDcgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTEge1xcbiAgYmFja2dyb3VuZDogI2ZmZjhlMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlY2IzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci0zIHtcXG4gIGJhY2tncm91bmQ6ICNmZmUwODIgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTQge1xcbiAgYmFja2dyb3VuZDogI2ZmZDU0ZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItNSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZjYTI4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci02IHtcXG4gIGJhY2tncm91bmQ6ICNmZmMxMDcgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTcge1xcbiAgYmFja2dyb3VuZDogI2ZmYjMwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItOCB7XFxuICBiYWNrZ3JvdW5kOiAjZmZhMDAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci05IHtcXG4gIGJhY2tncm91bmQ6ICNmZjhmMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTEwIHtcXG4gIGJhY2tncm91bmQ6ICNmZjZmMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTExIHtcXG4gIGJhY2tncm91bmQ6ICNmZmU1N2YgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTEyIHtcXG4gIGJhY2tncm91bmQ6ICNmZmQ3NDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTEzIHtcXG4gIGJhY2tncm91bmQ6ICNmZmM0MDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTE0IHtcXG4gIGJhY2tncm91bmQ6ICNmZmFiMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZSB7XFxuICBiYWNrZ3JvdW5kOiAjZmY5ODAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmM2UwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlMGIyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtMyB7XFxuICBiYWNrZ3JvdW5kOiAjZmZjYzgwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtNCB7XFxuICBiYWNrZ3JvdW5kOiAjZmZiNzRkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtNSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZhNzI2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtNiB7XFxuICBiYWNrZ3JvdW5kOiAjZmY5ODAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtNyB7XFxuICBiYWNrZ3JvdW5kOiAjZmI4YzAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtOCB7XFxuICBiYWNrZ3JvdW5kOiAjZjU3YzAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtOSB7XFxuICBiYWNrZ3JvdW5kOiAjZWY2YzAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtMTAge1xcbiAgYmFja2dyb3VuZDogI2U2NTEwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTExIHtcXG4gIGJhY2tncm91bmQ6ICNmZmQxODAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZhYjQwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtMTMge1xcbiAgYmFja2dyb3VuZDogI2ZmOTEwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTE0IHtcXG4gIGJhY2tncm91bmQ6ICNmZjZkMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlIHtcXG4gIGJhY2tncm91bmQ6ICNmZjU3MjIgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTEge1xcbiAgYmFja2dyb3VuZDogI2ZiZTllNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZjY2JjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS0zIHtcXG4gIGJhY2tncm91bmQ6ICNmZmFiOTEgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTQge1xcbiAgYmFja2dyb3VuZDogI2ZmOGE2NSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtNSB7XFxuICBiYWNrZ3JvdW5kOiAjZmY3MDQzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS02IHtcXG4gIGJhY2tncm91bmQ6ICNmZjU3MjIgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTcge1xcbiAgYmFja2dyb3VuZDogI2Y0NTExZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtOCB7XFxuICBiYWNrZ3JvdW5kOiAjZTY0YTE5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS05IHtcXG4gIGJhY2tncm91bmQ6ICNkODQzMTUgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTEwIHtcXG4gIGJhY2tncm91bmQ6ICNiZjM2MGMgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTExIHtcXG4gIGJhY2tncm91bmQ6ICNmZjllODAgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTEyIHtcXG4gIGJhY2tncm91bmQ6ICNmZjZlNDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTEzIHtcXG4gIGJhY2tncm91bmQ6ICNmZjNkMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTE0IHtcXG4gIGJhY2tncm91bmQ6ICNkZDJjMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duIHtcXG4gIGJhY2tncm91bmQ6ICM3OTU1NDggIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTEge1xcbiAgYmFja2dyb3VuZDogI2VmZWJlOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tMiB7XFxuICBiYWNrZ3JvdW5kOiAjZDdjY2M4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi0zIHtcXG4gIGJhY2tncm91bmQ6ICNiY2FhYTQgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTQge1xcbiAgYmFja2dyb3VuZDogI2ExODg3ZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tNSB7XFxuICBiYWNrZ3JvdW5kOiAjOGQ2ZTYzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi02IHtcXG4gIGJhY2tncm91bmQ6ICM3OTU1NDggIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTcge1xcbiAgYmFja2dyb3VuZDogIzZkNGM0MSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tOCB7XFxuICBiYWNrZ3JvdW5kOiAjNWQ0MDM3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi05IHtcXG4gIGJhY2tncm91bmQ6ICM0ZTM0MmUgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTEwIHtcXG4gIGJhY2tncm91bmQ6ICMzZTI3MjMgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTExIHtcXG4gIGJhY2tncm91bmQ6ICNkN2NjYzggIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTEyIHtcXG4gIGJhY2tncm91bmQ6ICNiY2FhYTQgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTEzIHtcXG4gIGJhY2tncm91bmQ6ICM4ZDZlNjMgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTE0IHtcXG4gIGJhY2tncm91bmQ6ICM1ZDQwMzcgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXkge1xcbiAgYmFja2dyb3VuZDogIzllOWU5ZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS0xIHtcXG4gIGJhY2tncm91bmQ6ICNmYWZhZmEgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktMiB7XFxuICBiYWNrZ3JvdW5kOiAjZjVmNWY1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTMge1xcbiAgYmFja2dyb3VuZDogI2VlZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS00IHtcXG4gIGJhY2tncm91bmQ6ICNlMGUwZTAgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktNSB7XFxuICBiYWNrZ3JvdW5kOiAjYmRiZGJkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTYge1xcbiAgYmFja2dyb3VuZDogIzllOWU5ZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS03IHtcXG4gIGJhY2tncm91bmQ6ICM3NTc1NzUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktOCB7XFxuICBiYWNrZ3JvdW5kOiAjNjE2MTYxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTkge1xcbiAgYmFja2dyb3VuZDogIzQyNDI0MiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMjEyMTIxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTExIHtcXG4gIGJhY2tncm91bmQ6ICNmNWY1ZjUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktMTIge1xcbiAgYmFja2dyb3VuZDogI2VlZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjYmRiZGJkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTE0IHtcXG4gIGJhY2tncm91bmQ6ICM2MTYxNjEgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleSB7XFxuICBiYWNrZ3JvdW5kOiAjNjA3ZDhiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktMSB7XFxuICBiYWNrZ3JvdW5kOiAjZWNlZmYxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktMiB7XFxuICBiYWNrZ3JvdW5kOiAjY2ZkOGRjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktMyB7XFxuICBiYWNrZ3JvdW5kOiAjYjBiZWM1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktNCB7XFxuICBiYWNrZ3JvdW5kOiAjOTBhNGFlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktNSB7XFxuICBiYWNrZ3JvdW5kOiAjNzg5MDljICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktNiB7XFxuICBiYWNrZ3JvdW5kOiAjNjA3ZDhiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktNyB7XFxuICBiYWNrZ3JvdW5kOiAjNTQ2ZTdhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktOCB7XFxuICBiYWNrZ3JvdW5kOiAjNDU1YTY0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktOSB7XFxuICBiYWNrZ3JvdW5kOiAjMzc0NzRmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktMTAge1xcbiAgYmFja2dyb3VuZDogIzI2MzIzOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTExIHtcXG4gIGJhY2tncm91bmQ6ICNjZmQ4ZGMgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjYjBiZWM1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktMTMge1xcbiAgYmFja2dyb3VuZDogIzc4OTA5YyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTE0IHtcXG4gIGJhY2tncm91bmQ6ICM0NTVhNjQgIWltcG9ydGFudDtcXG59XFxuLnNoYWRvdy10cmFuc2l0aW9uIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC1ib3gtc2hhZG93IDAuMjhzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWltcG9ydGFudDtcXG4gIHRyYW5zaXRpb246IC13ZWJraXQtYm94LXNoYWRvdyAwLjI4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7XFxuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMjhzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWltcG9ydGFudDtcXG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4yOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgLXdlYmtpdC1ib3gtc2hhZG93IDAuMjhzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWltcG9ydGFudDtcXG59XFxuLnNoYWRvdy0xIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTEge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0ycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgLTFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0yIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0ycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTMge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA4cHggcmdiYSgwLDAsMCwwLjIpLCAwIDNweCA0cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggM3B4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggOHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAzcHggNHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTFweCA4cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0zcHggNHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAzcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xcHggOHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtM3B4IDRweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggM3B4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy00IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggNHB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIDRweCA1cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAxcHggMTBweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgNHB4IDVweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDFweCAxMHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtNCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTJweCA0cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgLTRweCA1cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMXB4IDEwcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMnB4IDRweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtNHB4IDVweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0xcHggMTBweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTUge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgNXB4IDhweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDFweCAxNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCA1cHggOHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMXB4IDE0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC01IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtNXB4IDhweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0xcHggMTRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0zcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIC01cHggOHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTFweCAxNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctNiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCA2cHggMTBweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDFweCAxOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCA2cHggMTBweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDFweCAxOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtNiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgLTZweCAxMHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTFweCAxOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgLTZweCAxMHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTFweCAxOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctNyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNHB4IDVweCAtMnB4IHJnYmEoMCwwLDAsMC4yKSwgMCA3cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMTZweCAxcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNXB4IC0ycHggcmdiYSgwLDAsMCwwLjIpLCAwIDdweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxNnB4IDFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTcge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC00cHggNXB4IC0ycHggcmdiYSgwLDAsMCwwLjIpLCAwIC03cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMnB4IDE2cHggMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTRweCA1cHggLTJweCByZ2JhKDAsMCwwLDAuMiksIDAgLTdweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0ycHggMTZweCAxcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy04IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA1cHggNXB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIDhweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxNHB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDVweCA1cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgOHB4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDE0cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtOCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTVweCA1cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgLThweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggMTRweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtNXB4IDVweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtOHB4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAxNHB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTkge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDVweCA2cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgOXB4IDEycHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDE2cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDZweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCA5cHggMTJweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMTZweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC05IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtNXB4IDZweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtOXB4IDEycHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAxNnB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC01cHggNnB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIC05cHggMTJweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDE2cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTAge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDZweCA2cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgMTBweCAxNHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDRweCAxOHB4IDNweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDZweCA2cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgMTBweCAxNHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDRweCAxOHB4IDNweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTEwIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtNnB4IDZweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTBweCAxNHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC00cHggMThweCAzcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtNnB4IDZweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTBweCAxNHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC00cHggMThweCAzcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0xMSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNnB4IDdweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxMXB4IDE1cHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNHB4IDIwcHggM3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgNnB4IDdweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxMXB4IDE1cHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNHB4IDIwcHggM3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTEge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC02cHggN3B4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xMXB4IDE1cHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTRweCAyMHB4IDNweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC02cHggN3B4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xMXB4IDE1cHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTRweCAyMHB4IDNweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTEyIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA3cHggOHB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIDEycHggMTdweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA1cHggMjJweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA3cHggOHB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIDEycHggMTdweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA1cHggMjJweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xMiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTdweCA4cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgLTEycHggMTdweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNXB4IDIycHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTdweCA4cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgLTEycHggMTdweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNXB4IDIycHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTMge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDdweCA4cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgMTNweCAxOXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDVweCAyNHB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDdweCA4cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgMTNweCAxOXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDVweCAyNHB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTEzIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtN3B4IDhweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTNweCAxOXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC01cHggMjRweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtN3B4IDhweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTNweCAxOXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC01cHggMjRweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0xNCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgN3B4IDlweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxNHB4IDIxcHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNXB4IDI2cHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgN3B4IDlweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxNHB4IDIxcHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNXB4IDI2cHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTQge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC03cHggOXB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xNHB4IDIxcHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTVweCAyNnB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC03cHggOXB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xNHB4IDIxcHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTVweCAyNnB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTE1IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA4cHggOXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE1cHggMjJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA2cHggMjhweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA4cHggOXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE1cHggMjJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA2cHggMjhweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xNSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLThweCA5cHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE1cHggMjJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNnB4IDI4cHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLThweCA5cHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE1cHggMjJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNnB4IDI4cHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTYge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDhweCAxMHB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE2cHggMjRweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA2cHggMzBweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA4cHggMTBweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxNnB4IDI0cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNnB4IDMwcHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTYge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC04cHggMTBweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTZweCAyNHB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC02cHggMzBweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtOHB4IDEwcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE2cHggMjRweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNnB4IDMwcHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTcge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDhweCAxMXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE3cHggMjZweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA2cHggMzJweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA4cHggMTFweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxN3B4IDI2cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNnB4IDMycHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTcge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC04cHggMTFweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTdweCAyNnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC02cHggMzJweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtOHB4IDExcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE3cHggMjZweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNnB4IDMycHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTgge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDlweCAxMXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE4cHggMjhweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA3cHggMzRweCA2cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA5cHggMTFweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxOHB4IDI4cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgN3B4IDM0cHggNnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTgge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC05cHggMTFweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMThweCAyOHB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC03cHggMzRweCA2cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtOXB4IDExcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE4cHggMjhweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtN3B4IDM0cHggNnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTkge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDlweCAxMnB4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE5cHggMjlweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA3cHggMzZweCA2cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA5cHggMTJweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxOXB4IDI5cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgN3B4IDM2cHggNnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTkge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC05cHggMTJweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTlweCAyOXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC03cHggMzZweCA2cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtOXB4IDEycHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE5cHggMjlweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtN3B4IDM2cHggNnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMjAge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDEwcHggMTNweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAyMHB4IDMxcHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOHB4IDM4cHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAxM3B4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIDIwcHggMzFweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA4cHggMzhweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0yMCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTEwcHggMTNweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjBweCAzMXB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC04cHggMzhweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMTBweCAxM3B4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yMHB4IDMxcHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLThweCAzOHB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTIxIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxMHB4IDEzcHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgMjFweCAzM3B4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDhweCA0MHB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMTNweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAyMXB4IDMzcHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOHB4IDQwcHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMjEge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xMHB4IDEzcHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgLTIxcHggMzNweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOHB4IDQwcHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTEwcHggMTNweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjFweCAzM3B4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC04cHggNDBweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0yMiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMTBweCAxNHB4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIDIycHggMzVweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA4cHggNDJweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDE0cHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgMjJweCAzNXB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDhweCA0MnB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTIyIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMTBweCAxNHB4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yMnB4IDM1cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLThweCA0MnB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xMHB4IDE0cHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgLTIycHggMzVweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOHB4IDQycHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMjMge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDExcHggMTRweCAtN3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAyM3B4IDM2cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOXB4IDQ0cHggOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTFweCAxNHB4IC03cHggcmdiYSgwLDAsMCwwLjIpLCAwIDIzcHggMzZweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA5cHggNDRweCA4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0yMyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTExcHggMTRweCAtN3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjNweCAzNnB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC05cHggNDRweCA4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMTFweCAxNHB4IC03cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yM3B4IDM2cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTlweCA0NHB4IDhweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTI0IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxMXB4IDE1cHggLTdweCByZ2JhKDAsMCwwLDAuMiksIDAgMjRweCAzOHB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDlweCA0NnB4IDhweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDExcHggMTVweCAtN3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAyNHB4IDM4cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOXB4IDQ2cHggOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMjQge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xMXB4IDE1cHggLTdweCByZ2JhKDAsMCwwLDAuMiksIDAgLTI0cHggMzhweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOXB4IDQ2cHggOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTExcHggMTVweCAtN3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjRweCAzOHB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC05cHggNDZweCA4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLm5vLXNoYWRvdyxcXG4uc2hhZG93LTAge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuLmluc2V0LXNoYWRvdyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgN3B4IDlweCAtN3B4IHJnYmEoMCwwLDAsMC43KSBpbnNldCAhaW1wb3J0YW50O1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDdweCA5cHggLTdweCByZ2JhKDAsMCwwLDAuNykgaW5zZXQgIWltcG9ydGFudDtcXG59XFxuLnotbWFyZ2luYWxzIHtcXG4gIHotaW5kZXg6IDIwMDA7XFxufVxcbi56LW5vdGlmeSB7XFxuICB6LWluZGV4OiA5NTAwO1xcbn1cXG4uei1mdWxsc2NyZWVuIHtcXG4gIHotaW5kZXg6IDYwMDA7XFxufVxcbi56LWluaGVyaXQge1xcbiAgei1pbmRleDogaW5oZXJpdCAhaW1wb3J0YW50O1xcbn1cXG4ucm93LFxcbi5jb2x1bW4sXFxuLmZsZXgge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtbXMtZmxleC13cmFwOiB3cmFwO1xcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcXG59XFxuLnJvdy5pbmxpbmUsXFxuLmNvbHVtbi5pbmxpbmUsXFxuLmZsZXguaW5saW5lIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbn1cXG4ucm93LnJldmVyc2Uge1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG59XFxuLmNvbHVtbiB7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxufVxcbi5jb2x1bW4ucmV2ZXJzZSB7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcXG59XFxuLndyYXAge1xcbiAgLW1zLWZsZXgtd3JhcDogd3JhcDtcXG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XFxufVxcbi5uby13cmFwIHtcXG4gIC1tcy1mbGV4LXdyYXA6IG5vd3JhcDtcXG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcXG59XFxuLnJldmVyc2Utd3JhcCB7XFxuICAtbXMtZmxleC13cmFwOiB3cmFwLXJldmVyc2U7XFxuICAgICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2U7XFxufVxcbi5vcmRlci1maXJzdCB7XFxuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAtOTk5OTtcXG4gICAgICAtbXMtZmxleC1vcmRlcjogLTEwMDAwO1xcbiAgICAgICAgICBvcmRlcjogLTEwMDAwO1xcbn1cXG4ub3JkZXItbGFzdCB7XFxuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAxMDAwMTtcXG4gICAgICAtbXMtZmxleC1vcmRlcjogMTAwMDA7XFxuICAgICAgICAgIG9yZGVyOiAxMDAwMDtcXG59XFxuLm9yZGVyLW5vbmUge1xcbiAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMTtcXG4gICAgICAtbXMtZmxleC1vcmRlcjogMDtcXG4gICAgICAgICAgb3JkZXI6IDA7XFxufVxcbi5qdXN0aWZ5LXN0YXJ0IHtcXG4gIC13ZWJraXQtYm94LXBhY2s6IHN0YXJ0O1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XFxufVxcbi5qdXN0aWZ5LWVuZCB7XFxuICAtd2Via2l0LWJveC1wYWNrOiBlbmQ7XFxuICAgICAgLW1zLWZsZXgtcGFjazogZW5kO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xcbn1cXG4uanVzdGlmeS1jZW50ZXIsXFxuLmZsZXgtY2VudGVyIHtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbn1cXG4uanVzdGlmeS1iZXR3ZWVuIHtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGp1c3RpZnk7XFxuICAgICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbn1cXG4uanVzdGlmeS1hcm91bmQge1xcbiAgLW1zLWZsZXgtcGFjazogZGlzdHJpYnV0ZTtcXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcXG59XFxuLml0ZW1zLXN0YXJ0IHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xcbn1cXG4uaXRlbXMtZW5kIHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBlbmQ7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGVuZDtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xcbn1cXG4uaXRlbXMtY2VudGVyLFxcbi5mbGV4LWNlbnRlciB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxufVxcbi5pdGVtcy1iYXNlbGluZSB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogYmFzZWxpbmU7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGJhc2VsaW5lO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XFxufVxcbi5pdGVtcy1zdHJldGNoIHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcXG59XFxuLmNvbnRlbnQtc3RhcnQge1xcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdGFydDtcXG4gICAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xcbn1cXG4uY29udGVudC1lbmQge1xcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiBlbmQ7XFxuICAgICAgYWxpZ24tY29udGVudDogZmxleC1lbmQ7XFxufVxcbi5jb250ZW50LWNlbnRlciB7XFxuICAtbXMtZmxleC1saW5lLXBhY2s6IGNlbnRlcjtcXG4gICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XFxufVxcbi5jb250ZW50LXN0cmV0Y2gge1xcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdHJldGNoO1xcbiAgICAgIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2g7XFxufVxcbi5jb250ZW50LWJldHdlZW4ge1xcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiBqdXN0aWZ5O1xcbiAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxufVxcbi5jb250ZW50LWFyb3VuZCB7XFxuICAtbXMtZmxleC1saW5lLXBhY2s6IGRpc3RyaWJ1dGU7XFxuICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kO1xcbn1cXG4uc2VsZi1zdGFydCB7XFxuICAtbXMtZmxleC1pdGVtLWFsaWduOiBzdGFydDtcXG4gICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xcbn1cXG4uc2VsZi1lbmQge1xcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogZW5kO1xcbiAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xcbn1cXG4uc2VsZi1jZW50ZXIge1xcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogY2VudGVyO1xcbiAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcXG59XFxuLnNlbGYtYmFzZWxpbmUge1xcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogYmFzZWxpbmU7XFxuICAgICAgYWxpZ24tc2VsZjogYmFzZWxpbmU7XFxufVxcbi5zZWxmLXN0cmV0Y2gge1xcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDtcXG4gICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xcbn1cXG4uZ3V0dGVyLXgtbm9uZSxcXG4uZ3V0dGVyLW5vbmUge1xcbiAgbWFyZ2luLWxlZnQ6IDA7XFxufVxcbi5ndXR0ZXIteC1ub25lID4gZGl2LFxcbi5ndXR0ZXItbm9uZSA+IGRpdiB7XFxuICBwYWRkaW5nLWxlZnQ6IDA7XFxufVxcbi5ndXR0ZXIteS1ub25lLFxcbi5ndXR0ZXItbm9uZSB7XFxuICBtYXJnaW4tdG9wOiAwO1xcbn1cXG4uZ3V0dGVyLXktbm9uZSA+IGRpdixcXG4uZ3V0dGVyLW5vbmUgPiBkaXYge1xcbiAgcGFkZGluZy10b3A6IDA7XFxufVxcbi5ndXR0ZXIteC14cyxcXG4uZ3V0dGVyLXhzIHtcXG4gIG1hcmdpbi1sZWZ0OiAtOHB4O1xcbn1cXG4uZ3V0dGVyLXgteHMgPiBkaXYsXFxuLmd1dHRlci14cyA+IGRpdiB7XFxuICBwYWRkaW5nLWxlZnQ6IDhweDtcXG59XFxuLmd1dHRlci15LXhzLFxcbi5ndXR0ZXIteHMge1xcbiAgbWFyZ2luLXRvcDogLThweDtcXG59XFxuLmd1dHRlci15LXhzID4gZGl2LFxcbi5ndXR0ZXIteHMgPiBkaXYge1xcbiAgcGFkZGluZy10b3A6IDhweDtcXG59XFxuLmd1dHRlci14LXNtLFxcbi5ndXR0ZXItc20ge1xcbiAgbWFyZ2luLWxlZnQ6IC0xNnB4O1xcbn1cXG4uZ3V0dGVyLXgtc20gPiBkaXYsXFxuLmd1dHRlci1zbSA+IGRpdiB7XFxuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XFxufVxcbi5ndXR0ZXIteS1zbSxcXG4uZ3V0dGVyLXNtIHtcXG4gIG1hcmdpbi10b3A6IC0xNnB4O1xcbn1cXG4uZ3V0dGVyLXktc20gPiBkaXYsXFxuLmd1dHRlci1zbSA+IGRpdiB7XFxuICBwYWRkaW5nLXRvcDogMTZweDtcXG59XFxuLmd1dHRlci14LW1kLFxcbi5ndXR0ZXItbWQge1xcbiAgbWFyZ2luLWxlZnQ6IC0zMnB4O1xcbn1cXG4uZ3V0dGVyLXgtbWQgPiBkaXYsXFxuLmd1dHRlci1tZCA+IGRpdiB7XFxuICBwYWRkaW5nLWxlZnQ6IDMycHg7XFxufVxcbi5ndXR0ZXIteS1tZCxcXG4uZ3V0dGVyLW1kIHtcXG4gIG1hcmdpbi10b3A6IC0zMnB4O1xcbn1cXG4uZ3V0dGVyLXktbWQgPiBkaXYsXFxuLmd1dHRlci1tZCA+IGRpdiB7XFxuICBwYWRkaW5nLXRvcDogMzJweDtcXG59XFxuLmd1dHRlci14LWxnLFxcbi5ndXR0ZXItbGcge1xcbiAgbWFyZ2luLWxlZnQ6IC00OHB4O1xcbn1cXG4uZ3V0dGVyLXgtbGcgPiBkaXYsXFxuLmd1dHRlci1sZyA+IGRpdiB7XFxuICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XFxufVxcbi5ndXR0ZXIteS1sZyxcXG4uZ3V0dGVyLWxnIHtcXG4gIG1hcmdpbi10b3A6IC00OHB4O1xcbn1cXG4uZ3V0dGVyLXktbGcgPiBkaXYsXFxuLmd1dHRlci1sZyA+IGRpdiB7XFxuICBwYWRkaW5nLXRvcDogNDhweDtcXG59XFxuLmd1dHRlci14LXhsLFxcbi5ndXR0ZXIteGwge1xcbiAgbWFyZ2luLWxlZnQ6IC02NHB4O1xcbn1cXG4uZ3V0dGVyLXgteGwgPiBkaXYsXFxuLmd1dHRlci14bCA+IGRpdiB7XFxuICBwYWRkaW5nLWxlZnQ6IDY0cHg7XFxufVxcbi5ndXR0ZXIteS14bCxcXG4uZ3V0dGVyLXhsIHtcXG4gIG1hcmdpbi10b3A6IC02NHB4O1xcbn1cXG4uZ3V0dGVyLXkteGwgPiBkaXYsXFxuLmd1dHRlci14bCA+IGRpdiB7XFxuICBwYWRkaW5nLXRvcDogNjRweDtcXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDApIHtcXG4gIC5yb3cgPiAuY29sLFxcbiAgLnJvdyA+IC5jb2wteHMsXFxuICAucm93ID4gLmNvbC1hdXRvLFxcbiAgLnJvdyA+IC5jb2wteHMtYXV0byxcXG4gIC5yb3cgPiAuY29sLWdyb3csXFxuICAucm93ID4gLmNvbC14cy1ncm93LFxcbiAgLnJvdyA+IC5jb2wtMCxcXG4gIC5yb3cgPiAuY29sLXhzLTAsXFxuICAucm93ID4gLmNvbC0xLFxcbiAgLnJvdyA+IC5jb2wteHMtMSxcXG4gIC5yb3cgPiAuY29sLTIsXFxuICAucm93ID4gLmNvbC14cy0yLFxcbiAgLnJvdyA+IC5jb2wtMyxcXG4gIC5yb3cgPiAuY29sLXhzLTMsXFxuICAucm93ID4gLmNvbC00LFxcbiAgLnJvdyA+IC5jb2wteHMtNCxcXG4gIC5yb3cgPiAuY29sLTUsXFxuICAucm93ID4gLmNvbC14cy01LFxcbiAgLnJvdyA+IC5jb2wtNixcXG4gIC5yb3cgPiAuY29sLXhzLTYsXFxuICAucm93ID4gLmNvbC03LFxcbiAgLnJvdyA+IC5jb2wteHMtNyxcXG4gIC5yb3cgPiAuY29sLTgsXFxuICAucm93ID4gLmNvbC14cy04LFxcbiAgLnJvdyA+IC5jb2wtOSxcXG4gIC5yb3cgPiAuY29sLXhzLTksXFxuICAucm93ID4gLmNvbC0xMCxcXG4gIC5yb3cgPiAuY29sLXhzLTEwLFxcbiAgLnJvdyA+IC5jb2wtMTEsXFxuICAucm93ID4gLmNvbC14cy0xMSxcXG4gIC5yb3cgPiAuY29sLTEyLFxcbiAgLnJvdyA+IC5jb2wteHMtMTIsXFxuICAuZmxleCA+IC5jb2wsXFxuICAuZmxleCA+IC5jb2wteHMsXFxuICAuZmxleCA+IC5jb2wtYXV0byxcXG4gIC5mbGV4ID4gLmNvbC14cy1hdXRvLFxcbiAgLmZsZXggPiAuY29sLWdyb3csXFxuICAuZmxleCA+IC5jb2wteHMtZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC0wLFxcbiAgLmZsZXggPiAuY29sLXhzLTAsXFxuICAuZmxleCA+IC5jb2wtMSxcXG4gIC5mbGV4ID4gLmNvbC14cy0xLFxcbiAgLmZsZXggPiAuY29sLTIsXFxuICAuZmxleCA+IC5jb2wteHMtMixcXG4gIC5mbGV4ID4gLmNvbC0zLFxcbiAgLmZsZXggPiAuY29sLXhzLTMsXFxuICAuZmxleCA+IC5jb2wtNCxcXG4gIC5mbGV4ID4gLmNvbC14cy00LFxcbiAgLmZsZXggPiAuY29sLTUsXFxuICAuZmxleCA+IC5jb2wteHMtNSxcXG4gIC5mbGV4ID4gLmNvbC02LFxcbiAgLmZsZXggPiAuY29sLXhzLTYsXFxuICAuZmxleCA+IC5jb2wtNyxcXG4gIC5mbGV4ID4gLmNvbC14cy03LFxcbiAgLmZsZXggPiAuY29sLTgsXFxuICAuZmxleCA+IC5jb2wteHMtOCxcXG4gIC5mbGV4ID4gLmNvbC05LFxcbiAgLmZsZXggPiAuY29sLXhzLTksXFxuICAuZmxleCA+IC5jb2wtMTAsXFxuICAuZmxleCA+IC5jb2wteHMtMTAsXFxuICAuZmxleCA+IC5jb2wtMTEsXFxuICAuZmxleCA+IC5jb2wteHMtMTEsXFxuICAuZmxleCA+IC5jb2wtMTIsXFxuICAuZmxleCA+IC5jb2wteHMtMTIge1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgbWluLXdpZHRoOiAwO1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbCxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLFxcbiAgLmNvbHVtbiA+IC5jb2wtYXV0byxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLWF1dG8sXFxuICAuY29sdW1uID4gLmNvbC1ncm93LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtZ3JvdyxcXG4gIC5jb2x1bW4gPiAuY29sLTAsXFxuICAuY29sdW1uID4gLmNvbC14cy0wLFxcbiAgLmNvbHVtbiA+IC5jb2wtMSxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTEsXFxuICAuY29sdW1uID4gLmNvbC0yLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMixcXG4gIC5jb2x1bW4gPiAuY29sLTMsXFxuICAuY29sdW1uID4gLmNvbC14cy0zLFxcbiAgLmNvbHVtbiA+IC5jb2wtNCxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTQsXFxuICAuY29sdW1uID4gLmNvbC01LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtNSxcXG4gIC5jb2x1bW4gPiAuY29sLTYsXFxuICAuY29sdW1uID4gLmNvbC14cy02LFxcbiAgLmNvbHVtbiA+IC5jb2wtNyxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTcsXFxuICAuY29sdW1uID4gLmNvbC04LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtOCxcXG4gIC5jb2x1bW4gPiAuY29sLTksXFxuICAuY29sdW1uID4gLmNvbC14cy05LFxcbiAgLmNvbHVtbiA+IC5jb2wtMTAsXFxuICAuY29sdW1uID4gLmNvbC14cy0xMCxcXG4gIC5jb2x1bW4gPiAuY29sLTExLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMTEsXFxuICAuY29sdW1uID4gLmNvbC0xMixcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTEyLFxcbiAgLmZsZXggPiAuY29sLFxcbiAgLmZsZXggPiAuY29sLXhzLFxcbiAgLmZsZXggPiAuY29sLWF1dG8sXFxuICAuZmxleCA+IC5jb2wteHMtYXV0byxcXG4gIC5mbGV4ID4gLmNvbC1ncm93LFxcbiAgLmZsZXggPiAuY29sLXhzLWdyb3csXFxuICAuZmxleCA+IC5jb2wtMCxcXG4gIC5mbGV4ID4gLmNvbC14cy0wLFxcbiAgLmZsZXggPiAuY29sLTEsXFxuICAuZmxleCA+IC5jb2wteHMtMSxcXG4gIC5mbGV4ID4gLmNvbC0yLFxcbiAgLmZsZXggPiAuY29sLXhzLTIsXFxuICAuZmxleCA+IC5jb2wtMyxcXG4gIC5mbGV4ID4gLmNvbC14cy0zLFxcbiAgLmZsZXggPiAuY29sLTQsXFxuICAuZmxleCA+IC5jb2wteHMtNCxcXG4gIC5mbGV4ID4gLmNvbC01LFxcbiAgLmZsZXggPiAuY29sLXhzLTUsXFxuICAuZmxleCA+IC5jb2wtNixcXG4gIC5mbGV4ID4gLmNvbC14cy02LFxcbiAgLmZsZXggPiAuY29sLTcsXFxuICAuZmxleCA+IC5jb2wteHMtNyxcXG4gIC5mbGV4ID4gLmNvbC04LFxcbiAgLmZsZXggPiAuY29sLXhzLTgsXFxuICAuZmxleCA+IC5jb2wtOSxcXG4gIC5mbGV4ID4gLmNvbC14cy05LFxcbiAgLmZsZXggPiAuY29sLTEwLFxcbiAgLmZsZXggPiAuY29sLXhzLTEwLFxcbiAgLmZsZXggPiAuY29sLTExLFxcbiAgLmZsZXggPiAuY29sLXhzLTExLFxcbiAgLmZsZXggPiAuY29sLTEyLFxcbiAgLmZsZXggPiAuY29sLXhzLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICBtaW4taGVpZ2h0OiAwO1xcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbCxcXG4gIC5jb2wteHMge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxMDAwMDtcXG4gICAgICAgIC1tcy1mbGV4OiAxMDAwMCAxIDAlO1xcbiAgICAgICAgICAgIGZsZXg6IDEwMDAwIDEgMCU7XFxuICB9XFxuICAuY29sLWF1dG8sXFxuICAuY29sLXhzLWF1dG8sXFxuICAuY29sLTAsXFxuICAuY29sLXhzLTAsXFxuICAuY29sLTEsXFxuICAuY29sLXhzLTEsXFxuICAuY29sLTIsXFxuICAuY29sLXhzLTIsXFxuICAuY29sLTMsXFxuICAuY29sLXhzLTMsXFxuICAuY29sLTQsXFxuICAuY29sLXhzLTQsXFxuICAuY29sLTUsXFxuICAuY29sLXhzLTUsXFxuICAuY29sLTYsXFxuICAuY29sLXhzLTYsXFxuICAuY29sLTcsXFxuICAuY29sLXhzLTcsXFxuICAuY29sLTgsXFxuICAuY29sLXhzLTgsXFxuICAuY29sLTksXFxuICAuY29sLXhzLTksXFxuICAuY29sLTEwLFxcbiAgLmNvbC14cy0xMCxcXG4gIC5jb2wtMTEsXFxuICAuY29sLXhzLTExLFxcbiAgLmNvbC0xMixcXG4gIC5jb2wteHMtMTIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xcbiAgfVxcbiAgLmNvbC1ncm93LFxcbiAgLmNvbC14cy1ncm93IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4OiAxIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAxIDAgYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTAsXFxuICAucm93ID4gLmNvbC14cy0wIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC0wLFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTAsXFxuICAuY29sdW1uID4gLmNvbC14cy0wIHtcXG4gICAgaGVpZ2h0OiAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC0xLFxcbiAgLnJvdyA+IC5jb2wteHMtMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC0xLFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtMSxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTEge1xcbiAgICBoZWlnaHQ6IDguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtMixcXG4gIC5yb3cgPiAuY29sLXhzLTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxNi42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTIsXFxuICAucm93ID4gLm9mZnNldC14cy0yIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtMixcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTIge1xcbiAgICBoZWlnaHQ6IDE2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTMsXFxuICAucm93ID4gLmNvbC14cy0zIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMjUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtMyxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTMge1xcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtMyxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTMge1xcbiAgICBoZWlnaHQ6IDI1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC00LFxcbiAgLnJvdyA+IC5jb2wteHMtNCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtNCxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTQge1xcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC00LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtNCB7XFxuICAgIGhlaWdodDogMzMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtNSxcXG4gIC5yb3cgPiAuY29sLXhzLTUge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA0MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTUsXFxuICAucm93ID4gLm9mZnNldC14cy01IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtNSxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTUge1xcbiAgICBoZWlnaHQ6IDQxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTYsXFxuICAucm93ID4gLmNvbC14cy02IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtNixcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTYge1xcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtNixcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTYge1xcbiAgICBoZWlnaHQ6IDUwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC03LFxcbiAgLnJvdyA+IC5jb2wteHMtNyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtNyxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTcge1xcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC03LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtNyB7XFxuICAgIGhlaWdodDogNTguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtOCxcXG4gIC5yb3cgPiAuY29sLXhzLTgge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTgsXFxuICAucm93ID4gLm9mZnNldC14cy04IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtOCxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTgge1xcbiAgICBoZWlnaHQ6IDY2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTksXFxuICAucm93ID4gLmNvbC14cy05IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNzUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtOSxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTkge1xcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtOSxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTkge1xcbiAgICBoZWlnaHQ6IDc1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC0xMCxcXG4gIC5yb3cgPiAuY29sLXhzLTEwIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogODMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC0xMCxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTEwIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtMTAsXFxuICAuY29sdW1uID4gLmNvbC14cy0xMCB7XFxuICAgIGhlaWdodDogODMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtMTEsXFxuICAucm93ID4gLmNvbC14cy0xMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDkxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtMTEsXFxuICAucm93ID4gLm9mZnNldC14cy0xMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTExLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMTEge1xcbiAgICBoZWlnaHQ6IDkxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTEyLFxcbiAgLnJvdyA+IC5jb2wteHMtMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtMTIsXFxuICAucm93ID4gLm9mZnNldC14cy0xMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtMTIsXFxuICAuY29sdW1uID4gLmNvbC14cy0xMiB7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgLnJvdyA+IC5jb2wtc20sXFxuICAucm93ID4gLmNvbC1zbS1hdXRvLFxcbiAgLnJvdyA+IC5jb2wtc20tZ3JvdyxcXG4gIC5yb3cgPiAuY29sLXNtLTAsXFxuICAucm93ID4gLmNvbC1zbS0xLFxcbiAgLnJvdyA+IC5jb2wtc20tMixcXG4gIC5yb3cgPiAuY29sLXNtLTMsXFxuICAucm93ID4gLmNvbC1zbS00LFxcbiAgLnJvdyA+IC5jb2wtc20tNSxcXG4gIC5yb3cgPiAuY29sLXNtLTYsXFxuICAucm93ID4gLmNvbC1zbS03LFxcbiAgLnJvdyA+IC5jb2wtc20tOCxcXG4gIC5yb3cgPiAuY29sLXNtLTksXFxuICAucm93ID4gLmNvbC1zbS0xMCxcXG4gIC5yb3cgPiAuY29sLXNtLTExLFxcbiAgLnJvdyA+IC5jb2wtc20tMTIsXFxuICAuZmxleCA+IC5jb2wtc20sXFxuICAuZmxleCA+IC5jb2wtc20tYXV0byxcXG4gIC5mbGV4ID4gLmNvbC1zbS1ncm93LFxcbiAgLmZsZXggPiAuY29sLXNtLTAsXFxuICAuZmxleCA+IC5jb2wtc20tMSxcXG4gIC5mbGV4ID4gLmNvbC1zbS0yLFxcbiAgLmZsZXggPiAuY29sLXNtLTMsXFxuICAuZmxleCA+IC5jb2wtc20tNCxcXG4gIC5mbGV4ID4gLmNvbC1zbS01LFxcbiAgLmZsZXggPiAuY29sLXNtLTYsXFxuICAuZmxleCA+IC5jb2wtc20tNyxcXG4gIC5mbGV4ID4gLmNvbC1zbS04LFxcbiAgLmZsZXggPiAuY29sLXNtLTksXFxuICAuZmxleCA+IC5jb2wtc20tMTAsXFxuICAuZmxleCA+IC5jb2wtc20tMTEsXFxuICAuZmxleCA+IC5jb2wtc20tMTIge1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgbWluLXdpZHRoOiAwO1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbSxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLWF1dG8sXFxuICAuY29sdW1uID4gLmNvbC1zbS1ncm93LFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMCxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTEsXFxuICAuY29sdW1uID4gLmNvbC1zbS0yLFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMyxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTQsXFxuICAuY29sdW1uID4gLmNvbC1zbS01LFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tNixcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTcsXFxuICAuY29sdW1uID4gLmNvbC1zbS04LFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tOSxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTEwLFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMTEsXFxuICAuY29sdW1uID4gLmNvbC1zbS0xMixcXG4gIC5mbGV4ID4gLmNvbC1zbSxcXG4gIC5mbGV4ID4gLmNvbC1zbS1hdXRvLFxcbiAgLmZsZXggPiAuY29sLXNtLWdyb3csXFxuICAuZmxleCA+IC5jb2wtc20tMCxcXG4gIC5mbGV4ID4gLmNvbC1zbS0xLFxcbiAgLmZsZXggPiAuY29sLXNtLTIsXFxuICAuZmxleCA+IC5jb2wtc20tMyxcXG4gIC5mbGV4ID4gLmNvbC1zbS00LFxcbiAgLmZsZXggPiAuY29sLXNtLTUsXFxuICAuZmxleCA+IC5jb2wtc20tNixcXG4gIC5mbGV4ID4gLmNvbC1zbS03LFxcbiAgLmZsZXggPiAuY29sLXNtLTgsXFxuICAuZmxleCA+IC5jb2wtc20tOSxcXG4gIC5mbGV4ID4gLmNvbC1zbS0xMCxcXG4gIC5mbGV4ID4gLmNvbC1zbS0xMSxcXG4gIC5mbGV4ID4gLmNvbC1zbS0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgbWluLWhlaWdodDogMDtcXG4gICAgbWF4LWhlaWdodDogMTAwJTtcXG4gIH1cXG4gIC5jb2wtc20ge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxMDAwMDtcXG4gICAgICAgIC1tcy1mbGV4OiAxMDAwMCAxIDAlO1xcbiAgICAgICAgICAgIGZsZXg6IDEwMDAwIDEgMCU7XFxuICB9XFxuICAuY29sLXNtLWF1dG8sXFxuICAuY29sLXNtLTAsXFxuICAuY29sLXNtLTEsXFxuICAuY29sLXNtLTIsXFxuICAuY29sLXNtLTMsXFxuICAuY29sLXNtLTQsXFxuICAuY29sLXNtLTUsXFxuICAuY29sLXNtLTYsXFxuICAuY29sLXNtLTcsXFxuICAuY29sLXNtLTgsXFxuICAuY29sLXNtLTksXFxuICAuY29sLXNtLTEwLFxcbiAgLmNvbC1zbS0xMSxcXG4gIC5jb2wtc20tMTIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xcbiAgfVxcbiAgLmNvbC1zbS1ncm93IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4OiAxIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAxIDAgYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTAge1xcbiAgICBtYXJnaW4tbGVmdDogMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS0wIHtcXG4gICAgaGVpZ2h0OiAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS0xIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTEge1xcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTEge1xcbiAgICBoZWlnaHQ6IDguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDE2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTIge1xcbiAgICBoZWlnaHQ6IDE2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTMge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAyNSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS0zIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTMge1xcbiAgICBoZWlnaHQ6IDI1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS00IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMzMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS00IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tNCB7XFxuICAgIGhlaWdodDogMzMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tNSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDQxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tNSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTUge1xcbiAgICBoZWlnaHQ6IDQxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTYge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1MCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS02IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTYge1xcbiAgICBoZWlnaHQ6IDUwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS03IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS03IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tNyB7XFxuICAgIGhlaWdodDogNTguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tOCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDY2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tOCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTgge1xcbiAgICBoZWlnaHQ6IDY2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTkge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA3NSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS05IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTkge1xcbiAgICBoZWlnaHQ6IDc1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS0xMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tMTAge1xcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS0xMCB7XFxuICAgIGhlaWdodDogODMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tMTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA5MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTExIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMTEge1xcbiAgICBoZWlnaHQ6IDkxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTEyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS0xMiB7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgLnJvdyA+IC5jb2wtbWQsXFxuICAucm93ID4gLmNvbC1tZC1hdXRvLFxcbiAgLnJvdyA+IC5jb2wtbWQtZ3JvdyxcXG4gIC5yb3cgPiAuY29sLW1kLTAsXFxuICAucm93ID4gLmNvbC1tZC0xLFxcbiAgLnJvdyA+IC5jb2wtbWQtMixcXG4gIC5yb3cgPiAuY29sLW1kLTMsXFxuICAucm93ID4gLmNvbC1tZC00LFxcbiAgLnJvdyA+IC5jb2wtbWQtNSxcXG4gIC5yb3cgPiAuY29sLW1kLTYsXFxuICAucm93ID4gLmNvbC1tZC03LFxcbiAgLnJvdyA+IC5jb2wtbWQtOCxcXG4gIC5yb3cgPiAuY29sLW1kLTksXFxuICAucm93ID4gLmNvbC1tZC0xMCxcXG4gIC5yb3cgPiAuY29sLW1kLTExLFxcbiAgLnJvdyA+IC5jb2wtbWQtMTIsXFxuICAuZmxleCA+IC5jb2wtbWQsXFxuICAuZmxleCA+IC5jb2wtbWQtYXV0byxcXG4gIC5mbGV4ID4gLmNvbC1tZC1ncm93LFxcbiAgLmZsZXggPiAuY29sLW1kLTAsXFxuICAuZmxleCA+IC5jb2wtbWQtMSxcXG4gIC5mbGV4ID4gLmNvbC1tZC0yLFxcbiAgLmZsZXggPiAuY29sLW1kLTMsXFxuICAuZmxleCA+IC5jb2wtbWQtNCxcXG4gIC5mbGV4ID4gLmNvbC1tZC01LFxcbiAgLmZsZXggPiAuY29sLW1kLTYsXFxuICAuZmxleCA+IC5jb2wtbWQtNyxcXG4gIC5mbGV4ID4gLmNvbC1tZC04LFxcbiAgLmZsZXggPiAuY29sLW1kLTksXFxuICAuZmxleCA+IC5jb2wtbWQtMTAsXFxuICAuZmxleCA+IC5jb2wtbWQtMTEsXFxuICAuZmxleCA+IC5jb2wtbWQtMTIge1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgbWluLXdpZHRoOiAwO1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZCxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLWF1dG8sXFxuICAuY29sdW1uID4gLmNvbC1tZC1ncm93LFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMCxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTEsXFxuICAuY29sdW1uID4gLmNvbC1tZC0yLFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMyxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTQsXFxuICAuY29sdW1uID4gLmNvbC1tZC01LFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtNixcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTcsXFxuICAuY29sdW1uID4gLmNvbC1tZC04LFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtOSxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTEwLFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMTEsXFxuICAuY29sdW1uID4gLmNvbC1tZC0xMixcXG4gIC5mbGV4ID4gLmNvbC1tZCxcXG4gIC5mbGV4ID4gLmNvbC1tZC1hdXRvLFxcbiAgLmZsZXggPiAuY29sLW1kLWdyb3csXFxuICAuZmxleCA+IC5jb2wtbWQtMCxcXG4gIC5mbGV4ID4gLmNvbC1tZC0xLFxcbiAgLmZsZXggPiAuY29sLW1kLTIsXFxuICAuZmxleCA+IC5jb2wtbWQtMyxcXG4gIC5mbGV4ID4gLmNvbC1tZC00LFxcbiAgLmZsZXggPiAuY29sLW1kLTUsXFxuICAuZmxleCA+IC5jb2wtbWQtNixcXG4gIC5mbGV4ID4gLmNvbC1tZC03LFxcbiAgLmZsZXggPiAuY29sLW1kLTgsXFxuICAuZmxleCA+IC5jb2wtbWQtOSxcXG4gIC5mbGV4ID4gLmNvbC1tZC0xMCxcXG4gIC5mbGV4ID4gLmNvbC1tZC0xMSxcXG4gIC5mbGV4ID4gLmNvbC1tZC0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgbWluLWhlaWdodDogMDtcXG4gICAgbWF4LWhlaWdodDogMTAwJTtcXG4gIH1cXG4gIC5jb2wtbWQge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxMDAwMDtcXG4gICAgICAgIC1tcy1mbGV4OiAxMDAwMCAxIDAlO1xcbiAgICAgICAgICAgIGZsZXg6IDEwMDAwIDEgMCU7XFxuICB9XFxuICAuY29sLW1kLWF1dG8sXFxuICAuY29sLW1kLTAsXFxuICAuY29sLW1kLTEsXFxuICAuY29sLW1kLTIsXFxuICAuY29sLW1kLTMsXFxuICAuY29sLW1kLTQsXFxuICAuY29sLW1kLTUsXFxuICAuY29sLW1kLTYsXFxuICAuY29sLW1kLTcsXFxuICAuY29sLW1kLTgsXFxuICAuY29sLW1kLTksXFxuICAuY29sLW1kLTEwLFxcbiAgLmNvbC1tZC0xMSxcXG4gIC5jb2wtbWQtMTIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xcbiAgfVxcbiAgLmNvbC1tZC1ncm93IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4OiAxIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAxIDAgYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTAge1xcbiAgICBtYXJnaW4tbGVmdDogMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC0wIHtcXG4gICAgaGVpZ2h0OiAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC0xIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTEge1xcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTEge1xcbiAgICBoZWlnaHQ6IDguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDE2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTIge1xcbiAgICBoZWlnaHQ6IDE2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTMge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAyNSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC0zIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTMge1xcbiAgICBoZWlnaHQ6IDI1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC00IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMzMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC00IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtNCB7XFxuICAgIGhlaWdodDogMzMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtNSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDQxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtNSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTUge1xcbiAgICBoZWlnaHQ6IDQxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTYge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1MCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC02IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTYge1xcbiAgICBoZWlnaHQ6IDUwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC03IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC03IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtNyB7XFxuICAgIGhlaWdodDogNTguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtOCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDY2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtOCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTgge1xcbiAgICBoZWlnaHQ6IDY2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTkge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA3NSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC05IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTkge1xcbiAgICBoZWlnaHQ6IDc1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC0xMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtMTAge1xcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC0xMCB7XFxuICAgIGhlaWdodDogODMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtMTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA5MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTExIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMTEge1xcbiAgICBoZWlnaHQ6IDkxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTEyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC0xMiB7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xcbiAgLnJvdyA+IC5jb2wtbGcsXFxuICAucm93ID4gLmNvbC1sZy1hdXRvLFxcbiAgLnJvdyA+IC5jb2wtbGctZ3JvdyxcXG4gIC5yb3cgPiAuY29sLWxnLTAsXFxuICAucm93ID4gLmNvbC1sZy0xLFxcbiAgLnJvdyA+IC5jb2wtbGctMixcXG4gIC5yb3cgPiAuY29sLWxnLTMsXFxuICAucm93ID4gLmNvbC1sZy00LFxcbiAgLnJvdyA+IC5jb2wtbGctNSxcXG4gIC5yb3cgPiAuY29sLWxnLTYsXFxuICAucm93ID4gLmNvbC1sZy03LFxcbiAgLnJvdyA+IC5jb2wtbGctOCxcXG4gIC5yb3cgPiAuY29sLWxnLTksXFxuICAucm93ID4gLmNvbC1sZy0xMCxcXG4gIC5yb3cgPiAuY29sLWxnLTExLFxcbiAgLnJvdyA+IC5jb2wtbGctMTIsXFxuICAuZmxleCA+IC5jb2wtbGcsXFxuICAuZmxleCA+IC5jb2wtbGctYXV0byxcXG4gIC5mbGV4ID4gLmNvbC1sZy1ncm93LFxcbiAgLmZsZXggPiAuY29sLWxnLTAsXFxuICAuZmxleCA+IC5jb2wtbGctMSxcXG4gIC5mbGV4ID4gLmNvbC1sZy0yLFxcbiAgLmZsZXggPiAuY29sLWxnLTMsXFxuICAuZmxleCA+IC5jb2wtbGctNCxcXG4gIC5mbGV4ID4gLmNvbC1sZy01LFxcbiAgLmZsZXggPiAuY29sLWxnLTYsXFxuICAuZmxleCA+IC5jb2wtbGctNyxcXG4gIC5mbGV4ID4gLmNvbC1sZy04LFxcbiAgLmZsZXggPiAuY29sLWxnLTksXFxuICAuZmxleCA+IC5jb2wtbGctMTAsXFxuICAuZmxleCA+IC5jb2wtbGctMTEsXFxuICAuZmxleCA+IC5jb2wtbGctMTIge1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgbWluLXdpZHRoOiAwO1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZyxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLWF1dG8sXFxuICAuY29sdW1uID4gLmNvbC1sZy1ncm93LFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMCxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTEsXFxuICAuY29sdW1uID4gLmNvbC1sZy0yLFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMyxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTQsXFxuICAuY29sdW1uID4gLmNvbC1sZy01LFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctNixcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTcsXFxuICAuY29sdW1uID4gLmNvbC1sZy04LFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctOSxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTEwLFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMTEsXFxuICAuY29sdW1uID4gLmNvbC1sZy0xMixcXG4gIC5mbGV4ID4gLmNvbC1sZyxcXG4gIC5mbGV4ID4gLmNvbC1sZy1hdXRvLFxcbiAgLmZsZXggPiAuY29sLWxnLWdyb3csXFxuICAuZmxleCA+IC5jb2wtbGctMCxcXG4gIC5mbGV4ID4gLmNvbC1sZy0xLFxcbiAgLmZsZXggPiAuY29sLWxnLTIsXFxuICAuZmxleCA+IC5jb2wtbGctMyxcXG4gIC5mbGV4ID4gLmNvbC1sZy00LFxcbiAgLmZsZXggPiAuY29sLWxnLTUsXFxuICAuZmxleCA+IC5jb2wtbGctNixcXG4gIC5mbGV4ID4gLmNvbC1sZy03LFxcbiAgLmZsZXggPiAuY29sLWxnLTgsXFxuICAuZmxleCA+IC5jb2wtbGctOSxcXG4gIC5mbGV4ID4gLmNvbC1sZy0xMCxcXG4gIC5mbGV4ID4gLmNvbC1sZy0xMSxcXG4gIC5mbGV4ID4gLmNvbC1sZy0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgbWluLWhlaWdodDogMDtcXG4gICAgbWF4LWhlaWdodDogMTAwJTtcXG4gIH1cXG4gIC5jb2wtbGcge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxMDAwMDtcXG4gICAgICAgIC1tcy1mbGV4OiAxMDAwMCAxIDAlO1xcbiAgICAgICAgICAgIGZsZXg6IDEwMDAwIDEgMCU7XFxuICB9XFxuICAuY29sLWxnLWF1dG8sXFxuICAuY29sLWxnLTAsXFxuICAuY29sLWxnLTEsXFxuICAuY29sLWxnLTIsXFxuICAuY29sLWxnLTMsXFxuICAuY29sLWxnLTQsXFxuICAuY29sLWxnLTUsXFxuICAuY29sLWxnLTYsXFxuICAuY29sLWxnLTcsXFxuICAuY29sLWxnLTgsXFxuICAuY29sLWxnLTksXFxuICAuY29sLWxnLTEwLFxcbiAgLmNvbC1sZy0xMSxcXG4gIC5jb2wtbGctMTIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xcbiAgfVxcbiAgLmNvbC1sZy1ncm93IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4OiAxIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAxIDAgYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTAge1xcbiAgICBtYXJnaW4tbGVmdDogMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy0wIHtcXG4gICAgaGVpZ2h0OiAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy0xIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTEge1xcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTEge1xcbiAgICBoZWlnaHQ6IDguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDE2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTIge1xcbiAgICBoZWlnaHQ6IDE2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTMge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAyNSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy0zIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTMge1xcbiAgICBoZWlnaHQ6IDI1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy00IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMzMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy00IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctNCB7XFxuICAgIGhlaWdodDogMzMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctNSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDQxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctNSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTUge1xcbiAgICBoZWlnaHQ6IDQxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTYge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1MCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy02IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTYge1xcbiAgICBoZWlnaHQ6IDUwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy03IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy03IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctNyB7XFxuICAgIGhlaWdodDogNTguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctOCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDY2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctOCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTgge1xcbiAgICBoZWlnaHQ6IDY2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTkge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA3NSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy05IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTkge1xcbiAgICBoZWlnaHQ6IDc1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy0xMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctMTAge1xcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy0xMCB7XFxuICAgIGhlaWdodDogODMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctMTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA5MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTExIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMTEge1xcbiAgICBoZWlnaHQ6IDkxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTEyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy0xMiB7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcXG4gIC5yb3cgPiAuY29sLXhsLFxcbiAgLnJvdyA+IC5jb2wteGwtYXV0byxcXG4gIC5yb3cgPiAuY29sLXhsLWdyb3csXFxuICAucm93ID4gLmNvbC14bC0wLFxcbiAgLnJvdyA+IC5jb2wteGwtMSxcXG4gIC5yb3cgPiAuY29sLXhsLTIsXFxuICAucm93ID4gLmNvbC14bC0zLFxcbiAgLnJvdyA+IC5jb2wteGwtNCxcXG4gIC5yb3cgPiAuY29sLXhsLTUsXFxuICAucm93ID4gLmNvbC14bC02LFxcbiAgLnJvdyA+IC5jb2wteGwtNyxcXG4gIC5yb3cgPiAuY29sLXhsLTgsXFxuICAucm93ID4gLmNvbC14bC05LFxcbiAgLnJvdyA+IC5jb2wteGwtMTAsXFxuICAucm93ID4gLmNvbC14bC0xMSxcXG4gIC5yb3cgPiAuY29sLXhsLTEyLFxcbiAgLmZsZXggPiAuY29sLXhsLFxcbiAgLmZsZXggPiAuY29sLXhsLWF1dG8sXFxuICAuZmxleCA+IC5jb2wteGwtZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC14bC0wLFxcbiAgLmZsZXggPiAuY29sLXhsLTEsXFxuICAuZmxleCA+IC5jb2wteGwtMixcXG4gIC5mbGV4ID4gLmNvbC14bC0zLFxcbiAgLmZsZXggPiAuY29sLXhsLTQsXFxuICAuZmxleCA+IC5jb2wteGwtNSxcXG4gIC5mbGV4ID4gLmNvbC14bC02LFxcbiAgLmZsZXggPiAuY29sLXhsLTcsXFxuICAuZmxleCA+IC5jb2wteGwtOCxcXG4gIC5mbGV4ID4gLmNvbC14bC05LFxcbiAgLmZsZXggPiAuY29sLXhsLTEwLFxcbiAgLmZsZXggPiAuY29sLXhsLTExLFxcbiAgLmZsZXggPiAuY29sLXhsLTEyIHtcXG4gICAgd2lkdGg6IGF1dG87XFxuICAgIG1pbi13aWR0aDogMDtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwsXFxuICAuY29sdW1uID4gLmNvbC14bC1hdXRvLFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtZ3JvdyxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTAsXFxuICAuY29sdW1uID4gLmNvbC14bC0xLFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMixcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTMsXFxuICAuY29sdW1uID4gLmNvbC14bC00LFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtNSxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTYsXFxuICAuY29sdW1uID4gLmNvbC14bC03LFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtOCxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTksXFxuICAuY29sdW1uID4gLmNvbC14bC0xMCxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTExLFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMTIsXFxuICAuZmxleCA+IC5jb2wteGwsXFxuICAuZmxleCA+IC5jb2wteGwtYXV0byxcXG4gIC5mbGV4ID4gLmNvbC14bC1ncm93LFxcbiAgLmZsZXggPiAuY29sLXhsLTAsXFxuICAuZmxleCA+IC5jb2wteGwtMSxcXG4gIC5mbGV4ID4gLmNvbC14bC0yLFxcbiAgLmZsZXggPiAuY29sLXhsLTMsXFxuICAuZmxleCA+IC5jb2wteGwtNCxcXG4gIC5mbGV4ID4gLmNvbC14bC01LFxcbiAgLmZsZXggPiAuY29sLXhsLTYsXFxuICAuZmxleCA+IC5jb2wteGwtNyxcXG4gIC5mbGV4ID4gLmNvbC14bC04LFxcbiAgLmZsZXggPiAuY29sLXhsLTksXFxuICAuZmxleCA+IC5jb2wteGwtMTAsXFxuICAuZmxleCA+IC5jb2wteGwtMTEsXFxuICAuZmxleCA+IC5jb2wteGwtMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIG1pbi1oZWlnaHQ6IDA7XFxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XFxuICB9XFxuICAuY29sLXhsIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTAwMDA7XFxuICAgICAgICAtbXMtZmxleDogMTAwMDAgMSAwJTtcXG4gICAgICAgICAgICBmbGV4OiAxMDAwMCAxIDAlO1xcbiAgfVxcbiAgLmNvbC14bC1hdXRvLFxcbiAgLmNvbC14bC0wLFxcbiAgLmNvbC14bC0xLFxcbiAgLmNvbC14bC0yLFxcbiAgLmNvbC14bC0zLFxcbiAgLmNvbC14bC00LFxcbiAgLmNvbC14bC01LFxcbiAgLmNvbC14bC02LFxcbiAgLmNvbC14bC03LFxcbiAgLmNvbC14bC04LFxcbiAgLmNvbC14bC05LFxcbiAgLmNvbC14bC0xMCxcXG4gIC5jb2wteGwtMTEsXFxuICAuY29sLXhsLTEyIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcXG4gIH1cXG4gIC5jb2wteGwtZ3JvdyB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC0wIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC0wIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMCB7XFxuICAgIGhlaWdodDogMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC0xIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC0xIHtcXG4gICAgaGVpZ2h0OiA4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxNi42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC0yIHtcXG4gICAgaGVpZ2h0OiAxNi42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC0zIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMjUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtMyB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC0zIHtcXG4gICAgaGVpZ2h0OiAyNSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtNCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtNCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTQge1xcbiAgICBoZWlnaHQ6IDMzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTUge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA0MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTUge1xcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC01IHtcXG4gICAgaGVpZ2h0OiA0MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC02IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtNiB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC02IHtcXG4gICAgaGVpZ2h0OiA1MCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtNyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtNyB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTcge1xcbiAgICBoZWlnaHQ6IDU4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTgge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTgge1xcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC04IHtcXG4gICAgaGVpZ2h0OiA2Ni42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC05IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNzUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtOSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC05IHtcXG4gICAgaGVpZ2h0OiA3NSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtMTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4My4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTEwIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMTAge1xcbiAgICBoZWlnaHQ6IDgzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTExIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOTEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC0xMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTExIHtcXG4gICAgaGVpZ2h0OiA5MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDEwMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC0xMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMTIge1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbn1cXG4uYmFja2Ryb3Age1xcbiAgZGlzcGxheTogbm9uZTtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAxMDB2dztcXG4gIGhlaWdodDogMTAwdmg7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjI4cyBlYXNlLWluO1xcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjI4cyBlYXNlLWluO1xcbn1cXG4uYmFja2Ryb3AuYWN0aXZlIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjMpO1xcbn1cXG4ucm91bmQtYm9yZGVycyB7XFxuICBib3JkZXItcmFkaXVzOiAzcHggIWltcG9ydGFudDtcXG59XFxuLmdlbmVyaWMtbWFyZ2luLFxcbi5ncm91cCA+ICoge1xcbiAgbWFyZ2luOiA1cHg7XFxufVxcbi5uby10cmFuc2l0aW9uIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xcbiAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4udHJhbnNpdGlvbi0wIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMHMgIWltcG9ydGFudDtcXG4gIHRyYW5zaXRpb246IDBzICFpbXBvcnRhbnQ7XFxufVxcbi5nbG9zc3kge1xcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShyZ2JhKDI1NSwyNTUsMjU1LDAuMykpLCBjb2xvci1zdG9wKDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwwKSksIGNvbG9yLXN0b3AoNTElLCByZ2JhKDAsMCwwLDAuMTIpKSwgdG8ocmdiYSgwLDAsMCwwLjA0KSkpICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDI1NSwyNTUsMjU1LDAuMyksIHJnYmEoMjU1LDI1NSwyNTUsMCkgNTAlLCByZ2JhKDAsMCwwLDAuMTIpIDUxJSwgcmdiYSgwLDAsMCwwLjA0KSkgIWltcG9ydGFudDtcXG59XFxuLnEtcGxhY2Vob2xkZXI6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBvcGFjaXR5OiAwLjU7XFxufVxcbi5xLXBsYWNlaG9sZGVyOjotbW96LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgb3BhY2l0eTogMC41O1xcbn1cXG4ucS1wbGFjZWhvbGRlcjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBvcGFjaXR5OiAwLjU7XFxufVxcbi5xLWJvZHktZnVsbHNjcmVlbi1taXhpbixcXG4ucS1ib2R5LXByZXZlbnQtc2Nyb2xsIHtcXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcXG59XFxuLnEtbm8taW5wdXQtc3Bpbm5lciB7XFxuICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZCAhaW1wb3J0YW50O1xcbn1cXG4ucS1uby1pbnB1dC1zcGlubmVyOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxcbi5xLW5vLWlucHV0LXNwaW5uZXI6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbiAgbWFyZ2luOiAwO1xcbn1cXG5hLnEtbGluayB7XFxuICBvdXRsaW5lOiAwO1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxufVxcbi5xLXNlbGVjdC1oaWdobGlnaHQge1xcbiAgYmFja2dyb3VuZDogcmdiYSgxODksMTg5LDE4OSwwLjUpICFpbXBvcnRhbnQ7XFxufVxcbi5oaWdobGlnaHQtYW5kLWZhZGUge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtaGlnaGxpZ2h0IDJzIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1oaWdobGlnaHQgMnMgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnRyYW5zaXRpb24tZ2VuZXJpYyB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XFxufVxcbi5hbmltYXRlLXNwaW4sXFxuLmFuaW1hdGUtc3Bpbi1yZXZlcnNlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXNwaW4gMnMgaW5maW5pdGUgbGluZWFyIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1zcGluIDJzIGluZmluaXRlIGxpbmVhciAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uYW5pbWF0ZS1zcGluLXJldmVyc2Uge1xcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTtcXG59XFxuLmFuaW1hdGUtYmxpbmsge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtYmxpbmsgMXMgc3RlcHMoNSwgc3RhcnQpIGluZmluaXRlIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1ibGluayAxcyBzdGVwcyg1LCBzdGFydCkgaW5maW5pdGUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLmFuaW1hdGUtcG9wIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXBvcCAwLjJzIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1wb3AgMC4ycyAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uYW5pbWF0ZS1zY2FsZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1zY2FsZSAwLjJzIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1zY2FsZSAwLjJzIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5hbmltYXRlLWZhZGUge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtZmFkZSAwLjJzIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1mYWRlIDAuMnMgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLmFuaW1hdGUtYm91bmNlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLWJvdW5jZSAycyBpbmZpbml0ZSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtYm91bmNlIDJzIGluZmluaXRlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5hbmltYXRlLXNoYWtlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXNoYWtlIDAuMTVzO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtc2hha2UgMC4xNXM7XFxuICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO1xcbiAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtcXG59XFxuLmFuaW1hdGUtcG9wdXAtdXAsXFxuLmFuaW1hdGUtcG9wdXAtZG93biB7XFxuICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbn1cXG4uYW5pbWF0ZS1wb3B1cC11cCA+ICosXFxuLmFuaW1hdGUtcG9wdXAtZG93biA+ICoge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtZmFkZSAwLjgycyBjdWJpYy1iZXppZXIoMC43ODUsIDAuMTM1LCAwLjE1LCAwLjg2KTtcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLWZhZGUgMC44MnMgY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44Nik7XFxufVxcbi5hbmltYXRlLXBvcHVwLWRvd24ge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtcG9wdXAtZG93biAwLjM2cyAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtcG9wdXAtZG93biAwLjM2cyAvKiBydGw6aWdub3JlICovO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcCAwcHggLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3AgMHB4IC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5hbmltYXRlLXBvcHVwLXVwIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXBvcHVwLXVwIDAuMzZzIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1wb3B1cC11cCAwLjM2cyAvKiBydGw6aWdub3JlICovO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbSAwcHggLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b20gMHB4IC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5hbmltYXRlLWZhZGUtbGVmdCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1mYWRlIDAuMzZzIGN1YmljLWJlemllcigwLjc4NSwgMC4xMzUsIDAuMTUsIDAuODYpLCBxLXNsaWRlLWxlZnQgMC4zNnMgZWFzZTtcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLWZhZGUgMC4zNnMgY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44NiksIHEtc2xpZGUtbGVmdCAwLjM2cyBlYXNlO1xcbn1cXG4uYW5pbWF0ZS1mYWRlLXJpZ2h0IHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLWZhZGUgMC4zNnMgY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44NiksIHEtc2xpZGUtcmlnaHQgMC4zNnMgZWFzZTtcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLWZhZGUgMC4zNnMgY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44NiksIHEtc2xpZGUtcmlnaHQgMC4zNnMgZWFzZTtcXG59XFxuLmFuaW1hdGVkIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcXG4gICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcXG4gICAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcXG59XFxuLmFuaW1hdGVkLmluZmluaXRlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XFxuICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xcbn1cXG4uYW5pbWF0ZWQuaGluZ2Uge1xcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDJzO1xcbiAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDJzO1xcbn1cXG4uYW5pbWF0ZWQuZmxpcE91dFgsXFxuLmFuaW1hdGVkLmZsaXBPdXRZLFxcbi5hbmltYXRlZC5ib3VuY2VJbixcXG4uYW5pbWF0ZWQuYm91bmNlT3V0IHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjc1cztcXG4gICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjc1cztcXG59XFxuLm5vbi1zZWxlY3RhYmxlIHtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUgIWltcG9ydGFudDtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmUgIWltcG9ydGFudDtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmUgIWltcG9ydGFudDtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuLnNjcm9sbCB7XFxuICBvdmVyZmxvdzogYXV0bztcXG59XFxuLnNjcm9sbCxcXG4uc2Nyb2xsLXgsXFxuLnNjcm9sbC15IHtcXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcXG4gIHdpbGwtY2hhbmdlOiBzY3JvbGwtcG9zaXRpb247XFxufVxcbi5zY3JvbGwteCB7XFxuICBvdmVyZmxvdy14OiBhdXRvO1xcbn1cXG4uc2Nyb2xsLXkge1xcbiAgb3ZlcmZsb3cteTogYXV0bztcXG59XFxuLm5vLXNjcm9sbCB7XFxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XFxufVxcbi5uby1wb2ludGVyLWV2ZW50cyB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4uYWxsLXBvaW50ZXItZXZlbnRzIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBhbGwgIWltcG9ydGFudDtcXG59XFxuLmN1cnNvci1wb2ludGVyIHtcXG4gIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xcbn1cXG4uY3Vyc29yLW5vdC1hbGxvd2VkIHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQgIWltcG9ydGFudDtcXG59XFxuLmN1cnNvci1pbmhlcml0IHtcXG4gIGN1cnNvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xcbn1cXG4ucm90YXRlLTQ1IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucm90YXRlLTkwIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucm90YXRlLTEzNSB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEzNWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucm90YXRlLTE4MCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucm90YXRlLTIwNSB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDIwNWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjA1ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucm90YXRlLTI3MCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucm90YXRlLTMxNSB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDMxNWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzE1ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uZmxpcC1ob3Jpem9udGFsIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xcbn1cXG4uZmxpcC12ZXJ0aWNhbCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcXG59XFxuLmZsb2F0LWxlZnQge1xcbiAgZmxvYXQ6IGxlZnQ7XFxufVxcbi5mbG9hdC1yaWdodCB7XFxuICBmbG9hdDogcmlnaHQ7XFxufVxcbi5yZWxhdGl2ZS1wb3NpdGlvbiB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5maXhlZCxcXG4uZnVsbHNjcmVlbixcXG4uZml4ZWQtY2VudGVyLFxcbi5maXhlZC1ib3R0b20sXFxuLmZpeGVkLWxlZnQsXFxuLmZpeGVkLXJpZ2h0LFxcbi5maXhlZC10b3AsXFxuLmZpeGVkLXRvcC1sZWZ0LFxcbi5maXhlZC10b3AtcmlnaHQsXFxuLmZpeGVkLWJvdHRvbS1sZWZ0LFxcbi5maXhlZC1ib3R0b20tcmlnaHQge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbn1cXG4uYWJzb2x1dGUsXFxuLmFic29sdXRlLWZ1bGwsXFxuLmFic29sdXRlLWNlbnRlcixcXG4uYWJzb2x1dGUtYm90dG9tLFxcbi5hYnNvbHV0ZS1sZWZ0LFxcbi5hYnNvbHV0ZS1yaWdodCxcXG4uYWJzb2x1dGUtdG9wLFxcbi5hYnNvbHV0ZS10b3AtbGVmdCxcXG4uYWJzb2x1dGUtdG9wLXJpZ2h0LFxcbi5hYnNvbHV0ZS1ib3R0b20tbGVmdCxcXG4uYWJzb2x1dGUtYm90dG9tLXJpZ2h0IHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuLmZpeGVkLXRvcCxcXG4uYWJzb2x1dGUtdG9wIHtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG59XFxuLmZpeGVkLXJpZ2h0LFxcbi5hYnNvbHV0ZS1yaWdodCB7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG59XFxuLmZpeGVkLWJvdHRvbSxcXG4uYWJzb2x1dGUtYm90dG9tIHtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG59XFxuLmZpeGVkLWxlZnQsXFxuLmFic29sdXRlLWxlZnQge1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG59XFxuLmZpeGVkLXRvcC1sZWZ0LFxcbi5hYnNvbHV0ZS10b3AtbGVmdCB7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbn1cXG4uZml4ZWQtdG9wLXJpZ2h0LFxcbi5hYnNvbHV0ZS10b3AtcmlnaHQge1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxufVxcbi5maXhlZC1ib3R0b20tbGVmdCxcXG4uYWJzb2x1dGUtYm90dG9tLWxlZnQge1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG59XFxuLmZpeGVkLWJvdHRvbS1yaWdodCxcXG4uYWJzb2x1dGUtYm90dG9tLXJpZ2h0IHtcXG4gIGJvdHRvbTogMDtcXG4gIHJpZ2h0OiAwO1xcbn1cXG4uZnVsbHNjcmVlbiB7XFxuICB6LWluZGV4OiA2MDAwO1xcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xcbiAgbWF4LXdpZHRoOiAxMDB2dztcXG4gIG1heC1oZWlnaHQ6IDEwMHZoO1xcbn1cXG4uYWJzb2x1dGUtZnVsbCxcXG4uZnVsbHNjcmVlbiB7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxufVxcbi5maXhlZC1jZW50ZXIsXFxuLmFic29sdXRlLWNlbnRlciB7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xcbn1cXG4udmVydGljYWwtdG9wIHtcXG4gIHZlcnRpY2FsLWFsaWduOiB0b3AgIWltcG9ydGFudDtcXG59XFxuLnZlcnRpY2FsLW1pZGRsZSB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XFxufVxcbi52ZXJ0aWNhbC1ib3R0b20ge1xcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbSAhaW1wb3J0YW50O1xcbn1cXG4ub24tbGVmdCB7XFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XFxufVxcbi5vbi1yaWdodCB7XFxuICBtYXJnaW4tbGVmdDogMTJweDtcXG59XFxuLnEtcmlwcGxlLWNvbnRhaW5lciB7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgei1pbmRleDogMDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4ucS1yaXBwbGUtYW5pbWF0aW9uIHtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDAgLyogcnRsOmlnbm9yZSAqLztcXG4gIG9wYWNpdHk6IDA7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC4zcyBvcGFjaXR5IGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjEpLCAwLjNzIC13ZWJraXQtdHJhbnNmb3JtIGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjkpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyBvcGFjaXR5IGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjEpLCAwLjNzIC13ZWJraXQtdHJhbnNmb3JtIGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjkpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyB0cmFuc2Zvcm0gY3ViaWMtYmV6aWVyKDAuMiwgMC40LCAwLjQsIDAuOSksIDAuM3Mgb3BhY2l0eSBjdWJpYy1iZXppZXIoMC4yLCAwLjQsIDAuNCwgMC4xKTtcXG4gIHRyYW5zaXRpb246IDAuM3MgdHJhbnNmb3JtIGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjkpLCAwLjNzIG9wYWNpdHkgY3ViaWMtYmV6aWVyKDAuMiwgMC40LCAwLjQsIDAuMSksIDAuM3MgLXdlYmtpdC10cmFuc2Zvcm0gY3ViaWMtYmV6aWVyKDAuMiwgMC40LCAwLjQsIDAuOSk7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5O1xcbn1cXG4ucS1yaXBwbGUtYW5pbWF0aW9uLWVudGVyIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogbm9uZTtcXG4gIHRyYW5zaXRpb246IG5vbmU7XFxufVxcbi5xLXJpcHBsZS1hbmltYXRpb24tdmlzaWJsZSB7XFxuICBvcGFjaXR5OiAwLjE1O1xcbn1cXG4ucS1yYWRpYWwtcmlwcGxlIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogLTUwJTtcXG4gIGxlZnQ6IC01MCU7XFxuICB3aWR0aDogMjAwJTtcXG4gIGhlaWdodDogMjAwJTtcXG59XFxuLnEtcmFkaWFsLXJpcHBsZTphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgY3VycmVudENvbG9yIDEwJSwgdHJhbnNwYXJlbnQgMTAuMDElKTtcXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XFxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMTAsIDEwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxMCwgMTApO1xcbiAgb3BhY2l0eTogMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAxcywgLXdlYmtpdC10cmFuc2Zvcm0gMC41cztcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNXM7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cywgb3BhY2l0eSAxcztcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzLCBvcGFjaXR5IDFzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjVzO1xcbn1cXG4ucS1yYWRpYWwtcmlwcGxlLmFjdGl2ZTphZnRlciB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCwgMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCwgMCk7XFxuICBvcGFjaXR5OiAwLjQ7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDBzO1xcbiAgdHJhbnNpdGlvbjogMHM7XFxufVxcbjpyb290IHtcXG4gIC0tcS1zaXplLXhzOiAwO1xcbiAgLS1xLXNpemUtc206IDU3NnB4O1xcbiAgLS1xLXNpemUtbWQ6IDc2OHB4O1xcbiAgLS1xLXNpemUtbGc6IDk5MnB4O1xcbiAgLS1xLXNpemUteGw6IDEyMDBweDtcXG59XFxuLmZpdCB7XFxuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XFxufVxcbi5mdWxsLWhlaWdodCB7XFxuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcXG59XFxuLmZ1bGwtd2lkdGgge1xcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcXG4gIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XFxuICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcXG59XFxuLndpbmRvdy1oZWlnaHQge1xcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xcbiAgaGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50O1xcbn1cXG4ud2luZG93LXdpZHRoIHtcXG4gIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XFxuICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcXG4gIHdpZHRoOiAxMDB2dyAhaW1wb3J0YW50O1xcbn1cXG4uYmxvY2sge1xcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcXG59XFxuLmlubGluZS1ibG9jayB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcXG59XFxuLnEtcGEtbm9uZSB7XFxuICBwYWRkaW5nOiAwIDA7XFxufVxcbi5xLXBsLW5vbmUsXFxuLnEtcHgtbm9uZSB7XFxuICBwYWRkaW5nLWxlZnQ6IDA7XFxufVxcbi5xLXByLW5vbmUsXFxuLnEtcHgtbm9uZSB7XFxuICBwYWRkaW5nLXJpZ2h0OiAwO1xcbn1cXG4ucS1wdC1ub25lLFxcbi5xLXB5LW5vbmUge1xcbiAgcGFkZGluZy10b3A6IDA7XFxufVxcbi5xLXBiLW5vbmUsXFxuLnEtcHktbm9uZSB7XFxuICBwYWRkaW5nLWJvdHRvbTogMDtcXG59XFxuLnEtbWEtbm9uZSB7XFxuICBtYXJnaW46IDAgMDtcXG59XFxuLnEtbWwtbm9uZSxcXG4ucS1teC1ub25lIHtcXG4gIG1hcmdpbi1sZWZ0OiAwO1xcbn1cXG4ucS1tci1ub25lLFxcbi5xLW14LW5vbmUge1xcbiAgbWFyZ2luLXJpZ2h0OiAwO1xcbn1cXG4ucS1tdC1ub25lLFxcbi5xLW15LW5vbmUge1xcbiAgbWFyZ2luLXRvcDogMDtcXG59XFxuLnEtbWItbm9uZSxcXG4ucS1teS1ub25lIHtcXG4gIG1hcmdpbi1ib3R0b206IDA7XFxufVxcbi5xLXBhLXhzIHtcXG4gIHBhZGRpbmc6IDRweCA0cHg7XFxufVxcbi5xLXBsLXhzLFxcbi5xLXB4LXhzIHtcXG4gIHBhZGRpbmctbGVmdDogNHB4O1xcbn1cXG4ucS1wci14cyxcXG4ucS1weC14cyB7XFxuICBwYWRkaW5nLXJpZ2h0OiA0cHg7XFxufVxcbi5xLXB0LXhzLFxcbi5xLXB5LXhzIHtcXG4gIHBhZGRpbmctdG9wOiA0cHg7XFxufVxcbi5xLXBiLXhzLFxcbi5xLXB5LXhzIHtcXG4gIHBhZGRpbmctYm90dG9tOiA0cHg7XFxufVxcbi5xLW1hLXhzIHtcXG4gIG1hcmdpbjogNHB4IDRweDtcXG59XFxuLnEtbWwteHMsXFxuLnEtbXgteHMge1xcbiAgbWFyZ2luLWxlZnQ6IDRweDtcXG59XFxuLnEtbXIteHMsXFxuLnEtbXgteHMge1xcbiAgbWFyZ2luLXJpZ2h0OiA0cHg7XFxufVxcbi5xLW10LXhzLFxcbi5xLW15LXhzIHtcXG4gIG1hcmdpbi10b3A6IDRweDtcXG59XFxuLnEtbWIteHMsXFxuLnEtbXkteHMge1xcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xcbn1cXG4ucS1wYS1zbSB7XFxuICBwYWRkaW5nOiA4cHggOHB4O1xcbn1cXG4ucS1wbC1zbSxcXG4ucS1weC1zbSB7XFxuICBwYWRkaW5nLWxlZnQ6IDhweDtcXG59XFxuLnEtcHItc20sXFxuLnEtcHgtc20ge1xcbiAgcGFkZGluZy1yaWdodDogOHB4O1xcbn1cXG4ucS1wdC1zbSxcXG4ucS1weS1zbSB7XFxuICBwYWRkaW5nLXRvcDogOHB4O1xcbn1cXG4ucS1wYi1zbSxcXG4ucS1weS1zbSB7XFxuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xcbn1cXG4ucS1tYS1zbSB7XFxuICBtYXJnaW46IDhweCA4cHg7XFxufVxcbi5xLW1sLXNtLFxcbi5xLW14LXNtIHtcXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XFxufVxcbi5xLW1yLXNtLFxcbi5xLW14LXNtIHtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbn1cXG4ucS1tdC1zbSxcXG4ucS1teS1zbSB7XFxuICBtYXJnaW4tdG9wOiA4cHg7XFxufVxcbi5xLW1iLXNtLFxcbi5xLW15LXNtIHtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG59XFxuLnEtcGEtbWQge1xcbiAgcGFkZGluZzogMTZweCAxNnB4O1xcbn1cXG4ucS1wbC1tZCxcXG4ucS1weC1tZCB7XFxuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XFxufVxcbi5xLXByLW1kLFxcbi5xLXB4LW1kIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDE2cHg7XFxufVxcbi5xLXB0LW1kLFxcbi5xLXB5LW1kIHtcXG4gIHBhZGRpbmctdG9wOiAxNnB4O1xcbn1cXG4ucS1wYi1tZCxcXG4ucS1weS1tZCB7XFxuICBwYWRkaW5nLWJvdHRvbTogMTZweDtcXG59XFxuLnEtbWEtbWQge1xcbiAgbWFyZ2luOiAxNnB4IDE2cHg7XFxufVxcbi5xLW1sLW1kLFxcbi5xLW14LW1kIHtcXG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xcbn1cXG4ucS1tci1tZCxcXG4ucS1teC1tZCB7XFxuICBtYXJnaW4tcmlnaHQ6IDE2cHg7XFxufVxcbi5xLW10LW1kLFxcbi5xLW15LW1kIHtcXG4gIG1hcmdpbi10b3A6IDE2cHg7XFxufVxcbi5xLW1iLW1kLFxcbi5xLW15LW1kIHtcXG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XFxufVxcbi5xLXBhLWxnIHtcXG4gIHBhZGRpbmc6IDI0cHggMjRweDtcXG59XFxuLnEtcGwtbGcsXFxuLnEtcHgtbGcge1xcbiAgcGFkZGluZy1sZWZ0OiAyNHB4O1xcbn1cXG4ucS1wci1sZyxcXG4ucS1weC1sZyB7XFxuICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xcbn1cXG4ucS1wdC1sZyxcXG4ucS1weS1sZyB7XFxuICBwYWRkaW5nLXRvcDogMjRweDtcXG59XFxuLnEtcGItbGcsXFxuLnEtcHktbGcge1xcbiAgcGFkZGluZy1ib3R0b206IDI0cHg7XFxufVxcbi5xLW1hLWxnIHtcXG4gIG1hcmdpbjogMjRweCAyNHB4O1xcbn1cXG4ucS1tbC1sZyxcXG4ucS1teC1sZyB7XFxuICBtYXJnaW4tbGVmdDogMjRweDtcXG59XFxuLnEtbXItbGcsXFxuLnEtbXgtbGcge1xcbiAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xcbn1cXG4ucS1tdC1sZyxcXG4ucS1teS1sZyB7XFxuICBtYXJnaW4tdG9wOiAyNHB4O1xcbn1cXG4ucS1tYi1sZyxcXG4ucS1teS1sZyB7XFxuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xcbn1cXG4ucS1wYS14bCB7XFxuICBwYWRkaW5nOiA0OHB4IDQ4cHg7XFxufVxcbi5xLXBsLXhsLFxcbi5xLXB4LXhsIHtcXG4gIHBhZGRpbmctbGVmdDogNDhweDtcXG59XFxuLnEtcHIteGwsXFxuLnEtcHgteGwge1xcbiAgcGFkZGluZy1yaWdodDogNDhweDtcXG59XFxuLnEtcHQteGwsXFxuLnEtcHkteGwge1xcbiAgcGFkZGluZy10b3A6IDQ4cHg7XFxufVxcbi5xLXBiLXhsLFxcbi5xLXB5LXhsIHtcXG4gIHBhZGRpbmctYm90dG9tOiA0OHB4O1xcbn1cXG4ucS1tYS14bCB7XFxuICBtYXJnaW46IDQ4cHggNDhweDtcXG59XFxuLnEtbWwteGwsXFxuLnEtbXgteGwge1xcbiAgbWFyZ2luLWxlZnQ6IDQ4cHg7XFxufVxcbi5xLW1yLXhsLFxcbi5xLW14LXhsIHtcXG4gIG1hcmdpbi1yaWdodDogNDhweDtcXG59XFxuLnEtbXQteGwsXFxuLnEtbXkteGwge1xcbiAgbWFyZ2luLXRvcDogNDhweDtcXG59XFxuLnEtbWIteGwsXFxuLnEtbXkteGwge1xcbiAgbWFyZ2luLWJvdHRvbTogNDhweDtcXG59XFxuLnEtbWwtYXV0byxcXG4ucS1teC1hdXRvIHtcXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbn1cXG4ucS1tci1hdXRvLFxcbi5xLW14LWF1dG8ge1xcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xcbn1cXG4ucS1teS1mb3JtIHtcXG4gIG1hcmdpbi10b3A6IDE2cHg7XFxuICBtYXJnaW4tYm90dG9tOiA4cHg7XFxufVxcbi5xLXRvdWNoIHtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICB1c2VyLWRyYWc6IG5vbmU7XFxuICAta2h0bWwtdXNlci1kcmFnOiBub25lO1xcbiAgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7XFxufVxcbi5xLXRvdWNoLXgge1xcbiAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXg7XFxuICAgICAgdG91Y2gtYWN0aW9uOiBwYW4teDtcXG59XFxuLnEtdG91Y2gteSB7XFxuICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcXG4gICAgICB0b3VjaC1hY3Rpb246IHBhbi15O1xcbn1cXG5ib2R5IHtcXG4gIG1pbi13aWR0aDogMTAwcHg7XFxuICBmb250LWZhbWlseTogJ1JvYm90bycsICctYXBwbGUtc3lzdGVtJywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIGNvbG9yOiAjMGMwYzBjO1xcbiAgbWluLWhlaWdodDogMTAwdmg7XFxufVxcbmgxIHtcXG4gIGZvbnQtc2l6ZTogMTEycHg7XFxuICBmb250LXdlaWdodDogMzAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuMTI7XFxuICBsZXR0ZXItc3BhY2luZzogLTAuMDRlbTtcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIGgxIHtcXG4gICAgZm9udC1zaXplOiA2Ny4ycHg7XFxuICB9XFxufVxcbmgyIHtcXG4gIGZvbnQtc2l6ZTogNTZweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBsaW5lLWhlaWdodDogMS4zNTtcXG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgaDIge1xcbiAgICBmb250LXNpemU6IDMzLjZweDtcXG4gIH1cXG59XFxuaDMge1xcbiAgZm9udC1zaXplOiA0NXB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIGgzIHtcXG4gICAgZm9udC1zaXplOiAyN3B4O1xcbiAgfVxcbn1cXG5oNCB7XFxuICBmb250LXNpemU6IDM0cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XFxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgaDQge1xcbiAgICBmb250LXNpemU6IDIwLjRweDtcXG4gIH1cXG59XFxuaDUge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIGg1IHtcXG4gICAgZm9udC1zaXplOiAxNC4zOTk5OTk5OTk5OTk5OTlweDtcXG4gIH1cXG59XFxuaDYge1xcbiAgZm9udC1zaXplOiAyMHB4O1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjEyO1xcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIGg2IHtcXG4gICAgZm9udC1zaXplOiAxMnB4O1xcbiAgfVxcbn1cXG4ucS1kaXNwbGF5LTQtb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjU0O1xcbn1cXG4ucS1kaXNwbGF5LTQge1xcbiAgZm9udC1zaXplOiAxMTJweDtcXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XFxuICBsaW5lLWhlaWdodDogMS4xMjtcXG4gIGxldHRlci1zcGFjaW5nOiAtMC4wNGVtO1xcbn1cXG4ucS1kaXNwbGF5LTMtb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjU0O1xcbn1cXG4ucS1kaXNwbGF5LTMge1xcbiAgZm9udC1zaXplOiA1NnB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XFxufVxcbi5xLWRpc3BsYXktMi1vcGFjaXR5IHtcXG4gIG9wYWNpdHk6IDAuNTQ7XFxufVxcbi5xLWRpc3BsYXktMiB7XFxuICBmb250LXNpemU6IDQ1cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGluZS1oZWlnaHQ6IDQ4cHg7XFxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xcbn1cXG4ucS1kaXNwbGF5LTEtb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjU0O1xcbn1cXG4ucS1kaXNwbGF5LTEge1xcbiAgZm9udC1zaXplOiAzNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxpbmUtaGVpZ2h0OiA0MHB4O1xcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG59XFxuLnEtaGVhZGxpbmUtb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjg3O1xcbn1cXG4ucS1oZWFkbGluZSB7XFxuICBmb250LXNpemU6IDI0cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGluZS1oZWlnaHQ6IDMycHg7XFxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xcbn1cXG4ucS10aXRsZS1vcGFjaXR5IHtcXG4gIG9wYWNpdHk6IDAuODc7XFxufVxcbi5xLXRpdGxlIHtcXG4gIGZvbnQtc2l6ZTogMjBweDtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBsaW5lLWhlaWdodDogMS4xMjtcXG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XFxufVxcbi5xLXN1YmhlYWRpbmctb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjg3O1xcbn1cXG4ucS1zdWJoZWFkaW5nIHtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxufVxcbi5xLWJvZHktMi1vcGFjaXR5IHtcXG4gIG9wYWNpdHk6IDAuODc7XFxufVxcbi5xLWJvZHktMiB7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBmb250LXdlaWdodDogNTAwO1xcbn1cXG4ucS1ib2R5LTEtb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjg3O1xcbn1cXG4ucS1ib2R5LTEge1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG59XFxuLnEtY2FwdGlvbi1vcGFjaXR5IHtcXG4gIG9wYWNpdHk6IDAuNTQ7XFxufVxcbi5xLWNhcHRpb24ge1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG59XFxucCB7XFxuICBtYXJnaW46IDAgMCAxNnB4O1xcbn1cXG4uY2FwdGlvbiB7XFxuICBjb2xvcjogIzQyNDI0MjtcXG4gIGxldHRlci1zcGFjaW5nOiAwO1xcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XFxuICBwYWRkaW5nOiAwO1xcbiAgZm9udC13ZWlnaHQ6IDMwMDtcXG59XFxuLnVwcGVyY2FzZSB7XFxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xcbn1cXG4ubG93ZXJjYXNlIHtcXG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XFxufVxcbi5jYXBpdGFsaXplIHtcXG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xcbn1cXG4udGV4dC1jZW50ZXIge1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG4udGV4dC1sZWZ0IHtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxufVxcbi50ZXh0LXJpZ2h0IHtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXG4udGV4dC1qdXN0aWZ5IHtcXG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XFxuICAtd2Via2l0LWh5cGhlbnM6IGF1dG87XFxuICAgICAgLW1zLWh5cGhlbnM6IGF1dG87XFxuICAgICAgICAgIGh5cGhlbnM6IGF1dG87XFxufVxcbi50ZXh0LWl0YWxpYyB7XFxuICBmb250LXN0eWxlOiBpdGFsaWM7XFxufVxcbi50ZXh0LWJvbGQge1xcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxufVxcbi50ZXh0LW5vLXdyYXAge1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG59XFxuLnRleHQtd2VpZ2h0LXRoaW4ge1xcbiAgZm9udC13ZWlnaHQ6IDEwMDtcXG59XFxuLnRleHQtd2VpZ2h0LWxpZ2h0IHtcXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XFxufVxcbi50ZXh0LXdlaWdodC1yZWd1bGFyIHtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxufVxcbi50ZXh0LXdlaWdodC1tZWRpdW0ge1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG59XFxuLnRleHQtd2VpZ2h0LWJvbGQge1xcbiAgZm9udC13ZWlnaHQ6IDcwMDtcXG59XFxuLnRleHQtd2VpZ2h0LWJvbGRlciB7XFxuICBmb250LXdlaWdodDogOTAwO1xcbn1cXG5zbWFsbCB7XFxuICBmb250LXNpemU6IDgwJTtcXG59XFxuYmlnIHtcXG4gIGZvbnQtc2l6ZTogMTcwJTtcXG59XFxuc3ViIHtcXG4gIGJvdHRvbTogLTAuMjVlbTtcXG59XFxuc3VwIHtcXG4gIHRvcDogLTAuNWVtO1xcbn1cXG5ibG9ja3F1b3RlIHtcXG4gIHBhZGRpbmc6IDhweCAxNnB4O1xcbiAgbWFyZ2luOiAwO1xcbiAgZm9udC1zaXplOiAxNnB4O1xcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjMDI3YmUzO1xcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS1xLWNvbG9yLXByaW1hcnkpO1xcbn1cXG5ibG9ja3F1b3RlLnRleHQtcmlnaHQge1xcbiAgcGFkZGluZy1yaWdodDogMTZweDtcXG4gIHBhZGRpbmctbGVmdDogMDtcXG4gIGJvcmRlci1yaWdodDogNHB4IHNvbGlkICMwMjdiZTM7XFxuICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCB2YXIoLS1xLWNvbG9yLXByaW1hcnkpO1xcbiAgYm9yZGVyLWxlZnQ6IDA7XFxuICB0ZXh0LWFsaWduOiByaWdodDtcXG59XFxuYmxvY2txdW90ZSBzbWFsbCB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XFxuICBjb2xvcjogIzc3NztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWZhZGVkKTtcXG59XFxuYmxvY2txdW90ZSBzbWFsbDpiZWZvcmUge1xcbiAgY29udGVudDogJ1xcXFwyMDE0IFxcXFwwMEEwJztcXG59XFxuLnF1b3RlIHtcXG4gIHBhZGRpbmc6IDEwcHggMjBweDtcXG4gIG1hcmdpbjogMCAwIDIwcHg7XFxuICBib3JkZXItbGVmdDogNXB4IHNvbGlkICMwMjdiZTM7XFxuICBib3JkZXItbGVmdDogNXB4IHNvbGlkIHZhcigtLXEtY29sb3ItcHJpbWFyeSk7XFxufVxcbi5xdW90ZS50ZXh0LXJpZ2h0IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XFxuICBwYWRkaW5nLWxlZnQ6IDA7XFxuICBib3JkZXItcmlnaHQ6IDVweCBzb2xpZCAjMDI3YmUzO1xcbiAgYm9yZGVyLXJpZ2h0OiA1cHggc29saWQgdmFyKC0tcS1jb2xvci1wcmltYXJ5KTtcXG4gIGJvcmRlci1sZWZ0OiAwO1xcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XFxufVxcbmR0IHtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xcbn1cXG5kZCB7XFxuICBtYXJnaW4tbGVmdDogMDtcXG59XFxuZHQsXFxuZGQge1xcbiAgbGluZS1oZWlnaHQ6IDEuNDtcXG59XFxuZGwge1xcbiAgbWFyZ2luLXRvcDogMDtcXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XFxufVxcbmRsLmhvcml6b250YWwgZHQge1xcbiAgZmxvYXQ6IGxlZnQ7XFxuICB3aWR0aDogMjUlO1xcbiAgY2xlYXI6IGxlZnQ7XFxuICB0ZXh0LWFsaWduOiByaWdodDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxufVxcbmRsLmhvcml6b250YWwgZGQge1xcbiAgbWFyZ2luLWxlZnQ6IDMwJTtcXG59XFxuaHIucS1ocixcXG5oci5xLWhyLWRhcmsge1xcbiAgaGVpZ2h0OiAxcHg7XFxuICBtaW4taGVpZ2h0OiAxcHg7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIGJvcmRlcjogbm9uZTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuaHIucS1oci1kYXJrIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4zNik7XFxufVxcbi5uby1tYXJnaW4ge1xcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XFxufVxcbi5uby1wYWRkaW5nIHtcXG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcXG59XFxuLm5vLWJvcmRlciB7XFxuICBib3JkZXI6IDAgIWltcG9ydGFudDtcXG59XFxuLm5vLWJvcmRlci1yYWRpdXMge1xcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xcbn1cXG4ubm8tYm94LXNoYWRvdyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4ubm8tb3V0bGluZSB7XFxuICBvdXRsaW5lOiAwICFpbXBvcnRhbnQ7XFxufVxcbi5lbGxpcHNpcyB7XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4uZWxsaXBzaXMtMi1saW5lcyxcXG4uZWxsaXBzaXMtMy1saW5lcyB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbn1cXG4uZWxsaXBzaXMtMi1saW5lcyB7XFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XFxufVxcbi5lbGxpcHNpcy0zLWxpbmVzIHtcXG4gIC13ZWJraXQtbGluZS1jbGFtcDogMztcXG59XFxuLnJlYWRvbmx5IHtcXG4gIGN1cnNvcjogZGVmYXVsdCAhaW1wb3J0YW50O1xcbn1cXG4uZGlzYWJsZWQsXFxuW2Rpc2FibGVkXSxcXG4uZGlzYWJsZWQgKixcXG5bZGlzYWJsZWRdICoge1xcbiAgY3Vyc29yOiBub3QtYWxsb3dlZCAhaW1wb3J0YW50O1xcbn1cXG4uZGlzYWJsZWQsXFxuW2Rpc2FibGVkXSB7XFxuICBvcGFjaXR5OiAwLjYgIWltcG9ydGFudDtcXG59XFxuLmhpZGRlbiB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi5pbnZpc2libGUge1xcbiAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7XFxufVxcbi50cmFuc3BhcmVudCB7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcbn1cXG4ub3ZlcmZsb3ctYXV0byB7XFxuICBvdmVyZmxvdzogYXV0byAhaW1wb3J0YW50O1xcbn1cXG4ub3ZlcmZsb3ctaGlkZGVuIHtcXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcXG59XFxuLm92ZXJmbG93LWhpZGRlbi15IHtcXG4gIG92ZXJmbG93LXk6IGhpZGRlbiAhaW1wb3J0YW50O1xcbn1cXG4uZGltbWVkOmFmdGVyLFxcbi5saWdodC1kaW1tZWQ6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxufVxcbi5kaW1tZWQ6YWZ0ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjQpICFpbXBvcnRhbnQ7XFxufVxcbi5saWdodC1kaW1tZWQ6YWZ0ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjYpICFpbXBvcnRhbnQ7XFxufVxcbi56LXRvcCB7XFxuICB6LWluZGV4OiA3MDAwICFpbXBvcnRhbnQ7XFxufVxcbi56LW1heCB7XFxuICB6LWluZGV4OiA5OTk4ICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC5kZXNrdG9wKSAuZGVza3RvcC1vbmx5LFxcbmJvZHkuZGVza3RvcCAuZGVza3RvcC1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLm1vYmlsZSkgLm1vYmlsZS1vbmx5LFxcbmJvZHkubW9iaWxlIC5tb2JpbGUtaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC5jb3Jkb3ZhKSAuY29yZG92YS1vbmx5LFxcbmJvZHkuY29yZG92YSAuY29yZG92YS1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLmVsZWN0cm9uKSAuZWxlY3Ryb24tb25seSxcXG5ib2R5LmVsZWN0cm9uIC5lbGVjdHJvbi1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLmlvcykgLmlvcy1vbmx5LFxcbmJvZHkuaW9zIC5pb3MtaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC5tYXQpIC5tYXQtb25seSxcXG5ib2R5Lm1hdCAubWF0LWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCgudG91Y2gpIC50b3VjaC1vbmx5LFxcbmJvZHkudG91Y2ggLnRvdWNoLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCgud2l0aGluLWlmcmFtZSkgLndpdGhpbi1pZnJhbWUtb25seSxcXG5ib2R5LndpdGhpbi1pZnJhbWUgLndpdGhpbi1pZnJhbWUtaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC5wbGF0Zm9ybS1pb3MpIC5wbGF0Zm9ybS1pb3Mtb25seSxcXG5ib2R5LnBsYXRmb3JtLWlvcyAucGxhdGZvcm0taW9zLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCgucGxhdGZvcm0tYW5kcm9pZCkgLnBsYXRmb3JtLWFuZHJvaWQtb25seSxcXG5ib2R5LnBsYXRmb3JtLWFuZHJvaWQgLnBsYXRmb3JtLWFuZHJvaWQtaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbkBtZWRpYSBhbGwgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcXG4gIC5vcmllbnRhdGlvbi1sYW5kc2NhcGUge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSBhbGwgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XFxuICAub3JpZW50YXRpb24tcG9ydHJhaXQge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSBzY3JlZW4ge1xcbiAgLnByaW50LW9ubHkge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSBwcmludCB7XFxuICAucHJpbnQtaGlkZSB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7XFxuICAueHMtaGlkZSxcXG4gIC5ndC14cyxcXG4gIC5zbSxcXG4gIC5ndC1zbSxcXG4gIC5tZCxcXG4gIC5ndC1tZCxcXG4gIC5sZyxcXG4gIC5ndC1sZyxcXG4gIC54bCB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIC5zbS1oaWRlLFxcbiAgLnhzLFxcbiAgLmx0LXNtLFxcbiAgLmd0LXNtLFxcbiAgLm1kLFxcbiAgLmd0LW1kLFxcbiAgLmxnLFxcbiAgLmd0LWxnLFxcbiAgLnhsIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xcbiAgLm1kLWhpZGUsXFxuICAueHMsXFxuICAubHQtc20sXFxuICAuc20sXFxuICAubHQtbWQsXFxuICAuZ3QtbWQsXFxuICAubGcsXFxuICAuZ3QtbGcsXFxuICAueGwge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xcbiAgLmxnLWhpZGUsXFxuICAueHMsXFxuICAubHQtc20sXFxuICAuc20sXFxuICAubHQtbWQsXFxuICAubWQsXFxuICAubHQtbGcsXFxuICAuZ3QtbGcsXFxuICAueGwge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcXG4gIC54bC1oaWRlLFxcbiAgLnhzLFxcbiAgLmx0LXNtLFxcbiAgLnNtLFxcbiAgLmx0LW1kLFxcbiAgLm1kLFxcbiAgLmx0LWxnLFxcbiAgLmxnLFxcbiAgLmx0LXhsIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG4ucS1mb2N1cy1oZWxwZXIge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMCAvKiBydGw6aWdub3JlICovO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxuICBvcGFjaXR5OiAwLjE1O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbn1cXG4ucS1mb2N1cy1oZWxwZXItcm91bmRlZCB7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxufVxcbi5xLWZvY3VzLWhlbHBlci1yb3VuZCB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxufVxcbmJvZHkuZGVza3RvcCAucS1mb2N1c2FibGU6Zm9jdXMgLnEtZm9jdXMtaGVscGVyLFxcbmJvZHkuZGVza3RvcCAucS1ob3ZlcmFibGU6aG92ZXIgLnEtZm9jdXMtaGVscGVyIHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuYm9keS5pb3MgLnEtaG92ZXJhYmxlOmFjdGl2ZSAucS1mb2N1cy1oZWxwZXIge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbiAgb3BhY2l0eTogMC4zO1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSkge1xcbiAgLnEtaWYgPiAucS1pZi1pbm5lciB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiBhdXRvO1xcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgfVxcbiAgLnEtaWYgPiAucS1pZi1pbm5lciA+IGRpdiA+IC5xLWlucHV0LXRhcmdldCB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiBhdXRvO1xcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcXG4gIH1cXG4gIC5xLWlmID4gLnEtaWYtaW5uZXIgPiBkaXYgPiBpbnB1dC5xLWlucHV0LXRhcmdldCB7XFxuICAgIG1pbi13aWR0aDogM3JlbTtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDAlICFpbXBvcnRhbnQ7XFxuICAgICAgICBmbGV4LWJhc2lzOiAwJSAhaW1wb3J0YW50O1xcbiAgfVxcbiAgLnEtaW5wdXQtdGFyZ2V0OmJlZm9yZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgfVxcbiAgLnEtaWYtbGFiZWwtc3BhY2VyIHtcXG4gICAgd2lkdGg6IDA7XFxuICB9XFxuICAucS1lZGl0b3ItdG9vbGJhciAucS1idG4tZ3JvdXAucm93LmlubGluZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgfVxcbiAgLnEtdG9vbGJhcixcXG4gIC5xLWFjdGlvbnNoZWV0LXRpdGxlLFxcbiAgLnEtZmllbGQtbGFiZWwtaW5uZXIge1xcbiAgICBoZWlnaHQ6IDBweDtcXG4gIH1cXG4gIC5xLWNhcm91c2VsLXNsaWRlIHtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wucS1hbGVydC1jb250ZW50IHtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IGF1dG87XFxuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xcbiAgfVxcbiAgLnEtc2xpZGVyLWhhbmRsZSA+IC5xLWNoaXAuaW5saW5lLnJvdyB7XFxuICAgIGRpc3BsYXk6IHRhYmxlO1xcbiAgfVxcbiAgYS5xLWJ0bjpub3QoLnEtYnRuLXJvdW5kKSB7XFxuICAgIGhlaWdodDogMHB4O1xcbiAgfVxcbiAgLnEtYnRuIC5xLWJ0bi1pbm5lciB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiBhdXRvO1xcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcXG4gIH1cXG4gIC5xLWJ0bjphY3RpdmUgLnEtYnRuLWlubmVyLFxcbiAgLnEtYnRuLmFjdGl2ZSAucS1idG4taW5uZXIge1xcbiAgICBtYXJnaW46IC0xcHggMXB4IDFweCAtMXB4O1xcbiAgfVxcbiAgLnEtYnRuOmFjdGl2ZS5xLWJ0bi1wdXNoIC5xLWJ0bi1pbm5lcixcXG4gIC5xLWJ0bi5hY3RpdmUucS1idG4tcHVzaCAucS1idG4taW5uZXIge1xcbiAgICBtYXJnaW46IDFweCAxcHggLTFweCAtMXB4O1xcbiAgfVxcbiAgLnEtYnRuOmFjdGl2ZS5xLWJ0bi1wdXNoLmRpc2FibGVkIC5xLWJ0bi1pbm5lcixcXG4gIC5xLWJ0bi5hY3RpdmUucS1idG4tcHVzaC5kaXNhYmxlZCAucS1idG4taW5uZXIge1xcbiAgICBtYXJnaW46IC0xcHggMXB4IDFweCAtMXB4O1xcbiAgfVxcbiAgLnEtYnRuLWdyb3VwID4gLnEtYnRuLnEtYnRuLXB1c2g6bm90KC5kaXNhYmxlZCk6YWN0aXZlIC5xLWJ0bi1pbm5lcixcXG4gIC5xLWJ0bi1ncm91cCA+IC5xLWJ0bi5xLWJ0bi1wdXNoOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSAucS1idG4taW5uZXIge1xcbiAgICBtYXJnaW46IDA7XFxuICB9XFxuICAucS1jaGlwOm5vdCgucS1jaGlwLXNtYWxsKTpub3QoLnEtY2hpcC1kZW5zZSkgLnEtY2hpcC1tYWluIHtcXG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XFxuICB9XFxuICAucS1idG4gLnEtY2hpcCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIH1cXG4gIC5xLXRhYiAucS1jaGlwIC5xLWNoaXAtbWFpbiB7XFxuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XFxuICB9XFxuICAucS1mYWItYWN0aW9ucy5xLWZhYi1sZWZ0LFxcbiAgLnEtZmFiLWFjdGlvbnMucS1mYWItcmlnaHQge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIH1cXG4gIC5xLWl0ZW0tbWFpbiB7XFxuICAgIG1pbi13aWR0aDogMXB4O1xcbiAgfVxcbiAgLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLWl0ZW0ge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XFxuICB9XFxuICAucS1tb2RhbC1sYXlvdXQge1xcbiAgICBtaW4taGVpZ2h0OiA4MHZoICFpbXBvcnRhbnQ7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICB9XFxufVxcbkBzdXBwb3J0cyAoLW1zLWltZS1hbGlnbjogYXV0bykge1xcbiAgLnEtaWYgPiAucS1pZi1pbm5lciB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiBhdXRvO1xcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgfVxcbiAgLnEtaWYgPiAucS1pZi1pbm5lciA+IGRpdiA+IC5xLWlucHV0LXRhcmdldCB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiBhdXRvO1xcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcXG4gIH1cXG4gIC5xLWlmID4gLnEtaWYtaW5uZXIgPiBkaXYgPiBpbnB1dC5xLWlucHV0LXRhcmdldCB7XFxuICAgIG1pbi13aWR0aDogM3JlbTtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDAlICFpbXBvcnRhbnQ7XFxuICAgICAgICBmbGV4LWJhc2lzOiAwJSAhaW1wb3J0YW50O1xcbiAgfVxcbiAgLnEtaW5wdXQtdGFyZ2V0OmJlZm9yZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgfVxcbiAgLnEtaWYtbGFiZWwtc3BhY2VyIHtcXG4gICAgd2lkdGg6IDA7XFxuICB9XFxuICAucS1lZGl0b3ItdG9vbGJhciAucS1idG4tZ3JvdXAucm93LmlubGluZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgfVxcbiAgLnEtdG9vbGJhcixcXG4gIC5xLWFjdGlvbnNoZWV0LXRpdGxlLFxcbiAgLnEtZmllbGQtbGFiZWwtaW5uZXIge1xcbiAgICBoZWlnaHQ6IDBweDtcXG4gIH1cXG4gIC5xLWNhcm91c2VsLXNsaWRlIHtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wucS1hbGVydC1jb250ZW50IHtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IGF1dG87XFxuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xcbiAgfVxcbiAgLnEtc2xpZGVyLWhhbmRsZSA+IC5xLWNoaXAuaW5saW5lLnJvdyB7XFxuICAgIGRpc3BsYXk6IHRhYmxlO1xcbiAgfVxcbiAgYS5xLWJ0bjpub3QoLnEtYnRuLXJvdW5kKSB7XFxuICAgIGhlaWdodDogMHB4O1xcbiAgfVxcbiAgLnEtYnRuIC5xLWJ0bi1pbm5lciB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiBhdXRvO1xcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcXG4gIH1cXG4gIC5xLWJ0bjphY3RpdmUgLnEtYnRuLWlubmVyLFxcbiAgLnEtYnRuLmFjdGl2ZSAucS1idG4taW5uZXIge1xcbiAgICBtYXJnaW46IC0xcHggMXB4IDFweCAtMXB4O1xcbiAgfVxcbiAgLnEtYnRuOmFjdGl2ZS5xLWJ0bi1wdXNoIC5xLWJ0bi1pbm5lcixcXG4gIC5xLWJ0bi5hY3RpdmUucS1idG4tcHVzaCAucS1idG4taW5uZXIge1xcbiAgICBtYXJnaW46IDFweCAxcHggLTFweCAtMXB4O1xcbiAgfVxcbiAgLnEtYnRuOmFjdGl2ZS5xLWJ0bi1wdXNoLmRpc2FibGVkIC5xLWJ0bi1pbm5lcixcXG4gIC5xLWJ0bi5hY3RpdmUucS1idG4tcHVzaC5kaXNhYmxlZCAucS1idG4taW5uZXIge1xcbiAgICBtYXJnaW46IC0xcHggMXB4IDFweCAtMXB4O1xcbiAgfVxcbiAgLnEtYnRuLWdyb3VwID4gLnEtYnRuLnEtYnRuLXB1c2g6bm90KC5kaXNhYmxlZCk6YWN0aXZlIC5xLWJ0bi1pbm5lcixcXG4gIC5xLWJ0bi1ncm91cCA+IC5xLWJ0bi5xLWJ0bi1wdXNoOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSAucS1idG4taW5uZXIge1xcbiAgICBtYXJnaW46IDA7XFxuICB9XFxuICAucS1jaGlwOm5vdCgucS1jaGlwLXNtYWxsKTpub3QoLnEtY2hpcC1kZW5zZSkgLnEtY2hpcC1tYWluIHtcXG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XFxuICB9XFxuICAucS1idG4gLnEtY2hpcCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIH1cXG4gIC5xLXRhYiAucS1jaGlwIC5xLWNoaXAtbWFpbiB7XFxuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XFxuICB9XFxuICAucS1mYWItYWN0aW9ucy5xLWZhYi1sZWZ0LFxcbiAgLnEtZmFiLWFjdGlvbnMucS1mYWItcmlnaHQge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIH1cXG4gIC5xLWl0ZW0tbWFpbiB7XFxuICAgIG1pbi13aWR0aDogMXB4O1xcbiAgfVxcbiAgLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLWl0ZW0ge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XFxuICB9XFxuICAucS1tb2RhbC1sYXlvdXQge1xcbiAgICBtaW4taGVpZ2h0OiA4MHZoICFpbXBvcnRhbnQ7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyB3ZWJraXQtYXV0b2ZpbGwtb24ge1xcbiAgdG8ge1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gICAgY29sb3I6ICNmZjk4MDA7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgd2Via2l0LWF1dG9maWxsLW9uIHtcXG4gIHRvIHtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICAgIGNvbG9yOiAjZmY5ODAwO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgd2Via2l0LWF1dG9maWxsLW9mZiB7XFxuICB0byB7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHdlYmtpdC1hdXRvZmlsbC1vZmYge1xcbiAgdG8ge1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZSB7XFxuICAwJSB7XFxuICAgIGxlZnQ6IC0zNSU7XFxuICAgIHJpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgNjAlIHtcXG4gICAgbGVmdDogMTAwJTtcXG4gICAgcmlnaHQ6IC05MCU7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgbGVmdDogMTAwJTtcXG4gICAgcmlnaHQ6IC05MCU7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1wcm9ncmVzcy1pbmRldGVybWluYXRlIHtcXG4gIDAlIHtcXG4gICAgbGVmdDogLTM1JTtcXG4gICAgcmlnaHQ6IDEwMCU7XFxuICB9XFxuICA2MCUge1xcbiAgICBsZWZ0OiAxMDAlO1xcbiAgICByaWdodDogLTkwJTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBsZWZ0OiAxMDAlO1xcbiAgICByaWdodDogLTkwJTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZS1zaG9ydCB7XFxuICAwJSB7XFxuICAgIGxlZnQ6IC0yMDAlO1xcbiAgICByaWdodDogMTAwJTtcXG4gIH1cXG4gIDYwJSB7XFxuICAgIGxlZnQ6IDEwNyU7XFxuICAgIHJpZ2h0OiAtOCU7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgbGVmdDogMTA3JTtcXG4gICAgcmlnaHQ6IC04JTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUtc2hvcnQge1xcbiAgMCUge1xcbiAgICBsZWZ0OiAtMjAwJTtcXG4gICAgcmlnaHQ6IDEwMCU7XFxuICB9XFxuICA2MCUge1xcbiAgICBsZWZ0OiAxMDclO1xcbiAgICByaWdodDogLTglO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIGxlZnQ6IDEwNyU7XFxuICAgIHJpZ2h0OiAtOCU7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXByb2dyZXNzLXN0cmlwZXMge1xcbiAgZnJvbSB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDQwcHggMDtcXG4gIH1cXG4gIHRvIHtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtcHJvZ3Jlc3Mtc3RyaXBlcyB7XFxuICBmcm9tIHtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNDBweCAwO1xcbiAgfVxcbiAgdG8ge1xcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLW1hdC1kYXNoIHtcXG4gIDAlIHtcXG4gICAgc3Ryb2tlLWRhc2hhcnJheTogMSwgMjAwO1xcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcXG4gIH1cXG4gIDUwJSB7XFxuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDg5LCAyMDA7XFxuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtMzVweDtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBzdHJva2UtZGFzaGFycmF5OiA4OSwgMjAwO1xcbiAgICBzdHJva2UtZGFzaG9mZnNldDogLTEyNHB4O1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtbWF0LWRhc2gge1xcbiAgMCUge1xcbiAgICBzdHJva2UtZGFzaGFycmF5OiAxLCAyMDA7XFxuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xcbiAgfVxcbiAgNTAlIHtcXG4gICAgc3Ryb2tlLWRhc2hhcnJheTogODksIDIwMDtcXG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0zNXB4O1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDg5LCAyMDA7XFxuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtMTI0cHg7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLWhpZ2hsaWdodCB7XFxuICAwJSB7XFxuICAgIGJhY2tncm91bmQ6ICNjZGRjMzk7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1oaWdobGlnaHQge1xcbiAgMCUge1xcbiAgICBiYWNrZ3JvdW5kOiAjY2RkYzM5O1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1yb3RhdGUge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCkgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDI1JSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICA1MCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICA3NSUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtcm90YXRlIHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICAyNSUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgNTAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgNzUlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtYmxpbmsge1xcbiAgdG8ge1xcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1ibGluayB7XFxuICB0byB7XFxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtc3BpbiB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM1OWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXNwaW4ge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXBvcCB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC43KTtcXG4gIH1cXG4gIDcwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjA3KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDcpO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtcG9wIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xcbiAgfVxcbiAgNzAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMDcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNyk7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLWZhZGUge1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1mYWRlIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1zY2FsZSB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC43KTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXNjYWxlIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1ib3VuY2Uge1xcbiAgMCUsIDIwJSwgNTAlLCA4MCUsIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxuICB9XFxuICA0MCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTtcXG4gIH1cXG4gIDYwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1cHgpO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtYm91bmNlIHtcXG4gIDAlLCAyMCUsIDUwJSwgODAlLCAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgfVxcbiAgNDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7XFxuICB9XFxuICA2MCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtc2hha2Uge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG4gIDUwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtc2hha2Uge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG4gIDUwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1wb3B1cC1kb3duIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpIHNjYWxlWSgwLjMpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCkgc2NhbGVZKDAuMyk7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgfVxcbiAgMzAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXBvcHVwLWRvd24ge1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCkgc2NhbGVZKDAuMyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KSBzY2FsZVkoMC4zKTtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICB9XFxuICAzMCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1wb3B1cC11cCB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpIHNjYWxlWSgwLjMpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KSBzY2FsZVkoMC4zKTtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICB9XFxuICAzMCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtcG9wdXAtdXAge1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KSBzY2FsZVkoMC4zKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCkgc2NhbGVZKDAuMyk7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgfVxcbiAgMzAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtc2xpZGUtbGVmdCB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03MCUpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNzAlKTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXNsaWRlLWxlZnQge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNzAlKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTcwJSk7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXNsaWRlLXJpZ2h0IHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNzAlKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNzAlKTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXNsaWRlLXJpZ2h0IHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNzAlKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNzAlKTtcXG4gIH1cXG59XFxuXCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vbm9kZV9tb2R1bGVzL3F1YXNhci1mcmFtZXdvcmsvZGlzdC91bWQvcXVhc2FyLm1hdC5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUE7Ozs7RUFJRTtBQUNGOzs7RUFHRSwyQkFBMkI7VUFDbkIsbUJBQW1CO0VBQzNCLHdDQUF3QztFQUN4QyxxQ0FBcUM7QUFDdkM7QUFDQTs7O0VBR0UsV0FBVztFQUNYLGNBQWM7QUFDaEI7QUFDQTs7RUFFRSxTQUFTO0VBQ1QsOEJBQThCO1VBQ3RCLHNCQUFzQjtBQUNoQztBQUNBOzs7O0VBSUUsd0JBQXdCO0VBQ3hCLCtDQUErQztBQUNqRDtBQUNBOzs7Ozs7Ozs7Ozs7RUFZRSxjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsU0FBUztBQUNYO0FBQ0E7RUFDRSxtQkFBbUI7RUFDbkIsMEJBQTBCO0VBQzFCLHlDQUF5QztVQUNqQyxpQ0FBaUM7QUFDM0M7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTs7OztFQUlFLGlDQUFpQztFQUNqQyxjQUFjO0FBQ2hCO0FBQ0E7RUFDRSwrQkFBK0I7VUFDdkIsdUJBQXVCO0VBQy9CLFNBQVM7RUFDVCxpQkFBaUI7QUFDbkI7QUFDQTs7OztFQUlFLGFBQWE7RUFDYixTQUFTO0FBQ1g7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBOzs7RUFHRSxpQkFBaUI7QUFDbkI7QUFDQTs7RUFFRSxTQUFTO0VBQ1QsVUFBVTtBQUNaO0FBQ0E7O0VBRUUsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSxjQUFjO0FBQ2hCO0FBQ0E7RUFDRSw2QkFBNkI7QUFDL0I7QUFDQTs7RUFFRSx3QkFBd0I7QUFDMUI7QUFDQTtFQUNFLGNBQWM7RUFDZCxzQkFBc0I7RUFDdEIsb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsY0FBYztBQUNoQjtBQUNBOztFQUVFLHlCQUF5QjtLQUN0QixzQkFBc0I7TUFDckIscUJBQXFCO1VBQ2pCLGlCQUFpQjtFQUN6QixlQUFlO0VBQ2Ysa0JBQWtCO0VBQ2xCLDJCQUEyQjtFQUMzQiwyQkFBMkI7RUFDM0Isb0JBQW9CO0VBQ3BCLHlCQUF5QjtNQUNyQixzQkFBc0I7VUFDbEIsbUJBQW1CO0VBQzNCLHdCQUF3QjtNQUNwQixxQkFBcUI7VUFDakIsdUJBQXVCO0VBQy9CLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZixXQUFXO0VBQ1gsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsY0FBYztBQUNoQjtBQUNBO0VBQ0UsaUJBQWlCO0VBQ2pCLG1DQUFtQztFQUNuQywyQkFBMkI7QUFDN0I7QUFDQTs7RUFFRSxtQkFBbUI7RUFDbkIsVUFBVTtBQUNaO0FBQ0E7O0VBRUUsZUFBZTtFQUNmLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsV0FBVztFQUNYLFlBQVk7QUFDZDtBQUNBO0VBQ0UsV0FBVztFQUNYLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsZUFBZTtFQUNmLGFBQWE7RUFDYixtRkFBbUY7RUFDbkYsMkVBQTJFO0VBQzNFLG1FQUFtRTtFQUNuRSxzSEFBc0g7QUFDeEg7QUFDQTtFQUNFLHdCQUF3QjtFQUN4Qix5QkFBeUI7RUFDekIsTUFBTTtFQUNOLFdBQVc7QUFDYjtBQUNBO0VBQ0Usd0JBQXdCO0VBQ3hCLHlCQUF5QjtFQUN6QixTQUFTO0VBQ1QsV0FBVztBQUNiO0FBQ0E7RUFDRSxNQUFNO0VBQ04sU0FBUztFQUNULFFBQVE7RUFDUixZQUFZO0FBQ2Q7QUFDQTtFQUNFLE1BQU07RUFDTixTQUFTO0VBQ1QsT0FBTztFQUNQLFlBQVk7QUFDZDtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLHdCQUF3QjtVQUNoQixnQkFBZ0I7QUFDMUI7QUFDQTtFQUNFLFdBQVc7RUFDWCxZQUFZO0FBQ2Q7QUFDQTs7RUFFRSxhQUFhO0VBQ2IsZUFBZTtFQUNmLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0UsZUFBZTtFQUNmLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7O0VBRUUsZUFBZTtBQUNqQjtBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSw4Q0FBOEM7VUFDdEMsc0NBQXNDO0FBQ2hEO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsU0FBUztFQUNULHNCQUFzQjtFQUN0QixlQUFlO0VBQ2YsaUJBQWlCO0VBQ2pCLGVBQWU7RUFDZixxQkFBcUI7RUFDckIsY0FBYztFQUNkLHVCQUF1QjtFQUN2Qix3REFBd0Q7RUFDeEQsZ0RBQWdEO0VBQ2hELG1CQUFtQjtFQUNuQiwwR0FBMEc7VUFDbEcsa0dBQWtHO0VBQzFHLGdCQUFnQjtFQUNoQix5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsMkJBQTJCO0VBQzNCLDJCQUEyQjtFQUMzQixvQkFBb0I7QUFDdEI7QUFDQTs7RUFFRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGdDQUFnQztFQUNoQyx3QkFBd0I7QUFDMUI7QUFDQTtFQUNFLFVBQVU7QUFDWjtBQUNBO0VBQ0UsV0FBVztBQUNiO0FBQ0E7RUFDRSx1QkFBdUI7QUFDekI7QUFDQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLFFBQVE7RUFDUixTQUFTO0VBQ1QsT0FBTztFQUNQLHNCQUFzQjtFQUN0QixXQUFXO0VBQ1gsd0RBQXdEO0VBQ3hELGdEQUFnRDtBQUNsRDtBQUNBOztFQUVFLG9IQUFvSDtVQUM1Ryw0R0FBNEc7QUFDdEg7QUFDQTtFQUNFLDRCQUE0QjtFQUM1QixvQkFBb0I7RUFDcEIsWUFBWTtFQUNaLGtDQUFrQztBQUNwQztBQUNBO0VBQ0UsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsOEJBQThCO0VBQzlCLGtDQUFrQztBQUNwQztBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLHlDQUF5QztBQUMzQztBQUNBOztFQUVFLHdCQUF3QjtVQUNoQixnQkFBZ0I7RUFDeEIsa0NBQWtDO1VBQzFCLDBCQUEwQjtFQUNsQyxnQ0FBZ0M7QUFDbEM7QUFDQTs7RUFFRSxZQUFZO0VBQ1osWUFBWTtBQUNkO0FBQ0E7RUFDRSxtQkFBbUI7QUFDckI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsYUFBYTtFQUNiLFdBQVc7RUFDWCxVQUFVO0FBQ1o7QUFDQTs7RUFFRSx3QkFBd0I7VUFDaEIsZ0JBQWdCO0FBQzFCO0FBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsVUFBVTtFQUNWLGFBQWE7RUFDYixZQUFZO0FBQ2Q7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7O0VBRUUsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjtBQUNBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7QUFDYjtBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7O0VBRUUseUNBQXlDO0VBQ3pDLGlDQUFpQztBQUNuQztBQUNBOzs7RUFHRSxVQUFVO0FBQ1o7QUFDQTtFQUNFLGNBQWM7RUFDZCw0Q0FBNEM7QUFDOUM7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQiwwR0FBMEc7VUFDbEcsa0dBQWtHO0VBQzFHLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0Usd0JBQXdCO1VBQ2hCLGdCQUFnQjtBQUMxQjtBQUNBO0VBQ0UsK0JBQStCO0VBQy9CLGtDQUFrQztBQUNwQztBQUNBO0VBQ0UsZ0NBQWdDO0VBQ2hDLG1DQUFtQztBQUNyQztBQUNBO0VBQ0UsY0FBYztBQUNoQjtBQUNBO0VBQ0UsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsMEJBQTBCO0VBQzFCLDZCQUE2QjtBQUMvQjtBQUNBO0VBQ0UseUJBQXlCO0VBQ3pCLDRCQUE0QjtBQUM5QjtBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSx3REFBd0Q7RUFDeEQsZ0RBQWdEO0FBQ2xEO0FBQ0E7O0VBRUUscUNBQXFDO0VBQ3JDLGdDQUFnQztVQUN4Qix3QkFBd0I7QUFDbEM7QUFDQTs7RUFFRSxrQ0FBa0M7VUFDMUIsMEJBQTBCO0FBQ3BDO0FBQ0E7RUFDRSxtQkFBbUI7QUFDckI7QUFDQTs7RUFFRSx3QkFBd0I7VUFDaEIsZ0JBQWdCO0FBQzFCO0FBQ0E7RUFDRSxjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsMEdBQTBHO1VBQ2xHLGtHQUFrRztFQUMxRyxtQkFBbUI7QUFDckI7QUFDQTtFQUNFLCtCQUErQjtFQUMvQixnQ0FBZ0M7QUFDbEM7QUFDQTtFQUNFLGtDQUFrQztFQUNsQyxtQ0FBbUM7QUFDckM7QUFDQTtFQUNFLFNBQVM7QUFDWDtBQUNBO0VBQ0UsMkJBQTJCO0VBQzNCLFdBQVc7QUFDYjtBQUNBO0VBQ0UsY0FBYztBQUNoQjtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSxlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLHNCQUFzQjtFQUN0QixpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBOztFQUVFLGVBQWU7RUFDZixzQkFBc0I7QUFDeEI7QUFDQTs7RUFFRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxZQUFZO0FBQ2Q7QUFDQTtFQUNFLGNBQWM7QUFDaEI7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxjQUFjO0VBQ2QsV0FBVztFQUNYLGVBQWU7RUFDZixTQUFTO0FBQ1g7QUFDQTtFQUNFLFdBQVc7RUFDWCw0QkFBNEI7QUFDOUI7QUFDQTtFQUNFLFdBQVc7QUFDYjtBQUNBO0VBQ0UsaUNBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsNEJBQTRCO0FBQzlCO0FBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsWUFBWTtBQUNkO0FBQ0E7RUFDRSxtQkFBbUI7TUFDZixrQkFBa0I7VUFDZCxjQUFjO0VBQ3RCLFNBQVM7RUFDVCxhQUFhO0FBQ2Y7QUFDQTtFQUNFLFVBQVU7RUFDVixTQUFTO0VBQ1Qsc0JBQXNCO0VBQ3RCLG9CQUFvQjtFQUNwQixvQkFBb0I7RUFDcEIsYUFBYTtFQUNiLHFCQUFxQjtNQUNqQixpQkFBaUI7RUFDckIsWUFBWTtBQUNkO0FBQ0E7RUFDRSwrQkFBK0I7TUFDM0IscUJBQXFCO1VBQ2pCLFlBQVk7RUFDcEIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSwrQkFBK0I7TUFDM0Isb0JBQW9CO1VBQ2hCLFdBQVc7QUFDckI7QUFDQTs7RUFFRSxRQUFRO0VBQ1IsbUNBQW1DO1VBQzNCLDJCQUEyQjtFQUNuQywyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLFNBQVM7QUFDWDtBQUNBO0VBQ0UsVUFBVTtBQUNaO0FBQ0E7RUFDRSxjQUFjO0VBQ2QsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSwwQkFBMEI7QUFDNUI7QUFDQTtFQUNFLFlBQVk7QUFDZDtBQUNBO0VBQ0UsMEJBQTBCO0FBQzVCO0FBQ0E7RUFDRSxzQkFBc0I7RUFDdEIsMENBQTBDO0VBQzFDLGtDQUFrQztFQUNsQywwQkFBMEI7RUFDMUIsa0RBQWtEO0VBQ2xELG1DQUFtQztVQUMzQiwyQkFBMkI7RUFDbkMsV0FBVztFQUNYLFlBQVk7RUFDWixlQUFlO0VBQ2YsY0FBYztFQUNkLGdCQUFnQjtFQUNoQixlQUFlO0VBQ2Ysa0JBQWtCO0VBQ2xCLDRFQUE0RTtVQUNwRSxvRUFBb0U7QUFDOUU7QUFDQTtFQUNFLGdDQUFnQztVQUN4Qix3QkFBd0I7QUFDbEM7QUFDQTtFQUNFLFlBQVk7RUFDWixXQUFXO0VBQ1gsY0FBYztFQUNkLFlBQVk7RUFDWixvQkFBb0I7RUFDcEIsZ0NBQWdDO0VBQ2hDLHdCQUF3QjtFQUN4QixlQUFlO0VBQ2Ysc0JBQXNCO0FBQ3hCO0FBQ0E7RUFDRSxtQkFBbUI7TUFDZixtQkFBbUI7VUFDZixlQUFlO0FBQ3pCO0FBQ0E7O0VBRUUsVUFBVTtFQUNWLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsMkJBQTJCO0VBQzNCLFFBQVE7RUFDUixVQUFVO0FBQ1o7QUFDQTtFQUNFLFVBQVU7QUFDWjtBQUNBOzs7RUFHRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGNBQWM7QUFDaEI7QUFDQTtFQUNFLGNBQWM7RUFDZCxlQUFlO0VBQ2YsWUFBWTtFQUNaLGFBQWE7QUFDZjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxZQUFZO0FBQ2Q7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLGNBQWM7RUFDZCw0QkFBNEI7QUFDOUI7QUFDQTtFQUNFLFdBQVc7RUFDWCxpQ0FBaUM7RUFDakMsa0NBQWtDO0VBQ2xDLHFDQUFxQztBQUN2QztBQUNBO0VBQ0UsV0FBVztBQUNiO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsOEJBQThCO0VBQzlCLDhCQUE4QjtNQUMxQiwrQkFBK0I7VUFDM0IsMkJBQTJCO0FBQ3JDO0FBQ0E7RUFDRSxjQUFjO0VBQ2QsNEJBQTRCO0FBQzlCO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsZ0NBQWdDO0VBQ2hDLG1DQUFtQztFQUNuQyxxQ0FBcUM7QUFDdkM7QUFDQTtFQUNFLFdBQVc7QUFDYjtBQUNBO0VBQ0Usd0JBQXdCO0VBQ3hCLFlBQVk7RUFDWixnQkFBZ0I7RUFDaEIsc0JBQXNCO0VBQ3RCLGtCQUFrQjtFQUNsQix1Q0FBdUM7VUFDL0IsK0JBQStCO0FBQ3pDO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGNBQWM7QUFDaEI7QUFDQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsU0FBUztFQUNULFFBQVE7RUFDUixTQUFTO0FBQ1g7QUFDQTtFQUNFLFlBQVk7RUFDWixXQUFXO0VBQ1gsZUFBZTtFQUNmLFVBQVU7QUFDWjtBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZixlQUFlO0VBQ2YsZUFBZTtFQUNmLGVBQWU7RUFDZixtQkFBbUI7RUFDbkIsc0JBQXNCO0VBQ3RCLFdBQVc7RUFDWCxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLFlBQVk7QUFDZDtBQUNBO0VBQ0UsZUFBZTtFQUNmLGNBQWM7QUFDaEI7QUFDQTtFQUNFLG9CQUFvQjtFQUNwQixtQkFBbUI7TUFDZixrQkFBa0I7VUFDZCxjQUFjO0FBQ3hCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLFdBQVc7RUFDWCxlQUFlO0VBQ2YsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsWUFBWTtBQUNkO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsYUFBYTtFQUNiLG9CQUFvQjtFQUNwQixVQUFVO0FBQ1o7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsUUFBUTtFQUNSLFlBQVk7RUFDWixvQkFBb0I7RUFDcEIsZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYixjQUFjO0VBQ2QsZ0RBQWdEO1VBQ3hDLHdDQUF3QztFQUNoRCxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixVQUFVO0FBQ1o7QUFDQTtFQUNFLFdBQVc7RUFDWCxXQUFXO0VBQ1gsbUJBQW1CO0VBQ25CLFdBQVc7RUFDWCxZQUFZO0VBQ1osa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLE1BQU07RUFDTixTQUFTO0VBQ1Qsa0VBQWtFO1VBQzFELDBEQUEwRDtBQUNwRTtBQUNBO0VBQ0UscUJBQXFCO0FBQ3ZCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsU0FBUztFQUNULFNBQVM7RUFDVCxrRUFBa0U7VUFDMUQsMERBQTBEO0FBQ3BFO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLFFBQVE7RUFDUixVQUFVO0VBQ1YsWUFBWTtFQUNaLFVBQVU7RUFDVixpRUFBaUU7VUFDekQseURBQXlEO0FBQ25FO0FBQ0E7RUFDRSxtQkFBbUI7QUFDckI7QUFDQTtFQUNFLFFBQVE7RUFDUixTQUFTO0VBQ1QsWUFBWTtFQUNaLFdBQVc7RUFDWCxrRUFBa0U7VUFDMUQsMERBQTBEO0FBQ3BFO0FBQ0E7RUFDRSwyQkFBMkI7RUFDM0IsWUFBWTtFQUNaLGNBQWM7RUFDZCxzQkFBc0I7RUFDdEIsMEJBQTBCO0VBQzFCLDZCQUE2QjtBQUMvQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxZQUFZO0VBQ1osV0FBVztFQUNYLGVBQWU7QUFDakI7QUFDQTtFQUNFLGVBQWU7QUFDakI7QUFDQTtFQUNFLGVBQWU7RUFDZixjQUFjO0VBQ2QsZUFBZTtBQUNqQjtBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsV0FBVztBQUNiO0FBQ0E7RUFDRSxZQUFZO0FBQ2Q7QUFDQTtFQUNFLFlBQVk7RUFDWixXQUFXO0VBQ1gsZUFBZTtFQUNmLGVBQWU7QUFDakI7QUFDQTtFQUNFLGlCQUFpQjtFQUNqQixpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGVBQWU7QUFDakI7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLFdBQVc7QUFDYjtBQUNBO0VBQ0UsMEJBQTBCO0FBQzVCO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsaUNBQWlDO0FBQ25DO0FBQ0E7RUFDRSxnQ0FBZ0M7RUFDaEMsd0JBQXdCO0FBQzFCO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0UsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsMEdBQTBHO1VBQ2xHLGtHQUFrRztBQUM1RztBQUNBOztFQUVFLGNBQWM7QUFDaEI7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsZUFBZTtBQUNqQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLFVBQVU7RUFDVixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQix5QkFBeUI7RUFDekIscUJBQXFCO0VBQ3JCLFdBQVc7RUFDWCxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLFdBQVc7RUFDWCxhQUFhO0FBQ2Y7QUFDQTtFQUVFLDhGQUFnRTtFQUFoRSxnRUFBZ0U7QUFDbEU7QUFDQTtFQUVFLDBGQUF3RDtFQUF4RCx3REFBd0Q7QUFDMUQ7QUFDQTtFQUNFLFdBQVc7RUFDWCxZQUFZO0VBQ1osb0dBQW9HO1VBQzVGLDRGQUE0RjtFQUNwRyxrQkFBa0I7RUFDbEIsd0NBQXdDO1VBQ2hDLGdDQUFnQztBQUMxQztBQUNBOztFQUVFLG9FQUFrTDtBQUNwTDtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQix5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLGtCQUFrQjtFQUVsQixrTUFBMkc7RUFBM0csMkdBQTJHO0VBQzNHLFVBQVU7RUFDVixXQUFXO0FBQ2I7QUFDQTtFQUNFLFVBQVU7QUFDWjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixVQUFVO0VBQ1YsV0FBVztBQUNiO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLE9BQU87RUFDUCxRQUFRO0VBQ1IsTUFBTTtFQUNOLFNBQVM7RUFFVCxpR0FBZ0U7RUFBaEUsZ0VBQWdFO0FBQ2xFO0FBQ0E7RUFDRSxVQUFVO0FBQ1o7QUFDQTtFQUNFLFlBQVk7QUFDZDtBQUNBO0VBQ0UsWUFBWTtBQUNkO0FBQ0E7RUFDRSxnREFBZ0Q7VUFDeEMsd0NBQXdDO0FBQ2xEO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLGVBQWU7RUFDZixjQUFjO0FBQ2hCO0FBQ0E7RUFDRSx5QkFBeUI7RUFDekIsVUFBVTtBQUNaO0FBQ0E7RUFDRSxjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQix5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixjQUFjO0VBQ2QsMkJBQTJCO0VBQzNCLHlCQUF5QjtFQUN6QixxQ0FBcUM7QUFDdkM7QUFDQTtFQUNFLGNBQWM7RUFDZCwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLHlCQUF5QjtFQUN6QixxQ0FBcUM7QUFDdkM7QUFDQTtFQUNFLGVBQWU7QUFDakI7QUFDQTtFQUNFLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsZUFBZTtFQUNmLGtCQUFrQjtFQUNsQix5QkFBeUI7S0FDdEIsc0JBQXNCO01BQ3JCLHFCQUFxQjtVQUNqQixpQkFBaUI7RUFDekIsb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0VBQ3pCLHFDQUFxQztBQUN2QztBQUNBO0VBQ0Usd0JBQXdCO0FBQzFCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsV0FBVztBQUNiO0FBQ0E7O0VBRUUsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxpQkFBaUI7RUFDakIsMkJBQTJCO0VBQzNCLGNBQWM7QUFDaEI7QUFDQTtFQUNFLGVBQWU7RUFDZiw0QkFBNEI7RUFDNUIsY0FBYztBQUNoQjtBQUNBO0VBQ0UsaUJBQWlCO0VBQ2pCLFlBQVk7QUFDZDtBQUNBO0VBQ0UsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxjQUFjO0VBQ2QsV0FBVztBQUNiO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxZQUFZO0FBQ2Q7QUFDQTtFQUNFLFlBQVk7QUFDZDtBQUNBO0VBQ0UsZUFBZTtFQUNmLHFCQUFxQjtFQUNyQixVQUFVO0FBQ1o7QUFDQTtFQUNFLFVBQVU7QUFDWjtBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQiwrQkFBK0I7QUFDakM7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixhQUFhO0VBQ2IsY0FBYztBQUNoQjtBQUNBO0VBQ0UsWUFBWTtFQUNaLGFBQWE7RUFDYixXQUFXO0FBQ2I7QUFDQTs7RUFFRSxXQUFXO0FBQ2I7QUFDQTtFQUNFLGVBQWU7QUFDakI7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsWUFBWTtFQUNaLFdBQVc7RUFDWCxZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLFNBQVM7RUFDVCxVQUFVO0VBQ1YsWUFBWTtFQUNaLGFBQWE7RUFDYix1QkFBdUI7QUFDekI7QUFDQTtFQUNFLFdBQVc7RUFDWCxpQkFBaUI7RUFDakIsV0FBVztFQUNYLFlBQVk7RUFDWixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0UsV0FBVztBQUNiO0FBQ0E7RUFDRSxtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxtQkFBbUI7QUFDckI7QUFDQTtFQUNFLGlCQUFpQjtFQUNqQixpQkFBaUI7RUFDakIsb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxZQUFZO0VBQ1osYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsYUFBYTtBQUNmO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsOENBQThDO1VBQ3RDLHNDQUFzQztBQUNoRDtBQUNBO0VBQ0UsV0FBVztFQUNYLFVBQVU7RUFDVixNQUFNO0VBQ04sWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixhQUFhO0VBQ2Isa0JBQWtCO0VBQ2xCLE9BQU87RUFDUCxRQUFRO0VBQ1IsU0FBUztFQUNULHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0UsVUFBVTtFQUNWLFdBQVc7RUFDWCxjQUFjO0VBQ2QscURBQXFEO1VBQzdDLDZDQUE2QztFQUNyRCxhQUFhO0VBQ2Isa0JBQWtCO0VBQ2xCLE9BQU87RUFDUCxRQUFRO0VBQ1IsU0FBUztFQUNULHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsV0FBVztFQUNYLFlBQVk7RUFDWixPQUFPO0VBQ1AsWUFBWTtFQUNaLGFBQWE7RUFDYix3Q0FBd0M7VUFDaEMsZ0NBQWdDO0VBQ3hDLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0UsY0FBYztBQUNoQjtBQUNBO0VBQ0UsbUJBQW1CO0VBQ25CLCtCQUErQjtBQUNqQztBQUNBO0VBQ0UsY0FBYztFQUNkLDJCQUEyQjtBQUM3QjtBQUNBOztFQUVFLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsV0FBVztBQUNiO0FBQ0E7O0VBRUUsV0FBVztBQUNiO0FBQ0E7O0VBRUUsV0FBVztBQUNiO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLFdBQVc7QUFDYjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixXQUFXO0VBQ1gsWUFBWTtFQUNaLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsU0FBUztFQUNULFVBQVU7RUFDVix5REFBeUQ7VUFDakQsaURBQWlEO0VBQ3pELGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsV0FBVztBQUNiO0FBQ0E7RUFDRSxXQUFXO0FBQ2I7QUFDQTtFQUNFLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0UsV0FBVztBQUNiO0FBQ0E7RUFDRSxPQUFPO0VBQ1AsMEJBQTBCO0FBQzVCO0FBQ0E7RUFDRSxTQUFTO0VBQ1QsMEJBQTBCO0FBQzVCO0FBQ0E7RUFDRSxRQUFRO0VBQ1IsNEJBQTRCO0FBQzlCO0FBQ0E7RUFDRSxRQUFRO0VBQ1IsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSxRQUFRO0VBQ1IsNEJBQTRCO0FBQzlCO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsMEJBQTBCO0FBQzVCO0FBQ0E7RUFDRSxTQUFTO0VBQ1QsMEJBQTBCO0FBQzVCO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsMEJBQTBCO0FBQzVCO0FBQ0E7RUFDRSxRQUFRO0VBQ1IsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSxRQUFRO0VBQ1IseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxRQUFRO0VBQ1IsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSxTQUFTO0VBQ1QsMEJBQTBCO0FBQzVCO0FBQ0E7RUFDRSxPQUFPO0VBQ1AsMEJBQTBCO0FBQzVCO0FBQ0E7RUFDRSxTQUFTO0VBQ1QsMEJBQTBCO0FBQzVCO0FBQ0E7RUFDRSxRQUFRO0VBQ1IsNEJBQTRCO0FBQzlCO0FBQ0E7RUFDRSxRQUFRO0VBQ1IsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSxRQUFRO0VBQ1IsNEJBQTRCO0FBQzlCO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsMEJBQTBCO0FBQzVCO0FBQ0E7RUFDRSxTQUFTO0VBQ1QsMEJBQTBCO0FBQzVCO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsMEJBQTBCO0FBQzVCO0FBQ0E7RUFDRSxRQUFRO0VBQ1IsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSxRQUFRO0VBQ1IseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxRQUFRO0VBQ1IsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSxTQUFTO0VBQ1QsMEJBQTBCO0FBQzVCO0FBQ0E7RUFDRSxPQUFPO0VBQ1AsMEJBQTBCO0FBQzVCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsNEJBQTRCO0FBQzlCO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsNkJBQTZCO0FBQy9CO0FBQ0E7RUFDRSxRQUFRO0VBQ1IsMEJBQTBCO0FBQzVCO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsNkJBQTZCO0FBQy9CO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsNEJBQTRCO0FBQzlCO0FBQ0E7RUFDRSxRQUFRO0VBQ1IsMEJBQTBCO0FBQzVCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsNEJBQTRCO0FBQzlCO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsNkJBQTZCO0FBQy9CO0FBQ0E7RUFDRSxRQUFRO0VBQ1IsMEJBQTBCO0FBQzVCO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsNkJBQTZCO0FBQy9CO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsNEJBQTRCO0FBQzlCO0FBQ0E7RUFDRSxRQUFRO0VBQ1IsMEJBQTBCO0FBQzVCO0FBQ0E7RUFDRSwwQkFBMEI7RUFDMUIsNkJBQTZCO0FBQy9CO0FBQ0E7RUFDRSx5QkFBeUI7RUFDekIsNEJBQTRCO0FBQzlCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFO0lBQ0UsdUNBQXVDO0lBQ3ZDLHdDQUF3QztRQUNwQyxxQ0FBcUM7WUFDakMsaUNBQWlDO0VBQzNDO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsbUJBQW1CO1FBQ2Ysa0JBQWtCO1lBQ2QsY0FBYztFQUN4QjtFQUNBO0lBQ0UsbUJBQW1CO1FBQ2Ysa0JBQWtCO1lBQ2QsY0FBYztFQUN4QjtBQUNGO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsU0FBUztFQUNULFlBQVk7RUFDWixZQUFZO0VBQ1osV0FBVztFQUNYLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsWUFBWTtBQUNkO0FBQ0E7RUFDRSxzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsYUFBYTtFQUNiLGdCQUFnQjtFQUNoQixnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLFNBQVM7RUFDVCxVQUFVO0VBQ1YsV0FBVztFQUNYLFdBQVc7RUFDWCxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLFlBQVk7QUFDZDtBQUNBO0VBQ0UsNkJBQTZCO0VBQzdCLG1CQUFtQjtFQUNuQixnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLHdCQUF3QjtVQUNoQixnQkFBZ0I7QUFDMUI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLE9BQU87RUFDUCxNQUFNO0VBQ04sU0FBUztFQUNULFlBQVk7RUFDWixVQUFVO0VBQ1YsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsc0JBQXNCO0FBQ3hCO0FBQ0E7RUFDRSxZQUFZO0FBQ2Q7QUFDQTtFQUNFLFVBQVU7RUFDVixrRUFBa0U7VUFDMUQsMERBQTBEO0VBQ2xFLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsNENBQTRDO1VBQ3BDLG9DQUFvQztFQUM1QyxVQUFVO0FBQ1o7QUFDQTtFQUNFLDBDQUEwQztVQUNsQyxrQ0FBa0M7RUFDMUMsVUFBVTtBQUNaO0FBQ0E7O0VBRUUsd0RBQXdEO0VBQ3hELGdEQUFnRDtFQUNoRCx3Q0FBd0M7RUFDeEMsZ0VBQWdFO0FBQ2xFO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsMENBQTBDO1VBQ2xDLGtDQUFrQztBQUM1QztBQUNBO0VBQ0UsVUFBVTtFQUNWLDZDQUE2QztVQUNyQyxxQ0FBcUM7QUFDL0M7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1Ysb0NBQW9DO0VBQ3BDLDRCQUE0QjtFQUM1QixvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLFdBQVc7QUFDYjtBQUNBO0VBQ0UsNERBQTREO1VBQ3BELG9EQUFvRDtFQUM1RCxNQUFNO0VBQ04sU0FBUztFQUNULFVBQVU7QUFDWjtBQUNBO0VBQ0UsMkRBQTJEO1VBQ25ELG1EQUFtRDtFQUMzRCxNQUFNO0VBQ04sU0FBUztFQUNULFdBQVc7RUFDWCw4QkFBOEI7RUFDOUIsOEJBQThCO01BQzFCLCtCQUErQjtVQUMzQiwyQkFBMkI7QUFDckM7QUFDQTtFQUNFLDJEQUEyRDtVQUNuRCxtREFBbUQ7RUFDM0QsNEJBQTRCO0VBQzVCLDhCQUE4QjtNQUMxQixrQ0FBa0M7VUFDOUIsOEJBQThCO0VBQ3RDLHdCQUF3QjtNQUNwQixxQkFBcUI7VUFDakIsdUJBQXVCO0VBQy9CLFlBQVk7RUFDWixPQUFPO0VBQ1AsUUFBUTtBQUNWO0FBQ0E7RUFDRSw0REFBNEQ7VUFDcEQsb0RBQW9EO0VBQzVELDRCQUE0QjtFQUM1Qiw2QkFBNkI7TUFDekIsMEJBQTBCO1VBQ3RCLHNCQUFzQjtFQUM5Qix3QkFBd0I7TUFDcEIscUJBQXFCO1VBQ2pCLHVCQUF1QjtFQUMvQixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7QUFDVjtBQUNBO0VBQ0UsV0FBVztFQUNYLFlBQVk7RUFDWixlQUFlO0VBQ2YsZUFBZTtFQUNmLGtCQUFrQjtFQUNsQixjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsY0FBYztBQUNoQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsY0FBYztBQUNoQjtBQUNBO0VBQ0UsZUFBZTtFQUNmLHNDQUFzQztBQUN4QztBQUNBO0VBQ0UsY0FBYztFQUNkLGlCQUFpQjtBQUNuQjtBQUNBOzs7O0VBSUUsY0FBYztBQUNoQjtBQUNBO0VBQ0UsNkJBQTZCO0FBQy9CO0FBQ0E7OztFQUdFLGNBQWM7RUFDZCw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDZCQUE2QjtFQUM3Qiw2Q0FBNkM7QUFDL0M7QUFDQTs7O0VBR0UsY0FBYztFQUNkLDZCQUE2QjtBQUMvQjtBQUNBO0VBQ0UsNkJBQTZCO0VBQzdCLDRDQUE0QztBQUM5QztBQUNBO0VBQ0UsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGNBQWM7QUFDaEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSxjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFO0lBQ0UsYUFBYTtFQUNmO0VBQ0E7SUFDRSxjQUFjO0VBQ2hCO0VBQ0E7SUFDRSxlQUFlO0VBQ2pCO0VBQ0E7SUFDRSxhQUFhO0VBQ2Y7QUFDRjtBQUNBO0VBQ0UsaUNBQWlDO0FBQ25DO0FBQ0E7RUFDRSwyQkFBMkI7QUFDN0I7QUFDQTs7Ozs7Ozs7RUFRRSwyRUFBMkU7RUFDM0UsbUVBQW1FO0FBQ3JFO0FBQ0E7Ozs7RUFJRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLGlCQUFpQjtFQUNqQixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGVBQWU7RUFDZixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBOztFQUVFLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sU0FBUztFQUNULE9BQU87RUFDUCxRQUFRO0VBQ1IsK0JBQStCO0VBQy9CLDBCQUEwQjtFQUMxQix1QkFBdUI7RUFDdkIsb0JBQW9CO0VBQ3BCLFdBQVc7QUFDYjtBQUNBO0VBQ0UsY0FBYztFQUNkLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsZUFBZTtFQUNmLHlDQUF5QztVQUNqQyxpQ0FBaUM7RUFDekMsNEJBQTRCO1VBQ3BCLG9CQUFvQjtBQUM5QjtBQUNBOztFQUVFLFdBQVc7QUFDYjtBQUNBOztFQUVFLFdBQVc7QUFDYjtBQUNBO0VBQ0UsaUJBQWlCO0VBQ2pCLDRCQUE0QjtVQUNwQixvQkFBb0I7RUFDNUIsbUlBQW1JO0VBQ25JLDJIQUEySDtFQUMzSCxtSEFBbUg7RUFDbkgsMktBQTJLO0FBQzdLO0FBQ0E7RUFDRSxVQUFVO0VBQ1YseUJBQXlCO01BQ3JCLHNCQUFzQjtVQUNsQixtQkFBbUI7RUFDM0IsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLGNBQWM7RUFDZCxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBOztFQUVFLGtCQUFrQjtFQUNsQixPQUFPO0VBQ1Asa0NBQWtDO1VBQzFCLDBCQUEwQjtFQUNsQyxrQ0FBa0M7VUFDMUIsMEJBQTBCO0FBQ3BDO0FBQ0E7O0VBRUUsa0JBQWtCO0VBQ2xCLHNDQUFzQztVQUM5Qiw4QkFBOEI7RUFDdEMsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSwwR0FBMEc7VUFDbEcsa0dBQWtHO0VBQzFHLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsUUFBUTtFQUNSLHNDQUFzQztVQUM5Qiw4QkFBOEI7QUFDeEM7QUFDQTtFQUNFLFFBQVE7RUFDUixzQ0FBc0M7VUFDOUIsOEJBQThCO0FBQ3hDO0FBQ0E7RUFDRSxjQUFjO0FBQ2hCO0FBQ0E7OztFQUdFLG1CQUFtQjtBQUNyQjtBQUNBOzs7RUFHRSxjQUFjO0VBQ2QsNkJBQTZCO0FBQy9CO0FBQ0E7RUFDRSxjQUFjO0VBQ2QsK0JBQStCO0FBQ2pDO0FBQ0E7OztFQUdFLGNBQWM7RUFDZCw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLGNBQWM7RUFDZCxnQ0FBZ0M7QUFDbEM7QUFDQTtFQUNFLG1CQUFtQjtFQUNuQixZQUFZO0FBQ2Q7QUFDQTs7OztFQUlFLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsV0FBVztBQUNiO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsZUFBZTtBQUNqQjtBQUNBOzs7RUFHRSxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLGVBQWU7RUFDZixXQUFXO0VBQ1gsWUFBWTtFQUNaLGVBQWU7QUFDakI7QUFDQTs7O0VBR0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxZQUFZO0FBQ2Q7QUFDQTtFQUNFLGlCQUFpQjtFQUNqQixRQUFRO0VBQ1Isa0JBQWtCO0FBQ3BCO0FBQ0E7OztFQUdFLG9CQUFvQjtFQUNwQix5QkFBeUI7S0FDdEIsc0JBQXNCO01BQ3JCLHFCQUFxQjtVQUNqQixpQkFBaUI7QUFDM0I7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixvQkFBb0I7RUFDcEIsbUJBQW1CO0VBQ25CLGVBQWU7QUFDakI7QUFDQTtFQUNFLFlBQVk7RUFDWixlQUFlO0VBQ2YsZ0JBQWdCO0FBQ2xCO0FBQ0E7OztFQUdFLGNBQWM7RUFDZCxpQkFBaUI7QUFDbkI7QUFDQTs7O0VBR0UsV0FBVztBQUNiO0FBQ0E7OztFQUdFLGNBQWM7QUFDaEI7QUFDQTtFQUNFLFVBQVU7RUFDVixlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxVQUFVO0FBQ1o7QUFDQTs7RUFFRSxTQUFTO0VBQ1QsVUFBVTtFQUNWLFVBQVU7RUFDVix1QkFBdUI7RUFDdkIsaUJBQWlCO0VBQ2pCLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osb0JBQW9CO0VBQ3BCLG9CQUFvQjtFQUNwQixhQUFhO0VBQ2IseUJBQXlCO01BQ3JCLHNCQUFzQjtVQUNsQixtQkFBbUI7RUFDM0IsV0FBVztBQUNiO0FBQ0E7RUFDRSwwQ0FBMEM7RUFDMUMsaUNBQWlDO0FBQ25DO0FBQ0E7RUFDRSwyQ0FBMkM7RUFDM0MsaUNBQWlDO0FBQ25DO0FBQ0E7O0VBRUUsYUFBYTtFQUNiLFFBQVE7RUFDUixTQUFTO0FBQ1g7QUFDQTtFQUNFLDJCQUEyQjtVQUNuQixtQkFBbUI7QUFDN0I7QUFDQTtFQUNFLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsUUFBUTtFQUNSLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0Usc0JBQXNCO0VBQ3RCLFlBQVk7RUFDWixVQUFVO0VBQ1YscUJBQXFCO0VBQ3JCLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0Usc0JBQXNCO0FBQ3hCO0FBQ0E7RUFDRSxzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtFQUNsQixvQkFBb0I7RUFDcEIsWUFBWTtFQUNaLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsc0JBQXNCO0VBQ3RCLDRCQUE0QjtFQUM1QixzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLFdBQVc7RUFDWCx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLGtDQUFrQztBQUNwQztBQUNBO0VBQ0U7SUFDRSxrQkFBa0I7RUFDcEI7QUFDRjtBQUNBOztFQUVFLGtCQUFrQjtFQUNsQixxQkFBcUI7QUFDdkI7QUFDQTtFQUNFLFdBQVc7RUFDWCxZQUFZO0FBQ2Q7QUFDQTtFQUNFLFdBQVc7RUFDWCxvQkFBb0I7RUFDcEIsa0JBQWtCO0VBQ2xCLE9BQU87RUFDUCxRQUFRO0VBQ1IsTUFBTTtFQUNOLFNBQVM7QUFDWDtBQUNBO0VBQ0UsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsV0FBVztFQUNYLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSx1Q0FBdUM7VUFDL0IsK0JBQStCO0FBQ3pDO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSwwR0FBMEc7VUFDbEcsa0dBQWtHO0FBQzVHO0FBQ0E7RUFDRSxvQ0FBb0M7VUFDNUIsNEJBQTRCO0FBQ3RDO0FBQ0E7RUFDRSw2R0FBNkc7VUFDckcscUdBQXFHO0FBQy9HO0FBQ0E7RUFDRSxtQ0FBbUM7VUFDM0IsMkJBQTJCO0FBQ3JDO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLFNBQVM7RUFDVCxnQkFBZ0I7RUFDaEIsYUFBYTtBQUNmO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLDJHQUEyRztVQUNuRyxtR0FBbUc7QUFDN0c7QUFDQTtFQUNFLE9BQU87RUFDUCxvQ0FBb0M7VUFDNUIsNEJBQTRCO0FBQ3RDO0FBQ0E7RUFDRSxRQUFRO0VBQ1IsbUNBQW1DO1VBQzNCLDJCQUEyQjtBQUNyQztBQUNBOzs7O0VBSUUsa0JBQWtCO0FBQ3BCO0FBQ0E7O0VBRUUsYUFBYTtBQUNmO0FBQ0E7RUFDRSx3QkFBd0I7RUFDeEIsNkJBQTZCO0FBQy9CO0FBQ0E7RUFDRSxxQkFBcUI7QUFDdkI7QUFDQTs7RUFFRSxrQkFBa0I7RUFDbEIsd0JBQXdCO01BQ3BCLHFCQUFxQjtVQUNqQix1QkFBdUI7QUFDakM7QUFDQTs7Ozs7RUFLRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBOztFQUVFLGFBQWE7QUFDZjtBQUNBO0VBQ0UsYUFBYTtFQUNiLFlBQVk7RUFDWixXQUFXO0VBQ1gseUJBQXlCO0tBQ3RCLHNCQUFzQjtNQUNyQixxQkFBcUI7VUFDakIsaUJBQWlCO0FBQzNCO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLG9CQUFvQjtBQUN0QjtBQUNBOzs7O0VBSUUsaUJBQWlCO0VBQ2pCLGdCQUFnQjtBQUNsQjtBQUNBOzs7O0VBSUUscUNBQXFDO0FBQ3ZDO0FBQ0E7Ozs7RUFJRSwyQ0FBMkM7RUFDM0MsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxnREFBZ0Q7RUFDaEQsd0NBQXdDO0FBQzFDO0FBQ0E7RUFDRSw2QkFBNkI7QUFDL0I7QUFDQTtFQUNFO0lBQ0Usc0JBQXNCO0VBQ3hCO0VBQ0E7SUFDRSxpQkFBaUI7RUFDbkI7QUFDRjtBQUNBO0VBQ0U7SUFDRSxvQkFBb0I7SUFDcEIsWUFBWTtFQUNkO0VBQ0E7SUFDRSxlQUFlO0VBQ2pCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0Usb0JBQW9CO0lBQ3BCLFlBQVk7RUFDZDtFQUNBO0lBQ0UsZUFBZTtFQUNqQjtBQUNGO0FBQ0E7RUFDRTtJQUNFLGtCQUFrQjtJQUNsQixZQUFZO0VBQ2Q7RUFDQTtJQUNFLGVBQWU7RUFDakI7QUFDRjtBQUNBO0VBQ0UsaUJBQWlCO0VBQ2pCLG1CQUFtQjtFQUNuQixtQkFBbUI7RUFDbkIsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxjQUFjO0VBQ2QsbUJBQW1CO01BQ2Ysa0JBQWtCO1VBQ2QsY0FBYztFQUN0QixlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7QUFDQTs7RUFFRSxXQUFXO0VBQ1gsWUFBWTtFQUNaLGtCQUFrQjtBQUNwQjtBQUNBOztFQUVFLGVBQWU7QUFDakI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixXQUFXO0FBQ2I7QUFDQTs7RUFFRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxtQkFBbUI7TUFDZixrQkFBa0I7VUFDZCxjQUFjO0VBQ3RCLFlBQVk7QUFDZDtBQUNBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGNBQWM7QUFDaEI7QUFDQTtFQUNFLGNBQWM7RUFDZCxjQUFjO0VBQ2Qsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLG9CQUFvQjtFQUNwQixvQkFBb0I7RUFDcEIsYUFBYTtFQUNiLHlCQUF5QjtNQUNyQixzQkFBc0I7VUFDbEIsbUJBQW1CO0VBQzNCLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLGdCQUFnQjtBQUNsQjtBQUNBOzs7RUFHRSxpQ0FBaUM7QUFDbkM7QUFDQTtFQUNFLFVBQVU7QUFDWjtBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtFQUNoQixpQkFBaUI7QUFDbkI7QUFDQTs7RUFFRSx3QkFBd0I7TUFDcEIscUJBQXFCO1VBQ2pCLHVCQUF1QjtBQUNqQztBQUNBOztFQUVFLGVBQWU7QUFDakI7QUFDQTs7OztFQUlFLGlDQUFpQztBQUNuQztBQUNBOztFQUVFLDZCQUE2QjtBQUMvQjtBQUNBOztFQUVFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLFFBQVE7RUFDUixVQUFVO0VBQ1YsV0FBVztFQUNYLG1CQUFtQjtBQUNyQjtBQUNBOztFQUVFLGlCQUFpQjtFQUNqQixlQUFlO0FBQ2pCO0FBQ0E7O0VBRUUsb0JBQW9CO0VBQ3BCLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0Usd0NBQXdDO0FBQzFDO0FBQ0E7RUFDRSx3Q0FBd0M7QUFDMUM7QUFDQTtFQUNFLHlCQUF5QjtFQUN6QixjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsV0FBVztFQUNYLFNBQVM7RUFDVCx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLGNBQWM7RUFDZCxlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTs7RUFFRSxXQUFXO0FBQ2I7QUFDQTs7RUFFRSxXQUFXO0VBQ1gsZ0JBQWdCO0FBQ2xCO0FBQ0E7Ozs7RUFJRSxjQUFjO0FBQ2hCO0FBQ0E7O0VBRUUsV0FBVztBQUNiO0FBQ0E7Ozs7OztFQU1FLGlDQUFpQztBQUNuQztBQUNBO0VBQ0Usd0NBQXdDO0FBQzFDO0FBQ0E7O0VBRUUsNENBQTRDO0FBQzlDO0FBQ0E7O0VBRUUsa0NBQWtDO0FBQ3BDO0FBQ0E7RUFDRSx3Q0FBd0M7QUFDMUM7QUFDQTtFQUNFLHdDQUF3QztBQUMxQztBQUNBO0VBQ0Usd0NBQXdDO0FBQzFDO0FBQ0E7RUFDRSw2QkFBNkI7QUFDL0I7QUFDQTs7OztFQUlFLGlDQUFpQztBQUNuQztBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsMEdBQTBHO1VBQ2xHLGtHQUFrRztFQUMxRyxrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLDRCQUE0QjtFQUM1QixnQkFBZ0I7RUFDaEIsZ0JBQWdCO0VBQ2hCLG1DQUFtQztFQUNuQyxVQUFVO0FBQ1o7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0UsZUFBZTtFQUNmLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsV0FBVztFQUNYLFlBQVk7RUFDWixlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsNEJBQTRCO0FBQzlCO0FBQ0E7O0VBRUUsVUFBVTtBQUNaO0FBQ0E7RUFDRTtJQUNFLDZCQUE2QjtZQUNyQixxQkFBcUI7RUFDL0I7RUFDQTtJQUNFLDZCQUE2QjtZQUNyQixxQkFBcUI7RUFDL0I7RUFDQTs7SUFFRSxrQ0FBa0M7WUFDMUIsMEJBQTBCO0VBQ3BDO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsZ0JBQWdCO0VBQ2xCO0VBQ0E7SUFDRSxXQUFXO0lBQ1gsWUFBWTtJQUNaLGVBQWU7SUFDZixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0VBQ2xCO0VBQ0E7SUFDRSw0QkFBNEI7RUFDOUI7RUFDQTs7SUFFRSxrQ0FBa0M7WUFDMUIsMEJBQTBCO0VBQ3BDO0VBQ0E7SUFDRSw2QkFBNkI7WUFDckIscUJBQXFCO0VBQy9CO0VBQ0E7SUFDRSw2QkFBNkI7WUFDckIscUJBQXFCO0VBQy9CO0FBQ0Y7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBOztFQUVFLHdDQUF3QztFQUN4QyxnQ0FBZ0M7QUFDbEM7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQiw0QkFBNEI7RUFDNUIsaUJBQWlCO0VBQ2pCLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLHNCQUFzQjtBQUN4QjtBQUNBOzs7RUFHRSxjQUFjO0VBQ2QsaUNBQWlDO0VBQ2pDLDRCQUE0QjtBQUM5QjtBQUNBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UscUJBQXFCO0VBQ3JCLHFCQUFxQjtNQUNqQixrQkFBa0I7VUFDZCx5QkFBeUI7RUFDakMsY0FBYztFQUNkLDZCQUE2QjtBQUMvQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxzQkFBc0I7TUFDbEIsbUJBQW1CO1VBQ2YscUJBQXFCO0FBQy9CO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7O0VBRUUsVUFBVTtBQUNaO0FBQ0E7O0VBRUUsa0NBQWtDO1VBQzFCLDBCQUEwQjtBQUNwQztBQUNBOztFQUVFLFVBQVU7QUFDWjtBQUNBOztFQUVFLG1DQUFtQztVQUMzQiwyQkFBMkI7QUFDckM7QUFDQTs7RUFFRSxVQUFVO0FBQ1o7QUFDQTs7RUFFRSxrQ0FBa0M7VUFDMUIsMEJBQTBCO0FBQ3BDO0FBQ0E7O0VBRUUsVUFBVTtBQUNaO0FBQ0E7O0VBRUUsbUNBQW1DO1VBQzNCLDJCQUEyQjtBQUNyQztBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSxvQkFBb0I7RUFDcEIsT0FBTztFQUNQLFFBQVE7RUFDUixtQkFBbUI7RUFDbkIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxNQUFNO0VBQ04sU0FBUztBQUNYO0FBQ0E7RUFDRSxNQUFNO0FBQ1I7QUFDQTtFQUNFLFNBQVM7QUFDWDtBQUNBOztFQUVFLDZCQUE2QjtBQUMvQjtBQUNBOztFQUVFLG1DQUFtQztBQUNyQztBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQixxQkFBcUI7RUFDckIsbUJBQW1CO0VBQ25CLHVEQUF1RDtFQUN2RCwrQ0FBK0M7RUFDL0MsdUNBQXVDO0VBQ3ZDLDBEQUEwRDtFQUMxRCwrQkFBK0I7VUFDdkIsdUJBQXVCO0VBQy9CLGFBQWE7RUFDYixlQUFlO0FBQ2pCO0FBQ0E7Ozs7OztFQU1FLFVBQVU7RUFDVixvQ0FBb0M7VUFDNUIsNEJBQTRCO0VBQ3BDLGFBQWE7QUFDZjtBQUNBOzs7Ozs7Ozs7Ozs7RUFZRSxVQUFVO0VBQ1YsbUNBQW1DO1VBQzNCLDJCQUEyQjtFQUNuQyxhQUFhO0FBQ2Y7QUFDQTs7Ozs7Ozs7O0VBU0Usa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYixjQUFjO0VBQ2QsZUFBZTtBQUNqQjtBQUNBOztFQUVFLE1BQU07QUFDUjtBQUNBOzs7RUFHRSxTQUFTO0FBQ1g7QUFDQTtFQUNFLHFCQUFxQjtFQUNyQixjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0Usd0JBQXdCO0FBQzFCO0FBQ0E7RUFDRSxpQkFBaUI7RUFDakIsY0FBYztBQUNoQjtBQUNBO0VBQ0UsMkJBQTJCO0VBQzNCLDJCQUEyQjtFQUMzQixvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLFlBQVk7RUFDWixjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsV0FBVztFQUNYLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxnQkFBZ0I7RUFDaEIsc0JBQXNCO0FBQ3hCO0FBQ0E7O0VBRUUsa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxTQUFTO0VBQ1QsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsZUFBZTtFQUNmLDBHQUEwRztVQUNsRyxrR0FBa0c7RUFDMUcsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixhQUFhO0VBQ2IsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsVUFBVTtBQUNaO0FBQ0E7RUFDRSxZQUFZO0FBQ2Q7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxjQUFjO0VBQ2QsV0FBVztFQUNYLDRCQUE0QjtFQUM1QixnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0Usd0RBQXdEO1VBQ2hELGdEQUFnRDtBQUMxRDtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixTQUFTO0VBQ1QscUNBQXFDO0VBQ3JDLDZCQUE2QjtBQUMvQjtBQUNBOztFQUVFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLE1BQU07RUFDTixPQUFPO0VBQ1AsU0FBUztFQUNULHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0UsaUdBQWlHO1VBQ3pGLHlGQUF5RjtBQUNuRztBQUNBO0VBQ0Usa0dBQWtHO1VBQzFGLDBGQUEwRjtFQUNsRyw4QkFBOEI7VUFDdEIsc0JBQXNCO0FBQ2hDO0FBQ0E7OztFQUdFLHVNQUF1TTtFQUN2TSxxQ0FBcUM7QUFDdkM7QUFDQTtFQUNFLE1BQU07RUFDTixPQUFPO0VBQ1AsU0FBUztFQUNULHFDQUFxQztFQUNyQyw2QkFBNkI7QUFDL0I7QUFDQTtFQUNFLFFBQVE7RUFDUixtQ0FBbUM7VUFDM0IsMkJBQTJCO0VBQ25DLFdBQVc7RUFDWCxRQUFRO0VBQ1IscUNBQXFDO0VBQ3JDLDZCQUE2QjtFQUM3QixxREFBdW1CO1VBQy9sQiw2Q0FBK2xCO0FBQ3ptQjtBQUNBOztFQUVFLHdCQUF3QjtFQUN4QixZQUFZO0VBQ1osa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLFlBQVk7RUFDWixlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxlQUFlO0VBQ2Ysa0JBQWtCO0VBQ2xCLDRCQUE0QjtFQUM1QixvQkFBb0I7QUFDdEI7QUFDQTs7O0VBR0UsWUFBWTtFQUNaLFdBQVc7RUFDWCxlQUFlO0VBQ2YsZUFBZTtFQUNmLDBFQUEwRTtFQUMxRSxrRUFBa0U7RUFDbEUsMERBQTBEO0VBQzFELGtIQUFrSDtFQUNsSCxVQUFVO0FBQ1o7QUFDQTtFQUNFLFVBQVU7QUFDWjtBQUNBO0VBQ0UsbUNBQW1DO1VBQzNCLDJCQUEyQjtFQUNuQywyQkFBMkI7VUFDbkIsbUJBQW1CO0FBQzdCO0FBQ0E7RUFDRSxVQUFVO0FBQ1o7QUFDQTtFQUNFLDJCQUEyQjtVQUNuQixtQkFBbUI7QUFDN0I7QUFDQTtFQUNFLGNBQWM7RUFDZCxzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLG9CQUFvQjtFQUNwQixnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLG1CQUFtQjtFQUNuQixtRUFBbUU7RUFDbkUsa0JBQWtCO0VBQ2xCLGVBQWU7RUFDZixZQUFZO0VBQ1osbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSw2QkFBNkI7VUFDckIscUJBQXFCO0FBQy9CO0FBQ0E7RUFDRSxZQUFZO0FBQ2Q7QUFDQTtFQUNFLFVBQVU7QUFDWjtBQUNBO0VBQ0UsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7O0VBRUUsVUFBVTtBQUNaO0FBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsV0FBVztFQUNYLFFBQVE7RUFDUixZQUFZO0VBQ1osZ0NBQWdDO0VBQ2hDLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0UscUJBQXFCO0FBQ3ZCO0FBQ0E7RUFDRSxZQUFZO0FBQ2Q7QUFDQTtFQUNFLFlBQVk7QUFDZDtBQUNBO0VBQ0Usa0NBQWtDO0FBQ3BDO0FBQ0E7O0VBRUUsWUFBWTtFQUNaLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLFFBQVE7RUFDUixPQUFPO0VBQ1AsbUNBQW1DO1VBQzNCLDJCQUEyQjtFQUNuQyxXQUFXO0VBQ1gsV0FBVztBQUNiO0FBQ0E7RUFDRSxpQ0FBaUM7RUFDakMseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxVQUFVO0FBQ1o7QUFDQTtFQUNFLFdBQVc7RUFDWCxvQ0FBb0M7RUFDcEMsNEJBQTRCO0FBQzlCO0FBQ0E7RUFDRSx1QkFBdUI7QUFDekI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixRQUFRO0VBQ1IsWUFBWTtFQUNaLFVBQVU7RUFDVixvREFBb0Q7VUFDNUMsNENBQTRDO0FBQ3REO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLGdCQUFnQjtFQUNoQixpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLE1BQU07RUFDTixTQUFTO0VBQ1QsVUFBVTtFQUNWLDBEQUEwRDtVQUNsRCxrREFBa0Q7RUFDMUQsNEJBQTRCO0VBQzVCLG9CQUFvQjtFQUNwQixnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLFVBQVU7RUFDViw4REFBOEQ7VUFDdEQsc0RBQXNEO0FBQ2hFO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsUUFBUTtFQUNSLDZDQUE2QztVQUNyQyxxQ0FBcUM7RUFDN0MsZ0NBQWdDO1VBQ3hCLHdCQUF3QjtFQUNoQyxpQ0FBaUM7RUFDakMseUJBQXlCO0VBQ3pCLFdBQVc7RUFDWCxZQUFZO0VBQ1osVUFBVTtFQUNWLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSx3REFBd0Q7VUFDaEQsZ0RBQWdEO0VBQ3hELGtFQUFrRTtFQUNsRSwwREFBMEQ7RUFDMUQsa0RBQWtEO0VBQ2xELCtFQUErRTtBQUNqRjtBQUNBO0VBQ0UsVUFBVTtFQUNWLDhEQUE4RDtVQUN0RCxzREFBc0Q7QUFDaEU7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sUUFBUTtFQUNSLFNBQVM7RUFDVCxPQUFPO0VBQ1AsdUJBQXVCO0VBQ3ZCLHNCQUFzQjtFQUN0Qiw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixTQUFTO0VBQ1QsVUFBVTtFQUNWLFdBQVc7RUFDWCxZQUFZO0VBQ1osc0JBQXNCO0VBQ3RCLG9CQUFvQjtFQUNwQixVQUFVO0VBQ1YsMkJBQTJCO1VBQ25CLG1CQUFtQjtFQUMzQixvQ0FBb0M7RUFDcEMsNEJBQTRCO0VBQzVCLHdCQUF3QjtBQUMxQjtBQUNBOzs7RUFHRSxZQUFZO0VBQ1osMkJBQTJCO1VBQ25CLG1CQUFtQjtBQUM3QjtBQUNBO0VBQ0Usc0JBQXNCO0FBQ3hCO0FBQ0E7RUFDRSx3QkFBd0I7QUFDMUI7QUFDQTtFQUNFLFlBQVk7RUFDWixXQUFXO0VBQ1gsY0FBYztFQUNkLDZCQUE2QjtFQUM3QixlQUFlO0FBQ2pCO0FBQ0E7O0VBRUUsbUJBQW1CO0VBQ25CLFlBQVk7QUFDZDtBQUNBO0VBQ0UsY0FBYztFQUNkLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsY0FBYztFQUNkLDZCQUE2QjtBQUMvQjtBQUNBO0VBQ0Usc0JBQXNCO0FBQ3hCO0FBQ0E7RUFDRSw2REFBNkQ7VUFDckQscURBQXFEO0VBQzdELHdEQUF3RDtVQUNoRCxnREFBZ0Q7QUFDMUQ7QUFDQTtFQUNFLHdCQUF3QjtFQUN4QixvQkFBb0I7RUFDcEIscUJBQXFCO0VBQ3JCLHdFQUF3RTtVQUNoRSxnRUFBZ0U7QUFDMUU7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQiwwR0FBMEc7VUFDbEcsa0dBQWtHO0FBQzVHO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxlQUFlO0VBQ2YsWUFBWTtBQUNkO0FBQ0E7RUFDRSxpQkFBaUI7RUFDakIsZUFBZTtFQUNmLFdBQVc7RUFDWCxZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLHdCQUF3QjtBQUMxQjtBQUNBO0VBQ0UsV0FBVztBQUNiO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsZUFBZTtFQUNmLDhCQUE4QjtFQUM5Qiw2QkFBNkI7TUFDekIsdUJBQXVCO1VBQ25CLG1CQUFtQjtFQUMzQixpREFBaUQ7RUFDakQseUNBQXlDO0FBQzNDO0FBQ0E7RUFDRSxXQUFXO0FBQ2I7QUFDQTtFQUNFLHVCQUF1QjtBQUN6QjtBQUNBO0VBQ0UseUJBQXlCO0tBQ3RCLHNCQUFzQjtNQUNyQixxQkFBcUI7VUFDakIsaUJBQWlCO0VBQ3pCLGVBQWU7QUFDakI7QUFDQTtFQUNFLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSx1QkFBdUI7QUFDekI7QUFDQTtFQUNFLGNBQWM7RUFDZCw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLHVCQUF1QjtBQUN6QjtBQUNBO0VBQ0UsY0FBYztFQUNkLDhCQUE4QjtFQUM5QixlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLHdCQUF3QjtNQUNwQixxQkFBcUI7VUFDakIsdUJBQXVCO0FBQ2pDO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLDRCQUE0QjtFQUM1Qiw2QkFBNkI7TUFDekIsMEJBQTBCO1VBQ3RCLHNCQUFzQjtFQUM5Qix1QkFBdUI7TUFDbkIsb0JBQW9CO1VBQ2hCLDJCQUEyQjtBQUNyQztBQUNBO0VBQ0UsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsZUFBZTtFQUNmLGtCQUFrQjtBQUNwQjtBQUNBOztFQUVFLGFBQWE7QUFDZjtBQUNBO0VBQ0UsV0FBVztBQUNiO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTs7O0VBR0UsYUFBYTtBQUNmO0FBQ0E7O0VBRUUsa0JBQWtCO0VBQ2xCLFFBQVE7RUFDUixXQUFXO0VBQ1gsWUFBWTtFQUNaLDRCQUE0QjtBQUM5QjtBQUNBOztFQUVFLFdBQVc7RUFDWCxVQUFVO0VBQ1YsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsV0FBVztFQUNYLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSxtQkFBbUI7QUFDckI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7O0VBRUUsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixTQUFTO0VBQ1QsVUFBVTtFQUNWLGFBQWE7RUFDYiw0QkFBNEI7QUFDOUI7QUFDQTtFQUNFLFlBQVk7RUFDWixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLFNBQVM7RUFDVCxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBOztFQUVFLGFBQWE7QUFDZjtBQUNBO0VBQ0UsNEJBQTRCO0FBQzlCO0FBQ0E7RUFDRTtJQUNFLGdCQUFnQjtFQUNsQjtFQUNBO0lBQ0UsZUFBZTtFQUNqQjtFQUNBO0lBQ0UseUJBQXlCO0VBQzNCO0VBQ0E7SUFDRSxTQUFTO0VBQ1g7RUFDQTtJQUNFLGFBQWE7RUFDZjtBQUNGO0FBQ0E7RUFDRSw0QkFBNEI7RUFDNUIsNkJBQTZCO01BQ3pCLDBCQUEwQjtVQUN0QixzQkFBc0I7RUFDOUIsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTs7RUFFRSxZQUFZO0FBQ2Q7QUFDQTtFQUNFLGVBQWU7RUFDZiwrQ0FBK0M7RUFDL0MsdUNBQXVDO0VBQ3ZDLG1CQUFtQjtFQUNuQix5QkFBeUI7S0FDdEIsc0JBQXNCO01BQ3JCLHFCQUFxQjtVQUNqQixpQkFBaUI7RUFDekIsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQix5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLGVBQWU7QUFDakI7QUFDQTtFQUNFLFNBQVM7RUFDVCxZQUFZO0VBQ1osVUFBVTtFQUNWLGdCQUFnQjtFQUNoQixXQUFXO0VBQ1gsZ0NBQWdDO0FBQ2xDO0FBQ0E7O0VBRUUsVUFBVTtBQUNaO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGVBQWU7QUFDakI7QUFDQTtFQUNFLFdBQVc7RUFDWCxVQUFVO0FBQ1o7QUFDQTtFQUNFLGNBQWM7RUFDZCx3QkFBd0I7RUFDeEIsWUFBWTtBQUNkO0FBQ0E7RUFDRTs7SUFFRSx3QkFBd0I7RUFDMUI7RUFDQTtJQUNFLGFBQWE7RUFDZjtFQUNBO0lBQ0UsYUFBYTtFQUNmO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsYUFBYTtFQUNmO0FBQ0Y7QUFDQTtFQUNFOztJQUVFLG1CQUFtQjtRQUNmLGtCQUFrQjtZQUNkLGNBQWM7RUFDeEI7QUFDRjtBQUNBO0VBQ0U7SUFDRSxrQkFBa0I7SUFDbEIsbUJBQW1CO0VBQ3JCO0VBQ0E7SUFDRSxrQkFBa0I7SUFDbEIsbUJBQW1CO0VBQ3JCO0FBQ0Y7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQix5RUFBeUU7RUFDekUsaUVBQWlFO0VBQ2pFLHlEQUF5RDtFQUN6RCwyRkFBMkY7RUFDM0Ysa0JBQWtCO0FBQ3BCO0FBQ0E7O0VBRUUsd0JBQXdCO0FBQzFCO0FBQ0E7O0VBRUUsa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixlQUFlO0VBQ2YsV0FBVztFQUNYLE1BQU07QUFDUjtBQUNBOztFQUVFLDBCQUEwQjtFQUMxQixpQkFBaUI7RUFDakIsa0JBQWtCO0FBQ3BCO0FBQ0E7O0VBRUUsYUFBYTtBQUNmO0FBQ0E7O0VBRUUsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSx3QkFBd0I7QUFDMUI7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBOztFQUVFLG1CQUFtQjtNQUNmLGtCQUFrQjtVQUNkLGNBQWM7QUFDeEI7QUFDQTtFQUNFLHdCQUF3QjtNQUNwQixxQkFBcUI7VUFDakIsdUJBQXVCO0FBQ2pDO0FBQ0E7RUFDRSxxQkFBcUI7TUFDakIsa0JBQWtCO1VBQ2QseUJBQXlCO0FBQ25DO0FBQ0E7RUFDRSw4QkFBOEI7RUFDOUIsZUFBZTtFQUNmLGtCQUFrQjtFQUNsQixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7QUFDVjtBQUNBO0VBQ0UsVUFBVTtFQUNWLDJCQUEyQjtVQUNuQixtQkFBbUI7RUFDM0IscUNBQXFDO1VBQzdCLDZCQUE2QjtFQUNyQyxxQ0FBcUM7RUFDckMsNkJBQTZCO0VBQzdCLHFCQUFxQjtFQUNyQix3Q0FBd0M7RUFDeEMsa0NBQWtDO1VBQzFCLDBCQUEwQjtFQUNsQyw4REFBOEQ7VUFDdEQsc0RBQXNEO0FBQ2hFO0FBQ0E7RUFDRSxrQ0FBa0M7VUFDMUIsMEJBQTBCO0VBQ2xDLDhEQUE4RDtVQUN0RCxzREFBc0Q7QUFDaEU7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0UsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsb0JBQW9CO0VBQ3BCLDRCQUE0QjtFQUM1QixxQkFBcUI7QUFDdkI7QUFDQTtFQUNFLFNBQVM7RUFDVCx3QkFBd0I7QUFDMUI7QUFDQTtFQUNFLE1BQU07RUFDTixxQkFBcUI7QUFDdkI7QUFDQTtFQUNFLDRCQUE0QjtNQUN4QixrQkFBa0I7VUFDZCxTQUFTO0FBQ25CO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLHFDQUFxQztBQUN2QztBQUNBO0VBQ0UsYUFBYTtBQUNmO0FBQ0E7RUFDRSx3Q0FBd0M7QUFDMUM7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQiw0QkFBNEI7RUFDNUIsaUNBQWlDO0FBQ25DO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLFFBQVE7RUFDUixTQUFTO0VBQ1QsT0FBTztFQUNQLFlBQVk7RUFDWix3QkFBd0I7QUFDMUI7QUFDQTtFQUNFLFdBQVc7QUFDYjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLDBHQUEwRztVQUNsRyxrR0FBa0c7RUFDMUcsa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsb0JBQW9CO0VBQ3BCLE1BQU07RUFDTixRQUFRO0VBQ1IsU0FBUztFQUNULE9BQU87RUFDUCxZQUFZO0VBQ1osd0RBQXdEO0VBQ3hELGdEQUFnRDtBQUNsRDtBQUNBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGNBQWM7RUFDZCxtQkFBbUI7TUFDZixlQUFlO0FBQ3JCO0FBQ0E7RUFDRSxlQUFlO0VBQ2YsdUJBQXVCO0VBQ3ZCLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxlQUFlO0VBQ2YsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxvQkFBb0I7QUFDdEI7QUFDQTtFQUNFLHFCQUFxQjtFQUNyQiwrQ0FBK0M7QUFDakQ7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsU0FBUztBQUNYO0FBQ0E7RUFDRSxlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsMEJBQTBCO0FBQzVCO0FBQ0E7O0VBRUUsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxvQkFBb0I7RUFDcEIsb0JBQW9CO0VBQ3BCLGFBQWE7RUFDYix5QkFBeUI7TUFDckIsc0JBQXNCO1VBQ2xCLG1CQUFtQjtBQUM3QjtBQUNBO0VBQ0Usd0RBQXdEO0VBQ3hELGdEQUFnRDtFQUNoRCwrQkFBK0I7RUFDL0IsVUFBVTtFQUNWLGVBQWU7QUFDakI7QUFDQTs7RUFFRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsV0FBVztFQUNYLGVBQWU7RUFDZix5QkFBeUI7RUFDekIsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxZQUFZO0FBQ2Q7QUFDQTtFQUNFLGdCQUFnQjtFQUNoQixlQUFlO0VBQ2Ysd0RBQXdEO0VBQ3hELGdEQUFnRDtFQUNoRCx5QkFBeUI7S0FDdEIsc0JBQXNCO01BQ3JCLHFCQUFxQjtVQUNqQixpQkFBaUI7QUFDM0I7QUFDQTtFQUNFLGVBQWU7QUFDakI7QUFDQTtFQUNFLFlBQVk7QUFDZDtBQUNBO0VBQ0UscUJBQXFCO0FBQ3ZCO0FBQ0E7RUFDRSxpQ0FBaUM7VUFDekIseUJBQXlCO0FBQ25DO0FBQ0E7RUFDRSx3REFBd0Q7RUFDeEQsZ0RBQWdEO0VBQ2hELHVCQUF1QjtBQUN6QjtBQUNBOztFQUVFLG1CQUFtQjtFQUNuQixpQkFBaUI7QUFDbkI7QUFDQTs7O0VBR0UsbUJBQW1CO0VBQ25CLGVBQWU7QUFDakI7QUFDQTtFQUNFLFlBQVk7RUFDWixnQkFBZ0I7RUFDaEIsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsVUFBVTtBQUNaO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLHdCQUF3QjtVQUNoQixnQkFBZ0I7QUFDMUI7QUFDQTtFQUNFLGFBQWE7QUFDZjtBQUNBO0VBQ0UsV0FBVztBQUNiO0FBQ0E7RUFDRSxTQUFTO0FBQ1g7QUFDQTs7RUFFRSx1QkFBdUI7QUFDekI7QUFDQTtFQUNFLHVCQUF1QjtBQUN6QjtBQUNBO0VBQ0UsdUJBQXVCO0FBQ3pCO0FBQ0E7RUFDRSxjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7QUFDQTtFQUNFLGNBQWM7QUFDaEI7QUFDQTtFQUNFLGVBQWU7QUFDakI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBOztFQUVFLGlCQUFpQjtFQUNqQixrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZUFBZTtBQUNqQjtBQUNBOztFQUVFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsWUFBWTtBQUNkO0FBQ0E7RUFDRSxZQUFZO0FBQ2Q7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0U7SUFDRSxnQkFBZ0I7RUFDbEI7RUFDQTs7SUFFRSxpQkFBaUI7SUFDakIsa0JBQWtCO0VBQ3BCO0VBQ0E7SUFDRSxnQkFBZ0I7RUFDbEI7RUFDQTtJQUNFLGVBQWU7RUFDakI7RUFDQTs7SUFFRSxnQkFBZ0I7RUFDbEI7RUFDQTtJQUNFLFlBQVk7RUFDZDtFQUNBO0lBQ0UsWUFBWTtFQUNkO0VBQ0E7SUFDRSxpQkFBaUI7RUFDbkI7QUFDRjtBQUNBO0VBQ0UsdUJBQXVCO0VBQ3ZCLHNDQUFzQztBQUN4QztBQUNBO0VBQ0UsdUJBQXVCO0FBQ3pCO0FBQ0E7Ozs7RUFJRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLHVCQUF1QjtBQUN6QjtBQUNBOztFQUVFLHVCQUF1QjtBQUN6QjtBQUNBO0VBQ0UsNEJBQTRCO0FBQzlCO0FBQ0E7RUFDRSw0QkFBNEI7QUFDOUI7QUFDQTtFQUNFLFdBQVc7QUFDYjtBQUNBOztFQUVFLDZCQUE2QjtFQUM3Qiw0Q0FBNEM7QUFDOUM7QUFDQTs7OztFQUlFLG9DQUFvQztBQUN0QztBQUNBO0VBQ0UsNkJBQTZCO0FBQy9CO0FBQ0E7O0VBRUUsV0FBVztBQUNiO0FBQ0E7RUFDRSxpQ0FBaUM7QUFDbkM7QUFDQTtFQUNFLGlDQUFpQztBQUNuQztBQUNBO0VBQ0UsVUFBVTtFQUNWLFdBQVc7RUFDWCxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsZUFBZTtFQUNmLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1oseUJBQXlCO0VBQ3pCLG1CQUFtQjtFQUNuQixnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sU0FBUztFQUNULE9BQU87RUFDUCxXQUFXO0FBQ2I7QUFDQTs7RUFFRSxXQUFXO0VBQ1gsd0JBQXdCO0VBQ3hCLGNBQWM7RUFDZCxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLDZCQUE2QjtFQUM3QixtQkFBbUI7RUFDbkIsWUFBWTtFQUNaLFdBQVc7RUFDWCxRQUFRO0VBQ1IsT0FBTztFQUNQLHdFQUF3RTtFQUN4RSxnRUFBZ0U7QUFDbEU7QUFDQTtFQUNFLFVBQVU7RUFDVixZQUFZO0VBQ1osU0FBUztFQUNULFNBQVM7RUFDVCxTQUFTO0FBQ1g7QUFDQTtFQUNFLFdBQVc7RUFDWCxVQUFVO0FBQ1o7QUFDQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7QUFDQTtFQUNFLFNBQVM7RUFDVCxVQUFVO0FBQ1o7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLDJCQUEyQjtFQUMzQiwyQkFBMkI7RUFDM0Isb0JBQW9CO0VBQ3BCLE1BQU07RUFDTixPQUFPO0VBQ1AsUUFBUTtFQUNSLGVBQWU7RUFDZixZQUFZO0VBQ1osV0FBVztFQUNYLDBDQUEwQztFQUMxQyxrQ0FBa0M7QUFDcEM7QUFDQTtFQUNFLFdBQVc7QUFDYjtBQUNBO0VBQ0UsWUFBWTtBQUNkO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsa0JBQWtCO0VBQ2xCLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLHVCQUF1QjtFQUN2Qiw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGNBQWM7QUFDaEI7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsZUFBZTtFQUNmLFNBQVM7QUFDWDtBQUNBO0VBQ0U7SUFDRSxrQkFBa0I7SUFDbEIsZUFBZTtFQUNqQjtFQUNBO0lBQ0UsbUJBQW1CO0VBQ3JCO0VBQ0E7SUFDRSxrQkFBa0I7RUFDcEI7RUFDQTtJQUNFLGNBQWM7RUFDaEI7RUFDQTtJQUNFLGtCQUFrQjtJQUNsQixVQUFVO0VBQ1o7RUFDQTs7O0lBR0UsbUJBQW1CO0lBQ25CLG1CQUFtQjtFQUNyQjtFQUNBO0lBQ0UsaUJBQWlCO0lBQ2pCLFVBQVU7RUFDWjtFQUNBO0lBQ0Usa0JBQWtCO0VBQ3BCO0VBQ0E7SUFDRSxrQkFBa0I7RUFDcEI7RUFDQTtJQUNFLGdCQUFnQjtFQUNsQjtFQUNBO0lBQ0UsbUJBQW1CO0VBQ3JCO0FBQ0Y7QUFDQTtFQUNFO0lBQ0Usa0JBQWtCO0lBQ2xCLGNBQWM7RUFDaEI7RUFDQTs7OztJQUlFLGNBQWM7SUFDZCxTQUFTO0lBQ1QsVUFBVTtFQUNaO0VBQ0E7SUFDRSxrQkFBa0I7SUFDbEIsU0FBUztJQUNULG9CQUFvQjtFQUN0QjtFQUNBO0lBQ0UsU0FBUztJQUNULGtCQUFrQjtFQUNwQjtFQUNBOztJQUVFLFVBQVU7RUFDWjtFQUNBOztJQUVFLFdBQVc7SUFDWCxtQkFBbUI7SUFDbkIsaUJBQWlCO0VBQ25CO0VBQ0E7O0lBRUUsWUFBWTtJQUNaLGdCQUFnQjtJQUNoQixrQkFBa0I7RUFDcEI7RUFDQTtJQUNFLGdCQUFnQjtFQUNsQjtFQUNBO0lBQ0Usb0JBQW9CO0lBQ3BCLGdCQUFnQjtFQUNsQjtBQUNGO0FBQ0E7RUFDRSw0REFBNEQ7RUFDNUQsb0RBQW9EO0VBQ3BELFdBQVc7RUFDWCxZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLHdCQUF3QjtFQUN4QixZQUFZO0FBQ2Q7QUFDQTtFQUNFLG1CQUFtQjtFQUNuQiw0REFBNEQ7RUFDNUQsb0RBQW9EO0VBQ3BELDBHQUEwRztVQUNsRyxrR0FBa0c7RUFDMUcsa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sT0FBTztFQUNQLFdBQVc7RUFDWCxZQUFZO0VBQ1osaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSxZQUFZO0VBQ1osV0FBVztFQUNYLGVBQWU7RUFDZixjQUFjO0FBQ2hCO0FBQ0E7RUFDRSx3QkFBd0I7RUFDeEIsVUFBVTtBQUNaO0FBQ0E7RUFDRSxXQUFXO0FBQ2I7QUFDQTtFQUNFLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsZ0JBQWdCO0VBQ2hCLFdBQVc7QUFDYjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxtQkFBbUI7TUFDZixnQkFBZ0I7VUFDWixZQUFZO0VBQ3BCLGNBQWM7RUFDZCxlQUFlO0VBQ2YsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxlQUFlO0VBQ2YsWUFBWTtBQUNkO0FBQ0E7O0VBRUUsdUJBQXVCO0VBQ3ZCLG1CQUFtQjtFQUNuQixnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLGVBQWU7RUFDZixlQUFlO0VBQ2YsY0FBYztFQUNkLG1CQUFtQjtFQUNuQixhQUFhO0VBQ2IsYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0UsU0FBUztFQUNULHFCQUFxQjtFQUNyQixrQkFBa0I7RUFDbEIscUJBQXFCO0FBQ3ZCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxTQUFTO0VBQ1QsVUFBVTtFQUNWLFdBQVc7RUFDWCxXQUFXO0VBQ1gsbUNBQW1DO0FBQ3JDO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsU0FBUztFQUNULFdBQVc7RUFDWCxXQUFXO0VBQ1gsV0FBVztFQUNYLG1DQUFtQztFQUNuQyxxQ0FBcUM7QUFDdkM7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsV0FBVztFQUNYLFdBQVc7QUFDYjtBQUNBO0VBQ0UsdUJBQXVCO0FBQ3pCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixVQUFVO0VBQ1YsWUFBWTtFQUNaLFdBQVc7RUFDWCxVQUFVO0VBQ1YsbUNBQW1DO0VBQ25DLFlBQVk7QUFDZDtBQUNBO0VBQ0UsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsNEJBQTRCO0FBQzlCO0FBQ0E7RUFDRSxpQ0FBaUM7QUFDbkM7QUFDQTtFQUNFLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsaUNBQWlDO0FBQ25DO0FBQ0E7RUFDRSxZQUFZO0VBQ1osZUFBZTtFQUNmLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSxnQkFBZ0I7QUFDbEI7QUFDQTtFQUNFLFdBQVc7QUFDYjtBQUNBO0VBQ0UsVUFBVTtFQUNWLFdBQVc7QUFDYjtBQUNBO0VBQ0UsZUFBZTtFQUNmLFdBQVc7RUFDWCxZQUFZO0FBQ2Q7QUFDQTtFQUNFLGdDQUFnQztVQUN4Qix3QkFBd0I7QUFDbEM7QUFDQTtFQUNFLGtEQUFrRDtVQUMxQywwQ0FBMEM7QUFDcEQ7QUFDQTtFQUNFLGlEQUFpRDtVQUN6Qyx5Q0FBeUM7QUFDbkQ7QUFDQTtFQUNFLFVBQVU7QUFDWjtBQUNBOztFQUVFLGFBQWE7QUFDZjtBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSw0QkFBNEI7RUFDNUIsNkJBQTZCO0FBQy9CO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsZUFBZTtFQUNmLFlBQVk7RUFDWixXQUFXO0VBQ1gsWUFBWTtBQUNkO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLHlCQUF5QjtFQUN6QixlQUFlO0VBQ2YsaUJBQWlCO0FBQ25CO0FBQ0E7RUFDRSx3QkFBd0I7QUFDMUI7QUFDQTtFQUNFLGdDQUFnQztBQUNsQztBQUNBOztFQUVFLG9CQUFvQjtBQUN0QjtBQUNBO0VBQ0UsWUFBWTtFQUNaLFlBQVk7QUFDZDtBQUNBO0VBQ0UsZUFBZTtFQUNmLFlBQVk7RUFDWixXQUFXO0VBQ1gsU0FBUztBQUNYO0FBQ0E7RUFDRSxnQ0FBZ0M7RUFDaEMsb0JBQW9CO0VBQ3BCLGlDQUFpQztBQUNuQztBQUNBO0VBQ0UsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxXQUFXO0FBQ2I7QUFDQTtFQUNFLFlBQVk7QUFDZDtBQUNBO0VBQ0UsZ0NBQWdDO0VBQ2hDLDRDQUE0QztBQUM5QztBQUNBO0VBQ0UsZUFBZTtFQUNmLFlBQVk7QUFDZDtBQUNBO0VBQ0UsV0FBVztFQUNYLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsMEdBQTBHO1VBQ2xHLGtHQUFrRztFQUMxRyxzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsc0JBQXNCO0FBQ3hCO0FBQ0E7OztFQUdFLFdBQVc7RUFDWCxZQUFZO0FBQ2Q7QUFDQTtFQUNFLDBCQUEwQjtFQUMxQiw0QkFBNEI7RUFDNUIsd0JBQXdCO0VBQ3hCLDJCQUEyQjtFQUMzQiwyQkFBMkI7RUFDM0IsNkJBQTZCO0VBQzdCLHVCQUF1QjtFQUN2QiwwQkFBMEI7RUFDMUIsNEJBQTRCO0VBQzVCLHdCQUF3QjtFQUN4Qix1QkFBdUI7RUFDdkIscUJBQXFCO0VBQ3JCLHVCQUF1QjtBQUN6QjtBQUNBO0VBQ0UseUJBQXlCO0VBQ3pCLHdDQUF3QztBQUMxQztBQUNBO0VBQ0UsOEJBQThCO0VBQzlCLDZDQUE2QztBQUMvQztBQUNBO0VBQ0UseUJBQXlCO0VBQ3pCLDBDQUEwQztBQUM1QztBQUNBO0VBQ0UsOEJBQThCO0VBQzlCLCtDQUErQztBQUNqRDtBQUNBO0VBQ0Usc0JBQXNCO0VBQ3RCLHlDQUF5QztBQUMzQztBQUNBO0VBQ0UsMkJBQTJCO0VBQzNCLDhDQUE4QztBQUNoRDtBQUNBO0VBQ0Usc0JBQXNCO0VBQ3RCLHNDQUFzQztBQUN4QztBQUNBO0VBQ0UsMkJBQTJCO0VBQzNCLDJDQUEyQztBQUM3QztBQUNBO0VBQ0UseUJBQXlCO0VBQ3pCLHlDQUF5QztBQUMzQztBQUNBO0VBQ0UsOEJBQThCO0VBQzlCLDhDQUE4QztBQUNoRDtBQUNBO0VBQ0UseUJBQXlCO0VBQ3pCLHlDQUF5QztBQUMzQztBQUNBO0VBQ0UsOEJBQThCO0VBQzlCLDhDQUE4QztBQUNoRDtBQUNBO0VBQ0UseUJBQXlCO0VBQ3pCLHFDQUFxQztBQUN2QztBQUNBO0VBQ0UsOEJBQThCO0VBQzlCLDBDQUEwQztBQUM1QztBQUNBO0VBQ0UseUJBQXlCO0VBQ3pCLHdDQUF3QztBQUMxQztBQUNBO0VBQ0UsOEJBQThCO0VBQzlCLDZDQUE2QztBQUMvQztBQUNBO0VBQ0Usc0JBQXNCO0FBQ3hCO0FBQ0E7RUFDRSwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0UsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSx5QkFBeUI7RUFDekIsc0NBQXNDO0FBQ3hDO0FBQ0E7RUFDRSw4QkFBOEI7RUFDOUIsMkNBQTJDO0FBQzdDO0FBQ0E7RUFDRSx5QkFBeUI7RUFDekIscUNBQXFDO0FBQ3ZDO0FBQ0E7RUFDRSw4QkFBOEI7RUFDOUIsMENBQTBDO0FBQzVDO0FBQ0E7RUFDRSw2QkFBNkI7QUFDL0I7QUFDQTtFQUNFLGtDQUFrQztBQUNwQztBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0Usc0JBQXNCO0FBQ3hCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0Usc0JBQXNCO0FBQ3hCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0Usc0JBQXNCO0FBQ3hCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsMkJBQTJCO0FBQzdCO0FBQ0E7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Q0E7RUFDRTtJQUNFLDJCQUEyQjtZQUNuQixtQkFBbUI7RUFDN0I7RUFDQTtJQUNFLDhCQUE4QjtZQUN0QixzQkFBc0I7RUFDaEM7RUFDQTtJQUNFLDJCQUEyQjtZQUNuQixtQkFBbUI7RUFDN0I7QUFDRjtBQUNBO0VBQ0U7SUFDRSxVQUFVO0lBQ1YsZ0RBQWdEO1lBQ3hDLHdDQUF3QztJQUNoRCxvQkFBb0I7RUFDdEI7RUFDQTtJQUNFLFVBQVU7RUFDWjtBQUNGO0FBQ0E7RUFDRTtJQUNFLFVBQVU7SUFDVixnREFBZ0Q7WUFDeEMsd0NBQXdDO0lBQ2hELG9CQUFvQjtFQUN0QjtFQUNBO0lBQ0UsVUFBVTtFQUNaO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsVUFBVTtJQUNWLCtDQUErQztZQUN2Qyx1Q0FBdUM7SUFDL0Msb0JBQW9CO0VBQ3RCO0VBQ0E7SUFDRSxVQUFVO0VBQ1o7QUFDRjtBQUNBO0VBQ0U7SUFDRSxVQUFVO0lBQ1YsK0NBQStDO1lBQ3ZDLHVDQUF1QztJQUMvQyxvQkFBb0I7RUFDdEI7RUFDQTtJQUNFLFVBQVU7RUFDWjtBQUNGO0FBQ0E7RUFDRTtJQUNFLG1DQUFtQztZQUMzQiwyQkFBMkI7RUFDckM7QUFDRjtBQUNBO0VBQ0U7SUFDRSxtQ0FBbUM7WUFDM0IsMkJBQTJCO0VBQ3JDO0FBQ0Y7QUFDQTtFQUNFO0lBQ0Usa0NBQWtDO1lBQzFCLDBCQUEwQjtFQUNwQztBQUNGO0FBQ0E7RUFDRTtJQUNFLGtDQUFrQztZQUMxQiwwQkFBMEI7RUFDcEM7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIvKlxcbiAqIFF1YXNhciBGcmFtZXdvcmsgdjAuMTcuMjBcXG4gKiAoYykgMjAxNi1wcmVzZW50IFJhenZhbiBTdG9lbmVzY3VcXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXFxuICovXFxuKixcXG4qOmJlZm9yZSxcXG4qOmFmdGVyIHtcXG4gIC13ZWJraXQtYm94LXNpemluZzogaW5oZXJpdDtcXG4gICAgICAgICAgYm94LXNpemluZzogaW5oZXJpdDtcXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAtbW96LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG5odG1sLFxcbmJvZHksXFxuI3EtYXBwIHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgZGlyZWN0aW9uOiBsdHI7XFxufVxcbmh0bWwsXFxuYm9keSB7XFxuICBtYXJnaW46IDA7XFxuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxufVxcbmlucHV0W3R5cGU9J3RleHQnXSxcXG5pbnB1dFt0eXBlPSdlbWFpbCddLFxcbmlucHV0W3R5cGU9J3NlYXJjaCddLFxcbmlucHV0W3R5cGU9J3Bhc3N3b3JkJ10ge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lIC8qIG1vYmlsZSBmaXJlZm94IHRvbyEgKi87XFxufVxcbmFydGljbGUsXFxuYXNpZGUsXFxuZGV0YWlscyxcXG5maWdjYXB0aW9uLFxcbmZpZ3VyZSxcXG5mb290ZXIsXFxuaGVhZGVyLFxcbm1haW4sXFxubWVudSxcXG5uYXYsXFxuc2VjdGlvbixcXG5zdW1tYXJ5IHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbn1cXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xcbiAgZGlzcGxheTogbm9uZTtcXG4gIGhlaWdodDogMDtcXG59XFxuYWJiclt0aXRsZV0ge1xcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XFxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcXG59XFxuZGZuIHtcXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcXG59XFxuaW1nIHtcXG4gIGJvcmRlci1zdHlsZTogbm9uZTtcXG59XFxuc3ZnOm5vdCg6cm9vdCkge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuY29kZSxcXG5rYmQsXFxucHJlLFxcbnNhbXAge1xcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xcbiAgZm9udC1zaXplOiAxZW07XFxufVxcbmhyIHtcXG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbiAgaGVpZ2h0OiAwO1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxufVxcbmJ1dHRvbixcXG5pbnB1dCxcXG5zZWxlY3QsXFxudGV4dGFyZWEge1xcbiAgZm9udDogaW5oZXJpdDtcXG4gIG1hcmdpbjogMDtcXG59XFxub3B0Z3JvdXAge1xcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxufVxcbmJ1dHRvbixcXG5pbnB1dCxcXG5zZWxlY3Qge1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxufVxcbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XFxuICBib3JkZXI6IDA7XFxuICBwYWRkaW5nOiAwO1xcbn1cXG5idXR0b246LW1vei1mb2N1c3JpbmcsXFxuaW5wdXQ6LW1vei1mb2N1c3Jpbmcge1xcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xcbn1cXG50ZXh0YXJlYSB7XFxuICBvdmVyZmxvdzogYXV0bztcXG59XFxuaW5wdXRbdHlwZT0nc2VhcmNoJ10ge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XFxufVxcbmlucHV0W3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxcbmlucHV0W3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG59XFxuLnEtaWNvbiB7XFxuICBsaW5lLWhlaWdodDogMTtcXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICB3b3JkLXdyYXA6IG5vcm1hbDtcXG4gIGRpcmVjdGlvbjogbHRyO1xcbn1cXG4ucS1pY29uLFxcbi5tYXRlcmlhbC1pY29ucyB7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgY3Vyc29yOiBpbmhlcml0O1xcbiAgZm9udC1zaXplOiBpbmhlcml0O1xcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcbi5xLWFjdGlvbnNoZWV0LXRpdGxlIHtcXG4gIG1pbi1oZWlnaHQ6IDU2cHg7XFxuICBwYWRkaW5nOiAwIDE2cHg7XFxuICBjb2xvcjogIzc3NztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWZhZGVkKTtcXG59XFxuLnEtYWN0aW9uc2hlZXQtYm9keSB7XFxuICBtYXgtaGVpZ2h0OiA1MDBweDtcXG59XFxuLnEtYWN0aW9uc2hlZXQtZ3JpZCB7XFxuICBwYWRkaW5nOiA4cHggMTZweDtcXG59XFxuLnEtYWN0aW9uc2hlZXQtZ3JpZCAucS1pdGVtLXNlcGFyYXRvci1jb21wb25lbnQge1xcbiAgbWFyZ2luOiAyNHB4IDA7XFxufVxcbi5xLWFjdGlvbnNoZWV0LWdyaWQtaXRlbSB7XFxuICBwYWRkaW5nOiA4cHggMTZweDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzO1xcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzO1xcbn1cXG4ucS1hY3Rpb25zaGVldC1ncmlkLWl0ZW06aG92ZXIsXFxuLnEtYWN0aW9uc2hlZXQtZ3JpZC1pdGVtOmZvY3VzIHtcXG4gIGJhY2tncm91bmQ6ICNkMGQwZDA7XFxuICBvdXRsaW5lOiAwO1xcbn1cXG4ucS1hY3Rpb25zaGVldC1ncmlkLWl0ZW0gaSxcXG4ucS1hY3Rpb25zaGVldC1ncmlkLWl0ZW0gaW1nIHtcXG4gIGZvbnQtc2l6ZTogNDhweDtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG59XFxuLnEtYWN0aW9uc2hlZXQtZ3JpZC1pdGVtIC5hdmF0YXIge1xcbiAgd2lkdGg6IDQ4cHg7XFxuICBoZWlnaHQ6IDQ4cHg7XFxufVxcbi5xLWFjdGlvbnNoZWV0LWdyaWQtaXRlbSBzcGFuIHtcXG4gIGNvbG9yOiAjNzc3O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItZmFkZWQpO1xcbn1cXG4ucS1sb2FkaW5nLWJhciB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICB6LWluZGV4OiA5OTk4O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSwgb3BhY2l0eSAwLjVzO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksIG9wYWNpdHkgMC41cywgLXdlYmtpdC10cmFuc2Zvcm0gMC41cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcXG59XFxuLnEtbG9hZGluZy1iYXIudG9wIHtcXG4gIGxlZnQ6IDAgLyogcnRsOmlnbm9yZSAqLztcXG4gIHJpZ2h0OiAwIC8qIHJ0bDppZ25vcmUgKi87XFxuICB0b3A6IDA7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLnEtbG9hZGluZy1iYXIuYm90dG9tIHtcXG4gIGxlZnQ6IDAgLyogcnRsOmlnbm9yZSAqLztcXG4gIHJpZ2h0OiAwIC8qIHJ0bDppZ25vcmUgKi87XFxuICBib3R0b206IDA7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLnEtbG9hZGluZy1iYXIucmlnaHQge1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5xLWxvYWRpbmctYmFyLmxlZnQge1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuLnEtYWxlcnQge1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbn1cXG4ucS1hbGVydCAuYXZhdGFyIHtcXG4gIHdpZHRoOiAzMnB4O1xcbiAgaGVpZ2h0OiAzMnB4O1xcbn1cXG4ucS1hbGVydC1zaWRlLFxcbi5xLWFsZXJ0LWNvbnRlbnQge1xcbiAgcGFkZGluZzogMTJweDtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XFxufVxcbi5xLWFsZXJ0LXNpZGUge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEpO1xcbn1cXG4ucS1hbGVydC1hY3Rpb25zIHtcXG4gIHBhZGRpbmc6IDEycHggMTJweCAxMnB4IDA7XFxufVxcbi5xLWFsZXJ0LWRldGFpbCB7XFxuICBmb250LXNpemU6IDEycHg7XFxufVxcbi5xLWJyZWFkY3J1bWJzIC5xLWljb24sXFxuLnEtYnJlYWRjcnVtYnMgLnEtYnJlYWRjcnVtYnMtc2VwYXJhdG9yIHtcXG4gIGZvbnQtc2l6ZTogMTUwJTtcXG59XFxuLnEtYnJlYWRjcnVtYnMtbGFzdCBhIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG5bZGlyPXJ0bF0gLnEtYnJlYWRjcnVtYnMtc2VwYXJhdG9yIC5xLWljb24ge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgtMSkgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWJ0biB7XFxuICBvdXRsaW5lOiAwO1xcbiAgYm9yZGVyOiAwO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIHBhZGRpbmc6IDRweCAxNnB4O1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgbWluLWhlaWdodDogMi41NzJlbTtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxufVxcbmJ1dHRvbi5xLWJ0biB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcXG59XFxuYS5xLWJ0biB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XFxuICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG59XFxuLnEtYnRuIC5xLWljb24sXFxuLnEtYnRuIC5xLXNwaW5uZXIge1xcbiAgZm9udC1zaXplOiAxLjRlbTtcXG59XFxuLnEtYnRuIC5xLWJ0bi1pbm5lciB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC42cztcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC42cztcXG59XFxuLnEtYnRuIC5xLWJ0bi1pbm5lci0taGlkZGVuIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLWJ0biAucS1idG4taW5uZXI6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbn1cXG4ucS1idG4uZGlzYWJsZWQge1xcbiAgb3BhY2l0eTogMC43ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWJ0bjpub3QoLmRpc2FibGVkKTpub3QoLnEtYnRuLWZsYXQpOm5vdCgucS1idG4tb3V0bGluZSk6bm90KC5xLWJ0bi1wdXNoKTpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbiAgei1pbmRleDogLTE7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG59XFxuLnEtYnRuOm5vdCguZGlzYWJsZWQpOm5vdCgucS1idG4tZmxhdCk6bm90KC5xLWJ0bi1vdXRsaW5lKTpub3QoLnEtYnRuLXB1c2gpOmFjdGl2ZTpiZWZvcmUsXFxuLnEtYnRuOm5vdCguZGlzYWJsZWQpOm5vdCgucS1idG4tZmxhdCk6bm90KC5xLWJ0bi1vdXRsaW5lKTpub3QoLnEtYnRuLXB1c2gpLmFjdGl2ZTpiZWZvcmUge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDVweCA1cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgOHB4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDE0cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDVweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCA4cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMTRweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtYnRuLXByb2dyZXNzIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3M7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcXG4gIGhlaWdodDogMTAwJTtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4yNSk7XFxufVxcbi5xLWJ0bi1wcm9ncmVzcy5xLWJ0bi1kYXJrLXByb2dyZXNzIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4yKTtcXG59XFxuLnEtYnRuLW5vLXVwcGVyY2FzZSB7XFxuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcXG59XFxuLnEtYnRuLXJlY3RhbmdsZSB7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxufVxcbi5xLWJ0bi1vdXRsaW5lIHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWJ0bi1wdXNoIHtcXG4gIGJvcmRlci1yYWRpdXM6IDdweDtcXG4gIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTUpO1xcbn1cXG4ucS1idG4tcHVzaDphY3RpdmU6bm90KC5kaXNhYmxlZCksXFxuLnEtYnRuLXB1c2guYWN0aXZlOm5vdCguZGlzYWJsZWQpIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDNweCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzcHgpO1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5xLWJ0bi1wdXNoIC5xLWZvY3VzLWhlbHBlcixcXG4ucS1idG4tcHVzaCAucS1yaXBwbGUtY29udGFpbmVyIHtcXG4gIGhlaWdodDogYXV0bztcXG4gIGJvdHRvbTogLTNweDtcXG59XFxuLnEtYnRuLXJvdW5kZWQge1xcbiAgYm9yZGVyLXJhZGl1czogMjhweDtcXG59XFxuLnEtYnRuLXJvdW5kIHtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIHBhZGRpbmc6IDA7XFxuICBtaW4taGVpZ2h0OiAwO1xcbiAgaGVpZ2h0OiAzZW07XFxuICB3aWR0aDogM2VtO1xcbn1cXG4ucS1idG4tZmxhdCxcXG4ucS1idG4tb3V0bGluZSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcbi5xLWJ0bi1kZW5zZSB7XFxuICBwYWRkaW5nOiAwLjI4NWVtO1xcbiAgbWluLWhlaWdodDogMmVtO1xcbn1cXG4ucS1idG4tZGVuc2UucS1idG4tcm91bmQge1xcbiAgcGFkZGluZzogMDtcXG4gIGhlaWdodDogMi40ZW07XFxuICB3aWR0aDogMi40ZW07XFxufVxcbi5xLWJ0bi1kZW5zZSAub24tbGVmdCB7XFxuICBtYXJnaW4tcmlnaHQ6IDZweDtcXG59XFxuLnEtYnRuLWRlbnNlIC5vbi1yaWdodCB7XFxuICBtYXJnaW4tbGVmdDogNnB4O1xcbn1cXG4ucS1idG4tZmFiIC5xLWljb24sXFxuLnEtYnRuLWZhYi1taW5pIC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbn1cXG4ucS1idG4tZmFiIHtcXG4gIGhlaWdodDogNTZweDtcXG4gIHdpZHRoOiA1NnB4O1xcbn1cXG4ucS1idG4tZmFiLW1pbmkge1xcbiAgaGVpZ2h0OiA0MHB4O1xcbiAgd2lkdGg6IDQwcHg7XFxufVxcbi5xLXRyYW5zaXRpb24tLWZhZGUtbGVhdmUtYWN0aXZlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuLnEtdHJhbnNpdGlvbi0tZmFkZS1lbnRlci1hY3RpdmUsXFxuLnEtdHJhbnNpdGlvbi0tZmFkZS1sZWF2ZS1hY3RpdmUge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMgZWFzZS1vdXQ7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMgZWFzZS1vdXQ7XFxufVxcbi5xLXRyYW5zaXRpb24tLWZhZGUtZW50ZXIsXFxuLnEtdHJhbnNpdGlvbi0tZmFkZS1sZWF2ZSxcXG4ucS10cmFuc2l0aW9uLS1mYWRlLWxlYXZlLXRvIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLWJ0bi1kcm9wZG93bi1zcGxpdCAucS1idG4tZHJvcGRvd24tYXJyb3cge1xcbiAgcGFkZGluZzogMCA0cHg7XFxuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4zKTtcXG59XFxuLnEtYnRuLWdyb3VwIHtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG59XFxuLnEtYnRuLWdyb3VwID4gLnEtYnRuLWl0ZW0ge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbn1cXG4ucS1idG4tZ3JvdXAgPiAucS1idG4tZ3JvdXAgPiAucS1idG46Zmlyc3QtY2hpbGQge1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogaW5oZXJpdDtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGluaGVyaXQ7XFxufVxcbi5xLWJ0bi1ncm91cCA+IC5xLWJ0bi1ncm91cCA+IC5xLWJ0bjpsYXN0LWNoaWxkIHtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XFxufVxcbi5xLWJ0bi1ncm91cCA+IC5xLWJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKSA+IC5xLWJ0bjpmaXJzdC1jaGlsZCB7XFxuICBib3JkZXItbGVmdDogMDtcXG59XFxuLnEtYnRuLWdyb3VwID4gLnEtYnRuLWdyb3VwOm5vdCg6bGFzdC1jaGlsZCkgPiAucS1idG46bGFzdC1jaGlsZCB7XFxuICBib3JkZXItcmlnaHQ6IDA7XFxufVxcbi5xLWJ0bi1ncm91cCA+IC5xLWJ0bi1pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcXG59XFxuLnEtYnRuLWdyb3VwID4gLnEtYnRuLWl0ZW0gKyAucS1idG4taXRlbSB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcXG59XFxuLnEtYnRuLWdyb3VwLXB1c2gge1xcbiAgYm9yZGVyLXJhZGl1czogN3B4O1xcbn1cXG4ucS1idG4tZ3JvdXAtcHVzaCA+IC5xLWJ0bi1wdXNoIC5xLWJ0bi1pbm5lciB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG59XFxuLnEtYnRuLWdyb3VwLXB1c2ggPiAucS1idG4tcHVzaDphY3RpdmU6bm90KC5kaXNhYmxlZCksXFxuLnEtYnRuLWdyb3VwLXB1c2ggPiAucS1idG4tcHVzaC5hY3RpdmU6bm90KC5kaXNhYmxlZCkge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLDAsMCwwLjE1KTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxufVxcbi5xLWJ0bi1ncm91cC1wdXNoID4gLnEtYnRuLXB1c2g6YWN0aXZlOm5vdCguZGlzYWJsZWQpIC5xLWJ0bi1pbm5lcixcXG4ucS1idG4tZ3JvdXAtcHVzaCA+IC5xLWJ0bi1wdXNoLmFjdGl2ZTpub3QoLmRpc2FibGVkKSAucS1idG4taW5uZXIge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoM3B4KTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDNweCk7XFxufVxcbi5xLWJ0bi1ncm91cC1yb3VuZGVkIHtcXG4gIGJvcmRlci1yYWRpdXM6IDI4cHg7XFxufVxcbi5xLWJ0bi1ncm91cC1mbGF0LFxcbi5xLWJ0bi1ncm91cC1vdXRsaW5lIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuLnEtYnRuLWdyb3VwLW91dGxpbmUgPiAucS1idG4taXRlbSArIC5xLWJ0bi1pdGVtIHtcXG4gIGJvcmRlci1sZWZ0OiAwO1xcbn1cXG4ucS1idG4tZ3JvdXAtb3V0bGluZSA+IC5xLWJ0bi1pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgYm9yZGVyLXJpZ2h0OiAwO1xcbn1cXG4ucS1jYXJkIHtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcXG59XFxuLnEtY2FyZCA+IGRpdjpmaXJzdC1jaGlsZCB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XFxufVxcbi5xLWNhcmQgPiBkaXY6bGFzdC1jaGlsZCB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XFxufVxcbi5xLWNhcmQgPiAucS1saXN0IHtcXG4gIGJvcmRlcjogMDtcXG59XFxuLnEtY2FyZC1zZXBhcmF0b3Ige1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEpO1xcbiAgaGVpZ2h0OiAxcHg7XFxufVxcbi5xLWNhcmQtc2VwYXJhdG9yLmluc2V0IHtcXG4gIG1hcmdpbjogMCAxNnB4O1xcbn1cXG4ucS1jYXJkLWNvbnRhaW5lciB7XFxuICBwYWRkaW5nOiAxNnB4O1xcbn1cXG4ucS1jYXJkLXRpdGxlIHtcXG4gIGZvbnQtc2l6ZTogMThweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xcbiAgbGluZS1oZWlnaHQ6IDJyZW07XFxufVxcbi5xLWNhcmQtdGl0bGU6ZW1wdHkge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtY2FyZC1zdWJ0aXRsZSxcXG4ucS1jYXJkLXRpdGxlLWV4dHJhIHtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIGNvbG9yOiByZ2JhKDAsMCwwLDAuNCk7XFxufVxcbi5xLWNhcmQtc3VidGl0bGUgLnEtaWNvbixcXG4ucS1jYXJkLXRpdGxlLWV4dHJhIC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbn1cXG4ucS1jYXJkLW1haW4ge1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbn1cXG4ucS1jYXJkLXByaW1hcnkgKyAucS1jYXJkLW1haW4ge1xcbiAgcGFkZGluZy10b3A6IDA7XFxufVxcbi5xLWNhcmQtYWN0aW9ucyB7XFxuICBwYWRkaW5nOiA4cHg7XFxufVxcbi5xLWNhcmQtYWN0aW9ucyAucS1idG4ge1xcbiAgcGFkZGluZzogMCA4cHg7XFxufVxcbi5xLWNhcmQtYWN0aW9ucy1ob3JpeiAucS1idG46bm90KDpsYXN0LWNoaWxkKSB7XFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcXG59XFxuLnEtY2FyZC1hY3Rpb25zLXZlcnQgLnEtYnRuICsgLnEtYnRuIHtcXG4gIG1hcmdpbi10b3A6IDRweDtcXG59XFxuLnEtY2FyZC1tZWRpYSB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucS1jYXJkLW1lZGlhID4gaW1nIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBib3JkZXI6IDA7XFxufVxcbi5xLWNhcmQtbWVkaWEtb3ZlcmxheSB7XFxuICBjb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC40Nyk7XFxufVxcbi5xLWNhcmQtbWVkaWEtb3ZlcmxheSAucS1jYXJkLXN1YnRpdGxlIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1jYXJkLWRhcmsgLnEtY2FyZC1zZXBhcmF0b3Ige1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjIpO1xcbn1cXG4ucS1jYXJkLWRhcmsgLnEtY2FyZC1zdWJ0aXRsZSxcXG4ucS1jYXJkLWRhcmsgLnEtY2FyZC10aXRsZS1leHRyYSB7XFxuICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjYpO1xcbn1cXG4ucS1jYXJvdXNlbCB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4ucS1jYXJvdXNlbC1pbm5lciB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5xLWNhcm91c2VsLXNsaWRlIHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgLW1zLWZsZXg6IDAgMCAxMDAlO1xcbiAgICAgICAgICBmbGV4OiAwIDAgMTAwJTtcXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDE4cHg7XFxufVxcbi5xLWNhcm91c2VsLXRyYWNrIHtcXG4gIHBhZGRpbmc6IDA7XFxuICBtYXJnaW46IDA7XFxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtbXMtZmxleC13cmFwOiBub3dyYXA7XFxuICAgICAgZmxleC13cmFwOiBub3dyYXA7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5xLWNhcm91c2VsLXRyYWNrLmluZmluaXRlLWxlZnQgPiBkaXY6bnRoLWxhc3QtY2hpbGQoMikge1xcbiAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogLTk5OTtcXG4gICAgICAtbXMtZmxleC1vcmRlcjogLTEwMDA7XFxuICAgICAgICAgIG9yZGVyOiAtMTAwMDtcXG4gIG1hcmdpbi1sZWZ0OiAtMTAwJTtcXG59XFxuLnEtY2Fyb3VzZWwtdHJhY2suaW5maW5pdGUtcmlnaHQgPiBkaXY6bnRoLWNoaWxkKDIpIHtcXG4gIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDEwMDE7XFxuICAgICAgLW1zLWZsZXgtb3JkZXI6IDEwMDA7XFxuICAgICAgICAgIG9yZGVyOiAxMDAwO1xcbn1cXG4ucS1jYXJvdXNlbC1sZWZ0LWFycm93LFxcbi5xLWNhcm91c2VsLXJpZ2h0LWFycm93IHtcXG4gIHRvcDogNTAlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4zKTtcXG59XFxuLnEtY2Fyb3VzZWwtbGVmdC1hcnJvdyB7XFxuICBsZWZ0OiA1cHg7XFxufVxcbi5xLWNhcm91c2VsLXJpZ2h0LWFycm93IHtcXG4gIHJpZ2h0OiA1cHg7XFxufVxcbi5xLWNhcm91c2VsLXF1aWNrLW5hdiB7XFxuICBwYWRkaW5nOiAycHggMDtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4zKTtcXG59XFxuLnEtY2Fyb3VzZWwtcXVpY2stbmF2IC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAxOHB4ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWNhcm91c2VsLXF1aWNrLW5hdiAucS1idG4uaW5hY3RpdmUge1xcbiAgb3BhY2l0eTogMC41O1xcbn1cXG4ucS1jYXJvdXNlbC1xdWljay1uYXYgLnEtYnRuLmluYWN0aXZlIC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWNhcm91c2VsLXRodW1ibmFpbHMge1xcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4zcztcXG4gIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuM3M7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjNzO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTA1JSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDUlKTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiBhdXRvO1xcbiAgbWF4LWhlaWdodDogNjAlO1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxuICBiYWNrZ3JvdW5kOiAjMDAwO1xcbiAgcGFkZGluZzogMC41cmVtO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0zcHggNnB4IHJnYmEoMCwwLDAsMC4xNiksIDAgLTVweCA2cHggcmdiYSgwLDAsMCwwLjIzKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtM3B4IDZweCByZ2JhKDAsMCwwLDAuMTYpLCAwIC01cHggNnB4IHJnYmEoMCwwLDAsMC4yMyk7XFxufVxcbi5xLWNhcm91c2VsLXRodW1ibmFpbHMuYWN0aXZlIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxufVxcbi5xLWNhcm91c2VsLXRodW1ibmFpbHMgaW1nIHtcXG4gIGhlaWdodDogYXV0bztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBvcGFjaXR5OiAwLjU7XFxuICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDtcXG59XFxuLnEtY2Fyb3VzZWwtdGh1bWJuYWlscyA+IGRpdiA+IGRpdiB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgIC1tcy1mbGV4OiAwIDAgMTA4cHg7XFxuICAgICAgICAgIGZsZXg6IDAgMCAxMDhweDtcXG59XFxuLnEtY2Fyb3VzZWwtdGh1bWJuYWlscyA+IGRpdiA+IGRpdi5hY3RpdmUgaW1nLFxcbi5xLWNhcm91c2VsLXRodW1ibmFpbHMgPiBkaXYgPiBkaXYgaW1nLmFjdGl2ZSB7XFxuICBvcGFjaXR5OiAxO1xcbiAgYm9yZGVyLWNvbG9yOiAjZmZmO1xcbn1cXG4ucS1jYXJvdXNlbC10aHVtYm5haWwtYnRuIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4zKTtcXG4gIHRvcDogNXB4O1xcbiAgcmlnaHQ6IDVweDtcXG59XFxuYm9keS5kZXNrdG9wIC5xLWNhcm91c2VsLXRodW1ibmFpbHMgaW1nOmhvdmVyIHtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbi5xLW1lc3NhZ2UtbmFtZSxcXG4ucS1tZXNzYWdlLXN0YW1wLFxcbi5xLW1lc3NhZ2UtbGFiZWwge1xcbiAgZm9udC1zaXplOiBzbWFsbDtcXG59XFxuLnEtbWVzc2FnZS1sYWJlbCB7XFxuICBtYXJnaW46IDI0cHggMDtcXG59XFxuLnEtbWVzc2FnZS1zdGFtcCB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIG1hcmdpbi10b3A6IDRweDtcXG4gIG9wYWNpdHk6IDAuNjtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLW1lc3NhZ2UtYXZhdGFyIHtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIHdpZHRoOiA0OHB4O1xcbiAgaGVpZ2h0OiA0OHB4O1xcbn1cXG4ucS1tZXNzYWdlIHtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG59XFxuLnEtbWVzc2FnZTpmaXJzdC1jaGlsZCAucS1tZXNzYWdlLWxhYmVsIHtcXG4gIG1hcmdpbi10b3A6IDA7XFxufVxcbi5xLW1lc3NhZ2UtcmVjZWl2ZWQgLnEtbWVzc2FnZS1hdmF0YXIge1xcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxufVxcbi5xLW1lc3NhZ2UtcmVjZWl2ZWQgLnEtbWVzc2FnZS10ZXh0IHtcXG4gIGNvbG9yOiAjODFjNzg0O1xcbiAgYm9yZGVyLXJhZGl1czogM3B4IDNweCAzcHggMDtcXG59XFxuLnEtbWVzc2FnZS1yZWNlaXZlZCAucS1tZXNzYWdlLXRleHQ6bGFzdC1jaGlsZDpiZWZvcmUge1xcbiAgcmlnaHQ6IDEwMCU7XFxuICBib3JkZXItcmlnaHQ6IDAgc29saWQgdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItbGVmdDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLWJvdHRvbTogOHB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtbWVzc2FnZS1yZWNlaXZlZCAucS1tZXNzYWdlLXRleHQtY29udGVudCB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtbWVzc2FnZS1zZW50IC5xLW1lc3NhZ2UtbmFtZSB7XFxuICB0ZXh0LWFsaWduOiByaWdodDtcXG59XFxuLnEtbWVzc2FnZS1zZW50IC5xLW1lc3NhZ2UtYXZhdGFyIHtcXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XFxufVxcbi5xLW1lc3NhZ2Utc2VudCAucS1tZXNzYWdlLWNvbnRhaW5lciB7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2U7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbn1cXG4ucS1tZXNzYWdlLXNlbnQgLnEtbWVzc2FnZS10ZXh0IHtcXG4gIGNvbG9yOiAjZTBlMGUwO1xcbiAgYm9yZGVyLXJhZGl1czogM3B4IDNweCAwIDNweDtcXG59XFxuLnEtbWVzc2FnZS1zZW50IC5xLW1lc3NhZ2UtdGV4dDpsYXN0LWNoaWxkOmJlZm9yZSB7XFxuICBsZWZ0OiAxMDAlO1xcbiAgYm9yZGVyLWxlZnQ6IDAgc29saWQgdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItcmlnaHQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1ib3R0b206IDhweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxufVxcbi5xLW1lc3NhZ2Utc2VudCAucS1tZXNzYWdlLXRleHQtY29udGVudCB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtbWVzc2FnZS10ZXh0IHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG4gIHBhZGRpbmc6IDhweDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjI7XFxuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcbn1cXG4ucS1tZXNzYWdlLXRleHQgKyAucS1tZXNzYWdlLXRleHQge1xcbiAgbWFyZ2luLXRvcDogM3B4O1xcbn1cXG4ucS1tZXNzYWdlLXRleHQ6bGFzdC1jaGlsZCB7XFxuICBtaW4taGVpZ2h0OiA0OHB4O1xcbn1cXG4ucS1tZXNzYWdlLXRleHQ6bGFzdC1jaGlsZCAucS1tZXNzYWdlLXN0YW1wIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbn1cXG4ucS1tZXNzYWdlLXRleHQ6bGFzdC1jaGlsZDpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBib3R0b206IDA7XFxuICB3aWR0aDogMDtcXG4gIGhlaWdodDogMDtcXG59XFxuLnEtY2hlY2tib3gtaWNvbiB7XFxuICBoZWlnaHQ6IDIxcHg7XFxuICB3aWR0aDogMjFweDtcXG4gIGZvbnQtc2l6ZTogMjFweDtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLWNoaXAge1xcbiAgbWluLWhlaWdodDogMzJweDtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIHBhZGRpbmc6IDAgMTJweDtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIGJvcmRlcjogI2UwZTBlMDtcXG4gIGJvcmRlci1yYWRpdXM6IDJyZW07XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgY29sb3I6ICMwMDA7XFxuICBiYWNrZ3JvdW5kOiAjZWVlO1xcbn1cXG4ucS1jaGlwOmZvY3VzIC5xLWNoaXAtY2xvc2Uge1xcbiAgb3BhY2l0eTogMC44O1xcbn1cXG4ucS1jaGlwIC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbiAgbGluZS1oZWlnaHQ6IDE7XFxufVxcbi5xLWNoaXAtbWFpbiB7XFxuICBsaW5lLWhlaWdodDogaW5pdGlhbDtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcXG59XFxuLnEtY2hpcC1zaWRlIHtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGhlaWdodDogMzJweDtcXG4gIHdpZHRoOiAzMnB4O1xcbiAgbWluLXdpZHRoOiAzMnB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnEtY2hpcC1zaWRlIGltZyB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuLnEtY2hpcC1sZWZ0IHtcXG4gIG1hcmdpbi1sZWZ0OiAtMTJweDtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbn1cXG4ucS1jaGlwLXJpZ2h0IHtcXG4gIG1hcmdpbi1sZWZ0OiAycHg7XFxuICBtYXJnaW4tcmlnaHQ6IC0xMnB4O1xcbn1cXG4ucS1jaGlwLXNxdWFyZSB7XFxuICBib3JkZXItcmFkaXVzOiAycHg7XFxufVxcbi5xLWNoaXAtZmxvYXRpbmcge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAtMC4zZW07XFxuICByaWdodDogLTAuM2VtO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICB6LWluZGV4OiAxO1xcbn1cXG4ucS1jaGlwLXRhZyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBwYWRkaW5nLWxlZnQ6IDEuN3JlbTtcXG59XFxuLnEtY2hpcC10YWc6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDAuNXJlbTtcXG4gIG1hcmdpbi10b3A6IC0wLjI1cmVtO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIHdpZHRoOiAwLjVyZW07XFxuICBoZWlnaHQ6IDAuNXJlbTtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMXB4IDFweCAwIHJnYmEoMCwwLDAsMC4zKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMXB4IDFweCAwIHJnYmEoMCwwLDAsMC4zKTtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG59XFxuLnEtY2hpcC1wb2ludGluZyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB6LWluZGV4OiAwO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nOmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG4gIHotaW5kZXg6IC0xO1xcbiAgYmFja2dyb3VuZDogaW5oZXJpdDtcXG4gIHdpZHRoOiAxNnB4O1xcbiAgaGVpZ2h0OiAxNnB4O1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nLXVwIHtcXG4gIG1hcmdpbi10b3A6IDAuOHJlbTtcXG59XFxuLnEtY2hpcC1wb2ludGluZy11cDpiZWZvcmUge1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogNTAlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtMjIlKSByb3RhdGUoNDVkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtMjIlKSByb3RhdGUoNDVkZWcpO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nLWRvd24ge1xcbiAgbWFyZ2luLWJvdHRvbTogMC44cmVtO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nLWRvd246YmVmb3JlIHtcXG4gIHJpZ2h0OiBhdXRvO1xcbiAgdG9wOiAxMDAlO1xcbiAgbGVmdDogNTAlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNzglKSByb3RhdGUoNDVkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNzglKSByb3RhdGUoNDVkZWcpO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nLXJpZ2h0IHtcXG4gIG1hcmdpbi1yaWdodDogMC44cmVtO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nLXJpZ2h0OmJlZm9yZSB7XFxuICB0b3A6IDUwJTtcXG4gIHJpZ2h0OiAycHg7XFxuICBib3R0b206IGF1dG87XFxuICBsZWZ0OiBhdXRvO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzMlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMyUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcXG59XFxuLnEtY2hpcC1wb2ludGluZy1sZWZ0IHtcXG4gIG1hcmdpbi1sZWZ0OiAwLjhyZW07XFxufVxcbi5xLWNoaXAtcG9pbnRpbmctbGVmdDpiZWZvcmUge1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAycHg7XFxuICBib3R0b206IGF1dG87XFxuICByaWdodDogYXV0bztcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMyUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMyUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcXG59XFxuLnEtY2hpcC1kZXRhaWwge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEpO1xcbiAgb3BhY2l0eTogMC44O1xcbiAgcGFkZGluZzogMCA1cHg7XFxuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcXG59XFxuLnEtY2hpcC1zbWFsbCB7XFxuICBtaW4taGVpZ2h0OiAyNnB4O1xcbn1cXG4ucS1jaGlwLXNtYWxsIC5xLWNoaXAtbWFpbiB7XFxuICBwYWRkaW5nOiA0cHggMXB4O1xcbiAgbGluZS1oZWlnaHQ6IGluaXRpYWw7XFxufVxcbi5xLWNoaXAtc21hbGwgLnEtY2hpcC1zaWRlIHtcXG4gIGhlaWdodDogMjZweDtcXG4gIHdpZHRoOiAyNnB4O1xcbiAgbWluLXdpZHRoOiAyNnB4O1xcbn1cXG4ucS1jaGlwLXNtYWxsIC5xLWNoaXAtaWNvbiB7XFxuICBmb250LXNpemU6IDE2cHg7XFxufVxcbi5xLWNoaXAtZGVuc2Uge1xcbiAgbWluLWhlaWdodDogMXB4O1xcbiAgcGFkZGluZzogMCAzcHg7XFxuICBmb250LXNpemU6IDEycHg7XFxufVxcbi5xLWNoaXAtZGVuc2UucS1jaGlwLXRhZyB7XFxuICBwYWRkaW5nLWxlZnQ6IDEuM3JlbTtcXG59XFxuLnEtY2hpcC1kZW5zZS5xLWNoaXAtcG9pbnRpbmc6YmVmb3JlIHtcXG4gIHdpZHRoOiA5cHg7XFxuICBoZWlnaHQ6IDlweDtcXG59XFxuLnEtY2hpcC1kZW5zZSAucS1jaGlwLW1haW4ge1xcbiAgcGFkZGluZzogMXB4O1xcbn1cXG4ucS1jaGlwLWRlbnNlIC5xLWNoaXAtc2lkZSB7XFxuICBoZWlnaHQ6IDE4cHg7XFxuICB3aWR0aDogMThweDtcXG4gIG1pbi13aWR0aDogMTZweDtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG59XFxuLnEtY2hpcC1kZW5zZSAucS1jaGlwLWxlZnQge1xcbiAgbWFyZ2luLWxlZnQ6IC0zcHg7XFxuICBtYXJnaW4tcmlnaHQ6IDJweDtcXG59XFxuLnEtY2hpcC1kZW5zZSAucS1jaGlwLXJpZ2h0IHtcXG4gIG1hcmdpbi1sZWZ0OiAycHg7XFxuICBtYXJnaW4tcmlnaHQ6IC0ycHg7XFxufVxcbi5xLWNoaXAtZGVuc2UgLnEtaWNvbiB7XFxuICBmb250LXNpemU6IDE2cHg7XFxufVxcbi5xLWlucHV0LWNoaXBzIHtcXG4gIG1hcmdpbi10b3A6IC0xcHg7XFxuICBtYXJnaW4tYm90dG9tOiAtMXB4O1xcbn1cXG4ucS1pbnB1dC1jaGlwcyAucS1jaGlwIHtcXG4gIG1hcmdpbjogMXB4O1xcbn1cXG4ucS1pbnB1dC1jaGlwcyBpbnB1dC5xLWlucHV0LXRhcmdldCB7XFxuICBtaW4td2lkdGg6IDcwcHggIWltcG9ydGFudDtcXG59XFxuLnEtY29sbGFwc2libGUtc3ViLWl0ZW0ge1xcbiAgcGFkZGluZzogOHB4IDE2cHg7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXN1Yi1pdGVtLmluZGVudCB7XFxuICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XFxuICBwYWRkaW5nLXJpZ2h0OiAwO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1zdWItaXRlbSAucS1jYXJkIHtcXG4gIG1hcmdpbi1ib3R0b206IDA7XFxufVxcbi5xLWNvbGxhcHNpYmxlLnJvdXRlci1saW5rLWFjdGl2ZSA+IC5xLWl0ZW0ge1xcbiAgYmFja2dyb3VuZDogcmdiYSgxODksMTg5LDE4OSwwLjQpO1xcbn1cXG4ucS1jb2xsYXBzaWJsZSB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IHBhZGRpbmcgMC41cztcXG4gIHRyYW5zaXRpb246IHBhZGRpbmcgMC41cztcXG59XFxuLnEtY29sbGFwc2libGUtcG9wdXAtY2xvc2VkIHtcXG4gIHBhZGRpbmc6IDAgMTVweDtcXG59XFxuLnEtY29sbGFwc2libGUtcG9wdXAtY2xvc2VkIC5xLWNvbGxhcHNpYmxlLWlubmVyIHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXBvcHVwLWNsb3NlZCArIC5xLWNvbGxhcHNpYmxlLXBvcHVwLWNsb3NlZCAucS1jb2xsYXBzaWJsZS1pbm5lciB7XFxuICBib3JkZXItdG9wOiAwO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1wb3B1cC1vcGVuZWQge1xcbiAgcGFkZGluZzogMTVweCAwO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1wb3B1cC1vcGVuZWQgLnEtY29sbGFwc2libGUtaW5uZXIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXBvcHVwLW9wZW5lZCArIC5xLWNvbGxhcHNpYmxlLXBvcHVwLW9wZW5lZCxcXG4ucS1jb2xsYXBzaWJsZS1wb3B1cC1vcGVuZWQ6Zmlyc3QtY2hpbGQge1xcbiAgcGFkZGluZy10b3A6IDA7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXBvcHVwLW9wZW5lZDpsYXN0LWNoaWxkIHtcXG4gIHBhZGRpbmctYm90dG9tOiAwO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1jdXJzb3ItcG9pbnRlciA+IC5xLWNvbGxhcHNpYmxlLWlubmVyID4gLnEtaXRlbSB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXRvZ2dsZS1pY29uIHtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIHdpZHRoOiAxZW07XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi5xLWNvbG9yIHtcXG4gIG1heC13aWR0aDogMTAwdnc7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbn1cXG4ucS1jb2xvci1zYXR1cmF0aW9uIHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMjNweDtcXG59XFxuLnEtY29sb3Itc2F0dXJhdGlvbi13aGl0ZSB7XFxuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgZnJvbSgjZmZmKSwgdG8ocmdiYSgyNTUsMjU1LDI1NSwwKSkpO1xcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjZmZmLCByZ2JhKDI1NSwyNTUsMjU1LDApKTtcXG59XFxuLnEtY29sb3Itc2F0dXJhdGlvbi1ibGFjayB7XFxuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCBib3R0b20sIGxlZnQgdG9wLCBmcm9tKCMwMDApLCB0byhyZ2JhKDAsMCwwLDApKSk7XFxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCAjMDAwLCByZ2JhKDAsMCwwLDApKTtcXG59XFxuLnEtY29sb3Itc2F0dXJhdGlvbi1jaXJjbGUge1xcbiAgd2lkdGg6IDEwcHg7XFxuICBoZWlnaHQ6IDEwcHg7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDEuNXB4ICNmZmYsIGluc2V0IDAgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4zKSwgMCAwIDFweCAycHggcmdiYSgwLDAsMCwwLjQpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxLjVweCAjZmZmLCBpbnNldCAwIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMyksIDAgMCAxcHggMnB4IHJnYmEoMCwwLDAsMC40KTtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgLTVweCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIC01cHgpO1xcbn1cXG4ucS1jb2xvci1zd2F0Y2gsXFxuLnEtY29sb3ItYWxwaGEgLnEtc2xpZGVyLXRyYWNrIHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcXFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBZ0FBQUFJQ0FZQUFBREVENzZMQUFBQUgwbEVRVlFvVTJOa1lHQXdaa0FGWjVHNWpQUlJnT1lFVkRlQjNFQmpCUUJPWndUVnVnSUd5QUFBQUFCSlJVNUVya0pnZ2c9PVxcXCIpICFpbXBvcnRhbnQ7XFxufVxcbi5xLWNvbG9yLXN3YXRjaCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB3aWR0aDogMzJweDtcXG4gIGhlaWdodDogMzJweDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xcbn1cXG4ucS1jb2xvci1odWUgLnEtc2xpZGVyLXRyYWNrIHtcXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBmcm9tKCNmMDApLCBjb2xvci1zdG9wKDE3JSwgI2ZmMCksIGNvbG9yLXN0b3AoMzMlLCAjMGYwKSwgY29sb3Itc3RvcCg1MCUsICMwZmYpLCBjb2xvci1zdG9wKDY3JSwgIzAwZiksIGNvbG9yLXN0b3AoODMlLCAjZjBmKSwgdG8oI2YwMCkpO1xcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjZjAwIDAlLCAjZmYwIDE3JSwgIzBmMCAzMyUsICMwZmYgNTAlLCAjMDBmIDY3JSwgI2YwZiA4MyUsICNmMDAgMTAwJSk7XFxuICBvcGFjaXR5OiAxO1xcbiAgaGVpZ2h0OiA4cHg7XFxufVxcbi5xLWNvbG9yLWh1ZSAucS1zbGlkZXItdHJhY2suYWN0aXZlLXRyYWNrIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLWNvbG9yLWFscGhhIC5xLXNsaWRlci10cmFjayB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgb3BhY2l0eTogMTtcXG4gIGhlaWdodDogOHB4O1xcbn1cXG4ucS1jb2xvci1hbHBoYSAucS1zbGlkZXItdHJhY2s6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgZnJvbShyZ2JhKDI1NSwyNTUsMjU1LDApKSwgdG8oIzc1NzU3NSkpO1xcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDI1NSwyNTUsMjU1LDApLCAjNzU3NTc1KTtcXG59XFxuLnEtY29sb3ItYWxwaGEgLnEtc2xpZGVyLXRyYWNrLmFjdGl2ZS10cmFjayB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1jb2xvci1zbGlkZXJzIHtcXG4gIGhlaWdodDogNTZweDtcXG59XFxuLnEtY29sb3Itc2xpZGVycyAucS1zbGlkZXIge1xcbiAgaGVpZ2h0OiAyMHB4O1xcbn1cXG4ucS1jb2xvci1zbGlkZXJzIC5xLXNsaWRlci1oYW5kbGUge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA0cHggMCByZ2JhKDAsMCwwLDAuMzcpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA0cHggMCByZ2JhKDAsMCwwLDAuMzcpO1xcbn1cXG4ucS1jb2xvci1zbGlkZXJzIC5xLXNsaWRlci1yaW5nIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLWNvbG9yLWlucHV0cyB7XFxuICBmb250LXNpemU6IDExcHg7XFxuICBjb2xvcjogIzc1NzU3NTtcXG59XFxuLnEtY29sb3ItaW5wdXRzIGlucHV0IHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XFxuICBvdXRsaW5lOiAwO1xcbn1cXG4ucS1jb2xvci1wYWRkaW5nIHtcXG4gIHBhZGRpbmc6IDAgMnB4O1xcbn1cXG4ucS1jb2xvci1sYWJlbCB7XFxuICBwYWRkaW5nLXRvcDogNHB4O1xcbn1cXG4ucS1jb2xvci1kYXJrIHtcXG4gIGJhY2tncm91bmQ6ICMwMDA7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjNDI0MjQyO1xcbn1cXG4ucS1jb2xvci1kYXJrIGlucHV0IHtcXG4gIGJhY2tncm91bmQ6ICMwMDA7XFxuICBjb2xvcjogI2JkYmRiZDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWxpZ2h0KTtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICM0MjQyNDI7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1xLWNvbG9yLWRhcmspO1xcbn1cXG4ucS1jb2xvci1kYXJrIC5xLWNvbG9yLWlucHV0cyB7XFxuICBjb2xvcjogI2JkYmRiZDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWxpZ2h0KTtcXG59XFxuLnEtY29sb3ItZGFyayAucS1jb2xvci1zd2F0Y2gge1xcbiAgYm9yZGVyOiAxcHggc29saWQgIzQyNDI0MjtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXEtY29sb3ItZGFyayk7XFxufVxcbi5xLWRhdGV0aW1lLWlucHV0IHtcXG4gIG1pbi13aWR0aDogNzBweDtcXG59XFxuLnEtZGF0ZXRpbWUtY29udHJvbHMge1xcbiAgcGFkZGluZzogMCAxMHB4IDhweDtcXG59XFxuLnEtZGF0ZXRpbWUge1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIGxpbmUtaGVpZ2h0OiBpbml0aWFsO1xcbn1cXG4ucS1kYXRldGltZSAubW9kYWwtYnV0dG9ucyB7XFxuICBwYWRkaW5nLXRvcDogOHB4O1xcbn1cXG4ucS1kYXRldGltZTpub3QoLm5vLWJvcmRlcik6bm90KC5xLWRhdGV0aW1lLWRhcmspIC5xLWRhdGV0aW1lLWNvbnRlbnQge1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcXG59XFxuLnEtZGF0ZXRpbWU6bm90KC5uby1ib3JkZXIpLnEtZGF0ZXRpbWUtZGFyayB7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjNDI0MjQyO1xcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcS1jb2xvci1kYXJrKTtcXG59XFxuLnEtZGF0ZXRpbWUtaGVhZGVyIHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtZGF0ZXRpbWUtaGVhZGVyID4gZGl2IHtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi5tb2RhbC1jb250ZW50ID4gLnEtZGF0ZXRpbWUgPiAucS1kYXRldGltZS1oZWFkZXIsXFxuLnEtcG9wb3ZlciA+IC5xLWRhdGV0aW1lID4gLnEtZGF0ZXRpbWUtaGVhZGVyIHtcXG4gIG1pbi13aWR0aDogMTc1cHg7XFxufVxcbi5xLWRhdGV0aW1lLXdlZWtkYXlzdHJpbmcge1xcbiAgZm9udC1zaXplOiAwLjhyZW07XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMSk7XFxuICBwYWRkaW5nOiA1cHggMDtcXG59XFxuLnEtZGF0ZXRpbWUtdGltZSB7XFxuICBwYWRkaW5nOiAxMHB4IDA7XFxuICB3aWxsLWNoYW5nZTogc2Nyb2xsLXBvc2l0aW9uO1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxufVxcbi5xLWRhdGV0aW1lLWFtcG0ge1xcbiAgZm9udC1zaXplOiAwLjlyZW07XFxuICBwYWRkaW5nOiA1cHg7XFxufVxcbi5xLWRhdGV0aW1lLWRhdGVzdHJpbmcge1xcbiAgcGFkZGluZzogMTBweCAwO1xcbn1cXG4ucS1kYXRldGltZS1kYXRlc3RyaW5nIC5xLWRhdGV0aW1lLWxpbmsge1xcbiAgZm9udC1zaXplOiAyLjdyZW07XFxufVxcbi5xLWRhdGV0aW1lLWRhdGVzdHJpbmcgLnEtZGF0ZXRpbWUtbGluayBzcGFuIHtcXG4gIHBhZGRpbmc6IDAgNXB4O1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi5xLWRhdGV0aW1lLWRhdGVzdHJpbmcgLnEtZGF0ZXRpbWUtbGluay5zbWFsbCB7XFxuICBtYXJnaW46IDAgNXB4O1xcbiAgZm9udC1zaXplOiAxLjJyZW07XFxufVxcbi5xLWRhdGV0aW1lLWRhdGVzdHJpbmcgLnEtZGF0ZXRpbWUtbGluay5zbWFsbCBzcGFuIHtcXG4gIHBhZGRpbmc6IDVweDtcXG59XFxuLnEtZGF0ZXRpbWUtbGluayB7XFxuICBvcGFjaXR5OiAwLjY7XFxufVxcbi5xLWRhdGV0aW1lLWxpbmsgPiBzcGFuIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5xLWRhdGV0aW1lLWxpbmsuYWN0aXZlIHtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbi5xLWRhdGV0aW1lLWNsb2Nrc3RyaW5nIHtcXG4gIG1pbi13aWR0aDogMjEwcHg7XFxuICBmb250LXNpemU6IDIuN3JlbTtcXG4gIGRpcmVjdGlvbjogbHRyIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLXNlbGVjdG9yIHtcXG4gIG1pbi13aWR0aDogMjkwcHg7XFxuICBoZWlnaHQ6IDMxMHB4O1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxufVxcbi5xLWRhdGV0aW1lLXZpZXctZGF5IHtcXG4gIHdpZHRoOiAyNTBweDtcXG4gIGhlaWdodDogMjg1cHg7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtZGF0ZXRpbWUtdmlldy15ZWFyID4gLnEtYnRuOm5vdCguYWN0aXZlKSxcXG4ucS1kYXRldGltZS12aWV3LW1vbnRoID4gLnEtYnRuOm5vdCguYWN0aXZlKSB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtZGF0ZXRpbWUtbW9udGgtc3RhbXAge1xcbiAgZm9udC1zaXplOiAxNnB4O1xcbn1cXG4ucS1kYXRldGltZS13ZWVrZGF5cyB7XFxuICBtYXJnaW4tYm90dG9tOiA1cHg7XFxufVxcbi5xLWRhdGV0aW1lLXdlZWtkYXlzIGRpdiB7XFxuICBvcGFjaXR5OiAwLjY7XFxuICB3aWR0aDogMzVweDtcXG4gIGhlaWdodDogMzVweDtcXG4gIGxpbmUtaGVpZ2h0OiAzNXB4O1xcbiAgbWFyZ2luOiAwO1xcbiAgcGFkZGluZzogMDtcXG4gIG1pbi13aWR0aDogMDtcXG4gIG1pbi1oZWlnaHQ6IDA7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG59XFxuLnEtZGF0ZXRpbWUtZGF5cyBkaXYge1xcbiAgbWFyZ2luOiAxcHg7XFxuICBsaW5lLWhlaWdodDogMzNweDtcXG4gIHdpZHRoOiAzM3B4O1xcbiAgaGVpZ2h0OiAzM3B4O1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbn1cXG4ucS1kYXRldGltZS1kYXlzIGRpdi5xLWRhdGV0aW1lLWRheS1hY3RpdmUge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1kYXRldGltZS1kYXlzIGRpdi5xLWRhdGV0aW1lLWRheS1hY3RpdmUgPiBzcGFuIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1kYXRldGltZS1kYXlzIGRpdi5xLWRhdGV0aW1lLWRheS10b2RheSB7XFxuICBjb2xvcjogY3VycmVudENvbG9yO1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgYm9yZGVyOiAxcHggc29saWQgY3VycmVudENvbG9yO1xcbn1cXG4ucS1kYXRldGltZS1kYXlzIGRpdjpub3QoLnEtZGF0ZXRpbWUtZmlsbGVyZGF5KTpub3QoLmRpc2FibGVkKTpub3QoLnEtZGF0ZXRpbWUtZGF5LWFjdGl2ZSk6aG92ZXIge1xcbiAgYmFja2dyb3VuZDogI2UwZTBlMDtcXG59XFxuLnEtZGF0ZXRpbWUtYnRuIHtcXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxufVxcbi5xLWRhdGV0aW1lLWJ0bi5hY3RpdmUge1xcbiAgZm9udC1zaXplOiAxLjVyZW07XFxuICBwYWRkaW5nLXRvcDogMXJlbTtcXG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jayB7XFxuICB3aWR0aDogMjUwcHg7XFxuICBoZWlnaHQ6IDI1MHB4O1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgYmFja2dyb3VuZDogI2UwZTBlMDtcXG4gIHBhZGRpbmc6IDI0cHg7XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLWNpcmNsZSB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1wb3AgMC41cyAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtcG9wIDAuNXMgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stY2VudGVyIHtcXG4gIGhlaWdodDogNnB4O1xcbiAgd2lkdGg6IDZweDtcXG4gIHRvcDogMDtcXG4gIG1hcmdpbjogYXV0bztcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIG1pbi1oZWlnaHQ6IDA7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvaW50ZXIge1xcbiAgd2lkdGg6IDFweDtcXG4gIGhlaWdodDogNTAlO1xcbiAgbWFyZ2luOiAwIGF1dG87XFxuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXIgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlciAvKiBydGw6aWdub3JlICovO1xcbiAgbWluLWhlaWdodDogMDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9pbnRlciBzcGFuIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIHdpZHRoOiA4cHg7XFxuICBoZWlnaHQ6IDhweDtcXG4gIGJvdHRvbTogLThweDtcXG4gIGxlZnQ6IDA7XFxuICBtaW4td2lkdGg6IDA7XFxuICBtaW4taGVpZ2h0OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLWRhdGV0aW1lLWFycm93IHtcXG4gIGNvbG9yOiAjNzU3NTc1O1xcbn1cXG4ucS1kYXRldGltZS1kYXJrIHtcXG4gIGJhY2tncm91bmQ6ICM0MjQyNDI7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLWRhcmspO1xcbn1cXG4ucS1kYXRldGltZS1kYXJrIC5xLWRhdGV0aW1lLWFycm93IHtcXG4gIGNvbG9yOiAjYmRiZGJkO1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbGlnaHQpO1xcbn1cXG4ucS1kYXRldGltZS1kYXJrIC5xLWRhdGV0aW1lLWhlYWRlcixcXG4ucS1kYXRldGltZS1kYXJrIC5xLWRhdGV0aW1lLWNsb2NrIHtcXG4gIGJhY2tncm91bmQ6ICM2MTYxNjE7XFxufVxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtdmlldy1kYXkge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtdmlldy15ZWFyID4gLnEtYnRuOm5vdCguYWN0aXZlKSxcXG4ucS1kYXRldGltZS1kYXJrIC5xLWRhdGV0aW1lLXZpZXctbW9udGggPiAucS1idG46bm90KC5hY3RpdmUpIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1kYXRldGltZS1kYXJrIC5xLWRhdGV0aW1lLWRheXMgZGl2LnEtZGF0ZXRpbWUtZGF5LWFjdGl2ZSA+IHNwYW4sXFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS1kYXlzIGRpdjpub3QoLnEtZGF0ZXRpbWUtZmlsbGVyZGF5KTpub3QoLmRpc2FibGVkKTpub3QoLnEtZGF0ZXRpbWUtZGF5LWFjdGl2ZSk6aG92ZXIge1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbmJvZHkuZGVza3RvcCAucS1kYXRldGltZS1jbG9jay1wb3NpdGlvbjpub3QoLmFjdGl2ZSk6aG92ZXIge1xcbiAgYmFja2dyb3VuZDogI2Y1ZjVmNSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5LmRlc2t0b3AgLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS1jbG9jay1wb3NpdGlvbjpub3QoLmFjdGl2ZSk6aG92ZXIge1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvc2l0aW9uIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIG1pbi1oZWlnaHQ6IDMycHg7XFxuICB3aWR0aDogMzJweDtcXG4gIGhlaWdodDogMzJweDtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xcbiAgbWFyZ2luOiAwO1xcbiAgcGFkZGluZzogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgLyogcnRsOmlnbm9yZSAqLztcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zaXRpb246bm90KC5hY3RpdmUpIHtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1kYXRldGltZS1kYXJrIC5xLWRhdGV0aW1lLWNsb2NrLXBvc2l0aW9uOm5vdCguYWN0aXZlKSB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zaXRpb24uYWN0aXZlIHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zaXRpb24uYWN0aXZlID4gc3BhbiB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTAge1xcbiAgdG9wOiAwJTtcXG4gIGxlZnQ6IDUwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMSB7XFxuICB0b3A6IDYuNyU7XFxuICBsZWZ0OiA3NSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTIge1xcbiAgdG9wOiAyNSU7XFxuICBsZWZ0OiA5My4zJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMyB7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDEwMCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTQge1xcbiAgdG9wOiA3NSU7XFxuICBsZWZ0OiA5My4zJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtNSB7XFxuICB0b3A6IDkzLjMlO1xcbiAgbGVmdDogNzUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy02IHtcXG4gIHRvcDogMTAwJTtcXG4gIGxlZnQ6IDUwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtNyB7XFxuICB0b3A6IDkzLjMlO1xcbiAgbGVmdDogMjUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy04IHtcXG4gIHRvcDogNzUlO1xcbiAgbGVmdDogNi43JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtOSB7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xMCB7XFxuICB0b3A6IDI1JTtcXG4gIGxlZnQ6IDYuNyUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTExIHtcXG4gIHRvcDogNi43JTtcXG4gIGxlZnQ6IDI1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTIge1xcbiAgdG9wOiAwJTtcXG4gIGxlZnQ6IDUwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMS5mbXQyNCB7XFxuICB0b3A6IDYuNyU7XFxuICBsZWZ0OiA3NSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTIuZm10MjQge1xcbiAgdG9wOiAyNSU7XFxuICBsZWZ0OiA5My4zJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMy5mbXQyNCB7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDEwMCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTQuZm10MjQge1xcbiAgdG9wOiA3NSU7XFxuICBsZWZ0OiA5My4zJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtNS5mbXQyNCB7XFxuICB0b3A6IDkzLjMlO1xcbiAgbGVmdDogNzUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy02LmZtdDI0IHtcXG4gIHRvcDogMTAwJTtcXG4gIGxlZnQ6IDUwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtNy5mbXQyNCB7XFxuICB0b3A6IDkzLjMlO1xcbiAgbGVmdDogMjUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy04LmZtdDI0IHtcXG4gIHRvcDogNzUlO1xcbiAgbGVmdDogNi43JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtOS5mbXQyNCB7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xMC5mbXQyNCB7XFxuICB0b3A6IDI1JTtcXG4gIGxlZnQ6IDYuNyUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTExLmZtdDI0IHtcXG4gIHRvcDogNi43JTtcXG4gIGxlZnQ6IDI1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTIuZm10MjQge1xcbiAgdG9wOiAwJTtcXG4gIGxlZnQ6IDUwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTMuZm10MjQge1xcbiAgdG9wOiAxOS42OSU7XFxuICBsZWZ0OiA2Ny41JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTQuZm10MjQge1xcbiAgdG9wOiAzMi41JTtcXG4gIGxlZnQ6IDgwLjMxJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTUuZm10MjQge1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiA4NSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTE2LmZtdDI0IHtcXG4gIHRvcDogNjcuNSU7XFxuICBsZWZ0OiA4MC4zMSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTE3LmZtdDI0IHtcXG4gIHRvcDogODAuMzElO1xcbiAgbGVmdDogNjcuNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTE4LmZtdDI0IHtcXG4gIHRvcDogODUlO1xcbiAgbGVmdDogNTAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xOS5mbXQyNCB7XFxuICB0b3A6IDgwLjMxJTtcXG4gIGxlZnQ6IDMyLjUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0yMC5mbXQyNCB7XFxuICB0b3A6IDY3LjUlO1xcbiAgbGVmdDogMTkuNjklIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0yMS5mbXQyNCB7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDE1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMjIuZm10MjQge1xcbiAgdG9wOiAzMi41JTtcXG4gIGxlZnQ6IDE5LjY5JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMjMuZm10MjQge1xcbiAgdG9wOiAxOS42OSU7XFxuICBsZWZ0OiAzMi41JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMC5mbXQyNCB7XFxuICB0b3A6IDE1JTtcXG4gIGxlZnQ6IDUwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1yYW5nZS5yb3cgLnEtZGF0ZXRpbWUtcmFuZ2UtbGVmdCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xcbn1cXG4ucS1kYXRldGltZS1yYW5nZS5yb3cgLnEtZGF0ZXRpbWUtcmFuZ2UtcmlnaHQge1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XFxufVxcbi5xLWRhdGV0aW1lLXJhbmdlLmNvbHVtbiA+IGRpdiArIGRpdiB7XFxuICBtYXJnaW4tdG9wOiAxMHB4O1xcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIC5xLWRhdGV0aW1lIHtcXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbCAhaW1wb3J0YW50O1xcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbCAhaW1wb3J0YW50O1xcbiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgLnEtZGF0ZXRpbWUtaGVhZGVyIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcXG4gIH1cXG4gIC5xLWRhdGV0aW1lLWNvbnRlbnQge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAyO1xcbiAgICAgICAgLW1zLWZsZXg6IDIgMiBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDIgMiBhdXRvO1xcbiAgfVxcbn1cXG4ucS1kb3Qge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAtMnB4O1xcbiAgcmlnaHQ6IC0xMHB4O1xcbiAgaGVpZ2h0OiAxMHB4O1xcbiAgd2lkdGg6IDEwcHg7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2O1xcbiAgb3BhY2l0eTogMC44O1xcbn1cXG4ucS1lZGl0b3Ige1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcXG59XFxuLnEtZWRpdG9yLmRpc2FibGVkIHtcXG4gIGJvcmRlci1zdHlsZTogZGFzaGVkO1xcbn1cXG4ucS1lZGl0b3IuZnVsbHNjcmVlbiB7XFxuICBib3JkZXI6IDAgIWltcG9ydGFudDtcXG59XFxuLnEtZWRpdG9yLWNvbnRlbnQge1xcbiAgb3V0bGluZTogMDtcXG4gIHBhZGRpbmc6IDEwcHg7XFxuICBtaW4taGVpZ2h0OiAxMGVtO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG59XFxuLnEtZWRpdG9yLWNvbnRlbnQgaHIge1xcbiAgYm9yZGVyOiAwO1xcbiAgb3V0bGluZTogMDtcXG4gIG1hcmdpbjogMXB4O1xcbiAgaGVpZ2h0OiAxcHg7XFxuICBiYWNrZ3JvdW5kOiAjY2NjO1xcbn1cXG4ucS1lZGl0b3ItdG9vbGJhci1wYWRkaW5nIHtcXG4gIHBhZGRpbmc6IDRweDtcXG59XFxuLnEtZWRpdG9yLXRvb2xiYXIge1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XFxuICBiYWNrZ3JvdW5kOiAjZTBlMGUwO1xcbiAgbWluLWhlaWdodDogMzdweDtcXG59XFxuLnEtZWRpdG9yLXRvb2xiYXIgLnEtYnRuLWdyb3VwIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuLnEtZWRpdG9yLXRvb2xiYXIgLnEtYnRuLWdyb3VwICsgLnEtYnRuLWdyb3VwIHtcXG4gIG1hcmdpbi1sZWZ0OiA1cHg7XFxufVxcbi5xLWVkaXRvci10b29sYmFyLXNlcGFyYXRvciAucS1idG4tZ3JvdXAgKyAucS1idG4tZ3JvdXAge1xcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XFxufVxcbi5xLWVkaXRvci10b29sYmFyLXNlcGFyYXRvciAucS1idG4tZ3JvdXAgKyAucS1idG4tZ3JvdXA6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMDtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGhlaWdodDogMTAwJTtcXG4gIHdpZHRoOiAxcHg7XFxuICBiYWNrZ3JvdW5kOiAjY2NjO1xcbn1cXG4ucS1lZGl0b3ItaW5wdXQgaW5wdXQge1xcbiAgY29sb3I6IGluaGVyaXQ7XFxufVxcbi5xLWZhYiB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG4uei1mYWIge1xcbiAgei1pbmRleDogOTkwO1xcbn1cXG4ucS1mYWItb3BlbmVkIC5xLWZhYi1hY3Rpb25zIHtcXG4gIG9wYWNpdHk6IDE7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDEpIHNjYWxlWSgxKSB0cmFuc2xhdGVYKDApIHRyYW5zbGF0ZVkoMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpIHNjYWxlWSgxKSB0cmFuc2xhdGVYKDApIHRyYW5zbGF0ZVkoMCk7XFxuICBwb2ludGVyLWV2ZW50czogYWxsO1xcbn1cXG4ucS1mYWItb3BlbmVkIC5xLWZhYi1pY29uIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAxODBkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDE4MGRlZyk7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1mYWItb3BlbmVkIC5xLWZhYi1hY3RpdmUtaWNvbiB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMGRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMGRlZyk7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4ucS1mYWItaWNvbixcXG4ucS1mYWItYWN0aXZlLWljb24ge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNHM7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNHM7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMsIHRyYW5zZm9ybSAwLjRzO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzLCB0cmFuc2Zvcm0gMC40cywgLXdlYmtpdC10cmFuc2Zvcm0gMC40cztcXG59XFxuLnEtZmFiLWljb24ge1xcbiAgb3BhY2l0eTogMTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAwZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAwZGVnKTtcXG59XFxuLnEtZmFiLWFjdGl2ZS1pY29uIHtcXG4gIG9wYWNpdHk6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTE4MGRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTE4MGRlZyk7XFxufVxcbi5xLWZhYi1hY3Rpb25zIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIG9wYWNpdHk6IDA7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW47XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcbi5xLWZhYi1hY3Rpb25zIC5xLWJ0biB7XFxuICBtYXJnaW46IDVweDtcXG59XFxuLnEtZmFiLXJpZ2h0IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoMC40KSBzY2FsZVkoMC40KSB0cmFuc2xhdGVYKC0xMDAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMC40KSBzY2FsZVkoMC40KSB0cmFuc2xhdGVYKC0xMDAlKTtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDEyMCU7XFxufVxcbi5xLWZhYi1sZWZ0IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoMC40KSBzY2FsZVkoMC40KSB0cmFuc2xhdGVYKDEwMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjQpIHNjYWxlWSgwLjQpIHRyYW5zbGF0ZVgoMTAwJSk7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICByaWdodDogMTIwJTtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZTtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XFxufVxcbi5xLWZhYi11cCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDAuNCkgc2NhbGVZKDAuNCkgdHJhbnNsYXRlWSgxMDAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMC40KSBzY2FsZVkoMC40KSB0cmFuc2xhdGVZKDEwMCUpO1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZTtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGJvdHRvbTogMTIwJTtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG59XFxuLnEtZmFiLWRvd24ge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgwLjQpIHNjYWxlWSgwLjQpIHRyYW5zbGF0ZVkoLTEwMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjQpIHNjYWxlWSgwLjQpIHRyYW5zbGF0ZVkoLTEwMCUpO1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICB0b3A6IDEyMCU7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxufVxcbi5xLWZpZWxkLWljb24ge1xcbiAgd2lkdGg6IDI4cHg7XFxuICBoZWlnaHQ6IDI4cHg7XFxuICBtaW4td2lkdGg6IDI4cHg7XFxuICBmb250LXNpemU6IDI4cHg7XFxuICBtYXJnaW4tcmlnaHQ6IDE2cHg7XFxuICBjb2xvcjogIzk3OTc5NztcXG59XFxuLnEtZmllbGQtbGFiZWwge1xcbiAgcGFkZGluZy1yaWdodDogOHB4O1xcbiAgY29sb3I6ICM5Nzk3OTc7XFxufVxcbi5xLWZpZWxkLWxhYmVsLWlubmVyIHtcXG4gIG1pbi1oZWlnaHQ6IDI4cHg7XFxufVxcbi5xLWZpZWxkLWxhYmVsLWhpbnQge1xcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XFxufVxcbi5xLWZpZWxkLWJvdHRvbSB7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBwYWRkaW5nLXRvcDogOHB4O1xcbiAgY29sb3I6ICM5Nzk3OTc7XFxufVxcbi5xLWZpZWxkLW5vLWlucHV0IC5xLWZpZWxkLWJvdHRvbSB7XFxuICBtYXJnaW4tdG9wOiA4cHg7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtZmllbGQtY291bnRlciB7XFxuICBjb2xvcjogIzk3OTc5NztcXG4gIHBhZGRpbmctbGVmdDogOHB4O1xcbn1cXG4ucS1maWVsZC1kYXJrIC5xLWZpZWxkLWxhYmVsLFxcbi5xLWZpZWxkLWRhcmsgLnEtZmllbGQtaWNvbixcXG4ucS1maWVsZC1kYXJrIC5xLWZpZWxkLWNvdW50ZXIsXFxuLnEtZmllbGQtZGFyayAucS1maWVsZC1ib3R0b20ge1xcbiAgY29sb3I6ICNhN2E3YTc7XFxufVxcbi5xLWZpZWxkLWRhcmsgLnEtZmllbGQtbm8taW5wdXQgLnEtZmllbGQtYm90dG9tIHtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjOTc5Nzk3O1xcbn1cXG4ucS1maWVsZC13aXRoLWVycm9yIC5xLWZpZWxkLWljb24sXFxuLnEtZmllbGQtd2l0aC1lcnJvciAucS1maWVsZC1sYWJlbCxcXG4ucS1maWVsZC13aXRoLWVycm9yIC5xLWZpZWxkLWJvdHRvbSB7XFxuICBjb2xvcjogI2RiMjgyODtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLW5lZ2F0aXZlKTtcXG59XFxuLnEtZmllbGQtd2l0aC1lcnJvciAucS1maWVsZC1uby1pbnB1dCAucS1maWVsZC1ib3R0b20ge1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkYjI4Mjg7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tcS1jb2xvci1uZWdhdGl2ZSk7XFxufVxcbi5xLWZpZWxkLXdpdGgtd2FybmluZyAucS1maWVsZC1pY29uLFxcbi5xLWZpZWxkLXdpdGgtd2FybmluZyAucS1maWVsZC1sYWJlbCxcXG4ucS1maWVsZC13aXRoLXdhcm5pbmcgLnEtZmllbGQtYm90dG9tIHtcXG4gIGNvbG9yOiAjZjJjMDM3O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3Itd2FybmluZyk7XFxufVxcbi5xLWZpZWxkLXdpdGgtd2FybmluZyAucS1maWVsZC1uby1pbnB1dCAucS1maWVsZC1ib3R0b20ge1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNmMmMwMzc7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tcS1jb2xvci13YXJuaW5nKTtcXG59XFxuLnEtZmllbGQtbWFyZ2luIHtcXG4gIG1hcmdpbi10b3A6IDVweDtcXG59XFxuLnEtZmllbGQtZmxvYXRpbmcgLnEtZmllbGQtbWFyZ2luIHtcXG4gIG1hcmdpbi10b3A6IDIzcHg7XFxufVxcbi5xLWZpZWxkLW5vLWlucHV0IC5xLWZpZWxkLW1hcmdpbiB7XFxuICBtYXJnaW4tdG9wOiAzcHg7XFxufVxcbi5xLWZpZWxkLWNvbnRlbnQgLnEtaWYucS1pZi1oYXMtbGFiZWw6bm90KC5xLWlmLXN0YW5kYXJkKSB7XFxuICBtYXJnaW4tdG9wOiA5cHg7XFxufVxcbi5xLWZpZWxkLWNvbnRlbnQgLnEtaWYtc3RhbmRhcmQ6bm90KC5xLWlmLWhhcy1sYWJlbCkge1xcbiAgcGFkZGluZy10b3A6IDZweDtcXG59XFxuLnEtZmllbGQtY29udGVudCAucS1vcHRpb24tZ3JvdXAge1xcbiAgcGFkZGluZy10b3A6IDA7XFxufVxcbi5xLWZpZWxkLW5vLWlucHV0IC5xLWZpZWxkLWNvbnRlbnQge1xcbiAgcGFkZGluZy10b3A6IDZweDtcXG59XFxuLnEtZmllbGQtdmVydGljYWw6bm90KC5xLWZpZWxkLW5vLWxhYmVsKSAucS1maWVsZC1tYXJnaW4ge1xcbiAgbWFyZ2luLXRvcDogMDtcXG59XFxuLnEtZmllbGQtdmVydGljYWw6bm90KC5xLWZpZWxkLW5vLWxhYmVsKSAucS1pZi1zdGFuZGFyZDpub3QoLnEtaWYtaGFzLWxhYmVsKSB7XFxuICBwYWRkaW5nLXRvcDogMDtcXG59XFxuLnEtZmllbGQtdmVydGljYWw6bm90KC5xLWZpZWxkLW5vLWxhYmVsKSAucS1pZi5xLWlmLWhhcy1sYWJlbDpub3QoLnEtaWYtc3RhbmRhcmQpIHtcXG4gIG1hcmdpbi10b3A6IDBweDtcXG59XFxuLnEtZmllbGQtdmVydGljYWwucS1maWVsZC1uby1sYWJlbCAucS1maWVsZC1sYWJlbCB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHtcXG4gIC5xLWZpZWxkLXJlc3BvbnNpdmU6bm90KC5xLWZpZWxkLW5vLWxhYmVsKSAucS1maWVsZC1tYXJnaW4ge1xcbiAgICBtYXJnaW4tdG9wOiAwO1xcbiAgfVxcbiAgLnEtZmllbGQtcmVzcG9uc2l2ZTpub3QoLnEtZmllbGQtbm8tbGFiZWwpIC5xLWlmLXN0YW5kYXJkOm5vdCgucS1pZi1oYXMtbGFiZWwpIHtcXG4gICAgcGFkZGluZy10b3A6IDA7XFxuICB9XFxuICAucS1maWVsZC1yZXNwb25zaXZlOm5vdCgucS1maWVsZC1uby1sYWJlbCkgLnEtaWYucS1pZi1oYXMtbGFiZWw6bm90KC5xLWlmLXN0YW5kYXJkKSB7XFxuICAgIG1hcmdpbi10b3A6IDBweDtcXG4gIH1cXG4gIC5xLWZpZWxkLXJlc3BvbnNpdmUucS1maWVsZC1uby1sYWJlbCAucS1maWVsZC1sYWJlbCB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICB9XFxufVxcbi5xLWlubmVyLWxvYWRpbmcge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjYpO1xcbn1cXG4ucS1pbm5lci1sb2FkaW5nLmRhcmsge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjQpO1xcbn1cXG4ucS1pZixcXG4ucS1pZjpiZWZvcmUsXFxuLnEtaWYtbGFiZWwsXFxuLnEtaWYtYWRkb24sXFxuLnEtZmllbGQtaWNvbixcXG4ucS1maWVsZC1sYWJlbCxcXG4ucS1pZi1jb250cm9sLFxcbi5xLWZpZWxkLWJvdHRvbSB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSksIGRpc3BsYXkgMHMgMHM7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpLCBkaXNwbGF5IDBzIDBzO1xcbn1cXG4ucS1pZi5xLWlmLWhpZGUtdW5kZXJsaW5lOmJlZm9yZSxcXG4ucS1pZi5xLWlmLWludmVydGVkOmJlZm9yZSxcXG4ucS1pZi5xLWlmLWhpZGUtdW5kZXJsaW5lOmFmdGVyLFxcbi5xLWlmLnEtaWYtaW52ZXJ0ZWQ6YWZ0ZXIge1xcbiAgY29udGVudDogbm9uZTtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQge1xcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XFxuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XFxufVxcbi5xLWlmLWludmVydGVkIC5xLWlmLWlubmVyIHtcXG4gIG1hcmdpbi10b3A6IDdweDtcXG4gIG1hcmdpbi1ib3R0b206IDdweDtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQucS1pZi1oYXMtbGFiZWwgLnEtaWYtaW5uZXIge1xcbiAgbWFyZ2luLXRvcDogMjVweDtcXG59XFxuLnEtaWY6YmVmb3JlLFxcbi5xLWlmOmFmdGVyIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG4gIGJvcmRlcjogMXB4IGhpZGRlbiBjdXJyZW50Q29sb3I7XFxuICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBjb250ZW50OiAnJztcXG59XFxuLnEtaWY6YmVmb3JlIHtcXG4gIGNvbG9yOiAjYmRiZGJkO1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbGlnaHQpO1xcbn1cXG4ucS1pZjphZnRlciB7XFxuICBib3JkZXItd2lkdGg6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXIgMDtcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlciAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XFxufVxcbi5xLWlmOm5vdCgucS1pZi1kaXNhYmxlZCk6bm90KC5xLWlmLWVycm9yKTpub3QoLnEtaWYtd2FybmluZyk6aG92ZXI6YmVmb3JlLFxcbi5xLWlmLnEtaWYtcmVhZG9ubHk6bm90KC5xLWlmLWVycm9yKTpub3QoLnEtaWYtd2FybmluZyk6YWZ0ZXIge1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLWlmLWRhcmsucS1pZjpub3QoLnEtaWYtZGlzYWJsZWQpOm5vdCgucS1pZi1lcnJvcik6bm90KC5xLWlmLXdhcm5pbmcpOmhvdmVyOmJlZm9yZSxcXG4ucS1pZi1kYXJrLnEtaWYucS1pZi1yZWFkb25seTpub3QoLnEtaWYtZXJyb3IpOm5vdCgucS1pZi13YXJuaW5nKTphZnRlciB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtaWYtZm9jdXNlZDphZnRlciB7XFxuICBib3JkZXItd2lkdGg6IDJweDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoMSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBib3JkZXItbGVmdC13aWR0aCAwcyAwLjQ1cywgYm9yZGVyLXJpZ2h0LXdpZHRoIDBzIDAuNDVzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICB0cmFuc2l0aW9uOiBib3JkZXItbGVmdC13aWR0aCAwcyAwLjQ1cywgYm9yZGVyLXJpZ2h0LXdpZHRoIDBzIDAuNDVzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpLCBib3JkZXItbGVmdC13aWR0aCAwcyAwLjQ1cywgYm9yZGVyLXJpZ2h0LXdpZHRoIDBzIDAuNDVzO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSwgYm9yZGVyLWxlZnQtd2lkdGggMHMgMC40NXMsIGJvcmRlci1yaWdodC13aWR0aCAwcyAwLjQ1cywgLXdlYmtpdC10cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbn1cXG4ucS1pZiB7XFxuICBvdXRsaW5lOiAwO1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgZm9udC1zaXplOiAxcmVtO1xcbn1cXG4ucS1pZiAucS1pZi1pbm5lciB7XFxuICBtaW4taGVpZ2h0OiAyNHB4O1xcbn1cXG4ucS1pZi1zdGFuZGFyZCB7XFxuICBwYWRkaW5nLXRvcDogN3B4O1xcbiAgcGFkZGluZy1ib3R0b206IDdweDtcXG59XFxuLnEtaWYtc3RhbmRhcmQucS1pZi1oYXMtbGFiZWwge1xcbiAgcGFkZGluZy10b3A6IDI1cHg7XFxufVxcbi5xLWlmLWhpZGUtdW5kZXJsaW5lIHtcXG4gIHBhZGRpbmctdG9wOiAwO1xcbiAgcGFkZGluZy1ib3R0b206IDA7XFxufVxcbi5xLWlmLWhpZGUtdW5kZXJsaW5lLnEtaWYtaGFzLWxhYmVsIHtcXG4gIHBhZGRpbmctdG9wOiAxOHB4O1xcbn1cXG4ucS1pZi1zdGFuZGFyZCAucS1pZi1sYWJlbCxcXG4ucS1pZi1pbnZlcnRlZCAucS1pZi1sYWJlbCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcXG59XFxuLnEtaWYtc3RhbmRhcmQgLnEtaWYtbGFiZWwucS1pZi1sYWJlbC1hYm92ZSxcXG4ucS1pZi1pbnZlcnRlZCAucS1pZi1sYWJlbC5xLWlmLWxhYmVsLWFib3ZlIHtcXG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTEwMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTAwJSk7XFxuICBsaW5lLWhlaWdodDogMThweDtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxufVxcbi5xLWlmLWludmVydGVkIC5xLWlmLWxhYmVsIHtcXG4gIHRvcDogNTAlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjFweCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0yMXB4KTtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaWYtbGFiZWwucS1pZi1sYWJlbC1hYm92ZSB7XFxuICB0b3A6IDRweDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTEyNSUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTI1JSk7XFxufVxcbi5xLWlmLWludmVydGVkIC5xLWlucHV0LXRhcmdldCB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLnEtaWYtZm9jdXNlZDpub3QoLnEtaWYtcmVhZG9ubHkpIC5xLWlmLWxhYmVsLFxcbi5xLWlmLWZvY3VzZWQ6bm90KC5xLWlmLXJlYWRvbmx5KSAucS1pZi1hZGRvbixcXG4ucS1pZi1mb2N1c2VkOm5vdCgucS1pZi1yZWFkb25seSkgLnEtaWYtY29udHJvbCB7XFxuICBjb2xvcjogY3VycmVudENvbG9yO1xcbn1cXG4ucS1pZi13YXJuaW5nOmJlZm9yZSxcXG4ucS1pZi13YXJuaW5nOmFmdGVyLFxcbi5xLWlmLXdhcm5pbmc6bm90KC5xLWlmLWludmVydGVkKSAucS1pZi1sYWJlbCB7XFxuICBjb2xvcjogI2YyYzAzNztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXdhcm5pbmcpO1xcbn1cXG4ucS1pZi13YXJuaW5nOmhvdmVyOmJlZm9yZSB7XFxuICBjb2xvcjogI2Y4ZGQ5MztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXdhcm5pbmctbCk7XFxufVxcbi5xLWlmLWVycm9yOmJlZm9yZSxcXG4ucS1pZi1lcnJvcjphZnRlcixcXG4ucS1pZi1lcnJvcjpub3QoLnEtaWYtaW52ZXJ0ZWQpIC5xLWlmLWxhYmVsIHtcXG4gIGNvbG9yOiAjZGIyODI4O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbmVnYXRpdmUpO1xcbn1cXG4ucS1pZi1lcnJvcjpob3ZlcjpiZWZvcmUge1xcbiAgY29sb3I6ICNlYzhiOGI7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1uZWdhdGl2ZS1sKTtcXG59XFxuLnEtaWYtZGlzYWJsZWQge1xcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gIG9wYWNpdHk6IDAuNjtcXG59XFxuLnEtaWYtZGlzYWJsZWQgLnEtaWYtbGFiZWwsXFxuLnEtaWYtZGlzYWJsZWQgLnEtaWYtY29udHJvbCxcXG4ucS1pZi1kaXNhYmxlZCAucS1pbnB1dC10YXJnZXQsXFxuLnEtaWYtZGlzYWJsZWQgLnEtY2hpcCB7XFxuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbn1cXG4ucS1pZi1kYXJrOm5vdCgucS1pZi1pbnZlcnRlZC1saWdodCkgLnEtaW5wdXQtdGFyZ2V0Om5vdCgucS1pbnB1dC10YXJnZXQtcGxhY2Vob2xkZXIpIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1pZi1mb2N1c2FibGUge1xcbiAgb3V0bGluZTogMDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnEtaWYtbGFiZWwsXFxuLnEtaW5wdXQtdGFyZ2V0LFxcbi5xLWlucHV0LXRhcmdldC1wbGFjZWhvbGRlciB7XFxuICBsaW5lLWhlaWdodDogMjRweDtcXG59XFxuLnEtaWYtY29udHJvbCB7XFxuICBmb250LXNpemU6IDI0cHg7XFxuICB3aWR0aDogMjRweDtcXG4gIGhlaWdodDogMjRweDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnEtaWYtY29udHJvbCArIC5xLWlmLWNvbnRyb2wsXFxuLnEtaWYtY29udHJvbCArIC5xLWlmLWlubmVyLFxcbi5xLWlmLWlubmVyICsgLnEtaWYtY29udHJvbCB7XFxuICBtYXJnaW4tbGVmdDogNHB4O1xcbn1cXG4ucS1pZi1jb250cm9sOmhvdmVyIHtcXG4gIG9wYWNpdHk6IDAuNztcXG59XFxuLnEtaWYtYmFzZWxpbmUge1xcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XFxuICB3aWR0aDogMDtcXG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLnEtaWYtbGFiZWwtaW5uZXIsXFxuLnEtaWYtbGFiZWwtc3BhY2VyLFxcbi5xLWlmLWJhc2VsaW5lIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG59XFxuLnEtaWYtbGFiZWwtc3BhY2VyIHtcXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gIGhlaWdodDogMCAhaW1wb3J0YW50O1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIG1heC13aWR0aDogMTAwJTtcXG59XFxuLnEtaWYtbGFiZWwge1xcbiAgY3Vyc29yOiB0ZXh0O1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnEtaWYtbGFiZWwsXFxuLnEtaWYtYWRkb24sXFxuLnEtaWYtY29udHJvbCB7XFxuICBjb2xvcjogIzk3OTc5NztcXG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbn1cXG4ucS1pZi1pbnZlcnRlZCAucS1pZi1sYWJlbCxcXG4ucS1pZi1pbnZlcnRlZCAucS1pZi1hZGRvbixcXG4ucS1pZi1pbnZlcnRlZCAucS1pZi1jb250cm9sIHtcXG4gIGNvbG9yOiAjZGRkO1xcbn1cXG4ucS1pZi1pbnZlcnRlZC1saWdodCAucS1pZi1sYWJlbCxcXG4ucS1pZi1pbnZlcnRlZC1saWdodCAucS1pZi1hZGRvbixcXG4ucS1pZi1pbnZlcnRlZC1saWdodCAucS1pZi1jb250cm9sIHtcXG4gIGNvbG9yOiAjNjU2NTY1O1xcbn1cXG4ucS1pZi1hZGRvbiB7XFxuICBvcGFjaXR5OiAwO1xcbiAgY3Vyc29yOiBpbmhlcml0O1xcbn1cXG4ucS1pZi1hZGRvbjpub3QoLnEtaWYtYWRkb24tdmlzaWJsZSkge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtaWYtYWRkb24tbGVmdCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxcHg7XFxufVxcbi5xLWlmLWFkZG9uLXJpZ2h0IHtcXG4gIHBhZGRpbmctbGVmdDogMXB4O1xcbn1cXG4ucS1pZi1hZGRvbi12aXNpYmxlIHtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbi5xLWlucHV0LXRhcmdldCxcXG4ucS1pbnB1dC1zaGFkb3cge1xcbiAgYm9yZGVyOiAwO1xcbiAgb3V0bGluZTogMDtcXG4gIHBhZGRpbmc6IDA7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbiAgZm9udC1zaXplOiBpbmhlcml0O1xcbiAgcmVzaXplOiBub25lO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtaW5wdXQtdGFyZ2V0Oi13ZWJraXQtYXV0b2ZpbGwge1xcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogd2Via2l0LWF1dG9maWxsLW9uO1xcbiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xcbn1cXG4ucS1pbnB1dC10YXJnZXQucS1pbnB1dC1hdXRvZmlsbDpub3QoOi13ZWJraXQtYXV0b2ZpbGwpIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHdlYmtpdC1hdXRvZmlsbC1vZmY7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XFxufVxcbi5xLWlucHV0LXRhcmdldDo6LW1zLWNsZWFyLFxcbi5xLWlucHV0LXRhcmdldDo6LW1zLXJldmVhbCB7XFxuICBkaXNwbGF5OiBub25lO1xcbiAgd2lkdGg6IDA7XFxuICBoZWlnaHQ6IDA7XFxufVxcbi5xLWlucHV0LXRhcmdldDppbnZhbGlkIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5oZXJpdDtcXG4gICAgICAgICAgYm94LXNoYWRvdzogaW5oZXJpdDtcXG59XFxuLnEtaW5wdXQtdGFyZ2V0OmJlZm9yZSB7XFxuICBjb250ZW50OiAnfCc7XFxuICBsaW5lLWhlaWdodDogMjRweDtcXG4gIHdpZHRoOiAwO1xcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG5pbnB1dC5xLWlucHV0LXRhcmdldCB7XFxuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xcbiAgaGVpZ2h0OiAyNHB4O1xcbiAgb3V0bGluZTogMDtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG59XFxuLnEtaWYgLnEtaW5wdXQtdGFyZ2V0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmIC5xLWlucHV0LXRhcmdldDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogIzk3OTc5NyAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZiAucS1pbnB1dC10YXJnZXQ6Oi1tb3otcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICM5Nzk3OTcgIWltcG9ydGFudDtcXG59XFxuLnEtaWYgLnEtaW5wdXQtdGFyZ2V0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogIzk3OTc5NyAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZi1kYXJrIC5xLWlucHV0LXRhcmdldC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogIzk3OTc5NyAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZi1kYXJrIC5xLWlucHV0LXRhcmdldDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogIzk3OTc5NyAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZi1kYXJrIC5xLWlucHV0LXRhcmdldDo6LW1vei1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogIzk3OTc5NyAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZi1kYXJrIC5xLWlucHV0LXRhcmdldDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICM5Nzk3OTcgIWltcG9ydGFudDtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQ6bm90KC5xLWlmLWludmVydGVkLWxpZ2h0KSAucS1pbnB1dC10YXJnZXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICNkZGQgIWltcG9ydGFudDtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQ6bm90KC5xLWlmLWludmVydGVkLWxpZ2h0KSAucS1pbnB1dC10YXJnZXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICNkZGQgIWltcG9ydGFudDtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQ6bm90KC5xLWlmLWludmVydGVkLWxpZ2h0KSAucS1pbnB1dC10YXJnZXQ6Oi1tb3otcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICNkZGQgIWltcG9ydGFudDtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQ6bm90KC5xLWlmLWludmVydGVkLWxpZ2h0KSAucS1pbnB1dC10YXJnZXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjZGRkICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlucHV0LXNoYWRvdyB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBoZWlnaHQ6IGF1dG87XFxuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xcbn1cXG4ucS1qdW1ib3Ryb24ge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgcGFkZGluZzogMnJlbSAxcmVtO1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XFxuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xcbn1cXG4ucS1qdW1ib3Ryb24tZGFyayB7XFxuICBjb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM3NTc1NzU7XFxufVxcbi5xLWp1bWJvdHJvbi1kYXJrIGhyLnEtaHIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjM2KTtcXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAucS1qdW1ib3Ryb24ge1xcbiAgICBwYWRkaW5nOiA0cmVtIDJyZW07XFxuICB9XFxufVxcbi5xLWtub2IsXFxuLnEta25vYiA+IGRpdiB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxufVxcbi5xLWtub2IgPiBkaXYge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5xLWtub2ItbGFiZWwge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG59XFxuLnEta25vYi1sYWJlbCBpIHtcXG4gIGZvbnQtc2l6ZTogMTMwJTtcXG59XFxuLnEtbGF5b3V0IHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgbWluLWhlaWdodDogMTAwdmg7XFxufVxcbi5xLWxheW91dC1jb250YWluZXIgLnEtbGF5b3V0IHtcXG4gIG1pbi1oZWlnaHQ6IDEwMCU7XFxufVxcbi5xLWxheW91dC1jb250YWluZXIgPiBkaXYge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcbn1cXG4ucS1sYXlvdXQtY29udGFpbmVyID4gZGl2ID4gZGl2IHtcXG4gIG1pbi1oZWlnaHQ6IDA7XFxuICBtYXgtaGVpZ2h0OiAxMDAlO1xcbn1cXG4ucS1sYXlvdXQtaGVhZGVyIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggOHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAzcHggNHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDhweCByZ2JhKDAsMCwwLDAuMiksIDAgM3B4IDRweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAzcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS1sYXlvdXQtaGVhZGVyLWhpZGRlbiB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTEwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTEwJSk7XFxufVxcbi5xLWxheW91dC1mb290ZXIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xcHggOHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtM3B4IDRweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggM3B4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMXB4IDhweCByZ2JhKDAsMCwwLDAuMiksIDAgLTNweCA0cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLWxheW91dC1mb290ZXItaGlkZGVuIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDExMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTEwJSk7XFxufVxcbi5xLWxheW91dC1kcmF3ZXIge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIHotaW5kZXg6IDEwMDA7XFxufVxcbi5xLWxheW91dC1kcmF3ZXIub24tdG9wIHtcXG4gIHotaW5kZXg6IDMwMDA7XFxufVxcbi5xLWxheW91dC1kcmF3ZXItZGVsaW1pdGVyIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAzcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIDVweCA4cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAxcHggMTRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgNXB4IDhweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDFweCAxNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLWxheW91dC1kcmF3ZXItbGVmdCB7XFxuICBsZWZ0OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLXJpZ2h0IHtcXG4gIHJpZ2h0OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcXG59XFxuLnEtbGF5b3V0LFxcbi5xLWxheW91dC1oZWFkZXIsXFxuLnEtbGF5b3V0LWZvb3RlcixcXG4ucS1sYXlvdXQtcGFnZSB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5xLWxheW91dC1oZWFkZXIsXFxuLnEtbGF5b3V0LWZvb3RlciB7XFxuICB6LWluZGV4OiAyMDAwO1xcbn1cXG4ucS1sYXlvdXQtYmFja2Ryb3Age1xcbiAgei1pbmRleDogMjk5OSAhaW1wb3J0YW50O1xcbiAgd2lsbC1jaGFuZ2U6IGJhY2tncm91bmQtY29sb3I7XFxufVxcbi5xLWxheW91dC1kcmF3ZXItbWluaSB7XFxuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XFxufVxcbi5xLWxheW91dC1kcmF3ZXItbWluaSAucS1pdGVtLFxcbi5xLWxheW91dC1kcmF3ZXItbWluaSAucS1pdGVtLXNpZGUge1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxufVxcbi5xLWxheW91dC1kcmF3ZXItbWluaSAucS1taW5pLWRyYXdlci1oaWRlLFxcbi5xLWxheW91dC1kcmF3ZXItbWluaSAucS1jb2xsYXBzaWJsZS1pbm5lciA+IGRpdjpsYXN0LW9mLXR5cGUsXFxuLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLWxpc3QtaGVhZGVyLFxcbi5xLWxheW91dC1kcmF3ZXItbWluaSAucS1pdGVtLW1haW4sXFxuLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLWl0ZW0tc2lkZS1yaWdodCB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLW5vcm1hbCAucS1taW5pLWRyYXdlci1vbmx5IHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLWxheW91dC1kcmF3ZXItbW9iaWxlIC5xLW1pbmktZHJhd2VyLW9ubHksXFxuLnEtbGF5b3V0LWRyYXdlci1tb2JpbGUgLnEtbWluaS1kcmF3ZXItaGlkZSB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLW9wZW5lciB7XFxuICB6LWluZGV4OiAyMDAxO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgd2lkdGg6IDE1cHg7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbn1cXG4ucS1wYWdlLXN0aWNreS1zaHJpbmsge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcbi5xLXBhZ2Utc3RpY2t5LXNocmluayA+IHNwYW4ge1xcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XFxufVxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXBhZGRpbmcgLnEtbGF5b3V0IC5xLWxheW91dC1oZWFkZXIgPiAucS10b29sYmFyOm50aC1jaGlsZCgyKSxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci1wYWRkaW5nIC5xLWxheW91dCAucS1sYXlvdXQtaGVhZGVyID4gLnEtdGFiczpudGgtY2hpbGQoMikgLnEtdGFicy1oZWFkLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXBhZGRpbmcgLnEtbGF5b3V0IC5xLWxheW91dC1kcmF3ZXIudG9wLXBhZGRpbmcsXFxuYm9keS5xLWlvcy1zdGF0dXNiYXItcGFkZGluZyAubW9kYWw6bm90KC5taW5pbWl6ZWQpIC5xLWxheW91dC1oZWFkZXIgPiAucS10b29sYmFyOm50aC1jaGlsZCgxKSB7XFxuICBwYWRkaW5nLXRvcDogMjBweDtcXG4gIG1pbi1oZWlnaHQ6IDcwcHg7XFxufVxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLnEtbGF5b3V0IC5xLWxheW91dC1oZWFkZXIgPiAucS10b29sYmFyOm50aC1jaGlsZCgyKSxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLWxheW91dCAucS1sYXlvdXQtaGVhZGVyID4gLnEtdGFiczpudGgtY2hpbGQoMikgLnEtdGFicy1oZWFkLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLnEtbGF5b3V0IC5xLWxheW91dC1kcmF3ZXIudG9wLXBhZGRpbmcsXFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAubW9kYWw6bm90KC5taW5pbWl6ZWQpIC5xLWxheW91dC1oZWFkZXIgPiAucS10b29sYmFyOm50aC1jaGlsZCgxKSB7XFxuICBwYWRkaW5nLXRvcDogZW52KHNhZmUtYXJlYS1pbnNldC10b3ApO1xcbn1cXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLWxheW91dCAucS1sYXlvdXQtZm9vdGVyID4gLnEtdG9vbGJhcjpsYXN0LWNoaWxkLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLnEtbGF5b3V0IC5xLWxheW91dC1mb290ZXIgPiAucS10YWJzOmxhc3QtY2hpbGQgLnEtdGFicy1oZWFkLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLnEtbGF5b3V0IC5xLWxheW91dC1kcmF3ZXIudG9wLXBhZGRpbmcsXFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAubW9kYWw6bm90KC5taW5pbWl6ZWQpIC5xLWxheW91dC1mb290ZXIgPiAucS10b29sYmFyOmxhc3QtY2hpbGQge1xcbiAgcGFkZGluZy1ib3R0b206IGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTtcXG4gIG1pbi1oZWlnaHQ6IDcwcHg7XFxufVxcbi5xLWxheW91dC1hbmltYXRlIC5xLWxheW91dC10cmFuc2l0aW9uIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMTJzIGVhc2UtaW4gIWltcG9ydGFudDtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjEycyBlYXNlLWluICFpbXBvcnRhbnQ7XFxufVxcbi5xLWJvZHktZHJhd2VyLXRvZ2dsZSB7XFxuICBvdmVyZmxvdy14OiBoaWRkZW4gIWltcG9ydGFudDtcXG59XFxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICAubGF5b3V0LXBhZGRpbmcge1xcbiAgICBwYWRkaW5nOiAxLjVyZW0gMC41cmVtO1xcbiAgfVxcbiAgLmxheW91dC1wYWRkaW5nLmhvcml6b250YWwge1xcbiAgICBwYWRkaW5nOiAwIDAuNXJlbTtcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcXG4gIC5sYXlvdXQtcGFkZGluZyB7XFxuICAgIHBhZGRpbmc6IDEuNXJlbSAycmVtO1xcbiAgICBtYXJnaW46IGF1dG87XFxuICB9XFxuICAubGF5b3V0LXBhZGRpbmcuaG9yaXpvbnRhbCB7XFxuICAgIHBhZGRpbmc6IDAgMnJlbTtcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XFxuICAubGF5b3V0LXBhZGRpbmcge1xcbiAgICBwYWRkaW5nOiAyLjVyZW0gM3JlbTtcXG4gICAgbWFyZ2luOiBhdXRvO1xcbiAgfVxcbiAgLmxheW91dC1wYWRkaW5nLmhvcml6b250YWwge1xcbiAgICBwYWRkaW5nOiAwIDNyZW07XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcXG4gIC5sYXlvdXQtcGFkZGluZyB7XFxuICAgIHBhZGRpbmc6IDNyZW0gNHJlbTtcXG4gICAgbWFyZ2luOiBhdXRvO1xcbiAgfVxcbiAgLmxheW91dC1wYWRkaW5nLmhvcml6b250YWwge1xcbiAgICBwYWRkaW5nOiAwIDRyZW07XFxuICB9XFxufVxcbi5xLWl0ZW0tc3RhbXAge1xcbiAgZm9udC1zaXplOiAwLjhyZW07XFxuICBsaW5lLWhlaWdodDogMC44cmVtO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIG1hcmdpbjogMC4zcmVtIDA7XFxufVxcbi5xLWl0ZW0tc2lkZSB7XFxuICBjb2xvcjogIzczNzM3MztcXG4gIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvO1xcbiAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcXG4gIG1pbi13aWR0aDogMzhweDtcXG59XFxuLnEtaXRlbS1zaWRlLXJpZ2h0IHtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXG4ucS1pdGVtLWF2YXRhcixcXG4ucS1pdGVtLWF2YXRhciBpbWcge1xcbiAgd2lkdGg6IDM4cHg7XFxuICBoZWlnaHQ6IDM4cHg7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxufVxcbi5xLWl0ZW0tbGV0dGVyLFxcbi5xLWl0ZW0taWNvbiB7XFxuICBmb250LXNpemU6IDI0cHg7XFxufVxcbi5xLWl0ZW0taW52ZXJ0ZWQge1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgY29sb3I6ICNmZmY7XFxuICBiYWNrZ3JvdW5kOiAjNzM3MzczO1xcbiAgaGVpZ2h0OiAzOHB4O1xcbiAgd2lkdGg6IDM4cHg7XFxufVxcbi5xLWl0ZW0taW52ZXJ0ZWQsXFxuLnEtaXRlbS1pbnZlcnRlZCAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMjBweDtcXG59XFxuLnEtaXRlbS1tYWluIHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcXG4gIG1pbi13aWR0aDogMDtcXG59XFxuLnEtaXRlbS1tYWluLWluc2V0IHtcXG4gIG1hcmdpbi1sZWZ0OiA0OHB4O1xcbn1cXG4ucS1pdGVtLWxhYmVsIHtcXG4gIGxpbmUtaGVpZ2h0OiAxLjI7XFxufVxcbi5xLWl0ZW0tbGFiZWwgPiBzcGFuIHtcXG4gIGNvbG9yOiAjNzU3NTc1O1xcbn1cXG4ucS1pdGVtLXN1YmxhYmVsIHtcXG4gIGNvbG9yOiAjNzU3NTc1O1xcbiAgZm9udC1zaXplOiA5MCU7XFxuICBtYXJnaW4tdG9wOiAwLjJyZW07XFxufVxcbi5xLWl0ZW0tc3VibGFiZWwgPiBzcGFuIHtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxufVxcbi5xLWl0ZW0tc2VjdGlvbiArIC5xLWl0ZW0tc2VjdGlvbiB7XFxuICBtYXJnaW4tbGVmdDogMTBweDtcXG59XFxuLnEtaXRlbSB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxuICBwYWRkaW5nOiA4cHggMTZweDtcXG4gIG1pbi1oZWlnaHQ6IDQwcHg7XFxufVxcbi5xLWl0ZW0uYWN0aXZlLFxcbi5xLWl0ZW0ucm91dGVyLWxpbmstYWN0aXZlLFxcbi5xLWl0ZW06Zm9jdXMge1xcbiAgYmFja2dyb3VuZDogcmdiYSgxODksMTg5LDE4OSwwLjQpO1xcbn1cXG4ucS1pdGVtOmZvY3VzIHtcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5xLWl0ZW0taW1hZ2Uge1xcbiAgbWluLXdpZHRoOiAxMTRweDtcXG4gIG1heC13aWR0aDogMTE0cHg7XFxuICBtYXgtaGVpZ2h0OiAxMTRweDtcXG59XFxuLnEtbGlzdC1tdWx0aWxpbmUgPiAucS1pdGVtLFxcbi5xLWl0ZW0tbXVsdGlsaW5lIHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xcbn1cXG4ucS1saXN0LWxpbmsgPiAucS1pdGVtLFxcbi5xLWl0ZW0tbGluayB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLWxpc3QtaGlnaGxpZ2h0ID4gLnEtaXRlbTpob3ZlcixcXG4ucS1pdGVtLWhpZ2hsaWdodDpob3ZlcixcXG4ucS1saXN0LWxpbmsgPiAucS1pdGVtOmhvdmVyLFxcbi5xLWl0ZW0tbGluazpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDE4OSwxODksMTg5LDAuNSk7XFxufVxcbi5xLWxpc3Qtc2VwYXJhdG9yID4gLnEtaXRlbS1kaXZpc2lvbiArIC5xLWl0ZW0tZGl2aXNpb24sXFxuLnEtaXRlbS1kaXZpc2lvbiArIC5xLWl0ZW0tc2VwYXJhdG9yIHtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTBlMGUwO1xcbn1cXG4ucS1saXN0LWluc2V0LXNlcGFyYXRvciA+IC5xLWl0ZW0tZGl2aXNpb24gKyAucS1pdGVtLWRpdmlzaW9uOmFmdGVyLFxcbi5xLWl0ZW0tZGl2aXNpb24gKyAucS1pdGVtLWluc2V0LXNlcGFyYXRvcjphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgbGVmdDogNjRweDtcXG4gIGhlaWdodDogMXB4O1xcbiAgYmFja2dyb3VuZDogI2UwZTBlMDtcXG59XFxuLnEtbGlzdC1kZW5zZSA+IC5xLWl0ZW0sXFxuLnEtaXRlbS1kZW5zZSB7XFxuICBwYWRkaW5nOiAzcHggMTZweDtcXG4gIG1pbi1oZWlnaHQ6IDhweDtcXG59XFxuLnEtbGlzdC1zcGFyc2UgPiAucS1pdGVtLFxcbi5xLWl0ZW0tc3BhcnNlIHtcXG4gIHBhZGRpbmc6IDIyLjRweCAxNnB4O1xcbiAgbWluLWhlaWdodDogNTZweDtcXG59XFxuLnEtbGlzdC1zdHJpcGVkID4gLnEtaXRlbTpudGgtY2hpbGQoZXZlbikge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxODksMTg5LDE4OSwwLjY1KTtcXG59XFxuLnEtbGlzdC1zdHJpcGVkLW9kZCA+IC5xLWl0ZW06bnRoLWNoaWxkKG9kZCkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxODksMTg5LDE4OSwwLjY1KTtcXG59XFxuLnEtbGlzdCB7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xcbiAgcGFkZGluZzogOHB4IDA7XFxufVxcbi5xLWl0ZW0tc2VwYXJhdG9yLWNvbXBvbmVudCB7XFxuICBtYXJnaW46IDhweCAwO1xcbiAgaGVpZ2h0OiAxcHg7XFxuICBib3JkZXI6IDA7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xcbn1cXG4ucS1pdGVtLXNlcGFyYXRvci1jb21wb25lbnQ6bGFzdC1jaGlsZCB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1pdGVtLXNlcGFyYXRvci1jb21wb25lbnQgKyAucS1saXN0LWhlYWRlciB7XFxuICBtYXJnaW4tdG9wOiAtOHB4O1xcbn1cXG4ucS1pdGVtLXNlcGFyYXRvci1pbnNldC1jb21wb25lbnQge1xcbiAgbWFyZ2luLWxlZnQ6IDY0cHg7XFxufVxcbi5xLWxpc3QtaGVhZGVyIHtcXG4gIGNvbG9yOiAjNzU3NTc1O1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xcbiAgbWluLWhlaWdodDogNDhweDtcXG4gIHBhZGRpbmc6IDE1cHggMTZweDtcXG59XFxuLnEtbGlzdC1oZWFkZXItaW5zZXQge1xcbiAgcGFkZGluZy1sZWZ0OiA2NHB4O1xcbn1cXG4ucS1saXN0LWRhcmsgLnEtaXRlbS1zaWRlLFxcbi5xLWl0ZW0tZGFyayAucS1pdGVtLXNpZGUge1xcbiAgY29sb3I6ICNiYmI7XFxufVxcbi5xLWxpc3QtZGFyayAucS1pdGVtLWludmVydGVkLFxcbi5xLWl0ZW0tZGFyayAucS1pdGVtLWludmVydGVkIHtcXG4gIGNvbG9yOiAjMDAwO1xcbiAgYmFja2dyb3VuZDogI2JiYjtcXG59XFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0tbGFiZWwgPiBzcGFuLFxcbi5xLWl0ZW0tZGFyayAucS1pdGVtLWxhYmVsID4gc3BhbixcXG4ucS1saXN0LWRhcmsgLnEtaXRlbS1zdWJsYWJlbCxcXG4ucS1pdGVtLWRhcmsgLnEtaXRlbS1zdWJsYWJlbCB7XFxuICBjb2xvcjogI2JkYmRiZDtcXG59XFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0sXFxuLnEtaXRlbS1kYXJrIC5xLWl0ZW0ge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLWxpc3QtZGFyayAucS1pdGVtLmFjdGl2ZSxcXG4ucS1pdGVtLWRhcmsgLnEtaXRlbS5hY3RpdmUsXFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0ucm91dGVyLWxpbmstYWN0aXZlLFxcbi5xLWl0ZW0tZGFyayAucS1pdGVtLnJvdXRlci1saW5rLWFjdGl2ZSxcXG4ucS1saXN0LWRhcmsgLnEtaXRlbTpmb2N1cyxcXG4ucS1pdGVtLWRhcmsgLnEtaXRlbTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDExNywxMTcsMTE3LDAuMik7XFxufVxcbi5xLWxpc3QtZGFyayB7XFxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMzIpO1xcbn1cXG4ucS1saXN0LWRhcmsucS1saXN0LXNlcGFyYXRvciA+IC5xLWl0ZW0tZGl2aXNpb24gKyAucS1pdGVtLWRpdmlzaW9uLFxcbi5xLWxpc3QtZGFyayAucS1pdGVtLWRpdmlzaW9uICsgLnEtaXRlbS1zZXBhcmF0b3Ige1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4zMik7XFxufVxcbi5xLWxpc3QtZGFyay5xLWxpc3QtaW5zZXQtc2VwYXJhdG9yID4gLnEtaXRlbS1kaXZpc2lvbiArIC5xLWl0ZW0tZGl2aXNpb246YWZ0ZXIsXFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0tZGl2aXNpb24gKyAucS1pdGVtLWluc2V0LXNlcGFyYXRvcjphZnRlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMzIpO1xcbn1cXG4ucS1saXN0LWRhcmsucS1saXN0LXN0cmlwZWQgPiAucS1pdGVtOm50aC1jaGlsZChldmVuKSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDExNywxMTcsMTE3LDAuNDUpO1xcbn1cXG4ucS1saXN0LWRhcmsucS1saXN0LXN0cmlwZWQtb2RkID4gLnEtaXRlbTpudGgtY2hpbGQob2RkKSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDExNywxMTcsMTE3LDAuNDUpO1xcbn1cXG4ucS1saXN0LWRhcmsgLnEtaXRlbS1zZXBhcmF0b3ItY29tcG9uZW50IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4zMik7XFxufVxcbi5xLWxpc3QtZGFyayAucS1saXN0LWhlYWRlciB7XFxuICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjY0KTtcXG59XFxuLnEtbGlzdC1kYXJrLnEtbGlzdC1oaWdobGlnaHQgPiAucS1pdGVtOmhvdmVyLFxcbi5xLWxpc3QtZGFyayAucS1pdGVtLWhpZ2hsaWdodDpob3ZlcixcXG4ucS1saXN0LWRhcmsucS1saXN0LWxpbmsgPiAucS1pdGVtOmhvdmVyLFxcbi5xLWxpc3QtZGFyayAucS1pdGVtLWxpbms6aG92ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgxMTcsMTE3LDExNywwLjMpO1xcbn1cXG5ib2R5LndpdGgtbG9hZGluZyB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucS1sb2FkaW5nIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC40KTtcXG59XFxuLnEtbG9hZGluZyA+IGRpdiB7XFxuICBtYXJnaW46IDQwcHggMjBweCAwO1xcbiAgbWF4LXdpZHRoOiA0NTBweDtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIHRleHQtc2hhZG93OiAwIDAgN3B4ICMwMDA7XFxufVxcbi5tb2RhbC1iYWNrZHJvcCB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNCk7XFxufVxcbi5tb2RhbC5tYXhpbWl6ZWQgLm1vZGFsLWJhY2tkcm9wIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5tb2RhbC1jb250ZW50IHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxuICB3aWxsLWNoYW5nZTogc2Nyb2xsLXBvc2l0aW9uO1xcbiAgbWluLXdpZHRoOiAyODBweDtcXG4gIG1heC1oZWlnaHQ6IDgwdmg7XFxuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5tb2RhbCB7XFxuICB6LWluZGV4OiA1MDAwO1xcbn1cXG4ubW9kYWwubWluaW1pemVkIC5tb2RhbC1jb250ZW50IHtcXG4gIG1heC13aWR0aDogODB2dztcXG4gIG1heC1oZWlnaHQ6IDgwdmg7XFxufVxcbi5tb2RhbC5tYXhpbWl6ZWQgLm1vZGFsLWNvbnRlbnQge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBtYXgtaGVpZ2h0OiAxMDAlO1xcbiAgYm9yZGVyLXJhZGl1czogMDtcXG59XFxuLm1vZGFsLm1heGltaXplZCAubW9kYWwtY29udGVudCAucS1sYXlvdXQtY29udGFpbmVyIHtcXG4gIG1pbi1oZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7XFxufVxcbi5xLW1vZGFsLWVudGVyLFxcbi5xLW1vZGFsLWxlYXZlLWFjdGl2ZSB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gIC5tb2RhbDpub3QoLm1heGltaXplZCkucS1tb2RhbC1lbnRlciAubW9kYWwtY29udGVudCB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcXG4gIH1cXG4gIC5tb2RhbDpub3QoLm1heGltaXplZCkucS1tb2RhbC1sZWF2ZS1hY3RpdmUgLm1vZGFsLWNvbnRlbnQge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC44KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XFxuICB9XFxuICAubW9kYWwubWF4aW1pemVkLnEtbW9kYWwtZW50ZXIgLm1vZGFsLWNvbnRlbnQsXFxuICAubW9kYWwubWF4aW1pemVkLnEtbW9kYWwtbGVhdmUtYWN0aXZlIC5tb2RhbC1jb250ZW50IHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzAlKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzAlKTtcXG4gIH1cXG59XFxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICAucS1yZXNwb25zaXZlLW1vZGFsIHtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIH1cXG4gIC5tb2RhbDpub3QoLm1pbmltaXplZCkgLm1vZGFsLWNvbnRlbnQge1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XFxuICAgIGJvcmRlci1yYWRpdXM6IDA7XFxuICB9XFxuICAubW9kYWw6bm90KC5taW5pbWl6ZWQpIC5tb2RhbC1jb250ZW50IC5xLWxheW91dC1jb250YWluZXIge1xcbiAgICBtaW4taGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50O1xcbiAgfVxcbiAgLm1vZGFsOm5vdCgubWluaW1pemVkKS5xLW1vZGFsLWVudGVyIC5tb2RhbC1jb250ZW50LFxcbiAgLm1vZGFsOm5vdCgubWluaW1pemVkKS5xLW1vZGFsLWxlYXZlLWFjdGl2ZSAubW9kYWwtY29udGVudCB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwJSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwJSk7XFxuICB9XFxuICAubW9kYWwubWluaW1pemVkLnEtbW9kYWwtZW50ZXIgLm1vZGFsLWNvbnRlbnQge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4yKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XFxuICB9XFxuICAubW9kYWwubWluaW1pemVkLnEtbW9kYWwtbGVhdmUtYWN0aXZlIC5tb2RhbC1jb250ZW50IHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuOCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xcbiAgfVxcbn1cXG4ucS1tYXhpbWl6ZWQtbW9kYWwge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLm1vZGFsLFxcbi5tb2RhbC1jb250ZW50IHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcXG59XFxuLm1vZGFsLWhlYWRlciB7XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgcGFkZGluZzogMjRweCAyNHB4IDEwcHggMjRweDtcXG4gIGZvbnQtc2l6ZTogMS42cmVtO1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG59XFxuLm1vZGFsLWJvZHkge1xcbiAgcGFkZGluZzogMTBweCAyNHB4O1xcbiAgY29sb3I6IHJnYmEoMCwwLDAsMC41KTtcXG59XFxuLnNtYWxsLW1vZGFsLXNjcm9sbCxcXG4ubW9kYWwtc2Nyb2xsLFxcbi5iaWctbW9kYWwtc2Nyb2xsIHtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xcbiAgd2lsbC1jaGFuZ2U6IHNjcm9sbC1wb3NpdGlvbjtcXG59XFxuLnNtYWxsLW1vZGFsLXNjcm9sbCB7XFxuICBtYXgtaGVpZ2h0OiAxNTZweDtcXG59XFxuLm1vZGFsLXNjcm9sbCB7XFxuICBtYXgtaGVpZ2h0OiAyNDBweDtcXG59XFxuLmJpZy1tb2RhbC1zY3JvbGwge1xcbiAgbWF4LWhlaWdodDogNDgwcHg7XFxufVxcbi5tb2RhbC1idXR0b25zIHtcXG4gIHBhZGRpbmc6IDIycHggOHB4IDhweDtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGVuZDtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBlbmQ7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XFxuICBjb2xvcjogIzAyN2JlMztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXByaW1hcnkpO1xcbn1cXG4ubW9kYWwtYnV0dG9ucy5yb3cgLnEtYnRuICsgLnEtYnRuIHtcXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XFxufVxcbi5tb2RhbC1idXR0b25zLmNvbHVtbiB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogZW5kO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcXG59XFxuLm1vZGFsLWJ1dHRvbnMuY29sdW1uIC5xLWJ0biArIC5xLWJ0biB7XFxuICBtYXJnaW4tdG9wOiA4cHg7XFxufVxcbi5xLW1vZGFsLWJvdHRvbS1lbnRlcixcXG4ucS1tb2RhbC1ib3R0b20tbGVhdmUtYWN0aXZlIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLW1vZGFsLWJvdHRvbS1lbnRlciAubW9kYWwtY29udGVudCxcXG4ucS1tb2RhbC1ib3R0b20tbGVhdmUtYWN0aXZlIC5tb2RhbC1jb250ZW50IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMCUpO1xcbn1cXG4ucS1tb2RhbC10b3AtZW50ZXIsXFxuLnEtbW9kYWwtdG9wLWxlYXZlLWFjdGl2ZSB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1tb2RhbC10b3AtZW50ZXIgLm1vZGFsLWNvbnRlbnQsXFxuLnEtbW9kYWwtdG9wLWxlYXZlLWFjdGl2ZSAubW9kYWwtY29udGVudCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMCUpO1xcbn1cXG4ucS1tb2RhbC1yaWdodC1lbnRlcixcXG4ucS1tb2RhbC1yaWdodC1sZWF2ZS1hY3RpdmUge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtbW9kYWwtcmlnaHQtZW50ZXIgLm1vZGFsLWNvbnRlbnQsXFxuLnEtbW9kYWwtcmlnaHQtbGVhdmUtYWN0aXZlIC5tb2RhbC1jb250ZW50IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDMwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMCUpO1xcbn1cXG4ucS1tb2RhbC1sZWZ0LWVudGVyLFxcbi5xLW1vZGFsLWxlZnQtbGVhdmUtYWN0aXZlIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLW1vZGFsLWxlZnQtZW50ZXIgLm1vZGFsLWNvbnRlbnQsXFxuLnEtbW9kYWwtbGVmdC1sZWF2ZS1hY3RpdmUgLm1vZGFsLWNvbnRlbnQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzAlKTtcXG59XFxuLnEtbm90aWZpY2F0aW9ucyA+IGRpdiB7XFxuICB6LWluZGV4OiA5NTAwO1xcbn1cXG4ucS1ub3RpZmljYXRpb24tbGlzdCB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5xLW5vdGlmaWNhdGlvbi1saXN0LWNlbnRlciB7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxufVxcbi5xLW5vdGlmaWNhdGlvbi1saXN0LXRvcCB7XFxuICB0b3A6IDA7XFxufVxcbi5xLW5vdGlmaWNhdGlvbi1saXN0LWJvdHRvbSB7XFxuICBib3R0b206IDA7XFxufVxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLnEtbm90aWZpY2F0aW9uLWxpc3QtY2VudGVyLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLnEtbm90aWZpY2F0aW9uLWxpc3QtdG9wIHtcXG4gIHRvcDogZW52KHNhZmUtYXJlYS1pbnNldC10b3ApO1xcbn1cXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLW5vdGlmaWNhdGlvbi1saXN0LWNlbnRlcixcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLW5vdGlmaWNhdGlvbi1saXN0LWJvdHRvbSB7XFxuICBib3R0b206IGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTtcXG59XFxuLnEtbm90aWZpY2F0aW9uIHtcXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcXG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBtYXJnaW46IDEwcHggMTBweCAwO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMXM7XFxuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDFzO1xcbiAgei1pbmRleDogOTUwMDtcXG4gIG1heC13aWR0aDogMTAwJTtcXG59XFxuLnEtbm90aWZpY2F0aW9uLXRvcC1sZWZ0LWVudGVyLFxcbi5xLW5vdGlmaWNhdGlvbi10b3AtbGVmdC1sZWF2ZS10byxcXG4ucS1ub3RpZmljYXRpb24tdG9wLWVudGVyLFxcbi5xLW5vdGlmaWNhdGlvbi10b3AtbGVhdmUtdG8sXFxuLnEtbm90aWZpY2F0aW9uLXRvcC1yaWdodC1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tdG9wLXJpZ2h0LWxlYXZlLXRvIHtcXG4gIG9wYWNpdHk6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTBweCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTBweCk7XFxuICB6LWluZGV4OiA5NDk5O1xcbn1cXG4ucS1ub3RpZmljYXRpb24tbGVmdC1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tbGVmdC1sZWF2ZS10byxcXG4ucS1ub3RpZmljYXRpb24tY2VudGVyLWVudGVyLFxcbi5xLW5vdGlmaWNhdGlvbi1jZW50ZXItbGVhdmUtdG8sXFxuLnEtbm90aWZpY2F0aW9uLXJpZ2h0LWVudGVyLFxcbi5xLW5vdGlmaWNhdGlvbi1yaWdodC1sZWF2ZS10byxcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLWxlZnQtZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1sZWZ0LWxlYXZlLXRvLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1sZWF2ZS10byxcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLXJpZ2h0LWVudGVyLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tcmlnaHQtbGVhdmUtdG8ge1xcbiAgb3BhY2l0eTogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwcHgpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTBweCk7XFxuICB6LWluZGV4OiA5NDk5O1xcbn1cXG4ucS1ub3RpZmljYXRpb24tdG9wLWxlZnQtbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi10b3AtbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi10b3AtcmlnaHQtbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1sZWZ0LWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tY2VudGVyLWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tcmlnaHQtbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tbGVmdC1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1yaWdodC1sZWF2ZS1hY3RpdmUge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgei1pbmRleDogOTQ5OTtcXG4gIG1hcmdpbi1sZWZ0OiAwO1xcbiAgbWFyZ2luLXJpZ2h0OiAwO1xcbn1cXG4ucS1ub3RpZmljYXRpb24tdG9wLWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tY2VudGVyLWxlYXZlLWFjdGl2ZSB7XFxuICB0b3A6IDA7XFxufVxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tbGVmdC1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1yaWdodC1sZWF2ZS1hY3RpdmUge1xcbiAgYm90dG9tOiAwO1xcbn1cXG4ucS1vcHRpb24taW5uZXIge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgbGluZS1oZWlnaHQ6IDA7XFxufVxcbi5xLW9wdGlvbi1pbm5lciArIC5xLW9wdGlvbi1sYWJlbCB7XFxuICBtYXJnaW4tbGVmdDogOHB4O1xcbn1cXG4ucS1vcHRpb24ge1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG59XFxuLnEtb3B0aW9uIGlucHV0IHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuLnEtb3B0aW9uLnJldmVyc2UgLnEtb3B0aW9uLWlubmVyICsgLnEtb3B0aW9uLWxhYmVsIHtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbiAgbWFyZ2luLWxlZnQ6IDA7XFxufVxcbi5xLW9wdGlvbi1ncm91cC1pbmxpbmUtb3B0cyA+IGRpdiB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XFxuICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG59XFxuLnEtb3B0aW9uLWdyb3VwIHtcXG4gIG1hcmdpbjogLTVweDtcXG4gIHBhZGRpbmc6IDVweCAwO1xcbn1cXG4ucS1wYWdpbmF0aW9uIGlucHV0IHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuLnEtcGFnaW5hdGlvbiAucS1idG4ge1xcbiAgcGFkZGluZzogMCA1cHggIWltcG9ydGFudDtcXG59XFxuLnEtcGFnaW5hdGlvbiAucS1idG4uZGlzYWJsZWQge1xcbiAgY29sb3I6ICM3Nzc7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1mYWRlZCk7XFxufVxcbi5xLXBhcmFsbGF4IHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxufVxcbi5xLXBhcmFsbGF4LW1lZGlhID4gaW1nLFxcbi5xLXBhcmFsbGF4LW1lZGlhID4gdmlkZW8ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogNTAlO1xcbiAgYm90dG9tOiAwO1xcbiAgbWluLXdpZHRoOiAxMDAlO1xcbiAgbWluLWhlaWdodDogMTAwJTtcXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XFxufVxcbi5xLXBhcmFsbGF4LXRleHQge1xcbiAgdGV4dC1zaGFkb3c6IDAgMCA1cHggI2ZmZjtcXG59XFxuLnEtcG9wb3ZlciB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICB6LWluZGV4OiA4MDAwO1xcbiAgb3ZlcmZsb3cteTogYXV0bztcXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcXG4gIG1heC13aWR0aDogMTAwdnc7XFxuICBvdXRsaW5lOiAwO1xcbn1cXG4ucS1wb3BvdmVyID4gLnEtbGlzdDpvbmx5LWNoaWxkIHtcXG4gIGJvcmRlcjogbm9uZTtcXG59XFxuYm9keSBkaXYgLnEtcG9wb3ZlciB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1wcm9ncmVzcyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBoZWlnaHQ6IDVweDtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnEtcHJvZ3Jlc3MtbW9kZWwge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1wcm9ncmVzcy1tb2RlbC5hbmltYXRlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXByb2dyZXNzLXN0cmlwZXMgMnMgbGluZWFyIGluZmluaXRlO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtcHJvZ3Jlc3Mtc3RyaXBlcyAycyBsaW5lYXIgaW5maW5pdGU7XFxufVxcbi5xLXByb2dyZXNzLW1vZGVsOm5vdCguaW5kZXRlcm1pbmF0ZSkge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGxpbmVhcjtcXG4gIHRyYW5zaXRpb246IHdpZHRoIDAuM3MgbGluZWFyO1xcbn1cXG4ucS1wcm9ncmVzcy1tb2RlbC5pbmRldGVybWluYXRlOmJlZm9yZSxcXG4ucS1wcm9ncmVzcy1tb2RlbC5pbmRldGVybWluYXRlOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgYmFja2dyb3VuZDogaW5oZXJpdDtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICBib3R0b206IDA7XFxuICB3aWxsLWNoYW5nZTogbGVmdCwgcmlnaHQ7XFxufVxcbi5xLXByb2dyZXNzLW1vZGVsLmluZGV0ZXJtaW5hdGU6YmVmb3JlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUgMi4xcyBjdWJpYy1iZXppZXIoMC42NSwgMC44MTUsIDAuNzM1LCAwLjM5NSkgaW5maW5pdGU7XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1wcm9ncmVzcy1pbmRldGVybWluYXRlIDIuMXMgY3ViaWMtYmV6aWVyKDAuNjUsIDAuODE1LCAwLjczNSwgMC4zOTUpIGluZmluaXRlO1xcbn1cXG4ucS1wcm9ncmVzcy1tb2RlbC5pbmRldGVybWluYXRlOmFmdGVyIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUtc2hvcnQgMi4xcyBjdWJpYy1iZXppZXIoMC4xNjUsIDAuODQsIDAuNDQsIDEpIGluZmluaXRlO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZS1zaG9ydCAyLjFzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSkgaW5maW5pdGU7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMS4xNXM7XFxuICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogMS4xNXM7XFxufVxcbi5xLXByb2dyZXNzLW1vZGVsLnN0cmlwZSxcXG4ucS1wcm9ncmVzcy1tb2RlbC5zdHJpcGU6YmVmb3JlLFxcbi5xLXByb2dyZXNzLW1vZGVsLnN0cmlwZTphZnRlciB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KSAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZC1zaXplOiA0MHB4IDQwcHggIWltcG9ydGFudDtcXG59XFxuLnEtcHJvZ3Jlc3MtdHJhY2sge1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogd2lkdGggMC4zcyBsaW5lYXI7XFxuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGxpbmVhcjtcXG59XFxuLnEtcHJvZ3Jlc3MtYnVmZmVyIHtcXG4gIHRvcDogNTAlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG4gIGhlaWdodDogNHB4O1xcbiAgcmlnaHQ6IDA7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IHdpZHRoIDAuM3MgbGluZWFyO1xcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBsaW5lYXI7XFxuICAtd2Via2l0LW1hc2s6IHVybChcXFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJajgrQ2p4emRtY2dkMmxrZEdnOUlqRXlJaUJvWldsbmFIUTlJalFpSUhacFpYZFFiM0owUFNJd0lEQWdNVElnTkNJZ2RtVnljMmx2YmowaU1TNHhJaUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lQZ29nSUR4bGJHeHBjSE5sSUdONFBTSXlJaUJqZVQwaU1pSWdjbmc5SWpJaUlISjVQU0l5SWo0S0lDQWdJRHhoYm1sdFlYUmxJR0YwZEhKcFluVjBaVTVoYldVOUltTjRJaUJtY205dFBTSXlJaUIwYnowaUxURXdJaUJrZFhJOUlqQXVObk1pSUhKbGNHVmhkRU52ZFc1MFBTSnBibVJsWm1sdWFYUmxJaUF2UGdvZ0lEd3ZaV3hzYVhCelpUNEtJQ0E4Wld4c2FYQnpaU0JqZUQwaU1UUWlJR041UFNJeUlpQnllRDBpTWlJZ2NuazlJaklpSUdOc1lYTnpQU0pzYjJGa1pYSWlQZ29nSUNBZ1BHRnVhVzFoZEdVZ1lYUjBjbWxpZFhSbFRtRnRaVDBpWTNnaUlHWnliMjA5SWpFMElpQjBiejBpTWlJZ1pIVnlQU0l3TGpaeklpQnlaWEJsWVhSRGIzVnVkRDBpYVc1a1pXWnBibWwwWlNJZ0x6NEtJQ0E4TDJWc2JHbHdjMlUrQ2p3dmMzWm5QZ289XFxcIik7XFxuICAgICAgICAgIG1hc2s6IHVybChcXFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJajgrQ2p4emRtY2dkMmxrZEdnOUlqRXlJaUJvWldsbmFIUTlJalFpSUhacFpYZFFiM0owUFNJd0lEQWdNVElnTkNJZ2RtVnljMmx2YmowaU1TNHhJaUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lQZ29nSUR4bGJHeHBjSE5sSUdONFBTSXlJaUJqZVQwaU1pSWdjbmc5SWpJaUlISjVQU0l5SWo0S0lDQWdJRHhoYm1sdFlYUmxJR0YwZEhKcFluVjBaVTVoYldVOUltTjRJaUJtY205dFBTSXlJaUIwYnowaUxURXdJaUJrZFhJOUlqQXVObk1pSUhKbGNHVmhkRU52ZFc1MFBTSnBibVJsWm1sdWFYUmxJaUF2UGdvZ0lEd3ZaV3hzYVhCelpUNEtJQ0E4Wld4c2FYQnpaU0JqZUQwaU1UUWlJR041UFNJeUlpQnllRDBpTWlJZ2NuazlJaklpSUdOc1lYTnpQU0pzYjJGa1pYSWlQZ29nSUNBZ1BHRnVhVzFoZEdVZ1lYUjBjbWxpZFhSbFRtRnRaVDBpWTNnaUlHWnliMjA5SWpFMElpQjBiejBpTWlJZ1pIVnlQU0l3TGpaeklpQnlaWEJsWVhSRGIzVnVkRDBpYVc1a1pXWnBibWwwWlNJZ0x6NEtJQ0E4TDJWc2JHbHdjMlUrQ2p3dmMzWm5QZ289XFxcIik7XFxufVxcbi5xLXByb2dyZXNzLXRyYWNrLFxcbi5xLXByb2dyZXNzLWJ1ZmZlciB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxuICBvcGFjaXR5OiAwLjI7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxufVxcbi5wdWxsLXRvLXJlZnJlc2gge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4ucHVsbC10by1yZWZyZXNoLW1lc3NhZ2Uge1xcbiAgaGVpZ2h0OiA2NXB4O1xcbiAgZm9udC1zaXplOiAxcmVtO1xcbn1cXG4ucHVsbC10by1yZWZyZXNoLW1lc3NhZ2UgLnEtaWNvbiB7XFxuICBmb250LXNpemU6IDJyZW07XFxuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XFxufVxcbi5xLXJhZGlvLXVuY2hlY2tlZCxcXG4ucS1yYWRpby1jaGVja2VkLFxcbi5xLXJhZGlvIC5xLW9wdGlvbi1pbm5lciB7XFxuICBoZWlnaHQ6IDIxcHg7XFxuICB3aWR0aDogMjFweDtcXG4gIG1pbi13aWR0aDogMjFweDtcXG4gIGZvbnQtc2l6ZTogMjFweDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSksIC13ZWJraXQtdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbi5xLXJhZGlvLXVuY2hlY2tlZCB7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4ucS1yYWRpby1jaGVja2VkIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJSAwO1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlIDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XFxufVxcbi5xLXJhZGlvIC5xLW9wdGlvbi1pbm5lci5hY3RpdmUgLnEtcmFkaW8tdW5jaGVja2VkIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLXJhZGlvIC5xLW9wdGlvbi1pbm5lci5hY3RpdmUgLnEtcmFkaW8tY2hlY2tlZCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxufVxcbi5xLXJhdGluZyB7XFxuICBjb2xvcjogI2ZmZWIzYjtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcbi5xLXJhdGluZyBzcGFuIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgZGlzcGxheTogaW5oZXJpdDtcXG59XFxuLnEtcmF0aW5nIGkge1xcbiAgY29sb3I6IGN1cnJlbnRDb2xvcjtcXG4gIHRleHQtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjEyKSwgMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4yNCk7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxuICBvcGFjaXR5OiAwLjQ7XFxuICBwb2ludGVyLWV2ZW50czogYWxsO1xcbn1cXG4ucS1yYXRpbmcgaS5ob3ZlcmVkIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjMpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMyk7XFxufVxcbi5xLXJhdGluZyBpLmV4c2VsZWN0ZWQge1xcbiAgb3BhY2l0eTogMC43O1xcbn1cXG4ucS1yYXRpbmcgaS5hY3RpdmUge1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLnEtcmF0aW5nIGkgKyBpIHtcXG4gIG1hcmdpbi1sZWZ0OiAwLjNyZW07XFxufVxcbi5xLXJhdGluZy5lZGl0YWJsZSBpIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnEtcmF0aW5nOm5vdCguZWRpdGFibGUpIHNwYW4sXFxuLnEtcmF0aW5nIGkge1xcbiAgb3V0bGluZTogMDtcXG59XFxuLnEtc2Nyb2xsYXJlYS10aHVtYiB7XFxuICBiYWNrZ3JvdW5kOiAjMDAwO1xcbiAgd2lkdGg6IDEwcHg7XFxuICByaWdodDogMDtcXG4gIG9wYWNpdHk6IDAuMjtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xcbn1cXG4ucS1zY3JvbGxhcmVhLXRodW1iLmludmlzaWJsZS10aHVtYiB7XFxuICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XFxufVxcbi5xLXNjcm9sbGFyZWEtdGh1bWI6aG92ZXIge1xcbiAgb3BhY2l0eTogMC4zO1xcbn1cXG4ucS1zY3JvbGxhcmVhLXRodW1iOmFjdGl2ZSB7XFxuICBvcGFjaXR5OiAwLjU7XFxufVxcbi5xLXRvb2xiYXIgLnEtc2VhcmNoIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4yNSk7XFxufVxcbi5xLXNsaWRlci10cmFjayxcXG4ucS1zbGlkZXItbWFyayB7XFxuICBvcGFjaXR5OiAwLjQ7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXNsaWRlci10cmFjayB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgaGVpZ2h0OiAycHg7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLnEtc2xpZGVyLXRyYWNrOm5vdCguZHJhZ2dpbmcpIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XFxufVxcbi5xLXNsaWRlci10cmFjay5hY3RpdmUtdHJhY2sge1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLnEtc2xpZGVyLXRyYWNrLnRyYWNrLWRyYWdnYWJsZS5kcmFnZ2luZyB7XFxuICBoZWlnaHQ6IDRweDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogaGVpZ2h0IDAuM3MgZWFzZTtcXG4gIHRyYW5zaXRpb246IGhlaWdodCAwLjNzIGVhc2U7XFxufVxcbi5xLXNsaWRlci10cmFjay5oYW5kbGUtYXQtbWluaW11bSB7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG59XFxuLnEtc2xpZGVyLW1hcmsge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICBoZWlnaHQ6IDEwcHg7XFxuICB3aWR0aDogMnB4O1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XFxufVxcbi5xLXNsaWRlci1oYW5kbGUtY29udGFpbmVyIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIG1hcmdpbi1sZWZ0OiA2cHg7XFxuICBtYXJnaW4tcmlnaHQ6IDZweDtcXG59XFxuLnEtc2xpZGVyLWxhYmVsIHtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDZweDtcXG4gIG9wYWNpdHk6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDApIHNjYWxlKDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgwKSBzY2FsZSgwKTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnM7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcXG4gIHBhZGRpbmc6IDJweCA0cHg7XFxufVxcbi5xLXNsaWRlci1sYWJlbC5sYWJlbC1hbHdheXMge1xcbiAgb3BhY2l0eTogMTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTEzOSUpIHNjYWxlKDEpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtMTM5JSkgc2NhbGUoMSk7XFxufVxcbi5xLXNsaWRlci1oYW5kbGUge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XFxuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcXG4gIHdpZHRoOiAxMnB4O1xcbiAgaGVpZ2h0OiAxMnB4O1xcbiAgb3V0bGluZTogMDtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtc2xpZGVyLWhhbmRsZSAucS1jaGlwIHtcXG4gIG1heC13aWR0aDogdW5zZXQ7XFxufVxcbi5xLXNsaWRlci1oYW5kbGUuZHJhZ2dpbmcge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApIHNjYWxlKDEuMyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCkgc2NhbGUoMS4zKTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UsIC13ZWJraXQtdHJhbnNmb3JtIDAuM3MgZWFzZTtcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLCAtd2Via2l0LXRyYW5zZm9ybSAwLjNzIGVhc2U7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuM3MgZWFzZTtcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLCB0cmFuc2Zvcm0gMC4zcyBlYXNlLCAtd2Via2l0LXRyYW5zZm9ybSAwLjNzIGVhc2U7XFxufVxcbi5xLXNsaWRlci1oYW5kbGUuZHJhZ2dpbmcgLnEtc2xpZGVyLWxhYmVsIHtcXG4gIG9wYWNpdHk6IDE7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC0xMzklKSBzY2FsZSgxKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTEzOSUpIHNjYWxlKDEpO1xcbn1cXG4ucS1zbGlkZXItaGFuZGxlLmhhbmRsZS1hdC1taW5pbXVtIHtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxufVxcbi5xLXNsaWRlci1oYW5kbGUuaGFuZGxlLWF0LW1pbmltdW06YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxuICBib3JkZXI6IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXNsaWRlci1yaW5nIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogLTUwJTtcXG4gIGxlZnQ6IC01MCU7XFxuICB3aWR0aDogMjAwJTtcXG4gIGhlaWdodDogMjAwJTtcXG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIG9wYWNpdHk6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW47XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluO1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1zbGlkZXI6bm90KC5kaXNhYmxlZCk6bm90KC5yZWFkb25seSkgLnEtc2xpZGVyLWhhbmRsZS5kcmFnZ2luZyAucS1zbGlkZXItcmluZyxcXG4ucS1zbGlkZXI6bm90KC5kaXNhYmxlZCk6bm90KC5yZWFkb25seSkgLnEtc2xpZGVyLWhhbmRsZTpmb2N1cyAucS1zbGlkZXItcmluZyxcXG5ib2R5LmRlc2t0b3AgLnEtc2xpZGVyOm5vdCguZGlzYWJsZWQpOm5vdCgucmVhZG9ubHkpOmhvdmVyIC5xLXNsaWRlci1yaW5nIHtcXG4gIG9wYWNpdHk6IDAuNDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG59XFxuLnEtc2xpZGVyLmRpc2FibGVkIC5xLXNsaWRlci1oYW5kbGUge1xcbiAgYm9yZGVyOiAycHggc29saWQgI2ZmZjtcXG59XFxuLnEtc2xpZGVyLmRpc2FibGVkIC5xLXNsaWRlci1oYW5kbGUuaGFuZGxlLWF0LW1pbmltdW0ge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1zbGlkZXIge1xcbiAgaGVpZ2h0OiAyOHB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBjb2xvcjogIzAyN2JlMztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXByaW1hcnkpO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS1zbGlkZXIubGFiZWwtYWx3YXlzLFxcbi5xLXNsaWRlci53aXRoLXBhZGRpbmcge1xcbiAgcGFkZGluZzogMzZweCAwIDhweDtcXG4gIGhlaWdodDogNjRweDtcXG59XFxuLnEtc2xpZGVyLmhhcy1lcnJvciB7XFxuICBjb2xvcjogI2RiMjgyODtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLW5lZ2F0aXZlKTtcXG59XFxuLnEtc2xpZGVyLmhhcy13YXJuaW5nIHtcXG4gIGNvbG9yOiAjZjJjMDM3O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3Itd2FybmluZyk7XFxufVxcbi5xLXNwaW5uZXIge1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG59XFxuLnEtc3Bpbm5lci1tYXQge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtc3BpbiAycyBsaW5lYXIgaW5maW5pdGUgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXNwaW4gMnMgbGluZWFyIGluZmluaXRlIC8qIHJ0bDppZ25vcmUgKi87XFxuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXIgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlciAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1zcGlubmVyLW1hdCAucGF0aCB7XFxuICBzdHJva2UtZGFzaGFycmF5OiAxLCAyMDA7XFxuICBzdHJva2UtZGFzaG9mZnNldDogMDtcXG4gIHN0cm9rZS1saW5lY2FwOiByb3VuZDtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLW1hdC1kYXNoIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGUgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLW1hdC1kYXNoIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtc3RlcHBlciB7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtc3RlcHBlci10aXRsZSB7XFxuICBmb250LXNpemU6IDE0cHg7XFxufVxcbi5xLXN0ZXBwZXItc3VidGl0bGUge1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgb3BhY2l0eTogMC43O1xcbn1cXG4ucS1zdGVwcGVyLWRvdCB7XFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIHdpZHRoOiAyNHB4O1xcbiAgaGVpZ2h0OiAyNHB4O1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1zdGVwcGVyLWRvdCBzcGFuIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1zdGVwcGVyLXRhYiB7XFxuICBwYWRkaW5nOiAyNHB4O1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGNvbG9yIDAuMjhzLCBiYWNrZ3JvdW5kIDAuMjhzO1xcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4yOHMsIGJhY2tncm91bmQgMC4yOHM7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtd2FpdGluZyB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC13YWl0aW5nIC5xLXN0ZXBwZXItZG90IHtcXG4gIGNvbG9yOiByZ2JhKDAsMCwwLDAuNDIpO1xcbn1cXG4ucS1zdGVwcGVyLXRhYi5zdGVwLW5hdmlnYXRpb24ge1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC1jb2xvciB7XFxuICBjb2xvcjogY3VycmVudENvbG9yO1xcbn1cXG4ucS1zdGVwcGVyLXRhYi5zdGVwLWFjdGl2ZSAucS1zdGVwcGVyLXRpdGxlIHtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xcbn1cXG4ucS1zdGVwcGVyLXRhYi5zdGVwLWRpc2FibGVkIHtcXG4gIGNvbG9yOiByZ2JhKDAsMCwwLDAuNDIpO1xcbn1cXG4ucS1zdGVwcGVyLXRhYi5zdGVwLWVycm9yIHtcXG4gIGNvbG9yOiAjZGIyODI4O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbmVnYXRpdmUpO1xcbn1cXG4ucS1zdGVwcGVyLXRhYi5zdGVwLWVycm9yIC5xLXN0ZXBwZXItZG90IHtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG4ucS1zdGVwcGVyLXRhYi5zdGVwLWVycm9yIC5xLXN0ZXBwZXItZG90IHNwYW4ge1xcbiAgY29sb3I6ICNkYjI4Mjg7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1uZWdhdGl2ZSk7XFxuICBmb250LXNpemU6IDI0cHg7XFxufVxcbi5xLXN0ZXBwZXItaGVhZGVyIHtcXG4gIG1pbi1oZWlnaHQ6IDcycHg7XFxufVxcbi5xLXN0ZXBwZXItaGVhZGVyOm5vdCguYWx0ZXJuYXRpdmUtbGFiZWxzKSAucS1zdGVwcGVyLXRhYiB7XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuLnEtc3RlcHBlci1oZWFkZXI6bm90KC5hbHRlcm5hdGl2ZS1sYWJlbHMpIC5xLXN0ZXBwZXItZG90OmFmdGVyIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXN0ZXBwZXItaGVhZGVyLmFsdGVybmF0aXZlLWxhYmVscyB7XFxuICBtaW4taGVpZ2h0OiAxMDRweDtcXG59XFxuLnEtc3RlcHBlci1oZWFkZXIuYWx0ZXJuYXRpdmUtbGFiZWxzIC5xLXN0ZXBwZXItdGFiIHtcXG4gIHBhZGRpbmc6IDI0cHggMzJweDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIC13ZWJraXQtYm94LXBhY2s6IHN0YXJ0O1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XFxufVxcbi5xLXN0ZXBwZXItaGVhZGVyLmFsdGVybmF0aXZlLWxhYmVscyAucS1zdGVwcGVyLWRvdCB7XFxuICBtYXJnaW4tcmlnaHQ6IDA7XFxufVxcbi5xLXN0ZXBwZXItaGVhZGVyLmFsdGVybmF0aXZlLWxhYmVscyAucS1zdGVwcGVyLWxhYmVsIHtcXG4gIG1hcmdpbi10b3A6IDhweDtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuLnEtc3RlcHBlci1oZWFkZXIuYWx0ZXJuYXRpdmUtbGFiZWxzIC5xLXN0ZXBwZXItbGFiZWw6YmVmb3JlLFxcbi5xLXN0ZXBwZXItaGVhZGVyLmFsdGVybmF0aXZlLWxhYmVscyAucS1zdGVwcGVyLWxhYmVsOmFmdGVyIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXN0ZXBwZXItc3RlcC1jb250ZW50IHtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLXRhYiB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWZpcnN0IC5xLXN0ZXBwZXItZG90OmJlZm9yZSxcXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWxhc3QgLnEtc3RlcHBlci1sYWJlbDphZnRlcixcXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWxhc3QgLnEtc3RlcHBlci1kb3Q6YWZ0ZXIge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1saW5lOmJlZm9yZSxcXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWxpbmU6YWZ0ZXIge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICBoZWlnaHQ6IDFweDtcXG4gIHdpZHRoOiAxMDB2dztcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItbGFiZWw6YWZ0ZXIsXFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1kb3Q6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBsZWZ0OiAxMDAlO1xcbiAgbWFyZ2luLWxlZnQ6IDhweDtcXG59XFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1kb3Q6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcmlnaHQ6IDEwMCU7XFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcXG59XFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1uYXYge1xcbiAgbWFyZ2luOiAwIDE2cHggOHB4O1xcbn1cXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLXN0ZXAgLnEtc3RlcHBlci1uYXYge1xcbiAgbWFyZ2luOiAxNnB4IDAgMDtcXG59XFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1zdGVwIC5xLXN0ZXBwZXItbmF2ID4gZGl2LmNvbCB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXN0ZXAtY29udGVudCA+IC5xLXN0ZXBwZXItc3RlcC1pbm5lciB7XFxuICBwYWRkaW5nOiAyNHB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsIHtcXG4gIHBhZGRpbmc6IDhweCAwIDE4cHg7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLW5hdiB7XFxuICBtYXJnaW4tdG9wOiAxNnB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1uYXYgPiBkaXYuY29sIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItc3RlcC1jb250ZW50ID4gLnEtc3RlcHBlci1zdGVwLWlubmVyIHtcXG4gIHBhZGRpbmc6IDAgMjRweCAyNHB4IDQ4cHg7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYiB7XFxuICBwYWRkaW5nOiAxMnB4IDE2cHg7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYiAucS1zdGVwcGVyLWRvdDpiZWZvcmUsXFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItdGFiIC5xLXN0ZXBwZXItZG90OmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogNTAlO1xcbiAgd2lkdGg6IDFweDtcXG4gIGhlaWdodDogMTAwdmg7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIgLnEtc3RlcHBlci1kb3Q6YmVmb3JlIHtcXG4gIGJvdHRvbTogMTAwJTtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItdGFiIC5xLXN0ZXBwZXItZG90OmFmdGVyIHtcXG4gIHRvcDogMTAwJTtcXG4gIG1hcmdpbi10b3A6IDhweDtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItdGFiIC5xLXN0ZXBwZXItbGFiZWwge1xcbiAgcGFkZGluZy10b3A6IDRweDtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItdGFiIC5xLXN0ZXBwZXItbGFiZWwgLnEtc3RlcHBlci10aXRsZSB7XFxuICBsaW5lLWhlaWdodDogMThweDtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItdGFiLnEtc3RlcHBlci1maXJzdCAucS1zdGVwcGVyLWRvdDpiZWZvcmUsXFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItdGFiLnEtc3RlcHBlci1sYXN0IC5xLXN0ZXBwZXItZG90OmFmdGVyIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbmJvZHkuZGVza3RvcCAucS1zdGVwcGVyLXRhYi5zdGVwLW5hdmlnYXRpb246aG92ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjA1KTtcXG59XFxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICAucS1zdGVwcGVyLWhvcml6b250YWwucS1zdGVwcGVyLWNvbnRyYWN0YWJsZSA+IC5xLXN0ZXBwZXItaGVhZGVyIHtcXG4gICAgbWluLWhlaWdodDogNzJweDtcXG4gIH1cXG4gIC5xLXN0ZXBwZXItaG9yaXpvbnRhbC5xLXN0ZXBwZXItY29udHJhY3RhYmxlID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci10YWIge1xcbiAgICBwYWRkaW5nOiAyNHB4IDA7XFxuICB9XFxuICAucS1zdGVwcGVyLWhvcml6b250YWwucS1zdGVwcGVyLWNvbnRyYWN0YWJsZSA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItdGFiOm5vdCg6bGFzdC1jaGlsZCkgLnEtc3RlcHBlci1kb3Q6YWZ0ZXIge1xcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xcbiAgfVxcbiAgLnEtc3RlcHBlci1ob3Jpem9udGFsLnEtc3RlcHBlci1jb250cmFjdGFibGUgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWRvdCB7XFxuICAgIG1hcmdpbjogMDtcXG4gIH1cXG4gIC5xLXN0ZXBwZXItaG9yaXpvbnRhbC5xLXN0ZXBwZXItY29udHJhY3RhYmxlID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1sYWJlbCB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICB9XFxufVxcbi5xLXRhYnMge1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbn1cXG4ucS1sYXlvdXQtbWFyZ2luYWwgLnEtdGFicyB7XFxuICBib3JkZXItcmFkaXVzOiAwO1xcbn1cXG4ucS10YWJzLXNjcm9sbGVyIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5xLXRhYi1wYW5lIHtcXG4gIHBhZGRpbmc6IDEycHg7XFxufVxcbi5xLXRhYnMtcGFuZXM6ZW1wdHkge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtdGFicy1ub3JtYWwgLnEtdGFiLWljb24sXFxuLnEtdGFicy1ub3JtYWwgLnEtdGFiLWxhYmVsIHtcXG4gIG9wYWNpdHk6IDAuNztcXG59XFxuLnEtdGFiIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogY29sb3IgMC4zcywgYmFja2dyb3VuZCAwLjNzO1xcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4zcywgYmFja2dyb3VuZCAwLjNzO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICBwYWRkaW5nOiA4cHggMTBweDtcXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XFxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xcbn1cXG4ucS10YWIgLnEtdGFiLWljb24tcGFyZW50ICsgLnEtdGFiLWxhYmVsLXBhcmVudCB7XFxuICBtYXJnaW4tdG9wOiA0cHg7XFxufVxcbi5xLXRhYiAucS1jaGlwIHtcXG4gIHRvcDogLThweDtcXG4gIHJpZ2h0OiAtMTBweDtcXG4gIGxlZnQ6IGF1dG87XFxuICBtaW4taGVpZ2h0OiBhdXRvO1xcbiAgY29sb3I6ICNmZmY7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI0NCw2Nyw1NCwwLjc1KTtcXG59XFxuLnEtdGFiLmFjdGl2ZSAucS10YWItaWNvbixcXG4ucS10YWIuYWN0aXZlIC5xLXRhYi1sYWJlbCB7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4ucS10YWItbGFiZWwge1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG4ucS10YWItaWNvbiB7XFxuICBmb250LXNpemU6IDI3cHg7XFxufVxcbi5xLXRhYi1mb2N1cy1oZWxwZXIge1xcbiAgei1pbmRleDogLTE7XFxuICBvdXRsaW5lOiAwO1xcbn1cXG4ucS10YWItZm9jdXMtaGVscGVyOmZvY3VzIHtcXG4gIHotaW5kZXg6IHVuc2V0O1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbiAgb3BhY2l0eTogMC4xO1xcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIC5xLXRhYi5oaWRlLWljb24gLnEtdGFiLWljb24tcGFyZW50LFxcbiAgLnEtdGFiLmhpZGUtbGFiZWwgLnEtdGFiLWxhYmVsLXBhcmVudCB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG4gIC5xLXRhYi5oaWRlLWljb24gLnEtdGFiLWxhYmVsIHtcXG4gICAgbWFyZ2luLXRvcDogMDtcXG4gIH1cXG4gIC5xLXRhYi1mdWxsLmhpZGUtbm9uZSAucS10YWItbGFiZWwtcGFyZW50IC5xLXRhYi1tZXRhIHtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAucS10YWItZnVsbCAucS10YWItbGFiZWwtcGFyZW50IC5xLXRhYi1tZXRhIHtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gIH1cXG59XFxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MXB4KSB7XFxuICAucS10YWJzLWhlYWQ6bm90KC5zY3JvbGxhYmxlKSAucS10YWJzLXNjcm9sbGVyLFxcbiAgLnEtdGFicy1oZWFkOm5vdCguc2Nyb2xsYWJsZSkgLnEtdGFiIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XFxuICAucS10YWIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDI1cHg7XFxuICB9XFxuICAucS1sYXlvdXQtbWFyZ2luYWwgLnEtdGFicy1oZWFkOm5vdCguc2Nyb2xsYWJsZSkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7XFxuICB9XFxufVxcbi5xLXRhYnMtaGVhZCB7XFxuICBtaW4taGVpZ2h0OiA0OHB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGZvbnQtc2l6ZTogMC45NXJlbTtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGNvbG9yIDAuMThzIGVhc2UtaW4sIC13ZWJraXQtYm94LXNoYWRvdyAwLjE4cyBlYXNlLWluO1xcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xOHMgZWFzZS1pbiwgLXdlYmtpdC1ib3gtc2hhZG93IDAuMThzIGVhc2UtaW47XFxuICB0cmFuc2l0aW9uOiBjb2xvciAwLjE4cyBlYXNlLWluLCBib3gtc2hhZG93IDAuMThzIGVhc2UtaW47XFxuICB0cmFuc2l0aW9uOiBjb2xvciAwLjE4cyBlYXNlLWluLCBib3gtc2hhZG93IDAuMThzIGVhc2UtaW4sIC13ZWJraXQtYm94LXNoYWRvdyAwLjE4cyBlYXNlLWluO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4ucS10YWJzLWhlYWQ6bm90KC5zY3JvbGxhYmxlKSAucS10YWJzLWxlZnQtc2Nyb2xsLFxcbi5xLXRhYnMtaGVhZDpub3QoLnNjcm9sbGFibGUpIC5xLXRhYnMtcmlnaHQtc2Nyb2xsIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuLnEtdGFicy1sZWZ0LXNjcm9sbCxcXG4ucS10YWJzLXJpZ2h0LXNjcm9sbCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBjb2xvcjogI2ZmZjtcXG4gIHRvcDogMDtcXG59XFxuLnEtdGFicy1sZWZ0LXNjcm9sbCAucS1pY29uLFxcbi5xLXRhYnMtcmlnaHQtc2Nyb2xsIC5xLWljb24ge1xcbiAgdGV4dC1zaGFkb3c6IDAgMCAxMHB4ICMwMDA7XFxuICBmb250LXNpemU6IDMyLjRweDtcXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcXG59XFxuLnEtdGFicy1sZWZ0LXNjcm9sbC5kaXNhYmxlZCxcXG4ucS10YWJzLXJpZ2h0LXNjcm9sbC5kaXNhYmxlZCB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS10YWJzOmhvdmVyIC5xLXRhYnMtbGVmdC1zY3JvbGwgLnEtaWNvbixcXG4ucS10YWJzOmhvdmVyIC5xLXRhYnMtcmlnaHQtc2Nyb2xsIC5xLWljb24ge1xcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcXG59XFxuLnEtdGFicy1sZWZ0LXNjcm9sbCB7XFxuICBsZWZ0OiAwIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLXRhYnMtcmlnaHQtc2Nyb2xsIHtcXG4gIHJpZ2h0OiAwIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLXRhYnMtYWxpZ24tanVzdGlmeSAucS10YWJzLXNjcm9sbGVyLFxcbi5xLXRhYnMtYWxpZ24tanVzdGlmeSAucS10YWIge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xcbn1cXG4ucS10YWJzLWFsaWduLWNlbnRlciB7XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuLnEtdGFicy1hbGlnbi1yaWdodCB7XFxuICAtd2Via2l0LWJveC1wYWNrOiBlbmQ7XFxuICAgICAgLW1zLWZsZXgtcGFjazogZW5kO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xcbn1cXG4ucS10YWJzLWJhciB7XFxuICBib3JkZXI6IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxuICBib3JkZXItd2lkdGg6IDA7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBoZWlnaHQ6IDA7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxufVxcbi5xLXRhYnMtZ2xvYmFsLWJhciB7XFxuICB3aWR0aDogMXB4O1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjtcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtO1xcbiAgdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm07XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm07XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0sIC13ZWJraXQtdHJhbnNmb3JtO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1cztcXG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xNXM7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTtcXG4gICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpO1xcbn1cXG4ucS10YWJzLWdsb2JhbC1iYXIuY29udHJhY3Qge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE4cztcXG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xOHM7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcXG4gICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xcbn1cXG4ucS10YWJzLWdsb2JhbC1iYXItY29udGFpbmVyLmhpZ2hsaWdodCA+IC5xLXRhYnMtZ2xvYmFsLWJhciB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS10YWJzLXR3by1saW5lcyAucS10YWIge1xcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcXG59XFxuLnEtdGFicy10d28tbGluZXMgLnEtdGFiIC5xLXRhYi1sYWJlbCB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xcbn1cXG4ucS10YWJzLXBvc2l0aW9uLXRvcCA+IC5xLXRhYnMtaGVhZCAucS10YWJzLWJhciB7XFxuICBib3R0b206IDA7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XFxufVxcbi5xLXRhYnMtcG9zaXRpb24tYm90dG9tID4gLnEtdGFicy1oZWFkIC5xLXRhYnMtYmFyIHtcXG4gIHRvcDogMDtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDJweDtcXG59XFxuLnEtdGFicy1wb3NpdGlvbi1ib3R0b20gPiAucS10YWJzLXBhbmVzIHtcXG4gIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDA7XFxuICAgICAgLW1zLWZsZXgtb3JkZXI6IC0xO1xcbiAgICAgICAgICBvcmRlcjogLTE7XFxufVxcbi5xLXRhYnMtaW52ZXJ0ZWQgLnEtdGFicy1oZWFkIHtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxufVxcbi5xLXRhYnMtaW52ZXJ0ZWQucS10YWJzLXBvc2l0aW9uLXRvcCA+IC5xLXRhYnMtcGFuZXMge1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTtcXG59XFxuLnEtdGFicy1pbnZlcnRlZC5xLXRhYnMtcG9zaXRpb24tdG9wID4gLnEtdGFiLXBhbmUge1xcbiAgYm9yZGVyLXRvcDogMDtcXG59XFxuLnEtdGFicy1pbnZlcnRlZC5xLXRhYnMtcG9zaXRpb24tYm90dG9tID4gLnEtdGFicy1wYW5lcyB7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpO1xcbn1cXG4ucS10YWJzLWludmVydGVkLnEtdGFicy1wb3NpdGlvbi1ib3R0b20gPiAucS10YWItcGFuZSB7XFxuICBib3JkZXItYm90dG9tOiAwO1xcbn1cXG5ib2R5Lm1vYmlsZSAucS10YWJzLXNjcm9sbGVyIHtcXG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcXG4gIG92ZXJmbG93LXg6IGF1dG87XFxuICB3aWxsLWNoYW5nZTogc2Nyb2xsLXBvc2l0aW9uO1xcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xcbn1cXG5ib2R5LmRlc2t0b3AgLnEtdGFiOmJlZm9yZSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICBvcGFjaXR5OiAwLjE7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbmJvZHkuZGVza3RvcCAucS10YWI6aG92ZXI6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbn1cXG4ucS10YWJsZS1jb250YWluZXIge1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5xLXRhYmxlLWNvbnRhaW5lci5mdWxsc2NyZWVuIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XFxufVxcbi5xLXRhYmxlLXRvcCB7XFxuICBtaW4taGVpZ2h0OiA2NHB4O1xcbiAgcGFkZGluZzogOHB4IDI0cHg7XFxufVxcbi5xLXRhYmxlLXRvcDpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIG9wYWNpdHk6IDAuMjtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbn1cXG4ucS10YWJsZS10b3AgLnEtdGFibGUtY29udHJvbCB7XFxuICBtaW4taGVpZ2h0OiAzNnB4O1xcbiAgcGFkZGluZzogOHB4IDA7XFxuICAtbXMtZmxleC13cmFwOiB3cmFwO1xcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcXG59XFxuLnEtdGFibGUtdGl0bGUge1xcbiAgZm9udC1zaXplOiAyMHB4O1xcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDA1ZW07XFxuICBmb250LXdlaWdodDogNDAwO1xcbn1cXG4ucS10YWJsZS1zZXBhcmF0b3Ige1xcbiAgbWluLXdpZHRoOiA4cHggIWltcG9ydGFudDtcXG59XFxuLnEtdGFibGUtbm9kYXRhIC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAyMDAlO1xcbiAgcGFkZGluZy1yaWdodDogMTVweDtcXG59XFxuLnEtdGFibGUtcHJvZ3Jlc3Mge1xcbiAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XFxufVxcbi5xLXRhYmxlLXByb2dyZXNzIHRkIHtcXG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcbn1cXG4ucS10YWJsZS1wcm9ncmVzcyAucS1wcm9ncmVzcyB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBoZWlnaHQ6IDJweDtcXG4gIGJvdHRvbTogMDtcXG59XFxuLnEtdGFibGUtbWlkZGxlIHtcXG4gIG1heC13aWR0aDogMTAwJTtcXG59XFxuLnEtdGFibGUtYm90dG9tIHtcXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XFxuICBwYWRkaW5nOiA0cHggMTRweCA0cHggMjRweDtcXG59XFxuLnEtdGFibGUtYm90dG9tLFxcbi5xLXRhYmxlLWJvdHRvbSAucS1pZiB7XFxuICBmb250LXNpemU6IDEycHg7XFxufVxcbi5xLXRhYmxlLWJvdHRvbSAucS10YWJsZS1jb250cm9sIHtcXG4gIG1pbi1oZWlnaHQ6IDI0cHg7XFxufVxcbi5xLXRhYmxlLWNvbnRyb2wge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxufVxcbi5xLXRhYmxlLXNvcnQtaWNvbiB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHdpbGwtY2hhbmdlOiBvcGFjaXR5LCB0cmFuc2Zvcm07XFxuICBvcGFjaXR5OiAwO1xcbiAgZm9udC1zaXplOiAxMjAlO1xcbn1cXG4ucS10YWJsZS1zb3J0LWljb24tbGVmdCxcXG4ucS10YWJsZS1zb3J0LWljb24tY2VudGVyIHtcXG4gIG1hcmdpbi1sZWZ0OiA0cHg7XFxufVxcbi5xLXRhYmxlLXNvcnQtaWNvbi1yaWdodCB7XFxuICBtYXJnaW4tcmlnaHQ6IDRweDtcXG59XFxuLnEtdGFibGUge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XFxufVxcbi5xLXRhYmxlIHRoZWFkIHRyIHtcXG4gIGhlaWdodDogNTZweDtcXG59XFxuLnEtdGFibGUgdGgge1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG59XFxuLnEtdGFibGUgdGguc29ydGFibGUge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS10YWJsZSB0aC5zb3J0YWJsZTpob3ZlciAucS10YWJsZS1zb3J0LWljb24ge1xcbiAgb3BhY2l0eTogMC41O1xcbn1cXG4ucS10YWJsZSB0aC5zb3J0ZWQgLnEtdGFibGUtc29ydC1pY29uIHtcXG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcXG59XFxuLnEtdGFibGUgdGguc29ydC1kZXNjIC5xLXRhYmxlLXNvcnQtaWNvbiB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XFxufVxcbi5xLXRhYmxlIHRib2R5IHRyIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgd2lsbC1jaGFuZ2U6IGJhY2tncm91bmQ7XFxufVxcbi5xLXRhYmxlIHRoLFxcbi5xLXRhYmxlIHRkIHtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICBwYWRkaW5nOiA3cHggMjRweDtcXG59XFxuLnEtdGFibGUgdGhlYWQsXFxuLnEtdGFibGUgdGQsXFxuLnEtdGFibGUgdGgge1xcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcXG4gIGJvcmRlci13aWR0aDogMDtcXG59XFxuLnEtdGFibGUgdGJvZHkgdGQge1xcbiAgaGVpZ2h0OiA0OHB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGZvbnQtc2l6ZTogMTNweDtcXG59XFxuLnEtdGFibGUtY29sLWF1dG8td2lkdGgge1xcbiAgd2lkdGg6IDFweDtcXG59XFxuLnEtdGFibGUtYm90dG9tLWl0ZW0ge1xcbiAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xcbn1cXG4ucS10YWJsZS1ncmlkIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuLnEtdGFibGUtZ3JpZCAucS10YWJsZS1ib3R0b20ge1xcbiAgYm9yZGVyLXRvcDogMDtcXG59XFxuLnEtdGFibGUtZ3JpZCAucS10YWJsZSB7XFxuICBoZWlnaHQ6IDJweDtcXG59XFxuLnEtdGFibGUtZ3JpZCAucS10YWJsZSB0aGVhZCB7XFxuICBib3JkZXI6IDA7XFxufVxcbi5xLXRhYmxlLWhvcml6b250YWwtc2VwYXJhdG9yIHRoZWFkLFxcbi5xLXRhYmxlLWhvcml6b250YWwtc2VwYXJhdG9yIHRib2R5IHRkIHtcXG4gIGJvcmRlci13aWR0aDogMCAwIDFweCAwO1xcbn1cXG4ucS10YWJsZS12ZXJ0aWNhbC1zZXBhcmF0b3IgdGhlYWQge1xcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4IDA7XFxufVxcbi5xLXRhYmxlLXZlcnRpY2FsLXNlcGFyYXRvciB0ZCB7XFxuICBib3JkZXItd2lkdGg6IDAgMCAwIDFweDtcXG59XFxuLnEtdGFibGUtdmVydGljYWwtc2VwYXJhdG9yIHRkOmZpcnN0LWNoaWxkIHtcXG4gIGJvcmRlci1sZWZ0OiAwO1xcbn1cXG4ucS10YWJsZS1jZWxsLXNlcGFyYXRvciB0ZCB7XFxuICBib3JkZXItd2lkdGg6IDFweDtcXG59XFxuLnEtdGFibGUtY2VsbC1zZXBhcmF0b3IgdGQ6Zmlyc3QtY2hpbGQge1xcbiAgYm9yZGVyLWxlZnQ6IDA7XFxufVxcbi5xLXRhYmxlLWNlbGwtc2VwYXJhdG9yIHRkOmxhc3QtY2hpbGQge1xcbiAgYm9yZGVyLXJpZ2h0OiAwO1xcbn1cXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZS10b3Age1xcbiAgbWluLWhlaWdodDogNDhweDtcXG59XFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUtdG9wLFxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlLWJvdHRvbSB7XFxuICBwYWRkaW5nLWxlZnQ6IDhweDtcXG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcXG59XFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUtYm90dG9tIHtcXG4gIG1pbi1oZWlnaHQ6IDQycHg7XFxufVxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlLXNvcnQtaWNvbiB7XFxuICBmb250LXNpemU6IDExMCU7XFxufVxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlIHRoLFxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlIHRkIHtcXG4gIHBhZGRpbmc6IDRweCA4cHg7XFxufVxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlIHRoZWFkIHRyIHtcXG4gIGhlaWdodDogNDBweDtcXG59XFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUgdGJvZHkgdGQge1xcbiAgaGVpZ2h0OiAyOHB4O1xcbn1cXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZS1ib3R0b20taXRlbSB7XFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcXG59XFxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICAucS10YWJsZS10b3Age1xcbiAgICBtaW4taGVpZ2h0OiA0OHB4O1xcbiAgfVxcbiAgLnEtdGFibGUtdG9wLFxcbiAgLnEtdGFibGUtYm90dG9tIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcXG4gIH1cXG4gIC5xLXRhYmxlLWJvdHRvbSB7XFxuICAgIG1pbi1oZWlnaHQ6IDQycHg7XFxuICB9XFxuICAucS10YWJsZS1zb3J0LWljb24ge1xcbiAgICBmb250LXNpemU6IDExMCU7XFxuICB9XFxuICAucS10YWJsZSB0aCxcXG4gIC5xLXRhYmxlIHRkIHtcXG4gICAgcGFkZGluZzogNHB4IDhweDtcXG4gIH1cXG4gIC5xLXRhYmxlIHRoZWFkIHRyIHtcXG4gICAgaGVpZ2h0OiA0MHB4O1xcbiAgfVxcbiAgLnEtdGFibGUgdGJvZHkgdGQge1xcbiAgICBoZWlnaHQ6IDI4cHg7XFxuICB9XFxuICAucS10YWJsZS1ib3R0b20taXRlbSB7XFxuICAgIG1hcmdpbi1yaWdodDogOHB4O1xcbiAgfVxcbn1cXG4ucS10YWJsZS1ib3R0b20ge1xcbiAgY29sb3I6IHJnYmEoMCwwLDAsMC41NCk7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtdGFibGUge1xcbiAgY29sb3I6IHJnYmEoMCwwLDAsMC44Nyk7XFxufVxcbi5xLXRhYmxlIHRoZWFkLFxcbi5xLXRhYmxlIHRyLFxcbi5xLXRhYmxlIHRoLFxcbi5xLXRhYmxlIHRkIHtcXG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtdGFibGUgdGgge1xcbiAgY29sb3I6IHJnYmEoMCwwLDAsMC41NCk7XFxufVxcbi5xLXRhYmxlIHRoLnNvcnRhYmxlOmhvdmVyLFxcbi5xLXRhYmxlIHRoLnNvcnRlZCB7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjg3KTtcXG59XFxuLnEtdGFibGUgdGJvZHkgdHIuc2VsZWN0ZWQge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjA2KTtcXG59XFxuLnEtdGFibGUgdGJvZHkgdHI6aG92ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjAzKTtcXG59XFxuLnEtdGFibGUtZGFyayB7XFxuICBjb2xvcjogI2VlZTtcXG59XFxuLnEtdGFibGUtZGFyayAucS10YWJsZS1ib3R0b20sXFxuLnEtdGFibGUtZGFyayAucS10YWJsZS10b3Age1xcbiAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC42NCk7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjEyKTtcXG59XFxuLnEtdGFibGUtZGFyayB0aGVhZCxcXG4ucS10YWJsZS1kYXJrIHRyLFxcbi5xLXRhYmxlLWRhcmsgdGgsXFxuLnEtdGFibGUtZGFyayB0ZCB7XFxuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4xMik7XFxufVxcbi5xLXRhYmxlLWRhcmsgdGgge1xcbiAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC42NCk7XFxufVxcbi5xLXRhYmxlLWRhcmsgdGguc29ydGFibGU6aG92ZXIsXFxuLnEtdGFibGUtZGFyayB0aC5zb3J0ZWQge1xcbiAgY29sb3I6ICNlZWU7XFxufVxcbi5xLXRhYmxlLWRhcmsgdGJvZHkgdHIuc2VsZWN0ZWQge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjIpO1xcbn1cXG4ucS10YWJsZS1kYXJrIHRib2R5IHRyOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4xKTtcXG59XFxuLnEtdGltZWxpbmUge1xcbiAgcGFkZGluZzogMDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgbGlzdC1zdHlsZTogbm9uZTtcXG59XFxuLnEtdGltZWxpbmUgaDYge1xcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxufVxcbi5xLXRpbWVsaW5lLXRpdGxlIHtcXG4gIG1hcmdpbi10b3A6IDA7XFxuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xcbn1cXG4ucS10aW1lbGluZS1zdWJ0aXRsZSB7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBtYXJnaW4tYm90dG9tOiA4cHg7XFxuICBvcGFjaXR5OiAwLjQ7XFxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XFxufVxcbi5xLXRpbWVsaW5lLWRvdCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgd2lkdGg6IDE1cHg7XFxufVxcbi5xLXRpbWVsaW5lLWRvdDpiZWZvcmUsXFxuLnEtdGltZWxpbmUtZG90OmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxufVxcbi5xLXRpbWVsaW5lLWRvdDpiZWZvcmUge1xcbiAgYm9yZGVyOiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItcmFkaXVzOiAxMDAlO1xcbiAgaGVpZ2h0OiAxNXB4O1xcbiAgd2lkdGg6IDE1cHg7XFxuICB0b3A6IDRweDtcXG4gIGxlZnQ6IDA7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcyBlYXNlLWluLW91dCwgYm9yZGVyIDAuM3MgZWFzZS1pbi1vdXQ7XFxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3MgZWFzZS1pbi1vdXQsIGJvcmRlciAwLjNzIGVhc2UtaW4tb3V0O1xcbn1cXG4ucS10aW1lbGluZS1kb3Q6YWZ0ZXIge1xcbiAgd2lkdGg6IDNweDtcXG4gIG9wYWNpdHk6IDAuNDtcXG4gIHRvcDogMjRweDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDZweDtcXG59XFxuLnEtdGltZWxpbmUtZW50cnktd2l0aC1pY29uIC5xLXRpbWVsaW5lLWRvdCB7XFxuICB3aWR0aDogMzFweDtcXG4gIGxlZnQ6IC04cHg7XFxufVxcbi5xLXRpbWVsaW5lLWVudHJ5LXdpdGgtaWNvbiAucS10aW1lbGluZS1kb3Q6YmVmb3JlIHtcXG4gIGhlaWdodDogMzFweDtcXG4gIHdpZHRoOiAzMXB4O1xcbn1cXG4ucS10aW1lbGluZS1lbnRyeS13aXRoLWljb24gLnEtdGltZWxpbmUtZG90OmFmdGVyIHtcXG4gIHRvcDogNDFweDtcXG4gIGxlZnQ6IDE0cHg7XFxufVxcbi5xLXRpbWVsaW5lLWVudHJ5LXdpdGgtaWNvbiAucS10aW1lbGluZS1zdWJ0aXRsZSB7XFxuICBwYWRkaW5nLXRvcDogOHB4O1xcbn1cXG4ucS10aW1lbGluZS1kb3QgLnEtaWNvbiB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XFxuICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG4gIGhlaWdodDogMzhweDtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2UtaW4tb3V0O1xcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlLWluLW91dDtcXG59XFxuLnEtdGltZWxpbmUtZGFyayB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtdGltZWxpbmUtZGFyayAucS10aW1lbGluZS1zdWJ0aXRsZSB7XFxuICBvcGFjaXR5OiAwLjc7XFxufVxcbi5xLXRpbWVsaW5lLWVudHJ5IHtcXG4gIHBhZGRpbmctbGVmdDogNDBweDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xcbn1cXG4ucS10aW1lbGluZS1lbnRyeTpsYXN0LWNoaWxkIHtcXG4gIHBhZGRpbmctYm90dG9tOiAwO1xcbn1cXG4ucS10aW1lbGluZS1lbnRyeTpsYXN0LWNoaWxkIC5xLXRpbWVsaW5lLWRvdDphZnRlciB7XFxuICBjb250ZW50OiBub25lO1xcbn1cXG4ucS10aW1lbGluZS1ob3ZlciAucS10aW1lbGluZS1lbnRyeTpob3ZlciAucS10aW1lbGluZS1kb3Q6YmVmb3JlIHtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyOiAzcHggc29saWQgY3VycmVudENvbG9yO1xcbn1cXG4ucS10aW1lbGluZS1ob3ZlciAucS10aW1lbGluZS1lbnRyeS5xLXRpbWVsaW5lLWVudHJ5LXdpdGgtaWNvbjpob3ZlciAucS10aW1lbGluZS1kb3QgLnEtaWNvbiB7XFxuICBjb2xvcjogY3VycmVudENvbG9yO1xcbn1cXG4ucS10aW1lbGluZS1jb250ZW50IHtcXG4gIHBhZGRpbmctYm90dG9tOiAyNHB4O1xcbn1cXG4ucS10aW1lbGluZS1oZWFkaW5nIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLnEtdGltZWxpbmUtaGVhZGluZzpmaXJzdC1jaGlsZCAucS10aW1lbGluZS1oZWFkaW5nLXRpdGxlIHtcXG4gIHBhZGRpbmctdG9wOiAwO1xcbn1cXG4ucS10aW1lbGluZS1oZWFkaW5nOmxhc3QtY2hpbGQgLnEtdGltZWxpbmUtaGVhZGluZy10aXRsZSB7XFxuICBwYWRkaW5nLWJvdHRvbTogMDtcXG59XFxuLnEtdGltZWxpbmUtaGVhZGluZy10aXRsZSB7XFxuICBwYWRkaW5nOiAzMnB4IDA7XFxuICBtYXJnaW46IDA7XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWhlYWRpbmcge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XFxuICAgIGZvbnQtc2l6ZTogMjAwJTtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtaGVhZGluZyA+IGRpdiB7XFxuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWhlYWRpbmctdGl0bGUge1xcbiAgICBtYXJnaW4tbGVmdDogLTUwcHg7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lIHtcXG4gICAgZGlzcGxheTogdGFibGU7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5IHtcXG4gICAgZGlzcGxheTogdGFibGUtcm93O1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1zdWJ0aXRsZSxcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZG90LFxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1jb250ZW50IHtcXG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtc3VidGl0bGUge1xcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcXG4gICAgd2lkdGg6IDM1JTtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZG90IHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1jb250ZW50IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeS13aXRoLWljb24gLnEtdGltZWxpbmUtY29udGVudCB7XFxuICAgIHBhZGRpbmctdG9wOiA4cHg7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLXN1YnRpdGxlIHtcXG4gICAgcGFkZGluZy1yaWdodDogMzBweDtcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWhlYWRpbmctdGl0bGUge1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgIG1hcmdpbi1sZWZ0OiAwO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeSxcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtc3VidGl0bGUsXFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWRvdCxcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtY29udGVudCB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWRvdCB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgbGVmdDogNTAlO1xcbiAgICBtYXJnaW4tbGVmdDogLTcuMTVweDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnktd2l0aC1pY29uIC5xLXRpbWVsaW5lLWRvdCB7XFxuICAgIGxlZnQ6IDUwJTtcXG4gICAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1zdWJ0aXRsZSxcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtY29udGVudCB7XFxuICAgIHdpZHRoOiA1MCU7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5LWxlZnQgLnEtdGltZWxpbmUtY29udGVudCxcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnktcmlnaHQgLnEtdGltZWxpbmUtc3VidGl0bGUge1xcbiAgICBmbG9hdDogbGVmdDtcXG4gICAgcGFkZGluZy1yaWdodDogMzBweDtcXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5LWxlZnQgLnEtdGltZWxpbmUtc3VidGl0bGUsXFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5LXJpZ2h0IC5xLXRpbWVsaW5lLWNvbnRlbnQge1xcbiAgICBmbG9hdDogcmlnaHQ7XFxuICAgIHRleHQtYWxpZ246IGxlZnQ7XFxuICAgIHBhZGRpbmctbGVmdDogMzBweDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnktd2l0aC1pY29uIC5xLXRpbWVsaW5lLWNvbnRlbnQge1xcbiAgICBwYWRkaW5nLXRvcDogOHB4O1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeSB7XFxuICAgIHBhZGRpbmctYm90dG9tOiAyNHB4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgfVxcbn1cXG4ucS10b2dnbGUtYmFzZSB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEycHg7XFxuICBib3JkZXItcmFkaXVzOiAzMHB4O1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbiAgb3BhY2l0eTogMC41O1xcbn1cXG4ucS10b2dnbGUtaGFuZGxlIHtcXG4gIGJhY2tncm91bmQ6ICNmNWY1ZjU7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCA0NTBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICB0cmFuc2l0aW9uOiBhbGwgNDUwbXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgd2lkdGg6IDIxcHg7XFxuICBoZWlnaHQ6IDIxcHg7XFxuICBsaW5lLWhlaWdodDogMjFweDtcXG59XFxuLnEtdG9nZ2xlIC5xLW9wdGlvbi1pbm5lciB7XFxuICBoZWlnaHQ6IDIxcHg7XFxuICB3aWR0aDogNDBweDtcXG4gIG1pbi13aWR0aDogNDBweDtcXG4gIHBhZGRpbmc6IDVweCAwO1xcbn1cXG4ucS10b2dnbGUgLnEtb3B0aW9uLWlubmVyLmFjdGl2ZSAucS10b2dnbGUtaGFuZGxlIHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG4gIGxlZnQ6IDE5cHg7XFxufVxcbi5xLXRvZ2dsZSAucS1vcHRpb24taW5uZXIuYWN0aXZlIC5xLXRvZ2dsZS1pY29uIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS10b29sYmFyIHtcXG4gIHBhZGRpbmc6IDRweCAxMnB4O1xcbiAgbWluLWhlaWdodDogNTBweDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLnEtdG9vbGJhci1pbnZlcnRlZCB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbn1cXG4ucS10b29sYmFyLXRpdGxlIHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDEgMSAwJTtcXG4gICAgICAgICAgZmxleDogMSAxIDAlO1xcbiAgbWluLXdpZHRoOiAxcHg7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBmb250LXNpemU6IDE4cHg7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgcGFkZGluZzogMCAxMnB4O1xcbn1cXG4ucS10b29sYmFyLXN1YnRpdGxlIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIG9wYWNpdHk6IDAuNztcXG59XFxuLnEtdG9vbGJhci10aXRsZSxcXG4ucS10b29sYmFyLXN1YnRpdGxlIHtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5xLXRvb2x0aXAge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgY29sb3I6ICNmYWZhZmE7XFxuICBiYWNrZ3JvdW5kOiAjNzQ3NDc0O1xcbiAgei1pbmRleDogOTAwMDtcXG4gIHBhZGRpbmc6IDEwcHg7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcbi5xLXRyZWUtbm9kZSB7XFxuICBtYXJnaW46IDA7XFxuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBwYWRkaW5nOiAwIDAgM3B4IDIycHg7XFxufVxcbi5xLXRyZWUtbm9kZTphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogLTNweDtcXG4gIGJvdHRvbTogMDtcXG4gIHdpZHRoOiAxcHg7XFxuICByaWdodDogYXV0bztcXG4gIGxlZnQ6IC0xM3B4O1xcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXRyZWUtbm9kZTpsYXN0LWNoaWxkOmFmdGVyIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXRyZWUtbm9kZS1oZWFkZXI6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAtM3B4O1xcbiAgYm90dG9tOiA1MCU7XFxuICB3aWR0aDogMzVweDtcXG4gIGxlZnQ6IC0zNXB4O1xcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgY3VycmVudENvbG9yO1xcbn1cXG4ucS10cmVlLWNoaWxkcmVuIHtcXG4gIHBhZGRpbmctbGVmdDogMjVweDtcXG59XFxuLnEtdHJlZS1jaGlsZHJlbi5kaXNhYmxlZCB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLnEtdHJlZS1ub2RlLWJvZHkge1xcbiAgcGFkZGluZzogNXB4IDAgOHB4IDVweDtcXG59XFxuLnEtdHJlZS1ub2RlLXBhcmVudCB7XFxuICBwYWRkaW5nLWxlZnQ6IDJweDtcXG59XFxuLnEtdHJlZS1ub2RlLXBhcmVudCA+IC5xLXRyZWUtbm9kZS1oZWFkZXI6YmVmb3JlIHtcXG4gIHdpZHRoOiAxNXB4O1xcbiAgbGVmdDogLTE1cHg7XFxufVxcbi5xLXRyZWUtbm9kZS1wYXJlbnQgPiAucS10cmVlLW5vZGUtY29sbGFwc2libGUgPiAucS10cmVlLW5vZGUtYm9keSB7XFxuICBwYWRkaW5nOiA1cHggMCA4cHggMjdweDtcXG59XFxuLnEtdHJlZS1ub2RlLXBhcmVudCA+IC5xLXRyZWUtbm9kZS1jb2xsYXBzaWJsZSA+IC5xLXRyZWUtbm9kZS1ib2R5OmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgd2lkdGg6IDFweDtcXG4gIGhlaWdodDogMTAwJTtcXG4gIHJpZ2h0OiBhdXRvO1xcbiAgbGVmdDogMTJweDtcXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgY3VycmVudENvbG9yO1xcbiAgYm90dG9tOiA1MHB4O1xcbn1cXG4ucS10cmVlLW5vZGUtbGluayB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLXRyZWUtbm9kZS1zZWxlY3RlZCB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMTUpO1xcbn1cXG4ucS10cmVlLWRhcmsgLnEtdHJlZS1ub2RlLXNlbGVjdGVkIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC40KTtcXG59XFxuYm9keS5kZXNrdG9wIC5xLXRyZWUtbm9kZS1saW5rOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xKTtcXG59XFxuYm9keS5kZXNrdG9wIC5xLXRyZWUtZGFyayAucS10cmVlLW5vZGUtbGluazpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMyk7XFxufVxcbi5xLXRyZWUtbm9kZS1oZWFkZXIge1xcbiAgcGFkZGluZzogNHB4O1xcbiAgbWFyZ2luLXRvcDogM3B4O1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbn1cXG4ucS10cmVlLW5vZGUtaGVhZGVyLmRpc2FibGVkIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4ucS10cmVlLWljb24ge1xcbiAgZm9udC1zaXplOiAxLjVlbTtcXG59XFxuLnEtdHJlZS1pbWcge1xcbiAgaGVpZ2h0OiAzZW07XFxufVxcbi5xLXRyZWUtaW1nLmF2YXRhciB7XFxuICB3aWR0aDogMmVtO1xcbiAgaGVpZ2h0OiAyZW07XFxufVxcbi5xLXRyZWUtYXJyb3cge1xcbiAgZm9udC1zaXplOiAxcmVtO1xcbiAgd2lkdGg6IDFyZW07XFxuICBoZWlnaHQ6IDFyZW07XFxufVxcbi5xLXRyZWUtYXJyb3ctcm90YXRlIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XFxufVxcbltkaXI9cnRsXSAucS10cmVlLWFycm93IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbltkaXI9cnRsXSAucS10cmVlLWFycm93LXJvdGF0ZSB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtdHJlZSA+IC5xLXRyZWUtbm9kZSB7XFxuICBwYWRkaW5nOiAwO1xcbn1cXG4ucS10cmVlID4gLnEtdHJlZS1ub2RlOmFmdGVyLFxcbi5xLXRyZWUgPiAucS10cmVlLW5vZGUgPiAucS10cmVlLW5vZGUtaGVhZGVyOmJlZm9yZSB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS10cmVlID4gLnEtdHJlZS1ub2RlLWNoaWxkID4gLnEtdHJlZS1ub2RlLWhlYWRlciB7XFxuICBwYWRkaW5nLWxlZnQ6IDI0cHg7XFxufVxcbi5xLXVwbG9hZGVyLWV4cGFuZGVkIC5xLWlmIHtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcXG59XFxuLnEtdXBsb2FkZXItaW5wdXQge1xcbiAgb3BhY2l0eTogMDtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgZm9udC1zaXplOiAwO1xcbn1cXG4ucS11cGxvYWRlci1waWNrLWJ1dHRvbltkaXNhYmxlZF0gLnEtdXBsb2FkZXItaW5wdXQge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtdXBsb2FkZXItZmlsZXMge1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIG1heC1oZWlnaHQ6IDUwMHB4O1xcbn1cXG4ucS11cGxvYWRlci1maWxlcy1uby1ib3JkZXIgLnEtdXBsb2FkZXItZmlsZXMge1xcbiAgYm9yZGVyLXRvcDogMCAhaW1wb3J0YW50O1xcbn1cXG4ucS11cGxvYWRlci1maWxlOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMGUwZTA7XFxufVxcbi5xLXVwbG9hZGVyLXByb2dyZXNzLWJnLFxcbi5xLXVwbG9hZGVyLXByb2dyZXNzLXRleHQge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcbi5xLXVwbG9hZGVyLXByb2dyZXNzLWJnIHtcXG4gIGhlaWdodDogMTAwJTtcXG4gIG9wYWNpdHk6IDAuMjtcXG59XFxuLnEtdXBsb2FkZXItcHJvZ3Jlc3MtdGV4dCB7XFxuICBmb250LXNpemU6IDQwcHg7XFxuICBvcGFjaXR5OiAwLjE7XFxuICByaWdodDogNDRweDtcXG4gIGJvdHRvbTogMDtcXG59XFxuLnEtdXBsb2FkZXItZG5kIHtcXG4gIG91dGxpbmU6IDJweCBkYXNoZWQgY3VycmVudENvbG9yO1xcbiAgb3V0bGluZS1vZmZzZXQ6IC02cHg7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuNik7XFxufVxcbi5xLXVwbG9hZGVyLWRuZC5pbnZlcnRlZCB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMyk7XFxufVxcbi5xLXVwbG9hZGVyLWRhcmsgLnEtdXBsb2FkZXItZmlsZXMge1xcbiAgY29sb3I6ICNmZmY7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjYTdhN2E3O1xcbn1cXG4ucS11cGxvYWRlci1kYXJrIC5xLXVwbG9hZGVyLWJnIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS11cGxvYWRlci1kYXJrIC5xLXVwbG9hZGVyLXByb2dyZXNzLXRleHQge1xcbiAgb3BhY2l0eTogMC4yO1xcbn1cXG4ucS11cGxvYWRlci1kYXJrIC5xLXVwbG9hZGVyLWZpbGU6bm90KDpsYXN0LWNoaWxkKSB7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzQyNDI0MjtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1xLWNvbG9yLWRhcmspO1xcbn1cXG5pbWcucmVzcG9uc2l2ZSB7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IGF1dG87XFxufVxcbmltZy5hdmF0YXIge1xcbiAgd2lkdGg6IDUwcHg7XFxuICBoZWlnaHQ6IDUwcHg7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcbi5xLXZpZGVvIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbn1cXG4ucS12aWRlbyBpZnJhbWUsXFxuLnEtdmlkZW8gb2JqZWN0LFxcbi5xLXZpZGVvIGVtYmVkIHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG46cm9vdCB7XFxuICAtLXEtY29sb3ItcHJpbWFyeTogIzAyN2JlMztcXG4gIC0tcS1jb2xvci1zZWNvbmRhcnk6ICMyNmE2OWE7XFxuICAtLXEtY29sb3ItdGVydGlhcnk6ICM1NTU7XFxuICAtLXEtY29sb3ItcG9zaXRpdmU6ICMyMWJhNDU7XFxuICAtLXEtY29sb3ItbmVnYXRpdmU6ICNkYjI4Mjg7XFxuICAtLXEtY29sb3ItbmVnYXRpdmUtbDogI2VjOGI4YjtcXG4gIC0tcS1jb2xvci1pbmZvOiAjMzFjY2VjO1xcbiAgLS1xLWNvbG9yLXdhcm5pbmc6ICNmMmMwMzc7XFxuICAtLXEtY29sb3Itd2FybmluZy1sOiAjZjhkZDkzO1xcbiAgLS1xLWNvbG9yLWxpZ2h0OiAjYmRiZGJkO1xcbiAgLS1xLWNvbG9yLWxpZ2h0LWQ6ICNhYWE7XFxuICAtLXEtY29sb3ItZmFkZWQ6ICM3Nzc7XFxuICAtLXEtY29sb3ItZGFyazogIzQyNDI0MjtcXG59XFxuLnRleHQtcHJpbWFyeSB7XFxuICBjb2xvcjogIzAyN2JlMyAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItcHJpbWFyeSkgIWltcG9ydGFudDtcXG59XFxuLmJnLXByaW1hcnkge1xcbiAgYmFja2dyb3VuZDogIzAyN2JlMyAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci1wcmltYXJ5KSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1zZWNvbmRhcnkge1xcbiAgY29sb3I6ICMyNmE2OWEgIWltcG9ydGFudDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXNlY29uZGFyeSkgIWltcG9ydGFudDtcXG59XFxuLmJnLXNlY29uZGFyeSB7XFxuICBiYWNrZ3JvdW5kOiAjMjZhNjlhICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLXNlY29uZGFyeSkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVydGlhcnkge1xcbiAgY29sb3I6ICM1NTUgIWltcG9ydGFudDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXRlcnRpYXJ5KSAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVydGlhcnkge1xcbiAgYmFja2dyb3VuZDogIzU1NSAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci10ZXJ0aWFyeSkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZmFkZWQge1xcbiAgY29sb3I6ICM3NzcgIWltcG9ydGFudDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWZhZGVkKSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZmFkZWQge1xcbiAgYmFja2dyb3VuZDogIzc3NyAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci1mYWRlZCkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcG9zaXRpdmUge1xcbiAgY29sb3I6ICMyMWJhNDUgIWltcG9ydGFudDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXBvc2l0aXZlKSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcG9zaXRpdmUge1xcbiAgYmFja2dyb3VuZDogIzIxYmE0NSAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci1wb3NpdGl2ZSkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbmVnYXRpdmUge1xcbiAgY29sb3I6ICNkYjI4MjggIWltcG9ydGFudDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLW5lZ2F0aXZlKSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbmVnYXRpdmUge1xcbiAgYmFja2dyb3VuZDogI2RiMjgyOCAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci1uZWdhdGl2ZSkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5mbyB7XFxuICBjb2xvcjogIzMxY2NlYyAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItaW5mbykgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZm8ge1xcbiAgYmFja2dyb3VuZDogIzMxY2NlYyAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci1pbmZvKSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC13YXJuaW5nIHtcXG4gIGNvbG9yOiAjZjJjMDM3ICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci13YXJuaW5nKSAhaW1wb3J0YW50O1xcbn1cXG4uYmctd2FybmluZyB7XFxuICBiYWNrZ3JvdW5kOiAjZjJjMDM3ICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLXdhcm5pbmcpICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXdoaXRlIHtcXG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy13aGl0ZSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsYWNrIHtcXG4gIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibGFjayB7XFxuICBiYWNrZ3JvdW5kOiAjMDAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0IHtcXG4gIGNvbG9yOiAjYmRiZGJkICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1saWdodCkgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0IHtcXG4gIGJhY2tncm91bmQ6ICNiZGJkYmQgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItbGlnaHQpICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRhcmsge1xcbiAgY29sb3I6ICM0MjQyNDIgIWltcG9ydGFudDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWRhcmspICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kYXJrIHtcXG4gIGJhY2tncm91bmQ6ICM0MjQyNDIgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItZGFyaykgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdHJhbnNwYXJlbnQge1xcbiAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10cmFuc3BhcmVudCB7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQge1xcbiAgY29sb3I6ICNmNDQzMzYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTEge1xcbiAgY29sb3I6ICNmZmViZWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTIge1xcbiAgY29sb3I6ICNmZmNkZDIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTMge1xcbiAgY29sb3I6ICNlZjlhOWEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTQge1xcbiAgY29sb3I6ICNlNTczNzMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTUge1xcbiAgY29sb3I6ICNlZjUzNTAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTYge1xcbiAgY29sb3I6ICNmNDQzMzYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTcge1xcbiAgY29sb3I6ICNlNTM5MzUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTgge1xcbiAgY29sb3I6ICNkMzJmMmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTkge1xcbiAgY29sb3I6ICNjNjI4MjggIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTEwIHtcXG4gIGNvbG9yOiAjYjcxYzFjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC0xMSB7XFxuICBjb2xvcjogI2ZmOGE4MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtMTIge1xcbiAgY29sb3I6ICNmZjUyNTIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTEzIHtcXG4gIGNvbG9yOiAjZmYxNzQ0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC0xNCB7XFxuICBjb2xvcjogI2Q1MDAwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rIHtcXG4gIGNvbG9yOiAjZTkxZTYzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstMSB7XFxuICBjb2xvcjogI2ZjZTRlYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTIge1xcbiAgY29sb3I6ICNmOGJiZDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay0zIHtcXG4gIGNvbG9yOiAjZjQ4ZmIxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstNCB7XFxuICBjb2xvcjogI2YwNjI5MiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTUge1xcbiAgY29sb3I6ICNlYzQwN2EgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay02IHtcXG4gIGNvbG9yOiAjZTkxZTYzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstNyB7XFxuICBjb2xvcjogI2Q4MWI2MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTgge1xcbiAgY29sb3I6ICNjMjE4NWIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay05IHtcXG4gIGNvbG9yOiAjYWQxNDU3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstMTAge1xcbiAgY29sb3I6ICM4ODBlNGYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay0xMSB7XFxuICBjb2xvcjogI2ZmODBhYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTEyIHtcXG4gIGNvbG9yOiAjZmY0MDgxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstMTMge1xcbiAgY29sb3I6ICNmNTAwNTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay0xNCB7XFxuICBjb2xvcjogI2M1MTE2MiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUge1xcbiAgY29sb3I6ICM5YzI3YjAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTEge1xcbiAgY29sb3I6ICNmM2U1ZjUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTIge1xcbiAgY29sb3I6ICNlMWJlZTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTMge1xcbiAgY29sb3I6ICNjZTkzZDggIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTQge1xcbiAgY29sb3I6ICNiYTY4YzggIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTUge1xcbiAgY29sb3I6ICNhYjQ3YmMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTYge1xcbiAgY29sb3I6ICM5YzI3YjAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTcge1xcbiAgY29sb3I6ICM4ZTI0YWEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTgge1xcbiAgY29sb3I6ICM3YjFmYTIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTkge1xcbiAgY29sb3I6ICM2YTFiOWEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTEwIHtcXG4gIGNvbG9yOiAjNGExNDhjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS0xMSB7XFxuICBjb2xvcjogI2VhODBmYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtMTIge1xcbiAgY29sb3I6ICNlMDQwZmIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTEzIHtcXG4gIGNvbG9yOiAjZDUwMGY5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS0xNCB7XFxuICBjb2xvcjogI2EwZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZSB7XFxuICBjb2xvcjogIzY3M2FiNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS0xIHtcXG4gIGNvbG9yOiAjZWRlN2Y2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTIge1xcbiAgY29sb3I6ICNkMWM0ZTkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtMyB7XFxuICBjb2xvcjogI2IzOWRkYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS00IHtcXG4gIGNvbG9yOiAjOTU3NWNkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTUge1xcbiAgY29sb3I6ICM3ZTU3YzIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtNiB7XFxuICBjb2xvcjogIzY3M2FiNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS03IHtcXG4gIGNvbG9yOiAjNWUzNWIxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTgge1xcbiAgY29sb3I6ICM1MTJkYTggIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtOSB7XFxuICBjb2xvcjogIzQ1MjdhMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS0xMCB7XFxuICBjb2xvcjogIzMxMWI5MiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS0xMSB7XFxuICBjb2xvcjogI2IzODhmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS0xMiB7XFxuICBjb2xvcjogIzdjNGRmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS0xMyB7XFxuICBjb2xvcjogIzY1MWZmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS0xNCB7XFxuICBjb2xvcjogIzYyMDBlYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28ge1xcbiAgY29sb3I6ICMzZjUxYjUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTEge1xcbiAgY29sb3I6ICNlOGVhZjYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTIge1xcbiAgY29sb3I6ICNjNWNhZTkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTMge1xcbiAgY29sb3I6ICM5ZmE4ZGEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTQge1xcbiAgY29sb3I6ICM3OTg2Y2IgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTUge1xcbiAgY29sb3I6ICM1YzZiYzAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTYge1xcbiAgY29sb3I6ICMzZjUxYjUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTcge1xcbiAgY29sb3I6ICMzOTQ5YWIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTgge1xcbiAgY29sb3I6ICMzMDNmOWYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTkge1xcbiAgY29sb3I6ICMyODM1OTMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTEwIHtcXG4gIGNvbG9yOiAjMWEyMzdlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby0xMSB7XFxuICBjb2xvcjogIzhjOWVmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tMTIge1xcbiAgY29sb3I6ICM1MzZkZmUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTEzIHtcXG4gIGNvbG9yOiAjM2Q1YWZlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby0xNCB7XFxuICBjb2xvcjogIzMwNGZmZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlIHtcXG4gIGNvbG9yOiAjMjE5NmYzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtMSB7XFxuICBjb2xvcjogI2UzZjJmZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTIge1xcbiAgY29sb3I6ICNiYmRlZmIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS0zIHtcXG4gIGNvbG9yOiAjOTBjYWY5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtNCB7XFxuICBjb2xvcjogIzY0YjVmNiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTUge1xcbiAgY29sb3I6ICM0MmE1ZjUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS02IHtcXG4gIGNvbG9yOiAjMjE5NmYzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtNyB7XFxuICBjb2xvcjogIzFlODhlNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTgge1xcbiAgY29sb3I6ICMxOTc2ZDIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS05IHtcXG4gIGNvbG9yOiAjMTU2NWMwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtMTAge1xcbiAgY29sb3I6ICMwZDQ3YTEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS0xMSB7XFxuICBjb2xvcjogIzgyYjFmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTEyIHtcXG4gIGNvbG9yOiAjNDQ4YWZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtMTMge1xcbiAgY29sb3I6ICMyOTc5ZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS0xNCB7XFxuICBjb2xvcjogIzI5NjJmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlIHtcXG4gIGNvbG9yOiAjMDNhOWY0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtMSB7XFxuICBjb2xvcjogI2UxZjVmZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTIge1xcbiAgY29sb3I6ICNiM2U1ZmMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS0zIHtcXG4gIGNvbG9yOiAjODFkNGZhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtNCB7XFxuICBjb2xvcjogIzRmYzNmNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTUge1xcbiAgY29sb3I6ICMyOWI2ZjYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS02IHtcXG4gIGNvbG9yOiAjMDNhOWY0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtNyB7XFxuICBjb2xvcjogIzAzOWJlNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTgge1xcbiAgY29sb3I6ICMwMjg4ZDEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS05IHtcXG4gIGNvbG9yOiAjMDI3N2JkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtMTAge1xcbiAgY29sb3I6ICMwMTU3OWIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS0xMSB7XFxuICBjb2xvcjogIzgwZDhmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTEyIHtcXG4gIGNvbG9yOiAjNDBjNGZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtMTMge1xcbiAgY29sb3I6ICMwMGIwZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS0xNCB7XFxuICBjb2xvcjogIzAwOTFlYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuIHtcXG4gIGNvbG9yOiAjMDBiY2Q0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tMSB7XFxuICBjb2xvcjogI2UwZjdmYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTIge1xcbiAgY29sb3I6ICNiMmViZjIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi0zIHtcXG4gIGNvbG9yOiAjODBkZWVhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tNCB7XFxuICBjb2xvcjogIzRkZDBlMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTUge1xcbiAgY29sb3I6ICMyNmM2ZGEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi02IHtcXG4gIGNvbG9yOiAjMDBiY2Q0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tNyB7XFxuICBjb2xvcjogIzAwYWNjMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTgge1xcbiAgY29sb3I6ICMwMDk3YTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi05IHtcXG4gIGNvbG9yOiAjMDA4MzhmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tMTAge1xcbiAgY29sb3I6ICMwMDYwNjQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi0xMSB7XFxuICBjb2xvcjogIzg0ZmZmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTEyIHtcXG4gIGNvbG9yOiAjMThmZmZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tMTMge1xcbiAgY29sb3I6ICMwMGU1ZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi0xNCB7XFxuICBjb2xvcjogIzAwYjhkNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsIHtcXG4gIGNvbG9yOiAjMDA5Njg4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtMSB7XFxuICBjb2xvcjogI2UwZjJmMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTIge1xcbiAgY29sb3I6ICNiMmRmZGIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC0zIHtcXG4gIGNvbG9yOiAjODBjYmM0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtNCB7XFxuICBjb2xvcjogIzRkYjZhYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTUge1xcbiAgY29sb3I6ICMyNmE2OWEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC02IHtcXG4gIGNvbG9yOiAjMDA5Njg4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtNyB7XFxuICBjb2xvcjogIzAwODk3YiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTgge1xcbiAgY29sb3I6ICMwMDc5NmIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC05IHtcXG4gIGNvbG9yOiAjMDA2OTVjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtMTAge1xcbiAgY29sb3I6ICMwMDRkNDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC0xMSB7XFxuICBjb2xvcjogI2E3ZmZlYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTEyIHtcXG4gIGNvbG9yOiAjNjRmZmRhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtMTMge1xcbiAgY29sb3I6ICMxZGU5YjYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC0xNCB7XFxuICBjb2xvcjogIzAwYmZhNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbiB7XFxuICBjb2xvcjogIzRjYWY1MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi0xIHtcXG4gIGNvbG9yOiAjZThmNWU5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTIge1xcbiAgY29sb3I6ICNjOGU2YzkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tMyB7XFxuICBjb2xvcjogI2E1ZDZhNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi00IHtcXG4gIGNvbG9yOiAjODFjNzg0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTUge1xcbiAgY29sb3I6ICM2NmJiNmEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tNiB7XFxuICBjb2xvcjogIzRjYWY1MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi03IHtcXG4gIGNvbG9yOiAjNDNhMDQ3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTgge1xcbiAgY29sb3I6ICMzODhlM2MgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tOSB7XFxuICBjb2xvcjogIzJlN2QzMiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi0xMCB7XFxuICBjb2xvcjogIzFiNWUyMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi0xMSB7XFxuICBjb2xvcjogI2I5ZjZjYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi0xMiB7XFxuICBjb2xvcjogIzY5ZjBhZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi0xMyB7XFxuICBjb2xvcjogIzAwZTY3NiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi0xNCB7XFxuICBjb2xvcjogIzAwYzg1MyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbiB7XFxuICBjb2xvcjogIzhiYzM0YSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi0xIHtcXG4gIGNvbG9yOiAjZjFmOGU5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTIge1xcbiAgY29sb3I6ICNkY2VkYzggIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tMyB7XFxuICBjb2xvcjogI2M1ZTFhNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi00IHtcXG4gIGNvbG9yOiAjYWVkNTgxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTUge1xcbiAgY29sb3I6ICM5Y2NjNjUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tNiB7XFxuICBjb2xvcjogIzhiYzM0YSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi03IHtcXG4gIGNvbG9yOiAjN2NiMzQyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTgge1xcbiAgY29sb3I6ICM2ODlmMzggIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tOSB7XFxuICBjb2xvcjogIzU1OGIyZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi0xMCB7XFxuICBjb2xvcjogIzMzNjkxZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi0xMSB7XFxuICBjb2xvcjogI2NjZmY5MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi0xMiB7XFxuICBjb2xvcjogI2IyZmY1OSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi0xMyB7XFxuICBjb2xvcjogIzc2ZmYwMyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi0xNCB7XFxuICBjb2xvcjogIzY0ZGQxNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lIHtcXG4gIGNvbG9yOiAjY2RkYzM5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtMSB7XFxuICBjb2xvcjogI2Y5ZmJlNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTIge1xcbiAgY29sb3I6ICNmMGY0YzMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS0zIHtcXG4gIGNvbG9yOiAjZTZlZTljICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtNCB7XFxuICBjb2xvcjogI2RjZTc3NSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTUge1xcbiAgY29sb3I6ICNkNGUxNTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS02IHtcXG4gIGNvbG9yOiAjY2RkYzM5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtNyB7XFxuICBjb2xvcjogI2MwY2EzMyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTgge1xcbiAgY29sb3I6ICNhZmI0MmIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS05IHtcXG4gIGNvbG9yOiAjOWU5ZDI0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtMTAge1xcbiAgY29sb3I6ICM4Mjc3MTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS0xMSB7XFxuICBjb2xvcjogI2Y0ZmY4MSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTEyIHtcXG4gIGNvbG9yOiAjZWVmZjQxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtMTMge1xcbiAgY29sb3I6ICNjNmZmMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS0xNCB7XFxuICBjb2xvcjogI2FlZWEwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3cge1xcbiAgY29sb3I6ICNmZmViM2IgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTEge1xcbiAgY29sb3I6ICNmZmZkZTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTIge1xcbiAgY29sb3I6ICNmZmY5YzQgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTMge1xcbiAgY29sb3I6ICNmZmY1OWQgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTQge1xcbiAgY29sb3I6ICNmZmYxNzYgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTUge1xcbiAgY29sb3I6ICNmZmVlNTggIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTYge1xcbiAgY29sb3I6ICNmZmViM2IgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTcge1xcbiAgY29sb3I6ICNmZGQ4MzUgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTgge1xcbiAgY29sb3I6ICNmYmMwMmQgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTkge1xcbiAgY29sb3I6ICNmOWE4MjUgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTEwIHtcXG4gIGNvbG9yOiAjZjU3ZjE3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy0xMSB7XFxuICBjb2xvcjogI2ZmZmY4ZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctMTIge1xcbiAgY29sb3I6ICNmZjAgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTEzIHtcXG4gIGNvbG9yOiAjZmZlYTAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy0xNCB7XFxuICBjb2xvcjogI2ZmZDYwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlciB7XFxuICBjb2xvcjogI2ZmYzEwNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci0xIHtcXG4gIGNvbG9yOiAjZmZmOGUxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTIge1xcbiAgY29sb3I6ICNmZmVjYjMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItMyB7XFxuICBjb2xvcjogI2ZmZTA4MiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci00IHtcXG4gIGNvbG9yOiAjZmZkNTRmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTUge1xcbiAgY29sb3I6ICNmZmNhMjggIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItNiB7XFxuICBjb2xvcjogI2ZmYzEwNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci03IHtcXG4gIGNvbG9yOiAjZmZiMzAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTgge1xcbiAgY29sb3I6ICNmZmEwMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItOSB7XFxuICBjb2xvcjogI2ZmOGYwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci0xMCB7XFxuICBjb2xvcjogI2ZmNmYwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci0xMSB7XFxuICBjb2xvcjogI2ZmZTU3ZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci0xMiB7XFxuICBjb2xvcjogI2ZmZDc0MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci0xMyB7XFxuICBjb2xvcjogI2ZmYzQwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci0xNCB7XFxuICBjb2xvcjogI2ZmYWIwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2Uge1xcbiAgY29sb3I6ICNmZjk4MDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTEge1xcbiAgY29sb3I6ICNmZmYzZTAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTIge1xcbiAgY29sb3I6ICNmZmUwYjIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTMge1xcbiAgY29sb3I6ICNmZmNjODAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTQge1xcbiAgY29sb3I6ICNmZmI3NGQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTUge1xcbiAgY29sb3I6ICNmZmE3MjYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTYge1xcbiAgY29sb3I6ICNmZjk4MDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTcge1xcbiAgY29sb3I6ICNmYjhjMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTgge1xcbiAgY29sb3I6ICNmNTdjMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTkge1xcbiAgY29sb3I6ICNlZjZjMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTEwIHtcXG4gIGNvbG9yOiAjZTY1MTAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS0xMSB7XFxuICBjb2xvcjogI2ZmZDE4MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtMTIge1xcbiAgY29sb3I6ICNmZmFiNDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTEzIHtcXG4gIGNvbG9yOiAjZmY5MTAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS0xNCB7XFxuICBjb2xvcjogI2ZmNmQwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZSB7XFxuICBjb2xvcjogI2ZmNTcyMiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS0xIHtcXG4gIGNvbG9yOiAjZmJlOWU3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTIge1xcbiAgY29sb3I6ICNmZmNjYmMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtMyB7XFxuICBjb2xvcjogI2ZmYWI5MSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS00IHtcXG4gIGNvbG9yOiAjZmY4YTY1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTUge1xcbiAgY29sb3I6ICNmZjcwNDMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtNiB7XFxuICBjb2xvcjogI2ZmNTcyMiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS03IHtcXG4gIGNvbG9yOiAjZjQ1MTFlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTgge1xcbiAgY29sb3I6ICNlNjRhMTkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtOSB7XFxuICBjb2xvcjogI2Q4NDMxNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS0xMCB7XFxuICBjb2xvcjogI2JmMzYwYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS0xMSB7XFxuICBjb2xvcjogI2ZmOWU4MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS0xMiB7XFxuICBjb2xvcjogI2ZmNmU0MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS0xMyB7XFxuICBjb2xvcjogI2ZmM2QwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS0xNCB7XFxuICBjb2xvcjogI2RkMmMwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93biB7XFxuICBjb2xvcjogIzc5NTU0OCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi0xIHtcXG4gIGNvbG9yOiAjZWZlYmU5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTIge1xcbiAgY29sb3I6ICNkN2NjYzggIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tMyB7XFxuICBjb2xvcjogI2JjYWFhNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi00IHtcXG4gIGNvbG9yOiAjYTE4ODdmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTUge1xcbiAgY29sb3I6ICM4ZDZlNjMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tNiB7XFxuICBjb2xvcjogIzc5NTU0OCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi03IHtcXG4gIGNvbG9yOiAjNmQ0YzQxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTgge1xcbiAgY29sb3I6ICM1ZDQwMzcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tOSB7XFxuICBjb2xvcjogIzRlMzQyZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi0xMCB7XFxuICBjb2xvcjogIzNlMjcyMyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi0xMSB7XFxuICBjb2xvcjogI2Q3Y2NjOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi0xMiB7XFxuICBjb2xvcjogI2JjYWFhNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi0xMyB7XFxuICBjb2xvcjogIzhkNmU2MyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi0xNCB7XFxuICBjb2xvcjogIzVkNDAzNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5IHtcXG4gIGNvbG9yOiAjOWU5ZTllICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktMSB7XFxuICBjb2xvcjogI2ZhZmFmYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTIge1xcbiAgY29sb3I6ICNmNWY1ZjUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS0zIHtcXG4gIGNvbG9yOiAjZWVlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktNCB7XFxuICBjb2xvcjogI2UwZTBlMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTUge1xcbiAgY29sb3I6ICNiZGJkYmQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS02IHtcXG4gIGNvbG9yOiAjOWU5ZTllICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktNyB7XFxuICBjb2xvcjogIzc1NzU3NSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTgge1xcbiAgY29sb3I6ICM2MTYxNjEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS05IHtcXG4gIGNvbG9yOiAjNDI0MjQyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktMTAge1xcbiAgY29sb3I6ICMyMTIxMjEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS0xMSB7XFxuICBjb2xvcjogI2Y1ZjVmNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTEyIHtcXG4gIGNvbG9yOiAjZWVlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktMTMge1xcbiAgY29sb3I6ICNiZGJkYmQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS0xNCB7XFxuICBjb2xvcjogIzYxNjE2MSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXkge1xcbiAgY29sb3I6ICM2MDdkOGIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTEge1xcbiAgY29sb3I6ICNlY2VmZjEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTIge1xcbiAgY29sb3I6ICNjZmQ4ZGMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTMge1xcbiAgY29sb3I6ICNiMGJlYzUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTQge1xcbiAgY29sb3I6ICM5MGE0YWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTUge1xcbiAgY29sb3I6ICM3ODkwOWMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTYge1xcbiAgY29sb3I6ICM2MDdkOGIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTcge1xcbiAgY29sb3I6ICM1NDZlN2EgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTgge1xcbiAgY29sb3I6ICM0NTVhNjQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTkge1xcbiAgY29sb3I6ICMzNzQ3NGYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTEwIHtcXG4gIGNvbG9yOiAjMjYzMjM4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS0xMSB7XFxuICBjb2xvcjogI2NmZDhkYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktMTIge1xcbiAgY29sb3I6ICNiMGJlYzUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTEzIHtcXG4gIGNvbG9yOiAjNzg5MDljICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS0xNCB7XFxuICBjb2xvcjogIzQ1NWE2NCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkIHtcXG4gIGJhY2tncm91bmQ6ICNmNDQzMzYgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC0xIHtcXG4gIGJhY2tncm91bmQ6ICNmZmViZWUgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC0yIHtcXG4gIGJhY2tncm91bmQ6ICNmZmNkZDIgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC0zIHtcXG4gIGJhY2tncm91bmQ6ICNlZjlhOWEgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC00IHtcXG4gIGJhY2tncm91bmQ6ICNlNTczNzMgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC01IHtcXG4gIGJhY2tncm91bmQ6ICNlZjUzNTAgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC02IHtcXG4gIGJhY2tncm91bmQ6ICNmNDQzMzYgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC03IHtcXG4gIGJhY2tncm91bmQ6ICNlNTM5MzUgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC04IHtcXG4gIGJhY2tncm91bmQ6ICNkMzJmMmYgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC05IHtcXG4gIGJhY2tncm91bmQ6ICNjNjI4MjggIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjYjcxYzFjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtMTEge1xcbiAgYmFja2dyb3VuZDogI2ZmOGE4MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTEyIHtcXG4gIGJhY2tncm91bmQ6ICNmZjUyNTIgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjZmYxNzQ0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtMTQge1xcbiAgYmFja2dyb3VuZDogI2Q1MDAwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluayB7XFxuICBiYWNrZ3JvdW5kOiAjZTkxZTYzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTEge1xcbiAgYmFja2dyb3VuZDogI2ZjZTRlYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay0yIHtcXG4gIGJhY2tncm91bmQ6ICNmOGJiZDAgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstMyB7XFxuICBiYWNrZ3JvdW5kOiAjZjQ4ZmIxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTQge1xcbiAgYmFja2dyb3VuZDogI2YwNjI5MiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay01IHtcXG4gIGJhY2tncm91bmQ6ICNlYzQwN2EgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstNiB7XFxuICBiYWNrZ3JvdW5kOiAjZTkxZTYzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTcge1xcbiAgYmFja2dyb3VuZDogI2Q4MWI2MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay04IHtcXG4gIGJhY2tncm91bmQ6ICNjMjE4NWIgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstOSB7XFxuICBiYWNrZ3JvdW5kOiAjYWQxNDU3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTEwIHtcXG4gIGJhY2tncm91bmQ6ICM4ODBlNGYgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstMTEge1xcbiAgYmFja2dyb3VuZDogI2ZmODBhYiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmY0MDgxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTEzIHtcXG4gIGJhY2tncm91bmQ6ICNmNTAwNTcgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstMTQge1xcbiAgYmFja2dyb3VuZDogI2M1MTE2MiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlIHtcXG4gIGJhY2tncm91bmQ6ICM5YzI3YjAgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS0xIHtcXG4gIGJhY2tncm91bmQ6ICNmM2U1ZjUgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS0yIHtcXG4gIGJhY2tncm91bmQ6ICNlMWJlZTcgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS0zIHtcXG4gIGJhY2tncm91bmQ6ICNjZTkzZDggIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS00IHtcXG4gIGJhY2tncm91bmQ6ICNiYTY4YzggIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS01IHtcXG4gIGJhY2tncm91bmQ6ICNhYjQ3YmMgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS02IHtcXG4gIGJhY2tncm91bmQ6ICM5YzI3YjAgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS03IHtcXG4gIGJhY2tncm91bmQ6ICM4ZTI0YWEgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS04IHtcXG4gIGJhY2tncm91bmQ6ICM3YjFmYTIgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS05IHtcXG4gIGJhY2tncm91bmQ6ICM2YTFiOWEgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjNGExNDhjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtMTEge1xcbiAgYmFja2dyb3VuZDogI2VhODBmYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTEyIHtcXG4gIGJhY2tncm91bmQ6ICNlMDQwZmIgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjZDUwMGY5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtMTQge1xcbiAgYmFja2dyb3VuZDogI2EwZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUge1xcbiAgYmFja2dyb3VuZDogIzY3M2FiNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZWRlN2Y2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS0yIHtcXG4gIGJhY2tncm91bmQ6ICNkMWM0ZTkgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTMge1xcbiAgYmFja2dyb3VuZDogI2IzOWRkYiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtNCB7XFxuICBiYWNrZ3JvdW5kOiAjOTU3NWNkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS01IHtcXG4gIGJhY2tncm91bmQ6ICM3ZTU3YzIgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTYge1xcbiAgYmFja2dyb3VuZDogIzY3M2FiNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtNyB7XFxuICBiYWNrZ3JvdW5kOiAjNWUzNWIxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS04IHtcXG4gIGJhY2tncm91bmQ6ICM1MTJkYTggIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTkge1xcbiAgYmFja2dyb3VuZDogIzQ1MjdhMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtMTAge1xcbiAgYmFja2dyb3VuZDogIzMxMWI5MiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtMTEge1xcbiAgYmFja2dyb3VuZDogI2IzODhmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtMTIge1xcbiAgYmFja2dyb3VuZDogIzdjNGRmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtMTMge1xcbiAgYmFja2dyb3VuZDogIzY1MWZmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtMTQge1xcbiAgYmFja2dyb3VuZDogIzYyMDBlYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvIHtcXG4gIGJhY2tncm91bmQ6ICMzZjUxYjUgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby0xIHtcXG4gIGJhY2tncm91bmQ6ICNlOGVhZjYgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby0yIHtcXG4gIGJhY2tncm91bmQ6ICNjNWNhZTkgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby0zIHtcXG4gIGJhY2tncm91bmQ6ICM5ZmE4ZGEgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby00IHtcXG4gIGJhY2tncm91bmQ6ICM3OTg2Y2IgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby01IHtcXG4gIGJhY2tncm91bmQ6ICM1YzZiYzAgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby02IHtcXG4gIGJhY2tncm91bmQ6ICMzZjUxYjUgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby03IHtcXG4gIGJhY2tncm91bmQ6ICMzOTQ5YWIgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby04IHtcXG4gIGJhY2tncm91bmQ6ICMzMDNmOWYgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby05IHtcXG4gIGJhY2tncm91bmQ6ICMyODM1OTMgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMWEyMzdlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tMTEge1xcbiAgYmFja2dyb3VuZDogIzhjOWVmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTEyIHtcXG4gIGJhY2tncm91bmQ6ICM1MzZkZmUgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjM2Q1YWZlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tMTQge1xcbiAgYmFja2dyb3VuZDogIzMwNGZmZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZSB7XFxuICBiYWNrZ3JvdW5kOiAjMjE5NmYzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTEge1xcbiAgYmFja2dyb3VuZDogI2UzZjJmZCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS0yIHtcXG4gIGJhY2tncm91bmQ6ICNiYmRlZmIgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtMyB7XFxuICBiYWNrZ3JvdW5kOiAjOTBjYWY5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTQge1xcbiAgYmFja2dyb3VuZDogIzY0YjVmNiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS01IHtcXG4gIGJhY2tncm91bmQ6ICM0MmE1ZjUgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtNiB7XFxuICBiYWNrZ3JvdW5kOiAjMjE5NmYzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTcge1xcbiAgYmFja2dyb3VuZDogIzFlODhlNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS04IHtcXG4gIGJhY2tncm91bmQ6ICMxOTc2ZDIgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtOSB7XFxuICBiYWNrZ3JvdW5kOiAjMTU2NWMwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTEwIHtcXG4gIGJhY2tncm91bmQ6ICMwZDQ3YTEgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtMTEge1xcbiAgYmFja2dyb3VuZDogIzgyYjFmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjNDQ4YWZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTEzIHtcXG4gIGJhY2tncm91bmQ6ICMyOTc5ZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtMTQge1xcbiAgYmFja2dyb3VuZDogIzI5NjJmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZSB7XFxuICBiYWNrZ3JvdW5kOiAjMDNhOWY0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTEge1xcbiAgYmFja2dyb3VuZDogI2UxZjVmZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS0yIHtcXG4gIGJhY2tncm91bmQ6ICNiM2U1ZmMgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtMyB7XFxuICBiYWNrZ3JvdW5kOiAjODFkNGZhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTQge1xcbiAgYmFja2dyb3VuZDogIzRmYzNmNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS01IHtcXG4gIGJhY2tncm91bmQ6ICMyOWI2ZjYgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtNiB7XFxuICBiYWNrZ3JvdW5kOiAjMDNhOWY0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTcge1xcbiAgYmFja2dyb3VuZDogIzAzOWJlNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS04IHtcXG4gIGJhY2tncm91bmQ6ICMwMjg4ZDEgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtOSB7XFxuICBiYWNrZ3JvdW5kOiAjMDI3N2JkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTEwIHtcXG4gIGJhY2tncm91bmQ6ICMwMTU3OWIgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtMTEge1xcbiAgYmFja2dyb3VuZDogIzgwZDhmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjNDBjNGZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTEzIHtcXG4gIGJhY2tncm91bmQ6ICMwMGIwZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtMTQge1xcbiAgYmFja2dyb3VuZDogIzAwOTFlYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbiB7XFxuICBiYWNrZ3JvdW5kOiAjMDBiY2Q0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTEge1xcbiAgYmFja2dyb3VuZDogI2UwZjdmYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi0yIHtcXG4gIGJhY2tncm91bmQ6ICNiMmViZjIgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tMyB7XFxuICBiYWNrZ3JvdW5kOiAjODBkZWVhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTQge1xcbiAgYmFja2dyb3VuZDogIzRkZDBlMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi01IHtcXG4gIGJhY2tncm91bmQ6ICMyNmM2ZGEgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tNiB7XFxuICBiYWNrZ3JvdW5kOiAjMDBiY2Q0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTcge1xcbiAgYmFja2dyb3VuZDogIzAwYWNjMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi04IHtcXG4gIGJhY2tncm91bmQ6ICMwMDk3YTcgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tOSB7XFxuICBiYWNrZ3JvdW5kOiAjMDA4MzhmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTEwIHtcXG4gIGJhY2tncm91bmQ6ICMwMDYwNjQgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tMTEge1xcbiAgYmFja2dyb3VuZDogIzg0ZmZmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjMThmZmZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTEzIHtcXG4gIGJhY2tncm91bmQ6ICMwMGU1ZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tMTQge1xcbiAgYmFja2dyb3VuZDogIzAwYjhkNCAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbCB7XFxuICBiYWNrZ3JvdW5kOiAjMDA5Njg4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTEge1xcbiAgYmFja2dyb3VuZDogI2UwZjJmMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC0yIHtcXG4gIGJhY2tncm91bmQ6ICNiMmRmZGIgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtMyB7XFxuICBiYWNrZ3JvdW5kOiAjODBjYmM0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTQge1xcbiAgYmFja2dyb3VuZDogIzRkYjZhYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC01IHtcXG4gIGJhY2tncm91bmQ6ICMyNmE2OWEgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtNiB7XFxuICBiYWNrZ3JvdW5kOiAjMDA5Njg4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTcge1xcbiAgYmFja2dyb3VuZDogIzAwODk3YiAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC04IHtcXG4gIGJhY2tncm91bmQ6ICMwMDc5NmIgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtOSB7XFxuICBiYWNrZ3JvdW5kOiAjMDA2OTVjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTEwIHtcXG4gIGJhY2tncm91bmQ6ICMwMDRkNDAgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtMTEge1xcbiAgYmFja2dyb3VuZDogI2E3ZmZlYiAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjNjRmZmRhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTEzIHtcXG4gIGJhY2tncm91bmQ6ICMxZGU5YjYgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtMTQge1xcbiAgYmFja2dyb3VuZDogIzAwYmZhNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4ge1xcbiAgYmFja2dyb3VuZDogIzRjYWY1MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tMSB7XFxuICBiYWNrZ3JvdW5kOiAjZThmNWU5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi0yIHtcXG4gIGJhY2tncm91bmQ6ICNjOGU2YzkgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTMge1xcbiAgYmFja2dyb3VuZDogI2E1ZDZhNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tNCB7XFxuICBiYWNrZ3JvdW5kOiAjODFjNzg0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi01IHtcXG4gIGJhY2tncm91bmQ6ICM2NmJiNmEgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTYge1xcbiAgYmFja2dyb3VuZDogIzRjYWY1MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tNyB7XFxuICBiYWNrZ3JvdW5kOiAjNDNhMDQ3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi04IHtcXG4gIGJhY2tncm91bmQ6ICMzODhlM2MgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTkge1xcbiAgYmFja2dyb3VuZDogIzJlN2QzMiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tMTAge1xcbiAgYmFja2dyb3VuZDogIzFiNWUyMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tMTEge1xcbiAgYmFja2dyb3VuZDogI2I5ZjZjYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tMTIge1xcbiAgYmFja2dyb3VuZDogIzY5ZjBhZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tMTMge1xcbiAgYmFja2dyb3VuZDogIzAwZTY3NiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tMTQge1xcbiAgYmFja2dyb3VuZDogIzAwYzg1MyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4ge1xcbiAgYmFja2dyb3VuZDogIzhiYzM0YSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tMSB7XFxuICBiYWNrZ3JvdW5kOiAjZjFmOGU5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi0yIHtcXG4gIGJhY2tncm91bmQ6ICNkY2VkYzggIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTMge1xcbiAgYmFja2dyb3VuZDogI2M1ZTFhNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tNCB7XFxuICBiYWNrZ3JvdW5kOiAjYWVkNTgxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi01IHtcXG4gIGJhY2tncm91bmQ6ICM5Y2NjNjUgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTYge1xcbiAgYmFja2dyb3VuZDogIzhiYzM0YSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tNyB7XFxuICBiYWNrZ3JvdW5kOiAjN2NiMzQyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi04IHtcXG4gIGJhY2tncm91bmQ6ICM2ODlmMzggIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTkge1xcbiAgYmFja2dyb3VuZDogIzU1OGIyZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tMTAge1xcbiAgYmFja2dyb3VuZDogIzMzNjkxZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tMTEge1xcbiAgYmFja2dyb3VuZDogI2NjZmY5MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tMTIge1xcbiAgYmFja2dyb3VuZDogI2IyZmY1OSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tMTMge1xcbiAgYmFja2dyb3VuZDogIzc2ZmYwMyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tMTQge1xcbiAgYmFja2dyb3VuZDogIzY0ZGQxNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZSB7XFxuICBiYWNrZ3JvdW5kOiAjY2RkYzM5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTEge1xcbiAgYmFja2dyb3VuZDogI2Y5ZmJlNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS0yIHtcXG4gIGJhY2tncm91bmQ6ICNmMGY0YzMgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtMyB7XFxuICBiYWNrZ3JvdW5kOiAjZTZlZTljICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTQge1xcbiAgYmFja2dyb3VuZDogI2RjZTc3NSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS01IHtcXG4gIGJhY2tncm91bmQ6ICNkNGUxNTcgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtNiB7XFxuICBiYWNrZ3JvdW5kOiAjY2RkYzM5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTcge1xcbiAgYmFja2dyb3VuZDogI2MwY2EzMyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS04IHtcXG4gIGJhY2tncm91bmQ6ICNhZmI0MmIgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtOSB7XFxuICBiYWNrZ3JvdW5kOiAjOWU5ZDI0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTEwIHtcXG4gIGJhY2tncm91bmQ6ICM4Mjc3MTcgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtMTEge1xcbiAgYmFja2dyb3VuZDogI2Y0ZmY4MSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjZWVmZjQxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTEzIHtcXG4gIGJhY2tncm91bmQ6ICNjNmZmMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtMTQge1xcbiAgYmFja2dyb3VuZDogI2FlZWEwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93IHtcXG4gIGJhY2tncm91bmQ6ICNmZmViM2IgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy0xIHtcXG4gIGJhY2tncm91bmQ6ICNmZmZkZTcgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy0yIHtcXG4gIGJhY2tncm91bmQ6ICNmZmY5YzQgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy0zIHtcXG4gIGJhY2tncm91bmQ6ICNmZmY1OWQgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy00IHtcXG4gIGJhY2tncm91bmQ6ICNmZmYxNzYgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy01IHtcXG4gIGJhY2tncm91bmQ6ICNmZmVlNTggIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy02IHtcXG4gIGJhY2tncm91bmQ6ICNmZmViM2IgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy03IHtcXG4gIGJhY2tncm91bmQ6ICNmZGQ4MzUgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy04IHtcXG4gIGJhY2tncm91bmQ6ICNmYmMwMmQgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy05IHtcXG4gIGJhY2tncm91bmQ6ICNmOWE4MjUgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjZjU3ZjE3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctMTEge1xcbiAgYmFja2dyb3VuZDogI2ZmZmY4ZCAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTEyIHtcXG4gIGJhY2tncm91bmQ6ICNmZjAgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlYTAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctMTQge1xcbiAgYmFja2dyb3VuZDogI2ZmZDYwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXIge1xcbiAgYmFja2dyb3VuZDogI2ZmYzEwNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmOGUxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci0yIHtcXG4gIGJhY2tncm91bmQ6ICNmZmVjYjMgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTMge1xcbiAgYmFja2dyb3VuZDogI2ZmZTA4MiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItNCB7XFxuICBiYWNrZ3JvdW5kOiAjZmZkNTRmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci01IHtcXG4gIGJhY2tncm91bmQ6ICNmZmNhMjggIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTYge1xcbiAgYmFja2dyb3VuZDogI2ZmYzEwNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItNyB7XFxuICBiYWNrZ3JvdW5kOiAjZmZiMzAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci04IHtcXG4gIGJhY2tncm91bmQ6ICNmZmEwMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTkge1xcbiAgYmFja2dyb3VuZDogI2ZmOGYwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItMTAge1xcbiAgYmFja2dyb3VuZDogI2ZmNmYwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItMTEge1xcbiAgYmFja2dyb3VuZDogI2ZmZTU3ZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItMTIge1xcbiAgYmFja2dyb3VuZDogI2ZmZDc0MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItMTMge1xcbiAgYmFja2dyb3VuZDogI2ZmYzQwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItMTQge1xcbiAgYmFja2dyb3VuZDogI2ZmYWIwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlIHtcXG4gIGJhY2tncm91bmQ6ICNmZjk4MDAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS0xIHtcXG4gIGJhY2tncm91bmQ6ICNmZmYzZTAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS0yIHtcXG4gIGJhY2tncm91bmQ6ICNmZmUwYjIgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS0zIHtcXG4gIGJhY2tncm91bmQ6ICNmZmNjODAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS00IHtcXG4gIGJhY2tncm91bmQ6ICNmZmI3NGQgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS01IHtcXG4gIGJhY2tncm91bmQ6ICNmZmE3MjYgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS02IHtcXG4gIGJhY2tncm91bmQ6ICNmZjk4MDAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS03IHtcXG4gIGJhY2tncm91bmQ6ICNmYjhjMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS04IHtcXG4gIGJhY2tncm91bmQ6ICNmNTdjMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS05IHtcXG4gIGJhY2tncm91bmQ6ICNlZjZjMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjZTY1MTAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtMTEge1xcbiAgYmFja2dyb3VuZDogI2ZmZDE4MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTEyIHtcXG4gIGJhY2tncm91bmQ6ICNmZmFiNDAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjZmY5MTAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtMTQge1xcbiAgYmFja2dyb3VuZDogI2ZmNmQwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2Uge1xcbiAgYmFja2dyb3VuZDogI2ZmNTcyMiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmJlOWU3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS0yIHtcXG4gIGJhY2tncm91bmQ6ICNmZmNjYmMgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTMge1xcbiAgYmFja2dyb3VuZDogI2ZmYWI5MSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtNCB7XFxuICBiYWNrZ3JvdW5kOiAjZmY4YTY1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS01IHtcXG4gIGJhY2tncm91bmQ6ICNmZjcwNDMgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTYge1xcbiAgYmFja2dyb3VuZDogI2ZmNTcyMiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtNyB7XFxuICBiYWNrZ3JvdW5kOiAjZjQ1MTFlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS04IHtcXG4gIGJhY2tncm91bmQ6ICNlNjRhMTkgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTkge1xcbiAgYmFja2dyb3VuZDogI2Q4NDMxNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtMTAge1xcbiAgYmFja2dyb3VuZDogI2JmMzYwYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtMTEge1xcbiAgYmFja2dyb3VuZDogI2ZmOWU4MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtMTIge1xcbiAgYmFja2dyb3VuZDogI2ZmNmU0MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtMTMge1xcbiAgYmFja2dyb3VuZDogI2ZmM2QwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtMTQge1xcbiAgYmFja2dyb3VuZDogI2RkMmMwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24ge1xcbiAgYmFja2dyb3VuZDogIzc5NTU0OCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tMSB7XFxuICBiYWNrZ3JvdW5kOiAjZWZlYmU5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi0yIHtcXG4gIGJhY2tncm91bmQ6ICNkN2NjYzggIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTMge1xcbiAgYmFja2dyb3VuZDogI2JjYWFhNCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tNCB7XFxuICBiYWNrZ3JvdW5kOiAjYTE4ODdmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi01IHtcXG4gIGJhY2tncm91bmQ6ICM4ZDZlNjMgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTYge1xcbiAgYmFja2dyb3VuZDogIzc5NTU0OCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tNyB7XFxuICBiYWNrZ3JvdW5kOiAjNmQ0YzQxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi04IHtcXG4gIGJhY2tncm91bmQ6ICM1ZDQwMzcgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTkge1xcbiAgYmFja2dyb3VuZDogIzRlMzQyZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tMTAge1xcbiAgYmFja2dyb3VuZDogIzNlMjcyMyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tMTEge1xcbiAgYmFja2dyb3VuZDogI2Q3Y2NjOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tMTIge1xcbiAgYmFja2dyb3VuZDogI2JjYWFhNCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tMTMge1xcbiAgYmFja2dyb3VuZDogIzhkNmU2MyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tMTQge1xcbiAgYmFja2dyb3VuZDogIzVkNDAzNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleSB7XFxuICBiYWNrZ3JvdW5kOiAjOWU5ZTllICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTEge1xcbiAgYmFja2dyb3VuZDogI2ZhZmFmYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS0yIHtcXG4gIGJhY2tncm91bmQ6ICNmNWY1ZjUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktMyB7XFxuICBiYWNrZ3JvdW5kOiAjZWVlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTQge1xcbiAgYmFja2dyb3VuZDogI2UwZTBlMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS01IHtcXG4gIGJhY2tncm91bmQ6ICNiZGJkYmQgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktNiB7XFxuICBiYWNrZ3JvdW5kOiAjOWU5ZTllICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTcge1xcbiAgYmFja2dyb3VuZDogIzc1NzU3NSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS04IHtcXG4gIGJhY2tncm91bmQ6ICM2MTYxNjEgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktOSB7XFxuICBiYWNrZ3JvdW5kOiAjNDI0MjQyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTEwIHtcXG4gIGJhY2tncm91bmQ6ICMyMTIxMjEgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktMTEge1xcbiAgYmFja2dyb3VuZDogI2Y1ZjVmNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjZWVlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTEzIHtcXG4gIGJhY2tncm91bmQ6ICNiZGJkYmQgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktMTQge1xcbiAgYmFja2dyb3VuZDogIzYxNjE2MSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5IHtcXG4gIGJhY2tncm91bmQ6ICM2MDdkOGIgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS0xIHtcXG4gIGJhY2tncm91bmQ6ICNlY2VmZjEgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS0yIHtcXG4gIGJhY2tncm91bmQ6ICNjZmQ4ZGMgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS0zIHtcXG4gIGJhY2tncm91bmQ6ICNiMGJlYzUgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS00IHtcXG4gIGJhY2tncm91bmQ6ICM5MGE0YWUgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS01IHtcXG4gIGJhY2tncm91bmQ6ICM3ODkwOWMgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS02IHtcXG4gIGJhY2tncm91bmQ6ICM2MDdkOGIgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS03IHtcXG4gIGJhY2tncm91bmQ6ICM1NDZlN2EgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS04IHtcXG4gIGJhY2tncm91bmQ6ICM0NTVhNjQgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS05IHtcXG4gIGJhY2tncm91bmQ6ICMzNzQ3NGYgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMjYzMjM4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktMTEge1xcbiAgYmFja2dyb3VuZDogI2NmZDhkYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTEyIHtcXG4gIGJhY2tncm91bmQ6ICNiMGJlYzUgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjNzg5MDljICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktMTQge1xcbiAgYmFja2dyb3VuZDogIzQ1NWE2NCAhaW1wb3J0YW50O1xcbn1cXG4uc2hhZG93LXRyYW5zaXRpb24ge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LWJveC1zaGFkb3cgMC4yOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50O1xcbiAgdHJhbnNpdGlvbjogLXdlYmtpdC1ib3gtc2hhZG93IDAuMjhzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWltcG9ydGFudDtcXG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4yOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50O1xcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjI4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCAtd2Via2l0LWJveC1zaGFkb3cgMC4yOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50O1xcbn1cXG4uc2hhZG93LTEge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0ycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0yIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDhweCByZ2JhKDAsMCwwLDAuMiksIDAgM3B4IDRweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAzcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA4cHggcmdiYSgwLDAsMCwwLjIpLCAwIDNweCA0cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggM3B4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0zIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMXB4IDhweCByZ2JhKDAsMCwwLDAuMiksIDAgLTNweCA0cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTFweCA4cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0zcHggNHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAzcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTQge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDJweCA0cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgNHB4IDVweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDFweCAxMHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCA0cHggNXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMXB4IDEwcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC00IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMnB4IDRweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtNHB4IDVweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0xcHggMTBweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0ycHggNHB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIC00cHggNXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTFweCAxMHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctNSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCA1cHggOHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMXB4IDE0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAzcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIDVweCA4cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAxcHggMTRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTUge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0zcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIC01cHggOHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTFweCAxNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgLTVweCA4cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMXB4IDE0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy02IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAzcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIDZweCAxMHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMXB4IDE4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAzcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIDZweCAxMHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMXB4IDE4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC02IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtNnB4IDEwcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMXB4IDE4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtNnB4IDEwcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMXB4IDE4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy03IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA0cHggNXB4IC0ycHggcmdiYSgwLDAsMCwwLjIpLCAwIDdweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxNnB4IDFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDRweCA1cHggLTJweCByZ2JhKDAsMCwwLDAuMiksIDAgN3B4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDE2cHggMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtNyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTRweCA1cHggLTJweCByZ2JhKDAsMCwwLDAuMiksIDAgLTdweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0ycHggMTZweCAxcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtNHB4IDVweCAtMnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtN3B4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTJweCAxNnB4IDFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTgge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDVweCA1cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgOHB4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDE0cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDVweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCA4cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMTRweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC04IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtNXB4IDVweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtOHB4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAxNHB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC01cHggNXB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIC04cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDE0cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctOSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNXB4IDZweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCA5cHggMTJweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMTZweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA1cHggNnB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIDlweCAxMnB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxNnB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTkge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC01cHggNnB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIC05cHggMTJweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDE2cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTVweCA2cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgLTlweCAxMnB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggMTZweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0xMCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNnB4IDZweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxMHB4IDE0cHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNHB4IDE4cHggM3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgNnB4IDZweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxMHB4IDE0cHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNHB4IDE4cHggM3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTAge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC02cHggNnB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xMHB4IDE0cHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTRweCAxOHB4IDNweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC02cHggNnB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xMHB4IDE0cHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTRweCAxOHB4IDNweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTExIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA2cHggN3B4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIDExcHggMTVweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA0cHggMjBweCAzcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA2cHggN3B4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIDExcHggMTVweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA0cHggMjBweCAzcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xMSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTZweCA3cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgLTExcHggMTVweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNHB4IDIwcHggM3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTZweCA3cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgLTExcHggMTVweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNHB4IDIwcHggM3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDdweCA4cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgMTJweCAxN3B4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDVweCAyMnB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDdweCA4cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgMTJweCAxN3B4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDVweCAyMnB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTEyIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtN3B4IDhweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTJweCAxN3B4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC01cHggMjJweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtN3B4IDhweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTJweCAxN3B4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC01cHggMjJweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0xMyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgN3B4IDhweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxM3B4IDE5cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNXB4IDI0cHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgN3B4IDhweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxM3B4IDE5cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNXB4IDI0cHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTMge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC03cHggOHB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xM3B4IDE5cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTVweCAyNHB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC03cHggOHB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xM3B4IDE5cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTVweCAyNHB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTE0IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA3cHggOXB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE0cHggMjFweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA1cHggMjZweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA3cHggOXB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE0cHggMjFweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA1cHggMjZweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xNCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTdweCA5cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE0cHggMjFweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNXB4IDI2cHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTdweCA5cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE0cHggMjFweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNXB4IDI2cHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTUge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDhweCA5cHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgMTVweCAyMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDZweCAyOHB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDhweCA5cHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgMTVweCAyMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDZweCAyOHB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTE1IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtOHB4IDlweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTVweCAyMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC02cHggMjhweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtOHB4IDlweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTVweCAyMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC02cHggMjhweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0xNiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgOHB4IDEwcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgMTZweCAyNHB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDZweCAzMHB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDhweCAxMHB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE2cHggMjRweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA2cHggMzBweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xNiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLThweCAxMHB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xNnB4IDI0cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTZweCAzMHB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC04cHggMTBweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTZweCAyNHB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC02cHggMzBweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0xNyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgOHB4IDExcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgMTdweCAyNnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDZweCAzMnB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDhweCAxMXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE3cHggMjZweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA2cHggMzJweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xNyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLThweCAxMXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xN3B4IDI2cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTZweCAzMnB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC04cHggMTFweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTdweCAyNnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC02cHggMzJweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0xOCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgOXB4IDExcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgMThweCAyOHB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDdweCAzNHB4IDZweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDlweCAxMXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE4cHggMjhweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA3cHggMzRweCA2cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xOCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTlweCAxMXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xOHB4IDI4cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTdweCAzNHB4IDZweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC05cHggMTFweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMThweCAyOHB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC03cHggMzRweCA2cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0xOSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgOXB4IDEycHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgMTlweCAyOXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDdweCAzNnB4IDZweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDlweCAxMnB4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE5cHggMjlweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA3cHggMzZweCA2cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xOSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTlweCAxMnB4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xOXB4IDI5cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTdweCAzNnB4IDZweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC05cHggMTJweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTlweCAyOXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC03cHggMzZweCA2cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0yMCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMTBweCAxM3B4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIDIwcHggMzFweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA4cHggMzhweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDEzcHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgMjBweCAzMXB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDhweCAzOHB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTIwIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMTBweCAxM3B4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yMHB4IDMxcHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLThweCAzOHB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xMHB4IDEzcHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgLTIwcHggMzFweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOHB4IDM4cHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMjEge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDEwcHggMTNweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAyMXB4IDMzcHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOHB4IDQwcHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAxM3B4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIDIxcHggMzNweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA4cHggNDBweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0yMSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTEwcHggMTNweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjFweCAzM3B4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC04cHggNDBweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMTBweCAxM3B4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yMXB4IDMzcHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLThweCA0MHB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTIyIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxMHB4IDE0cHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgMjJweCAzNXB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDhweCA0MnB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMTRweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAyMnB4IDM1cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOHB4IDQycHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMjIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xMHB4IDE0cHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgLTIycHggMzVweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOHB4IDQycHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTEwcHggMTRweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjJweCAzNXB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC04cHggNDJweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0yMyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMTFweCAxNHB4IC03cHggcmdiYSgwLDAsMCwwLjIpLCAwIDIzcHggMzZweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA5cHggNDRweCA4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxMXB4IDE0cHggLTdweCByZ2JhKDAsMCwwLDAuMiksIDAgMjNweCAzNnB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDlweCA0NHB4IDhweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTIzIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMTFweCAxNHB4IC03cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yM3B4IDM2cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTlweCA0NHB4IDhweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xMXB4IDE0cHggLTdweCByZ2JhKDAsMCwwLDAuMiksIDAgLTIzcHggMzZweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOXB4IDQ0cHggOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMjQge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDExcHggMTVweCAtN3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAyNHB4IDM4cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOXB4IDQ2cHggOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTFweCAxNXB4IC03cHggcmdiYSgwLDAsMCwwLjIpLCAwIDI0cHggMzhweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA5cHggNDZweCA4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0yNCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTExcHggMTVweCAtN3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjRweCAzOHB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC05cHggNDZweCA4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMTFweCAxNXB4IC03cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yNHB4IDM4cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTlweCA0NnB4IDhweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ubm8tc2hhZG93LFxcbi5zaGFkb3ctMCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4uaW5zZXQtc2hhZG93IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA3cHggOXB4IC03cHggcmdiYSgwLDAsMCwwLjcpIGluc2V0ICFpbXBvcnRhbnQ7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgN3B4IDlweCAtN3B4IHJnYmEoMCwwLDAsMC43KSBpbnNldCAhaW1wb3J0YW50O1xcbn1cXG4uei1tYXJnaW5hbHMge1xcbiAgei1pbmRleDogMjAwMDtcXG59XFxuLnotbm90aWZ5IHtcXG4gIHotaW5kZXg6IDk1MDA7XFxufVxcbi56LWZ1bGxzY3JlZW4ge1xcbiAgei1pbmRleDogNjAwMDtcXG59XFxuLnotaW5oZXJpdCB7XFxuICB6LWluZGV4OiBpbmhlcml0ICFpbXBvcnRhbnQ7XFxufVxcbi5yb3csXFxuLmNvbHVtbixcXG4uZmxleCB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC1tcy1mbGV4LXdyYXA6IHdyYXA7XFxuICAgICAgZmxleC13cmFwOiB3cmFwO1xcbn1cXG4ucm93LmlubGluZSxcXG4uY29sdW1uLmlubGluZSxcXG4uZmxleC5pbmxpbmUge1xcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxufVxcbi5yb3cucmV2ZXJzZSB7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2U7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbn1cXG4uY29sdW1uIHtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG59XFxuLmNvbHVtbi5yZXZlcnNlIHtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2U7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xcbn1cXG4ud3JhcCB7XFxuICAtbXMtZmxleC13cmFwOiB3cmFwO1xcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcXG59XFxuLm5vLXdyYXAge1xcbiAgLW1zLWZsZXgtd3JhcDogbm93cmFwO1xcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xcbn1cXG4ucmV2ZXJzZS13cmFwIHtcXG4gIC1tcy1mbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTtcXG4gICAgICBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTtcXG59XFxuLm9yZGVyLWZpcnN0IHtcXG4gIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IC05OTk5O1xcbiAgICAgIC1tcy1mbGV4LW9yZGVyOiAtMTAwMDA7XFxuICAgICAgICAgIG9yZGVyOiAtMTAwMDA7XFxufVxcbi5vcmRlci1sYXN0IHtcXG4gIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDEwMDAxO1xcbiAgICAgIC1tcy1mbGV4LW9yZGVyOiAxMDAwMDtcXG4gICAgICAgICAgb3JkZXI6IDEwMDAwO1xcbn1cXG4ub3JkZXItbm9uZSB7XFxuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAxO1xcbiAgICAgIC1tcy1mbGV4LW9yZGVyOiAwO1xcbiAgICAgICAgICBvcmRlcjogMDtcXG59XFxuLmp1c3RpZnktc3RhcnQge1xcbiAgLXdlYmtpdC1ib3gtcGFjazogc3RhcnQ7XFxuICAgICAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcXG59XFxuLmp1c3RpZnktZW5kIHtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGVuZDtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBlbmQ7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XFxufVxcbi5qdXN0aWZ5LWNlbnRlcixcXG4uZmxleC1jZW50ZXIge1xcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxufVxcbi5qdXN0aWZ5LWJldHdlZW4ge1xcbiAgLXdlYmtpdC1ib3gtcGFjazoganVzdGlmeTtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5O1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxufVxcbi5qdXN0aWZ5LWFyb3VuZCB7XFxuICAtbXMtZmxleC1wYWNrOiBkaXN0cmlidXRlO1xcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xcbn1cXG4uaXRlbXMtc3RhcnQge1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0O1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBzdGFydDtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XFxufVxcbi5pdGVtcy1lbmQge1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGVuZDtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogZW5kO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XFxufVxcbi5pdGVtcy1jZW50ZXIsXFxuLmZsZXgtY2VudGVyIHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG59XFxuLml0ZW1zLWJhc2VsaW5lIHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBiYXNlbGluZTtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogYmFzZWxpbmU7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcXG59XFxuLml0ZW1zLXN0cmV0Y2gge1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IHN0cmV0Y2g7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2g7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xcbn1cXG4uY29udGVudC1zdGFydCB7XFxuICAtbXMtZmxleC1saW5lLXBhY2s6IHN0YXJ0O1xcbiAgICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XFxufVxcbi5jb250ZW50LWVuZCB7XFxuICAtbXMtZmxleC1saW5lLXBhY2s6IGVuZDtcXG4gICAgICBhbGlnbi1jb250ZW50OiBmbGV4LWVuZDtcXG59XFxuLmNvbnRlbnQtY2VudGVyIHtcXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogY2VudGVyO1xcbiAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuLmNvbnRlbnQtc3RyZXRjaCB7XFxuICAtbXMtZmxleC1saW5lLXBhY2s6IHN0cmV0Y2g7XFxuICAgICAgYWxpZ24tY29udGVudDogc3RyZXRjaDtcXG59XFxuLmNvbnRlbnQtYmV0d2VlbiB7XFxuICAtbXMtZmxleC1saW5lLXBhY2s6IGp1c3RpZnk7XFxuICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG59XFxuLmNvbnRlbnQtYXJvdW5kIHtcXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogZGlzdHJpYnV0ZTtcXG4gICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQ7XFxufVxcbi5zZWxmLXN0YXJ0IHtcXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246IHN0YXJ0O1xcbiAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XFxufVxcbi5zZWxmLWVuZCB7XFxuICAtbXMtZmxleC1pdGVtLWFsaWduOiBlbmQ7XFxuICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XFxufVxcbi5zZWxmLWNlbnRlciB7XFxuICAtbXMtZmxleC1pdGVtLWFsaWduOiBjZW50ZXI7XFxuICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xcbn1cXG4uc2VsZi1iYXNlbGluZSB7XFxuICAtbXMtZmxleC1pdGVtLWFsaWduOiBiYXNlbGluZTtcXG4gICAgICBhbGlnbi1zZWxmOiBiYXNlbGluZTtcXG59XFxuLnNlbGYtc3RyZXRjaCB7XFxuICAtbXMtZmxleC1pdGVtLWFsaWduOiBzdHJldGNoO1xcbiAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XFxufVxcbi5ndXR0ZXIteC1ub25lLFxcbi5ndXR0ZXItbm9uZSB7XFxuICBtYXJnaW4tbGVmdDogMDtcXG59XFxuLmd1dHRlci14LW5vbmUgPiBkaXYsXFxuLmd1dHRlci1ub25lID4gZGl2IHtcXG4gIHBhZGRpbmctbGVmdDogMDtcXG59XFxuLmd1dHRlci15LW5vbmUsXFxuLmd1dHRlci1ub25lIHtcXG4gIG1hcmdpbi10b3A6IDA7XFxufVxcbi5ndXR0ZXIteS1ub25lID4gZGl2LFxcbi5ndXR0ZXItbm9uZSA+IGRpdiB7XFxuICBwYWRkaW5nLXRvcDogMDtcXG59XFxuLmd1dHRlci14LXhzLFxcbi5ndXR0ZXIteHMge1xcbiAgbWFyZ2luLWxlZnQ6IC04cHg7XFxufVxcbi5ndXR0ZXIteC14cyA+IGRpdixcXG4uZ3V0dGVyLXhzID4gZGl2IHtcXG4gIHBhZGRpbmctbGVmdDogOHB4O1xcbn1cXG4uZ3V0dGVyLXkteHMsXFxuLmd1dHRlci14cyB7XFxuICBtYXJnaW4tdG9wOiAtOHB4O1xcbn1cXG4uZ3V0dGVyLXkteHMgPiBkaXYsXFxuLmd1dHRlci14cyA+IGRpdiB7XFxuICBwYWRkaW5nLXRvcDogOHB4O1xcbn1cXG4uZ3V0dGVyLXgtc20sXFxuLmd1dHRlci1zbSB7XFxuICBtYXJnaW4tbGVmdDogLTE2cHg7XFxufVxcbi5ndXR0ZXIteC1zbSA+IGRpdixcXG4uZ3V0dGVyLXNtID4gZGl2IHtcXG4gIHBhZGRpbmctbGVmdDogMTZweDtcXG59XFxuLmd1dHRlci15LXNtLFxcbi5ndXR0ZXItc20ge1xcbiAgbWFyZ2luLXRvcDogLTE2cHg7XFxufVxcbi5ndXR0ZXIteS1zbSA+IGRpdixcXG4uZ3V0dGVyLXNtID4gZGl2IHtcXG4gIHBhZGRpbmctdG9wOiAxNnB4O1xcbn1cXG4uZ3V0dGVyLXgtbWQsXFxuLmd1dHRlci1tZCB7XFxuICBtYXJnaW4tbGVmdDogLTMycHg7XFxufVxcbi5ndXR0ZXIteC1tZCA+IGRpdixcXG4uZ3V0dGVyLW1kID4gZGl2IHtcXG4gIHBhZGRpbmctbGVmdDogMzJweDtcXG59XFxuLmd1dHRlci15LW1kLFxcbi5ndXR0ZXItbWQge1xcbiAgbWFyZ2luLXRvcDogLTMycHg7XFxufVxcbi5ndXR0ZXIteS1tZCA+IGRpdixcXG4uZ3V0dGVyLW1kID4gZGl2IHtcXG4gIHBhZGRpbmctdG9wOiAzMnB4O1xcbn1cXG4uZ3V0dGVyLXgtbGcsXFxuLmd1dHRlci1sZyB7XFxuICBtYXJnaW4tbGVmdDogLTQ4cHg7XFxufVxcbi5ndXR0ZXIteC1sZyA+IGRpdixcXG4uZ3V0dGVyLWxnID4gZGl2IHtcXG4gIHBhZGRpbmctbGVmdDogNDhweDtcXG59XFxuLmd1dHRlci15LWxnLFxcbi5ndXR0ZXItbGcge1xcbiAgbWFyZ2luLXRvcDogLTQ4cHg7XFxufVxcbi5ndXR0ZXIteS1sZyA+IGRpdixcXG4uZ3V0dGVyLWxnID4gZGl2IHtcXG4gIHBhZGRpbmctdG9wOiA0OHB4O1xcbn1cXG4uZ3V0dGVyLXgteGwsXFxuLmd1dHRlci14bCB7XFxuICBtYXJnaW4tbGVmdDogLTY0cHg7XFxufVxcbi5ndXR0ZXIteC14bCA+IGRpdixcXG4uZ3V0dGVyLXhsID4gZGl2IHtcXG4gIHBhZGRpbmctbGVmdDogNjRweDtcXG59XFxuLmd1dHRlci15LXhsLFxcbi5ndXR0ZXIteGwge1xcbiAgbWFyZ2luLXRvcDogLTY0cHg7XFxufVxcbi5ndXR0ZXIteS14bCA+IGRpdixcXG4uZ3V0dGVyLXhsID4gZGl2IHtcXG4gIHBhZGRpbmctdG9wOiA2NHB4O1xcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogMCkge1xcbiAgLnJvdyA+IC5jb2wsXFxuICAucm93ID4gLmNvbC14cyxcXG4gIC5yb3cgPiAuY29sLWF1dG8sXFxuICAucm93ID4gLmNvbC14cy1hdXRvLFxcbiAgLnJvdyA+IC5jb2wtZ3JvdyxcXG4gIC5yb3cgPiAuY29sLXhzLWdyb3csXFxuICAucm93ID4gLmNvbC0wLFxcbiAgLnJvdyA+IC5jb2wteHMtMCxcXG4gIC5yb3cgPiAuY29sLTEsXFxuICAucm93ID4gLmNvbC14cy0xLFxcbiAgLnJvdyA+IC5jb2wtMixcXG4gIC5yb3cgPiAuY29sLXhzLTIsXFxuICAucm93ID4gLmNvbC0zLFxcbiAgLnJvdyA+IC5jb2wteHMtMyxcXG4gIC5yb3cgPiAuY29sLTQsXFxuICAucm93ID4gLmNvbC14cy00LFxcbiAgLnJvdyA+IC5jb2wtNSxcXG4gIC5yb3cgPiAuY29sLXhzLTUsXFxuICAucm93ID4gLmNvbC02LFxcbiAgLnJvdyA+IC5jb2wteHMtNixcXG4gIC5yb3cgPiAuY29sLTcsXFxuICAucm93ID4gLmNvbC14cy03LFxcbiAgLnJvdyA+IC5jb2wtOCxcXG4gIC5yb3cgPiAuY29sLXhzLTgsXFxuICAucm93ID4gLmNvbC05LFxcbiAgLnJvdyA+IC5jb2wteHMtOSxcXG4gIC5yb3cgPiAuY29sLTEwLFxcbiAgLnJvdyA+IC5jb2wteHMtMTAsXFxuICAucm93ID4gLmNvbC0xMSxcXG4gIC5yb3cgPiAuY29sLXhzLTExLFxcbiAgLnJvdyA+IC5jb2wtMTIsXFxuICAucm93ID4gLmNvbC14cy0xMixcXG4gIC5mbGV4ID4gLmNvbCxcXG4gIC5mbGV4ID4gLmNvbC14cyxcXG4gIC5mbGV4ID4gLmNvbC1hdXRvLFxcbiAgLmZsZXggPiAuY29sLXhzLWF1dG8sXFxuICAuZmxleCA+IC5jb2wtZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC14cy1ncm93LFxcbiAgLmZsZXggPiAuY29sLTAsXFxuICAuZmxleCA+IC5jb2wteHMtMCxcXG4gIC5mbGV4ID4gLmNvbC0xLFxcbiAgLmZsZXggPiAuY29sLXhzLTEsXFxuICAuZmxleCA+IC5jb2wtMixcXG4gIC5mbGV4ID4gLmNvbC14cy0yLFxcbiAgLmZsZXggPiAuY29sLTMsXFxuICAuZmxleCA+IC5jb2wteHMtMyxcXG4gIC5mbGV4ID4gLmNvbC00LFxcbiAgLmZsZXggPiAuY29sLXhzLTQsXFxuICAuZmxleCA+IC5jb2wtNSxcXG4gIC5mbGV4ID4gLmNvbC14cy01LFxcbiAgLmZsZXggPiAuY29sLTYsXFxuICAuZmxleCA+IC5jb2wteHMtNixcXG4gIC5mbGV4ID4gLmNvbC03LFxcbiAgLmZsZXggPiAuY29sLXhzLTcsXFxuICAuZmxleCA+IC5jb2wtOCxcXG4gIC5mbGV4ID4gLmNvbC14cy04LFxcbiAgLmZsZXggPiAuY29sLTksXFxuICAuZmxleCA+IC5jb2wteHMtOSxcXG4gIC5mbGV4ID4gLmNvbC0xMCxcXG4gIC5mbGV4ID4gLmNvbC14cy0xMCxcXG4gIC5mbGV4ID4gLmNvbC0xMSxcXG4gIC5mbGV4ID4gLmNvbC14cy0xMSxcXG4gIC5mbGV4ID4gLmNvbC0xMixcXG4gIC5mbGV4ID4gLmNvbC14cy0xMiB7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICBtaW4td2lkdGg6IDA7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMsXFxuICAuY29sdW1uID4gLmNvbC1hdXRvLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtYXV0byxcXG4gIC5jb2x1bW4gPiAuY29sLWdyb3csXFxuICAuY29sdW1uID4gLmNvbC14cy1ncm93LFxcbiAgLmNvbHVtbiA+IC5jb2wtMCxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTAsXFxuICAuY29sdW1uID4gLmNvbC0xLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMSxcXG4gIC5jb2x1bW4gPiAuY29sLTIsXFxuICAuY29sdW1uID4gLmNvbC14cy0yLFxcbiAgLmNvbHVtbiA+IC5jb2wtMyxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTMsXFxuICAuY29sdW1uID4gLmNvbC00LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtNCxcXG4gIC5jb2x1bW4gPiAuY29sLTUsXFxuICAuY29sdW1uID4gLmNvbC14cy01LFxcbiAgLmNvbHVtbiA+IC5jb2wtNixcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTYsXFxuICAuY29sdW1uID4gLmNvbC03LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtNyxcXG4gIC5jb2x1bW4gPiAuY29sLTgsXFxuICAuY29sdW1uID4gLmNvbC14cy04LFxcbiAgLmNvbHVtbiA+IC5jb2wtOSxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTksXFxuICAuY29sdW1uID4gLmNvbC0xMCxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTEwLFxcbiAgLmNvbHVtbiA+IC5jb2wtMTEsXFxuICAuY29sdW1uID4gLmNvbC14cy0xMSxcXG4gIC5jb2x1bW4gPiAuY29sLTEyLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMTIsXFxuICAuZmxleCA+IC5jb2wsXFxuICAuZmxleCA+IC5jb2wteHMsXFxuICAuZmxleCA+IC5jb2wtYXV0byxcXG4gIC5mbGV4ID4gLmNvbC14cy1hdXRvLFxcbiAgLmZsZXggPiAuY29sLWdyb3csXFxuICAuZmxleCA+IC5jb2wteHMtZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC0wLFxcbiAgLmZsZXggPiAuY29sLXhzLTAsXFxuICAuZmxleCA+IC5jb2wtMSxcXG4gIC5mbGV4ID4gLmNvbC14cy0xLFxcbiAgLmZsZXggPiAuY29sLTIsXFxuICAuZmxleCA+IC5jb2wteHMtMixcXG4gIC5mbGV4ID4gLmNvbC0zLFxcbiAgLmZsZXggPiAuY29sLXhzLTMsXFxuICAuZmxleCA+IC5jb2wtNCxcXG4gIC5mbGV4ID4gLmNvbC14cy00LFxcbiAgLmZsZXggPiAuY29sLTUsXFxuICAuZmxleCA+IC5jb2wteHMtNSxcXG4gIC5mbGV4ID4gLmNvbC02LFxcbiAgLmZsZXggPiAuY29sLXhzLTYsXFxuICAuZmxleCA+IC5jb2wtNyxcXG4gIC5mbGV4ID4gLmNvbC14cy03LFxcbiAgLmZsZXggPiAuY29sLTgsXFxuICAuZmxleCA+IC5jb2wteHMtOCxcXG4gIC5mbGV4ID4gLmNvbC05LFxcbiAgLmZsZXggPiAuY29sLXhzLTksXFxuICAuZmxleCA+IC5jb2wtMTAsXFxuICAuZmxleCA+IC5jb2wteHMtMTAsXFxuICAuZmxleCA+IC5jb2wtMTEsXFxuICAuZmxleCA+IC5jb2wteHMtMTEsXFxuICAuZmxleCA+IC5jb2wtMTIsXFxuICAuZmxleCA+IC5jb2wteHMtMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIG1pbi1oZWlnaHQ6IDA7XFxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XFxuICB9XFxuICAuY29sLFxcbiAgLmNvbC14cyB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDEwMDAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDEwMDAwIDEgMCU7XFxuICAgICAgICAgICAgZmxleDogMTAwMDAgMSAwJTtcXG4gIH1cXG4gIC5jb2wtYXV0byxcXG4gIC5jb2wteHMtYXV0byxcXG4gIC5jb2wtMCxcXG4gIC5jb2wteHMtMCxcXG4gIC5jb2wtMSxcXG4gIC5jb2wteHMtMSxcXG4gIC5jb2wtMixcXG4gIC5jb2wteHMtMixcXG4gIC5jb2wtMyxcXG4gIC5jb2wteHMtMyxcXG4gIC5jb2wtNCxcXG4gIC5jb2wteHMtNCxcXG4gIC5jb2wtNSxcXG4gIC5jb2wteHMtNSxcXG4gIC5jb2wtNixcXG4gIC5jb2wteHMtNixcXG4gIC5jb2wtNyxcXG4gIC5jb2wteHMtNyxcXG4gIC5jb2wtOCxcXG4gIC5jb2wteHMtOCxcXG4gIC5jb2wtOSxcXG4gIC5jb2wteHMtOSxcXG4gIC5jb2wtMTAsXFxuICAuY29sLXhzLTEwLFxcbiAgLmNvbC0xMSxcXG4gIC5jb2wteHMtMTEsXFxuICAuY29sLTEyLFxcbiAgLmNvbC14cy0xMiB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XFxuICB9XFxuICAuY29sLWdyb3csXFxuICAuY29sLXhzLWdyb3cge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXg6IDEgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtMCxcXG4gIC5yb3cgPiAuY29sLXhzLTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTAsXFxuICAucm93ID4gLm9mZnNldC14cy0wIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtMCxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTAge1xcbiAgICBoZWlnaHQ6IDAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTEsXFxuICAucm93ID4gLmNvbC14cy0xIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTEsXFxuICAucm93ID4gLm9mZnNldC14cy0xIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC0xLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMSB7XFxuICAgIGhlaWdodDogOC4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC0yLFxcbiAgLnJvdyA+IC5jb2wteHMtMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDE2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtMixcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC0yLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMiB7XFxuICAgIGhlaWdodDogMTYuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtMyxcXG4gIC5yb3cgPiAuY29sLXhzLTMge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAyNSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC0zLFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtMyB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC0zLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMyB7XFxuICAgIGhlaWdodDogMjUlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTQsXFxuICAucm93ID4gLmNvbC14cy00IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMzMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC00LFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtNCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTQsXFxuICAuY29sdW1uID4gLmNvbC14cy00IHtcXG4gICAgaGVpZ2h0OiAzMy4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC01LFxcbiAgLnJvdyA+IC5jb2wteHMtNSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDQxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtNSxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTUge1xcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC01LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtNSB7XFxuICAgIGhlaWdodDogNDEuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtNixcXG4gIC5yb3cgPiAuY29sLXhzLTYge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1MCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC02LFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtNiB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC02LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtNiB7XFxuICAgIGhlaWdodDogNTAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTcsXFxuICAucm93ID4gLmNvbC14cy03IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC03LFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtNyB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTcsXFxuICAuY29sdW1uID4gLmNvbC14cy03IHtcXG4gICAgaGVpZ2h0OiA1OC4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC04LFxcbiAgLnJvdyA+IC5jb2wteHMtOCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDY2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtOCxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTgge1xcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC04LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtOCB7XFxuICAgIGhlaWdodDogNjYuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtOSxcXG4gIC5yb3cgPiAuY29sLXhzLTkge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA3NSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC05LFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtOSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC05LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtOSB7XFxuICAgIGhlaWdodDogNzUlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTEwLFxcbiAgLnJvdyA+IC5jb2wteHMtMTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4My4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTEwLFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtMTAge1xcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC0xMCxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTEwIHtcXG4gICAgaGVpZ2h0OiA4My4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC0xMSxcXG4gIC5yb3cgPiAuY29sLXhzLTExIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOTEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC0xMSxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTExIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtMTEsXFxuICAuY29sdW1uID4gLmNvbC14cy0xMSB7XFxuICAgIGhlaWdodDogOTEuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtMTIsXFxuICAucm93ID4gLmNvbC14cy0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDEwMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC0xMixcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTEyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC0xMixcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTEyIHtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XFxuICAucm93ID4gLmNvbC1zbSxcXG4gIC5yb3cgPiAuY29sLXNtLWF1dG8sXFxuICAucm93ID4gLmNvbC1zbS1ncm93LFxcbiAgLnJvdyA+IC5jb2wtc20tMCxcXG4gIC5yb3cgPiAuY29sLXNtLTEsXFxuICAucm93ID4gLmNvbC1zbS0yLFxcbiAgLnJvdyA+IC5jb2wtc20tMyxcXG4gIC5yb3cgPiAuY29sLXNtLTQsXFxuICAucm93ID4gLmNvbC1zbS01LFxcbiAgLnJvdyA+IC5jb2wtc20tNixcXG4gIC5yb3cgPiAuY29sLXNtLTcsXFxuICAucm93ID4gLmNvbC1zbS04LFxcbiAgLnJvdyA+IC5jb2wtc20tOSxcXG4gIC5yb3cgPiAuY29sLXNtLTEwLFxcbiAgLnJvdyA+IC5jb2wtc20tMTEsXFxuICAucm93ID4gLmNvbC1zbS0xMixcXG4gIC5mbGV4ID4gLmNvbC1zbSxcXG4gIC5mbGV4ID4gLmNvbC1zbS1hdXRvLFxcbiAgLmZsZXggPiAuY29sLXNtLWdyb3csXFxuICAuZmxleCA+IC5jb2wtc20tMCxcXG4gIC5mbGV4ID4gLmNvbC1zbS0xLFxcbiAgLmZsZXggPiAuY29sLXNtLTIsXFxuICAuZmxleCA+IC5jb2wtc20tMyxcXG4gIC5mbGV4ID4gLmNvbC1zbS00LFxcbiAgLmZsZXggPiAuY29sLXNtLTUsXFxuICAuZmxleCA+IC5jb2wtc20tNixcXG4gIC5mbGV4ID4gLmNvbC1zbS03LFxcbiAgLmZsZXggPiAuY29sLXNtLTgsXFxuICAuZmxleCA+IC5jb2wtc20tOSxcXG4gIC5mbGV4ID4gLmNvbC1zbS0xMCxcXG4gIC5mbGV4ID4gLmNvbC1zbS0xMSxcXG4gIC5mbGV4ID4gLmNvbC1zbS0xMiB7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICBtaW4td2lkdGg6IDA7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tYXV0byxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLWdyb3csXFxuICAuY29sdW1uID4gLmNvbC1zbS0wLFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMSxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTIsXFxuICAuY29sdW1uID4gLmNvbC1zbS0zLFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tNCxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTUsXFxuICAuY29sdW1uID4gLmNvbC1zbS02LFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tNyxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTgsXFxuICAuY29sdW1uID4gLmNvbC1zbS05LFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMTAsXFxuICAuY29sdW1uID4gLmNvbC1zbS0xMSxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTEyLFxcbiAgLmZsZXggPiAuY29sLXNtLFxcbiAgLmZsZXggPiAuY29sLXNtLWF1dG8sXFxuICAuZmxleCA+IC5jb2wtc20tZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC1zbS0wLFxcbiAgLmZsZXggPiAuY29sLXNtLTEsXFxuICAuZmxleCA+IC5jb2wtc20tMixcXG4gIC5mbGV4ID4gLmNvbC1zbS0zLFxcbiAgLmZsZXggPiAuY29sLXNtLTQsXFxuICAuZmxleCA+IC5jb2wtc20tNSxcXG4gIC5mbGV4ID4gLmNvbC1zbS02LFxcbiAgLmZsZXggPiAuY29sLXNtLTcsXFxuICAuZmxleCA+IC5jb2wtc20tOCxcXG4gIC5mbGV4ID4gLmNvbC1zbS05LFxcbiAgLmZsZXggPiAuY29sLXNtLTEwLFxcbiAgLmZsZXggPiAuY29sLXNtLTExLFxcbiAgLmZsZXggPiAuY29sLXNtLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICBtaW4taGVpZ2h0OiAwO1xcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbC1zbSB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDEwMDAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDEwMDAwIDEgMCU7XFxuICAgICAgICAgICAgZmxleDogMTAwMDAgMSAwJTtcXG4gIH1cXG4gIC5jb2wtc20tYXV0byxcXG4gIC5jb2wtc20tMCxcXG4gIC5jb2wtc20tMSxcXG4gIC5jb2wtc20tMixcXG4gIC5jb2wtc20tMyxcXG4gIC5jb2wtc20tNCxcXG4gIC5jb2wtc20tNSxcXG4gIC5jb2wtc20tNixcXG4gIC5jb2wtc20tNyxcXG4gIC5jb2wtc20tOCxcXG4gIC5jb2wtc20tOSxcXG4gIC5jb2wtc20tMTAsXFxuICAuY29sLXNtLTExLFxcbiAgLmNvbC1zbS0xMiB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XFxuICB9XFxuICAuY29sLXNtLWdyb3cge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXg6IDEgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTAge1xcbiAgICBoZWlnaHQ6IDAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMSB7XFxuICAgIGhlaWdodDogOC4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS0yIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTYuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS0yIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMiB7XFxuICAgIGhlaWdodDogMTYuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tMyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDI1JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTMge1xcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMyB7XFxuICAgIGhlaWdodDogMjUlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTQge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTQge1xcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS00IHtcXG4gICAgaGVpZ2h0OiAzMy4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS01IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNDEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS01IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tNSB7XFxuICAgIGhlaWdodDogNDEuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tNiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDUwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTYge1xcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tNiB7XFxuICAgIGhlaWdodDogNTAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTcge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTcge1xcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS03IHtcXG4gICAgaGVpZ2h0OiA1OC4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS04IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNjYuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS04IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tOCB7XFxuICAgIGhlaWdodDogNjYuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tOSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDc1JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTkge1xcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tOSB7XFxuICAgIGhlaWdodDogNzUlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTEwIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogODMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS0xMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTEwIHtcXG4gICAgaGVpZ2h0OiA4My4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS0xMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDkxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tMTEge1xcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS0xMSB7XFxuICAgIGhlaWdodDogOTEuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tMTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTEyIHtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAucm93ID4gLmNvbC1tZCxcXG4gIC5yb3cgPiAuY29sLW1kLWF1dG8sXFxuICAucm93ID4gLmNvbC1tZC1ncm93LFxcbiAgLnJvdyA+IC5jb2wtbWQtMCxcXG4gIC5yb3cgPiAuY29sLW1kLTEsXFxuICAucm93ID4gLmNvbC1tZC0yLFxcbiAgLnJvdyA+IC5jb2wtbWQtMyxcXG4gIC5yb3cgPiAuY29sLW1kLTQsXFxuICAucm93ID4gLmNvbC1tZC01LFxcbiAgLnJvdyA+IC5jb2wtbWQtNixcXG4gIC5yb3cgPiAuY29sLW1kLTcsXFxuICAucm93ID4gLmNvbC1tZC04LFxcbiAgLnJvdyA+IC5jb2wtbWQtOSxcXG4gIC5yb3cgPiAuY29sLW1kLTEwLFxcbiAgLnJvdyA+IC5jb2wtbWQtMTEsXFxuICAucm93ID4gLmNvbC1tZC0xMixcXG4gIC5mbGV4ID4gLmNvbC1tZCxcXG4gIC5mbGV4ID4gLmNvbC1tZC1hdXRvLFxcbiAgLmZsZXggPiAuY29sLW1kLWdyb3csXFxuICAuZmxleCA+IC5jb2wtbWQtMCxcXG4gIC5mbGV4ID4gLmNvbC1tZC0xLFxcbiAgLmZsZXggPiAuY29sLW1kLTIsXFxuICAuZmxleCA+IC5jb2wtbWQtMyxcXG4gIC5mbGV4ID4gLmNvbC1tZC00LFxcbiAgLmZsZXggPiAuY29sLW1kLTUsXFxuICAuZmxleCA+IC5jb2wtbWQtNixcXG4gIC5mbGV4ID4gLmNvbC1tZC03LFxcbiAgLmZsZXggPiAuY29sLW1kLTgsXFxuICAuZmxleCA+IC5jb2wtbWQtOSxcXG4gIC5mbGV4ID4gLmNvbC1tZC0xMCxcXG4gIC5mbGV4ID4gLmNvbC1tZC0xMSxcXG4gIC5mbGV4ID4gLmNvbC1tZC0xMiB7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICBtaW4td2lkdGg6IDA7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtYXV0byxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLWdyb3csXFxuICAuY29sdW1uID4gLmNvbC1tZC0wLFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMSxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTIsXFxuICAuY29sdW1uID4gLmNvbC1tZC0zLFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtNCxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTUsXFxuICAuY29sdW1uID4gLmNvbC1tZC02LFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtNyxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTgsXFxuICAuY29sdW1uID4gLmNvbC1tZC05LFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMTAsXFxuICAuY29sdW1uID4gLmNvbC1tZC0xMSxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTEyLFxcbiAgLmZsZXggPiAuY29sLW1kLFxcbiAgLmZsZXggPiAuY29sLW1kLWF1dG8sXFxuICAuZmxleCA+IC5jb2wtbWQtZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC1tZC0wLFxcbiAgLmZsZXggPiAuY29sLW1kLTEsXFxuICAuZmxleCA+IC5jb2wtbWQtMixcXG4gIC5mbGV4ID4gLmNvbC1tZC0zLFxcbiAgLmZsZXggPiAuY29sLW1kLTQsXFxuICAuZmxleCA+IC5jb2wtbWQtNSxcXG4gIC5mbGV4ID4gLmNvbC1tZC02LFxcbiAgLmZsZXggPiAuY29sLW1kLTcsXFxuICAuZmxleCA+IC5jb2wtbWQtOCxcXG4gIC5mbGV4ID4gLmNvbC1tZC05LFxcbiAgLmZsZXggPiAuY29sLW1kLTEwLFxcbiAgLmZsZXggPiAuY29sLW1kLTExLFxcbiAgLmZsZXggPiAuY29sLW1kLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICBtaW4taGVpZ2h0OiAwO1xcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbC1tZCB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDEwMDAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDEwMDAwIDEgMCU7XFxuICAgICAgICAgICAgZmxleDogMTAwMDAgMSAwJTtcXG4gIH1cXG4gIC5jb2wtbWQtYXV0byxcXG4gIC5jb2wtbWQtMCxcXG4gIC5jb2wtbWQtMSxcXG4gIC5jb2wtbWQtMixcXG4gIC5jb2wtbWQtMyxcXG4gIC5jb2wtbWQtNCxcXG4gIC5jb2wtbWQtNSxcXG4gIC5jb2wtbWQtNixcXG4gIC5jb2wtbWQtNyxcXG4gIC5jb2wtbWQtOCxcXG4gIC5jb2wtbWQtOSxcXG4gIC5jb2wtbWQtMTAsXFxuICAuY29sLW1kLTExLFxcbiAgLmNvbC1tZC0xMiB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XFxuICB9XFxuICAuY29sLW1kLWdyb3cge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXg6IDEgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTAge1xcbiAgICBoZWlnaHQ6IDAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMSB7XFxuICAgIGhlaWdodDogOC4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC0yIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTYuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC0yIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMiB7XFxuICAgIGhlaWdodDogMTYuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtMyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDI1JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTMge1xcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMyB7XFxuICAgIGhlaWdodDogMjUlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTQge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTQge1xcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC00IHtcXG4gICAgaGVpZ2h0OiAzMy4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC01IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNDEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC01IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtNSB7XFxuICAgIGhlaWdodDogNDEuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtNiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDUwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTYge1xcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtNiB7XFxuICAgIGhlaWdodDogNTAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTcge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTcge1xcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC03IHtcXG4gICAgaGVpZ2h0OiA1OC4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC04IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNjYuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC04IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtOCB7XFxuICAgIGhlaWdodDogNjYuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtOSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDc1JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTkge1xcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtOSB7XFxuICAgIGhlaWdodDogNzUlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTEwIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogODMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC0xMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTEwIHtcXG4gICAgaGVpZ2h0OiA4My4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC0xMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDkxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtMTEge1xcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC0xMSB7XFxuICAgIGhlaWdodDogOTEuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtMTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTEyIHtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XFxuICAucm93ID4gLmNvbC1sZyxcXG4gIC5yb3cgPiAuY29sLWxnLWF1dG8sXFxuICAucm93ID4gLmNvbC1sZy1ncm93LFxcbiAgLnJvdyA+IC5jb2wtbGctMCxcXG4gIC5yb3cgPiAuY29sLWxnLTEsXFxuICAucm93ID4gLmNvbC1sZy0yLFxcbiAgLnJvdyA+IC5jb2wtbGctMyxcXG4gIC5yb3cgPiAuY29sLWxnLTQsXFxuICAucm93ID4gLmNvbC1sZy01LFxcbiAgLnJvdyA+IC5jb2wtbGctNixcXG4gIC5yb3cgPiAuY29sLWxnLTcsXFxuICAucm93ID4gLmNvbC1sZy04LFxcbiAgLnJvdyA+IC5jb2wtbGctOSxcXG4gIC5yb3cgPiAuY29sLWxnLTEwLFxcbiAgLnJvdyA+IC5jb2wtbGctMTEsXFxuICAucm93ID4gLmNvbC1sZy0xMixcXG4gIC5mbGV4ID4gLmNvbC1sZyxcXG4gIC5mbGV4ID4gLmNvbC1sZy1hdXRvLFxcbiAgLmZsZXggPiAuY29sLWxnLWdyb3csXFxuICAuZmxleCA+IC5jb2wtbGctMCxcXG4gIC5mbGV4ID4gLmNvbC1sZy0xLFxcbiAgLmZsZXggPiAuY29sLWxnLTIsXFxuICAuZmxleCA+IC5jb2wtbGctMyxcXG4gIC5mbGV4ID4gLmNvbC1sZy00LFxcbiAgLmZsZXggPiAuY29sLWxnLTUsXFxuICAuZmxleCA+IC5jb2wtbGctNixcXG4gIC5mbGV4ID4gLmNvbC1sZy03LFxcbiAgLmZsZXggPiAuY29sLWxnLTgsXFxuICAuZmxleCA+IC5jb2wtbGctOSxcXG4gIC5mbGV4ID4gLmNvbC1sZy0xMCxcXG4gIC5mbGV4ID4gLmNvbC1sZy0xMSxcXG4gIC5mbGV4ID4gLmNvbC1sZy0xMiB7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICBtaW4td2lkdGg6IDA7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctYXV0byxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLWdyb3csXFxuICAuY29sdW1uID4gLmNvbC1sZy0wLFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMSxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTIsXFxuICAuY29sdW1uID4gLmNvbC1sZy0zLFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctNCxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTUsXFxuICAuY29sdW1uID4gLmNvbC1sZy02LFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctNyxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTgsXFxuICAuY29sdW1uID4gLmNvbC1sZy05LFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMTAsXFxuICAuY29sdW1uID4gLmNvbC1sZy0xMSxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTEyLFxcbiAgLmZsZXggPiAuY29sLWxnLFxcbiAgLmZsZXggPiAuY29sLWxnLWF1dG8sXFxuICAuZmxleCA+IC5jb2wtbGctZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC1sZy0wLFxcbiAgLmZsZXggPiAuY29sLWxnLTEsXFxuICAuZmxleCA+IC5jb2wtbGctMixcXG4gIC5mbGV4ID4gLmNvbC1sZy0zLFxcbiAgLmZsZXggPiAuY29sLWxnLTQsXFxuICAuZmxleCA+IC5jb2wtbGctNSxcXG4gIC5mbGV4ID4gLmNvbC1sZy02LFxcbiAgLmZsZXggPiAuY29sLWxnLTcsXFxuICAuZmxleCA+IC5jb2wtbGctOCxcXG4gIC5mbGV4ID4gLmNvbC1sZy05LFxcbiAgLmZsZXggPiAuY29sLWxnLTEwLFxcbiAgLmZsZXggPiAuY29sLWxnLTExLFxcbiAgLmZsZXggPiAuY29sLWxnLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICBtaW4taGVpZ2h0OiAwO1xcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbC1sZyB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDEwMDAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDEwMDAwIDEgMCU7XFxuICAgICAgICAgICAgZmxleDogMTAwMDAgMSAwJTtcXG4gIH1cXG4gIC5jb2wtbGctYXV0byxcXG4gIC5jb2wtbGctMCxcXG4gIC5jb2wtbGctMSxcXG4gIC5jb2wtbGctMixcXG4gIC5jb2wtbGctMyxcXG4gIC5jb2wtbGctNCxcXG4gIC5jb2wtbGctNSxcXG4gIC5jb2wtbGctNixcXG4gIC5jb2wtbGctNyxcXG4gIC5jb2wtbGctOCxcXG4gIC5jb2wtbGctOSxcXG4gIC5jb2wtbGctMTAsXFxuICAuY29sLWxnLTExLFxcbiAgLmNvbC1sZy0xMiB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XFxuICB9XFxuICAuY29sLWxnLWdyb3cge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXg6IDEgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTAge1xcbiAgICBoZWlnaHQ6IDAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMSB7XFxuICAgIGhlaWdodDogOC4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy0yIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTYuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy0yIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMiB7XFxuICAgIGhlaWdodDogMTYuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctMyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDI1JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTMge1xcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMyB7XFxuICAgIGhlaWdodDogMjUlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTQge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTQge1xcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy00IHtcXG4gICAgaGVpZ2h0OiAzMy4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy01IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNDEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy01IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctNSB7XFxuICAgIGhlaWdodDogNDEuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctNiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDUwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTYge1xcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctNiB7XFxuICAgIGhlaWdodDogNTAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTcge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTcge1xcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy03IHtcXG4gICAgaGVpZ2h0OiA1OC4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy04IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNjYuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy04IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctOCB7XFxuICAgIGhlaWdodDogNjYuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctOSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDc1JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTkge1xcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctOSB7XFxuICAgIGhlaWdodDogNzUlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTEwIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogODMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy0xMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTEwIHtcXG4gICAgaGVpZ2h0OiA4My4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy0xMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDkxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctMTEge1xcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy0xMSB7XFxuICAgIGhlaWdodDogOTEuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctMTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTEyIHtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xcbiAgLnJvdyA+IC5jb2wteGwsXFxuICAucm93ID4gLmNvbC14bC1hdXRvLFxcbiAgLnJvdyA+IC5jb2wteGwtZ3JvdyxcXG4gIC5yb3cgPiAuY29sLXhsLTAsXFxuICAucm93ID4gLmNvbC14bC0xLFxcbiAgLnJvdyA+IC5jb2wteGwtMixcXG4gIC5yb3cgPiAuY29sLXhsLTMsXFxuICAucm93ID4gLmNvbC14bC00LFxcbiAgLnJvdyA+IC5jb2wteGwtNSxcXG4gIC5yb3cgPiAuY29sLXhsLTYsXFxuICAucm93ID4gLmNvbC14bC03LFxcbiAgLnJvdyA+IC5jb2wteGwtOCxcXG4gIC5yb3cgPiAuY29sLXhsLTksXFxuICAucm93ID4gLmNvbC14bC0xMCxcXG4gIC5yb3cgPiAuY29sLXhsLTExLFxcbiAgLnJvdyA+IC5jb2wteGwtMTIsXFxuICAuZmxleCA+IC5jb2wteGwsXFxuICAuZmxleCA+IC5jb2wteGwtYXV0byxcXG4gIC5mbGV4ID4gLmNvbC14bC1ncm93LFxcbiAgLmZsZXggPiAuY29sLXhsLTAsXFxuICAuZmxleCA+IC5jb2wteGwtMSxcXG4gIC5mbGV4ID4gLmNvbC14bC0yLFxcbiAgLmZsZXggPiAuY29sLXhsLTMsXFxuICAuZmxleCA+IC5jb2wteGwtNCxcXG4gIC5mbGV4ID4gLmNvbC14bC01LFxcbiAgLmZsZXggPiAuY29sLXhsLTYsXFxuICAuZmxleCA+IC5jb2wteGwtNyxcXG4gIC5mbGV4ID4gLmNvbC14bC04LFxcbiAgLmZsZXggPiAuY29sLXhsLTksXFxuICAuZmxleCA+IC5jb2wteGwtMTAsXFxuICAuZmxleCA+IC5jb2wteGwtMTEsXFxuICAuZmxleCA+IC5jb2wteGwtMTIge1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgbWluLXdpZHRoOiAwO1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bCxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLWF1dG8sXFxuICAuY29sdW1uID4gLmNvbC14bC1ncm93LFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMCxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTEsXFxuICAuY29sdW1uID4gLmNvbC14bC0yLFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMyxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTQsXFxuICAuY29sdW1uID4gLmNvbC14bC01LFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtNixcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTcsXFxuICAuY29sdW1uID4gLmNvbC14bC04LFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtOSxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTEwLFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMTEsXFxuICAuY29sdW1uID4gLmNvbC14bC0xMixcXG4gIC5mbGV4ID4gLmNvbC14bCxcXG4gIC5mbGV4ID4gLmNvbC14bC1hdXRvLFxcbiAgLmZsZXggPiAuY29sLXhsLWdyb3csXFxuICAuZmxleCA+IC5jb2wteGwtMCxcXG4gIC5mbGV4ID4gLmNvbC14bC0xLFxcbiAgLmZsZXggPiAuY29sLXhsLTIsXFxuICAuZmxleCA+IC5jb2wteGwtMyxcXG4gIC5mbGV4ID4gLmNvbC14bC00LFxcbiAgLmZsZXggPiAuY29sLXhsLTUsXFxuICAuZmxleCA+IC5jb2wteGwtNixcXG4gIC5mbGV4ID4gLmNvbC14bC03LFxcbiAgLmZsZXggPiAuY29sLXhsLTgsXFxuICAuZmxleCA+IC5jb2wteGwtOSxcXG4gIC5mbGV4ID4gLmNvbC14bC0xMCxcXG4gIC5mbGV4ID4gLmNvbC14bC0xMSxcXG4gIC5mbGV4ID4gLmNvbC14bC0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgbWluLWhlaWdodDogMDtcXG4gICAgbWF4LWhlaWdodDogMTAwJTtcXG4gIH1cXG4gIC5jb2wteGwge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxMDAwMDtcXG4gICAgICAgIC1tcy1mbGV4OiAxMDAwMCAxIDAlO1xcbiAgICAgICAgICAgIGZsZXg6IDEwMDAwIDEgMCU7XFxuICB9XFxuICAuY29sLXhsLWF1dG8sXFxuICAuY29sLXhsLTAsXFxuICAuY29sLXhsLTEsXFxuICAuY29sLXhsLTIsXFxuICAuY29sLXhsLTMsXFxuICAuY29sLXhsLTQsXFxuICAuY29sLXhsLTUsXFxuICAuY29sLXhsLTYsXFxuICAuY29sLXhsLTcsXFxuICAuY29sLXhsLTgsXFxuICAuY29sLXhsLTksXFxuICAuY29sLXhsLTEwLFxcbiAgLmNvbC14bC0xMSxcXG4gIC5jb2wteGwtMTIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xcbiAgfVxcbiAgLmNvbC14bC1ncm93IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4OiAxIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAxIDAgYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTAge1xcbiAgICBtYXJnaW4tbGVmdDogMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC0wIHtcXG4gICAgaGVpZ2h0OiAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC0xIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTEge1xcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTEge1xcbiAgICBoZWlnaHQ6IDguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDE2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTIge1xcbiAgICBoZWlnaHQ6IDE2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTMge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAyNSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC0zIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTMge1xcbiAgICBoZWlnaHQ6IDI1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC00IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMzMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC00IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtNCB7XFxuICAgIGhlaWdodDogMzMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtNSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDQxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtNSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTUge1xcbiAgICBoZWlnaHQ6IDQxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTYge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1MCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC02IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTYge1xcbiAgICBoZWlnaHQ6IDUwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC03IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC03IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtNyB7XFxuICAgIGhlaWdodDogNTguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtOCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDY2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtOCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTgge1xcbiAgICBoZWlnaHQ6IDY2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTkge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA3NSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC05IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTkge1xcbiAgICBoZWlnaHQ6IDc1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC0xMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtMTAge1xcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC0xMCB7XFxuICAgIGhlaWdodDogODMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtMTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA5MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTExIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMTEge1xcbiAgICBoZWlnaHQ6IDkxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTEyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC0xMiB7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxufVxcbi5iYWNrZHJvcCB7XFxuICBkaXNwbGF5OiBub25lO1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgd2lkdGg6IDEwMHZ3O1xcbiAgaGVpZ2h0OiAxMDB2aDtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMjhzIGVhc2UtaW47XFxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMjhzIGVhc2UtaW47XFxufVxcbi5iYWNrZHJvcC5hY3RpdmUge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMyk7XFxufVxcbi5yb3VuZC1ib3JkZXJzIHtcXG4gIGJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50O1xcbn1cXG4uZ2VuZXJpYy1tYXJnaW4sXFxuLmdyb3VwID4gKiB7XFxuICBtYXJnaW46IDVweDtcXG59XFxuLm5vLXRyYW5zaXRpb24ge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XFxuICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi50cmFuc2l0aW9uLTAge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwcyAhaW1wb3J0YW50O1xcbiAgdHJhbnNpdGlvbjogMHMgIWltcG9ydGFudDtcXG59XFxuLmdsb3NzeSB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBmcm9tKHJnYmEoMjU1LDI1NSwyNTUsMC4zKSksIGNvbG9yLXN0b3AoNTAlLCByZ2JhKDI1NSwyNTUsMjU1LDApKSwgY29sb3Itc3RvcCg1MSUsIHJnYmEoMCwwLDAsMC4xMikpLCB0byhyZ2JhKDAsMCwwLDAuMDQpKSkgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMjU1LDI1NSwyNTUsMC4zKSwgcmdiYSgyNTUsMjU1LDI1NSwwKSA1MCUsIHJnYmEoMCwwLDAsMC4xMikgNTElLCByZ2JhKDAsMCwwLDAuMDQpKSAhaW1wb3J0YW50O1xcbn1cXG4ucS1wbGFjZWhvbGRlcjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIG9wYWNpdHk6IDAuNTtcXG59XFxuLnEtcGxhY2Vob2xkZXI6Oi1tb3otcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBvcGFjaXR5OiAwLjU7XFxufVxcbi5xLXBsYWNlaG9sZGVyOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIG9wYWNpdHk6IDAuNTtcXG59XFxuLnEtYm9keS1mdWxsc2NyZWVuLW1peGluLFxcbi5xLWJvZHktcHJldmVudC1zY3JvbGwge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xcbn1cXG4ucS1uby1pbnB1dC1zcGlubmVyIHtcXG4gIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkICFpbXBvcnRhbnQ7XFxufVxcbi5xLW5vLWlucHV0LXNwaW5uZXI6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXFxuLnEtbm8taW5wdXQtc3Bpbm5lcjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XFxuICBtYXJnaW46IDA7XFxufVxcbmEucS1saW5rIHtcXG4gIG91dGxpbmU6IDA7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG59XFxuLnEtc2VsZWN0LWhpZ2hsaWdodCB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDE4OSwxODksMTg5LDAuNSkgIWltcG9ydGFudDtcXG59XFxuLmhpZ2hsaWdodC1hbmQtZmFkZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1oaWdobGlnaHQgMnMgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLWhpZ2hsaWdodCAycyAvKiBydGw6aWdub3JlICovO1xcbn1cXG4udHJhbnNpdGlvbi1nZW5lcmljIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3M7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcXG59XFxuLmFuaW1hdGUtc3BpbixcXG4uYW5pbWF0ZS1zcGluLXJldmVyc2Uge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXIgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXNwaW4gMnMgaW5maW5pdGUgbGluZWFyIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5hbmltYXRlLXNwaW4tcmV2ZXJzZSB7XFxuICBhbmltYXRpb24tZGlyZWN0aW9uOiByZXZlcnNlO1xcbn1cXG4uYW5pbWF0ZS1ibGluayB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1ibGluayAxcyBzdGVwcyg1LCBzdGFydCkgaW5maW5pdGUgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLWJsaW5rIDFzIHN0ZXBzKDUsIHN0YXJ0KSBpbmZpbml0ZSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uYW5pbWF0ZS1wb3Age1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtcG9wIDAuMnMgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXBvcCAwLjJzIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5hbmltYXRlLXNjYWxlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXNjYWxlIDAuMnMgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXNjYWxlIDAuMnMgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLmFuaW1hdGUtZmFkZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1mYWRlIDAuMnMgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLWZhZGUgMC4ycyAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uYW5pbWF0ZS1ib3VuY2Uge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtYm91bmNlIDJzIGluZmluaXRlIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1ib3VuY2UgMnMgaW5maW5pdGUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLmFuaW1hdGUtc2hha2Uge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtc2hha2UgMC4xNXM7XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1zaGFrZSAwLjE1cztcXG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7XFxuICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO1xcbn1cXG4uYW5pbWF0ZS1wb3B1cC11cCxcXG4uYW5pbWF0ZS1wb3B1cC1kb3duIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxufVxcbi5hbmltYXRlLXBvcHVwLXVwID4gKixcXG4uYW5pbWF0ZS1wb3B1cC1kb3duID4gKiB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1mYWRlIDAuODJzIGN1YmljLWJlemllcigwLjc4NSwgMC4xMzUsIDAuMTUsIDAuODYpO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtZmFkZSAwLjgycyBjdWJpYy1iZXppZXIoMC43ODUsIDAuMTM1LCAwLjE1LCAwLjg2KTtcXG59XFxuLmFuaW1hdGUtcG9wdXAtZG93biB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1wb3B1cC1kb3duIDAuMzZzIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1wb3B1cC1kb3duIDAuMzZzIC8qIHJ0bDppZ25vcmUgKi87XFxuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wIDBweCAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcCAwcHggLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLmFuaW1hdGUtcG9wdXAtdXAge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtcG9wdXAtdXAgMC4zNnMgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXBvcHVwLXVwIDAuMzZzIC8qIHJ0bDppZ25vcmUgKi87XFxuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tIDBweCAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbSAwcHggLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLmFuaW1hdGUtZmFkZS1sZWZ0IHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLWZhZGUgMC4zNnMgY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44NiksIHEtc2xpZGUtbGVmdCAwLjM2cyBlYXNlO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtZmFkZSAwLjM2cyBjdWJpYy1iZXppZXIoMC43ODUsIDAuMTM1LCAwLjE1LCAwLjg2KSwgcS1zbGlkZS1sZWZ0IDAuMzZzIGVhc2U7XFxufVxcbi5hbmltYXRlLWZhZGUtcmlnaHQge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtZmFkZSAwLjM2cyBjdWJpYy1iZXppZXIoMC43ODUsIDAuMTM1LCAwLjE1LCAwLjg2KSwgcS1zbGlkZS1yaWdodCAwLjM2cyBlYXNlO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtZmFkZSAwLjM2cyBjdWJpYy1iZXppZXIoMC43ODUsIDAuMTM1LCAwLjE1LCAwLjg2KSwgcS1zbGlkZS1yaWdodCAwLjM2cyBlYXNlO1xcbn1cXG4uYW5pbWF0ZWQge1xcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDFzO1xcbiAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xcbiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xcbiAgICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xcbn1cXG4uYW5pbWF0ZWQuaW5maW5pdGUge1xcbiAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcXG4gICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XFxufVxcbi5hbmltYXRlZC5oaW5nZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMnM7XFxuICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMnM7XFxufVxcbi5hbmltYXRlZC5mbGlwT3V0WCxcXG4uYW5pbWF0ZWQuZmxpcE91dFksXFxuLmFuaW1hdGVkLmJvdW5jZUluLFxcbi5hbmltYXRlZC5ib3VuY2VPdXQge1xcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDAuNzVzO1xcbiAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDAuNzVzO1xcbn1cXG4ubm9uLXNlbGVjdGFibGUge1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZSAhaW1wb3J0YW50O1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZSAhaW1wb3J0YW50O1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZSAhaW1wb3J0YW50O1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4uc2Nyb2xsIHtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbn1cXG4uc2Nyb2xsLFxcbi5zY3JvbGwteCxcXG4uc2Nyb2xsLXkge1xcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xcbiAgd2lsbC1jaGFuZ2U6IHNjcm9sbC1wb3NpdGlvbjtcXG59XFxuLnNjcm9sbC14IHtcXG4gIG92ZXJmbG93LXg6IGF1dG87XFxufVxcbi5zY3JvbGwteSB7XFxuICBvdmVyZmxvdy15OiBhdXRvO1xcbn1cXG4ubm8tc2Nyb2xsIHtcXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcXG59XFxuLm5vLXBvaW50ZXItZXZlbnRzIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi5hbGwtcG9pbnRlci1ldmVudHMge1xcbiAgcG9pbnRlci1ldmVudHM6IGFsbCAhaW1wb3J0YW50O1xcbn1cXG4uY3Vyc29yLXBvaW50ZXIge1xcbiAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XFxufVxcbi5jdXJzb3Itbm90LWFsbG93ZWQge1xcbiAgY3Vyc29yOiBub3QtYWxsb3dlZCAhaW1wb3J0YW50O1xcbn1cXG4uY3Vyc29yLWluaGVyaXQge1xcbiAgY3Vyc29yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XFxufVxcbi5yb3RhdGUtNDUge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5yb3RhdGUtOTAge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5yb3RhdGUtMTM1IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5yb3RhdGUtMTgwIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5yb3RhdGUtMjA1IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjA1ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyMDVkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5yb3RhdGUtMjcwIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5yb3RhdGUtMzE1IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzE1ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMTVkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5mbGlwLWhvcml6b250YWwge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XFxufVxcbi5mbGlwLXZlcnRpY2FsIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xcbn1cXG4uZmxvYXQtbGVmdCB7XFxuICBmbG9hdDogbGVmdDtcXG59XFxuLmZsb2F0LXJpZ2h0IHtcXG4gIGZsb2F0OiByaWdodDtcXG59XFxuLnJlbGF0aXZlLXBvc2l0aW9uIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLmZpeGVkLFxcbi5mdWxsc2NyZWVuLFxcbi5maXhlZC1jZW50ZXIsXFxuLmZpeGVkLWJvdHRvbSxcXG4uZml4ZWQtbGVmdCxcXG4uZml4ZWQtcmlnaHQsXFxuLmZpeGVkLXRvcCxcXG4uZml4ZWQtdG9wLWxlZnQsXFxuLmZpeGVkLXRvcC1yaWdodCxcXG4uZml4ZWQtYm90dG9tLWxlZnQsXFxuLmZpeGVkLWJvdHRvbS1yaWdodCB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxufVxcbi5hYnNvbHV0ZSxcXG4uYWJzb2x1dGUtZnVsbCxcXG4uYWJzb2x1dGUtY2VudGVyLFxcbi5hYnNvbHV0ZS1ib3R0b20sXFxuLmFic29sdXRlLWxlZnQsXFxuLmFic29sdXRlLXJpZ2h0LFxcbi5hYnNvbHV0ZS10b3AsXFxuLmFic29sdXRlLXRvcC1sZWZ0LFxcbi5hYnNvbHV0ZS10b3AtcmlnaHQsXFxuLmFic29sdXRlLWJvdHRvbS1sZWZ0LFxcbi5hYnNvbHV0ZS1ib3R0b20tcmlnaHQge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbn1cXG4uZml4ZWQtdG9wLFxcbi5hYnNvbHV0ZS10b3Age1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbn1cXG4uZml4ZWQtcmlnaHQsXFxuLmFic29sdXRlLXJpZ2h0IHtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbn1cXG4uZml4ZWQtYm90dG9tLFxcbi5hYnNvbHV0ZS1ib3R0b20ge1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbn1cXG4uZml4ZWQtbGVmdCxcXG4uYWJzb2x1dGUtbGVmdCB7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbn1cXG4uZml4ZWQtdG9wLWxlZnQsXFxuLmFic29sdXRlLXRvcC1sZWZ0IHtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxufVxcbi5maXhlZC10b3AtcmlnaHQsXFxuLmFic29sdXRlLXRvcC1yaWdodCB7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG59XFxuLmZpeGVkLWJvdHRvbS1sZWZ0LFxcbi5hYnNvbHV0ZS1ib3R0b20tbGVmdCB7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbn1cXG4uZml4ZWQtYm90dG9tLXJpZ2h0LFxcbi5hYnNvbHV0ZS1ib3R0b20tcmlnaHQge1xcbiAgYm90dG9tOiAwO1xcbiAgcmlnaHQ6IDA7XFxufVxcbi5mdWxsc2NyZWVuIHtcXG4gIHotaW5kZXg6IDYwMDA7XFxuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XFxuICBtYXgtd2lkdGg6IDEwMHZ3O1xcbiAgbWF4LWhlaWdodDogMTAwdmg7XFxufVxcbi5hYnNvbHV0ZS1mdWxsLFxcbi5mdWxsc2NyZWVuIHtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG59XFxuLmZpeGVkLWNlbnRlcixcXG4uYWJzb2x1dGUtY2VudGVyIHtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogNTAlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XFxufVxcbi52ZXJ0aWNhbC10b3Age1xcbiAgdmVydGljYWwtYWxpZ246IHRvcCAhaW1wb3J0YW50O1xcbn1cXG4udmVydGljYWwtbWlkZGxlIHtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcXG59XFxuLnZlcnRpY2FsLWJvdHRvbSB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tICFpbXBvcnRhbnQ7XFxufVxcbi5vbi1sZWZ0IHtcXG4gIG1hcmdpbi1yaWdodDogMTJweDtcXG59XFxuLm9uLXJpZ2h0IHtcXG4gIG1hcmdpbi1sZWZ0OiAxMnB4O1xcbn1cXG4ucS1yaXBwbGUtY29udGFpbmVyIHtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB6LWluZGV4OiAwO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcbi5xLXJpcHBsZS1hbmltYXRpb24ge1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMCAvKiBydGw6aWdub3JlICovO1xcbiAgb3BhY2l0eTogMDtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjNzIG9wYWNpdHkgY3ViaWMtYmV6aWVyKDAuMiwgMC40LCAwLjQsIDAuMSksIDAuM3MgLXdlYmtpdC10cmFuc2Zvcm0gY3ViaWMtYmV6aWVyKDAuMiwgMC40LCAwLjQsIDAuOSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIG9wYWNpdHkgY3ViaWMtYmV6aWVyKDAuMiwgMC40LCAwLjQsIDAuMSksIDAuM3MgLXdlYmtpdC10cmFuc2Zvcm0gY3ViaWMtYmV6aWVyKDAuMiwgMC40LCAwLjQsIDAuOSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIHRyYW5zZm9ybSBjdWJpYy1iZXppZXIoMC4yLCAwLjQsIDAuNCwgMC45KSwgMC4zcyBvcGFjaXR5IGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjEpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyB0cmFuc2Zvcm0gY3ViaWMtYmV6aWVyKDAuMiwgMC40LCAwLjQsIDAuOSksIDAuM3Mgb3BhY2l0eSBjdWJpYy1iZXppZXIoMC4yLCAwLjQsIDAuNCwgMC4xKSwgMC4zcyAtd2Via2l0LXRyYW5zZm9ybSBjdWJpYy1iZXppZXIoMC4yLCAwLjQsIDAuNCwgMC45KTtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7XFxufVxcbi5xLXJpcHBsZS1hbmltYXRpb24tZW50ZXIge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lO1xcbiAgdHJhbnNpdGlvbjogbm9uZTtcXG59XFxuLnEtcmlwcGxlLWFuaW1hdGlvbi12aXNpYmxlIHtcXG4gIG9wYWNpdHk6IDAuMTU7XFxufVxcbi5xLXJhZGlhbC1yaXBwbGUge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAtNTAlO1xcbiAgbGVmdDogLTUwJTtcXG4gIHdpZHRoOiAyMDAlO1xcbiAgaGVpZ2h0OiAyMDAlO1xcbn1cXG4ucS1yYWRpYWwtcmlwcGxlOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCBjdXJyZW50Q29sb3IgMTAlLCB0cmFuc3BhcmVudCAxMC4wMSUpO1xcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcXG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxMCwgMTApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEwLCAxMCk7XFxuICBvcGFjaXR5OiAwO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDFzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjVzO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxcywgLXdlYmtpdC10cmFuc2Zvcm0gMC41cztcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzLCBvcGFjaXR5IDFzO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMsIG9wYWNpdHkgMXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNXM7XFxufVxcbi5xLXJhZGlhbC1yaXBwbGUuYWN0aXZlOmFmdGVyIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLCAwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLCAwKTtcXG4gIG9wYWNpdHk6IDAuNDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMHM7XFxuICB0cmFuc2l0aW9uOiAwcztcXG59XFxuOnJvb3Qge1xcbiAgLS1xLXNpemUteHM6IDA7XFxuICAtLXEtc2l6ZS1zbTogNTc2cHg7XFxuICAtLXEtc2l6ZS1tZDogNzY4cHg7XFxuICAtLXEtc2l6ZS1sZzogOTkycHg7XFxuICAtLXEtc2l6ZS14bDogMTIwMHB4O1xcbn1cXG4uZml0IHtcXG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XFxuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcXG59XFxuLmZ1bGwtaGVpZ2h0IHtcXG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xcbn1cXG4uZnVsbC13aWR0aCB7XFxuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xcbiAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcXG4gIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xcbn1cXG4ud2luZG93LWhlaWdodCB7XFxuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XFxuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XFxuICBoZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7XFxufVxcbi53aW5kb3ctd2lkdGgge1xcbiAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcXG4gIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xcbiAgd2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnQ7XFxufVxcbi5ibG9jayB7XFxuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xcbn1cXG4uaW5saW5lLWJsb2NrIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xcbn1cXG4ucS1wYS1ub25lIHtcXG4gIHBhZGRpbmc6IDAgMDtcXG59XFxuLnEtcGwtbm9uZSxcXG4ucS1weC1ub25lIHtcXG4gIHBhZGRpbmctbGVmdDogMDtcXG59XFxuLnEtcHItbm9uZSxcXG4ucS1weC1ub25lIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDA7XFxufVxcbi5xLXB0LW5vbmUsXFxuLnEtcHktbm9uZSB7XFxuICBwYWRkaW5nLXRvcDogMDtcXG59XFxuLnEtcGItbm9uZSxcXG4ucS1weS1ub25lIHtcXG4gIHBhZGRpbmctYm90dG9tOiAwO1xcbn1cXG4ucS1tYS1ub25lIHtcXG4gIG1hcmdpbjogMCAwO1xcbn1cXG4ucS1tbC1ub25lLFxcbi5xLW14LW5vbmUge1xcbiAgbWFyZ2luLWxlZnQ6IDA7XFxufVxcbi5xLW1yLW5vbmUsXFxuLnEtbXgtbm9uZSB7XFxuICBtYXJnaW4tcmlnaHQ6IDA7XFxufVxcbi5xLW10LW5vbmUsXFxuLnEtbXktbm9uZSB7XFxuICBtYXJnaW4tdG9wOiAwO1xcbn1cXG4ucS1tYi1ub25lLFxcbi5xLW15LW5vbmUge1xcbiAgbWFyZ2luLWJvdHRvbTogMDtcXG59XFxuLnEtcGEteHMge1xcbiAgcGFkZGluZzogNHB4IDRweDtcXG59XFxuLnEtcGwteHMsXFxuLnEtcHgteHMge1xcbiAgcGFkZGluZy1sZWZ0OiA0cHg7XFxufVxcbi5xLXByLXhzLFxcbi5xLXB4LXhzIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDRweDtcXG59XFxuLnEtcHQteHMsXFxuLnEtcHkteHMge1xcbiAgcGFkZGluZy10b3A6IDRweDtcXG59XFxuLnEtcGIteHMsXFxuLnEtcHkteHMge1xcbiAgcGFkZGluZy1ib3R0b206IDRweDtcXG59XFxuLnEtbWEteHMge1xcbiAgbWFyZ2luOiA0cHggNHB4O1xcbn1cXG4ucS1tbC14cyxcXG4ucS1teC14cyB7XFxuICBtYXJnaW4tbGVmdDogNHB4O1xcbn1cXG4ucS1tci14cyxcXG4ucS1teC14cyB7XFxuICBtYXJnaW4tcmlnaHQ6IDRweDtcXG59XFxuLnEtbXQteHMsXFxuLnEtbXkteHMge1xcbiAgbWFyZ2luLXRvcDogNHB4O1xcbn1cXG4ucS1tYi14cyxcXG4ucS1teS14cyB7XFxuICBtYXJnaW4tYm90dG9tOiA0cHg7XFxufVxcbi5xLXBhLXNtIHtcXG4gIHBhZGRpbmc6IDhweCA4cHg7XFxufVxcbi5xLXBsLXNtLFxcbi5xLXB4LXNtIHtcXG4gIHBhZGRpbmctbGVmdDogOHB4O1xcbn1cXG4ucS1wci1zbSxcXG4ucS1weC1zbSB7XFxuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XFxufVxcbi5xLXB0LXNtLFxcbi5xLXB5LXNtIHtcXG4gIHBhZGRpbmctdG9wOiA4cHg7XFxufVxcbi5xLXBiLXNtLFxcbi5xLXB5LXNtIHtcXG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XFxufVxcbi5xLW1hLXNtIHtcXG4gIG1hcmdpbjogOHB4IDhweDtcXG59XFxuLnEtbWwtc20sXFxuLnEtbXgtc20ge1xcbiAgbWFyZ2luLWxlZnQ6IDhweDtcXG59XFxuLnEtbXItc20sXFxuLnEtbXgtc20ge1xcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxufVxcbi5xLW10LXNtLFxcbi5xLW15LXNtIHtcXG4gIG1hcmdpbi10b3A6IDhweDtcXG59XFxuLnEtbWItc20sXFxuLnEtbXktc20ge1xcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbn1cXG4ucS1wYS1tZCB7XFxuICBwYWRkaW5nOiAxNnB4IDE2cHg7XFxufVxcbi5xLXBsLW1kLFxcbi5xLXB4LW1kIHtcXG4gIHBhZGRpbmctbGVmdDogMTZweDtcXG59XFxuLnEtcHItbWQsXFxuLnEtcHgtbWQge1xcbiAgcGFkZGluZy1yaWdodDogMTZweDtcXG59XFxuLnEtcHQtbWQsXFxuLnEtcHktbWQge1xcbiAgcGFkZGluZy10b3A6IDE2cHg7XFxufVxcbi5xLXBiLW1kLFxcbi5xLXB5LW1kIHtcXG4gIHBhZGRpbmctYm90dG9tOiAxNnB4O1xcbn1cXG4ucS1tYS1tZCB7XFxuICBtYXJnaW46IDE2cHggMTZweDtcXG59XFxuLnEtbWwtbWQsXFxuLnEtbXgtbWQge1xcbiAgbWFyZ2luLWxlZnQ6IDE2cHg7XFxufVxcbi5xLW1yLW1kLFxcbi5xLW14LW1kIHtcXG4gIG1hcmdpbi1yaWdodDogMTZweDtcXG59XFxuLnEtbXQtbWQsXFxuLnEtbXktbWQge1xcbiAgbWFyZ2luLXRvcDogMTZweDtcXG59XFxuLnEtbWItbWQsXFxuLnEtbXktbWQge1xcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcXG59XFxuLnEtcGEtbGcge1xcbiAgcGFkZGluZzogMjRweCAyNHB4O1xcbn1cXG4ucS1wbC1sZyxcXG4ucS1weC1sZyB7XFxuICBwYWRkaW5nLWxlZnQ6IDI0cHg7XFxufVxcbi5xLXByLWxnLFxcbi5xLXB4LWxnIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDI0cHg7XFxufVxcbi5xLXB0LWxnLFxcbi5xLXB5LWxnIHtcXG4gIHBhZGRpbmctdG9wOiAyNHB4O1xcbn1cXG4ucS1wYi1sZyxcXG4ucS1weS1sZyB7XFxuICBwYWRkaW5nLWJvdHRvbTogMjRweDtcXG59XFxuLnEtbWEtbGcge1xcbiAgbWFyZ2luOiAyNHB4IDI0cHg7XFxufVxcbi5xLW1sLWxnLFxcbi5xLW14LWxnIHtcXG4gIG1hcmdpbi1sZWZ0OiAyNHB4O1xcbn1cXG4ucS1tci1sZyxcXG4ucS1teC1sZyB7XFxuICBtYXJnaW4tcmlnaHQ6IDI0cHg7XFxufVxcbi5xLW10LWxnLFxcbi5xLW15LWxnIHtcXG4gIG1hcmdpbi10b3A6IDI0cHg7XFxufVxcbi5xLW1iLWxnLFxcbi5xLW15LWxnIHtcXG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XFxufVxcbi5xLXBhLXhsIHtcXG4gIHBhZGRpbmc6IDQ4cHggNDhweDtcXG59XFxuLnEtcGwteGwsXFxuLnEtcHgteGwge1xcbiAgcGFkZGluZy1sZWZ0OiA0OHB4O1xcbn1cXG4ucS1wci14bCxcXG4ucS1weC14bCB7XFxuICBwYWRkaW5nLXJpZ2h0OiA0OHB4O1xcbn1cXG4ucS1wdC14bCxcXG4ucS1weS14bCB7XFxuICBwYWRkaW5nLXRvcDogNDhweDtcXG59XFxuLnEtcGIteGwsXFxuLnEtcHkteGwge1xcbiAgcGFkZGluZy1ib3R0b206IDQ4cHg7XFxufVxcbi5xLW1hLXhsIHtcXG4gIG1hcmdpbjogNDhweCA0OHB4O1xcbn1cXG4ucS1tbC14bCxcXG4ucS1teC14bCB7XFxuICBtYXJnaW4tbGVmdDogNDhweDtcXG59XFxuLnEtbXIteGwsXFxuLnEtbXgteGwge1xcbiAgbWFyZ2luLXJpZ2h0OiA0OHB4O1xcbn1cXG4ucS1tdC14bCxcXG4ucS1teS14bCB7XFxuICBtYXJnaW4tdG9wOiA0OHB4O1xcbn1cXG4ucS1tYi14bCxcXG4ucS1teS14bCB7XFxuICBtYXJnaW4tYm90dG9tOiA0OHB4O1xcbn1cXG4ucS1tbC1hdXRvLFxcbi5xLW14LWF1dG8ge1xcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XFxufVxcbi5xLW1yLWF1dG8sXFxuLnEtbXgtYXV0byB7XFxuICBtYXJnaW4tcmlnaHQ6IGF1dG87XFxufVxcbi5xLW15LWZvcm0ge1xcbiAgbWFyZ2luLXRvcDogMTZweDtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG59XFxuLnEtdG91Y2gge1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIHVzZXItZHJhZzogbm9uZTtcXG4gIC1raHRtbC11c2VyLWRyYWc6IG5vbmU7XFxuICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTtcXG59XFxuLnEtdG91Y2gteCB7XFxuICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teDtcXG4gICAgICB0b3VjaC1hY3Rpb246IHBhbi14O1xcbn1cXG4ucS10b3VjaC15IHtcXG4gIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xcbiAgICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XFxufVxcbmJvZHkge1xcbiAgbWluLXdpZHRoOiAxMDBweDtcXG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgJy1hcHBsZS1zeXN0ZW0nLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xcbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XFxuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XFxuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XFxuICBmb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgY29sb3I6ICMwYzBjMGM7XFxuICBtaW4taGVpZ2h0OiAxMDB2aDtcXG59XFxuaDEge1xcbiAgZm9udC1zaXplOiAxMTJweDtcXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XFxuICBsaW5lLWhlaWdodDogMS4xMjtcXG4gIGxldHRlci1zcGFjaW5nOiAtMC4wNGVtO1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgaDEge1xcbiAgICBmb250LXNpemU6IDY3LjJweDtcXG4gIH1cXG59XFxuaDIge1xcbiAgZm9udC1zaXplOiA1NnB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICBoMiB7XFxuICAgIGZvbnQtc2l6ZTogMzMuNnB4O1xcbiAgfVxcbn1cXG5oMyB7XFxuICBmb250LXNpemU6IDQ1cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGluZS1oZWlnaHQ6IDQ4cHg7XFxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgaDMge1xcbiAgICBmb250LXNpemU6IDI3cHg7XFxuICB9XFxufVxcbmg0IHtcXG4gIGZvbnQtc2l6ZTogMzRweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBsaW5lLWhlaWdodDogNDBweDtcXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICBoNCB7XFxuICAgIGZvbnQtc2l6ZTogMjAuNHB4O1xcbiAgfVxcbn1cXG5oNSB7XFxuICBmb250LXNpemU6IDI0cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGluZS1oZWlnaHQ6IDMycHg7XFxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgaDUge1xcbiAgICBmb250LXNpemU6IDE0LjM5OTk5OTk5OTk5OTk5OXB4O1xcbiAgfVxcbn1cXG5oNiB7XFxuICBmb250LXNpemU6IDIwcHg7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuMTI7XFxuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgaDYge1xcbiAgICBmb250LXNpemU6IDEycHg7XFxuICB9XFxufVxcbi5xLWRpc3BsYXktNC1vcGFjaXR5IHtcXG4gIG9wYWNpdHk6IDAuNTQ7XFxufVxcbi5xLWRpc3BsYXktNCB7XFxuICBmb250LXNpemU6IDExMnB4O1xcbiAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjEyO1xcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjA0ZW07XFxufVxcbi5xLWRpc3BsYXktMy1vcGFjaXR5IHtcXG4gIG9wYWNpdHk6IDAuNTQ7XFxufVxcbi5xLWRpc3BsYXktMyB7XFxuICBmb250LXNpemU6IDU2cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XFxuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcXG59XFxuLnEtZGlzcGxheS0yLW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC41NDtcXG59XFxuLnEtZGlzcGxheS0yIHtcXG4gIGZvbnQtc2l6ZTogNDVweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBsaW5lLWhlaWdodDogNDhweDtcXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxufVxcbi5xLWRpc3BsYXktMS1vcGFjaXR5IHtcXG4gIG9wYWNpdHk6IDAuNTQ7XFxufVxcbi5xLWRpc3BsYXktMSB7XFxuICBmb250LXNpemU6IDM0cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XFxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xcbn1cXG4ucS1oZWFkbGluZS1vcGFjaXR5IHtcXG4gIG9wYWNpdHk6IDAuODc7XFxufVxcbi5xLWhlYWRsaW5lIHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBsaW5lLWhlaWdodDogMzJweDtcXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxufVxcbi5xLXRpdGxlLW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC44NztcXG59XFxuLnEtdGl0bGUge1xcbiAgZm9udC1zaXplOiAyMHB4O1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjEyO1xcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcXG59XFxuLnEtc3ViaGVhZGluZy1vcGFjaXR5IHtcXG4gIG9wYWNpdHk6IDAuODc7XFxufVxcbi5xLXN1YmhlYWRpbmcge1xcbiAgZm9udC1zaXplOiAxNnB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG59XFxuLnEtYm9keS0yLW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC44NztcXG59XFxuLnEtYm9keS0yIHtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxufVxcbi5xLWJvZHktMS1vcGFjaXR5IHtcXG4gIG9wYWNpdHk6IDAuODc7XFxufVxcbi5xLWJvZHktMSB7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbn1cXG4ucS1jYXB0aW9uLW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC41NDtcXG59XFxuLnEtY2FwdGlvbiB7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbn1cXG5wIHtcXG4gIG1hcmdpbjogMCAwIDE2cHg7XFxufVxcbi5jYXB0aW9uIHtcXG4gIGNvbG9yOiAjNDI0MjQyO1xcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XFxuICBsaW5lLWhlaWdodDogMjRweDtcXG4gIHBhZGRpbmc6IDA7XFxuICBmb250LXdlaWdodDogMzAwO1xcbn1cXG4udXBwZXJjYXNlIHtcXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxufVxcbi5sb3dlcmNhc2Uge1xcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcXG59XFxuLmNhcGl0YWxpemUge1xcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XFxufVxcbi50ZXh0LWNlbnRlciB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi50ZXh0LWxlZnQge1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG59XFxuLnRleHQtcmlnaHQge1xcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XFxufVxcbi50ZXh0LWp1c3RpZnkge1xcbiAgdGV4dC1hbGlnbjoganVzdGlmeTtcXG4gIC13ZWJraXQtaHlwaGVuczogYXV0bztcXG4gICAgICAtbXMtaHlwaGVuczogYXV0bztcXG4gICAgICAgICAgaHlwaGVuczogYXV0bztcXG59XFxuLnRleHQtaXRhbGljIHtcXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcXG59XFxuLnRleHQtYm9sZCB7XFxuICBmb250LXdlaWdodDogYm9sZDtcXG59XFxuLnRleHQtbm8td3JhcCB7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbn1cXG4udGV4dC13ZWlnaHQtdGhpbiB7XFxuICBmb250LXdlaWdodDogMTAwO1xcbn1cXG4udGV4dC13ZWlnaHQtbGlnaHQge1xcbiAgZm9udC13ZWlnaHQ6IDMwMDtcXG59XFxuLnRleHQtd2VpZ2h0LXJlZ3VsYXIge1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG59XFxuLnRleHQtd2VpZ2h0LW1lZGl1bSB7XFxuICBmb250LXdlaWdodDogNTAwO1xcbn1cXG4udGV4dC13ZWlnaHQtYm9sZCB7XFxuICBmb250LXdlaWdodDogNzAwO1xcbn1cXG4udGV4dC13ZWlnaHQtYm9sZGVyIHtcXG4gIGZvbnQtd2VpZ2h0OiA5MDA7XFxufVxcbnNtYWxsIHtcXG4gIGZvbnQtc2l6ZTogODAlO1xcbn1cXG5iaWcge1xcbiAgZm9udC1zaXplOiAxNzAlO1xcbn1cXG5zdWIge1xcbiAgYm90dG9tOiAtMC4yNWVtO1xcbn1cXG5zdXAge1xcbiAgdG9wOiAtMC41ZW07XFxufVxcbmJsb2NrcXVvdGUge1xcbiAgcGFkZGluZzogOHB4IDE2cHg7XFxuICBtYXJnaW46IDA7XFxuICBmb250LXNpemU6IDE2cHg7XFxuICBib3JkZXItbGVmdDogNHB4IHNvbGlkICMwMjdiZTM7XFxuICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLXEtY29sb3ItcHJpbWFyeSk7XFxufVxcbmJsb2NrcXVvdGUudGV4dC1yaWdodCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xcbiAgcGFkZGluZy1sZWZ0OiAwO1xcbiAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgIzAyN2JlMztcXG4gIGJvcmRlci1yaWdodDogNHB4IHNvbGlkIHZhcigtLXEtY29sb3ItcHJpbWFyeSk7XFxuICBib3JkZXItbGVmdDogMDtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXG5ibG9ja3F1b3RlIHNtYWxsIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgbGluZS1oZWlnaHQ6IDEuNDtcXG4gIGNvbG9yOiAjNzc3O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItZmFkZWQpO1xcbn1cXG5ibG9ja3F1b3RlIHNtYWxsOmJlZm9yZSB7XFxuICBjb250ZW50OiAnXFxcXDIwMTQgXFxcXDAwQTAnO1xcbn1cXG4ucXVvdGUge1xcbiAgcGFkZGluZzogMTBweCAyMHB4O1xcbiAgbWFyZ2luOiAwIDAgMjBweDtcXG4gIGJvcmRlci1sZWZ0OiA1cHggc29saWQgIzAyN2JlMztcXG4gIGJvcmRlci1sZWZ0OiA1cHggc29saWQgdmFyKC0tcS1jb2xvci1wcmltYXJ5KTtcXG59XFxuLnF1b3RlLnRleHQtcmlnaHQge1xcbiAgcGFkZGluZy1yaWdodDogMTVweDtcXG4gIHBhZGRpbmctbGVmdDogMDtcXG4gIGJvcmRlci1yaWdodDogNXB4IHNvbGlkICMwMjdiZTM7XFxuICBib3JkZXItcmlnaHQ6IDVweCBzb2xpZCB2YXIoLS1xLWNvbG9yLXByaW1hcnkpO1xcbiAgYm9yZGVyLWxlZnQ6IDA7XFxuICB0ZXh0LWFsaWduOiByaWdodDtcXG59XFxuZHQge1xcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxufVxcbmRkIHtcXG4gIG1hcmdpbi1sZWZ0OiAwO1xcbn1cXG5kdCxcXG5kZCB7XFxuICBsaW5lLWhlaWdodDogMS40O1xcbn1cXG5kbCB7XFxuICBtYXJnaW4tdG9wOiAwO1xcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcXG59XFxuZGwuaG9yaXpvbnRhbCBkdCB7XFxuICBmbG9hdDogbGVmdDtcXG4gIHdpZHRoOiAyNSU7XFxuICBjbGVhcjogbGVmdDtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG59XFxuZGwuaG9yaXpvbnRhbCBkZCB7XFxuICBtYXJnaW4tbGVmdDogMzAlO1xcbn1cXG5oci5xLWhyLFxcbmhyLnEtaHItZGFyayB7XFxuICBoZWlnaHQ6IDFweDtcXG4gIG1pbi1oZWlnaHQ6IDFweDtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgYm9yZGVyOiBub25lO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG5oci5xLWhyLWRhcmsge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjM2KTtcXG59XFxuLm5vLW1hcmdpbiB7XFxuICBtYXJnaW46IDAgIWltcG9ydGFudDtcXG59XFxuLm5vLXBhZGRpbmcge1xcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xcbn1cXG4ubm8tYm9yZGVyIHtcXG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xcbn1cXG4ubm8tYm9yZGVyLXJhZGl1cyB7XFxuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XFxufVxcbi5uby1ib3gtc2hhZG93IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi5uby1vdXRsaW5lIHtcXG4gIG91dGxpbmU6IDAgIWltcG9ydGFudDtcXG59XFxuLmVsbGlwc2lzIHtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5lbGxpcHNpcy0yLWxpbmVzLFxcbi5lbGxpcHNpcy0zLWxpbmVzIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxufVxcbi5lbGxpcHNpcy0yLWxpbmVzIHtcXG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcXG59XFxuLmVsbGlwc2lzLTMtbGluZXMge1xcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xcbn1cXG4ucmVhZG9ubHkge1xcbiAgY3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7XFxufVxcbi5kaXNhYmxlZCxcXG5bZGlzYWJsZWRdLFxcbi5kaXNhYmxlZCAqLFxcbltkaXNhYmxlZF0gKiB7XFxuICBjdXJzb3I6IG5vdC1hbGxvd2VkICFpbXBvcnRhbnQ7XFxufVxcbi5kaXNhYmxlZCxcXG5bZGlzYWJsZWRdIHtcXG4gIG9wYWNpdHk6IDAuNiAhaW1wb3J0YW50O1xcbn1cXG4uaGlkZGVuIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuLmludmlzaWJsZSB7XFxuICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcXG59XFxuLnRyYW5zcGFyZW50IHtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxufVxcbi5vdmVyZmxvdy1hdXRvIHtcXG4gIG92ZXJmbG93OiBhdXRvICFpbXBvcnRhbnQ7XFxufVxcbi5vdmVyZmxvdy1oaWRkZW4ge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xcbn1cXG4ub3ZlcmZsb3ctaGlkZGVuLXkge1xcbiAgb3ZlcmZsb3cteTogaGlkZGVuICFpbXBvcnRhbnQ7XFxufVxcbi5kaW1tZWQ6YWZ0ZXIsXFxuLmxpZ2h0LWRpbW1lZDphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG59XFxuLmRpbW1lZDphZnRlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNCkgIWltcG9ydGFudDtcXG59XFxuLmxpZ2h0LWRpbW1lZDphZnRlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuNikgIWltcG9ydGFudDtcXG59XFxuLnotdG9wIHtcXG4gIHotaW5kZXg6IDcwMDAgIWltcG9ydGFudDtcXG59XFxuLnotbWF4IHtcXG4gIHotaW5kZXg6IDk5OTggIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLmRlc2t0b3ApIC5kZXNrdG9wLW9ubHksXFxuYm9keS5kZXNrdG9wIC5kZXNrdG9wLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCgubW9iaWxlKSAubW9iaWxlLW9ubHksXFxuYm9keS5tb2JpbGUgLm1vYmlsZS1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLmNvcmRvdmEpIC5jb3Jkb3ZhLW9ubHksXFxuYm9keS5jb3Jkb3ZhIC5jb3Jkb3ZhLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCguZWxlY3Ryb24pIC5lbGVjdHJvbi1vbmx5LFxcbmJvZHkuZWxlY3Ryb24gLmVsZWN0cm9uLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCguaW9zKSAuaW9zLW9ubHksXFxuYm9keS5pb3MgLmlvcy1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLm1hdCkgLm1hdC1vbmx5LFxcbmJvZHkubWF0IC5tYXQtaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC50b3VjaCkgLnRvdWNoLW9ubHksXFxuYm9keS50b3VjaCAudG91Y2gtaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC53aXRoaW4taWZyYW1lKSAud2l0aGluLWlmcmFtZS1vbmx5LFxcbmJvZHkud2l0aGluLWlmcmFtZSAud2l0aGluLWlmcmFtZS1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLnBsYXRmb3JtLWlvcykgLnBsYXRmb3JtLWlvcy1vbmx5LFxcbmJvZHkucGxhdGZvcm0taW9zIC5wbGF0Zm9ybS1pb3MtaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC5wbGF0Zm9ybS1hbmRyb2lkKSAucGxhdGZvcm0tYW5kcm9pZC1vbmx5LFxcbmJvZHkucGxhdGZvcm0tYW5kcm9pZCAucGxhdGZvcm0tYW5kcm9pZC1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuQG1lZGlhIGFsbCBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xcbiAgLm9yaWVudGF0aW9uLWxhbmRzY2FwZSB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuQG1lZGlhIGFsbCBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcXG4gIC5vcmllbnRhdGlvbi1wb3J0cmFpdCB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuQG1lZGlhIHNjcmVlbiB7XFxuICAucHJpbnQtb25seSB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuQG1lZGlhIHByaW50IHtcXG4gIC5wcmludC1oaWRlIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHtcXG4gIC54cy1oaWRlLFxcbiAgLmd0LXhzLFxcbiAgLnNtLFxcbiAgLmd0LXNtLFxcbiAgLm1kLFxcbiAgLmd0LW1kLFxcbiAgLmxnLFxcbiAgLmd0LWxnLFxcbiAgLnhsIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgLnNtLWhpZGUsXFxuICAueHMsXFxuICAubHQtc20sXFxuICAuZ3Qtc20sXFxuICAubWQsXFxuICAuZ3QtbWQsXFxuICAubGcsXFxuICAuZ3QtbGcsXFxuICAueGwge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XFxuICAubWQtaGlkZSxcXG4gIC54cyxcXG4gIC5sdC1zbSxcXG4gIC5zbSxcXG4gIC5sdC1tZCxcXG4gIC5ndC1tZCxcXG4gIC5sZyxcXG4gIC5ndC1sZyxcXG4gIC54bCB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XFxuICAubGctaGlkZSxcXG4gIC54cyxcXG4gIC5sdC1zbSxcXG4gIC5zbSxcXG4gIC5sdC1tZCxcXG4gIC5tZCxcXG4gIC5sdC1sZyxcXG4gIC5ndC1sZyxcXG4gIC54bCB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xcbiAgLnhsLWhpZGUsXFxuICAueHMsXFxuICAubHQtc20sXFxuICAuc20sXFxuICAubHQtbWQsXFxuICAubWQsXFxuICAubHQtbGcsXFxuICAubGcsXFxuICAubHQteGwge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbi5xLWZvY3VzLWhlbHBlciB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwIC8qIHJ0bDppZ25vcmUgKi87XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG4gIG9wYWNpdHk6IDAuMTU7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxufVxcbi5xLWZvY3VzLWhlbHBlci1yb3VuZGVkIHtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG59XFxuLnEtZm9jdXMtaGVscGVyLXJvdW5kIHtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG59XFxuYm9keS5kZXNrdG9wIC5xLWZvY3VzYWJsZTpmb2N1cyAucS1mb2N1cy1oZWxwZXIsXFxuYm9keS5kZXNrdG9wIC5xLWhvdmVyYWJsZTpob3ZlciAucS1mb2N1cy1oZWxwZXIge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG5ib2R5LmlvcyAucS1ob3ZlcmFibGU6YWN0aXZlIC5xLWZvY3VzLWhlbHBlciB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxuICBvcGFjaXR5OiAwLjM7XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSB7XFxuICAucS1pZiA+IC5xLWlmLWlubmVyIHtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IGF1dG87XFxuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICB9XFxuICAucS1pZiA+IC5xLWlmLWlubmVyID4gZGl2ID4gLnEtaW5wdXQtdGFyZ2V0IHtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IGF1dG87XFxuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xcbiAgfVxcbiAgLnEtaWYgPiAucS1pZi1pbm5lciA+IGRpdiA+IGlucHV0LnEtaW5wdXQtdGFyZ2V0IHtcXG4gICAgbWluLXdpZHRoOiAzcmVtO1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMCUgIWltcG9ydGFudDtcXG4gICAgICAgIGZsZXgtYmFzaXM6IDAlICFpbXBvcnRhbnQ7XFxuICB9XFxuICAucS1pbnB1dC10YXJnZXQ6YmVmb3JlIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICB9XFxuICAucS1pZi1sYWJlbC1zcGFjZXIge1xcbiAgICB3aWR0aDogMDtcXG4gIH1cXG4gIC5xLWVkaXRvci10b29sYmFyIC5xLWJ0bi1ncm91cC5yb3cuaW5saW5lIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICB9XFxuICAucS10b29sYmFyLFxcbiAgLnEtYWN0aW9uc2hlZXQtdGl0bGUsXFxuICAucS1maWVsZC1sYWJlbC1pbm5lciB7XFxuICAgIGhlaWdodDogMHB4O1xcbiAgfVxcbiAgLnEtY2Fyb3VzZWwtc2xpZGUge1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICB9XFxuICAucm93ID4gLmNvbC5xLWFsZXJ0LWNvbnRlbnQge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogYXV0bztcXG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XFxuICB9XFxuICAucS1zbGlkZXItaGFuZGxlID4gLnEtY2hpcC5pbmxpbmUucm93IHtcXG4gICAgZGlzcGxheTogdGFibGU7XFxuICB9XFxuICBhLnEtYnRuOm5vdCgucS1idG4tcm91bmQpIHtcXG4gICAgaGVpZ2h0OiAwcHg7XFxuICB9XFxuICAucS1idG4gLnEtYnRuLWlubmVyIHtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IGF1dG87XFxuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xcbiAgfVxcbiAgLnEtYnRuOmFjdGl2ZSAucS1idG4taW5uZXIsXFxuICAucS1idG4uYWN0aXZlIC5xLWJ0bi1pbm5lciB7XFxuICAgIG1hcmdpbjogLTFweCAxcHggMXB4IC0xcHg7XFxuICB9XFxuICAucS1idG46YWN0aXZlLnEtYnRuLXB1c2ggLnEtYnRuLWlubmVyLFxcbiAgLnEtYnRuLmFjdGl2ZS5xLWJ0bi1wdXNoIC5xLWJ0bi1pbm5lciB7XFxuICAgIG1hcmdpbjogMXB4IDFweCAtMXB4IC0xcHg7XFxuICB9XFxuICAucS1idG46YWN0aXZlLnEtYnRuLXB1c2guZGlzYWJsZWQgLnEtYnRuLWlubmVyLFxcbiAgLnEtYnRuLmFjdGl2ZS5xLWJ0bi1wdXNoLmRpc2FibGVkIC5xLWJ0bi1pbm5lciB7XFxuICAgIG1hcmdpbjogLTFweCAxcHggMXB4IC0xcHg7XFxuICB9XFxuICAucS1idG4tZ3JvdXAgPiAucS1idG4ucS1idG4tcHVzaDpub3QoLmRpc2FibGVkKTphY3RpdmUgLnEtYnRuLWlubmVyLFxcbiAgLnEtYnRuLWdyb3VwID4gLnEtYnRuLnEtYnRuLXB1c2g6bm90KC5kaXNhYmxlZCkuYWN0aXZlIC5xLWJ0bi1pbm5lciB7XFxuICAgIG1hcmdpbjogMDtcXG4gIH1cXG4gIC5xLWNoaXA6bm90KC5xLWNoaXAtc21hbGwpOm5vdCgucS1jaGlwLWRlbnNlKSAucS1jaGlwLW1haW4ge1xcbiAgICBsaW5lLWhlaWdodDogMzJweDtcXG4gIH1cXG4gIC5xLWJ0biAucS1jaGlwIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgfVxcbiAgLnEtdGFiIC5xLWNoaXAgLnEtY2hpcC1tYWluIHtcXG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcXG4gIH1cXG4gIC5xLWZhYi1hY3Rpb25zLnEtZmFiLWxlZnQsXFxuICAucS1mYWItYWN0aW9ucy5xLWZhYi1yaWdodCB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgfVxcbiAgLnEtaXRlbS1tYWluIHtcXG4gICAgbWluLXdpZHRoOiAxcHg7XFxuICB9XFxuICAucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtaXRlbSB7XFxuICAgIHBhZGRpbmctbGVmdDogMDtcXG4gICAgcGFkZGluZy1yaWdodDogMDtcXG4gIH1cXG4gIC5xLW1vZGFsLWxheW91dCB7XFxuICAgIG1pbi1oZWlnaHQ6IDgwdmggIWltcG9ydGFudDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIH1cXG59XFxuQHN1cHBvcnRzICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XFxuICAucS1pZiA+IC5xLWlmLWlubmVyIHtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IGF1dG87XFxuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICB9XFxuICAucS1pZiA+IC5xLWlmLWlubmVyID4gZGl2ID4gLnEtaW5wdXQtdGFyZ2V0IHtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IGF1dG87XFxuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xcbiAgfVxcbiAgLnEtaWYgPiAucS1pZi1pbm5lciA+IGRpdiA+IGlucHV0LnEtaW5wdXQtdGFyZ2V0IHtcXG4gICAgbWluLXdpZHRoOiAzcmVtO1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMCUgIWltcG9ydGFudDtcXG4gICAgICAgIGZsZXgtYmFzaXM6IDAlICFpbXBvcnRhbnQ7XFxuICB9XFxuICAucS1pbnB1dC10YXJnZXQ6YmVmb3JlIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICB9XFxuICAucS1pZi1sYWJlbC1zcGFjZXIge1xcbiAgICB3aWR0aDogMDtcXG4gIH1cXG4gIC5xLWVkaXRvci10b29sYmFyIC5xLWJ0bi1ncm91cC5yb3cuaW5saW5lIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICB9XFxuICAucS10b29sYmFyLFxcbiAgLnEtYWN0aW9uc2hlZXQtdGl0bGUsXFxuICAucS1maWVsZC1sYWJlbC1pbm5lciB7XFxuICAgIGhlaWdodDogMHB4O1xcbiAgfVxcbiAgLnEtY2Fyb3VzZWwtc2xpZGUge1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICB9XFxuICAucm93ID4gLmNvbC5xLWFsZXJ0LWNvbnRlbnQge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogYXV0bztcXG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XFxuICB9XFxuICAucS1zbGlkZXItaGFuZGxlID4gLnEtY2hpcC5pbmxpbmUucm93IHtcXG4gICAgZGlzcGxheTogdGFibGU7XFxuICB9XFxuICBhLnEtYnRuOm5vdCgucS1idG4tcm91bmQpIHtcXG4gICAgaGVpZ2h0OiAwcHg7XFxuICB9XFxuICAucS1idG4gLnEtYnRuLWlubmVyIHtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IGF1dG87XFxuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xcbiAgfVxcbiAgLnEtYnRuOmFjdGl2ZSAucS1idG4taW5uZXIsXFxuICAucS1idG4uYWN0aXZlIC5xLWJ0bi1pbm5lciB7XFxuICAgIG1hcmdpbjogLTFweCAxcHggMXB4IC0xcHg7XFxuICB9XFxuICAucS1idG46YWN0aXZlLnEtYnRuLXB1c2ggLnEtYnRuLWlubmVyLFxcbiAgLnEtYnRuLmFjdGl2ZS5xLWJ0bi1wdXNoIC5xLWJ0bi1pbm5lciB7XFxuICAgIG1hcmdpbjogMXB4IDFweCAtMXB4IC0xcHg7XFxuICB9XFxuICAucS1idG46YWN0aXZlLnEtYnRuLXB1c2guZGlzYWJsZWQgLnEtYnRuLWlubmVyLFxcbiAgLnEtYnRuLmFjdGl2ZS5xLWJ0bi1wdXNoLmRpc2FibGVkIC5xLWJ0bi1pbm5lciB7XFxuICAgIG1hcmdpbjogLTFweCAxcHggMXB4IC0xcHg7XFxuICB9XFxuICAucS1idG4tZ3JvdXAgPiAucS1idG4ucS1idG4tcHVzaDpub3QoLmRpc2FibGVkKTphY3RpdmUgLnEtYnRuLWlubmVyLFxcbiAgLnEtYnRuLWdyb3VwID4gLnEtYnRuLnEtYnRuLXB1c2g6bm90KC5kaXNhYmxlZCkuYWN0aXZlIC5xLWJ0bi1pbm5lciB7XFxuICAgIG1hcmdpbjogMDtcXG4gIH1cXG4gIC5xLWNoaXA6bm90KC5xLWNoaXAtc21hbGwpOm5vdCgucS1jaGlwLWRlbnNlKSAucS1jaGlwLW1haW4ge1xcbiAgICBsaW5lLWhlaWdodDogMzJweDtcXG4gIH1cXG4gIC5xLWJ0biAucS1jaGlwIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgfVxcbiAgLnEtdGFiIC5xLWNoaXAgLnEtY2hpcC1tYWluIHtcXG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcXG4gIH1cXG4gIC5xLWZhYi1hY3Rpb25zLnEtZmFiLWxlZnQsXFxuICAucS1mYWItYWN0aW9ucy5xLWZhYi1yaWdodCB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgfVxcbiAgLnEtaXRlbS1tYWluIHtcXG4gICAgbWluLXdpZHRoOiAxcHg7XFxuICB9XFxuICAucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtaXRlbSB7XFxuICAgIHBhZGRpbmctbGVmdDogMDtcXG4gICAgcGFkZGluZy1yaWdodDogMDtcXG4gIH1cXG4gIC5xLW1vZGFsLWxheW91dCB7XFxuICAgIG1pbi1oZWlnaHQ6IDgwdmggIWltcG9ydGFudDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHdlYmtpdC1hdXRvZmlsbC1vbiB7XFxuICB0byB7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgICBjb2xvcjogI2ZmOTgwMDtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyB3ZWJraXQtYXV0b2ZpbGwtb24ge1xcbiAgdG8ge1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gICAgY29sb3I6ICNmZjk4MDA7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyB3ZWJraXQtYXV0b2ZpbGwtb2ZmIHtcXG4gIHRvIHtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgd2Via2l0LWF1dG9maWxsLW9mZiB7XFxuICB0byB7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1wcm9ncmVzcy1pbmRldGVybWluYXRlIHtcXG4gIDAlIHtcXG4gICAgbGVmdDogLTM1JTtcXG4gICAgcmlnaHQ6IDEwMCU7XFxuICB9XFxuICA2MCUge1xcbiAgICBsZWZ0OiAxMDAlO1xcbiAgICByaWdodDogLTkwJTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBsZWZ0OiAxMDAlO1xcbiAgICByaWdodDogLTkwJTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUge1xcbiAgMCUge1xcbiAgICBsZWZ0OiAtMzUlO1xcbiAgICByaWdodDogMTAwJTtcXG4gIH1cXG4gIDYwJSB7XFxuICAgIGxlZnQ6IDEwMCU7XFxuICAgIHJpZ2h0OiAtOTAlO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIGxlZnQ6IDEwMCU7XFxuICAgIHJpZ2h0OiAtOTAlO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1wcm9ncmVzcy1pbmRldGVybWluYXRlLXNob3J0IHtcXG4gIDAlIHtcXG4gICAgbGVmdDogLTIwMCU7XFxuICAgIHJpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgNjAlIHtcXG4gICAgbGVmdDogMTA3JTtcXG4gICAgcmlnaHQ6IC04JTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBsZWZ0OiAxMDclO1xcbiAgICByaWdodDogLTglO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZS1zaG9ydCB7XFxuICAwJSB7XFxuICAgIGxlZnQ6IC0yMDAlO1xcbiAgICByaWdodDogMTAwJTtcXG4gIH1cXG4gIDYwJSB7XFxuICAgIGxlZnQ6IDEwNyU7XFxuICAgIHJpZ2h0OiAtOCU7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgbGVmdDogMTA3JTtcXG4gICAgcmlnaHQ6IC04JTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtcHJvZ3Jlc3Mtc3RyaXBlcyB7XFxuICBmcm9tIHtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNDBweCAwO1xcbiAgfVxcbiAgdG8ge1xcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1wcm9ncmVzcy1zdHJpcGVzIHtcXG4gIGZyb20ge1xcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0MHB4IDA7XFxuICB9XFxuICB0byB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtbWF0LWRhc2gge1xcbiAgMCUge1xcbiAgICBzdHJva2UtZGFzaGFycmF5OiAxLCAyMDA7XFxuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xcbiAgfVxcbiAgNTAlIHtcXG4gICAgc3Ryb2tlLWRhc2hhcnJheTogODksIDIwMDtcXG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0zNXB4O1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDg5LCAyMDA7XFxuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtMTI0cHg7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1tYXQtZGFzaCB7XFxuICAwJSB7XFxuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDEsIDIwMDtcXG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XFxuICB9XFxuICA1MCUge1xcbiAgICBzdHJva2UtZGFzaGFycmF5OiA4OSwgMjAwO1xcbiAgICBzdHJva2UtZGFzaG9mZnNldDogLTM1cHg7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgc3Ryb2tlLWRhc2hhcnJheTogODksIDIwMDtcXG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0xMjRweDtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtaGlnaGxpZ2h0IHtcXG4gIDAlIHtcXG4gICAgYmFja2dyb3VuZDogI2NkZGMzOTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLWhpZ2hsaWdodCB7XFxuICAwJSB7XFxuICAgIGJhY2tncm91bmQ6ICNjZGRjMzk7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXJvdGF0ZSB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCkgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgMjUlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDUwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDc1JSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1yb3RhdGUge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCkgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDI1JSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICA1MCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICA3NSUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1ibGluayB7XFxuICB0byB7XFxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLWJsaW5rIHtcXG4gIHRvIHtcXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1zcGluIHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtc3BpbiB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM1OWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtcG9wIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xcbiAgfVxcbiAgNzAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMDcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNyk7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1wb3Age1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC43KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNyk7XFxuICB9XFxuICA3MCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wNyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA3KTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtZmFkZSB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLWZhZGUge1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXNjYWxlIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtc2NhbGUge1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC43KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNyk7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLWJvdW5jZSB7XFxuICAwJSwgMjAlLCA1MCUsIDgwJSwgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG4gIH1cXG4gIDQwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpO1xcbiAgfVxcbiAgNjAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1cHgpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1ib3VuY2Uge1xcbiAgMCUsIDIwJSwgNTAlLCA4MCUsIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxuICB9XFxuICA0MCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTtcXG4gIH1cXG4gIDYwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1cHgpO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1zaGFrZSB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgfVxcbiAgNTAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1zaGFrZSB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgfVxcbiAgNTAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXBvcHVwLWRvd24ge1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCkgc2NhbGVZKDAuMyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KSBzY2FsZVkoMC4zKTtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICB9XFxuICAzMCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtcG9wdXAtZG93biB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KSBzY2FsZVkoMC4zKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpIHNjYWxlWSgwLjMpO1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIH1cXG4gIDMwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXBvcHVwLXVwIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCkgc2NhbGVZKDAuMyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpIHNjYWxlWSgwLjMpO1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIH1cXG4gIDMwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1wb3B1cC11cCB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpIHNjYWxlWSgwLjMpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KSBzY2FsZVkoMC4zKTtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICB9XFxuICAzMCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1zbGlkZS1sZWZ0IHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTcwJSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03MCUpO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtc2xpZGUtbGVmdCB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03MCUpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNzAlKTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtc2xpZGUtcmlnaHQge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg3MCUpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg3MCUpO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtc2xpZGUtcmlnaHQge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg3MCUpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg3MCUpO1xcbiAgfVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCJcXG5idXR0b24gKyBidXR0b25bZGF0YS12LTRmYmM3MzViXSB7XFxuICBtYXJnaW4tbGVmdDogMC41ZW07XFxufVxcbmJ1dHRvbltkYXRhLXYtNGZiYzczNWJdIHtcXG4gIHBhZGRpbmc6IDAuNGVtIDAuNmVtO1xcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIG91dGxpbmU6IDA7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbmJ1dHRvbltkaXNhYmxlZF1bZGF0YS12LTRmYmM3MzViXSB7XFxuICBib3JkZXItY29sb3I6ICNhZTY1YzU7XFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxufVxcbi5tb2RhbFtkYXRhLXYtNGZiYzczNWJdIHtcXG4gIGNvbG9yOiByZWQ7XFxufVxcblxcbi8qKlxcbiAqIFNlZSBodHRwczovL3Z1ZS1sb2FkZXIudnVlanMub3JnL2d1aWRlL3Njb3BlZC1jc3MuaHRtbCNkZWVwLXNlbGVjdG9yc1xcbiAqIHRoZSBgPj4+YCBhbGxvd3MgdG8gYXBwbHkgc2NvcGVkIGNzcyB0byBjaGlsZCBlbGVtZW50IHRoYXQgaXMgZ2VuZXJhdGVkXFxuICogZHluYW1pY2FsbHlcXG4qKi9cXG4ubW9kYWxbZGF0YS12LTRmYmM3MzViXSAubW9kYWwtc2Nyb2xsIHtcXG4gIGNvbG9yOiByZWQ7XFxuICBtYXgtaGVpZ2h0OiBub25lO1xcbn1cXG4ubW9kYWwgLm1vZGFsLWJvZHlbZGF0YS12LTRmYmM3MzViXSB7XFxuICBtYXgtaGVpZ2h0OiBub25lO1xcbn1cXG5oMVtkYXRhLXYtNGZiYzczNWJdIHtcXG4gIGZvbnQtZmFtaWx5OiBDb3VyaWVyO1xcbiAgZm9udC1zaXplOiAycmVtO1xcbn1cXG5oMltkYXRhLXYtNGZiYzczNWJdIHtcXG4gIGZvbnQtZmFtaWx5OiBDb3VyaWVyO1xcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xcbiAgbWFyZ2luLXRvcDogMnJlbTtcXG59XFxuLmFwcCAucm93W2RhdGEtdi00ZmJjNzM1Yl0ge1xcbiAgZGlzcGxheTogYmxvY2s7XFxufVxcbi5yb3cgKyAucm93W2RhdGEtdi00ZmJjNzM1Yl0ge1xcbiAgbWFyZ2luLXRvcDogMmVtO1xcbn1cXG4ucm93LXNtYWxsW2RhdGEtdi00ZmJjNzM1Yl0ge1xcbiAgbWFyZ2luLXRvcDogMWVtO1xcbn1cXG4uZW1vamktbWFydFtkYXRhLXYtNGZiYzczNWJdIHtcXG4gIG1hcmdpbjogMCBhdXRvO1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG59XFxuLmVtb2ppLW1hcnQtdGl0bGUtbGFiZWxbZGF0YS12LTRmYmM3MzViXSB7XFxuICBmb250LXNpemU6IDIxcHg7XFxufVxcbi5wb3B1cFtkYXRhLXYtNGZiYzczNWJdIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDB2aDtcXG4gIGxlZnQ6IDA7XFxuICB0b3A6IDA7XFxuICB6LWluZGV4OiAyMDA7XFxuICBiYWNrZ3JvdW5kOiByZWJlY2NhcHVycGxlO1xcbiAgb3BhY2l0eTogOTUlO1xcbn1cXG4ucG9wdXAtYm94W2RhdGEtdi00ZmJjNzM1Yl0ge1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHBhZGRpbmctdG9wOiAxMjBweDtcXG4gIHBhZGRpbmctYm90dG9tOiA4MHB4O1xcbn1cXG4ucG9wdXAtY29udGVudFtkYXRhLXYtNGZiYzczNWJdIHtcXG4gIGJhY2tncm91bmQ6IHdoaXRlO1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMjRweCA1NHB4IHJnYmEoMjAsIDI4LCA0OSwgMC4xNCk7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDBweCAyNHB4IDU0cHggcmdiYSgyMCwgMjgsIDQ5LCAwLjE0KTtcXG4gIGJvcmRlci1yYWRpdXM6IDE4cHg7XFxuICBwYWRkaW5nOiA2cHggNnB4IDlweCA2cHg7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1heC13aWR0aDogNDYycHg7XFxuICBtYXJnaW46IDAgYXV0bztcXG59XFxuLnBvcHVwLWNsb3NlW2RhdGEtdi00ZmJjNzM1Yl0ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAyMHB4O1xcbiAgcmlnaHQ6IDMwcHg7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5yb3ctc21hbGwtcGlja2VyW2RhdGEtdi00ZmJjNzM1Yl0gLmVtb2ppLW1hcnQtYW5jaG9ycyBzdmcge1xcbiAgd2lkdGg6IDlweDtcXG4gIGhlaWdodDogOXB4O1xcbn1cXG4ucm93LXNtYWxsLXBpY2tlcltkYXRhLXYtNGZiYzczNWJdIC5lbW9qaS1tYXJ0LXRpdGxlLWxhYmVsIHtcXG4gIGZvbnQtc2l6ZTogOXB4O1xcbn1cXG4ucm93LXNtYWxsLXBpY2tlcltkYXRhLXYtNGZiYzczNWJdIC5lbW9qaS1tYXJ0LXByZXZpZXctZGF0YSB7XFxuICBsZWZ0OiA0MHB4O1xcbiAgZm9udC1zaXplOiA5cHg7XFxufVxcbi5yb3ctc21hbGwtcGlja2VyW2RhdGEtdi00ZmJjNzM1Yl0gLmVtb2ppLW1hcnQtcHJldmlldy1uYW1lIHtcXG4gIGZvbnQtc2l6ZTogOXB4O1xcbn1cXG4ucm93LXNtYWxsLXBpY2tlcltkYXRhLXYtNGZiYzczNWJdIC5lbW9qaS1tYXJ0LXByZXZpZXctZW1vamkgLmVtb2ppLXR5cGUtbmF0aXZlIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIHdpZHRoOiAxMnB4O1xcbiAgaGVpZ2h0OiAxMnB4O1xcbn1cXG5cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9kb2NzL2FwcC52dWVcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIjtBQStUQTtFQUNBLGtCQUFBO0FBQ0E7QUFDQTtFQUNBLG9CQUFBO0VBQ0Esa0JBQUE7RUFDQSxvQ0FBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGVBQUE7QUFDQTtBQUVBO0VBQ0EscUJBQUE7RUFDQSxlQUFBO0FBQ0E7QUFFQTtFQUNBLFVBQUE7QUFDQTs7QUFFQTs7OztFQUlBO0FBQ0E7RUFDQSxVQUFBO0VBQ0EsZ0JBQUE7QUFDQTtBQUNBO0VBQ0EsZ0JBQUE7QUFDQTtBQUVBO0VBQ0Esb0JBQUE7RUFDQSxlQUFBO0FBQ0E7QUFFQTtFQUNBLG9CQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtBQUNBO0FBRUE7RUFDQSxjQUFBO0FBQ0E7QUFFQTtFQUNBLGVBQUE7QUFDQTtBQUVBO0VBQ0EsZUFBQTtBQUNBO0FBRUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7QUFDQTtBQUVBO0VBQ0EsZUFBQTtBQUNBO0FBRUE7RUFDQSxlQUFBO0VBQ0EsV0FBQTtFQUNBLGFBQUE7RUFDQSxPQUFBO0VBQ0EsTUFBQTtFQUNBLFlBQUE7RUFDQSx5QkFBQTtFQUNBLFlBQUE7QUFDQTtBQUNBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7RUFDQSxvQkFBQTtBQUNBO0FBQ0E7RUFDQSxpQkFBQTtFQUNBLHdEQUFBO1VBQUEsZ0RBQUE7RUFDQSxtQkFBQTtFQUNBLHdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0FBQ0E7QUFDQTtFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0FBQ0E7QUFFQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0FBQ0E7QUFDQTtFQUNBLGNBQUE7QUFDQTtBQUNBO0VBQ0EsVUFBQTtFQUNBLGNBQUE7QUFDQTtBQUNBO0VBQ0EsY0FBQTtBQUNBO0FBQ0E7RUFDQSxlQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7QUFDQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCI8dGVtcGxhdGU+XFxuICA8ZGl2IGNsYXNzPVxcXCJhcHBcXFwiPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxoMT5FbW9qaSBNYXJ0IFZ1ZSDwn4+sPC9oMT5cXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgICAgPGVtb2ppIDpkYXRhPVxcXCJpbmRleFxcXCIgZW1vamk9XFxcIjpzYW50YTo6c2tpbi10b25lLTM6XFxcIiA6c2l6ZT1cXFwiMzJcXFwiIC8+XFxuICAgICAgPGVtb2ppIDpkYXRhPVxcXCJpbmRleFxcXCIgZW1vamk9XFxcInNhbnRhXFxcIiBzZXQ9XFxcInR3aXR0ZXJcXFwiIDpzaXplPVxcXCIzMlxcXCIgLz5cXG4gICAgICA8ZW1vamkgOmRhdGE9XFxcImluZGV4XFxcIiA6ZW1vamk9XFxcInNhbnRhRW1vamlPYmplY3RcXFwiIDpzaXplPVxcXCIzMlxcXCIgLz5cXG4gICAgPC9kaXY+XFxuXFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgICAgPGJ1dHRvbiBAY2xpY2s9XFxcInRvZ2dsZVZpc2libGVcXFwiPlNob3cgLyBoaWRlIHRoZSBwaWNrZXI8L2J1dHRvbj5cXG4gICAgICA8YnV0dG9uIEBjbGljaz1cXFwidG9nZ2xlVmlzaWJsZVxcXCIgdi1odG1sPVxcXCJzbWlsZVxcXCI+PC9idXR0b24+XFxuICAgIDwvZGl2PlxcblxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDx0ZW1wbGF0ZVxcbiAgICAgICAgdi1mb3I9XFxcInNldCBpbiBbJ25hdGl2ZScsICdhcHBsZScsICdnb29nbGUnLCAndHdpdHRlcicsICdmYWNlYm9vayddXFxcIlxcbiAgICAgID5cXG4gICAgICAgIDxidXR0b25cXG4gICAgICAgICAgOmtleT1cXFwic2V0XFxcIlxcbiAgICAgICAgICBAY2xpY2s9XFxcImFjdGl2ZVNldCA9IHNldFxcXCJcXG4gICAgICAgICAgOmRpc2FibGVkPVxcXCJhY3RpdmVTZXQgPT0gc2V0XFxcIlxcbiAgICAgICAgPlxcbiAgICAgICAgICB7eyBzZXQgfX1cXG4gICAgICAgIDwvYnV0dG9uPlxcbiAgICAgIDwvdGVtcGxhdGU+XFxuICAgIDwvZGl2PlxcblxcbiAgICA8ZGl2IHYtaWY9XFxcImlzVmlzaWJsZVxcXCIgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgICAgPHBpY2tlclxcbiAgICAgICAgOmRhdGE9XFxcImluZGV4XFxcIlxcbiAgICAgICAgOnNldD1cXFwiYWN0aXZlU2V0XFxcIlxcbiAgICAgICAgOm5hdGl2ZT1cXFwibmF0aXZlXFxcIlxcbiAgICAgICAgOmVtb2ppPVxcXCJlbW9qaVxcXCJcXG4gICAgICAgIDplbW9qaVRvb2x0aXA9XFxcInRydWVcXFwiXFxuICAgICAgICA6dGl0bGU9XFxcInRpdGxlXFxcIlxcbiAgICAgICAgOmVtb2ppU2l6ZT1cXFwiMzBcXFwiXFxuICAgICAgICBAc2VsZWN0PVxcXCJzaG93RW1vamlcXFwiXFxuICAgICAgLz5cXG4gICAgPC9kaXY+XFxuXFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgICAgPGVtb2ppXFxuICAgICAgICB2LWZvcj1cXFwiZW1vIGluIHNlbGVjdGVkRW1vamlzXFxcIlxcbiAgICAgICAgOmtleT1cXFwiZW1vXFxcIlxcbiAgICAgICAgOmRhdGE9XFxcImluZGV4XFxcIlxcbiAgICAgICAgOmVtb2ppPVxcXCJlbW9cXFwiXFxuICAgICAgICA6c2V0PVxcXCJhY3RpdmVTZXRcXFwiXFxuICAgICAgICA6bmF0aXZlPVxcXCJuYXRpdmVcXFwiXFxuICAgICAgICA6c2l6ZT1cXFwiMzJcXFwiXFxuICAgICAgLz5cXG4gICAgPC9kaXY+XFxuXFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgICAge3sgZW1vamlzT3V0cHV0IH19XFxuICAgIDwvZGl2PlxcblxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3ctc21hbGxcXFwiPlxcbiAgICAgIDxpZnJhbWVcXG4gICAgICAgIHNyYz1cXFwiaHR0cHM6Ly9naGJ0bnMuY29tL2dpdGh1Yi1idG4uaHRtbD91c2VyPXNlcmVicm92JnJlcG89ZW1vamktbWFydC12dWUmdHlwZT1zdGFyJmNvdW50PXRydWVcXFwiXFxuICAgICAgICBmcmFtZUJvcmRlcj1cXFwiMFxcXCJcXG4gICAgICAgIHNjcm9sbGluZz1cXFwiMFxcXCJcXG4gICAgICAgIHdpZHRoPVxcXCI5MHB4XFxcIlxcbiAgICAgICAgaGVpZ2h0PVxcXCIyMHB4XFxcIlxcbiAgICAgID48L2lmcmFtZT5cXG4gICAgPC9kaXY+XFxuXFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+PC9kaXY+XFxuICAgIDxoMj5RRGlhbG9nIEV4YW1wbGU8L2gyPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxxLWJ0biBsYWJlbD1cXFwiT3BlbiBRRGlhbG9nXFxcIiBAY2xpY2s9XFxcImVtb2ppUGlja2VyRGlhbG9nID0gdHJ1ZVxcXCIgLz5cXG4gICAgPC9kaXY+XFxuXFxuICAgIDxxLWRpYWxvZyB2LW1vZGVsPVxcXCJlbW9qaVBpY2tlckRpYWxvZ1xcXCI+XFxuICAgICAgPHRlbXBsYXRlIHYtc2xvdDpib2R5IHN0eWxlPVxcXCJoZWlnaHQ6IDQ1MHB4XFxcIj5cXG4gICAgICAgIDxwaWNrZXIgOmRhdGE9XFxcImluZGV4XFxcIiA6ZW1vamlTaXplPVxcXCIyNFxcXCIgOm5hdGl2ZT1cXFwidHJ1ZVxcXCI+PC9waWNrZXI+XFxuICAgICAgPC90ZW1wbGF0ZT5cXG4gICAgPC9xLWRpYWxvZz5cXG5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj48L2Rpdj5cXG4gICAgPGgyPkN1c3RvbSBEaWFsb2cgRXhhbXBsZTwvaDI+XFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgICAgPGJ1dHRvbiBAY2xpY2s9XFxcImVtb2ppUGlja2VyQ3VzdG9tRGlhbG9nID0gdHJ1ZVxcXCI+XFxuICAgICAgICBPcGVuIEN1c3RvbSBEaWFsb2dcXG4gICAgICA8L2J1dHRvbj5cXG4gICAgPC9kaXY+XFxuXFxuICAgIDxkaXYgY2xhc3M9XFxcInBvcHVwXFxcIiB2LWlmPVxcXCJlbW9qaVBpY2tlckN1c3RvbURpYWxvZ1xcXCI+XFxuICAgICAgPGRpdiBjbGFzcz1cXFwicG9wdXAtYm94XFxcIiBAY2xpY2s9XFxcImVtb2ppUGlja2VyQ3VzdG9tRGlhbG9nID0gZmFsc2VcXFwiPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwicG9wdXAtY29udGVudFxcXCIgQGNsaWNrPVxcXCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcXFwiPlxcbiAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJwb3B1cC1jbG9zZVxcXCI+XFxuICAgICAgICAgICAgPGEgQGNsaWNrPVxcXCJlbW9qaVBpY2tlckN1c3RvbURpYWxvZyA9IGZhbHNlXFxcIj5YPC9hPlxcbiAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgPGgyPkVtb2ppIFNlbGVjdG9yPC9oMj5cXG4gICAgICAgICAgPHBpY2tlciA6ZGF0YT1cXFwiaW5kZXhcXFwiIDplbW9qaVNpemU9XFxcIjI0XFxcIiA6bmF0aXZlPVxcXCJ0cnVlXFxcIj48L3BpY2tlcj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj48L2Rpdj5cXG4gICAgPGgyPkN1c3RvbSBTZWFyY2ggQW5kIFByZXZpZXcgVGVtcGxhdGVzIEV4YW1wbGU8L2gyPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxQaWNrZXIgOmRhdGE9XFxcImluZGV4XFxcIiA6bmF0aXZlPVxcXCJ0cnVlXFxcIj5cXG4gICAgICAgIDx0ZW1wbGF0ZSBzbG90PVxcXCJzZWFyY2hUZW1wbGF0ZVxcXCIgc2xvdC1zY29wZT1cXFwic2xvdFByb3BzXFxcIj5cXG4gICAgICAgICAgPGlucHV0XFxuICAgICAgICAgICAgdHlwZT1cXFwidGV4dFxcXCJcXG4gICAgICAgICAgICA6cGxhY2Vob2xkZXI9XFxcInNsb3RQcm9wcy5pMThuLnNlYXJjaFxcXCJcXG4gICAgICAgICAgICB2LW9uOmlucHV0PVxcXCJzbG90UHJvcHMub25TZWFyY2goJGV2ZW50LnRhcmdldC52YWx1ZSlcXFwiXFxuICAgICAgICAgIC8+XFxuICAgICAgICA8L3RlbXBsYXRlPlxcbiAgICAgICAgPHRlbXBsYXRlIHNsb3Q9XFxcInByZXZpZXdUZW1wbGF0ZVxcXCIgc2xvdC1zY29wZT1cXFwic2xvdFByb3BzXFxcIj5cXG4gICAgICAgICAgPGRpdiBjbGFzcz1cXFwiZW1vamktbWFydC1wcmV2aWV3XFxcIj5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJlbW9qaS1tYXJ0LXByZXZpZXctZW1vamlcXFwiPlxcbiAgICAgICAgICAgICAgPEVtb2ppXFxuICAgICAgICAgICAgICAgIDpkYXRhPVxcXCJzbG90UHJvcHMuZGF0YVxcXCJcXG4gICAgICAgICAgICAgICAgOmVtb2ppPVxcXCJzbG90UHJvcHMuZW1vamkgPyBzbG90UHJvcHMuZW1vamkgOiAncG9pbnRfdXAnXFxcIlxcbiAgICAgICAgICAgICAgICA6bmF0aXZlPVxcXCJzbG90UHJvcHMuZW1vamlQcm9wcy5uYXRpdmVcXFwiXFxuICAgICAgICAgICAgICAgIDpza2luPVxcXCJzbG90UHJvcHMuZW1vamlQcm9wcy5za2luXFxcIlxcbiAgICAgICAgICAgICAgICA6c2V0PVxcXCJzbG90UHJvcHMuZW1vamlQcm9wcy5zZXRcXFwiXFxuICAgICAgICAgICAgICAvPlxcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImVtb2ppLW1hcnQtcHJldmlldy1kYXRhXFxcIj5cXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImVtb2ppLW1hcnQtcHJldmlldy1uYW1lXFxcIj5cXG4gICAgICAgICAgICAgICAge3tcXG4gICAgICAgICAgICAgICAgICBzbG90UHJvcHMuZW1vamlcXG4gICAgICAgICAgICAgICAgICAgID8gJ34nICsgc2xvdFByb3BzLmVtb2ppLm5hbWUgKyAnfidcXG4gICAgICAgICAgICAgICAgICAgIDogJ0Nob29zZS4uLidcXG4gICAgICAgICAgICAgICAgfX1cXG4gICAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiZW1vamktbWFydC1wcmV2aWV3LXNob3J0bmFtZXNcXFwiPlxcbiAgICAgICAgICAgICAgICB7eyBzbG90UHJvcHMuZW1vamkgPyBzbG90UHJvcHMuZW1vamkuY29sb25zIDogJycgfX1cXG4gICAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgIDwvdGVtcGxhdGU+XFxuICAgICAgPC9QaWNrZXI+XFxuICAgIDwvZGl2PlxcblxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPjwvZGl2PlxcbiAgICA8aDI+RmlsdGVyZWQgcGlja2VyIGV4YW1wbGU8L2gyPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiIHYtc2hvdz1cXFwiZmxhZ3NWaXNpYmxlXFxcIj5cXG4gICAgICA8UGlja2VyXFxuICAgICAgICA6bmF0aXZlPVxcXCJ0cnVlXFxcIlxcbiAgICAgICAgZW1vamk9XFxcImZsYWctdGZcXFwiXFxuICAgICAgICA6ZW1vamlTaXplPVxcXCIxOFxcXCJcXG4gICAgICAgIDpkYXRhPVxcXCJpbmRleEZpbHRlcmVkXFxcIlxcbiAgICAgICAgcmVmPVxcXCJmbGFnc1xcXCJcXG4gICAgICAvPlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8YnV0dG9uIEBjbGljaz1cXFwidG9nZ2xlRmxhZ3NWaXNpYmxlXFxcIj5cXG4gICAgICAgIFNob3cgLyBoaWRlIHRoZSBmbGFncyBwaWNrZXIgKHdpdGggdi1zaG93KVxcbiAgICAgIDwvYnV0dG9uPlxcbiAgICA8L2Rpdj5cXG5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj48L2Rpdj5cXG4gICAgPGgyPkkxOG4gcGlja2VyIGV4YW1wbGU8L2gyPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxQaWNrZXIgZW1vamk9XFxcImRlcGFydG1lbnRfc3RvcmVcXFwiIDpkYXRhPVxcXCJpbmRleEkxOG5cXFwiIDppMThuPVxcXCJpMThuXFxcIiAvPlxcbiAgICA8L2Rpdj5cXG5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj48L2Rpdj5cXG4gICAgPGgyPkN1c3RvbSBvcmRlciBleGFtcGxlPC9oMj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8UGlja2VyIDpkYXRhPVxcXCJpbmRleEluY2x1ZGVcXFwiIC8+XFxuICAgIDwvZGl2PlxcblxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPjwvZGl2PlxcbiAgICA8aDI+U21hbGwgcGlja2VyIGV4YW1wbGU8L2gyPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3cgcm93LXNtYWxsLXBpY2tlclxcXCI+XFxuICAgICAgPFBpY2tlclxcbiAgICAgICAgOmRhdGE9XFxcImluZGV4XFxcIlxcbiAgICAgICAgOm5hdGl2ZT1cXFwibmF0aXZlXFxcIlxcbiAgICAgICAgOnNldD1cXFwiYWN0aXZlU2V0XFxcIlxcbiAgICAgICAgOmVtb2ppU2l6ZT1cXFwiMTJcXFwiXFxuICAgICAgICA6cGVyTGluZT1cXFwiNVxcXCJcXG4gICAgICAvPlxcbiAgICA8L2Rpdj5cXG4gIDwvZGl2PlxcbjwvdGVtcGxhdGU+XFxuXFxuPHNjcmlwdD5cXG5pbXBvcnQgZGF0YSBmcm9tICcuLi9kYXRhL2FsbC5qc29uJ1xcbmltcG9ydCB7IFBpY2tlciwgRW1vamksIEVtb2ppSW5kZXggfSBmcm9tICcuLi9zcmMnXFxuaW1wb3J0ICcuLi9jc3MvZW1vamktbWFydC5jc3MnXFxuXFxuaW1wb3J0IHsgUUJ0biwgUURpYWxvZyB9IGZyb20gJ3F1YXNhci1mcmFtZXdvcmsvZGlzdC9xdWFzYXIubWF0LmVzbSdcXG5cXG5jb25zdCBDVVNUT01fRU1PSklTID0gW1xcbiAge1xcbiAgICBuYW1lOiAnUGFydHkgUGFycm90JyxcXG4gICAgc2hvcnRfbmFtZXM6IFsncGFycm90J10sXFxuICAgIGtleXdvcmRzOiBbJ3BhcnR5J10sXFxuICAgIGltYWdlVXJsOiAnLi9pbWFnZXMvcGFycm90LmdpZicsXFxuICB9LFxcbiAge1xcbiAgICBuYW1lOiAnT2N0b2NhdCcsXFxuICAgIHNob3J0X25hbWVzOiBbJ29jdG9jYXQnXSxcXG4gICAga2V5d29yZHM6IFsnZ2l0aHViJ10sXFxuICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9naXRodWIuZ2l0aHViYXNzZXRzLmNvbS9pbWFnZXMvaWNvbnMvZW1vamkvb2N0b2NhdC5wbmcnLFxcbiAgfSxcXG4gIHtcXG4gICAgbmFtZTogJ1NxdWlycmVsJyxcXG4gICAgc2hvcnRfbmFtZXM6IFsnc2hpcGl0JywgJ3NxdWlycmVsJ10sXFxuICAgIGtleXdvcmRzOiBbJ2dpdGh1YiddLFxcbiAgICBpbWFnZVVybDogJ2h0dHBzOi8vZ2l0aHViLmdpdGh1YmFzc2V0cy5jb20vaW1hZ2VzL2ljb25zL2Vtb2ppL3NoaXBpdC5wbmcnLFxcbiAgfSxcXG5dXFxuXFxubGV0IGluZGV4ID0gbmV3IEVtb2ppSW5kZXgoZGF0YSwge1xcbiAgY3VzdG9tOiBDVVNUT01fRU1PSklTLFxcbn0pXFxuXFxubGV0IGluZGV4RmlsdGVyZWQgPSBuZXcgRW1vamlJbmRleChkYXRhLCB7XFxuICBjdXN0b206IENVU1RPTV9FTU9KSVMsXFxuICBlbW9qaXNUb1Nob3dGaWx0ZXI6IChlbW9qaSkgPT4ge1xcbiAgICByZXR1cm4gZW1vamkuc2hvcnRfbmFtZXNbMF0ubWF0Y2goL15mbGFnLiovKSAhPT0gbnVsbFxcbiAgfSxcXG59KVxcblxcbmNvbnN0IGkxOG4gPSB7XFxuICBjYXRlZ29yaWVzOiB7XFxuICAgIHNlYXJjaDogJ+aQnOe0oue7k+aenCcsXFxuICAgIHJlY2VudDogJ+e7j+W4uOS9v+eUqCcsXFxuICAgIHNtaWxleXM6ICflv4Pmg4UnLFxcbiAgICBwZW9wbGU6ICfkurrniaknLFxcbiAgICBuYXR1cmU6ICfliqjniakgJiDlpKfoh6rnhLYnLFxcbiAgICBmb29kczogJ+mjn+eJqSAmIOmlruaWmScsXFxuICAgIGFjdGl2aXR5OiAn5rS75YqoJyxcXG4gICAgcGxhY2VzOiAn5peF6KGMICYg5Zyw5qCHJyxcXG4gICAgb2JqZWN0czogJ+eJqeS9kycsXFxuICAgIHN5bWJvbHM6ICfnrKblj7cnLFxcbiAgICBmbGFnczogJ+WbveaXlycsXFxuICAgIGN1c3RvbTogJ+iHquWumuS5iScsXFxuICB9LFxcbn1cXG5cXG5jb25zdCBpbmRleEkxOG4gPSBuZXcgRW1vamlJbmRleChkYXRhLCB7XFxuICBleGNsdWRlOiBbXFxuICAgICdmbGFncycsXFxuICAgICdzeW1ib2xzJyxcXG4gICAgJ29iamVjdHMnLFxcbiAgICAnYWN0aXZpdHknLFxcbiAgICAnZm9vZHMnLFxcbiAgICAncGVvcGxlJyxcXG4gICAgJ3BsYWNlcycsXFxuICBdLFxcbn0pXFxuXFxuY29uc3QgaW5kZXhJbmNsdWRlID0gbmV3IEVtb2ppSW5kZXgoZGF0YSwge1xcbiAgaW5jbHVkZTogWyduYXR1cmUnLCAnc21pbGV5cycsICdyZWNlbnQnXSxcXG59KVxcblxcbmV4cG9ydCBkZWZhdWx0IHtcXG4gIGRhdGEoKSB7XFxuICAgIHJldHVybiB7XFxuICAgICAgaW5kZXg6IGluZGV4LFxcbiAgICAgIGluZGV4RmlsdGVyZWQ6IGluZGV4RmlsdGVyZWQsXFxuICAgICAgaW5kZXhJbmNsdWRlOiBpbmRleEluY2x1ZGUsXFxuICAgICAgaW5kZXhJMThuOiBpbmRleEkxOG4sXFxuICAgICAgaTE4bjogaTE4bixcXG4gICAgICBhY3RpdmVTZXQ6ICduYXRpdmUnLFxcbiAgICAgIGVtb2ppOiAncG9pbnRfdXAnLFxcbiAgICAgIHRpdGxlOiAnUGljayB5b3VyIGVtb2pp4oCmJyxcXG4gICAgICBpc1Zpc2libGU6IHRydWUsXFxuICAgICAgZW1vamlQaWNrZXJEaWFsb2c6IGZhbHNlLFxcbiAgICAgIGVtb2ppUGlja2VyQ3VzdG9tRGlhbG9nOiBmYWxzZSxcXG4gICAgICBlbW9qaXNPdXRwdXQ6ICcnLFxcbiAgICAgIHNlbGVjdGVkRW1vamlzOiBbXSxcXG4gICAgICBmbGFnc1Zpc2libGU6IHRydWUsXFxuICAgIH1cXG4gIH0sXFxuICBjb21wdXRlZDoge1xcbiAgICBuYXRpdmUoKSB7XFxuICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlU2V0ID09ICduYXRpdmUnXFxuICAgIH0sXFxuICAgIHNtaWxlKCkge1xcbiAgICAgIC8vIFN0YXRpYyBlbW9qaSBleGFtcGxlXFxuICAgICAgbGV0IGVtb2ppID0gaW5kZXguZmluZEVtb2ppKCc6c21pbGU6JylcXG4gICAgICAvLyBOb3RlLCB0aGF0IHBvc2l0aW9uIGluIHRoZSBlbW9qaSBzaGVldCBpcyBjYWxjdWxhdGVkIGJ5XFxuICAgICAgLy8gYGVtb2ppYCBvYmplY3RcXG4gICAgICBsZXQgc3R5bGUgPSBgYmFja2dyb3VuZC1wb3NpdGlvbjogJHtlbW9qaS5nZXRQb3NpdGlvbigpfTsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHBzOi8vdW5wa2cuY29tL2Vtb2ppLWRhdGFzb3VyY2UtdHdpdHRlckAxNC4wLjAvaW1nL3R3aXR0ZXIvc2hlZXRzLTI1Ni82NC5wbmcpOyB3aWR0aDogMjRweDsgaGVpZ2h0OiAyNHB4OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJhY2tncm91bmQtc2l6ZTogNTcwMCVgXFxuICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPSdlbW9qaScgc3R5bGU9XFxcIiR7c3R5bGV9XFxcIj48L2Rpdj5gXFxuICAgIH0sXFxuICAgIHNhbnRhRW1vamlPYmplY3QoKSB7XFxuICAgICAgcmV0dXJuIGluZGV4LmZpbmRFbW9qaSgnOnNhbnRhOicpXFxuICAgIH0sXFxuICB9LFxcbiAgbWV0aG9kczoge1xcbiAgICB0b2dnbGVWaXNpYmxlKCkge1xcbiAgICAgIHRoaXMuaXNWaXNpYmxlID0gIXRoaXMuaXNWaXNpYmxlXFxuICAgIH0sXFxuICAgIHRvZ2dsZUZsYWdzVmlzaWJsZSgpIHtcXG4gICAgICB0aGlzLmZsYWdzVmlzaWJsZSA9ICF0aGlzLmZsYWdzVmlzaWJsZVxcbiAgICAgIGlmICghdGhpcy5mbGFnc1Zpc2libGUpIHtcXG4gICAgICAgIHRoaXMuJHJlZnMuZmxhZ3Mub25BbmNob3JDbGljayh0aGlzLiRyZWZzLmZsYWdzLmNhdGVnb3JpZXNbMF0pXFxuICAgICAgfVxcbiAgICB9LFxcbiAgICBzaG93RW1vamkoZW1vamkpIHtcXG4gICAgICB0aGlzLnNlbGVjdGVkRW1vamlzLnB1c2goZW1vamkpXFxuICAgICAgaWYgKGVtb2ppLm5hdGl2ZSkge1xcbiAgICAgICAgdGhpcy5lbW9qaXNPdXRwdXQgPSB0aGlzLmVtb2ppc091dHB1dCArIGVtb2ppLm5hdGl2ZVxcbiAgICAgIH0gZWxzZSB7XFxuICAgICAgICB0aGlzLmVtb2ppc091dHB1dCA9IHRoaXMuZW1vamlzT3V0cHV0ICsgJz8nXFxuICAgICAgfVxcbiAgICB9LFxcbiAgfSxcXG4gIGNvbXBvbmVudHM6IHtcXG4gICAgUGlja2VyLFxcbiAgICBFbW9qaSxcXG4gICAgUUJ0bixcXG4gICAgUURpYWxvZyxcXG4gIH0sXFxufVxcbjwvc2NyaXB0PlxcblxcbjxzdHlsZSBzY29wZWQ+XFxuYnV0dG9uICsgYnV0dG9uIHtcXG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcXG59XFxuYnV0dG9uIHtcXG4gIHBhZGRpbmc6IDAuNGVtIDAuNmVtO1xcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIG91dGxpbmU6IDA7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcblxcbmJ1dHRvbltkaXNhYmxlZF0ge1xcbiAgYm9yZGVyLWNvbG9yOiAjYWU2NWM1O1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbn1cXG5cXG4ubW9kYWwge1xcbiAgY29sb3I6IHJlZDtcXG59XFxuXFxuLyoqXFxuICogU2VlIGh0dHBzOi8vdnVlLWxvYWRlci52dWVqcy5vcmcvZ3VpZGUvc2NvcGVkLWNzcy5odG1sI2RlZXAtc2VsZWN0b3JzXFxuICogdGhlIGA+Pj5gIGFsbG93cyB0byBhcHBseSBzY29wZWQgY3NzIHRvIGNoaWxkIGVsZW1lbnQgdGhhdCBpcyBnZW5lcmF0ZWRcXG4gKiBkeW5hbWljYWxseVxcbioqL1xcbi5tb2RhbCA+Pj4gLm1vZGFsLXNjcm9sbCB7XFxuICBjb2xvcjogcmVkO1xcbiAgbWF4LWhlaWdodDogbm9uZTtcXG59XFxuLm1vZGFsIC5tb2RhbC1ib2R5IHtcXG4gIG1heC1oZWlnaHQ6IG5vbmU7XFxufVxcblxcbmgxIHtcXG4gIGZvbnQtZmFtaWx5OiBDb3VyaWVyO1xcbiAgZm9udC1zaXplOiAycmVtO1xcbn1cXG5cXG5oMiB7XFxuICBmb250LWZhbWlseTogQ291cmllcjtcXG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcXG4gIG1hcmdpbi10b3A6IDJyZW07XFxufVxcblxcbi5hcHAgLnJvdyB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuXFxuLnJvdyArIC5yb3cge1xcbiAgbWFyZ2luLXRvcDogMmVtO1xcbn1cXG5cXG4ucm93LXNtYWxsIHtcXG4gIG1hcmdpbi10b3A6IDFlbTtcXG59XFxuXFxuLmVtb2ppLW1hcnQge1xcbiAgbWFyZ2luOiAwIGF1dG87XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbn1cXG5cXG4uZW1vamktbWFydC10aXRsZS1sYWJlbCB7XFxuICBmb250LXNpemU6IDIxcHg7XFxufVxcblxcbi5wb3B1cCB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwdmg7XFxuICBsZWZ0OiAwO1xcbiAgdG9wOiAwO1xcbiAgei1pbmRleDogMjAwO1xcbiAgYmFja2dyb3VuZDogcmViZWNjYXB1cnBsZTtcXG4gIG9wYWNpdHk6IDk1JTtcXG59XFxuLnBvcHVwLWJveCB7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBvdmVyZmxvdzogYXV0bztcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgcGFkZGluZy10b3A6IDEyMHB4O1xcbiAgcGFkZGluZy1ib3R0b206IDgwcHg7XFxufVxcbi5wb3B1cC1jb250ZW50IHtcXG4gIGJhY2tncm91bmQ6IHdoaXRlO1xcbiAgYm94LXNoYWRvdzogMHB4IDI0cHggNTRweCByZ2JhKDIwLCAyOCwgNDksIDAuMTQpO1xcbiAgYm9yZGVyLXJhZGl1czogMThweDtcXG4gIHBhZGRpbmc6IDZweCA2cHggOXB4IDZweDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgbWF4LXdpZHRoOiA0NjJweDtcXG4gIG1hcmdpbjogMCBhdXRvO1xcbn1cXG4ucG9wdXAtY2xvc2Uge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAyMHB4O1xcbiAgcmlnaHQ6IDMwcHg7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcblxcbi5yb3ctc21hbGwtcGlja2VyID4+PiAuZW1vamktbWFydC1hbmNob3JzIHN2ZyB7XFxuICB3aWR0aDogOXB4O1xcbiAgaGVpZ2h0OiA5cHg7XFxufVxcbi5yb3ctc21hbGwtcGlja2VyID4+PiAuZW1vamktbWFydC10aXRsZS1sYWJlbCB7XFxuICBmb250LXNpemU6IDlweDtcXG59XFxuLnJvdy1zbWFsbC1waWNrZXIgPj4+IC5lbW9qaS1tYXJ0LXByZXZpZXctZGF0YSB7XFxuICBsZWZ0OiA0MHB4O1xcbiAgZm9udC1zaXplOiA5cHg7XFxufVxcbi5yb3ctc21hbGwtcGlja2VyID4+PiAuZW1vamktbWFydC1wcmV2aWV3LW5hbWUge1xcbiAgZm9udC1zaXplOiA5cHg7XFxufVxcbi5yb3ctc21hbGwtcGlja2VyID4+PiAuZW1vamktbWFydC1wcmV2aWV3LWVtb2ppIC5lbW9qaS10eXBlLW5hdGl2ZSB7XFxuICBmb250LXNpemU6IDEycHg7XFxuICB3aWR0aDogMTJweDtcXG4gIGhlaWdodDogMTJweDtcXG59XFxuPC9zdHlsZT5cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qXG4gIE1JVCBMaWNlbnNlIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwXG4gIEF1dGhvciBUb2JpYXMgS29wcGVycyBAc29rcmFcbiovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjc3NXaXRoTWFwcGluZ1RvU3RyaW5nKSB7XG4gIHZhciBsaXN0ID0gW107IC8vIHJldHVybiB0aGUgbGlzdCBvZiBtb2R1bGVzIGFzIGNzcyBzdHJpbmdcblxuICBsaXN0LnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICB2YXIgY29udGVudCA9IFwiXCI7XG4gICAgICB2YXIgbmVlZExheWVyID0gdHlwZW9mIGl0ZW1bNV0gIT09IFwidW5kZWZpbmVkXCI7XG5cbiAgICAgIGlmIChpdGVtWzRdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGl0ZW1bMl0pIHtcbiAgICAgICAgY29udGVudCArPSBcIkBtZWRpYSBcIi5jb25jYXQoaXRlbVsyXSwgXCIge1wiKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG5lZWRMYXllcikge1xuICAgICAgICBjb250ZW50ICs9IFwiQGxheWVyXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChpdGVtWzVdKSA6IFwiXCIsIFwiIHtcIik7XG4gICAgICB9XG5cbiAgICAgIGNvbnRlbnQgKz0gY3NzV2l0aE1hcHBpbmdUb1N0cmluZyhpdGVtKTtcblxuICAgICAgaWYgKG5lZWRMYXllcikge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXRlbVsyXSkge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXRlbVs0XSkge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udGVudDtcbiAgICB9KS5qb2luKFwiXCIpO1xuICB9OyAvLyBpbXBvcnQgYSBsaXN0IG9mIG1vZHVsZXMgaW50byB0aGUgbGlzdFxuXG5cbiAgbGlzdC5pID0gZnVuY3Rpb24gaShtb2R1bGVzLCBtZWRpYSwgZGVkdXBlLCBzdXBwb3J0cywgbGF5ZXIpIHtcbiAgICBpZiAodHlwZW9mIG1vZHVsZXMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIG1vZHVsZXMgPSBbW251bGwsIG1vZHVsZXMsIHVuZGVmaW5lZF1dO1xuICAgIH1cblxuICAgIHZhciBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzID0ge307XG5cbiAgICBpZiAoZGVkdXBlKSB7XG4gICAgICBmb3IgKHZhciBrID0gMDsgayA8IHRoaXMubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgdmFyIGlkID0gdGhpc1trXVswXTtcblxuICAgICAgICBpZiAoaWQgIT0gbnVsbCkge1xuICAgICAgICAgIGFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaWRdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAodmFyIF9rID0gMDsgX2sgPCBtb2R1bGVzLmxlbmd0aDsgX2srKykge1xuICAgICAgdmFyIGl0ZW0gPSBbXS5jb25jYXQobW9kdWxlc1tfa10pO1xuXG4gICAgICBpZiAoZGVkdXBlICYmIGFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaXRlbVswXV0pIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgbGF5ZXIgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtWzVdID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgaXRlbVs1XSA9IGxheWVyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1bMV0gPSBcIkBsYXllclwiLmNvbmNhdChpdGVtWzVdLmxlbmd0aCA+IDAgPyBcIiBcIi5jb25jYXQoaXRlbVs1XSkgOiBcIlwiLCBcIiB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVs1XSA9IGxheWVyO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChtZWRpYSkge1xuICAgICAgICBpZiAoIWl0ZW1bMl0pIHtcbiAgICAgICAgICBpdGVtWzJdID0gbWVkaWE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIiB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChzdXBwb3J0cykge1xuICAgICAgICBpZiAoIWl0ZW1bNF0pIHtcbiAgICAgICAgICBpdGVtWzRdID0gXCJcIi5jb25jYXQoc3VwcG9ydHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1bMV0gPSBcIkBzdXBwb3J0cyAoXCIuY29uY2F0KGl0ZW1bNF0sIFwiKSB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVs0XSA9IHN1cHBvcnRzO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGxpc3QucHVzaChpdGVtKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIGxpc3Q7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh1cmwsIG9wdGlvbnMpIHtcbiAgaWYgKCFvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgaWYgKCF1cmwpIHtcbiAgICByZXR1cm4gdXJsO1xuICB9XG5cbiAgdXJsID0gU3RyaW5nKHVybC5fX2VzTW9kdWxlID8gdXJsLmRlZmF1bHQgOiB1cmwpOyAvLyBJZiB1cmwgaXMgYWxyZWFkeSB3cmFwcGVkIGluIHF1b3RlcywgcmVtb3ZlIHRoZW1cblxuICBpZiAoL15bJ1wiXS4qWydcIl0kLy50ZXN0KHVybCkpIHtcbiAgICB1cmwgPSB1cmwuc2xpY2UoMSwgLTEpO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuaGFzaCkge1xuICAgIHVybCArPSBvcHRpb25zLmhhc2g7XG4gIH0gLy8gU2hvdWxkIHVybCBiZSB3cmFwcGVkP1xuICAvLyBTZWUgaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy12YWx1ZXMtMy8jdXJsc1xuXG5cbiAgaWYgKC9bXCInKCkgXFx0XFxuXXwoJTIwKS8udGVzdCh1cmwpIHx8IG9wdGlvbnMubmVlZFF1b3Rlcykge1xuICAgIHJldHVybiBcIlxcXCJcIi5jb25jYXQodXJsLnJlcGxhY2UoL1wiL2csICdcXFxcXCInKS5yZXBsYWNlKC9cXG4vZywgXCJcXFxcblwiKSwgXCJcXFwiXCIpO1xuICB9XG5cbiAgcmV0dXJuIHVybDtcbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0ZW0pIHtcbiAgdmFyIGNvbnRlbnQgPSBpdGVtWzFdO1xuICB2YXIgY3NzTWFwcGluZyA9IGl0ZW1bM107XG5cbiAgaWYgKCFjc3NNYXBwaW5nKSB7XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cblxuICBpZiAodHlwZW9mIGJ0b2EgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHZhciBiYXNlNjQgPSBidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShjc3NNYXBwaW5nKSkpKTtcbiAgICB2YXIgZGF0YSA9IFwic291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsXCIuY29uY2F0KGJhc2U2NCk7XG4gICAgdmFyIHNvdXJjZU1hcHBpbmcgPSBcIi8qIyBcIi5jb25jYXQoZGF0YSwgXCIgKi9cIik7XG4gICAgdmFyIHNvdXJjZVVSTHMgPSBjc3NNYXBwaW5nLnNvdXJjZXMubWFwKGZ1bmN0aW9uIChzb3VyY2UpIHtcbiAgICAgIHJldHVybiBcIi8qIyBzb3VyY2VVUkw9XCIuY29uY2F0KGNzc01hcHBpbmcuc291cmNlUm9vdCB8fCBcIlwiKS5jb25jYXQoc291cmNlLCBcIiAqL1wiKTtcbiAgICB9KTtcbiAgICByZXR1cm4gW2NvbnRlbnRdLmNvbmNhdChzb3VyY2VVUkxzKS5jb25jYXQoW3NvdXJjZU1hcHBpbmddKS5qb2luKFwiXFxuXCIpO1xuICB9XG5cbiAgcmV0dXJuIFtjb250ZW50XS5qb2luKFwiXFxuXCIpO1xufTsiLCIvKiFcbiAqIFF1YXNhciBGcmFtZXdvcmsgdjAuMTcuMjBcbiAqIChjKSAyMDE2LXByZXNlbnQgUmF6dmFuIFN0b2VuZXNjdVxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxuICovXG52YXIgd2ViU3RvcmFnZSxpc1NTUj1cInVuZGVmaW5lZFwiPT10eXBlb2Ygd2luZG93LGZyb21TU1I9ITEsb25TU1I9aXNTU1I7ZnVuY3Rpb24gZ2V0TWF0Y2godCxlKXt2YXIgaT0vKGVkZ2UpXFwvKFtcXHcuXSspLy5leGVjKHQpfHwvKG9wcilbXFwvXShbXFx3Ll0rKS8uZXhlYyh0KXx8Lyh2aXZhbGRpKVtcXC9dKFtcXHcuXSspLy5leGVjKHQpfHwvKGNocm9tZSlbXFwvXShbXFx3Ll0rKS8uZXhlYyh0KXx8LyhpZW1vYmlsZSlbXFwvXShbXFx3Ll0rKS8uZXhlYyh0KXx8Lyh2ZXJzaW9uKShhcHBsZXdlYmtpdClbXFwvXShbXFx3Ll0rKS4qKHNhZmFyaSlbXFwvXShbXFx3Ll0rKS8uZXhlYyh0KXx8Lyh3ZWJraXQpW1xcL10oW1xcdy5dKykuKih2ZXJzaW9uKVtcXC9dKFtcXHcuXSspLiooc2FmYXJpKVtcXC9dKFtcXHcuXSspLy5leGVjKHQpfHwvKHdlYmtpdClbXFwvXShbXFx3Ll0rKS8uZXhlYyh0KXx8LyhvcGVyYSkoPzouKnZlcnNpb258KVtcXC9dKFtcXHcuXSspLy5leGVjKHQpfHwvKG1zaWUpIChbXFx3Ll0rKS8uZXhlYyh0KXx8dC5pbmRleE9mKFwidHJpZGVudFwiKT49MCYmLyhydikoPzo6fCApKFtcXHcuXSspLy5leGVjKHQpfHx0LmluZGV4T2YoXCJjb21wYXRpYmxlXCIpPDAmJi8obW96aWxsYSkoPzouKj8gcnY6KFtcXHcuXSspfCkvLmV4ZWModCl8fFtdO3JldHVybnticm93c2VyOmlbNV18fGlbM118fGlbMV18fFwiXCIsdmVyc2lvbjppWzJdfHxpWzRdfHxcIjBcIix2ZXJzaW9uTnVtYmVyOmlbNF18fGlbMl18fFwiMFwiLHBsYXRmb3JtOmVbMF18fFwiXCJ9fWZ1bmN0aW9uIGdldFBsYXRmb3JtTWF0Y2godCl7cmV0dXJuLyhpcGFkKS8uZXhlYyh0KXx8LyhpcG9kKS8uZXhlYyh0KXx8Lyh3aW5kb3dzIHBob25lKS8uZXhlYyh0KXx8LyhpcGhvbmUpLy5leGVjKHQpfHwvKGtpbmRsZSkvLmV4ZWModCl8fC8oc2lsaykvLmV4ZWModCl8fC8oYW5kcm9pZCkvLmV4ZWModCl8fC8od2luKS8uZXhlYyh0KXx8LyhtYWMpLy5leGVjKHQpfHwvKGxpbnV4KS8uZXhlYyh0KXx8Lyhjcm9zKS8uZXhlYyh0KXx8LyhwbGF5Ym9vaykvLmV4ZWModCl8fC8oYmIpLy5leGVjKHQpfHwvKGJsYWNrYmVycnkpLy5leGVjKHQpfHxbXX1mdW5jdGlvbiBnZXRQbGF0Zm9ybSh0KXt2YXIgZT1nZXRNYXRjaCh0PSh0fHxuYXZpZ2F0b3IudXNlckFnZW50fHxuYXZpZ2F0b3IudmVuZG9yfHx3aW5kb3cub3BlcmEpLnRvTG93ZXJDYXNlKCksZ2V0UGxhdGZvcm1NYXRjaCh0KSksaT17fTtyZXR1cm4gZS5icm93c2VyJiYoaVtlLmJyb3dzZXJdPSEwLGkudmVyc2lvbj1lLnZlcnNpb24saS52ZXJzaW9uTnVtYmVyPXBhcnNlSW50KGUudmVyc2lvbk51bWJlciwxMCkpLGUucGxhdGZvcm0mJihpW2UucGxhdGZvcm1dPSEwKSwoaS5hbmRyb2lkfHxpLmJifHxpLmJsYWNrYmVycnl8fGkuaXBhZHx8aS5pcGhvbmV8fGkuaXBvZHx8aS5raW5kbGV8fGkucGxheWJvb2t8fGkuc2lsa3x8aVtcIndpbmRvd3MgcGhvbmVcIl0pJiYoaS5tb2JpbGU9ITApLChpLmlwb2R8fGkuaXBhZHx8aS5pcGhvbmUpJiYoaS5pb3M9ITApLGlbXCJ3aW5kb3dzIHBob25lXCJdJiYoaS53aW5waG9uZT0hMCxkZWxldGUgaVtcIndpbmRvd3MgcGhvbmVcIl0pLChpLmNyb3N8fGkubWFjfHxpLmxpbnV4fHxpLndpbikmJihpLmRlc2t0b3A9ITApLChpLmNocm9tZXx8aS5vcHJ8fGkuc2FmYXJpfHxpLnZpdmFsZGkpJiYoaS53ZWJraXQ9ITApLChpLnJ2fHxpLmllbW9iaWxlKSYmKGUuYnJvd3Nlcj1cImllXCIsaS5pZT0hMCksaS5lZGdlJiYoZS5icm93c2VyPVwiZWRnZVwiLGkuZWRnZT0hMCksKGkuc2FmYXJpJiZpLmJsYWNrYmVycnl8fGkuYmIpJiYoZS5icm93c2VyPVwiYmxhY2tiZXJyeVwiLGkuYmxhY2tiZXJyeT0hMCksaS5zYWZhcmkmJmkucGxheWJvb2smJihlLmJyb3dzZXI9XCJwbGF5Ym9va1wiLGkucGxheWJvb2s9ITApLGkub3ByJiYoZS5icm93c2VyPVwib3BlcmFcIixpLm9wZXJhPSEwKSxpLnNhZmFyaSYmaS5hbmRyb2lkJiYoZS5icm93c2VyPVwiYW5kcm9pZFwiLGkuYW5kcm9pZD0hMCksaS5zYWZhcmkmJmkua2luZGxlJiYoZS5icm93c2VyPVwia2luZGxlXCIsaS5raW5kbGU9ITApLGkuc2FmYXJpJiZpLnNpbGsmJihlLmJyb3dzZXI9XCJzaWxrXCIsaS5zaWxrPSEwKSxpLnZpdmFsZGkmJihlLmJyb3dzZXI9XCJ2aXZhbGRpXCIsaS52aXZhbGRpPSEwKSxpLm5hbWU9ZS5icm93c2VyLGkucGxhdGZvcm09ZS5wbGF0Zm9ybSxpc1NTUnx8KHdpbmRvdy5wcm9jZXNzJiZ3aW5kb3cucHJvY2Vzcy52ZXJzaW9ucyYmd2luZG93LnByb2Nlc3MudmVyc2lvbnMuZWxlY3Ryb24/aS5lbGVjdHJvbj0hMDowPT09ZG9jdW1lbnQubG9jYXRpb24uaHJlZi5pbmRleE9mKFwiY2hyb21lLWV4dGVuc2lvbjovL1wiKT9pLmNocm9tZUV4dD0hMDood2luZG93Ll9jb3Jkb3ZhTmF0aXZlfHx3aW5kb3cuY29yZG92YSkmJihpLmNvcmRvdmE9ITApLChmcm9tU1NSPXZvaWQgMD09PWkuY29yZG92YSYmdm9pZCAwPT09aS5lbGVjdHJvbiYmISFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiW2RhdGEtc2VydmVyLXJlbmRlcmVkXVwiKSkmJihvblNTUj0hMCkpLGl9ZnVuY3Rpb24gaGFzV2ViU3RvcmFnZSgpe2lmKHZvaWQgMCE9PXdlYlN0b3JhZ2UpcmV0dXJuIHdlYlN0b3JhZ2U7dHJ5e2lmKHdpbmRvdy5sb2NhbFN0b3JhZ2UpcmV0dXJuIHdlYlN0b3JhZ2U9ITAsITB9Y2F0Y2godCl7fXJldHVybiB3ZWJTdG9yYWdlPSExLCExfWZ1bmN0aW9uIGdldENsaWVudFByb3BlcnRpZXMoKXtyZXR1cm57aGFzOnt0b3VjaDohIShcIm9udG91Y2hzdGFydFwiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KXx8d2luZG93Lm5hdmlnYXRvci5tc01heFRvdWNoUG9pbnRzPjAsd2ViU3RvcmFnZTpoYXNXZWJTdG9yYWdlKCl9LHdpdGhpbjp7aWZyYW1lOndpbmRvdy5zZWxmIT09d2luZG93LnRvcH19fXZhciBQbGF0Zm9ybT17aGFzOnt0b3VjaDohMSx3ZWJTdG9yYWdlOiExfSx3aXRoaW46e2lmcmFtZTohMX0scGFyc2VTU1I6ZnVuY3Rpb24odCl7cmV0dXJuIHQ/e2lzOmdldFBsYXRmb3JtKHQucmVxLmhlYWRlcnNbXCJ1c2VyLWFnZW50XCJdKSxoYXM6dGhpcy5oYXMsd2l0aGluOnRoaXMud2l0aGlufTpPYmplY3QuYXNzaWduKHt9LHtpczpnZXRQbGF0Zm9ybSgpfSxnZXRDbGllbnRQcm9wZXJ0aWVzKCkpfSxpbnN0YWxsOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz10aGlzO2lzU1NSP2Uuc2VydmVyLnB1c2goZnVuY3Rpb24odCxlKXt0LnBsYXRmb3JtPXMucGFyc2VTU1IoZS5zc3IpfSk6KHRoaXMuaXM9Z2V0UGxhdGZvcm0oKSxmcm9tU1NSPyhlLnRha2VvdmVyLnB1c2goZnVuY3Rpb24odCl7b25TU1I9ZnJvbVNTUj0hMSxPYmplY3QuYXNzaWduKHQucGxhdGZvcm0sZ2V0Q2xpZW50UHJvcGVydGllcygpKX0pLGkudXRpbC5kZWZpbmVSZWFjdGl2ZSh0LFwicGxhdGZvcm1cIix0aGlzKSk6KE9iamVjdC5hc3NpZ24odGhpcyxnZXRDbGllbnRQcm9wZXJ0aWVzKCkpLHQucGxhdGZvcm09dGhpcykpfX07ZnVuY3Rpb24gYXNzaWduKHQsZSl7dmFyIGk9YXJndW1lbnRzO2lmKHZvaWQgMD09PXR8fG51bGw9PT10KXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY29udmVydCBmaXJzdCBhcmd1bWVudCB0byBvYmplY3RcIik7Zm9yKHZhciBzPU9iamVjdCh0KSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIG89aVtuXTtpZih2b2lkIDAhPT1vJiZudWxsIT09bylmb3IodmFyIHI9T2JqZWN0LmtleXMoT2JqZWN0KG8pKSxhPTAsbD1yLmxlbmd0aDthPGw7YSsrKXt2YXIgYz1yW2FdLGg9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLGMpO3ZvaWQgMCE9PWgmJmguZW51bWVyYWJsZSYmKHNbY109b1tjXSl9fXJldHVybiBzfU9iamVjdC5hc3NpZ258fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QsXCJhc3NpZ25cIix7ZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6YXNzaWdufSksTnVtYmVyLmlzSW50ZWdlcnx8KE51bWJlci5pc0ludGVnZXI9ZnVuY3Rpb24odCl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mIHQmJmlzRmluaXRlKHQpJiZNYXRoLmZsb29yKHQpPT09dH0pLEFycmF5LnByb3RvdHlwZS5pbmNsdWRlc3x8KEFycmF5LnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbih0LGUpe3ZhciBpPU9iamVjdCh0aGlzKSxzPXBhcnNlSW50KGkubGVuZ3RoLDEwKXx8MDtpZigwPT09cylyZXR1cm4hMTt2YXIgbixvLHI9cGFyc2VJbnQoZSwxMCl8fDA7Zm9yKHI+PTA/bj1yOihuPXMrcik8MCYmKG49MCk7bjxzOyl7aWYodD09PShvPWlbbl0pfHx0IT10JiZvIT1vKXJldHVybiEwO24rK31yZXR1cm4hMX0pLFN0cmluZy5wcm90b3R5cGUuc3RhcnRzV2l0aHx8KFN0cmluZy5wcm90b3R5cGUuc3RhcnRzV2l0aD1mdW5jdGlvbih0LGUpe3JldHVybiBlPWV8fDAsdGhpcy5zdWJzdHIoZSx0Lmxlbmd0aCk9PT10fSksU3RyaW5nLnByb3RvdHlwZS5lbmRzV2l0aHx8KFN0cmluZy5wcm90b3R5cGUuZW5kc1dpdGg9ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLnRvU3RyaW5nKCk7KFwibnVtYmVyXCIhPXR5cGVvZiBlfHwhaXNGaW5pdGUoZSl8fE1hdGguZmxvb3IoZSkhPT1lfHxlPmkubGVuZ3RoKSYmKGU9aS5sZW5ndGgpLGUtPXQubGVuZ3RoO3ZhciBzPWkuaW5kZXhPZih0LGUpO3JldHVybi0xIT09cyYmcz09PWV9KSxpc1NTUnx8KFwiZnVuY3Rpb25cIiE9dHlwZW9mIEVsZW1lbnQucHJvdG90eXBlLm1hdGNoZXMmJihFbGVtZW50LnByb3RvdHlwZS5tYXRjaGVzPUVsZW1lbnQucHJvdG90eXBlLm1zTWF0Y2hlc1NlbGVjdG9yfHxFbGVtZW50LnByb3RvdHlwZS5tb3pNYXRjaGVzU2VsZWN0b3J8fEVsZW1lbnQucHJvdG90eXBlLndlYmtpdE1hdGNoZXNTZWxlY3Rvcnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlPSh0aGlzLmRvY3VtZW50fHx0aGlzLm93bmVyRG9jdW1lbnQpLnF1ZXJ5U2VsZWN0b3JBbGwodCksaT0wO2VbaV0mJmVbaV0hPT10aGlzOykrK2k7cmV0dXJuIEJvb2xlYW4oZVtpXSl9KSxcImZ1bmN0aW9uXCIhPXR5cGVvZiBFbGVtZW50LnByb3RvdHlwZS5jbG9zZXN0JiYoRWxlbWVudC5wcm90b3R5cGUuY2xvc2VzdD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcztlJiYxPT09ZS5ub2RlVHlwZTspe2lmKGUubWF0Y2hlcyh0KSlyZXR1cm4gZTtlPWUucGFyZW50Tm9kZX1yZXR1cm4gbnVsbH0pLFtFbGVtZW50LnByb3RvdHlwZSxDaGFyYWN0ZXJEYXRhLnByb3RvdHlwZSxEb2N1bWVudFR5cGUucHJvdG90eXBlXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuaGFzT3duUHJvcGVydHkoXCJyZW1vdmVcIil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwicmVtb3ZlXCIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ1bmN0aW9uKCl7bnVsbCE9PXRoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMpfX0pfSkpLEFycmF5LnByb3RvdHlwZS5maW5kfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLFwiZmluZFwiLHt2YWx1ZTpmdW5jdGlvbih0KXtpZihudWxsPT10aGlzKXRocm93IG5ldyBUeXBlRXJyb3IoXCJBcnJheS5wcm90b3R5cGUuZmluZCBjYWxsZWQgb24gbnVsbCBvciB1bmRlZmluZWRcIik7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKFwicHJlZGljYXRlIG11c3QgYmUgYSBmdW5jdGlvblwiKTtmb3IodmFyIGUsaT1PYmplY3QodGhpcykscz1pLmxlbmd0aD4+PjAsbj1hcmd1bWVudHNbMV0sbz0wO288cztvKyspaWYoZT1pW29dLHQuY2FsbChuLGUsbyxpKSlyZXR1cm4gZX19KTt2YXIgdmVyc2lvbj1cIjAuMTcuMjBcIixIaXN0b3J5PXtfX2hpc3Rvcnk6W10sYWRkOmZ1bmN0aW9uKCl7fSxyZW1vdmU6ZnVuY3Rpb24oKXt9LGluc3RhbGw6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzO2lmKCFpc1NTUiYmdC5wbGF0Zm9ybS5pcy5jb3Jkb3ZhKXt0aGlzLmFkZD1mdW5jdGlvbih0KXtpLl9faGlzdG9yeS5wdXNoKHQpfSx0aGlzLnJlbW92ZT1mdW5jdGlvbih0KXt2YXIgZT1pLl9faGlzdG9yeS5pbmRleE9mKHQpO2U+PTAmJmkuX19oaXN0b3J5LnNwbGljZShlLDEpfTt2YXIgcz12b2lkIDA9PT1lLmNvcmRvdmF8fCExIT09ZS5jb3Jkb3ZhLmJhY2tCdXR0b25FeGl0O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJkZXZpY2VyZWFkeVwiLGZ1bmN0aW9uKCl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImJhY2tidXR0b25cIixmdW5jdGlvbigpe2kuX19oaXN0b3J5Lmxlbmd0aD9pLl9faGlzdG9yeS5wb3AoKS5oYW5kbGVyKCk6cyYmXCIjL1wiPT09d2luZG93LmxvY2F0aW9uLmhhc2g/bmF2aWdhdG9yLmFwcC5leGl0QXBwKCk6d2luZG93Lmhpc3RvcnkuYmFjaygpfSwhMSl9KX19fSxsYW5nRW49e2xhbmc6XCJlbi11c1wiLGxhYmVsOntjbGVhcjpcIkNsZWFyXCIsb2s6XCJPS1wiLGNhbmNlbDpcIkNhbmNlbFwiLGNsb3NlOlwiQ2xvc2VcIixzZXQ6XCJTZXRcIixzZWxlY3Q6XCJTZWxlY3RcIixyZXNldDpcIlJlc2V0XCIscmVtb3ZlOlwiUmVtb3ZlXCIsdXBkYXRlOlwiVXBkYXRlXCIsY3JlYXRlOlwiQ3JlYXRlXCIsc2VhcmNoOlwiU2VhcmNoXCIsZmlsdGVyOlwiRmlsdGVyXCIscmVmcmVzaDpcIlJlZnJlc2hcIn0sZGF0ZTp7ZGF5czpcIlN1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5XCIuc3BsaXQoXCJfXCIpLGRheXNTaG9ydDpcIlN1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdFwiLnNwbGl0KFwiX1wiKSxtb250aHM6XCJKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyXCIuc3BsaXQoXCJfXCIpLG1vbnRoc1Nob3J0OlwiSmFuX0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWNcIi5zcGxpdChcIl9cIiksZmlyc3REYXlPZldlZWs6MCxmb3JtYXQyNGg6ITF9LHB1bGxUb1JlZnJlc2g6e3B1bGw6XCJQdWxsIGRvd24gdG8gcmVmcmVzaFwiLHJlbGVhc2U6XCJSZWxlYXNlIHRvIHJlZnJlc2hcIixyZWZyZXNoOlwiUmVmcmVzaGluZy4uLlwifSx0YWJsZTp7bm9EYXRhOlwiTm8gZGF0YSBhdmFpbGFibGVcIixub1Jlc3VsdHM6XCJObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kXCIsbG9hZGluZzpcIkxvYWRpbmcuLi5cIixzZWxlY3RlZFJlY29yZHM6ZnVuY3Rpb24odCl7cmV0dXJuIDE9PT10P1wiMSByZWNvcmQgc2VsZWN0ZWQuXCI6KDA9PT10P1wiTm9cIjp0KStcIiByZWNvcmRzIHNlbGVjdGVkLlwifSxyZWNvcmRzUGVyUGFnZTpcIlJlY29yZHMgcGVyIHBhZ2U6XCIsYWxsUm93czpcIkFsbFwiLHBhZ2luYXRpb246ZnVuY3Rpb24odCxlLGkpe3JldHVybiB0K1wiLVwiK2UrXCIgb2YgXCIraX0sY29sdW1uczpcIkNvbHVtbnNcIn0sZWRpdG9yOnt1cmw6XCJVUkxcIixib2xkOlwiQm9sZFwiLGl0YWxpYzpcIkl0YWxpY1wiLHN0cmlrZXRocm91Z2g6XCJTdHJpa2V0aHJvdWdoXCIsdW5kZXJsaW5lOlwiVW5kZXJsaW5lXCIsdW5vcmRlcmVkTGlzdDpcIlVub3JkZXJlZCBMaXN0XCIsb3JkZXJlZExpc3Q6XCJPcmRlcmVkIExpc3RcIixzdWJzY3JpcHQ6XCJTdWJzY3JpcHRcIixzdXBlcnNjcmlwdDpcIlN1cGVyc2NyaXB0XCIsaHlwZXJsaW5rOlwiSHlwZXJsaW5rXCIsdG9nZ2xlRnVsbHNjcmVlbjpcIlRvZ2dsZSBGdWxsc2NyZWVuXCIscXVvdGU6XCJRdW90ZVwiLGxlZnQ6XCJMZWZ0IGFsaWduXCIsY2VudGVyOlwiQ2VudGVyIGFsaWduXCIscmlnaHQ6XCJSaWdodCBhbGlnblwiLGp1c3RpZnk6XCJKdXN0aWZ5IGFsaWduXCIscHJpbnQ6XCJQcmludFwiLG91dGRlbnQ6XCJEZWNyZWFzZSBpbmRlbnRhdGlvblwiLGluZGVudDpcIkluY3JlYXNlIGluZGVudGF0aW9uXCIscmVtb3ZlRm9ybWF0OlwiUmVtb3ZlIGZvcm1hdHRpbmdcIixmb3JtYXR0aW5nOlwiRm9ybWF0dGluZ1wiLGZvbnRTaXplOlwiRm9udCBTaXplXCIsYWxpZ246XCJBbGlnblwiLGhyOlwiSW5zZXJ0IEhvcml6b250YWwgUnVsZVwiLHVuZG86XCJVbmRvXCIscmVkbzpcIlJlZG9cIixoZWFkZXIxOlwiSGVhZGVyIDFcIixoZWFkZXIyOlwiSGVhZGVyIDJcIixoZWFkZXIzOlwiSGVhZGVyIDNcIixoZWFkZXI0OlwiSGVhZGVyIDRcIixoZWFkZXI1OlwiSGVhZGVyIDVcIixoZWFkZXI2OlwiSGVhZGVyIDZcIixwYXJhZ3JhcGg6XCJQYXJhZ3JhcGhcIixjb2RlOlwiQ29kZVwiLHNpemUxOlwiVmVyeSBzbWFsbFwiLHNpemUyOlwiQSBiaXQgc21hbGxcIixzaXplMzpcIk5vcm1hbFwiLHNpemU0OlwiTWVkaXVtLWxhcmdlXCIsc2l6ZTU6XCJCaWdcIixzaXplNjpcIlZlcnkgYmlnXCIsc2l6ZTc6XCJNYXhpbXVtXCIsZGVmYXVsdEZvbnQ6XCJEZWZhdWx0IEZvbnRcIn0sdHJlZTp7bm9Ob2RlczpcIk5vIG5vZGVzIGF2YWlsYWJsZVwiLG5vUmVzdWx0czpcIk5vIG1hdGNoaW5nIG5vZGVzIGZvdW5kXCJ9fSxpMThuPXtpbnN0YWxsOmZ1bmN0aW9uKHQsZSxpLHMpe3ZhciBuPXRoaXM7aXNTU1ImJmUuc2VydmVyLnB1c2goZnVuY3Rpb24odCxlKXt2YXIgaT17bGFuZzp0LmkxOG4ubGFuZyxkaXI6dC5pMThuLnJ0bD9cInJ0bFwiOlwibHRyXCJ9LHM9ZS5zc3Iuc2V0SHRtbEF0dHJzO1wiZnVuY3Rpb25cIj09dHlwZW9mIHM/cyhpKTplLnNzci5RX0hUTUxfQVRUUlM9T2JqZWN0LmtleXMoaSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0K1wiPVwiK2lbdF19KS5qb2luKFwiIFwiKX0pLHRoaXMuc2V0PWZ1bmN0aW9uKGUpe2lmKHZvaWQgMD09PWUmJihlPWxhbmdFbiksZS5zZXQ9bi5zZXQsZS5nZXRMb2NhbGU9bi5nZXRMb2NhbGUsZS5ydGw9ZS5ydGx8fCExLCFpc1NTUil7dmFyIHM9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O3Muc2V0QXR0cmlidXRlKFwiZGlyXCIsZS5ydGw/XCJydGxcIjpcImx0clwiKSxzLnNldEF0dHJpYnV0ZShcImxhbmdcIixlLmxhbmcpfWlzU1NSfHx0LmkxOG4/dC5pMThuPWU6aS51dGlsLmRlZmluZVJlYWN0aXZlKHQsXCJpMThuXCIsZSksbi5uYW1lPWUubGFuZyxuLmxhbmc9ZX0sdGhpcy5zZXQocyl9LGdldExvY2FsZTpmdW5jdGlvbigpe2lmKCFpc1NTUil7dmFyIHQ9bmF2aWdhdG9yLmxhbmd1YWdlfHxuYXZpZ2F0b3IubGFuZ3VhZ2VzWzBdfHxuYXZpZ2F0b3IuYnJvd3Nlckxhbmd1YWdlfHxuYXZpZ2F0b3IudXNlckxhbmd1YWdlfHxuYXZpZ2F0b3Iuc3lzdGVtTGFuZ3VhZ2U7cmV0dXJuIHQ/dC50b0xvd2VyQ2FzZSgpOnZvaWQgMH19fTtmdW5jdGlvbiByZ2JUb0hleCh0KXt2YXIgZT10LnIsaT10Lmcscz10LmIsbj10LmEsbz12b2lkIDAhPT1uO2lmKGU9TWF0aC5yb3VuZChlKSxpPU1hdGgucm91bmQoaSkscz1NYXRoLnJvdW5kKHMpLGU+MjU1fHxpPjI1NXx8cz4yNTV8fG8mJm4+MTAwKXRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCAzIG51bWJlcnMgYmVsb3cgMjU2IChhbmQgb3B0aW9uYWxseSBvbmUgYmVsb3cgMTAwKVwiKTtyZXR1cm4gbj1vPygyNTZ8TWF0aC5yb3VuZCgyNTUqbi8xMDApKS50b1N0cmluZygxNikuc2xpY2UoMSk6XCJcIixcIiNcIisoc3xpPDw4fGU8PDE2fDE8PDI0KS50b1N0cmluZygxNikuc2xpY2UoMSkrbn1mdW5jdGlvbiBoZXhUb1JnYih0KXtpZihcInN0cmluZ1wiIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgYSBzdHJpbmdcIik7Mz09PSh0PXQucmVwbGFjZSgvXiMvLFwiXCIpKS5sZW5ndGg/dD10WzBdK3RbMF0rdFsxXSt0WzFdK3RbMl0rdFsyXTo0PT09dC5sZW5ndGgmJih0PXRbMF0rdFswXSt0WzFdK3RbMV0rdFsyXSt0WzJdK3RbM10rdFszXSk7dmFyIGU9cGFyc2VJbnQodCwxNik7cmV0dXJuIHQubGVuZ3RoPjY/e3I6ZT4+MjQmMjU1LGc6ZT4+MTYmMjU1LGI6ZT4+OCYyNTUsYTpNYXRoLnJvdW5kKCgyNTUmZSkvMi41NSl9OntyOmU+PjE2LGc6ZT4+OCYyNTUsYjoyNTUmZX19ZnVuY3Rpb24gaHN2VG9SZ2IodCl7dmFyIGUsaSxzLG4sbyxyLGEsbCxjPXQuaCxoPXQucyx1PXQudixkPXQuYTtzd2l0Y2gocj0odS89MTAwKSooMS0oaC89MTAwKSksYT11KigxLShvPTYqKGMvPTM2MCktKG49TWF0aC5mbG9vcig2KmMpKSkqaCksbD11KigxLSgxLW8pKmgpLG4lNil7Y2FzZSAwOmU9dSxpPWwscz1yO2JyZWFrO2Nhc2UgMTplPWEsaT11LHM9cjticmVhaztjYXNlIDI6ZT1yLGk9dSxzPWw7YnJlYWs7Y2FzZSAzOmU9cixpPWEscz11O2JyZWFrO2Nhc2UgNDplPWwsaT1yLHM9dTticmVhaztjYXNlIDU6ZT11LGk9cixzPWF9cmV0dXJue3I6TWF0aC5yb3VuZCgyNTUqZSksZzpNYXRoLnJvdW5kKDI1NSppKSxiOk1hdGgucm91bmQoMjU1KnMpLGE6ZH19ZnVuY3Rpb24gcmdiVG9Ic3YodCl7dmFyIGUsaT10LnIscz10Lmcsbj10LmIsbz10LmEscj1NYXRoLm1heChpLHMsbiksYT1NYXRoLm1pbihpLHMsbiksbD1yLWEsYz0wPT09cj8wOmwvcixoPXIvMjU1O3N3aXRjaChyKXtjYXNlIGE6ZT0wO2JyZWFrO2Nhc2UgaTplPXMtbitsKihzPG4/NjowKSxlLz02Kmw7YnJlYWs7Y2FzZSBzOmU9bi1pKzIqbCxlLz02Kmw7YnJlYWs7Y2FzZSBuOmU9aS1zKzQqbCxlLz02Kmx9cmV0dXJue2g6TWF0aC5yb3VuZCgzNjAqZSksczpNYXRoLnJvdW5kKDEwMCpjKSx2Ok1hdGgucm91bmQoMTAwKmgpLGE6b319dmFyIHJlUkdCQT0vXlxccypyZ2IoYSk/XFxzKlxcKChcXHMqKFxcZCspXFxzKixcXHMqPyl7Mn0oXFxkKylcXHMqLD9cXHMqKFswMV0/XFwuP1xcZCo/KT9cXHMqXFwpXFxzKiQvO2Z1bmN0aW9uIHRleHRUb1JnYih0KXtpZihcInN0cmluZ1wiIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgYSBzdHJpbmdcIik7dmFyIGU9cmVSR0JBLmV4ZWModCk7aWYoZSl7dmFyIGk9e3I6TWF0aC5tYXgoMjU1LHBhcnNlSW50KGVbMl0sMTApKSxnOk1hdGgubWF4KDI1NSxwYXJzZUludChlWzNdLDEwKSksYjpNYXRoLm1heCgyNTUscGFyc2VJbnQoZVs0XSwxMCkpfTtyZXR1cm4gZVsxXSYmKGkuYT1NYXRoLm1heCgxLHBhcnNlRmxvYXQoZVs1XSkpKSxpfXJldHVybiBoZXhUb1JnYih0KX1mdW5jdGlvbiBsaWdodGVuKHQsZSl7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGEgc3RyaW5nIGFzIGNvbG9yXCIpO2lmKFwibnVtYmVyXCIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBhIG51bWVyaWMgcGVyY2VudFwiKTt2YXIgaT10ZXh0VG9SZ2IodCkscz1lPDA/MDoyNTUsbj1NYXRoLmFicyhlKS8xMDAsbz1pLnIscj1pLmcsYT1pLmI7cmV0dXJuXCIjXCIrKDE2Nzc3MjE2KzY1NTM2KihNYXRoLnJvdW5kKChzLW8pKm4pK28pKzI1NiooTWF0aC5yb3VuZCgocy1yKSpuKStyKSsoTWF0aC5yb3VuZCgocy1hKSpuKSthKSkudG9TdHJpbmcoMTYpLnNsaWNlKDEpfWZ1bmN0aW9uIGx1bWlub3NpdHkodCl7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIHQmJighdHx8dm9pZCAwPT09dC5yKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgYSBzdHJpbmcgb3IgYSB7ciwgZywgYn0gb2JqZWN0IGFzIGNvbG9yXCIpO3ZhciBlPVwic3RyaW5nXCI9PXR5cGVvZiB0P3RleHRUb1JnYih0KTp0LGk9ZS5yLzI1NSxzPWUuZy8yNTUsbj1lLmIvMjU1O3JldHVybi4yMTI2KihpPD0uMDM5Mjg/aS8xMi45MjpNYXRoLnBvdygoaSsuMDU1KS8xLjA1NSwyLjQpKSsuNzE1Miooczw9LjAzOTI4P3MvMTIuOTI6TWF0aC5wb3coKHMrLjA1NSkvMS4wNTUsMi40KSkrLjA3MjIqKG48PS4wMzkyOD9uLzEyLjkyOk1hdGgucG93KChuKy4wNTUpLzEuMDU1LDIuNCkpfWZ1bmN0aW9uIHNldEJyYW5kKHQsZSxpKXtpZih2b2lkIDA9PT1pJiYoaT1kb2N1bWVudC5ib2R5KSxcInN0cmluZ1wiIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgYSBzdHJpbmcgYXMgY29sb3JcIik7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGEgc3RyaW5nIGFzIHZhbHVlXCIpO2lmKCEoaSBpbnN0YW5jZW9mIEVsZW1lbnQpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBhIERPTSBlbGVtZW50XCIpO3N3aXRjaChpLnN0eWxlLnNldFByb3BlcnR5KFwiLS1xLWNvbG9yLVwiK3QsZSksdCl7Y2FzZVwibmVnYXRpdmVcIjpjYXNlXCJ3YXJuaW5nXCI6aS5zdHlsZS5zZXRQcm9wZXJ0eShcIi0tcS1jb2xvci1cIit0K1wiLWxcIixsaWdodGVuKGUsNDYpKTticmVhaztjYXNlXCJsaWdodFwiOmkuc3R5bGUuc2V0UHJvcGVydHkoXCItLXEtY29sb3ItXCIrdCtcIi1kXCIsbGlnaHRlbihlLC0xMCkpfX1mdW5jdGlvbiBnZXRCcmFuZCh0LGUpe2lmKHZvaWQgMD09PWUmJihlPWRvY3VtZW50LmJvZHkpLFwic3RyaW5nXCIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBhIHN0cmluZyBhcyBjb2xvclwiKTtpZighKGUgaW5zdGFuY2VvZiBFbGVtZW50KSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgYSBET00gZWxlbWVudFwiKTtyZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZShlKS5nZXRQcm9wZXJ0eVZhbHVlKFwiLS1xLWNvbG9yLVwiK3QpLnRyaW0oKXx8bnVsbH12YXIgY29sb3JzPXtyZ2JUb0hleDpyZ2JUb0hleCxoZXhUb1JnYjpoZXhUb1JnYixoc3ZUb1JnYjpoc3ZUb1JnYixyZ2JUb0hzdjpyZ2JUb0hzdix0ZXh0VG9SZ2I6dGV4dFRvUmdiLGxpZ2h0ZW46bGlnaHRlbixsdW1pbm9zaXR5Omx1bWlub3NpdHksc2V0QnJhbmQ6c2V0QnJhbmQsZ2V0QnJhbmQ6Z2V0QnJhbmR9O2Z1bmN0aW9uIGdldEJvZHlDbGFzc2VzKHQsZSl7dmFyIGk9dC5pcyxzPXQuaGFzLG49dC53aXRoaW4sbz1bXCJtYXRcIixpLmRlc2t0b3A/XCJkZXNrdG9wXCI6XCJtb2JpbGVcIixzLnRvdWNoP1widG91Y2hcIjpcIm5vLXRvdWNoXCIsXCJwbGF0Zm9ybS1cIisoaS5pb3M/XCJpb3NcIjpcIm1hdFwiKV07aWYoaS5jb3Jkb3ZhJiYoby5wdXNoKFwiY29yZG92YVwiKSxpLmlvcyYmKHZvaWQgMD09PWUuY29yZG92YXx8ITEhPT1lLmNvcmRvdmEuaW9zU3RhdHVzQmFyUGFkZGluZykpKXt2YXIgcj13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8MSxhPXdpbmRvdy5zY3JlZW4ud2lkdGgqcixsPXdpbmRvdy5zY3JlZW4uaGVpZ2h0KnI7MTEyNT09PWEmJjI0MzY9PT1sJiZvLnB1c2goXCJxLWlvcy1zdGF0dXNiYXIteFwiKSwxMTI1PT09YSYmMjAwMT09PWx8fG8ucHVzaChcInEtaW9zLXN0YXR1c2Jhci1wYWRkaW5nXCIpfXJldHVybiBuLmlmcmFtZSYmby5wdXNoKFwid2l0aGluLWlmcmFtZVwiKSxpLmVsZWN0cm9uJiZvLnB1c2goXCJlbGVjdHJvblwiKSxvfWZ1bmN0aW9uIGJvZHlJbml0KHQsZSl7dmFyIGk9Z2V0Qm9keUNsYXNzZXModCxlKTt0LmlzLmllJiYxMT09PXQuaXMudmVyc2lvbk51bWJlcj9pLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCh0KX0pOmRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZC5hcHBseShkb2N1bWVudC5ib2R5LmNsYXNzTGlzdCxpKSx0LmlzLmlvcyYmZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLGZ1bmN0aW9uKCl7fSl9ZnVuY3Rpb24gc2V0Q29sb3JzKHQpe2Zvcih2YXIgZSBpbiB0KXNldEJyYW5kKGUsdFtlXSl9dmFyIEJvZHk9e2luc3RhbGw6ZnVuY3Rpb24odCxlLGkpe2lzU1NSP2Uuc2VydmVyLnB1c2goZnVuY3Rpb24odCxlKXt2YXIgcz1nZXRCb2R5Q2xhc3Nlcyh0LnBsYXRmb3JtLGkpLG49ZS5zc3Iuc2V0Qm9keUNsYXNzZXM7XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uKHMpOmUuc3NyLlFfQk9EWV9DTEFTU0VTPXMuam9pbihcIiBcIil9KTooaS5icmFuZCYmc2V0Q29sb3JzKGkuYnJhbmQpLGJvZHlJbml0KHQucGxhdGZvcm0saSkpfX0sbWF0ZXJpYWxJY29ucz17bmFtZTpcIm1hdGVyaWFsLWljb25zXCIsdHlwZTp7cG9zaXRpdmU6XCJjaGVja19jaXJjbGVcIixuZWdhdGl2ZTpcIndhcm5pbmdcIixpbmZvOlwiaW5mb1wiLHdhcm5pbmc6XCJwcmlvcml0eV9oaWdoXCJ9LGFycm93Ont1cDpcImFycm93X3Vwd2FyZFwiLHJpZ2h0OlwiYXJyb3dfZm9yd2FyZFwiLGRvd246XCJhcnJvd19kb3dud2FyZFwiLGxlZnQ6XCJhcnJvd19iYWNrXCJ9LGNoZXZyb246e2xlZnQ6XCJjaGV2cm9uX2xlZnRcIixyaWdodDpcImNoZXZyb25fcmlnaHRcIn0scHVsbFRvUmVmcmVzaDp7YXJyb3c6XCJhcnJvd19kb3dud2FyZFwiLHJlZnJlc2g6XCJyZWZyZXNoXCJ9LHNlYXJjaDp7aWNvbjpcInNlYXJjaFwiLGNsZWFyOlwiY2FuY2VsXCIsY2xlYXJJbnZlcnRlZDpcImNsZWFyXCJ9LGNhcm91c2VsOntsZWZ0OlwiY2hldnJvbl9sZWZ0XCIscmlnaHQ6XCJjaGV2cm9uX3JpZ2h0XCIscXVpY2tOYXY6XCJsZW5zXCIsdGh1bWJuYWlsczpcInZpZXdfY2Fyb3VzZWxcIn0sY2hlY2tib3g6e2NoZWNrZWQ6e2lvczpcImNoZWNrX2NpcmNsZVwiLG1hdDpcImNoZWNrX2JveFwifSx1bmNoZWNrZWQ6e2lvczpcInJhZGlvX2J1dHRvbl91bmNoZWNrZWRcIixtYXQ6XCJjaGVja19ib3hfb3V0bGluZV9ibGFua1wifSxpbmRldGVybWluYXRlOntpb3M6XCJyZW1vdmVfY2lyY2xlX291dGxpbmVcIixtYXQ6XCJpbmRldGVybWluYXRlX2NoZWNrX2JveFwifX0sY2hpcDp7Y2xvc2U6XCJjYW5jZWxcIn0sY2hpcHNJbnB1dDp7YWRkOlwic2VuZFwifSxjb2xsYXBzaWJsZTp7aWNvbjpcImFycm93X2Ryb3BfZG93blwifSxkYXRldGltZTp7YXJyb3dMZWZ0OlwiY2hldnJvbl9sZWZ0XCIsYXJyb3dSaWdodDpcImNoZXZyb25fcmlnaHRcIn0sZWRpdG9yOntib2xkOlwiZm9ybWF0X2JvbGRcIixpdGFsaWM6XCJmb3JtYXRfaXRhbGljXCIsc3RyaWtldGhyb3VnaDpcInN0cmlrZXRocm91Z2hfc1wiLHVuZGVybGluZTpcImZvcm1hdF91bmRlcmxpbmVkXCIsdW5vcmRlcmVkTGlzdDpcImZvcm1hdF9saXN0X2J1bGxldGVkXCIsb3JkZXJlZExpc3Q6XCJmb3JtYXRfbGlzdF9udW1iZXJlZFwiLHN1YnNjcmlwdDpcInZlcnRpY2FsX2FsaWduX2JvdHRvbVwiLHN1cGVyc2NyaXB0OlwidmVydGljYWxfYWxpZ25fdG9wXCIsaHlwZXJsaW5rOlwibGlua1wiLHRvZ2dsZUZ1bGxzY3JlZW46XCJmdWxsc2NyZWVuXCIscXVvdGU6XCJmb3JtYXRfcXVvdGVcIixsZWZ0OlwiZm9ybWF0X2FsaWduX2xlZnRcIixjZW50ZXI6XCJmb3JtYXRfYWxpZ25fY2VudGVyXCIscmlnaHQ6XCJmb3JtYXRfYWxpZ25fcmlnaHRcIixqdXN0aWZ5OlwiZm9ybWF0X2FsaWduX2p1c3RpZnlcIixwcmludDpcInByaW50XCIsb3V0ZGVudDpcImZvcm1hdF9pbmRlbnRfZGVjcmVhc2VcIixpbmRlbnQ6XCJmb3JtYXRfaW5kZW50X2luY3JlYXNlXCIscmVtb3ZlRm9ybWF0OlwiZm9ybWF0X2NsZWFyXCIsZm9ybWF0dGluZzpcInRleHRfZm9ybWF0XCIsZm9udFNpemU6XCJmb3JtYXRfc2l6ZVwiLGFsaWduOlwiZm9ybWF0X2FsaWduX2xlZnRcIixocjpcInJlbW92ZVwiLHVuZG86XCJ1bmRvXCIscmVkbzpcInJlZG9cIixoZWFkZXI6XCJmb3JtYXRfc2l6ZVwiLGNvZGU6XCJjb2RlXCIsc2l6ZTpcImZvcm1hdF9zaXplXCIsZm9udDpcImZvbnRfZG93bmxvYWRcIn0sZmFiOntpY29uOlwiYWRkXCIsYWN0aXZlSWNvbjpcImNsb3NlXCJ9LGlucHV0OntzaG93UGFzczpcInZpc2liaWxpdHlcIixoaWRlUGFzczpcInZpc2liaWxpdHlfb2ZmXCIsc2hvd051bWJlcjpcImtleWJvYXJkXCIsaGlkZU51bWJlcjpcImtleWJvYXJkX2hpZGVcIixjbGVhcjpcImNhbmNlbFwiLGNsZWFySW52ZXJ0ZWQ6XCJjbGVhclwiLGRyb3Bkb3duOlwiYXJyb3dfZHJvcF9kb3duXCJ9LHBhZ2luYXRpb246e2ZpcnN0OlwiZmlyc3RfcGFnZVwiLHByZXY6XCJrZXlib2FyZF9hcnJvd19sZWZ0XCIsbmV4dDpcImtleWJvYXJkX2Fycm93X3JpZ2h0XCIsbGFzdDpcImxhc3RfcGFnZVwifSxyYWRpbzp7Y2hlY2tlZDp7aW9zOlwiY2hlY2tcIixtYXQ6XCJyYWRpb19idXR0b25fY2hlY2tlZFwifSx1bmNoZWNrZWQ6e2lvczpcIlwiLG1hdDpcInJhZGlvX2J1dHRvbl91bmNoZWNrZWRcIn19LHJhdGluZzp7aWNvbjpcImdyYWRlXCJ9LHN0ZXBwZXI6e2RvbmU6XCJjaGVja1wiLGFjdGl2ZTpcImVkaXRcIixlcnJvcjpcIndhcm5pbmdcIn0sdGFiczp7bGVmdDpcImNoZXZyb25fbGVmdFwiLHJpZ2h0OlwiY2hldnJvbl9yaWdodFwifSx0YWJsZTp7YXJyb3dVcDpcImFycm93X3Vwd2FyZFwiLHdhcm5pbmc6XCJ3YXJuaW5nXCIscHJldlBhZ2U6XCJjaGV2cm9uX2xlZnRcIixuZXh0UGFnZTpcImNoZXZyb25fcmlnaHRcIn0sdHJlZTp7aWNvbjpcInBsYXlfYXJyb3dcIn0sdXBsb2FkZXI6e2RvbmU6XCJkb25lXCIsY2xlYXI6XCJjYW5jZWxcIixjbGVhckludmVydGVkOlwiY2xlYXJcIixhZGQ6XCJhZGRcIix1cGxvYWQ6XCJjbG91ZF91cGxvYWRcIixleHBhbmQ6XCJrZXlib2FyZF9hcnJvd19kb3duXCIsZmlsZTpcImluc2VydF9kcml2ZV9maWxlXCJ9fSxJY29ucz17X19pbnN0YWxsZWQ6ITEsaW5zdGFsbDpmdW5jdGlvbih0LGUsaSl7dmFyIHM9dGhpczt0aGlzLnNldD1mdW5jdGlvbihpKXt2b2lkIDA9PT1pJiYoaT1tYXRlcmlhbEljb25zKSxpLnNldD1zLnNldCxpc1NTUnx8dC5pY29uP3QuaWNvbj1pOmUudXRpbC5kZWZpbmVSZWFjdGl2ZSh0LFwiaWNvblwiLGkpLHMubmFtZT1pLm5hbWUscy5kZWY9aX0sdGhpcy5zZXQoaSl9fSxxdWV1ZXM9e3NlcnZlcjpbXSx0YWtlb3ZlcjpbXX0sJHE9e3ZlcnNpb246dmVyc2lvbix0aGVtZTpcIm1hdFwifTtmdW5jdGlvbiBpbnN0YWxsKHQsZSl7aWYodm9pZCAwPT09ZSYmKGU9e30pLCF0aGlzLl9faW5zdGFsbGVkKXt0aGlzLl9faW5zdGFsbGVkPSEwO3ZhciBpPWUuY29uZmlnfHx7fTtpZihQbGF0Zm9ybS5pbnN0YWxsKCRxLHF1ZXVlcyx0KSxCb2R5Lmluc3RhbGwoJHEscXVldWVzLGkpLEhpc3RvcnkuaW5zdGFsbCgkcSxpKSxpMThuLmluc3RhbGwoJHEscXVldWVzLHQsZS5pMThuKSxJY29ucy5pbnN0YWxsKCRxLHQsZS5pY29uU2V0KSxpc1NTUj90Lm1peGluKHtiZWZvcmVDcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLiRxPXRoaXMuJHJvb3QuJG9wdGlvbnMuJHF9fSk6dC5wcm90b3R5cGUuJHE9JHEsZS5jb21wb25lbnRzJiZPYmplY3Qua2V5cyhlLmNvbXBvbmVudHMpLmZvckVhY2goZnVuY3Rpb24oaSl7dmFyIHM9ZS5jb21wb25lbnRzW2ldO3ZvaWQgMD09PXMubmFtZXx8dm9pZCAwPT09cy5yZW5kZXImJnZvaWQgMD09PXMubWl4aW5zfHx0LmNvbXBvbmVudChzLm5hbWUscyl9KSxlLmRpcmVjdGl2ZXMmJk9iamVjdC5rZXlzKGUuZGlyZWN0aXZlcykuZm9yRWFjaChmdW5jdGlvbihpKXt2YXIgcz1lLmRpcmVjdGl2ZXNbaV07dm9pZCAwIT09cy5uYW1lJiZ2b2lkIDAhPT1zLnVuYmluZCYmdC5kaXJlY3RpdmUocy5uYW1lLHMpfSksZS5wbHVnaW5zKXt2YXIgcz17JHE6JHEscXVldWVzOnF1ZXVlcyxWdWU6dCxjZmc6aX07T2JqZWN0LmtleXMoZS5wbHVnaW5zKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBpPWUucGx1Z2luc1t0XTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBpLmluc3RhbGwmJmkhPT1QbGF0Zm9ybSYmaS5pbnN0YWxsKHMpfSl9fX12YXIgbWl4aW49e21vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3F1ZXVlcy50YWtlb3Zlci5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UodC4kcSl9KX19O2Z1bmN0aW9uIHNzclVwZGF0ZSh0KXtpZih0LnNzcil7dmFyIGU9T2JqZWN0LmFzc2lnbih7fSwkcSk7T2JqZWN0LmFzc2lnbih0LnNzcix7UV9IRUFEX1RBR1M6XCJcIixRX0JPRFlfQVRUUlM6XCJcIixRX0JPRFlfVEFHUzpcIlwifSkscXVldWVzLnNlcnZlci5mb3JFYWNoKGZ1bmN0aW9uKGkpe2koZSx0KX0pLHQuYXBwLiRxPWV9ZWxzZXt2YXIgaT10LmFwcC5taXhpbnN8fFtdO2kuaW5jbHVkZXMobWl4aW4pfHwodC5hcHAubWl4aW5zPWkuY29uY2F0KG1peGluKSl9fXZhciB0aGVtZT1cIm1hdFwiLFZ1ZVBsdWdpbj17dmVyc2lvbjp2ZXJzaW9uLGluc3RhbGw6aW5zdGFsbCxpMThuOmkxOG4saWNvbnM6SWNvbnMsdGhlbWU6dGhlbWUsc3NyVXBkYXRlOnNzclVwZGF0ZX0saGFuZGxlcnM9W10sRXNjYXBlS2V5PXtfX2luc3RhbGxlZDohMSxfX2luc3RhbGw6ZnVuY3Rpb24oKXt0aGlzLl9faW5zdGFsbGVkPSEwLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwia2V5dXBcIixmdW5jdGlvbih0KXswIT09aGFuZGxlcnMubGVuZ3RoJiYoMjchPT10LndoaWNoJiYyNyE9PXQua2V5Q29kZXx8aGFuZGxlcnNbaGFuZGxlcnMubGVuZ3RoLTFdKCkpfSl9LHJlZ2lzdGVyOmZ1bmN0aW9uKHQpe1BsYXRmb3JtLmlzLmRlc2t0b3AmJih0aGlzLl9faW5zdGFsbGVkfHx0aGlzLl9faW5zdGFsbCgpLGhhbmRsZXJzLnB1c2godCkpfSxwb3A6ZnVuY3Rpb24oKXtQbGF0Zm9ybS5pcy5kZXNrdG9wJiZoYW5kbGVycy5wb3AoKX19LE1vZGVsVG9nZ2xlTWl4aW49e3Byb3BzOnt2YWx1ZTpCb29sZWFufSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3Nob3dpbmc6ITF9fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLmRpc2FibGUmJnQ/dGhpcy4kZW1pdChcImlucHV0XCIsITEpOnRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7ZS52YWx1ZSE9PWUuc2hvd2luZyYmZVt0P1wic2hvd1wiOlwiaGlkZVwiXSgpfSl9fSxtZXRob2RzOnt0b2dnbGU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbdGhpcy5zaG93aW5nP1wiaGlkZVwiOlwic2hvd1wiXSh0KX0sc2hvdzpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0aGlzLmRpc2FibGV8fHRoaXMuc2hvd2luZz90aGlzLnNob3dQcm9taXNlfHxQcm9taXNlLnJlc29sdmUodCk6KHRoaXMuaGlkZVByb21pc2UmJnRoaXMuaGlkZVByb21pc2VSZWplY3QoKSx0aGlzLnNob3dpbmc9ITAsITE9PT10aGlzLnZhbHVlJiZ0aGlzLiRlbWl0KFwiaW5wdXRcIiwhMCksKHZvaWQgMD09PXRoaXMuJG9wdGlvbnMubW9kZWxUb2dnbGV8fHRoaXMuJG9wdGlvbnMubW9kZWxUb2dnbGUuaGlzdG9yeSkmJih0aGlzLl9faGlzdG9yeUVudHJ5PXtoYW5kbGVyOnRoaXMuaGlkZX0sSGlzdG9yeS5hZGQodGhpcy5fX2hpc3RvcnlFbnRyeSkpLHRoaXMuX19zaG93Pyh0aGlzLnNob3dQcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGkscyl7ZS5zaG93UHJvbWlzZVJlc29sdmU9ZnVuY3Rpb24oKXtlLnNob3dQcm9taXNlPW51bGwsZS4kZW1pdChcInNob3dcIix0KSxpKHQpfSxlLnNob3dQcm9taXNlUmVqZWN0PWZ1bmN0aW9uKCl7ZS5zaG93UHJvbWlzZS5jYXRjaChmdW5jdGlvbigpe30pLGUuc2hvd1Byb21pc2U9bnVsbCxzKG51bGwpfX0pLHRoaXMuX19zaG93KHQpLHRoaXMuc2hvd1Byb21pc2V8fFByb21pc2UucmVzb2x2ZSh0KSk6KHRoaXMuJGVtaXQoXCJzaG93XCIsdCksUHJvbWlzZS5yZXNvbHZlKHQpKSl9LGhpZGU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5kaXNhYmxlfHwhdGhpcy5zaG93aW5nP3RoaXMuaGlkZVByb21pc2V8fFByb21pc2UucmVzb2x2ZSh0KToodGhpcy5zaG93UHJvbWlzZSYmdGhpcy5zaG93UHJvbWlzZVJlamVjdCgpLHRoaXMuc2hvd2luZz0hMSwhMD09PXRoaXMudmFsdWUmJnRoaXMuJGVtaXQoXCJpbnB1dFwiLCExKSx0aGlzLl9fcmVtb3ZlSGlzdG9yeSgpLHRoaXMuX19oaWRlPyh0aGlzLmhpZGVQcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGkscyl7ZS5oaWRlUHJvbWlzZVJlc29sdmU9ZnVuY3Rpb24oKXtlLmhpZGVQcm9taXNlPW51bGwsZS4kZW1pdChcImhpZGVcIix0KSxpKCl9LGUuaGlkZVByb21pc2VSZWplY3Q9ZnVuY3Rpb24oKXtlLmhpZGVQcm9taXNlLmNhdGNoKGZ1bmN0aW9uKCl7fSksZS5oaWRlUHJvbWlzZT1udWxsLHMobnVsbCl9fSksdGhpcy5fX2hpZGUodCksdGhpcy5oaWRlUHJvbWlzZXx8UHJvbWlzZS5yZXNvbHZlKHQpKToodGhpcy4kZW1pdChcImhpZGVcIix0KSxQcm9taXNlLnJlc29sdmUoKSkpfSxfX3JlbW92ZUhpc3Rvcnk6ZnVuY3Rpb24oKXt0aGlzLl9faGlzdG9yeUVudHJ5JiYoSGlzdG9yeS5yZW1vdmUodGhpcy5fX2hpc3RvcnlFbnRyeSksdGhpcy5fX2hpc3RvcnlFbnRyeT1udWxsKX19LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLnNob3dpbmcmJih0aGlzLnNob3dQcm9taXNlJiZ0aGlzLnNob3dQcm9taXNlUmVqZWN0KCksdGhpcy5oaWRlUHJvbWlzZSYmdGhpcy5oaWRlUHJvbWlzZVJlamVjdCgpLHRoaXMuX19yZW1vdmVIaXN0b3J5KCkpfX0sbGlzdGVuT3B0cz17fTtmdW5jdGlvbiBsZWZ0Q2xpY2sodCl7cmV0dXJuIDA9PT10LmJ1dHRvbn1mdW5jdGlvbiBtaWRkbGVDbGljayh0KXtyZXR1cm4gMT09PXQuYnV0dG9ufWZ1bmN0aW9uIHJpZ2h0Q2xpY2sodCl7cmV0dXJuIDI9PT10LmJ1dHRvbn1mdW5jdGlvbiBnZXRFdmVudEtleSh0KXtyZXR1cm4gdC53aGljaHx8dC5rZXlDb2RlfWZ1bmN0aW9uIHBvc2l0aW9uKHQpe3ZhciBlLGk7aWYodC50b3VjaGVzJiZ0LnRvdWNoZXNbMF0/dD10LnRvdWNoZXNbMF06dC5jaGFuZ2VkVG91Y2hlcyYmdC5jaGFuZ2VkVG91Y2hlc1swXSYmKHQ9dC5jaGFuZ2VkVG91Y2hlc1swXSksdC5jbGllbnRYfHx0LmNsaWVudFkpZT10LmNsaWVudFgsaT10LmNsaWVudFk7ZWxzZSBpZih0LnBhZ2VYfHx0LnBhZ2VZKWU9dC5wYWdlWC1kb2N1bWVudC5ib2R5LnNjcm9sbExlZnQtZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQsaT10LnBhZ2VZLWRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wLWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A7ZWxzZXt2YXIgcz10YXJnZXRFbGVtZW50KHQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2U9KHMucmlnaHQtcy5sZWZ0KS8yK3MubGVmdCxpPShzLmJvdHRvbS1zLnRvcCkvMitzLnRvcH1yZXR1cm57dG9wOmksbGVmdDplfX1mdW5jdGlvbiB0YXJnZXRFbGVtZW50KHQpe3ZhciBlO3JldHVybiB0LnRhcmdldD9lPXQudGFyZ2V0OnQuc3JjRWxlbWVudCYmKGU9dC5zcmNFbGVtZW50KSwzPT09ZS5ub2RlVHlwZSYmKGU9ZS5wYXJlbnROb2RlKSxlfWZ1bmN0aW9uIGdldEV2ZW50UGF0aCh0KXtpZih0LnBhdGgpcmV0dXJuIHQucGF0aDtpZih0LmNvbXBvc2VkUGF0aClyZXR1cm4gdC5jb21wb3NlZFBhdGgoKTtmb3IodmFyIGU9W10saT10LnRhcmdldDtpOyl7aWYoZS5wdXNoKGkpLFwiSFRNTFwiPT09aS50YWdOYW1lKXJldHVybiBlLnB1c2goZG9jdW1lbnQpLGUucHVzaCh3aW5kb3cpLGU7aT1pLnBhcmVudEVsZW1lbnR9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShsaXN0ZW5PcHRzLFwicGFzc2l2ZVwiLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3ZhciBlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSxcInBhc3NpdmVcIix7Z2V0OmZ1bmN0aW9uKCl7dD17cGFzc2l2ZTohMH19fSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJxdGVzdFwiLG51bGwsZSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJxdGVzdFwiLG51bGwsZSl9Y2F0Y2godCl7fXJldHVybiBsaXN0ZW5PcHRzLnBhc3NpdmU9dCx0fSxzZXQ6ZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJwYXNzaXZlXCIse3ZhbHVlOnR9KX19KTt2YXIgTElORV9IRUlHSFQ9NDAsUEFHRV9IRUlHSFQ9ODAwO2Z1bmN0aW9uIGdldE1vdXNlV2hlZWxEaXN0YW5jZSh0KXt2YXIgZSxpPXQuZGVsdGFYLHM9dC5kZWx0YVk7aWYoKGl8fHMpJiZ0LmRlbHRhTW9kZSl7dmFyIG49MT09PXQuZGVsdGFNb2RlP0xJTkVfSEVJR0hUOlBBR0VfSEVJR0hUO2kqPW4scyo9bn1yZXR1cm4gdC5zaGlmdEtleSYmIWkmJihzPShlPVtpLHNdKVswXSxpPWVbMV0pLHt4OmkseTpzfX1mdW5jdGlvbiBzdG9wQW5kUHJldmVudCh0KXt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKX12YXIgZXZlbnQ9e2xpc3Rlbk9wdHM6bGlzdGVuT3B0cyxsZWZ0Q2xpY2s6bGVmdENsaWNrLG1pZGRsZUNsaWNrOm1pZGRsZUNsaWNrLHJpZ2h0Q2xpY2s6cmlnaHRDbGljayxnZXRFdmVudEtleTpnZXRFdmVudEtleSxwb3NpdGlvbjpwb3NpdGlvbix0YXJnZXRFbGVtZW50OnRhcmdldEVsZW1lbnQsZ2V0RXZlbnRQYXRoOmdldEV2ZW50UGF0aCxnZXRNb3VzZVdoZWVsRGlzdGFuY2U6Z2V0TW91c2VXaGVlbERpc3RhbmNlLHN0b3BBbmRQcmV2ZW50OnN0b3BBbmRQcmV2ZW50fTtmdW5jdGlvbiBvZmZzZXQodCl7aWYoIXR8fHQ9PT13aW5kb3cpcmV0dXJue3RvcDowLGxlZnQ6MH07dmFyIGU9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm57dG9wOmUudG9wLGxlZnQ6ZS5sZWZ0fX1mdW5jdGlvbiBzdHlsZSh0LGUpe3JldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KS5nZXRQcm9wZXJ0eVZhbHVlKGUpfWZ1bmN0aW9uIGhlaWdodCh0KXtyZXR1cm4gdD09PXdpbmRvdz93aW5kb3cuaW5uZXJIZWlnaHQ6cGFyc2VGbG9hdChzdHlsZSh0LFwiaGVpZ2h0XCIpKX1mdW5jdGlvbiB3aWR0aCh0KXtyZXR1cm4gdD09PXdpbmRvdz93aW5kb3cuaW5uZXJXaWR0aDpwYXJzZUZsb2F0KHN0eWxlKHQsXCJ3aWR0aFwiKSl9ZnVuY3Rpb24gY3NzKHQsZSl7dmFyIGk9dC5zdHlsZTtPYmplY3Qua2V5cyhlKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lbdF09ZVt0XX0pfWZ1bmN0aW9uIHJlYWR5KHQpe2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHQpcmV0dXJuXCJsb2FkaW5nXCIhPT1kb2N1bWVudC5yZWFkeVN0YXRlP3QoKTp2b2lkIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJET01Db250ZW50TG9hZGVkXCIsdCwhMSl9dmFyIHByZWZpeD1bXCItd2Via2l0LVwiLFwiLW1vei1cIixcIi1tcy1cIixcIi1vLVwiXTtmdW5jdGlvbiBjc3NUcmFuc2Zvcm0odCl7dmFyIGU9e3RyYW5zZm9ybTp0fTtyZXR1cm4gcHJlZml4LmZvckVhY2goZnVuY3Rpb24oaSl7ZVtpK1widHJhbnNmb3JtXCJdPXR9KSxlfXZhciBzaXplLGRvbT17b2Zmc2V0Om9mZnNldCxzdHlsZTpzdHlsZSxoZWlnaHQ6aGVpZ2h0LHdpZHRoOndpZHRoLGNzczpjc3MscmVhZHk6cmVhZHksY3NzVHJhbnNmb3JtOmNzc1RyYW5zZm9ybX07ZnVuY3Rpb24gZ2V0U2Nyb2xsVGFyZ2V0KHQpe3JldHVybiB0LmNsb3Nlc3QoXCIuc2Nyb2xsLC5zY3JvbGwteSwub3ZlcmZsb3ctYXV0b1wiKXx8d2luZG93fWZ1bmN0aW9uIGdldFNjcm9sbEhlaWdodCh0KXtyZXR1cm4odD09PXdpbmRvdz9kb2N1bWVudC5ib2R5OnQpLnNjcm9sbEhlaWdodH1mdW5jdGlvbiBnZXRTY3JvbGxQb3NpdGlvbih0KXtyZXR1cm4gdD09PXdpbmRvdz93aW5kb3cucGFnZVlPZmZzZXR8fHdpbmRvdy5zY3JvbGxZfHxkb2N1bWVudC5ib2R5LnNjcm9sbFRvcHx8MDp0LnNjcm9sbFRvcH1mdW5jdGlvbiBnZXRIb3Jpem9udGFsU2Nyb2xsUG9zaXRpb24odCl7cmV0dXJuIHQ9PT13aW5kb3c/d2luZG93LnBhZ2VYT2Zmc2V0fHx3aW5kb3cuc2Nyb2xsWHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0fHwwOnQuc2Nyb2xsTGVmdH1mdW5jdGlvbiBhbmltU2Nyb2xsVG8odCxlLGkpe3ZhciBzPWdldFNjcm9sbFBvc2l0aW9uKHQpO2k8PTA/cyE9PWUmJnNldFNjcm9sbCh0LGUpOnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3ZhciBuPXMrKGUtcykvTWF0aC5tYXgoMTYsaSkqMTY7c2V0U2Nyb2xsKHQsbiksbiE9PWUmJmFuaW1TY3JvbGxUbyh0LGUsaS0xNil9KX1mdW5jdGlvbiBzZXRTY3JvbGwodCxlKXtpZih0PT09d2luZG93KXJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wPWUsdm9pZChkb2N1bWVudC5ib2R5LnNjcm9sbFRvcD1lKTt0LnNjcm9sbFRvcD1lfWZ1bmN0aW9uIHNldFNjcm9sbFBvc2l0aW9uKHQsZSxpKXtpP2FuaW1TY3JvbGxUbyh0LGUsaSk6c2V0U2Nyb2xsKHQsZSl9ZnVuY3Rpb24gZ2V0U2Nyb2xsYmFyV2lkdGgoKXtpZih2b2lkIDAhPT1zaXplKXJldHVybiBzaXplO3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJwXCIpLGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtjc3ModCx7d2lkdGg6XCIxMDAlXCIsaGVpZ2h0OlwiMjAwcHhcIn0pLGNzcyhlLHtwb3NpdGlvbjpcImFic29sdXRlXCIsdG9wOlwiMHB4XCIsbGVmdDpcIjBweFwiLHZpc2liaWxpdHk6XCJoaWRkZW5cIix3aWR0aDpcIjIwMHB4XCIsaGVpZ2h0OlwiMTUwcHhcIixvdmVyZmxvdzpcImhpZGRlblwifSksZS5hcHBlbmRDaGlsZCh0KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpO3ZhciBpPXQub2Zmc2V0V2lkdGg7ZS5zdHlsZS5vdmVyZmxvdz1cInNjcm9sbFwiO3ZhciBzPXQub2Zmc2V0V2lkdGg7cmV0dXJuIGk9PT1zJiYocz1lLmNsaWVudFdpZHRoKSxlLnJlbW92ZSgpLHNpemU9aS1zfWZ1bmN0aW9uIGhhc1Njcm9sbGJhcih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT0hMCksISghdHx8dC5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFKSYmKGU/dC5zY3JvbGxIZWlnaHQ+dC5jbGllbnRIZWlnaHQmJih0LmNsYXNzTGlzdC5jb250YWlucyhcInNjcm9sbFwiKXx8dC5jbGFzc0xpc3QuY29udGFpbnMoXCJvdmVyZmxvdy1hdXRvXCIpfHxbXCJhdXRvXCIsXCJzY3JvbGxcIl0uaW5jbHVkZXMod2luZG93LmdldENvbXB1dGVkU3R5bGUodClbXCJvdmVyZmxvdy15XCJdKSk6dC5zY3JvbGxXaWR0aD50LmNsaWVudFdpZHRoJiYodC5jbGFzc0xpc3QuY29udGFpbnMoXCJzY3JvbGxcIil8fHQuY2xhc3NMaXN0LmNvbnRhaW5zKFwib3ZlcmZsb3ctYXV0b1wiKXx8W1wiYXV0b1wiLFwic2Nyb2xsXCJdLmluY2x1ZGVzKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpW1wib3ZlcmZsb3cteFwiXSkpKX12YXIgc2Nyb2xsPXtnZXRTY3JvbGxUYXJnZXQ6Z2V0U2Nyb2xsVGFyZ2V0LGdldFNjcm9sbEhlaWdodDpnZXRTY3JvbGxIZWlnaHQsZ2V0U2Nyb2xsUG9zaXRpb246Z2V0U2Nyb2xsUG9zaXRpb24sYW5pbVNjcm9sbFRvOmFuaW1TY3JvbGxUbyxzZXRTY3JvbGxQb3NpdGlvbjpzZXRTY3JvbGxQb3NpdGlvbixnZXRTY3JvbGxiYXJXaWR0aDpnZXRTY3JvbGxiYXJXaWR0aCxoYXNTY3JvbGxiYXI6aGFzU2Nyb2xsYmFyfSxyZWdpc3RlcmVkPTA7ZnVuY3Rpb24gb25XaGVlbCh0KXtzaG91bGRQcmV2ZW50U2Nyb2xsKHQpJiZzdG9wQW5kUHJldmVudCh0KX1mdW5jdGlvbiBzaG91bGRQcmV2ZW50U2Nyb2xsKHQpe2lmKHQudGFyZ2V0PT09ZG9jdW1lbnQuYm9keXx8dC50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKFwicS1sYXlvdXQtYmFja2Ryb3BcIikpcmV0dXJuITA7Zm9yKHZhciBlPWdldEV2ZW50UGF0aCh0KSxpPXQuc2hpZnRLZXkmJiF0LmRlbHRhWCxzPSFpJiZNYXRoLmFicyh0LmRlbHRhWCk8PU1hdGguYWJzKHQuZGVsdGFZKSxuPWl8fHM/dC5kZWx0YVk6dC5kZWx0YVgsbz0wO288ZS5sZW5ndGg7bysrKXt2YXIgcj1lW29dO2lmKGhhc1Njcm9sbGJhcihyLHMpKXJldHVybiBzP248MCYmMD09PXIuc2Nyb2xsVG9wfHxuPjAmJnIuc2Nyb2xsVG9wK3IuY2xpZW50SGVpZ2h0PT09ci5zY3JvbGxIZWlnaHQ6bjwwJiYwPT09ci5zY3JvbGxMZWZ0fHxuPjAmJnIuc2Nyb2xsTGVmdCtyLmNsaWVudFdpZHRoPT09ci5zY3JvbGxXaWR0aH1yZXR1cm4hMH1mdW5jdGlvbiBwcmV2ZW50U2Nyb2xsKHQpe2lmKCEoKHJlZ2lzdGVyZWQrPXQ/MTotMSk+MSkpe3ZhciBlPXQ/XCJhZGRcIjpcInJlbW92ZVwiO1BsYXRmb3JtLmlzLm1vYmlsZT9kb2N1bWVudC5ib2R5LmNsYXNzTGlzdFtlXShcInEtYm9keS1wcmV2ZW50LXNjcm9sbFwiKTpQbGF0Zm9ybS5pcy5kZXNrdG9wJiZ3aW5kb3dbZStcIkV2ZW50TGlzdGVuZXJcIl0oXCJ3aGVlbFwiLG9uV2hlZWwpfX12YXIgcG9zaXRpb25zPXt0b3A6XCJpdGVtcy1zdGFydCBqdXN0aWZ5LWNlbnRlciB3aXRoLWJhY2tkcm9wXCIsYm90dG9tOlwiaXRlbXMtZW5kIGp1c3RpZnktY2VudGVyIHdpdGgtYmFja2Ryb3BcIixyaWdodDpcIml0ZW1zLWNlbnRlciBqdXN0aWZ5LWVuZCB3aXRoLWJhY2tkcm9wXCIsbGVmdDpcIml0ZW1zLWNlbnRlciBqdXN0aWZ5LXN0YXJ0IHdpdGgtYmFja2Ryb3BcIn0scG9zaXRpb25DU1M9e21heEhlaWdodDpcIjgwdmhcIixoZWlnaHQ6XCJhdXRvXCJ9O2Z1bmN0aW9uIGFkZGl0aW9uYWxDU1ModCl7dmFyIGU9e307cmV0dXJuW1wibGVmdFwiLFwicmlnaHRcIl0uaW5jbHVkZXModCkmJihlLm1heFdpZHRoPVwiOTB2d1wiKSxbXCJsZWZ0XCIsXCJ0b3BcIl0uaW5jbHVkZXModCkmJihlLmJvcmRlclRvcExlZnRSYWRpdXM9MCksW1wicmlnaHRcIixcInRvcFwiXS5pbmNsdWRlcyh0KSYmKGUuYm9yZGVyVG9wUmlnaHRSYWRpdXM9MCksW1wibGVmdFwiLFwiYm90dG9tXCJdLmluY2x1ZGVzKHQpJiYoZS5ib3JkZXJCb3R0b21MZWZ0UmFkaXVzPTApLFtcInJpZ2h0XCIsXCJib3R0b21cIl0uaW5jbHVkZXModCkmJihlLmJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzPTApLGV9dmFyIG1vZGFscz17cmVzcG9uc2l2ZTowLG1heGltaXplZDowfSxRTW9kYWw9e25hbWU6XCJRTW9kYWxcIixtaXhpbnM6W01vZGVsVG9nZ2xlTWl4aW5dLHByb3ZpZGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybntfX3Ftb2RhbDp7cmVnaXN0ZXI6ZnVuY3Rpb24oZSl7dC5sYXlvdXQhPT1lJiYodC5sYXlvdXQ9ZSl9LHVucmVnaXN0ZXI6ZnVuY3Rpb24oZSl7dC5sYXlvdXQ9PT1lJiYodC5sYXlvdXQ9bnVsbCl9fX19LHByb3BzOntwb3NpdGlvbjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcIlwiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5cIlwiPT09dHx8W1widG9wXCIsXCJib3R0b21cIixcImxlZnRcIixcInJpZ2h0XCJdLmluY2x1ZGVzKHQpfX0sdHJhbnNpdGlvbjpTdHJpbmcsZW50ZXJDbGFzczpTdHJpbmcsbGVhdmVDbGFzczpTdHJpbmcscG9zaXRpb25DbGFzc2VzOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiZmxleC1jZW50ZXJcIn0sY29udGVudENsYXNzZXM6W09iamVjdCxBcnJheSxTdHJpbmddLGNvbnRlbnRDc3M6W09iamVjdCxBcnJheSxTdHJpbmddLG5vQmFja2Ryb3BEaXNtaXNzOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX0sbm9Fc2NEaXNtaXNzOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX0sbm9Sb3V0ZURpc21pc3M6Qm9vbGVhbixub1JlZm9jdXM6Qm9vbGVhbixtaW5pbWl6ZWQ6Qm9vbGVhbixtYXhpbWl6ZWQ6Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3JldHVybntsYXlvdXQ6bnVsbH19LHdhdGNoOnskcm91dGU6ZnVuY3Rpb24oKXt0aGlzLm5vUm91dGVEaXNtaXNzfHx0aGlzLmhpZGUoKX0sbWF4aW1pemVkOmZ1bmN0aW9uKHQsZSl7dGhpcy5fX3JlZ2lzdGVyKCExLGUpLHRoaXMuX19yZWdpc3RlcighMCx0KX0sbWluaW1pemVkOmZ1bmN0aW9uKHQsZSl7dGhpcy5fX3JlZ2lzdGVyKCExLHRoaXMubWF4aW1pemVkLGUpLHRoaXMuX19yZWdpc3RlcighMCx0aGlzLm1heGltaXplZCx0KX19LGNvbXB1dGVkOnttb2RhbENsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBvc2l0aW9uP3Bvc2l0aW9uc1t0aGlzLnBvc2l0aW9uXTp0aGlzLnBvc2l0aW9uQ2xhc3NlcztyZXR1cm4gdGhpcy5tYXhpbWl6ZWQ/W1wibWF4aW1pemVkXCIsdF06dGhpcy5taW5pbWl6ZWQ/W1wibWluaW1pemVkXCIsdF06dH0sY29udGVudENsYXNzZXNDYWxjOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0P1t0aGlzLmNvbnRlbnRDbGFzc2VzLFwiY29sdW1uIG5vLXdyYXBcIl06dGhpcy5jb250ZW50Q2xhc3Nlc30sdHJhbnNpdGlvblByb3BzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucG9zaXRpb24/e25hbWU6XCJxLW1vZGFsLVwiK3RoaXMucG9zaXRpb259OnRoaXMuZW50ZXJDbGFzc3x8dGhpcy5sZWF2ZUNsYXNzP3tlbnRlckFjdGl2ZUNsYXNzOnRoaXMuZW50ZXJDbGFzcyxsZWF2ZUFjdGl2ZUNsYXNzOnRoaXMubGVhdmVDbGFzc306e25hbWU6dGhpcy50cmFuc2l0aW9ufHxcInEtbW9kYWxcIn19LG1vZGFsQ3NzOmZ1bmN0aW9uKCl7aWYodGhpcy5wb3NpdGlvbil7dmFyIHQ9QXJyYXkuaXNBcnJheSh0aGlzLmNvbnRlbnRDc3MpP3RoaXMuY29udGVudENzczpbdGhpcy5jb250ZW50Q3NzXTtyZXR1cm4gdC51bnNoaWZ0KE9iamVjdC5hc3NpZ24oe30scG9zaXRpb25DU1MsYWRkaXRpb25hbENTUyh0aGlzLnBvc2l0aW9uKSkpLHR9cmV0dXJuIHRoaXMuY29udGVudENzc319LG1ldGhvZHM6e19fZGlzbWlzczpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5ub0JhY2tkcm9wRGlzbWlzcz90aGlzLl9fc2hha2UoKTp0aGlzLmhpZGUoKS50aGVuKGZ1bmN0aW9uKCl7dC4kZW1pdChcImRpc21pc3NcIil9KX0sX19zaG93OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLm5vUmVmb2N1c3x8KHRoaXMuX19yZWZvY3VzVGFyZ2V0PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy4kZWwpLHRoaXMuX19yZWdpc3RlcighMCkscHJldmVudFNjcm9sbCghMCksRXNjYXBlS2V5LnJlZ2lzdGVyKGZ1bmN0aW9uKCl7dC5ub0VzY0Rpc21pc3M/dC5fX3NoYWtlKCk6KHQuJGVtaXQoXCJlc2NhcGUta2V5XCIpLHQuaGlkZSgpLnRoZW4oZnVuY3Rpb24oKXt0LiRlbWl0KFwiZGlzbWlzc1wiKX0pKX0pO3ZhciBlPXRoaXMuJHJlZnMuY29udGVudDt0aGlzLiRxLnBsYXRmb3JtLmlzLmlvcyYmZS5jbGljaygpLGUuc2Nyb2xsVG9wPTAsW1wibW9kYWwtc2Nyb2xsXCIsXCJsYXlvdXQtdmlld1wiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe1tdLnNsaWNlLmNhbGwoZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKHQpKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3Quc2Nyb2xsVG9wPTB9KX0pLHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7cmV0dXJuIGUmJmUuZm9jdXMoKX0pfSxfX2hpZGU6ZnVuY3Rpb24oKXt0aGlzLl9fY2xlYW51cCgpLCF0aGlzLm5vUmVmb2N1cyYmdGhpcy5fX3JlZm9jdXNUYXJnZXQmJih0aGlzLl9fcmVmb2N1c1RhcmdldC5mb2N1cygpLCF0aGlzLl9fcmVmb2N1c1RhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoXCJxLWlmXCIpJiZ0aGlzLl9fcmVmb2N1c1RhcmdldC5ibHVyKCkpfSxfX2NsZWFudXA6ZnVuY3Rpb24oKXtFc2NhcGVLZXkucG9wKCkscHJldmVudFNjcm9sbCghMSksdGhpcy5fX3JlZ2lzdGVyKCExKX0sX19zdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX0sX19yZWdpc3RlcjpmdW5jdGlvbih0LGUsaSl7dm9pZCAwPT09ZSYmKGU9dGhpcy5tYXhpbWl6ZWQpLHZvaWQgMD09PWkmJihpPXRoaXMubWluaW1pemVkKTt2YXIgcz10P3thY3Rpb246XCJhZGRcIixzdGVwOjF9OnthY3Rpb246XCJyZW1vdmVcIixzdGVwOi0xfTtpZihlKXtpZihtb2RhbHMubWF4aW1pemVkKz1zLnN0ZXAsIXQmJm1vZGFscy5tYXhpbWl6ZWQ+MClyZXR1cm47ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3Rbcy5hY3Rpb25dKFwicS1tYXhpbWl6ZWQtbW9kYWxcIil9ZWxzZSBpZighaSl7aWYobW9kYWxzLnJlc3BvbnNpdmUrPXMuc3RlcCwhdCYmbW9kYWxzLnJlc3BvbnNpdmU+MClyZXR1cm47ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3Rbcy5hY3Rpb25dKFwicS1yZXNwb25zaXZlLW1vZGFsXCIpfX0sX19zaGFrZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy4kZWwuY2xhc3NMaXN0LnJlbW92ZShcImFuaW1hdGUtc2hha2VcIiksdGhpcy4kZWwuY2xhc3NMaXN0LmFkZChcImFuaW1hdGUtc2hha2VcIiksY2xlYXJUaW1lb3V0KHRoaXMuc2hha2VUaW1lb3V0KSx0aGlzLnNoYWtlVGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC4kZWwuY2xhc3NMaXN0LnJlbW92ZShcImFuaW1hdGUtc2hha2VcIil9LDE1MCl9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy52YWx1ZSYmdGhpcy5zaG93KCl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy5zaGFrZVRpbWVvdXQpLHRoaXMuJGVsLnJlbW92ZSgpLHRoaXMuc2hvd2luZyYmdGhpcy5fX2NsZWFudXAoKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoXCJ0cmFuc2l0aW9uXCIse3Byb3BzOnRoaXMudHJhbnNpdGlvblByb3BzLG9uOnthZnRlckVudGVyOmZ1bmN0aW9uKCl7ZS5zaG93UHJvbWlzZSYmZS5zaG93UHJvbWlzZVJlc29sdmUoKX0sZW50ZXJDYW5jZWxsZWQ6ZnVuY3Rpb24oKXtlLnNob3dQcm9taXNlJiZlLnNob3dQcm9taXNlUmVqZWN0KCksZS4kZWwucmVtb3ZlKCl9LGFmdGVyTGVhdmU6ZnVuY3Rpb24oKXtlLmhpZGVQcm9taXNlJiZlLmhpZGVQcm9taXNlUmVzb2x2ZSgpLGUuJGVsLnJlbW92ZSgpfSxsZWF2ZUNhbmNlbGxlZDpmdW5jdGlvbigpe2UuaGlkZVByb21pc2UmJmUuaGlkZVByb21pc2VSZWplY3QoKX19fSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcIm1vZGFsIGZ1bGxzY3JlZW4gcm93XCIsY2xhc3M6dGhpcy5tb2RhbENsYXNzZXMsZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIsdmFsdWU6dGhpcy5zaG93aW5nfV19LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwibW9kYWwtYmFja2Ryb3AgYWJzb2x1dGUtZnVsbFwiLG9uOntjbGljazp0aGlzLl9fZGlzbWlzc319KSx0KFwiZGl2XCIse3JlZjpcImNvbnRlbnRcIixzdGF0aWNDbGFzczpcIm1vZGFsLWNvbnRlbnRcIixzdHlsZTp0aGlzLm1vZGFsQ3NzLGNsYXNzOnRoaXMuY29udGVudENsYXNzZXNDYWxjLGF0dHJzOnt0YWJpbmRleDotMX0sb246e2NsaWNrOnRoaXMuX19zdG9wUHJvcGFnYXRpb24sdG91Y2hzdGFydDp0aGlzLl9fc3RvcFByb3BhZ2F0aW9ufX0sdGhpcy4kc2xvdHMuZGVmYXVsdCldKV0pfX0scHJlZml4JDE9XCJtZFwiLFFJY29uPXtuYW1lOlwiUUljb25cIixwcm9wczp7bmFtZTpTdHJpbmcsY29sb3I6U3RyaW5nLHNpemU6U3RyaW5nfSxjb21wdXRlZDp7Y2xhc3NlczpmdW5jdGlvbigpe3ZhciB0LGU9dGhpcy5uYW1lO3JldHVybiBlPyh0PS9eZmFbc3xyfGx8Yl17MCwxfSAvLnRlc3QoZSl8fGUuc3RhcnRzV2l0aChcImljb24tXCIpP2U6ZS5zdGFydHNXaXRoKFwiYnQtXCIpP1wiYnQgXCIrZTplLnN0YXJ0c1dpdGgoXCJldmEtXCIpP1wiZXZhIFwiK2U6L15pb24tKG1kfGlvc3xsb2dvKS8udGVzdChlKT9cImlvbmljb25zIFwiK2U6ZS5zdGFydHNXaXRoKFwiaW9uLVwiKT9cImlvbmljb25zIGlvbi1cIitwcmVmaXgkMStlLnN1YnN0cigzKTplLnN0YXJ0c1dpdGgoXCJtZGktXCIpP1wibWRpIFwiK2U6XCJtYXRlcmlhbC1pY29uc1wiLHRoaXMuY29sb3I/dCtcIiB0ZXh0LVwiK3RoaXMuY29sb3I6dCk6XCJcIn0sY29udGVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNsYXNzZXMuc3RhcnRzV2l0aChcIm1hdGVyaWFsLWljb25zXCIpP3RoaXMubmFtZS5yZXBsYWNlKC8gL2csXCJfXCIpOlwiIFwifSxzdHlsZTpmdW5jdGlvbigpe2lmKHRoaXMuc2l6ZSlyZXR1cm57Zm9udFNpemU6dGhpcy5zaXplfX19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImlcIix7c3RhdGljQ2xhc3M6XCJxLWljb25cIixjbGFzczp0aGlzLmNsYXNzZXMsc3R5bGU6dGhpcy5zdHlsZSxhdHRyczp7XCJhcmlhLWhpZGRlblwiOiEwfX0sW3RoaXMuY29udGVudCx0aGlzLiRzbG90cy5kZWZhdWx0XSl9fSxRTGlzdD17bmFtZTpcIlFMaXN0XCIscHJvcHM6e25vQm9yZGVyOkJvb2xlYW4sZGFyazpCb29sZWFuLGRlbnNlOkJvb2xlYW4sc3BhcnNlOkJvb2xlYW4sc3RyaXBlZDpCb29sZWFuLHN0cmlwZWRPZGQ6Qm9vbGVhbixzZXBhcmF0b3I6Qm9vbGVhbixpbnNldFNlcGFyYXRvcjpCb29sZWFuLG11bHRpbGluZTpCb29sZWFuLGhpZ2hsaWdodDpCb29sZWFuLGxpbms6Qm9vbGVhbn0sY29tcHV0ZWQ6e2NsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm57XCJuby1ib3JkZXJcIjp0aGlzLm5vQm9yZGVyLFwicS1saXN0LWRhcmtcIjp0aGlzLmRhcmssXCJxLWxpc3QtZGVuc2VcIjp0aGlzLmRlbnNlLFwicS1saXN0LXNwYXJzZVwiOnRoaXMuc3BhcnNlLFwicS1saXN0LXN0cmlwZWRcIjp0aGlzLnN0cmlwZWQsXCJxLWxpc3Qtc3RyaXBlZC1vZGRcIjp0aGlzLnN0cmlwZWRPZGQsXCJxLWxpc3Qtc2VwYXJhdG9yXCI6dGhpcy5zZXBhcmF0b3IsXCJxLWxpc3QtaW5zZXQtc2VwYXJhdG9yXCI6dGhpcy5pbnNldFNlcGFyYXRvcixcInEtbGlzdC1tdWx0aWxpbmVcIjp0aGlzLm11bHRpbGluZSxcInEtbGlzdC1oaWdobGlnaHRcIjp0aGlzLmhpZ2hsaWdodCxcInEtbGlzdC1saW5rXCI6dGhpcy5saW5rfX19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbGlzdFwiLGNsYXNzOnRoaXMuY2xhc3Nlc30sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxyb3V0ZXJMaW5rRXZlbnROYW1lPVwicXJvdXRlcmxpbmtjbGlja1wiLGV2dD1udWxsO2lmKCFpc1NTUil0cnl7ZXZ0PW5ldyBFdmVudChyb3V0ZXJMaW5rRXZlbnROYW1lKX1jYXRjaCh0KXsoZXZ0PWRvY3VtZW50LmNyZWF0ZUV2ZW50KFwiRXZlbnRcIikpLmluaXRFdmVudChyb3V0ZXJMaW5rRXZlbnROYW1lLCEwLCExKX12YXIgcm91dGVyTGlua1Byb3BzPXt0bzpbU3RyaW5nLE9iamVjdF0sZXhhY3Q6Qm9vbGVhbixhcHBlbmQ6Qm9vbGVhbixyZXBsYWNlOkJvb2xlYW4sZXZlbnQ6W1N0cmluZyxBcnJheV0sYWN0aXZlQ2xhc3M6U3RyaW5nLGV4YWN0QWN0aXZlQ2xhc3M6U3RyaW5nfSxSb3V0ZXJMaW5rTWl4aW49e3Byb3BzOnJvdXRlckxpbmtQcm9wcyxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3JvdXRlckxpbmtFdmVudE5hbWU6cm91dGVyTGlua0V2ZW50TmFtZX19fTtmdW5jdGlvbiB0ZXh0U3R5bGUodCl7cmV0dXJuIHZvaWQgMD09PXR8fHQ8Mj97fTp7b3ZlcmZsb3c6XCJoaWRkZW5cIixkaXNwbGF5OlwiLXdlYmtpdC1ib3hcIixcIi13ZWJraXQtYm94LW9yaWVudFwiOlwidmVydGljYWxcIixcIi13ZWJraXQtbGluZS1jbGFtcFwiOnR9fXZhciBzdWJJdGVtUHJvcHM9e2ljb246U3RyaW5nLHJpZ2h0SWNvbjpTdHJpbmcsaW1hZ2U6U3RyaW5nLHJpZ2h0SW1hZ2U6U3RyaW5nLGF2YXRhcjpTdHJpbmcscmlnaHRBdmF0YXI6U3RyaW5nLGxldHRlcjpTdHJpbmcscmlnaHRMZXR0ZXI6U3RyaW5nLGxhYmVsOlN0cmluZyxzdWJsYWJlbDpTdHJpbmcsbGFiZWxMaW5lczpbU3RyaW5nLE51bWJlcl0sc3VibGFiZWxMaW5lczpbU3RyaW5nLE51bWJlcl19LEl0ZW1NaXhpbj17bWl4aW5zOlt7cHJvcHM6cm91dGVyTGlua1Byb3BzfV0scHJvcHM6e2Rhcms6Qm9vbGVhbixsaW5rOkJvb2xlYW4sZGVuc2U6Qm9vbGVhbixzcGFyc2U6Qm9vbGVhbixzZXBhcmF0b3I6Qm9vbGVhbixpbnNldFNlcGFyYXRvcjpCb29sZWFuLG11bHRpbGluZTpCb29sZWFuLGhpZ2hsaWdodDpCb29sZWFuLHRhZzp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImRpdlwifX0sY29tcHV0ZWQ6e2l0ZW1DbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJue1wicS1pdGVtXCI6ITAsXCJxLWl0ZW0tZGl2aXNpb25cIjohMCxcInJlbGF0aXZlLXBvc2l0aW9uXCI6ITAsXCJxLWl0ZW0tZGFya1wiOnRoaXMuZGFyayxcInEtaXRlbS1kZW5zZVwiOnRoaXMuZGVuc2UsXCJxLWl0ZW0tc3BhcnNlXCI6dGhpcy5zcGFyc2UsXCJxLWl0ZW0tc2VwYXJhdG9yXCI6dGhpcy5zZXBhcmF0b3IsXCJxLWl0ZW0taW5zZXQtc2VwYXJhdG9yXCI6dGhpcy5pbnNldFNlcGFyYXRvcixcInEtaXRlbS1tdWx0aWxpbmVcIjp0aGlzLm11bHRpbGluZSxcInEtaXRlbS1oaWdobGlnaHRcIjp0aGlzLmhpZ2hsaWdodCxcInEtaXRlbS1saW5rXCI6dGhpcy50b3x8dGhpcy5saW5rfX19fSxRSXRlbT17bmFtZTpcIlFJdGVtXCIsbWl4aW5zOltJdGVtTWl4aW5dLHByb3BzOnthY3RpdmU6Qm9vbGVhbixsaW5rOkJvb2xlYW59LGNvbXB1dGVkOntjbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJuW3ZvaWQgMCE9PXRoaXMudG8/XCJxLWxpbmtcIjp7YWN0aXZlOnRoaXMuYWN0aXZlfSx0aGlzLml0ZW1DbGFzc2VzXX19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwIT09dGhpcy50bz90KFwicm91dGVyLWxpbmtcIix7cHJvcHM6T2JqZWN0LmFzc2lnbih7fSx0aGlzLiRwcm9wcyx7dGFnOlwiYVwifSksY2xhc3M6dGhpcy5jbGFzc2VzfSx0aGlzLiRzbG90cy5kZWZhdWx0KTp0KHRoaXMudGFnLHtjbGFzczp0aGlzLmNsYXNzZXN9LHRoaXMuJHNsb3RzLmRlZmF1bHQpfX0sUUl0ZW1TaWRlPXtuYW1lOlwiUUl0ZW1TaWRlXCIscHJvcHM6e3JpZ2h0OkJvb2xlYW4saWNvbjpTdHJpbmcsbGV0dGVyOnt0eXBlOlN0cmluZyx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuIDE9PT10Lmxlbmd0aH19LGludmVydGVkOkJvb2xlYW4sYXZhdGFyOlN0cmluZyxpbWFnZTpTdHJpbmcsc3RhbXA6U3RyaW5nLGNvbG9yOlN0cmluZyx0ZXh0Q29sb3I6U3RyaW5nfSxjb21wdXRlZDp7dHlwZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuW1wiaWNvblwiLFwiaW1hZ2VcIixcImF2YXRhclwiLFwibGV0dGVyXCIsXCJzdGFtcFwiXS5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSl9LGNsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXCJxLWl0ZW0tc2lkZS1cIisodGhpcy5yaWdodD9cInJpZ2h0XCI6XCJsZWZ0XCIpXTtyZXR1cm4hdGhpcy5jb2xvcnx8dGhpcy5pY29ufHx0aGlzLmxldHRlcnx8dC5wdXNoKFwidGV4dC1cIit0aGlzLmNvbG9yKSx0fSx0eXBlQ2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PVtcInEtaXRlbS1cIit0aGlzLnR5cGVdO3JldHVybiB0aGlzLmNvbG9yJiYodGhpcy5pbnZlcnRlZCYmKHRoaXMuaWNvbnx8dGhpcy5sZXR0ZXIpP3QucHVzaChcImJnLVwiK3RoaXMuY29sb3IpOnRoaXMudGV4dENvbG9yfHx0LnB1c2goXCJ0ZXh0LVwiK3RoaXMuY29sb3IpKSx0aGlzLnRleHRDb2xvciYmdC5wdXNoKFwidGV4dC1cIit0aGlzLnRleHRDb2xvciksdGhpcy5pbnZlcnRlZCYmKHRoaXMuaWNvbnx8dGhpcy5sZXR0ZXIpJiYodC5wdXNoKFwicS1pdGVtLWludmVydGVkXCIpLHQucHVzaChcImZsZXhcIiksdC5wdXNoKFwiZmxleC1jZW50ZXJcIikpLHR9LGltYWdlUGF0aDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmltYWdlfHx0aGlzLmF2YXRhcn19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gdGhpcy50eXBlJiYodGhpcy5pY29uPyhlPXQoUUljb24se2NsYXNzOnRoaXMuaW52ZXJ0ZWQ/bnVsbDp0aGlzLnR5cGVDbGFzc2VzLHByb3BzOntuYW1lOnRoaXMuaWNvbn19KSx0aGlzLmludmVydGVkJiYoZT10KFwiZGl2XCIse2NsYXNzOnRoaXMudHlwZUNsYXNzZXN9LFtlXSkpKTplPXRoaXMuaW1hZ2VQYXRoP3QoXCJpbWdcIix7Y2xhc3M6dGhpcy50eXBlQ2xhc3NlcyxhdHRyczp7c3JjOnRoaXMuaW1hZ2VQYXRofX0pOnQoXCJkaXZcIix7Y2xhc3M6dGhpcy50eXBlQ2xhc3Nlc30sW3RoaXMuc3RhbXB8fHRoaXMubGV0dGVyXSkpLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWl0ZW0tc2lkZSBxLWl0ZW0tc2VjdGlvblwiLGNsYXNzOnRoaXMuY2xhc3Nlc30sW2UsdGhpcy4kc2xvdHMuZGVmYXVsdF0pfX07ZnVuY3Rpb24gdGV4dCh0LGUsaSxzKXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtaXRlbS1cIitlKygxPT09KHM9cGFyc2VJbnQocywxMCkpP1wiIGVsbGlwc2lzXCI6XCJcIiksc3R5bGU6dGV4dFN0eWxlKHMpLGRvbVByb3BzOntpbm5lckhUTUw6aX19KX12YXIgUUl0ZW1NYWluPXtuYW1lOlwiUUl0ZW1NYWluXCIscHJvcHM6e2xhYmVsOlN0cmluZyxsYWJlbExpbmVzOltTdHJpbmcsTnVtYmVyXSxzdWJsYWJlbDpTdHJpbmcsc3VibGFiZWxMaW5lczpbU3RyaW5nLE51bWJlcl0saW5zZXQ6Qm9vbGVhbix0YWc6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJkaXZcIn19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdCh0aGlzLnRhZyx7c3RhdGljQ2xhc3M6XCJxLWl0ZW0tbWFpbiBxLWl0ZW0tc2VjdGlvblwiLGNsYXNzOntcInEtaXRlbS1tYWluLWluc2V0XCI6dGhpcy5pbnNldH19LFt0aGlzLmxhYmVsP3RleHQodCxcImxhYmVsXCIsdGhpcy5sYWJlbCx0aGlzLmxhYmVsTGluZXMpOm51bGwsdGhpcy5zdWJsYWJlbD90ZXh0KHQsXCJzdWJsYWJlbFwiLHRoaXMuc3VibGFiZWwsdGhpcy5zdWJsYWJlbExpbmVzKTpudWxsLHRoaXMuJHNsb3RzLmRlZmF1bHRdKX19LFFJdGVtU2VwYXJhdG9yPXtuYW1lOlwiUUl0ZW1TZXBhcmF0b3JcIixwcm9wczp7aW5zZXQ6Qm9vbGVhbn0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1pdGVtLXNlcGFyYXRvci1jb21wb25lbnRcIixjbGFzczp7XCJxLWl0ZW0tc2VwYXJhdG9yLWluc2V0LWNvbXBvbmVudFwiOnRoaXMuaW5zZXR9fSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFBY3Rpb25TaGVldD17bmFtZTpcIlFBY3Rpb25TaGVldFwiLHByb3BzOnt2YWx1ZTpCb29sZWFuLHRpdGxlOlN0cmluZyxncmlkOkJvb2xlYW4sYWN0aW9uczpBcnJheSxkaXNtaXNzTGFiZWw6U3RyaW5nfSxjb21wdXRlZDp7Y29udGVudENzczpmdW5jdGlvbigpe319LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9W10scz10aGlzLiRzbG90cy50aXRsZXx8dGhpcy50aXRsZTtyZXR1cm4gcyYmaS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWFjdGlvbnNoZWV0LXRpdGxlIGNvbHVtbiBqdXN0aWZ5LWNlbnRlclwifSxbc10pKSxpLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtYWN0aW9uc2hlZXQtYm9keSBzY3JvbGxcIn0sdGhpcy5hY3Rpb25zP1t0aGlzLmdyaWQ/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtYWN0aW9uc2hlZXQtZ3JpZCByb3cgd3JhcCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCJ9LHRoaXMuX19nZXRBY3Rpb25zKHQpKTp0KFFMaXN0LHtzdGF0aWNDbGFzczpcIm5vLWJvcmRlclwiLHByb3BzOntsaW5rOiEwfX0sdGhpcy5fX2dldEFjdGlvbnModCkpXTp0aGlzLiRzbG90cy5kZWZhdWx0KSksdChRTW9kYWwse3JlZjpcIm1vZGFsXCIscHJvcHM6e3ZhbHVlOnRoaXMudmFsdWUscG9zaXRpb246XCJib3R0b21cIixjb250ZW50Q3NzOnRoaXMuY29udGVudENzc30sb246e2lucHV0OmZ1bmN0aW9uKHQpe2UuJGVtaXQoXCJpbnB1dFwiLHQpfSxzaG93OmZ1bmN0aW9uKCl7ZS4kZW1pdChcInNob3dcIil9LGhpZGU6ZnVuY3Rpb24oKXtlLiRlbWl0KFwiaGlkZVwiKX0sZGlzbWlzczpmdW5jdGlvbigpe2UuJGVtaXQoXCJjYW5jZWxcIil9LFwiZXNjYXBlLWtleVwiOmZ1bmN0aW9uKCl7ZS4kZW1pdChcImVzY2FwZS1rZXlcIil9fX0saSl9LG1ldGhvZHM6e3Nob3c6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kcmVmcy5tb2RhbC5zaG93KCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kcmVmcy5tb2RhbD90aGlzLiRyZWZzLm1vZGFsLmhpZGUoKTpQcm9taXNlLnJlc29sdmUoKX0sX19nZXRBY3Rpb25zOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuYWN0aW9ucy5tYXAoZnVuY3Rpb24oaSl7dmFyIHM7cmV0dXJuIGkubGFiZWw/dChlLmdyaWQ/XCJkaXZcIjpRSXRlbSwoKHM9e3N0YXRpY0NsYXNzOmUuZ3JpZD9cInEtYWN0aW9uc2hlZXQtZ3JpZC1pdGVtIGN1cnNvci1wb2ludGVyIHJlbGF0aXZlLXBvc2l0aW9uIGNvbHVtbiBpbmxpbmUgZmxleC1jZW50ZXJcIjpudWxsLGNsYXNzOmkuY2xhc3NlcyxhdHRyczp7dGFiaW5kZXg6MH19KVtlLmdyaWQ/XCJvblwiOlwibmF0aXZlT25cIl09e2NsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGUuX19vbk9rKGkpfSxrZXl1cDpmdW5jdGlvbih0KXsxMz09PWdldEV2ZW50S2V5KHQpJiZlLl9fb25PayhpKX19LHMpLGUuZ3JpZD9baS5pY29uP3QoUUljb24se3Byb3BzOntuYW1lOmkuaWNvbixjb2xvcjppLmNvbG9yfX0pOm51bGwsaS5hdmF0YXI/dChcImltZ1wiLHtkb21Qcm9wczp7c3JjOmkuYXZhdGFyfSxzdGF0aWNDbGFzczpcImF2YXRhclwifSk6bnVsbCx0KFwic3BhblwiLFtpLmxhYmVsXSldOlt0KFFJdGVtU2lkZSx7cHJvcHM6e2ljb246aS5pY29uLGNvbG9yOmkuY29sb3IsYXZhdGFyOmkuYXZhdGFyfX0pLHQoUUl0ZW1NYWluLHtwcm9wczp7aW5zZXQ6ITAsbGFiZWw6aS5sYWJlbH19KV0pOnQoUUl0ZW1TZXBhcmF0b3Ise3N0YXRpY0NsYXNzOlwiY29sLTEyXCJ9KX0pfSxfX29uT2s6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLmhpZGUoKS50aGVuKGZ1bmN0aW9uKCl7XCJmdW5jdGlvblwiPT10eXBlb2YgdC5oYW5kbGVyJiZ0LmhhbmRsZXIoKSxlLiRlbWl0KFwib2tcIix0KX0pfSxfX29uQ2FuY2VsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLmhpZGUoKS50aGVuKGZ1bmN0aW9uKCl7dC4kZW1pdChcImNhbmNlbFwiKX0pfSxfX29uS2V5Q2FuY2VsOmZ1bmN0aW9uKHQpezEzPT09Z2V0RXZlbnRLZXkodCkmJnRoaXMuX19vbkNhbmNlbCgpfX19LHVuaXRzPVtcIkJcIixcImtCXCIsXCJNQlwiLFwiR0JcIixcIlRCXCIsXCJQQlwiXTtmdW5jdGlvbiBodW1hblN0b3JhZ2VTaXplKHQpe2Zvcih2YXIgZT0wO3BhcnNlSW50KHQsMTApPj0xMDI0JiZlPHVuaXRzLmxlbmd0aC0xOyl0Lz0xMDI0LCsrZTtyZXR1cm4gdC50b0ZpeGVkKDEpK1wiIFwiK3VuaXRzW2VdfWZ1bmN0aW9uIGNhcGl0YWxpemUodCl7cmV0dXJuIHQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKX1mdW5jdGlvbiBiZXR3ZWVuKHQsZSxpKXtyZXR1cm4gaTw9ZT9lOk1hdGgubWluKGksTWF0aC5tYXgoZSx0KSl9ZnVuY3Rpb24gbm9ybWFsaXplVG9JbnRlcnZhbCh0LGUsaSl7aWYoaTw9ZSlyZXR1cm4gZTt2YXIgcz1pLWUrMSxuPWUrKHQtZSklcztyZXR1cm4gbjxlJiYobj1zK24pLDA9PT1uPzA6bn1mdW5jdGlvbiBwYWQodCxlLGkpe3ZvaWQgMD09PWUmJihlPTIpLHZvaWQgMD09PWkmJihpPVwiMFwiKTt2YXIgcz1cIlwiK3Q7cmV0dXJuIHMubGVuZ3RoPj1lP3M6bmV3IEFycmF5KGUtcy5sZW5ndGgrMSkuam9pbihpKStzfXZhciBmb3JtYXQ9e2h1bWFuU3RvcmFnZVNpemU6aHVtYW5TdG9yYWdlU2l6ZSxjYXBpdGFsaXplOmNhcGl0YWxpemUsYmV0d2VlbjpiZXR3ZWVuLG5vcm1hbGl6ZVRvSW50ZXJ2YWw6bm9ybWFsaXplVG9JbnRlcnZhbCxwYWQ6cGFkfSx4aHI9aXNTU1I/bnVsbDpYTUxIdHRwUmVxdWVzdCxzZW5kPWlzU1NSP251bGw6eGhyLnByb3RvdHlwZS5zZW5kLHN0YWNrPXtzdGFydDpbXSxzdG9wOltdfSxoaWdoamFja0NvdW50PTA7ZnVuY3Rpb24gdHJhbnNsYXRlKHQpe3ZhciBlPXQucCxpPXQucG9zLHM9dC5hY3RpdmUsbj10Lmhvcml6LG89dC5yZXZlcnNlLHI9dC5kaXIsYT0xLGw9MTtyZXR1cm4gbj8obyYmKGE9LTEpLFwiYm90dG9tXCI9PT1pJiYobD0tMSkse3RyYW5zZm9ybTpcInRyYW5zbGF0ZTNkKFwiK2EqKGUtMTAwKStcIiUsXCIrKHM/MDotMjAwKmwpK1wiJSwwKVwifSk6KG8mJihsPS0xKSxcInJpZ2h0XCI9PT1pJiYoYT0tMSkse3RyYW5zZm9ybTpcInRyYW5zbGF0ZTNkKFwiKyhzPzA6ciphKi0yMDApK1wiJSxcIitsKihlLTEwMCkrXCIlLDApXCJ9KX1mdW5jdGlvbiBpbmModCxlKXtyZXR1cm5cIm51bWJlclwiIT10eXBlb2YgZSYmKGU9dDwyNT8zKk1hdGgucmFuZG9tKCkrMzp0PDY1PzMqTWF0aC5yYW5kb20oKTp0PDg1PzIqTWF0aC5yYW5kb20oKTp0PDk5Py42OjApLGJldHdlZW4odCtlLDAsMTAwKX1mdW5jdGlvbiBoaWdoamFja0FqYXgodCxlKXtmdW5jdGlvbiBpKCl7c3RhY2suc3RvcC5tYXAoZnVuY3Rpb24odCl7dCgpfSl9c3RhY2suc3RhcnQucHVzaCh0KSxzdGFjay5zdG9wLnB1c2goZSksKytoaWdoamFja0NvdW50PjF8fCh4aHIucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcyxlPVtdLHM9YXJndW1lbnRzLmxlbmd0aDtzLS07KWVbc109YXJndW1lbnRzW3NdO3N0YWNrLnN0YXJ0Lm1hcChmdW5jdGlvbih0KXt0KCl9KSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLGksITEpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcInJlYWR5c3RhdGVjaGFuZ2VcIixmdW5jdGlvbigpezQ9PT10LnJlYWR5U3RhdGUmJmkoKX0sITEpLHNlbmQuYXBwbHkodGhpcyxlKX0pfWZ1bmN0aW9uIHJlc3RvcmVBamF4KHQsZSl7c3RhY2suc3RhcnQ9c3RhY2suc3RhcnQuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlIT09dH0pLHN0YWNrLnN0b3A9c3RhY2suc3RvcC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQhPT1lfSksKGhpZ2hqYWNrQ291bnQ9TWF0aC5tYXgoMCxoaWdoamFja0NvdW50LTEpKXx8KHhoci5wcm90b3R5cGUuc2VuZD1zZW5kKX12YXIgUUFqYXhCYXI9e25hbWU6XCJRQWpheEJhclwiLHByb3BzOntwb3NpdGlvbjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInRvcFwiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJ0b3BcIixcInJpZ2h0XCIsXCJib3R0b21cIixcImxlZnRcIl0uaW5jbHVkZXModCl9fSxzaXplOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiMnB4XCJ9LGNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicmVkXCJ9LHNraXBIaWphY2s6Qm9vbGVhbixyZXZlcnNlOkJvb2xlYW59LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57Y2FsbHM6MCxwcm9ncmVzczowLG9uU2NyZWVuOiExLGFuaW1hdGU6ITB9fSxjb21wdXRlZDp7Y2xhc3NlczpmdW5jdGlvbigpe3JldHVyblt0aGlzLnBvc2l0aW9uLFwiYmctXCIrdGhpcy5jb2xvcix0aGlzLmFuaW1hdGU/XCJcIjpcIm5vLXRyYW5zaXRpb25cIl19LHN0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vblNjcmVlbixlPXRyYW5zbGF0ZSh7cDp0aGlzLnByb2dyZXNzLHBvczp0aGlzLnBvc2l0aW9uLGFjdGl2ZTp0LGhvcml6OnRoaXMuaG9yaXpvbnRhbCxyZXZlcnNlOnRoaXMuJHEuaTE4bi5ydGwmJltcInRvcFwiLFwiYm90dG9tXCJdLmluY2x1ZGVzKHRoaXMucG9zaXRpb24pPyF0aGlzLnJldmVyc2U6dGhpcy5yZXZlcnNlLGRpcjp0aGlzLiRxLmkxOG4ucnRsPy0xOjF9KTtyZXR1cm4gZVt0aGlzLnNpemVQcm9wXT10aGlzLnNpemUsZS5vcGFjaXR5PXQ/MTowLGV9LGhvcml6b250YWw6ZnVuY3Rpb24oKXtyZXR1cm5cInRvcFwiPT09dGhpcy5wb3NpdGlvbnx8XCJib3R0b21cIj09PXRoaXMucG9zaXRpb259LHNpemVQcm9wOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaG9yaXpvbnRhbD9cImhlaWdodFwiOlwid2lkdGhcIn19LG1ldGhvZHM6e3N0YXJ0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dm9pZCAwPT09dCYmKHQ9MzAwKSx0aGlzLmNhbGxzKyssdGhpcy5jYWxscz4xfHwoY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuJGVtaXQoXCJzdGFydFwiKSx0aGlzLm9uU2NyZWVufHwodGhpcy5wcm9ncmVzcz0wLHRoaXMub25TY3JlZW49ITAsdGhpcy5hbmltYXRlPSExLHRoaXMudGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe2UuYW5pbWF0ZT0hMCxlLl9fd29yayh0KX0sMTAwKSkpfSxpbmNyZW1lbnQ6ZnVuY3Rpb24odCl7dGhpcy5jYWxscz4wJiYodGhpcy5wcm9ncmVzcz1pbmModGhpcy5wcm9ncmVzcyx0KSl9LHN0b3A6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKHRoaXMuY2FsbHM9TWF0aC5tYXgoMCx0aGlzLmNhbGxzLTEpLCEodGhpcy5jYWxscz4wKSl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuJGVtaXQoXCJzdG9wXCIpO3ZhciBlPWZ1bmN0aW9uKCl7dC5hbmltYXRlPSEwLHQucHJvZ3Jlc3M9MTAwLHQudGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3Qub25TY3JlZW49ITF9LDFlMyl9OzA9PT10aGlzLnByb2dyZXNzP3RoaXMudGltZXI9c2V0VGltZW91dChlLDEpOmUoKX19LF9fd29yazpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMucHJvZ3Jlc3M8MTAwJiYodGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5pbmNyZW1lbnQoKSxlLl9fd29yayh0KX0sdCkpfX0sbW91bnRlZDpmdW5jdGlvbigpe3RoaXMuc2tpcEhpamFja3x8KHRoaXMuaGlqYWNrZWQ9ITAsaGlnaGphY2tBamF4KHRoaXMuc3RhcnQsdGhpcy5zdG9wKSl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy5oaWphY2tlZCYmcmVzdG9yZUFqYXgodGhpcy5zdGFydCx0aGlzLnN0b3ApfSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWxvYWRpbmctYmFyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLHN0eWxlOnRoaXMuc3R5bGV9KX19O2Z1bmN0aW9uIHNob3dSaXBwbGUodCxlLGkpe3ZhciBzPWkuc3RvcCxuPWkuY2VudGVyO3MmJnQuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIG8scixhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpLGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIiksYz1lLmNsaWVudFdpZHRoPmUuY2xpZW50SGVpZ2h0P2UuY2xpZW50V2lkdGg6ZS5jbGllbnRIZWlnaHQsaD0obj9jOjIqYykrXCJweFwiLHU9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihhLmFwcGVuZENoaWxkKGwpLGEuY2xhc3NOYW1lPVwicS1yaXBwbGUtY29udGFpbmVyXCIsbC5jbGFzc05hbWU9XCJxLXJpcHBsZS1hbmltYXRpb25cIixsLnN0eWxlLndpZHRoPWgsbC5zdHlsZS5oZWlnaHQ9aCxlLmFwcGVuZENoaWxkKGEpLG4pbz1yPTA7ZWxzZXt2YXIgZD1wb3NpdGlvbih0KTtvPWQubGVmdC11LmxlZnQtYyxyPWQudG9wLXUudG9wLWN9bC5jbGFzc0xpc3QuYWRkKFwicS1yaXBwbGUtYW5pbWF0aW9uLWVudGVyXCIpLGwuY2xhc3NMaXN0LmFkZChcInEtcmlwcGxlLWFuaW1hdGlvbi12aXNpYmxlXCIpLGwuc3R5bGUudHJhbnNmb3JtPVwidHJhbnNsYXRlKFwiK28rXCJweCwgXCIrcitcInB4KSBzY2FsZTNkKDAsIDAsIDApXCIsc2V0VGltZW91dChmdW5jdGlvbigpe2wuY2xhc3NMaXN0LnJlbW92ZShcInEtcmlwcGxlLWFuaW1hdGlvbi1lbnRlclwiKSxsLnN0eWxlLnRyYW5zZm9ybT1cInRyYW5zbGF0ZShcIitvK1wicHgsIFwiK3IrXCJweCkgc2NhbGUzZCgxLCAxLCAxKVwiLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtsLmNsYXNzTGlzdC5yZW1vdmUoXCJxLXJpcHBsZS1hbmltYXRpb24tdmlzaWJsZVwiKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5yZW1vdmUoKX0sMzAwKX0sMzAwKX0sMTApfWZ1bmN0aW9uIHNob3VsZEFib3J0KHQpe3QubWF0O3JldHVybiB0LmlvcyYmITB9dmFyIFJpcHBsZT17bmFtZTpcInJpcHBsZVwiLGluc2VydGVkOmZ1bmN0aW9uKHQsZSl7dmFyIGk9ZS52YWx1ZSxzPWUubW9kaWZpZXJzO2lmKCFzaG91bGRBYm9ydChzKSl7dmFyIG49e2VuYWJsZWQ6ITEhPT1pLG1vZGlmaWVyczp7c3RvcDpzLnN0b3AsY2VudGVyOnMuY2VudGVyfSxjbGljazpmdW5jdGlvbihlKXtuLmVuYWJsZWQmJi0xIT09ZS5kZXRhaWwmJnNob3dSaXBwbGUoZSx0LG4ubW9kaWZpZXJzKX0sa2V5dXA6ZnVuY3Rpb24oZSl7bi5lbmFibGVkJiYxMz09PWUua2V5Q29kZSYmc2hvd1JpcHBsZShlLHQsbi5tb2RpZmllcnMpfX07dC5fX3FyaXBwbGU9bix0LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLG4uY2xpY2ssITEpLHQuYWRkRXZlbnRMaXN0ZW5lcihcImtleXVwXCIsbi5rZXl1cCwhMSl9fSx1cGRhdGU6ZnVuY3Rpb24odCxlKXt2YXIgaT1lLnZhbHVlLHM9ZS5tb2RpZmllcnMsbj1zLnN0b3Asbz1zLmNlbnRlcixyPXQuX19xcmlwcGxlO3ImJihyLmVuYWJsZWQ9ITEhPT1pLHIubW9kaWZpZXJzPXtzdG9wOm4sY2VudGVyOm99KX0sdW5iaW5kOmZ1bmN0aW9uKHQsZSl7dmFyIGk9ZS5tb2RpZmllcnMscz10Ll9fcXJpcHBsZTtzJiYhc2hvdWxkQWJvcnQoaSkmJih0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLHMuY2xpY2ssITEpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleXVwXCIscy5rZXl1cCwhMSksZGVsZXRlIHQuX19xcmlwcGxlKX19LGFsaWduTWFwPXtsZWZ0Olwic3RhcnRcIixjZW50ZXI6XCJjZW50ZXJcIixyaWdodDpcImVuZFwiLGJldHdlZW46XCJiZXR3ZWVuXCIsYXJvdW5kOlwiYXJvdW5kXCJ9LGFsaWduVmFsdWVzPU9iamVjdC5rZXlzKGFsaWduTWFwKSxBbGlnbk1peGluPXtwcm9wczp7YWxpZ246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJjZW50ZXJcIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuIGFsaWduVmFsdWVzLmluY2x1ZGVzKHQpfX19LGNvbXB1dGVkOnthbGlnbkNsYXNzOmZ1bmN0aW9uKCl7cmV0dXJuXCJqdXN0aWZ5LVwiK2FsaWduTWFwW3RoaXMuYWxpZ25dfX19LHNpemVzPXt4czo4LHNtOjEwLG1kOjE0LGxnOjIwLHhsOjI0LGZvcm06MTQuNzc3LFwiZm9ybS1sYWJlbFwiOjIxLjc3NyxcImZvcm0taGlkZS11bmRlcmxpbmVcIjo5LjMzMyxcImZvcm0tbGFiZWwtaGlkZS11bmRlcmxpbmVcIjoxNi4zMzN9LEJ0bk1peGluPXttaXhpbnM6W0FsaWduTWl4aW5dLGRpcmVjdGl2ZXM6e1JpcHBsZTpSaXBwbGV9LHByb3BzOnt0eXBlOlN0cmluZyxsb2FkaW5nOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDpudWxsfSxkaXNhYmxlOkJvb2xlYW4sbGFiZWw6W051bWJlcixTdHJpbmddLG5vQ2FwczpCb29sZWFuLG5vV3JhcDpCb29sZWFuLGljb246U3RyaW5nLGljb25SaWdodDpTdHJpbmcscm91bmQ6Qm9vbGVhbixvdXRsaW5lOkJvb2xlYW4sZmxhdDpCb29sZWFuLHJvdW5kZWQ6Qm9vbGVhbixwdXNoOkJvb2xlYW4sc2l6ZTpTdHJpbmcsZmFiOkJvb2xlYW4sZmFiTWluaTpCb29sZWFuLGNvbG9yOlN0cmluZyx0ZXh0Q29sb3I6U3RyaW5nLGdsb3NzeTpCb29sZWFuLGRlbnNlOkJvb2xlYW4sbm9SaXBwbGU6Qm9vbGVhbix0YWJpbmRleDpOdW1iZXIsdG86W09iamVjdCxTdHJpbmddLHJlcGxhY2U6Qm9vbGVhbn0sY29tcHV0ZWQ6e3N0eWxlOmZ1bmN0aW9uKCl7aWYodGhpcy5zaXplJiYhdGhpcy5mYWImJiF0aGlzLmZhYk1pbmkpcmV0dXJue2ZvbnRTaXplOnRoaXMuc2l6ZSBpbiBzaXplcz9zaXplc1t0aGlzLnNpemVdK1wicHhcIjp0aGlzLnNpemV9fSxpc1JlY3RhbmdsZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLmlzUm91bmR9LGlzUm91bmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yb3VuZHx8dGhpcy5mYWJ8fHRoaXMuZmFiTWluaX0sc2hhcGU6ZnVuY3Rpb24oKXtyZXR1cm5cInEtYnRuLVwiKyh0aGlzLmlzUm91bmQ/XCJyb3VuZFwiOlwicmVjdGFuZ2xlXCIpfSxpc0Rpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGlzYWJsZXx8dGhpcy5sb2FkaW5nfSxoYXNSaXBwbGU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5ub1JpcHBsZSYmIXRoaXMuaXNEaXNhYmxlZH0sY29tcHV0ZWRUYWJJbmRleDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzRGlzYWJsZWQ/LTE6dGhpcy50YWJpbmRleHx8MH0saXNMaW5rOmZ1bmN0aW9uKCl7cmV0dXJuXCJhXCI9PT10aGlzLnR5cGV8fHZvaWQgMCE9PXRoaXMudG99LGF0dHJzOmZ1bmN0aW9uKCl7dmFyIHQ9e3RhYmluZGV4OnRoaXMuY29tcHV0ZWRUYWJJbmRleH07cmV0dXJuXCJhXCIhPT10aGlzLnR5cGUmJih0LnR5cGU9dGhpcy50eXBlfHxcImJ1dHRvblwiKSx2b2lkIDAhPT10aGlzLnRvJiYodC5ocmVmPXRoaXMuJHJvdXRlci5yZXNvbHZlKHRoaXMudG8pLmhyZWYpLHR9LGNsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD1bdGhpcy5zaGFwZV07cmV0dXJuIHRoaXMuZmFiP3QucHVzaChcInEtYnRuLWZhYlwiKTp0aGlzLmZhYk1pbmkmJnQucHVzaChcInEtYnRuLWZhYi1taW5pXCIpLHRoaXMuZmxhdD90LnB1c2goXCJxLWJ0bi1mbGF0XCIpOnRoaXMub3V0bGluZT90LnB1c2goXCJxLWJ0bi1vdXRsaW5lXCIpOnRoaXMucHVzaCYmdC5wdXNoKFwicS1idG4tcHVzaFwiKSx0aGlzLmlzRGlzYWJsZWQ/dC5wdXNoKFwiZGlzYWJsZWRcIik6KHQucHVzaChcInEtZm9jdXNhYmxlIHEtaG92ZXJhYmxlXCIpLHRoaXMuYWN0aXZlJiZ0LnB1c2goXCJhY3RpdmVcIikpLHRoaXMuY29sb3I/dGhpcy5mbGF0fHx0aGlzLm91dGxpbmU/dC5wdXNoKFwidGV4dC1cIisodGhpcy50ZXh0Q29sb3J8fHRoaXMuY29sb3IpKToodC5wdXNoKFwiYmctXCIrdGhpcy5jb2xvciksdC5wdXNoKFwidGV4dC1cIisodGhpcy50ZXh0Q29sb3J8fFwid2hpdGVcIikpKTp0aGlzLnRleHRDb2xvciYmdC5wdXNoKFwidGV4dC1cIit0aGlzLnRleHRDb2xvciksdC5wdXNoKHtcInEtYnRuLW5vLXVwcGVyY2FzZVwiOnRoaXMubm9DYXBzLFwicS1idG4tcm91bmRlZFwiOnRoaXMucm91bmRlZCxcInEtYnRuLWRlbnNlXCI6dGhpcy5kZW5zZSxnbG9zc3k6dGhpcy5nbG9zc3l9KSx0fSxpbm5lckNsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD1bdGhpcy5hbGlnbkNsYXNzXTtyZXR1cm4hMD09PXRoaXMubm9XcmFwJiZ0LnB1c2goXCJuby13cmFwXCIsXCJ0ZXh0LW5vLXdyYXBcIiksITA9PT10aGlzLnJlcGVhdGluZyYmdC5wdXNoKFwibm9uLXNlbGVjdGFibGVcIiksITA9PT10aGlzLmxvYWRpbmcmJnQucHVzaChcInEtYnRuLWlubmVyLS1oaWRkZW5cIiksdH19fSxtaXhpbiQxPXtwcm9wczp7Y29sb3I6U3RyaW5nLHNpemU6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6XCIxZW1cIn19LGNvbXB1dGVkOntjbGFzc2VzOmZ1bmN0aW9uKCl7aWYodGhpcy5jb2xvcilyZXR1cm5cInRleHQtXCIrdGhpcy5jb2xvcn19fSxEZWZhdWx0U3Bpbm5lcj17bmFtZTpcIlFTcGlubmVyTWF0XCIsbWl4aW5zOlttaXhpbiQxXSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJzdmdcIix7c3RhdGljQ2xhc3M6XCJxLXNwaW5uZXIgcS1zcGlubmVyLW1hdFwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7d2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjI1IDI1IDUwIDUwXCJ9fSxbdChcImNpcmNsZVwiLHtzdGF0aWNDbGFzczpcInBhdGhcIixhdHRyczp7Y3g6XCI1MFwiLGN5OlwiNTBcIixyOlwiMjBcIixmaWxsOlwibm9uZVwiLHN0cm9rZTpcImN1cnJlbnRDb2xvclwiLFwic3Ryb2tlLXdpZHRoXCI6XCIzXCIsXCJzdHJva2UtbWl0ZXJsaW1pdFwiOlwiMTBcIn19KV0pfX0sUVNwaW5uZXI9e21peGluczpbRGVmYXVsdFNwaW5uZXJdLG5hbWU6XCJRU3Bpbm5lclwifSxRQnRuPXtuYW1lOlwiUUJ0blwiLG1peGluczpbQnRuTWl4aW5dLHByb3BzOntwZXJjZW50YWdlOk51bWJlcixkYXJrUGVyY2VudGFnZTpCb29sZWFuLHdhaXRGb3JSaXBwbGU6Qm9vbGVhbixyZXBlYXRUaW1lb3V0OltOdW1iZXIsRnVuY3Rpb25dfSxjb21wdXRlZDp7aGFzUGVyY2VudGFnZTpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLnBlcmNlbnRhZ2V9LHdpZHRoOmZ1bmN0aW9uKCl7cmV0dXJuIGJldHdlZW4odGhpcy5wZXJjZW50YWdlLDAsMTAwKStcIiVcIn0sZXZlbnRzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5pc0Rpc2FibGVkfHwhdGhpcy5yZXBlYXRUaW1lb3V0P3tjbGljazp0aGlzLmNsaWNrLGtleWRvd246dGhpcy5fX29uS2V5RG93bixrZXl1cDp0aGlzLl9fb25LZXlVcH06e21vdXNlZG93bjp0aGlzLl9fc3RhcnRSZXBlYXQsdG91Y2hzdGFydDp0aGlzLl9fc3RhcnRSZXBlYXQsa2V5ZG93bjpmdW5jdGlvbihlKXt0Ll9fb25LZXlEb3duKGUsITApfSxtb3VzZXVwOnRoaXMuX19lbmRSZXBlYXQsdG91Y2hlbmQ6dGhpcy5fX2VuZFJlcGVhdCxrZXl1cDpmdW5jdGlvbihlKXt0Ll9fb25LZXlVcChlLCEwKX0sbW91c2VsZWF2ZTp0aGlzLl9fYWJvcnRSZXBlYXQsdG91Y2htb3ZlOnRoaXMuX19hYm9ydFJlcGVhdCxibHVyOnRoaXMuX19hYm9ydFJlcGVhdH19fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3JlcGVhdGluZzohMSxhY3RpdmU6ITF9fSxtZXRob2RzOntjbGljazpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKHRoaXMuX19jbGVhbnVwKCksdm9pZCAwPT09dGhpcy50byYmIXRoaXMuaXNEaXNhYmxlZHx8KHQmJnN0b3BBbmRQcmV2ZW50KHQpLCF0aGlzLmlzRGlzYWJsZWQpKWlmKHQmJi0xIT09dC5kZXRhaWwmJlwic3VibWl0XCI9PT10aGlzLnR5cGUpe3N0b3BBbmRQcmV2ZW50KHQpO3ZhciBpPW5ldyBNb3VzZUV2ZW50KFwiY2xpY2tcIixPYmplY3QuYXNzaWduKHt9LHQse2RldGFpbDotMX0pKTt0aGlzLnRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gZS4kZWwmJmUuJGVsLmRpc3BhdGNoRXZlbnQoaSl9LDIwMCl9ZWxzZXt2YXIgcz1mdW5jdGlvbigpe2UuJHJvdXRlcltlLnJlcGxhY2U/XCJyZXBsYWNlXCI6XCJwdXNoXCJdKGUudG8pfSxuPWZ1bmN0aW9uKCl7ZS5pc0Rpc2FibGVkfHwoZS4kZW1pdChcImNsaWNrXCIsdCxzKSx2b2lkIDAhPT1lLnRvJiYhMSE9PXQubmF2aWdhdGUmJnMoKSl9O3RoaXMud2FpdEZvclJpcHBsZSYmdGhpcy5oYXNSaXBwbGU/dGhpcy50aW1lcj1zZXRUaW1lb3V0KG4sMzAwKTpuKCl9fSxfX2NsZWFudXA6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy50aW1lcil9LF9fb25LZXlEb3duOmZ1bmN0aW9uKHQsZSl7dGhpcy5pc0Rpc2FibGVkfHwxMyE9PXQua2V5Q29kZXx8KHRoaXMuYWN0aXZlPSEwLGU/dGhpcy5fX3N0YXJ0UmVwZWF0KHQpOnN0b3BBbmRQcmV2ZW50KHQpKX0sX19vbktleVVwOmZ1bmN0aW9uKHQsZSl7dGhpcy5hY3RpdmUmJih0aGlzLmFjdGl2ZT0hMSx0aGlzLmlzRGlzYWJsZWR8fDEzIT09dC5rZXlDb2RlfHx0aGlzW2U/XCJfX2VuZFJlcGVhdFwiOlwiY2xpY2tcIl0odCkpfSxfX3N0YXJ0UmVwZWF0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoIXRoaXMucmVwZWF0aW5nKXt2YXIgaT1mdW5jdGlvbigpe2UudGltZXI9c2V0VGltZW91dChzLFwiZnVuY3Rpb25cIj09dHlwZW9mIGUucmVwZWF0VGltZW91dD9lLnJlcGVhdFRpbWVvdXQoZS5yZXBlYXRDb3VudCk6ZS5yZXBlYXRUaW1lb3V0KX0scz1mdW5jdGlvbigpe2UuaXNEaXNhYmxlZHx8KGUucmVwZWF0Q291bnQrPTEsdC5yZXBlYXRDb3VudD1lLnJlcGVhdENvdW50LGUuJGVtaXQoXCJjbGlja1wiLHQpLGkoKSl9O3RoaXMucmVwZWF0Q291bnQ9MCx0aGlzLnJlcGVhdGluZz0hMCxpKCl9fSxfX2Fib3J0UmVwZWF0OmZ1bmN0aW9uKCl7dGhpcy5yZXBlYXRpbmc9ITEsdGhpcy5fX2NsZWFudXAoKX0sX19lbmRSZXBlYXQ6ZnVuY3Rpb24odCl7dGhpcy5yZXBlYXRpbmcmJih0aGlzLnJlcGVhdGluZz0hMSx0aGlzLnJlcGVhdENvdW50P3RoaXMucmVwZWF0Q291bnQ9MDoodC5kZXRhaWx8fHQua2V5Q29kZSkmJih0LnJlcGVhdENvdW50PTAsdGhpcy4kZW1pdChcImNsaWNrXCIsdCkpLHRoaXMuX19jbGVhbnVwKCkpfX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuX19jbGVhbnVwKCl9LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT1bXS5jb25jYXQodGhpcy4kc2xvdHMuZGVmYXVsdCk7cmV0dXJuIHZvaWQgMCE9PXRoaXMubGFiZWwmJiEwPT09dGhpcy5pc1JlY3RhbmdsZSYmZS51bnNoaWZ0KHQoXCJkaXZcIixbdGhpcy5sYWJlbF0pKSx2b2lkIDAhPT10aGlzLmljb24mJmUudW5zaGlmdCh0KFFJY29uLHtjbGFzczp7XCJvbi1sZWZ0XCI6dm9pZCAwIT09dGhpcy5sYWJlbCYmITA9PT10aGlzLmlzUmVjdGFuZ2xlfSxwcm9wczp7bmFtZTp0aGlzLmljb259fSkpLHZvaWQgMCE9PXRoaXMuaWNvblJpZ2h0JiYhMT09PXRoaXMuaXNSb3VuZCYmZS5wdXNoKHQoUUljb24se3N0YXRpY0NsYXNzOlwib24tcmlnaHRcIixwcm9wczp7bmFtZTp0aGlzLmljb25SaWdodH19KSksdCh0aGlzLmlzTGluaz9cImFcIjpcImJ1dHRvblwiLHtzdGF0aWNDbGFzczpcInEtYnRuIGlubGluZSByZWxhdGl2ZS1wb3NpdGlvbiBxLWJ0bi1pdGVtIG5vbi1zZWxlY3RhYmxlXCIsY2xhc3M6dGhpcy5jbGFzc2VzLHN0eWxlOnRoaXMuc3R5bGUsYXR0cnM6dGhpcy5hdHRycyxvbjp0aGlzLmV2ZW50cyxkaXJlY3RpdmVzOnRoaXMuaGFzUmlwcGxlP1t7bmFtZTpcInJpcHBsZVwiLHZhbHVlOiEwLG1vZGlmaWVyczp7Y2VudGVyOnRoaXMuaXNSb3VuZH19XTpudWxsfSxbdGhpcy4kcS5wbGF0Zm9ybS5pcy5kZXNrdG9wP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWZvY3VzLWhlbHBlclwifSk6bnVsbCx0aGlzLmxvYWRpbmcmJnRoaXMuaGFzUGVyY2VudGFnZT90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1idG4tcHJvZ3Jlc3MgYWJzb2x1dGUtZnVsbFwiLGNsYXNzOntcInEtYnRuLWRhcmstcHJvZ3Jlc3NcIjp0aGlzLmRhcmtQZXJjZW50YWdlfSxzdHlsZTp7d2lkdGg6dGhpcy53aWR0aH19KTpudWxsLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWJ0bi1pbm5lciByb3cgY29sIGl0ZW1zLWNlbnRlciBxLXBvcHVwLS1za2lwXCIsY2xhc3M6dGhpcy5pbm5lckNsYXNzZXN9LGUpLG51bGwhPT10aGlzLmxvYWRpbmc/dChcInRyYW5zaXRpb25cIix7cHJvcHM6e25hbWU6XCJxLXRyYW5zaXRpb24tLWZhZGVcIn19LCEwPT09dGhpcy5sb2FkaW5nP1t0KFwiZGl2XCIse2tleTpcImxvYWRpbmdcIixzdGF0aWNDbGFzczpcImFic29sdXRlLWZ1bGwgZmxleCBmbGV4LWNlbnRlclwifSx2b2lkIDAhPT10aGlzLiRzbG90cy5sb2FkaW5nP3RoaXMuJHNsb3RzLmxvYWRpbmc6W3QoUVNwaW5uZXIpXSldOnZvaWQgMCk6bnVsbF0pfX0sUUFsZXJ0PXtuYW1lOlwiUUFsZXJ0XCIscHJvcHM6e3R5cGU6e3R5cGU6U3RyaW5nLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJwb3NpdGl2ZVwiLFwibmVnYXRpdmVcIixcIndhcm5pbmdcIixcImluZm9cIl0uaW5jbHVkZXModCl9fSxjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcIm5lZ2F0aXZlXCJ9LHRleHRDb2xvcjpTdHJpbmcsbWVzc2FnZTpTdHJpbmcsZGV0YWlsOlN0cmluZyxpY29uOlN0cmluZyxhdmF0YXI6U3RyaW5nLGFjdGlvbnM6QXJyYXl9LGNvbXB1dGVkOntjb21wdXRlZEljb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pY29uP3RoaXMuaWNvbjp0aGlzLiRxLmljb24udHlwZVt0aGlzLnR5cGV8fHRoaXMuY29sb3JdfSxjbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJuXCJiZy1cIisodGhpcy50eXBlfHx0aGlzLmNvbG9yKStcIiB0ZXh0LVwiKyh0aGlzLnRleHRDb2xvcnx8XCJ3aGl0ZVwiKX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9W10scz10aGlzLiRzbG90cy5kZXRhaWx8fHRoaXMuZGV0YWlsO3JldHVybiB0aGlzLmF2YXRhcj9pLnB1c2godChcImltZ1wiLHtzdGF0aWNDbGFzczpcImF2YXRhclwiLGF0dHJzOntzcmM6dGhpcy5hdmF0YXJ9fSkpOih0aGlzLmljb258fHRoaXMudHlwZSkmJmkucHVzaCh0KFFJY29uLHtwcm9wczp7bmFtZTp0aGlzLmNvbXB1dGVkSWNvbn19KSksdChcImRpdlwiLFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1hbGVydCByb3cgbm8td3JhcCBzaGFkb3ctMlwiLGNsYXNzOnRoaXMuY2xhc3Nlc30sW2kubGVuZ3RoP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWFsZXJ0LXNpZGUgY29sLWF1dG8gcm93IGZsZXgtY2VudGVyXCJ9LGkpOm51bGwsdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtYWxlcnQtY29udGVudCBjb2wgc2VsZi1jZW50ZXJcIn0sW3QoXCJkaXZcIix0aGlzLiRzbG90cy5kZWZhdWx0fHx0aGlzLm1lc3NhZ2UpLHM/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtYWxlcnQtZGV0YWlsXCJ9LFtzXSk6bnVsbF0pLHRoaXMuYWN0aW9ucyYmdGhpcy5hY3Rpb25zLmxlbmd0aD90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1hbGVydC1hY3Rpb25zIGNvbC1hdXRvIGd1dHRlci14cyBjb2x1bW4gZmxleC1jZW50ZXJcIn0sdGhpcy5hY3Rpb25zLm1hcChmdW5jdGlvbihpKXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImZ1bGwtd2lkdGhcIn0sW3QoUUJ0bix7c3RhdGljQ2xhc3M6XCJmdWxsLXdpZHRoXCIscHJvcHM6e2ZsYXQ6ITAsZGVuc2U6ITAsYWxpZ246XCJsZWZ0XCIsaWNvbjppLmljb24sbGFiZWw6ITA9PT1pLmNsb3NlQnRuP1wic3RyaW5nXCI9PXR5cGVvZiBpLmxhYmVsP2kubGFiZWw6ZS4kcS5pMThuLmxhYmVsLmNsb3NlOmkubGFiZWx9LG9uOntjbGljazpmdW5jdGlvbigpe3JldHVybiBpLmhhbmRsZXIoKX19fSldKX0pKTpudWxsXSldKX19O2Z1bmN0aW9uIGZpbHRlcih0LGUpe3ZhciBpPWUuZmllbGQscz1lLmxpc3Qsbj10LnRvTG93ZXJDYXNlKCk7cmV0dXJuIHMuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybihcIlwiK3RbaV0pLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChuKX0pfWZ1bmN0aW9uIHM0KCl7cmV0dXJuIE1hdGguZmxvb3IoNjU1MzYqKDErTWF0aC5yYW5kb20oKSkpLnRvU3RyaW5nKDE2KS5zdWJzdHJpbmcoMSl9ZnVuY3Rpb24gdWlkKCl7cmV0dXJuIHM0KCkrczQoKStcIi1cIitzNCgpK1wiLVwiK3M0KCkrXCItXCIrczQoKStcIi1cIitzNCgpK3M0KCkrczQoKX1mdW5jdGlvbiBnZXRBbmNob3JQb3NpdGlvbih0LGUpe3ZhciBpPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscz1pLnRvcCxuPWkubGVmdCxvPWkucmlnaHQscj1pLmJvdHRvbSxhPXt0b3A6cyxsZWZ0Om4sd2lkdGg6dC5vZmZzZXRXaWR0aCxoZWlnaHQ6dC5vZmZzZXRIZWlnaHR9O3JldHVybiBlJiYoYS50b3AtPWVbMV0sYS5sZWZ0LT1lWzBdLHImJihyKz1lWzFdKSxvJiYobys9ZVswXSksYS53aWR0aCs9ZVswXSxhLmhlaWdodCs9ZVsxXSksYS5yaWdodD1vfHxhLmxlZnQrYS53aWR0aCxhLmJvdHRvbT1yfHxhLnRvcCthLmhlaWdodCxhLm1pZGRsZT1hLmxlZnQrKGEucmlnaHQtYS5sZWZ0KS8yLGEuY2VudGVyPWEudG9wKyhhLmJvdHRvbS1hLnRvcCkvMixhfWZ1bmN0aW9uIGdldFRhcmdldFBvc2l0aW9uKHQpe3JldHVybnt0b3A6MCxjZW50ZXI6dC5vZmZzZXRIZWlnaHQvMixib3R0b206dC5vZmZzZXRIZWlnaHQsbGVmdDowLG1pZGRsZTp0Lm9mZnNldFdpZHRoLzIscmlnaHQ6dC5vZmZzZXRXaWR0aH19ZnVuY3Rpb24gcmVwb3NpdGlvbklmTmVlZGVkKHQsZSxpLHMsbixvKXt2YXIgcj1nZXRTY3JvbGxiYXJXaWR0aCgpLGE9d2luZG93LmlubmVySGVpZ2h0LGw9d2luZG93LmlubmVyV2lkdGg7aWYoYS09cixsLT1yLG4udG9wPDB8fG4udG9wK2UuYm90dG9tPmEpaWYoXCJjZW50ZXJcIj09PWkudmVydGljYWwpbi50b3A9dFtpLnZlcnRpY2FsXT5hLzI/YS1lLmJvdHRvbTowLG4ubWF4SGVpZ2h0PU1hdGgubWluKGUuYm90dG9tLGEpO2Vsc2UgaWYodFtpLnZlcnRpY2FsXT5hLzIpe3ZhciBjPU1hdGgubWluKGEsXCJjZW50ZXJcIj09PXMudmVydGljYWw/dC5jZW50ZXI6cy52ZXJ0aWNhbD09PWkudmVydGljYWw/dC5ib3R0b206dC50b3ApO24ubWF4SGVpZ2h0PU1hdGgubWluKGUuYm90dG9tLGMpLG4udG9wPU1hdGgubWF4KDAsYy1uLm1heEhlaWdodCl9ZWxzZSBuLnRvcD1cImNlbnRlclwiPT09cy52ZXJ0aWNhbD90LmNlbnRlcjpzLnZlcnRpY2FsPT09aS52ZXJ0aWNhbD90LnRvcDp0LmJvdHRvbSxuLm1heEhlaWdodD1NYXRoLm1pbihlLmJvdHRvbSxhLW4udG9wKTtpZihuLmxlZnQ8MHx8bi5sZWZ0K2UucmlnaHQ+bClpZihuLm1heFdpZHRoPU1hdGgubWluKGUucmlnaHQsbCksXCJtaWRkbGVcIj09PWkuaG9yaXpvbnRhbCluLmxlZnQ9dFtpLmhvcml6b250YWxdPmwvMj9sLWUucmlnaHQ6MDtlbHNlIGlmKG8pbi5sZWZ0PW4ubGVmdDwwPzA6bC1lLnJpZ2h0O2Vsc2UgaWYodFtpLmhvcml6b250YWxdPmwvMil7dmFyIGg9TWF0aC5taW4obCxcIm1pZGRsZVwiPT09cy5ob3Jpem9udGFsP3QuY2VudGVyOnMuaG9yaXpvbnRhbD09PWkuaG9yaXpvbnRhbD90LnJpZ2h0OnQubGVmdCk7bi5tYXhXaWR0aD1NYXRoLm1pbihlLnJpZ2h0LGgpLG4ubGVmdD1NYXRoLm1heCgwLGgtbi5tYXhXaWR0aCl9ZWxzZSBuLmxlZnQ9XCJtaWRkbGVcIj09PXMuaG9yaXpvbnRhbD90LmNlbnRlcjpzLmhvcml6b250YWw9PT1pLmhvcml6b250YWw/dC5sZWZ0OnQucmlnaHQsbi5tYXhXaWR0aD1NYXRoLm1pbihlLnJpZ2h0LGwtbi5sZWZ0KTtyZXR1cm4gbn1mdW5jdGlvbiBzZXRQb3NpdGlvbih0KXt2YXIgZSxpPXQuZWwscz10LmFuaW1hdGUsbj10LmFuY2hvckVsLG89dC5hbmNob3JPcmlnaW4scj10LnNlbGZPcmlnaW4sYT10Lm1heEhlaWdodCxsPXQuZXZlbnQsYz10LmFuY2hvckNsaWNrLGg9dC50b3VjaFBvc2l0aW9uLHU9dC5vZmZzZXQsZD10LnRvdWNoT2Zmc2V0LHA9dC5jb3ZlcjtpZihpLnN0eWxlLm1heEhlaWdodD1hfHxcIjY1dmhcIixpLnN0eWxlLm1heFdpZHRoPVwiMTAwdndcIiwhbHx8YyYmIWgpaWYoZCl7dmFyIGY9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxtPWYudG9wLGc9Zi5sZWZ0LHY9bStkLnRvcCxiPWcrZC5sZWZ0O2U9e3RvcDp2LGxlZnQ6Yix3aWR0aDoxLGhlaWdodDoxLHJpZ2h0OmIrMSxjZW50ZXI6dixtaWRkbGU6Yixib3R0b206disxfX1lbHNlIGU9Z2V0QW5jaG9yUG9zaXRpb24obix1KTtlbHNle3ZhciBfPXBvc2l0aW9uKGwpLHk9Xy50b3Asdz1fLmxlZnQ7ZT17dG9wOnksbGVmdDp3LHdpZHRoOjEsaGVpZ2h0OjEscmlnaHQ6dysxLGNlbnRlcjp5LG1pZGRsZTp3LGJvdHRvbTp5KzF9fXZhciBDPWdldFRhcmdldFBvc2l0aW9uKGkpLHg9e3RvcDplW28udmVydGljYWxdLUNbci52ZXJ0aWNhbF0sbGVmdDplW28uaG9yaXpvbnRhbF0tQ1tyLmhvcml6b250YWxdfTtpZih4PXJlcG9zaXRpb25JZk5lZWRlZChlLEMscixvLHgscCksaS5zdHlsZS50b3A9TWF0aC5tYXgoMCx4LnRvcCkrXCJweFwiLGkuc3R5bGUubGVmdD1NYXRoLm1heCgwLHgubGVmdCkrXCJweFwiLHgubWF4SGVpZ2h0JiYoaS5zdHlsZS5tYXhIZWlnaHQ9eC5tYXhIZWlnaHQrXCJweFwiKSx4Lm1heFdpZHRoJiYoaS5zdHlsZS5tYXhXaWR0aD14Lm1heFdpZHRoK1wicHhcIikscyl7dmFyIFM9eC50b3A8ZS50b3A/W1widXBcIixcImRvd25cIl06W1wiZG93blwiLFwidXBcIl07aS5jbGFzc0xpc3QuYWRkKFwiYW5pbWF0ZS1wb3B1cC1cIitTWzBdKSxpLmNsYXNzTGlzdC5yZW1vdmUoXCJhbmltYXRlLXBvcHVwLVwiK1NbMV0pfX1mdW5jdGlvbiBwb3NpdGlvblZhbGlkYXRvcih0KXt2YXIgZT10LnNwbGl0KFwiIFwiKTtyZXR1cm4gMj09PWUubGVuZ3RoJiYoW1widG9wXCIsXCJjZW50ZXJcIixcImJvdHRvbVwiXS5pbmNsdWRlcyhlWzBdKT8hIVtcImxlZnRcIixcIm1pZGRsZVwiLFwicmlnaHRcIl0uaW5jbHVkZXMoZVsxXSl8fChjb25zb2xlLmVycm9yKFwiQW5jaG9yL1NlbGYgcG9zaXRpb24gbXVzdCBlbmQgd2l0aCBvbmUgb2YgbGVmdC9taWRkbGUvcmlnaHRcIiksITEpOihjb25zb2xlLmVycm9yKFwiQW5jaG9yL1NlbGYgcG9zaXRpb24gbXVzdCBzdGFydCB3aXRoIG9uZSBvZiB0b3AvY2VudGVyL2JvdHRvbVwiKSwhMSkpfWZ1bmN0aW9uIG9mZnNldFZhbGlkYXRvcih0KXtyZXR1cm4hdHx8Mj09PXQubGVuZ3RoJiYoXCJudW1iZXJcIj09dHlwZW9mIHRbMF0mJlwibnVtYmVyXCI9PXR5cGVvZiB0WzFdKX1mdW5jdGlvbiBwYXJzZVBvc2l0aW9uKHQpe3ZhciBlPXQuc3BsaXQoXCIgXCIpO3JldHVybnt2ZXJ0aWNhbDplWzBdLGhvcml6b250YWw6ZVsxXX19ZnVuY3Rpb24gZnJhbWVEZWJvdW5jZSh0KXt2YXIgZSxpPSExO2Z1bmN0aW9uIHMoKXtmb3IodmFyIHM9dGhpcyxuPVtdLG89YXJndW1lbnRzLmxlbmd0aDtvLS07KW5bb109YXJndW1lbnRzW29dO2l8fChpPSEwLGU9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7dC5hcHBseShzLG4pLGk9ITF9KSl9cmV0dXJuIHMuY2FuY2VsPWZ1bmN0aW9uKCl7d2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGUpLGk9ITF9LHN9dmFyIENhblJlbmRlck1peGluPXtkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2NhblJlbmRlcjohb25TU1J9fSxtb3VudGVkOmZ1bmN0aW9uKCl7ITE9PT10aGlzLmNhblJlbmRlciYmKHRoaXMuY2FuUmVuZGVyPSEwKX19LFFQb3BvdmVyPXtuYW1lOlwiUVBvcG92ZXJcIixtaXhpbnM6W01vZGVsVG9nZ2xlTWl4aW4sQ2FuUmVuZGVyTWl4aW5dLHByb3BzOnthbmNob3I6e3R5cGU6U3RyaW5nLHZhbGlkYXRvcjpwb3NpdGlvblZhbGlkYXRvcn0sc2VsZjp7dHlwZTpTdHJpbmcsdmFsaWRhdG9yOnBvc2l0aW9uVmFsaWRhdG9yfSxmaXQ6Qm9vbGVhbixjb3ZlcjpCb29sZWFuLHBlcnNpc3RlbnQ6Qm9vbGVhbixrZWVwT25TY3JlZW46Qm9vbGVhbixtYXhIZWlnaHQ6U3RyaW5nLHRvdWNoUG9zaXRpb246Qm9vbGVhbixhbmNob3JDbGljazp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITB9LG9mZnNldDp7dHlwZTpBcnJheSx2YWxpZGF0b3I6b2Zmc2V0VmFsaWRhdG9yfSxub0ZvY3VzOkJvb2xlYW4sbm9SZWZvY3VzOkJvb2xlYW4sZGlzYWJsZTpCb29sZWFufSx3YXRjaDp7JHJvdXRlOmZ1bmN0aW9uKCl7dGhpcy5oaWRlKCl9fSxjb21wdXRlZDp7aG9yaXpTaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHEuaTE4bi5ydGw/XCJyaWdodFwiOlwibGVmdFwifSxhbmNob3JPcmlnaW46ZnVuY3Rpb24oKXtyZXR1cm4gcGFyc2VQb3NpdGlvbih0aGlzLmNvdmVyP1widG9wIFwiK3RoaXMuaG9yaXpTaWRlOnRoaXMuYW5jaG9yfHxcImJvdHRvbSBcIit0aGlzLmhvcml6U2lkZSl9LHNlbGZPcmlnaW46ZnVuY3Rpb24oKXtyZXR1cm4gcGFyc2VQb3NpdGlvbih0aGlzLnNlbGZ8fFwidG9wIFwiK3RoaXMuaG9yaXpTaWRlKX19LHJlbmRlcjpmdW5jdGlvbih0KXtpZih0aGlzLmNhblJlbmRlcilyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtcG9wb3ZlciBzY3JvbGxcIixyZWY6XCJjb250ZW50XCIsYXR0cnM6e3RhYmluZGV4Oi0xfSxvbjp7Y2xpY2s6ZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX19fSx0aGlzLiRzbG90cy5kZWZhdWx0KX0sbW91bnRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fX3VwZGF0ZVBvc2l0aW9uPWZyYW1lRGVib3VuY2UoZnVuY3Rpb24oZSxpLHMpe3JldHVybiB0LnJlcG9zaXRpb24oaSxzKX0pLHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7dC5hbmNob3JFbD10LiRlbC5wYXJlbnROb2RlLHQuYW5jaG9yRWwucmVtb3ZlQ2hpbGQodC4kZWwpLCh0LmFuY2hvckVsLmNsYXNzTGlzdC5jb250YWlucyhcInEtcG9wdXAtLXNraXBcIil8fHQuYW5jaG9yRWwuY2xhc3NMaXN0LmNvbnRhaW5zKFwibm8tcG9pbnRlci1ldmVudHNcIikpJiYodC5hbmNob3JFbD10LmFuY2hvckVsLnBhcmVudE5vZGUpLHQuYW5jaG9yQ2xpY2smJih0LmFuY2hvckVsLmNsYXNzTGlzdC5hZGQoXCJjdXJzb3ItcG9pbnRlclwiKSx0LmFuY2hvckVsLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLHQudG9nZ2xlKSx0LmFuY2hvckVsLmFkZEV2ZW50TGlzdGVuZXIoXCJrZXl1cFwiLHQuX190b2dnbGVLZXkpKX0pLHRoaXMudmFsdWUmJnRoaXMuc2hvdygpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5zaG93aW5nJiZ0aGlzLl9fY2xlYW51cCgpLHRoaXMuYW5jaG9yQ2xpY2smJnRoaXMuYW5jaG9yRWwmJih0aGlzLmFuY2hvckVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLHRoaXMudG9nZ2xlKSx0aGlzLmFuY2hvckVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXl1cFwiLHRoaXMuX190b2dnbGVLZXkpKX0sbWV0aG9kczp7X19zaG93OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5ub1JlZm9jdXN8fCh0aGlzLl9fcmVmb2N1c1RhcmdldD10aGlzLmFuY2hvckNsaWNrJiZ0aGlzLmFuY2hvckVsfHxkb2N1bWVudC5hY3RpdmVFbGVtZW50KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuJGVsKSxFc2NhcGVLZXkucmVnaXN0ZXIoZnVuY3Rpb24oKXtlLiRlbWl0KFwiZXNjYXBlLWtleVwiKSxlLmhpZGUoKX0pLHRoaXMuc2Nyb2xsVGFyZ2V0PWdldFNjcm9sbFRhcmdldCh0aGlzLmFuY2hvckVsKSx0aGlzLnNjcm9sbFRhcmdldC5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsdGhpcy5fX3VwZGF0ZVBvc2l0aW9uLGxpc3Rlbk9wdHMucGFzc2l2ZSksdGhpcy5zY3JvbGxUYXJnZXQhPT13aW5kb3cmJndpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsdGhpcy5fX3VwZGF0ZVBvc2l0aW9uLGxpc3Rlbk9wdHMucGFzc2l2ZSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix0aGlzLl9fdXBkYXRlUG9zaXRpb24sbGlzdGVuT3B0cy5wYXNzaXZlKSx0aGlzLl9fdXBkYXRlUG9zaXRpb24oMCx0LCEwKSxjbGVhclRpbWVvdXQodGhpcy50aW1lciksIXRoaXMubm9Gb2N1cyYmdGhpcy4kcmVmcy5jb250ZW50JiZ0aGlzLiRyZWZzLmNvbnRlbnQuZm9jdXMoKSx0aGlzLnRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIixlLl9fYm9keUhpZGUsITApLGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIixlLl9fYm9keUhpZGUsITApLGUuc2hvd1Byb21pc2UmJmUuc2hvd1Byb21pc2VSZXNvbHZlKCl9LDApfSxfX3RvZ2dsZUtleTpmdW5jdGlvbih0KXsxMz09PXQua2V5Q29kZSYmdGhpcy50b2dnbGUodCl9LF9fYm9keUhpZGU6ZnVuY3Rpb24odCl7dGhpcy5wZXJzaXN0ZW50fHx0JiZ0LnRhcmdldCYmKHRoaXMuJGVsLmNvbnRhaW5zKHQudGFyZ2V0KXx8dGhpcy5hbmNob3JFbC5jb250YWlucyh0LnRhcmdldCkpfHx0aGlzLmhpZGUodCl9LF9faGlkZTpmdW5jdGlvbigpe3RoaXMuX19jbGVhbnVwKCksdGhpcy5oaWRlUHJvbWlzZSYmdGhpcy5oaWRlUHJvbWlzZVJlc29sdmUoKSwhdGhpcy5ub1JlZm9jdXMmJnRoaXMuX19yZWZvY3VzVGFyZ2V0JiYodGhpcy5fX3JlZm9jdXNUYXJnZXQuZm9jdXMoKSwhdGhpcy5fX3JlZm9jdXNUYXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKFwicS1pZlwiKSYmdGhpcy5fX3JlZm9jdXNUYXJnZXQuYmx1cigpKX0sX19jbGVhbnVwOmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLHRoaXMuX19ib2R5SGlkZSwhMCksZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLHRoaXMuX19ib2R5SGlkZSwhMCksdGhpcy5zY3JvbGxUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHRoaXMuX191cGRhdGVQb3NpdGlvbixsaXN0ZW5PcHRzLnBhc3NpdmUpLHRoaXMuc2Nyb2xsVGFyZ2V0IT09d2luZG93JiZ3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHRoaXMuX191cGRhdGVQb3NpdGlvbixsaXN0ZW5PcHRzLnBhc3NpdmUpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsdGhpcy5fX3VwZGF0ZVBvc2l0aW9uLGxpc3Rlbk9wdHMucGFzc2l2ZSksRXNjYXBlS2V5LnBvcCgpLHRoaXMuJGVsLnJlbW92ZSgpfSxyZXBvc2l0aW9uOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy5hbmNob3JFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxzPWkudG9wLG49aS5ib3R0b20sbz1pLmxlZnQscj1pLnJpZ2h0O2lmKCF0aGlzLmtlZXBPblNjcmVlbiYmKG48MHx8cz53aW5kb3cuaW5uZXJIZWlnaHR8fHI8MHx8bz53aW5kb3cuaW5uZXJXaWR0aCkpcmV0dXJuIHRoaXMuaGlkZSgpO2lmKHRoaXMuZml0fHx0aGlzLmNvdmVyKXt2YXIgYT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmFuY2hvckVsKTt0aGlzLiRlbC5zdHlsZS5taW5XaWR0aD1hLmdldFByb3BlcnR5VmFsdWUoXCJ3aWR0aFwiKSx0aGlzLmNvdmVyJiYodGhpcy4kZWwuc3R5bGUubWluSGVpZ2h0PWEuZ2V0UHJvcGVydHlWYWx1ZShcImhlaWdodFwiKSl9aWYoZSlpZih0aGlzLnRvdWNoUG9zaXRpb24pe3ZhciBsPXBvc2l0aW9uKHQpLGM9bC50b3AsaD1sLmxlZnQ7dGhpcy50b3VjaE9mZnNldD17bGVmdDpoLW8sdG9wOmMtc319ZWxzZSBkZWxldGUgdGhpcy50b3VjaE9mZnNldDtzZXRQb3NpdGlvbih7ZXZlbnQ6dCxhbmltYXRlOmUsZWw6dGhpcy4kZWwsb2Zmc2V0OnRoaXMub2Zmc2V0LGFuY2hvckVsOnRoaXMuYW5jaG9yRWwsYW5jaG9yT3JpZ2luOnRoaXMuYW5jaG9yT3JpZ2luLHNlbGZPcmlnaW46dGhpcy5zZWxmT3JpZ2luLG1heEhlaWdodDp0aGlzLm1heEhlaWdodCxhbmNob3JDbGljazp0aGlzLmFuY2hvckNsaWNrLHRvdWNoUG9zaXRpb246dGhpcy50b3VjaFBvc2l0aW9uLHRvdWNoT2Zmc2V0OnRoaXMudG91Y2hPZmZzZXQsY292ZXI6dGhpcy5jb3Zlcn0pfX19O2Z1bmN0aW9uIHB1c2godCxlLGkscyxuLG8pe3ZhciByPXtwcm9wczp7cmlnaHQ6by5yaWdodH19O2lmKHMmJm4pdC5wdXNoKGUoaSxyLHMpKTtlbHNle3ZhciBhPSExO2Zvcih2YXIgbCBpbiBvKWlmKG8uaGFzT3duUHJvcGVydHkobCkmJnZvaWQgMCE9PShhPW9bbF0pJiYhMCE9PWEpe3QucHVzaChlKGkse3Byb3BzOm99KSk7YnJlYWt9cyYmdC5wdXNoKGUoaSxyLHMpKX19dmFyIFFJdGVtV3JhcHBlcj17bmFtZTpcIlFJdGVtV3JhcHBlclwiLHByb3BzOntjZmc6e3R5cGU6T2JqZWN0LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm57fX19LHNsb3RSZXBsYWNlOkJvb2xlYW59LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmNmZyxpPXRoaXMuc2xvdFJlcGxhY2Uscz1bXTtyZXR1cm4gcHVzaChzLHQsUUl0ZW1TaWRlLHRoaXMuJHNsb3RzLmxlZnQsaSx7aWNvbjplLmljb24sY29sb3I6ZS5sZWZ0Q29sb3IsYXZhdGFyOmUuYXZhdGFyLGxldHRlcjplLmxldHRlcixpbWFnZTplLmltYWdlLGludmVydGVkOmUubGVmdEludmVydGVkLHRleHRDb2xvcjplLmxlZnRUZXh0Q29sb3J9KSxwdXNoKHMsdCxRSXRlbU1haW4sdGhpcy4kc2xvdHMubWFpbixpLHtsYWJlbDplLmxhYmVsLHN1YmxhYmVsOmUuc3VibGFiZWwsbGFiZWxMaW5lczplLmxhYmVsTGluZXMsc3VibGFiZWxMaW5lczplLnN1YmxhYmVsTGluZXMsaW5zZXQ6ZS5pbnNldH0pLHB1c2gocyx0LFFJdGVtU2lkZSx0aGlzLiRzbG90cy5yaWdodCxpLHtyaWdodDohMCxpY29uOmUucmlnaHRJY29uLGNvbG9yOmUucmlnaHRDb2xvcixhdmF0YXI6ZS5yaWdodEF2YXRhcixsZXR0ZXI6ZS5yaWdodExldHRlcixpbWFnZTplLnJpZ2h0SW1hZ2Usc3RhbXA6ZS5zdGFtcCxpbnZlcnRlZDplLnJpZ2h0SW52ZXJ0ZWQsdGV4dENvbG9yOmUucmlnaHRUZXh0Q29sb3J9KSxzLnB1c2godGhpcy4kc2xvdHMuZGVmYXVsdCksdChRSXRlbSx7YXR0cnM6dGhpcy4kYXR0cnMsb246dGhpcy4kbGlzdGVuZXJzLHByb3BzOmV9LHMpfX0sS2V5Ym9hcmRTZWxlY3Rpb25NaXhpbj17ZGF0YTpmdW5jdGlvbigpe3JldHVybntrZXlib2FyZEluZGV4OjAsa2V5Ym9hcmRNb3ZlRGlyZWN0aW9uOiExLGtleWJvYXJkTW92ZVRpbWVyOiExfX0sd2F0Y2g6e2tleWJvYXJkSW5kZXg6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLiRyZWZzLnBvcG92ZXImJnRoaXMuJHJlZnMucG9wb3Zlci5zaG93aW5nJiZ0aGlzLmtleWJvYXJkTW92ZURpcmVjdGlvbiYmdD4tMSYmdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtpZihlLiRyZWZzLnBvcG92ZXIpe3ZhciB0PWUuJHJlZnMucG9wb3Zlci4kZWwucXVlcnlTZWxlY3RvcihcIi5xLXNlbGVjdC1oaWdobGlnaHRcIik7aWYodCYmdC5zY3JvbGxJbnRvVmlldyl7aWYodC5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKXJldHVybiB0LnNjcm9sbEludG9WaWV3SWZOZWVkZWQoITEpO3Quc2Nyb2xsSW50b1ZpZXcoZS5rZXlib2FyZE1vdmVEaXJlY3Rpb248MCl9fX0pfX0sbWV0aG9kczp7X19rZXlib2FyZFNob3c6ZnVuY3Rpb24odCl7dm9pZCAwPT09dCYmKHQ9MCksdGhpcy5rZXlib2FyZEluZGV4IT09dCYmKHRoaXMua2V5Ym9hcmRJbmRleD10KX0sX19rZXlib2FyZFNldEN1cnJlbnRTZWxlY3Rpb246ZnVuY3Rpb24odCl7dGhpcy5rZXlib2FyZEluZGV4Pj0wJiZ0aGlzLmtleWJvYXJkSW5kZXg8PXRoaXMua2V5Ym9hcmRNYXhJbmRleCYmdGhpcy5fX2tleWJvYXJkU2V0U2VsZWN0aW9uKHRoaXMua2V5Ym9hcmRJbmRleCx0KX0sX19rZXlib2FyZEhhbmRsZUtleTpmdW5jdGlvbih0KXt2YXIgZT1nZXRFdmVudEtleSh0KTtzd2l0Y2goZSl7Y2FzZSAzODp0aGlzLl9fa2V5Ym9hcmRNb3ZlQ3Vyc29yKC0xLHQpO2JyZWFrO2Nhc2UgNDA6dGhpcy5fX2tleWJvYXJkTW92ZUN1cnNvcigxLHQpO2JyZWFrO2Nhc2UgMTM6aWYodGhpcy4kcmVmcy5wb3BvdmVyLnNob3dpbmcpcmV0dXJuIHN0b3BBbmRQcmV2ZW50KHQpLHZvaWQgdGhpcy5fX2tleWJvYXJkU2V0Q3VycmVudFNlbGVjdGlvbigpO2JyZWFrO2Nhc2UgOTp0aGlzLmhpZGUoKX10aGlzLl9fa2V5Ym9hcmRDdXN0b21LZXlIYW5kbGUoZSx0KX0sX19rZXlib2FyZE1vdmVDdXJzb3I6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzO2lmKHN0b3BBbmRQcmV2ZW50KGUpLHRoaXMuJHJlZnMucG9wb3Zlci5zaG93aW5nKXtjbGVhclRpbWVvdXQodGhpcy5rZXlib2FyZE1vdmVUaW1lcik7dmFyIHM9dGhpcy5rZXlib2FyZEluZGV4LG49dGhpcy5fX2tleWJvYXJkSXNTZWxlY3RhYmxlSW5kZXh8fGZ1bmN0aW9uKCl7cmV0dXJuITB9O2Rve3M9bm9ybWFsaXplVG9JbnRlcnZhbChzK3QsLTEsaS5rZXlib2FyZE1heEluZGV4KX13aGlsZShzIT09dGhpcy5rZXlib2FyZEluZGV4JiYhbihzKSk7cmV0dXJuIHRoaXMua2V5Ym9hcmRNb3ZlRGlyZWN0aW9uPXM+dGhpcy5rZXlib2FyZEluZGV4PzE6LTEsdGhpcy5rZXlib2FyZE1vdmVUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aS5rZXlib2FyZE1vdmVEaXJlY3Rpb249ITF9LDUwMCksdm9pZCh0aGlzLmtleWJvYXJkSW5kZXg9cyl9dGhpcy5fX2tleWJvYXJkU2hvd1RyaWdnZXIoKX19fSxRQXV0b2NvbXBsZXRlPXtuYW1lOlwiUUF1dG9jb21wbGV0ZVwiLG1peGluczpbS2V5Ym9hcmRTZWxlY3Rpb25NaXhpbl0scHJvcHM6e21pbkNoYXJhY3RlcnM6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MX0sbWF4UmVzdWx0czp7dHlwZTpOdW1iZXIsZGVmYXVsdDo2fSxtYXhIZWlnaHQ6U3RyaW5nLGRlYm91bmNlOnt0eXBlOk51bWJlcixkZWZhdWx0OjUwMH0sZmlsdGVyOnt0eXBlOkZ1bmN0aW9uLGRlZmF1bHQ6ZmlsdGVyfSxzdGF0aWNEYXRhOk9iamVjdCx2YWx1ZUZpZWxkOltTdHJpbmcsRnVuY3Rpb25dLHNlcGFyYXRvcjpCb29sZWFufSxpbmplY3Q6e19faW5wdXQ6e2RlZmF1bHQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKFwiUUF1dG9jb21wbGV0ZSBuZWVkcyB0byBiZSBjaGlsZCBvZiBRSW5wdXQsIFFDaGlwc0lucHV0IG9yIFFTZWFyY2hcIil9fSxfX2lucHV0RGVib3VuY2U6e2RlZmF1bHQ6bnVsbH19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57c2VhcmNoSWQ6XCJcIixyZXN1bHRzOltdLHdpZHRoOjAsZW50ZXJLZXk6ITEsdGltZXI6bnVsbH19LHdhdGNoOntcIl9faW5wdXQudmFsXCI6ZnVuY3Rpb24oKXt0aGlzLmVudGVyS2V5P3RoaXMuZW50ZXJLZXk9ITE6dGhpcy5fX2RlbGF5VHJpZ2dlcigpfX0sY29tcHV0ZWQ6e2NvbXB1dGVkUmVzdWx0czpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1heFJlc3VsdHMmJnRoaXMucmVzdWx0cy5sZW5ndGg+MD90aGlzLnJlc3VsdHMuc2xpY2UoMCx0aGlzLm1heFJlc3VsdHMpOltdfSxjb21wdXRlZFZhbHVlRmllbGQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZUZpZWxkfHx0aGlzLnN0YXRpY0RhdGEmJnRoaXMuc3RhdGljRGF0YS5maWVsZHx8XCJ2YWx1ZVwifSxrZXlib2FyZE1heEluZGV4OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29tcHV0ZWRSZXN1bHRzLmxlbmd0aC0xfSxjb21wdXRlZFdpZHRoOmZ1bmN0aW9uKCl7cmV0dXJue21pbldpZHRoOnRoaXMud2lkdGh9fSxzZWFyY2hpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWFyY2hJZC5sZW5ndGg+MH19LG1ldGhvZHM6e2lzV29ya2luZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRyZWZzJiZ0aGlzLiRyZWZzLnBvcG92ZXJ9LHRyaWdnZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih0aGlzLl9faW5wdXQmJnRoaXMuX19pbnB1dC5pc0VkaXRhYmxlKCkmJnRoaXMuX19pbnB1dC5oYXNGb2N1cygpJiZ0aGlzLmlzV29ya2luZygpKXt2YXIgaT1bbnVsbCx2b2lkIDBdLmluY2x1ZGVzKHRoaXMuX19pbnB1dC52YWwpP1wiXCI6U3RyaW5nKHRoaXMuX19pbnB1dC52YWwpLHM9aS5sZW5ndGgsbj11aWQoKSxvPXRoaXMuJHJlZnMucG9wb3ZlcjtpZih0aGlzLnNlYXJjaElkPW4sczx0aGlzLm1pbkNoYXJhY3RlcnN8fCEwPT09dCYmcz4wKXJldHVybiB0aGlzLnNlYXJjaElkPVwiXCIsdGhpcy5fX2NsZWFyU2VhcmNoKCksdm9pZCB0aGlzLmhpZGUoKTtpZih0aGlzLndpZHRoPXdpZHRoKHRoaXMuaW5wdXRFbCkrXCJweFwiLHRoaXMuc3RhdGljRGF0YSlyZXR1cm4gdGhpcy5zZWFyY2hJZD1cIlwiLHRoaXMucmVzdWx0cz10aGlzLmZpbHRlcihpLHRoaXMuc3RhdGljRGF0YSksdGhpcy5yZXN1bHRzLmxlbmd0aD92b2lkIHRoaXMuX19zaG93UmVzdWx0cygpOnZvaWQgby5oaWRlKCk7dGhpcy5fX2lucHV0LmxvYWRpbmc9ITAsdGhpcy4kZW1pdChcInNlYXJjaFwiLGksZnVuY3Rpb24odCl7aWYoZS5pc1dvcmtpbmcoKSYmZS5zZWFyY2hJZD09PW4pe2lmKGUuX19jbGVhclNlYXJjaCgpLEFycmF5LmlzQXJyYXkodCkmJnQubGVuZ3RoPjApcmV0dXJuIGUucmVzdWx0cz10LHZvaWQgZS5fX3Nob3dSZXN1bHRzKCk7ZS5oaWRlKCl9fSl9fSxoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVzdWx0cz1bXSx0aGlzLmlzV29ya2luZygpP3RoaXMuJHJlZnMucG9wb3Zlci5oaWRlKCk6UHJvbWlzZS5yZXNvbHZlKCl9LGJsdXJIaWRlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLl9fY2xlYXJTZWFyY2goKSx0aGlzLnRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gdC5oaWRlKCl9LDMwMCl9LF9fY2xlYXJTZWFyY2g6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy5fX2lucHV0LmxvYWRpbmc9ITEsdGhpcy5zZWFyY2hJZD1cIlwifSxfX2tleWJvYXJkQ3VzdG9tS2V5SGFuZGxlOmZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlIDI3OnRoaXMuX19jbGVhclNlYXJjaCgpO2JyZWFrO2Nhc2UgMzg6Y2FzZSA0MDpjYXNlIDk6dGhpcy5fX2tleWJvYXJkU2V0Q3VycmVudFNlbGVjdGlvbighMCl9fSxfX2tleWJvYXJkU2hvd1RyaWdnZXI6ZnVuY3Rpb24oKXt0aGlzLnRyaWdnZXIoKX0sX19mb2N1c1Nob3dUcmlnZ2VyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIHQudHJpZ2dlcighMCl9LDEwMCl9LF9fa2V5Ym9hcmRJc1NlbGVjdGFibGVJbmRleDpmdW5jdGlvbih0KXtyZXR1cm4gdD4tMSYmdDx0aGlzLmNvbXB1dGVkUmVzdWx0cy5sZW5ndGgmJiF0aGlzLmNvbXB1dGVkUmVzdWx0c1t0XS5kaXNhYmxlfSxzZXRWYWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMscz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0aGlzLmNvbXB1dGVkVmFsdWVGaWVsZD90aGlzLmNvbXB1dGVkVmFsdWVGaWVsZCh0KTp0W3RoaXMuY29tcHV0ZWRWYWx1ZUZpZWxkXSxuPXRoaXMuX19pbnB1dERlYm91bmNlP1wiRGVib3VuY2VcIjpcIlwiO3RoaXMuaW5wdXRFbCYmdGhpcy5fX2lucHV0JiYhdGhpcy5fX2lucHV0Lmhhc0ZvY3VzKCkmJih0aGlzLiRxLnBsYXRmb3JtLmlzLmllP3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7aS5pbnB1dEVsLmZvY3VzKCl9KTp0aGlzLmlucHV0RWwuZm9jdXMoKSksdGhpcy5lbnRlcktleT10aGlzLl9faW5wdXQmJnMhPT10aGlzLl9faW5wdXQudmFsLHRoaXNbXCJfX2lucHV0XCIrbl1bZT9cInNldE5hdlwiOlwic2V0XCJdKHMpLHRoaXMuJGVtaXQoXCJzZWxlY3RlZFwiLHQsISFlKSxlfHwodGhpcy5fX2NsZWFyU2VhcmNoKCksdGhpcy5oaWRlKCkpfSxfX2tleWJvYXJkU2V0U2VsZWN0aW9uOmZ1bmN0aW9uKHQsZSl7dGhpcy5zZXRWYWx1ZSh0aGlzLnJlc3VsdHNbdF0sZSl9LF9fZGVsYXlUcmlnZ2VyOmZ1bmN0aW9uKCl7dGhpcy5fX2NsZWFyU2VhcmNoKCksdGhpcy5fX2lucHV0Lmhhc0ZvY3VzKCkmJih0aGlzLnN0YXRpY0RhdGE/dGhpcy50cmlnZ2VyKCk6dGhpcy50aW1lcj1zZXRUaW1lb3V0KHRoaXMudHJpZ2dlcix0aGlzLmRlYm91bmNlKSl9LF9fc2hvd1Jlc3VsdHM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLiRyZWZzLnBvcG92ZXI7dGhpcy5fX2tleWJvYXJkU2hvdygtMSksdC5zaG93aW5nP3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2hvd2luZyYmdC5yZXBvc2l0aW9uKCl9KTp0LnNob3coKX19LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX19pbnB1dC5yZWdpc3RlcigpLHRoaXMuX19pbnB1dERlYm91bmNlJiZ0aGlzLl9faW5wdXREZWJvdW5jZS5zZXRDaGlsZERlYm91bmNlKCEwKSx0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3QuX19pbnB1dCYmKHQuaW5wdXRFbD10Ll9faW5wdXQuZ2V0RWwoKSx0LmlucHV0RWwuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIix0Ll9fa2V5Ym9hcmRIYW5kbGVLZXkpLHQuaW5wdXRFbC5hZGRFdmVudExpc3RlbmVyKFwiYmx1clwiLHQuYmx1ckhpZGUpLHQuaW5wdXRFbC5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNcIix0Ll9fZm9jdXNTaG93VHJpZ2dlcikpfSl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9fY2xlYXJTZWFyY2goKSx0aGlzLl9faW5wdXQudW5yZWdpc3RlcigpLHRoaXMuX19pbnB1dERlYm91bmNlJiZ0aGlzLl9faW5wdXREZWJvdW5jZS5zZXRDaGlsZERlYm91bmNlKCExKSx0aGlzLmlucHV0RWwmJih0aGlzLmlucHV0RWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIix0aGlzLl9fa2V5Ym9hcmRIYW5kbGVLZXkpLHRoaXMuaW5wdXRFbC5yZW1vdmVFdmVudExpc3RlbmVyKFwiYmx1clwiLHRoaXMuYmx1ckhpZGUpLHRoaXMuaW5wdXRFbC5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNcIix0aGlzLl9fZm9jdXNTaG93VHJpZ2dlciksdGhpcy5oaWRlKCkpfSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPXRoaXMuX19pbnB1dC5pc0RhcmsoKTtyZXR1cm4gdChRUG9wb3Zlcix7cmVmOlwicG9wb3ZlclwiLGNsYXNzOmk/XCJiZy1kYXJrXCI6bnVsbCxwcm9wczp7Zml0OiEwLGtlZXBPblNjcmVlbjohMCxhbmNob3JDbGljazohMSxtYXhIZWlnaHQ6dGhpcy5tYXhIZWlnaHQsbm9Gb2N1czohMCxub1JlZm9jdXM6ITB9LG9uOntzaG93OmZ1bmN0aW9uKCl7ZS5fX2lucHV0LnNlbGVjdGlvbk9wZW49ITAsZS4kZW1pdChcInNob3dcIil9LGhpZGU6ZnVuY3Rpb24oKXtlLl9faW5wdXQuc2VsZWN0aW9uT3Blbj0hMSxlLiRlbWl0KFwiaGlkZVwiKX19fSxbdChRTGlzdCx7cHJvcHM6e2Rhcms6aSxub0JvcmRlcjohMCxzZXBhcmF0b3I6dGhpcy5zZXBhcmF0b3J9LHN0eWxlOnRoaXMuY29tcHV0ZWRXaWR0aH0sdGhpcy5jb21wdXRlZFJlc3VsdHMubWFwKGZ1bmN0aW9uKGkscyl7cmV0dXJuIHQoUUl0ZW1XcmFwcGVyLHtrZXk6aS5pZHx8cyxjbGFzczp7XCJxLXNlbGVjdC1oaWdobGlnaHRcIjplLmtleWJvYXJkSW5kZXg9PT1zLFwiY3Vyc29yLXBvaW50ZXJcIjohaS5kaXNhYmxlLFwidGV4dC1mYWRlZFwiOmkuZGlzYWJsZX0scHJvcHM6e2NmZzppfSxuYXRpdmVPbjp7bW91c2VlbnRlcjpmdW5jdGlvbigpeyFpLmRpc2FibGUmJihlLmtleWJvYXJkSW5kZXg9cyl9LGNsaWNrOmZ1bmN0aW9uKCl7IWkuZGlzYWJsZSYmZS5zZXRWYWx1ZShpKX19fSl9KSldKX19LFFCcmVhZGNydW1icz17bmFtZTpcIlFCcmVhZGNydW1ic1wiLG1peGluczpbQWxpZ25NaXhpbl0scHJvcHM6e2NvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiZmFkZWRcIn0sYWN0aXZlQ29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJwcmltYXJ5XCJ9LHNlcGFyYXRvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcIi9cIn0sYWxpZ246T2JqZWN0LmFzc2lnbih7fSxBbGlnbk1peGluLnByb3BzLmFsaWduLHtkZWZhdWx0OlwibGVmdFwifSl9LGNvbXB1dGVkOntjbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJuW1widGV4dC1cIit0aGlzLmNvbG9yLHRoaXMuYWxpZ25DbGFzc119fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih0aGlzLiRzbG90cy5kZWZhdWx0KXt2YXIgaT1bXSxzPXRoaXMuJHNsb3RzLmRlZmF1bHQuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT10LnRhZyYmdC50YWcuZW5kc1dpdGgoXCItUUJyZWFkY3J1bWJzRWxcIil9KS5sZW5ndGgsbj10aGlzLiRzY29wZWRTbG90cy5zZXBhcmF0b3J8fGZ1bmN0aW9uKCl7cmV0dXJuIGUuc2VwYXJhdG9yfSxvPVwidGV4dC1cIit0aGlzLmNvbG9yLHI9XCJ0ZXh0LVwiK3RoaXMuYWN0aXZlQ29sb3IsYT0xO2Zvcih2YXIgbCBpbiBlLiRzbG90cy5kZWZhdWx0KXt2YXIgYz1lLiRzbG90cy5kZWZhdWx0W2xdO2lmKHZvaWQgMCE9PWMudGFnJiZjLnRhZy5lbmRzV2l0aChcIi1RQnJlYWRjcnVtYnNFbFwiKSl7dmFyIGg9YTxzO2ErKyxpLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcImZsZXggaXRlbXMtY2VudGVyXCIsY2xhc3M6W2g/cjpvLGg/XCJ0ZXh0LXdlaWdodC1ib2xkXCI6XCJxLWJyZWFkY3J1bWJzLWxhc3RcIl19LFtjXSkpLGgmJmkucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1icmVhZGNydW1icy1zZXBhcmF0b3JcIixjbGFzczpvfSxbbigpXSkpfWVsc2UgaS5wdXNoKGMpfXJldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1icmVhZGNydW1icyBmbGV4IGd1dHRlci14cyBpdGVtcy1jZW50ZXIgb3ZlcmZsb3ctaGlkZGVuXCIsY2xhc3M6dGhpcy5jbGFzc2VzfSxpKX19fSxRQnJlYWRjcnVtYnNFbD17bmFtZTpcIlFCcmVhZGNydW1ic0VsXCIsbWl4aW5zOlt7cHJvcHM6cm91dGVyTGlua1Byb3BzfV0scHJvcHM6e2xhYmVsOlN0cmluZyxpY29uOlN0cmluZyxjb2xvcjpTdHJpbmd9LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdCh2b2lkIDAhPT10aGlzLnRvP1wicm91dGVyLWxpbmtcIjpcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJxLWxpbmsgcS1icmVhZGNydW1icy1lbCBmbGV4IGlubGluZSBpdGVtcy1jZW50ZXIgcmVsYXRpdmUtcG9zaXRpb25cIixwcm9wczp2b2lkIDAhPT10aGlzLnRvP3RoaXMuJHByb3BzOm51bGx9LFt0aGlzLmljb24/dChRSWNvbix7c3RhdGljQ2xhc3M6XCJxLWJyZWFjcnVtYnMtZWwtaWNvbiBxLW1yLXNtXCIscHJvcHM6e25hbWU6dGhpcy5pY29ufX0pOm51bGwsdGhpcy5sYWJlbF0uY29uY2F0KHRoaXMuJHNsb3RzLmRlZmF1bHQpKX19LFFCdG5Hcm91cD17bmFtZTpcIlFCdG5Hcm91cFwiLHByb3BzOntvdXRsaW5lOkJvb2xlYW4sZmxhdDpCb29sZWFuLHJvdW5kZWQ6Qm9vbGVhbixwdXNoOkJvb2xlYW59LGNvbXB1dGVkOntjbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm5bXCJvdXRsaW5lXCIsXCJmbGF0XCIsXCJyb3VuZGVkXCIsXCJwdXNoXCJdLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm5cInEtYnRuLWdyb3VwLVwiK3R9KS5qb2luKFwiIFwiKX19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtYnRuLWdyb3VwIHJvdyBuby13cmFwIGlubGluZVwiLGNsYXNzOnRoaXMuY2xhc3Nlc30sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxRQnRuRHJvcGRvd249e25hbWU6XCJRQnRuRHJvcGRvd25cIixtaXhpbnM6W0J0bk1peGluXSxwcm9wczp7dmFsdWU6Qm9vbGVhbixzcGxpdDpCb29sZWFuLGNvbnRlbnRDbGFzczpbQXJyYXksU3RyaW5nLE9iamVjdF0sY29udGVudFN0eWxlOltBcnJheSxTdHJpbmcsT2JqZWN0XSxwb3BvdmVyQW5jaG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiYm90dG9tIHJpZ2h0XCJ9LHBvcG92ZXJTZWxmOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwidG9wIHJpZ2h0XCJ9fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3Nob3dpbmc6dGhpcy52YWx1ZX19LHdhdGNoOnt2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLiRyZWZzLnBvcG92ZXImJnRoaXMuJHJlZnMucG9wb3Zlclt0P1wic2hvd1wiOlwiaGlkZVwiXSgpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT10KFFQb3BvdmVyLHtyZWY6XCJwb3BvdmVyXCIscHJvcHM6e2Rpc2FibGU6dGhpcy5kaXNhYmxlLGZpdDohMCxhbmNob3JDbGljazohdGhpcy5zcGxpdCxhbmNob3I6dGhpcy5wb3BvdmVyQW5jaG9yLHNlbGY6dGhpcy5wb3BvdmVyU2VsZn0sY2xhc3M6dGhpcy5jb250ZW50Q2xhc3Msc3R5bGU6dGhpcy5jb250ZW50U3R5bGUsb246e3Nob3c6ZnVuY3Rpb24odCl7ZS5zaG93aW5nPSEwLGUuJGVtaXQoXCJzaG93XCIsdCksZS4kZW1pdChcImlucHV0XCIsITApfSxoaWRlOmZ1bmN0aW9uKHQpe2Uuc2hvd2luZz0hMSxlLiRlbWl0KFwiaGlkZVwiLHQpLGUuJGVtaXQoXCJpbnB1dFwiLCExKX19fSx0aGlzLiRzbG90cy5kZWZhdWx0KSxzPXQoUUljb24se3Byb3BzOntuYW1lOnRoaXMuJHEuaWNvbi5pbnB1dC5kcm9wZG93bn0sc3RhdGljQ2xhc3M6XCJ0cmFuc2l0aW9uLWdlbmVyaWNcIixjbGFzczp7XCJyb3RhdGUtMTgwXCI6dGhpcy5zaG93aW5nLFwib24tcmlnaHRcIjohdGhpcy5zcGxpdCxcInEtYnRuLWRyb3Bkb3duLWFycm93XCI6IXRoaXMuc3BsaXR9fSksbj10KFFCdG4se3Byb3BzOk9iamVjdC5hc3NpZ24oe30sdGhpcy4kcHJvcHMse2ljb25SaWdodDp0aGlzLnNwbGl0P3RoaXMuaWNvblJpZ2h0Om51bGx9KSxjbGFzczp0aGlzLnNwbGl0P1wicS1idG4tZHJvcGRvd24tY3VycmVudFwiOlwicS1idG4tZHJvcGRvd24gcS1idG4tZHJvcGRvd24tc2ltcGxlXCIsb246e2NsaWNrOmZ1bmN0aW9uKHQpe2Uuc3BsaXQmJmUuaGlkZSgpLGUuZGlzYWJsZXx8ZS4kZW1pdChcImNsaWNrXCIsdCl9fX0sdGhpcy5zcGxpdD9udWxsOltzLGldKTtyZXR1cm4gdGhpcy5zcGxpdD90KFFCdG5Hcm91cCx7cHJvcHM6e291dGxpbmU6dGhpcy5vdXRsaW5lLGZsYXQ6dGhpcy5mbGF0LHJvdW5kZWQ6dGhpcy5yb3VuZGVkLHB1c2g6dGhpcy5wdXNofSxzdGF0aWNDbGFzczpcInEtYnRuLWRyb3Bkb3duIHEtYnRuLWRyb3Bkb3duLXNwbGl0IG5vLXdyYXAgcS1idG4taXRlbVwifSxbbix0KFFCdG4se3Byb3BzOntkaXNhYmxlOnRoaXMuZGlzYWJsZSxvdXRsaW5lOnRoaXMub3V0bGluZSxmbGF0OnRoaXMuZmxhdCxyb3VuZGVkOnRoaXMucm91bmRlZCxwdXNoOnRoaXMucHVzaCxzaXplOnRoaXMuc2l6ZSxjb2xvcjp0aGlzLmNvbG9yLHRleHRDb2xvcjp0aGlzLnRleHRDb2xvcixkZW5zZTp0aGlzLmRlbnNlLGdsb3NzeTp0aGlzLmdsb3NzeSxub1JpcHBsZTp0aGlzLm5vUmlwcGxlLHdhaXRGb3JSaXBwbGU6dGhpcy53YWl0Rm9yUmlwcGxlfSxzdGF0aWNDbGFzczpcInEtYnRuLWRyb3Bkb3duLWFycm93XCIsb246e2NsaWNrOmZ1bmN0aW9uKCl7ZS50b2dnbGUoKX19fSxbc10pLFtpXV0pOm59LG1ldGhvZHM6e3RvZ2dsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRyZWZzLnBvcG92ZXI/dGhpcy4kcmVmcy5wb3BvdmVyLnRvZ2dsZSgpOlByb21pc2UucmVzb2x2ZSgpfSxzaG93OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHJlZnMucG9wb3Zlcj90aGlzLiRyZWZzLnBvcG92ZXIuc2hvdygpOlByb21pc2UucmVzb2x2ZSgpfSxoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHJlZnMucG9wb3Zlcj90aGlzLiRyZWZzLnBvcG92ZXIuaGlkZSgpOlByb21pc2UucmVzb2x2ZSgpfX0sbW91bnRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt0LnZhbHVlJiZ0LiRyZWZzLnBvcG92ZXImJnQuJHJlZnMucG9wb3Zlci5zaG93KCl9KX19LFFCdG5Ub2dnbGU9e25hbWU6XCJRQnRuVG9nZ2xlXCIscHJvcHM6e3ZhbHVlOntyZXF1aXJlZDohMH0sY29sb3I6U3RyaW5nLHRleHRDb2xvcjpTdHJpbmcsdG9nZ2xlQ29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJwcmltYXJ5XCJ9LHRvZ2dsZVRleHRDb2xvcjpTdHJpbmcsb3B0aW9uczp7dHlwZTpBcnJheSxyZXF1aXJlZDohMCx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZXZlcnkoZnVuY3Rpb24odCl7cmV0dXJuKFwibGFiZWxcImluIHR8fFwiaWNvblwiaW4gdCkmJlwidmFsdWVcImluIHR9KX19LHJlYWRvbmx5OkJvb2xlYW4sZGlzYWJsZTpCb29sZWFuLG5vQ2FwczpCb29sZWFuLG5vV3JhcDpCb29sZWFuLG91dGxpbmU6Qm9vbGVhbixmbGF0OkJvb2xlYW4sZGVuc2U6Qm9vbGVhbixyb3VuZGVkOkJvb2xlYW4scHVzaDpCb29sZWFuLHNpemU6U3RyaW5nLGdsb3NzeTpCb29sZWFuLG5vUmlwcGxlOkJvb2xlYW4sd2FpdEZvclJpcHBsZTpCb29sZWFufSxjb21wdXRlZDp7dmFsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5vcHRpb25zLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS52YWx1ZT09PXQudmFsdWV9KX19LG1ldGhvZHM6e3NldDpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXM7dGhpcy5yZWFkb25seXx8KHRoaXMuJGVtaXQoXCJpbnB1dFwiLHQsZSksdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtKU09OLnN0cmluZ2lmeSh0KSE9PUpTT04uc3RyaW5naWZ5KGkudmFsdWUpJiZpLiRlbWl0KFwiY2hhbmdlXCIsdCxlKX0pKX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFFCdG5Hcm91cCx7c3RhdGljQ2xhc3M6XCJxLWJ0bi10b2dnbGVcIixwcm9wczp7b3V0bGluZTp0aGlzLm91dGxpbmUsZmxhdDp0aGlzLmZsYXQscm91bmRlZDp0aGlzLnJvdW5kZWQscHVzaDp0aGlzLnB1c2h9fSx0aGlzLm9wdGlvbnMubWFwKGZ1bmN0aW9uKGkscyl7cmV0dXJuIHQoUUJ0bix7a2V5OlwiXCIraS5sYWJlbCtpLmljb24raS5pY29uUmlnaHQsb246e2NsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0KGkudmFsdWUsaSl9fSxwcm9wczp7ZGlzYWJsZTplLmRpc2FibGV8fGkuZGlzYWJsZSxsYWJlbDppLmxhYmVsLGNvbG9yOmUudmFsW3NdP2kudG9nZ2xlQ29sb3J8fGUudG9nZ2xlQ29sb3I6aS5jb2xvcnx8ZS5jb2xvcix0ZXh0Q29sb3I6ZS52YWxbc10/aS50b2dnbGVUZXh0Q29sb3J8fGUudG9nZ2xlVGV4dENvbG9yOmkudGV4dENvbG9yfHxlLnRleHRDb2xvcixpY29uOmkuaWNvbixpY29uUmlnaHQ6aS5pY29uUmlnaHQsbm9DYXBzOmUubm9DYXBzfHxpLm5vQ2Fwcyxub1dyYXA6ZS5ub1dyYXB8fGkubm9XcmFwLG91dGxpbmU6ZS5vdXRsaW5lLGZsYXQ6ZS5mbGF0LHJvdW5kZWQ6ZS5yb3VuZGVkLHB1c2g6ZS5wdXNoLGdsb3NzeTplLmdsb3NzeSxzaXplOmUuc2l6ZSxkZW5zZTplLmRlbnNlLG5vUmlwcGxlOmUubm9SaXBwbGV8fGkubm9SaXBwbGUsd2FpdEZvclJpcHBsZTplLndhaXRGb3JSaXBwbGV8fGkud2FpdEZvclJpcHBsZSx0YWJpbmRleDppLnRhYmluZGV4fX0pfSkpfX0sUUNhcmQ9e25hbWU6XCJRQ2FyZFwiLHByb3BzOntkYXJrOkJvb2xlYW4sc3F1YXJlOkJvb2xlYW4sZmxhdDpCb29sZWFuLGlubGluZTpCb29sZWFuLGNvbG9yOlN0cmluZyx0ZXh0Q29sb3I6U3RyaW5nfSxjb21wdXRlZDp7Y2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PVt7XCJuby1ib3JkZXItcmFkaXVzXCI6dGhpcy5zcXVhcmUsXCJuby1zaGFkb3dcIjp0aGlzLmZsYXQsXCJpbmxpbmUtYmxvY2tcIjp0aGlzLmlubGluZSxcInEtY2FyZC1kYXJrXCI6dGhpcy5kYXJrfV07cmV0dXJuIHRoaXMuY29sb3I/KHQucHVzaChcImJnLVwiK3RoaXMuY29sb3IpLHQucHVzaChcInRleHQtXCIrKHRoaXMudGV4dENvbG9yfHxcIndoaXRlXCIpKSk6dGhpcy50ZXh0Q29sb3ImJnQucHVzaChcInRleHQtXCIrdGhpcy50ZXh0Q29sb3IpLHR9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNhcmRcIixjbGFzczp0aGlzLmNsYXNzZXN9LHRoaXMuJHNsb3RzLmRlZmF1bHQpfX0sUUNhcmRUaXRsZT17bmFtZTpcIlFDYXJkVGl0bGVcIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNhcmQtcHJpbWFyeSBxLWNhcmQtY29udGFpbmVyIHJvdyBuby13cmFwXCJ9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sIGNvbHVtblwifSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2FyZC10aXRsZVwifSx0aGlzLiRzbG90cy5kZWZhdWx0KSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jYXJkLXN1YnRpdGxlXCJ9LFt0aGlzLiRzbG90cy5zdWJ0aXRsZV0pXSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbC1hdXRvIHNlbGYtY2VudGVyIHEtY2FyZC10aXRsZS1leHRyYVwifSxbdGhpcy4kc2xvdHMucmlnaHRdKV0pfX0sUUNhcmRNYWluPXtuYW1lOlwiUUNhcmRNYWluXCIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jYXJkLW1haW4gcS1jYXJkLWNvbnRhaW5lclwifSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFDYXJkQWN0aW9ucz17bmFtZTpcIlFDYXJkQWN0aW9uc1wiLHByb3BzOnt2ZXJ0aWNhbDpCb29sZWFuLGFsaWduOnt0eXBlOlN0cmluZyxkZWZhdWx0Olwic3RhcnRcIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1wic3RhcnRcIixcImNlbnRlclwiLFwiZW5kXCIsXCJhcm91bmRcIixcImJldHdlZW5cIl0uaW5jbHVkZXModCl9fX0sY29tcHV0ZWQ6e2NsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm5cInEtY2FyZC1hY3Rpb25zLVwiKyh0aGlzLnZlcnRpY2FsP1widmVydCBjb2x1bW4ganVzdGlmeS1zdGFydFwiOlwiaG9yaXogcm93XCIpK1wiIFwiKyh0aGlzLnZlcnRpY2FsP1wiaXRlbXNcIjpcImp1c3RpZnlcIikrXCItXCIrdGhpcy5hbGlnbn19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2FyZC1hY3Rpb25zXCIsY2xhc3M6dGhpcy5jbGFzc2VzfSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFDYXJkTWVkaWE9e25hbWU6XCJRQ2FyZE1lZGlhXCIscHJvcHM6e292ZXJsYXlQb3NpdGlvbjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImJvdHRvbVwiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJ0b3BcIixcImJvdHRvbVwiLFwiZnVsbFwiXS5pbmNsdWRlcyh0KX19fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNhcmQtbWVkaWEgcmVsYXRpdmUtcG9zaXRpb25cIn0sW3RoaXMuJHNsb3RzLmRlZmF1bHQsdGhpcy4kc2xvdHMub3ZlcmxheT90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jYXJkLW1lZGlhLW92ZXJsYXlcIixjbGFzczpcImFic29sdXRlLVwiK3RoaXMub3ZlcmxheVBvc2l0aW9ufSxbdGhpcy4kc2xvdHMub3ZlcmxheV0pOm51bGxdKX19LFFDYXJkU2VwYXJhdG9yPXtuYW1lOlwiUUNhcmRTZXBhcmF0b3JcIixwcm9wczp7aW5zZXQ6Qm9vbGVhbn0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jYXJkLXNlcGFyYXRvclwiLGNsYXNzOntpbnNldDp0aGlzLmluc2V0fX0sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fTtmdW5jdGlvbiBnZXREaXJlY3Rpb24odCl7dmFyIGU9ITAhPT10Lmhvcml6b250YWwmJiEwIT09dC52ZXJ0aWNhbCxpPXt9O3JldHVybiEwIT09dC5ob3Jpem9udGFsJiYhMCE9PWV8fChpLmhvcml6b250YWw9ITApLCEwIT09dC52ZXJ0aWNhbCYmITAhPT1lfHwoaS52ZXJ0aWNhbD0hMCksaX1mdW5jdGlvbiBwcm9jZXNzQ2hhbmdlcyh0LGUsaSl7dmFyIHM9cG9zaXRpb24odCksbj1zLmxlZnQtZS5ldmVudC54LG89cy50b3AtZS5ldmVudC55LHI9TWF0aC5hYnMobiksYT1NYXRoLmFicyhvKTtyZXR1cm57ZXZ0OnQscG9zaXRpb246cyxkaXJlY3Rpb246ZS5kaXJlY3Rpb24uaG9yaXpvbnRhbCYmIWUuZGlyZWN0aW9uLnZlcnRpY2FsP248MD9cImxlZnRcIjpcInJpZ2h0XCI6IWUuZGlyZWN0aW9uLmhvcml6b250YWwmJmUuZGlyZWN0aW9uLnZlcnRpY2FsP288MD9cInVwXCI6XCJkb3duXCI6cj49YT9uPDA/XCJsZWZ0XCI6XCJyaWdodFwiOm88MD9cInVwXCI6XCJkb3duXCIsaXNGaXJzdDplLmV2ZW50LmlzRmlyc3QsaXNGaW5hbDppLGR1cmF0aW9uOihuZXcgRGF0ZSkuZ2V0VGltZSgpLWUuZXZlbnQudGltZSxkaXN0YW5jZTp7eDpyLHk6YX0sb2Zmc2V0Ont4Om4seTpvfSxkZWx0YTp7eDpzLmxlZnQtZS5ldmVudC5sYXN0WCx5OnMudG9wLWUuZXZlbnQubGFzdFl9fX1mdW5jdGlvbiBzaG91bGRUcmlnZ2VyKHQsZSl7cmV0dXJuISghdC5kaXJlY3Rpb24uaG9yaXpvbnRhbHx8IXQuZGlyZWN0aW9uLnZlcnRpY2FsKXx8KHQuZGlyZWN0aW9uLmhvcml6b250YWwmJiF0LmRpcmVjdGlvbi52ZXJ0aWNhbD9NYXRoLmFicyhlLmRlbHRhLngpPjA6IXQuZGlyZWN0aW9uLmhvcml6b250YWwmJnQuZGlyZWN0aW9uLnZlcnRpY2FsP01hdGguYWJzKGUuZGVsdGEueSk+MDp2b2lkIDApfXZhciBUb3VjaFBhbj17bmFtZTpcInRvdWNoLXBhblwiLGJpbmQ6ZnVuY3Rpb24odCxlKXt2YXIgaT0hMCE9PWUubW9kaWZpZXJzLm5vTW91c2Uscz1lLm1vZGlmaWVycy5zdG9wLG49ZS5tb2RpZmllcnMucHJldmVudCxvPW58fGUubW9kaWZpZXJzLm1pZ2h0UHJldmVudD9udWxsOmxpc3Rlbk9wdHMucGFzc2l2ZSxyPXtoYW5kbGVyOmUudmFsdWUsZGlyZWN0aW9uOmdldERpcmVjdGlvbihlLm1vZGlmaWVycyksbW91c2VTdGFydDpmdW5jdGlvbih0KXtsZWZ0Q2xpY2sodCkmJihkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsci5tb3ZlLG8pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsci5tb3VzZUVuZCxvKSxyLnN0YXJ0KHQsITApKX0sbW91c2VFbmQ6ZnVuY3Rpb24odCl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLHIubW92ZSxvKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLHIubW91c2VFbmQsbyksci5lbmQodCl9LHN0YXJ0OmZ1bmN0aW9uKGUsaSl7dmFyIG89cG9zaXRpb24oZSk7ci5ldmVudD17eDpvLmxlZnQseTpvLnRvcCx0aW1lOihuZXcgRGF0ZSkuZ2V0VGltZSgpLGRldGVjdGVkOiEwPT09aXx8ci5kaXJlY3Rpb24uaG9yaXpvbnRhbCYmci5kaXJlY3Rpb24udmVydGljYWwsYWJvcnQ6ITEsaXNGaXJzdDohMCxsYXN0WDpvLmxlZnQsbGFzdFk6by50b3B9LHIuZXZlbnQuZGV0ZWN0ZWQmJih0LmNsYXNzTGlzdC5hZGQoXCJxLXRvdWNoXCIpLCEwIT09aSYmKHMmJmUuc3RvcFByb3BhZ2F0aW9uKCksbiYmZS5wcmV2ZW50RGVmYXVsdCgpLHIubW92ZShlKSkpfSxtb3ZlOmZ1bmN0aW9uKHQpe2lmKCEwIT09ci5ldmVudC5hYm9ydClpZighMCE9PXIuZXZlbnQuZGV0ZWN0ZWQpe3ZhciBlPXBvc2l0aW9uKHQpLGk9TWF0aC5hYnMoZS5sZWZ0LXIuZXZlbnQueCksbz1NYXRoLmFicyhlLnRvcC1yLmV2ZW50LnkpO2khPT1vJiYoci5ldmVudC5kZXRlY3RlZD0hMCxyLmV2ZW50LmFib3J0PXIuZGlyZWN0aW9uLnZlcnRpY2FsP2k+bzppPG8sci5tb3ZlKHQpKX1lbHNle3MmJnQuc3RvcFByb3BhZ2F0aW9uKCksbiYmdC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBhPXByb2Nlc3NDaGFuZ2VzKHQsciwhMSk7c2hvdWxkVHJpZ2dlcihyLGEpJiYoci5oYW5kbGVyKGEpLHIuZXZlbnQubGFzdFg9YS5wb3NpdGlvbi5sZWZ0LHIuZXZlbnQubGFzdFk9YS5wb3NpdGlvbi50b3Asci5ldmVudC5pc0ZpcnN0PSExKX19LGVuZDpmdW5jdGlvbihlKXt0LmNsYXNzTGlzdC5yZW1vdmUoXCJxLXRvdWNoXCIpLHIuZXZlbnQuYWJvcnR8fCFyLmV2ZW50LmRldGVjdGVkfHxyLmV2ZW50LmlzRmlyc3R8fChzJiZlLnN0b3BQcm9wYWdhdGlvbigpLG4mJmUucHJldmVudERlZmF1bHQoKSxyLmhhbmRsZXIocHJvY2Vzc0NoYW5nZXMoZSxyLCEwKSkpfX07dC5fX3F0b3VjaHBhbiYmKHQuX19xdG91Y2hwYW5fb2xkPXQuX19xdG91Y2hwYW4pLHQuX19xdG91Y2hwYW49cixpJiZ0LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIixyLm1vdXNlU3RhcnQsbyksdC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLHIuc3RhcnQsbyksdC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2htb3ZlXCIsci5tb3ZlLG8pLHQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoZW5kXCIsci5lbmQsbyl9LHVwZGF0ZTpmdW5jdGlvbih0LGUpe3ZhciBpPWUub2xkVmFsdWUscz1lLnZhbHVlLG49ZS5tb2RpZmllcnMsbz10Ll9fcXRvdWNocGFuO2khPT1zJiYoby5oYW5kbGVyPXMpLG4uaG9yaXpvbnRhbD09PW8uZGlyZWN0aW9uLmhvcml6b250YWwmJm4udmVydGljYWw9PT1vLmRpcmVjdGlvbi52ZXJ0aWNhbHx8KG8uZGlyZWN0aW9uPWdldERpcmVjdGlvbihuKSl9LHVuYmluZDpmdW5jdGlvbih0LGUpe3ZhciBpPXQuX19xdG91Y2hwYW5fb2xkfHx0Ll9fcXRvdWNocGFuO2lmKHZvaWQgMCE9PWkpe3ZhciBzPWUubW9kaWZpZXJzLnByZXZlbnQ/bnVsbDpsaXN0ZW5PcHRzLnBhc3NpdmU7dC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsaS5tb3VzZVN0YXJ0LHMpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIixpLnN0YXJ0LHMpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLGkubW92ZSxzKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLGkuZW5kLHMpLGRlbGV0ZSB0W3QuX19xdG91Y2hwYW5fb2xkP1wiX19xdG91Y2hwYW5fb2xkXCI6XCJfX3F0b3VjaHBhblwiXX19fTtmdW5jdGlvbiBpc0RhdGUodCl7cmV0dXJuXCJbb2JqZWN0IERhdGVdXCI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9ZnVuY3Rpb24gaXNOdW1iZXIodCl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mIHQmJmlzRmluaXRlKHQpfWZ1bmN0aW9uIGlzU3RyaW5nKHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0fXZhciBsaW5lYXI9ZnVuY3Rpb24odCl7cmV0dXJuIHR9LGVhc2VJblF1YWQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQqdH0sZWFzZU91dFF1YWQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQqKDItdCl9LGVhc2VJbk91dFF1YWQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQ8LjU/Mip0KnQ6KDQtMip0KSp0LTF9LGVhc2VJbkN1YmljPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnBvdyh0LDMpfSxlYXNlT3V0Q3ViaWM9ZnVuY3Rpb24odCl7cmV0dXJuIDErTWF0aC5wb3codC0xLDMpfSxlYXNlSW5PdXRDdWJpYz1mdW5jdGlvbih0KXtyZXR1cm4gdDwuNT80Kk1hdGgucG93KHQsMyk6MSsodC0xKSpNYXRoLnBvdygyKnQtMiwyKX0sZWFzZUluUXVhcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucG93KHQsNCl9LGVhc2VPdXRRdWFydD1mdW5jdGlvbih0KXtyZXR1cm4gMS1NYXRoLnBvdyh0LTEsNCl9LGVhc2VJbk91dFF1YXJ0PWZ1bmN0aW9uKHQpe3JldHVybiB0PC41PzgqTWF0aC5wb3codCw0KToxLTgqTWF0aC5wb3codC0xLDQpfSxlYXNlSW5RdWludD1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5wb3codCw1KX0sZWFzZU91dFF1aW50PWZ1bmN0aW9uKHQpe3JldHVybiAxK01hdGgucG93KHQtMSw1KX0sZWFzZUluT3V0UXVpbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQ8LjU/MTYqTWF0aC5wb3codCw1KToxKzE2Kk1hdGgucG93KHQtMSw1KX0sZWFzZUluQ2lyYz1mdW5jdGlvbih0KXtyZXR1cm4tMSpNYXRoLnNxcnQoMS1NYXRoLnBvdyh0LDIpKSsxfSxlYXNlT3V0Q2lyYz1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5zcXJ0KC0xKih0LTIpKnQpfSxlYXNlSW5PdXRDaXJjPWZ1bmN0aW9uKHQpe3JldHVybiB0PC41Py41KigxLU1hdGguc3FydCgxLTQqdCp0KSk6LjUqKDErTWF0aC5zcXJ0KDgqdC0zLTQqdCp0KSl9LG92ZXJzaG9vdD1mdW5jdGlvbih0KXtyZXR1cm4tMSpNYXRoLnBvdyhNYXRoLkUsLTYuMyp0KSpNYXRoLmNvcyg1KnQpKzF9LHN0YW5kYXJkPWZ1bmN0aW9uKHQpe3JldHVybiB0PC40MDMxPzEyKk1hdGgucG93KHQsNCk6MS8xMjkwKigxMSpNYXRoLnNxcnQoLTRlNCp0KnQrOGU0KnQtMjMzNTkpLTEyOSl9LGRlY2VsZXJhdGU9ZWFzZU91dEN1YmljLGFjY2VsZXJhdGU9ZWFzZUluQ3ViaWMsc2hhcnA9ZWFzZUluT3V0UXVhZCxlYXNpbmc9e2xpbmVhcjpsaW5lYXIsZWFzZUluUXVhZDplYXNlSW5RdWFkLGVhc2VPdXRRdWFkOmVhc2VPdXRRdWFkLGVhc2VJbk91dFF1YWQ6ZWFzZUluT3V0UXVhZCxlYXNlSW5DdWJpYzplYXNlSW5DdWJpYyxlYXNlT3V0Q3ViaWM6ZWFzZU91dEN1YmljLGVhc2VJbk91dEN1YmljOmVhc2VJbk91dEN1YmljLGVhc2VJblF1YXJ0OmVhc2VJblF1YXJ0LGVhc2VPdXRRdWFydDplYXNlT3V0UXVhcnQsZWFzZUluT3V0UXVhcnQ6ZWFzZUluT3V0UXVhcnQsZWFzZUluUXVpbnQ6ZWFzZUluUXVpbnQsZWFzZU91dFF1aW50OmVhc2VPdXRRdWludCxlYXNlSW5PdXRRdWludDplYXNlSW5PdXRRdWludCxlYXNlSW5DaXJjOmVhc2VJbkNpcmMsZWFzZU91dENpcmM6ZWFzZU91dENpcmMsZWFzZUluT3V0Q2lyYzplYXNlSW5PdXRDaXJjLG92ZXJzaG9vdDpvdmVyc2hvb3Qsc3RhbmRhcmQ6c3RhbmRhcmQsZGVjZWxlcmF0ZTpkZWNlbGVyYXRlLGFjY2VsZXJhdGU6YWNjZWxlcmF0ZSxzaGFycDpzaGFycH0saWRzPXt9O2Z1bmN0aW9uIHN0YXJ0KHQpe3ZhciBlPXQubmFtZSxpPXQuZHVyYXRpb247dm9pZCAwPT09aSYmKGk9MzAwKTt2YXIgcz10LnRvLG49dC5mcm9tLG89dC5hcHBseSxyPXQuZG9uZSxhPXQuY2FuY2VsLGw9dC5lYXNpbmcsYz1lLGg9bmV3IERhdGU7Yz9zdG9wKGMpOmM9dWlkKCk7dmFyIHU9bHx8bGluZWFyLGQ9ZnVuY3Rpb24oKXt2YXIgdD0obmV3IERhdGUtaCkvaTt0PjEmJih0PTEpO3ZhciBlPW4rKHMtbikqdSh0KTtpZihvKGUsdCksMT09PXQpcmV0dXJuIGRlbGV0ZSBpZHNbY10sdm9pZChyJiZyKGUpKTtwLmxhc3Q9e3BvczplLHByb2dyZXNzOnR9LHAudGltZXI9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGQpfSxwPWlkc1tjXT17Y2FuY2VsOmEsdGltZXI6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGQpfTtyZXR1cm4gY31mdW5jdGlvbiBzdG9wKHQpe2lmKHQpe3ZhciBlPWlkc1t0XTtlJiZlLnRpbWVyJiYoY2FuY2VsQW5pbWF0aW9uRnJhbWUoZS50aW1lciksZS5jYW5jZWwmJmUuY2FuY2VsKGUubGFzdCksZGVsZXRlIGlkc1t0XSl9fXZhciBhbmltYXRlPXtzdGFydDpzdGFydCxzdG9wOnN0b3B9LEZ1bGxzY3JlZW5NaXhpbj17ZGF0YTpmdW5jdGlvbigpe3JldHVybntpbkZ1bGxzY3JlZW46ITF9fSx3YXRjaDp7JHJvdXRlOmZ1bmN0aW9uKCl7dGhpcy5leGl0RnVsbHNjcmVlbigpfSxpbkZ1bGxzY3JlZW46ZnVuY3Rpb24odCl7dGhpcy4kZW1pdChcImZ1bGxzY3JlZW5cIix0KX19LG1ldGhvZHM6e3RvZ2dsZUZ1bGxzY3JlZW46ZnVuY3Rpb24oKXt0aGlzLmluRnVsbHNjcmVlbj90aGlzLmV4aXRGdWxsc2NyZWVuKCk6dGhpcy5zZXRGdWxsc2NyZWVuKCl9LHNldEZ1bGxzY3JlZW46ZnVuY3Rpb24oKXt0aGlzLmluRnVsbHNjcmVlbnx8KHRoaXMuaW5GdWxsc2NyZWVuPSEwLHRoaXMuY29udGFpbmVyPXRoaXMuJGVsLnBhcmVudE5vZGUsdGhpcy5jb250YWluZXIucmVwbGFjZUNoaWxkKHRoaXMuZnVsbHNjcmVlbkZpbGxlck5vZGUsdGhpcy4kZWwpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy4kZWwpLGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcInEtYm9keS1mdWxsc2NyZWVuLW1peGluXCIpLHRoaXMuX19oaXN0b3J5RnVsbHNjcmVlbj17aGFuZGxlcjp0aGlzLmV4aXRGdWxsc2NyZWVufSxIaXN0b3J5LmFkZCh0aGlzLl9faGlzdG9yeUZ1bGxzY3JlZW4pKX0sZXhpdEZ1bGxzY3JlZW46ZnVuY3Rpb24oKXt0aGlzLmluRnVsbHNjcmVlbiYmKHRoaXMuX19oaXN0b3J5RnVsbHNjcmVlbiYmKEhpc3RvcnkucmVtb3ZlKHRoaXMuX19oaXN0b3J5RnVsbHNjcmVlbiksdGhpcy5fX2hpc3RvcnlGdWxsc2NyZWVuPW51bGwpLHRoaXMuY29udGFpbmVyLnJlcGxhY2VDaGlsZCh0aGlzLiRlbCx0aGlzLmZ1bGxzY3JlZW5GaWxsZXJOb2RlKSxkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJxLWJvZHktZnVsbHNjcmVlbi1taXhpblwiKSx0aGlzLmluRnVsbHNjcmVlbj0hMSl9fSxiZWZvcmVNb3VudDpmdW5jdGlvbigpe3RoaXMuZnVsbHNjcmVlbkZpbGxlck5vZGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIil9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmV4aXRGdWxsc2NyZWVuKCl9fSxRQ2Fyb3VzZWw9e25hbWU6XCJRQ2Fyb3VzZWxcIixtaXhpbnM6W0Z1bGxzY3JlZW5NaXhpbl0sZGlyZWN0aXZlczp7VG91Y2hQYW46VG91Y2hQYW59LHByb3BzOnt2YWx1ZTpOdW1iZXIsY29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJwcmltYXJ5XCJ9LGhlaWdodDpTdHJpbmcsYXJyb3dzOkJvb2xlYW4saW5maW5pdGU6Qm9vbGVhbixhbmltYXRpb246e3R5cGU6W051bWJlcixCb29sZWFuXSxkZWZhdWx0OiEwfSxlYXNpbmc6RnVuY3Rpb24sc3dpcGVFYXNpbmc6RnVuY3Rpb24sbm9Td2lwZTpCb29sZWFuLGF1dG9wbGF5OltOdW1iZXIsQm9vbGVhbl0saGFuZGxlQXJyb3dLZXlzOkJvb2xlYW4scXVpY2tOYXY6Qm9vbGVhbixxdWlja05hdlBvc2l0aW9uOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiYm90dG9tXCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcInRvcFwiLFwiYm90dG9tXCJdLmluY2x1ZGVzKHQpfX0scXVpY2tOYXZJY29uOlN0cmluZyx0aHVtYm5haWxzOnt0eXBlOkFycmF5LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm5bXX19LHRodW1ibmFpbHNJY29uOlN0cmluZyx0aHVtYm5haWxzSG9yaXpvbnRhbDpCb29sZWFufSxwcm92aWRlOmZ1bmN0aW9uKCl7cmV0dXJue2Nhcm91c2VsOnRoaXN9fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3Bvc2l0aW9uOjAsc2xpZGU6MCxwb3NpdGlvblNsaWRlOjAsc2xpZGVzTnVtYmVyOjAsYW5pbVVpZDohMSx2aWV3VGh1bWJuYWlsczohMX19LHdhdGNoOnt2YWx1ZTpmdW5jdGlvbih0KXt0IT09dGhpcy5zbGlkZSYmdGhpcy5nb1RvU2xpZGUodCl9LGF1dG9wbGF5OmZ1bmN0aW9uKCl7dGhpcy5fX3BsYW5BdXRvUGxheSgpfSxpbmZpbml0ZTpmdW5jdGlvbigpe3RoaXMuX19wbGFuQXV0b1BsYXkoKX0saGFuZGxlQXJyb3dLZXlzOmZ1bmN0aW9uKHQpe3RoaXMuX19zZXRBcnJvd0tleXModCl9fSxjb21wdXRlZDp7cnRsRGlyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHEuaTE4bi5ydGw/LTE6MX0sYXJyb3dJY29uOmZ1bmN0aW9uKCl7dmFyIHQ9W3RoaXMuJHEuaWNvbi5jYXJvdXNlbC5sZWZ0LHRoaXMuJHEuaWNvbi5jYXJvdXNlbC5yaWdodF07cmV0dXJuIHRoaXMuJHEuaTE4bi5ydGw/dC5yZXZlcnNlKCk6dH0sdHJhY2tQb3NpdGlvbjpmdW5jdGlvbigpe3JldHVybnt0cmFuc2Zvcm06XCJ0cmFuc2xhdGVYKFwiK3RoaXMucnRsRGlyKnRoaXMucG9zaXRpb24rXCIlKVwifX0saW5maW5pdGVMZWZ0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5maW5pdGUmJnRoaXMuc2xpZGVzTnVtYmVyPjEmJnRoaXMucG9zaXRpb25TbGlkZTwwfSxpbmZpbml0ZVJpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5maW5pdGUmJnRoaXMuc2xpZGVzTnVtYmVyPjEmJnRoaXMucG9zaXRpb25TbGlkZT49dGhpcy5zbGlkZXNOdW1iZXJ9LGNhbkdvVG9QcmV2aW91czpmdW5jdGlvbigpe3JldHVybiB0aGlzLmluZmluaXRlP3RoaXMuc2xpZGVzTnVtYmVyPjE6dGhpcy5zbGlkZT4wfSxjYW5Hb1RvTmV4dDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmluZmluaXRlP3RoaXMuc2xpZGVzTnVtYmVyPjE6dGhpcy5zbGlkZTx0aGlzLnNsaWRlc051bWJlci0xfSxjb21wdXRlZFF1aWNrTmF2SWNvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnF1aWNrTmF2SWNvbnx8dGhpcy4kcS5pY29uLmNhcm91c2VsLnF1aWNrTmF2fSxjb21wdXRlZFN0eWxlOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaW5GdWxsc2NyZWVuJiZ0aGlzLmhlaWdodClyZXR1cm5cImhlaWdodDogXCIrdGhpcy5oZWlnaHR9LHNsb3RTY29wZTpmdW5jdGlvbigpe3JldHVybntzbGlkZTp0aGlzLnNsaWRlLHNsaWRlc051bWJlcjp0aGlzLnNsaWRlc051bWJlcixwZXJjZW50YWdlOnRoaXMuc2xpZGVzTnVtYmVyPDI/MTAwOjEwMCp0aGlzLnNsaWRlLyh0aGlzLnNsaWRlc051bWJlci0xKSxnb1RvU2xpZGU6dGhpcy5nb1RvU2xpZGUscHJldmlvdXM6dGhpcy5wcmV2aW91cyxuZXh0OnRoaXMubmV4dCxjb2xvcjp0aGlzLmNvbG9yLGluRnVsbHNjcmVlbjp0aGlzLmluRnVsbHNjcmVlbix0b2dnbGVGdWxsc2NyZWVuOnRoaXMudG9nZ2xlRnVsbHNjcmVlbixjYW5Hb1RvTmV4dDp0aGlzLmNhbkdvVG9OZXh0LGNhbkdvVG9QcmV2aW91czp0aGlzLmNhbkdvVG9QcmV2aW91c319LGNvbXB1dGVkVGh1bWJuYWlsSWNvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRodW1ibmFpbHNJY29ufHx0aGlzLiRxLmljb24uY2Fyb3VzZWwudGh1bWJuYWlsc319LG1ldGhvZHM6e3ByZXZpb3VzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2FuR29Ub1ByZXZpb3VzP3RoaXMuZ29Ub1NsaWRlKHRoaXMuc2xpZGUtMSk6UHJvbWlzZS5yZXNvbHZlKCl9LG5leHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYW5Hb1RvTmV4dD90aGlzLmdvVG9TbGlkZSh0aGlzLnNsaWRlKzEpOlByb21pc2UucmVzb2x2ZSgpfSxnb1RvU2xpZGU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzO3JldHVybiB2b2lkIDA9PT1lJiYoZT0hMSksbmV3IFByb21pc2UoZnVuY3Rpb24ocyl7dmFyIG4sbz1cIlwiLHI9aS5zbGlkZTtpLl9fY2xlYW51cCgpO3ZhciBhPWZ1bmN0aW9uKCl7aS4kZW1pdChcImlucHV0XCIsaS5zbGlkZSksaS4kZW1pdChcInNsaWRlXCIsaS5zbGlkZSxvKSxpLiRlbWl0KFwic2xpZGUtZGlyZWN0aW9uXCIsbyksaS5fX3BsYW5BdXRvUGxheSgpLHMoKX07aWYoaS5zbGlkZXNOdW1iZXI8Mj8oaS5zbGlkZT0wLGkucG9zaXRpb25TbGlkZT0wLG49MCk6KGkuaGFzT3duUHJvcGVydHkoXCJpbml0aWFsUG9zaXRpb25cIil8fChpLnBvc2l0aW9uPTEwMCotaS5zbGlkZSksbz10Pmkuc2xpZGU/XCJuZXh0XCI6XCJwcmV2aW91c1wiLGkuaW5maW5pdGU/KGkuc2xpZGU9bm9ybWFsaXplVG9JbnRlcnZhbCh0LDAsaS5zbGlkZXNOdW1iZXItMSksbj1ub3JtYWxpemVUb0ludGVydmFsKHQsLTEsaS5zbGlkZXNOdW1iZXIpLGV8fChpLnBvc2l0aW9uU2xpZGU9bikpOihpLnNsaWRlPWJldHdlZW4odCwwLGkuc2xpZGVzTnVtYmVyLTEpLGkucG9zaXRpb25TbGlkZT1pLnNsaWRlLG49aS5zbGlkZSkpLGkuJGVtaXQoXCJzbGlkZS10cmlnZ2VyXCIscixpLnNsaWRlLG8pLG4qPS0xMDAsIWkuYW5pbWF0aW9uKXJldHVybiBpLnBvc2l0aW9uPW4sdm9pZCBhKCk7aS5hbmltYXRpb25JblByb2dyZXNzPSEwLGkuYW5pbVVpZD1zdGFydCh7ZnJvbTppLnBvc2l0aW9uLHRvOm4sZHVyYXRpb246aXNOdW1iZXIoaS5hbmltYXRpb24pP2kuYW5pbWF0aW9uOjMwMCxlYXNpbmc6ZT9pLnN3aXBlRWFzaW5nfHxkZWNlbGVyYXRlOmkuZWFzaW5nfHxzdGFuZGFyZCxhcHBseTpmdW5jdGlvbih0KXtpLnBvc2l0aW9uPXR9LGRvbmU6ZnVuY3Rpb24oKXtpLmluZmluaXRlJiYoaS5wb3NpdGlvbj0xMDAqLWkuc2xpZGUsaS5wb3NpdGlvblNsaWRlPWkuc2xpZGUpLGkuYW5pbWF0aW9uSW5Qcm9ncmVzcz0hMSxhKCl9fSl9KX0sc3RvcEFuaW1hdGlvbjpmdW5jdGlvbigpe3N0b3AodGhpcy5hbmltVWlkKSx0aGlzLmFuaW1hdGlvbkluUHJvZ3Jlc3M9ITF9LF9fcGFuOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoIXRoaXMuaW5maW5pdGV8fCF0aGlzLmFuaW1hdGlvbkluUHJvZ3Jlc3Mpe3QuaXNGaXJzdCYmKHRoaXMuaW5pdGlhbFBvc2l0aW9uPXRoaXMucG9zaXRpb24sdGhpcy5fX2NsZWFudXAoKSk7dmFyIGk9dGhpcy5ydGxEaXIqKFwibGVmdFwiPT09dC5kaXJlY3Rpb24/LTE6MSkqdC5kaXN0YW5jZS54Oyh0aGlzLmluZmluaXRlJiZ0aGlzLnNsaWRlc051bWJlcjwyfHwhdGhpcy5pbmZpbml0ZSYmKDA9PT10aGlzLnNsaWRlJiZpPjB8fHRoaXMuc2xpZGU9PT10aGlzLnNsaWRlc051bWJlci0xJiZpPDApKSYmKGk9MCk7dmFyIHM9dGhpcy5pbml0aWFsUG9zaXRpb24raS90aGlzLiRyZWZzLnRyYWNrLm9mZnNldFdpZHRoKjEwMCxuPXRoaXMuc2xpZGUrdGhpcy5ydGxEaXIqKFwibGVmdFwiPT09dC5kaXJlY3Rpb24/MTotMSk7dGhpcy5wb3NpdGlvbiE9PXMmJih0aGlzLnBvc2l0aW9uPXMpLHRoaXMucG9zaXRpb25TbGlkZSE9PW4mJih0aGlzLnBvc2l0aW9uU2xpZGU9biksdC5pc0ZpbmFsJiZ0aGlzLmdvVG9TbGlkZSh0LmRpc3RhbmNlLng8NDA/dGhpcy5zbGlkZTp0aGlzLnBvc2l0aW9uU2xpZGUsITApLnRoZW4oZnVuY3Rpb24oKXtkZWxldGUgZS5pbml0aWFsUG9zaXRpb259KX19LF9fcGxhbkF1dG9QbGF5OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3QuYXV0b3BsYXkmJihjbGVhclRpbWVvdXQodC50aW1lciksdC50aW1lcj1zZXRUaW1lb3V0KHQubmV4dCxpc051bWJlcih0LmF1dG9wbGF5KT90LmF1dG9wbGF5OjVlMykpfSl9LF9fY2xlYW51cDpmdW5jdGlvbigpe3RoaXMuc3RvcEFuaW1hdGlvbigpLGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKX0sX19oYW5kbGVBcnJvd0tleTpmdW5jdGlvbih0KXt2YXIgZT1nZXRFdmVudEtleSh0KTszNz09PWU/dGhpcy5wcmV2aW91cygpOjM5PT09ZSYmdGhpcy5uZXh0KCl9LF9fc2V0QXJyb3dLZXlzOmZ1bmN0aW9uKHQpe2RvY3VtZW50WyghMD09PXQ/XCJhZGRcIjpcInJlbW92ZVwiKStcIkV2ZW50TGlzdGVuZXJcIl0oXCJrZXlkb3duXCIsdGhpcy5fX2hhbmRsZUFycm93S2V5KX0sX19yZWdpc3RlclNsaWRlOmZ1bmN0aW9uKCl7dGhpcy5zbGlkZXNOdW1iZXIrK30sX191bnJlZ2lzdGVyU2xpZGU6ZnVuY3Rpb24oKXt0aGlzLnNsaWRlc051bWJlci0tfSxfX2dldFNjb3BlZFNsb3RzOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoMCE9PXRoaXMuc2xpZGVzTnVtYmVyKXt2YXIgaT10aGlzLiRzY29wZWRTbG90cztyZXR1cm4gaT9PYmplY3Qua2V5cyhpKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQuc3RhcnRzV2l0aChcImNvbnRyb2wtXCIpfSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBpW3RdKGUuc2xvdFNjb3BlKX0pOnZvaWQgMH19LF9fZ2V0UXVpY2tOYXY6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZigwIT09dGhpcy5zbGlkZXNOdW1iZXImJnRoaXMucXVpY2tOYXYpe3ZhciBpPXRoaXMuJHNjb3BlZFNsb3RzW1wicXVpY2stbmF2XCJdLHM9W107aWYoaSlmb3IodmFyIG49ZnVuY3Rpb24odCl7cy5wdXNoKGkoe3NsaWRlOnQsYmVmb3JlOnQ8ZS5zbGlkZSxjdXJyZW50OnQ9PT1lLnNsaWRlLGFmdGVyOnQ+ZS5zbGlkZSxjb2xvcjplLmNvbG9yLGdvVG9TbGlkZTpmdW5jdGlvbihpKXtlLmdvVG9TbGlkZShpfHx0KX19KSl9LG89MDtvPHRoaXMuc2xpZGVzTnVtYmVyO28rKyluKG8pO2Vsc2UgZm9yKHZhciByPWZ1bmN0aW9uKGkpe3MucHVzaCh0KFFCdG4se2tleTppLGNsYXNzOntpbmFjdGl2ZTppIT09ZS5zbGlkZX0scHJvcHM6e2ljb246ZS5jb21wdXRlZFF1aWNrTmF2SWNvbixyb3VuZDohMCxmbGF0OiEwLGRlbnNlOiEwLGNvbG9yOmUuY29sb3J9LG9uOntjbGljazpmdW5jdGlvbigpe2UuZ29Ub1NsaWRlKGkpfX19KSl9LGE9MDthPHRoaXMuc2xpZGVzTnVtYmVyO2ErKylyKGEpO3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jYXJvdXNlbC1xdWljay1uYXYgc2Nyb2xsIHRleHQtY2VudGVyXCIsY2xhc3M6W1widGV4dC1cIit0aGlzLmNvbG9yLFwiYWJzb2x1dGUtXCIrdGhpcy5xdWlja05hdlBvc2l0aW9uXX0scyl9fSxfX2dldFRodW1ibmFpbHM6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPXRoaXMudGh1bWJuYWlscy5tYXAoZnVuY3Rpb24oaSxzKXtpZihpKXJldHVybiB0KFwiZGl2XCIse29uOntjbGljazpmdW5jdGlvbigpe2UuZ29Ub1NsaWRlKHMpfX19LFt0KFwiaW1nXCIse2F0dHJzOntzcmM6aX0sY2xhc3M6e2FjdGl2ZTplLnNsaWRlPT09c319KV0pfSkscz1bdChRQnRuLHtzdGF0aWNDbGFzczpcInEtY2Fyb3VzZWwtdGh1bWJuYWlsLWJ0biBhYnNvbHV0ZVwiLHByb3BzOntpY29uOnRoaXMuY29tcHV0ZWRUaHVtYm5haWxJY29uLGZhYk1pbmk6ITAsZmxhdDohMCxjb2xvcjp0aGlzLmNvbG9yfSxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtlLnZpZXdUaHVtYm5haWxzPSFlLnZpZXdUaHVtYm5haWxzfX19KSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jYXJvdXNlbC10aHVtYm5haWxzIHNjcm9sbCBhYnNvbHV0ZS1ib3R0b21cIixjbGFzczp7YWN0aXZlOnRoaXMudmlld1RodW1ibmFpbHN9fSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInJvdyBndXR0ZXIteHNcIixjbGFzczp0aGlzLnRodW1ibmFpbHNIb3Jpem9udGFsP1wibm8td3JhcFwiOlwianVzdGlmeS1jZW50ZXJcIn0saSldKV07cmV0dXJuIHRoaXMudmlld1RodW1ibmFpbHMmJnMudW5zaGlmdCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiYWJzb2x1dGUtZnVsbFwiLG9uOntjbGljazpmdW5jdGlvbigpe2Uudmlld1RodW1ibmFpbHM9ITF9fX0pKSxzfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jYXJvdXNlbFwiLHN0eWxlOnRoaXMuY29tcHV0ZWRTdHlsZSxjbGFzczp7ZnVsbHNjcmVlbjp0aGlzLmluRnVsbHNjcmVlbn19LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jYXJvdXNlbC1pbm5lclwiLGRpcmVjdGl2ZXM6dGhpcy5ub1N3aXBlP251bGw6W3tuYW1lOlwidG91Y2gtcGFuXCIsbW9kaWZpZXJzOntob3Jpem9udGFsOiEwLHByZXZlbnQ6ITAsc3RvcDohMH0sdmFsdWU6dGhpcy5fX3Bhbn1dfSxbdChcImRpdlwiLHtyZWY6XCJ0cmFja1wiLHN0YXRpY0NsYXNzOlwicS1jYXJvdXNlbC10cmFja1wiLHN0eWxlOnRoaXMudHJhY2tQb3NpdGlvbixjbGFzczp7XCJpbmZpbml0ZS1sZWZ0XCI6dGhpcy5pbmZpbml0ZUxlZnQsXCJpbmZpbml0ZS1yaWdodFwiOnRoaXMuaW5maW5pdGVSaWdodH19LFt0aGlzLmluZmluaXRlUmlnaHQ/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2Fyb3VzZWwtc2xpZGVcIixzdHlsZTpcImZsZXg6IDAgMCAxMDAlXCJ9KTpudWxsLHRoaXMuJHNsb3RzLmRlZmF1bHQsdGhpcy5pbmZpbml0ZUxlZnQ/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2Fyb3VzZWwtc2xpZGVcIixzdHlsZTpcImZsZXg6IDAgMCAxMDAlXCJ9KTpudWxsXSldKSx0aGlzLmFycm93cz90KFFCdG4se3N0YXRpY0NsYXNzOlwicS1jYXJvdXNlbC1sZWZ0LWFycm93IGFic29sdXRlXCIscHJvcHM6e2NvbG9yOnRoaXMuY29sb3IsaWNvbjp0aGlzLmFycm93SWNvblswXSxmYWJNaW5pOiEwLGZsYXQ6ITB9LGRpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHZhbHVlOnRoaXMuY2FuR29Ub1ByZXZpb3VzfV0sb246e2NsaWNrOnRoaXMucHJldmlvdXN9fSk6bnVsbCx0aGlzLmFycm93cz90KFFCdG4se3N0YXRpY0NsYXNzOlwicS1jYXJvdXNlbC1yaWdodC1hcnJvdyBhYnNvbHV0ZVwiLHByb3BzOntjb2xvcjp0aGlzLmNvbG9yLGljb246dGhpcy5hcnJvd0ljb25bMV0sZmFiTWluaTohMCxmbGF0OiEwfSxkaXJlY3RpdmVzOlt7bmFtZTpcInNob3dcIix2YWx1ZTp0aGlzLmNhbkdvVG9OZXh0fV0sb246e2NsaWNrOnRoaXMubmV4dH19KTpudWxsLHRoaXMuX19nZXRRdWlja05hdih0KSx0aGlzLl9fZ2V0U2NvcGVkU2xvdHModCksdGhpcy50aHVtYm5haWxzLmxlbmd0aD90aGlzLl9fZ2V0VGh1bWJuYWlscyh0KTpudWxsLHRoaXMuJHNsb3RzLmNvbnRyb2xdKX0sbW91bnRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fX3BsYW5BdXRvUGxheSgpLHRoaXMuaGFuZGxlQXJyb3dLZXlzJiZ0aGlzLl9fc2V0QXJyb3dLZXlzKCEwKSx0aGlzLl9fc3RvcFNsaWRlTnVtYmVyTm90aWZpZXI9dGhpcy4kd2F0Y2goXCJzbGlkZXNOdW1iZXJcIixmdW5jdGlvbihlKXt0LnZhbHVlPj1lJiZ0LiRlbWl0KFwiaW5wdXRcIixlLTEpfSx7aW1tZWRpYXRlOiEwfSl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9fY2xlYW51cCgpLHRoaXMuX19zdG9wU2xpZGVOdW1iZXJOb3RpZmllcigpLHRoaXMuaGFuZGxlQXJyb3dLZXlzJiZ0aGlzLl9fc2V0QXJyb3dLZXlzKCExKX19LFFDYXJvdXNlbFNsaWRlPXtuYW1lOlwiUUNhcm91c2VsU2xpZGVcIixpbmplY3Q6e2Nhcm91c2VsOntkZWZhdWx0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcihcIlFDYXJvdXNlbFNsaWRlIG5lZWRzIHRvIGJlIGNoaWxkIG9mIFFDYXJvdXNlbFwiKX19fSxwcm9wczp7aW1nU3JjOlN0cmluZ30sY29tcHV0ZWQ6e2NvbXB1dGVkU3R5bGU6ZnVuY3Rpb24oKXt2YXIgdD17fTtyZXR1cm4gdGhpcy5pbWdTcmMmJih0LmJhY2tncm91bmRJbWFnZT1cInVybChcIit0aGlzLmltZ1NyYytcIilcIix0LmJhY2tncm91bmRTaXplPVwiY292ZXJcIix0LmJhY2tncm91bmRQb3NpdGlvbj1cIjUwJVwiKSwhdGhpcy5jYXJvdXNlbC5pbkZ1bGxzY3JlZW4mJnRoaXMuY2Fyb3VzZWwuaGVpZ2h0JiYodC5tYXhIZWlnaHQ9dGhpcy5jYXJvdXNlbC5oZWlnaHQpLHR9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNhcm91c2VsLXNsaWRlIHJlbGF0aXZlLXBvc2l0aW9uIHNjcm9sbFwiLHN0eWxlOnRoaXMuY29tcHV0ZWRTdHlsZX0sdGhpcy4kc2xvdHMuZGVmYXVsdCl9LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmNhcm91c2VsLl9fcmVnaXN0ZXJTbGlkZSgpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5jYXJvdXNlbC5fX3VucmVnaXN0ZXJTbGlkZSgpfX0sUUNhcm91c2VsQ29udHJvbD17bmFtZTpcIlFDYXJvdXNlbENvbnRyb2xcIixwcm9wczp7cG9zaXRpb246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJib3R0b20tcmlnaHRcIn0sb2Zmc2V0Ont0eXBlOkFycmF5LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm5bMTgsMThdfX19LGNvbXB1dGVkOntjb21wdXRlZENsYXNzOmZ1bmN0aW9uKCl7cmV0dXJuXCJhYnNvbHV0ZS1cIit0aGlzLnBvc2l0aW9ufSxjb21wdXRlZFN0eWxlOmZ1bmN0aW9uKCl7cmV0dXJue21hcmdpbjp0aGlzLm9mZnNldFsxXStcInB4IFwiK3RoaXMub2Zmc2V0WzBdK1wicHhcIn19fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNhcm91c2VsLWNvbnRyb2wgYWJzb2x1dGVcIixzdHlsZTp0aGlzLmNvbXB1dGVkU3R5bGUsY2xhc3M6dGhpcy5jb21wdXRlZENsYXNzfSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFDaGF0TWVzc2FnZT17bmFtZTpcIlFDaGF0TWVzc2FnZVwiLHByb3BzOntzZW50OkJvb2xlYW4sbGFiZWw6U3RyaW5nLGJnQ29sb3I6U3RyaW5nLHRleHRDb2xvcjpTdHJpbmcsbmFtZTpTdHJpbmcsYXZhdGFyOlN0cmluZyx0ZXh0OkFycmF5LHN0YW1wOlN0cmluZyxzaXplOlN0cmluZ30sY29tcHV0ZWQ6e3RleHRDbGFzczpmdW5jdGlvbigpe2lmKHRoaXMudGV4dENvbG9yKXJldHVyblwidGV4dC1cIit0aGlzLnRleHRDb2xvcn0sbWVzc2FnZUNsYXNzOmZ1bmN0aW9uKCl7aWYodGhpcy5iZ0NvbG9yKXJldHVyblwidGV4dC1cIit0aGlzLmJnQ29sb3J9LHNpemVDbGFzczpmdW5jdGlvbigpe2lmKHRoaXMuc2l6ZSlyZXR1cm5cImNvbC1cIit0aGlzLnNpemV9LGNsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm57XCJxLW1lc3NhZ2Utc2VudFwiOnRoaXMuc2VudCxcInEtbWVzc2FnZS1yZWNlaXZlZFwiOiF0aGlzLnNlbnR9fX0sbWV0aG9kczp7X19nZXRUZXh0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMudGV4dC5tYXAoZnVuY3Rpb24oaSxzKXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbWVzc2FnZS10ZXh0XCIsY2xhc3M6ZS5tZXNzYWdlQ2xhc3N9LFt0KFwic3BhblwiLHtzdGF0aWNDbGFzczpcInEtbWVzc2FnZS10ZXh0LWNvbnRlbnRcIixjbGFzczplLnRleHRDbGFzc30sW3QoXCJkaXZcIix7ZG9tUHJvcHM6e2lubmVySFRNTDppfX0pLGUuc3RhbXA/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbWVzc2FnZS1zdGFtcFwiLGRvbVByb3BzOntpbm5lckhUTUw6ZS5zdGFtcH19KTpudWxsXSldKX0pfSxfX2dldE1lc3NhZ2U6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLW1lc3NhZ2UtdGV4dFwiLGNsYXNzOnRoaXMubWVzc2FnZUNsYXNzfSxbdChcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJxLW1lc3NhZ2UtdGV4dC1jb250ZW50XCIsY2xhc3M6dGhpcy50ZXh0Q2xhc3N9LFt0aGlzLiRzbG90cy5kZWZhdWx0LHRoaXMuc3RhbXA/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbWVzc2FnZS1zdGFtcFwiLGRvbVByb3BzOntpbm5lckhUTUw6dGhpcy5zdGFtcH19KTpudWxsXSldKX19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbWVzc2FnZVwiLGNsYXNzOnRoaXMuY2xhc3Nlc30sW3RoaXMubGFiZWw/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbWVzc2FnZS1sYWJlbCB0ZXh0LWNlbnRlclwiLGRvbVByb3BzOntpbm5lckhUTUw6dGhpcy5sYWJlbH19KTpudWxsLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLW1lc3NhZ2UtY29udGFpbmVyIHJvdyBpdGVtcy1lbmQgbm8td3JhcFwifSxbdGhpcy4kc2xvdHMuYXZhdGFyfHwodGhpcy5hdmF0YXI/dChcImltZ1wiLHtzdGF0aWNDbGFzczpcInEtbWVzc2FnZS1hdmF0YXIgY29sLWF1dG9cIixhdHRyczp7c3JjOnRoaXMuYXZhdGFyfX0pOm51bGwpLHQoXCJkaXZcIix7Y2xhc3M6dGhpcy5zaXplQ2xhc3N9LFt0aGlzLm5hbWU/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbWVzc2FnZS1uYW1lXCIsZG9tUHJvcHM6e2lubmVySFRNTDp0aGlzLm5hbWV9fSk6bnVsbCx0aGlzLnRleHQ/dGhpcy5fX2dldFRleHQodCk6bnVsbCx0aGlzLiRzbG90cy5kZWZhdWx0P3RoaXMuX19nZXRNZXNzYWdlKHQpOm51bGxdKV0pXSl9fTtmdW5jdGlvbiBnZXREaXJlY3Rpb24kMSh0KXt2YXIgZT17fTtyZXR1cm5bXCJsZWZ0XCIsXCJyaWdodFwiLFwidXBcIixcImRvd25cIixcImhvcml6b250YWxcIixcInZlcnRpY2FsXCJdLmZvckVhY2goZnVuY3Rpb24oaSl7dFtpXSYmKGVbaV09ITApfSksMD09PU9iamVjdC5rZXlzKGUpLmxlbmd0aD97bGVmdDohMCxyaWdodDohMCx1cDohMCxkb3duOiEwLGhvcml6b250YWw6ITAsdmVydGljYWw6ITB9OihlLmhvcml6b250YWwmJihlLmxlZnQ9ZS5yaWdodD0hMCksZS52ZXJ0aWNhbCYmKGUudXA9ZS5kb3duPSEwKSxlLmxlZnQmJmUucmlnaHQmJihlLmhvcml6b250YWw9ITApLGUudXAmJmUuZG93biYmKGUudmVydGljYWw9ITApLGUpfXZhciBUb3VjaFN3aXBlPXtuYW1lOlwidG91Y2gtc3dpcGVcIixiaW5kOmZ1bmN0aW9uKHQsZSl7dmFyIGk9IWUubW9kaWZpZXJzLm5vTW91c2Uscz17aGFuZGxlcjplLnZhbHVlLHRocmVzaG9sZDpwYXJzZUludChlLmFyZywxMCl8fDMwMCxkaXJlY3Rpb246Z2V0RGlyZWN0aW9uJDEoZS5tb2RpZmllcnMpLG1vdXNlU3RhcnQ6ZnVuY3Rpb24odCl7bGVmdENsaWNrKHQpJiYoZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLHMubW92ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIixzLm1vdXNlRW5kKSxzLnN0YXJ0KHQpKX0sbW91c2VFbmQ6ZnVuY3Rpb24odCl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLHMubW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIixzLm1vdXNlRW5kKSxzLmVuZCh0KX0sc3RhcnQ6ZnVuY3Rpb24oZSl7dmFyIGk9cG9zaXRpb24oZSk7cy5ldmVudD17eDppLmxlZnQseTppLnRvcCx0aW1lOihuZXcgRGF0ZSkuZ2V0VGltZSgpLGRldGVjdGVkOiExLGFib3J0OiExfSx0LmNsYXNzTGlzdC5hZGQoXCJxLXRvdWNoXCIpfSxtb3ZlOmZ1bmN0aW9uKHQpe2lmKCFzLmV2ZW50LmFib3J0KWlmKChuZXcgRGF0ZSkuZ2V0VGltZSgpLXMuZXZlbnQudGltZT5zLnRocmVzaG9sZClzLmV2ZW50LmFib3J0PSEwO2Vsc2V7aWYocy5ldmVudC5kZXRlY3RlZClyZXR1cm4gdC5zdG9wUHJvcGFnYXRpb24oKSx2b2lkIHQucHJldmVudERlZmF1bHQoKTt2YXIgZT1wb3NpdGlvbih0KSxpPWUubGVmdC1zLmV2ZW50Lngsbj1NYXRoLmFicyhpKSxvPWUudG9wLXMuZXZlbnQueSxyPU1hdGguYWJzKG8pO24hPT1yJiYocy5ldmVudC5kZXRlY3RlZD0hMCxzLmV2ZW50LmFib3J0PSEocy5kaXJlY3Rpb24udmVydGljYWwmJm48cnx8cy5kaXJlY3Rpb24uaG9yaXpvbnRhbCYmbj5yfHxzLmRpcmVjdGlvbi51cCYmbjxyJiZvPDB8fHMuZGlyZWN0aW9uLmRvd24mJm48ciYmbz4wfHxzLmRpcmVjdGlvbi5sZWZ0JiZuPnImJmk8MHx8cy5kaXJlY3Rpb24ucmlnaHQmJm4+ciYmaT4wKSxzLm1vdmUodCkpfX0sZW5kOmZ1bmN0aW9uKGUpe2lmKHQuY2xhc3NMaXN0LnJlbW92ZShcInEtdG91Y2hcIiksIXMuZXZlbnQuYWJvcnQmJnMuZXZlbnQuZGV0ZWN0ZWQpe3ZhciBpPShuZXcgRGF0ZSkuZ2V0VGltZSgpLXMuZXZlbnQudGltZTtpZighKGk+cy50aHJlc2hvbGQpKXtlLnN0b3BQcm9wYWdhdGlvbigpLGUucHJldmVudERlZmF1bHQoKTt2YXIgbixvPXBvc2l0aW9uKGUpLHI9by5sZWZ0LXMuZXZlbnQueCxhPU1hdGguYWJzKHIpLGw9by50b3Atcy5ldmVudC55LGM9TWF0aC5hYnMobCk7aWYoYT49Yyl7aWYoYTw1MClyZXR1cm47bj1yPDA/XCJsZWZ0XCI6XCJyaWdodFwifWVsc2V7aWYoYzw1MClyZXR1cm47bj1sPDA/XCJ1cFwiOlwiZG93blwifXMuZGlyZWN0aW9uW25dJiZzLmhhbmRsZXIoe2V2dDplLGRpcmVjdGlvbjpuLGR1cmF0aW9uOmksZGlzdGFuY2U6e3g6YSx5OmN9fSl9fX19O3QuX19xdG91Y2hzd2lwZT1zLGkmJnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLHMubW91c2VTdGFydCksdC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLHMuc3RhcnQpLHQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLHMubW92ZSksdC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIixzLmVuZCl9LHVwZGF0ZTpmdW5jdGlvbih0LGUpe2Uub2xkVmFsdWUhPT1lLnZhbHVlJiYodC5fX3F0b3VjaHN3aXBlLmhhbmRsZXI9ZS52YWx1ZSl9LHVuYmluZDpmdW5jdGlvbih0LGUpe3ZhciBpPXQuX19xdG91Y2hzd2lwZTtpJiYodC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsaS5tb3VzZVN0YXJ0KSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIsaS5zdGFydCksdC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2htb3ZlXCIsaS5tb3ZlKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLGkuZW5kKSxkZWxldGUgdC5fX3F0b3VjaHN3aXBlKX19LENoZWNrYm94TWl4aW49e2RpcmVjdGl2ZXM6e1RvdWNoU3dpcGU6VG91Y2hTd2lwZX0scHJvcHM6e3ZhbDp7fSx0cnVlVmFsdWU6e2RlZmF1bHQ6ITB9LGZhbHNlVmFsdWU6e2RlZmF1bHQ6ITF9fSxjb21wdXRlZDp7aXNUcnVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWxJc0FycmF5P3RoaXMuaW5kZXg+LTE6dGhpcy52YWx1ZT09PXRoaXMudHJ1ZVZhbHVlfSxpc0ZhbHNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWxJc0FycmF5Py0xPT09dGhpcy5pbmRleDp0aGlzLnZhbHVlPT09dGhpcy5mYWxzZVZhbHVlfSxpbmRleDpmdW5jdGlvbigpe2lmKHRoaXMubW9kZWxJc0FycmF5KXJldHVybiB0aGlzLnZhbHVlLmluZGV4T2YodGhpcy52YWwpfSxtb2RlbElzQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKX19LG1ldGhvZHM6e3RvZ2dsZTpmdW5jdGlvbih0LGUpe3ZhciBpOyh2b2lkIDA9PT1lJiYoZT0hMCksdGhpcy5kaXNhYmxlfHx0aGlzLnJlYWRvbmx5KXx8KHQmJnN0b3BBbmRQcmV2ZW50KHQpLGUmJnRoaXMuJGVsLmJsdXIoKSx0aGlzLm1vZGVsSXNBcnJheT90aGlzLmlzVHJ1ZT8oaT10aGlzLnZhbHVlLnNsaWNlKCkpLnNwbGljZSh0aGlzLmluZGV4LDEpOmk9dGhpcy52YWx1ZS5jb25jYXQodGhpcy52YWwpOmk9dGhpcy5pc1RydWU/dGhpcy50b2dnbGVJbmRldGVybWluYXRlP3RoaXMuaW5kZXRlcm1pbmF0ZVZhbHVlOnRoaXMuZmFsc2VWYWx1ZTp0aGlzLmlzRmFsc2U/dGhpcy50cnVlVmFsdWU6dGhpcy5mYWxzZVZhbHVlLHRoaXMuX191cGRhdGUoaSkpfX19LE9wdGlvbk1peGluPXtwcm9wczp7dmFsdWU6e3JlcXVpcmVkOiEwfSxsYWJlbDpTdHJpbmcsbGVmdExhYmVsOkJvb2xlYW4sY29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJwcmltYXJ5XCJ9LGtlZXBDb2xvcjpCb29sZWFuLGRhcms6Qm9vbGVhbixkaXNhYmxlOkJvb2xlYW4scmVhZG9ubHk6Qm9vbGVhbixub0ZvY3VzOkJvb2xlYW4sY2hlY2tlZEljb246U3RyaW5nLHVuY2hlY2tlZEljb246U3RyaW5nfSxjb21wdXRlZDp7Y2xhc3NlczpmdW5jdGlvbigpe3JldHVyblt0aGlzLl9fa2ViYWJUYWcse2Rpc2FibGVkOnRoaXMuZGlzYWJsZSxyZXZlcnNlOnRoaXMubGVmdExhYmVsLFwicS1mb2N1c2FibGVcIjp0aGlzLmZvY3VzYWJsZX1dfSxpbm5lckNsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1RydWV8fHRoaXMuaXNJbmRldGVybWluYXRlP1tcImFjdGl2ZVwiLFwidGV4dC1cIit0aGlzLmNvbG9yXTpcInRleHQtXCIrKHRoaXMua2VlcENvbG9yP3RoaXMuY29sb3I6dGhpcy5kYXJrP1wibGlnaHRcIjpcImZhZGVkXCIpfSxmb2N1c2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5ub0ZvY3VzJiYhdGhpcy5kaXNhYmxlJiYhdGhpcy5yZWFkb25seX0sdGFiaW5kZXg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mb2N1c2FibGU/MDotMX19LG1ldGhvZHM6e19fdXBkYXRlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT10aGlzLiRyZWZzLnJpcHBsZTtpJiYoaS5jbGFzc0xpc3QuYWRkKFwiYWN0aXZlXCIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtpLmNsYXNzTGlzdC5yZW1vdmUoXCJhY3RpdmVcIil9LDEwKSksdGhpcy4kZW1pdChcImlucHV0XCIsdCksdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtKU09OLnN0cmluZ2lmeSh0KSE9PUpTT04uc3RyaW5naWZ5KGUudmFsdWUpJiZlLiRlbWl0KFwiY2hhbmdlXCIsdCl9KX0sX19oYW5kbGVLZXlEb3duOmZ1bmN0aW9uKHQpe1sxMywzMl0uaW5jbHVkZXMoZ2V0RXZlbnRLZXkodCkpJiZ0aGlzLnRvZ2dsZSh0LCExKX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1vcHRpb24gY3Vyc29yLXBvaW50ZXIgbm8tb3V0bGluZSByb3cgaW5saW5lIG5vLXdyYXAgaXRlbXMtY2VudGVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOnt0YWJpbmRleDp0aGlzLnRhYmluZGV4fSxvbjp7Y2xpY2s6dGhpcy50b2dnbGUsZm9jdXM6ZnVuY3Rpb24oKXtlLiRlbWl0KFwiZm9jdXNcIil9LGJsdXI6ZnVuY3Rpb24oKXtlLiRlbWl0KFwiYmx1clwiKX0sa2V5ZG93bjp0aGlzLl9faGFuZGxlS2V5RG93bn0sZGlyZWN0aXZlczpcInEtdG9nZ2xlXCIhPT10aGlzLl9fa2ViYWJUYWd8fHRoaXMuZGlzYWJsZXx8dGhpcy5yZWFkb25seT9udWxsOlt7bmFtZTpcInRvdWNoLXN3aXBlXCIsbW9kaWZpZXJzOntob3Jpem9udGFsOiEwfSx2YWx1ZTp0aGlzLl9fc3dpcGV9XX0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLW9wdGlvbi1pbm5lciByZWxhdGl2ZS1wb3NpdGlvblwiLGNsYXNzOnRoaXMuaW5uZXJDbGFzc2VzfSxbdChcImlucHV0XCIse2F0dHJzOnt0eXBlOlwiY2hlY2tib3hcIn0sb246e2NoYW5nZTp0aGlzLnRvZ2dsZX19KSx0aGlzLiRxLnBsYXRmb3JtLmlzLmRlc2t0b3A/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZm9jdXMtaGVscGVyXCIsY2xhc3M6XCJxLXJhZGlvXCI9PT10aGlzLl9fa2ViYWJUYWc/XCJxLWZvY3VzLWhlbHBlci1yb3VuZFwiOlwicS1mb2N1cy1oZWxwZXItcm91bmRlZFwifSk6bnVsbCx0aGlzLl9fZ2V0Q29udGVudCh0KV0pLHRoaXMubGFiZWw/dChcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJxLW9wdGlvbi1sYWJlbFwiLGRvbVByb3BzOntpbm5lckhUTUw6dGhpcy5sYWJlbH19KTpudWxsLHRoaXMuJHNsb3RzLmRlZmF1bHRdKX19LFFDaGVja2JveD17bmFtZTpcIlFDaGVja2JveFwiLG1peGluczpbQ2hlY2tib3hNaXhpbixPcHRpb25NaXhpbl0scHJvcHM6e3RvZ2dsZUluZGV0ZXJtaW5hdGU6Qm9vbGVhbixpbmRldGVybWluYXRlVmFsdWU6e2RlZmF1bHQ6bnVsbH0saW5kZXRlcm1pbmF0ZUljb246U3RyaW5nfSxjb21wdXRlZDp7aXNJbmRldGVybWluYXRlOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PXRoaXMudmFsdWV8fHRoaXMudmFsdWU9PT10aGlzLmluZGV0ZXJtaW5hdGVWYWx1ZX0sY2hlY2tlZFN0eWxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNUcnVlP3t0cmFuc2l0aW9uOlwib3BhY2l0eSAwbXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpIDBtcywgdHJhbnNmb3JtIDgwMG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSAwbXNcIixvcGFjaXR5OjEsdHJhbnNmb3JtOlwic2NhbGUoMSlcIn06e3RyYW5zaXRpb246XCJvcGFjaXR5IDQ1MG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSAwbXMsIHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpIDQ1MG1zXCIsb3BhY2l0eTowLHRyYW5zZm9ybTpcInNjYWxlKDApXCJ9fSxpbmRldGVybWluYXRlU3R5bGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZGV0ZXJtaW5hdGU/e3RyYW5zaXRpb246XCJvcGFjaXR5IDBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSkgMG1zLCB0cmFuc2Zvcm0gODAwbXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpIDBtc1wiLG9wYWNpdHk6MSx0cmFuc2Zvcm06XCJzY2FsZSgxKVwifTp7dHJhbnNpdGlvbjpcIm9wYWNpdHkgNDUwbXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpIDBtcywgdHJhbnNmb3JtIDBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSkgNDUwbXNcIixvcGFjaXR5OjAsdHJhbnNmb3JtOlwic2NhbGUoMClcIn19LHVuY2hlY2tlZFN0eWxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNGYWxzZT97b3BhY2l0eToxfTp7dHJhbnNpdGlvbjpcIm9wYWNpdHkgNjUwbXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpIDE1MG1zXCIsb3BhY2l0eTowfX19LG1ldGhvZHM6e19fZ2V0Q29udGVudDpmdW5jdGlvbih0KXtyZXR1cm5bdChRSWNvbix7c3RhdGljQ2xhc3M6XCJxLWNoZWNrYm94LWljb24gY3Vyc29yLXBvaW50ZXJcIixwcm9wczp7bmFtZTp0aGlzLnVuY2hlY2tlZEljb258fHRoaXMuJHEuaWNvbi5jaGVja2JveC51bmNoZWNrZWQubWF0fSxzdHlsZTp0aGlzLnVuY2hlY2tlZFN0eWxlfSksdChRSWNvbix7c3RhdGljQ2xhc3M6XCJxLWNoZWNrYm94LWljb24gY3Vyc29yLXBvaW50ZXIgYWJzb2x1dGUtZnVsbFwiLHByb3BzOntuYW1lOnRoaXMuaW5kZXRlcm1pbmF0ZUljb258fHRoaXMuJHEuaWNvbi5jaGVja2JveC5pbmRldGVybWluYXRlLm1hdH0sc3R5bGU6dGhpcy5pbmRldGVybWluYXRlU3R5bGV9KSx0KFFJY29uLHtzdGF0aWNDbGFzczpcInEtY2hlY2tib3gtaWNvbiBjdXJzb3ItcG9pbnRlciBhYnNvbHV0ZS1mdWxsXCIscHJvcHM6e25hbWU6dGhpcy5jaGVja2VkSWNvbnx8dGhpcy4kcS5pY29uLmNoZWNrYm94LmNoZWNrZWQubWF0fSxzdHlsZTp0aGlzLmNoZWNrZWRTdHlsZX0pLHQoXCJkaXZcIix7cmVmOlwicmlwcGxlXCIsc3RhdGljQ2xhc3M6XCJxLXJhZGlhbC1yaXBwbGVcIn0pXX19LGJlZm9yZUNyZWF0ZTpmdW5jdGlvbigpe3RoaXMuX19rZWJhYlRhZz1cInEtY2hlY2tib3hcIn19LFFDaGlwPXtuYW1lOlwiUUNoaXBcIixwcm9wczp7c21hbGw6Qm9vbGVhbixkZW5zZTpCb29sZWFuLHRhZzpCb29sZWFuLHNxdWFyZTpCb29sZWFuLGZsb2F0aW5nOkJvb2xlYW4scG9pbnRpbmc6e3R5cGU6U3RyaW5nLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJ1cFwiLFwicmlnaHRcIixcImRvd25cIixcImxlZnRcIl0uaW5jbHVkZXModCl9fSxjb2xvcjpTdHJpbmcsdGV4dENvbG9yOlN0cmluZyxpY29uOlN0cmluZyxpY29uUmlnaHQ6U3RyaW5nLGF2YXRhcjpTdHJpbmcsY2xvc2FibGU6Qm9vbGVhbixkZXRhaWw6Qm9vbGVhbn0sY29tcHV0ZWQ6e2NsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9W107cmV0dXJuIHRoaXMucG9pbnRpbmcmJmUucHVzaChcInEtY2hpcC1wb2ludGluZy1cIit0aGlzLnBvaW50aW5nKSxbXCJ0YWdcIixcInNxdWFyZVwiLFwiZmxvYXRpbmdcIixcInBvaW50aW5nXCIsXCJzbWFsbFwiLFwiZGVuc2VcIl0uZm9yRWFjaChmdW5jdGlvbihpKXt0W2ldJiZlLnB1c2goXCJxLWNoaXAtXCIraSl9KSx0aGlzLmZsb2F0aW5nJiYoIXRoaXMuZGVuc2UmJmUucHVzaChcInEtY2hpcC1kZW5zZVwiKSwhdGhpcy5zcXVhcmUmJmUucHVzaChcInEtY2hpcC1zcXVhcmVcIikpLHRoaXMuY29sb3ImJihlLnB1c2goXCJiZy1cIit0aGlzLmNvbG9yKSwhdGhpcy50ZXh0Q29sb3ImJmUucHVzaChcInRleHQtd2hpdGVcIikpLHRoaXMudGV4dENvbG9yJiZlLnB1c2goXCJ0ZXh0LVwiK3RoaXMudGV4dENvbG9yKSxlfX0sbWV0aG9kczp7X19vbkNsaWNrOmZ1bmN0aW9uKHQpe3RoaXMuJGVtaXQoXCJjbGlja1wiLHQpfSxfX29uTW91c2VEb3duOmZ1bmN0aW9uKHQpe3RoaXMuJGVtaXQoXCJmb2N1c1wiLHQpfSxfX2hhbmRsZUtleURvd246ZnVuY3Rpb24odCl7dGhpcy5jbG9zYWJsZSYmWzgsMTMsMzJdLmluY2x1ZGVzKGdldEV2ZW50S2V5KHQpKSYmKHN0b3BBbmRQcmV2ZW50KHQpLHRoaXMuJGVtaXQoXCJoaWRlXCIpKX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jaGlwIHJvdyBuby13cmFwIGlubGluZSBpdGVtcy1jZW50ZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsb246e21vdXNlZG93bjp0aGlzLl9fb25Nb3VzZURvd24sdG91Y2hzdGFydDp0aGlzLl9fb25Nb3VzZURvd24sY2xpY2s6dGhpcy5fX29uQ2xpY2ssa2V5ZG93bjp0aGlzLl9faGFuZGxlS2V5RG93bn19LFt0aGlzLmljb258fHRoaXMuYXZhdGFyP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNoaXAtc2lkZSBxLWNoaXAtbGVmdCByb3cgZmxleC1jZW50ZXJcIixjbGFzczp7XCJxLWNoaXAtZGV0YWlsXCI6dGhpcy5kZXRhaWx9fSxbdGhpcy5pY29uP3QoUUljb24se3N0YXRpY0NsYXNzOlwicS1jaGlwLWljb25cIixwcm9wczp7bmFtZTp0aGlzLmljb259fSk6dGhpcy5hdmF0YXI/dChcImltZ1wiLHthdHRyczp7c3JjOnRoaXMuYXZhdGFyfX0pOm51bGxdKTpudWxsLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNoaXAtbWFpbiBlbGxpcHNpcyBxLXBvcHVwLS1za2lwXCJ9LHRoaXMuJHNsb3RzLmRlZmF1bHQpLHRoaXMuaWNvblJpZ2h0P3QoUUljb24se3Byb3BzOntuYW1lOnRoaXMuaWNvblJpZ2h0fSxjbGFzczp0aGlzLmNsb3NhYmxlP1wib24tcmlnaHQgcS1jaGlwLWljb25cIjpcInEtY2hpcC1zaWRlIHEtY2hpcC1yaWdodFwifSk6bnVsbCx0aGlzLmNsb3NhYmxlP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNoaXAtc2lkZSBxLWNoaXAtY2xvc2UgcS1jaGlwLXJpZ2h0IHJvdyBmbGV4LWNlbnRlclwifSxbdChRSWNvbix7cHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLmNoaXAuY2xvc2V9LHN0YXRpY0NsYXNzOlwiY3Vyc29yLXBvaW50ZXJcIixuYXRpdmVPbjp7Y2xpY2s6ZnVuY3Rpb24odCl7dCYmdC5zdG9wUHJvcGFnYXRpb24oKSxlLiRlbWl0KFwiaGlkZVwiKX19fSldKTpudWxsXSl9fSxtYXJnaW5hbD17dHlwZTpBcnJheSx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZXZlcnkoZnVuY3Rpb24odCl7cmV0dXJuXCJpY29uXCJpbiB0fSl9fSxGcmFtZU1peGluPXttaXhpbnM6W0FsaWduTWl4aW5dLHByb3BzOntwcmVmaXg6U3RyaW5nLHN1ZmZpeDpTdHJpbmcsc3RhY2tMYWJlbDpTdHJpbmcsZmxvYXRMYWJlbDpTdHJpbmcscGxhY2Vob2xkZXI6U3RyaW5nLGVycm9yOkJvb2xlYW4sd2FybmluZzpCb29sZWFuLGRpc2FibGU6Qm9vbGVhbixyZWFkb25seTpCb29sZWFuLGNsZWFyYWJsZTpCb29sZWFuLGNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSxhbGlnbjp7ZGVmYXVsdDpcImxlZnRcIn0sZGFyazpCb29sZWFuLGJlZm9yZTptYXJnaW5hbCxhZnRlcjptYXJnaW5hbCxpbnZlcnRlZDpCb29sZWFuLGludmVydGVkTGlnaHQ6Qm9vbGVhbixoaWRlVW5kZXJsaW5lOkJvb2xlYW4sY2xlYXJWYWx1ZTp7fSxub1BhcmVudEZpZWxkOkJvb2xlYW59LGNvbXB1dGVkOntpbnB1dFBsYWNlaG9sZGVyOmZ1bmN0aW9uKCl7aWYoIXRoaXMuZmxvYXRMYWJlbCYmIXRoaXMuc3RhY2tMYWJlbHx8dGhpcy5sYWJlbElzQWJvdmUpcmV0dXJuIHRoaXMucGxhY2Vob2xkZXJ9LGlzSW52ZXJ0ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnZlcnRlZHx8dGhpcy5pbnZlcnRlZExpZ2h0fSxpc0ludmVydGVkTGlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0ludmVydGVkJiYodGhpcy5pbnZlcnRlZExpZ2h0JiYhdGhpcy5oYXNFcnJvcnx8dGhpcy5pbnZlcnRlZCYmdGhpcy5oYXNXYXJuaW5nKX0saXNTdGFuZGFyZDpmdW5jdGlvbigpe3JldHVybiF0aGlzLmlzSW52ZXJ0ZWR9LGlzSGlkZVVuZGVybGluZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzU3RhbmRhcmQmJnRoaXMuaGlkZVVuZGVybGluZX0sbGFiZWxJc0Fib3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZm9jdXNlZHx8dGhpcy5sZW5ndGh8fHRoaXMuYWRkaXRpb25hbExlbmd0aHx8dGhpcy5zdGFja0xhYmVsfSxoYXNDb250ZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVuZ3RoPjB8fHRoaXMuYWRkaXRpb25hbExlbmd0aD4wfHx0aGlzLnBsYWNlaG9sZGVyfHwwPT09dGhpcy5wbGFjZWhvbGRlcn0sZWRpdGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5kaXNhYmxlJiYhdGhpcy5yZWFkb25seX0sY29tcHV0ZWRDbGVhclZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PXRoaXMuY2xlYXJWYWx1ZT9udWxsOnRoaXMuY2xlYXJWYWx1ZX0saXNDbGVhcmFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGl0YWJsZSYmdGhpcy5jbGVhcmFibGUmJnRoaXMuY29tcHV0ZWRDbGVhclZhbHVlIT09dGhpcy5tb2RlbH0saGFzRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4hISghdGhpcy5ub1BhcmVudEZpZWxkJiZ0aGlzLmZpZWxkJiZ0aGlzLmZpZWxkLmVycm9yfHx0aGlzLmVycm9yKX0saGFzV2FybmluZzpmdW5jdGlvbigpe3JldHVybiEodGhpcy5oYXNFcnJvcnx8ISghdGhpcy5ub1BhcmVudEZpZWxkJiZ0aGlzLmZpZWxkJiZ0aGlzLmZpZWxkLndhcm5pbmd8fHRoaXMud2FybmluZykpfSxmYWtlSW5wdXRWYWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFjdHVhbFZhbHVlfHwwPT09dGhpcy5hY3R1YWxWYWx1ZT90aGlzLmFjdHVhbFZhbHVlOnRoaXMucGxhY2Vob2xkZXJ8fDA9PT10aGlzLnBsYWNlaG9sZGVyP3RoaXMucGxhY2Vob2xkZXI6XCJcIn0sZmFrZUlucHV0Q2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PXRoaXMuYWN0dWFsVmFsdWV8fDA9PT10aGlzLmFjdHVhbFZhbHVlO3JldHVyblt0aGlzLmFsaWduQ2xhc3Mse2ludmlzaWJsZToodGhpcy5zdGFja0xhYmVsfHx0aGlzLmZsb2F0TGFiZWwpJiYhdGhpcy5sYWJlbElzQWJvdmUmJiF0LFwicS1pbnB1dC10YXJnZXQtcGxhY2Vob2xkZXJcIjohdCYmdGhpcy5pbnB1dFBsYWNlaG9sZGVyfV19fSxtZXRob2RzOntjbGVhcjpmdW5jdGlvbih0KXtpZih0aGlzLmVkaXRhYmxlKXt0JiZzdG9wQW5kUHJldmVudCh0KTt2YXIgZT10aGlzLmNvbXB1dGVkQ2xlYXJWYWx1ZTt0aGlzLl9fc2V0TW9kZWwmJnRoaXMuX19zZXRNb2RlbChlLCEwKSx0aGlzLiRlbWl0KFwiY2xlYXJcIixlKX19fX0sSW5wdXRNaXhpbj17cHJvcHM6e2F1dG9mb2N1czpbQm9vbGVhbixTdHJpbmddLG1heEhlaWdodDpOdW1iZXIsbG9hZGluZzpCb29sZWFufSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2ZvY3VzZWQ6ITEsdGltZXI6bnVsbCxpc051bWJlckVycm9yOiExLGlzTmVnWmVybzohMX19LG1ldGhvZHM6e2ZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5kaXNhYmxlfHx0aGlzLiRyZWZzLmlucHV0LmZvY3VzKCl9LGJsdXI6ZnVuY3Rpb24oKXt0aGlzLiRyZWZzLmlucHV0JiZ0aGlzLiRyZWZzLmlucHV0LmJsdXIoKX0sc2VsZWN0OmZ1bmN0aW9uKCl7dGhpcy4kcmVmcy5pbnB1dC5zZWxlY3QoKX0sX19vbkZvY3VzOmZ1bmN0aW9uKHQpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLmZvY3VzZWR8fCh0aGlzLmZvY3VzZWQ9ITAsdGhpcy4kcmVmcy5pbnB1dCYmdGhpcy4kcmVmcy5pbnB1dC5mb2N1cygpLHRoaXMuJGVtaXQoXCJmb2N1c1wiLHQpKX0sX19vbklucHV0Qmx1cjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLnRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLl9fb25CbHVyKHQpfSwyMDApfSxfX29uQmx1cjpmdW5jdGlvbih0LGUpe3RoaXMuZm9jdXNlZCYmKHRoaXMuZm9jdXNlZD0hMSx0aGlzLiRlbWl0KFwiYmx1clwiLHQpKSx0aGlzLl9fZW1pdChlKX0sX19lbWl0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT10aGlzLmlzTnVtYmVyJiZ0aGlzLmlzTnVtYmVyRXJyb3Iscz1pP3RoaXMuaXNOZWdaZXJvPy0wOm51bGw6dGhpcy5tb2RlbDt0aGlzLmlzTnVtYmVyJiYodGhpcy5tb2RlbD10aGlzLnZhbHVlKSxpJiZ0aGlzLiRlbWl0KFwiaW5wdXRcIixzKTt2YXIgbj1mdW5jdGlvbigpe2UuaXNOdW1iZXI/KHM9cGFyc2VGbG9hdChzKSxOdW1iZXIuaXNJbnRlZ2VyKGUuZGVjaW1hbHMpJiYocz1wYXJzZUZsb2F0KHMudG9GaXhlZChlLmRlY2ltYWxzKSkpLFN0cmluZygxL3MpIT09U3RyaW5nKDEvZS52YWx1ZSkmJmUuJGVtaXQoXCJjaGFuZ2VcIixzKSk6SlNPTi5zdHJpbmdpZnkocykhPT1KU09OLnN0cmluZ2lmeShlLnZhbHVlKSYmZS4kZW1pdChcImNoYW5nZVwiLHMpfTt0P24oKTp0aGlzLiRuZXh0VGljayhuKX0sX19vbktleWRvd246ZnVuY3Rpb24odCl7MTM9PT10LmtleUNvZGUmJihcInRleHRhcmVhXCI9PT10aGlzLnR5cGU/dC5zdG9wUHJvcGFnYXRpb24oKTp0aGlzLl9fZW1pdCgpKSx0aGlzLiRlbWl0KFwia2V5ZG93blwiLHQpfSxfX29uS2V5dXA6ZnVuY3Rpb24odCl7dGhpcy4kZW1pdChcImtleXVwXCIsdCl9LF9fb25DbGljazpmdW5jdGlvbih0KXt0aGlzLmZvY3VzKCksdGhpcy4kZW1pdChcImNsaWNrXCIsdCl9LF9fb25QYXN0ZTpmdW5jdGlvbih0KXt0aGlzLiRlbWl0KFwicGFzdGVcIix0KX19LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7dmFyIGU9dC4kcmVmcy5pbnB1dDt0LmF1dG9mb2N1cyYmZSYmKGUuZm9jdXMoKSxcInNlbGVjdFwiPT09dC5hdXRvZm9jdXMmJmUuc2VsZWN0KCkpfSl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy5mb2N1c2VkJiZ0aGlzLl9fb25CbHVyKHZvaWQgMCwhMCl9fSxQYXJlbnRGaWVsZE1peGluPXtpbmplY3Q6e2ZpZWxkOntmcm9tOlwiX19maWVsZFwiLGRlZmF1bHQ6bnVsbH19LHByb3BzOntub1BhcmVudEZpZWxkOkJvb2xlYW59LHdhdGNoOntub1BhcmVudEZpZWxkOmZ1bmN0aW9uKHQpe3RoaXMuZmllbGQmJnRoaXMuZmllbGRbdD9cIl9fcmVnaXN0ZXJJbnB1dFwiOlwiX191bnJlZ2lzdGVySW5wdXRcIl0odGhpcyl9fSxiZWZvcmVNb3VudDpmdW5jdGlvbigpeyF0aGlzLm5vUGFyZW50RmllbGQmJnRoaXMuZmllbGQmJnRoaXMuZmllbGQuX19yZWdpc3RlcklucHV0KHRoaXMpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7IXRoaXMubm9QYXJlbnRGaWVsZCYmdGhpcy5maWVsZCYmdGhpcy5maWVsZC5fX3VucmVnaXN0ZXJJbnB1dCh0aGlzKX19LFFJbnB1dEZyYW1lPXtuYW1lOlwiUUlucHV0RnJhbWVcIixtaXhpbnM6W0ZyYW1lTWl4aW4sUGFyZW50RmllbGRNaXhpbl0scHJvcHM6e2ZvY3VzZWQ6Qm9vbGVhbixsZW5ndGg6TnVtYmVyLGZvY3VzYWJsZTpCb29sZWFuLGFkZGl0aW9uYWxMZW5ndGg6Qm9vbGVhbn0sY29tcHV0ZWQ6e2hhc1N0YWNrTGFiZWw6ZnVuY3Rpb24oKXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdGhpcy5zdGFja0xhYmVsJiZ0aGlzLnN0YWNrTGFiZWwubGVuZ3RoPjB9LGhhc0xhYmVsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGFzU3RhY2tMYWJlbHx8XCJzdHJpbmdcIj09dHlwZW9mIHRoaXMuZmxvYXRMYWJlbCYmdGhpcy5mbG9hdExhYmVsLmxlbmd0aD4wfSxsYWJlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhhc1N0YWNrTGFiZWw/dGhpcy5zdGFja0xhYmVsOnRoaXMuZmxvYXRMYWJlbH0sYWRkb25DbGFzczpmdW5jdGlvbigpe3JldHVybntcInEtaWYtYWRkb24tdmlzaWJsZVwiOiF0aGlzLmhhc0xhYmVsfHx0aGlzLmxhYmVsSXNBYm92ZX19LGNsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD1be1wicS1pZi1oYXMtbGFiZWxcIjp0aGlzLmxhYmVsLFwicS1pZi1mb2N1c2VkXCI6dGhpcy5mb2N1c2VkLFwicS1pZi1lcnJvclwiOnRoaXMuaGFzRXJyb3IsXCJxLWlmLXdhcm5pbmdcIjp0aGlzLmhhc1dhcm5pbmcsXCJxLWlmLWRpc2FibGVkXCI6dGhpcy5kaXNhYmxlLFwicS1pZi1yZWFkb25seVwiOnRoaXMucmVhZG9ubHksXCJxLWlmLWZvY3VzYWJsZVwiOnRoaXMuZm9jdXNhYmxlJiYhdGhpcy5kaXNhYmxlLFwicS1pZi1pbnZlcnRlZFwiOnRoaXMuaXNJbnZlcnRlZCxcInEtaWYtaW52ZXJ0ZWQtbGlnaHRcIjp0aGlzLmlzSW52ZXJ0ZWRMaWdodCxcInEtaWYtbGlnaHQtY29sb3JcIjp0aGlzLmxpZ2h0Q29sb3IsXCJxLWlmLWRhcmtcIjp0aGlzLmRhcmssXCJxLWlmLWhpZGUtdW5kZXJsaW5lXCI6dGhpcy5pc0hpZGVVbmRlcmxpbmUsXCJxLWlmLXN0YW5kYXJkXCI6dGhpcy5pc1N0YW5kYXJkLFwicS1pZi1oYXMtY29udGVudFwiOnRoaXMuaGFzQ29udGVudH1dLGU9dGhpcy5oYXNFcnJvcj9cIm5lZ2F0aXZlXCI6dGhpcy5oYXNXYXJuaW5nP1wid2FybmluZ1wiOnRoaXMuY29sb3I7cmV0dXJuIHRoaXMuaXNJbnZlcnRlZD8odC5wdXNoKFwiYmctXCIrZSksdC5wdXNoKFwidGV4dC1cIisodGhpcy5pc0ludmVydGVkTGlnaHQ/XCJibGFja1wiOlwid2hpdGVcIikpKTplJiZ0LnB1c2goXCJ0ZXh0LVwiK2UpLHR9fSxtZXRob2RzOntfX29uQ2xpY2s6ZnVuY3Rpb24odCl7dGhpcy4kZW1pdChcImNsaWNrXCIsdCl9LF9fb25Nb3VzZURvd246ZnVuY3Rpb24odCl7dmFyIGU9dGhpczshdGhpcy5kaXNhYmxlJiZ0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3JldHVybiBlLiRlbWl0KFwiZm9jdXNcIix0KX0pfSxfX2FkZGl0aW9uYWxIaWRkZW46ZnVuY3Rpb24odCxlLGkscyl7cmV0dXJuIHZvaWQgMCE9PXQuY29uZGl0aW9uPyExPT09dC5jb25kaXRpb246dm9pZCAwIT09dC5jb250ZW50JiYhdC5jb250ZW50PT1zPjB8fHZvaWQgMCE9PXQuZXJyb3ImJiF0LmVycm9yPT09ZXx8dm9pZCAwIT09dC53YXJuaW5nJiYhdC53YXJuaW5nPT09aX0sX19iYUhhbmRsZXI6ZnVuY3Rpb24odCxlKXtlLmFsbG93UHJvcGFnYXRpb258fHQuc3RvcFByb3BhZ2F0aW9uKCksZS5oYW5kbGVyJiZlLmhhbmRsZXIodCl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtaWYgcm93IG5vLXdyYXAgcmVsYXRpdmUtcG9zaXRpb25cIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e3RhYmluZGV4OnRoaXMuZm9jdXNhYmxlJiYhdGhpcy5kaXNhYmxlPzA6LTF9LG9uOntjbGljazp0aGlzLl9fb25DbGlja319LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1pZi1iYXNlbGluZVwifSxcInxcIiksdGhpcy5iZWZvcmUmJnRoaXMuYmVmb3JlLm1hcChmdW5jdGlvbihpKXtyZXR1cm4gdChRSWNvbix7a2V5OlwiYlwiK2kuaWNvbixzdGF0aWNDbGFzczpcInEtaWYtY29udHJvbCBxLWlmLWNvbnRyb2wtYmVmb3JlXCIsY2xhc3M6W2kuY2xhc3Mse2hpZGRlbjplLl9fYWRkaXRpb25hbEhpZGRlbihpLGUuaGFzRXJyb3IsZS5oYXNXYXJuaW5nLGUubGVuZ3RoKX1dLHByb3BzOntuYW1lOmkuaWNvbn0sbmF0aXZlT246e21vdXNlZG93bjplLl9fb25Nb3VzZURvd24sdG91Y2hzdGFydDplLl9fb25Nb3VzZURvd24sY2xpY2s6ZnVuY3Rpb24odCl7ZS5fX2JhSGFuZGxlcih0LGkpfX19KX0pfHx2b2lkIDAsdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtaWYtaW5uZXIgY29sIGNvbHVtbiBxLXBvcHVwLS1za2lwXCJ9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicm93IG5vLXdyYXAgcmVsYXRpdmUtcG9zaXRpb25cIn0sW3RoaXMucHJlZml4JiZ0KFwic3BhblwiLHtzdGF0aWNDbGFzczpcInEtaWYtYWRkb24gcS1pZi1hZGRvbi1sZWZ0XCIsY2xhc3M6dGhpcy5hZGRvbkNsYXNzLGRvbVByb3BzOntpbm5lckhUTUw6dGhpcy5wcmVmaXh9fSl8fHZvaWQgMCx0aGlzLmhhc0xhYmVsJiZ0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1pZi1sYWJlbFwiLGNsYXNzOntcInEtaWYtbGFiZWwtYWJvdmVcIjp0aGlzLmxhYmVsSXNBYm92ZX19LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1pZi1sYWJlbC1pbm5lciBlbGxpcHNpc1wiLGRvbVByb3BzOntpbm5lckhUTUw6dGhpcy5sYWJlbH19KV0pfHx2b2lkIDBdLmNvbmNhdCh0aGlzLiRzbG90cy5kZWZhdWx0KS5jb25jYXQoW3RoaXMuc3VmZml4JiZ0KFwic3BhblwiLHtzdGF0aWNDbGFzczpcInEtaWYtYWRkb24gcS1pZi1hZGRvbi1yaWdodFwiLGNsYXNzOnRoaXMuYWRkb25DbGFzcyxkb21Qcm9wczp7aW5uZXJIVE1MOnRoaXMuc3VmZml4fX0pfHx2b2lkIDBdKSksdGhpcy5oYXNMYWJlbCYmdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtaWYtbGFiZWwtc3BhY2VyXCIsZG9tUHJvcHM6e2lubmVySFRNTDp0aGlzLmxhYmVsfX0pfHx2b2lkIDBdKSx0aGlzLmFmdGVyJiZ0aGlzLmFmdGVyLm1hcChmdW5jdGlvbihpKXtyZXR1cm4gdChRSWNvbix7a2V5OlwiYVwiK2kuaWNvbixzdGF0aWNDbGFzczpcInEtaWYtY29udHJvbFwiLGNsYXNzOltpLmNsYXNzLHtoaWRkZW46ZS5fX2FkZGl0aW9uYWxIaWRkZW4oaSxlLmhhc0Vycm9yLGUuaGFzV2FybmluZyxlLmxlbmd0aCl9XSxwcm9wczp7bmFtZTppLmljb259LG5hdGl2ZU9uOnttb3VzZWRvd246ZS5fX29uTW91c2VEb3duLHRvdWNoc3RhcnQ6ZS5fX29uTW91c2VEb3duLGNsaWNrOmZ1bmN0aW9uKHQpe2UuX19iYUhhbmRsZXIodCxpKX19fSl9KXx8dm9pZCAwXS5jb25jYXQodGhpcy4kc2xvdHMuYWZ0ZXIpKX19LFFDaGlwc0lucHV0PXtuYW1lOlwiUUNoaXBzSW5wdXRcIixtaXhpbnM6W0ZyYW1lTWl4aW4sSW5wdXRNaXhpbl0scHJvcHM6e3ZhbHVlOnt0eXBlOkFycmF5LHJlcXVpcmVkOiEwfSxjaGlwc0NvbG9yOlN0cmluZyxjaGlwc0JnQ29sb3I6U3RyaW5nLHJlYWRvbmx5OkJvb2xlYW4sYWRkSWNvbjpTdHJpbmcsdXBwZXJDYXNlOkJvb2xlYW4sbG93ZXJDYXNlOkJvb2xlYW59LGRhdGE6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybntpbnB1dDpcIlwiLG1vZGVsOnRoaXMudmFsdWUuc2xpY2UoKSx3YXRjaGVyOm51bGwsc2hhZG93Ont2YWw6dGhpcy5pbnB1dCxzZXQ6dGhpcy5hZGQsc2V0TmF2OmZ1bmN0aW9uKGUpe3QuaW5wdXQ9ZX0sbG9hZGluZzohMSxzZWxlY3Rpb25PcGVuOiExLHdhdGNoZWQ6MCxpc0VkaXRhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHQuZWRpdGFibGV9LGlzRGFyazpmdW5jdGlvbigpe3JldHVybiB0LmRhcmt9LGhhc0ZvY3VzOmZ1bmN0aW9uKCl7cmV0dXJuIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT10LiRyZWZzLmlucHV0fSxyZWdpc3RlcjpmdW5jdGlvbigpe3Quc2hhZG93LndhdGNoZWQrPTEsdC5fX3dhdGNoZXJSZWdpc3RlcigpfSx1bnJlZ2lzdGVyOmZ1bmN0aW9uKCl7dC5zaGFkb3cud2F0Y2hlZD1NYXRoLm1heCgwLHQuc2hhZG93LndhdGNoZWQtMSksdC5fX3dhdGNoZXJVbnJlZ2lzdGVyKCl9LGdldEVsOmZ1bmN0aW9uKCl7cmV0dXJuIHQuJHJlZnMuaW5wdXR9fX19LHdhdGNoOnt2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLm1vZGVsPXQuc2xpY2UoKX19LHByb3ZpZGU6ZnVuY3Rpb24oKXtyZXR1cm57X19pbnB1dDp0aGlzLnNoYWRvd319LGNvbXB1dGVkOntsZW5ndGg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tb2RlbD90aGlzLm1vZGVsLmxlbmd0aDowfSxpc0xvYWRpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sb2FkaW5nfHx0aGlzLnNoYWRvdy53YXRjaGVkJiZ0aGlzLnNoYWRvdy5sb2FkaW5nfSxjb21wdXRlZEFkZEljb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hZGRJY29ufHx0aGlzLiRxLmljb24uY2hpcHNJbnB1dC5hZGR9LGNvbXB1dGVkQ2hpcFRleHRDb2xvcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNoaXBzQ29sb3I/dGhpcy5jaGlwc0NvbG9yOnRoaXMuaXNJbnZlcnRlZExpZ2h0P3RoaXMuaW52ZXJ0ZWRMaWdodD90aGlzLmNvbG9yOlwid2hpdGVcIjp0aGlzLmlzSW52ZXJ0ZWQ/dGhpcy5pbnZlcnRlZExpZ2h0P1wiZ3JleS0xMFwiOnRoaXMuY29sb3I6dGhpcy5kYXJrP3RoaXMuY29sb3I6XCJ3aGl0ZVwifSxjb21wdXRlZENoaXBCZ0NvbG9yOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hpcHNCZ0NvbG9yP3RoaXMuY2hpcHNCZ0NvbG9yOnRoaXMuaXNJbnZlcnRlZExpZ2h0P3RoaXMuaW52ZXJ0ZWRMaWdodD9cImdyZXktMTBcIjp0aGlzLmNvbG9yOnRoaXMuaXNJbnZlcnRlZD90aGlzLmludmVydGVkTGlnaHQ/dGhpcy5jb2xvcjpcIndoaXRlXCI6dGhpcy5kYXJrP1wid2hpdGVcIjp0aGlzLmNvbG9yfSxpbnB1dENsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD1bdGhpcy5hbGlnbkNsYXNzXTtyZXR1cm4gdGhpcy51cHBlckNhc2UmJnQucHVzaChcInVwcGVyY2FzZVwiKSx0aGlzLmxvd2VyQ2FzZSYmdC5wdXNoKFwibG93ZXJjYXNlXCIpLHR9LGlzQ2xlYXJhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRpdGFibGUmJnRoaXMuY2xlYXJhYmxlJiYwIT09dGhpcy5tb2RlbC5sZW5ndGh9fSxtZXRob2RzOnthZGQ6ZnVuY3Rpb24odCl7aWYodm9pZCAwPT09dCYmKHQ9dGhpcy5pbnB1dCksY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuZm9jdXMoKSwhdGhpcy5pc0xvYWRpbmcmJnRoaXMuZWRpdGFibGUmJnQpe3ZhciBlPXRoaXMubG93ZXJDYXNlP3QudG9Mb3dlckNhc2UoKTp0aGlzLnVwcGVyQ2FzZT90LnRvVXBwZXJDYXNlKCk6dDt0aGlzLm1vZGVsLmluY2x1ZGVzKGUpP3RoaXMuJGVtaXQoXCJkdXBsaWNhdGVcIixlKToodGhpcy4kZW1pdChcImFkZFwiLHtpbmRleDp0aGlzLm1vZGVsLmxlbmd0aCx2YWw6ZX0pLHRoaXMubW9kZWwucHVzaChlKSx0aGlzLiRlbWl0KFwiaW5wdXRcIix0aGlzLm1vZGVsKSx0aGlzLmlucHV0PVwiXCIpfX0scmVtb3ZlOmZ1bmN0aW9uKHQpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLmZvY3VzKCksdGhpcy5lZGl0YWJsZSYmdD49MCYmdDx0aGlzLmxlbmd0aCYmKHRoaXMuJGVtaXQoXCJyZW1vdmVcIix7aW5kZXg6dCx2YWx1ZTp0aGlzLm1vZGVsLnNwbGljZSh0LDEpfSksdGhpcy4kZW1pdChcImlucHV0XCIsdGhpcy5tb2RlbCkpfSxjbGVhcjpmdW5jdGlvbih0KXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksdCYmc3RvcEFuZFByZXZlbnQodCksdGhpcy5lZGl0YWJsZSYmKHRoaXMuJGVtaXQoXCJpbnB1dFwiLFtdKSx0aGlzLiRlbWl0KFwiY2xlYXJcIikpfSxfX2NsZWFyVGltZXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7cmV0dXJuIGNsZWFyVGltZW91dCh0LnRpbWVyKX0pfSxfX2hhbmRsZUtleURvd246ZnVuY3Rpb24odCl7c3dpdGNoKGdldEV2ZW50S2V5KHQpKXtjYXNlIDEzOmlmKHRoaXMuc2hhZG93LnNlbGVjdGlvbk9wZW4pcmV0dXJuO3JldHVybiBzdG9wQW5kUHJldmVudCh0KSx0aGlzLmFkZCgpO2Nhc2UgODpyZXR1cm4gdm9pZCghdGhpcy5pbnB1dC5sZW5ndGgmJnRoaXMubGVuZ3RoJiZ0aGlzLnJlbW92ZSh0aGlzLmxlbmd0aC0xKSk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5fX29uS2V5ZG93bih0KX19LF9fb25DbGljazpmdW5jdGlvbigpe3RoaXMuZm9jdXMoKX0sX193YXRjaGVyOmZ1bmN0aW9uKHQpe3RoaXMuc2hhZG93LndhdGNoZWQmJih0aGlzLnNoYWRvdy52YWw9dCl9LF9fd2F0Y2hlclJlZ2lzdGVyOmZ1bmN0aW9uKCl7dGhpcy53YXRjaGVyfHwodGhpcy53YXRjaGVyPXRoaXMuJHdhdGNoKFwiaW5wdXRcIix0aGlzLl9fd2F0Y2hlcikpfSxfX3dhdGNoZXJVbnJlZ2lzdGVyOmZ1bmN0aW9uKHQpeyF0aGlzLndhdGNoZXJ8fCF0JiZ0aGlzLnNoYWRvdy53YXRjaGVkfHwodGhpcy53YXRjaGVyKCksdGhpcy53YXRjaGVyPW51bGwsdGhpcy5zaGFkb3cuc2VsZWN0aW9uT3Blbj0hMSl9fSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5fX3dhdGNoZXJVbnJlZ2lzdGVyKCEwKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoUUlucHV0RnJhbWUse3N0YXRpY0NsYXNzOlwicS1jaGlwcy1pbnB1dFwiLHByb3BzOntwcmVmaXg6dGhpcy5wcmVmaXgsc3VmZml4OnRoaXMuc3VmZml4LHN0YWNrTGFiZWw6dGhpcy5zdGFja0xhYmVsLGZsb2F0TGFiZWw6dGhpcy5mbG9hdExhYmVsLGVycm9yOnRoaXMuZXJyb3Isd2FybmluZzp0aGlzLndhcm5pbmcsZGlzYWJsZTp0aGlzLmRpc2FibGUscmVhZG9ubHk6dGhpcy5yZWFkb25seSxpbnZlcnRlZDp0aGlzLmludmVydGVkLGludmVydGVkTGlnaHQ6dGhpcy5pbnZlcnRlZExpZ2h0LGRhcms6dGhpcy5kYXJrLGhpZGVVbmRlcmxpbmU6dGhpcy5oaWRlVW5kZXJsaW5lLGJlZm9yZTp0aGlzLmJlZm9yZSxhZnRlcjp0aGlzLmFmdGVyLGNvbG9yOnRoaXMuY29sb3Isbm9QYXJlbnRGaWVsZDp0aGlzLm5vUGFyZW50RmllbGQsZm9jdXNlZDp0aGlzLmZvY3VzZWQsbGVuZ3RoOnRoaXMubGVuZ3RoLGFkZGl0aW9uYWxMZW5ndGg6dGhpcy5pbnB1dC5sZW5ndGg+MH0sb246e2NsaWNrOnRoaXMuX19vbkNsaWNrfX0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wgcm93IGl0ZW1zLWNlbnRlciBxLWlucHV0LWNoaXBzXCJ9LHRoaXMubW9kZWwubWFwKGZ1bmN0aW9uKGkscyl7cmV0dXJuIHQoUUNoaXAse2tleTppK1wiI1wiK3MscHJvcHM6e3NtYWxsOiEwLGNsb3NhYmxlOmUuZWRpdGFibGUsY29sb3I6ZS5jb21wdXRlZENoaXBCZ0NvbG9yLHRleHRDb2xvcjplLmNvbXB1dGVkQ2hpcFRleHRDb2xvcn0sYXR0cnM6e3RhYmluZGV4OmUuZWRpdGFibGUmJmUuZm9jdXNlZD8wOi0xfSxvbjp7Ymx1cjplLl9fb25JbnB1dEJsdXIsZm9jdXM6ZS5fX2NsZWFyVGltZXIsaGlkZTpmdW5jdGlvbigpe2UucmVtb3ZlKHMpfX0sbmF0aXZlT246e2JsdXI6ZS5fX29uSW5wdXRCbHVyLGZvY3VzOmUuX19jbGVhclRpbWVyfX0saSl9KS5jb25jYXQoW3QoXCJpbnB1dFwiLHtyZWY6XCJpbnB1dFwiLHN0YXRpY0NsYXNzOlwiY29sIHEtaW5wdXQtdGFyZ2V0XCIsY2xhc3M6dGhpcy5pbnB1dENsYXNzZXMsZG9tUHJvcHM6e3ZhbHVlOnRoaXMuaW5wdXR9LGF0dHJzOk9iamVjdC5hc3NpZ24oe30sdGhpcy4kYXR0cnMse3BsYWNlaG9sZGVyOnRoaXMuaW5wdXRQbGFjZWhvbGRlcixkaXNhYmxlZDp0aGlzLmRpc2FibGUscmVhZG9ubHk6dGhpcy5yZWFkb25seX0pLG9uOntpbnB1dDpmdW5jdGlvbih0KXtlLmlucHV0PXQudGFyZ2V0LnZhbHVlfSxmb2N1czp0aGlzLl9fb25Gb2N1cyxibHVyOnRoaXMuX19vbklucHV0Qmx1cixrZXlkb3duOnRoaXMuX19oYW5kbGVLZXlEb3duLGtleXVwOnRoaXMuX19vbktleXVwfX0pXSkpLHRoaXMuaXNMb2FkaW5nP3RoaXMuJHNsb3RzLmxvYWRpbmc/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtaWYtY29udHJvbFwiLHNsb3Q6XCJhZnRlclwifSx0aGlzLiRzbG90cy5sb2FkaW5nKTp0KFFTcGlubmVyLHtzbG90OlwiYWZ0ZXJcIixzdGF0aWNDbGFzczpcInEtaWYtY29udHJvbFwiLHByb3BzOntzaXplOlwiMjRweFwifX0pOnRoaXMuZWRpdGFibGUmJnQoUUljb24se3Nsb3Q6XCJhZnRlclwiLHN0YXRpY0NsYXNzOlwicS1pZi1jb250cm9sXCIsY2xhc3M6e2ludmlzaWJsZTowPT09dGhpcy5pbnB1dC5sZW5ndGh9LHByb3BzOntuYW1lOnRoaXMuY29tcHV0ZWRBZGRJY29ufSxuYXRpdmVPbjp7bW91c2Vkb3duOnRoaXMuX19jbGVhclRpbWVyLHRvdWNoc3RhcnQ6dGhpcy5fX2NsZWFyVGltZXIsY2xpY2s6ZnVuY3Rpb24oKXtlLmFkZCgpfX19KXx8dm9pZCAwLHRoaXMuaXNDbGVhcmFibGUmJnQoUUljb24se3Nsb3Q6XCJhZnRlclwiLHN0YXRpY0NsYXNzOlwicS1pZi1jb250cm9sXCIscHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLmlucHV0W1wiY2xlYXJcIisodGhpcy5pc0ludmVydGVkP1wiSW52ZXJ0ZWRcIjpcIlwiKV19LG5hdGl2ZU9uOnttb3VzZWRvd246dGhpcy5fX2NsZWFyVGltZXIsdG91Y2hzdGFydDp0aGlzLl9fY2xlYXJUaW1lcixjbGljazp0aGlzLmNsZWFyfX0pfHx2b2lkIDBdLmNvbmNhdCh0aGlzLiRzbG90cy5kZWZhdWx0P3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJhYnNvbHV0ZS1mdWxsIG5vLXBvaW50ZXItZXZlbnRzXCIsc2xvdDpcImFmdGVyXCJ9LHRoaXMuJHNsb3RzLmRlZmF1bHQpOnZvaWQgMCkpfX0sUUl0ZW1UaWxlPXtuYW1lOlwiUUl0ZW1UaWxlXCIscHJvcHM6e2ljb246U3RyaW5nLGxldHRlcjpCb29sZWFuLGludmVydGVkOkJvb2xlYW4saW1hZ2U6Qm9vbGVhbixhdmF0YXI6Qm9vbGVhbixzdGFtcDpCb29sZWFuLGxhYmVsOkJvb2xlYW4sc3VibGFiZWw6Qm9vbGVhbixsaW5lczpbTnVtYmVyLFN0cmluZ10sdGFnOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiZGl2XCJ9LGNvbG9yOlN0cmluZyx0ZXh0Q29sb3I6U3RyaW5nfSxjb21wdXRlZDp7aGFzTGluZXM6ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5sYWJlbHx8dGhpcy5zdWJsYWJlbCkmJnRoaXMubGluZXN9LHR5cGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybltcImljb25cIixcImxhYmVsXCIsXCJzdWJsYWJlbFwiLFwiaW1hZ2VcIixcImF2YXRhclwiLFwibGV0dGVyXCIsXCJzdGFtcFwiXS5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSl9LGNsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5jb2xvciYmKHRoaXMuaW52ZXJ0ZWQ/dC5wdXNoKFwiYmctXCIrdGhpcy5jb2xvcik6dGhpcy50ZXh0Q29sb3J8fHQucHVzaChcInRleHQtXCIrdGhpcy5jb2xvcikpLHRoaXMudGV4dENvbG9yJiZ0LnB1c2goXCJ0ZXh0LVwiK3RoaXMudGV4dENvbG9yKSx0aGlzLnR5cGUmJnQucHVzaChcInEtaXRlbS1cIit0aGlzLnR5cGUpLHRoaXMuaW52ZXJ0ZWQmJih0aGlzLmljb258fHRoaXMubGV0dGVyKSYmKHQucHVzaChcInEtaXRlbS1pbnZlcnRlZFwiKSx0LnB1c2goXCJmbGV4XCIpLHQucHVzaChcImZsZXgtY2VudGVyXCIpKSwhdGhpcy5oYXNMaW5lc3x8XCIxXCIhPT10aGlzLmxpbmVzJiYxIT09dGhpcy5saW5lc3x8dC5wdXNoKFwiZWxsaXBzaXNcIiksdH0sc3R5bGU6ZnVuY3Rpb24oKXtpZih0aGlzLmhhc0xpbmVzKXJldHVybiB0ZXh0U3R5bGUodGhpcy5saW5lcyl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9e2NsYXNzOnRoaXMuY2xhc3NlcyxzdHlsZTp0aGlzLnN0eWxlfTtpZih0aGlzLmljb24pe2lmKHRoaXMuaW52ZXJ0ZWQpcmV0dXJuIHQodGhpcy50YWcsZSxbdChRSWNvbix7cHJvcHM6e25hbWU6dGhpcy5pY29ufX0sdGhpcy4kc2xvdHMuZGVmYXVsdCldKTtlLnByb3BzPXtuYW1lOnRoaXMuaWNvbn19cmV0dXJuIHQodGhpcy5pY29uP1FJY29uOnRoaXMudGFnLGUsdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxRU2xpZGVUcmFuc2l0aW9uPXtuYW1lOlwiUVNsaWRlVHJhbnNpdGlvblwiLHByb3BzOnthcHBlYXI6Qm9vbGVhbixkdXJhdGlvbjp7dHlwZTpOdW1iZXIsZGVmYXVsdDozMDB9fSxtZXRob2RzOntfX2JlZ2luOmZ1bmN0aW9uKHQsZSxpKXt0LnN0eWxlLm92ZXJmbG93WT1cImhpZGRlblwiLHZvaWQgMCE9PWUmJih0LnN0eWxlLmhlaWdodD1lK1wicHhcIiksdC5zdHlsZS50cmFuc2l0aW9uPVwiaGVpZ2h0IFwiK3RoaXMuZHVyYXRpb24rXCJtcyBjdWJpYy1iZXppZXIoLjI1LCAuOCwgLjUwLCAxKVwiLHRoaXMuYW5pbWF0aW5nPSEwLHRoaXMuZG9uZT1pfSxfX2VuZDpmdW5jdGlvbih0LGUpe3Quc3R5bGUub3ZlcmZsb3dZPW51bGwsdC5zdHlsZS5oZWlnaHQ9bnVsbCx0LnN0eWxlLnRyYW5zaXRpb249bnVsbCx0aGlzLl9fY2xlYW51cCgpLGUhPT10aGlzLmxhc3RFdmVudCYmdGhpcy4kZW1pdChlKX0sX19jbGVhbnVwOmZ1bmN0aW9uKCl7dGhpcy5kb25lJiZ0aGlzLmRvbmUoKSx0aGlzLmRvbmU9bnVsbCx0aGlzLmFuaW1hdGluZz0hMSxjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy5lbC5yZW1vdmVFdmVudExpc3RlbmVyKFwidHJhbnNpdGlvbmVuZFwiLHRoaXMuYW5pbUxpc3RlbmVyKSx0aGlzLmFuaW1MaXN0ZW5lcj1udWxsfX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuYW5pbWF0aW5nJiZ0aGlzLl9fY2xlYW51cCgpfSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdChcInRyYW5zaXRpb25cIix7cHJvcHM6e2NzczohMSxhcHBlYXI6dGhpcy5hcHBlYXJ9LG9uOntlbnRlcjpmdW5jdGlvbih0LGkpe3ZhciBzPTA7ZS5lbD10LCEwPT09ZS5hbmltYXRpbmc/KGUuX19jbGVhbnVwKCkscz10Lm9mZnNldEhlaWdodD09PXQuc2Nyb2xsSGVpZ2h0PzA6dm9pZCAwKTplLmxhc3RFdmVudD1cImhpZGVcIixlLl9fYmVnaW4odCxzLGkpLGUudGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3Quc3R5bGUuaGVpZ2h0PXQuc2Nyb2xsSGVpZ2h0K1wicHhcIixlLmFuaW1MaXN0ZW5lcj1mdW5jdGlvbigpe2UuX19lbmQodCxcInNob3dcIil9LHQuYWRkRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25lbmRcIixlLmFuaW1MaXN0ZW5lcil9LDEwMCl9LGxlYXZlOmZ1bmN0aW9uKHQsaSl7dmFyIHM7ZS5lbD10LCEwPT09ZS5hbmltYXRpbmc/ZS5fX2NsZWFudXAoKTooZS5sYXN0RXZlbnQ9XCJzaG93XCIscz10LnNjcm9sbEhlaWdodCksZS5fX2JlZ2luKHQscyxpKSxlLnRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LnN0eWxlLmhlaWdodD0wLGUuYW5pbUxpc3RlbmVyPWZ1bmN0aW9uKCl7ZS5fX2VuZCh0LFwiaGlkZVwiKX0sdC5hZGRFdmVudExpc3RlbmVyKFwidHJhbnNpdGlvbmVuZFwiLGUuYW5pbUxpc3RlbmVyKX0sMTAwKX19fSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LGV2ZW50TmFtZT1cInE6Y29sbGFwc2libGU6Y2xvc2VcIixRQ29sbGFwc2libGU9e25hbWU6XCJRQ29sbGFwc2libGVcIixtaXhpbnM6W01vZGVsVG9nZ2xlTWl4aW4sSXRlbU1peGluLHtwcm9wczpzdWJJdGVtUHJvcHN9XSxtb2RlbFRvZ2dsZTp7aGlzdG9yeTohMX0scHJvcHM6e2Rpc2FibGU6Qm9vbGVhbixwb3B1cDpCb29sZWFuLGluZGVudDpCb29sZWFuLGdyb3VwOlN0cmluZyxpY29uVG9nZ2xlOkJvb2xlYW4sY29sbGFwc2VJY29uOlN0cmluZyxvcGVuZWQ6Qm9vbGVhbixkdXJhdGlvbjpOdW1iZXIsaGVhZGVyU3R5bGU6W0FycmF5LFN0cmluZyxPYmplY3RdLGhlYWRlckNsYXNzOltBcnJheSxTdHJpbmcsT2JqZWN0XX0sY29tcHV0ZWQ6e2NsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm57XCJxLWNvbGxhcHNpYmxlLW9wZW5lZFwiOnRoaXMuc2hvd2luZyxcInEtY29sbGFwc2libGUtY2xvc2VkXCI6IXRoaXMuc2hvd2luZyxcInEtY29sbGFwc2libGUtcG9wdXAtb3BlbmVkXCI6dGhpcy5wb3B1cCYmdGhpcy5zaG93aW5nLFwicS1jb2xsYXBzaWJsZS1wb3B1cC1jbG9zZWRcIjp0aGlzLnBvcHVwJiYhdGhpcy5zaG93aW5nLFwicS1jb2xsYXBzaWJsZS1jdXJzb3ItcG9pbnRlclwiOiF0aGlzLnNlcGFyYXRlVG9nZ2xlLFwicS1pdGVtLWRhcmtcIjp0aGlzLmRhcmssXCJxLWl0ZW0tc2VwYXJhdG9yXCI6dGhpcy5zZXBhcmF0b3IsXCJxLWl0ZW0taW5zZXQtc2VwYXJhdG9yXCI6dGhpcy5pbnNldFNlcGFyYXRvcixkaXNhYmxlZDp0aGlzLmRpc2FibGV9fSxzZXBhcmF0ZVRvZ2dsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmljb25Ub2dnbGV8fHZvaWQgMCE9PXRoaXMudG99fSx3YXRjaDp7c2hvd2luZzpmdW5jdGlvbih0KXt0JiZ0aGlzLmdyb3VwJiZ0aGlzLiRyb290LiRlbWl0KGV2ZW50TmFtZSx0aGlzKX19LG1ldGhvZHM6e19fdG9nZ2xlSXRlbTpmdW5jdGlvbigpe3RoaXMuc2VwYXJhdGVUb2dnbGV8fHRoaXMudG9nZ2xlKCl9LF9fdG9nZ2xlSWNvbjpmdW5jdGlvbih0KXt0aGlzLnNlcGFyYXRlVG9nZ2xlJiYodCYmc3RvcEFuZFByZXZlbnQodCksdGhpcy50b2dnbGUoKSl9LF9fZXZlbnRIYW5kbGVyOmZ1bmN0aW9uKHQpe3RoaXMuZ3JvdXAmJnRoaXMhPT10JiZ0Lmdyb3VwPT09dGhpcy5ncm91cCYmdGhpcy5oaWRlKCl9LF9fZ2V0VG9nZ2xlU2lkZTpmdW5jdGlvbih0LGUpe3JldHVyblt0KFFJdGVtVGlsZSx7c2xvdDplP1wicmlnaHRcIjp2b2lkIDAsc3RhdGljQ2xhc3M6XCJjdXJzb3ItcG9pbnRlciB0cmFuc2l0aW9uLWdlbmVyaWMgcmVsYXRpdmUtcG9zaXRpb24gcS1jb2xsYXBzaWJsZS10b2dnbGUtaWNvblwiLGNsYXNzOntcInJvdGF0ZS0xODBcIjp0aGlzLnNob3dpbmcsaW52aXNpYmxlOnRoaXMuZGlzYWJsZX0sbmF0aXZlT246e2NsaWNrOnRoaXMuX190b2dnbGVJY29ufSxwcm9wczp7aWNvbjp0aGlzLmNvbGxhcHNlSWNvbnx8dGhpcy4kcS5pY29uLmNvbGxhcHNpYmxlLmljb259fSldfSxfX2dldEl0ZW1Qcm9wczpmdW5jdGlvbih0KXtyZXR1cm57cHJvcHM6dD97Y2ZnOnRoaXMuJHByb3BzfTp0aGlzLiRwcm9wcyxzdHlsZTp0aGlzLmhlYWRlclN0eWxlLGNsYXNzOnRoaXMuaGVhZGVyQ2xhc3MsbmF0aXZlT246e2NsaWNrOnRoaXMuX190b2dnbGVJdGVtfX19fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy4kcm9vdC4kb24oZXZlbnROYW1lLHRoaXMuX19ldmVudEhhbmRsZXIpLCh0aGlzLm9wZW5lZHx8dGhpcy52YWx1ZSkmJnRoaXMuc2hvdygpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy4kcm9vdC4kb2ZmKGV2ZW50TmFtZSx0aGlzLl9fZXZlbnRIYW5kbGVyKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KHRoaXMudGFnLHtzdGF0aWNDbGFzczpcInEtY29sbGFwc2libGUgcS1pdGVtLWRpdmlzaW9uIHJlbGF0aXZlLXBvc2l0aW9uXCIsY2xhc3M6dGhpcy5jbGFzc2VzfSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY29sbGFwc2libGUtaW5uZXJcIn0sW3RoaXMuJHNsb3RzLmhlYWRlcj90KFFJdGVtLHRoaXMuX19nZXRJdGVtUHJvcHMoKSxbdGhpcy4kc2xvdHMuaGVhZGVyLHQoUUl0ZW1TaWRlLHtwcm9wczp7cmlnaHQ6ITB9LHN0YXRpY0NsYXNzOlwicmVsYXRpdmUtcG9zaXRpb25cIn0sdGhpcy5fX2dldFRvZ2dsZVNpZGUodCkpXSk6dChRSXRlbVdyYXBwZXIsdGhpcy5fX2dldEl0ZW1Qcm9wcyghMCksdGhpcy5fX2dldFRvZ2dsZVNpZGUodCwhMCkpLHQoUVNsaWRlVHJhbnNpdGlvbix7cHJvcHM6e2R1cmF0aW9uOnRoaXMuZHVyYXRpb259fSxbdChcImRpdlwiLHtkaXJlY3RpdmVzOlt7bmFtZTpcInNob3dcIix2YWx1ZTp0aGlzLnNob3dpbmd9XX0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNvbGxhcHNpYmxlLXN1Yi1pdGVtIHJlbGF0aXZlLXBvc2l0aW9uXCIsY2xhc3M6e2luZGVudDp0aGlzLmluZGVudH19LHRoaXMuJHNsb3RzLmRlZmF1bHQpXSldKV0pXSl9fSxEaXNwbGF5TW9kZU1peGluPXtwcm9wczp7cG9wb3ZlcjpCb29sZWFuLG1vZGFsOkJvb2xlYW59LGNvbXB1dGVkOntpc1BvcG92ZXI6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMucG9wb3Zlcnx8IXRoaXMubW9kYWwmJih0aGlzLiRxLnBsYXRmb3JtLmlzLmRlc2t0b3AmJiF0aGlzLiRxLnBsYXRmb3JtLndpdGhpbi5pZnJhbWUpfX19O2Z1bmN0aW9uIGdldFBlcmNlbnRhZ2UodCxlLGkpe3ZhciBzPWJldHdlZW4oKHBvc2l0aW9uKHQpLmxlZnQtZS5sZWZ0KS9lLndpZHRoLDAsMSk7cmV0dXJuIGk/MS1zOnN9ZnVuY3Rpb24gbm90RGl2aWRlcyh0LGUpe3ZhciBpPWU/cGFyc2VGbG9hdCh0LnRvRml4ZWQoZSkpOnQ7cmV0dXJuIGkhPT1wYXJzZUludChpLDEwKX1mdW5jdGlvbiBnZXRNb2RlbCh0LGUsaSxzLG4pe3ZhciBvPWUrdCooaS1lKSxyPShvLWUpJXM7cmV0dXJuIG8rPShNYXRoLmFicyhyKT49cy8yPyhyPDA/LTE6MSkqczowKS1yLG4mJihvPXBhcnNlRmxvYXQoby50b0ZpeGVkKG4pKSksYmV0d2VlbihvLGUsaSl9dmFyIFNsaWRlck1peGluPXtkaXJlY3RpdmVzOntUb3VjaFBhbjpUb3VjaFBhbn0scHJvcHM6e21pbjp7dHlwZTpOdW1iZXIsZGVmYXVsdDoxfSxtYXg6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6NX0sc3RlcDp7dHlwZTpOdW1iZXIsZGVmYXVsdDoxfSxkZWNpbWFsczpOdW1iZXIsc25hcDpCb29sZWFuLG1hcmtlcnM6Qm9vbGVhbixsYWJlbDpCb29sZWFuLGxhYmVsQWx3YXlzOkJvb2xlYW4sc3F1YXJlOkJvb2xlYW4sY29sb3I6U3RyaW5nLGZpbGxIYW5kbGVBbHdheXM6Qm9vbGVhbixlcnJvcjpCb29sZWFuLHdhcm5pbmc6Qm9vbGVhbixyZWFkb25seTpCb29sZWFuLGRpc2FibGU6Qm9vbGVhbn0sY29tcHV0ZWQ6e2VkaXRhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZGlzYWJsZSYmIXRoaXMucmVhZG9ubHl9LGNsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD17ZGlzYWJsZWQ6dGhpcy5kaXNhYmxlLHJlYWRvbmx5OnRoaXMucmVhZG9ubHksXCJsYWJlbC1hbHdheXNcIjp0aGlzLmxhYmVsQWx3YXlzLFwiaGFzLWVycm9yXCI6dGhpcy5lcnJvcixcImhhcy13YXJuaW5nXCI6dGhpcy53YXJuaW5nfTtyZXR1cm4gdGhpcy5lcnJvcnx8dGhpcy53YXJuaW5nfHwhdGhpcy5jb2xvcnx8KHRbXCJ0ZXh0LVwiK3RoaXMuY29sb3JdPSEwKSx0fSxtYXJrZXJzTGVuOmZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMubWF4LXRoaXMubWluKS90aGlzLnN0ZXArMX0sbGFiZWxDb2xvcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVycm9yP1wibmVnYXRpdmVcIjp0aGlzLndhcm5pbmc/XCJ3YXJuaW5nXCI6dGhpcy5jb2xvcnx8XCJwcmltYXJ5XCJ9LGNvbXB1dGVkRGVjaW1hbHM6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5kZWNpbWFscz90aGlzLmRlY2ltYWxzfHwwOihTdHJpbmcodGhpcy5zdGVwKS50cmltKFwiMFwiKS5zcGxpdChcIi5cIilbMV18fFwiXCIpLmxlbmd0aH0sY29tcHV0ZWRTdGVwOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuZGVjaW1hbHM/MS9NYXRoLnBvdygxMCx0aGlzLmRlY2ltYWxzfHwwKTp0aGlzLnN0ZXB9fSxtZXRob2RzOntfX3BhbjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3QuaXNGaW5hbD90aGlzLmRyYWdnaW5nJiYodGhpcy5kcmFnVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe2UuZHJhZ2dpbmc9ITF9LDEwMCksdGhpcy5fX2VuZCh0LmV2dCksdGhpcy5fX3VwZGF0ZSghMCkpOnQuaXNGaXJzdD8oY2xlYXJUaW1lb3V0KHRoaXMuZHJhZ1RpbWVyKSx0aGlzLmRyYWdnaW5nPXRoaXMuX19nZXREcmFnZ2luZyh0LmV2dCkpOnRoaXMuZHJhZ2dpbmcmJih0aGlzLl9fbW92ZSh0LmV2dCksdGhpcy5fX3VwZGF0ZSgpKX0sX191cGRhdGU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztKU09OLnN0cmluZ2lmeSh0aGlzLm1vZGVsKSE9PUpTT04uc3RyaW5naWZ5KHRoaXMudmFsdWUpJiYodGhpcy4kZW1pdChcImlucHV0XCIsdGhpcy5tb2RlbCksdCYmdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtKU09OLnN0cmluZ2lmeShlLm1vZGVsKSE9PUpTT04uc3RyaW5naWZ5KGUudmFsdWUpJiZlLiRlbWl0KFwiY2hhbmdlXCIsZS5tb2RlbCl9KSl9LF9fY2xpY2s6ZnVuY3Rpb24odCl7aWYoIXRoaXMuZHJhZ2dpbmcpe3ZhciBlPXRoaXMuX19nZXREcmFnZ2luZyh0KTtlJiYodGhpcy5fX2VuZCh0LGUpLHRoaXMuX191cGRhdGUoITApKX19LF9fZ2V0TWFya2VyczpmdW5jdGlvbih0KXtpZih0aGlzLm1hcmtlcnMpe2Zvcih2YXIgZT1bXSxpPTA7aTx0aGlzLm1hcmtlcnNMZW47aSsrKWUucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zbGlkZXItbWFya1wiLGtleTpcIm1hcmtlclwiK2ksc3R5bGU6e2xlZnQ6MTAwKmkqdGhpcy5zdGVwLyh0aGlzLm1heC10aGlzLm1pbikrXCIlXCJ9fSkpO3JldHVybiBlfX19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLl9fdmFsaWRhdGVQcm9wcygpfSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXNsaWRlciBub24tc2VsZWN0YWJsZVwiLGNsYXNzOnRoaXMuY2xhc3Nlcyxvbjp0aGlzLmVkaXRhYmxlP3tjbGljazp0aGlzLl9fY2xpY2t9Om51bGwsZGlyZWN0aXZlczp0aGlzLmVkaXRhYmxlP1t7bmFtZTpcInRvdWNoLXBhblwiLG1vZGlmaWVyczp7aG9yaXpvbnRhbDohMCxwcmV2ZW50OiEwLHN0b3A6ITB9LHZhbHVlOnRoaXMuX19wYW59XTpudWxsfSxbdChcImRpdlwiLHtyZWY6XCJoYW5kbGVcIixzdGF0aWNDbGFzczpcInEtc2xpZGVyLWhhbmRsZS1jb250YWluZXJcIn0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXNsaWRlci10cmFja1wifSksdGhpcy5fX2dldE1hcmtlcnModCldLmNvbmNhdCh0aGlzLl9fZ2V0Q29udGVudCh0KSkpXSl9fSxRU2xpZGVyPXtuYW1lOlwiUVNsaWRlclwiLG1peGluczpbU2xpZGVyTWl4aW5dLHByb3BzOnt2YWx1ZTpOdW1iZXIsbGFiZWxWYWx1ZTpTdHJpbmd9LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57bW9kZWw6dGhpcy52YWx1ZSxkcmFnZ2luZzohMSxjdXJyZW50UGVyY2VudGFnZToodGhpcy52YWx1ZS10aGlzLm1pbikvKHRoaXMubWF4LXRoaXMubWluKX19LGNvbXB1dGVkOntwZXJjZW50YWdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc25hcD8odGhpcy5tb2RlbC10aGlzLm1pbikvKHRoaXMubWF4LXRoaXMubWluKSoxMDArXCIlXCI6MTAwKnRoaXMuY3VycmVudFBlcmNlbnRhZ2UrXCIlXCJ9LGRpc3BsYXlWYWx1ZTpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLmxhYmVsVmFsdWU/dGhpcy5sYWJlbFZhbHVlOnRoaXMubW9kZWx9fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5kcmFnZ2luZ3x8KHQ8dGhpcy5taW4/dGhpcy5tb2RlbD10aGlzLm1pbjp0PnRoaXMubWF4P3RoaXMubW9kZWw9dGhpcy5tYXg6dGhpcy5tb2RlbD10LHRoaXMuY3VycmVudFBlcmNlbnRhZ2U9KHRoaXMubW9kZWwtdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbikpfSxtaW46ZnVuY3Rpb24odCl7dGhpcy5tb2RlbDx0P3RoaXMubW9kZWw9dDp0aGlzLiRuZXh0VGljayh0aGlzLl9fdmFsaWRhdGVQcm9wcyl9LG1heDpmdW5jdGlvbih0KXt0aGlzLm1vZGVsPnQ/dGhpcy5tb2RlbD10OnRoaXMuJG5leHRUaWNrKHRoaXMuX192YWxpZGF0ZVByb3BzKX0sc3RlcDpmdW5jdGlvbigpe3RoaXMuJG5leHRUaWNrKHRoaXMuX192YWxpZGF0ZVByb3BzKX19LG1ldGhvZHM6e19fZ2V0RHJhZ2dpbmc6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy4kcmVmcy5oYW5kbGU7cmV0dXJue2xlZnQ6ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0LHdpZHRoOmUub2Zmc2V0V2lkdGh9fSxfX21vdmU6ZnVuY3Rpb24odCl7dmFyIGU9Z2V0UGVyY2VudGFnZSh0LHRoaXMuZHJhZ2dpbmcsdGhpcy4kcS5pMThuLnJ0bCk7dGhpcy5jdXJyZW50UGVyY2VudGFnZT1lLHRoaXMubW9kZWw9Z2V0TW9kZWwoZSx0aGlzLm1pbix0aGlzLm1heCx0aGlzLnN0ZXAsdGhpcy5jb21wdXRlZERlY2ltYWxzKX0sX19lbmQ6ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT10aGlzLmRyYWdnaW5nKTt2YXIgaT1nZXRQZXJjZW50YWdlKHQsZSx0aGlzLiRxLmkxOG4ucnRsKTt0aGlzLm1vZGVsPWdldE1vZGVsKGksdGhpcy5taW4sdGhpcy5tYXgsdGhpcy5zdGVwLHRoaXMuY29tcHV0ZWREZWNpbWFscyksdGhpcy5jdXJyZW50UGVyY2VudGFnZT0odGhpcy5tb2RlbC10aGlzLm1pbikvKHRoaXMubWF4LXRoaXMubWluKX0sX19vbktleURvd246ZnVuY3Rpb24odCl7dmFyIGU9dC5rZXlDb2RlO2lmKHRoaXMuZWRpdGFibGUmJlszNyw0MCwzOSwzOF0uaW5jbHVkZXMoZSkpe3N0b3BBbmRQcmV2ZW50KHQpO3ZhciBpPXRoaXMuY29tcHV0ZWREZWNpbWFscyxzPXQuY3RybEtleT8xMCp0aGlzLmNvbXB1dGVkU3RlcDp0aGlzLmNvbXB1dGVkU3RlcCxuPVszNyw0MF0uaW5jbHVkZXMoZSk/LXM6cyxvPWk/cGFyc2VGbG9hdCgodGhpcy5tb2RlbCtuKS50b0ZpeGVkKGkpKTp0aGlzLm1vZGVsK247dGhpcy5tb2RlbD1iZXR3ZWVuKG8sdGhpcy5taW4sdGhpcy5tYXgpLHRoaXMuY3VycmVudFBlcmNlbnRhZ2U9KHRoaXMubW9kZWwtdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbiksdGhpcy5fX3VwZGF0ZSgpfX0sX19vbktleVVwOmZ1bmN0aW9uKHQpe3ZhciBlPXQua2V5Q29kZTt0aGlzLmVkaXRhYmxlJiZbMzcsNDAsMzksMzhdLmluY2x1ZGVzKGUpJiZ0aGlzLl9fdXBkYXRlKCEwKX0sX192YWxpZGF0ZVByb3BzOmZ1bmN0aW9uKCl7dGhpcy5taW4+PXRoaXMubWF4P2NvbnNvbGUuZXJyb3IoXCJSYW5nZSBlcnJvcjogbWluID49IG1heFwiLHRoaXMuJGVsLHRoaXMubWluLHRoaXMubWF4KTpub3REaXZpZGVzKCh0aGlzLm1heC10aGlzLm1pbikvdGhpcy5zdGVwLHRoaXMuY29tcHV0ZWREZWNpbWFscykmJmNvbnNvbGUuZXJyb3IoXCJSYW5nZSBlcnJvcjogc3RlcCBtdXN0IGJlIGEgZGl2aXNvciBvZiBtYXggLSBtaW5cIix0aGlzLm1pbix0aGlzLm1heCx0aGlzLnN0ZXAsdGhpcy5jb21wdXRlZERlY2ltYWxzKX0sX19nZXRDb250ZW50OmZ1bmN0aW9uKHQpe3ZhciBlO3JldHVyblt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zbGlkZXItdHJhY2sgYWN0aXZlLXRyYWNrXCIsc3R5bGU6e3dpZHRoOnRoaXMucGVyY2VudGFnZX0sY2xhc3M6e1wibm8tdHJhbnNpdGlvblwiOnRoaXMuZHJhZ2dpbmcsXCJoYW5kbGUtYXQtbWluaW11bVwiOnRoaXMubW9kZWw9PT10aGlzLm1pbn19KSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zbGlkZXItaGFuZGxlXCIsc3R5bGU6KGU9e30sZVt0aGlzLiRxLmkxOG4ucnRsP1wicmlnaHRcIjpcImxlZnRcIl09dGhpcy5wZXJjZW50YWdlLGUuYm9yZGVyUmFkaXVzPXRoaXMuc3F1YXJlP1wiMFwiOlwiNTAlXCIsZSksY2xhc3M6e2RyYWdnaW5nOnRoaXMuZHJhZ2dpbmcsXCJoYW5kbGUtYXQtbWluaW11bVwiOiF0aGlzLmZpbGxIYW5kbGVBbHdheXMmJnRoaXMubW9kZWw9PT10aGlzLm1pbn0sYXR0cnM6e3RhYmluZGV4OnRoaXMuJHEucGxhdGZvcm0uaXMuZGVza3RvcD90aGlzLmVkaXRhYmxlPzA6LTE6dm9pZCAwfSxvbjp7a2V5ZG93bjp0aGlzLl9fb25LZXlEb3duLGtleXVwOnRoaXMuX19vbktleVVwfX0sW3RoaXMubGFiZWx8fHRoaXMubGFiZWxBbHdheXM/dChRQ2hpcCx7c3RhdGljQ2xhc3M6XCJxLXNsaWRlci1sYWJlbCBuby1wb2ludGVyLWV2ZW50c1wiLGNsYXNzOntcImxhYmVsLWFsd2F5c1wiOnRoaXMubGFiZWxBbHdheXN9LHByb3BzOntwb2ludGluZzpcImRvd25cIixzcXVhcmU6ITAsZGVuc2U6ITAsY29sb3I6dGhpcy5sYWJlbENvbG9yfX0sW3RoaXMuZGlzcGxheVZhbHVlXSk6bnVsbCx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zbGlkZXItcmluZ1wifSldKV19fX07ZnVuY3Rpb24gdGhyb3R0bGUodCxlKXt2b2lkIDA9PT1lJiYoZT0yNTApO3ZhciBpLHM9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBuPVtdLG89YXJndW1lbnRzLmxlbmd0aDtvLS07KW5bb109YXJndW1lbnRzW29dO3JldHVybiBzP2k6KHM9ITAsaT10LmFwcGx5KHRoaXMsbiksc2V0VGltZW91dChmdW5jdGlvbigpe3M9ITF9LGUpLGkpfX1mdW5jdGlvbiBjbG9uZSh0KXt2YXIgZT1KU09OLnN0cmluZ2lmeSh0KTtpZihlKXJldHVybiBKU09OLnBhcnNlKGUpfXZhciBRQ29sb3JQaWNrZXI9e25hbWU6XCJRQ29sb3JQaWNrZXJcIixtaXhpbnM6W1BhcmVudEZpZWxkTWl4aW5dLGRpcmVjdGl2ZXM6e1RvdWNoUGFuOlRvdWNoUGFufSxwcm9wczp7dmFsdWU6W1N0cmluZyxPYmplY3RdLGRlZmF1bHRWYWx1ZTp7dHlwZTpbU3RyaW5nLE9iamVjdF0sZGVmYXVsdDpudWxsfSxmb3JtYXRNb2RlbDp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImF1dG9cIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1wiYXV0b1wiLFwiaGV4XCIsXCJyZ2JcIixcImhleGFcIixcInJnYmFcIl0uaW5jbHVkZXModCl9fSxkaXNhYmxlOkJvb2xlYW4scmVhZG9ubHk6Qm9vbGVhbixkYXJrOkJvb2xlYW59LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57dmlldzp0aGlzLnZhbHVlJiZcInN0cmluZ1wiIT10eXBlb2YgdGhpcy52YWx1ZT9cInJnYlwiOlwiaGV4XCIsbW9kZWw6dGhpcy5fX3BhcnNlTW9kZWwodGhpcy52YWx1ZXx8dGhpcy5kZWZhdWx0VmFsdWUpfX0sd2F0Y2g6e3ZhbHVlOntoYW5kbGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19wYXJzZU1vZGVsKHR8fHRoaXMuZGVmYXVsdFZhbHVlKTtlLmhleCE9PXRoaXMubW9kZWwuaGV4JiYodGhpcy5tb2RlbD1lKX0sZGVlcDohMH19LGNvbXB1dGVkOntmb3JjZUhleDpmdW5jdGlvbigpe3JldHVyblwiYXV0b1wiPT09dGhpcy5mb3JtYXRNb2RlbD9udWxsOnRoaXMuZm9ybWF0TW9kZWwuaW5kZXhPZihcImhleFwiKT4tMX0sZm9yY2VBbHBoYTpmdW5jdGlvbigpe3JldHVyblwiYXV0b1wiPT09dGhpcy5mb3JtYXRNb2RlbD9udWxsOnRoaXMuZm9ybWF0TW9kZWwuaW5kZXhPZihcImFcIik+LTF9LGlzSGV4OmZ1bmN0aW9uKCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHRoaXMudmFsdWV9LGlzT3V0cHV0SGV4OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT10aGlzLmZvcmNlSGV4P3RoaXMuZm9yY2VIZXg6dGhpcy5pc0hleH0sZWRpdGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5kaXNhYmxlJiYhdGhpcy5yZWFkb25seX0saGFzQWxwaGE6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9PXRoaXMuZm9yY2VBbHBoYT90aGlzLmZvcmNlQWxwaGE6dGhpcy5pc0hleD90aGlzLnZhbHVlLnRyaW0oKS5sZW5ndGg+Nzp0aGlzLnZhbHVlJiZ2b2lkIDAhPT10aGlzLnZhbHVlLmF9LHN3YXRjaENvbG9yOmZ1bmN0aW9uKCl7cmV0dXJue2JhY2tncm91bmRDb2xvcjpcInJnYmEoXCIrdGhpcy5tb2RlbC5yK1wiLFwiK3RoaXMubW9kZWwuZytcIixcIit0aGlzLm1vZGVsLmIrXCIsXCIrKHZvaWQgMD09PXRoaXMubW9kZWwuYT8xMDA6dGhpcy5tb2RlbC5hKS8xMDArXCIpXCJ9fSxzYXR1cmF0aW9uU3R5bGU6ZnVuY3Rpb24oKXtyZXR1cm57YmFja2dyb3VuZDpcImhzbChcIit0aGlzLm1vZGVsLmgrXCIsMTAwJSw1MCUpXCJ9fSxzYXR1cmF0aW9uUG9pbnRlclN0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuKHQ9e3RvcDoxMDEtdGhpcy5tb2RlbC52K1wiJVwifSlbdGhpcy4kcS5pMThuLnJ0bD9cInJpZ2h0XCI6XCJsZWZ0XCJdPXRoaXMubW9kZWwucytcIiVcIix0fSxpbnB1dHNBcnJheTpmdW5jdGlvbigpe3ZhciB0PVtcInJcIixcImdcIixcImJcIl07cmV0dXJuIHRoaXMuaGFzQWxwaGEmJnQucHVzaChcImFcIiksdH0sX19uZWVkc0JvcmRlcjpmdW5jdGlvbigpe3JldHVybiEwfX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuX19zYXR1cmF0aW9uQ2hhbmdlPXRocm90dGxlKHRoaXMuX19zYXR1cmF0aW9uQ2hhbmdlLDIwKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jb2xvclwiLGNsYXNzOntkaXNhYmxlZDp0aGlzLmRpc2FibGUsXCJxLWNvbG9yLWRhcmtcIjp0aGlzLmRhcmt9fSxbdGhpcy5fX2dldFNhdHVyYXRpb24odCksdGhpcy5fX2dldFNsaWRlcnModCksdGhpcy5fX2dldElucHV0cyh0KV0pfSxtZXRob2RzOntfX2dldFNhdHVyYXRpb246ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7cmVmOlwic2F0dXJhdGlvblwiLHN0YXRpY0NsYXNzOlwicS1jb2xvci1zYXR1cmF0aW9uIG5vbi1zZWxlY3RhYmxlIHJlbGF0aXZlLXBvc2l0aW9uIG92ZXJmbG93LWhpZGRlbiBjdXJzb3ItcG9pbnRlclwiLHN0eWxlOnRoaXMuc2F0dXJhdGlvblN0eWxlLGNsYXNzOntyZWFkb25seTohdGhpcy5lZGl0YWJsZX0sb246dGhpcy5lZGl0YWJsZT97Y2xpY2s6dGhpcy5fX3NhdHVyYXRpb25DbGlja306bnVsbCxkaXJlY3RpdmVzOnRoaXMuZWRpdGFibGU/W3tuYW1lOlwidG91Y2gtcGFuXCIsbW9kaWZpZXJzOnttaWdodFByZXZlbnQ6ITB9LHZhbHVlOnRoaXMuX19zYXR1cmF0aW9uUGFufV06bnVsbH0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNvbG9yLXNhdHVyYXRpb24td2hpdGUgYWJzb2x1dGUtZnVsbFwifSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY29sb3Itc2F0dXJhdGlvbi1ibGFjayBhYnNvbHV0ZS1mdWxsXCJ9KSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiYWJzb2x1dGVcIixzdHlsZTp0aGlzLnNhdHVyYXRpb25Qb2ludGVyU3R5bGV9LFt2b2lkIDAhPT10aGlzLm1vZGVsLmhleD90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jb2xvci1zYXR1cmF0aW9uLWNpcmNsZVwifSk6bnVsbF0pXSl9LF9fZ2V0U2xpZGVyczpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jb2xvci1zbGlkZXJzIHJvdyBpdGVtcy1jZW50ZXJcIn0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNvbG9yLXN3YXRjaCBxLW10LXNtIHEtbWwtbWQgcS1tYi1zbSBub24tc2VsZWN0YWJsZSBvdmVyZmxvdy1oaWRkZW5cIn0sW3QoXCJkaXZcIix7c3R5bGU6dGhpcy5zd2F0Y2hDb2xvcixzdGF0aWNDbGFzczpcImZpdFwifSldKSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sIHEtcGEtc21cIn0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNvbG9yLWh1ZSBub24tc2VsZWN0YWJsZVwifSxbdChRU2xpZGVyLHtwcm9wczp7dmFsdWU6dGhpcy5tb2RlbC5oLGNvbG9yOlwid2hpdGVcIixtaW46MCxtYXg6MzYwLGZpbGxIYW5kbGVBbHdheXM6ITAscmVhZG9ubHk6IXRoaXMuZWRpdGFibGV9LG9uOntpbnB1dDp0aGlzLl9fb25IdWVDaGFuZ2UsZHJhZ2VuZDpmdW5jdGlvbih0KXtyZXR1cm4gZS5fX29uSHVlQ2hhbmdlKHQsITApfX19KV0pLHRoaXMuaGFzQWxwaGE/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY29sb3ItYWxwaGEgbm9uLXNlbGVjdGFibGVcIn0sW3QoUVNsaWRlcix7cHJvcHM6e3ZhbHVlOnRoaXMubW9kZWwuYSxjb2xvcjpcIndoaXRlXCIsbWluOjAsbWF4OjEwMCxmaWxsSGFuZGxlQWx3YXlzOiEwLHJlYWRvbmx5OiF0aGlzLmVkaXRhYmxlfSxvbjp7aW5wdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGUuX19vbk51bWVyaWNDaGFuZ2Uoe3RhcmdldDp7dmFsdWU6dH19LFwiYVwiLDEwMCl9LGRyYWdlbmQ6ZnVuY3Rpb24odCl7cmV0dXJuIGUuX19vbk51bWVyaWNDaGFuZ2Uoe3RhcmdldDp7dmFsdWU6dH19LFwiYVwiLDEwMCwhMCl9fX0pXSk6bnVsbF0pXSl9LF9fZ2V0TnVtZXJpY0lucHV0czpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0aGlzLmlucHV0c0FycmF5Lm1hcChmdW5jdGlvbihpKXt2YXIgcz1cImFcIj09PWk/MTAwOjI1NTtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbCBxLWNvbG9yLXBhZGRpbmdcIn0sW3QoXCJpbnB1dFwiLHthdHRyczp7dHlwZTpcIm51bWJlclwiLG1pbjowLG1heDpzLHJlYWRvbmx5OiFlLmVkaXRhYmxlLHRhYmluZGV4OmUuZWRpdGFibGU/MDotMX0sc3RhdGljQ2xhc3M6XCJmdWxsLXdpZHRoIHRleHQtY2VudGVyIHEtbm8taW5wdXQtc3Bpbm5lclwiLGRvbVByb3BzOnt2YWx1ZTp2b2lkIDA9PT1lLm1vZGVsLmhleD9cIlwiOk1hdGgucm91bmQoZS5tb2RlbFtpXSl9LG9uOntpbnB1dDpmdW5jdGlvbih0KXtyZXR1cm4gZS5fX29uTnVtZXJpY0NoYW5nZSh0LGkscyl9LGJsdXI6ZnVuY3Rpb24odCl7cmV0dXJuIGUuZWRpdGFibGUmJmUuX19vbk51bWVyaWNDaGFuZ2UodCxpLHMsITApfX19KSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jb2xvci1sYWJlbCB0ZXh0LWNlbnRlciB1cHBlcmNhc2VcIn0sW2ldKV0pfSl9LF9fZ2V0SW5wdXRzOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNvbG9yLWlucHV0cyByb3cgaXRlbXMtY2VudGVyIHEtcHgtc20gcS1wYi1zbVwifSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbCBxLW1yLXNtIHJvdyBuby13cmFwXCJ9LFwiaGV4XCI9PT10aGlzLnZpZXc/W3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2xcIn0sW3QoXCJpbnB1dFwiLHtkb21Qcm9wczp7dmFsdWU6dGhpcy5tb2RlbC5oZXh9LGF0dHJzOntyZWFkb25seTohdGhpcy5lZGl0YWJsZSx0YWJpbmRleDp0aGlzLmVkaXRhYmxlPzA6LTF9LG9uOntjaGFuZ2U6dGhpcy5fX29uSGV4Q2hhbmdlLGJsdXI6ZnVuY3Rpb24odCl7cmV0dXJuIGUuZWRpdGFibGUmJmUuX19vbkhleENoYW5nZSh0LCEwKX19LHN0YXRpY0NsYXNzOlwiZnVsbC13aWR0aCB0ZXh0LWNlbnRlciB1cHBlcmNhc2VcIn0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNvbG9yLWxhYmVsIHRleHQtY2VudGVyXCJ9LFtcIkhFWFwiKyh0aGlzLmhhc0FscGhhP1wiIC8gQVwiOlwiXCIpXSldKV06dGhpcy5fX2dldE51bWVyaWNJbnB1dHModCkpLHQoXCJkaXZcIixbdChRQnRuLHtwcm9wczp7ZmxhdDohMCxkaXNhYmxlOnRoaXMuZGlzYWJsZX0sb246e2NsaWNrOnRoaXMuX19uZXh0SW5wdXRWaWV3fSxzdGF0aWNDbGFzczpcInEtcGEtbm9uZVwifSxbdChcInN2Z1wiLHthdHRyczp7dmlld0JveDpcIjAgMCAyNCAyNFwifSxzdHlsZTp7d2lkdGg6XCIyNHB4XCIsaGVpZ2h0OlwiMjRweFwifX0sW3QoXCJwYXRoXCIse2F0dHJzOntmaWxsOlwiY3VycmVudENvbG9yXCIsZDpcIk0xMiwxOC4xN0w4LjgzLDE1TDcuNDIsMTYuNDFMMTIsMjFMMTYuNTksMTYuNDFMMTUuMTcsMTVNMTIsNS44M0wxNS4xNyw5TDE2LjU4LDcuNTlMMTIsM0w3LjQxLDcuNTlMOC44Myw5TDEyLDUuODNaXCJ9fSldKV0pXSldKX0sX19vblNhdHVyYXRpb25DaGFuZ2U6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXRoaXMuJHJlZnMuc2F0dXJhdGlvbjtpZihzKXt2YXIgbj1zLmNsaWVudFdpZHRoLG89cy5jbGllbnRIZWlnaHQscj1zLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGE9TWF0aC5taW4obixNYXRoLm1heCgwLHQtci5sZWZ0KSk7dGhpcy4kcS5pMThuLnJ0bCYmKGE9bi1hKTt2YXIgbD1NYXRoLm1pbihvLE1hdGgubWF4KDAsZS1yLnRvcCkpLGM9TWF0aC5yb3VuZCgxMDAqYS9uKSxoPU1hdGgucm91bmQoMTAwKk1hdGgubWF4KDAsTWF0aC5taW4oMSwtbC9vKzEpKSksdT1oc3ZUb1JnYih7aDp0aGlzLm1vZGVsLmgsczpjLHY6aCxhOnRoaXMuaGFzQWxwaGE/dGhpcy5tb2RlbC5hOnZvaWQgMH0pO3RoaXMubW9kZWwucz1jLHRoaXMubW9kZWwudj1oLHRoaXMuX191cGRhdGUodSxyZ2JUb0hleCh1KSxpKX19LF9fb25IdWVDaGFuZ2U6ZnVuY3Rpb24odCxlKXt2YXIgaT1oc3ZUb1JnYih7aDp0PU1hdGgucm91bmQodCksczp0aGlzLm1vZGVsLnMsdjp0aGlzLm1vZGVsLnYsYTp0aGlzLmhhc0FscGhhP3RoaXMubW9kZWwuYTp2b2lkIDB9KTt0aGlzLm1vZGVsLmg9dCx0aGlzLl9fdXBkYXRlKGkscmdiVG9IZXgoaSksZSl9LF9fb25OdW1lcmljQ2hhbmdlOmZ1bmN0aW9uKHQsZSxpLHMpe3ZhciBuPU51bWJlcih0LnRhcmdldC52YWx1ZSk7aWYoIWlzTmFOKG4pKWlmKChuPU1hdGguZmxvb3IobikpPDB8fG4+aSlzJiZ0aGlzLiRmb3JjZVVwZGF0ZSgpO2Vsc2V7dmFyIG89e3I6XCJyXCI9PT1lP246dGhpcy5tb2RlbC5yLGc6XCJnXCI9PT1lP246dGhpcy5tb2RlbC5nLGI6XCJiXCI9PT1lP246dGhpcy5tb2RlbC5iLGE6dGhpcy5oYXNBbHBoYT9cImFcIj09PWU/bjp0aGlzLm1vZGVsLmE6dm9pZCAwfTtpZihcImFcIiE9PWUpe3ZhciByPXJnYlRvSHN2KG8pO3RoaXMubW9kZWwuaD1yLmgsdGhpcy5tb2RlbC5zPXIucyx0aGlzLm1vZGVsLnY9ci52fXRoaXMuX191cGRhdGUobyxyZ2JUb0hleChvKSxzKX19LF9fb25IZXhDaGFuZ2U6ZnVuY3Rpb24odCxlKXt2YXIgaT10LnRhcmdldC52YWx1ZSxzPWkubGVuZ3RoLG49dGhpcy5oYXNBbHBoYT9bNSw5XTpbNCw3XTtpZihzPT09blswXXx8cz09PW5bMV0pe3ZhciBvPWhleFRvUmdiKGkpLHI9cmdiVG9Ic3Yobyk7dGhpcy5tb2RlbC5oPXIuaCx0aGlzLm1vZGVsLnM9ci5zLHRoaXMubW9kZWwudj1yLnYsdGhpcy5fX3VwZGF0ZShvLGksZSl9ZWxzZSBlJiZ0aGlzLiRmb3JjZVVwZGF0ZSgpfSxfX3VwZGF0ZTpmdW5jdGlvbih0LGUsaSl7dmFyIHM9dGhpcyxuPXRoaXMuaXNPdXRwdXRIZXg/ZTp0O3RoaXMubW9kZWwuaGV4PWUsdGhpcy5tb2RlbC5yPXQucix0aGlzLm1vZGVsLmc9dC5nLHRoaXMubW9kZWwuYj10LmIsdGhpcy5tb2RlbC5hPXRoaXMuaGFzQWxwaGE/dC5hOnZvaWQgMCx0aGlzLiRlbWl0KFwiaW5wdXRcIixuKSx0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe2kmJkpTT04uc3RyaW5naWZ5KG4pIT09SlNPTi5zdHJpbmdpZnkocy52YWx1ZSkmJnMuJGVtaXQoXCJjaGFuZ2VcIixuKX0pfSxfX25leHRJbnB1dFZpZXc6ZnVuY3Rpb24oKXt0aGlzLnZpZXc9XCJoZXhcIj09PXRoaXMudmlldz9cInJnYmFcIjpcImhleFwifSxfX3BhcnNlTW9kZWw6ZnVuY3Rpb24odCl7aWYobnVsbD09PXR8fHZvaWQgMD09PXQpcmV0dXJue2g6MCxzOjAsdjowLHI6MCxnOjAsYjowLGhleDp2b2lkIDAsYToxMDB9O3ZhciBlPVwic3RyaW5nXCI9PXR5cGVvZiB0P2hleFRvUmdiKHQudHJpbSgpKTpjbG9uZSh0KTtyZXR1cm4gdGhpcy5mb3JjZUFscGhhPT09KHZvaWQgMD09PWUuYSkmJihlLmE9dGhpcy5mb3JjZUFscGhhPzEwMDp2b2lkIDApLGUuaGV4PXJnYlRvSGV4KGUpLE9iamVjdC5hc3NpZ24oe2E6MTAwfSxlLHJnYlRvSHN2KGUpKX0sX19zYXR1cmF0aW9uUGFuOmZ1bmN0aW9uKHQpe3QuaXNGaW5hbD90aGlzLl9fZHJhZ1N0b3AodCk6dC5pc0ZpcnN0P3RoaXMuX19kcmFnU3RhcnQodCk6dGhpcy5fX2RyYWdNb3ZlKHQpfSxfX2RyYWdTdGFydDpmdW5jdGlvbih0KXtzdG9wQW5kUHJldmVudCh0LmV2dCksdGhpcy5zYXR1cmF0aW9uRHJhZ2dpbmc9ITAsdGhpcy5fX3NhdHVyYXRpb25DaGFuZ2UodCl9LF9fZHJhZ01vdmU6ZnVuY3Rpb24odCl7dGhpcy5zYXR1cmF0aW9uRHJhZ2dpbmcmJihzdG9wQW5kUHJldmVudCh0LmV2dCksdGhpcy5fX3NhdHVyYXRpb25DaGFuZ2UodCkpfSxfX2RyYWdTdG9wOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7c3RvcEFuZFByZXZlbnQodC5ldnQpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLnNhdHVyYXRpb25EcmFnZ2luZz0hMX0sMTAwKSx0aGlzLl9fb25TYXR1cmF0aW9uQ2hhbmdlKHQucG9zaXRpb24ubGVmdCx0LnBvc2l0aW9uLnRvcCwhMCl9LF9fc2F0dXJhdGlvbkNoYW5nZTpmdW5jdGlvbih0KXt0aGlzLl9fb25TYXR1cmF0aW9uQ2hhbmdlKHQucG9zaXRpb24ubGVmdCx0LnBvc2l0aW9uLnRvcCl9LF9fc2F0dXJhdGlvbkNsaWNrOmZ1bmN0aW9uKHQpe3RoaXMuc2F0dXJhdGlvbkRyYWdnaW5nfHx0aGlzLl9fb25TYXR1cmF0aW9uQ2hhbmdlKHQucGFnZVgtd2luZG93LnBhZ2VYT2Zmc2V0LHQucGFnZVktd2luZG93LnBhZ2VZT2Zmc2V0LCEwKX19fSxjb250ZW50Q3NzPXttYXhXaWR0aDpcIjk1dndcIixtYXhIZWlnaHQ6XCI5OHZoXCJ9LFFDb2xvcj17bmFtZTpcIlFDb2xvclwiLG1peGluczpbRnJhbWVNaXhpbixEaXNwbGF5TW9kZU1peGluXSxwcm9wczp7dmFsdWU6e3JlcXVpcmVkOiEwfSxjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInByaW1hcnlcIn0sZGVmYXVsdFZhbHVlOnt0eXBlOltTdHJpbmcsT2JqZWN0XSxkZWZhdWx0Om51bGx9LGZvcm1hdE1vZGVsOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiYXV0b1wiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJhdXRvXCIsXCJoZXhcIixcInJnYlwiLFwiaGV4YVwiLFwicmdiYVwiXS5pbmNsdWRlcyh0KX19LGRpc3BsYXlWYWx1ZTpTdHJpbmcsb2tMYWJlbDpTdHJpbmcsY2FuY2VsTGFiZWw6U3RyaW5nfSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24odCl7IXRoaXMuZGlzYWJsZSYmdGhpcy5pc1BvcG92ZXImJih0aGlzLm1vZGVsPWNsb25lKHQpKX19LGRhdGE6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmlzUG9wb3Zlcj97fTp7dHJhbnNpdGlvbjpcInEtbW9kYWxcIn07cmV0dXJuIHQuZm9jdXNlZD0hMSx0Lm1vZGVsPWNsb25lKHRoaXMudmFsdWV8fHRoaXMuZGVmYXVsdFZhbHVlKSx0fSxjb21wdXRlZDp7YWN0dWFsVmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kaXNwbGF5VmFsdWU/dGhpcy5kaXNwbGF5VmFsdWU6dGhpcy52YWx1ZT9cInN0cmluZ1wiPT10eXBlb2YgdGhpcy52YWx1ZT90aGlzLnZhbHVlOlwicmdiXCIrKHZvaWQgMCE9PXRoaXMudmFsdWUuYT9cImFcIjpcIlwiKStcIihcIit0aGlzLnZhbHVlLnIrXCIsXCIrdGhpcy52YWx1ZS5nK1wiLFwiK3RoaXMudmFsdWUuYisodm9pZCAwIT09dGhpcy52YWx1ZS5hP1wiLFwiK3RoaXMudmFsdWUuYS8xMDA6XCJcIikrXCIpXCI6XCJcIn0sY29tcHV0ZWRDbGVhclZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PXRoaXMuY2xlYXJWYWx1ZT90aGlzLmRlZmF1bHRWYWx1ZTp0aGlzLmNsZWFyVmFsdWV9LGlzQ2xlYXJhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRpdGFibGUmJnRoaXMuY2xlYXJhYmxlJiZKU09OLnN0cmluZ2lmeSh0aGlzLmNvbXB1dGVkQ2xlYXJWYWx1ZSkhPT1KU09OLnN0cmluZ2lmeSh0aGlzLnZhbHVlKX0sbW9kYWxCdG5Db2xvcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbG9yfX0sbWV0aG9kczp7dG9nZ2xlOmZ1bmN0aW9uKCl7dGhpcy4kcmVmcy5wb3B1cCYmdGhpc1t0aGlzLiRyZWZzLnBvcHVwLnNob3dpbmc/XCJoaWRlXCI6XCJzaG93XCJdKCl9LHNob3c6ZnVuY3Rpb24oKXtpZighdGhpcy5kaXNhYmxlKXJldHVybiB0aGlzLl9fc2V0TW9kZWwodGhpcy52YWx1ZXx8dGhpcy5kZWZhdWx0VmFsdWUpLHRoaXMuJHJlZnMucG9wdXAuc2hvdygpfSxoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHJlZnMucG9wdXA/dGhpcy4kcmVmcy5wb3B1cC5oaWRlKCk6UHJvbWlzZS5yZXNvbHZlKCl9LF9faGFuZGxlS2V5RG93bjpmdW5jdGlvbih0KXtzd2l0Y2goZ2V0RXZlbnRLZXkodCkpe2Nhc2UgMTM6Y2FzZSAzMjpyZXR1cm4gc3RvcEFuZFByZXZlbnQodCksdGhpcy5zaG93KCk7Y2FzZSA4OnRoaXMuaXNDbGVhcmFibGUmJnRoaXMuY2xlYXIoKX19LF9fb25Gb2N1czpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZXx8dGhpcy5mb2N1c2VkfHwodGhpcy5tb2RlbD1jbG9uZSh0aGlzLnZhbHVlfHx0aGlzLmRlZmF1bHRWYWx1ZSksdGhpcy5mb2N1c2VkPSEwLHRoaXMuJGVtaXQoXCJmb2N1c1wiKSl9LF9fb25CbHVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5mb2N1c2VkJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtlLiRyZWZzLnBvcHVwJiZlLiRyZWZzLnBvcHVwLnNob3dpbmcmJih0PT09ZG9jdW1lbnQuYm9keXx8ZS4kcmVmcy5wb3B1cC4kZWwuY29udGFpbnModCkpfHwoZS5fX29uSGlkZSgpLGUuaGlkZSgpKX0sMSl9LF9fb25IaWRlOmZ1bmN0aW9uKHQsZSl7KHR8fHRoaXMuaXNQb3BvdmVyKSYmdGhpcy5fX3VwZGF0ZSh0KSx0aGlzLmZvY3VzZWQmJihlP3RoaXMuJGVsLmZvY3VzKCk6KHRoaXMuJGVtaXQoXCJibHVyXCIpLHRoaXMuZm9jdXNlZD0hMSkpfSxfX3NldE1vZGVsOmZ1bmN0aW9uKHQsZSl7dGhpcy5tb2RlbD1jbG9uZSh0KSwoZXx8dGhpcy5pc1BvcG92ZXIpJiZ0aGlzLl9fdXBkYXRlKGUpfSxfX2hhc01vZGVsQ2hhbmdlZDpmdW5jdGlvbigpe3JldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLm1vZGVsKSE9PUpTT04uc3RyaW5naWZ5KHRoaXMudmFsdWUpfSxfX3VwZGF0ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7ZS5fX2hhc01vZGVsQ2hhbmdlZCgpJiYoZS4kZW1pdChcImlucHV0XCIsZS5tb2RlbCksdCYmZS4kZW1pdChcImNoYW5nZVwiLGUubW9kZWwpKX0pfSxfX2dldFBpY2tlcjpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMscz1bdChRQ29sb3JQaWNrZXIse3N0YXRpY0NsYXNzOlwibm8tYm9yZGVyXCIrKGU/XCIgZnVsbC13aWR0aFwiOlwiXCIpLHByb3BzOk9iamVjdC5hc3NpZ24oe30sdGhpcy4kYXR0cnMse3ZhbHVlOnRoaXMubW9kZWwsZGlzYWJsZTp0aGlzLmRpc2FibGUscmVhZG9ubHk6dGhpcy5yZWFkb25seSxmb3JtYXRNb2RlbDp0aGlzLmZvcm1hdE1vZGVsLGRhcms6dGhpcy5kYXJrLG5vUGFyZW50RmllbGQ6ITB9KSxvbjp7aW5wdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGkuJG5leHRUaWNrKGZ1bmN0aW9uKCl7cmV0dXJuIGkuX19zZXRNb2RlbCh0KX0pfX19KV07cmV0dXJuIGUmJnMucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwibW9kYWwtYnV0dG9ucyBtb2RhbC1idXR0b25zLXRvcCByb3cgZnVsbC13aWR0aFwiLGNsYXNzOnRoaXMuZGFyaz9cImJnLWJsYWNrXCI6bnVsbH0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2xcIn0pLHQoUUJ0bix7cHJvcHM6e2NvbG9yOnRoaXMubW9kYWxCdG5Db2xvcixmbGF0OiEwLGxhYmVsOnRoaXMuY2FuY2VsTGFiZWx8fHRoaXMuJHEuaTE4bi5sYWJlbC5jYW5jZWwsbm9SaXBwbGU6ITB9LG9uOntjbGljazpmdW5jdGlvbigpe2kuX19vbkhpZGUoITEsITApLGkuaGlkZSgpfX19KSx0aGlzLmVkaXRhYmxlP3QoUUJ0bix7cHJvcHM6e2NvbG9yOnRoaXMubW9kYWxCdG5Db2xvcixmbGF0OiEwLGxhYmVsOnRoaXMub2tMYWJlbHx8dGhpcy4kcS5pMThuLmxhYmVsLnNldCxub1JpcHBsZTohMCxkaXNhYmxlOiF0aGlzLm1vZGVsfSxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtpLl9fb25IaWRlKCEwLCEwKSxpLmhpZGUoKX19fSk6bnVsbF0pKSxzfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoUUlucHV0RnJhbWUse3N0YXRpY0NsYXNzOlwicS1jb2xvci1pbnB1dFwiLHByb3BzOntwcmVmaXg6dGhpcy5wcmVmaXgsc3VmZml4OnRoaXMuc3VmZml4LHN0YWNrTGFiZWw6dGhpcy5zdGFja0xhYmVsLGZsb2F0TGFiZWw6dGhpcy5mbG9hdExhYmVsLGVycm9yOnRoaXMuZXJyb3Isd2FybmluZzp0aGlzLndhcm5pbmcsZGlzYWJsZTp0aGlzLmRpc2FibGUscmVhZG9ubHk6dGhpcy5yZWFkb25seSxpbnZlcnRlZDp0aGlzLmludmVydGVkLGludmVydGVkTGlnaHQ6dGhpcy5pbnZlcnRlZExpZ2h0LGRhcms6dGhpcy5kYXJrLGhpZGVVbmRlcmxpbmU6dGhpcy5oaWRlVW5kZXJsaW5lLGJlZm9yZTp0aGlzLmJlZm9yZSxhZnRlcjp0aGlzLmFmdGVyLGNvbG9yOnRoaXMuY29sb3Isbm9QYXJlbnRGaWVsZDp0aGlzLm5vUGFyZW50RmllbGQsZm9jdXNlZDp0aGlzLmZvY3VzZWR8fHRoaXMuJHJlZnMucG9wdXAmJnRoaXMuJHJlZnMucG9wdXAuc2hvd2luZyxmb2N1c2FibGU6ITAsbGVuZ3RoOnRoaXMuYWN0dWFsVmFsdWUubGVuZ3RofSxuYXRpdmVPbjp7Y2xpY2s6dGhpcy50b2dnbGUsZm9jdXM6dGhpcy5fX29uRm9jdXMsYmx1cjp0aGlzLl9fb25CbHVyLGtleWRvd246dGhpcy5fX2hhbmRsZUtleURvd259fSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbCBxLWlucHV0LXRhcmdldCBlbGxpcHNpc1wiLGNsYXNzOnRoaXMuZmFrZUlucHV0Q2xhc3Nlc30sW3RoaXMuZmFrZUlucHV0VmFsdWVdKSx0aGlzLmlzUG9wb3Zlcj90KFFQb3BvdmVyLHtyZWY6XCJwb3B1cFwiLHByb3BzOntjb3ZlcjohMCxrZWVwT25TY3JlZW46ITAsZGlzYWJsZTp0aGlzLmRpc2FibGUsYW5jaG9yQ2xpY2s6ITEsbWF4SGVpZ2h0OlwiMTAwdmhcIn0sc2xvdDpcImFmdGVyXCIsb246e3Nob3c6dGhpcy5fX29uRm9jdXMsaGlkZTpmdW5jdGlvbigpe3JldHVybiBlLl9fb25IaWRlKCEwLCEwKX19fSx0aGlzLl9fZ2V0UGlja2VyKHQpKTp0KFFNb2RhbCx7cmVmOlwicG9wdXBcIixzdGF0aWNDbGFzczpcIndpdGgtYmFja2Ryb3BcIixwcm9wczp7Y29udGVudENzczpjb250ZW50Q3NzLG1pbmltaXplZDohMCxwb3NpdGlvbjpudWxsLHRyYW5zaXRpb246dGhpcy50cmFuc2l0aW9ufSxvbjp7ZGlzbWlzczpmdW5jdGlvbigpe3JldHVybiBlLl9fb25IaWRlKCExLCEwKX19fSx0aGlzLl9fZ2V0UGlja2VyKHQsITApKSx0aGlzLmlzQ2xlYXJhYmxlP3QoUUljb24se3Nsb3Q6XCJhZnRlclwiLHByb3BzOntuYW1lOnRoaXMuJHEuaWNvbi5pbnB1dFtcImNsZWFyXCIrKHRoaXMuaXNJbnZlcnRlZD9cIkludmVydGVkXCI6XCJcIildfSxuYXRpdmVPbjp7Y2xpY2s6dGhpcy5jbGVhcn0sc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIn0pOm51bGwsdChRSWNvbix7c2xvdDpcImFmdGVyXCIscHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLmlucHV0LmRyb3Bkb3dufSxzdGF0aWNDbGFzczpcInEtaWYtY29udHJvbFwifSldKX19LFFDb250ZXh0TWVudT17bmFtZTpcIlFDb250ZXh0TWVudVwiLHByb3BzOntkaXNhYmxlOkJvb2xlYW59LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57bW9iaWxlOnRoaXMuJHEucGxhdGZvcm0uaXMubW9iaWxlfX0sbWV0aG9kczp7aGlkZTpmdW5jdGlvbih0KXtpZih0aGlzLiRyZWZzLnBvcHVwKXJldHVybiB0aGlzLm1vYmlsZSYmdGhpcy50YXJnZXQuY2xhc3NMaXN0LnJlbW92ZShcIm5vbi1zZWxlY3RhYmxlXCIpLHRoaXMuJHJlZnMucG9wdXAuaGlkZSh0KX0sc2hvdzpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuZGlzYWJsZXx8KHRoaXMubW9iaWxlP3RoaXMuJHJlZnMucG9wdXAmJih0aGlzLmV2ZW50PXQsdGhpcy4kcmVmcy5wb3B1cC5zaG93KHQpKTp0JiYoc3RvcEFuZFByZXZlbnQodCksc2V0VGltZW91dChmdW5jdGlvbigpe2UuJHJlZnMucG9wdXAmJihlLmV2ZW50PXQsZS4kcmVmcy5wb3B1cC5zaG93KHQpKX0sMTAwKSkpfSxfX2Rlc2t0b3BCb2R5SGlkZTpmdW5jdGlvbih0KXt0aGlzLiRlbC5jb250YWlucyh0LnRhcmdldCl8fHRoaXMuaGlkZSh0KX0sX19kZXNrdG9wT25TaG93OmZ1bmN0aW9uKCl7ZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKFwiY29udGV4dG1lbnVcIix0aGlzLl9fZGVza3RvcEJvZHlIaWRlLCEwKSxkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLHRoaXMuX19kZXNrdG9wQm9keUhpZGUsITApLHRoaXMuJGVtaXQoXCJzaG93XCIsdGhpcy5ldmVudCl9LF9fZGVza3RvcE9uSGlkZTpmdW5jdGlvbih0KXtkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjb250ZXh0bWVudVwiLHRoaXMuX19kZXNrdG9wQm9keUhpZGUsITApLGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsdGhpcy5fX2Rlc2t0b3BCb2R5SGlkZSwhMCksdGhpcy4kZW1pdChcImhpZGVcIix0aGlzLmV2ZW50LHQpfSxfX21vYmlsZVRvdWNoU3RhcnRIYW5kbGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5fX21vYmlsZUNsZWFudXAoKSx0JiZ0LnRvdWNoZXMmJnQudG91Y2hlcy5sZW5ndGg+MXx8KHRoaXMudGFyZ2V0LmNsYXNzTGlzdC5hZGQoXCJub24tc2VsZWN0YWJsZVwiKSx0aGlzLnRvdWNoVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3QmJnN0b3BBbmRQcmV2ZW50KHQpLGUuX19tb2JpbGVDbGVhbnVwKCksc2V0VGltZW91dChmdW5jdGlvbigpe2Uuc2hvdyh0KX0sMTApfSw2MDApKX0sX19tb2JpbGVDbGVhbnVwOmZ1bmN0aW9uKCl7dGhpcy50YXJnZXQuY2xhc3NMaXN0LnJlbW92ZShcIm5vbi1zZWxlY3RhYmxlXCIpLGNsZWFyVGltZW91dCh0aGlzLnRvdWNoVGltZXIpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMubW9iaWxlP3QoUU1vZGFsLHtyZWY6XCJwb3B1cFwiLHByb3BzOnttaW5pbWl6ZWQ6ITB9LG9uOntzaG93OmZ1bmN0aW9uKCl7ZS4kZW1pdChcInNob3dcIixlLmV2ZW50KX0saGlkZTpmdW5jdGlvbih0KXtlLiRlbWl0KFwiaGlkZVwiLGUuZXZlbnQsdCl9fX0sdGhpcy4kc2xvdHMuZGVmYXVsdCk6dChRUG9wb3Zlcix7cmVmOlwicG9wdXBcIixwcm9wczp7YW5jaG9yQ2xpY2s6ITEsdG91Y2hQb3NpdGlvbjohMH0sb246e3Nob3c6dGhpcy5fX2Rlc2t0b3BPblNob3csaGlkZTp0aGlzLl9fZGVza3RvcE9uSGlkZX19LHRoaXMuJHNsb3RzLmRlZmF1bHQpfSxtb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLm1vYmlsZT90aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3QudGFyZ2V0PXQuJGVsLnBhcmVudE5vZGUsdC50YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIix0Ll9fbW9iaWxlVG91Y2hTdGFydEhhbmRsZXIpLFtcInRvdWNoY2FuY2VsXCIsXCJ0b3VjaG1vdmVcIixcInRvdWNoZW5kXCJdLmZvckVhY2goZnVuY3Rpb24oZSl7dC50YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihlLHQuX19tb2JpbGVDbGVhbnVwKX0pfSk6KHRoaXMudGFyZ2V0PXRoaXMuJGVsLnBhcmVudE5vZGUsdGhpcy50YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcImNvbnRleHRtZW51XCIsdGhpcy5zaG93KSl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMubW9iaWxlPyh0aGlzLnRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLHRoaXMuX19tb2JpbGVUb3VjaFN0YXJ0SGFuZGxlciksW1widG91Y2hjYW5jZWxcIixcInRvdWNobW92ZVwiLFwidG91Y2hlbmRcIl0uZm9yRWFjaChmdW5jdGlvbihlKXt0LnRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKGUsdC5fX21vYmlsZUNsZWFudXApfSkpOnRoaXMudGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjb250ZXh0bWVudVwiLHRoaXMuc2hvdyl9fSxtb2RlbFZhbGlkYXRvcj1mdW5jdGlvbih0KXt2YXIgZT10eXBlb2YgdDtyZXR1cm4gbnVsbD09PXR8fHZvaWQgMD09PXR8fFwibnVtYmVyXCI9PT1lfHxcInN0cmluZ1wiPT09ZXx8aXNEYXRlKHQpfSxpbmxpbmU9e3ZhbHVlOnt2YWxpZGF0b3I6bW9kZWxWYWxpZGF0b3IscmVxdWlyZWQ6ITB9LGRlZmF1bHRWYWx1ZTp7dHlwZTpbU3RyaW5nLE51bWJlcixEYXRlXSxkZWZhdWx0Om51bGx9LHR5cGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJkYXRlXCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcImRhdGVcIixcInRpbWVcIixcImRhdGV0aW1lXCJdLmluY2x1ZGVzKHQpfX0sY29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJwcmltYXJ5XCJ9LGRhcms6Qm9vbGVhbixtaW46e3ZhbGlkYXRvcjptb2RlbFZhbGlkYXRvcixkZWZhdWx0Om51bGx9LG1heDp7dmFsaWRhdG9yOm1vZGVsVmFsaWRhdG9yLGRlZmF1bHQ6bnVsbH0saGVhZGVyTGFiZWw6U3RyaW5nLGZpcnN0RGF5T2ZXZWVrOk51bWJlcixmb3JtYXRNb2RlbDp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImF1dG9cIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1wiYXV0b1wiLFwiZGF0ZVwiLFwibnVtYmVyXCIsXCJzdHJpbmdcIl0uaW5jbHVkZXModCl9fSxmb3JtYXQyNGg6e3R5cGU6W0Jvb2xlYW4sTnVtYmVyXSxkZWZhdWx0OjAsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVyblshMCwhMSwwXS5pbmNsdWRlcyh0KX19LGRlZmF1bHRWaWV3Ont0eXBlOlN0cmluZyx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1wieWVhclwiLFwibW9udGhcIixcImRheVwiLFwiaG91clwiLFwibWludXRlXCJdLmluY2x1ZGVzKHQpfX0sbWluaW1hbDpCb29sZWFufSxpbnB1dD17Zm9ybWF0OlN0cmluZyxva0xhYmVsOlN0cmluZyxjYW5jZWxMYWJlbDpTdHJpbmcsZGlzcGxheVZhbHVlOlN0cmluZ30sTUlMTElTRUNPTkRTX0lOX0RBWT04NjRlNSxNSUxMSVNFQ09ORFNfSU5fSE9VUj0zNmU1LE1JTExJU0VDT05EU19JTl9NSU5VVEU9NmU0LHRva2VuPS9cXFsoKD86W15cXF1cXFxcXXxcXFxcXXxcXFxcKSopXFxdfGR7MSw0fXxNezEsNH18bXsxLDJ9fHd7MSwyfXxRb3xEb3xEezEsNH18WVkoPzpZWSk/fEh7MSwyfXxoezEsMn18c3sxLDJ9fFN7MSwzfXxaezEsMn18YXsxLDJ9fFtBUUV4WF0vZyxyZU15U1FMRGF0ZVRpbWVTdHI9L15bMC05XXs0fS1bMC05XXsyfS1bMC05XXsyfSBbMC05XXsyfTpbMC05XXsyfTpbMC05XXsyfSguWzAtOV17Nn0pPyQvO2Z1bmN0aW9uIGZvcm1hdFRpbWV6b25lKHQsZSl7dm9pZCAwPT09ZSYmKGU9XCJcIik7dmFyIGk9dD4wP1wiLVwiOlwiK1wiLHM9TWF0aC5hYnModCksbj1zJTYwO3JldHVybiBpK3BhZChNYXRoLmZsb29yKHMvNjApKStlK3BhZChuKX1mdW5jdGlvbiBzZXRNb250aCh0LGUpe3ZhciBpPW5ldyBEYXRlKHQuZ2V0RnVsbFllYXIoKSxlLDAsMCwwLDAsMCkuZ2V0RGF0ZSgpO3Quc2V0TW9udGgoZS0xLE1hdGgubWluKGksdC5nZXREYXRlKCkpKX1mdW5jdGlvbiBidWlsZERhdGVWYWwodCl7cmV0dXJuIG5ldyBEYXRlKGlzU3RyaW5nKHQpJiZudWxsIT09cmVNeVNRTERhdGVUaW1lU3RyLmV4ZWModCk/dC5zdWJzdHJpbmcoMCwyMykucmVwbGFjZShcIiBcIixcIlRcIik6dCl9ZnVuY3Rpb24gZ2V0Q2hhbmdlKHQsZSxpKXt2YXIgcz1idWlsZERhdGVWYWwodCksbj1pPzE6LTE7cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24odCl7aWYoXCJtb250aFwiIT09dCl7dmFyIGk9XCJ5ZWFyXCI9PT10P1wiRnVsbFllYXJcIjpjYXBpdGFsaXplKFwiZGF5c1wiPT09dD9cImRhdGVcIjp0KTtzW1wic2V0XCIraV0oc1tcImdldFwiK2ldKCkrbiplW3RdKX1lbHNlIHNldE1vbnRoKHMscy5nZXRNb250aCgpKzErbiplLm1vbnRoKX0pLHN9ZnVuY3Rpb24gaXNWYWxpZCh0KXtpZihcIm51bWJlclwiPT10eXBlb2YgdClyZXR1cm4hMDt2YXIgZT1EYXRlLnBhcnNlKHQpO3JldHVybiExPT09aXNOYU4oZSl9ZnVuY3Rpb24gYnVpbGREYXRlKHQsZSl7cmV0dXJuIGFkanVzdERhdGUobmV3IERhdGUsdCxlKX1mdW5jdGlvbiBnZXREYXlPZldlZWsodCl7dmFyIGU9YnVpbGREYXRlVmFsKHQpLmdldERheSgpO3JldHVybiAwPT09ZT83OmV9ZnVuY3Rpb24gZ2V0V2Vla09mWWVhcih0KXt2YXIgZT1uZXcgRGF0ZSh0LmdldEZ1bGxZZWFyKCksdC5nZXRNb250aCgpLHQuZ2V0RGF0ZSgpKTtlLnNldERhdGUoZS5nZXREYXRlKCktKGUuZ2V0RGF5KCkrNiklNyszKTt2YXIgaT1uZXcgRGF0ZShlLmdldEZ1bGxZZWFyKCksMCw0KTtpLnNldERhdGUoaS5nZXREYXRlKCktKGkuZ2V0RGF5KCkrNiklNyszKTt2YXIgcz1lLmdldFRpbWV6b25lT2Zmc2V0KCktaS5nZXRUaW1lem9uZU9mZnNldCgpO2Uuc2V0SG91cnMoZS5nZXRIb3VycygpLXMpO3ZhciBuPShlLWkpLyg3Kk1JTExJU0VDT05EU19JTl9EQVkpO3JldHVybiAxK01hdGguZmxvb3Iobil9ZnVuY3Rpb24gaXNCZXR3ZWVuRGF0ZXModCxlLGkscyl7dm9pZCAwPT09cyYmKHM9e30pO3ZhciBuPWJ1aWxkRGF0ZVZhbChlKS5nZXRUaW1lKCksbz1idWlsZERhdGVWYWwoaSkuZ2V0VGltZSgpLHI9YnVpbGREYXRlVmFsKHQpLmdldFRpbWUoKTtyZXR1cm4gcy5pbmNsdXNpdmVGcm9tJiZuLS0scy5pbmNsdXNpdmVUbyYmbysrLHI+biYmcjxvfWZ1bmN0aW9uIGFkZFRvRGF0ZSh0LGUpe3JldHVybiBnZXRDaGFuZ2UodCxlLCEwKX1mdW5jdGlvbiBzdWJ0cmFjdEZyb21EYXRlKHQsZSl7cmV0dXJuIGdldENoYW5nZSh0LGUsITEpfWZ1bmN0aW9uIGFkanVzdERhdGUodCxlLGkpe3ZhciBzPWJ1aWxkRGF0ZVZhbCh0KSxuPVwic2V0XCIrKGk/XCJVVENcIjpcIlwiKTtyZXR1cm4gT2JqZWN0LmtleXMoZSkuZm9yRWFjaChmdW5jdGlvbih0KXtpZihcIm1vbnRoXCIhPT10KXt2YXIgaT1cInllYXJcIj09PXQ/XCJGdWxsWWVhclwiOnQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKTtzW1wiXCIrbitpXShlW3RdKX1lbHNlIHNldE1vbnRoKHMsZS5tb250aCl9KSxzfWZ1bmN0aW9uIHN0YXJ0T2ZEYXRlKHQsZSl7dmFyIGk9YnVpbGREYXRlVmFsKHQpO3N3aXRjaChlKXtjYXNlXCJ5ZWFyXCI6aS5zZXRNb250aCgwKTtjYXNlXCJtb250aFwiOmkuc2V0RGF0ZSgxKTtjYXNlXCJkYXlcIjppLnNldEhvdXJzKDApO2Nhc2VcImhvdXJcIjppLnNldE1pbnV0ZXMoMCk7Y2FzZVwibWludXRlXCI6aS5zZXRTZWNvbmRzKDApO2Nhc2VcInNlY29uZFwiOmkuc2V0TWlsbGlzZWNvbmRzKDApfXJldHVybiBpfWZ1bmN0aW9uIGVuZE9mRGF0ZSh0LGUpe3ZhciBpPWJ1aWxkRGF0ZVZhbCh0KTtzd2l0Y2goZSl7Y2FzZVwieWVhclwiOmkuc2V0TW9udGgoMTEpO2Nhc2VcIm1vbnRoXCI6aS5zZXREYXRlKGRheXNJbk1vbnRoKHQpKTtjYXNlXCJkYXlcIjppLnNldEhvdXJzKDIzKTtjYXNlXCJob3VyXCI6aS5zZXRNaW51dGVzKDU5KTtjYXNlXCJtaW51dGVcIjppLnNldFNlY29uZHMoNTkpO2Nhc2VcInNlY29uZFwiOmkuc2V0TWlsbGlzZWNvbmRzKDU5KX1yZXR1cm4gaX1mdW5jdGlvbiBnZXRNYXhEYXRlKHQpe2Zvcih2YXIgZT1bXSxpPWFyZ3VtZW50cy5sZW5ndGgtMTtpLS0gPjA7KWVbaV09YXJndW1lbnRzW2krMV07dmFyIHM9YnVpbGREYXRlVmFsKHQpO3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24odCl7cz1NYXRoLm1heChzLGJ1aWxkRGF0ZVZhbCh0KSl9KSxzfWZ1bmN0aW9uIGdldE1pbkRhdGUodCl7Zm9yKHZhciBlPVtdLGk9YXJndW1lbnRzLmxlbmd0aC0xO2ktLSA+MDspZVtpXT1hcmd1bWVudHNbaSsxXTt2YXIgcz1idWlsZERhdGVWYWwodCk7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbih0KXtzPU1hdGgubWluKHMsYnVpbGREYXRlVmFsKHQpKX0pLHN9ZnVuY3Rpb24gZ2V0RGlmZih0LGUsaSl7cmV0dXJuKHQuZ2V0VGltZSgpLXQuZ2V0VGltZXpvbmVPZmZzZXQoKSpNSUxMSVNFQ09ORFNfSU5fTUlOVVRFLShlLmdldFRpbWUoKS1lLmdldFRpbWV6b25lT2Zmc2V0KCkqTUlMTElTRUNPTkRTX0lOX01JTlVURSkpL2l9ZnVuY3Rpb24gZ2V0RGF0ZURpZmYodCxlLGkpe3ZvaWQgMD09PWkmJihpPVwiZGF5c1wiKTt2YXIgcz1idWlsZERhdGVWYWwodCksbj1idWlsZERhdGVWYWwoZSk7c3dpdGNoKGkpe2Nhc2VcInllYXJzXCI6cmV0dXJuIHMuZ2V0RnVsbFllYXIoKS1uLmdldEZ1bGxZZWFyKCk7Y2FzZVwibW9udGhzXCI6cmV0dXJuIDEyKihzLmdldEZ1bGxZZWFyKCktbi5nZXRGdWxsWWVhcigpKStzLmdldE1vbnRoKCktbi5nZXRNb250aCgpO2Nhc2VcImRheXNcIjpyZXR1cm4gZ2V0RGlmZihzdGFydE9mRGF0ZShzLFwiZGF5XCIpLHN0YXJ0T2ZEYXRlKG4sXCJkYXlcIiksTUlMTElTRUNPTkRTX0lOX0RBWSk7Y2FzZVwiaG91cnNcIjpyZXR1cm4gZ2V0RGlmZihzdGFydE9mRGF0ZShzLFwiaG91clwiKSxzdGFydE9mRGF0ZShuLFwiaG91clwiKSxNSUxMSVNFQ09ORFNfSU5fSE9VUik7Y2FzZVwibWludXRlc1wiOnJldHVybiBnZXREaWZmKHN0YXJ0T2ZEYXRlKHMsXCJtaW51dGVcIiksc3RhcnRPZkRhdGUobixcIm1pbnV0ZVwiKSxNSUxMSVNFQ09ORFNfSU5fTUlOVVRFKTtjYXNlXCJzZWNvbmRzXCI6cmV0dXJuIGdldERpZmYoc3RhcnRPZkRhdGUocyxcInNlY29uZFwiKSxzdGFydE9mRGF0ZShuLFwic2Vjb25kXCIpLDFlMyl9fWZ1bmN0aW9uIGdldERheU9mWWVhcih0KXtyZXR1cm4gZ2V0RGF0ZURpZmYodCxzdGFydE9mRGF0ZSh0LFwieWVhclwiKSxcImRheXNcIikrMX1mdW5jdGlvbiBpbmZlckRhdGVGb3JtYXQodCl7cmV0dXJuIGlzRGF0ZSh0KT9cImRhdGVcIjpcIm51bWJlclwiPT10eXBlb2YgdD9cIm51bWJlclwiOlwic3RyaW5nXCJ9ZnVuY3Rpb24gY29udmVydERhdGVUb0Zvcm1hdCh0LGUsaSl7aWYodHx8MD09PXQpc3dpdGNoKGUpe2Nhc2VcImRhdGVcIjpyZXR1cm4gdDtjYXNlXCJudW1iZXJcIjpyZXR1cm4gdC5nZXRUaW1lKCk7ZGVmYXVsdDpyZXR1cm4gZm9ybWF0RGF0ZSh0LGkpfX1mdW5jdGlvbiBnZXREYXRlQmV0d2Vlbih0LGUsaSl7dmFyIHM9YnVpbGREYXRlVmFsKHQpO2lmKGUpe3ZhciBuPWJ1aWxkRGF0ZVZhbChlKTtpZihzPG4pcmV0dXJuIG59aWYoaSl7dmFyIG89YnVpbGREYXRlVmFsKGkpO2lmKHM+bylyZXR1cm4gb31yZXR1cm4gc31mdW5jdGlvbiBpc1NhbWVEYXRlKHQsZSxpKXt2YXIgcz1idWlsZERhdGVWYWwodCksbj1idWlsZERhdGVWYWwoZSk7aWYodm9pZCAwPT09aSlyZXR1cm4gcy5nZXRUaW1lKCk9PT1uLmdldFRpbWUoKTtzd2l0Y2goaSl7Y2FzZVwic2Vjb25kXCI6aWYocy5nZXRTZWNvbmRzKCkhPT1uLmdldFNlY29uZHMoKSlyZXR1cm4hMTtjYXNlXCJtaW51dGVcIjppZihzLmdldE1pbnV0ZXMoKSE9PW4uZ2V0TWludXRlcygpKXJldHVybiExO2Nhc2VcImhvdXJcIjppZihzLmdldEhvdXJzKCkhPT1uLmdldEhvdXJzKCkpcmV0dXJuITE7Y2FzZVwiZGF5XCI6aWYocy5nZXREYXRlKCkhPT1uLmdldERhdGUoKSlyZXR1cm4hMTtjYXNlXCJtb250aFwiOmlmKHMuZ2V0TW9udGgoKSE9PW4uZ2V0TW9udGgoKSlyZXR1cm4hMTtjYXNlXCJ5ZWFyXCI6aWYocy5nZXRGdWxsWWVhcigpIT09bi5nZXRGdWxsWWVhcigpKXJldHVybiExO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKFwiZGF0ZSBpc1NhbWVEYXRlIHVua25vd24gdW5pdCBcIitpKX1yZXR1cm4hMH1mdW5jdGlvbiBkYXlzSW5Nb250aCh0KXtyZXR1cm4gbmV3IERhdGUodC5nZXRGdWxsWWVhcigpLHQuZ2V0TW9udGgoKSsxLDApLmdldERhdGUoKX1mdW5jdGlvbiBnZXRPcmRpbmFsKHQpe2lmKHQ+PTExJiZ0PD0xMylyZXR1cm4gdCtcInRoXCI7c3dpdGNoKHQlMTApe2Nhc2UgMTpyZXR1cm4gdCtcInN0XCI7Y2FzZSAyOnJldHVybiB0K1wibmRcIjtjYXNlIDM6cmV0dXJuIHQrXCJyZFwifXJldHVybiB0K1widGhcIn12YXIgZm9ybWF0dGVyPXtZWTpmdW5jdGlvbih0KXtyZXR1cm4gcGFkKHQuZ2V0RnVsbFllYXIoKSw0KS5zdWJzdHIoMil9LFlZWVk6ZnVuY3Rpb24odCl7cmV0dXJuIHBhZCh0LmdldEZ1bGxZZWFyKCksNCl9LE06ZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0TW9udGgoKSsxfSxNTTpmdW5jdGlvbih0KXtyZXR1cm4gcGFkKHQuZ2V0TW9udGgoKSsxKX0sTU1NOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXt9KSwoZS5tb250aE5hbWVzU2hvcnR8fGkxOG4ubGFuZy5kYXRlLm1vbnRoc1Nob3J0KVt0LmdldE1vbnRoKCldfSxNTU1NOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXt9KSwoZS5tb250aE5hbWVzfHxpMThuLmxhbmcuZGF0ZS5tb250aHMpW3QuZ2V0TW9udGgoKV19LFE6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguY2VpbCgodC5nZXRNb250aCgpKzEpLzMpfSxRbzpmdW5jdGlvbih0KXtyZXR1cm4gZ2V0T3JkaW5hbCh0aGlzLlEodCkpfSxEOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldERhdGUoKX0sRG86ZnVuY3Rpb24odCl7cmV0dXJuIGdldE9yZGluYWwodC5nZXREYXRlKCkpfSxERDpmdW5jdGlvbih0KXtyZXR1cm4gcGFkKHQuZ2V0RGF0ZSgpKX0sREREOmZ1bmN0aW9uKHQpe3JldHVybiBnZXREYXlPZlllYXIodCl9LEREREQ6ZnVuY3Rpb24odCl7cmV0dXJuIHBhZChnZXREYXlPZlllYXIodCksMyl9LGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RGF5KCl9LGRkOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmRkZGQodCkuc2xpY2UoMCwyKX0sZGRkOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXt9KSwoZS5kYXlOYW1lc1Nob3J0fHxpMThuLmxhbmcuZGF0ZS5kYXlzU2hvcnQpW3QuZ2V0RGF5KCldfSxkZGRkOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXt9KSwoZS5kYXlOYW1lc3x8aTE4bi5sYW5nLmRhdGUuZGF5cylbdC5nZXREYXkoKV19LEU6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RGF5KCl8fDd9LHc6ZnVuY3Rpb24odCl7cmV0dXJuIGdldFdlZWtPZlllYXIodCl9LHd3OmZ1bmN0aW9uKHQpe3JldHVybiBwYWQoZ2V0V2Vla09mWWVhcih0KSl9LEg6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0SG91cnMoKX0sSEg6ZnVuY3Rpb24odCl7cmV0dXJuIHBhZCh0LmdldEhvdXJzKCkpfSxoOmZ1bmN0aW9uKHQpe3ZhciBlPXQuZ2V0SG91cnMoKTtyZXR1cm4gMD09PWU/MTI6ZT4xMj9lJTEyOmV9LGhoOmZ1bmN0aW9uKHQpe3JldHVybiBwYWQodGhpcy5oKHQpKX0sbTpmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRNaW51dGVzKCl9LG1tOmZ1bmN0aW9uKHQpe3JldHVybiBwYWQodC5nZXRNaW51dGVzKCkpfSxzOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFNlY29uZHMoKX0sc3M6ZnVuY3Rpb24odCl7cmV0dXJuIHBhZCh0LmdldFNlY29uZHMoKSl9LFM6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguZmxvb3IodC5nZXRNaWxsaXNlY29uZHMoKS8xMDApfSxTUzpmdW5jdGlvbih0KXtyZXR1cm4gcGFkKE1hdGguZmxvb3IodC5nZXRNaWxsaXNlY29uZHMoKS8xMCkpfSxTU1M6ZnVuY3Rpb24odCl7cmV0dXJuIHBhZCh0LmdldE1pbGxpc2Vjb25kcygpLDMpfSxBOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLkgodCk8MTI/XCJBTVwiOlwiUE1cIn0sYTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5IKHQpPDEyP1wiYW1cIjpcInBtXCJ9LGFhOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLkgodCk8MTI/XCJhLm0uXCI6XCJwLm0uXCJ9LFo6ZnVuY3Rpb24odCl7cmV0dXJuIGZvcm1hdFRpbWV6b25lKHQuZ2V0VGltZXpvbmVPZmZzZXQoKSxcIjpcIil9LFpaOmZ1bmN0aW9uKHQpe3JldHVybiBmb3JtYXRUaW1lem9uZSh0LmdldFRpbWV6b25lT2Zmc2V0KCkpfSxYOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmZsb29yKHQuZ2V0VGltZSgpLzFlMyl9LHg6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VGltZSgpfX07ZnVuY3Rpb24gZm9ybWF0RGF0ZSh0LGUsaSl7aWYodm9pZCAwPT09ZSYmKGU9XCJZWVlZLU1NLUREVEhIOm1tOnNzLlNTU1pcIiksMD09PXR8fHQpe3ZhciBzPWJ1aWxkRGF0ZVZhbCh0KTtyZXR1cm4gZS5yZXBsYWNlKHRva2VuLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQgaW4gZm9ybWF0dGVyP2Zvcm1hdHRlclt0XShzLGkpOnZvaWQgMD09PWU/dDplLnNwbGl0KFwiXFxcXF1cIikuam9pbihcIl1cIil9KX19ZnVuY3Rpb24gbWF0Y2hGb3JtYXQodCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PVwiXCIpLHQubWF0Y2godG9rZW4pfWZ1bmN0aW9uIGNsb25lJDEodCl7cmV0dXJuIGlzRGF0ZSh0KT9uZXcgRGF0ZSh0LmdldFRpbWUoKSk6dH12YXIgZGF0ZT17aXNWYWxpZDppc1ZhbGlkLGJ1aWxkRGF0ZTpidWlsZERhdGUsZ2V0RGF5T2ZXZWVrOmdldERheU9mV2VlayxnZXRXZWVrT2ZZZWFyOmdldFdlZWtPZlllYXIsaXNCZXR3ZWVuRGF0ZXM6aXNCZXR3ZWVuRGF0ZXMsYWRkVG9EYXRlOmFkZFRvRGF0ZSxzdWJ0cmFjdEZyb21EYXRlOnN1YnRyYWN0RnJvbURhdGUsYWRqdXN0RGF0ZTphZGp1c3REYXRlLHN0YXJ0T2ZEYXRlOnN0YXJ0T2ZEYXRlLGVuZE9mRGF0ZTplbmRPZkRhdGUsZ2V0TWF4RGF0ZTpnZXRNYXhEYXRlLGdldE1pbkRhdGU6Z2V0TWluRGF0ZSxnZXREYXRlRGlmZjpnZXREYXRlRGlmZixnZXREYXlPZlllYXI6Z2V0RGF5T2ZZZWFyLGluZmVyRGF0ZUZvcm1hdDppbmZlckRhdGVGb3JtYXQsY29udmVydERhdGVUb0Zvcm1hdDpjb252ZXJ0RGF0ZVRvRm9ybWF0LGdldERhdGVCZXR3ZWVuOmdldERhdGVCZXR3ZWVuLGlzU2FtZURhdGU6aXNTYW1lRGF0ZSxkYXlzSW5Nb250aDpkYXlzSW5Nb250aCxmb3JtYXR0ZXI6Zm9ybWF0dGVyLGZvcm1hdERhdGU6Zm9ybWF0RGF0ZSxtYXRjaEZvcm1hdDptYXRjaEZvcm1hdCxjbG9uZTpjbG9uZSQxfSxyZURhdGU9L15cXGR7NH1bXlxcZF1cXGR7Mn1bXlxcZF1cXGR7Mn0vLERhdGVNaXhpbj17cHJvcHM6aW5saW5lLGNvbXB1dGVkOntjb21wdXRlZFZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuXCJkYXRlXCI9PT10aGlzLnR5cGUmJlwic3RyaW5nXCI9PT10aGlzLmZvcm1hdE1vZGVsJiZyZURhdGUudGVzdCh0aGlzLnZhbHVlKT90aGlzLnZhbHVlLnNsaWNlKDAsMTApLnNwbGl0KC9bXlxcZF0vKS5qb2luKFwiL1wiKTp0aGlzLnZhbHVlfSxjb21wdXRlZERlZmF1bHRWYWx1ZTpmdW5jdGlvbigpe3JldHVyblwiZGF0ZVwiPT09dGhpcy50eXBlJiZcInN0cmluZ1wiPT09dGhpcy5mb3JtYXRNb2RlbCYmcmVEYXRlLnRlc3QodGhpcy5kZWZhdWx0VmFsdWUpP3RoaXMuZGVmYXVsdFZhbHVlLnNsaWNlKDAsMTApLnNwbGl0KC9bXlxcZF0rLykuam9pbihcIi9cIik6dGhpcy5kZWZhdWx0VmFsdWV9LGNvbXB1dGVkRGF0ZUZvcm1hdDpmdW5jdGlvbigpe2lmKFwiZGF0ZVwiPT09dGhpcy50eXBlJiZcInN0cmluZ1wiPT09dGhpcy5mb3JtYXRNb2RlbClyZXR1cm5cIllZWVkvTU0vREQgSEg6bW06c3NcIn0sbW9kZWw6e2dldDpmdW5jdGlvbigpe3JldHVybiBpc1ZhbGlkKHRoaXMuY29tcHV0ZWRWYWx1ZSk/bmV3IERhdGUodGhpcy5jb21wdXRlZFZhbHVlKTp0aGlzLmNvbXB1dGVkRGVmYXVsdFZhbHVlP25ldyBEYXRlKHRoaXMuY29tcHV0ZWREZWZhdWx0VmFsdWUpOnN0YXJ0T2ZEYXRlKG5ldyBEYXRlLFwiZGF5XCIpfSxzZXQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPWNvbnZlcnREYXRlVG9Gb3JtYXQoZ2V0RGF0ZUJldHdlZW4odCx0aGlzLnBtaW4sdGhpcy5wbWF4KSxcImF1dG9cIj09PXRoaXMuZm9ybWF0TW9kZWw/aW5mZXJEYXRlRm9ybWF0KHRoaXMudmFsdWUpOnRoaXMuZm9ybWF0TW9kZWwsdGhpcy5jb21wdXRlZERhdGVGb3JtYXQpO3RoaXMuJGVtaXQoXCJpbnB1dFwiLGkpLHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7aXNTYW1lRGF0ZShpLGUudmFsdWUpfHxlLiRlbWl0KFwiY2hhbmdlXCIsaSl9KX19LHBtaW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5taW4/bmV3IERhdGUodGhpcy5taW4pOm51bGx9LHBtYXg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXg/bmV3IERhdGUodGhpcy5tYXgpOm51bGx9LHR5cGVIYXNEYXRlOmZ1bmN0aW9uKCl7cmV0dXJuXCJkYXRlXCI9PT10aGlzLnR5cGV8fFwiZGF0ZXRpbWVcIj09PXRoaXMudHlwZX0sdHlwZUhhc1RpbWU6ZnVuY3Rpb24oKXtyZXR1cm5cInRpbWVcIj09PXRoaXMudHlwZXx8XCJkYXRldGltZVwiPT09dGhpcy50eXBlfSx5ZWFyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWwuZ2V0RnVsbFllYXIoKX0sbW9udGg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tb2RlbC5nZXRNb250aCgpKzF9LGRheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsLmdldERhdGUoKX0sbWludXRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWwuZ2V0TWludXRlcygpfSxjdXJyZW50WWVhcjpmdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKX0seWVhckludGVydmFsOmZ1bmN0aW9uKCl7cmV0dXJue21pbjpudWxsIT09dGhpcy5wbWluP3RoaXMucG1pbi5nZXRGdWxsWWVhcigpOih0aGlzLnllYXJ8fHRoaXMuY3VycmVudFllYXIpLTgwLG1heDpudWxsIT09dGhpcy5wbWF4P3RoaXMucG1heC5nZXRGdWxsWWVhcigpOih0aGlzLnllYXJ8fHRoaXMuY3VycmVudFllYXIpKzgwfX0sbW9udGhJbnRlcnZhbDpmdW5jdGlvbigpe3JldHVybnttaW46dGhpcy5tb250aE1pbixtYXg6bnVsbCE9PXRoaXMucG1heCYmdGhpcy5wbWF4LmdldEZ1bGxZZWFyKCk9PT10aGlzLnllYXI/dGhpcy5wbWF4LmdldE1vbnRoKCk6MTF9fSxtb250aE1pbjpmdW5jdGlvbigpe3JldHVybiBudWxsIT09dGhpcy5wbWluJiZ0aGlzLnBtaW4uZ2V0RnVsbFllYXIoKT09PXRoaXMueWVhcj90aGlzLnBtaW4uZ2V0TW9udGgoKTowfSxkYXlzSW5Nb250aDpmdW5jdGlvbigpe3JldHVybiBuZXcgRGF0ZSh0aGlzLnllYXIsdGhpcy5tb2RlbC5nZXRNb250aCgpKzEsMCkuZ2V0RGF0ZSgpfSxlZGl0YWJsZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLmRpc2FibGUmJiF0aGlzLnJlYWRvbmx5fSxfX25lZWRzQm9yZGVyOmZ1bmN0aW9uKCl7cmV0dXJuITB9fSxtZXRob2RzOnt0b2dnbGVBbVBtOmZ1bmN0aW9uKCl7aWYodGhpcy5lZGl0YWJsZSl7dmFyIHQ9dGhpcy5tb2RlbC5nZXRIb3VycygpLGU9dGhpcy5hbT8xMjotMTI7dGhpcy5tb2RlbD1uZXcgRGF0ZShuZXcgRGF0ZSh0aGlzLm1vZGVsKS5zZXRIb3Vycyh0K2UpKX19LF9fcGFyc2VUeXBlVmFsdWU6ZnVuY3Rpb24odCxlKXtyZXR1cm5cIm1vbnRoXCI9PT10P25vcm1hbGl6ZVRvSW50ZXJ2YWwoZSwxLDEyKTpcImRhdGVcIj09PXQ/bm9ybWFsaXplVG9JbnRlcnZhbChlLDEsdGhpcy5kYXlzSW5Nb250aCk6XCJ5ZWFyXCI9PT10P25vcm1hbGl6ZVRvSW50ZXJ2YWwoZSx0aGlzLnllYXJJbnRlcnZhbC5taW4sdGhpcy55ZWFySW50ZXJ2YWwubWF4KTpcImhvdXJcIj09PXQ/bm9ybWFsaXplVG9JbnRlcnZhbChlLDAsMjMpOlwibWludXRlXCI9PT10P25vcm1hbGl6ZVRvSW50ZXJ2YWwoZSwwLDU5KTp2b2lkIDB9fX07ZnVuY3Rpb24gY29udmVydFRvQW1QbSh0KXtyZXR1cm4gMD09PXQ/MTI6dD49MTM/dC0xMjp0fXZhciBRRGF0ZXRpbWVQaWNrZXI9e25hbWU6XCJRRGF0ZXRpbWVQaWNrZXJcIixtaXhpbnM6W0RhdGVNaXhpbixQYXJlbnRGaWVsZE1peGluLENhblJlbmRlck1peGluXSxwcm9wczp7ZGVmYXVsdFZhbHVlOltTdHJpbmcsTnVtYmVyLERhdGVdLGRpc2FibGU6Qm9vbGVhbixyZWFkb25seTpCb29sZWFufSxkaXJlY3RpdmVzOntSaXBwbGU6UmlwcGxlfSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3ZpZXc6dGhpcy5fX2NhbGNWaWV3KHRoaXMuZGVmYXVsdFZpZXcpLGRyYWdnaW5nOiExLGNlbnRlckNsb2NrUG9zOjAsZmFrZVZhbHVlOnt5ZWFyOm51bGwsbW9udGg6bnVsbH19fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24odCl7dHx8KHRoaXMudmlldz1bXCJkYXRlXCIsXCJkYXRldGltZVwiXS5pbmNsdWRlcyh0aGlzLnR5cGUpP1wiZGF5XCI6XCJob3VyXCIpfSx2aWV3OmZ1bmN0aW9uKCl7dGhpcy5fX3Njcm9sbFZpZXcoITApfSxtb2RlbDpmdW5jdGlvbigpe3RoaXMuZmFrZVZhbHVlLm1vbnRoIT09dGhpcy5tb250aCYmKHRoaXMuZmFrZVZhbHVlLm1vbnRoPXRoaXMubW9udGgsdGhpcy5fX3Njcm9sbFZpZXcoKSksdGhpcy5mYWtlVmFsdWUueWVhciE9PXRoaXMueWVhciYmKHRoaXMuZmFrZVZhbHVlLnllYXI9dGhpcy55ZWFyLHRoaXMuX19zY3JvbGxWaWV3KCkpfX0sY29tcHV0ZWQ6e2NsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5kaXNhYmxlJiZ0LnB1c2goXCJkaXNhYmxlZFwiKSx0aGlzLnJlYWRvbmx5JiZ0LnB1c2goXCJyZWFkb25seVwiKSx0aGlzLmRhcmsmJnQucHVzaChcInEtZGF0ZXRpbWUtZGFya1wiKSx0aGlzLm1pbmltYWwmJnQucHVzaChcInEtZGF0ZXRpbWUtbWluaW1hbFwiKSx0aGlzLmNvbG9yJiZ0LnB1c2goXCJ0ZXh0LVwiK3RoaXMuY29sb3IpLHR9LGRhdGVBcnJvdzpmdW5jdGlvbigpe3ZhciB0PVt0aGlzLiRxLmljb24uZGF0ZXRpbWUuYXJyb3dMZWZ0LHRoaXMuJHEuaWNvbi5kYXRldGltZS5hcnJvd1JpZ2h0XTtyZXR1cm4gdGhpcy4kcS5pMThuLnJ0bD90LnJldmVyc2UoKTp0fSxjb21wdXRlZEZvcm1hdDI0aDpmdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5mb3JtYXQyNGg/dGhpcy5mb3JtYXQyNGg6dGhpcy4kcS5pMThuLmRhdGUuZm9ybWF0MjRofSxjb21wdXRlZEZpcnN0RGF5T2ZXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuZmlyc3REYXlPZldlZWs/dGhpcy5maXJzdERheU9mV2Vlazp0aGlzLiRxLmkxOG4uZGF0ZS5maXJzdERheU9mV2Vla30saGVhZGVyRGF5TmFtZXM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLiRxLmkxOG4uZGF0ZS5kYXlzU2hvcnQsZT10aGlzLmNvbXB1dGVkRmlyc3REYXlPZldlZWs7cmV0dXJuIGU+MD90LnNsaWNlKGUsNykuY29uY2F0KHQuc2xpY2UoMCxlKSk6dH0sZmFrZU1vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBEYXRlKHRoaXMuZmFrZVllYXIsdGhpcy5mYWtlTW9udGgtMSwxKX0sZmFrZVllYXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mYWtlVmFsdWUueWVhcnx8dGhpcy55ZWFyfSxmYWtlTW9udGg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mYWtlVmFsdWUubW9udGh8fHRoaXMubW9udGh9LGRheXNJbk1vbnRoOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBEYXRlKHRoaXMuZmFrZVllYXIsdGhpcy5mYWtlTW9udGgsMCkuZ2V0RGF0ZSgpfSxtb250aFN0cmluZzpmdW5jdGlvbigpe3JldHVyblwiXCIrdGhpcy4kcS5pMThuLmRhdGUubW9udGhzU2hvcnRbdGhpcy5tb250aC0xXX0sbW9udGhTdGFtcDpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRxLmkxOG4uZGF0ZS5tb250aHNbdGhpcy5mYWtlTW9udGgtMV0rXCIgXCIrdGhpcy5mYWtlWWVhcn0sd2Vla0RheVN0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhlYWRlckxhYmVsfHx0aGlzLiRxLmkxOG4uZGF0ZS5kYXlzW3RoaXMubW9kZWwuZ2V0RGF5KCldfSxmaWxsZXJEYXlzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5mYWtlTW9kZWwuZ2V0RGF5KCktdGhpcy5jb21wdXRlZEZpcnN0RGF5T2ZXZWVrO3JldHVybiB0PDAmJih0Kz03KSx0fSxiZWZvcmVNaW5EYXlzOmZ1bmN0aW9uKCl7aWYobnVsbD09PXRoaXMucG1pbilyZXR1cm4hMTt2YXIgdD10aGlzLnBtaW4uZ2V0RnVsbFllYXIoKSxlPXRoaXMucG1pbi5nZXRNb250aCgpKzE7cmV0dXJuIHQ9PT10aGlzLmZha2VZZWFyJiZlPT09dGhpcy5mYWtlTW9udGg/dGhpcy5wbWluLmdldERhdGUoKS0xOih0PnRoaXMuZmFrZVllYXJ8fHQ9PT10aGlzLmZha2VZZWFyJiZlPnRoaXMuZmFrZU1vbnRoKSYmdGhpcy5kYXlzSW5Nb250aH0sYWZ0ZXJNYXhEYXlzOmZ1bmN0aW9uKCl7aWYobnVsbD09PXRoaXMucG1heClyZXR1cm4hMTt2YXIgdD10aGlzLnBtYXguZ2V0RnVsbFllYXIoKSxlPXRoaXMucG1heC5nZXRNb250aCgpKzE7cmV0dXJuIHQ9PT10aGlzLmZha2VZZWFyJiZlPT09dGhpcy5mYWtlTW9udGg/dGhpcy5kYXlzSW5Nb250aC10aGlzLm1heERheToodDx0aGlzLmZha2VZZWFyfHx0PT09dGhpcy5mYWtlWWVhciYmZTx0aGlzLmZha2VNb250aCkmJnRoaXMuZGF5c0luTW9udGh9LG1heERheTpmdW5jdGlvbigpe3JldHVybiBudWxsIT09dGhpcy5wbWF4P3RoaXMucG1heC5nZXREYXRlKCk6dGhpcy5kYXlzSW5Nb250aH0sZGF0ZUludGVydmFsOmZ1bmN0aW9uKCl7dmFyIHQ9bnVsbD09PXRoaXMucG1heHx8ITE9PT10aGlzLmFmdGVyTWF4RGF5cz8wOnRoaXMuYWZ0ZXJNYXhEYXlzO3JldHVybiB0aGlzLmJlZm9yZU1pbkRheXM+MHx8dD97bWluOnRoaXMuYmVmb3JlTWluRGF5cz4wP3RoaXMuYmVmb3JlTWluRGF5cysxOjEsbWF4OnRoaXMuZGF5c0luTW9udGgtdH06e21pbjoxLG1heDp0aGlzLmRheXNJbk1vbnRofX0saG91cjpmdW5jdGlvbigpe3ZhciB0PXRoaXMubW9kZWwuZ2V0SG91cnMoKTtyZXR1cm4gdGhpcy5jb21wdXRlZEZvcm1hdDI0aD90OmNvbnZlcnRUb0FtUG0odCl9LG1pbnV0ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsLmdldE1pbnV0ZXMoKX0sYW06ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tb2RlbC5nZXRIb3VycygpPD0xMX0sY2xvY2tQb2ludGVyU3R5bGU6ZnVuY3Rpb24oKXt2YXIgdD1cIm1pbnV0ZVwiPT09dGhpcy52aWV3LGU9dD82MDoxMixpPVtcInJvdGF0ZShcIisoTWF0aC5yb3VuZCgodD90aGlzLm1pbnV0ZTp0aGlzLmhvdXIpKigzNjAvZSkpLTE4MCkrXCJkZWcpXCJdO3JldHVybiB0fHwhdGhpcy5jb21wdXRlZEZvcm1hdDI0aHx8dGhpcy5ob3VyPjAmJnRoaXMuaG91cjwxM3x8aS5wdXNoKFwic2NhbGUoLjcsIC43KVwiKSx7dHJhbnNmb3JtOmkuam9pbihcIiBcIil9fSxpc1ZhbGlkOmZ1bmN0aW9uKCl7cmV0dXJuIGlzVmFsaWQodGhpcy52YWx1ZSl9LHRvZGF5OmZ1bmN0aW9uKCl7dmFyIHQ9bmV3IERhdGU7cmV0dXJuIGlzU2FtZURhdGUodCx0aGlzLmZha2VNb2RlbCxcIm1vbnRoXCIpP3QuZ2V0RGF0ZSgpOi0xfX0sbWV0aG9kczp7c2V0WWVhcjpmdW5jdGlvbih0LGUpe3RoaXMuZWRpdGFibGUmJihlfHwodGhpcy52aWV3PVwibW9udGhcIiksdGhpcy5tb2RlbD1uZXcgRGF0ZShuZXcgRGF0ZSh0aGlzLm1vZGVsKS5zZXRGdWxsWWVhcih0aGlzLl9fcGFyc2VUeXBlVmFsdWUoXCJ5ZWFyXCIsdCkpKSl9LHNldE1vbnRoOmZ1bmN0aW9uKHQsZSl7dGhpcy5lZGl0YWJsZSYmKGV8fCh0aGlzLnZpZXc9XCJkYXlcIiksdGhpcy5tb2RlbD1hZGp1c3REYXRlKHRoaXMubW9kZWwse21vbnRoOnR9KSl9LG1vdmVGYWtlTW9udGg6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5mYWtlTW9udGgrKHQ+MD8xOi0xKSxpPXRoaXMuZmFrZVllYXI7aWYoZTwxPyhlPTEyLGktPTEpOmU+MTImJihlPTEsaSs9MSksbnVsbCE9PXRoaXMucG1pbiYmdD4wKXt2YXIgcz10aGlzLnBtaW4uZ2V0RnVsbFllYXIoKSxuPXRoaXMucG1pbi5nZXRNb250aCgpKzE7aTxzPyhpPXMsZT1uKTppPT09cyYmZTxuJiYoZT1uKX1pZihudWxsIT09dGhpcy5wbWF4JiZ0PDApe3ZhciBvPXRoaXMucG1heC5nZXRGdWxsWWVhcigpLHI9dGhpcy5wbWF4LmdldE1vbnRoKCkrMTtpPm8/KGk9byxlPXIpOmk9PT1vJiZlPnImJihlPXIpfXRoaXMuZmFrZVZhbHVlLnllYXI9aSx0aGlzLmZha2VWYWx1ZS5tb250aD1lfSxzZXREYXk6ZnVuY3Rpb24odCxlLGkscyl7aWYodGhpcy5lZGl0YWJsZSl7aWYoaSYmcyl7dmFyIG49YWRqdXN0RGF0ZSh0aGlzLm1vZGVsLHttb250aDpzfSk7bi5zZXRGdWxsWWVhcih0aGlzLl9fcGFyc2VUeXBlVmFsdWUoXCJ5ZWFyXCIsaSkpLG4uc2V0RGF0ZSh0aGlzLl9fcGFyc2VUeXBlVmFsdWUoXCJkYXRlXCIsdCkpLHRoaXMubW9kZWw9bn1lbHNlIHRoaXMubW9kZWw9bmV3IERhdGUobmV3IERhdGUodGhpcy5tb2RlbCkuc2V0RGF0ZSh0aGlzLl9fcGFyc2VUeXBlVmFsdWUoXCJkYXRlXCIsdCkpKTtlfHxcImRhdGVcIiE9PXRoaXMudHlwZT9lfHwodGhpcy52aWV3PVwiaG91clwiKToodGhpcy4kZW1pdChcImNhbkNsb3NlXCIpLHRoaXMubWluaW1hbCYmdGhpcy5zZXRWaWV3KHRoaXMuZGVmYXVsdFZpZXcpKX19LHNldEhvdXI6ZnVuY3Rpb24odCl7dGhpcy5lZGl0YWJsZSYmKHQ9dGhpcy5fX3BhcnNlVHlwZVZhbHVlKFwiaG91clwiLHQpLCF0aGlzLmNvbXB1dGVkRm9ybWF0MjRoJiZ0PDEyJiYhdGhpcy5hbSYmKHQrPTEyKSx0aGlzLm1vZGVsPW5ldyBEYXRlKG5ldyBEYXRlKHRoaXMubW9kZWwpLnNldEhvdXJzKHQpKSl9LHNldE1pbnV0ZTpmdW5jdGlvbih0KXt0aGlzLmVkaXRhYmxlJiYodGhpcy5tb2RlbD1uZXcgRGF0ZShuZXcgRGF0ZSh0aGlzLm1vZGVsKS5zZXRNaW51dGVzKHRoaXMuX19wYXJzZVR5cGVWYWx1ZShcIm1pbnV0ZVwiLHQpKSkpfSxzZXRWaWV3OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19jYWxjVmlldyh0KTt0aGlzLnZpZXchPT1lJiYodGhpcy52aWV3PWUpfSxfX2NhbGNWaWV3OmZ1bmN0aW9uKHQpe3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2VcInRpbWVcIjpyZXR1cm5bXCJob3VyXCIsXCJtaW51dGVcIl0uaW5jbHVkZXModCk/dDpcImhvdXJcIjtjYXNlXCJkYXRlXCI6cmV0dXJuW1wieWVhclwiLFwibW9udGhcIixcImRheVwiXS5pbmNsdWRlcyh0KT90OlwiZGF5XCI7ZGVmYXVsdDpyZXR1cm5bXCJ5ZWFyXCIsXCJtb250aFwiLFwiZGF5XCIsXCJob3VyXCIsXCJtaW51dGVcIl0uaW5jbHVkZXModCk/dDpcImRheVwifX0sX19wYWQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4odDwxMD9lfHxcIjBcIjpcIlwiKSt0fSxfX3Njcm9sbFZpZXc6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZihcInllYXJcIj09PXRoaXMudmlld3x8XCJtb250aFwiPT09dGhpcy52aWV3KXt0JiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5fX3Njcm9sbFZpZXcoKX0sMjAwKTt2YXIgaT10aGlzLiRyZWZzLnNlbGVjdG9yLHM9aT9pLnF1ZXJ5U2VsZWN0b3IoXCIucS1idG46bm90KC5hY3RpdmUpXCIpOm51bGwsbj1pP2kucXVlcnlTZWxlY3RvcihcIi5xLWJ0bi5hY3RpdmVcIik6bnVsbCxvPWk/aS5vZmZzZXRIZWlnaHQ6MDt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3ZhciB0PVwieWVhclwiPT09ZS52aWV3P2UueWVhci1lLnllYXJJbnRlcnZhbC5taW46ZS5tb250aC1lLm1vbnRoTWluLTE7byYmbiYmKGkuc2Nyb2xsVG9wPXQqKHM/cy5vZmZzZXRIZWlnaHQ6MCkrKG4ub2Zmc2V0SGVpZ2h0LW8pLzIpfSl9fSxfX2RyYWdTdGFydDpmdW5jdGlvbih0LGUpe3N0b3BBbmRQcmV2ZW50KHQpO3ZhciBpPXRoaXMuJHJlZnMuY2xvY2sscz1vZmZzZXQoaSk7dGhpcy5jZW50ZXJDbG9ja1Bvcz17dG9wOnMudG9wK2hlaWdodChpKS8yLGxlZnQ6cy5sZWZ0K3dpZHRoKGkpLzJ9LHRoaXMuZHJhZ2dpbmc9ITAsdGhpcy5fX3VwZGF0ZUNsb2NrKHQsZSl9LF9fZHJhZ01vdmU6ZnVuY3Rpb24odCl7dGhpcy5kcmFnZ2luZyYmKHN0b3BBbmRQcmV2ZW50KHQpLHRoaXMuX191cGRhdGVDbG9jayh0KSl9LF9fZHJhZ1N0b3A6ZnVuY3Rpb24odCxlKXtzdG9wQW5kUHJldmVudCh0KSx0aGlzLmRyYWdnaW5nPSExLHZvaWQgMCE9PXQmJnRoaXMuX191cGRhdGVDbG9jayh0LGUpLFwibWludXRlXCI9PT10aGlzLnZpZXc/KHRoaXMuJGVtaXQoXCJjYW5DbG9zZVwiKSx0aGlzLm1pbmltYWwmJnRoaXMuc2V0Vmlldyh0aGlzLmRlZmF1bHRWaWV3KSk6dGhpcy52aWV3PVwibWludXRlXCJ9LF9fdXBkYXRlQ2xvY2s6ZnVuY3Rpb24odCxlKXtpZih2b2lkIDAhPT1lKXJldHVybiB0aGlzW1wiaG91clwiPT09dGhpcy52aWV3P1wic2V0SG91clwiOlwic2V0TWludXRlXCJdKGUpO3ZhciBpPXBvc2l0aW9uKHQpLHM9TWF0aC5hYnMoaS50b3AtdGhpcy5jZW50ZXJDbG9ja1Bvcy50b3ApLG49TWF0aC5zcXJ0KE1hdGgucG93KE1hdGguYWJzKGkudG9wLXRoaXMuY2VudGVyQ2xvY2tQb3MudG9wKSwyKStNYXRoLnBvdyhNYXRoLmFicyhpLmxlZnQtdGhpcy5jZW50ZXJDbG9ja1Bvcy5sZWZ0KSwyKSksbz1NYXRoLmFzaW4ocy9uKSooMTgwL01hdGguUEkpO2lmKG89aS50b3A8dGhpcy5jZW50ZXJDbG9ja1Bvcy50b3A/dGhpcy5jZW50ZXJDbG9ja1Bvcy5sZWZ0PGkubGVmdD85MC1vOjI3MCtvOnRoaXMuY2VudGVyQ2xvY2tQb3MubGVmdDxpLmxlZnQ/bys5MDoyNzAtbyxcImhvdXJcIj09PXRoaXMudmlldyl7dmFyIHI9TWF0aC5yb3VuZChvLzMwKTt0aGlzLmNvbXB1dGVkRm9ybWF0MjRoJiYocj9uPDg1JiYocis9MTIpOnI9bjw4NT8wOjEyKSx0aGlzLnNldEhvdXIocil9ZWxzZSB0aGlzLnNldE1pbnV0ZShNYXRoLnJvdW5kKG8vNikpfSxfX3JlcGVhdFRpbWVvdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWF4KDEwMCwzMDAtdCp0KjEwKX0sX19nZXRUb3BTZWN0aW9uOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT1bdGhpcy50eXBlSGFzRGF0ZT90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS13ZWVrZGF5c3RyaW5nXCJ9LFt0aGlzLndlZWtEYXlTdHJpbmddKTp2b2lkIDAsdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbFwifSldO2lmKHRoaXMudHlwZUhhc0RhdGUpe3ZhciBzPVt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1kYXRlc3RyaW5nIHJvdyBqdXN0aWZ5LWNlbnRlciBpdGVtcy1lbmRcIn0sW3QoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1saW5rIHNtYWxsIGNvbC1hdXRvIGNvbC1tZC0xMlwiLGNsYXNzOnthY3RpdmU6XCJtb250aFwiPT09dGhpcy52aWV3fSxhdHRyczp7dGFiaW5kZXg6MH0sb246e2tleWRvd246ZnVuY3Rpb24odCl7dmFyIGk9Z2V0RXZlbnRLZXkodCk7Mzg9PT1pfHwzOT09PWk/KHN0b3BBbmRQcmV2ZW50KHQpLGUuc2V0TW9udGgoZS5tb250aC0xLCEwKSk6NDA9PT1pfHwzNz09PWk/KHN0b3BBbmRQcmV2ZW50KHQpLGUuc2V0TW9udGgoZS5tb250aCsxLCEwKSk6MTMhPT1pJiYyMCE9PWl8fChlLnZpZXc9XCJtb250aFwiKX19fSxbdChcInNwYW5cIix7YXR0cnM6e3RhYmluZGV4Oi0xfSxvbjp0aGlzLmRpc2FibGU/e306e2NsaWNrOmZ1bmN0aW9uKCl7ZS52aWV3PVwibW9udGhcIn19fSxbdGhpcy5tb250aFN0cmluZ10pXSksdChcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWxpbmsgY29sLWF1dG8gY29sLW1kLTEyXCIsY2xhc3M6e2FjdGl2ZTpcImRheVwiPT09dGhpcy52aWV3fSxhdHRyczp7dGFiaW5kZXg6MH0sb246e2tleWRvd246ZnVuY3Rpb24odCl7dmFyIGk9Z2V0RXZlbnRLZXkodCk7Mzc9PT1pfHwzOD09PWk/KHN0b3BBbmRQcmV2ZW50KHQpLGUuc2V0RGF5KGUuZGF5LSgzNz09PWk/MTo3KSwhMCkpOjM5PT09aXx8NDA9PT1pPyhzdG9wQW5kUHJldmVudCh0KSxlLnNldERheShlLmRheSsoMzk9PT1pPzE6NyksITApKToxMyE9PWkmJjIwIT09aXx8KGUudmlldz1cImRheVwiKX19fSxbdChcInNwYW5cIix7YXR0cnM6e3RhYmluZGV4Oi0xfSxvbjp0aGlzLmRpc2FibGU/e306e2NsaWNrOmZ1bmN0aW9uKCl7ZS52aWV3PVwiZGF5XCJ9fX0sW3RoaXMuZGF5XSldKSx0KFwic3BhblwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtbGluayBzbWFsbCBjb2wtYXV0byBjb2wtbWQtMTJcIixjbGFzczp7YWN0aXZlOlwieWVhclwiPT09dGhpcy52aWV3fSxhdHRyczp7dGFiaW5kZXg6MH0sb246e2tleWRvd246ZnVuY3Rpb24odCl7dmFyIGk9Z2V0RXZlbnRLZXkodCk7Mzg9PT1pfHwzOT09PWk/KHN0b3BBbmRQcmV2ZW50KHQpLGUuc2V0WWVhcihlLnllYXItMSwhMCkpOjQwPT09aXx8Mzc9PT1pPyhzdG9wQW5kUHJldmVudCh0KSxlLnNldFllYXIoZS55ZWFyKzEsITApKToxMyE9PWkmJjIwIT09aXx8KGUudmlldz1cInllYXJcIil9fX0sW3QoXCJzcGFuXCIse2F0dHJzOnt0YWJpbmRleDotMX0sb246dGhpcy5kaXNhYmxlP3t9OntjbGljazpmdW5jdGlvbigpe2Uudmlldz1cInllYXJcIn19fSxbdGhpcy55ZWFyXSldKV0pXTtpLnB1c2godChcImRpdlwiLHMpKX1pZih0aGlzLnR5cGVIYXNUaW1lKXt2YXIgbj0hdGhpcy5jb21wdXRlZEZvcm1hdDI0aCYmdChcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWFtcG0gY29sdW1uXCIsYXR0cnM6e3RhYmluZGV4OjB9LG9uOnRoaXMuX19hbVBtRXZlbnRzfSxbdChcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWxpbmtcIixjbGFzczp7YWN0aXZlOnRoaXMuYW19fSxbdChcInNwYW5cIix7YXR0cnM6e3RhYmluZGV4Oi0xfSxvbjp7Y2xpY2s6dGhpcy50b2dnbGVBbVBtfX0sW1wiQU1cIl0pXSksdChcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWxpbmtcIixjbGFzczp7YWN0aXZlOiF0aGlzLmFtfX0sW3QoXCJzcGFuXCIse2F0dHJzOnt0YWJpbmRleDotMX0sb246e2NsaWNrOnRoaXMudG9nZ2xlQW1QbX19LFtcIlBNXCJdKV0pXSksbz1bdChcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJjb2wtYXV0b1wiLHN0eWxlOnt0ZXh0QWxpZ246XCJyaWdodFwifX0sW3QoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1saW5rXCIsc3R5bGU6e3RleHRBbGlnbjpcInJpZ2h0XCJ9LGNsYXNzOnthY3RpdmU6XCJob3VyXCI9PT10aGlzLnZpZXd9LGF0dHJzOnt0YWJpbmRleDowfSxvbjp7a2V5ZG93bjpmdW5jdGlvbih0KXt2YXIgaT1nZXRFdmVudEtleSh0KTs0MD09PWl8fDM3PT09aT8oc3RvcEFuZFByZXZlbnQodCksZS5zZXRIb3VyKGUuaG91ci0xLCEwKSk6Mzg9PT1pfHwzOT09PWk/KHN0b3BBbmRQcmV2ZW50KHQpLGUuc2V0SG91cihlLmhvdXIrMSwhMCkpOjEzIT09aSYmMjAhPT1pfHwoZS52aWV3PVwiaG91clwiKX19fSxbdChcInNwYW5cIix7YXR0cnM6e3RhYmluZGV4Oi0xfSxvbjp0aGlzLmRpc2FibGU/e306e2NsaWNrOmZ1bmN0aW9uKCl7ZS52aWV3PVwiaG91clwifX19LFt0aGlzLmNvbXB1dGVkRm9ybWF0MjRoP3RoaXMuX19wYWQodGhpcy5ob3VyKTp0aGlzLmhvdXJdKV0pXSksdChcInNwYW5cIix7c3R5bGU6XCJvcGFjaXR5OjAuNjtcIn0sW1wiOlwiXSksdChcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJjb2wtYXV0byByb3cgbm8td3JhcCBpdGVtcy1jZW50ZXJcIixzdHlsZTp7dGV4dEFsaWduOlwibGVmdFwifX0sW3QoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1saW5rXCIsc3R5bGU6e3RleHRBbGlnbjpcImxlZnRcIn0sY2xhc3M6e2FjdGl2ZTpcIm1pbnV0ZVwiPT09dGhpcy52aWV3fSxhdHRyczp7dGFiaW5kZXg6MH0sb246e2tleWRvd246ZnVuY3Rpb24odCl7dmFyIGk9Z2V0RXZlbnRLZXkodCk7NDA9PT1pfHwzNz09PWk/KHN0b3BBbmRQcmV2ZW50KHQpLGUuc2V0TWludXRlKGUubWludXRlLTEsITApKTozOD09PWl8fDM5PT09aT8oc3RvcEFuZFByZXZlbnQodCksZS5zZXRNaW51dGUoZS5taW51dGUrMSwhMCkpOjEzIT09aSYmMjAhPT1pfHwoZS52aWV3PVwibWludXRlXCIpfX19LFt0KFwic3BhblwiLHthdHRyczp7dGFiaW5kZXg6LTF9LG9uOnRoaXMuZGlzYWJsZT97fTp7Y2xpY2s6ZnVuY3Rpb24oKXtlLnZpZXc9XCJtaW51dGVcIn19fSxbdGhpcy5fX3BhZCh0aGlzLm1pbnV0ZSldKV0pLG5dKV07aS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLXRpbWUgcm93IHNjcm9sbCBmbGV4LWNlbnRlclwifSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtY2xvY2tzdHJpbmcgY29sIHJvdyBqdXN0aWZ5LWNlbnRlciBpdGVtcy1zdGFydFwifSxvKV0pKX1yZXR1cm4gaS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2xcIn0pKSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1oZWFkZXIgY29sdW1uIG5vLXdyYXAgaXRlbXMtY2VudGVyXCJ9LGkpfSxfX2dldFllYXJWaWV3OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLGk9W3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wtZ3Jvd1wifSldLHM9ZnVuY3Rpb24ocyl7aS5wdXNoKHQoUUJ0bix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWJ0biBuby1ib3JkZXItcmFkaXVzXCIsY2xhc3M6e2FjdGl2ZTpzPT09ZS55ZWFyfSxhdHRyczp7dGFiaW5kZXg6LTF9LHByb3BzOntmbGF0OiEwLGRpc2FibGU6IWUuZWRpdGFibGV9LG9uOntjbGljazpmdW5jdGlvbigpe2Uuc2V0WWVhcihzKX19fSxbc10pKX0sbj10aGlzLnllYXJJbnRlcnZhbC5taW47bjw9dGhpcy55ZWFySW50ZXJ2YWwubWF4O24rKylzKG4pO3JldHVybiBpLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbC1ncm93XCJ9KSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtdmlldy15ZWFyIGZpdCBjb2x1bW4gbm8td3JhcFwifSxpKX0sX19nZXRNb250aFZpZXc6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMsaT1bdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbC1ncm93XCJ9KV0scz1mdW5jdGlvbihzKXtpLnB1c2godChRQnRuLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtYnRuIG5vLWJvcmRlci1yYWRpdXNcIixjbGFzczp7YWN0aXZlOnMrMT09PWUubW9udGh9LGF0dHJzOnt0YWJpbmRleDotMX0scHJvcHM6e2ZsYXQ6ITAsZGlzYWJsZTohZS5lZGl0YWJsZX0sb246e2NsaWNrOmZ1bmN0aW9uKCl7ZS5zZXRNb250aChzKzEpfX19LFtlLiRxLmkxOG4uZGF0ZS5tb250aHNbc11dKSl9LG49dGhpcy5tb250aEludGVydmFsLm1pbjtuPD10aGlzLm1vbnRoSW50ZXJ2YWwubWF4O24rKylzKG4pO3JldHVybiBpLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbC1ncm93XCJ9KSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtdmlldy1tb250aCBmaXQgY29sdW1uIG5vLXdyYXBcIn0saSl9LF9fZ2V0RGF5VmlldzpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcyxpPVtdLHM9dGhpcy5mYWtlTW9udGg9PT10aGlzLm1vbnRoJiZ0aGlzLmZha2VZZWFyPT09dGhpcy55ZWFyP3RoaXMuZGF5Oi0xLG49MTtuPD10aGlzLmZpbGxlckRheXM7bisrKWkucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1maWxsZXJkYXlcIn0pKTtpZih0aGlzLm1pbilmb3IodmFyIG89MTtvPD10aGlzLmJlZm9yZU1pbkRheXM7bysrKWkucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicm93IGl0ZW1zLWNlbnRlciBjb250ZW50LWNlbnRlciBqdXN0aWZ5LWNlbnRlciBkaXNhYmxlZFwiLGNsYXNzOntcInEtZGF0ZXRpbWUtZGF5LWFjdGl2ZVwiOmUuaXNWYWxpZCYmbz09PXN9fSxbdChcInNwYW5cIixbb10pXSkpO2Zvcih2YXIgcj10aGlzLmRhdGVJbnRlcnZhbCxhPXIubWluLGw9ci5tYXgsYz1mdW5jdGlvbihuKXtpLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInJvdyBpdGVtcy1jZW50ZXIgY29udGVudC1jZW50ZXIganVzdGlmeS1jZW50ZXIgY3Vyc29yLXBvaW50ZXJcIixjbGFzczpbZS5jb2xvciYmbj09PXM/XCJ0ZXh0LVwiK2UuY29sb3I6bnVsbCx7XCJxLWRhdGV0aW1lLWRheS1hY3RpdmVcIjplLmlzVmFsaWQmJm49PT1zLFwicS1kYXRldGltZS1kYXktdG9kYXlcIjpuPT09ZS50b2RheSxkaXNhYmxlZDohZS5lZGl0YWJsZX1dLG9uOntjbGljazpmdW5jdGlvbigpe2Uuc2V0RGF5KG4sITEsZS5mYWtlWWVhcixlLmZha2VNb250aCl9fX0sW3QoXCJzcGFuXCIsW25dKV0pKX0saD1hO2g8PWw7aCsrKWMoaCk7aWYodGhpcy5tYXgpZm9yKHZhciB1PTE7dTw9dGhpcy5hZnRlck1heERheXM7dSsrKWkucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicm93IGl0ZW1zLWNlbnRlciBjb250ZW50LWNlbnRlciBqdXN0aWZ5LWNlbnRlciBkaXNhYmxlZFwiLGNsYXNzOntcInEtZGF0ZXRpbWUtZGF5LWFjdGl2ZVwiOmUuaXNWYWxpZCYmdStlLm1heERheT09PXN9fSxbdChcInNwYW5cIixbdStlLm1heERheV0pXSkpO3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS12aWV3LWRheVwifSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInJvdyBpdGVtcy1jZW50ZXIgY29udGVudC1jZW50ZXJcIn0sW3QoUUJ0bix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWFycm93XCIsYXR0cnM6e3RhYmluZGV4Oi0xfSxwcm9wczp7cm91bmQ6ITAsZGVuc2U6ITAsZmxhdDohMCxpY29uOnRoaXMuZGF0ZUFycm93WzBdLHJlcGVhdFRpbWVvdXQ6dGhpcy5fX3JlcGVhdFRpbWVvdXQsZGlzYWJsZTp0aGlzLmJlZm9yZU1pbkRheXM+MHx8dGhpcy5kaXNhYmxlfHx0aGlzLnJlYWRvbmx5fSxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtlLm1vdmVGYWtlTW9udGgoLTEpfX19KSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sIHEtZGF0ZXRpbWUtbW9udGgtc3RhbXBcIn0sW3RoaXMubW9udGhTdGFtcF0pLHQoUUJ0bix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWFycm93XCIsYXR0cnM6e3RhYmluZGV4Oi0xfSxwcm9wczp7cm91bmQ6ITAsZGVuc2U6ITAsZmxhdDohMCxpY29uOnRoaXMuZGF0ZUFycm93WzFdLHJlcGVhdFRpbWVvdXQ6dGhpcy5fX3JlcGVhdFRpbWVvdXQsZGlzYWJsZTp0aGlzLmFmdGVyTWF4RGF5cz4wfHx0aGlzLmRpc2FibGV8fHRoaXMucmVhZG9ubHl9LG9uOntjbGljazpmdW5jdGlvbigpe2UubW92ZUZha2VNb250aCgxKX19fSldKSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS13ZWVrZGF5cyByb3cgbm8td3JhcCBpdGVtcy1jZW50ZXIganVzdGlmeS1zdGFydFwifSx0aGlzLmhlYWRlckRheU5hbWVzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdChcImRpdlwiLFtlXSl9KSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtZGF5cyByb3cgd3JhcCBpdGVtcy1jZW50ZXIganVzdGlmeS1zdGFydCBjb250ZW50LWNlbnRlclwifSxpKV0pfSxfX2dldENsb2NrVmlldzpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9W107aWYoXCJob3VyXCI9PT10aGlzLnZpZXcpe3ZhciBzLG4sbz1cIlwiO3RoaXMuY29tcHV0ZWRGb3JtYXQyNGg/KHM9MCxuPTI0LG89XCIgZm10MjRcIik6KHM9MSxuPTEzKTtmb3IodmFyIHI9ZnVuY3Rpb24ocyl7aS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWNsb2NrLXBvc2l0aW9uXCIrbyxjbGFzczpbXCJxLWRhdGV0aW1lLWNsb2NrLXBvcy1cIitzLHM9PT1lLmhvdXI/XCJhY3RpdmVcIjpcIlwiXSxvbjp7XCIhbW91c2Vkb3duXCI6ZnVuY3Rpb24odCl7cmV0dXJuIGUuX19kcmFnU3RhcnQodCxzKX0sXCIhbW91c2V1cFwiOmZ1bmN0aW9uKHQpe3JldHVybiBlLl9fZHJhZ1N0b3AodCxzKX19fSxbdChcInNwYW5cIixbc3x8XCIwMFwiXSldKSl9LGE9czthPG47YSsrKXIoYSl9ZWxzZSBmb3IodmFyIGw9MDtsPDEyO2wrKyl7dmFyIGM9NSpsO2kucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1jbG9jay1wb3NpdGlvblwiLGNsYXNzOltcInEtZGF0ZXRpbWUtY2xvY2stcG9zLVwiK2wsYz09PWUubWludXRlP1wiYWN0aXZlXCI6XCJcIl19LFt0KFwic3BhblwiLFtjXSldKSl9cmV0dXJuIHQoXCJkaXZcIix7cmVmOlwiY2xvY2tcIixrZXk6XCJjbG9ja1wiK3RoaXMudmlldyxzdGF0aWNDbGFzczpcImNvbHVtbiBpdGVtcy1jZW50ZXIgY29udGVudC1jZW50ZXIganVzdGlmeS1jZW50ZXJcIn0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWNsb2NrIGN1cnNvci1wb2ludGVyXCIsb246e21vdXNlZG93bjp0aGlzLl9fZHJhZ1N0YXJ0LG1vdXNlbW92ZTp0aGlzLl9fZHJhZ01vdmUsbW91c2V1cDp0aGlzLl9fZHJhZ1N0b3AsdG91Y2hzdGFydDp0aGlzLl9fZHJhZ1N0YXJ0LHRvdWNobW92ZTp0aGlzLl9fZHJhZ01vdmUsdG91Y2hlbmQ6dGhpcy5fX2RyYWdTdG9wfX0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWNsb2NrLWNpcmNsZSBmdWxsLXdpZHRoIGZ1bGwtaGVpZ2h0XCJ9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1jbG9jay1jZW50ZXJcIn0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWNsb2NrLXBvaW50ZXJcIixzdHlsZTp0aGlzLmNsb2NrUG9pbnRlclN0eWxlfSxbdChcInNwYW5cIildKSxpXSldKV0pfSxfX2dldFZpZXdTZWN0aW9uOmZ1bmN0aW9uKHQpe3N3aXRjaCh0aGlzLnZpZXcpe2Nhc2VcInllYXJcIjpyZXR1cm4gdGhpcy5fX2dldFllYXJWaWV3KHQpO2Nhc2VcIm1vbnRoXCI6cmV0dXJuIHRoaXMuX19nZXRNb250aFZpZXcodCk7Y2FzZVwiZGF5XCI6cmV0dXJuIHRoaXMuX19nZXREYXlWaWV3KHQpO2Nhc2VcImhvdXJcIjpjYXNlXCJtaW51dGVcIjpyZXR1cm4gdGhpcy5fX2dldENsb2NrVmlldyh0KX19fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLl9fYW1QbUV2ZW50cz17a2V5ZG93bjpmdW5jdGlvbihlKXt2YXIgaT1nZXRFdmVudEtleShlKTtbMTMsMzIsMzcsMzgsMzksNDBdLmluY2x1ZGVzKGkpJiYoc3RvcEFuZFByZXZlbnQoZSksdC50b2dnbGVBbVBtKCkpfX19LG1vdW50ZWQ6ZnVuY3Rpb24oKXt0aGlzLl9fc2Nyb2xsVmlldyghMCl9LHJlbmRlcjpmdW5jdGlvbih0KXtpZih0aGlzLmNhblJlbmRlcilyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUgcm93XCIsY2xhc3M6dGhpcy5jbGFzc2VzfSxbIXRoaXMubWluaW1hbCYmdGhpcy5fX2dldFRvcFNlY3Rpb24odCl8fHZvaWQgMCx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1jb250ZW50IHNjcm9sbFwifSxbdChcImRpdlwiLHtyZWY6XCJzZWxlY3RvclwiLHN0YXRpY0NsYXNzOlwicS1kYXRldGltZS1zZWxlY3RvciByb3cgaXRlbXMtY2VudGVyXCJ9LFt0KFwiZGl2XCIse2NsYXNzOlwiY29sXCJ9KSx0aGlzLl9fZ2V0Vmlld1NlY3Rpb24odCksdChcImRpdlwiLHtjbGFzczpcImNvbFwifSldKV0uY29uY2F0KHRoaXMuJHNsb3RzLmRlZmF1bHQpKV0pfX0sY29udGVudENzcyQxPXttYXhXaWR0aDpcIjk1dndcIixtYXhIZWlnaHQ6XCI5OHZoXCJ9LFFEYXRldGltZT17bmFtZTpcIlFEYXRldGltZVwiLG1peGluczpbRnJhbWVNaXhpbixEaXNwbGF5TW9kZU1peGluLENhblJlbmRlck1peGluXSxwcm9wczpPYmplY3QuYXNzaWduKHt9LGlucHV0LGlubGluZSksd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpeyF0aGlzLmRpc2FibGUmJnRoaXMuaXNQb3BvdmVyJiYodGhpcy5tb2RlbD1jbG9uZSQxKHQpKX19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57dHJhbnNpdGlvbjpudWxsLG1vZGVsOm51bGwsZm9jdXNlZDohMX19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLm1vZGVsPWNsb25lJDEodGhpcy5jb21wdXRlZFZhbHVlKSx0aGlzLmlzUG9wb3Zlcnx8KHRoaXMudHJhbnNpdGlvbj1cInEtbW9kYWxcIil9LGNvbXB1dGVkOntjb21wdXRlZEZvcm1hdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZvcm1hdD90aGlzLmZvcm1hdDpcImRhdGVcIj09PXRoaXMudHlwZT9cIllZWVkvTU0vRERcIjpcInRpbWVcIj09PXRoaXMudHlwZT9cIkhIOm1tXCI6XCJZWVlZL01NL0REIEhIOm1tOnNzXCJ9LGFjdHVhbFZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGlzcGxheVZhbHVlP3RoaXMuZGlzcGxheVZhbHVlOmlzVmFsaWQodGhpcy52YWx1ZSkmJnRoaXMuY2FuUmVuZGVyP2Zvcm1hdERhdGUodGhpcy52YWx1ZSx0aGlzLmNvbXB1dGVkRm9ybWF0LHRoaXMuJHEuaTE4bi5kYXRlKTpcIlwifSxjb21wdXRlZFZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGlzVmFsaWQodGhpcy52YWx1ZSk/dGhpcy52YWx1ZTp0aGlzLmRlZmF1bHRWYWx1ZX0sY29tcHV0ZWRDbGVhclZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PXRoaXMuY2xlYXJWYWx1ZT90aGlzLmRlZmF1bHRWYWx1ZTp0aGlzLmNsZWFyVmFsdWV9LGlzQ2xlYXJhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRpdGFibGUmJnRoaXMuY2xlYXJhYmxlJiYhaXNTYW1lRGF0ZSh0aGlzLmNvbXB1dGVkQ2xlYXJWYWx1ZSx0aGlzLnZhbHVlKX0sbW9kYWxCdG5Db2xvcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbG9yfX0sbWV0aG9kczp7dG9nZ2xlOmZ1bmN0aW9uKCl7dGhpcy4kcmVmcy5wb3B1cCYmdGhpc1t0aGlzLiRyZWZzLnBvcHVwLnNob3dpbmc/XCJoaWRlXCI6XCJzaG93XCJdKCl9LHNob3c6ZnVuY3Rpb24oKXtpZighdGhpcy5kaXNhYmxlKXJldHVybiB0aGlzLl9fc2V0TW9kZWwodGhpcy5jb21wdXRlZFZhbHVlKSx0aGlzLiRyZWZzLnBvcHVwLnNob3coKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRyZWZzLnBvcHVwP3RoaXMuJHJlZnMucG9wdXAuaGlkZSgpOlByb21pc2UucmVzb2x2ZSgpfSxfX2hhbmRsZUtleURvd246ZnVuY3Rpb24odCl7c3dpdGNoKGdldEV2ZW50S2V5KHQpKXtjYXNlIDEzOmNhc2UgMzI6cmV0dXJuIHN0b3BBbmRQcmV2ZW50KHQpLHRoaXMuc2hvdygpO2Nhc2UgODp0aGlzLmlzQ2xlYXJhYmxlJiZ0aGlzLmNsZWFyKCl9fSxfX29uRm9jdXM6ZnVuY3Rpb24oKXtpZighdGhpcy5kaXNhYmxlJiYhdGhpcy5mb2N1c2VkKXt2YXIgdD10aGlzLiRyZWZzLnRhcmdldDt0JiZ0LnNldFZpZXcodGhpcy5kZWZhdWx0VmlldywhMCksdGhpcy5tb2RlbD1jbG9uZSQxKHRoaXMuY29tcHV0ZWRWYWx1ZSksdGhpcy5mb2N1c2VkPSEwLHRoaXMuJGVtaXQoXCJmb2N1c1wiKX19LF9fb25CbHVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5mb2N1c2VkJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtlLiRyZWZzLnBvcHVwJiZlLiRyZWZzLnBvcHVwLnNob3dpbmcmJih0PT09ZG9jdW1lbnQuYm9keXx8ZS4kcmVmcy5wb3B1cC4kZWwuY29udGFpbnModCkpfHwoZS5fX29uSGlkZSgpLGUuaGlkZSgpKX0sMSl9LF9fb25IaWRlOmZ1bmN0aW9uKHQsZSl7KHR8fHRoaXMuaXNQb3BvdmVyKSYmdGhpcy5fX3VwZGF0ZSh0KSx0aGlzLmZvY3VzZWQmJihlP3RoaXMuJGVsLmZvY3VzKCk6KHRoaXMuJGVtaXQoXCJibHVyXCIpLHRoaXMuZm9jdXNlZD0hMSkpfSxfX3NldE1vZGVsOmZ1bmN0aW9uKHQsZSl7dGhpcy5tb2RlbD1jbG9uZSQxKHQpLChlfHx0aGlzLmlzUG9wb3ZlcikmJnRoaXMuX191cGRhdGUoZSl9LF9fdXBkYXRlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtpc1NhbWVEYXRlKGUubW9kZWwsZS52YWx1ZSl8fChlLiRlbWl0KFwiaW5wdXRcIixlLm1vZGVsKSx0JiZlLiRlbWl0KFwiY2hhbmdlXCIsZS5tb2RlbCkpfSl9LF9fc2Nyb2xsVmlldzpmdW5jdGlvbigpe3ZhciB0PXRoaXMuJHJlZnMudGFyZ2V0O3QmJnQuX19zY3JvbGxWaWV3KCl9LF9fZ2V0UGlja2VyOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcztyZXR1cm5bdChRRGF0ZXRpbWVQaWNrZXIse3JlZjpcInRhcmdldFwiLHN0YXRpY0NsYXNzOlwibm8tYm9yZGVyXCIsY2xhc3M6e1wiZGF0ZXRpbWUtaW9zLW1vZGFsXCI6ITF9LHByb3BzOnt0eXBlOnRoaXMudHlwZSxtaW46dGhpcy5taW4sbWF4OnRoaXMubWF4LGhlYWRlckxhYmVsOnRoaXMuaGVhZGVyTGFiZWwsbWluaW1hbDp0aGlzLm1pbmltYWwsZm9ybWF0TW9kZWw6dGhpcy5mb3JtYXRNb2RlbCxmb3JtYXQyNGg6dGhpcy5mb3JtYXQyNGgsZmlyc3REYXlPZldlZWs6dGhpcy5maXJzdERheU9mV2VlayxkZWZhdWx0Vmlldzp0aGlzLmRlZmF1bHRWaWV3LGNvbG9yOnRoaXMuaW52ZXJ0ZWRMaWdodD9cImdyZXktN1wiOnRoaXMuY29sb3IsZGFyazp0aGlzLmRhcmssdmFsdWU6dGhpcy5tb2RlbCxkaXNhYmxlOnRoaXMuZGlzYWJsZSxyZWFkb25seTp0aGlzLnJlYWRvbmx5LG5vUGFyZW50RmllbGQ6ITB9LG9uOntpbnB1dDpmdW5jdGlvbih0KXtyZXR1cm4gaS4kbmV4dFRpY2soZnVuY3Rpb24oKXtyZXR1cm4gaS5fX3NldE1vZGVsKHQpfSl9LGNhbkNsb3NlOmZ1bmN0aW9uKCl7aS5pc1BvcG92ZXImJmkuaGlkZSgpfX19LFtlP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJtb2RhbC1idXR0b25zIG1vZGFsLWJ1dHRvbnMtdG9wIHJvdyBmdWxsLXdpZHRoXCJ9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sXCJ9KSx0KFFCdG4se3Byb3BzOntjb2xvcjp0aGlzLm1vZGFsQnRuQ29sb3IsZmxhdDohMCxsYWJlbDp0aGlzLmNhbmNlbExhYmVsfHx0aGlzLiRxLmkxOG4ubGFiZWwuY2FuY2VsLG5vUmlwcGxlOiEwfSxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtpLl9fb25IaWRlKCExLCEwKSxpLmhpZGUoKX19fSksdGhpcy5lZGl0YWJsZT90KFFCdG4se3Byb3BzOntjb2xvcjp0aGlzLm1vZGFsQnRuQ29sb3IsZmxhdDohMCxsYWJlbDp0aGlzLm9rTGFiZWx8fHRoaXMuJHEuaTE4bi5sYWJlbC5zZXQsbm9SaXBwbGU6ITAsZGlzYWJsZTohdGhpcy5tb2RlbH0sb246e2NsaWNrOmZ1bmN0aW9uKCl7aS5fX29uSGlkZSghMCwhMCksaS5oaWRlKCl9fX0pOm51bGxdKTpudWxsXSldfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoUUlucHV0RnJhbWUse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1pbnB1dFwiLHByb3BzOntwcmVmaXg6dGhpcy5wcmVmaXgsc3VmZml4OnRoaXMuc3VmZml4LHN0YWNrTGFiZWw6dGhpcy5zdGFja0xhYmVsLGZsb2F0TGFiZWw6dGhpcy5mbG9hdExhYmVsLGVycm9yOnRoaXMuZXJyb3Isd2FybmluZzp0aGlzLndhcm5pbmcsZGlzYWJsZTp0aGlzLmRpc2FibGUscmVhZG9ubHk6dGhpcy5yZWFkb25seSxpbnZlcnRlZDp0aGlzLmludmVydGVkLGludmVydGVkTGlnaHQ6dGhpcy5pbnZlcnRlZExpZ2h0LGRhcms6dGhpcy5kYXJrLGhpZGVVbmRlcmxpbmU6dGhpcy5oaWRlVW5kZXJsaW5lLGJlZm9yZTp0aGlzLmJlZm9yZSxhZnRlcjp0aGlzLmFmdGVyLGNvbG9yOnRoaXMuY29sb3Isbm9QYXJlbnRGaWVsZDp0aGlzLm5vUGFyZW50RmllbGQsZm9jdXNlZDp0aGlzLmZvY3VzZWR8fHRoaXMuJHJlZnMucG9wdXAmJnRoaXMuJHJlZnMucG9wdXAuc2hvd2luZyxmb2N1c2FibGU6ITAsbGVuZ3RoOnRoaXMuYWN0dWFsVmFsdWUubGVuZ3RofSxuYXRpdmVPbjp7Y2xpY2s6dGhpcy50b2dnbGUsZm9jdXM6dGhpcy5fX29uRm9jdXMsYmx1cjp0aGlzLl9fb25CbHVyLGtleWRvd246dGhpcy5fX2hhbmRsZUtleURvd259fSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbCBxLWlucHV0LXRhcmdldCBlbGxpcHNpc1wiLGNsYXNzOnRoaXMuZmFrZUlucHV0Q2xhc3Nlc30sW3RoaXMuZmFrZUlucHV0VmFsdWVdKSx0aGlzLmlzUG9wb3Zlcj90KFFQb3BvdmVyLHtyZWY6XCJwb3B1cFwiLHByb3BzOntjb3ZlcjohMCxrZWVwT25TY3JlZW46ITAsZGlzYWJsZTp0aGlzLmRpc2FibGUsYW5jaG9yQ2xpY2s6ITEsbWF4SGVpZ2h0OlwiMTAwdmhcIn0sc2xvdDpcImFmdGVyXCIsb246e3Nob3c6ZnVuY3Rpb24odCl7ZS5fX29uRm9jdXModCksZS5fX3Njcm9sbFZpZXcoKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiBlLl9fb25IaWRlKCEwLCEwKX19fSx0aGlzLl9fZ2V0UGlja2VyKHQpKTp0KFFNb2RhbCx7cmVmOlwicG9wdXBcIixzdGF0aWNDbGFzczpcIndpdGgtYmFja2Ryb3AgcS1kYXRldGltZS1tb2RhbFwiLHByb3BzOntjb250ZW50Q3NzOmNvbnRlbnRDc3MkMSxtaW5pbWl6ZWQ6ITAscG9zaXRpb246bnVsbCx0cmFuc2l0aW9uOnRoaXMudHJhbnNpdGlvbn0sb246e3Nob3c6dGhpcy5fX3Njcm9sbFZpZXcsZGlzbWlzczpmdW5jdGlvbigpe3JldHVybiBlLl9fb25IaWRlKCExLCEwKX19fSx0aGlzLl9fZ2V0UGlja2VyKHQsITApKSx0aGlzLmlzQ2xlYXJhYmxlP3QoUUljb24se3Nsb3Q6XCJhZnRlclwiLHByb3BzOntuYW1lOnRoaXMuJHEuaWNvbi5pbnB1dFtcImNsZWFyXCIrKHRoaXMuaXNJbnZlcnRlZD9cIkludmVydGVkXCI6XCJcIildfSxuYXRpdmVPbjp7Y2xpY2s6dGhpcy5jbGVhcn0sc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIn0pOm51bGwsdChRSWNvbix7c2xvdDpcImFmdGVyXCIscHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLmlucHV0LmRyb3Bkb3dufSxzdGF0aWNDbGFzczpcInEtaWYtY29udHJvbFwifSldKX19LGlucHV0VHlwZXM9W1widGV4dFwiLFwidGV4dGFyZWFcIixcImVtYWlsXCIsXCJzZWFyY2hcIixcInRlbFwiLFwiZmlsZVwiLFwibnVtYmVyXCIsXCJwYXNzd29yZFwiLFwidXJsXCIsXCJ0aW1lXCIsXCJkYXRlXCJdLFFSZXNpemVPYnNlcnZhYmxlPXtuYW1lOlwiUVJlc2l6ZU9ic2VydmFibGVcIixtaXhpbnM6W0NhblJlbmRlck1peGluXSxwcm9wczp7ZGVib3VuY2U6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MTAwfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhhc09ic2VydmVyP3t9Ont1cmw6dGhpcy4kcS5wbGF0Zm9ybS5pcy5pZT9udWxsOlwiYWJvdXQ6YmxhbmtcIn19LG1ldGhvZHM6e29uUmVzaXplOmZ1bmN0aW9uKCl7aWYodGhpcy50aW1lcj1udWxsLHRoaXMuJGVsJiZ0aGlzLiRlbC5wYXJlbnROb2RlKXt2YXIgdD10aGlzLiRlbC5wYXJlbnROb2RlLGU9e3dpZHRoOnQub2Zmc2V0V2lkdGgsaGVpZ2h0OnQub2Zmc2V0SGVpZ2h0fTtlLndpZHRoPT09dGhpcy5zaXplLndpZHRoJiZlLmhlaWdodD09PXRoaXMuc2l6ZS5oZWlnaHR8fCh0aGlzLnNpemU9ZSx0aGlzLiRlbWl0KFwicmVzaXplXCIsdGhpcy5zaXplKSl9fSx0cmlnZ2VyOmZ1bmN0aW9uKHQpeyEwPT09dHx8MD09PXRoaXMuZGVib3VuY2U/dGhpcy5vblJlc2l6ZSgpOnRoaXMudGltZXJ8fCh0aGlzLnRpbWVyPXNldFRpbWVvdXQodGhpcy5vblJlc2l6ZSx0aGlzLmRlYm91bmNlKSl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih0aGlzLmNhblJlbmRlciYmIXRoaXMuaGFzT2JzZXJ2ZXIpcmV0dXJuIHQoXCJvYmplY3RcIix7c3R5bGU6dGhpcy5zdHlsZSxhdHRyczp7dGFiaW5kZXg6LTEsdHlwZTpcInRleHQvaHRtbFwiLGRhdGE6dGhpcy51cmwsXCJhcmlhLWhpZGRlblwiOiEwfSxvbjp7bG9hZDpmdW5jdGlvbigpe2UuJGVsLmNvbnRlbnREb2N1bWVudC5kZWZhdWx0Vmlldy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsZS50cmlnZ2VyLGxpc3Rlbk9wdHMucGFzc2l2ZSksZS50cmlnZ2VyKCEwKX19fSl9LGJlZm9yZUNyZWF0ZTpmdW5jdGlvbigpe3RoaXMuc2l6ZT17d2lkdGg6LTEsaGVpZ2h0Oi0xfSxpc1NTUnx8KHRoaXMuaGFzT2JzZXJ2ZXI9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFJlc2l6ZU9ic2VydmVyLHRoaXMuaGFzT2JzZXJ2ZXJ8fCh0aGlzLnN0eWxlPSh0aGlzLiRxLnBsYXRmb3JtLmlzLmllP1widmlzaWJpbGl0eTpoaWRkZW47XCI6XCJcIikrXCJkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDotMTtcIikpfSxtb3VudGVkOmZ1bmN0aW9uKCl7aWYodGhpcy5oYXNPYnNlcnZlcilyZXR1cm4gdGhpcy5vYnNlcnZlcj1uZXcgUmVzaXplT2JzZXJ2ZXIodGhpcy50cmlnZ2VyKSx2b2lkIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLiRlbC5wYXJlbnROb2RlKTt0aGlzLnRyaWdnZXIoITApLHRoaXMuJHEucGxhdGZvcm0uaXMuaWUmJih0aGlzLnVybD1cImFib3V0OmJsYW5rXCIpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuaGFzT2JzZXJ2ZXI/dGhpcy4kZWwucGFyZW50Tm9kZSYmdGhpcy5vYnNlcnZlci51bm9ic2VydmUodGhpcy4kZWwucGFyZW50Tm9kZSk6dGhpcy4kZWwuY29udGVudERvY3VtZW50JiZ0aGlzLiRlbC5jb250ZW50RG9jdW1lbnQuZGVmYXVsdFZpZXcucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLHRoaXMudHJpZ2dlcixsaXN0ZW5PcHRzLnBhc3NpdmUpfX0sUUlucHV0PXtuYW1lOlwiUUlucHV0XCIsbWl4aW5zOltGcmFtZU1peGluLElucHV0TWl4aW5dLHByb3BzOnt2YWx1ZTp7cmVxdWlyZWQ6ITB9LHR5cGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJ0ZXh0XCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybiBpbnB1dFR5cGVzLmluY2x1ZGVzKHQpfX0sYWxpZ246e3R5cGU6U3RyaW5nLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJsZWZ0XCIsXCJjZW50ZXJcIixcInJpZ2h0XCJdLmluY2x1ZGVzKHQpfX0sbm9QYXNzVG9nZ2xlOkJvb2xlYW4sbnVtZXJpY0tleWJvYXJkVG9nZ2xlOkJvb2xlYW4scmVhZG9ubHk6Qm9vbGVhbixkZWNpbWFsczpOdW1iZXIsc3RlcDpOdW1iZXIsdXBwZXJDYXNlOkJvb2xlYW4sbG93ZXJDYXNlOkJvb2xlYW4saW5pdGlhbFNob3dQYXNzd29yZDpCb29sZWFufSxkYXRhOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm57c2hvd1Bhc3M6dGhpcy5pbml0aWFsU2hvd1Bhc3N3b3JkLHNob3dOdW1iZXI6ITAsbW9kZWw6dGhpcy52YWx1ZSx3YXRjaGVyOm51bGwsYXV0b2ZpbGxlZDohMSxzaGFkb3c6e3ZhbDp0aGlzLm1vZGVsLHNldDp0aGlzLl9fc2V0LHNldE5hdjp0aGlzLl9fc2V0LGxvYWRpbmc6ITEsd2F0Y2hlZDowLGlzRWRpdGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdC5lZGl0YWJsZX0saXNEYXJrOmZ1bmN0aW9uKCl7cmV0dXJuIHQuZGFya30saGFzRm9jdXM6ZnVuY3Rpb24oKXtyZXR1cm4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXQuJHJlZnMuaW5wdXR9LHJlZ2lzdGVyOmZ1bmN0aW9uKCl7dC5zaGFkb3cud2F0Y2hlZCs9MSx0Ll9fd2F0Y2hlclJlZ2lzdGVyKCl9LHVucmVnaXN0ZXI6ZnVuY3Rpb24oKXt0LnNoYWRvdy53YXRjaGVkPU1hdGgubWF4KDAsdC5zaGFkb3cud2F0Y2hlZC0xKSx0Ll9fd2F0Y2hlclVucmVnaXN0ZXIoKX0sZ2V0RWw6ZnVuY3Rpb24oKXtyZXR1cm4gdC4kcmVmcy5pbnB1dH19fX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXBhcnNlRmxvYXQodGhpcy5tb2RlbCksaT1wYXJzZUZsb2F0KHQpOyghdGhpcy5pc051bWJlcnx8dGhpcy5pc051bWJlckVycm9yfHxpc05hTihlKXx8aXNOYU4oaSl8fGUhPT1pKSYmKHRoaXMubW9kZWw9dCksdGhpcy5pc051bWJlckVycm9yPSExLHRoaXMuaXNOZWdaZXJvPSExfSxpc1RleHRhcmVhOmZ1bmN0aW9uKHQpe3RoaXNbdD9cIl9fd2F0Y2hlclJlZ2lzdGVyXCI6XCJfX3dhdGNoZXJVbnJlZ2lzdGVyXCJdKCl9LFwiJGF0dHJzLnJvd3NcIjpmdW5jdGlvbigpe3RoaXMuaXNUZXh0YXJlYSYmdGhpcy5fX3VwZGF0ZUFyZWEoKX19LHByb3ZpZGU6ZnVuY3Rpb24oKXtyZXR1cm57X19pbnB1dDp0aGlzLnNoYWRvd319LGNvbXB1dGVkOntpc051bWJlcjpmdW5jdGlvbigpe3JldHVyblwibnVtYmVyXCI9PT10aGlzLnR5cGV9LGlzUGFzc3dvcmQ6ZnVuY3Rpb24oKXtyZXR1cm5cInBhc3N3b3JkXCI9PT10aGlzLnR5cGV9LGlzVGV4dGFyZWE6ZnVuY3Rpb24oKXtyZXR1cm5cInRleHRhcmVhXCI9PT10aGlzLnR5cGV9LGlzTG9hZGluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxvYWRpbmd8fHRoaXMuc2hhZG93LndhdGNoZWQmJnRoaXMuc2hhZG93LmxvYWRpbmd9LGtleWJvYXJkVG9nZ2xlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHEucGxhdGZvcm0uaXMubW9iaWxlJiZ0aGlzLmlzTnVtYmVyJiZ0aGlzLm51bWVyaWNLZXlib2FyZFRvZ2dsZX0saW5wdXRUeXBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNQYXNzd29yZD90aGlzLnNob3dQYXNzJiZ0aGlzLmVkaXRhYmxlP1widGV4dFwiOlwicGFzc3dvcmRcIjp0aGlzLmlzTnVtYmVyP3RoaXMuc2hvd051bWJlcnx8IXRoaXMuZWRpdGFibGU/XCJudW1iZXJcIjpcInRleHRcIjp0aGlzLnR5cGV9LGlucHV0Q2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmFsaWduJiZ0LnB1c2goXCJ0ZXh0LVwiK3RoaXMuYWxpZ24pLHRoaXMuYXV0b2ZpbGxlZCYmdC5wdXNoKFwicS1pbnB1dC1hdXRvZmlsbFwiKSx0fSxsZW5ndGg6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9PXRoaXMubW9kZWwmJnZvaWQgMCE9PXRoaXMubW9kZWw/KFwiXCIrdGhpcy5tb2RlbCkubGVuZ3RoOjB9LGNvbXB1dGVkQ2xlYXJWYWx1ZTpmdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT10aGlzLmNsZWFyVmFsdWU/dGhpcy5pc051bWJlcj9udWxsOlwiXCI6dGhpcy5jbGVhclZhbHVlfSxjb21wdXRlZFN0ZXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGVwfHwodGhpcy5kZWNpbWFscz9NYXRoLnBvdygxMCwtdGhpcy5kZWNpbWFscyk6XCJhbnlcIil9LGZyYW1lUHJvcHM6ZnVuY3Rpb24oKXtyZXR1cm57cHJlZml4OnRoaXMucHJlZml4LHN1ZmZpeDp0aGlzLnN1ZmZpeCxzdGFja0xhYmVsOnRoaXMuc3RhY2tMYWJlbCxmbG9hdExhYmVsOnRoaXMuZmxvYXRMYWJlbCxwbGFjZWhvbGRlcjp0aGlzLnBsYWNlaG9sZGVyLGVycm9yOnRoaXMuZXJyb3Isd2FybmluZzp0aGlzLndhcm5pbmcsZGlzYWJsZTp0aGlzLmRpc2FibGUscmVhZG9ubHk6dGhpcy5yZWFkb25seSxpbnZlcnRlZDp0aGlzLmludmVydGVkLGludmVydGVkTGlnaHQ6dGhpcy5pbnZlcnRlZExpZ2h0LGRhcms6dGhpcy5kYXJrLGhpZGVVbmRlcmxpbmU6dGhpcy5oaWRlVW5kZXJsaW5lLGJlZm9yZTp0aGlzLmJlZm9yZSxhZnRlcjp0aGlzLmFmdGVyLGNvbG9yOnRoaXMuY29sb3Isbm9QYXJlbnRGaWVsZDp0aGlzLm5vUGFyZW50RmllbGQsZm9jdXNlZDp0aGlzLmZvY3VzZWQsbGVuZ3RoOnRoaXMuYXV0b2ZpbGxlZCt0aGlzLmxlbmd0aH19fSxtZXRob2RzOnt0b2dnbGVQYXNzOmZ1bmN0aW9uKCl7dGhpcy5zaG93UGFzcz0hdGhpcy5zaG93UGFzcyxjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy5mb2N1cygpfSx0b2dnbGVOdW1iZXI6ZnVuY3Rpb24oKXt0aGlzLnNob3dOdW1iZXI9IXRoaXMuc2hvd051bWJlcixjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy5mb2N1cygpfSxfX2NsZWFyVGltZXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7cmV0dXJuIGNsZWFyVGltZW91dCh0LnRpbWVyKX0pfSxfX29uQW5pbWF0aW9uU3RhcnQ6ZnVuY3Rpb24odCl7aWYoMD09PXQuYW5pbWF0aW9uTmFtZS5pbmRleE9mKFwid2Via2l0LWF1dG9maWxsLVwiKSl7dmFyIGU9XCJ3ZWJraXQtYXV0b2ZpbGwtb25cIj09PXQuYW5pbWF0aW9uTmFtZTtpZihlIT09dGhpcy5hdXRvZmlsbGVkKXJldHVybiB0LnZhbHVlPXRoaXMuYXV0b2ZpbGxlZD1lLHQuZWw9dGhpcyx0aGlzLiRlbWl0KFwiYXV0b2ZpbGxcIix0KX19LF9fc2V0TW9kZWw6ZnVuY3Rpb24odCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuZm9jdXMoKSx0aGlzLl9fc2V0KHRoaXMuaXNOdW1iZXImJjA9PT10P3Q6dHx8KHRoaXMuaXNOdW1iZXI/bnVsbDpcIlwiKSwhMCl9LF9fc2V0OmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcyxzPXQmJnQudGFyZ2V0P3QudGFyZ2V0LnZhbHVlOnQ7aWYodGhpcy5pc051bWJlcil7dGhpcy5pc05lZ1plcm89MS9zPT0tMS8wO3ZhciBuPXRoaXMuaXNOZWdaZXJvPy0wOnM7aWYodGhpcy5tb2RlbD1zLHM9cGFyc2VGbG9hdChzKSxpc05hTihzKXx8dGhpcy5pc05lZ1plcm8pcmV0dXJuIHRoaXMuaXNOdW1iZXJFcnJvcj0hMCx2b2lkKGUmJih0aGlzLiRlbWl0KFwiaW5wdXRcIixuKSx0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe1N0cmluZygxL24pIT09U3RyaW5nKDEvaS52YWx1ZSkmJmkuJGVtaXQoXCJjaGFuZ2VcIixuKX0pKSk7dGhpcy5pc051bWJlckVycm9yPSExLE51bWJlci5pc0ludGVnZXIodGhpcy5kZWNpbWFscykmJihzPXBhcnNlRmxvYXQocy50b0ZpeGVkKHRoaXMuZGVjaW1hbHMpKSl9ZWxzZSB0aGlzLmxvd2VyQ2FzZT9zPXMudG9Mb3dlckNhc2UoKTp0aGlzLnVwcGVyQ2FzZSYmKHM9cy50b1VwcGVyQ2FzZSgpKSx0aGlzLm1vZGVsPXM7dGhpcy4kZW1pdChcImlucHV0XCIscyksZSYmdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtKU09OLnN0cmluZ2lmeShzKSE9PUpTT04uc3RyaW5naWZ5KGkudmFsdWUpJiZpLiRlbWl0KFwiY2hhbmdlXCIscyl9KX0sX191cGRhdGVBcmVhOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kcmVmcy5zaGFkb3csZT10aGlzLiRyZWZzLmlucHV0O2lmKHQmJmUpe3ZhciBpPXQuc2Nyb2xsSGVpZ2h0LHM9YmV0d2VlbihpLHQub2Zmc2V0SGVpZ2h0LHRoaXMubWF4SGVpZ2h0fHxpKTtlLnN0eWxlLmhlaWdodD1zK1wicHhcIixlLnN0eWxlLm92ZXJmbG93WT10aGlzLm1heEhlaWdodCYmczxpP1wic2Nyb2xsXCI6XCJoaWRkZW5cIn19LF9fd2F0Y2hlcjpmdW5jdGlvbih0KXt0aGlzLmlzVGV4dGFyZWEmJnRoaXMuX191cGRhdGVBcmVhKCksdGhpcy5zaGFkb3cud2F0Y2hlZCYmKHRoaXMuc2hhZG93LnZhbD10KX0sX193YXRjaGVyUmVnaXN0ZXI6ZnVuY3Rpb24oKXt0aGlzLndhdGNoZXJ8fCh0aGlzLndhdGNoZXI9dGhpcy4kd2F0Y2goXCJtb2RlbFwiLHRoaXMuX193YXRjaGVyKSl9LF9fd2F0Y2hlclVucmVnaXN0ZXI6ZnVuY3Rpb24odCl7dGhpcy53YXRjaGVyJiYodHx8IXRoaXMuaXNUZXh0YXJlYSYmIXRoaXMuc2hhZG93LndhdGNoZWQpJiYodGhpcy53YXRjaGVyKCksdGhpcy53YXRjaGVyPW51bGwpfSxfX2dldFRleHRhcmVhOmZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdC5hc3NpZ24oe3Jvd3M6MX0sdGhpcy4kYXR0cnMpO3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sIHJvdyByZWxhdGl2ZS1wb3NpdGlvblwifSxbdChRUmVzaXplT2JzZXJ2YWJsZSx7b246e3Jlc2l6ZTp0aGlzLl9fdXBkYXRlQXJlYX19KSx0KFwidGV4dGFyZWFcIix7cmVmOlwic2hhZG93XCIsc3RhdGljQ2xhc3M6XCJjb2wgcS1pbnB1dC10YXJnZXQgcS1pbnB1dC1zaGFkb3cgYWJzb2x1dGUtdG9wXCIsZG9tUHJvcHM6e3ZhbHVlOnRoaXMubW9kZWx9LGF0dHJzOmV9KSx0KFwidGV4dGFyZWFcIix7cmVmOlwiaW5wdXRcIixzdGF0aWNDbGFzczpcImNvbCBxLWlucHV0LXRhcmdldCBxLWlucHV0LWFyZWFcIixhdHRyczpPYmplY3QuYXNzaWduKHt9LGUse3BsYWNlaG9sZGVyOnRoaXMuaW5wdXRQbGFjZWhvbGRlcixkaXNhYmxlZDp0aGlzLmRpc2FibGUscmVhZG9ubHk6dGhpcy5yZWFkb25seX0pLGRvbVByb3BzOnt2YWx1ZTp0aGlzLm1vZGVsfSxvbjp7aW5wdXQ6dGhpcy5fX3NldCxmb2N1czp0aGlzLl9fb25Gb2N1cyxibHVyOnRoaXMuX19vbklucHV0Qmx1cixrZXlkb3duOnRoaXMuX19vbktleWRvd24sa2V5dXA6dGhpcy5fX29uS2V5dXAscGFzdGU6dGhpcy5fX29uUGFzdGV9fSldKX0sX19nZXRJbnB1dDpmdW5jdGlvbih0KXtyZXR1cm4gdChcImlucHV0XCIse3JlZjpcImlucHV0XCIsc3RhdGljQ2xhc3M6XCJjb2wgcS1pbnB1dC10YXJnZXQgcS1uby1pbnB1dC1zcGlubmVyIGVsbGlwc2lzXCIsY2xhc3M6dGhpcy5pbnB1dENsYXNzZXMsYXR0cnM6T2JqZWN0LmFzc2lnbih7fSx0aGlzLiRhdHRycyx7dHlwZTp0aGlzLmlucHV0VHlwZSxwbGFjZWhvbGRlcjp0aGlzLmlucHV0UGxhY2Vob2xkZXIsZGlzYWJsZWQ6dGhpcy5kaXNhYmxlLHJlYWRvbmx5OnRoaXMucmVhZG9ubHksc3RlcDp0aGlzLmNvbXB1dGVkU3RlcH0pLGRvbVByb3BzOnt2YWx1ZTp0aGlzLm1vZGVsfSxvbjp7aW5wdXQ6dGhpcy5fX3NldCxmb2N1czp0aGlzLl9fb25Gb2N1cyxibHVyOnRoaXMuX19vbklucHV0Qmx1cixrZXlkb3duOnRoaXMuX19vbktleWRvd24sa2V5dXA6dGhpcy5fX29uS2V5dXAscGFzdGU6dGhpcy5fX29uUGFzdGUsYW5pbWF0aW9uc3RhcnQ6dGhpcy5fX29uQW5pbWF0aW9uU3RhcnR9fSl9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy5fX3VwZGF0ZUFyZWE9ZnJhbWVEZWJvdW5jZSh0aGlzLl9fdXBkYXRlQXJlYSksdGhpcy5pc1RleHRhcmVhJiYodGhpcy5fX3VwZGF0ZUFyZWEoKSx0aGlzLl9fd2F0Y2hlclJlZ2lzdGVyKCkpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5fX3dhdGNoZXJVbnJlZ2lzdGVyKCEwKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFFJbnB1dEZyYW1lLHtzdGF0aWNDbGFzczpcInEtaW5wdXRcIixwcm9wczp0aGlzLmZyYW1lUHJvcHMsb246e2NsaWNrOnRoaXMuX19vbkNsaWNrLGZvY3VzOnRoaXMuX19vbkZvY3VzLHBhc3RlOnRoaXMuX19vblBhc3RlfX0sW10uY29uY2F0KHRoaXMuJHNsb3RzLmJlZm9yZSkuY29uY2F0KFt0aGlzLmlzVGV4dGFyZWE/dGhpcy5fX2dldFRleHRhcmVhKHQpOnRoaXMuX19nZXRJbnB1dCh0KSwhdGhpcy5kaXNhYmxlJiZ0aGlzLmlzUGFzc3dvcmQmJiF0aGlzLm5vUGFzc1RvZ2dsZSYmKHRoaXMuaW5pdGlhbFNob3dQYXNzd29yZHx8dGhpcy5sZW5ndGgpJiZ0KFFJY29uLHtzbG90OlwiYWZ0ZXJcIixzdGF0aWNDbGFzczpcInEtaWYtY29udHJvbFwiLHByb3BzOntuYW1lOnRoaXMuJHEuaWNvbi5pbnB1dFt0aGlzLnNob3dQYXNzP1wic2hvd1Bhc3NcIjpcImhpZGVQYXNzXCJdfSxuYXRpdmVPbjp7bW91c2Vkb3duOnRoaXMuX19jbGVhclRpbWVyLHRvdWNoc3RhcnQ6dGhpcy5fX2NsZWFyVGltZXIsY2xpY2s6dGhpcy50b2dnbGVQYXNzfX0pfHx2b2lkIDAsdGhpcy5lZGl0YWJsZSYmdGhpcy5rZXlib2FyZFRvZ2dsZSYmdChRSWNvbix7c2xvdDpcImFmdGVyXCIsc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIixwcm9wczp7bmFtZTp0aGlzLiRxLmljb24uaW5wdXRbdGhpcy5zaG93TnVtYmVyP1wic2hvd051bWJlclwiOlwiaGlkZU51bWJlclwiXX0sbmF0aXZlT246e21vdXNlZG93bjp0aGlzLl9fY2xlYXJUaW1lcix0b3VjaHN0YXJ0OnRoaXMuX19jbGVhclRpbWVyLGNsaWNrOnRoaXMudG9nZ2xlTnVtYmVyfX0pfHx2b2lkIDAsdGhpcy5pc0NsZWFyYWJsZSYmdChRSWNvbix7c2xvdDpcImFmdGVyXCIsc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIixwcm9wczp7bmFtZTp0aGlzLiRxLmljb24uaW5wdXRbXCJjbGVhclwiKyh0aGlzLmlzSW52ZXJ0ZWQ/XCJJbnZlcnRlZFwiOlwiXCIpXX0sbmF0aXZlT246e21vdXNlZG93bjp0aGlzLl9fY2xlYXJUaW1lcix0b3VjaHN0YXJ0OnRoaXMuX19jbGVhclRpbWVyLGNsaWNrOnRoaXMuY2xlYXJ9fSl8fHZvaWQgMCx0aGlzLmlzTG9hZGluZyYmKHRoaXMuJHNsb3RzLmxvYWRpbmc/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtaWYtY29udHJvbFwiLHNsb3Q6XCJhZnRlclwifSx0aGlzLiRzbG90cy5sb2FkaW5nKTp0KFFTcGlubmVyLHtzbG90OlwiYWZ0ZXJcIixzdGF0aWNDbGFzczpcInEtaWYtY29udHJvbFwiLHByb3BzOntzaXplOlwiMjRweFwifX0pKXx8dm9pZCAwXSkuY29uY2F0KHRoaXMuJHNsb3RzLmFmdGVyKS5jb25jYXQodGhpcy4kc2xvdHMuZGVmYXVsdD90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiYWJzb2x1dGUtZnVsbCBuby1wb2ludGVyLWV2ZW50c1wiLHNsb3Q6XCJhZnRlclwifSx0aGlzLiRzbG90cy5kZWZhdWx0KTp2b2lkIDApKX19LFFSYWRpbz17bmFtZTpcIlFSYWRpb1wiLG1peGluczpbT3B0aW9uTWl4aW5dLHByb3BzOnt2YWw6e3JlcXVpcmVkOiEwfX0sY29tcHV0ZWQ6e2lzVHJ1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlPT09dGhpcy52YWx9fSxtZXRob2RzOnt0b2dnbGU6ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT0hMCksdGhpcy5kaXNhYmxlfHx0aGlzLnJlYWRvbmx5fHwodCYmc3RvcEFuZFByZXZlbnQodCksZSYmdGhpcy4kZWwuYmx1cigpLHRoaXMuaXNUcnVlfHx0aGlzLl9fdXBkYXRlKHRoaXMudmFsKSl9LF9fZ2V0Q29udGVudDpmdW5jdGlvbih0KXtyZXR1cm5bdChRSWNvbix7c3RhdGljQ2xhc3M6XCJxLXJhZGlvLXVuY2hlY2tlZCBjdXJzb3ItcG9pbnRlciBhYnNvbHV0ZS1mdWxsXCIscHJvcHM6e25hbWU6dGhpcy51bmNoZWNrZWRJY29ufHx0aGlzLiRxLmljb24ucmFkaW8udW5jaGVja2VkLm1hdH19KSx0KFFJY29uLHtzdGF0aWNDbGFzczpcInEtcmFkaW8tY2hlY2tlZCBjdXJzb3ItcG9pbnRlciBhYnNvbHV0ZS1mdWxsXCIscHJvcHM6e25hbWU6dGhpcy5jaGVja2VkSWNvbnx8dGhpcy4kcS5pY29uLnJhZGlvLmNoZWNrZWQubWF0fX0pLHQoXCJkaXZcIix7cmVmOlwicmlwcGxlXCIsc3RhdGljQ2xhc3M6XCJxLXJhZGlhbC1yaXBwbGVcIn0pXX19LGJlZm9yZUNyZWF0ZTpmdW5jdGlvbigpe3RoaXMuX19rZWJhYlRhZz1cInEtcmFkaW9cIn19LFFUb2dnbGU9e25hbWU6XCJRVG9nZ2xlXCIsbWl4aW5zOltDaGVja2JveE1peGluLE9wdGlvbk1peGluXSxwcm9wczp7aWNvbjpTdHJpbmd9LGNvbXB1dGVkOntjdXJyZW50SWNvbjpmdW5jdGlvbigpe3JldHVybih0aGlzLmlzVHJ1ZT90aGlzLmNoZWNrZWRJY29uOnRoaXMudW5jaGVja2VkSWNvbil8fHRoaXMuaWNvbn0saWNvbkNvbG9yOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNUcnVlP1wid2hpdGVcIjpcImRhcmtcIn0sYmFzZUNsYXNzOmZ1bmN0aW9uKCl7fX0sbWV0aG9kczp7X19zd2lwZTpmdW5jdGlvbih0KXtcImxlZnRcIj09PXQuZGlyZWN0aW9uP3RoaXMuaXNUcnVlJiZ0aGlzLnRvZ2dsZSgpOlwicmlnaHRcIj09PXQuZGlyZWN0aW9uJiZ0aGlzLmlzRmFsc2UmJnRoaXMudG9nZ2xlKCl9LF9fZ2V0Q29udGVudDpmdW5jdGlvbih0KXtyZXR1cm5bdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdG9nZ2xlLWJhc2VcIixjbGFzczp0aGlzLmJhc2VDbGFzc30pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRvZ2dsZS1oYW5kbGUgcm93IGZsZXgtY2VudGVyXCJ9LFt0aGlzLmN1cnJlbnRJY29uP3QoUUljb24se3N0YXRpY0NsYXNzOlwicS10b2dnbGUtaWNvblwiLHByb3BzOntuYW1lOnRoaXMuY3VycmVudEljb24sY29sb3I6dGhpcy5pY29uQ29sb3J9fSk6bnVsbCx0KFwiZGl2XCIse3JlZjpcInJpcHBsZVwiLHN0YXRpY0NsYXNzOlwicS1yYWRpYWwtcmlwcGxlXCJ9KV0pXX19LGJlZm9yZUNyZWF0ZTpmdW5jdGlvbigpe3RoaXMuX19rZWJhYlRhZz1cInEtdG9nZ2xlXCJ9fSxjb21wb25lbnRzPXtyYWRpbzpRUmFkaW8sY2hlY2tib3g6UUNoZWNrYm94LHRvZ2dsZTpRVG9nZ2xlfSxRT3B0aW9uR3JvdXA9e25hbWU6XCJRT3B0aW9uR3JvdXBcIixtaXhpbnM6W1BhcmVudEZpZWxkTWl4aW5dLHByb3BzOnt2YWx1ZTp7cmVxdWlyZWQ6ITB9LHR5cGU6e2RlZmF1bHQ6XCJyYWRpb1wiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJyYWRpb1wiLFwiY2hlY2tib3hcIixcInRvZ2dsZVwiXS5pbmNsdWRlcyh0KX19LGNvbG9yOlN0cmluZyxrZWVwQ29sb3I6Qm9vbGVhbixkYXJrOkJvb2xlYW4sb3B0aW9uczp7dHlwZTpBcnJheSx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZXZlcnkoZnVuY3Rpb24odCl7cmV0dXJuXCJ2YWx1ZVwiaW4gdCYmXCJsYWJlbFwiaW4gdH0pfX0sbGVmdExhYmVsOkJvb2xlYW4saW5saW5lOkJvb2xlYW4sZGlzYWJsZTpCb29sZWFuLHJlYWRvbmx5OkJvb2xlYW59LGNvbXB1dGVkOntjb21wb25lbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gY29tcG9uZW50c1t0aGlzLnR5cGVdfSxtb2RlbDpmdW5jdGlvbigpe3JldHVybiBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpP3RoaXMudmFsdWUuc2xpY2UoKTp0aGlzLnZhbHVlfSxsZW5ndGg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZT9cInJhZGlvXCI9PT10aGlzLnR5cGU/MTp0aGlzLnZhbHVlLmxlbmd0aDowfSxfX25lZWRzQm9yZGVyOmZ1bmN0aW9uKCl7cmV0dXJuITB9fSxtZXRob2RzOntfX29uRm9jdXM6ZnVuY3Rpb24oKXt0aGlzLiRlbWl0KFwiZm9jdXNcIil9LF9fb25CbHVyOmZ1bmN0aW9uKCl7dGhpcy4kZW1pdChcImJsdXJcIil9LF9fdXBkYXRlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy4kZW1pdChcImlucHV0XCIsdCksdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtKU09OLnN0cmluZ2lmeSh0KSE9PUpTT04uc3RyaW5naWZ5KGUudmFsdWUpJiZlLiRlbWl0KFwiY2hhbmdlXCIsdCl9KX19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt2YXIgdD1BcnJheS5pc0FycmF5KHRoaXMudmFsdWUpO1wicmFkaW9cIj09PXRoaXMudHlwZT90JiZjb25zb2xlLmVycm9yKFwicS1vcHRpb24tZ3JvdXA6IG1vZGVsIHNob3VsZCBub3QgYmUgYXJyYXlcIik6dHx8Y29uc29sZS5lcnJvcihcInEtb3B0aW9uLWdyb3VwOiBtb2RlbCBzaG91bGQgYmUgYXJyYXkgaW4geW91ciBjYXNlXCIpfSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtb3B0aW9uLWdyb3VwIGdyb3VwXCIsY2xhc3M6e1wicS1vcHRpb24tZ3JvdXAtaW5saW5lLW9wdHNcIjp0aGlzLmlubGluZX19LHRoaXMub3B0aW9ucy5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuIHQoXCJkaXZcIixbdChlLmNvbXBvbmVudCx7cHJvcHM6e3ZhbHVlOmUudmFsdWUsdmFsOmkudmFsdWUscmVhZG9ubHk6ZS5yZWFkb25seXx8aS5yZWFkb25seSxkaXNhYmxlOmUuZGlzYWJsZXx8aS5kaXNhYmxlLGxhYmVsOmkubGFiZWwsbGVmdExhYmVsOmUubGVmdExhYmVsfHxpLmxlZnRMYWJlbCxjb2xvcjppLmNvbG9yfHxlLmNvbG9yLGNoZWNrZWRJY29uOmkuY2hlY2tlZEljb24sdW5jaGVja2VkSWNvbjppLnVuY2hlY2tlZEljb24sZGFyazppLmRhcmt8fGUuZGFyayxrZWVwQ29sb3I6aS5rZWVwQ29sb3J8fGUua2VlcENvbG9yfSxvbjp7aW5wdXQ6ZS5fX3VwZGF0ZSxmb2N1czplLl9fb25Gb2N1cyxibHVyOmUuX19vbkJsdXJ9fSldKX0pKX19LFFEaWFsb2c9e25hbWU6XCJRRGlhbG9nXCIscHJvcHM6e3ZhbHVlOkJvb2xlYW4sdGl0bGU6U3RyaW5nLG1lc3NhZ2U6U3RyaW5nLHByb21wdDpPYmplY3Qsb3B0aW9uczpPYmplY3Qsb2s6e3R5cGU6W1N0cmluZyxPYmplY3QsQm9vbGVhbl0sZGVmYXVsdDohMH0sY2FuY2VsOltTdHJpbmcsT2JqZWN0LEJvb2xlYW5dLHN0YWNrQnV0dG9uczpCb29sZWFuLHByZXZlbnRDbG9zZTpCb29sZWFuLG5vQmFja2Ryb3BEaXNtaXNzOkJvb2xlYW4sbm9Fc2NEaXNtaXNzOkJvb2xlYW4sbm9SZWZvY3VzOkJvb2xlYW4scG9zaXRpb246U3RyaW5nLGNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT1bXSxzPXRoaXMuJHNsb3RzLnRpdGxlfHx0aGlzLnRpdGxlLG49dGhpcy4kc2xvdHMubWVzc2FnZXx8dGhpcy5tZXNzYWdlO3JldHVybiBzJiZpLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcIm1vZGFsLWhlYWRlclwifSxbc10pKSxuJiZpLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcIm1vZGFsLWJvZHkgbW9kYWwtbWVzc2FnZSBtb2RhbC1zY3JvbGxcIn0sW25dKSksKHRoaXMuaGFzRm9ybXx8dGhpcy4kc2xvdHMuYm9keSkmJmkucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwibW9kYWwtYm9keSBtb2RhbC1zY3JvbGxcIn0sdGhpcy5oYXNGb3JtP3RoaXMucHJvbXB0P3RoaXMuX19nZXRQcm9tcHQodCk6dGhpcy5fX2dldE9wdGlvbnModCk6W3RoaXMuJHNsb3RzLmJvZHldKSksdGhpcy4kc2NvcGVkU2xvdHMuYnV0dG9ucz9pLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcIm1vZGFsLWJ1dHRvbnNcIixjbGFzczp0aGlzLmJ1dHRvbkNsYXNzfSxbdGhpcy4kc2NvcGVkU2xvdHMuYnV0dG9ucyh7b2s6dGhpcy5fX29uT2ssY2FuY2VsOnRoaXMuX19vbkNhbmNlbH0pXSkpOih0aGlzLm9rfHx0aGlzLmNhbmNlbCkmJmkucHVzaCh0aGlzLl9fZ2V0QnV0dG9ucyh0KSksdChRTW9kYWwse3JlZjpcIm1vZGFsXCIscHJvcHM6e3ZhbHVlOnRoaXMudmFsdWUsbWluaW1pemVkOiEwLG5vQmFja2Ryb3BEaXNtaXNzOnRoaXMubm9CYWNrZHJvcERpc21pc3N8fHRoaXMucHJldmVudENsb3NlLG5vRXNjRGlzbWlzczp0aGlzLm5vRXNjRGlzbWlzc3x8dGhpcy5wcmV2ZW50Q2xvc2Usbm9SZWZvY3VzOnRoaXMubm9SZWZvY3VzLHBvc2l0aW9uOnRoaXMucG9zaXRpb259LG9uOntpbnB1dDpmdW5jdGlvbih0KXtlLiRlbWl0KFwiaW5wdXRcIix0KX0sc2hvdzpmdW5jdGlvbigpe2lmKGUuJHEucGxhdGZvcm0uaXMuZGVza3RvcCl7dmFyIHQ7aWYoKGUucHJvbXB0fHxlLm9wdGlvbnMpJiYodD1lLnByb21wdD9lLiRyZWZzLm1vZGFsLiRlbC5nZXRFbGVtZW50c0J5VGFnTmFtZShcIklOUFVUXCIpOmUuJHJlZnMubW9kYWwuJGVsLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXCJxLW9wdGlvblwiKSkubGVuZ3RoKXJldHVybiB0WzBdLmZvY3VzKCksdm9pZCBlLiRlbWl0KFwic2hvd1wiKTsodD1lLiRyZWZzLm1vZGFsLiRlbC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwicS1idG5cIikpLmxlbmd0aCYmdFt0Lmxlbmd0aC0xXS5mb2N1cygpLGUuJGVtaXQoXCJzaG93XCIpfWVsc2UgZS4kZW1pdChcInNob3dcIil9LGhpZGU6ZnVuY3Rpb24oKXtlLiRlbWl0KFwiaGlkZVwiKX0sZGlzbWlzczpmdW5jdGlvbigpe2UuJGVtaXQoXCJjYW5jZWxcIil9LFwiZXNjYXBlLWtleVwiOmZ1bmN0aW9uKCl7ZS4kZW1pdChcImVzY2FwZS1rZXlcIil9fX0saSl9LGNvbXB1dGVkOntoYXNGb3JtOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJvbXB0fHx0aGlzLm9wdGlvbnN9LG9rTGFiZWw6ZnVuY3Rpb24oKXtyZXR1cm4hMD09PXRoaXMub2s/dGhpcy4kcS5pMThuLmxhYmVsLm9rOnRoaXMub2t9LGNhbmNlbExhYmVsOmZ1bmN0aW9uKCl7cmV0dXJuITA9PT10aGlzLmNhbmNlbD90aGlzLiRxLmkxOG4ubGFiZWwuY2FuY2VsOnRoaXMuY2FuY2VsfSxidXR0b25DbGFzczpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YWNrQnV0dG9ucz9cImNvbHVtblwiOlwicm93XCJ9LG9rUHJvcHM6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0KHRoaXMub2spPT09dGhpcy5vaz9PYmplY3QuYXNzaWduKHtjb2xvcjp0aGlzLmNvbG9yLGxhYmVsOnRoaXMuJHEuaTE4bi5sYWJlbC5vayxub1JpcHBsZTohMH0sdGhpcy5vayk6e2NvbG9yOnRoaXMuY29sb3IsZmxhdDohMCxsYWJlbDp0aGlzLm9rTGFiZWwsbm9SaXBwbGU6ITB9fSxjYW5jZWxQcm9wczpmdW5jdGlvbigpe3JldHVybiBPYmplY3QodGhpcy5jYW5jZWwpPT09dGhpcy5jYW5jZWw/T2JqZWN0LmFzc2lnbih7Y29sb3I6dGhpcy5jb2xvcixsYWJlbDp0aGlzLiRxLmkxOG4ubGFiZWwuY2FuY2VsLG5vUmlwcGxlOiEwfSx0aGlzLmNhbmNlbCk6e2NvbG9yOnRoaXMuY29sb3IsZmxhdDohMCxsYWJlbDp0aGlzLmNhbmNlbExhYmVsLG5vUmlwcGxlOiEwfX19LG1ldGhvZHM6e3Nob3c6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kcmVmcy5tb2RhbC5zaG93KCl9LGhpZGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLiRyZWZzLm1vZGFsP3RoaXMuJHJlZnMubW9kYWwuaGlkZSgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC5oYXNGb3JtP2Nsb25lKHQuX19nZXREYXRhKCkpOnZvaWQgMH0pOlByb21pc2UucmVzb2x2ZSgpfSxfX2dldFByb21wdDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVyblt0KFFJbnB1dCx7c3R5bGU6XCJtYXJnaW4tYm90dG9tOiAxMHB4XCIscHJvcHM6e3ZhbHVlOnRoaXMucHJvbXB0Lm1vZGVsLHR5cGU6dGhpcy5wcm9tcHQudHlwZXx8XCJ0ZXh0XCIsY29sb3I6dGhpcy5jb2xvcixub1Bhc3NUb2dnbGU6ITB9LG9uOntpbnB1dDpmdW5jdGlvbih0KXtlLnByb21wdC5tb2RlbD10fSxrZXl1cDpmdW5jdGlvbih0KXsxMz09PWdldEV2ZW50S2V5KHQpJiZlLl9fb25PaygpfX19KV19LF9fZ2V0T3B0aW9uczpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVyblt0KFFPcHRpb25Hcm91cCx7cHJvcHM6e3ZhbHVlOnRoaXMub3B0aW9ucy5tb2RlbCx0eXBlOnRoaXMub3B0aW9ucy50eXBlLGNvbG9yOnRoaXMuY29sb3IsaW5saW5lOnRoaXMub3B0aW9ucy5pbmxpbmUsb3B0aW9uczp0aGlzLm9wdGlvbnMuaXRlbXN9LG9uOntjaGFuZ2U6ZnVuY3Rpb24odCl7ZS5vcHRpb25zLm1vZGVsPXR9fX0pXX0sX19nZXRCdXR0b25zOmZ1bmN0aW9uKHQpe3ZhciBlPVtdO3JldHVybiB0aGlzLmNhbmNlbCYmZS5wdXNoKHQoUUJ0bix7cHJvcHM6dGhpcy5jYW5jZWxQcm9wcyxvbjp7Y2xpY2s6dGhpcy5fX29uQ2FuY2VsfX0pKSx0aGlzLm9rJiZlLnB1c2godChRQnRuLHtwcm9wczp0aGlzLm9rUHJvcHMsb246e2NsaWNrOnRoaXMuX19vbk9rfX0pKSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwibW9kYWwtYnV0dG9uc1wiLGNsYXNzOnRoaXMuYnV0dG9uQ2xhc3N9LGUpfSxfX29uT2s6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLmhpZGUoKS50aGVuKGZ1bmN0aW9uKGUpe3QuJGVtaXQoXCJva1wiLGUpfSl9LF9fb25DYW5jZWw6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLmhpZGUoKS50aGVuKGZ1bmN0aW9uKCl7dC4kZW1pdChcImNhbmNlbFwiKX0pfSxfX2dldERhdGE6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcm9tcHQ/dGhpcy5wcm9tcHQubW9kZWw6dGhpcy5vcHRpb25zP3RoaXMub3B0aW9ucy5tb2RlbDp2b2lkIDB9fX07ZnVuY3Rpb24gZGVib3VuY2UodCxlLGkpe3ZhciBzO2Z1bmN0aW9uIG4oKXtmb3IodmFyIG49dGhpcyxvPVtdLHI9YXJndW1lbnRzLmxlbmd0aDtyLS07KW9bcl09YXJndW1lbnRzW3JdO2NsZWFyVGltZW91dChzKSxpJiYhcyYmdC5hcHBseSh0aGlzLG8pLHM9c2V0VGltZW91dChmdW5jdGlvbigpe3M9bnVsbCxpfHx0LmFwcGx5KG4sbyl9LGUpfXJldHVybiB2b2lkIDA9PT1lJiYoZT0yNTApLG4uY2FuY2VsPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHMpfSxufXZhciBRVG9vbHRpcD17bmFtZTpcIlFUb29sdGlwXCIsbWl4aW5zOltNb2RlbFRvZ2dsZU1peGluLENhblJlbmRlck1peGluXSxwcm9wczp7YW5jaG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwidG9wIG1pZGRsZVwiLHZhbGlkYXRvcjpwb3NpdGlvblZhbGlkYXRvcn0sc2VsZjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImJvdHRvbSBtaWRkbGVcIix2YWxpZGF0b3I6cG9zaXRpb25WYWxpZGF0b3J9LG9mZnNldDp7dHlwZTpBcnJheSx2YWxpZGF0b3I6b2Zmc2V0VmFsaWRhdG9yfSxkZWxheTp7dHlwZTpOdW1iZXIsZGVmYXVsdDowfSxtYXhIZWlnaHQ6U3RyaW5nLGRpc2FibGU6Qm9vbGVhbn0sd2F0Y2g6eyRyb3V0ZTpmdW5jdGlvbigpe3RoaXMuaGlkZSgpfX0sY29tcHV0ZWQ6e2FuY2hvck9yaWdpbjpmdW5jdGlvbigpe3JldHVybiBwYXJzZVBvc2l0aW9uKHRoaXMuYW5jaG9yKX0sc2VsZk9yaWdpbjpmdW5jdGlvbigpe3JldHVybiBwYXJzZVBvc2l0aW9uKHRoaXMuc2VsZil9fSxtZXRob2RzOntfX3Nob3c6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLiRlbCksdGhpcy5zY3JvbGxUYXJnZXQ9Z2V0U2Nyb2xsVGFyZ2V0KHRoaXMuYW5jaG9yRWwpLHRoaXMuc2Nyb2xsVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIix0aGlzLmhpZGUsbGlzdGVuT3B0cy5wYXNzaXZlKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLHRoaXMuX19kZWJvdW5jZWRVcGRhdGVQb3NpdGlvbixsaXN0ZW5PcHRzLnBhc3NpdmUpLHRoaXMuJHEucGxhdGZvcm0uaXMubW9iaWxlJiZkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLHRoaXMuaGlkZSwhMCksdGhpcy5fX3VwZGF0ZVBvc2l0aW9uKCksdGhpcy5zaG93UHJvbWlzZSYmdGhpcy5zaG93UHJvbWlzZVJlc29sdmUoKX0sX19oaWRlOmZ1bmN0aW9uKCl7dGhpcy5fX2NsZWFudXAoKSx0aGlzLmhpZGVQcm9taXNlJiZ0aGlzLmhpZGVQcm9taXNlUmVzb2x2ZSgpfSxfX2NsZWFudXA6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy5zY3JvbGxUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHRoaXMuaGlkZSxsaXN0ZW5PcHRzLnBhc3NpdmUpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsdGhpcy5fX2RlYm91bmNlZFVwZGF0ZVBvc2l0aW9uLGxpc3Rlbk9wdHMucGFzc2l2ZSksdGhpcy4kZWwucmVtb3ZlKCksdGhpcy4kcS5wbGF0Zm9ybS5pcy5tb2JpbGUmJmRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsdGhpcy5oaWRlLCEwKX0sX191cGRhdGVQb3NpdGlvbjpmdW5jdGlvbigpe3NldFBvc2l0aW9uKHtlbDp0aGlzLiRlbCxhbmltYXRlOiEwLG9mZnNldDp0aGlzLm9mZnNldCxhbmNob3JFbDp0aGlzLmFuY2hvckVsLGFuY2hvck9yaWdpbjp0aGlzLmFuY2hvck9yaWdpbixzZWxmT3JpZ2luOnRoaXMuc2VsZk9yaWdpbixtYXhIZWlnaHQ6dGhpcy5tYXhIZWlnaHR9KX0sX19kZWxheVNob3c6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy50aW1lcj1zZXRUaW1lb3V0KHRoaXMuc2hvdyx0aGlzLmRlbGF5KX0sX19kZWxheUhpZGU6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy5oaWRlKCl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7aWYodGhpcy5jYW5SZW5kZXIpcmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRvb2x0aXAgYW5pbWF0ZS1wb3B1cFwifSxbdChcImRpdlwiLHRoaXMuJHNsb3RzLmRlZmF1bHQpXSl9LGJlZm9yZU1vdW50OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLl9fZGVib3VuY2VkVXBkYXRlUG9zaXRpb249ZGVib3VuY2UoZnVuY3Rpb24oKXt0Ll9fdXBkYXRlUG9zaXRpb24oKX0sNzApfSxtb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3QuJGVsLm9mZnNldEhlaWdodCx0LmFuY2hvckVsPXQuJGVsLnBhcmVudE5vZGUsdC5hbmNob3JFbC5yZW1vdmVDaGlsZCh0LiRlbCksKHQuYW5jaG9yRWwuY2xhc3NMaXN0LmNvbnRhaW5zKFwicS1wb3B1cC0tc2tpcFwiKXx8dC5hbmNob3JFbC5jbGFzc0xpc3QuY29udGFpbnMoXCJuby1wb2ludGVyLWV2ZW50c1wiKSkmJih0LmFuY2hvckVsPXQuYW5jaG9yRWwucGFyZW50Tm9kZSksdC4kcS5wbGF0Zm9ybS5pcy5tb2JpbGU/dC5hbmNob3JFbC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIix0LnNob3cpOih0LmFuY2hvckVsLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWVudGVyXCIsdC5fX2RlbGF5U2hvdyksdC5hbmNob3JFbC5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNcIix0Ll9fZGVsYXlTaG93KSx0LmFuY2hvckVsLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsdC5fX2RlbGF5SGlkZSksdC5hbmNob3JFbC5hZGRFdmVudExpc3RlbmVyKFwiYmx1clwiLHQuX19kZWxheUhpZGUpKSx0LnZhbHVlJiZ0LnNob3coKX0pfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuc2hvd2luZyYmdGhpcy5fX2NsZWFudXAoKSx0aGlzLmFuY2hvckVsJiYodGhpcy4kcS5wbGF0Zm9ybS5pcy5tb2JpbGU/dGhpcy5hbmNob3JFbC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIix0aGlzLnNob3cpOih0aGlzLmFuY2hvckVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWVudGVyXCIsdGhpcy5fX2RlbGF5U2hvdyksdGhpcy5hbmNob3JFbC5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNcIix0aGlzLl9fZGVsYXlTaG93KSx0aGlzLmFuY2hvckVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsdGhpcy5fX2RlbGF5SGlkZSksdGhpcy5hbmNob3JFbC5yZW1vdmVFdmVudExpc3RlbmVyKFwiYmx1clwiLHRoaXMuX19kZWxheUhpZGUpKSl9fTtmdW5jdGlvbiBydW4odCxlLGkpe2UuaGFuZGxlcj9lLmhhbmRsZXIodCxpLGkuY2FyZXQpOmkucnVuQ21kKGUuY21kLGUucGFyYW0pfWZ1bmN0aW9uIGdldEJ0bih0LGUsaSxzLG4pe3ZvaWQgMD09PW4mJihuPSExKTt2YXIgbz1ufHxcInRvZ2dsZVwiPT09aS50eXBlJiYoaS50b2dnbGVkP2kudG9nZ2xlZChlKTppLmNtZCYmZS5jYXJldC5pcyhpLmNtZCxpLnBhcmFtKSkscj1bXSxhPXtjbGljazpmdW5jdGlvbih0KXtzJiZzKCkscnVuKHQsaSxlKX19O2lmKGkudGlwJiZlLiRxLnBsYXRmb3JtLmlzLmRlc2t0b3Ape3ZhciBsPWkua2V5P3QoXCJkaXZcIixbdChcInNtYWxsXCIsXCIoQ1RSTCArIFwiK1N0cmluZy5mcm9tQ2hhckNvZGUoaS5rZXkpK1wiKVwiKV0pOm51bGw7ci5wdXNoKHQoUVRvb2x0aXAse3Byb3BzOntkZWxheToxZTN9fSxbdChcImRpdlwiLHtkb21Qcm9wczp7aW5uZXJIVE1MOmkudGlwfX0pLGxdKSl9cmV0dXJuIHQoUUJ0bix7cHJvcHM6T2JqZWN0LmFzc2lnbih7fSxlLmJ1dHRvblByb3BzLHtpY29uOmkuaWNvbixjb2xvcjpvP2kudG9nZ2xlQ29sb3J8fGUudG9vbGJhclRvZ2dsZUNvbG9yOmkuY29sb3J8fGUudG9vbGJhckNvbG9yLHRleHRDb2xvcjpvJiYoZS50b29sYmFyRmxhdHx8ZS50b29sYmFyT3V0bGluZSk/bnVsbDppLnRleHRDb2xvcnx8ZS50b29sYmFyVGV4dENvbG9yLGxhYmVsOmkubGFiZWwsZGlzYWJsZTohIWkuZGlzYWJsZSYmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGkuZGlzYWJsZXx8aS5kaXNhYmxlKGUpKX0pLG9uOmF9LHIpfWZ1bmN0aW9uIGdldERyb3Bkb3duKHQsZSxpKXt2YXIgcyxuLG89aS5sYWJlbCxyPWkuaWNvbixhPVwibm8taWNvbnNcIj09PWkubGlzdDtmdW5jdGlvbiBsKCl7aC5jb21wb25lbnRJbnN0YW5jZS5oaWRlKCl9XCJvbmx5LWljb25zXCI9PT1pLmxpc3Q/KG49aS5vcHRpb25zLm1hcChmdW5jdGlvbihpKXt2YXIgcz12b2lkIDA9PT1pLnR5cGUmJmUuY2FyZXQuaXMoaS5jbWQsaS5wYXJhbSk7cmV0dXJuIHMmJihvPWkudGlwLHI9aS5pY29uKSxnZXRCdG4odCxlLGksbCxzKX0pLHM9ZS50b29sYmFyQmFja2dyb3VuZENsYXNzLG49W3QoUUJ0bkdyb3VwLHtwcm9wczplLmJ1dHRvblByb3BzLHN0YXRpY0NsYXNzOlwicmVsYXRpdmUtcG9zaXRpb24gcS1lZGl0b3ItdG9vbGJhci1wYWRkaW5nXCIsc3R5bGU6e2JvcmRlclJhZGl1czpcIjBcIn19LG4pXSk6KG49aS5vcHRpb25zLm1hcChmdW5jdGlvbihpKXt2YXIgcz0hIWkuZGlzYWJsZSYmaS5kaXNhYmxlKGUpLG49dm9pZCAwPT09aS50eXBlJiZlLmNhcmV0LmlzKGkuY21kLGkucGFyYW0pO24mJihvPWkudGlwLHI9aS5pY29uKTt2YXIgYz1pLmh0bWxUaXA7cmV0dXJuIHQoUUl0ZW0se3Byb3BzOnthY3RpdmU6bixsaW5rOiFzfSxjbGFzczp7ZGlzYWJsZWQ6c30sbmF0aXZlT246e2NsaWNrOmZ1bmN0aW9uKHQpe3N8fChsKCksZS4kcmVmcy5jb250ZW50JiZlLiRyZWZzLmNvbnRlbnQuZm9jdXMoKSxlLmNhcmV0LnJlc3RvcmUoKSxydW4odCxpLGUpKX19fSxbYT9cIlwiOnQoUUl0ZW1TaWRlLHtwcm9wczp7aWNvbjppLmljb259fSksdChRSXRlbU1haW4se3Byb3BzOiFjJiZpLnRpcD97bGFiZWw6aS50aXB9Om51bGwsZG9tUHJvcHM6Yz97aW5uZXJIVE1MOmkuaHRtbFRpcH06bnVsbH0pXSl9KSxzPVtlLnRvb2xiYXJCYWNrZ3JvdW5kQ2xhc3MsZS50b29sYmFyVGV4dENvbG9yP1widGV4dC1cIitlLnRvb2xiYXJUZXh0Q29sb3I6XCJcIl0sbj1bdChRTGlzdCx7cHJvcHM6e3NlcGFyYXRvcjohMH19LFtuXSldKTt2YXIgYz1pLmhpZ2hsaWdodCYmbyE9PWkubGFiZWwsaD10KFFCdG5Ecm9wZG93bix7cHJvcHM6T2JqZWN0LmFzc2lnbih7fSxlLmJ1dHRvblByb3BzLHtub0NhcHM6ITAsbm9XcmFwOiEwLGNvbG9yOmM/ZS50b29sYmFyVG9nZ2xlQ29sb3I6ZS50b29sYmFyQ29sb3IsdGV4dENvbG9yOmMmJihlLnRvb2xiYXJGbGF0fHxlLnRvb2xiYXJPdXRsaW5lKT9udWxsOmUudG9vbGJhclRleHRDb2xvcixsYWJlbDppLmZpeGVkTGFiZWw/aS5sYWJlbDpvLGljb246aS5maXhlZEljb24/aS5pY29uOnIsY29udGVudENsYXNzOnN9KX0sbik7cmV0dXJuIGh9ZnVuY3Rpb24gZ2V0VG9vbGJhcih0LGUpe2lmKGUuY2FyZXQpcmV0dXJuIGUuYnV0dG9ucy5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuIHQoUUJ0bkdyb3VwLHtwcm9wczplLmJ1dHRvblByb3BzLHN0YXRpY0NsYXNzOlwiaXRlbXMtY2VudGVyIHJlbGF0aXZlLXBvc2l0aW9uXCJ9LGkubWFwKGZ1bmN0aW9uKGkpe3JldHVyblwic2xvdFwiPT09aS50eXBlP2UuJHNsb3RzW2kuc2xvdF06XCJkcm9wZG93blwiPT09aS50eXBlP2dldERyb3Bkb3duKHQsZSxpKTpnZXRCdG4odCxlLGkpfSkpfSl9ZnVuY3Rpb24gZ2V0Rm9udHModCxlLGkscyl7dm9pZCAwPT09cyYmKHM9e30pO3ZhciBuPU9iamVjdC5rZXlzKHMpO2lmKDA9PT1uLmxlbmd0aClyZXR1cm57fTt2YXIgbz17ZGVmYXVsdF9mb250OntjbWQ6XCJmb250TmFtZVwiLHBhcmFtOnQsaWNvbjppLHRpcDplfX07cmV0dXJuIG4uZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT1zW3RdO29bdF09e2NtZDpcImZvbnROYW1lXCIscGFyYW06ZSxpY29uOmksdGlwOmUsaHRtbFRpcDonPGZvbnQgZmFjZT1cIicrZSsnXCI+JytlK1wiPC9mb250PlwifX0pLG99ZnVuY3Rpb24gZ2V0TGlua0VkaXRvcih0LGUpe2lmKGUuY2FyZXQpe3ZhciBpPWUudG9vbGJhckNvbG9yfHxlLnRvb2xiYXJUZXh0Q29sb3Iscz1lLmVkaXRMaW5rVXJsLG49ZnVuY3Rpb24oKXtlLmNhcmV0LnJlc3RvcmUoKSxzIT09ZS5lZGl0TGlua1VybCYmZG9jdW1lbnQuZXhlY0NvbW1hbmQoXCJjcmVhdGVMaW5rXCIsITEsXCJcIj09PXM/XCIgXCI6cyksZS5lZGl0TGlua1VybD1udWxsfTtyZXR1cm5bdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbXgteHNcIixjbGFzczpcInRleHQtXCIraX0sW2UuJHEuaTE4bi5lZGl0b3IudXJsK1wiOiBcIl0pLHQoUUlucHV0LHtrZXk6XCJxZWR0X2J0bV9pbnB1dFwiLHN0YXRpY0NsYXNzOlwicS1tYS1ub25lIHEtcGEtbm9uZSBjb2wgcS1lZGl0b3ItaW5wdXRcIixwcm9wczp7dmFsdWU6cyxjb2xvcjppLGF1dG9mb2N1czohMCxoaWRlVW5kZXJsaW5lOiEwfSxvbjp7aW5wdXQ6ZnVuY3Rpb24odCl7cz10fSxrZXlkb3duOmZ1bmN0aW9uKHQpe3N3aXRjaChnZXRFdmVudEtleSh0KSl7Y2FzZSAxMzpyZXR1cm4gdC5wcmV2ZW50RGVmYXVsdCgpLG4oKTtjYXNlIDI3OmUuY2FyZXQucmVzdG9yZSgpLCFlLmVkaXRMaW5rVXJsJiZkb2N1bWVudC5leGVjQ29tbWFuZChcInVubGlua1wiKSxlLmVkaXRMaW5rVXJsPW51bGx9fX19KSx0KFFCdG5Hcm91cCx7a2V5OlwicWVkdF9idG1fZ3JwXCIscHJvcHM6ZS5idXR0b25Qcm9wc30sW3QoUUJ0bix7a2V5OlwicWVkdF9idG1fcmVtXCIsYXR0cnM6e3RhYmluZGV4Oi0xfSxwcm9wczpPYmplY3QuYXNzaWduKHt9LGUuYnV0dG9uUHJvcHMse2xhYmVsOmUuJHEuaTE4bi5sYWJlbC5yZW1vdmUsbm9DYXBzOiEwfSksb246e2NsaWNrOmZ1bmN0aW9uKCl7ZS5jYXJldC5yZXN0b3JlKCksZG9jdW1lbnQuZXhlY0NvbW1hbmQoXCJ1bmxpbmtcIiksZS5lZGl0TGlua1VybD1udWxsfX19KSx0KFFCdG4se2tleTpcInFlZHRfYnRtX3VwZFwiLHByb3BzOk9iamVjdC5hc3NpZ24oe30sZS5idXR0b25Qcm9wcyx7bGFiZWw6ZS4kcS5pMThuLmxhYmVsLnVwZGF0ZSxub0NhcHM6ITB9KSxvbjp7Y2xpY2s6bn19KV0pXX19ZnVuY3Rpb24gZ2V0QmxvY2tFbGVtZW50KHQsZSl7aWYoZSYmdD09PWUpcmV0dXJuIG51bGw7dmFyIGk9KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlP3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpOnQuY3VycmVudFN0eWxlKS5kaXNwbGF5O3JldHVyblwiYmxvY2tcIj09PWl8fFwidGFibGVcIj09PWk/dDpnZXRCbG9ja0VsZW1lbnQodC5wYXJlbnROb2RlKX1mdW5jdGlvbiBpc0NoaWxkT2YodCxlKXtpZighdClyZXR1cm4hMTtmb3IoO3Q9dC5wYXJlbnROb2RlOyl7aWYodD09PWRvY3VtZW50LmJvZHkpcmV0dXJuITE7aWYodD09PWUpcmV0dXJuITB9cmV0dXJuITF9dmFyIHVybFJlZ2V4PS9eaHR0cHM/OlxcL1xcLy8sQ2FyZXQ9ZnVuY3Rpb24odCxlKXt0aGlzLmVsPXQsdGhpcy52bT1lfSxwcm90b3R5cGVBY2Nlc3NvcnM9e3NlbGVjdGlvbjp7Y29uZmlndXJhYmxlOiEwfSxoYXNTZWxlY3Rpb246e2NvbmZpZ3VyYWJsZTohMH0scmFuZ2U6e2NvbmZpZ3VyYWJsZTohMH0scGFyZW50Ontjb25maWd1cmFibGU6ITB9LGJsb2NrUGFyZW50Ontjb25maWd1cmFibGU6ITB9fTtwcm90b3R5cGVBY2Nlc3NvcnMuc2VsZWN0aW9uLmdldD1mdW5jdGlvbigpe2lmKHRoaXMuZWwpe3ZhciB0PWRvY3VtZW50LmdldFNlbGVjdGlvbigpO3JldHVybiBpc0NoaWxkT2YodC5hbmNob3JOb2RlLHRoaXMuZWwpJiZpc0NoaWxkT2YodC5mb2N1c05vZGUsdGhpcy5lbCk/dDp2b2lkIDB9fSxwcm90b3R5cGVBY2Nlc3NvcnMuaGFzU2VsZWN0aW9uLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNlbGVjdGlvbj90aGlzLnNlbGVjdGlvbi50b1N0cmluZygpLmxlbmd0aD4wOm51bGx9LHByb3RvdHlwZUFjY2Vzc29ycy5yYW5nZS5nZXQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnNlbGVjdGlvbjtpZih0KXJldHVybiB0LnJhbmdlQ291bnQ/dC5nZXRSYW5nZUF0KDApOm51bGx9LHByb3RvdHlwZUFjY2Vzc29ycy5wYXJlbnQuZ2V0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yYW5nZTtpZih0KXt2YXIgZT10LnN0YXJ0Q29udGFpbmVyO3JldHVybiBlLm5vZGVUeXBlPT09ZG9jdW1lbnQuRUxFTUVOVF9OT0RFP2U6ZS5wYXJlbnROb2RlfX0scHJvdG90eXBlQWNjZXNzb3JzLmJsb2NrUGFyZW50LmdldD1mdW5jdGlvbigpe3ZhciB0PXRoaXMucGFyZW50O2lmKHQpcmV0dXJuIGdldEJsb2NrRWxlbWVudCh0LHRoaXMuZWwpfSxDYXJldC5wcm90b3R5cGUuc2F2ZT1mdW5jdGlvbih0KXt2b2lkIDA9PT10JiYodD10aGlzLnJhbmdlKSx0aGlzLl9yYW5nZT10fSxDYXJldC5wcm90b3R5cGUucmVzdG9yZT1mdW5jdGlvbih0KXt2b2lkIDA9PT10JiYodD10aGlzLl9yYW5nZSk7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKSxpPWRvY3VtZW50LmdldFNlbGVjdGlvbigpO3Q/KGUuc2V0U3RhcnQodC5zdGFydENvbnRhaW5lcix0LnN0YXJ0T2Zmc2V0KSxlLnNldEVuZCh0LmVuZENvbnRhaW5lcix0LmVuZE9mZnNldCksaS5yZW1vdmVBbGxSYW5nZXMoKSxpLmFkZFJhbmdlKGUpKTooaS5zZWxlY3RBbGxDaGlsZHJlbih0aGlzLmVsKSxpLmNvbGxhcHNlVG9FbmQoKSl9LENhcmV0LnByb3RvdHlwZS5oYXNQYXJlbnQ9ZnVuY3Rpb24odCxlKXt2YXIgaT1lP3RoaXMucGFyZW50OnRoaXMuYmxvY2tQYXJlbnQ7cmV0dXJuISFpJiZpLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT10LnRvTG93ZXJDYXNlKCl9LENhcmV0LnByb3RvdHlwZS5oYXNQYXJlbnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMucGFyZW50O3JldHVybiEhZSYmdC5pbmNsdWRlcyhlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpfSxDYXJldC5wcm90b3R5cGUuaXM9ZnVuY3Rpb24odCxlKXtzd2l0Y2godCl7Y2FzZVwiZm9ybWF0QmxvY2tcIjpyZXR1cm5cIkRJVlwiPT09ZSYmdGhpcy5wYXJlbnQ9PT10aGlzLmVsfHx0aGlzLmhhc1BhcmVudChlLFwiUFJFXCI9PT1lKTtjYXNlXCJsaW5rXCI6cmV0dXJuIHRoaXMuaGFzUGFyZW50KFwiQVwiLCEwKTtjYXNlXCJmb250U2l6ZVwiOnJldHVybiBkb2N1bWVudC5xdWVyeUNvbW1hbmRWYWx1ZSh0KT09PWU7Y2FzZVwiZm9udE5hbWVcIjp2YXIgaT1kb2N1bWVudC5xdWVyeUNvbW1hbmRWYWx1ZSh0KTtyZXR1cm4gaT09PSdcIicrZSsnXCInfHxpPT09ZTtjYXNlXCJmdWxsc2NyZWVuXCI6cmV0dXJuIHRoaXMudm0uaW5GdWxsc2NyZWVuO2Nhc2Ugdm9pZCAwOnJldHVybiExO2RlZmF1bHQ6dmFyIHM9ZG9jdW1lbnQucXVlcnlDb21tYW5kU3RhdGUodCk7cmV0dXJuIGU/cz09PWU6c319LENhcmV0LnByb3RvdHlwZS5nZXRQYXJlbnRBdHRyaWJ1dGU9ZnVuY3Rpb24odCl7aWYodGhpcy5wYXJlbnQpcmV0dXJuIHRoaXMucGFyZW50LmdldEF0dHJpYnV0ZSh0KX0sQ2FyZXQucHJvdG90eXBlLmNhbj1mdW5jdGlvbih0KXtpZihcIm91dGRlbnRcIj09PXQpcmV0dXJuIHRoaXMuaGFzUGFyZW50cyhbXCJibG9ja3F1b3RlXCIsXCJsaVwiXSk7aWYoXCJpbmRlbnRcIj09PXQpe3ZhciBlPSEhdGhpcy5wYXJlbnQmJnRoaXMucGFyZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoXCJibG9ja3F1b3RlXCI9PT1lKXJldHVybiExO2lmKFwibGlcIj09PWUpe3ZhciBpPXRoaXMucGFyZW50LnByZXZpb3VzU2libGluZztyZXR1cm4gaSYmXCJsaVwiPT09aS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpfXJldHVybiExfX0sQ2FyZXQucHJvdG90eXBlLmFwcGx5PWZ1bmN0aW9uKHQsZSxpKXtpZih2b2lkIDA9PT1pJiYoaT1mdW5jdGlvbigpe30pLFwiZm9ybWF0QmxvY2tcIj09PXQpW1wiQkxPQ0tRVU9URVwiLFwiSDFcIixcIkgyXCIsXCJIM1wiLFwiSDRcIixcIkg1XCIsXCJINlwiXS5pbmNsdWRlcyhlKSYmdGhpcy5pcyh0LGUpJiYodD1cIm91dGRlbnRcIixlPW51bGwpLFwiUFJFXCI9PT1lJiZ0aGlzLmlzKHQsXCJQUkVcIikmJihlPVwiUFwiKTtlbHNle2lmKFwicHJpbnRcIj09PXQpe2koKTt2YXIgcz13aW5kb3cub3BlbigpO3JldHVybiBzLmRvY3VtZW50LndyaXRlKFwiXFxuICAgICAgICA8IWRvY3R5cGUgaHRtbD5cXG4gICAgICAgIDxodG1sPlxcbiAgICAgICAgICA8aGVhZD5cXG4gICAgICAgICAgICA8dGl0bGU+UHJpbnQgLSBcIitkb2N1bWVudC50aXRsZStcIjwvdGl0bGU+XFxuICAgICAgICAgIDwvaGVhZD5cXG4gICAgICAgICAgPGJvZHk+XFxuICAgICAgICAgICAgPGRpdj5cIit0aGlzLmVsLmlubmVySFRNTCtcIjwvZGl2PlxcbiAgICAgICAgICA8L2JvZHk+XFxuICAgICAgICA8L2h0bWw+XFxuICAgICAgXCIpLHMucHJpbnQoKSx2b2lkIHMuY2xvc2UoKX1pZihcImxpbmtcIj09PXQpe3ZhciBuPXRoaXMuZ2V0UGFyZW50QXR0cmlidXRlKFwiaHJlZlwiKTtpZihuKXRoaXMudm0uZWRpdExpbmtVcmw9bjtlbHNle3ZhciBvPXRoaXMuc2VsZWN0V29yZCh0aGlzLnNlbGVjdGlvbikscj1vP28udG9TdHJpbmcoKTpcIlwiO2lmKCFyLmxlbmd0aClyZXR1cm47dGhpcy52bS5lZGl0TGlua1VybD11cmxSZWdleC50ZXN0KHIpP3I6XCJcIixkb2N1bWVudC5leGVjQ29tbWFuZChcImNyZWF0ZUxpbmtcIiwhMSxcIlwiPT09dGhpcy52bS5lZGl0TGlua1VybD9cIiBcIjp0aGlzLnZtLmVkaXRMaW5rVXJsKX1yZXR1cm4gdGhpcy5yYW5nZS5zZWxlY3ROb2RlQ29udGVudHModGhpcy5wYXJlbnQpLHZvaWQgdGhpcy5zYXZlKCl9aWYoXCJmdWxsc2NyZWVuXCI9PT10KXJldHVybiB0aGlzLnZtLnRvZ2dsZUZ1bGxzY3JlZW4oKSx2b2lkIGkoKX1kb2N1bWVudC5leGVjQ29tbWFuZCh0LCExLGUpLGkoKX0sQ2FyZXQucHJvdG90eXBlLnNlbGVjdFdvcmQ9ZnVuY3Rpb24odCl7aWYoIXQuaXNDb2xsYXBzZWQpcmV0dXJuIHQ7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtlLnNldFN0YXJ0KHQuYW5jaG9yTm9kZSx0LmFuY2hvck9mZnNldCksZS5zZXRFbmQodC5mb2N1c05vZGUsdC5mb2N1c09mZnNldCk7dmFyIGk9ZS5jb2xsYXBzZWQ/W1wiYmFja3dhcmRcIixcImZvcndhcmRcIl06W1wiZm9yd2FyZFwiLFwiYmFja3dhcmRcIl07ZS5kZXRhY2goKTt2YXIgcz10LmZvY3VzTm9kZSxuPXQuZm9jdXNPZmZzZXQ7cmV0dXJuIHQuY29sbGFwc2UodC5hbmNob3JOb2RlLHQuYW5jaG9yT2Zmc2V0KSx0Lm1vZGlmeShcIm1vdmVcIixpWzBdLFwiY2hhcmFjdGVyXCIpLHQubW9kaWZ5KFwibW92ZVwiLGlbMV0sXCJ3b3JkXCIpLHQuZXh0ZW5kKHMsbiksdC5tb2RpZnkoXCJleHRlbmRcIixpWzFdLFwiY2hhcmFjdGVyXCIpLHQubW9kaWZ5KFwiZXh0ZW5kXCIsaVswXSxcIndvcmRcIiksdH0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQ2FyZXQucHJvdG90eXBlLHByb3RvdHlwZUFjY2Vzc29ycyk7dmFyIHRvU3RyaW5nPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsaGFzT3duPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksY2xhc3MydHlwZT17fTtmdW5jdGlvbiB0eXBlKHQpe3JldHVybiBudWxsPT09dD9TdHJpbmcodCk6Y2xhc3MydHlwZVt0b1N0cmluZy5jYWxsKHQpXXx8XCJvYmplY3RcIn1mdW5jdGlvbiBpc1BsYWluT2JqZWN0KHQpe2lmKCF0fHxcIm9iamVjdFwiIT09dHlwZSh0KSlyZXR1cm4hMTtpZih0LmNvbnN0cnVjdG9yJiYhaGFzT3duLmNhbGwodCxcImNvbnN0cnVjdG9yXCIpJiYhaGFzT3duLmNhbGwodC5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsXCJpc1Byb3RvdHlwZU9mXCIpKXJldHVybiExO3ZhciBlO2ZvcihlIGluIHQpO3JldHVybiB2b2lkIDA9PT1lfHxoYXNPd24uY2FsbCh0LGUpfWZ1bmN0aW9uIGV4dGVuZCgpe3ZhciB0LGUsaSxzLG4sbyxyPWFyZ3VtZW50cyxhPWFyZ3VtZW50c1swXXx8e30sbD0xLGM9YXJndW1lbnRzLmxlbmd0aCxoPSExO2ZvcihcImJvb2xlYW5cIj09dHlwZW9mIGEmJihoPWEsYT1hcmd1bWVudHNbMV18fHt9LGw9MiksT2JqZWN0KGEpIT09YSYmXCJmdW5jdGlvblwiIT09dHlwZShhKSYmKGE9e30pLGM9PT1sJiYoYT10aGlzLGwtLSk7bDxjO2wrKylpZihudWxsIT09KHQ9cltsXSkpZm9yKGUgaW4gdClpPWFbZV0sYSE9PShzPXRbZV0pJiYoaCYmcyYmKGlzUGxhaW5PYmplY3Qocyl8fChuPVwiYXJyYXlcIj09PXR5cGUocykpKT8obj8obj0hMSxvPWkmJlwiYXJyYXlcIj09PXR5cGUoaSk/aTpbXSk6bz1pJiZpc1BsYWluT2JqZWN0KGkpP2k6e30sYVtlXT1leHRlbmQoaCxvLHMpKTp2b2lkIDAhPT1zJiYoYVtlXT1zKSk7cmV0dXJuIGF9XCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0XCIuc3BsaXQoXCIgXCIpLmZvckVhY2goZnVuY3Rpb24odCl7Y2xhc3MydHlwZVtcIltvYmplY3QgXCIrdCtcIl1cIl09dC50b0xvd2VyQ2FzZSgpfSk7dmFyIFFFZGl0b3I9e25hbWU6XCJRRWRpdG9yXCIsbWl4aW5zOltGdWxsc2NyZWVuTWl4aW5dLHByb3BzOnt2YWx1ZTp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9LHJlYWRvbmx5OkJvb2xlYW4sZGlzYWJsZTpCb29sZWFuLG1pbkhlaWdodDp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcIjEwcmVtXCJ9LG1heEhlaWdodDpTdHJpbmcsaGVpZ2h0OlN0cmluZyxkZWZpbml0aW9uczpPYmplY3QsZm9udHM6T2JqZWN0LHRvb2xiYXI6e3R5cGU6QXJyYXksdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybiAwPT09dC5sZW5ndGh8fHQuZXZlcnkoZnVuY3Rpb24odCl7cmV0dXJuIHQubGVuZ3RofSl9LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm5bW1wibGVmdFwiLFwiY2VudGVyXCIsXCJyaWdodFwiLFwianVzdGlmeVwiXSxbXCJib2xkXCIsXCJpdGFsaWNcIixcInVuZGVybGluZVwiLFwic3RyaWtlXCJdLFtcInVuZG9cIixcInJlZG9cIl1dfX0sdG9vbGJhckNvbG9yOlN0cmluZyx0b29sYmFyVGV4dENvbG9yOlN0cmluZyx0b29sYmFyVG9nZ2xlQ29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJwcmltYXJ5XCJ9LHRvb2xiYXJCZzp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImdyZXktM1wifSx0b29sYmFyRmxhdDpCb29sZWFuLHRvb2xiYXJPdXRsaW5lOkJvb2xlYW4sdG9vbGJhclB1c2g6Qm9vbGVhbix0b29sYmFyUm91bmRlZDpCb29sZWFuLGNvbnRlbnRTdHlsZTpPYmplY3QsY29udGVudENsYXNzOltPYmplY3QsQXJyYXksU3RyaW5nXX0sY29tcHV0ZWQ6e2VkaXRhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMucmVhZG9ubHkmJiF0aGlzLmRpc2FibGV9LGhhc1Rvb2xiYXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b29sYmFyJiZ0aGlzLnRvb2xiYXIubGVuZ3RoPjB9LHRvb2xiYXJCYWNrZ3JvdW5kQ2xhc3M6ZnVuY3Rpb24oKXtpZih0aGlzLnRvb2xiYXJCZylyZXR1cm5cImJnLVwiK3RoaXMudG9vbGJhckJnfSxidXR0b25Qcm9wczpmdW5jdGlvbigpe3JldHVybntvdXRsaW5lOnRoaXMudG9vbGJhck91dGxpbmUsZmxhdDp0aGlzLnRvb2xiYXJGbGF0LHB1c2g6dGhpcy50b29sYmFyUHVzaCxyb3VuZGVkOnRoaXMudG9vbGJhclJvdW5kZWQsZGVuc2U6ITAsY29sb3I6dGhpcy50b29sYmFyQ29sb3IsZGlzYWJsZTohdGhpcy5lZGl0YWJsZX19LGJ1dHRvbkRlZjpmdW5jdGlvbigpe3ZhciB0PXRoaXMuJHEuaTE4bi5lZGl0b3IsZT10aGlzLiRxLmljb24uZWRpdG9yO3JldHVybntib2xkOntjbWQ6XCJib2xkXCIsaWNvbjplLmJvbGQsdGlwOnQuYm9sZCxrZXk6NjZ9LGl0YWxpYzp7Y21kOlwiaXRhbGljXCIsaWNvbjplLml0YWxpYyx0aXA6dC5pdGFsaWMsa2V5OjczfSxzdHJpa2U6e2NtZDpcInN0cmlrZVRocm91Z2hcIixpY29uOmUuc3RyaWtldGhyb3VnaCx0aXA6dC5zdHJpa2V0aHJvdWdoLGtleTo4M30sdW5kZXJsaW5lOntjbWQ6XCJ1bmRlcmxpbmVcIixpY29uOmUudW5kZXJsaW5lLHRpcDp0LnVuZGVybGluZSxrZXk6ODV9LHVub3JkZXJlZDp7Y21kOlwiaW5zZXJ0VW5vcmRlcmVkTGlzdFwiLGljb246ZS51bm9yZGVyZWRMaXN0LHRpcDp0LnVub3JkZXJlZExpc3R9LG9yZGVyZWQ6e2NtZDpcImluc2VydE9yZGVyZWRMaXN0XCIsaWNvbjplLm9yZGVyZWRMaXN0LHRpcDp0Lm9yZGVyZWRMaXN0fSxzdWJzY3JpcHQ6e2NtZDpcInN1YnNjcmlwdFwiLGljb246ZS5zdWJzY3JpcHQsdGlwOnQuc3Vic2NyaXB0LGh0bWxUaXA6XCJ4PHN1YnNjcmlwdD4yPC9zdWJzY3JpcHQ+XCJ9LHN1cGVyc2NyaXB0OntjbWQ6XCJzdXBlcnNjcmlwdFwiLGljb246ZS5zdXBlcnNjcmlwdCx0aXA6dC5zdXBlcnNjcmlwdCxodG1sVGlwOlwieDxzdXBlcnNjcmlwdD4yPC9zdXBlcnNjcmlwdD5cIn0sbGluazp7Y21kOlwibGlua1wiLGljb246ZS5oeXBlcmxpbmssdGlwOnQuaHlwZXJsaW5rLGtleTo3Nn0sZnVsbHNjcmVlbjp7Y21kOlwiZnVsbHNjcmVlblwiLGljb246ZS50b2dnbGVGdWxsc2NyZWVuLHRpcDp0LnRvZ2dsZUZ1bGxzY3JlZW4sa2V5OjcwfSxxdW90ZTp7Y21kOlwiZm9ybWF0QmxvY2tcIixwYXJhbTpcIkJMT0NLUVVPVEVcIixpY29uOmUucXVvdGUsdGlwOnQucXVvdGUsa2V5OjgxfSxsZWZ0OntjbWQ6XCJqdXN0aWZ5TGVmdFwiLGljb246ZS5sZWZ0LHRpcDp0LmxlZnR9LGNlbnRlcjp7Y21kOlwianVzdGlmeUNlbnRlclwiLGljb246ZS5jZW50ZXIsdGlwOnQuY2VudGVyfSxyaWdodDp7Y21kOlwianVzdGlmeVJpZ2h0XCIsaWNvbjplLnJpZ2h0LHRpcDp0LnJpZ2h0fSxqdXN0aWZ5OntjbWQ6XCJqdXN0aWZ5RnVsbFwiLGljb246ZS5qdXN0aWZ5LHRpcDp0Lmp1c3RpZnl9LHByaW50Ont0eXBlOlwibm8tc3RhdGVcIixjbWQ6XCJwcmludFwiLGljb246ZS5wcmludCx0aXA6dC5wcmludCxrZXk6ODB9LG91dGRlbnQ6e3R5cGU6XCJuby1zdGF0ZVwiLGRpc2FibGU6ZnVuY3Rpb24odCl7cmV0dXJuIHQuY2FyZXQmJiF0LmNhcmV0LmNhbihcIm91dGRlbnRcIil9LGNtZDpcIm91dGRlbnRcIixpY29uOmUub3V0ZGVudCx0aXA6dC5vdXRkZW50fSxpbmRlbnQ6e3R5cGU6XCJuby1zdGF0ZVwiLGRpc2FibGU6ZnVuY3Rpb24odCl7cmV0dXJuIHQuY2FyZXQmJiF0LmNhcmV0LmNhbihcImluZGVudFwiKX0sY21kOlwiaW5kZW50XCIsaWNvbjplLmluZGVudCx0aXA6dC5pbmRlbnR9LHJlbW92ZUZvcm1hdDp7dHlwZTpcIm5vLXN0YXRlXCIsY21kOlwicmVtb3ZlRm9ybWF0XCIsaWNvbjplLnJlbW92ZUZvcm1hdCx0aXA6dC5yZW1vdmVGb3JtYXR9LGhyOnt0eXBlOlwibm8tc3RhdGVcIixjbWQ6XCJpbnNlcnRIb3Jpem9udGFsUnVsZVwiLGljb246ZS5ocix0aXA6dC5ocn0sdW5kbzp7dHlwZTpcIm5vLXN0YXRlXCIsY21kOlwidW5kb1wiLGljb246ZS51bmRvLHRpcDp0LnVuZG8sa2V5OjkwfSxyZWRvOnt0eXBlOlwibm8tc3RhdGVcIixjbWQ6XCJyZWRvXCIsaWNvbjplLnJlZG8sdGlwOnQucmVkbyxrZXk6ODl9LGgxOntjbWQ6XCJmb3JtYXRCbG9ja1wiLHBhcmFtOlwiSDFcIixpY29uOmUuaGVhZGVyLHRpcDp0LmhlYWRlcjEsaHRtbFRpcDonPGgxIGNsYXNzPVwicS1tYS1ub25lXCI+Jyt0LmhlYWRlcjErXCI8L2gxPlwifSxoMjp7Y21kOlwiZm9ybWF0QmxvY2tcIixwYXJhbTpcIkgyXCIsaWNvbjplLmhlYWRlcix0aXA6dC5oZWFkZXIyLGh0bWxUaXA6JzxoMiBjbGFzcz1cInEtbWEtbm9uZVwiPicrdC5oZWFkZXIyK1wiPC9oMj5cIn0saDM6e2NtZDpcImZvcm1hdEJsb2NrXCIscGFyYW06XCJIM1wiLGljb246ZS5oZWFkZXIsdGlwOnQuaGVhZGVyMyxodG1sVGlwOic8aDMgY2xhc3M9XCJxLW1hLW5vbmVcIj4nK3QuaGVhZGVyMytcIjwvaDM+XCJ9LGg0OntjbWQ6XCJmb3JtYXRCbG9ja1wiLHBhcmFtOlwiSDRcIixpY29uOmUuaGVhZGVyLHRpcDp0LmhlYWRlcjQsaHRtbFRpcDonPGg0IGNsYXNzPVwicS1tYS1ub25lXCI+Jyt0LmhlYWRlcjQrXCI8L2g0PlwifSxoNTp7Y21kOlwiZm9ybWF0QmxvY2tcIixwYXJhbTpcIkg1XCIsaWNvbjplLmhlYWRlcix0aXA6dC5oZWFkZXI1LGh0bWxUaXA6JzxoNSBjbGFzcz1cInEtbWEtbm9uZVwiPicrdC5oZWFkZXI1K1wiPC9oNT5cIn0saDY6e2NtZDpcImZvcm1hdEJsb2NrXCIscGFyYW06XCJINlwiLGljb246ZS5oZWFkZXIsdGlwOnQuaGVhZGVyNixodG1sVGlwOic8aDYgY2xhc3M9XCJxLW1hLW5vbmVcIj4nK3QuaGVhZGVyNitcIjwvaDY+XCJ9LHA6e2NtZDpcImZvcm1hdEJsb2NrXCIscGFyYW06XCJESVZcIixpY29uOmUuaGVhZGVyLHRpcDp0LnBhcmFncmFwaH0sY29kZTp7Y21kOlwiZm9ybWF0QmxvY2tcIixwYXJhbTpcIlBSRVwiLGljb246ZS5jb2RlLHRpcDpcIjxjb2RlPlwiK3QuY29kZStcIjwvY29kZT5cIn0sXCJzaXplLTFcIjp7Y21kOlwiZm9udFNpemVcIixwYXJhbTpcIjFcIixpY29uOmUuc2l6ZSx0aXA6dC5zaXplMSxodG1sVGlwOic8Zm9udCBzaXplPVwiMVwiPicrdC5zaXplMStcIjwvZm9udD5cIn0sXCJzaXplLTJcIjp7Y21kOlwiZm9udFNpemVcIixwYXJhbTpcIjJcIixpY29uOmUuc2l6ZSx0aXA6dC5zaXplMixodG1sVGlwOic8Zm9udCBzaXplPVwiMlwiPicrdC5zaXplMitcIjwvZm9udD5cIn0sXCJzaXplLTNcIjp7Y21kOlwiZm9udFNpemVcIixwYXJhbTpcIjNcIixpY29uOmUuc2l6ZSx0aXA6dC5zaXplMyxodG1sVGlwOic8Zm9udCBzaXplPVwiM1wiPicrdC5zaXplMytcIjwvZm9udD5cIn0sXCJzaXplLTRcIjp7Y21kOlwiZm9udFNpemVcIixwYXJhbTpcIjRcIixpY29uOmUuc2l6ZSx0aXA6dC5zaXplNCxodG1sVGlwOic8Zm9udCBzaXplPVwiNFwiPicrdC5zaXplNCtcIjwvZm9udD5cIn0sXCJzaXplLTVcIjp7Y21kOlwiZm9udFNpemVcIixwYXJhbTpcIjVcIixpY29uOmUuc2l6ZSx0aXA6dC5zaXplNSxodG1sVGlwOic8Zm9udCBzaXplPVwiNVwiPicrdC5zaXplNStcIjwvZm9udD5cIn0sXCJzaXplLTZcIjp7Y21kOlwiZm9udFNpemVcIixwYXJhbTpcIjZcIixpY29uOmUuc2l6ZSx0aXA6dC5zaXplNixodG1sVGlwOic8Zm9udCBzaXplPVwiNlwiPicrdC5zaXplNitcIjwvZm9udD5cIn0sXCJzaXplLTdcIjp7Y21kOlwiZm9udFNpemVcIixwYXJhbTpcIjdcIixpY29uOmUuc2l6ZSx0aXA6dC5zaXplNyxodG1sVGlwOic8Zm9udCBzaXplPVwiN1wiPicrdC5zaXplNytcIjwvZm9udD5cIn19fSxidXR0b25zOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuZGVmaW5pdGlvbnN8fHt9LGk9dGhpcy5kZWZpbml0aW9uc3x8dGhpcy5mb250cz9leHRlbmQoITAse30sdGhpcy5idXR0b25EZWYsZSxnZXRGb250cyh0aGlzLmRlZmF1bHRGb250LHRoaXMuJHEuaTE4bi5lZGl0b3IuZGVmYXVsdEZvbnQsdGhpcy4kcS5pY29uLmVkaXRvci5mb250LHRoaXMuZm9udHMpKTp0aGlzLmJ1dHRvbkRlZjtyZXR1cm4gdGhpcy50b29sYmFyLm1hcChmdW5jdGlvbihzKXtyZXR1cm4gcy5tYXAoZnVuY3Rpb24ocyl7aWYocy5vcHRpb25zKXJldHVybnt0eXBlOlwiZHJvcGRvd25cIixpY29uOnMuaWNvbixsYWJlbDpzLmxhYmVsLGZpeGVkTGFiZWw6cy5maXhlZExhYmVsLGZpeGVkSWNvbjpzLmZpeGVkSWNvbixoaWdobGlnaHQ6cy5oaWdobGlnaHQsbGlzdDpzLmxpc3Qsb3B0aW9uczpzLm9wdGlvbnMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBpW3RdfSl9O3ZhciBuPWlbc107cmV0dXJuIG4/XCJuby1zdGF0ZVwiPT09bi50eXBlfHxlW3NdJiYodm9pZCAwPT09bi5jbWR8fHQuYnV0dG9uRGVmW24uY21kXSYmXCJuby1zdGF0ZVwiPT09dC5idXR0b25EZWZbbi5jbWRdLnR5cGUpP246ZXh0ZW5kKCEwLHt0eXBlOlwidG9nZ2xlXCJ9LG4pOnt0eXBlOlwic2xvdFwiLHNsb3Q6c319KX0pfSxrZXlzOmZ1bmN0aW9uKCl7dmFyIHQ9e30sZT1mdW5jdGlvbihlKXtlLmtleSYmKHRbZS5rZXldPXtjbWQ6ZS5jbWQscGFyYW06ZS5wYXJhbX0pfTtyZXR1cm4gdGhpcy5idXR0b25zLmZvckVhY2goZnVuY3Rpb24odCl7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe3Qub3B0aW9ucz90Lm9wdGlvbnMuZm9yRWFjaChlKTplKHQpfSl9KSx0fSxpbm5lclN0eWxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5GdWxsc2NyZWVuP3RoaXMuY29udGVudFN0eWxlOlt7bWluSGVpZ2h0OnRoaXMubWluSGVpZ2h0LGhlaWdodDp0aGlzLmhlaWdodCxtYXhIZWlnaHQ6dGhpcy5tYXhIZWlnaHR9LHRoaXMuY29udGVudFN0eWxlXX0saW5uZXJDbGFzczpmdW5jdGlvbigpe3JldHVyblt0aGlzLmNvbnRlbnRDbGFzcyx7Y29sOnRoaXMuaW5GdWxsc2NyZWVuLFwib3ZlcmZsb3ctYXV0b1wiOnRoaXMuaW5GdWxsc2NyZWVufHx0aGlzLm1heEhlaWdodH1dfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntlZGl0V2F0Y2hlcjohMCxlZGl0TGlua1VybDpudWxsfX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuZWRpdFdhdGNoZXI/dGhpcy4kcmVmcy5jb250ZW50LmlubmVySFRNTD10OnRoaXMuZWRpdFdhdGNoZXI9ITB9fSxtZXRob2RzOntvbklucHV0OmZ1bmN0aW9uKHQpe2lmKHRoaXMuZWRpdFdhdGNoZXIpe3ZhciBlPXRoaXMuJHJlZnMuY29udGVudC5pbm5lckhUTUw7ZSE9PXRoaXMudmFsdWUmJih0aGlzLmVkaXRXYXRjaGVyPSExLHRoaXMuJGVtaXQoXCJpbnB1dFwiLGUpKX19LG9uS2V5ZG93bjpmdW5jdGlvbih0KXt2YXIgZT1nZXRFdmVudEtleSh0KTtpZighdC5jdHJsS2V5KXJldHVybiB0aGlzLnJlZnJlc2hUb29sYmFyKCksdm9pZCh0aGlzLiRxLnBsYXRmb3JtLmlzLmllJiZ0aGlzLiRuZXh0VGljayh0aGlzLm9uSW5wdXQpKTt2YXIgaT10aGlzLmtleXNbZV07aWYodm9pZCAwIT09aSl7dmFyIHM9aS5jbWQsbj1pLnBhcmFtO3N0b3BBbmRQcmV2ZW50KHQpLHRoaXMucnVuQ21kKHMsbiwhMSksdGhpcy4kcS5wbGF0Zm9ybS5pcy5pZSYmdGhpcy4kbmV4dFRpY2sodGhpcy5vbklucHV0KX19LHJ1bkNtZDpmdW5jdGlvbih0LGUsaSl7dmFyIHM9dGhpczt2b2lkIDA9PT1pJiYoaT0hMCksdGhpcy5mb2N1cygpLHRoaXMuY2FyZXQuYXBwbHkodCxlLGZ1bmN0aW9uKCl7cy5mb2N1cygpLGkmJnMucmVmcmVzaFRvb2xiYXIoKX0pfSxyZWZyZXNoVG9vbGJhcjpmdW5jdGlvbigpe3ZhciB0PXRoaXM7c2V0VGltZW91dChmdW5jdGlvbigpe3QuZWRpdExpbmtVcmw9bnVsbCx0LiRmb3JjZVVwZGF0ZSgpfSwxKX0sZm9jdXM6ZnVuY3Rpb24oKXt0aGlzLiRyZWZzLmNvbnRlbnQuZm9jdXMoKX0sZ2V0Q29udGVudEVsOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHJlZnMuY29udGVudH19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXtpc1NTUnx8KGRvY3VtZW50LmV4ZWNDb21tYW5kKFwiZGVmYXVsdFBhcmFncmFwaFNlcGFyYXRvclwiLCExLFwiZGl2XCIpLHRoaXMuZGVmYXVsdEZvbnQ9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuZm9udEZhbWlseSl9LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7dC4kcmVmcy5jb250ZW50JiYodC5jYXJldD1uZXcgQ2FyZXQodC4kcmVmcy5jb250ZW50LHQpLHQuJHJlZnMuY29udGVudC5pbm5lckhUTUw9dC52YWx1ZSksdC4kbmV4dFRpY2sodC5yZWZyZXNoVG9vbGJhcil9KX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlLGk9dGhpcztpZih0aGlzLmhhc1Rvb2xiYXIpe3ZhciBzPXtzdGF0aWNDbGFzczpcInEtZWRpdG9yLXRvb2xiYXIgcm93IG5vLXdyYXAgc2Nyb2xsLXhcIixjbGFzczpbe1wicS1lZGl0b3ItdG9vbGJhci1zZXBhcmF0b3JcIjohdGhpcy50b29sYmFyT3V0bGluZSYmIXRoaXMudG9vbGJhclB1c2h9LHRoaXMudG9vbGJhckJhY2tncm91bmRDbGFzc119OyhlPVtdKS5wdXNoKHQoXCJkaXZcIixleHRlbmQoe2tleTpcInFlZHRfdG9wXCJ9LHMpLFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicm93IG5vLXdyYXAgcS1lZGl0b3ItdG9vbGJhci1wYWRkaW5nIGZpdCBpdGVtcy1jZW50ZXJcIn0sZ2V0VG9vbGJhcih0LHRoaXMpKV0pKSxudWxsIT09dGhpcy5lZGl0TGlua1VybCYmZS5wdXNoKHQoXCJkaXZcIixleHRlbmQoe2tleTpcInFlZHRfYnRtXCJ9LHMpLFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicm93IG5vLXdyYXAgcS1lZGl0b3ItdG9vbGJhci1wYWRkaW5nIGZpdCBpdGVtcy1jZW50ZXJcIn0sZ2V0TGlua0VkaXRvcih0LHRoaXMpKV0pKSxlPXQoXCJkaXZcIixlKX1yZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZWRpdG9yXCIsc3R5bGU6e2hlaWdodDp0aGlzLmluRnVsbHNjcmVlbj9cIjEwMHZoXCI6bnVsbH0sY2xhc3M6e2Rpc2FibGVkOnRoaXMuZGlzYWJsZSxmdWxsc2NyZWVuOnRoaXMuaW5GdWxsc2NyZWVuLGNvbHVtbjp0aGlzLmluRnVsbHNjcmVlbn19LFtlLHQoXCJkaXZcIix7cmVmOlwiY29udGVudFwiLHN0YXRpY0NsYXNzOlwicS1lZGl0b3ItY29udGVudFwiLHN0eWxlOnRoaXMuaW5uZXJTdHlsZSxjbGFzczp0aGlzLmlubmVyQ2xhc3MsYXR0cnM6e2NvbnRlbnRlZGl0YWJsZTp0aGlzLmVkaXRhYmxlfSxkb21Qcm9wczppc1NTUj97aW5uZXJIVE1MOnRoaXMudmFsdWV9OnZvaWQgMCxvbjp7aW5wdXQ6dGhpcy5vbklucHV0LGtleWRvd246dGhpcy5vbktleWRvd24sY2xpY2s6dGhpcy5yZWZyZXNoVG9vbGJhcixibHVyOmZ1bmN0aW9uKCl7aS5jYXJldC5zYXZlKCl9fX0pXSl9fSxGYWJNaXhpbj17cHJvcHM6e291dGxpbmU6Qm9vbGVhbixwdXNoOkJvb2xlYW4sZmxhdDpCb29sZWFuLGNvbG9yOlN0cmluZyx0ZXh0Q29sb3I6U3RyaW5nLGdsb3NzeTpCb29sZWFufX0sUUZhYj17bmFtZTpcIlFGYWJcIixtaXhpbnM6W0ZhYk1peGluLE1vZGVsVG9nZ2xlTWl4aW5dLHByb3ZpZGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybntfX3FGYWJDbG9zZTpmdW5jdGlvbihlKXtyZXR1cm4gdC5oaWRlKGUpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC4kcmVmcy50cmlnZ2VyJiZ0LiRyZWZzLnRyaWdnZXIuJGVsJiZ0LiRyZWZzLnRyaWdnZXIuJGVsLmZvY3VzKCksZX0pfX19LHByb3BzOntpY29uOlN0cmluZyxhY3RpdmVJY29uOlN0cmluZyxkaXJlY3Rpb246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJyaWdodFwifSxwZXJzaXN0ZW50OkJvb2xlYW59LHdhdGNoOnskcm91dGU6ZnVuY3Rpb24oKXshdGhpcy5wZXJzaXN0ZW50JiZ0aGlzLmhpZGUoKX19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLnZhbHVlJiZ0aGlzLnNob3coKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1mYWIgei1mYWIgcm93IGlubGluZSBqdXN0aWZ5LWNlbnRlclwiLGNsYXNzOntcInEtZmFiLW9wZW5lZFwiOnRoaXMuc2hvd2luZ319LFt0KFFCdG4se3JlZjpcInRyaWdnZXJcIixwcm9wczp7ZmFiOiEwLG91dGxpbmU6dGhpcy5vdXRsaW5lLHB1c2g6dGhpcy5wdXNoLGZsYXQ6dGhpcy5mbGF0LGNvbG9yOnRoaXMuY29sb3IsdGV4dENvbG9yOnRoaXMudGV4dENvbG9yLGdsb3NzeTp0aGlzLmdsb3NzeX0sb246e2NsaWNrOnRoaXMudG9nZ2xlfX0sW3RoaXMuJHNsb3RzLnRvb2x0aXAsdChRSWNvbix7c3RhdGljQ2xhc3M6XCJxLWZhYi1pY29uIGFic29sdXRlLWZ1bGxcIixwcm9wczp7bmFtZTp0aGlzLmljb258fHRoaXMuJHEuaWNvbi5mYWIuaWNvbn19KSx0KFFJY29uLHtzdGF0aWNDbGFzczpcInEtZmFiLWFjdGl2ZS1pY29uIGFic29sdXRlLWZ1bGxcIixwcm9wczp7bmFtZTp0aGlzLmFjdGl2ZUljb258fHRoaXMuJHEuaWNvbi5mYWIuYWN0aXZlSWNvbn19KV0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWZhYi1hY3Rpb25zIGZsZXggbm8td3JhcCBpbmxpbmUgaXRlbXMtY2VudGVyXCIsY2xhc3M6XCJxLWZhYi1cIit0aGlzLmRpcmVjdGlvbn0sdGhpcy4kc2xvdHMuZGVmYXVsdCldKX19LFFGYWJBY3Rpb249e25hbWU6XCJRRmFiQWN0aW9uXCIsbWl4aW5zOltGYWJNaXhpbl0scHJvcHM6e2ljb246e3R5cGU6U3RyaW5nLHJlcXVpcmVkOiEwfX0saW5qZWN0OntfX3FGYWJDbG9zZTp7ZGVmYXVsdDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoXCJRRmFiQWN0aW9uIG5lZWRzIHRvIGJlIGNoaWxkIG9mIFFGYWJcIil9fX0sbWV0aG9kczp7Y2xpY2s6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLl9fcUZhYkNsb3NlKCkudGhlbihmdW5jdGlvbigpe2UuJGVtaXQoXCJjbGlja1wiLHQpfSl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoUUJ0bix7cHJvcHM6e2ZhYk1pbmk6ITAsb3V0bGluZTp0aGlzLm91dGxpbmUscHVzaDp0aGlzLnB1c2gsZmxhdDp0aGlzLmZsYXQsY29sb3I6dGhpcy5jb2xvcix0ZXh0Q29sb3I6dGhpcy50ZXh0Q29sb3IsZ2xvc3N5OnRoaXMuZ2xvc3N5LGljb246dGhpcy5pY29ufSxvbjp7Y2xpY2s6dGhpcy5jbGlja319LHRoaXMuJHNsb3RzLmRlZmF1bHQpfX0sUUZpZWxkPXtuYW1lOlwiUUZpZWxkXCIsbWl4aW5zOltDYW5SZW5kZXJNaXhpbl0scHJvcHM6e2luc2V0Ont0eXBlOlN0cmluZyx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1wiaWNvblwiLFwibGFiZWxcIixcImZ1bGxcIl0uaW5jbHVkZXModCl9fSxsYWJlbDpTdHJpbmcsY291bnQ6e3R5cGU6W051bWJlcixCb29sZWFuXSxkZWZhdWx0OiExfSxlcnJvcjpCb29sZWFuLGVycm9yTGFiZWw6U3RyaW5nLHdhcm5pbmc6Qm9vbGVhbix3YXJuaW5nTGFiZWw6U3RyaW5nLGhlbHBlcjpTdHJpbmcsaWNvbjpTdHJpbmcsaWNvbkNvbG9yOlN0cmluZyxkYXJrOkJvb2xlYW4sb3JpZW50YXRpb246e3R5cGU6U3RyaW5nLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJ2ZXJ0aWNhbFwiLFwiaG9yaXpvbnRhbFwiXS5pbmNsdWRlcyh0KX19LGxhYmVsV2lkdGg6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6NSx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7dmFyIGU9cGFyc2VJbnQodCwxMCk7cmV0dXJuIGU+MCYmZTwxM319fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2lucHV0Ont9fX0sY29tcHV0ZWQ6e2hhc0Vycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5wdXQuZXJyb3J8fHRoaXMuZXJyb3J9LGhhc1dhcm5pbmc6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5oYXNFcnJvciYmKHRoaXMuaW5wdXQud2FybmluZ3x8dGhpcy53YXJuaW5nKX0sY2hpbGRIYXNMYWJlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlucHV0LmZsb2F0TGFiZWx8fHRoaXMuaW5wdXQuc3RhY2tMYWJlbH0saXNEYXJrOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5wdXQuZGFya3x8dGhpcy5kYXJrfSxpbnNldEljb246ZnVuY3Rpb24oKXtyZXR1cm5bXCJpY29uXCIsXCJmdWxsXCJdLmluY2x1ZGVzKHRoaXMuaW5zZXQpfSxoYXNOb0lucHV0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2FuUmVuZGVyJiYoIXRoaXMuaW5wdXQuJG9wdGlvbnN8fHRoaXMuaW5wdXQuX19uZWVkc0JvcmRlcil9LGNvdW50ZXI6ZnVuY3Rpb24oKXtpZih0aGlzLmNvdW50KXt2YXIgdD10aGlzLmlucHV0Lmxlbmd0aHx8XCIwXCI7cmV0dXJuIE51bWJlci5pc0ludGVnZXIodGhpcy5jb3VudCk/dCtcIiAvIFwiK3RoaXMuY291bnQ6dH19LGNsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm57XCJxLWZpZWxkLXJlc3BvbnNpdmVcIjohdGhpcy5pc1ZlcnRpY2FsJiYhdGhpcy5pc0hvcml6b250YWwsXCJxLWZpZWxkLXZlcnRpY2FsXCI6dGhpcy5pc1ZlcnRpY2FsLFwicS1maWVsZC1ob3Jpem9udGFsXCI6dGhpcy5pc0hvcml6b250YWwsXCJxLWZpZWxkLWZsb2F0aW5nXCI6dGhpcy5jaGlsZEhhc0xhYmVsLFwicS1maWVsZC1uby1sYWJlbFwiOiF0aGlzLmxhYmVsJiYhdGhpcy4kc2xvdHMubGFiZWwsXCJxLWZpZWxkLXdpdGgtZXJyb3JcIjp0aGlzLmhhc0Vycm9yLFwicS1maWVsZC13aXRoLXdhcm5pbmdcIjp0aGlzLmhhc1dhcm5pbmcsXCJxLWZpZWxkLWRhcmtcIjp0aGlzLmlzRGFyayxcInEtZmllbGQtbm8taW5wdXRcIjp0aGlzLmhhc05vSW5wdXR9fSxjb21wdXRlZExhYmVsV2lkdGg6ZnVuY3Rpb24oKXtyZXR1cm4gcGFyc2VJbnQodGhpcy5sYWJlbFdpZHRoLDEwKX0saXNWZXJ0aWNhbDpmdW5jdGlvbigpe3JldHVyblwidmVydGljYWxcIj09PXRoaXMub3JpZW50YXRpb258fDEyPT09dGhpcy5jb21wdXRlZExhYmVsV2lkdGh9LGlzSG9yaXpvbnRhbDpmdW5jdGlvbigpe3JldHVyblwiaG9yaXpvbnRhbFwiPT09dGhpcy5vcmllbnRhdGlvbn0sbGFiZWxDbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNWZXJ0aWNhbD9cImNvbC0xMlwiOnRoaXMuaXNIb3Jpem9udGFsP1wiY29sLVwiK3RoaXMubGFiZWxXaWR0aDpcImNvbC14cy0xMiBjb2wtc20tXCIrdGhpcy5sYWJlbFdpZHRofSxpbnB1dENsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1ZlcnRpY2FsP1wiY29sLXhzLTEyXCI6dGhpcy5pc0hvcml6b250YWw/XCJjb2xcIjpcImNvbC14cy0xMiBjb2wtc21cIn0saWNvblByb3BzOmZ1bmN0aW9uKCl7dmFyIHQ9e25hbWU6dGhpcy5pY29ufTtyZXR1cm4hdGhpcy5pY29uQ29sb3J8fHRoaXMuaGFzRXJyb3J8fHRoaXMuaGFzV2FybmluZ3x8KHQuY29sb3I9dGhpcy5pY29uQ29sb3IpLHR9LGluc2V0SGFzTGFiZWw6ZnVuY3Rpb24oKXtyZXR1cm5bXCJsYWJlbFwiLFwiZnVsbFwiXS5pbmNsdWRlcyh0aGlzLmluc2V0KX19LHByb3ZpZGU6ZnVuY3Rpb24oKXtyZXR1cm57X19maWVsZDp0aGlzfX0sbWV0aG9kczp7X19yZWdpc3RlcklucHV0OmZ1bmN0aW9uKHQpe3RoaXMuaW5wdXQ9dH0sX191bnJlZ2lzdGVySW5wdXQ6ZnVuY3Rpb24odCl7dCYmdCE9PXRoaXMuaW5wdXR8fCh0aGlzLmlucHV0PXt9KX0sX19nZXRCb3R0b21Db250ZW50OmZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiB0aGlzLmhhc0Vycm9yJiYoZT10aGlzLiRzbG90c1tcImVycm9yLWxhYmVsXCJdfHx0aGlzLmVycm9yTGFiZWwpP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWZpZWxkLWVycm9yIGNvbFwifSxlKTp0aGlzLmhhc1dhcm5pbmcmJihlPXRoaXMuJHNsb3RzW1wid2FybmluZy1sYWJlbFwiXXx8dGhpcy53YXJuaW5nTGFiZWwpP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWZpZWxkLXdhcm5pbmcgY29sXCJ9LGUpOihlPXRoaXMuJHNsb3RzLmhlbHBlcnx8dGhpcy5oZWxwZXIpP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWZpZWxkLWhlbHBlciBjb2xcIn0sZSk6dChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbCB0ZXh0LXRyYW5zcGFyZW50XCJ9LFtcInxcIl0pfSxfX2hhc0JvdHRvbTpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRzbG90c1tcImVycm9yLWxhYmVsXCJdfHx0aGlzLmVycm9yTGFiZWx8fHRoaXMuJHNsb3RzW1wid2FybmluZy1sYWJlbFwiXXx8dGhpcy53YXJuaW5nTGFiZWx8fHRoaXMuJHNsb3RzLmhlbHBlcnx8dGhpcy5oZWxwZXJ8fHRoaXMuY291bnR9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy4kc2xvdHMubGFiZWx8fHRoaXMubGFiZWw7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWZpZWxkIHJvdyBuby13cmFwIGl0ZW1zLXN0YXJ0XCIsY2xhc3M6dGhpcy5jbGFzc2VzfSxbdGhpcy5pY29uP3QoUUljb24se3Byb3BzOnRoaXMuaWNvblByb3BzLHN0YXRpY0NsYXNzOlwicS1maWVsZC1pY29uIHEtZmllbGQtbWFyZ2luXCJ9KTp0aGlzLmluc2V0SWNvbj90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1maWVsZC1pY29uXCJ9KTpudWxsLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJyb3cgY29sXCJ9LFtlfHx0aGlzLmluc2V0SGFzTGFiZWw/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZmllbGQtbGFiZWwgcS1maWVsZC1tYXJnaW5cIixjbGFzczp0aGlzLmxhYmVsQ2xhc3Nlc30sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWZpZWxkLWxhYmVsLWlubmVyIHJvdyBpdGVtcy1jZW50ZXJcIn0sW3RoaXMuJHNsb3RzLmxhYmVsfHx0aGlzLmxhYmVsXSldKTpudWxsLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWZpZWxkLWNvbnRlbnRcIixjbGFzczp0aGlzLmlucHV0Q2xhc3Nlc30sW3RoaXMuJHNsb3RzLmRlZmF1bHQsdGhpcy5fX2hhc0JvdHRvbSgpP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWZpZWxkLWJvdHRvbSByb3cgbm8td3JhcFwifSxbdGhpcy5fX2dldEJvdHRvbUNvbnRlbnQodCksdGhpcy5jb3VudGVyP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWZpZWxkLWNvdW50ZXIgY29sLWF1dG9cIn0sW3RoaXMuY291bnRlcl0pOm51bGxdKTpudWxsXSldKV0pfX0sUUluZmluaXRlU2Nyb2xsPXtuYW1lOlwiUUluZmluaXRlU2Nyb2xsXCIscHJvcHM6e2hhbmRsZXI6e3R5cGU6RnVuY3Rpb24scmVxdWlyZWQ6ITB9LGlubGluZTpCb29sZWFuLG9mZnNldDp7dHlwZTpOdW1iZXIsZGVmYXVsdDowfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntpbmRleDowLGZldGNoaW5nOiExLHdvcmtpbmc6ITB9fSxtZXRob2RzOntwb2xsOmZ1bmN0aW9uKCl7aWYoIXRoaXMuZmV0Y2hpbmcmJnRoaXMud29ya2luZyl7dmFyIHQ9aGVpZ2h0KHRoaXMuc2Nyb2xsQ29udGFpbmVyKSxlPW9mZnNldCh0aGlzLnNjcm9sbENvbnRhaW5lcikudG9wK3Q7b2Zmc2V0KHRoaXMuZWxlbWVudCkudG9wK2hlaWdodCh0aGlzLmVsZW1lbnQpLSh0aGlzLm9mZnNldHx8dCk8ZSYmdGhpcy5sb2FkTW9yZSgpfX0sbG9hZE1vcmU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzOyF0aGlzLmZldGNoaW5nJiZ0aGlzLndvcmtpbmcmJih0aGlzLmluZGV4KyssdGhpcy5mZXRjaGluZz0hMCx0aGlzLmhhbmRsZXIodGhpcy5pbmRleCxmdW5jdGlvbihlKXt0LmZldGNoaW5nPSExLGU/dC5zdG9wKCk6dC5lbGVtZW50LmNsb3Nlc3QoXCJib2R5XCIpJiZ0LnBvbGwoKX0pKX0scmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLmluZGV4PTB9LHJlc3VtZTpmdW5jdGlvbigpeyEwIT09dGhpcy53b3JraW5nJiYodGhpcy53b3JraW5nPSEwLHRoaXMuc2Nyb2xsQ29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIix0aGlzLnBvbGwsbGlzdGVuT3B0cy5wYXNzaXZlKSksdGhpcy5pbW1lZGlhdGVQb2xsKCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLndvcmtpbmc9ITEsdGhpcy5mZXRjaGluZz0hMSx0aGlzLnNjcm9sbENvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsdGhpcy5wb2xsLGxpc3Rlbk9wdHMucGFzc2l2ZSl9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3QuZWxlbWVudD10LiRyZWZzLmNvbnRlbnQsdC5zY3JvbGxDb250YWluZXI9dC5pbmxpbmU/dC4kZWw6Z2V0U2Nyb2xsVGFyZ2V0KHQuJGVsKSx0LnBvbGwoKSx0LmltbWVkaWF0ZVBvbGw9dC5wb2xsLHQucG9sbD1kZWJvdW5jZSh0LnBvbGwsNTApLCEwPT09dC53b3JraW5nJiZ0LnNjcm9sbENvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsdC5wb2xsLGxpc3Rlbk9wdHMucGFzc2l2ZSl9KX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuc2Nyb2xsQ29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIix0aGlzLnBvbGwsbGlzdGVuT3B0cy5wYXNzaXZlKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1pbmZpbml0ZS1zY3JvbGxcIn0sW3QoXCJkaXZcIix7cmVmOlwiY29udGVudFwiLHN0YXRpY0NsYXNzOlwicS1pbmZpbml0ZS1zY3JvbGwtY29udGVudFwifSx0aGlzLiRzbG90cy5kZWZhdWx0KSx0aGlzLmZldGNoaW5nP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWluZmluaXRlLXNjcm9sbC1tZXNzYWdlXCJ9LHRoaXMuJHNsb3RzLm1lc3NhZ2UpOm51bGxdKX19LFFJbm5lckxvYWRpbmc9e25hbWU6XCJRSW5uZXJMb2FkaW5nXCIscHJvcHM6e2Rhcms6Qm9vbGVhbix2aXNpYmxlOkJvb2xlYW4sc2l6ZTp7dHlwZTpbU3RyaW5nLE51bWJlcl0sZGVmYXVsdDo0Mn0sY29sb3I6U3RyaW5nfSxyZW5kZXI6ZnVuY3Rpb24odCl7aWYodGhpcy52aXNpYmxlKXJldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1pbm5lci1sb2FkaW5nIGFuaW1hdGUtZmFkZSBhYnNvbHV0ZS1mdWxsIGNvbHVtbiBmbGV4LWNlbnRlclwiLGNsYXNzOntkYXJrOnRoaXMuZGFya319LHRoaXMuJHNsb3RzLmRlZmF1bHR8fFt0KFFTcGlubmVyLHtwcm9wczp7c2l6ZTp0aGlzLnNpemUsY29sb3I6dGhpcy5jb2xvcn19KV0pfX0sUUp1bWJvdHJvbj17bmFtZTpcIlFKdW1ib3Ryb25cIixwcm9wczp7ZGFyazpCb29sZWFuLHRhZzp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImRpdlwifSxpbWdTcmM6U3RyaW5nLGdyYWRpZW50OlN0cmluZ30sY29tcHV0ZWQ6e2dyYWRpZW50VHlwZTpmdW5jdGlvbigpe2lmKHRoaXMuZ3JhZGllbnQpcmV0dXJuIHRoaXMuZ3JhZGllbnQuaW5kZXhPZihcImNpcmNsZVwiKT4tMT9cInJhZGlhbFwiOlwibGluZWFyXCJ9LGNvbXB1dGVkU3R5bGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbWdTcmM/e1wiYmFja2dyb3VuZC1pbWFnZVwiOlwidXJsKFwiK3RoaXMuaW1nU3JjK1wiKVwifTp0aGlzLmdyYWRpZW50VHlwZT97YmFja2dyb3VuZDp0aGlzLmdyYWRpZW50VHlwZStcIi1ncmFkaWVudChcIit0aGlzLmdyYWRpZW50K1wiKVwifTp2b2lkIDB9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQodGhpcy50YWcse3N0YXRpY0NsYXNzOlwicS1qdW1ib3Ryb25cIixzdHlsZTp0aGlzLmNvbXB1dGVkU3R5bGUsY2xhc3M6e1wicS1qdW1ib3Ryb24tZGFya1wiOnRoaXMuZGFya319LHRoaXMuJHNsb3RzLmRlZmF1bHQpfX0sUUtub2I9e25hbWU6XCJRS25vYlwiLGRpcmVjdGl2ZXM6e1RvdWNoUGFuOlRvdWNoUGFufSxwcm9wczp7dmFsdWU6TnVtYmVyLG1pbjp7dHlwZTpOdW1iZXIsZGVmYXVsdDowfSxtYXg6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MTAwfSxjb2xvcjpTdHJpbmcsdHJhY2tDb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImdyZXktM1wifSxsaW5lV2lkdGg6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCI2cHhcIn0sc2l6ZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcIjEwMHB4XCJ9LHN0ZXA6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MX0sZGVjaW1hbHM6TnVtYmVyLGRpc2FibGU6Qm9vbGVhbixyZWFkb25seTpCb29sZWFufSxjb21wdXRlZDp7Y2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmRpc2FibGUmJnQucHVzaChcImRpc2FibGVkXCIpLHRoaXMucmVhZG9ubHl8fHQucHVzaChcImN1cnNvci1wb2ludGVyXCIpLHRoaXMuY29sb3ImJnQucHVzaChcInRleHQtXCIrdGhpcy5jb2xvciksdH0sc3ZnU3R5bGU6ZnVuY3Rpb24oKXtyZXR1cm57XCJzdHJva2UtZGFzaGFycmF5XCI6XCIyOTUuMzFweCwgMjk1LjMxcHhcIixcInN0cm9rZS1kYXNob2Zmc2V0XCI6Mjk1LjMxKih0aGlzLiRxLmkxOG4ucnRsPy0xOjEpKigxLSh0aGlzLm1vZGVsLXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pKStcInB4XCIsdHJhbnNpdGlvbjp0aGlzLmRyYWdnaW5nP1wiXCI6XCJzdHJva2UtZGFzaG9mZnNldCAwLjZzIGVhc2UgMHMsIHN0cm9rZSAwLjZzIGVhc2VcIn19LGVkaXRhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZGlzYWJsZSYmIXRoaXMucmVhZG9ubHl9LGNvbXB1dGVkRGVjaW1hbHM6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5kZWNpbWFscz90aGlzLmRlY2ltYWxzfHwwOihTdHJpbmcodGhpcy5zdGVwKS50cmltKFwiMFwiKS5zcGxpdChcIi5cIilbMV18fFwiXCIpLmxlbmd0aH0sY29tcHV0ZWRTdGVwOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuZGVjaW1hbHM/MS9NYXRoLnBvdygxMCx0aGlzLmRlY2ltYWxzfHwwKTp0aGlzLnN0ZXB9fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue21vZGVsOnRoaXMudmFsdWUsZHJhZ2dpbmc6ITF9fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih0PHRoaXMubWluKXRoaXMubW9kZWw9dGhpcy5taW47ZWxzZXtpZighKHQ+dGhpcy5tYXgpKXt2YXIgaT10aGlzLmNvbXB1dGVkRGVjaW1hbHMmJlwibnVtYmVyXCI9PXR5cGVvZiB0P3BhcnNlRmxvYXQodC50b0ZpeGVkKHRoaXMuY29tcHV0ZWREZWNpbWFscykpOnQ7cmV0dXJuIHZvaWQoaSE9PXRoaXMubW9kZWwmJih0aGlzLm1vZGVsPWkpKX10aGlzLm1vZGVsPXRoaXMubWF4fXRoaXMuJGVtaXQoXCJpbnB1dFwiLHRoaXMubW9kZWwpLHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7ZS5tb2RlbCE9PWUudmFsdWUmJmUuJGVtaXQoXCJjaGFuZ2VcIixlLm1vZGVsKX0pfX0sbWV0aG9kczp7X19wYW46ZnVuY3Rpb24odCl7dGhpcy5lZGl0YWJsZSYmKHQuaXNGaW5hbD90aGlzLl9fZHJhZ1N0b3AodC5ldnQpOnQuaXNGaXJzdD90aGlzLl9fZHJhZ1N0YXJ0KHQuZXZ0KTp0aGlzLl9fZHJhZ01vdmUodC5ldnQpKX0sX19kcmFnU3RhcnQ6ZnVuY3Rpb24odCl7dGhpcy5lZGl0YWJsZSYmKHN0b3BBbmRQcmV2ZW50KHQpLHRoaXMuY2VudGVyUG9zaXRpb249dGhpcy5fX2dldENlbnRlcigpLGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLmRyYWdnaW5nPSEwLHRoaXMuX19vbklucHV0KHQpKX0sX19kcmFnTW92ZTpmdW5jdGlvbih0KXt0aGlzLmRyYWdnaW5nJiZ0aGlzLmVkaXRhYmxlJiYoc3RvcEFuZFByZXZlbnQodCksdGhpcy5fX29uSW5wdXQodCx0aGlzLmNlbnRlclBvc2l0aW9uKSl9LF9fZHJhZ1N0b3A6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLmVkaXRhYmxlJiYoc3RvcEFuZFByZXZlbnQodCksdGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5kcmFnZ2luZz0hMX0sMTAwKSx0aGlzLl9fb25JbnB1dCh0LHRoaXMuY2VudGVyUG9zaXRpb24sITApKX0sX19vbktleURvd246ZnVuY3Rpb24odCl7dmFyIGU9dC5rZXlDb2RlO2lmKHRoaXMuZWRpdGFibGUmJlszNyw0MCwzOSwzOF0uaW5jbHVkZXMoZSkpe3N0b3BBbmRQcmV2ZW50KHQpO3ZhciBpPXQuY3RybEtleT8xMCp0aGlzLmNvbXB1dGVkU3RlcDp0aGlzLmNvbXB1dGVkU3RlcCxzPVszNyw0MF0uaW5jbHVkZXMoZSk/LWk6aTt0aGlzLl9fb25JbnB1dFZhbHVlKGJldHdlZW4odGhpcy5tb2RlbCtzLHRoaXMubWluLHRoaXMubWF4KSl9fSxfX29uS2V5VXA6ZnVuY3Rpb24odCl7dmFyIGU9dC5rZXlDb2RlO3RoaXMuZWRpdGFibGUmJlszNyw0MCwzOSwzOF0uaW5jbHVkZXMoZSkmJnRoaXMuX19lbWl0Q2hhbmdlKCl9LF9fb25JbnB1dDpmdW5jdGlvbih0LGUsaSl7aWYodm9pZCAwPT09ZSYmKGU9dGhpcy5fX2dldENlbnRlcigpKSx0aGlzLmVkaXRhYmxlKXt2YXIgcz1wb3NpdGlvbih0KSxuPU1hdGguYWJzKHMudG9wLWUudG9wKSxvPU1hdGguc3FydChNYXRoLnBvdyhNYXRoLmFicyhzLnRvcC1lLnRvcCksMikrTWF0aC5wb3coTWF0aC5hYnMocy5sZWZ0LWUubGVmdCksMikpLHI9TWF0aC5hc2luKG4vbykqKDE4MC9NYXRoLlBJKTtyPXMudG9wPGUudG9wP2UubGVmdDxzLmxlZnQ/OTAtcjoyNzArcjplLmxlZnQ8cy5sZWZ0P3IrOTA6MjcwLXIsdGhpcy4kcS5pMThuLnJ0bCYmKHI9MzYwLXIpO3ZhciBhPXRoaXMubWluK3IvMzYwKih0aGlzLm1heC10aGlzLm1pbiksbD1hJXRoaXMuc3RlcCxjPWJldHdlZW4oYS1sKyhNYXRoLmFicyhsKT49dGhpcy5zdGVwLzI/KGw8MD8tMToxKSp0aGlzLnN0ZXA6MCksdGhpcy5taW4sdGhpcy5tYXgpO3RoaXMuX19vbklucHV0VmFsdWUoYyxpKX19LF9fb25JbnB1dFZhbHVlOmZ1bmN0aW9uKHQsZSl7dGhpcy5jb21wdXRlZERlY2ltYWxzJiYodD1wYXJzZUZsb2F0KHQudG9GaXhlZCh0aGlzLmNvbXB1dGVkRGVjaW1hbHMpKSksdGhpcy5tb2RlbCE9PXQmJih0aGlzLm1vZGVsPXQpLHRoaXMuJGVtaXQoXCJkcmFnLXZhbHVlXCIsdCksdGhpcy52YWx1ZSE9PXQmJih0aGlzLiRlbWl0KFwiaW5wdXRcIix0KSxlJiZ0aGlzLl9fZW1pdENoYW5nZSh0KSl9LF9fZW1pdENoYW5nZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3ZvaWQgMD09PXQmJih0PXRoaXMubW9kZWwpLHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7SlNPTi5zdHJpbmdpZnkodCkhPT1KU09OLnN0cmluZ2lmeShlLnZhbHVlKSYmZS4kZW1pdChcImNoYW5nZVwiLHQpfSl9LF9fZ2V0Q2VudGVyOmZ1bmN0aW9uKCl7dmFyIHQ9b2Zmc2V0KHRoaXMuJGVsKTtyZXR1cm57dG9wOnQudG9wK2hlaWdodCh0aGlzLiRlbCkvMixsZWZ0OnQubGVmdCt3aWR0aCh0aGlzLiRlbCkvMn19fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEta25vYiBub24tc2VsZWN0YWJsZVwiLGNsYXNzOnRoaXMuY2xhc3NlcyxzdHlsZTp7d2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemV9fSxbdChcImRpdlwiLHtvbjp7Y2xpY2s6ZnVuY3Rpb24odCl7cmV0dXJuIWUuZHJhZ2dpbmcmJmUuX19vbklucHV0KHQsdm9pZCAwLCEwKX19LGRpcmVjdGl2ZXM6dGhpcy5lZGl0YWJsZT9be25hbWU6XCJ0b3VjaC1wYW5cIixtb2RpZmllcnM6e3ByZXZlbnQ6ITAsc3RvcDohMH0sdmFsdWU6dGhpcy5fX3Bhbn1dOm51bGx9LFt0KFwic3ZnXCIse2F0dHJzOnt2aWV3Qm94OlwiMCAwIDEwMCAxMDBcIn19LFt0KFwicGF0aFwiLHthdHRyczp7ZDpcIk0gNTAsNTAgbSAwLC00NyBhIDQ3LDQ3IDAgMSAxIDAsOTQgYSA0Nyw0NyAwIDEgMSAwLC05NFwiLFwiZmlsbC1vcGFjaXR5XCI6XCIwXCIsc3Ryb2tlOlwiY3VycmVudENvbG9yXCIsXCJzdHJva2Utd2lkdGhcIjp0aGlzLmxpbmVXaWR0aH0sY2xhc3M6XCJ0ZXh0LVwiK3RoaXMudHJhY2tDb2xvcn0pLHQoXCJwYXRoXCIse2F0dHJzOntkOlwiTSA1MCw1MCBtIDAsLTQ3IGEgNDcsNDcgMCAxIDEgMCw5NCBhIDQ3LDQ3IDAgMSAxIDAsLTk0XCIsXCJmaWxsLW9wYWNpdHlcIjpcIjBcIixzdHJva2U6XCJjdXJyZW50Q29sb3JcIixcInN0cm9rZS1saW5lY2FwXCI6XCJyb3VuZFwiLFwic3Ryb2tlLXdpZHRoXCI6dGhpcy5saW5lV2lkdGh9LHN0eWxlOnRoaXMuc3ZnU3R5bGV9KV0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWtub2ItbGFiZWwgcm93IGZsZXgtY2VudGVyIGNvbnRlbnQtY2VudGVyXCIsYXR0cnM6e3RhYmluZGV4OnRoaXMuZWRpdGFibGU/MDotMX0sb246e2tleWRvd246dGhpcy5fX29uS2V5RG93bixrZXl1cDp0aGlzLl9fb25LZXlVcH19LHRoaXMuJHNsb3RzLmRlZmF1bHR8fFt0KFwic3BhblwiLFt0aGlzLm1vZGVsXSldKV0pXSl9fSxRU2Nyb2xsT2JzZXJ2YWJsZT17bmFtZTpcIlFTY3JvbGxPYnNlcnZhYmxlXCIscHJvcHM6e2RlYm91bmNlOk51bWJlcn0scmVuZGVyOmZ1bmN0aW9uKCl7fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3BvczowLGRpcjpcImRvd25cIixkaXJDaGFuZ2VkOiExLGRpckNoYW5nZVBvczowfX0sbWV0aG9kczp7Z2V0UG9zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm57cG9zaXRpb246dGhpcy5wb3MsZGlyZWN0aW9uOnRoaXMuZGlyLGRpcmVjdGlvbkNoYW5nZWQ6dGhpcy5kaXJDaGFuZ2VkLGluZmxleGlvblBvc2l0aW9uOnRoaXMuZGlyQ2hhbmdlUG9zfX0sdHJpZ2dlcjpmdW5jdGlvbih0KXshMD09PXR8fDA9PT10aGlzLmRlYm91bmNlP3RoaXMuZW1pdCgpOnRoaXMudGltZXJ8fCh0aGlzLnRpbWVyPXRoaXMuZGVib3VuY2U/c2V0VGltZW91dCh0aGlzLmVtaXQsdGhpcy5kZWJvdW5jZSk6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMuZW1pdCkpfSxlbWl0OmZ1bmN0aW9uKCl7dmFyIHQ9TWF0aC5tYXgoMCxnZXRTY3JvbGxQb3NpdGlvbih0aGlzLnRhcmdldCkpLGU9dC10aGlzLnBvczwwP1widXBcIjpcImRvd25cIjt0aGlzLmRpckNoYW5nZWQ9dGhpcy5kaXIhPT1lLHRoaXMuZGlyQ2hhbmdlZCYmKHRoaXMuZGlyPWUsdGhpcy5kaXJDaGFuZ2VQb3M9dGhpcy5wb3MpLHRoaXMudGltZXI9bnVsbCx0aGlzLnBvcz10LHRoaXMuJGVtaXQoXCJzY3JvbGxcIix0aGlzLmdldFBvc2l0aW9uKCkpfX0sbW91bnRlZDpmdW5jdGlvbigpe3RoaXMudGFyZ2V0PWdldFNjcm9sbFRhcmdldCh0aGlzLiRlbC5wYXJlbnROb2RlKSx0aGlzLnRhcmdldC5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsdGhpcy50cmlnZ2VyLGxpc3Rlbk9wdHMucGFzc2l2ZSksdGhpcy50cmlnZ2VyKCEwKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSxjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLnRpbWVyKSx0aGlzLnRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsdGhpcy50cmlnZ2VyLGxpc3Rlbk9wdHMucGFzc2l2ZSl9fSxRTGF5b3V0PXtuYW1lOlwiUUxheW91dFwiLHByb3ZpZGU6ZnVuY3Rpb24oKXtyZXR1cm57bGF5b3V0OnRoaXN9fSxwcm9wczp7Y29udGFpbmVyOkJvb2xlYW4sdmlldzp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImhoaCBscHIgZmZmXCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybi9eKGh8bCloKGh8cikgbHByIChmfGwpZihmfHIpJC8udGVzdCh0LnRvTG93ZXJDYXNlKCkpfX19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57aGVpZ2h0Om9uU1NSPzA6d2luZG93LmlubmVySGVpZ2h0LHdpZHRoOm9uU1NSfHx0aGlzLmNvbnRhaW5lcj8wOndpbmRvdy5pbm5lcldpZHRoLGNvbnRhaW5lckhlaWdodDowLHNjcm9sbGJhcldpZHRoOm9uU1NSPzA6Z2V0U2Nyb2xsYmFyV2lkdGgoKSxoZWFkZXI6e3NpemU6MCxvZmZzZXQ6MCxzcGFjZTohMX0scmlnaHQ6e3NpemU6MzAwLG9mZnNldDowLHNwYWNlOiExfSxmb290ZXI6e3NpemU6MCxvZmZzZXQ6MCxzcGFjZTohMX0sbGVmdDp7c2l6ZTozMDAsb2Zmc2V0OjAsc3BhY2U6ITF9LHNjcm9sbDp7cG9zaXRpb246MCxkaXJlY3Rpb246XCJkb3duXCJ9fX0sY29tcHV0ZWQ6e3Jvd3M6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnZpZXcudG9Mb3dlckNhc2UoKS5zcGxpdChcIiBcIik7cmV0dXJue3RvcDp0WzBdLnNwbGl0KFwiXCIpLG1pZGRsZTp0WzFdLnNwbGl0KFwiXCIpLGJvdHRvbTp0WzJdLnNwbGl0KFwiXCIpfX0sdGFyZ2V0U3R5bGU6ZnVuY3Rpb24oKXt2YXIgdDtpZigwIT09dGhpcy5zY3JvbGxiYXJXaWR0aClyZXR1cm4odD17fSlbdGhpcy4kcS5pMThuLnJ0bD9cImxlZnRcIjpcInJpZ2h0XCJdPXRoaXMuc2Nyb2xsYmFyV2lkdGgrXCJweFwiLHR9LHRhcmdldENoaWxkU3R5bGU6ZnVuY3Rpb24oKXt2YXIgdDtpZigwIT09dGhpcy5zY3JvbGxiYXJXaWR0aClyZXR1cm4odD17fSlbdGhpcy4kcS5pMThuLnJ0bD9cInJpZ2h0XCI6XCJsZWZ0XCJdPTAsdFt0aGlzLiRxLmkxOG4ucnRsP1wibGVmdFwiOlwicmlnaHRcIl09XCItXCIrdGhpcy5zY3JvbGxiYXJXaWR0aCtcInB4XCIsdC53aWR0aD1cImNhbGMoMTAwJSArIFwiK3RoaXMuc2Nyb2xsYmFyV2lkdGgrXCJweClcIix0fX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuaW5zdGFuY2VzPXtoZWFkZXI6bnVsbCxyaWdodDpudWxsLGZvb3RlcjpudWxsLGxlZnQ6bnVsbH19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1sYXlvdXRcIn0sW3QoUVNjcm9sbE9ic2VydmFibGUse29uOntzY3JvbGw6dGhpcy5fX29uUGFnZVNjcm9sbH19KSx0KFFSZXNpemVPYnNlcnZhYmxlLHtvbjp7cmVzaXplOnRoaXMuX19vblBhZ2VSZXNpemV9fSksdGhpcy4kc2xvdHMuZGVmYXVsdF0pO3JldHVybiB0aGlzLmNvbnRhaW5lcj90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1sYXlvdXQtY29udGFpbmVyIHJlbGF0aXZlLXBvc2l0aW9uIG92ZXJmbG93LWhpZGRlblwifSxbdChRUmVzaXplT2JzZXJ2YWJsZSx7b246e3Jlc2l6ZTp0aGlzLl9fb25Db250YWluZXJSZXNpemV9fSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImFic29sdXRlLWZ1bGxcIixzdHlsZTp0aGlzLnRhcmdldFN0eWxlfSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcIm92ZXJmbG93LWF1dG9cIixzdHlsZTp0aGlzLnRhcmdldENoaWxkU3R5bGV9LFtlXSldKV0pOmV9LG1ldGhvZHM6e19fYW5pbWF0ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy50aW1lcj9jbGVhclRpbWVvdXQodGhpcy50aW1lcik6ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFwicS1sYXlvdXQtYW5pbWF0ZVwiKSx0aGlzLnRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJxLWxheW91dC1hbmltYXRlXCIpLHQudGltZXI9bnVsbH0sMTUwKX0sX19vblBhZ2VTY3JvbGw6ZnVuY3Rpb24odCl7dGhpcy5zY3JvbGw9dCx0aGlzLiRlbWl0KFwic2Nyb2xsXCIsdCl9LF9fb25QYWdlUmVzaXplOmZ1bmN0aW9uKHQpe3ZhciBlPXQuaGVpZ2h0LGk9dC53aWR0aCxzPSExO3RoaXMuaGVpZ2h0IT09ZSYmKHM9ITAsdGhpcy5oZWlnaHQ9ZSx0aGlzLiRlbWl0KFwic2Nyb2xsSGVpZ2h0XCIsZSksdGhpcy5fX3VwZGF0ZVNjcm9sbGJhcldpZHRoKCkpLHRoaXMud2lkdGghPT1pJiYocz0hMCx0aGlzLndpZHRoPWkpLHMmJnRoaXMuJGVtaXQoXCJyZXNpemVcIix7aGVpZ2h0OmUsd2lkdGg6aX0pfSxfX29uQ29udGFpbmVyUmVzaXplOmZ1bmN0aW9uKHQpe3ZhciBlPXQuaGVpZ2h0O3RoaXMuY29udGFpbmVySGVpZ2h0IT09ZSYmKHRoaXMuY29udGFpbmVySGVpZ2h0PWUsdGhpcy5fX3VwZGF0ZVNjcm9sbGJhcldpZHRoKCkpfSxfX3VwZGF0ZVNjcm9sbGJhcldpZHRoOmZ1bmN0aW9uKCl7aWYodGhpcy5jb250YWluZXIpe3ZhciB0PXRoaXMuaGVpZ2h0PnRoaXMuY29udGFpbmVySGVpZ2h0P2dldFNjcm9sbGJhcldpZHRoKCk6MDt0aGlzLnNjcm9sbGJhcldpZHRoIT09dCYmKHRoaXMuc2Nyb2xsYmFyV2lkdGg9dCl9fX19LGR1cmF0aW9uPTE1MCxRTGF5b3V0RHJhd2VyPXtuYW1lOlwiUUxheW91dERyYXdlclwiLGluamVjdDp7bGF5b3V0OntkZWZhdWx0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcihcIlFMYXlvdXREcmF3ZXIgbmVlZHMgdG8gYmUgY2hpbGQgb2YgUUxheW91dFwiKX19fSxtaXhpbnM6W01vZGVsVG9nZ2xlTWl4aW5dLGRpcmVjdGl2ZXM6e1RvdWNoUGFuOlRvdWNoUGFufSxwcm9wczp7b3ZlcmxheTpCb29sZWFuLHNpZGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJsZWZ0XCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcImxlZnRcIixcInJpZ2h0XCJdLmluY2x1ZGVzKHQpfX0sd2lkdGg6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MzAwfSxtaW5pOkJvb2xlYW4sbWluaVdpZHRoOnt0eXBlOk51bWJlcixkZWZhdWx0OjYwfSxicmVha3BvaW50Ont0eXBlOk51bWJlcixkZWZhdWx0Ojk5Mn0sYmVoYXZpb3I6e3R5cGU6U3RyaW5nLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJkZWZhdWx0XCIsXCJkZXNrdG9wXCIsXCJtb2JpbGVcIl0uaW5jbHVkZXModCl9LGRlZmF1bHQ6XCJkZWZhdWx0XCJ9LHNob3dJZkFib3ZlOkJvb2xlYW4sY29udGVudFN0eWxlOk9iamVjdCxjb250ZW50Q2xhc3M6W1N0cmluZyxPYmplY3QsQXJyYXldLG5vSGlkZU9uUm91dGVDaGFuZ2U6Qm9vbGVhbixub1N3aXBlT3BlbjpCb29sZWFuLG5vU3dpcGVDbG9zZTpCb29sZWFufSxkYXRhOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zaG93SWZBYm92ZXx8dm9pZCAwPT09dGhpcy52YWx1ZXx8dGhpcy52YWx1ZSxlPVwibW9iaWxlXCIhPT10aGlzLmJlaGF2aW9yJiZ0aGlzLmJyZWFrcG9pbnQ8dGhpcy5sYXlvdXQud2lkdGgmJiF0aGlzLm92ZXJsYXkmJnQ7cmV0dXJuIHZvaWQgMCE9PXRoaXMudmFsdWUmJnRoaXMudmFsdWUhPT1lJiZ0aGlzLiRlbWl0KFwiaW5wdXRcIixlKSx7c2hvd2luZzplLGJlbG93QnJlYWtwb2ludDpcIm1vYmlsZVwiPT09dGhpcy5iZWhhdmlvcnx8XCJkZXNrdG9wXCIhPT10aGlzLmJlaGF2aW9yJiZ0aGlzLmJyZWFrcG9pbnQ+PXRoaXMubGF5b3V0LndpZHRoLGxhcmdlU2NyZWVuU3RhdGU6dCxtb2JpbGVPcGVuZWQ6ITF9fSx3YXRjaDp7YmVsb3dCcmVha3BvaW50OmZ1bmN0aW9uKHQpe3RoaXMubW9iaWxlT3BlbmVkfHwodD8odGhpcy5vdmVybGF5fHwodGhpcy5sYXJnZVNjcmVlblN0YXRlPXRoaXMuc2hvd2luZyksdGhpcy5oaWRlKCExKSk6dGhpcy5vdmVybGF5fHx0aGlzW3RoaXMubGFyZ2VTY3JlZW5TdGF0ZT9cInNob3dcIjpcImhpZGVcIl0oITEpKX0sc2lkZTpmdW5jdGlvbih0LGUpe3RoaXMubGF5b3V0W2VdLnNwYWNlPSExLHRoaXMubGF5b3V0W2VdLm9mZnNldD0wfSxiZWhhdmlvcjpmdW5jdGlvbih0KXt0aGlzLl9fdXBkYXRlTG9jYWwoXCJiZWxvd0JyZWFrcG9pbnRcIixcIm1vYmlsZVwiPT09dHx8XCJkZXNrdG9wXCIhPT10JiZ0aGlzLmJyZWFrcG9pbnQ+PXRoaXMubGF5b3V0LndpZHRoKX0sYnJlYWtwb2ludDpmdW5jdGlvbih0KXt0aGlzLl9fdXBkYXRlTG9jYWwoXCJiZWxvd0JyZWFrcG9pbnRcIixcIm1vYmlsZVwiPT09dGhpcy5iZWhhdmlvcnx8XCJkZXNrdG9wXCIhPT10aGlzLmJlaGF2aW9yJiZ0Pj10aGlzLmxheW91dC53aWR0aCl9LFwibGF5b3V0LndpZHRoXCI6ZnVuY3Rpb24odCl7dGhpcy5fX3VwZGF0ZUxvY2FsKFwiYmVsb3dCcmVha3BvaW50XCIsXCJtb2JpbGVcIj09PXRoaXMuYmVoYXZpb3J8fFwiZGVza3RvcFwiIT09dGhpcy5iZWhhdmlvciYmdGhpcy5icmVha3BvaW50Pj10KX0sXCJsYXlvdXQuc2Nyb2xsYmFyV2lkdGhcIjpmdW5jdGlvbigpe3RoaXMuYXBwbHlQb3NpdGlvbih0aGlzLnNob3dpbmc/MDp2b2lkIDApfSxvZmZzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fX3VwZGF0ZShcIm9mZnNldFwiLHQpfSxvbkxheW91dDpmdW5jdGlvbih0KXt0aGlzLiRlbWl0KFwib24tbGF5b3V0XCIsdCksdGhpcy5fX3VwZGF0ZShcInNwYWNlXCIsdCl9LCRyb3V0ZTpmdW5jdGlvbigpe3RoaXMubm9IaWRlT25Sb3V0ZUNoYW5nZXx8KHRoaXMubW9iaWxlT3BlbmVkfHx0aGlzLm9uU2NyZWVuT3ZlcmxheSkmJnRoaXMuaGlkZSgpfSxyaWdodFNpZGU6ZnVuY3Rpb24oKXt0aGlzLmFwcGx5UG9zaXRpb24oKX0sc2l6ZTpmdW5jdGlvbih0KXt0aGlzLmFwcGx5UG9zaXRpb24oKSx0aGlzLl9fdXBkYXRlKFwic2l6ZVwiLHQpfSxcIiRxLmkxOG4ucnRsXCI6ZnVuY3Rpb24oKXt0aGlzLmFwcGx5UG9zaXRpb24oKX0sbWluaTpmdW5jdGlvbigpe3RoaXMudmFsdWUmJnRoaXMubGF5b3V0Ll9fYW5pbWF0ZSgpfX0sY29tcHV0ZWQ6e3JpZ2h0U2lkZTpmdW5jdGlvbigpe3JldHVyblwicmlnaHRcIj09PXRoaXMuc2lkZX0sb2Zmc2V0OmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuc2hvd2luZ3x8dGhpcy5tb2JpbGVPcGVuZWR8fHRoaXMub3ZlcmxheT8wOnRoaXMuc2l6ZX0sc2l6ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzTWluaT90aGlzLm1pbmlXaWR0aDp0aGlzLndpZHRofSxmaXhlZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm92ZXJsYXl8fHRoaXMubGF5b3V0LnZpZXcuaW5kZXhPZih0aGlzLnJpZ2h0U2lkZT9cIlJcIjpcIkxcIik+LTF9LG9uTGF5b3V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2hvd2luZyYmIXRoaXMubW9iaWxlVmlldyYmIXRoaXMub3ZlcmxheX0sb25TY3JlZW5PdmVybGF5OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2hvd2luZyYmIXRoaXMubW9iaWxlVmlldyYmdGhpcy5vdmVybGF5fSxiYWNrZHJvcENsYXNzOmZ1bmN0aW9uKCl7cmV0dXJue1wibm8tcG9pbnRlci1ldmVudHNcIjohdGhpcy5zaG93aW5nfHwhdGhpcy5tb2JpbGVWaWV3fX0sbW9iaWxlVmlldzpmdW5jdGlvbigpe3JldHVybiB0aGlzLmJlbG93QnJlYWtwb2ludHx8dGhpcy5tb2JpbGVPcGVuZWR9LGhlYWRlclNsb3Q6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5vdmVybGF5JiYodGhpcy5yaWdodFNpZGU/XCJyXCI9PT10aGlzLmxheW91dC5yb3dzLnRvcFsyXTpcImxcIj09PXRoaXMubGF5b3V0LnJvd3MudG9wWzBdKX0sZm9vdGVyU2xvdDpmdW5jdGlvbigpe3JldHVybiF0aGlzLm92ZXJsYXkmJih0aGlzLnJpZ2h0U2lkZT9cInJcIj09PXRoaXMubGF5b3V0LnJvd3MuYm90dG9tWzJdOlwibFwiPT09dGhpcy5sYXlvdXQucm93cy5ib3R0b21bMF0pfSxiZWxvd0NsYXNzOmZ1bmN0aW9uKCl7cmV0dXJue2ZpeGVkOiEwLFwib24tdG9wXCI6ITAsXCJxLWxheW91dC1kcmF3ZXItZGVsaW1pdGVyXCI6dGhpcy5maXhlZCYmdGhpcy5zaG93aW5nLFwicS1sYXlvdXQtZHJhd2VyLW1vYmlsZVwiOiEwLFwidG9wLXBhZGRpbmdcIjohMH19LGFib3ZlQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm57Zml4ZWQ6dGhpcy5maXhlZHx8IXRoaXMub25MYXlvdXQsXCJxLWxheW91dC1kcmF3ZXItbWluaVwiOnRoaXMuaXNNaW5pLFwicS1sYXlvdXQtZHJhd2VyLW5vcm1hbFwiOiF0aGlzLmlzTWluaSxcInEtbGF5b3V0LWRyYXdlci1kZWxpbWl0ZXJcIjp0aGlzLmZpeGVkJiZ0aGlzLnNob3dpbmcsXCJ0b3AtcGFkZGluZ1wiOnRoaXMuaGVhZGVyU2xvdH19LGFib3ZlU3R5bGU6ZnVuY3Rpb24oKXt2YXIgdD17fTtyZXR1cm4gdGhpcy5sYXlvdXQuaGVhZGVyLnNwYWNlJiYhdGhpcy5oZWFkZXJTbG90JiYodGhpcy5maXhlZD90LnRvcD10aGlzLmxheW91dC5oZWFkZXIub2Zmc2V0K1wicHhcIjp0aGlzLmxheW91dC5oZWFkZXIuc3BhY2UmJih0LnRvcD10aGlzLmxheW91dC5oZWFkZXIuc2l6ZStcInB4XCIpKSx0aGlzLmxheW91dC5mb290ZXIuc3BhY2UmJiF0aGlzLmZvb3RlclNsb3QmJih0aGlzLmZpeGVkP3QuYm90dG9tPXRoaXMubGF5b3V0LmZvb3Rlci5vZmZzZXQrXCJweFwiOnRoaXMubGF5b3V0LmZvb3Rlci5zcGFjZSYmKHQuYm90dG9tPXRoaXMubGF5b3V0LmZvb3Rlci5zaXplK1wicHhcIikpLHR9LGNvbXB1dGVkU3R5bGU6ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5jb250ZW50U3R5bGUse3dpZHRoOnRoaXMuc2l6ZStcInB4XCJ9LHRoaXMubW9iaWxlVmlldz9cIlwiOnRoaXMuYWJvdmVTdHlsZV19LGNvbXB1dGVkQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm5bXCJxLWxheW91dC1kcmF3ZXItXCIrdGhpcy5zaWRlLHRoaXMubGF5b3V0LmNvbnRhaW5lcj9cIm92ZXJmbG93LWF1dG9cIjpcInNjcm9sbFwiLHRoaXMuY29udGVudENsYXNzLHRoaXMubW9iaWxlVmlldz90aGlzLmJlbG93Q2xhc3M6dGhpcy5hYm92ZUNsYXNzXX0sc3RhdGVEaXJlY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy4kcS5pMThuLnJ0bD8tMToxKSoodGhpcy5yaWdodFNpZGU/MTotMSl9LGlzTWluaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1pbmkmJiF0aGlzLm1vYmlsZVZpZXd9LG9uTmF0aXZlRXZlbnRzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZighdGhpcy5tb2JpbGVWaWV3KXJldHVybntcIiFjbGlja1wiOmZ1bmN0aW9uKGUpe3QuJGVtaXQoXCJjbGlja1wiLGUpfSxtb3VzZW92ZXI6ZnVuY3Rpb24oZSl7dC4kZW1pdChcIm1vdXNlb3ZlclwiLGUpfSxtb3VzZW91dDpmdW5jdGlvbihlKXt0LiRlbWl0KFwibW91c2VvdXRcIixlKX19fX0sbWV0aG9kczp7YXBwbHlQb3NpdGlvbjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3ZvaWQgMD09PXQ/dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt0PWUuc2hvd2luZz8wOmUuc2l6ZSxlLmFwcGx5UG9zaXRpb24oZS5zdGF0ZURpcmVjdGlvbip0KX0pOnRoaXMuJHJlZnMuY29udGVudCYmKHRoaXMubGF5b3V0LmNvbnRhaW5lciYmdGhpcy5yaWdodFNpZGUmJih0aGlzLm1vYmlsZVZpZXd8fE1hdGguYWJzKHQpPT09dGhpcy5zaXplKSYmKHQrPXRoaXMuc3RhdGVEaXJlY3Rpb24qdGhpcy5sYXlvdXQuc2Nyb2xsYmFyV2lkdGgpLHRoaXMuJHJlZnMuY29udGVudC5zdHlsZS50cmFuc2Zvcm09XCJ0cmFuc2xhdGVYKFwiK3QrXCJweClcIil9LGFwcGx5QmFja2Ryb3A6ZnVuY3Rpb24odCl7dGhpcy4kcmVmcy5iYWNrZHJvcCYmKHRoaXMuJHJlZnMuYmFja2Ryb3Auc3R5bGUuYmFja2dyb3VuZENvbG9yPVwicmdiYSgwLDAsMCxcIisuNCp0K1wiKVwiKX0sX19zZXRTY3JvbGxhYmxlOmZ1bmN0aW9uKHQpe3RoaXMubGF5b3V0LmNvbnRhaW5lcnx8ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3RbdD9cImFkZFwiOlwicmVtb3ZlXCJdKFwicS1ib2R5LWRyYXdlci10b2dnbGVcIil9LF9fb3BlbkJ5VG91Y2g6ZnVuY3Rpb24odCl7aWYodGhpcy5iZWxvd0JyZWFrcG9pbnQpe3ZhciBlPXRoaXMuc2l6ZSxpPWJldHdlZW4odC5kaXN0YW5jZS54LDAsZSk7aWYodC5pc0ZpbmFsKXt2YXIgcz10aGlzLiRyZWZzLmNvbnRlbnQsbj1pPj1NYXRoLm1pbig3NSxlKTtyZXR1cm4gcy5jbGFzc0xpc3QucmVtb3ZlKFwibm8tdHJhbnNpdGlvblwiKSx2b2lkKG4/dGhpcy5zaG93KCk6KHRoaXMubGF5b3V0Ll9fYW5pbWF0ZSgpLHRoaXMuYXBwbHlCYWNrZHJvcCgwKSx0aGlzLmFwcGx5UG9zaXRpb24odGhpcy5zdGF0ZURpcmVjdGlvbiplKSxzLmNsYXNzTGlzdC5yZW1vdmUoXCJxLWxheW91dC1kcmF3ZXItZGVsaW1pdGVyXCIpKSl9aWYodGhpcy5hcHBseVBvc2l0aW9uKCh0aGlzLiRxLmkxOG4ucnRsPyF0aGlzLnJpZ2h0U2lkZTp0aGlzLnJpZ2h0U2lkZSk/TWF0aC5tYXgoZS1pLDApOk1hdGgubWluKDAsaS1lKSksdGhpcy5hcHBseUJhY2tkcm9wKGJldHdlZW4oaS9lLDAsMSkpLHQuaXNGaXJzdCl7dmFyIG89dGhpcy4kcmVmcy5jb250ZW50O28uY2xhc3NMaXN0LmFkZChcIm5vLXRyYW5zaXRpb25cIiksby5jbGFzc0xpc3QuYWRkKFwicS1sYXlvdXQtZHJhd2VyLWRlbGltaXRlclwiKX19fSxfX2Nsb3NlQnlUb3VjaDpmdW5jdGlvbih0KXtpZih0aGlzLm1vYmlsZU9wZW5lZCl7dmFyIGU9dGhpcy5zaXplLGk9dC5kaXJlY3Rpb249PT10aGlzLnNpZGUscz0odGhpcy4kcS5pMThuLnJ0bD8haTppKT9iZXR3ZWVuKHQuZGlzdGFuY2UueCwwLGUpOjA7aWYodC5pc0ZpbmFsKXt2YXIgbj1NYXRoLmFicyhzKTxNYXRoLm1pbig3NSxlKTtyZXR1cm4gdGhpcy4kcmVmcy5jb250ZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJuby10cmFuc2l0aW9uXCIpLHZvaWQobj8odGhpcy5sYXlvdXQuX19hbmltYXRlKCksdGhpcy5hcHBseUJhY2tkcm9wKDEpLHRoaXMuYXBwbHlQb3NpdGlvbigwKSk6dGhpcy5oaWRlKCkpfXRoaXMuYXBwbHlQb3NpdGlvbih0aGlzLnN0YXRlRGlyZWN0aW9uKnMpLHRoaXMuYXBwbHlCYWNrZHJvcChiZXR3ZWVuKDEtcy9lLDAsMSkpLHQuaXNGaXJzdCYmdGhpcy4kcmVmcy5jb250ZW50LmNsYXNzTGlzdC5hZGQoXCJuby10cmFuc2l0aW9uXCIpfX0sX19zaG93OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dm9pZCAwPT09dCYmKHQ9ITApLHQmJnRoaXMubGF5b3V0Ll9fYW5pbWF0ZSgpLHRoaXMuYXBwbHlQb3NpdGlvbigwKTt2YXIgaT10aGlzLmxheW91dC5pbnN0YW5jZXNbdGhpcy5yaWdodFNpZGU/XCJsZWZ0XCI6XCJyaWdodFwiXTtpJiZpLm1vYmlsZU9wZW5lZCYmaS5oaWRlKCksdGhpcy5iZWxvd0JyZWFrcG9pbnQ/KHRoaXMubW9iaWxlT3BlbmVkPSEwLHRoaXMuYXBwbHlCYWNrZHJvcCgxKSx0aGlzLmxheW91dC5jb250YWluZXJ8fCh0aGlzLnByZXZlbnRlZFNjcm9sbD0hMCxwcmV2ZW50U2Nyb2xsKCEwKSkpOnRoaXMuX19zZXRTY3JvbGxhYmxlKCEwKSxjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5zaG93UHJvbWlzZSYmKGUuc2hvd1Byb21pc2UudGhlbihmdW5jdGlvbigpe2UuX19zZXRTY3JvbGxhYmxlKCExKX0pLGUuc2hvd1Byb21pc2VSZXNvbHZlKCkpfSxkdXJhdGlvbil9LF9faGlkZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3ZvaWQgMD09PXQmJih0PSEwKSx0JiZ0aGlzLmxheW91dC5fX2FuaW1hdGUoKSx0aGlzLm1vYmlsZU9wZW5lZCYmKHRoaXMubW9iaWxlT3BlbmVkPSExKSx0aGlzLmFwcGx5UG9zaXRpb24odGhpcy5zdGF0ZURpcmVjdGlvbip0aGlzLnNpemUpLHRoaXMuYXBwbHlCYWNrZHJvcCgwKSx0aGlzLl9fY2xlYW51cCgpLGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLnRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmhpZGVQcm9taXNlJiZlLmhpZGVQcm9taXNlUmVzb2x2ZSgpfSxkdXJhdGlvbil9LF9fY2xlYW51cDpmdW5jdGlvbigpe3RoaXMucHJldmVudGVkU2Nyb2xsJiYodGhpcy5wcmV2ZW50ZWRTY3JvbGw9ITEscHJldmVudFNjcm9sbCghMSkpLHRoaXMuX19zZXRTY3JvbGxhYmxlKCExKX0sX191cGRhdGU6ZnVuY3Rpb24odCxlKXt0aGlzLmxheW91dFt0aGlzLnNpZGVdW3RdIT09ZSYmKHRoaXMubGF5b3V0W3RoaXMuc2lkZV1bdF09ZSl9LF9fdXBkYXRlTG9jYWw6ZnVuY3Rpb24odCxlKXt0aGlzW3RdIT09ZSYmKHRoaXNbdF09ZSl9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5sYXlvdXQuaW5zdGFuY2VzW3RoaXMuc2lkZV09dGhpcyx0aGlzLl9fdXBkYXRlKFwic2l6ZVwiLHRoaXMuc2l6ZSksdGhpcy5fX3VwZGF0ZShcInNwYWNlXCIsdGhpcy5vbkxheW91dCksdGhpcy5fX3VwZGF0ZShcIm9mZnNldFwiLHRoaXMub2Zmc2V0KX0sbW91bnRlZDpmdW5jdGlvbigpe3RoaXMuYXBwbHlQb3NpdGlvbih0aGlzLnNob3dpbmc/MDp2b2lkIDApfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuc2hvd2luZyYmdGhpcy5fX2NsZWFudXAoKSx0aGlzLmxheW91dC5pbnN0YW5jZXNbdGhpcy5zaWRlXT09PXRoaXMmJih0aGlzLmxheW91dC5pbnN0YW5jZXNbdGhpcy5zaWRlXT1udWxsLHRoaXMuX191cGRhdGUoXCJzaXplXCIsMCksdGhpcy5fX3VwZGF0ZShcIm9mZnNldFwiLDApLHRoaXMuX191cGRhdGUoXCJzcGFjZVwiLCExKSl9LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZHJhd2VyLWNvbnRhaW5lclwifSxbdGhpcy5tb2JpbGVWaWV3JiYhdGhpcy5ub1N3aXBlT3Blbj90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1sYXlvdXQtZHJhd2VyLW9wZW5lciBmaXhlZC1cIit0aGlzLnNpZGUsZGlyZWN0aXZlczpbe25hbWU6XCJ0b3VjaC1wYW5cIixtb2RpZmllcnM6e2hvcml6b250YWw6ITB9LHZhbHVlOnRoaXMuX19vcGVuQnlUb3VjaH1dfSk6bnVsbCx0KFwiZGl2XCIse3JlZjpcImJhY2tkcm9wXCIsc3RhdGljQ2xhc3M6XCJmdWxsc2NyZWVuIHEtbGF5b3V0LWJhY2tkcm9wIHEtbGF5b3V0LXRyYW5zaXRpb25cIixjbGFzczp0aGlzLmJhY2tkcm9wQ2xhc3Msb246e2NsaWNrOnRoaXMuaGlkZX0sZGlyZWN0aXZlczpbe25hbWU6XCJ0b3VjaC1wYW5cIixtb2RpZmllcnM6e2hvcml6b250YWw6ITB9LHZhbHVlOnRoaXMuX19jbG9zZUJ5VG91Y2h9XX0pXS5jb25jYXQoW3QoXCJhc2lkZVwiLHtyZWY6XCJjb250ZW50XCIsc3RhdGljQ2xhc3M6XCJxLWxheW91dC1kcmF3ZXIgcS1sYXlvdXQtdHJhbnNpdGlvblwiLGNsYXNzOnRoaXMuY29tcHV0ZWRDbGFzcyxzdHlsZTp0aGlzLmNvbXB1dGVkU3R5bGUsYXR0cnM6dGhpcy4kYXR0cnMsb246dGhpcy5vbk5hdGl2ZUV2ZW50cyxkaXJlY3RpdmVzOnRoaXMubW9iaWxlVmlldyYmIXRoaXMubm9Td2lwZUNsb3NlP1t7bmFtZTpcInRvdWNoLXBhblwiLG1vZGlmaWVyczp7aG9yaXpvbnRhbDohMH0sdmFsdWU6dGhpcy5fX2Nsb3NlQnlUb3VjaH1dOm51bGx9LHRoaXMuaXNNaW5pJiZ0aGlzLiRzbG90cy5taW5pP1t0aGlzLiRzbG90cy5taW5pXTp0aGlzLiRzbG90cy5kZWZhdWx0KV0pKX19LFFXaW5kb3dSZXNpemVPYnNlcnZhYmxlPXtuYW1lOlwiUVdpbmRvd1Jlc2l6ZU9ic2VydmFibGVcIixwcm9wczp7ZGVib3VuY2U6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6ODB9fSxyZW5kZXI6ZnVuY3Rpb24oKXt9LG1ldGhvZHM6e3RyaWdnZXI6ZnVuY3Rpb24oKXswPT09dGhpcy5kZWJvdW5jZT90aGlzLmVtaXQoKTp0aGlzLnRpbWVyfHwodGhpcy50aW1lcj1zZXRUaW1lb3V0KHRoaXMuZW1pdCx0aGlzLmRlYm91bmNlKSl9LGVtaXQ6ZnVuY3Rpb24odCl7dGhpcy50aW1lcj1udWxsLHRoaXMuJGVtaXQoXCJyZXNpemVcIix7aGVpZ2h0OnQ/MDp3aW5kb3cuaW5uZXJIZWlnaHQsd2lkdGg6dD8wOndpbmRvdy5pbm5lcldpZHRofSl9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5lbWl0KG9uU1NSKX0sbW91bnRlZDpmdW5jdGlvbigpe2Zyb21TU1ImJnRoaXMuZW1pdCgpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsdGhpcy50cmlnZ2VyLGxpc3Rlbk9wdHMucGFzc2l2ZSl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix0aGlzLnRyaWdnZXIsbGlzdGVuT3B0cy5wYXNzaXZlKX19LFFMYXlvdXRGb290ZXI9e25hbWU6XCJRTGF5b3V0Rm9vdGVyXCIsbWl4aW5zOltDYW5SZW5kZXJNaXhpbl0saW5qZWN0OntsYXlvdXQ6e2RlZmF1bHQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKFwiUUxheW91dEZvb3RlciBuZWVkcyB0byBiZSBjaGlsZCBvZiBRTGF5b3V0XCIpfX19LHByb3BzOnt2YWx1ZTp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITB9LHJldmVhbDpCb29sZWFufSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3NpemU6MCxyZXZlYWxlZDohMCx3aW5kb3dIZWlnaHQ6b25TU1J8fHRoaXMubGF5b3V0LmNvbnRhaW5lcj8wOndpbmRvdy5pbm5lckhlaWdodH19LHdhdGNoOnt2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLl9fdXBkYXRlKFwic3BhY2VcIix0KSx0aGlzLl9fdXBkYXRlTG9jYWwoXCJyZXZlYWxlZFwiLCEwKSx0aGlzLmxheW91dC5fX2FuaW1hdGUoKX0sb2Zmc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX191cGRhdGUoXCJvZmZzZXRcIix0KX0scmV2ZWFsOmZ1bmN0aW9uKHQpe3R8fHRoaXMuX191cGRhdGVMb2NhbChcInJldmVhbGVkXCIsdGhpcy52YWx1ZSl9LHJldmVhbGVkOmZ1bmN0aW9uKHQpe3RoaXMubGF5b3V0Ll9fYW5pbWF0ZSgpLHRoaXMuJGVtaXQoXCJyZXZlYWxcIix0KX0sXCJsYXlvdXQuc2Nyb2xsXCI6ZnVuY3Rpb24oKXt0aGlzLl9fdXBkYXRlUmV2ZWFsZWQoKX0sXCJsYXlvdXQuaGVpZ2h0XCI6ZnVuY3Rpb24oKXt0aGlzLl9fdXBkYXRlUmV2ZWFsZWQoKX0sc2l6ZTpmdW5jdGlvbigpe3RoaXMuX191cGRhdGVSZXZlYWxlZCgpfX0sY29tcHV0ZWQ6e2ZpeGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmV2ZWFsfHx0aGlzLmxheW91dC52aWV3LmluZGV4T2YoXCJGXCIpPi0xfHx0aGlzLmxheW91dC5jb250YWluZXJ9LGNvbnRhaW5lckhlaWdodDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dC5jb250YWluZXI/dGhpcy5sYXlvdXQuY29udGFpbmVySGVpZ2h0OnRoaXMud2luZG93SGVpZ2h0fSxvZmZzZXQ6ZnVuY3Rpb24oKXtpZighdGhpcy5jYW5SZW5kZXJ8fCF0aGlzLnZhbHVlKXJldHVybiAwO2lmKHRoaXMuZml4ZWQpcmV0dXJuIHRoaXMucmV2ZWFsZWQ/dGhpcy5zaXplOjA7dmFyIHQ9dGhpcy5sYXlvdXQuc2Nyb2xsLnBvc2l0aW9uK3RoaXMuY29udGFpbmVySGVpZ2h0K3RoaXMuc2l6ZS10aGlzLmxheW91dC5oZWlnaHQ7cmV0dXJuIHQ+MD90OjB9LGNvbXB1dGVkQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm57XCJmaXhlZC1ib3R0b21cIjp0aGlzLmZpeGVkLFwiYWJzb2x1dGUtYm90dG9tXCI6IXRoaXMuZml4ZWQsaGlkZGVuOiF0aGlzLnZhbHVlJiYhdGhpcy5maXhlZCxcInEtbGF5b3V0LWZvb3Rlci1oaWRkZW5cIjohdGhpcy5jYW5SZW5kZXJ8fCF0aGlzLnZhbHVlfHx0aGlzLmZpeGVkJiYhdGhpcy5yZXZlYWxlZH19LGNvbXB1dGVkU3R5bGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmxheW91dC5yb3dzLmJvdHRvbSxlPXt9O3JldHVyblwibFwiPT09dFswXSYmdGhpcy5sYXlvdXQubGVmdC5zcGFjZSYmKGVbdGhpcy4kcS5pMThuLnJ0bD9cInJpZ2h0XCI6XCJsZWZ0XCJdPXRoaXMubGF5b3V0LmxlZnQuc2l6ZStcInB4XCIpLFwiclwiPT09dFsyXSYmdGhpcy5sYXlvdXQucmlnaHQuc3BhY2UmJihlW3RoaXMuJHEuaTE4bi5ydGw/XCJsZWZ0XCI6XCJyaWdodFwiXT10aGlzLmxheW91dC5yaWdodC5zaXplK1wicHhcIiksZX19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImZvb3RlclwiLHtzdGF0aWNDbGFzczpcInEtbGF5b3V0LWZvb3RlciBxLWxheW91dC1tYXJnaW5hbCBxLWxheW91dC10cmFuc2l0aW9uXCIsY2xhc3M6dGhpcy5jb21wdXRlZENsYXNzLHN0eWxlOnRoaXMuY29tcHV0ZWRTdHlsZX0sW3QoUVJlc2l6ZU9ic2VydmFibGUse3Byb3BzOntkZWJvdW5jZTowfSxvbjp7cmVzaXplOnRoaXMuX19vblJlc2l6ZX19KSwhdGhpcy5sYXlvdXQuY29udGFpbmVyJiZ0KFFXaW5kb3dSZXNpemVPYnNlcnZhYmxlLHtwcm9wczp7ZGVib3VuY2U6MH0sb246e3Jlc2l6ZTp0aGlzLl9fb25XaW5kb3dSZXNpemV9fSl8fHZvaWQgMCx0aGlzLiRzbG90cy5kZWZhdWx0XSl9LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmxheW91dC5pbnN0YW5jZXMuZm9vdGVyPXRoaXMsdGhpcy5fX3VwZGF0ZShcInNwYWNlXCIsdGhpcy52YWx1ZSksdGhpcy5fX3VwZGF0ZShcIm9mZnNldFwiLHRoaXMub2Zmc2V0KX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMubGF5b3V0Lmluc3RhbmNlcy5mb290ZXI9PT10aGlzJiYodGhpcy5sYXlvdXQuaW5zdGFuY2VzLmZvb3Rlcj1udWxsLHRoaXMuX191cGRhdGUoXCJzaXplXCIsMCksdGhpcy5fX3VwZGF0ZShcIm9mZnNldFwiLDApLHRoaXMuX191cGRhdGUoXCJzcGFjZVwiLCExKSl9LG1ldGhvZHM6e19fb25SZXNpemU6ZnVuY3Rpb24odCl7dmFyIGU9dC5oZWlnaHQ7dGhpcy5fX3VwZGF0ZUxvY2FsKFwic2l6ZVwiLGUpLHRoaXMuX191cGRhdGUoXCJzaXplXCIsZSl9LF9fb25XaW5kb3dSZXNpemU6ZnVuY3Rpb24odCl7dmFyIGU9dC5oZWlnaHQ7dGhpcy5fX3VwZGF0ZUxvY2FsKFwid2luZG93SGVpZ2h0XCIsZSl9LF9fdXBkYXRlOmZ1bmN0aW9uKHQsZSl7dGhpcy5sYXlvdXQuZm9vdGVyW3RdIT09ZSYmKHRoaXMubGF5b3V0LmZvb3Rlclt0XT1lKX0sX191cGRhdGVMb2NhbDpmdW5jdGlvbih0LGUpe3RoaXNbdF0hPT1lJiYodGhpc1t0XT1lKX0sX191cGRhdGVSZXZlYWxlZDpmdW5jdGlvbigpe2lmKHRoaXMucmV2ZWFsKXt2YXIgdD10aGlzLmxheW91dC5zY3JvbGwsZT10LmRpcmVjdGlvbixpPXQucG9zaXRpb24scz10LmluZmxleGlvblBvc2l0aW9uO3RoaXMuX191cGRhdGVMb2NhbChcInJldmVhbGVkXCIsXCJ1cFwiPT09ZXx8aS1zPDEwMHx8dGhpcy5sYXlvdXQuaGVpZ2h0LXRoaXMuY29udGFpbmVySGVpZ2h0LWktdGhpcy5zaXplPDMwMCl9fX19LFFMYXlvdXRIZWFkZXI9e25hbWU6XCJRTGF5b3V0SGVhZGVyXCIsbWl4aW5zOltDYW5SZW5kZXJNaXhpbl0saW5qZWN0OntsYXlvdXQ6e2RlZmF1bHQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKFwiUUxheW91dEhlYWRlciBuZWVkcyB0byBiZSBjaGlsZCBvZiBRTGF5b3V0XCIpfX19LHByb3BzOnt2YWx1ZTp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITB9LHJldmVhbDpCb29sZWFuLHJldmVhbE9mZnNldDp7dHlwZTpOdW1iZXIsZGVmYXVsdDoyNTB9fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3NpemU6MCxyZXZlYWxlZDohMH19LHdhdGNoOnt2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLl9fdXBkYXRlKFwic3BhY2VcIix0KSx0aGlzLl9fdXBkYXRlTG9jYWwoXCJyZXZlYWxlZFwiLCEwKSx0aGlzLmxheW91dC5fX2FuaW1hdGUoKX0sb2Zmc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX191cGRhdGUoXCJvZmZzZXRcIix0KX0scmV2ZWFsOmZ1bmN0aW9uKHQpe3R8fHRoaXMuX191cGRhdGVMb2NhbChcInJldmVhbGVkXCIsdGhpcy52YWx1ZSl9LHJldmVhbGVkOmZ1bmN0aW9uKHQpe3RoaXMubGF5b3V0Ll9fYW5pbWF0ZSgpLHRoaXMuJGVtaXQoXCJyZXZlYWxcIix0KX0sXCJsYXlvdXQuc2Nyb2xsXCI6ZnVuY3Rpb24odCl7dGhpcy5yZXZlYWwmJnRoaXMuX191cGRhdGVMb2NhbChcInJldmVhbGVkXCIsXCJ1cFwiPT09dC5kaXJlY3Rpb258fHQucG9zaXRpb248PXRoaXMucmV2ZWFsT2Zmc2V0fHx0LnBvc2l0aW9uLXQuaW5mbGV4aW9uUG9zaXRpb248MTAwKX19LGNvbXB1dGVkOntmaXhlZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJldmVhbHx8dGhpcy5sYXlvdXQudmlldy5pbmRleE9mKFwiSFwiKT4tMXx8dGhpcy5sYXlvdXQuY29udGFpbmVyfSxvZmZzZXQ6ZnVuY3Rpb24oKXtpZighdGhpcy5jYW5SZW5kZXJ8fCF0aGlzLnZhbHVlKXJldHVybiAwO2lmKHRoaXMuZml4ZWQpcmV0dXJuIHRoaXMucmV2ZWFsZWQ/dGhpcy5zaXplOjA7dmFyIHQ9dGhpcy5zaXplLXRoaXMubGF5b3V0LnNjcm9sbC5wb3NpdGlvbjtyZXR1cm4gdD4wP3Q6MH0sY29tcHV0ZWRDbGFzczpmdW5jdGlvbigpe3JldHVybntcImZpeGVkLXRvcFwiOnRoaXMuZml4ZWQsXCJhYnNvbHV0ZS10b3BcIjohdGhpcy5maXhlZCxcInEtbGF5b3V0LWhlYWRlci1oaWRkZW5cIjohdGhpcy5jYW5SZW5kZXJ8fCF0aGlzLnZhbHVlfHx0aGlzLmZpeGVkJiYhdGhpcy5yZXZlYWxlZH19LGNvbXB1dGVkU3R5bGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmxheW91dC5yb3dzLnRvcCxlPXt9O3JldHVyblwibFwiPT09dFswXSYmdGhpcy5sYXlvdXQubGVmdC5zcGFjZSYmKGVbdGhpcy4kcS5pMThuLnJ0bD9cInJpZ2h0XCI6XCJsZWZ0XCJdPXRoaXMubGF5b3V0LmxlZnQuc2l6ZStcInB4XCIpLFwiclwiPT09dFsyXSYmdGhpcy5sYXlvdXQucmlnaHQuc3BhY2UmJihlW3RoaXMuJHEuaTE4bi5ydGw/XCJsZWZ0XCI6XCJyaWdodFwiXT10aGlzLmxheW91dC5yaWdodC5zaXplK1wicHhcIiksZX19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImhlYWRlclwiLHtzdGF0aWNDbGFzczpcInEtbGF5b3V0LWhlYWRlciBxLWxheW91dC1tYXJnaW5hbCBxLWxheW91dC10cmFuc2l0aW9uXCIsY2xhc3M6dGhpcy5jb21wdXRlZENsYXNzLHN0eWxlOnRoaXMuY29tcHV0ZWRTdHlsZX0sW3QoUVJlc2l6ZU9ic2VydmFibGUse3Byb3BzOntkZWJvdW5jZTowfSxvbjp7cmVzaXplOnRoaXMuX19vblJlc2l6ZX19KSx0aGlzLiRzbG90cy5kZWZhdWx0XSl9LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmxheW91dC5pbnN0YW5jZXMuaGVhZGVyPXRoaXMsdGhpcy5fX3VwZGF0ZShcInNwYWNlXCIsdGhpcy52YWx1ZSksdGhpcy5fX3VwZGF0ZShcIm9mZnNldFwiLHRoaXMub2Zmc2V0KX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMubGF5b3V0Lmluc3RhbmNlcy5oZWFkZXI9PT10aGlzJiYodGhpcy5sYXlvdXQuaW5zdGFuY2VzLmhlYWRlcj1udWxsLHRoaXMuX191cGRhdGUoXCJzaXplXCIsMCksdGhpcy5fX3VwZGF0ZShcIm9mZnNldFwiLDApLHRoaXMuX191cGRhdGUoXCJzcGFjZVwiLCExKSl9LG1ldGhvZHM6e19fb25SZXNpemU6ZnVuY3Rpb24odCl7dmFyIGU9dC5oZWlnaHQ7dGhpcy5fX3VwZGF0ZUxvY2FsKFwic2l6ZVwiLGUpLHRoaXMuX191cGRhdGUoXCJzaXplXCIsZSl9LF9fdXBkYXRlOmZ1bmN0aW9uKHQsZSl7dGhpcy5sYXlvdXQuaGVhZGVyW3RdIT09ZSYmKHRoaXMubGF5b3V0LmhlYWRlclt0XT1lKX0sX191cGRhdGVMb2NhbDpmdW5jdGlvbih0LGUpe3RoaXNbdF0hPT1lJiYodGhpc1t0XT1lKX19fSxRUGFnZT17bmFtZTpcIlFQYWdlXCIsaW5qZWN0OntwYWdlQ29udGFpbmVyOntkZWZhdWx0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcihcIlFQYWdlIG5lZWRzIHRvIGJlIGNoaWxkIG9mIFFQYWdlQ29udGFpbmVyXCIpfX0sbGF5b3V0Ont9fSxwcm9wczp7cGFkZGluZzpCb29sZWFuLHN0eWxlRm46RnVuY3Rpb259LGNvbXB1dGVkOntzdHlsZTpmdW5jdGlvbigpe3ZhciB0PSh0aGlzLmxheW91dC5oZWFkZXIuc3BhY2U/dGhpcy5sYXlvdXQuaGVhZGVyLnNpemU6MCkrKHRoaXMubGF5b3V0LmZvb3Rlci5zcGFjZT90aGlzLmxheW91dC5mb290ZXIuc2l6ZTowKTtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiB0aGlzLnN0eWxlRm4/dGhpcy5zdHlsZUZuKHQpOnttaW5IZWlnaHQ6dGhpcy5sYXlvdXQuY29udGFpbmVyP3RoaXMubGF5b3V0LmNvbnRhaW5lckhlaWdodC10K1wicHhcIjp0P1wiY2FsYygxMDB2aCAtIFwiK3QrXCJweClcIjpcIjEwMHZoXCJ9fSxjbGFzc2VzOmZ1bmN0aW9uKCl7aWYodGhpcy5wYWRkaW5nKXJldHVyblwibGF5b3V0LXBhZGRpbmdcIn19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcIm1haW5cIix7c3RhdGljQ2xhc3M6XCJxLWxheW91dC1wYWdlXCIsc3R5bGU6dGhpcy5zdHlsZSxjbGFzczp0aGlzLmNsYXNzZXN9LHRoaXMuJHNsb3RzLmRlZmF1bHQpfX0sUVBhZ2VDb250YWluZXI9e25hbWU6XCJRUGFnZUNvbnRhaW5lclwiLGluamVjdDp7bGF5b3V0OntkZWZhdWx0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcihcIlFQYWdlQ29udGFpbmVyIG5lZWRzIHRvIGJlIGNoaWxkIG9mIFFMYXlvdXRcIil9fX0scHJvdmlkZTp7cGFnZUNvbnRhaW5lcjohMH0sY29tcHV0ZWQ6e3N0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ9e307cmV0dXJuIHRoaXMubGF5b3V0LmhlYWRlci5zcGFjZSYmKHQucGFkZGluZ1RvcD10aGlzLmxheW91dC5oZWFkZXIuc2l6ZStcInB4XCIpLHRoaXMubGF5b3V0LnJpZ2h0LnNwYWNlJiYodFtcInBhZGRpbmdcIisodGhpcy4kcS5pMThuLnJ0bD9cIkxlZnRcIjpcIlJpZ2h0XCIpXT10aGlzLmxheW91dC5yaWdodC5zaXplK1wicHhcIiksdGhpcy5sYXlvdXQuZm9vdGVyLnNwYWNlJiYodC5wYWRkaW5nQm90dG9tPXRoaXMubGF5b3V0LmZvb3Rlci5zaXplK1wicHhcIiksdGhpcy5sYXlvdXQubGVmdC5zcGFjZSYmKHRbXCJwYWRkaW5nXCIrKHRoaXMuJHEuaTE4bi5ydGw/XCJSaWdodFwiOlwiTGVmdFwiKV09dGhpcy5sYXlvdXQubGVmdC5zaXplK1wicHhcIiksdH19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbGF5b3V0LXBhZ2UtY29udGFpbmVyIHEtbGF5b3V0LXRyYW5zaXRpb25cIixzdHlsZTp0aGlzLnN0eWxlfSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFQYWdlU3RpY2t5PXtuYW1lOlwiUVBhZ2VTdGlja3lcIixpbmplY3Q6e2xheW91dDp7ZGVmYXVsdDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoXCJRUGFnZVN0aWNreSBuZWVkcyB0byBiZSBjaGlsZCBvZiBRTGF5b3V0XCIpfX19LHByb3BzOntwb3NpdGlvbjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImJvdHRvbS1yaWdodFwiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJ0b3AtcmlnaHRcIixcInRvcC1sZWZ0XCIsXCJib3R0b20tcmlnaHRcIixcImJvdHRvbS1sZWZ0XCIsXCJ0b3BcIixcInJpZ2h0XCIsXCJib3R0b21cIixcImxlZnRcIl0uaW5jbHVkZXModCl9fSxvZmZzZXQ6e3R5cGU6QXJyYXksdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybiAyPT09dC5sZW5ndGh9fSxleHBhbmQ6Qm9vbGVhbn0sY29tcHV0ZWQ6e2F0dGFjaDpmdW5jdGlvbigpe3ZhciB0PXRoaXMucG9zaXRpb247cmV0dXJue3RvcDp0LmluZGV4T2YoXCJ0b3BcIik+LTEscmlnaHQ6dC5pbmRleE9mKFwicmlnaHRcIik+LTEsYm90dG9tOnQuaW5kZXhPZihcImJvdHRvbVwiKT4tMSxsZWZ0OnQuaW5kZXhPZihcImxlZnRcIik+LTEsdmVydGljYWw6XCJ0b3BcIj09PXR8fFwiYm90dG9tXCI9PT10LGhvcml6b250YWw6XCJsZWZ0XCI9PT10fHxcInJpZ2h0XCI9PT10fX0sdG9wOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0LmhlYWRlci5vZmZzZXR9LHJpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0LnJpZ2h0Lm9mZnNldH0sYm90dG9tOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0LmZvb3Rlci5vZmZzZXR9LGxlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQubGVmdC5vZmZzZXR9LGNvbXB1dGVkU3R5bGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmF0dGFjaCxlPVtdLGk9dGhpcy4kcS5pMThuLnJ0bD8tMToxO3QudG9wJiZ0aGlzLnRvcD9lLnB1c2goXCJ0cmFuc2xhdGVZKFwiK3RoaXMudG9wK1wicHgpXCIpOnQuYm90dG9tJiZ0aGlzLmJvdHRvbSYmZS5wdXNoKFwidHJhbnNsYXRlWShcIistdGhpcy5ib3R0b20rXCJweClcIiksdC5sZWZ0JiZ0aGlzLmxlZnQ/ZS5wdXNoKFwidHJhbnNsYXRlWChcIitpKnRoaXMubGVmdCtcInB4KVwiKTp0LnJpZ2h0JiZ0aGlzLnJpZ2h0JiZlLnB1c2goXCJ0cmFuc2xhdGVYKFwiKy1pKnRoaXMucmlnaHQrXCJweClcIik7dmFyIHM9ZS5sZW5ndGg/e3RyYW5zZm9ybTplLmpvaW4oXCIgXCIpfTp7fTtyZXR1cm4gdGhpcy5vZmZzZXQmJihzLm1hcmdpbj10aGlzLm9mZnNldFsxXStcInB4IFwiK3RoaXMub2Zmc2V0WzBdK1wicHhcIiksdC52ZXJ0aWNhbD8odGhpcy5sZWZ0JiYoc1t0aGlzLiRxLmkxOG4ucnRsP1wicmlnaHRcIjpcImxlZnRcIl09dGhpcy5sZWZ0K1wicHhcIiksdGhpcy5yaWdodCYmKHNbdGhpcy4kcS5pMThuLnJ0bD9cImxlZnRcIjpcInJpZ2h0XCJdPXRoaXMucmlnaHQrXCJweFwiKSk6dC5ob3Jpem9udGFsJiYodGhpcy50b3AmJihzLnRvcD10aGlzLnRvcCtcInB4XCIpLHRoaXMuYm90dG9tJiYocy5ib3R0b209dGhpcy5ib3R0b20rXCJweFwiKSksc30sY2xhc3NlczpmdW5jdGlvbigpe3JldHVybltcImZpeGVkLVwiK3RoaXMucG9zaXRpb24sXCJxLXBhZ2Utc3RpY2t5LVwiKyh0aGlzLmV4cGFuZD9cImV4cGFuZFwiOlwic2hyaW5rXCIpXX19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtcGFnZS1zdGlja3kgcS1sYXlvdXQtdHJhbnNpdGlvbiByb3cgZmxleC1jZW50ZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsc3R5bGU6dGhpcy5jb21wdXRlZFN0eWxlfSx0aGlzLmV4cGFuZD90aGlzLiRzbG90cy5kZWZhdWx0Olt0KFwic3BhblwiLHRoaXMuJHNsb3RzLmRlZmF1bHQpXSl9fSxRTGlzdEhlYWRlcj17bmFtZTpcIlFMaXN0SGVhZGVyXCIscHJvcHM6e2luc2V0OkJvb2xlYW59LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbGlzdC1oZWFkZXJcIixjbGFzczp7XCJxLWxpc3QtaGVhZGVyLWluc2V0XCI6dGhpcy5pbnNldH19LHRoaXMuJHNsb3RzLmRlZmF1bHQpfX0sUU1vZGFsTGF5b3V0PXtuYW1lOlwiUU1vZGFsTGF5b3V0XCIsaW5qZWN0OntfX3Ftb2RhbDp7ZGVmYXVsdDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoXCJRTW9kYWxMYXlvdXQgbmVlZHMgdG8gYmUgY2hpbGQgb2YgUU1vZGFsXCIpfX19LHByb3BzOntoZWFkZXJTdHlsZTpbU3RyaW5nLE9iamVjdCxBcnJheV0saGVhZGVyQ2xhc3M6W1N0cmluZyxPYmplY3QsQXJyYXldLGNvbnRlbnRTdHlsZTpbU3RyaW5nLE9iamVjdCxBcnJheV0sY29udGVudENsYXNzOltTdHJpbmcsT2JqZWN0LEFycmF5XSxmb290ZXJTdHlsZTpbU3RyaW5nLE9iamVjdCxBcnJheV0sZm9vdGVyQ2xhc3M6W1N0cmluZyxPYmplY3QsQXJyYXldfSx3YXRjaDp7X19xbW9kYWw6ZnVuY3Rpb24odCxlKXtlJiZlLnVucmVnaXN0ZXIodGhpcyksdCYmdC5yZWdpc3Rlcih0aGlzKX19LG1vdW50ZWQ6ZnVuY3Rpb24oKXt0aGlzLl9fcW1vZGFsJiZ0aGlzLl9fcW1vZGFsLnJlZ2lzdGVyKHRoaXMpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5fX3Ftb2RhbCYmdGhpcy5fX3Ftb2RhbC51bnJlZ2lzdGVyKHRoaXMpfSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9W107cmV0dXJuKHRoaXMuJHNsb3RzLmhlYWRlcnx8dGhpcy4kc2xvdHMubmF2aWdhdGlvbikmJmUucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1sYXlvdXQtaGVhZGVyXCIsc3R5bGU6dGhpcy5oZWFkZXJTdHlsZSxjbGFzczp0aGlzLmhlYWRlckNsYXNzfSxbdGhpcy4kc2xvdHMuaGVhZGVyLHRoaXMuJHNsb3RzLm5hdmlnYXRpb25dKSksZS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLW1vZGFsLWxheW91dC1jb250ZW50IGNvbCBzY3JvbGxcIixzdHlsZTp0aGlzLmNvbnRlbnRTdHlsZSxjbGFzczp0aGlzLmNvbnRlbnRDbGFzc30sdGhpcy4kc2xvdHMuZGVmYXVsdCkpLHRoaXMuJHNsb3RzLmZvb3RlciYmZS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWxheW91dC1mb290ZXJcIixzdHlsZTp0aGlzLmZvb3RlclN0eWxlLGNsYXNzOnRoaXMuZm9vdGVyQ2xhc3N9LFt0aGlzLiRzbG90cy5mb290ZXIsbnVsbF0pKSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1tb2RhbC1sYXlvdXQgY29sIGNvbHVtbiBuby13cmFwXCJ9LGUpfX0sUU5vU3NyPXtuYW1lOlwiUU5vU3NyXCIsbWl4aW5zOltDYW5SZW5kZXJNaXhpbl0scHJvcHM6e3RhZzp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImRpdlwifSxwbGFjZWhvbGRlcjpTdHJpbmd9LHJlbmRlcjpmdW5jdGlvbih0KXtpZih0aGlzLmNhblJlbmRlcil7dmFyIGU9dGhpcy4kc2xvdHMuZGVmYXVsdDtyZXR1cm4gZSYmZS5sZW5ndGg+MT90KHRoaXMudGFnLGUpOmU/ZVswXTpudWxsfWlmKHRoaXMuJHNsb3RzLnBsYWNlaG9sZGVyKXt2YXIgaT10aGlzLiRzbG90cy5wbGFjZWhvbGRlcjtyZXR1cm4gaSYmaS5sZW5ndGg+MT90KHRoaXMudGFnLHtzdGF0aWNDbGFzczpcInEtbm8tc3NyLXBsYWNlaG9sZGVyXCJ9LGkpOmk/aVswXTpudWxsfWlmKHRoaXMucGxhY2Vob2xkZXIpcmV0dXJuIHQodGhpcy50YWcse3N0YXRpY0NsYXNzOlwicS1uby1zc3ItcGxhY2Vob2xkZXJcIn0sW3RoaXMucGxhY2Vob2xkZXJdKX19LFFQYWdpbmF0aW9uPXtuYW1lOlwiUVBhZ2luYXRpb25cIixwcm9wczp7dmFsdWU6e3R5cGU6TnVtYmVyLHJlcXVpcmVkOiEwfSxtaW46e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MX0sbWF4Ont0eXBlOk51bWJlcixyZXF1aXJlZDohMH0sY29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJwcmltYXJ5XCJ9LHRleHRDb2xvcjpTdHJpbmcsc2l6ZTpTdHJpbmcsZGlzYWJsZTpCb29sZWFuLGlucHV0OkJvb2xlYW4sYm91bmRhcnlMaW5rczp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6bnVsbH0sYm91bmRhcnlOdW1iZXJzOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDpudWxsfSxkaXJlY3Rpb25MaW5rczp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6bnVsbH0sZWxsaXBzZXM6e3R5cGU6Qm9vbGVhbixkZWZhdWx0Om51bGx9LG1heFBhZ2VzOnt0eXBlOk51bWJlcixkZWZhdWx0OjAsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybiEodDwwKXx8KGNvbnNvbGUuZXJyb3IoXCJtYXhQYWdlcyBzaG91bGQgbm90IGJlIG5lZ2F0aXZlXCIpLCExKX19fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue25ld1BhZ2U6bnVsbH19LHdhdGNoOnttaW46ZnVuY3Rpb24odCl7dGhpcy5tb2RlbD10aGlzLnZhbHVlfSxtYXg6ZnVuY3Rpb24odCl7dGhpcy5tb2RlbD10aGlzLnZhbHVlfX0sY29tcHV0ZWQ6e21vZGVsOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoIXRoaXMuZGlzYWJsZSYmdCYmIWlzTmFOKHQpKXt2YXIgaT1iZXR3ZWVuKHBhcnNlSW50KHQsMTApLHRoaXMubWluLHRoaXMubWF4KTt0aGlzLiRlbWl0KFwiaW5wdXRcIixpKSx0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe0pTT04uc3RyaW5naWZ5KGkpIT09SlNPTi5zdHJpbmdpZnkoZS52YWx1ZSkmJmUuJGVtaXQoXCJjaGFuZ2VcIixpKX0pfX19LGlucHV0UGxhY2Vob2xkZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tb2RlbCtcIiAvIFwiK3RoaXMubWF4fSxfX2JvdW5kYXJ5TGlua3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX2dldEJvb2wodGhpcy5ib3VuZGFyeUxpbmtzLHRoaXMuaW5wdXQpfSxfX2JvdW5kYXJ5TnVtYmVyczpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9fZ2V0Qm9vbCh0aGlzLmJvdW5kYXJ5TnVtYmVycywhdGhpcy5pbnB1dCl9LF9fZGlyZWN0aW9uTGlua3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX2dldEJvb2wodGhpcy5kaXJlY3Rpb25MaW5rcyx0aGlzLmlucHV0KX0sX19lbGxpcHNlczpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9fZ2V0Qm9vbCh0aGlzLmVsbGlwc2VzLCF0aGlzLmlucHV0KX0saWNvbnM6ZnVuY3Rpb24oKXt2YXIgdD1bdGhpcy4kcS5pY29uLnBhZ2luYXRpb24uZmlyc3QsdGhpcy4kcS5pY29uLnBhZ2luYXRpb24ucHJldix0aGlzLiRxLmljb24ucGFnaW5hdGlvbi5uZXh0LHRoaXMuJHEuaWNvbi5wYWdpbmF0aW9uLmxhc3RdO3JldHVybiB0aGlzLiRxLmkxOG4ucnRsP3QucmV2ZXJzZSgpOnR9fSxtZXRob2RzOntzZXQ6ZnVuY3Rpb24odCl7dGhpcy5tb2RlbD10fSxzZXRCeU9mZnNldDpmdW5jdGlvbih0KXt0aGlzLm1vZGVsPXRoaXMubW9kZWwrdH0sX191cGRhdGU6ZnVuY3Rpb24oKXt0aGlzLm1vZGVsPXRoaXMubmV3UGFnZSx0aGlzLm5ld1BhZ2U9bnVsbH0sX19nZXRCb29sOmZ1bmN0aW9uKHQsZSl7cmV0dXJuWyEwLCExXS5pbmNsdWRlcyh0KT90OmV9LF9fZ2V0QnRuOmZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gZS5wcm9wcz1PYmplY3QuYXNzaWduKHtjb2xvcjp0aGlzLmNvbG9yLGZsYXQ6ITAsc2l6ZTp0aGlzLnNpemV9LGkpLHQoUUJ0bixlKX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9W10scz1bXSxuPVtdO2lmKHRoaXMuX19ib3VuZGFyeUxpbmtzJiYoaS5wdXNoKHRoaXMuX19nZXRCdG4odCx7a2V5OlwiYmxzXCIsb246e2NsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0KGUubWluKX19fSx7ZGlzYWJsZTp0aGlzLmRpc2FibGV8fHRoaXMudmFsdWU8PXRoaXMubWluLGljb246dGhpcy5pY29uc1swXX0pKSxzLnVuc2hpZnQodGhpcy5fX2dldEJ0bih0LHtrZXk6XCJibGVcIixvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXQoZS5tYXgpfX19LHtkaXNhYmxlOnRoaXMuZGlzYWJsZXx8dGhpcy52YWx1ZT49dGhpcy5tYXgsaWNvbjp0aGlzLmljb25zWzNdfSkpKSx0aGlzLl9fZGlyZWN0aW9uTGlua3MmJihpLnB1c2godGhpcy5fX2dldEJ0bih0LHtrZXk6XCJiZHBcIixvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXRCeU9mZnNldCgtMSl9fX0se2Rpc2FibGU6dGhpcy5kaXNhYmxlfHx0aGlzLnZhbHVlPD10aGlzLm1pbixpY29uOnRoaXMuaWNvbnNbMV19KSkscy51bnNoaWZ0KHRoaXMuX19nZXRCdG4odCx7a2V5OlwiYmRuXCIsb246e2NsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0QnlPZmZzZXQoMSl9fX0se2Rpc2FibGU6dGhpcy5kaXNhYmxlfHx0aGlzLnZhbHVlPj10aGlzLm1heCxpY29uOnRoaXMuaWNvbnNbMl19KSkpLHRoaXMuaW5wdXQpbi5wdXNoKHQoUUlucHV0LHtzdGF0aWNDbGFzczpcImlubGluZSBuby1wYWRkaW5nXCIsc3R5bGU6e3dpZHRoOnRoaXMuaW5wdXRQbGFjZWhvbGRlci5sZW5ndGgrXCJyZW1cIn0scHJvcHM6e3R5cGU6XCJudW1iZXJcIix2YWx1ZTp0aGlzLm5ld1BhZ2Usbm9OdW1iZXJUb2dnbGU6ITAsbWluOnRoaXMubWluLG1heDp0aGlzLm1heCxjb2xvcjp0aGlzLmNvbG9yLHBsYWNlaG9sZGVyOnRoaXMuaW5wdXRQbGFjZWhvbGRlcixkaXNhYmxlOnRoaXMuZGlzYWJsZSxoaWRlVW5kZXJsaW5lOiEwfSxvbjp7aW5wdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGUubmV3UGFnZT10fSxrZXlkb3duOmZ1bmN0aW9uKHQpe3JldHVybiAxMz09PWdldEV2ZW50S2V5KHQpJiZlLl9fdXBkYXRlKCl9LGJsdXI6ZnVuY3Rpb24oKXtyZXR1cm4gZS5fX3VwZGF0ZSgpfX19KSk7ZWxzZXt2YXIgbz1NYXRoLm1heCh0aGlzLm1heFBhZ2VzLDErKHRoaXMuX19lbGxpcHNlcz8yOjApKyh0aGlzLl9fYm91bmRhcnlOdW1iZXJzPzI6MCkpLHI9dGhpcy5taW4sYT10aGlzLm1heCxsPSExLGM9ITEsaD0hMSx1PSExO3RoaXMubWF4UGFnZXMmJm88dGhpcy5tYXgtdGhpcy5taW4rMSYmKG89MSsyKk1hdGguZmxvb3Ioby8yKSxyPU1hdGgubWF4KHRoaXMubWluLE1hdGgubWluKHRoaXMubWF4LW8rMSx0aGlzLnZhbHVlLU1hdGguZmxvb3Ioby8yKSkpLGE9TWF0aC5taW4odGhpcy5tYXgscitvLTEpLHRoaXMuX19ib3VuZGFyeU51bWJlcnMmJihoPSEwLHIrPTEpLHRoaXMuX19lbGxpcHNlcyYmcj50aGlzLm1pbisodGhpcy5fX2JvdW5kYXJ5TnVtYmVycz8xOjApJiYobD0hMCxyKz0xKSx0aGlzLl9fYm91bmRhcnlOdW1iZXJzJiYodT0hMCxhLT0xKSx0aGlzLl9fZWxsaXBzZXMmJmE8dGhpcy5tYXgtKHRoaXMuX19ib3VuZGFyeU51bWJlcnM/MTowKSYmKGM9ITAsYS09MSkpO3ZhciBkPXttaW5XaWR0aDpNYXRoLm1heCgyLFN0cmluZyh0aGlzLm1heCkubGVuZ3RoKStcImVtXCJ9O2lmKGgpe3ZhciBwPXRoaXMubWluPT09dGhpcy52YWx1ZTtpLnB1c2godGhpcy5fX2dldEJ0bih0LHtrZXk6XCJibnNcIixzdHlsZTpkLG9uOntjbGljazpmdW5jdGlvbigpe3JldHVybiBlLnNldChlLm1pbil9fX0se2Rpc2FibGU6dGhpcy5kaXNhYmxlLGZsYXQ6IXAsdGV4dENvbG9yOnA/dGhpcy50ZXh0Q29sb3I6bnVsbCxsYWJlbDp0aGlzLm1pbixub1JpcHBsZTohMH0pKX1pZih1KXt2YXIgZj10aGlzLm1heD09PXRoaXMudmFsdWU7cy51bnNoaWZ0KHRoaXMuX19nZXRCdG4odCx7a2V5OlwiYm5lXCIsc3R5bGU6ZCxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXQoZS5tYXgpfX19LHtkaXNhYmxlOnRoaXMuZGlzYWJsZSxmbGF0OiFmLHRleHRDb2xvcjpmP3RoaXMudGV4dENvbG9yOm51bGwsbGFiZWw6dGhpcy5tYXgsbm9SaXBwbGU6ITB9KSl9bCYmaS5wdXNoKHRoaXMuX19nZXRCdG4odCx7a2V5OlwiYmVzXCIsc3R5bGU6ZCxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXQoci0xKX19fSx7ZGlzYWJsZTp0aGlzLmRpc2FibGUsbGFiZWw6XCLigKZcIn0pKSxjJiZzLnVuc2hpZnQodGhpcy5fX2dldEJ0bih0LHtrZXk6XCJiZWVcIixzdHlsZTpkLG9uOntjbGljazpmdW5jdGlvbigpe3JldHVybiBlLnNldChhKzEpfX19LHtkaXNhYmxlOnRoaXMuZGlzYWJsZSxsYWJlbDpcIuKAplwifSkpO2Zvcih2YXIgbT1mdW5jdGlvbihpKXt2YXIgcz1pPT09ZS52YWx1ZTtuLnB1c2goZS5fX2dldEJ0bih0LHtrZXk6XCJicGdcIitpLHN0eWxlOmQsb246e2NsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0KGkpfX19LHtkaXNhYmxlOmUuZGlzYWJsZSxmbGF0OiFzLHRleHRDb2xvcjpzP2UudGV4dENvbG9yOm51bGwsbGFiZWw6aSxub1JpcHBsZTohMH0pKX0sZz1yO2c8PWE7ZysrKW0oZyl9cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXBhZ2luYXRpb24gcm93IG5vLXdyYXAgaXRlbXMtY2VudGVyXCIsY2xhc3M6e2Rpc2FibGVkOnRoaXMuZGlzYWJsZX19LFtpLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJyb3cganVzdGlmeS1jZW50ZXJcIn0sW25dKSxzXSl9fSxRUGFyYWxsYXg9e25hbWU6XCJRUGFyYWxsYXhcIixwcm9wczp7c3JjOlN0cmluZyxoZWlnaHQ6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6NTAwfSxzcGVlZDp7dHlwZTpOdW1iZXIsZGVmYXVsdDoxLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4gdD49MCYmdDw9MX19fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3Njcm9sbGluZzohMX19LHdhdGNoOntoZWlnaHQ6ZnVuY3Rpb24oKXt0aGlzLl9fdXBkYXRlUG9zKCl9fSxtZXRob2RzOntfX29uUmVzaXplOmZ1bmN0aW9uKCl7dGhpcy5zY3JvbGxUYXJnZXQmJih0aGlzLm1lZGlhSGVpZ2h0PXRoaXMubWVkaWEubmF0dXJhbEhlaWdodHx8aGVpZ2h0KHRoaXMubWVkaWEpLHRoaXMuX191cGRhdGVQb3MoKSl9LF9fdXBkYXRlUG9zOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLHM7aWYodGhpcy5zY3JvbGxUYXJnZXQ9PT13aW5kb3c/KHQ9MCxpPWU9d2luZG93LmlubmVySGVpZ2h0KTppPSh0PW9mZnNldCh0aGlzLnNjcm9sbFRhcmdldCkudG9wKSsoZT1oZWlnaHQodGhpcy5zY3JvbGxUYXJnZXQpKSwocz1vZmZzZXQodGhpcy4kZWwpLnRvcCkrdGhpcy5oZWlnaHQ+dCYmczxpKXt2YXIgbj0oaS1zKS8odGhpcy5oZWlnaHQrZSk7dGhpcy5fX3NldFBvcygodGhpcy5tZWRpYUhlaWdodC10aGlzLmhlaWdodCkqbip0aGlzLnNwZWVkKX19LF9fc2V0UG9zOmZ1bmN0aW9uKHQpe3RoaXMubWVkaWEuc3R5bGUudHJhbnNmb3JtPVwidHJhbnNsYXRlM0QoLTUwJSxcIit0K1wicHgsIDApXCJ9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXBhcmFsbGF4XCIsc3R5bGU6e2hlaWdodDp0aGlzLmhlaWdodCtcInB4XCJ9fSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtcGFyYWxsYXgtbWVkaWEgYWJzb2x1dGUtZnVsbFwifSxbdGhpcy4kc2xvdHMubWVkaWF8fHQoXCJpbWdcIix7cmVmOlwibWVkaWFcIixhdHRyczp7c3JjOnRoaXMuc3JjfX0pXSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtcGFyYWxsYXgtdGV4dCBhYnNvbHV0ZS1mdWxsIGNvbHVtbiBmbGV4LWNlbnRlciBuby1wb2ludGVyLWV2ZW50c1wifSx0aGlzLiRzbG90cy5kZWZhdWx0KV0pfSxiZWZvcmVNb3VudDpmdW5jdGlvbigpe3RoaXMuX19zZXRQb3M9ZnJhbWVEZWJvdW5jZSh0aGlzLl9fc2V0UG9zKX0sbW91bnRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt0Lm1lZGlhPXQuJHNsb3RzLm1lZGlhP3QuJHNsb3RzLm1lZGlhWzBdLmVsbTp0LiRyZWZzLm1lZGlhLHQubWVkaWEub25sb2FkPXQubWVkaWEub25sb2Fkc3RhcnQ9dC5fX29uUmVzaXplLHQuc2Nyb2xsVGFyZ2V0PWdldFNjcm9sbFRhcmdldCh0LiRlbCksdC5yZXNpemVIYW5kbGVyPWRlYm91bmNlKHQuX19vblJlc2l6ZSw1MCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix0LnJlc2l6ZUhhbmRsZXIsbGlzdGVuT3B0cy5wYXNzaXZlKSx0LnNjcm9sbFRhcmdldC5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsdC5fX3VwZGF0ZVBvcyxsaXN0ZW5PcHRzLnBhc3NpdmUpLHQuX19vblJlc2l6ZSgpfSl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLHRoaXMucmVzaXplSGFuZGxlcixsaXN0ZW5PcHRzLnBhc3NpdmUpLHRoaXMuc2Nyb2xsVGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIix0aGlzLl9fdXBkYXRlUG9zLGxpc3Rlbk9wdHMucGFzc2l2ZSksdGhpcy5tZWRpYS5vbmxvYWQ9dGhpcy5tZWRpYS5vbmxvYWRzdGFydD1udWxsfX0sUVBvcHVwRWRpdD17bmFtZTpcIlFQb3B1cEVkaXRcIixwcm9wczp7dmFsdWU6e30scGVyc2lzdGVudDpCb29sZWFuLGtlZXBPblNjcmVlbjp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITB9LHRpdGxlOlN0cmluZyxidXR0b25zOkJvb2xlYW4sbGFiZWxTZXQ6U3RyaW5nLGxhYmVsQ2FuY2VsOlN0cmluZyxjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInByaW1hcnlcIn0sdmFsaWRhdGU6e3R5cGU6RnVuY3Rpb24sZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiEwfX0sZGlzYWJsZTpCb29sZWFufSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2luaXRpYWxWYWx1ZTpcIlwifX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3QuJHJlZnMucG9wb3Zlci5yZXBvc2l0aW9uKCl9KX19LG1ldGhvZHM6e2NhbmNlbDpmdW5jdGlvbigpe3RoaXMuX19oYXNDaGFuZ2VkKCkmJih0aGlzLiRlbWl0KFwiY2FuY2VsXCIsdGhpcy52YWx1ZSx0aGlzLmluaXRpYWxWYWx1ZSksdGhpcy4kZW1pdChcImlucHV0XCIsdGhpcy5pbml0aWFsVmFsdWUpKSx0aGlzLiRuZXh0VGljayh0aGlzLl9fY2xvc2UpfSxzZXQ6ZnVuY3Rpb24oKXtpZih0aGlzLl9faGFzQ2hhbmdlZCgpKXtpZighdGhpcy52YWxpZGF0ZSh0aGlzLnZhbHVlKSlyZXR1cm47dGhpcy4kZW1pdChcInNhdmVcIix0aGlzLnZhbHVlLHRoaXMuaW5pdGlhbFZhbHVlKX10aGlzLl9fY2xvc2UoKX0sX19oYXNDaGFuZ2VkOmZ1bmN0aW9uKCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMudmFsdWUpIT09SlNPTi5zdHJpbmdpZnkodGhpcy5pbml0aWFsVmFsdWUpfSxfX2Nsb3NlOmZ1bmN0aW9uKCl7dGhpcy52YWxpZGF0ZWQ9ITAsdGhpcy4kcmVmcy5wb3BvdmVyLmhpZGUoKX0sX19nZXRDb250ZW50OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuJHNsb3RzLnRpdGxlfHx0aGlzLnRpdGxlO3JldHVybltlJiZ0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10aXRsZSBxLW10LXNtIHEtbWItc21cIn0sW2VdKXx8dm9pZCAwXS5jb25jYXQodGhpcy4kc2xvdHMuZGVmYXVsdCkuY29uY2F0KFt0aGlzLmJ1dHRvbnMmJnQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJyb3cganVzdGlmeS1jZW50ZXIgbm8td3JhcCBxLW10LXNtXCJ9LFt0KFFCdG4se3Byb3BzOntmbGF0OiEwLGNvbG9yOnRoaXMuY29sb3IsbGFiZWw6dGhpcy5sYWJlbENhbmNlbHx8dGhpcy4kcS5pMThuLmxhYmVsLmNhbmNlbH0sb246e2NsaWNrOnRoaXMuY2FuY2VsfX0pLHQoUUJ0bix7c3RhdGljQ2xhc3M6XCJxLW1sLXNtXCIscHJvcHM6e2ZsYXQ6ITAsY29sb3I6dGhpcy5jb2xvcixsYWJlbDp0aGlzLmxhYmVsU2V0fHx0aGlzLiRxLmkxOG4ubGFiZWwuc2V0fSxvbjp7Y2xpY2s6dGhpcy5zZXR9fSldKXx8dm9pZCAwXSl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdChRUG9wb3Zlcix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLWVkaXQgcS1weC1tZCBxLXB5LXNtXCIscmVmOlwicG9wb3ZlclwiLHByb3BzOntjb3ZlcjohMCxwZXJzaXN0ZW50OnRoaXMucGVyc2lzdGVudCxrZWVwT25TY3JlZW46dGhpcy5rZWVwT25TY3JlZW4sZGlzYWJsZTp0aGlzLmRpc2FibGV9LG9uOntzaG93OmZ1bmN0aW9uKCl7dmFyIHQ9ZS4kZWwucXVlcnlTZWxlY3RvcihcIi5xLWlucHV0LXRhcmdldDpub3QoLnEtaW5wdXQtc2hhZG93KVwiKXx8ZS4kZWwucXVlcnlTZWxlY3RvcihcImlucHV0XCIpfHxlLiRlbC5xdWVyeVNlbGVjdG9yKFwidGV4dGFyZWFcIik7dCYmdC5mb2N1cygpLGUuJGVtaXQoXCJzaG93XCIpLGUuaW5pdGlhbFZhbHVlPWNsb25lKGUudmFsdWUpLGUudmFsaWRhdGVkPSExfSxcImVzY2FwZS1rZXlcIjpmdW5jdGlvbigpe2UudmFsaWRhdGVkPSEwLGUuJGVtaXQoXCJjYW5jZWxcIixlLnZhbHVlLGUuaW5pdGlhbFZhbHVlKSxlLiRlbWl0KFwiaW5wdXRcIixlLmluaXRpYWxWYWx1ZSl9LGhpZGU6ZnVuY3Rpb24oKXtlLnZhbGlkYXRlZHx8KGUuX19oYXNDaGFuZ2VkKCkmJihlLnZhbGlkYXRlKGUudmFsdWUpP2UuJGVtaXQoXCJzYXZlXCIsZS52YWx1ZSxlLmluaXRpYWxWYWx1ZSk6KGUuJGVtaXQoXCJjYW5jZWxcIixlLnZhbHVlLGUuaW5pdGlhbFZhbHVlKSxlLiRlbWl0KFwiaW5wdXRcIixlLmluaXRpYWxWYWx1ZSkpKSxlLiRlbWl0KFwiaGlkZVwiKSl9fSxuYXRpdmVPbjp7a2V5ZG93bjpmdW5jdGlvbih0KXsxMz09PWdldEV2ZW50S2V5KHQpJiYoZS5idXR0b25zP2Uuc2V0KCk6ZS4kcmVmcy5wb3BvdmVyLmhpZGUoKSl9fX0sdGhpcy5fX2dldENvbnRlbnQodCkpfX07ZnVuY3Rpb24gd2lkdGgkMSh0KXtyZXR1cm57d2lkdGg6dCtcIiVcIn19dmFyIFFQcm9ncmVzcz17bmFtZTpcIlFQcm9ncmVzc1wiLHByb3BzOntwZXJjZW50YWdlOnt0eXBlOk51bWJlcixkZWZhdWx0OjB9LGNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSxzdHJpcGU6Qm9vbGVhbixhbmltYXRlOkJvb2xlYW4saW5kZXRlcm1pbmF0ZTpCb29sZWFuLGJ1ZmZlcjpOdW1iZXIsaGVpZ2h0Ont0eXBlOlN0cmluZyxkZWZhdWx0OlwiNHB4XCJ9fSxjb21wdXRlZDp7bW9kZWw6ZnVuY3Rpb24oKXtyZXR1cm4gYmV0d2Vlbih0aGlzLnBlcmNlbnRhZ2UsMCwxMDApfSxidWZmZXJNb2RlbDpmdW5jdGlvbigpe3JldHVybiBiZXR3ZWVuKHRoaXMuYnVmZmVyfHwwLDAsMTAwLXRoaXMubW9kZWwpfSxidWZmZXJTdHlsZTpmdW5jdGlvbigpe3JldHVybiB3aWR0aCQxKHRoaXMuYnVmZmVyTW9kZWwpfSx0cmFja1N0eWxlOmZ1bmN0aW9uKCl7cmV0dXJuIHdpZHRoJDEodGhpcy5idWZmZXI/MTAwLXRoaXMuYnVmZmVyOjEwMCl9LGNvbXB1dGVkQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm5cInRleHQtXCIrdGhpcy5jb2xvcn0sY29tcHV0ZWRTdHlsZTpmdW5jdGlvbigpe3JldHVybntoZWlnaHQ6dGhpcy5oZWlnaHR9fSxtb2RlbENsYXNzOmZ1bmN0aW9uKCl7cmV0dXJue2FuaW1hdGU6dGhpcy5hbmltYXRlLHN0cmlwZTp0aGlzLnN0cmlwZSxpbmRldGVybWluYXRlOnRoaXMuaW5kZXRlcm1pbmF0ZX19LG1vZGVsU3R5bGU6ZnVuY3Rpb24oKXtyZXR1cm4gd2lkdGgkMSh0aGlzLm1vZGVsKX19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtcHJvZ3Jlc3NcIixzdHlsZTp0aGlzLmNvbXB1dGVkU3R5bGUsY2xhc3M6dGhpcy5jb21wdXRlZENsYXNzfSxbdGhpcy5idWZmZXImJiF0aGlzLmluZGV0ZXJtaW5hdGU/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtcHJvZ3Jlc3MtYnVmZmVyXCIsc3R5bGU6dGhpcy5idWZmZXJTdHlsZX0pOm51bGwsdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtcHJvZ3Jlc3MtdHJhY2tcIixzdHlsZTp0aGlzLnRyYWNrU3R5bGV9KSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1wcm9ncmVzcy1tb2RlbFwiLHN0eWxlOnRoaXMubW9kZWxTdHlsZSxjbGFzczp0aGlzLm1vZGVsQ2xhc3N9KV0pfX0saGVpZ2h0JDE9LTY1LFFQdWxsVG9SZWZyZXNoPXtuYW1lOlwiUVB1bGxUb1JlZnJlc2hcIixkaXJlY3RpdmVzOntUb3VjaFBhbjpUb3VjaFBhbn0scHJvcHM6e2hhbmRsZXI6e3R5cGU6RnVuY3Rpb24scmVxdWlyZWQ6ITB9LGNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSxkaXN0YW5jZTp7dHlwZTpOdW1iZXIsZGVmYXVsdDozNX0scHVsbE1lc3NhZ2U6U3RyaW5nLHJlbGVhc2VNZXNzYWdlOlN0cmluZyxyZWZyZXNoTWVzc2FnZTpTdHJpbmcscmVmcmVzaEljb246U3RyaW5nLGlubGluZTpCb29sZWFuLGRpc2FibGU6Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3JldHVybntzdGF0ZTpcInB1bGxcIixwdWxsUG9zaXRpb246aGVpZ2h0JDEsYW5pbWF0aW5nOiExLHB1bGxpbmc6ITEsc2Nyb2xsaW5nOiExfX0sd2F0Y2g6e2lubGluZTpmdW5jdGlvbih0KXt0aGlzLnNldFNjcm9sbENvbnRhaW5lcih0KX19LGNvbXB1dGVkOnttZXNzYWdlOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuc3RhdGUpe2Nhc2VcInB1bGxlZFwiOnJldHVybiB0aGlzLnJlbGVhc2VNZXNzYWdlfHx0aGlzLiRxLmkxOG4ucHVsbFRvUmVmcmVzaC5yZWxlYXNlO2Nhc2VcInJlZnJlc2hpbmdcIjpyZXR1cm4gdGhpcy5yZWZyZXNoTWVzc2FnZXx8dGhpcy4kcS5pMThuLnB1bGxUb1JlZnJlc2gucmVmcmVzaDtjYXNlXCJwdWxsXCI6ZGVmYXVsdDpyZXR1cm4gdGhpcy5wdWxsTWVzc2FnZXx8dGhpcy4kcS5pMThuLnB1bGxUb1JlZnJlc2gucHVsbH19LHN0eWxlOmZ1bmN0aW9uKCl7cmV0dXJue3RyYW5zZm9ybTpcInRyYW5zbGF0ZVkoXCIrdGhpcy5wdWxsUG9zaXRpb24rXCJweClcIixtYXJnaW5Cb3R0b206aGVpZ2h0JDErXCJweFwifX0sbWVzc2FnZUNsYXNzOmZ1bmN0aW9uKCl7cmV0dXJuXCJ0ZXh0LVwiK3RoaXMuY29sb3J9fSxtZXRob2RzOntfX3B1bGw6ZnVuY3Rpb24odCl7aWYoIXRoaXMuZGlzYWJsZSl7aWYodC5pc0ZpbmFsKXJldHVybiB0aGlzLnNjcm9sbGluZz0hMSx0aGlzLnB1bGxpbmc9ITEsdm9pZChcInB1bGxlZFwiPT09dGhpcy5zdGF0ZT8odGhpcy5zdGF0ZT1cInJlZnJlc2hpbmdcIix0aGlzLl9fYW5pbWF0ZVRvKDApLHRoaXMudHJpZ2dlcigpKTpcInB1bGxcIj09PXRoaXMuc3RhdGUmJnRoaXMuX19hbmltYXRlVG8oaGVpZ2h0JDEpKTtpZih0aGlzLmFuaW1hdGluZ3x8dGhpcy5zY3JvbGxpbmd8fFwicmVmcmVzaGluZ1wiPT09dGhpcy5zdGF0ZSlyZXR1cm4hMDt2YXIgZT1nZXRTY3JvbGxQb3NpdGlvbih0aGlzLnNjcm9sbENvbnRhaW5lcik7aWYoMCE9PWV8fDA9PT1lJiZcImRvd25cIiE9PXQuZGlyZWN0aW9uKXJldHVybiB0aGlzLnNjcm9sbGluZz0hMCx0aGlzLnB1bGxpbmcmJih0aGlzLnB1bGxpbmc9ITEsdGhpcy5zdGF0ZT1cInB1bGxcIix0aGlzLl9fYW5pbWF0ZVRvKGhlaWdodCQxKSksITA7dC5ldnQucHJldmVudERlZmF1bHQoKSx0aGlzLnB1bGxpbmc9ITAsdGhpcy5wdWxsUG9zaXRpb249aGVpZ2h0JDErTWF0aC5tYXgoMCxNYXRoLnBvdyh0LmRpc3RhbmNlLnksLjg1KSksdGhpcy5zdGF0ZT10aGlzLnB1bGxQb3NpdGlvbj50aGlzLmRpc3RhbmNlP1wicHVsbGVkXCI6XCJwdWxsXCJ9fSxfX2FuaW1hdGVUbzpmdW5jdGlvbih0LGUsaSl7dmFyIHM9dGhpczshaSYmdGhpcy5hbmltYXRpb25JZCYmY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5hbmltYXRpbmcpLHRoaXMucHVsbFBvc2l0aW9uLT0odGhpcy5wdWxsUG9zaXRpb24tdCkvNyx0aGlzLnB1bGxQb3NpdGlvbi10PjE/dGhpcy5hbmltYXRpbmc9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7cy5fX2FuaW1hdGVUbyh0LGUsITApfSk6dGhpcy5hbmltYXRpbmc9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7cy5wdWxsUG9zaXRpb249dCxzLmFuaW1hdGluZz0hMSxlJiZlKCl9KX0sdHJpZ2dlcjpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5oYW5kbGVyKGZ1bmN0aW9uKCl7dC5fX2FuaW1hdGVUbyhoZWlnaHQkMSxmdW5jdGlvbigpe3Quc3RhdGU9XCJwdWxsXCJ9KX0pfSxzZXRTY3JvbGxDb250YWluZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe2Uuc2Nyb2xsQ29udGFpbmVyPXQ/ZS4kZWwucGFyZW50Tm9kZTpnZXRTY3JvbGxUYXJnZXQoZS4kZWwpfSl9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy5zZXRTY3JvbGxDb250YWluZXIodGhpcy5pbmxpbmUpfSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJwdWxsLXRvLXJlZnJlc2ggb3ZlcmZsb3ctaGlkZGVuLXlcIn0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJwdWxsLXRvLXJlZnJlc2gtY29udGFpbmVyXCIsc3R5bGU6dGhpcy5zdHlsZSxkaXJlY3RpdmVzOnRoaXMuZGlzYWJsZT9udWxsOlt7bmFtZTpcInRvdWNoLXBhblwiLG1vZGlmaWVyczp7dmVydGljYWw6ITAsbWlnaHRQcmV2ZW50OiEwfSx2YWx1ZTp0aGlzLl9fcHVsbH1dfSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInB1bGwtdG8tcmVmcmVzaC1tZXNzYWdlIHJvdyBmbGV4LWNlbnRlclwiLGNsYXNzOnRoaXMubWVzc2FnZUNsYXNzfSxbdChRSWNvbix7Y2xhc3M6e1wicm90YXRlLTE4MFwiOlwicHVsbGVkXCI9PT10aGlzLnN0YXRlfSxwcm9wczp7bmFtZTp0aGlzLiRxLmljb24ucHVsbFRvUmVmcmVzaC5hcnJvd30sZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIsdmFsdWU6XCJyZWZyZXNoaW5nXCIhPT10aGlzLnN0YXRlfV19KSx0KFFJY29uLHtzdGF0aWNDbGFzczpcImFuaW1hdGUtc3BpblwiLHByb3BzOntuYW1lOnRoaXMucmVmcmVzaEljb258fHRoaXMuJHEuaWNvbi5wdWxsVG9SZWZyZXNoLnJlZnJlc2h9LGRpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHZhbHVlOlwicmVmcmVzaGluZ1wiPT09dGhpcy5zdGF0ZX1dfSksXCIgXCIrdGhpcy5tZXNzYWdlXSksdGhpcy4kc2xvdHMuZGVmYXVsdF0pXSl9fSxkcmFnVHlwZT17TUlOOjAsUkFOR0U6MSxNQVg6Mn0sUVJhbmdlPXtuYW1lOlwiUVJhbmdlXCIsbWl4aW5zOltTbGlkZXJNaXhpbl0scHJvcHM6e3ZhbHVlOnt0eXBlOk9iamVjdCxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJue21pbjowLG1heDowfX0sdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybiB0Lmhhc093blByb3BlcnR5KFwibWluXCIpJiZ0Lmhhc093blByb3BlcnR5KFwibWF4XCIpfX0sZHJhZ1JhbmdlOkJvb2xlYW4sZHJhZ09ubHlSYW5nZTpCb29sZWFuLGxlZnRMYWJlbENvbG9yOlN0cmluZyxsZWZ0TGFiZWxWYWx1ZTpTdHJpbmcscmlnaHRMYWJlbENvbG9yOlN0cmluZyxyaWdodExhYmVsVmFsdWU6U3RyaW5nfSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue21vZGVsOk9iamVjdC5hc3NpZ24oe30sdGhpcy52YWx1ZSksZHJhZ2dpbmc6ITEsY3VycmVudE1pblBlcmNlbnRhZ2U6KHRoaXMudmFsdWUubWluLXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pLGN1cnJlbnRNYXhQZXJjZW50YWdlOih0aGlzLnZhbHVlLm1heC10aGlzLm1pbikvKHRoaXMubWF4LXRoaXMubWluKX19LGNvbXB1dGVkOntwZXJjZW50YWdlTWluOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc25hcD8odGhpcy5tb2RlbC5taW4tdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbik6dGhpcy5jdXJyZW50TWluUGVyY2VudGFnZX0scGVyY2VudGFnZU1heDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNuYXA/KHRoaXMubW9kZWwubWF4LXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pOnRoaXMuY3VycmVudE1heFBlcmNlbnRhZ2V9LGFjdGl2ZVRyYWNrV2lkdGg6ZnVuY3Rpb24oKXtyZXR1cm4gMTAwKih0aGlzLnBlcmNlbnRhZ2VNYXgtdGhpcy5wZXJjZW50YWdlTWluKStcIiVcIn0sbGVmdERpc3BsYXlWYWx1ZTpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLmxlZnRMYWJlbFZhbHVlP3RoaXMubGVmdExhYmVsVmFsdWU6dGhpcy5tb2RlbC5taW59LHJpZ2h0RGlzcGxheVZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMucmlnaHRMYWJlbFZhbHVlP3RoaXMucmlnaHRMYWJlbFZhbHVlOnRoaXMubW9kZWwubWF4fSxsZWZ0VG9vbHRpcENvbG9yOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVmdExhYmVsQ29sb3J8fHRoaXMubGFiZWxDb2xvcn0scmlnaHRUb29sdGlwQ29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaWdodExhYmVsQ29sb3J8fHRoaXMubGFiZWxDb2xvcn19LHdhdGNoOntcInZhbHVlLm1pblwiOmZ1bmN0aW9uKHQpe3RoaXMubW9kZWwubWluPXR9LFwidmFsdWUubWF4XCI6ZnVuY3Rpb24odCl7dGhpcy5tb2RlbC5tYXg9dH0sXCJtb2RlbC5taW5cIjpmdW5jdGlvbih0KXt0aGlzLmRyYWdnaW5nfHwodD50aGlzLm1vZGVsLm1heCYmKHQ9dGhpcy5tb2RlbC5tYXgpLHRoaXMuY3VycmVudE1pblBlcmNlbnRhZ2U9KHQtdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbikpfSxcIm1vZGVsLm1heFwiOmZ1bmN0aW9uKHQpe3RoaXMuZHJhZ2dpbmd8fCh0PHRoaXMubW9kZWwubWluJiYodD10aGlzLm1vZGVsLm1pbiksdGhpcy5jdXJyZW50TWF4UGVyY2VudGFnZT0odC10aGlzLm1pbikvKHRoaXMubWF4LXRoaXMubWluKSl9LG1pbjpmdW5jdGlvbih0KXt0aGlzLm1vZGVsLm1pbjx0JiZ0aGlzLl9fdXBkYXRlKHttaW46dH0pLHRoaXMubW9kZWwubWF4PHQmJnRoaXMuX191cGRhdGUoe21heDp0fSksdGhpcy4kbmV4dFRpY2sodGhpcy5fX3ZhbGlkYXRlUHJvcHMpfSxtYXg6ZnVuY3Rpb24odCl7dGhpcy5tb2RlbC5taW4+dCYmdGhpcy5fX3VwZGF0ZSh7bWluOnR9KSx0aGlzLm1vZGVsLm1heD50JiZ0aGlzLl9fdXBkYXRlKHttYXg6dH0pLHRoaXMuJG5leHRUaWNrKHRoaXMuX192YWxpZGF0ZVByb3BzKX0sc3RlcDpmdW5jdGlvbigpe3RoaXMuJG5leHRUaWNrKHRoaXMuX192YWxpZGF0ZVByb3BzKX19LG1ldGhvZHM6e19fZ2V0RHJhZ2dpbmc6ZnVuY3Rpb24odCl7dmFyIGUsaT10aGlzLiRyZWZzLmhhbmRsZSxzPWkub2Zmc2V0V2lkdGgsbj0odGhpcy5kcmFnT25seVJhbmdlPy0xOjEpKnRoaXMuJHJlZnMuaGFuZGxlTWluLm9mZnNldFdpZHRoLygyKnMpLG89e2xlZnQ6aS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0LHdpZHRoOnMsdmFsdWVNaW46dGhpcy5tb2RlbC5taW4sdmFsdWVNYXg6dGhpcy5tb2RlbC5tYXgscGVyY2VudGFnZU1pbjp0aGlzLmN1cnJlbnRNaW5QZXJjZW50YWdlLHBlcmNlbnRhZ2VNYXg6dGhpcy5jdXJyZW50TWF4UGVyY2VudGFnZX0scj1nZXRQZXJjZW50YWdlKHQsbyx0aGlzLiRxLmkxOG4ucnRsKTtyZXR1cm4gcjx0aGlzLmN1cnJlbnRNaW5QZXJjZW50YWdlK24/ZT1kcmFnVHlwZS5NSU46cjx0aGlzLmN1cnJlbnRNYXhQZXJjZW50YWdlLW4/dGhpcy5kcmFnUmFuZ2V8fHRoaXMuZHJhZ09ubHlSYW5nZT8oZT1kcmFnVHlwZS5SQU5HRSxPYmplY3QuYXNzaWduKG8se29mZnNldFBlcmNlbnRhZ2U6cixvZmZzZXRNb2RlbDpnZXRNb2RlbChyLHRoaXMubWluLHRoaXMubWF4LHRoaXMuc3RlcCx0aGlzLmNvbXB1dGVkRGVjaW1hbHMpLHJhbmdlVmFsdWU6by52YWx1ZU1heC1vLnZhbHVlTWluLHJhbmdlUGVyY2VudGFnZTp0aGlzLmN1cnJlbnRNYXhQZXJjZW50YWdlLXRoaXMuY3VycmVudE1pblBlcmNlbnRhZ2V9KSk6ZT10aGlzLmN1cnJlbnRNYXhQZXJjZW50YWdlLXI8ci10aGlzLmN1cnJlbnRNaW5QZXJjZW50YWdlP2RyYWdUeXBlLk1BWDpkcmFnVHlwZS5NSU46ZT1kcmFnVHlwZS5NQVgsKCF0aGlzLmRyYWdPbmx5UmFuZ2V8fGU9PT1kcmFnVHlwZS5SQU5HRSkmJihvLnR5cGU9ZSxvKX0sX19tb3ZlOmZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9dGhpcy5kcmFnZ2luZyk7dmFyIGkscz1nZXRQZXJjZW50YWdlKHQsZSx0aGlzLiRxLmkxOG4ucnRsKSxuPWdldE1vZGVsKHMsdGhpcy5taW4sdGhpcy5tYXgsdGhpcy5zdGVwLHRoaXMuY29tcHV0ZWREZWNpbWFscyk7c3dpdGNoKGUudHlwZSl7Y2FzZSBkcmFnVHlwZS5NSU46aT1zPD1lLnBlcmNlbnRhZ2VNYXg/e21pblA6cyxtYXhQOmUucGVyY2VudGFnZU1heCxtaW46bixtYXg6ZS52YWx1ZU1heH06e21pblA6ZS5wZXJjZW50YWdlTWF4LG1heFA6cyxtaW46ZS52YWx1ZU1heCxtYXg6bn07YnJlYWs7Y2FzZSBkcmFnVHlwZS5NQVg6aT1zPj1lLnBlcmNlbnRhZ2VNaW4/e21pblA6ZS5wZXJjZW50YWdlTWluLG1heFA6cyxtaW46ZS52YWx1ZU1pbixtYXg6bn06e21pblA6cyxtYXhQOmUucGVyY2VudGFnZU1pbixtaW46bixtYXg6ZS52YWx1ZU1pbn07YnJlYWs7Y2FzZSBkcmFnVHlwZS5SQU5HRTp2YXIgbz1zLWUub2Zmc2V0UGVyY2VudGFnZSxyPWJldHdlZW4oZS5wZXJjZW50YWdlTWluK28sMCwxLWUucmFuZ2VQZXJjZW50YWdlKSxhPW4tZS5vZmZzZXRNb2RlbCxsPWJldHdlZW4oZS52YWx1ZU1pbithLHRoaXMubWluLHRoaXMubWF4LWUucmFuZ2VWYWx1ZSk7aT17bWluUDpyLG1heFA6citlLnJhbmdlUGVyY2VudGFnZSxtaW46cGFyc2VGbG9hdChsLnRvRml4ZWQodGhpcy5jb21wdXRlZERlY2ltYWxzKSksbWF4OnBhcnNlRmxvYXQoKGwrZS5yYW5nZVZhbHVlKS50b0ZpeGVkKHRoaXMuY29tcHV0ZWREZWNpbWFscykpfX10aGlzLmN1cnJlbnRNaW5QZXJjZW50YWdlPWkubWluUCx0aGlzLmN1cnJlbnRNYXhQZXJjZW50YWdlPWkubWF4UCx0aGlzLm1vZGVsPXttaW46aS5taW4sbWF4OmkubWF4fX0sX19lbmQ6ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT10aGlzLmRyYWdnaW5nKSx0aGlzLl9fbW92ZSh0LGUpLHRoaXMuY3VycmVudE1pblBlcmNlbnRhZ2U9KHRoaXMubW9kZWwubWluLXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pLHRoaXMuY3VycmVudE1heFBlcmNlbnRhZ2U9KHRoaXMubW9kZWwubWF4LXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pfSxfX29uS2V5RG93bjpmdW5jdGlvbih0LGUpe3ZhciBpPXQua2V5Q29kZTtpZih0aGlzLmVkaXRhYmxlJiZbMzcsNDAsMzksMzhdLmluY2x1ZGVzKGkpKXtzdG9wQW5kUHJldmVudCh0KTt2YXIgcz10aGlzLmNvbXB1dGVkRGVjaW1hbHMsbj10LmN0cmxLZXk/MTAqdGhpcy5jb21wdXRlZFN0ZXA6dGhpcy5jb21wdXRlZFN0ZXAsbz1bMzcsNDBdLmluY2x1ZGVzKGkpPy1uOm4scj1zP3BhcnNlRmxvYXQoKHRoaXMubW9kZWxbZV0rbykudG9GaXhlZChzKSk6dGhpcy5tb2RlbFtlXStvO3RoaXMubW9kZWxbZV09YmV0d2VlbihyLFwibWluXCI9PT1lP3RoaXMubWluOnRoaXMubW9kZWwubWluLFwibWF4XCI9PT1lP3RoaXMubWF4OnRoaXMubW9kZWwubWF4KSx0aGlzLmN1cnJlbnRNaW5QZXJjZW50YWdlPSh0aGlzLm1vZGVsLm1pbi10aGlzLm1pbikvKHRoaXMubWF4LXRoaXMubWluKSx0aGlzLmN1cnJlbnRNYXhQZXJjZW50YWdlPSh0aGlzLm1vZGVsLm1heC10aGlzLm1pbikvKHRoaXMubWF4LXRoaXMubWluKSx0aGlzLl9fdXBkYXRlKCl9fSxfX29uS2V5VXA6ZnVuY3Rpb24odCxlKXt2YXIgaT10LmtleUNvZGU7dGhpcy5lZGl0YWJsZSYmWzM3LDQwLDM5LDM4XS5pbmNsdWRlcyhpKSYmdGhpcy5fX3VwZGF0ZSghMCl9LF9fdmFsaWRhdGVQcm9wczpmdW5jdGlvbigpe3RoaXMubWluPj10aGlzLm1heD9jb25zb2xlLmVycm9yKFwiUmFuZ2UgZXJyb3I6IG1pbiA+PSBtYXhcIix0aGlzLiRlbCx0aGlzLm1pbix0aGlzLm1heCk6bm90RGl2aWRlcygodGhpcy5tYXgtdGhpcy5taW4pL3RoaXMuc3RlcCx0aGlzLmNvbXB1dGVkRGVjaW1hbHMpP2NvbnNvbGUuZXJyb3IoXCJSYW5nZSBlcnJvcjogc3RlcCBtdXN0IGJlIGEgZGl2aXNvciBvZiBtYXggLSBtaW5cIix0aGlzLm1pbix0aGlzLm1heCx0aGlzLnN0ZXApOm5vdERpdmlkZXMoKHRoaXMubW9kZWwubWluLXRoaXMubWluKS90aGlzLnN0ZXAsdGhpcy5jb21wdXRlZERlY2ltYWxzKT9jb25zb2xlLmVycm9yKFwiUmFuZ2UgZXJyb3I6IHN0ZXAgbXVzdCBiZSBhIGRpdmlzb3Igb2YgaW5pdGlhbCB2YWx1ZS5taW4gLSBtaW5cIix0aGlzLm1vZGVsLm1pbix0aGlzLm1pbix0aGlzLnN0ZXApOm5vdERpdmlkZXMoKHRoaXMubW9kZWwubWF4LXRoaXMubWluKS90aGlzLnN0ZXAsdGhpcy5jb21wdXRlZERlY2ltYWxzKSYmY29uc29sZS5lcnJvcihcIlJhbmdlIGVycm9yOiBzdGVwIG11c3QgYmUgYSBkaXZpc29yIG9mIGluaXRpYWwgdmFsdWUubWF4IC0gbWluXCIsdGhpcy5tb2RlbC5tYXgsdGhpcy5tYXgsdGhpcy5zdGVwKX0sX19nZXRIYW5kbGU6ZnVuY3Rpb24odCxlLGkscyxuLG8scil7dmFyIGEsbD10aGlzO3JldHVybiB0KFwiZGl2XCIse3JlZjpcImhhbmRsZVwiK2ksc3RhdGljQ2xhc3M6XCJxLXNsaWRlci1oYW5kbGUgcS1zbGlkZXItaGFuZGxlLVwiK2Usc3R5bGU6KGE9e30sYVt0aGlzLiRxLmkxOG4ucnRsP1wicmlnaHRcIjpcImxlZnRcIl09MTAwKm4rXCIlXCIsYS5ib3JkZXJSYWRpdXM9dGhpcy5zcXVhcmU/XCIwXCI6XCI1MCVcIixhKSxjbGFzczpbcz9cImhhbmRsZS1hdC1taW5pbXVtXCI6bnVsbCx7ZHJhZ2dpbmc6dGhpcy5kcmFnZ2luZ31dLGF0dHJzOnt0YWJpbmRleDp0aGlzLiRxLnBsYXRmb3JtLmlzLmRlc2t0b3A/dGhpcy5lZGl0YWJsZT8wOi0xOnZvaWQgMH0sb246e2tleWRvd246ZnVuY3Rpb24odCl7cmV0dXJuIGwuX19vbktleURvd24odCxlKX0sa2V5dXA6ZnVuY3Rpb24odCl7cmV0dXJuIGwuX19vbktleVVwKHQsZSl9fX0sW3RoaXMubGFiZWx8fHRoaXMubGFiZWxBbHdheXM/dChRQ2hpcCx7cHJvcHM6e3BvaW50aW5nOlwiZG93blwiLHNxdWFyZTohMCxkZW5zZTohMCxjb2xvcjpvfSxzdGF0aWNDbGFzczpcInEtc2xpZGVyLWxhYmVsIG5vLXBvaW50ZXItZXZlbnRzXCIsY2xhc3M6e1wibGFiZWwtYWx3YXlzXCI6dGhpcy5sYWJlbEFsd2F5c319LFtyXSk6bnVsbCx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zbGlkZXItcmluZ1wifSldKX0sX19nZXRDb250ZW50OmZ1bmN0aW9uKHQpe3ZhciBlO3JldHVyblt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zbGlkZXItdHJhY2sgYWN0aXZlLXRyYWNrXCIsc3R5bGU6KGU9e30sZVt0aGlzLiRxLmkxOG4ucnRsP1wicmlnaHRcIjpcImxlZnRcIl09MTAwKnRoaXMucGVyY2VudGFnZU1pbitcIiVcIixlLndpZHRoPXRoaXMuYWN0aXZlVHJhY2tXaWR0aCxlKSxjbGFzczp7ZHJhZ2dpbmc6dGhpcy5kcmFnZ2luZyxcInRyYWNrLWRyYWdnYWJsZVwiOnRoaXMuZHJhZ1JhbmdlfHx0aGlzLmRyYWdPbmx5UmFuZ2V9fSksdGhpcy5fX2dldEhhbmRsZSh0LFwibWluXCIsXCJNaW5cIiwhdGhpcy5maWxsSGFuZGxlQWx3YXlzJiZ0aGlzLm1vZGVsLm1pbj09PXRoaXMubWluLHRoaXMucGVyY2VudGFnZU1pbix0aGlzLmxlZnRUb29sdGlwQ29sb3IsdGhpcy5sZWZ0RGlzcGxheVZhbHVlKSx0aGlzLl9fZ2V0SGFuZGxlKHQsXCJtYXhcIixcIk1heFwiLCExLHRoaXMucGVyY2VudGFnZU1heCx0aGlzLnJpZ2h0VG9vbHRpcENvbG9yLHRoaXMucmlnaHREaXNwbGF5VmFsdWUpXX19fSxRUmF0aW5nPXtuYW1lOlwiUVJhdGluZ1wiLHByb3BzOnt2YWx1ZTpOdW1iZXIsbWF4Ont0eXBlOk51bWJlcixkZWZhdWx0OjV9LGljb246U3RyaW5nLGNvbG9yOlN0cmluZyxzaXplOlN0cmluZyxyZWFkb25seTpCb29sZWFuLGRpc2FibGU6Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3JldHVybnttb3VzZU1vZGVsOjB9fSxjb21wdXRlZDp7bW9kZWw6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLiRlbWl0KFwiaW5wdXRcIix0KSx0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe0pTT04uc3RyaW5naWZ5KHQpIT09SlNPTi5zdHJpbmdpZnkoZS52YWx1ZSkmJmUuJGVtaXQoXCJjaGFuZ2VcIix0KX0pfX0sZWRpdGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5yZWFkb25seSYmIXRoaXMuZGlzYWJsZX0sY2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmRpc2FibGUmJnQucHVzaChcImRpc2FibGVkXCIpLHRoaXMuZWRpdGFibGUmJnQucHVzaChcImVkaXRhYmxlXCIpLHRoaXMuY29sb3ImJnQucHVzaChcInRleHQtXCIrdGhpcy5jb2xvciksdH19LG1ldGhvZHM6e3NldDpmdW5jdGlvbih0KXtpZih0aGlzLmVkaXRhYmxlKXt2YXIgZT1iZXR3ZWVuKHBhcnNlSW50KHQsMTApLDEsdGhpcy5tYXgpO3RoaXMubW9kZWw9dGhpcy5tb2RlbD09PWU/MDplLHRoaXMubW91c2VNb2RlbD0wfX0sX19zZXRIb3ZlclZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuZWRpdGFibGUmJih0aGlzLm1vdXNlTW9kZWw9dCl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMsaT1bXSxzPXRoaXMuZWRpdGFibGU/MDotMSxuPWZ1bmN0aW9uKG4pe2kucHVzaCh0KFwic3BhblwiLHtrZXk6bixyZWY6XCJydFwiK24sYXR0cnM6e3RhYmluZGV4OnN9LG9uOntrZXlkb3duOmZ1bmN0aW9uKHQpe3N3aXRjaChnZXRFdmVudEtleSh0KSl7Y2FzZSAxMzpjYXNlIDMyOnJldHVybiBlLnNldChuKSxzdG9wQW5kUHJldmVudCh0KTtjYXNlIDM3OmNhc2UgNDA6cmV0dXJuIGUuJHJlZnNbXCJydFwiKyhuLTEpXSYmZS4kcmVmc1tcInJ0XCIrKG4tMSldLmZvY3VzKCksc3RvcEFuZFByZXZlbnQodCk7Y2FzZSAzOTpjYXNlIDM4OnJldHVybiBlLiRyZWZzW1wicnRcIisobisxKV0mJmUuJHJlZnNbXCJydFwiKyhuKzEpXS5mb2N1cygpLHN0b3BBbmRQcmV2ZW50KHQpfX19fSxbdChRSWNvbix7cHJvcHM6e25hbWU6ZS5pY29ufHxlLiRxLmljb24ucmF0aW5nLmljb259LGNsYXNzOnthY3RpdmU6IWUubW91c2VNb2RlbCYmZS5tb2RlbD49bnx8ZS5tb3VzZU1vZGVsJiZlLm1vdXNlTW9kZWw+PW4sZXhzZWxlY3RlZDplLm1vdXNlTW9kZWwmJmUubW9kZWw+PW4mJmUubW91c2VNb2RlbDxuLGhvdmVyZWQ6ZS5tb3VzZU1vZGVsPT09bn0sYXR0cnM6e3RhYmluZGV4Oi0xfSxuYXRpdmVPbjp7Y2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXQobil9LG1vdXNlb3ZlcjpmdW5jdGlvbigpe3JldHVybiBlLl9fc2V0SG92ZXJWYWx1ZShuKX0sbW91c2VvdXQ6ZnVuY3Rpb24oKXtlLm1vdXNlTW9kZWw9MH0sZm9jdXM6ZnVuY3Rpb24oKXtyZXR1cm4gZS5fX3NldEhvdmVyVmFsdWUobil9LGJsdXI6ZnVuY3Rpb24oKXtlLm1vdXNlTW9kZWw9MH19fSldKSl9LG89MTtvPD10aGlzLm1heDtvKyspbihvKTtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtcmF0aW5nIHJvdyBpbmxpbmUgaXRlbXMtY2VudGVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLHN0eWxlOnRoaXMuc2l6ZT9cImZvbnQtc2l6ZTogXCIrdGhpcy5zaXplOlwiXCJ9LGkpfX0sUVNjcm9sbEFyZWE9e25hbWU6XCJRU2Nyb2xsQXJlYVwiLGRpcmVjdGl2ZXM6e1RvdWNoUGFuOlRvdWNoUGFufSxwcm9wczp7dGh1bWJTdHlsZTp7dHlwZTpPYmplY3QsZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybnt9fX0sY29udGVudFN0eWxlOnt0eXBlOk9iamVjdCxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJue319fSxjb250ZW50QWN0aXZlU3R5bGU6e3R5cGU6T2JqZWN0LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm57fX19LGRlbGF5Ont0eXBlOk51bWJlcixkZWZhdWx0OjFlM319LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57YWN0aXZlOiExLGhvdmVyOiExLGNvbnRhaW5lckhlaWdodDowLHNjcm9sbFBvc2l0aW9uOjAsc2Nyb2xsSGVpZ2h0OjB9fSxjb21wdXRlZDp7dGh1bWJIaWRkZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zY3JvbGxIZWlnaHQ8PXRoaXMuY29udGFpbmVySGVpZ2h0fHwhdGhpcy5hY3RpdmUmJiF0aGlzLmhvdmVyfSx0aHVtYkhlaWdodDpmdW5jdGlvbigpe3JldHVybiBNYXRoLnJvdW5kKGJldHdlZW4odGhpcy5jb250YWluZXJIZWlnaHQqdGhpcy5jb250YWluZXJIZWlnaHQvdGhpcy5zY3JvbGxIZWlnaHQsNTAsdGhpcy5jb250YWluZXJIZWlnaHQpKX0sc3R5bGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnNjcm9sbFBlcmNlbnRhZ2UqKHRoaXMuY29udGFpbmVySGVpZ2h0LXRoaXMudGh1bWJIZWlnaHQpO3JldHVybiBPYmplY3QuYXNzaWduKHt9LHRoaXMudGh1bWJTdHlsZSx7dG9wOnQrXCJweFwiLGhlaWdodDp0aGlzLnRodW1iSGVpZ2h0K1wicHhcIn0pfSxtYWluU3R5bGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50aHVtYkhpZGRlbj90aGlzLmNvbnRlbnRTdHlsZTp0aGlzLmNvbnRlbnRBY3RpdmVTdHlsZX0sc2Nyb2xsUGVyY2VudGFnZTpmdW5jdGlvbigpe3ZhciB0PWJldHdlZW4odGhpcy5zY3JvbGxQb3NpdGlvbi8odGhpcy5zY3JvbGxIZWlnaHQtdGhpcy5jb250YWluZXJIZWlnaHQpLDAsMSk7cmV0dXJuIE1hdGgucm91bmQoMWU0KnQpLzFlNH19LG1ldGhvZHM6e3NldFNjcm9sbFBvc2l0aW9uOmZ1bmN0aW9uKHQsZSl7c2V0U2Nyb2xsUG9zaXRpb24odGhpcy4kcmVmcy50YXJnZXQsdCxlKX0sX191cGRhdGVDb250YWluZXI6ZnVuY3Rpb24odCl7dmFyIGU9dC5oZWlnaHQ7dGhpcy5jb250YWluZXJIZWlnaHQhPT1lJiYodGhpcy5jb250YWluZXJIZWlnaHQ9ZSx0aGlzLl9fc2V0QWN0aXZlKCEwLCEwKSl9LF9fdXBkYXRlU2Nyb2xsOmZ1bmN0aW9uKHQpe3ZhciBlPXQucG9zaXRpb247dGhpcy5zY3JvbGxQb3NpdGlvbiE9PWUmJih0aGlzLnNjcm9sbFBvc2l0aW9uPWUsdGhpcy5fX3NldEFjdGl2ZSghMCwhMCkpfSxfX3VwZGF0ZVNjcm9sbEhlaWdodDpmdW5jdGlvbih0KXt2YXIgZT10LmhlaWdodDt0aGlzLnNjcm9sbEhlaWdodCE9PWUmJih0aGlzLnNjcm9sbEhlaWdodD1lLHRoaXMuX19zZXRBY3RpdmUoITAsITApKX0sX19wYW5UaHVtYjpmdW5jdGlvbih0KXt0LmlzRmlyc3QmJih0aGlzLnJlZlBvcz10aGlzLnNjcm9sbFBvc2l0aW9uLHRoaXMuX19zZXRBY3RpdmUoITAsITApLGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcIm5vbi1zZWxlY3RhYmxlXCIpLGRvY3VtZW50LnNlbGVjdGlvbj9kb2N1bWVudC5zZWxlY3Rpb24uZW1wdHkoKTp3aW5kb3cuZ2V0U2VsZWN0aW9uJiZ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCkpLHQuaXNGaW5hbCYmKHRoaXMuX19zZXRBY3RpdmUoITEpLGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShcIm5vbi1zZWxlY3RhYmxlXCIpKTt2YXIgZT0odGhpcy5zY3JvbGxIZWlnaHQtdGhpcy5jb250YWluZXJIZWlnaHQpLyh0aGlzLmNvbnRhaW5lckhlaWdodC10aGlzLnRodW1iSGVpZ2h0KTt0aGlzLiRyZWZzLnRhcmdldC5zY3JvbGxUb3A9dGhpcy5yZWZQb3MrKFwiZG93blwiPT09dC5kaXJlY3Rpb24/MTotMSkqdC5kaXN0YW5jZS55KmV9LF9fcGFuQ29udGFpbmVyOmZ1bmN0aW9uKHQpe3QuaXNGaXJzdCYmKHRoaXMucmVmUG9zPXRoaXMuc2Nyb2xsUG9zaXRpb24sdGhpcy5fX3NldEFjdGl2ZSghMCwhMCkpLHQuaXNGaW5hbCYmdGhpcy5fX3NldEFjdGl2ZSghMSk7dmFyIGU9dGhpcy5yZWZQb3MrKFwiZG93blwiPT09dC5kaXJlY3Rpb24/LTE6MSkqdC5kaXN0YW5jZS55O3RoaXMuJHJlZnMudGFyZ2V0LnNjcm9sbFRvcD1lLGU+MCYmZSt0aGlzLmNvbnRhaW5lckhlaWdodDx0aGlzLnNjcm9sbEhlaWdodCYmdC5ldnQucHJldmVudERlZmF1bHQoKX0sX19tb3VzZVdoZWVsOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuJHJlZnMudGFyZ2V0O2Uuc2Nyb2xsVG9wKz1nZXRNb3VzZVdoZWVsRGlzdGFuY2UodCkueSxlLnNjcm9sbFRvcD4wJiZlLnNjcm9sbFRvcCt0aGlzLmNvbnRhaW5lckhlaWdodDx0aGlzLnNjcm9sbEhlaWdodCYmdC5wcmV2ZW50RGVmYXVsdCgpfSxfX3NldEFjdGl2ZTpmdW5jdGlvbih0LGUpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0IT09dGhpcy5hY3RpdmU/dD8odGhpcy5hY3RpdmU9ITAsZSYmdGhpcy5fX3N0YXJ0VGltZXIoKSk6dGhpcy5hY3RpdmU9ITE6dCYmdGhpcy50aW1lciYmdGhpcy5fX3N0YXJ0VGltZXIoKX0sX19zdGFydFRpbWVyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLnRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmFjdGl2ZT0hMSx0LnRpbWVyPW51bGx9LHRoaXMuZGVsYXkpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuJHEucGxhdGZvcm0uaXMuZGVza3RvcD90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zY3JvbGxhcmVhIHJlbGF0aXZlLXBvc2l0aW9uXCIsb246e21vdXNlZW50ZXI6ZnVuY3Rpb24oKXtlLmhvdmVyPSEwfSxtb3VzZWxlYXZlOmZ1bmN0aW9uKCl7ZS5ob3Zlcj0hMX19fSxbdChcImRpdlwiLHtyZWY6XCJ0YXJnZXRcIixzdGF0aWNDbGFzczpcInNjcm9sbCByZWxhdGl2ZS1wb3NpdGlvbiBvdmVyZmxvdy1oaWRkZW4gZml0XCIsb246e3doZWVsOnRoaXMuX19tb3VzZVdoZWVsfSxkaXJlY3RpdmVzOlt7bmFtZTpcInRvdWNoLXBhblwiLG1vZGlmaWVyczp7dmVydGljYWw6ITAsbm9Nb3VzZTohMCxtaWdodFByZXZlbnQ6ITB9LHZhbHVlOnRoaXMuX19wYW5Db250YWluZXJ9XX0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJhYnNvbHV0ZSBmdWxsLXdpZHRoXCIsc3R5bGU6dGhpcy5tYWluU3R5bGV9LFt0KFFSZXNpemVPYnNlcnZhYmxlLHtvbjp7cmVzaXplOnRoaXMuX191cGRhdGVTY3JvbGxIZWlnaHR9fSksdGhpcy4kc2xvdHMuZGVmYXVsdF0pLHQoUVNjcm9sbE9ic2VydmFibGUse29uOntzY3JvbGw6dGhpcy5fX3VwZGF0ZVNjcm9sbH19KV0pLHQoUVJlc2l6ZU9ic2VydmFibGUse29uOntyZXNpemU6dGhpcy5fX3VwZGF0ZUNvbnRhaW5lcn19KSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zY3JvbGxhcmVhLXRodW1iIGFic29sdXRlLXJpZ2h0XCIsc3R5bGU6dGhpcy5zdHlsZSxjbGFzczp7XCJpbnZpc2libGUtdGh1bWJcIjp0aGlzLnRodW1iSGlkZGVufSxkaXJlY3RpdmVzOlt7bmFtZTpcInRvdWNoLXBhblwiLG1vZGlmaWVyczp7dmVydGljYWw6ITAscHJldmVudDohMH0sdmFsdWU6dGhpcy5fX3BhblRodW1ifV19KV0pOnQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXNjcm9sbC1hcmVhIHJlbGF0aXZlLXBvc2l0aW9uXCIsc3R5bGU6dGhpcy5jb250ZW50U3R5bGV9LFt0KFwiZGl2XCIse3JlZjpcInRhcmdldFwiLHN0YXRpY0NsYXNzOlwic2Nyb2xsIHJlbGF0aXZlLXBvc2l0aW9uIGZpdFwifSx0aGlzLiRzbG90cy5kZWZhdWx0KV0pfX0sUVNlYXJjaD17bmFtZTpcIlFTZWFyY2hcIixtaXhpbnM6W0ZyYW1lTWl4aW4sSW5wdXRNaXhpbl0scHJvcHM6e3ZhbHVlOntyZXF1aXJlZDohMH0sdHlwZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInNlYXJjaFwifSxkZWJvdW5jZTp7dHlwZTpOdW1iZXIsZGVmYXVsdDozMDB9LGljb246U3RyaW5nLG5vSWNvbjpCb29sZWFuLHVwcGVyQ2FzZTpCb29sZWFuLGxvd2VyQ2FzZTpCb29sZWFufSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue21vZGVsOnRoaXMudmFsdWUsY2hpbGREZWJvdW5jZTohMX19LHByb3ZpZGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9ZnVuY3Rpb24oZSl7dC5tb2RlbCE9PWUmJih0Lm1vZGVsPWUpfTtyZXR1cm57X19pbnB1dERlYm91bmNlOntzZXQ6ZSxzZXROYXY6ZSxzZXRDaGlsZERlYm91bmNlOmZ1bmN0aW9uKGUpe3QuY2hpbGREZWJvdW5jZT1lfX19fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5tb2RlbD10fSxtb2RlbDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLnZhbHVlIT09dCYmKHR8fDA9PT10fHwodGhpcy5tb2RlbD1cIm51bWJlclwiPT09dGhpcy50eXBlP251bGw6XCJcIiksdGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS4kZW1pdChcImlucHV0XCIsZS5tb2RlbCl9LHRoaXMuZGVib3VuY2VWYWx1ZSkpfX0sY29tcHV0ZWQ6e2RlYm91bmNlVmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaGlsZERlYm91bmNlPzA6dGhpcy5kZWJvdW5jZX0sY29tcHV0ZWRDbGVhclZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNOdW1iZXImJjA9PT10aGlzLmNsZWFyVmFsdWU/dGhpcy5jbGVhclZhbHVlOnRoaXMuY2xlYXJWYWx1ZXx8KFwibnVtYmVyXCI9PT10aGlzLnR5cGU/bnVsbDpcIlwiKX0sY29udHJvbEJlZm9yZTpmdW5jdGlvbigpe3ZhciB0PSh0aGlzLmJlZm9yZXx8W10pLnNsaWNlKCk7cmV0dXJuIHRoaXMubm9JY29ufHx0LnVuc2hpZnQoe2ljb246dGhpcy5pY29ufHx0aGlzLiRxLmljb24uc2VhcmNoLmljb24saGFuZGxlcjp0aGlzLmZvY3VzfSksdH0sY29udHJvbEFmdGVyOmZ1bmN0aW9uKCl7dmFyIHQ9KHRoaXMuYWZ0ZXJ8fFtdKS5zbGljZSgpO3JldHVybiB0aGlzLmlzQ2xlYXJhYmxlJiZ0LnB1c2goe2ljb246dGhpcy4kcS5pY29uLnNlYXJjaFtcImNsZWFyXCIrKHRoaXMuaXNJbnZlcnRlZD9cIkludmVydGVkXCI6XCJcIildLGhhbmRsZXI6dGhpcy5jbGVhcn0pLHR9fSxtZXRob2RzOntjbGVhcjpmdW5jdGlvbih0KXt0aGlzLiRyZWZzLmlucHV0LmNsZWFyKHQpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoUUlucHV0LHtyZWY6XCJpbnB1dFwiLHN0YXRpY0NsYXNzOlwicS1zZWFyY2hcIixwcm9wczp7dmFsdWU6dGhpcy5tb2RlbCx0eXBlOnRoaXMudHlwZSxhdXRvZm9jdXM6dGhpcy5hdXRvZm9jdXMscGxhY2Vob2xkZXI6dGhpcy5wbGFjZWhvbGRlcnx8dGhpcy4kcS5pMThuLmxhYmVsLnNlYXJjaCxkaXNhYmxlOnRoaXMuZGlzYWJsZSxyZWFkb25seTp0aGlzLnJlYWRvbmx5LGVycm9yOnRoaXMuZXJyb3Isd2FybmluZzp0aGlzLndhcm5pbmcsYWxpZ246dGhpcy5hbGlnbixub1BhcmVudEZpZWxkOnRoaXMubm9QYXJlbnRGaWVsZCxmbG9hdExhYmVsOnRoaXMuZmxvYXRMYWJlbCxzdGFja0xhYmVsOnRoaXMuc3RhY2tMYWJlbCxwcmVmaXg6dGhpcy5wcmVmaXgsc3VmZml4OnRoaXMuc3VmZml4LGludmVydGVkOnRoaXMuaW52ZXJ0ZWQsaW52ZXJ0ZWRMaWdodDp0aGlzLmludmVydGVkTGlnaHQsZGFyazp0aGlzLmRhcmssaGlkZVVuZGVybGluZTp0aGlzLmhpZGVVbmRlcmxpbmUsY29sb3I6dGhpcy5jb2xvcixyb3dzOnRoaXMucm93cyxiZWZvcmU6dGhpcy5jb250cm9sQmVmb3JlLGFmdGVyOnRoaXMuY29udHJvbEFmdGVyLGNsZWFyVmFsdWU6dGhpcy5jbGVhclZhbHVlLHVwcGVyQ2FzZTp0aGlzLnVwcGVyQ2FzZSxsb3dlckNhc2U6dGhpcy5sb3dlckNhc2V9LGF0dHJzOnRoaXMuJGF0dHJzLG9uOntpbnB1dDpmdW5jdGlvbih0KXtlLm1vZGVsPXR9LGZvY3VzOnRoaXMuX19vbkZvY3VzLGJsdXI6dGhpcy5fX29uQmx1cixrZXl1cDp0aGlzLl9fb25LZXl1cCxrZXlkb3duOnRoaXMuX19vbktleWRvd24sY2xpY2s6dGhpcy5fX29uQ2xpY2sscGFzdGU6dGhpcy5fX29uUGFzdGUsY2xlYXI6ZnVuY3Rpb24odCl7ZS4kZW1pdChcImNsZWFyXCIsdCksZS5fX2VtaXQoKX19fSx0aGlzLiRzbG90cy5kZWZhdWx0KX19O2Z1bmN0aW9uIGRlZmF1bHRGaWx0ZXJGbih0LGUpe3JldHVybiBlLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih0KT4tMX12YXIgUVNlbGVjdD17bmFtZTpcIlFTZWxlY3RcIixtaXhpbnM6W0ZyYW1lTWl4aW4sS2V5Ym9hcmRTZWxlY3Rpb25NaXhpbl0scHJvcHM6e2ZpbHRlcjpbRnVuY3Rpb24sQm9vbGVhbl0sZmlsdGVyUGxhY2Vob2xkZXI6U3RyaW5nLHJhZGlvOkJvb2xlYW4scGxhY2Vob2xkZXI6U3RyaW5nLHNlcGFyYXRvcjpCb29sZWFuLHZhbHVlOntyZXF1aXJlZDohMH0sbXVsdGlwbGU6Qm9vbGVhbix0b2dnbGU6Qm9vbGVhbixjaGlwczpCb29sZWFuLG9wdGlvbnM6e3R5cGU6QXJyYXkscmVxdWlyZWQ6ITAsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybiB0LmV2ZXJ5KGZ1bmN0aW9uKHQpe3JldHVyblwibGFiZWxcImluIHQmJlwidmFsdWVcImluIHR9KX19LGNoaXBzQ29sb3I6U3RyaW5nLGNoaXBzQmdDb2xvcjpTdHJpbmcsZGlzcGxheVZhbHVlOlN0cmluZyxwb3B1cE1heEhlaWdodDpTdHJpbmcscG9wdXBDb3Zlcjp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITB9fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue21vZGVsOnRoaXMubXVsdGlwbGUmJkFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSk/dGhpcy52YWx1ZS5zbGljZSgpOnRoaXMudmFsdWUsdGVybXM6XCJcIixmb2N1c2VkOiExfX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMubW9kZWw9dGhpcy5tdWx0aXBsZSYmQXJyYXkuaXNBcnJheSh0KT90LnNsaWNlKCk6dH0sdmlzaWJsZU9wdGlvbnM6ZnVuY3Rpb24oKXt0aGlzLl9fa2V5Ym9hcmRDYWxjSW5kZXgoKX19LGNvbXB1dGVkOntvcHRNb2RlbDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYodGhpcy5tdWx0aXBsZSlyZXR1cm4gdGhpcy5tb2RlbC5sZW5ndGg+MD90aGlzLm9wdGlvbnMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0Lm1vZGVsLmluY2x1ZGVzKGUudmFsdWUpfSk6dGhpcy5vcHRpb25zLm1hcChmdW5jdGlvbih0KXtyZXR1cm4hMX0pfSx2aXNpYmxlT3B0aW9uczpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLm9wdGlvbnMubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sdCx7aW5kZXg6ZX0pfSk7aWYodGhpcy5maWx0ZXImJnRoaXMudGVybXMubGVuZ3RoKXt2YXIgaT10aGlzLnRlcm1zLnRvTG93ZXJDYXNlKCk7ZT1lLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gdC5maWx0ZXJGbihpLGUpfSl9cmV0dXJuIGV9LGtleWJvYXJkTWF4SW5kZXg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52aXNpYmxlT3B0aW9ucy5sZW5ndGgtMX0sZmlsdGVyRm46ZnVuY3Rpb24oKXtyZXR1cm5cImJvb2xlYW5cIj09dHlwZW9mIHRoaXMuZmlsdGVyP2RlZmF1bHRGaWx0ZXJGbjp0aGlzLmZpbHRlcn0sYWN0dWFsVmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKHRoaXMuZGlzcGxheVZhbHVlKXJldHVybiB0aGlzLmRpc3BsYXlWYWx1ZTtpZighdGhpcy5tdWx0aXBsZSl7dmFyIGU9dGhpcy5vcHRpb25zLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIGUudmFsdWU9PT10Lm1vZGVsfSk7cmV0dXJuIGU/ZS5sYWJlbDpcIlwifXZhciBpPXRoaXMuc2VsZWN0ZWRPcHRpb25zLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5sYWJlbH0pO3JldHVybiBpLmxlbmd0aD9pLmpvaW4oXCIsIFwiKTpcIlwifSxjb21wdXRlZENsZWFyVmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09dGhpcy5jbGVhclZhbHVlP3RoaXMubXVsdGlwbGU/W106bnVsbDp0aGlzLmNsZWFyVmFsdWV9LGlzQ2xlYXJhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRpdGFibGUmJnRoaXMuY2xlYXJhYmxlJiZKU09OLnN0cmluZ2lmeSh0aGlzLmNvbXB1dGVkQ2xlYXJWYWx1ZSkhPT1KU09OLnN0cmluZ2lmeSh0aGlzLm1vZGVsKX0sc2VsZWN0ZWRPcHRpb25zOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih0aGlzLm11bHRpcGxlKXJldHVybiB0aGlzLmxlbmd0aD4wP3RoaXMub3B0aW9ucy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIHQubW9kZWwuaW5jbHVkZXMoZS52YWx1ZSl9KTpbXX0saGFzQ2hpcHM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdWx0aXBsZSYmdGhpcy5jaGlwcyYmdGhpcy5sZW5ndGg+MH0sbGVuZ3RoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsdGlwbGU/dGhpcy5tb2RlbC5sZW5ndGg6W251bGwsdm9pZCAwLFwiXCJdLmluY2x1ZGVzKHRoaXMubW9kZWwpPzA6MX0sYWRkaXRpb25hbExlbmd0aDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRpc3BsYXlWYWx1ZSYmdGhpcy5kaXNwbGF5VmFsdWUubGVuZ3RoPjB9fSxtZXRob2RzOnt0b2dnbGVQb3B1cDpmdW5jdGlvbigpe3RoaXMuJHJlZnMucG9wb3ZlciYmdGhpc1t0aGlzLiRyZWZzLnBvcG92ZXIuc2hvd2luZz9cImhpZGVcIjpcInNob3dcIl0oKX0sc2hvdzpmdW5jdGlvbigpe2lmKHRoaXMuX19rZXlib2FyZENhbGNJbmRleCgpLHRoaXMuJHJlZnMucG9wb3ZlcilyZXR1cm4gdGhpcy4kcmVmcy5wb3BvdmVyLnNob3coKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRyZWZzLnBvcG92ZXI/dGhpcy4kcmVmcy5wb3BvdmVyLmhpZGUoKTpQcm9taXNlLnJlc29sdmUoKX0scmVwb3NpdGlvbjpmdW5jdGlvbigpe3ZhciB0PXRoaXMuJHJlZnMucG9wb3Zlcjt0JiZ0LnNob3dpbmcmJnRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7cmV0dXJuIHQmJnQucmVwb3NpdGlvbigpfSl9LF9fa2V5Ym9hcmRDYWxjSW5kZXg6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMua2V5Ym9hcmRJbmRleD0tMTt2YXIgZT10aGlzLm11bHRpcGxlP3RoaXMuc2VsZWN0ZWRPcHRpb25zLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC52YWx1ZX0pOlt0aGlzLm1vZGVsXTt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3ZhciBpPXZvaWQgMD09PWU/LTE6TWF0aC5tYXgoLTEsdC52aXNpYmxlT3B0aW9ucy5maW5kSW5kZXgoZnVuY3Rpb24odCl7cmV0dXJuIGUuaW5jbHVkZXModC52YWx1ZSl9KSk7aT4tMSYmKHQua2V5Ym9hcmRNb3ZlRGlyZWN0aW9uPSEwLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmtleWJvYXJkTW92ZURpcmVjdGlvbj0hMX0sNTAwKSx0Ll9fa2V5Ym9hcmRTaG93KGkpKX0pfSxfX2tleWJvYXJkQ3VzdG9tS2V5SGFuZGxlOmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQpe2Nhc2UgMjc6dGhpcy4kcmVmcy5wb3BvdmVyLnNob3dpbmcmJnRoaXMuaGlkZSgpO2JyZWFrO2Nhc2UgMTM6Y2FzZSAzMjp0aGlzLiRyZWZzLnBvcG92ZXIuc2hvd2luZ3x8dGhpcy5zaG93KCl9fSxfX2tleWJvYXJkU2hvd1RyaWdnZXI6ZnVuY3Rpb24oKXt0aGlzLnNob3coKX0sX19rZXlib2FyZFNldFNlbGVjdGlvbjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLnZpc2libGVPcHRpb25zW3RdO3RoaXMubXVsdGlwbGU/dGhpcy5fX3RvZ2dsZU11bHRpcGxlKGUudmFsdWUsZS5kaXNhYmxlKTp0aGlzLl9fc2luZ2xlU2VsZWN0KGUudmFsdWUsZS5kaXNhYmxlKX0sX19rZXlib2FyZElzU2VsZWN0YWJsZUluZGV4OmZ1bmN0aW9uKHQpe3JldHVybiB0Pi0xJiZ0PHRoaXMudmlzaWJsZU9wdGlvbnMubGVuZ3RoJiYhdGhpcy52aXNpYmxlT3B0aW9uc1t0XS5kaXNhYmxlfSxfX21vdXNlRW50ZXJIYW5kbGVyOmZ1bmN0aW9uKHQsZSl7dGhpcy5rZXlib2FyZE1vdmVEaXJlY3Rpb258fCh0aGlzLmtleWJvYXJkSW5kZXg9ZSl9LF9fb25Gb2N1czpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZXx8dGhpcy5mb2N1c2VkfHwodGhpcy5mb2N1c2VkPSEwLHRoaXMuJGVtaXQoXCJmb2N1c1wiKSl9LF9fb25TaG93OmZ1bmN0aW9uKCl7dGhpcy5kaXNhYmxlfHwodGhpcy5fX29uRm9jdXMoKSx0aGlzLmZpbHRlciYmdGhpcy4kcmVmcy5maWx0ZXImJih0aGlzLiRyZWZzLmZpbHRlci5mb2N1cygpLHRoaXMucmVwb3NpdGlvbigpKSl9LF9fb25CbHVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5mb2N1c2VkJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtlLiRyZWZzLnBvcG92ZXImJmUuJHJlZnMucG9wb3Zlci5zaG93aW5nJiYodD09PWRvY3VtZW50LmJvZHl8fGUuJHJlZnMucG9wb3Zlci4kZWwuY29udGFpbnModCkpfHwoZS5fX29uQ2xvc2UoKSxlLmhpZGUoKSl9LDEpfSxfX29uQ2xvc2U6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe0pTT04uc3RyaW5naWZ5KGUubW9kZWwpIT09SlNPTi5zdHJpbmdpZnkoZS52YWx1ZSkmJmUuJGVtaXQoXCJjaGFuZ2VcIixlLm1vZGVsKX0pLHRoaXMudGVybXM9XCJcIix0aGlzLmZvY3VzZWQmJih0P3RoaXMuJHJlZnMuaW5wdXQmJnRoaXMuJHJlZnMuaW5wdXQuJGVsJiZ0aGlzLiRyZWZzLmlucHV0LiRlbC5mb2N1cygpOih0aGlzLmZvY3VzZWQ9ITEsdGhpcy4kZW1pdChcImJsdXJcIikpKX0sX19zaW5nbGVTZWxlY3Q6ZnVuY3Rpb24odCxlKXtlfHwodGhpcy5fX2VtaXQodCksdGhpcy5oaWRlKCkpfSxfX3RvZ2dsZU11bHRpcGxlOmZ1bmN0aW9uKHQsZSl7aWYoIWUpe3ZhciBpPXRoaXMubW9kZWwscz1pLmluZGV4T2YodCk7cz4tMT90aGlzLiRlbWl0KFwicmVtb3ZlXCIse2luZGV4OnMsdmFsdWU6aS5zcGxpY2UocywxKX0pOih0aGlzLiRlbWl0KFwiYWRkXCIse2luZGV4OmkubGVuZ3RoLHZhbHVlOnR9KSxpLnB1c2godCkpLHRoaXMuJGVtaXQoXCJpbnB1dFwiLGkpfX0sX19lbWl0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy4kZW1pdChcImlucHV0XCIsdCksdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtKU09OLnN0cmluZ2lmeSh0KSE9PUpTT04uc3RyaW5naWZ5KGUudmFsdWUpJiZlLiRlbWl0KFwiY2hhbmdlXCIsdCl9KX0sX19zZXRNb2RlbDpmdW5jdGlvbih0LGUpe3RoaXMubW9kZWw9dHx8KHRoaXMubXVsdGlwbGU/W106bnVsbCksdGhpcy4kZW1pdChcImlucHV0XCIsdGhpcy5tb2RlbCksIWUmJnRoaXMuJHJlZnMucG9wb3ZlciYmdGhpcy4kcmVmcy5wb3BvdmVyLnNob3dpbmd8fHRoaXMuX19vbkNsb3NlKGUpfSxfX2dldENoaXBUZXh0Q29sb3I6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2hpcHNDb2xvcj90aGlzLmNoaXBzQ29sb3I6dGhpcy5pc0ludmVydGVkTGlnaHQ/dGhpcy5pbnZlcnRlZExpZ2h0P3R8fHRoaXMuY29sb3I6XCJ3aGl0ZVwiOnRoaXMuaXNJbnZlcnRlZD90fHwodGhpcy5pbnZlcnRlZExpZ2h0P1wiZ3JleS0xMFwiOnRoaXMuY29sb3IpOnRoaXMuZGFyaz90fHx0aGlzLmNvbG9yOlwid2hpdGVcIn0sX19nZXRDaGlwQmdDb2xvcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jaGlwc0JnQ29sb3I/dGhpcy5jaGlwc0JnQ29sb3I6dGhpcy5pc0ludmVydGVkTGlnaHQ/dGhpcy5pbnZlcnRlZExpZ2h0P1wiZ3JleS0xMFwiOnR8fHRoaXMuY29sb3I6dGhpcy5pc0ludmVydGVkP3RoaXMuaW52ZXJ0ZWRMaWdodD90aGlzLmNvbG9yOlwid2hpdGVcIjp0aGlzLmRhcms/XCJ3aGl0ZVwiOnR8fHRoaXMuY29sb3J9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPVtdO2lmKHRoaXMuaGFzQ2hpcHMpe3ZhciBzPXQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wgcm93IGl0ZW1zLWNlbnRlciBxLWlucHV0LWNoaXBzXCIsY2xhc3M6dGhpcy5hbGlnbkNsYXNzfSx0aGlzLnNlbGVjdGVkT3B0aW9ucy5tYXAoZnVuY3Rpb24oaSxzKXtyZXR1cm4gdChRQ2hpcCx7a2V5OnMscHJvcHM6e3NtYWxsOiEwLGNsb3NhYmxlOmUuZWRpdGFibGUmJiFpLmRpc2FibGUsY29sb3I6ZS5fX2dldENoaXBCZ0NvbG9yKGkuY29sb3IpLHRleHRDb2xvcjplLl9fZ2V0Q2hpcFRleHRDb2xvcihpLmNvbG9yKSxpY29uOmkuaWNvbixpY29uUmlnaHQ6aS5yaWdodEljb24sYXZhdGFyOmkuYXZhdGFyfSxvbjp7aGlkZTpmdW5jdGlvbigpe2UuX190b2dnbGVNdWx0aXBsZShpLnZhbHVlLGUuZGlzYWJsZXx8aS5kaXNhYmxlKX19LG5hdGl2ZU9uOntjbGljazpmdW5jdGlvbih0KXt0LnN0b3BQcm9wYWdhdGlvbigpfX19LFt0KFwiZGl2XCIse2RvbVByb3BzOntpbm5lckhUTUw6aS5sYWJlbH19KV0pfSkpO2kucHVzaChzKX1lbHNle3ZhciBuPXQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wgcS1pbnB1dC10YXJnZXQgZWxsaXBzaXNcIixjbGFzczp0aGlzLmZha2VJbnB1dENsYXNzZXMsZG9tUHJvcHM6e2lubmVySFRNTDp0aGlzLmZha2VJbnB1dFZhbHVlfX0pO2kucHVzaChuKX1yZXR1cm4gaS5wdXNoKHQoUVBvcG92ZXIse3JlZjpcInBvcG92ZXJcIixzdGF0aWNDbGFzczpcImNvbHVtbiBuby13cmFwXCIsY2xhc3M6dGhpcy5kYXJrP1wiYmctZGFya1wiOm51bGwscHJvcHM6e2NvdmVyOnRoaXMucG9wdXBDb3ZlcixrZWVwT25TY3JlZW46ITAsZGlzYWJsZTohdGhpcy5lZGl0YWJsZSxhbmNob3JDbGljazohMSxtYXhIZWlnaHQ6dGhpcy5wb3B1cE1heEhlaWdodH0sc2xvdDpcImFmdGVyXCIsb246e3Nob3c6dGhpcy5fX29uU2hvdyxoaWRlOmZ1bmN0aW9uKCl7ZS5fX29uQ2xvc2UoITApfX0sbmF0aXZlT246e2tleWRvd246dGhpcy5fX2tleWJvYXJkSGFuZGxlS2V5fX0sW3RoaXMuZmlsdGVyJiZ0KFFTZWFyY2gse3JlZjpcImZpbHRlclwiLHN0YXRpY0NsYXNzOlwiY29sLWF1dG9cIixzdHlsZTpcInBhZGRpbmc6IDEwcHg7XCIscHJvcHM6e3ZhbHVlOnRoaXMudGVybXMscGxhY2Vob2xkZXI6dGhpcy5maWx0ZXJQbGFjZWhvbGRlcnx8dGhpcy4kcS5pMThuLmxhYmVsLmZpbHRlcixkZWJvdW5jZToxMDAsY29sb3I6dGhpcy5jb2xvcixkYXJrOnRoaXMuZGFyayxub1BhcmVudEZpZWxkOiEwLG5vSWNvbjohMH0sb246e2lucHV0OmZ1bmN0aW9uKHQpe2UudGVybXM9dCxlLnJlcG9zaXRpb24oKX19fSl8fHZvaWQgMCx0aGlzLnZpc2libGVPcHRpb25zLmxlbmd0aCYmdChRTGlzdCx7c3RhdGljQ2xhc3M6XCJuby1ib3JkZXIgc2Nyb2xsXCIscHJvcHM6e3NlcGFyYXRvcjp0aGlzLnNlcGFyYXRvcixkYXJrOnRoaXMuZGFya319LHRoaXMudmlzaWJsZU9wdGlvbnMubWFwKGZ1bmN0aW9uKGkscyl7cmV0dXJuIHQoUUl0ZW1XcmFwcGVyLHtrZXk6cyxjbGFzczpbaS5kaXNhYmxlP1widGV4dC1mYWRlZFwiOlwiY3Vyc29yLXBvaW50ZXJcIixzPT09ZS5rZXlib2FyZEluZGV4P1wicS1zZWxlY3QtaGlnaGxpZ2h0XCI6XCJcIixpLmRpc2FibGU/XCJcIjpcImN1cnNvci1wb2ludGVyXCIsaS5jbGFzc05hbWV8fFwiXCJdLHByb3BzOntjZmc6aSxzbG90UmVwbGFjZTohMCxhY3RpdmU6ZS5tdWx0aXBsZT92b2lkIDA6ZS52YWx1ZT09PWkudmFsdWV9LG5hdGl2ZU9uOntcIiFjbGlja1wiOmZ1bmN0aW9uKCl7dmFyIHQ9ZS5tdWx0aXBsZT9cIl9fdG9nZ2xlTXVsdGlwbGVcIjpcIl9fc2luZ2xlU2VsZWN0XCI7ZVt0XShpLnZhbHVlLGkuZGlzYWJsZSl9LG1vdXNlZW50ZXI6ZnVuY3Rpb24odCl7IWkuZGlzYWJsZSYmZS5fX21vdXNlRW50ZXJIYW5kbGVyKHQscyl9fX0sW2UubXVsdGlwbGU/dChlLnRvZ2dsZT9RVG9nZ2xlOlFDaGVja2JveCx7c2xvdDplLnRvZ2dsZT9cInJpZ2h0XCI6XCJsZWZ0XCIscHJvcHM6e2tlZXBDb2xvcjohMCxjb2xvcjppLmNvbG9yfHxlLmNvbG9yLGRhcms6ZS5kYXJrLHZhbHVlOmUub3B0TW9kZWxbaS5pbmRleF0sZGlzYWJsZTppLmRpc2FibGUsbm9Gb2N1czohMH19KTplLnJhZGlvJiZ0KFFSYWRpbyx7c2xvdDpcImxlZnRcIixwcm9wczp7a2VlcENvbG9yOiEwLGNvbG9yOmkuY29sb3J8fGUuY29sb3IsZGFyazplLmRhcmssdmFsdWU6ZS52YWx1ZSx2YWw6aS52YWx1ZSxkaXNhYmxlOmkuZGlzYWJsZSxub0ZvY3VzOiEwfX0pfHx2b2lkIDBdKX0pKXx8dm9pZCAwXSkpLHRoaXMuaXNDbGVhcmFibGUmJmkucHVzaCh0KFFJY29uLHtzbG90OlwiYWZ0ZXJcIixzdGF0aWNDbGFzczpcInEtaWYtY29udHJvbFwiLHByb3BzOntuYW1lOnRoaXMuJHEuaWNvbi5pbnB1dFtcImNsZWFyXCIrKHRoaXMuaXNJbnZlcnRlZD9cIkludmVydGVkXCI6XCJcIildfSxuYXRpdmVPbjp7Y2xpY2s6dGhpcy5jbGVhcn19KSksaS5wdXNoKHQoUUljb24sdGhpcy5yZWFkb25seT97c2xvdDpcImFmdGVyXCJ9OntzbG90OlwiYWZ0ZXJcIixzdGF0aWNDbGFzczpcInEtaWYtY29udHJvbFwiLHByb3BzOntuYW1lOnRoaXMuJHEuaWNvbi5pbnB1dC5kcm9wZG93bn19KSksdChRSW5wdXRGcmFtZSx7cmVmOlwiaW5wdXRcIixzdGF0aWNDbGFzczpcInEtc2VsZWN0XCIscHJvcHM6e3ByZWZpeDp0aGlzLnByZWZpeCxzdWZmaXg6dGhpcy5zdWZmaXgsc3RhY2tMYWJlbDp0aGlzLnN0YWNrTGFiZWwsZmxvYXRMYWJlbDp0aGlzLmZsb2F0TGFiZWwsZXJyb3I6dGhpcy5lcnJvcix3YXJuaW5nOnRoaXMud2FybmluZyxkaXNhYmxlOnRoaXMuZGlzYWJsZSxyZWFkb25seTp0aGlzLnJlYWRvbmx5LGludmVydGVkOnRoaXMuaW52ZXJ0ZWQsaW52ZXJ0ZWRMaWdodDp0aGlzLmludmVydGVkTGlnaHQsZGFyazp0aGlzLmRhcmssaGlkZVVuZGVybGluZTp0aGlzLmhpZGVVbmRlcmxpbmUsYmVmb3JlOnRoaXMuYmVmb3JlLGFmdGVyOnRoaXMuYWZ0ZXIsY29sb3I6dGhpcy5jb2xvcixub1BhcmVudEZpZWxkOnRoaXMubm9QYXJlbnRGaWVsZCxmb2N1c2VkOnRoaXMuZm9jdXNlZCxmb2N1c2FibGU6ITAsbGVuZ3RoOnRoaXMubGVuZ3RoLGFkZGl0aW9uYWxMZW5ndGg6dGhpcy5hZGRpdGlvbmFsTGVuZ3RofSxuYXRpdmVPbjp7Y2xpY2s6dGhpcy50b2dnbGVQb3B1cCxmb2N1czp0aGlzLl9fb25Gb2N1cyxibHVyOnRoaXMuX19vbkJsdXIsa2V5ZG93bjp0aGlzLl9fa2V5Ym9hcmRIYW5kbGVLZXl9fSxpKX19LFFTcGlubmVyQXVkaW89e25hbWU6XCJRU3Bpbm5lckF1ZGlvXCIsbWl4aW5zOlttaXhpbiQxXSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJzdmdcIix7c3RhdGljQ2xhc3M6XCJxLXNwaW5uZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e2ZpbGw6XCJjdXJyZW50Q29sb3JcIix3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMCAwIDU1IDgwXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifX0sW3QoXCJnXCIse2F0dHJzOnt0cmFuc2Zvcm06XCJtYXRyaXgoMSAwIDAgLTEgMCA4MClcIn19LFt0KFwicmVjdFwiLHthdHRyczp7d2lkdGg6XCIxMFwiLGhlaWdodDpcIjIwXCIscng6XCIzXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJoZWlnaHRcIixiZWdpbjpcIjBzXCIsZHVyOlwiNC4zc1wiLHZhbHVlczpcIjIwOzQ1OzU3OzgwOzY0OzMyOzY2OzQ1OzY0OzIzOzY2OzEzOzY0OzU2OzM0OzM0OzI7MjM7NzY7Nzk7MjBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcInJlY3RcIix7YXR0cnM6e3g6XCIxNVwiLHdpZHRoOlwiMTBcIixoZWlnaHQ6XCI4MFwiLHJ4OlwiM1wifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiaGVpZ2h0XCIsYmVnaW46XCIwc1wiLGR1cjpcIjJzXCIsdmFsdWVzOlwiODA7NTU7MzM7NTs3NTsyMzs3MzszMzsxMjsxNDs2MDs4MFwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwicmVjdFwiLHthdHRyczp7eDpcIjMwXCIsd2lkdGg6XCIxMFwiLGhlaWdodDpcIjUwXCIscng6XCIzXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJoZWlnaHRcIixiZWdpbjpcIjBzXCIsZHVyOlwiMS40c1wiLHZhbHVlczpcIjUwOzM0Ozc4OzIzOzU2OzIzOzM0Ozc2OzgwOzU0OzIxOzUwXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJyZWN0XCIse2F0dHJzOnt4OlwiNDVcIix3aWR0aDpcIjEwXCIsaGVpZ2h0OlwiMzBcIixyeDpcIjNcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImhlaWdodFwiLGJlZ2luOlwiMHNcIixkdXI6XCIyc1wiLHZhbHVlczpcIjMwOzQ1OzEzOzgwOzU2OzcyOzQ1Ozc2OzM0OzIzOzY3OzMwXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pXSldKX19LFFTcGlubmVyQmFsbD17bmFtZTpcIlFTcGlubmVyQmFsbFwiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOntzdHJva2U6XCJjdXJyZW50Q29sb3JcIix3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMCAwIDU3IDU3XCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifX0sW3QoXCJnXCIse2F0dHJzOnt0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMSAxKVwiLFwic3Ryb2tlLXdpZHRoXCI6XCIyXCIsZmlsbDpcIm5vbmVcIixcImZpbGwtcnVsZVwiOlwiZXZlbm9kZFwifX0sW3QoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiNVwiLGN5OlwiNTBcIixyOlwiNVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiY3lcIixiZWdpbjpcIjBzXCIsZHVyOlwiMi4yc1wiLHZhbHVlczpcIjUwOzU7NTA7NTBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pLHQoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiY3hcIixiZWdpbjpcIjBzXCIsZHVyOlwiMi4yc1wiLHZhbHVlczpcIjU7Mjc7NDk7NVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjI3XCIsY3k6XCI1XCIscjpcIjVcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImN5XCIsYmVnaW46XCIwc1wiLGR1cjpcIjIuMnNcIixmcm9tOlwiNVwiLHRvOlwiNVwiLHZhbHVlczpcIjU7NTA7NTA7NVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSksdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJjeFwiLGJlZ2luOlwiMHNcIixkdXI6XCIyLjJzXCIsZnJvbTpcIjI3XCIsdG86XCIyN1wiLHZhbHVlczpcIjI3OzQ5OzU7MjdcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCI0OVwiLGN5OlwiNTBcIixyOlwiNVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiY3lcIixiZWdpbjpcIjBzXCIsZHVyOlwiMi4yc1wiLHZhbHVlczpcIjUwOzUwOzU7NTBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pLHQoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiY3hcIixmcm9tOlwiNDlcIix0bzpcIjQ5XCIsYmVnaW46XCIwc1wiLGR1cjpcIjIuMnNcIix2YWx1ZXM6XCI0OTs1OzI3OzQ5XCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pXSldKX19LFFTcGlubmVyQmFycz17bmFtZTpcIlFTcGlubmVyQmFyc1wiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOntmaWxsOlwiY3VycmVudENvbG9yXCIsd2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjAgMCAxMzUgMTQwXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifX0sW3QoXCJyZWN0XCIse2F0dHJzOnt5OlwiMTBcIix3aWR0aDpcIjE1XCIsaGVpZ2h0OlwiMTIwXCIscng6XCI2XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJoZWlnaHRcIixiZWdpbjpcIjAuNXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjEyMDsxMTA7MTAwOzkwOzgwOzcwOzYwOzUwOzQwOzE0MDsxMjBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pLHQoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwieVwiLGJlZ2luOlwiMC41c1wiLGR1cjpcIjFzXCIsdmFsdWVzOlwiMTA7MTU7MjA7MjU7MzA7MzU7NDA7NDU7NTA7MDsxMFwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwicmVjdFwiLHthdHRyczp7eDpcIjMwXCIseTpcIjEwXCIsd2lkdGg6XCIxNVwiLGhlaWdodDpcIjEyMFwiLHJ4OlwiNlwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiaGVpZ2h0XCIsYmVnaW46XCIwLjI1c1wiLGR1cjpcIjFzXCIsdmFsdWVzOlwiMTIwOzExMDsxMDA7OTA7ODA7NzA7NjA7NTA7NDA7MTQwOzEyMFwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSksdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ5XCIsYmVnaW46XCIwLjI1c1wiLGR1cjpcIjFzXCIsdmFsdWVzOlwiMTA7MTU7MjA7MjU7MzA7MzU7NDA7NDU7NTA7MDsxMFwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwicmVjdFwiLHthdHRyczp7eDpcIjYwXCIsd2lkdGg6XCIxNVwiLGhlaWdodDpcIjE0MFwiLHJ4OlwiNlwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiaGVpZ2h0XCIsYmVnaW46XCIwc1wiLGR1cjpcIjFzXCIsdmFsdWVzOlwiMTIwOzExMDsxMDA7OTA7ODA7NzA7NjA7NTA7NDA7MTQwOzEyMFwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSksdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ5XCIsYmVnaW46XCIwc1wiLGR1cjpcIjFzXCIsdmFsdWVzOlwiMTA7MTU7MjA7MjU7MzA7MzU7NDA7NDU7NTA7MDsxMFwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwicmVjdFwiLHthdHRyczp7eDpcIjkwXCIseTpcIjEwXCIsd2lkdGg6XCIxNVwiLGhlaWdodDpcIjEyMFwiLHJ4OlwiNlwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiaGVpZ2h0XCIsYmVnaW46XCIwLjI1c1wiLGR1cjpcIjFzXCIsdmFsdWVzOlwiMTIwOzExMDsxMDA7OTA7ODA7NzA7NjA7NTA7NDA7MTQwOzEyMFwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSksdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ5XCIsYmVnaW46XCIwLjI1c1wiLGR1cjpcIjFzXCIsdmFsdWVzOlwiMTA7MTU7MjA7MjU7MzA7MzU7NDA7NDU7NTA7MDsxMFwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwicmVjdFwiLHthdHRyczp7eDpcIjEyMFwiLHk6XCIxMFwiLHdpZHRoOlwiMTVcIixoZWlnaHQ6XCIxMjBcIixyeDpcIjZcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImhlaWdodFwiLGJlZ2luOlwiMC41c1wiLGR1cjpcIjFzXCIsdmFsdWVzOlwiMTIwOzExMDsxMDA7OTA7ODA7NzA7NjA7NTA7NDA7MTQwOzEyMFwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSksdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ5XCIsYmVnaW46XCIwLjVzXCIsZHVyOlwiMXNcIix2YWx1ZXM6XCIxMDsxNTsyMDsyNTszMDszNTs0MDs0NTs1MDswOzEwXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pXSl9fSxRU3Bpbm5lckNpcmNsZXM9e25hbWU6XCJRU3Bpbm5lckNpcmNsZXNcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7ZmlsbDpcImN1cnJlbnRDb2xvclwiLHdpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHZpZXdCb3g6XCIwIDAgMTM1IDEzNVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn19LFt0KFwicGF0aFwiLHthdHRyczp7ZDpcIk02Ny40NDcgNThjNS41MjMgMCAxMC00LjQ3NyAxMC0xMHMtNC40NzctMTAtMTAtMTAtMTAgNC40NzctMTAgMTAgNC40NzcgMTAgMTAgMTB6bTkuNDQ4IDkuNDQ3YzAgNS41MjMgNC40NzcgMTAgMTAgMTAgNS41MjIgMCAxMC00LjQ3NyAxMC0xMHMtNC40NzgtMTAtMTAtMTBjLTUuNTIzIDAtMTAgNC40NzctMTAgMTB6bS05LjQ0OCA5LjQ0OGMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMCAwIDUuNTIyIDQuNDc3IDEwIDEwIDEwczEwLTQuNDc4IDEwLTEwYzAtNS41MjMtNC40NzctMTAtMTAtMTB6TTU4IDY3LjQ0N2MwLTUuNTIzLTQuNDc3LTEwLTEwLTEwcy0xMCA0LjQ3Ny0xMCAxMCA0LjQ3NyAxMCAxMCAxMCAxMC00LjQ3NyAxMC0xMHpcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJyb3RhdGVcIixmcm9tOlwiMCA2NyA2N1wiLHRvOlwiLTM2MCA2NyA2N1wiLGR1cjpcIjIuNXNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJwYXRoXCIse2F0dHJzOntkOlwiTTI4LjE5IDQwLjMxYzYuNjI3IDAgMTItNS4zNzQgMTItMTIgMC02LjYyOC01LjM3My0xMi0xMi0xMi02LjYyOCAwLTEyIDUuMzcyLTEyIDEyIDAgNi42MjYgNS4zNzIgMTIgMTIgMTJ6bTMwLjcyLTE5LjgyNWM0LjY4NiA0LjY4NyAxMi4yODQgNC42ODcgMTYuOTcgMCA0LjY4Ni00LjY4NiA0LjY4Ni0xMi4yODQgMC0xNi45Ny00LjY4Ni00LjY4Ny0xMi4yODQtNC42ODctMTYuOTcgMC00LjY4NyA0LjY4Ni00LjY4NyAxMi4yODQgMCAxNi45N3ptMzUuNzQgNy43MDVjMCA2LjYyNyA1LjM3IDEyIDEyIDEyIDYuNjI2IDAgMTItNS4zNzMgMTItMTIgMC02LjYyOC01LjM3NC0xMi0xMi0xMi02LjYzIDAtMTIgNS4zNzItMTIgMTJ6bTE5LjgyMiAzMC43MmMtNC42ODYgNC42ODYtNC42ODYgMTIuMjg0IDAgMTYuOTcgNC42ODcgNC42ODYgMTIuMjg1IDQuNjg2IDE2Ljk3IDAgNC42ODctNC42ODYgNC42ODctMTIuMjg0IDAtMTYuOTctNC42ODUtNC42ODctMTIuMjgzLTQuNjg3LTE2Ljk3IDB6bS03LjcwNCAzNS43NGMtNi42MjcgMC0xMiA1LjM3LTEyIDEyIDAgNi42MjYgNS4zNzMgMTIgMTIgMTJzMTItNS4zNzQgMTItMTJjMC02LjYzLTUuMzczLTEyLTEyLTEyem0tMzAuNzIgMTkuODIyYy00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcgMC00LjY4NiA0LjY4Ny00LjY4NiAxMi4yODUgMCAxNi45NyA0LjY4NiA0LjY4NyAxMi4yODQgNC42ODcgMTYuOTcgMCA0LjY4Ny00LjY4NSA0LjY4Ny0xMi4yODMgMC0xNi45N3ptLTM1Ljc0LTcuNzA0YzAtNi42MjctNS4zNzItMTItMTItMTItNi42MjYgMC0xMiA1LjM3My0xMiAxMnM1LjM3NCAxMiAxMiAxMmM2LjYyOCAwIDEyLTUuMzczIDEyLTEyem0tMTkuODIzLTMwLjcyYzQuNjg3LTQuNjg2IDQuNjg3LTEyLjI4NCAwLTE2Ljk3LTQuNjg2LTQuNjg2LTEyLjI4NC00LjY4Ni0xNi45NyAwLTQuNjg3IDQuNjg2LTQuNjg3IDEyLjI4NCAwIDE2Ljk3IDQuNjg2IDQuNjg3IDEyLjI4NCA0LjY4NyAxNi45NyAwelwifX0sW3QoXCJhbmltYXRlVHJhbnNmb3JtXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwidHJhbnNmb3JtXCIsdHlwZTpcInJvdGF0ZVwiLGZyb206XCIwIDY3IDY3XCIsdG86XCIzNjAgNjcgNjdcIixkdXI6XCI4c1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSldKX19LFFTcGlubmVyQ29tbWVudD17bmFtZTpcIlFTcGlubmVyQ29tbWVudFwiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOnt3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsdmlld0JveDpcIjAgMCAxMDAgMTAwXCIscHJlc2VydmVBc3BlY3RSYXRpbzpcInhNaWRZTWlkXCJ9fSxbdChcInJlY3RcIix7YXR0cnM6e3g6XCIwXCIseTpcIjBcIix3aWR0aDpcIjEwMFwiLGhlaWdodDpcIjEwMFwiLGZpbGw6XCJub25lXCJ9fSksdChcInBhdGhcIix7YXR0cnM6e2Q6XCJNNzgsMTlIMjJjLTYuNiwwLTEyLDUuNC0xMiwxMnYzMWMwLDYuNiw1LjQsMTIsMTIsMTJoMzcuMmMwLjQsMywxLjgsNS42LDMuNyw3LjZjMi40LDIuNSw1LjEsNC4xLDkuMSw0IGMtMS40LTIuMS0yLTcuMi0yLTEwLjNjMC0wLjQsMC0wLjgsMC0xLjNoOGM2LjYsMCwxMi01LjQsMTItMTJWMzFDOTAsMjQuNCw4NC42LDE5LDc4LDE5elwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn19KSx0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjMwXCIsY3k6XCI0N1wiLHI6XCI1XCIsZmlsbDpcIiNmZmZcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcIm9wYWNpdHlcIixmcm9tOlwiMFwiLHRvOlwiMVwiLHZhbHVlczpcIjA7MTsxXCIsa2V5VGltZXM6XCIwOzAuMjsxXCIsZHVyOlwiMXNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiNTBcIixjeTpcIjQ3XCIscjpcIjVcIixmaWxsOlwiI2ZmZlwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwib3BhY2l0eVwiLGZyb206XCIwXCIsdG86XCIxXCIsdmFsdWVzOlwiMDswOzE7MVwiLGtleVRpbWVzOlwiMDswLjI7MC40OzFcIixkdXI6XCIxc1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCI3MFwiLGN5OlwiNDdcIixyOlwiNVwiLGZpbGw6XCIjZmZmXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJvcGFjaXR5XCIsZnJvbTpcIjBcIix0bzpcIjFcIix2YWx1ZXM6XCIwOzA7MTsxXCIsa2V5VGltZXM6XCIwOzAuNDswLjY7MVwiLGR1cjpcIjFzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKV0pfX0sUVNwaW5uZXJDdWJlPXtuYW1lOlwiUVNwaW5uZXJDdWJlXCIsbWl4aW5zOlttaXhpbiQxXSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJzdmdcIix7c3RhdGljQ2xhc3M6XCJxLXNwaW5uZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e3dpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIix2aWV3Qm94OlwiMCAwIDEwMCAxMDBcIixwcmVzZXJ2ZUFzcGVjdFJhdGlvOlwieE1pZFlNaWRcIn19LFt0KFwicmVjdFwiLHthdHRyczp7eDpcIjBcIix5OlwiMFwiLHdpZHRoOlwiMTAwXCIsaGVpZ2h0OlwiMTAwXCIsZmlsbDpcIm5vbmVcIn19KSx0KFwiZ1wiLHthdHRyczp7dHJhbnNmb3JtOlwidHJhbnNsYXRlKDI1IDI1KVwifX0sW3QoXCJyZWN0XCIse2F0dHJzOnt4OlwiLTIwXCIseTpcIi0yMFwiLHdpZHRoOlwiNDBcIixoZWlnaHQ6XCI0MFwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIixvcGFjaXR5OlwiMC45XCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwic2NhbGVcIixmcm9tOlwiMS41XCIsdG86XCIxXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCIsYmVnaW46XCIwc1wiLGR1cjpcIjFzXCIsY2FsY01vZGU6XCJzcGxpbmVcIixrZXlTcGxpbmVzOlwiMC4yIDAuOCAwLjIgMC44XCIsa2V5VGltZXM6XCIwOzFcIn19KV0pXSksdChcImdcIix7YXR0cnM6e3RyYW5zZm9ybTpcInRyYW5zbGF0ZSg3NSAyNSlcIn19LFt0KFwicmVjdFwiLHthdHRyczp7eDpcIi0yMFwiLHk6XCItMjBcIix3aWR0aDpcIjQwXCIsaGVpZ2h0OlwiNDBcIixmaWxsOlwiY3VycmVudENvbG9yXCIsb3BhY2l0eTpcIjAuOFwifX0sW3QoXCJhbmltYXRlVHJhbnNmb3JtXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwidHJhbnNmb3JtXCIsdHlwZTpcInNjYWxlXCIsZnJvbTpcIjEuNVwiLHRvOlwiMVwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwiLGJlZ2luOlwiMC4xc1wiLGR1cjpcIjFzXCIsY2FsY01vZGU6XCJzcGxpbmVcIixrZXlTcGxpbmVzOlwiMC4yIDAuOCAwLjIgMC44XCIsa2V5VGltZXM6XCIwOzFcIn19KV0pXSksdChcImdcIix7YXR0cnM6e3RyYW5zZm9ybTpcInRyYW5zbGF0ZSgyNSA3NSlcIn19LFt0KFwicmVjdFwiLHtzdGF0aWNDbGFzczpcImN1YmVcIixhdHRyczp7eDpcIi0yMFwiLHk6XCItMjBcIix3aWR0aDpcIjQwXCIsaGVpZ2h0OlwiNDBcIixmaWxsOlwiY3VycmVudENvbG9yXCIsb3BhY2l0eTpcIjAuN1wifX0sW3QoXCJhbmltYXRlVHJhbnNmb3JtXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwidHJhbnNmb3JtXCIsdHlwZTpcInNjYWxlXCIsZnJvbTpcIjEuNVwiLHRvOlwiMVwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwiLGJlZ2luOlwiMC4zc1wiLGR1cjpcIjFzXCIsY2FsY01vZGU6XCJzcGxpbmVcIixrZXlTcGxpbmVzOlwiMC4yIDAuOCAwLjIgMC44XCIsa2V5VGltZXM6XCIwOzFcIn19KV0pXSksdChcImdcIix7YXR0cnM6e3RyYW5zZm9ybTpcInRyYW5zbGF0ZSg3NSA3NSlcIn19LFt0KFwicmVjdFwiLHtzdGF0aWNDbGFzczpcImN1YmVcIixhdHRyczp7eDpcIi0yMFwiLHk6XCItMjBcIix3aWR0aDpcIjQwXCIsaGVpZ2h0OlwiNDBcIixmaWxsOlwiY3VycmVudENvbG9yXCIsb3BhY2l0eTpcIjAuNlwifX0sW3QoXCJhbmltYXRlVHJhbnNmb3JtXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwidHJhbnNmb3JtXCIsdHlwZTpcInNjYWxlXCIsZnJvbTpcIjEuNVwiLHRvOlwiMVwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwiLGJlZ2luOlwiMC4yc1wiLGR1cjpcIjFzXCIsY2FsY01vZGU6XCJzcGxpbmVcIixrZXlTcGxpbmVzOlwiMC4yIDAuOCAwLjIgMC44XCIsa2V5VGltZXM6XCIwOzFcIn19KV0pXSldKX19LFFTcGlubmVyRG90cz17bmFtZTpcIlFTcGlubmVyRG90c1wiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOntmaWxsOlwiY3VycmVudENvbG9yXCIsd2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjAgMCAxMjAgMzBcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9fSxbdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCIxNVwiLGN5OlwiMTVcIixyOlwiMTVcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInJcIixmcm9tOlwiMTVcIix0bzpcIjE1XCIsYmVnaW46XCIwc1wiLGR1cjpcIjAuOHNcIix2YWx1ZXM6XCIxNTs5OzE1XCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImZpbGwtb3BhY2l0eVwiLGZyb206XCIxXCIsdG86XCIxXCIsYmVnaW46XCIwc1wiLGR1cjpcIjAuOHNcIix2YWx1ZXM6XCIxOy41OzFcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCI2MFwiLGN5OlwiMTVcIixyOlwiOVwiLFwiZmlsbC1vcGFjaXR5XCI6XCIuM1wifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiclwiLGZyb206XCI5XCIsdG86XCI5XCIsYmVnaW46XCIwc1wiLGR1cjpcIjAuOHNcIix2YWx1ZXM6XCI5OzE1OzlcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pLHQoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiZmlsbC1vcGFjaXR5XCIsZnJvbTpcIi41XCIsdG86XCIuNVwiLGJlZ2luOlwiMHNcIixkdXI6XCIwLjhzXCIsdmFsdWVzOlwiLjU7MTsuNVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjEwNVwiLGN5OlwiMTVcIixyOlwiMTVcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInJcIixmcm9tOlwiMTVcIix0bzpcIjE1XCIsYmVnaW46XCIwc1wiLGR1cjpcIjAuOHNcIix2YWx1ZXM6XCIxNTs5OzE1XCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImZpbGwtb3BhY2l0eVwiLGZyb206XCIxXCIsdG86XCIxXCIsYmVnaW46XCIwc1wiLGR1cjpcIjAuOHNcIix2YWx1ZXM6XCIxOy41OzFcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSldKX19LFFTcGlubmVyRmFjZWJvb2s9e25hbWU6XCJRU3Bpbm5lckZhY2Vib29rXCIsbWl4aW5zOlttaXhpbiQxXSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJzdmdcIix7c3RhdGljQ2xhc3M6XCJxLXNwaW5uZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e3dpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHZpZXdCb3g6XCIwIDAgMTAwIDEwMFwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixwcmVzZXJ2ZUFzcGVjdFJhdGlvOlwieE1pZFlNaWRcIn19LFt0KFwiZ1wiLHthdHRyczp7dHJhbnNmb3JtOlwidHJhbnNsYXRlKDIwIDUwKVwifX0sW3QoXCJyZWN0XCIse2F0dHJzOnt4OlwiLTEwXCIseTpcIi0zMFwiLHdpZHRoOlwiMjBcIixoZWlnaHQ6XCI2MFwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIixvcGFjaXR5OlwiMC42XCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwic2NhbGVcIixmcm9tOlwiMlwiLHRvOlwiMVwiLGJlZ2luOlwiMHNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIixkdXI6XCIxc1wiLGNhbGNNb2RlOlwic3BsaW5lXCIsa2V5U3BsaW5lczpcIjAuMSAwLjkgMC40IDFcIixrZXlUaW1lczpcIjA7MVwiLHZhbHVlczpcIjI7MVwifX0pXSldKSx0KFwiZ1wiLHthdHRyczp7dHJhbnNmb3JtOlwidHJhbnNsYXRlKDUwIDUwKVwifX0sW3QoXCJyZWN0XCIse2F0dHJzOnt4OlwiLTEwXCIseTpcIi0zMFwiLHdpZHRoOlwiMjBcIixoZWlnaHQ6XCI2MFwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIixvcGFjaXR5OlwiMC44XCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwic2NhbGVcIixmcm9tOlwiMlwiLHRvOlwiMVwiLGJlZ2luOlwiMC4xc1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwiLGR1cjpcIjFzXCIsY2FsY01vZGU6XCJzcGxpbmVcIixrZXlTcGxpbmVzOlwiMC4xIDAuOSAwLjQgMVwiLGtleVRpbWVzOlwiMDsxXCIsdmFsdWVzOlwiMjsxXCJ9fSldKV0pLHQoXCJnXCIse2F0dHJzOnt0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoODAgNTApXCJ9fSxbdChcInJlY3RcIix7YXR0cnM6e3g6XCItMTBcIix5OlwiLTMwXCIsd2lkdGg6XCIyMFwiLGhlaWdodDpcIjYwXCIsZmlsbDpcImN1cnJlbnRDb2xvclwiLG9wYWNpdHk6XCIwLjlcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJzY2FsZVwiLGZyb206XCIyXCIsdG86XCIxXCIsYmVnaW46XCIwLjJzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCIsZHVyOlwiMXNcIixjYWxjTW9kZTpcInNwbGluZVwiLGtleVNwbGluZXM6XCIwLjEgMC45IDAuNCAxXCIsa2V5VGltZXM6XCIwOzFcIix2YWx1ZXM6XCIyOzFcIn19KV0pXSldKX19LFFTcGlubmVyR2VhcnM9e25hbWU6XCJRU3Bpbm5lckdlYXJzXCIsbWl4aW5zOlttaXhpbiQxXSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJzdmdcIix7c3RhdGljQ2xhc3M6XCJxLXNwaW5uZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e3dpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHZpZXdCb3g6XCIwIDAgMTAwIDEwMFwiLHByZXNlcnZlQXNwZWN0UmF0aW86XCJ4TWlkWU1pZFwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn19LFt0KFwiZ1wiLHthdHRyczp7dHJhbnNmb3JtOlwidHJhbnNsYXRlKC0yMCwtMjApXCJ9fSxbdChcInBhdGhcIix7YXR0cnM6e2Q6XCJNNzkuOSw1Mi42QzgwLDUxLjgsODAsNTAuOSw4MCw1MHMwLTEuOC0wLjEtMi42bC01LjEtMC40Yy0wLjMtMi40LTAuOS00LjYtMS44LTYuN2w0LjItMi45Yy0wLjctMS42LTEuNi0zLjEtMi42LTQuNSBMNzAsMzVjLTEuNC0xLjktMy4xLTMuNS00LjktNC45bDIuMi00LjZjLTEuNC0xLTIuOS0xLjktNC41LTIuNkw1OS44LDI3Yy0yLjEtMC45LTQuNC0xLjUtNi43LTEuOGwtMC40LTUuMUM1MS44LDIwLDUwLjksMjAsNTAsMjAgcy0xLjgsMC0yLjYsMC4xbC0wLjQsNS4xYy0yLjQsMC4zLTQuNiwwLjktNi43LDEuOGwtMi45LTQuMWMtMS42LDAuNy0zLjEsMS42LTQuNSwyLjZsMi4xLDQuNmMtMS45LDEuNC0zLjUsMy4xLTUsNC45bC00LjUtMi4xIGMtMSwxLjQtMS45LDIuOS0yLjYsNC41bDQuMSwyLjljLTAuOSwyLjEtMS41LDQuNC0xLjgsNi44bC01LDAuNEMyMCw0OC4yLDIwLDQ5LjEsMjAsNTBzMCwxLjgsMC4xLDIuNmw1LDAuNCBjMC4zLDIuNCwwLjksNC43LDEuOCw2LjhsLTQuMSwyLjljMC43LDEuNiwxLjYsMy4xLDIuNiw0LjVsNC41LTIuMWMxLjQsMS45LDMuMSwzLjUsNSw0LjlsLTIuMSw0LjZjMS40LDEsMi45LDEuOSw0LjUsMi42bDIuOS00LjEgYzIuMSwwLjksNC40LDEuNSw2LjcsMS44bDAuNCw1LjFDNDguMiw4MCw0OS4xLDgwLDUwLDgwczEuOCwwLDIuNi0wLjFsMC40LTUuMWMyLjMtMC4zLDQuNi0wLjksNi43LTEuOGwyLjksNC4yIGMxLjYtMC43LDMuMS0xLjYsNC41LTIuNkw2NSw2OS45YzEuOS0xLjQsMy41LTMsNC45LTQuOWw0LjYsMi4yYzEtMS40LDEuOS0yLjksMi42LTQuNUw3Myw1OS44YzAuOS0yLjEsMS41LTQuNCwxLjgtNi43TDc5LjksNTIuNiB6IE01MCw2NWMtOC4zLDAtMTUtNi43LTE1LTE1YzAtOC4zLDYuNy0xNSwxNS0xNXMxNSw2LjcsMTUsMTVDNjUsNTguMyw1OC4zLDY1LDUwLDY1elwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJyb3RhdGVcIixmcm9tOlwiOTAgNTAgNTBcIix0bzpcIjAgNTAgNTBcIixkdXI6XCIxc1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSldKSx0KFwiZ1wiLHthdHRyczp7dHJhbnNmb3JtOlwidHJhbnNsYXRlKDIwLDIwKSByb3RhdGUoMTUgNTAgNTApXCJ9fSxbdChcInBhdGhcIix7YXR0cnM6e2Q6XCJNNzkuOSw1Mi42QzgwLDUxLjgsODAsNTAuOSw4MCw1MHMwLTEuOC0wLjEtMi42bC01LjEtMC40Yy0wLjMtMi40LTAuOS00LjYtMS44LTYuN2w0LjItMi45Yy0wLjctMS42LTEuNi0zLjEtMi42LTQuNSBMNzAsMzVjLTEuNC0xLjktMy4xLTMuNS00LjktNC45bDIuMi00LjZjLTEuNC0xLTIuOS0xLjktNC41LTIuNkw1OS44LDI3Yy0yLjEtMC45LTQuNC0xLjUtNi43LTEuOGwtMC40LTUuMUM1MS44LDIwLDUwLjksMjAsNTAsMjAgcy0xLjgsMC0yLjYsMC4xbC0wLjQsNS4xYy0yLjQsMC4zLTQuNiwwLjktNi43LDEuOGwtMi45LTQuMWMtMS42LDAuNy0zLjEsMS42LTQuNSwyLjZsMi4xLDQuNmMtMS45LDEuNC0zLjUsMy4xLTUsNC45bC00LjUtMi4xIGMtMSwxLjQtMS45LDIuOS0yLjYsNC41bDQuMSwyLjljLTAuOSwyLjEtMS41LDQuNC0xLjgsNi44bC01LDAuNEMyMCw0OC4yLDIwLDQ5LjEsMjAsNTBzMCwxLjgsMC4xLDIuNmw1LDAuNCBjMC4zLDIuNCwwLjksNC43LDEuOCw2LjhsLTQuMSwyLjljMC43LDEuNiwxLjYsMy4xLDIuNiw0LjVsNC41LTIuMWMxLjQsMS45LDMuMSwzLjUsNSw0LjlsLTIuMSw0LjZjMS40LDEsMi45LDEuOSw0LjUsMi42bDIuOS00LjEgYzIuMSwwLjksNC40LDEuNSw2LjcsMS44bDAuNCw1LjFDNDguMiw4MCw0OS4xLDgwLDUwLDgwczEuOCwwLDIuNi0wLjFsMC40LTUuMWMyLjMtMC4zLDQuNi0wLjksNi43LTEuOGwyLjksNC4yIGMxLjYtMC43LDMuMS0xLjYsNC41LTIuNkw2NSw2OS45YzEuOS0xLjQsMy41LTMsNC45LTQuOWw0LjYsMi4yYzEtMS40LDEuOS0yLjksMi42LTQuNUw3Myw1OS44YzAuOS0yLjEsMS41LTQuNCwxLjgtNi43TDc5LjksNTIuNiB6IE01MCw2NWMtOC4zLDAtMTUtNi43LTE1LTE1YzAtOC4zLDYuNy0xNSwxNS0xNXMxNSw2LjcsMTUsMTVDNjUsNTguMyw1OC4zLDY1LDUwLDY1elwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJyb3RhdGVcIixmcm9tOlwiMCA1MCA1MFwiLHRvOlwiOTAgNTAgNTBcIixkdXI6XCIxc1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSldKV0pfX0sUVNwaW5uZXJHcmlkPXtuYW1lOlwiUVNwaW5uZXJHcmlkXCIsbWl4aW5zOlttaXhpbiQxXSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJzdmdcIix7c3RhdGljQ2xhc3M6XCJxLXNwaW5uZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e2ZpbGw6XCJjdXJyZW50Q29sb3JcIix3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMCAwIDEwNSAxMDVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9fSxbdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCIxMi41XCIsY3k6XCIxMi41XCIscjpcIjEyLjVcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImZpbGwtb3BhY2l0eVwiLGJlZ2luOlwiMHNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjE7LjI7MVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjEyLjVcIixjeTpcIjUyLjVcIixyOlwiMTIuNVwiLFwiZmlsbC1vcGFjaXR5XCI6XCIuNVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiZmlsbC1vcGFjaXR5XCIsYmVnaW46XCIxMDBtc1wiLGR1cjpcIjFzXCIsdmFsdWVzOlwiMTsuMjsxXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiNTIuNVwiLGN5OlwiMTIuNVwiLHI6XCIxMi41XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJmaWxsLW9wYWNpdHlcIixiZWdpbjpcIjMwMG1zXCIsZHVyOlwiMXNcIix2YWx1ZXM6XCIxOy4yOzFcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCI1Mi41XCIsY3k6XCI1Mi41XCIscjpcIjEyLjVcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImZpbGwtb3BhY2l0eVwiLGJlZ2luOlwiNjAwbXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjE7LjI7MVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjkyLjVcIixjeTpcIjEyLjVcIixyOlwiMTIuNVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiZmlsbC1vcGFjaXR5XCIsYmVnaW46XCI4MDBtc1wiLGR1cjpcIjFzXCIsdmFsdWVzOlwiMTsuMjsxXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiOTIuNVwiLGN5OlwiNTIuNVwiLHI6XCIxMi41XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJmaWxsLW9wYWNpdHlcIixiZWdpbjpcIjQwMG1zXCIsZHVyOlwiMXNcIix2YWx1ZXM6XCIxOy4yOzFcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCIxMi41XCIsY3k6XCI5Mi41XCIscjpcIjEyLjVcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImZpbGwtb3BhY2l0eVwiLGJlZ2luOlwiNzAwbXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjE7LjI7MVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjUyLjVcIixjeTpcIjkyLjVcIixyOlwiMTIuNVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiZmlsbC1vcGFjaXR5XCIsYmVnaW46XCI1MDBtc1wiLGR1cjpcIjFzXCIsdmFsdWVzOlwiMTsuMjsxXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiOTIuNVwiLGN5OlwiOTIuNVwiLHI6XCIxMi41XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJmaWxsLW9wYWNpdHlcIixiZWdpbjpcIjIwMG1zXCIsZHVyOlwiMXNcIix2YWx1ZXM6XCIxOy4yOzFcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSldKX19LFFTcGlubmVySGVhcnRzPXtuYW1lOlwiUVNwaW5uZXJIZWFydHNcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7ZmlsbDpcImN1cnJlbnRDb2xvclwiLHdpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHZpZXdCb3g6XCIwIDAgMTQwIDY0XCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifX0sW3QoXCJwYXRoXCIse2F0dHJzOntkOlwiTTMwLjI2MiA1Ny4wMkw3LjE5NSA0MC43MjNjLTUuODQtMy45NzYtNy41Ni0xMi4wNi0zLjg0Mi0xOC4wNjMgMy43MTUtNiAxMS40NjctNy42NSAxNy4zMDYtMy42OGw0LjUyIDMuNzYgMi42LTUuMjc0YzMuNzE2LTYuMDAyIDExLjQ3LTcuNjUgMTcuMzA0LTMuNjggNS44NCAzLjk3IDcuNTYgMTIuMDU0IDMuODQyIDE4LjA2MkwzNC40OSA1Ni4xMThjLS44OTcgMS41MTItMi43OTMgMS45MTUtNC4yMjguOXpcIixcImZpbGwtb3BhY2l0eVwiOlwiLjVcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImZpbGwtb3BhY2l0eVwiLGJlZ2luOlwiMHNcIixkdXI6XCIxLjRzXCIsdmFsdWVzOlwiMC41OzE7MC41XCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJwYXRoXCIse2F0dHJzOntkOlwiTTEwNS41MTIgNTYuMTJsLTE0LjQ0LTI0LjI3MmMtMy43MTYtNi4wMDgtMS45OTYtMTQuMDkzIDMuODQzLTE4LjA2MiA1LjgzNS0zLjk3IDEzLjU4OC0yLjMyMiAxNy4zMDYgMy42OGwyLjYgNS4yNzQgNC41Mi0zLjc2YzUuODQtMy45NyAxMy41OTMtMi4zMiAxNy4zMDggMy42OCAzLjcxOCA2LjAwMyAxLjk5OCAxNC4wODgtMy44NDIgMTguMDY0TDEwOS43NCA1Ny4wMmMtMS40MzQgMS4wMTQtMy4zMy42MS00LjIyOC0uOXpcIixcImZpbGwtb3BhY2l0eVwiOlwiLjVcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImZpbGwtb3BhY2l0eVwiLGJlZ2luOlwiMC43c1wiLGR1cjpcIjEuNHNcIix2YWx1ZXM6XCIwLjU7MTswLjVcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcInBhdGhcIix7YXR0cnM6e2Q6XCJNNjcuNDA4IDU3LjgzNGwtMjMuMDEtMjQuOThjLTUuODY0LTYuMTUtNS44NjQtMTYuMTA4IDAtMjIuMjQ4IDUuODYtNi4xNCAxNS4zNy02LjE0IDIxLjIzNCAwTDcwIDE2LjE2OGw0LjM2OC01LjU2MmM1Ljg2My02LjE0IDE1LjM3NS02LjE0IDIxLjIzNSAwIDUuODYzIDYuMTQgNS44NjMgMTYuMDk4IDAgMjIuMjQ3bC0yMy4wMDcgMjQuOThjLTEuNDMgMS41NTYtMy43NTcgMS41NTYtNS4xODggMHpcIn19KV0pfX0sUVNwaW5uZXJIb3VyZ2xhc3M9e25hbWU6XCJRU3Bpbm5lckhvdXJnbGFzc1wiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOnt3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMCAwIDEwMCAxMDBcIixwcmVzZXJ2ZUFzcGVjdFJhdGlvOlwieE1pZFlNaWRcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9fSxbdChcImdcIixbdChcInBhdGhcIix7c3RhdGljQ2xhc3M6XCJnbGFzc1wiLGF0dHJzOntmaWxsOlwibm9uZVwiLHN0cm9rZTpcImN1cnJlbnRDb2xvclwiLFwic3Ryb2tlLXdpZHRoXCI6XCI1XCIsXCJzdHJva2UtbWl0ZXJsaW1pdFwiOlwiMTBcIixkOlwiTTU4LjQsNTEuN2MtMC45LTAuOS0xLjQtMi0xLjQtMi4zczAuNS0wLjQsMS40LTEuNCBDNzAuOCw0My44LDc5LjgsMzAuNSw4MCwxNS41SDcwSDMwSDIwYzAuMiwxNSw5LjIsMjguMSwyMS42LDMyLjNjMC45LDAuOSwxLjQsMS4yLDEuNCwxLjVzLTAuNSwxLjYtMS40LDIuNSBDMjkuMiw1Ni4xLDIwLjIsNjkuNSwyMCw4NS41aDEwaDQwaDEwQzc5LjgsNjkuNSw3MC44LDU1LjksNTguNCw1MS43elwifX0pLHQoXCJjbGlwUGF0aFwiLHthdHRyczp7aWQ6XCJ1aWwtaG91cmdsYXNzLWNsaXAxXCJ9fSxbdChcInJlY3RcIix7c3RhdGljQ2xhc3M6XCJjbGlwXCIsYXR0cnM6e3g6XCIxNVwiLHk6XCIyMFwiLHdpZHRoOlwiNzBcIixoZWlnaHQ6XCIyNVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiaGVpZ2h0XCIsZnJvbTpcIjI1XCIsdG86XCIwXCIsZHVyOlwiMXNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIix2bGF1ZXM6XCIyNTswOzBcIixrZXlUaW1lczpcIjA7MC41OzFcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInlcIixmcm9tOlwiMjBcIix0bzpcIjQ1XCIsZHVyOlwiMXNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIix2bGF1ZXM6XCIyMDs0NTs0NVwiLGtleVRpbWVzOlwiMDswLjU7MVwifX0pXSldKSx0KFwiY2xpcFBhdGhcIix7YXR0cnM6e2lkOlwidWlsLWhvdXJnbGFzcy1jbGlwMlwifX0sW3QoXCJyZWN0XCIse3N0YXRpY0NsYXNzOlwiY2xpcFwiLGF0dHJzOnt4OlwiMTVcIix5OlwiNTVcIix3aWR0aDpcIjcwXCIsaGVpZ2h0OlwiMjVcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImhlaWdodFwiLGZyb206XCIwXCIsdG86XCIyNVwiLGR1cjpcIjFzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCIsdmxhdWVzOlwiMDsyNTsyNVwiLGtleVRpbWVzOlwiMDswLjU7MVwifX0pLHQoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwieVwiLGZyb206XCI4MFwiLHRvOlwiNTVcIixkdXI6XCIxc1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwiLHZsYXVlczpcIjgwOzU1OzU1XCIsa2V5VGltZXM6XCIwOzAuNTsxXCJ9fSldKV0pLHQoXCJwYXRoXCIse3N0YXRpY0NsYXNzOlwic2FuZFwiLGF0dHJzOntkOlwiTTI5LDIzYzMuMSwxMS40LDExLjMsMTkuNSwyMSwxOS41UzY3LjksMzQuNCw3MSwyM0gyOXpcIixcImNsaXAtcGF0aFwiOlwidXJsKCN1aWwtaG91cmdsYXNzLWNsaXAxKVwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn19KSx0KFwicGF0aFwiLHtzdGF0aWNDbGFzczpcInNhbmRcIixhdHRyczp7ZDpcIk03MS42LDc4Yy0zLTExLjYtMTEuNS0yMC0yMS41LTIwcy0xOC41LDguNC0yMS41LDIwSDcxLjZ6XCIsXCJjbGlwLXBhdGhcIjpcInVybCgjdWlsLWhvdXJnbGFzcy1jbGlwMilcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9fSksdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwicm90YXRlXCIsZnJvbTpcIjAgNTAgNTBcIix0bzpcIjE4MCA1MCA1MFwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwiLGR1cjpcIjFzXCIsdmFsdWVzOlwiMCA1MCA1MDswIDUwIDUwOzE4MCA1MCA1MFwiLGtleVRpbWVzOlwiMDswLjc7MVwifX0pXSldKX19LFFTcGlubmVySW5maW5pdHk9e25hbWU6XCJRU3Bpbm5lckluZmluaXR5XCIsbWl4aW5zOlttaXhpbiQxXSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJzdmdcIix7c3RhdGljQ2xhc3M6XCJxLXNwaW5uZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e3dpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHZpZXdCb3g6XCIwIDAgMTAwIDEwMFwiLHByZXNlcnZlQXNwZWN0UmF0aW86XCJ4TWlkWU1pZFwifX0sW3QoXCJwYXRoXCIse2F0dHJzOntkOlwiTTI0LjMsMzBDMTEuNCwzMCw1LDQzLjMsNSw1MHM2LjQsMjAsMTkuMywyMGMxOS4zLDAsMzIuMS00MCw1MS40LTQwQzg4LjYsMzAsOTUsNDMuMyw5NSw1MHMtNi40LDIwLTE5LjMsMjBDNTYuNCw3MCw0My42LDMwLDI0LjMsMzB6XCIsZmlsbDpcIm5vbmVcIixzdHJva2U6XCJjdXJyZW50Q29sb3JcIixcInN0cm9rZS13aWR0aFwiOlwiOFwiLFwic3Ryb2tlLWRhc2hhcnJheVwiOlwiMTAuNjkxMjA1MzQyNjEwNjc4IDEwLjY5MTIwNTM0MjYxMDY3OFwiLFwic3Ryb2tlLWRhc2hvZmZzZXRcIjpcIjBcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS1kYXNob2Zmc2V0XCIsZnJvbTpcIjBcIix0bzpcIjIxLjM4MjQxMDY4NTIyMTM1NVwiLGJlZ2luOlwiMFwiLGR1cjpcIjJzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCIsZmlsbDpcImZyZWV6ZVwifX0pXSldKX19LFFTcGlubmVyX2lvcz17bmFtZTpcIlFTcGlubmVySW9zXCIsbWl4aW5zOlttaXhpbiQxXSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJzdmdcIix7c3RhdGljQ2xhc3M6XCJxLXNwaW5uZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e3dpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHN0cm9rZTpcImN1cnJlbnRDb2xvclwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIix2aWV3Qm94OlwiMCAwIDY0IDY0XCJ9fSxbdChcImdcIix7YXR0cnM6e1wic3Ryb2tlLXdpZHRoXCI6XCI0XCIsXCJzdHJva2UtbGluZWNhcFwiOlwicm91bmRcIn19LFt0KFwibGluZVwiLHthdHRyczp7eTE6XCIxN1wiLHkyOlwiMjlcIix0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMzIsMzIpIHJvdGF0ZSgxODApXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2Utb3BhY2l0eVwiLGR1cjpcIjc1MG1zXCIsdmFsdWVzOlwiMTsuODU7Ljc7LjY1Oy41NTsuNDU7LjM1Oy4yNTsuMTU7LjE7MDsxXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwibGluZVwiLHthdHRyczp7eTE6XCIxN1wiLHkyOlwiMjlcIix0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMzIsMzIpIHJvdGF0ZSgyMTApXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2Utb3BhY2l0eVwiLGR1cjpcIjc1MG1zXCIsdmFsdWVzOlwiMDsxOy44NTsuNzsuNjU7LjU1Oy40NTsuMzU7LjI1Oy4xNTsuMTswXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwibGluZVwiLHthdHRyczp7eTE6XCIxN1wiLHkyOlwiMjlcIix0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMzIsMzIpIHJvdGF0ZSgyNDApXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2Utb3BhY2l0eVwiLGR1cjpcIjc1MG1zXCIsdmFsdWVzOlwiLjE7MDsxOy44NTsuNzsuNjU7LjU1Oy40NTsuMzU7LjI1Oy4xNTsuMVwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImxpbmVcIix7YXR0cnM6e3kxOlwiMTdcIix5MjpcIjI5XCIsdHJhbnNmb3JtOlwidHJhbnNsYXRlKDMyLDMyKSByb3RhdGUoMjcwKVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLW9wYWNpdHlcIixkdXI6XCI3NTBtc1wiLHZhbHVlczpcIi4xNTsuMTswOzE7Ljg1Oy43Oy42NTsuNTU7LjQ1Oy4zNTsuMjU7LjE1XCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwibGluZVwiLHthdHRyczp7eTE6XCIxN1wiLHkyOlwiMjlcIix0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMzIsMzIpIHJvdGF0ZSgzMDApXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2Utb3BhY2l0eVwiLGR1cjpcIjc1MG1zXCIsdmFsdWVzOlwiLjI1Oy4xNTsuMTswOzE7Ljg1Oy43Oy42NTsuNTU7LjQ1Oy4zNTsuMjVcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJsaW5lXCIse2F0dHJzOnt5MTpcIjE3XCIseTI6XCIyOVwiLHRyYW5zZm9ybTpcInRyYW5zbGF0ZSgzMiwzMikgcm90YXRlKDMzMClcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS1vcGFjaXR5XCIsZHVyOlwiNzUwbXNcIix2YWx1ZXM6XCIuMzU7LjI1Oy4xNTsuMTswOzE7Ljg1Oy43Oy42NTsuNTU7LjQ1Oy4zNVwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImxpbmVcIix7YXR0cnM6e3kxOlwiMTdcIix5MjpcIjI5XCIsdHJhbnNmb3JtOlwidHJhbnNsYXRlKDMyLDMyKSByb3RhdGUoMClcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS1vcGFjaXR5XCIsZHVyOlwiNzUwbXNcIix2YWx1ZXM6XCIuNDU7LjM1Oy4yNTsuMTU7LjE7MDsxOy44NTsuNzsuNjU7LjU1Oy40NVwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImxpbmVcIix7YXR0cnM6e3kxOlwiMTdcIix5MjpcIjI5XCIsdHJhbnNmb3JtOlwidHJhbnNsYXRlKDMyLDMyKSByb3RhdGUoMzApXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2Utb3BhY2l0eVwiLGR1cjpcIjc1MG1zXCIsdmFsdWVzOlwiLjU1Oy40NTsuMzU7LjI1Oy4xNTsuMTswOzE7Ljg1Oy43Oy42NTsuNTVcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJsaW5lXCIse2F0dHJzOnt5MTpcIjE3XCIseTI6XCIyOVwiLHRyYW5zZm9ybTpcInRyYW5zbGF0ZSgzMiwzMikgcm90YXRlKDYwKVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLW9wYWNpdHlcIixkdXI6XCI3NTBtc1wiLHZhbHVlczpcIi42NTsuNTU7LjQ1Oy4zNTsuMjU7LjE1Oy4xOzA7MTsuODU7Ljc7LjY1XCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwibGluZVwiLHthdHRyczp7eTE6XCIxN1wiLHkyOlwiMjlcIix0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMzIsMzIpIHJvdGF0ZSg5MClcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS1vcGFjaXR5XCIsZHVyOlwiNzUwbXNcIix2YWx1ZXM6XCIuNzsuNjU7LjU1Oy40NTsuMzU7LjI1Oy4xNTsuMTswOzE7Ljg1Oy43XCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwibGluZVwiLHthdHRyczp7eTE6XCIxN1wiLHkyOlwiMjlcIix0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMzIsMzIpIHJvdGF0ZSgxMjApXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2Utb3BhY2l0eVwiLGR1cjpcIjc1MG1zXCIsdmFsdWVzOlwiLjg1Oy43Oy42NTsuNTU7LjQ1Oy4zNTsuMjU7LjE1Oy4xOzA7MTsuODVcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJsaW5lXCIse2F0dHJzOnt5MTpcIjE3XCIseTI6XCIyOVwiLHRyYW5zZm9ybTpcInRyYW5zbGF0ZSgzMiwzMikgcm90YXRlKDE1MClcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS1vcGFjaXR5XCIsZHVyOlwiNzUwbXNcIix2YWx1ZXM6XCIxOy44NTsuNzsuNjU7LjU1Oy40NTsuMzU7LjI1Oy4xNTsuMTswOzFcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pXSldKX19LFFTcGlubmVyT3ZhbD17bmFtZTpcIlFTcGlubmVyT3ZhbFwiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOntzdHJva2U6XCJjdXJyZW50Q29sb3JcIix3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMCAwIDM4IDM4XCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifX0sW3QoXCJnXCIse2F0dHJzOnt0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMSAxKVwiLFwic3Ryb2tlLXdpZHRoXCI6XCIyXCIsZmlsbDpcIm5vbmVcIixcImZpbGwtcnVsZVwiOlwiZXZlbm9kZFwifX0sW3QoXCJjaXJjbGVcIix7YXR0cnM6e1wic3Ryb2tlLW9wYWNpdHlcIjpcIi41XCIsY3g6XCIxOFwiLGN5OlwiMThcIixyOlwiMThcIn19KSx0KFwicGF0aFwiLHthdHRyczp7ZDpcIk0zNiAxOGMwLTkuOTQtOC4wNi0xOC0xOC0xOFwifX0sW3QoXCJhbmltYXRlVHJhbnNmb3JtXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwidHJhbnNmb3JtXCIsdHlwZTpcInJvdGF0ZVwiLGZyb206XCIwIDE4IDE4XCIsdG86XCIzNjAgMTggMThcIixkdXI6XCIxc1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSldKV0pfX0sUVNwaW5uZXJQaWU9e25hbWU6XCJRU3Bpbm5lclBpZVwiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOnt3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMCAwIDEwMCAxMDBcIixwcmVzZXJ2ZUFzcGVjdFJhdGlvOlwieE1pZFlNaWRcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9fSxbdChcInBhdGhcIix7YXR0cnM6e2Q6XCJNMCA1MEE1MCA1MCAwIDAgMSA1MCAwTDUwIDUwTDAgNTBcIixmaWxsOlwiY3VycmVudENvbG9yXCIsb3BhY2l0eTpcIjAuNVwifX0sW3QoXCJhbmltYXRlVHJhbnNmb3JtXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwidHJhbnNmb3JtXCIsdHlwZTpcInJvdGF0ZVwiLGZyb206XCIwIDUwIDUwXCIsdG86XCIzNjAgNTAgNTBcIixkdXI6XCIwLjhzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwicGF0aFwiLHthdHRyczp7ZDpcIk01MCAwQTUwIDUwIDAgMCAxIDEwMCA1MEw1MCA1MEw1MCAwXCIsZmlsbDpcImN1cnJlbnRDb2xvclwiLG9wYWNpdHk6XCIwLjVcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJyb3RhdGVcIixmcm9tOlwiMCA1MCA1MFwiLHRvOlwiMzYwIDUwIDUwXCIsZHVyOlwiMS42c1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcInBhdGhcIix7YXR0cnM6e2Q6XCJNMTAwIDUwQTUwIDUwIDAgMCAxIDUwIDEwMEw1MCA1MEwxMDAgNTBcIixmaWxsOlwiY3VycmVudENvbG9yXCIsb3BhY2l0eTpcIjAuNVwifX0sW3QoXCJhbmltYXRlVHJhbnNmb3JtXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwidHJhbnNmb3JtXCIsdHlwZTpcInJvdGF0ZVwiLGZyb206XCIwIDUwIDUwXCIsdG86XCIzNjAgNTAgNTBcIixkdXI6XCIyLjRzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwicGF0aFwiLHthdHRyczp7ZDpcIk01MCAxMDBBNTAgNTAgMCAwIDEgMCA1MEw1MCA1MEw1MCAxMDBcIixmaWxsOlwiY3VycmVudENvbG9yXCIsb3BhY2l0eTpcIjAuNVwifX0sW3QoXCJhbmltYXRlVHJhbnNmb3JtXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwidHJhbnNmb3JtXCIsdHlwZTpcInJvdGF0ZVwiLGZyb206XCIwIDUwIDUwXCIsdG86XCIzNjAgNTAgNTBcIixkdXI6XCIzLjJzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKV0pfX0sUVNwaW5uZXJQdWZmPXtuYW1lOlwiUVNwaW5uZXJQdWZmXCIsbWl4aW5zOlttaXhpbiQxXSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJzdmdcIix7c3RhdGljQ2xhc3M6XCJxLXNwaW5uZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e3N0cm9rZTpcImN1cnJlbnRDb2xvclwiLHdpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHZpZXdCb3g6XCIwIDAgNDQgNDRcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9fSxbdChcImdcIix7YXR0cnM6e2ZpbGw6XCJub25lXCIsXCJmaWxsLXJ1bGVcIjpcImV2ZW5vZGRcIixcInN0cm9rZS13aWR0aFwiOlwiMlwifX0sW3QoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiMjJcIixjeTpcIjIyXCIscjpcIjFcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInJcIixiZWdpbjpcIjBzXCIsZHVyOlwiMS44c1wiLHZhbHVlczpcIjE7IDIwXCIsY2FsY01vZGU6XCJzcGxpbmVcIixrZXlUaW1lczpcIjA7IDFcIixrZXlTcGxpbmVzOlwiMC4xNjUsIDAuODQsIDAuNDQsIDFcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS1vcGFjaXR5XCIsYmVnaW46XCIwc1wiLGR1cjpcIjEuOHNcIix2YWx1ZXM6XCIxOyAwXCIsY2FsY01vZGU6XCJzcGxpbmVcIixrZXlUaW1lczpcIjA7IDFcIixrZXlTcGxpbmVzOlwiMC4zLCAwLjYxLCAwLjM1NSwgMVwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCIyMlwiLGN5OlwiMjJcIixyOlwiMVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiclwiLGJlZ2luOlwiLTAuOXNcIixkdXI6XCIxLjhzXCIsdmFsdWVzOlwiMTsgMjBcIixjYWxjTW9kZTpcInNwbGluZVwiLGtleVRpbWVzOlwiMDsgMVwiLGtleVNwbGluZXM6XCIwLjE2NSwgMC44NCwgMC40NCwgMVwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pLHQoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLW9wYWNpdHlcIixiZWdpbjpcIi0wLjlzXCIsZHVyOlwiMS44c1wiLHZhbHVlczpcIjE7IDBcIixjYWxjTW9kZTpcInNwbGluZVwiLGtleVRpbWVzOlwiMDsgMVwiLGtleVNwbGluZXM6XCIwLjMsIDAuNjEsIDAuMzU1LCAxXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKV0pXSl9fSxRU3Bpbm5lclJhZGlvPXtuYW1lOlwiUVNwaW5uZXJSYWRpb1wiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOnt3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMCAwIDEwMCAxMDBcIixwcmVzZXJ2ZUFzcGVjdFJhdGlvOlwieE1pZFlNaWRcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9fSxbdChcImdcIix7YXR0cnM6e3RyYW5zZm9ybTpcInNjYWxlKDAuNTUpXCJ9fSxbdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCIzMFwiLGN5OlwiMTUwXCIscjpcIjMwXCIsZmlsbDpcImN1cnJlbnRDb2xvclwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwib3BhY2l0eVwiLGZyb206XCIwXCIsdG86XCIxXCIsZHVyOlwiMXNcIixiZWdpbjpcIjBcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIixrZXlUaW1lczpcIjA7MC41OzFcIix2YWx1ZXM6XCIwOzE7MVwifX0pXSksdChcInBhdGhcIix7YXR0cnM6e2Q6XCJNOTAsMTUwaDMwYzAtNDkuNy00MC4zLTkwLTkwLTkwdjMwQzYzLjEsOTAsOTAsMTE2LjksOTAsMTUwelwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcIm9wYWNpdHlcIixmcm9tOlwiMFwiLHRvOlwiMVwiLGR1cjpcIjFzXCIsYmVnaW46XCIwLjFcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIixrZXlUaW1lczpcIjA7MC41OzFcIix2YWx1ZXM6XCIwOzE7MVwifX0pXSksdChcInBhdGhcIix7YXR0cnM6e2Q6XCJNMTUwLDE1MGgzMEMxODAsNjcuMiwxMTIuOCwwLDMwLDB2MzBDOTYuMywzMCwxNTAsODMuNywxNTAsMTUwelwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcIm9wYWNpdHlcIixmcm9tOlwiMFwiLHRvOlwiMVwiLGR1cjpcIjFzXCIsYmVnaW46XCIwLjJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIixrZXlUaW1lczpcIjA7MC41OzFcIix2YWx1ZXM6XCIwOzE7MVwifX0pXSldKV0pfX0sUVNwaW5uZXJSaW5ncz17bmFtZTpcIlFTcGlubmVyUmluZ3NcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7c3Ryb2tlOlwiY3VycmVudENvbG9yXCIsd2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjAgMCA0NSA0NVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn19LFt0KFwiZ1wiLHthdHRyczp7ZmlsbDpcIm5vbmVcIixcImZpbGwtcnVsZVwiOlwiZXZlbm9kZFwiLHRyYW5zZm9ybTpcInRyYW5zbGF0ZSgxIDEpXCIsXCJzdHJva2Utd2lkdGhcIjpcIjJcIn19LFt0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjIyXCIsY3k6XCIyMlwiLHI6XCI2XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJyXCIsYmVnaW46XCIxLjVzXCIsZHVyOlwiM3NcIix2YWx1ZXM6XCI2OzIyXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS1vcGFjaXR5XCIsYmVnaW46XCIxLjVzXCIsZHVyOlwiM3NcIix2YWx1ZXM6XCIxOzBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pLHQoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLXdpZHRoXCIsYmVnaW46XCIxLjVzXCIsZHVyOlwiM3NcIix2YWx1ZXM6XCIyOzBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCIyMlwiLGN5OlwiMjJcIixyOlwiNlwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiclwiLGJlZ2luOlwiM3NcIixkdXI6XCIzc1wiLHZhbHVlczpcIjY7MjJcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pLHQoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLW9wYWNpdHlcIixiZWdpbjpcIjNzXCIsZHVyOlwiM3NcIix2YWx1ZXM6XCIxOzBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pLHQoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLXdpZHRoXCIsYmVnaW46XCIzc1wiLGR1cjpcIjNzXCIsdmFsdWVzOlwiMjswXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiMjJcIixjeTpcIjIyXCIscjpcIjhcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInJcIixiZWdpbjpcIjBzXCIsZHVyOlwiMS41c1wiLHZhbHVlczpcIjY7MTsyOzM7NDs1OzZcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSldKV0pfX0sUVNwaW5uZXJUYWlsPXtuYW1lOlwiUVNwaW5uZXJUYWlsXCIsbWl4aW5zOlttaXhpbiQxXSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJzdmdcIix7c3RhdGljQ2xhc3M6XCJxLXNwaW5uZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e3dpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHZpZXdCb3g6XCIwIDAgMzggMzhcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9fSxbdChcImRlZnNcIixbdChcImxpbmVhckdyYWRpZW50XCIse2F0dHJzOnt4MTpcIjguMDQyJVwiLHkxOlwiMCVcIix4MjpcIjY1LjY4MiVcIix5MjpcIjIzLjg2NSVcIixpZDpcImFcIn19LFt0KFwic3RvcFwiLHthdHRyczp7XCJzdG9wLWNvbG9yXCI6XCJjdXJyZW50Q29sb3JcIixcInN0b3Atb3BhY2l0eVwiOlwiMFwiLG9mZnNldDpcIjAlXCJ9fSksdChcInN0b3BcIix7YXR0cnM6e1wic3RvcC1jb2xvclwiOlwiY3VycmVudENvbG9yXCIsXCJzdG9wLW9wYWNpdHlcIjpcIi42MzFcIixvZmZzZXQ6XCI2My4xNDYlXCJ9fSksdChcInN0b3BcIix7YXR0cnM6e1wic3RvcC1jb2xvclwiOlwiY3VycmVudENvbG9yXCIsb2Zmc2V0OlwiMTAwJVwifX0pXSldKSx0KFwiZ1wiLHthdHRyczp7dHJhbnNmb3JtOlwidHJhbnNsYXRlKDEgMSlcIixmaWxsOlwibm9uZVwiLFwiZmlsbC1ydWxlXCI6XCJldmVub2RkXCJ9fSxbdChcInBhdGhcIix7YXR0cnM6e2Q6XCJNMzYgMThjMC05Ljk0LTguMDYtMTgtMTgtMThcIixzdHJva2U6XCJ1cmwoI2EpXCIsXCJzdHJva2Utd2lkdGhcIjpcIjJcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJyb3RhdGVcIixmcm9tOlwiMCAxOCAxOFwiLHRvOlwiMzYwIDE4IDE4XCIsZHVyOlwiMC45c1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImNpcmNsZVwiLHthdHRyczp7ZmlsbDpcImN1cnJlbnRDb2xvclwiLGN4OlwiMzZcIixjeTpcIjE4XCIscjpcIjFcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJyb3RhdGVcIixmcm9tOlwiMCAxOCAxOFwiLHRvOlwiMzYwIDE4IDE4XCIsZHVyOlwiMC45c1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSldKV0pfX0sU3RlcFRhYj17bmFtZTpcIlFTdGVwVGFiXCIsZGlyZWN0aXZlczp7UmlwcGxlOlJpcHBsZX0scHJvcHM6W1widm1cIl0sY29tcHV0ZWQ6e2hhc05hdmlnYXRpb246ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy52bS5fX3N0ZXBwZXIubm9IZWFkZXJOYXZpZ2F0aW9ufSxjbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJue1wic3RlcC1lcnJvclwiOnRoaXMudm0uZXJyb3IsXCJzdGVwLWFjdGl2ZVwiOnRoaXMudm0uYWN0aXZlLFwic3RlcC1kb25lXCI6dGhpcy52bS5kb25lLFwic3RlcC1uYXZpZ2F0aW9uXCI6dGhpcy52bS5kb25lJiZ0aGlzLmhhc05hdmlnYXRpb24sXCJzdGVwLXdhaXRpbmdcIjp0aGlzLnZtLndhaXRpbmcsXCJzdGVwLWRpc2FibGVkXCI6dGhpcy52bS5kaXNhYmxlLFwic3RlcC1jb2xvcmVkXCI6dGhpcy52bS5hY3RpdmV8fHRoaXMudm0uZG9uZSxcIml0ZW1zLWNlbnRlclwiOiF0aGlzLnZtLl9fc3RlcHBlci52ZXJ0aWNhbCxcIml0ZW1zLXN0YXJ0XCI6dGhpcy52bS5fX3N0ZXBwZXIudmVydGljYWwsXCJxLXN0ZXBwZXItZmlyc3RcIjp0aGlzLnZtLmZpcnN0LFwicS1zdGVwcGVyLWxhc3RcIjp0aGlzLnZtLmxhc3R9fX0sbWV0aG9kczp7X19zZWxlY3Q6ZnVuY3Rpb24oKXt0aGlzLmhhc05hdmlnYXRpb24mJnRoaXMudm0uc2VsZWN0KCl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy52bS5zdGVwSWNvbj90KFFJY29uLHtwcm9wczp7bmFtZTp0aGlzLnZtLnN0ZXBJY29ufX0pOnQoXCJzcGFuXCIsW3RoaXMudm0uaW5uZXJPcmRlcisxXSk7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXN0ZXBwZXItdGFiIGNvbC1ncm93IGZsZXggbm8td3JhcCByZWxhdGl2ZS1wb3NpdGlvblwiLGNsYXNzOnRoaXMuY2xhc3Nlcyxvbjp7Y2xpY2s6dGhpcy5fX3NlbGVjdH0sZGlyZWN0aXZlczp0aGlzLmhhc05hdmlnYXRpb24/W3tuYW1lOlwicmlwcGxlXCIsdmFsdWU6dGhpcy52bS5kb25lfV06bnVsbH0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXN0ZXBwZXItZG90IHJvdyBmbGV4LWNlbnRlciBxLXN0ZXBwZXItbGluZSByZWxhdGl2ZS1wb3NpdGlvblwifSxbdChcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJyb3cgZmxleC1jZW50ZXJcIn0sW2VdKV0pLHRoaXMudm0udGl0bGU/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc3RlcHBlci1sYWJlbCBxLXN0ZXBwZXItbGluZSByZWxhdGl2ZS1wb3NpdGlvblwifSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc3RlcHBlci10aXRsZVwifSxbdGhpcy52bS50aXRsZV0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXN0ZXBwZXItc3VidGl0bGVcIn0sW3RoaXMudm0uc3VidGl0bGVdKV0pOm51bGxdKX19LFFTdGVwPXtuYW1lOlwiUVN0ZXBcIixpbmplY3Q6e19fc3RlcHBlcjp7ZGVmYXVsdDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoXCJRU3RlcCBuZWVkcyB0byBiZSBjaGlsZCBvZiBRU3RlcHBlclwiKX19fSxwcm9wczp7bmFtZTp7dHlwZTpbTnVtYmVyLFN0cmluZ10sZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiB1aWQoKX19LGRlZmF1bHQ6Qm9vbGVhbix0aXRsZTp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9LHN1YnRpdGxlOlN0cmluZyxpY29uOlN0cmluZyxvcmRlcjpbTnVtYmVyLFN0cmluZ10sZXJyb3I6Qm9vbGVhbixhY3RpdmVJY29uOlN0cmluZyxlcnJvckljb246U3RyaW5nLGRvbmVJY29uOlN0cmluZyxkaXNhYmxlOkJvb2xlYW59LHdhdGNoOntvcmRlcjpmdW5jdGlvbigpe3RoaXMuX19zdGVwcGVyLl9fc29ydFN0ZXBzKCl9fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2lubmVyT3JkZXI6MCxmaXJzdDohMSxsYXN0OiExfX0sY29tcHV0ZWQ6e3N0ZXBJY29uOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fX3N0ZXBwZXI7cmV0dXJuIHRoaXMuYWN0aXZlP3RoaXMuYWN0aXZlSWNvbnx8dC5hY3RpdmVJY29ufHx0aGlzLiRxLmljb24uc3RlcHBlci5hY3RpdmU6dGhpcy5lcnJvcj90aGlzLmVycm9ySWNvbnx8dC5lcnJvckljb258fHRoaXMuJHEuaWNvbi5zdGVwcGVyLmVycm9yOnRoaXMuZG9uZSYmIXRoaXMuZGlzYWJsZT90aGlzLmRvbmVJY29ufHx0LmRvbmVJY29ufHx0aGlzLiRxLmljb24uc3RlcHBlci5kb25lOnRoaXMuaWNvbn0sYWN0dWFsT3JkZXI6ZnVuY3Rpb24oKXtyZXR1cm4gcGFyc2VJbnQodGhpcy5vcmRlcnx8dGhpcy5pbm5lck9yZGVyLDEwKX0sYWN0aXZlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19zdGVwcGVyLnN0ZXA9PT10aGlzLm5hbWV9LGRvbmU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5kaXNhYmxlJiZ0aGlzLl9fc3RlcHBlci5jdXJyZW50T3JkZXI+dGhpcy5pbm5lck9yZGVyfSx3YWl0aW5nOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZGlzYWJsZSYmdGhpcy5fX3N0ZXBwZXIuY3VycmVudE9yZGVyPHRoaXMuaW5uZXJPcmRlcn0sc3R5bGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmFjdHVhbE9yZGVyO3JldHVybntcIi13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXBcIjp0LFwiLW1zLWZsZXgtb3JkZXJcIjp0LG9yZGVyOnR9fSxjbGFzc2VzOmZ1bmN0aW9uKCl7aWYoIXRoaXMuX19zdGVwcGVyLnZlcnRpY2FsKXt2YXIgdD1bXTtyZXR1cm4hdGhpcy5hY3RpdmUmJnQucHVzaChcImhpZGRlblwiKSxudWxsIT09dGhpcy5fX3N0ZXBwZXIuYW5pbWF0aW9uJiZ0LnB1c2godGhpcy5fX3N0ZXBwZXIuYW5pbWF0aW9uKSx0fX19LG1ldGhvZHM6e3NlbGVjdDpmdW5jdGlvbigpe3RoaXMuZG9uZSYmdGhpcy5fX3N0ZXBwZXIuZ29Ub1N0ZXAodGhpcy5uYW1lKX0sX19nZXRDb250YWluZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5hY3RpdmU/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc3RlcHBlci1zdGVwLWNvbnRlbnRcIixjbGFzczp0aGlzLmNsYXNzZXN9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zdGVwcGVyLXN0ZXAtaW5uZXJcIn0sdGhpcy4kc2xvdHMuZGVmYXVsdCldKTpudWxsO3JldHVybiB0aGlzLl9fc3RlcHBlci52ZXJ0aWNhbD90KFFTbGlkZVRyYW5zaXRpb24sW2VdKTplfX0sbW91bnRlZDpmdW5jdGlvbigpe3RoaXMuX19zdGVwcGVyLl9fcmVnaXN0ZXJTdGVwKHRoaXMpLHRoaXMuZGVmYXVsdCYmdGhpcy5zZWxlY3QoKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuX19zdGVwcGVyLl9fdW5yZWdpc3RlclN0ZXAodGhpcyl9LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc3RlcHBlci1zdGVwXCIsc3R5bGU6dGhpcy5zdHlsZX0sW3RoaXMuX19zdGVwcGVyLnZlcnRpY2FsP3QoU3RlcFRhYix7cHJvcHM6e3ZtOnRoaXN9fSk6bnVsbCx0aGlzLl9fZ2V0Q29udGFpbmVyKHQpXSl9fSxRU3RlcHBlcj17bmFtZTpcIlFTdGVwcGVyXCIscHJvcHM6e3ZhbHVlOltOdW1iZXIsU3RyaW5nXSxjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInByaW1hcnlcIn0sdmVydGljYWw6Qm9vbGVhbixhbHRlcm5hdGl2ZUxhYmVsczpCb29sZWFuLG5vSGVhZGVyTmF2aWdhdGlvbjpCb29sZWFuLGNvbnRyYWN0YWJsZTpCb29sZWFuLGRvbmVJY29uOkJvb2xlYW4sYWN0aXZlSWNvbjpCb29sZWFuLGVycm9ySWNvbjpCb29sZWFufSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2FuaW1hdGlvbjpudWxsLHN0ZXA6dGhpcy52YWx1ZXx8bnVsbCxzdGVwczpbXX19LHByb3ZpZGU6ZnVuY3Rpb24oKXtyZXR1cm57X19zdGVwcGVyOnRoaXN9fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5nb1RvU3RlcCh0KX0sc3RlcDpmdW5jdGlvbih0LGUpe2lmKCF0aGlzLnZlcnRpY2FsKXt2YXIgaT10aGlzLnN0ZXBzLmZpbmRJbmRleChmdW5jdGlvbihlKXtyZXR1cm4gZS5uYW1lPT09dH0pLHM9dGhpcy5zdGVwcy5maW5kSW5kZXgoZnVuY3Rpb24odCl7cmV0dXJuIHQubmFtZT09PWV9KTt0aGlzLmFuaW1hdGlvbj1pPHM/XCJhbmltYXRlLWZhZGUtbGVmdFwiOmk+cz9cImFuaW1hdGUtZmFkZS1yaWdodFwiOm51bGx9fX0sY29tcHV0ZWQ6e2NsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXCJxLXN0ZXBwZXItXCIrKHRoaXMudmVydGljYWw/XCJ2ZXJ0aWNhbFwiOlwiaG9yaXpvbnRhbFwiKSxcInRleHQtXCIrdGhpcy5jb2xvcl07cmV0dXJuIHRoaXMuY29udHJhY3RhYmxlJiZ0LnB1c2goXCJxLXN0ZXBwZXItY29udHJhY3RhYmxlXCIpLHR9LGhhc1N0ZXBzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RlcHMubGVuZ3RoPjB9LGN1cnJlbnRTdGVwOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih0aGlzLmhhc1N0ZXBzKXJldHVybiB0aGlzLnN0ZXBzLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIGUubmFtZT09PXQuc3RlcH0pfSxjdXJyZW50T3JkZXI6ZnVuY3Rpb24oKXtpZih0aGlzLmN1cnJlbnRTdGVwKXJldHVybiB0aGlzLmN1cnJlbnRTdGVwLmlubmVyT3JkZXJ9LGxlbmd0aDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0ZXBzLmxlbmd0aH19LG1ldGhvZHM6e2dvVG9TdGVwOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5zdGVwIT09dCYmdm9pZCAwIT09dCYmKHRoaXMuc3RlcD10LHRoaXMuJGVtaXQoXCJpbnB1dFwiLHQpLHRoaXMuJGVtaXQoXCJzdGVwXCIsdCksdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtKU09OLnN0cmluZ2lmeSh0KSE9PUpTT04uc3RyaW5naWZ5KGUudmFsdWUpJiZlLiRlbWl0KFwiY2hhbmdlXCIsdCl9KSl9LG5leHQ6ZnVuY3Rpb24oKXt0aGlzLl9fZ28oMSl9LHByZXZpb3VzOmZ1bmN0aW9uKCl7dGhpcy5fX2dvKC0xKX0scmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLmhhc1N0ZXBzJiZ0aGlzLmdvVG9TdGVwKHRoaXMuc3RlcHNbMF0ubmFtZSl9LF9fZ286ZnVuY3Rpb24odCl7dmFyIGUsaT10aGlzLmN1cnJlbnRPcmRlcjtpZih2b2lkIDA9PT1pKXtpZighdGhpcy5oYXNTdGVwcylyZXR1cm47ZT10aGlzLnN0ZXBzWzBdLm5hbWV9ZWxzZXtkb3tpKz10fXdoaWxlKGk+PTAmJmk8dGhpcy5sZW5ndGgtMSYmdGhpcy5zdGVwc1tpXS5kaXNhYmxlKTtpZihpPDB8fGk+dGhpcy5sZW5ndGgtMXx8dGhpcy5zdGVwc1tpXS5kaXNhYmxlKXJldHVybjtlPXRoaXMuc3RlcHNbaV0ubmFtZX10aGlzLmdvVG9TdGVwKGUpfSxfX3NvcnRTdGVwczpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5zdGVwcy5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuYWN0dWFsT3JkZXItZS5hY3R1YWxPcmRlcn0pO3ZhciBlPXRoaXMuc3RlcHMubGVuZ3RoLTE7dGhpcy5zdGVwcy5mb3JFYWNoKGZ1bmN0aW9uKHQsaSl7dC5pbm5lck9yZGVyPWksdC5maXJzdD0wPT09aSx0Lmxhc3Q9aT09PWV9KSx0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3Quc3RlcHMuc29tZShmdW5jdGlvbih0KXtyZXR1cm4gdC5hY3RpdmV9KXx8dC5nb1RvU3RlcCh0LnN0ZXBzWzBdLm5hbWUpfSl9LF9fcmVnaXN0ZXJTdGVwOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnN0ZXBzLnB1c2godCksdGhpcy5fX3NvcnRTdGVwcygpLHRoaXN9LF9fdW5yZWdpc3RlclN0ZXA6ZnVuY3Rpb24odCl7dGhpcy5zdGVwcz10aGlzLnN0ZXBzLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZSE9PXR9KX19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLl9fc29ydFN0ZXBzPWZyYW1lRGVib3VuY2UodGhpcy5fX3NvcnRTdGVwcyl9LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc3RlcHBlciBjb2x1bW4gb3ZlcmZsb3ctaGlkZGVuIHJlbGF0aXZlLXBvc2l0aW9uXCIsY2xhc3M6dGhpcy5jbGFzc2VzfSxbdGhpcy52ZXJ0aWNhbD9udWxsOnQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXN0ZXBwZXItaGVhZGVyIHJvdyBpdGVtcy1zdHJldGNoIGp1c3RpZnktYmV0d2VlbiBzaGFkb3ctMVwiLGNsYXNzOntcImFsdGVybmF0aXZlLWxhYmVsc1wiOnRoaXMuYWx0ZXJuYXRpdmVMYWJlbHN9fSx0aGlzLnN0ZXBzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdChTdGVwVGFiLHtrZXk6ZS5uYW1lLHByb3BzOnt2bTplfX0pfSkpLHRoaXMuJHNsb3RzLmRlZmF1bHRdKX19LFFTdGVwcGVyTmF2aWdhdGlvbj17bmFtZTpcIlFTdGVwcGVyTmF2aWdhdGlvblwiLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc3RlcHBlci1uYXYgb3JkZXItbGFzdCByb3cgaXRlbXMtY2VudGVyXCJ9LFt0aGlzLiRzbG90cy5sZWZ0LHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2xcIn0pLHRoaXMuJHNsb3RzLmRlZmF1bHRdKX19LFRhYk1peGluPXtkaXJlY3RpdmVzOntSaXBwbGU6UmlwcGxlfSxwcm9wczp7bGFiZWw6U3RyaW5nLGljb246U3RyaW5nLGRpc2FibGU6Qm9vbGVhbixoaWRkZW46Qm9vbGVhbixoaWRlOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiXCJ9LG5hbWU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdWlkKCl9fSxhbGVydDpCb29sZWFuLGNvdW50OltOdW1iZXIsU3RyaW5nXSxjb2xvcjpTdHJpbmcsdGFiaW5kZXg6TnVtYmVyfSxpbmplY3Q6e2RhdGE6e2RlZmF1bHQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKFwiUVRhYi9RUm91dGVUYWIgY29tcG9uZW50cyBuZWVkIHRvIGJlIGNoaWxkIG9mIFFUYWJzXCIpfX0sc2VsZWN0VGFiOnt9fSx3YXRjaDp7YWN0aXZlOmZ1bmN0aW9uKHQpe3QmJnRoaXMuJGVtaXQoXCJzZWxlY3RcIix0aGlzLm5hbWUpfX0sY29tcHV0ZWQ6e2FjdGl2ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGEudGFiTmFtZT09PXRoaXMubmFtZX0sY2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PXthY3RpdmU6dGhpcy5hY3RpdmUsaGlkZGVuOnRoaXMuaGlkZGVuLGRpc2FibGVkOnRoaXMuZGlzYWJsZSxcInEtdGFiLWZ1bGxcIjp0aGlzLmljb24mJnRoaXMubGFiZWwsXCJxLXRhYi1vbmx5LWxhYmVsXCI6IXRoaXMuaWNvbiYmdGhpcy5sYWJlbCxcImhpZGUtbm9uZVwiOiF0aGlzLmhpZGUsXCJoaWRlLWljb25cIjpcImljb25cIj09PXRoaXMuaGlkZSxcImhpZGUtbGFiZWxcIjpcImxhYmVsXCI9PT10aGlzLmhpZGV9LGU9dGhpcy5kYXRhLmludmVydGVkP3RoaXMuY29sb3J8fHRoaXMuZGF0YS50ZXh0Q29sb3J8fHRoaXMuZGF0YS5jb2xvcjp0aGlzLmNvbG9yO3JldHVybiBlJiYodFtcInRleHQtXCIrZV09ITApLHR9LGJhclN0eWxlOmZ1bmN0aW9uKCl7aWYoIXRoaXMuYWN0aXZlfHwhdGhpcy5kYXRhLmhpZ2hsaWdodClyZXR1cm5cImRpc3BsYXk6IG5vbmU7XCJ9LGNvbXB1dGVkVGFiSW5kZXg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kaXNhYmxlfHx0aGlzLmFjdGl2ZT8tMTp0aGlzLnRhYmluZGV4fHwwfX0sbWV0aG9kczp7X19nZXRUYWJNZXRhOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNvdW50P1t0KFFDaGlwLHtzdGF0aWNDbGFzczpcInEtdGFiLW1ldGFcIixwcm9wczp7ZmxvYXRpbmc6ITB9fSxbdGhpcy5jb3VudF0pXTp0aGlzLmFsZXJ0P1t0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWItbWV0YSBxLWRvdFwifSldOnZvaWQgMH0sX19nZXRUYWJDb250ZW50OmZ1bmN0aW9uKHQpe3ZhciBlPVtdO3JldHVybiB0aGlzLmljb24mJmUucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWItaWNvbi1wYXJlbnQgcmVsYXRpdmUtcG9zaXRpb25cIn0sW3QoUUljb24se3N0YXRpY0NsYXNzOlwicS10YWItaWNvblwiLHByb3BzOntuYW1lOnRoaXMuaWNvbn19KSx0aGlzLl9fZ2V0VGFiTWV0YSh0KV0pKSx0aGlzLmxhYmVsJiZlLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFiLWxhYmVsLXBhcmVudCByZWxhdGl2ZS1wb3NpdGlvblwifSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFiLWxhYmVsXCJ9LFt0aGlzLmxhYmVsXSksdGhpcy5fX2dldFRhYk1ldGEodCldKSksKGU9ZS5jb25jYXQodGhpcy4kc2xvdHMuZGVmYXVsdCkpLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFicy1iYXJcIixzdHlsZTp0aGlzLmJhclN0eWxlLGNsYXNzOnRoaXMuZGF0YS51bmRlcmxpbmVDbGFzc30pKSxlLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFiLWZvY3VzLWhlbHBlciBhYnNvbHV0ZS1mdWxsXCIsYXR0cnM6e3RhYmluZGV4OnRoaXMuY29tcHV0ZWRUYWJJbmRleH19KSksZX19fSxRUm91dGVUYWI9e25hbWU6XCJRUm91dGVUYWJcIixtaXhpbnM6W1RhYk1peGluLFJvdXRlckxpbmtNaXhpbl0saW5qZWN0OntzZWxlY3RUYWJSb3V0ZXI6e319LHdhdGNoOnskcm91dGU6ZnVuY3Rpb24oKXt0aGlzLmNoZWNrSWZTZWxlY3RlZCgpfX0sbWV0aG9kczp7c2VsZWN0OmZ1bmN0aW9uKCl7dGhpcy4kZW1pdChcImNsaWNrXCIsdGhpcy5uYW1lKSx0aGlzLmRpc2FibGV8fCh0aGlzLiRlbC5kaXNwYXRjaEV2ZW50KGV2dCksdGhpcy5zZWxlY3RUYWJSb3V0ZXIoe3ZhbHVlOnRoaXMubmFtZSxzZWxlY3RlZDohMH0pKX0sY2hlY2tJZlNlbGVjdGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe2lmKHQuJGVsLmNsYXNzTGlzdC5jb250YWlucyhcInEtcm91dGVyLWxpbmstZXhhY3QtYWN0aXZlXCIpKXQuc2VsZWN0VGFiUm91dGVyKHt2YWx1ZTp0Lm5hbWUsc2VsZWN0YWJsZTohMCxleGFjdDohMH0pO2Vsc2UgaWYodC4kZWwuY2xhc3NMaXN0LmNvbnRhaW5zKFwicS1yb3V0ZXItbGluay1hY3RpdmVcIikpe3ZhciBlPXQuJHJvdXRlci5yZXNvbHZlKHQudG8sdm9pZCAwLHQuYXBwZW5kKTt0LnNlbGVjdFRhYlJvdXRlcih7dmFsdWU6dC5uYW1lLHNlbGVjdGFibGU6ITAscHJpb3JpdHk6ZS5ocmVmLmxlbmd0aH0pfWVsc2UgdC5hY3RpdmUmJnQuc2VsZWN0VGFiUm91dGVyKHt2YWx1ZTpudWxsfSl9KX19LG1vdW50ZWQ6ZnVuY3Rpb24oKXt0aGlzLmNoZWNrSWZTZWxlY3RlZCgpfSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdChcInJvdXRlci1saW5rXCIse3Byb3BzOnt0YWc6XCJhXCIsdG86dGhpcy50byxleGFjdDp0aGlzLmV4YWN0LGFwcGVuZDp0aGlzLmFwcGVuZCxyZXBsYWNlOnRoaXMucmVwbGFjZSxldmVudDpyb3V0ZXJMaW5rRXZlbnROYW1lLGFjdGl2ZUNsYXNzOlwicS1yb3V0ZXItbGluay1hY3RpdmVcIixleGFjdEFjdGl2ZUNsYXNzOlwicS1yb3V0ZXItbGluay1leGFjdC1hY3RpdmVcIn0sYXR0cnM6e3RhYmluZGV4Oi0xfSxuYXRpdmVPbjp7Y2xpY2s6dGhpcy5zZWxlY3Qsa2V5dXA6ZnVuY3Rpb24odCl7cmV0dXJuIDEzPT09dC5rZXlDb2RlJiZlLnNlbGVjdCh0KX19LHN0YXRpY0NsYXNzOlwicS1saW5rIHEtdGFiIGNvbHVtbiBmbGV4LWNlbnRlciByZWxhdGl2ZS1wb3NpdGlvblwiLGNsYXNzOnRoaXMuY2xhc3NlcyxkaXJlY3RpdmVzOlt7bmFtZTpcInJpcHBsZVwifV19LHRoaXMuX19nZXRUYWJDb250ZW50KHQpKX19LFFUYWI9e25hbWU6XCJRVGFiXCIsbWl4aW5zOltUYWJNaXhpbl0scHJvcHM6e2RlZmF1bHQ6Qm9vbGVhbn0sbWV0aG9kczp7c2VsZWN0OmZ1bmN0aW9uKCl7dGhpcy4kZW1pdChcImNsaWNrXCIsdGhpcy5uYW1lKSx0aGlzLmRpc2FibGV8fHRoaXMuc2VsZWN0VGFiKHRoaXMubmFtZSl9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0JiYhdGhpcy5kaXNhYmxlJiZ0aGlzLnNlbGVjdCgpfSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFiIGNvbHVtbiBmbGV4LWNlbnRlciByZWxhdGl2ZS1wb3NpdGlvblwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7XCJkYXRhLXRhYi1uYW1lXCI6dGhpcy5uYW1lfSxvbjp7Y2xpY2s6dGhpcy5zZWxlY3Qsa2V5dXA6ZnVuY3Rpb24odCl7cmV0dXJuIDEzPT09dC5rZXlDb2RlJiZlLnNlbGVjdCh0KX19LGRpcmVjdGl2ZXM6W3tuYW1lOlwicmlwcGxlXCJ9XX0sdGhpcy5fX2dldFRhYkNvbnRlbnQodCkpfX0sUVRhYlBhbmU9e25hbWU6XCJRVGFiUGFuZVwiLGluamVjdDp7ZGF0YTp7ZGVmYXVsdDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoXCJRVGFiUGFuZSBuZWVkcyB0byBiZSBjaGlsZCBvZiBRVGFic1wiKX19fSxwcm9wczp7bmFtZTp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9LGtlZXBBbGl2ZTpCb29sZWFufSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3Nob3duOiExfX0sY29tcHV0ZWQ6e2FjdGl2ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGEudGFiTmFtZT09PXRoaXMubmFtZX0sY2xhc3NlczpmdW5jdGlvbigpe3JldHVybntoaWRkZW46IXRoaXMuYWN0aXZlLFwiYW5pbWF0ZS1mYWRlLWxlZnRcIjpcImxlZnRcIj09PXRoaXMuZGF0YS5kaXJlY3Rpb24sXCJhbmltYXRlLWZhZGUtcmlnaHRcIjpcInJpZ2h0XCI9PT10aGlzLmRhdGEuZGlyZWN0aW9ufX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWItcGFuZVwiLGNsYXNzOnRoaXMuY2xhc3Nlc30sdGhpcy4kc2xvdHMuZGVmYXVsdCk7aWYodGhpcy5rZWVwQWxpdmUpe2lmKCF0aGlzLnNob3duJiYhdGhpcy5hY3RpdmUpcmV0dXJuO3JldHVybiB0aGlzLnNob3duPSEwLGV9aWYodGhpcy5zaG93bj10aGlzLmFjdGl2ZSx0aGlzLmFjdGl2ZSlyZXR1cm4gZX19LHNjcm9sbE5hdmlnYXRpb25TcGVlZD01LGRlYm91bmNlRGVsYXk9NTA7ZnVuY3Rpb24gZ2V0VW5kZXJsaW5lQ2xhc3ModCl7aWYodClyZXR1cm5cInRleHQtXCIrdH12YXIgUVRhYnM9e25hbWU6XCJRVGFic1wiLHByb3ZpZGU6ZnVuY3Rpb24oKXtyZXR1cm57ZGF0YTp0aGlzLmRhdGEsc2VsZWN0VGFiOnRoaXMuc2VsZWN0VGFiLHNlbGVjdFRhYlJvdXRlcjp0aGlzLnNlbGVjdFRhYlJvdXRlcn19LGRpcmVjdGl2ZXM6e1RvdWNoU3dpcGU6VG91Y2hTd2lwZX0scHJvcHM6e3ZhbHVlOlN0cmluZyxhbGlnbjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImxlZnRcIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1wibGVmdFwiLFwiY2VudGVyXCIsXCJyaWdodFwiLFwianVzdGlmeVwiXS5pbmNsdWRlcyh0KX19LHBvc2l0aW9uOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwidG9wXCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcInRvcFwiLFwiYm90dG9tXCJdLmluY2x1ZGVzKHQpfX0sY29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJwcmltYXJ5XCJ9LHRleHRDb2xvcjpTdHJpbmcsaW52ZXJ0ZWQ6Qm9vbGVhbix0d29MaW5lczpCb29sZWFuLGdsb3NzeTpCb29sZWFuLGFuaW1hdGVkOkJvb2xlYW4sc3dpcGVhYmxlOkJvb2xlYW4scGFuZXNDb250YWluZXJDbGFzczpTdHJpbmcsdW5kZXJsaW5lQ29sb3I6U3RyaW5nfSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2N1cnJlbnRFbDpudWxsLHBvc2Jhcjp7d2lkdGg6MCxsZWZ0OjB9LGRhdGE6e2hpZ2hsaWdodDohMCx0YWJOYW1lOnRoaXMudmFsdWV8fFwiXCIsY29sb3I6dGhpcy5jb2xvcix0ZXh0Q29sb3I6dGhpcy50ZXh0Q29sb3IsaW52ZXJ0ZWQ6dGhpcy5pbnZlcnRlZCx1bmRlcmxpbmVDbGFzczpnZXRVbmRlcmxpbmVDbGFzcyh0aGlzLnVuZGVybGluZUNvbG9yKSxkaXJlY3Rpb246bnVsbH19fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5zZWxlY3RUYWIodCl9LGNvbG9yOmZ1bmN0aW9uKHQpe3RoaXMuZGF0YS5jb2xvcj10fSx0ZXh0Q29sb3I6ZnVuY3Rpb24odCl7dGhpcy5kYXRhLnRleHRDb2xvcj10fSxpbnZlcnRlZDpmdW5jdGlvbih0KXt0aGlzLmRhdGEuaW52ZXJ0ZWQ9dH0sdW5kZXJsaW5lQ29sb3I6ZnVuY3Rpb24odCl7dGhpcy5kYXRhLnVuZGVybGluZUNsYXNzPWdldFVuZGVybGluZUNsYXNzKHQpfX0sY29tcHV0ZWQ6e2NsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm5bXCJxLXRhYnMtcG9zaXRpb24tXCIrdGhpcy5wb3NpdGlvbixcInEtdGFicy1cIisodGhpcy5pbnZlcnRlZD9cImludmVydGVkXCI6XCJub3JtYWxcIiksdGhpcy50d29MaW5lcz9cInEtdGFicy10d28tbGluZXNcIjpcIlwiXX0saW5uZXJDbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9W1wicS10YWJzLWFsaWduLVwiK3RoaXMuYWxpZ25dO3JldHVybiB0aGlzLmdsb3NzeSYmdC5wdXNoKFwiZ2xvc3N5XCIpLHRoaXMuaW52ZXJ0ZWQ/dC5wdXNoKFwidGV4dC1cIisodGhpcy50ZXh0Q29sb3J8fHRoaXMuY29sb3IpKToodC5wdXNoKFwiYmctXCIrdGhpcy5jb2xvciksdC5wdXNoKFwidGV4dC1cIisodGhpcy50ZXh0Q29sb3J8fFwid2hpdGVcIikpKSx0fSxwb3NiYXJDbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuaW52ZXJ0ZWQmJnQucHVzaChcInRleHQtXCIrKHRoaXMudGV4dENvbG9yfHx0aGlzLmNvbG9yKSksdGhpcy5kYXRhLmhpZ2hsaWdodCYmdC5wdXNoKFwiaGlnaGxpZ2h0XCIpLHR9fSxtZXRob2RzOntnbzpmdW5jdGlvbih0KXt2YXIgZT0wO2lmKHRoaXMuZGF0YS50YWJOYW1lKXt2YXIgaT10aGlzLiRyZWZzLnNjcm9sbGVyLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRhYi1uYW1lPVwiJyt0aGlzLmRhdGEudGFiTmFtZSsnXCJdJyk7aSYmKGU9QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbCh0aGlzLiRyZWZzLnNjcm9sbGVyLmNoaWxkcmVuLGkpKX12YXIgcz10aGlzLiRyZWZzLnNjcm9sbGVyLnF1ZXJ5U2VsZWN0b3JBbGwoXCJbZGF0YS10YWItbmFtZV1cIik7KGUrPXQpPi0xJiZlPHMubGVuZ3RoJiZ0aGlzLnNlbGVjdFRhYihzW2VdLmdldEF0dHJpYnV0ZShcImRhdGEtdGFiLW5hbWVcIikpfSxwcmV2aW91czpmdW5jdGlvbigpe3RoaXMuZ28oLTEpfSxuZXh0OmZ1bmN0aW9uKCl7dGhpcy5nbygxKX0sc2VsZWN0VGFiOmZ1bmN0aW9uKHQpe2lmKHRoaXMuZGF0YS50YWJOYW1lIT09dCl7dGhpcy5kYXRhLnRhYk5hbWU9dDt2YXIgZT10aGlzLl9fZ2V0VGFiRWxCeU5hbWUodCk7aWYoZSlpZih0aGlzLl9fc2Nyb2xsVG9UYWIoZSksdGhpcy5jdXJyZW50RWw9ZSx0aGlzLm9sZEVsKXtpZih0aGlzLmFuaW1hdGVkKXt2YXIgaT10aGlzLiRyZWZzLnNjcm9sbGVyLmNoaWxkcmVuO3RoaXMuZGF0YS5kaXJlY3Rpb249QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChpLGUpPEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoaSx0aGlzLm9sZEVsKT9cImxlZnRcIjpcInJpZ2h0XCJ9dGhpcy5fX3JlcG9zaXRpb25CYXIoKX1lbHNlIHRoaXMub2xkRWw9ZTtlbHNlIHRoaXMub2xkRWw9bnVsbCx0aGlzLmRhdGEuZGlyZWN0aW9uPW51bGw7dGhpcy4kZW1pdChcImlucHV0XCIsdCx0aGlzLmRhdGEuZGlyZWN0aW9uKSx0aGlzLiRlbWl0KFwic2VsZWN0XCIsdCx0aGlzLmRhdGEuZGlyZWN0aW9uKX19LHNlbGVjdFRhYlJvdXRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dC52YWx1ZSxzPXQuc2VsZWN0YWJsZSxuPXQuZXhhY3Qsbz10LnNlbGVjdGVkLHI9dC5wcmlvcml0eSxhPSF0aGlzLmJ1ZmZlci5sZW5ndGgsbD1hPy0xOnRoaXMuYnVmZmVyLmZpbmRJbmRleChmdW5jdGlvbih0KXtyZXR1cm4gdC52YWx1ZT09PWl9KTtpZihsPi0xKXt2YXIgYz10aGlzLmJ1ZmZlcltsXTtuJiYoYy5leGFjdD1uKSxzJiYoYy5zZWxlY3RhYmxlPXMpLG8mJihjLnNlbGVjdGVkPW8pLHImJihjLnByaW9yaXR5PXIpfWVsc2UgdGhpcy5idWZmZXIucHVzaCh0KTthJiYodGhpcy5idWZmZXJUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHQ9ZS5idWZmZXIuZmluZChmdW5jdGlvbih0KXtyZXR1cm4gdC5leGFjdCYmdC5zZWxlY3RlZH0pfHxlLmJ1ZmZlci5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNlbGVjdGFibGUmJnQuc2VsZWN0ZWR9KXx8ZS5idWZmZXIuZmluZChmdW5jdGlvbih0KXtyZXR1cm4gdC5leGFjdH0pfHxlLmJ1ZmZlci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQuc2VsZWN0YWJsZX0pLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5wcmlvcml0eS10LnByaW9yaXR5fSlbMF18fGUuYnVmZmVyWzBdO2UuYnVmZmVyLmxlbmd0aD0wLGUuc2VsZWN0VGFiKHQudmFsdWUpfSwxMDApKX0sX19zd2lwZTpmdW5jdGlvbih0KXt0aGlzLmdvKFwibGVmdFwiPT09dC5kaXJlY3Rpb24/MTotMSl9LF9fcmVwb3NpdGlvbkJhcjpmdW5jdGlvbigpe3ZhciB0PXRoaXM7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpO3ZhciBlPSExLGk9dGhpcy4kcmVmcy5wb3NiYXIscz10aGlzLmN1cnJlbnRFbDtpZighMSE9PXRoaXMuZGF0YS5oaWdobGlnaHQmJih0aGlzLmRhdGEuaGlnaGxpZ2h0PSExLGU9ITApLCFzKXJldHVybiB0aGlzLmZpbmFsUG9zYmFyPXt3aWR0aDowLGxlZnQ6MH0sdm9pZCB0aGlzLl9fc2V0UG9zaXRpb25CYXIoMCwwKTt2YXIgbj1pLnBhcmVudE5vZGUub2Zmc2V0TGVmdDtlJiZ0aGlzLm9sZEVsJiZ0aGlzLl9fc2V0UG9zaXRpb25CYXIodGhpcy5vbGRFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCx0aGlzLm9sZEVsLm9mZnNldExlZnQtbiksdGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGU9cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCxvPXMub2Zmc2V0TGVmdC1uO2kuY2xhc3NMaXN0LnJlbW92ZShcImNvbnRyYWN0XCIpLHQub2xkRWw9cyx0LmZpbmFsUG9zYmFyPXt3aWR0aDplLGxlZnQ6b30sdC5fX3NldFBvc2l0aW9uQmFyKHQucG9zYmFyLmxlZnQ8bz9vK2UtdC5wb3NiYXIubGVmdDp0LnBvc2Jhci5sZWZ0K3QucG9zYmFyLndpZHRoLW8sdC5wb3NiYXIubGVmdDxvP3QucG9zYmFyLmxlZnQ6byl9LDIwKX0sX19zZXRQb3NpdGlvbkJhcjpmdW5jdGlvbih0LGUpe2lmKHZvaWQgMD09PXQmJih0PTApLHZvaWQgMD09PWUmJihlPTApLHRoaXMucG9zYmFyLndpZHRoIT09dHx8dGhpcy5wb3NiYXIubGVmdCE9PWUpe3RoaXMucG9zYmFyPXt3aWR0aDp0LGxlZnQ6ZX07dmFyIGk9dGhpcy4kcS5pMThuLnJ0bD9lK3Q6ZTt0aGlzLiRyZWZzLnBvc2Jhci5zdHlsZS50cmFuc2Zvcm09XCJ0cmFuc2xhdGVYKFwiK2krXCJweCkgc2NhbGVYKFwiK3QrXCIpXCJ9ZWxzZSB0aGlzLl9fdXBkYXRlUG9zYmFyVHJhbnNpdGlvbigpfSxfX3VwZGF0ZVBvc2JhclRyYW5zaXRpb246ZnVuY3Rpb24oKXtpZih0aGlzLmZpbmFsUG9zYmFyLndpZHRoPT09dGhpcy5wb3NiYXIud2lkdGgmJnRoaXMuZmluYWxQb3NiYXIubGVmdD09PXRoaXMucG9zYmFyLmxlZnQpcmV0dXJuIHRoaXMucG9zYmFyPXt9LHZvaWQoITAhPT10aGlzLmRhdGEuaGlnaGxpZ2h0JiYodGhpcy5kYXRhLmhpZ2hsaWdodD0hMCkpO3RoaXMuJHJlZnMucG9zYmFyLmNsYXNzTGlzdC5hZGQoXCJjb250cmFjdFwiKSx0aGlzLl9fc2V0UG9zaXRpb25CYXIodGhpcy5maW5hbFBvc2Jhci53aWR0aCx0aGlzLmZpbmFsUG9zYmFyLmxlZnQpfSxfX3JlZHJhdzpmdW5jdGlvbigpe3RoaXMuJHEucGxhdGZvcm0uaXMuZGVza3RvcCYmKHRoaXMuc2Nyb2xsZXJXaWR0aD13aWR0aCh0aGlzLiRyZWZzLnNjcm9sbGVyKSwwPT09dGhpcy5zY3JvbGxlcldpZHRoJiYwPT09dGhpcy4kcmVmcy5zY3JvbGxlci5zY3JvbGxXaWR0aHx8KHRoaXMuc2Nyb2xsZXJXaWR0aCs1PHRoaXMuJHJlZnMuc2Nyb2xsZXIuc2Nyb2xsV2lkdGg/KHRoaXMuJHJlZnMudGFicy5jbGFzc0xpc3QuYWRkKFwic2Nyb2xsYWJsZVwiKSx0aGlzLnNjcm9sbGFibGU9ITAsdGhpcy5fX3VwZGF0ZVNjcm9sbEluZGljYXRvcigpKToodGhpcy4kcmVmcy50YWJzLmNsYXNzTGlzdC5yZW1vdmUoXCJzY3JvbGxhYmxlXCIpLHRoaXMuc2Nyb2xsYWJsZT0hMSkpKX0sX191cGRhdGVTY3JvbGxJbmRpY2F0b3I6ZnVuY3Rpb24oKXtpZih0aGlzLiRxLnBsYXRmb3JtLmlzLmRlc2t0b3AmJnRoaXMuc2Nyb2xsYWJsZSl7dmFyIHQ9dGhpcy4kcmVmcy5zY3JvbGxlci5zY3JvbGxMZWZ0K3dpZHRoKHRoaXMuJHJlZnMuc2Nyb2xsZXIpKzU+PXRoaXMuJHJlZnMuc2Nyb2xsZXIuc2Nyb2xsV2lkdGg/XCJhZGRcIjpcInJlbW92ZVwiO3RoaXMuJHJlZnMubGVmdFNjcm9sbC5jbGFzc0xpc3RbdGhpcy4kcmVmcy5zY3JvbGxlci5zY3JvbGxMZWZ0PD0wP1wiYWRkXCI6XCJyZW1vdmVcIl0oXCJkaXNhYmxlZFwiKSx0aGlzLiRyZWZzLnJpZ2h0U2Nyb2xsLmNsYXNzTGlzdFt0XShcImRpc2FibGVkXCIpfX0sX19nZXRUYWJFbEJ5TmFtZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLiRjaGlsZHJlbi5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLm5hbWU9PT10JiZlLiRlbCYmMT09PWUuJGVsLm5vZGVUeXBlfSk7aWYoZSlyZXR1cm4gZS4kZWx9LF9fZmluZFRhYkFuZFNjcm9sbDpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXM7c2V0VGltZW91dChmdW5jdGlvbigpe2kuX19zY3JvbGxUb1RhYihpLl9fZ2V0VGFiRWxCeU5hbWUodCksZSl9LDQqZGVib3VuY2VEZWxheSl9LF9fc2Nyb2xsVG9UYWI6ZnVuY3Rpb24odCxlKXtpZih0JiZ0aGlzLnNjcm9sbGFibGUpe3ZhciBpPXRoaXMuJHJlZnMuc2Nyb2xsZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscz10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49cy53aWR0aCxvPXMubGVmdC1pLmxlZnQ7bzwwP2U/dGhpcy4kcmVmcy5zY3JvbGxlci5zY3JvbGxMZWZ0Kz1vOnRoaXMuX19hbmltU2Nyb2xsVG8odGhpcy4kcmVmcy5zY3JvbGxlci5zY3JvbGxMZWZ0K28pOihvKz1uLXRoaXMuJHJlZnMuc2Nyb2xsZXIub2Zmc2V0V2lkdGgpPjAmJihlP3RoaXMuJHJlZnMuc2Nyb2xsZXIuc2Nyb2xsTGVmdCs9bzp0aGlzLl9fYW5pbVNjcm9sbFRvKHRoaXMuJHJlZnMuc2Nyb2xsZXIuc2Nyb2xsTGVmdCtvKSl9fSxfX2FuaW1TY3JvbGxUbzpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX19zdG9wQW5pbVNjcm9sbCgpLHRoaXMuX19zY3JvbGxUb3dhcmRzKHQpLHRoaXMuc2Nyb2xsVGltZXI9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtlLl9fc2Nyb2xsVG93YXJkcyh0KSYmZS5fX3N0b3BBbmltU2Nyb2xsKCl9LDUpfSxfX3Njcm9sbFRvU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9fYW5pbVNjcm9sbFRvKDApfSxfX3Njcm9sbFRvRW5kOmZ1bmN0aW9uKCl7dGhpcy5fX2FuaW1TY3JvbGxUbyg5OTk5KX0sX19zdG9wQW5pbVNjcm9sbDpmdW5jdGlvbigpe2NsZWFySW50ZXJ2YWwodGhpcy5zY3JvbGxUaW1lcil9LF9fc2Nyb2xsVG93YXJkczpmdW5jdGlvbih0KXt2YXIgZT10aGlzLiRyZWZzLnNjcm9sbGVyLnNjcm9sbExlZnQsaT10PGU/LTE6MSxzPSExO3JldHVybihlKz1pKnNjcm9sbE5hdmlnYXRpb25TcGVlZCk8MD8ocz0hMCxlPTApOigtMT09PWkmJmU8PXR8fDE9PT1pJiZlPj10KSYmKHM9ITAsZT10KSx0aGlzLiRyZWZzLnNjcm9sbGVyLnNjcm9sbExlZnQ9ZSxzfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWJzIGZsZXggbm8td3JhcCBvdmVyZmxvdy1oaWRkZW5cIixjbGFzczp0aGlzLmNsYXNzZXN9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWJzLWhlYWQgcm93XCIscmVmOlwidGFic1wiLGNsYXNzOnRoaXMuaW5uZXJDbGFzc2VzfSxbdChcImRpdlwiLHtyZWY6XCJzY3JvbGxlclwiLHN0YXRpY0NsYXNzOlwicS10YWJzLXNjcm9sbGVyIHJvdyBuby13cmFwXCJ9LFt0aGlzLiRzbG90cy50aXRsZSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicmVsYXRpdmUtcG9zaXRpb24gc2VsZi1zdHJldGNoIHEtdGFicy1nbG9iYWwtYmFyLWNvbnRhaW5lclwiLGNsYXNzOnRoaXMucG9zYmFyQ2xhc3Nlc30sW3QoXCJkaXZcIix7cmVmOlwicG9zYmFyXCIsc3RhdGljQ2xhc3M6XCJxLXRhYnMtYmFyIHEtdGFicy1nbG9iYWwtYmFyXCIsY2xhc3M6dGhpcy5kYXRhLnVuZGVybGluZUNsYXNzLG9uOnt0cmFuc2l0aW9uZW5kOnRoaXMuX191cGRhdGVQb3NiYXJUcmFuc2l0aW9ufX0pXSldKSx0KFwiZGl2XCIse3JlZjpcImxlZnRTY3JvbGxcIixzdGF0aWNDbGFzczpcInJvdyBmbGV4LWNlbnRlciBxLXRhYnMtbGVmdC1zY3JvbGxcIixvbjp7bW91c2Vkb3duOnRoaXMuX19zY3JvbGxUb1N0YXJ0LHRvdWNoc3RhcnQ6dGhpcy5fX3Njcm9sbFRvU3RhcnQsbW91c2V1cDp0aGlzLl9fc3RvcEFuaW1TY3JvbGwsbW91c2VsZWF2ZTp0aGlzLl9fc3RvcEFuaW1TY3JvbGwsdG91Y2hlbmQ6dGhpcy5fX3N0b3BBbmltU2Nyb2xsfX0sW3QoUUljb24se3Byb3BzOntuYW1lOnRoaXMuJHEuaWNvbi50YWJzLmxlZnR9fSldKSx0KFwiZGl2XCIse3JlZjpcInJpZ2h0U2Nyb2xsXCIsc3RhdGljQ2xhc3M6XCJyb3cgZmxleC1jZW50ZXIgcS10YWJzLXJpZ2h0LXNjcm9sbFwiLG9uOnttb3VzZWRvd246dGhpcy5fX3Njcm9sbFRvRW5kLHRvdWNoc3RhcnQ6dGhpcy5fX3Njcm9sbFRvRW5kLG1vdXNldXA6dGhpcy5fX3N0b3BBbmltU2Nyb2xsLG1vdXNlbGVhdmU6dGhpcy5fX3N0b3BBbmltU2Nyb2xsLHRvdWNoZW5kOnRoaXMuX19zdG9wQW5pbVNjcm9sbH19LFt0KFFJY29uLHtwcm9wczp7bmFtZTp0aGlzLiRxLmljb24udGFicy5yaWdodH19KV0pXSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFicy1wYW5lc1wiLGNsYXNzOnRoaXMucGFuZXNDb250YWluZXJDbGFzcyxkaXJlY3RpdmVzOnRoaXMuc3dpcGVhYmxlP1t7bmFtZTpcInRvdWNoLXN3aXBlXCIsdmFsdWU6dGhpcy5fX3N3aXBlfV06bnVsbH0sdGhpcy4kc2xvdHMuZGVmYXVsdCldKX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMudGltZXI9bnVsbCx0aGlzLnNjcm9sbFRpbWVyPW51bGwsdGhpcy5idWZmZXJUaW1lcj1udWxsLHRoaXMuYnVmZmVyPVtdLHRoaXMuc2Nyb2xsYWJsZT0hdGhpcy4kcS5wbGF0Zm9ybS5pcy5kZXNrdG9wLHRoaXMuX19yZWRyYXc9ZGVib3VuY2UodGhpcy5fX3JlZHJhdyxkZWJvdW5jZURlbGF5KSx0aGlzLl9fdXBkYXRlU2Nyb2xsSW5kaWNhdG9yPWRlYm91bmNlKHRoaXMuX191cGRhdGVTY3JvbGxJbmRpY2F0b3IsZGVib3VuY2VEZWxheSl9LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7dC4kcmVmcy5zY3JvbGxlciYmKHQuJHJlZnMuc2Nyb2xsZXIuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHQuX191cGRhdGVTY3JvbGxJbmRpY2F0b3IsbGlzdGVuT3B0cy5wYXNzaXZlKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLHQuX19yZWRyYXcsbGlzdGVuT3B0cy5wYXNzaXZlKSxcIlwiIT09dC5kYXRhLnRhYk5hbWUmJnQudmFsdWUmJnQuc2VsZWN0VGFiKHQudmFsdWUpLHQuX19yZWRyYXcoKSx0Ll9fZmluZFRhYkFuZFNjcm9sbCh0LmRhdGEudGFiTmFtZSwhMCkpfSl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksY2xlYXJUaW1lb3V0KHRoaXMuYnVmZmVyVGltZXIpLHRoaXMuX19zdG9wQW5pbVNjcm9sbCgpLHRoaXMuJHJlZnMuc2Nyb2xsZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHRoaXMuX191cGRhdGVTY3JvbGxJbmRpY2F0b3IsbGlzdGVuT3B0cy5wYXNzaXZlKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLHRoaXMuX19yZWRyYXcsbGlzdGVuT3B0cy5wYXNzaXZlKSx0aGlzLl9fcmVkcmF3LmNhbmNlbCgpLHRoaXMuX191cGRhdGVTY3JvbGxJbmRpY2F0b3IuY2FuY2VsKCl9fSxUb3A9e2NvbXB1dGVkOnttYXJnaW5hbHNQcm9wczpmdW5jdGlvbigpe3JldHVybntwYWdpbmF0aW9uOnRoaXMuY29tcHV0ZWRQYWdpbmF0aW9uLHBhZ2VzTnVtYmVyOnRoaXMucGFnZXNOdW1iZXIsaXNGaXJzdFBhZ2U6dGhpcy5pc0ZpcnN0UGFnZSxpc0xhc3RQYWdlOnRoaXMuaXNMYXN0UGFnZSxwcmV2UGFnZTp0aGlzLnByZXZQYWdlLG5leHRQYWdlOnRoaXMubmV4dFBhZ2UsaW5GdWxsc2NyZWVuOnRoaXMuaW5GdWxsc2NyZWVuLHRvZ2dsZUZ1bGxzY3JlZW46dGhpcy50b2dnbGVGdWxsc2NyZWVufX19LG1ldGhvZHM6e2dldFRvcDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLiRzY29wZWRTbG90cy50b3AsaT10aGlzLiRzY29wZWRTbG90c1tcInRvcC1sZWZ0XCJdLHM9dGhpcy4kc2NvcGVkU2xvdHNbXCJ0b3AtcmlnaHRcIl0sbj10aGlzLiRzY29wZWRTbG90c1tcInRvcC1zZWxlY3Rpb25cIl0sbz10aGlzLmhhc1NlbGVjdGlvbk1vZGUmJm4mJnRoaXMucm93c1NlbGVjdGVkTnVtYmVyPjAscj1cInEtdGFibGUtdG9wIHJlbGF0aXZlLXBvc2l0aW9uIHJvdyBpdGVtcy1jZW50ZXJcIixhPVtdO3JldHVybiBlP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6cn0sW2UodGhpcy5tYXJnaW5hbHNQcm9wcyldKToobz9hLnB1c2gobih0aGlzLm1hcmdpbmFsc1Byb3BzKSk6aT9hLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUtY29udHJvbFwifSxbaSh0aGlzLm1hcmdpbmFsc1Byb3BzKV0pKTp0aGlzLnRpdGxlJiZhLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUtY29udHJvbFwifSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUtdGl0bGVcIn0sdGhpcy50aXRsZSldKSkscyYmKGEucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1zZXBhcmF0b3IgY29sXCJ9KSksYS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLWNvbnRyb2xcIn0sW3ModGhpcy5tYXJnaW5hbHNQcm9wcyldKSkpLDAhPT1hLmxlbmd0aD90KFwiZGl2XCIse3N0YXRpY0NsYXNzOnJ9LGEpOnZvaWQgMCl9fX0sUVRoPXtuYW1lOlwiUVRoXCIscHJvcHM6e3Byb3BzOk9iamVjdCxhdXRvV2lkdGg6Qm9vbGVhbn0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlLGk9dGhpcztpZighdGhpcy5wcm9wcylyZXR1cm4gdChcInRkXCIse2NsYXNzOntcInEtdGFibGUtY29sLWF1dG8td2lkdGhcIjp0aGlzLmF1dG9XaWR0aH19LHRoaXMuJHNsb3RzLmRlZmF1bHQpO3ZhciBzPXRoaXMuJHZub2RlLmtleSxuPVtdLmNvbmNhdCh0aGlzLiRzbG90cy5kZWZhdWx0KTtpZihzKXtpZighKGU9dGhpcy5wcm9wcy5jb2xzTWFwW3NdKSlyZXR1cm59ZWxzZSBlPXRoaXMucHJvcHMuY29sO2Uuc29ydGFibGUmJm5bXCJyaWdodFwiPT09ZS5hbGlnbj9cInVuc2hpZnRcIjpcInB1c2hcIl0odChRSWNvbix7cHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLnRhYmxlLmFycm93VXB9LHN0YXRpY0NsYXNzOmUuX19pY29uQ2xhc3N9KSk7cmV0dXJuIHQoXCJ0aFwiLHtjbGFzczpbZS5fX3RoQ2xhc3Mse1wicS10YWJsZS1jb2wtYXV0by13aWR0aFwiOnRoaXMuYXV0b1dpZHRofV0sb246ZS5zb3J0YWJsZT97Y2xpY2s6ZnVuY3Rpb24oKXtpLnByb3BzLnNvcnQoZSl9fTpudWxsfSxuKX19LFRhYmxlSGVhZGVyPXttZXRob2RzOntnZXRUYWJsZUhlYWRlcjpmdW5jdGlvbih0KXt2YXIgZT1bdGhpcy5nZXRUYWJsZUhlYWRlclJvdyh0KV07cmV0dXJuIHRoaXMubG9hZGluZyYmZS5wdXNoKHQoXCJ0clwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUtcHJvZ3Jlc3MgYW5pbWF0ZS1mYWRlXCJ9LFt0KFwidGRcIix7YXR0cnM6e2NvbHNwYW46XCIxMDAlXCJ9fSxbdChRUHJvZ3Jlc3Mse3Byb3BzOntjb2xvcjp0aGlzLmNvbG9yLGluZGV0ZXJtaW5hdGU6ITAsaGVpZ2h0OlwiMnB4XCJ9fSldKV0pKSx0KFwidGhlYWRcIixlKX0sZ2V0VGFibGVIZWFkZXJSb3c6ZnVuY3Rpb24odCl7dmFyIGUsaT10aGlzLHM9dGhpcy4kc2NvcGVkU2xvdHMuaGVhZGVyLG49dGhpcy4kc2NvcGVkU2xvdHNbXCJoZWFkZXItY2VsbFwiXTtpZihzKXJldHVybiBzKHRoaXMuYWRkVGFibGVIZWFkZXJSb3dNZXRhKHtoZWFkZXI6ITAsY29sczp0aGlzLmNvbXB1dGVkQ29scyxzb3J0OnRoaXMuc29ydCxjb2xzTWFwOnRoaXMuY29tcHV0ZWRDb2xzTWFwfSkpO2U9bj9mdW5jdGlvbih0KXtyZXR1cm4gbih7Y29sOnQsY29sczppLmNvbXB1dGVkQ29scyxzb3J0Omkuc29ydCxjb2xzTWFwOmkuY29tcHV0ZWRDb2xzTWFwfSl9OmZ1bmN0aW9uKGUpe3JldHVybiB0KFFUaCx7a2V5OmUubmFtZSxwcm9wczp7cHJvcHM6e2NvbDplLGNvbHM6aS5jb21wdXRlZENvbHMsc29ydDppLnNvcnQsY29sc01hcDppLmNvbXB1dGVkQ29sc01hcH19LHN0eWxlOmUuc3R5bGUsY2xhc3M6ZS5jbGFzc2VzfSxlLmxhYmVsKX07dmFyIG89dGhpcy5jb21wdXRlZENvbHMubWFwKGUpO3JldHVybiB0aGlzLnNpbmdsZVNlbGVjdGlvbiYmIXRoaXMuZ3JpZD9vLnVuc2hpZnQodChcInRoXCIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1jb2wtYXV0by13aWR0aFwifSxbXCIgXCJdKSk6dGhpcy5tdWx0aXBsZVNlbGVjdGlvbiYmby51bnNoaWZ0KHQoXCJ0aFwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUtY29sLWF1dG8td2lkdGhcIn0sW3QoUUNoZWNrYm94LHtwcm9wczp7Y29sb3I6dGhpcy5jb2xvcix2YWx1ZTp0aGlzLnNvbWVSb3dzU2VsZWN0ZWQ/bnVsbDp0aGlzLmFsbFJvd3NTZWxlY3RlZCxkYXJrOnRoaXMuZGFya30sb246e2lucHV0OmZ1bmN0aW9uKHQpe2kuc29tZVJvd3NTZWxlY3RlZCYmKHQ9ITEpLGkuX191cGRhdGVTZWxlY3Rpb24oaS5jb21wdXRlZFJvd3MubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0W2kucm93S2V5XX0pLGkuY29tcHV0ZWRSb3dzLHQpfX19KV0pKSx0KFwidHJcIixvKX0sYWRkVGFibGVIZWFkZXJSb3dNZXRhOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24mJihPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcInNlbGVjdGVkXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBlLnNvbWVSb3dzU2VsZWN0ZWQ/XCJzb21lXCI6ZS5hbGxSb3dzU2VsZWN0ZWR9LHNldDpmdW5jdGlvbih0KXtlLnNvbWVSb3dzU2VsZWN0ZWQmJih0PSExKSxlLl9fdXBkYXRlU2VsZWN0aW9uKGUuY29tcHV0ZWRSb3dzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdFtlLnJvd0tleV19KSxlLmNvbXB1dGVkUm93cyx0KX19KSx0LnBhcnRpYWxTZWxlY3RlZD10aGlzLnNvbWVSb3dzU2VsZWN0ZWQsdC5tdWx0aXBsZVNlbGVjdD0hMCksdH19fSxUYWJsZUJvZHk9e21ldGhvZHM6e2dldFRhYmxlQm9keTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dGhpcy4kc2NvcGVkU2xvdHMuYm9keSxzPXRoaXMuJHNjb3BlZFNsb3RzW1wiYm9keS1jZWxsXCJdLG49dGhpcy4kc2NvcGVkU2xvdHNbXCJ0b3Atcm93XCJdLG89dGhpcy4kc2NvcGVkU2xvdHNbXCJib3R0b20tcm93XCJdLHI9W107cmV0dXJuIHI9aT90aGlzLmNvbXB1dGVkUm93cy5tYXAoZnVuY3Rpb24odCl7dmFyIHM9dFtlLnJvd0tleV0sbj1lLmlzUm93U2VsZWN0ZWQocyk7cmV0dXJuIGkoZS5hZGRCb2R5Um93TWV0YSh7a2V5OnMscm93OnQsY29sczplLmNvbXB1dGVkQ29scyxjb2xzTWFwOmUuY29tcHV0ZWRDb2xzTWFwLF9fdHJDbGFzczpuP1wic2VsZWN0ZWRcIjpcIlwifSkpfSk6dGhpcy5jb21wdXRlZFJvd3MubWFwKGZ1bmN0aW9uKGkpe3ZhciBuPWlbZS5yb3dLZXldLG89ZS5pc1Jvd1NlbGVjdGVkKG4pLHI9cz9lLmNvbXB1dGVkQ29scy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHMoZS5hZGRCb2R5Q2VsbE1ldGFEYXRhKHtyb3c6aSxjb2w6dH0pKX0pOmUuY29tcHV0ZWRDb2xzLm1hcChmdW5jdGlvbihzKXt2YXIgbj1lLiRzY29wZWRTbG90c1tcImJvZHktY2VsbC1cIitzLm5hbWVdO3JldHVybiBuP24oZS5hZGRCb2R5Q2VsbE1ldGFEYXRhKHtyb3c6aSxjb2w6c30pKTp0KFwidGRcIix7c3RhdGljQ2xhc3M6cy5fX3RkQ2xhc3Msc3R5bGU6cy5zdHlsZSxjbGFzczpzLmNsYXNzZXN9LGUuZ2V0Q2VsbFZhbHVlKHMsaSkpfSk7cmV0dXJuIGUuaGFzU2VsZWN0aW9uTW9kZSYmci51bnNoaWZ0KHQoXCJ0ZFwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUtY29sLWF1dG8td2lkdGhcIn0sW3QoUUNoZWNrYm94LHtwcm9wczp7dmFsdWU6byxjb2xvcjplLmNvbG9yLGRhcms6ZS5kYXJrfSxvbjp7aW5wdXQ6ZnVuY3Rpb24odCl7ZS5fX3VwZGF0ZVNlbGVjdGlvbihbbl0sW2ldLHQpfX19KV0pKSx0KFwidHJcIix7a2V5Om4sY2xhc3M6e3NlbGVjdGVkOm99fSxyKX0pLG4mJnIudW5zaGlmdChuKHtjb2xzOnRoaXMuY29tcHV0ZWRDb2xzfSkpLG8mJnIucHVzaChvKHtjb2xzOnRoaXMuY29tcHV0ZWRDb2xzfSkpLHQoXCJ0Ym9keVwiLHIpfSxhZGRCb2R5Um93TWV0YTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0aGlzLmhhc1NlbGVjdGlvbk1vZGUmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwic2VsZWN0ZWRcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGUuaXNSb3dTZWxlY3RlZCh0LmtleSl9LHNldDpmdW5jdGlvbihpKXtlLl9fdXBkYXRlU2VsZWN0aW9uKFt0LmtleV0sW3Qucm93XSxpKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcImV4cGFuZFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMD09PWUucm93c0V4cGFuZGVkW3Qua2V5XX0sc2V0OmZ1bmN0aW9uKGkpe2UuJHNldChlLnJvd3NFeHBhbmRlZCx0LmtleSxpKX19KSx0LmNvbHM9dC5jb2xzLm1hcChmdW5jdGlvbihpKXt2YXIgcz1PYmplY3QuYXNzaWduKHt9LGkpO3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkocyxcInZhbHVlXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBlLmdldENlbGxWYWx1ZShpLHQucm93KX19KSxzfSksdH0sYWRkQm9keUNlbGxNZXRhRGF0YTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcInZhbHVlXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBlLmdldENlbGxWYWx1ZSh0LmNvbCx0LnJvdyl9fSksdH0sZ2V0Q2VsbFZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9XCJmdW5jdGlvblwiPT10eXBlb2YgdC5maWVsZD90LmZpZWxkKGUpOmVbdC5maWVsZF07cmV0dXJuIHQuZm9ybWF0P3QuZm9ybWF0KGkpOml9fX0sQm90dG9tPXtjb21wdXRlZDp7bmF2SWNvbjpmdW5jdGlvbigpe3ZhciB0PVt0aGlzLiRxLmljb24udGFibGUucHJldlBhZ2UsdGhpcy4kcS5pY29uLnRhYmxlLm5leHRQYWdlXTtyZXR1cm4gdGhpcy4kcS5pMThuLnJ0bD90LnJldmVyc2UoKTp0fX0sbWV0aG9kczp7Z2V0Qm90dG9tOmZ1bmN0aW9uKHQpe2lmKCF0aGlzLmhpZGVCb3R0b20pe2lmKHRoaXMubm90aGluZ1RvRGlzcGxheSl7dmFyIGU9dGhpcy5maWx0ZXI/dGhpcy5ub1Jlc3VsdHNMYWJlbHx8dGhpcy4kcS5pMThuLnRhYmxlLm5vUmVzdWx0czp0aGlzLmxvYWRpbmc/dGhpcy5sb2FkaW5nTGFiZWx8fHRoaXMuJHEuaTE4bi50YWJsZS5sb2FkaW5nOnRoaXMubm9EYXRhTGFiZWx8fHRoaXMuJHEuaTE4bi50YWJsZS5ub0RhdGE7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLWJvdHRvbSByb3cgaXRlbXMtY2VudGVyIHEtdGFibGUtbm9kYXRhXCJ9LFt0KFFJY29uLHtwcm9wczp7bmFtZTp0aGlzLiRxLmljb24udGFibGUud2FybmluZ319KSxlXSl9dmFyIGk9dGhpcy4kc2NvcGVkU2xvdHMuYm90dG9tO3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1ib3R0b20gcm93IGl0ZW1zLWNlbnRlclwiLGNsYXNzOmk/bnVsbDpcImp1c3RpZnktZW5kXCJ9LGk/W2kodGhpcy5tYXJnaW5hbHNQcm9wcyldOnRoaXMuZ2V0UGFnaW5hdGlvblJvdyh0KSl9fSxnZXRQYWdpbmF0aW9uUm93OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT10aGlzLmNvbXB1dGVkUGFnaW5hdGlvbi5yb3dzUGVyUGFnZSxzPXRoaXMucGFnaW5hdGlvbkxhYmVsfHx0aGlzLiRxLmkxOG4udGFibGUucGFnaW5hdGlvbixuPXRoaXMuJHNjb3BlZFNsb3RzLnBhZ2luYXRpb247cmV0dXJuW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLWNvbnRyb2xcIn0sW3QoXCJkaXZcIixbdGhpcy5oYXNTZWxlY3Rpb25Nb2RlJiZ0aGlzLnJvd3NTZWxlY3RlZE51bWJlcj4wPyh0aGlzLnNlbGVjdGVkUm93c0xhYmVsfHx0aGlzLiRxLmkxOG4udGFibGUuc2VsZWN0ZWRSZWNvcmRzKSh0aGlzLnJvd3NTZWxlY3RlZE51bWJlcik6XCJcIl0pXSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUtc2VwYXJhdG9yIGNvbFwifSksdGhpcy5yb3dzUGVyUGFnZU9wdGlvbnMubGVuZ3RoPjEmJnQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLWNvbnRyb2xcIn0sW3QoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1ib3R0b20taXRlbVwifSxbdGhpcy5yb3dzUGVyUGFnZUxhYmVsfHx0aGlzLiRxLmkxOG4udGFibGUucmVjb3Jkc1BlclBhZ2VdKSx0KFFTZWxlY3Qse3N0YXRpY0NsYXNzOlwiaW5saW5lIHEtdGFibGUtYm90dG9tLWl0ZW1cIixwcm9wczp7Y29sb3I6dGhpcy5jb2xvcix2YWx1ZTppLG9wdGlvbnM6dGhpcy5jb21wdXRlZFJvd3NQZXJQYWdlT3B0aW9ucyxkYXJrOnRoaXMuZGFyayxoaWRlVW5kZXJsaW5lOiEwfSxvbjp7aW5wdXQ6ZnVuY3Rpb24odCl7ZS5zZXRQYWdpbmF0aW9uKHtwYWdlOjEscm93c1BlclBhZ2U6dH0pfX19KV0pfHx2b2lkIDAsdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUtY29udHJvbFwifSxbbj9uKHRoaXMubWFyZ2luYWxzUHJvcHMpOlt0KFwic3BhblwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUtYm90dG9tLWl0ZW1cIn0sW2k/cyh0aGlzLmZpcnN0Um93SW5kZXgrMSxNYXRoLm1pbih0aGlzLmxhc3RSb3dJbmRleCx0aGlzLmNvbXB1dGVkUm93c051bWJlciksdGhpcy5jb21wdXRlZFJvd3NOdW1iZXIpOnMoMSx0aGlzLmNvbXB1dGVkUm93c051bWJlcix0aGlzLmNvbXB1dGVkUm93c051bWJlcildKSx0KFFCdG4se3Byb3BzOntjb2xvcjp0aGlzLmNvbG9yLHJvdW5kOiEwLGljb246dGhpcy5uYXZJY29uWzBdLGRlbnNlOiEwLGZsYXQ6ITAsZGlzYWJsZTp0aGlzLmlzRmlyc3RQYWdlfSxvbjp7Y2xpY2s6dGhpcy5wcmV2UGFnZX19KSx0KFFCdG4se3Byb3BzOntjb2xvcjp0aGlzLmNvbG9yLHJvdW5kOiEwLGljb246dGhpcy5uYXZJY29uWzFdLGRlbnNlOiEwLGZsYXQ6ITAsZGlzYWJsZTp0aGlzLmlzTGFzdFBhZ2V9LG9uOntjbGljazp0aGlzLm5leHRQYWdlfX0pXV0pXX19fTtmdW5jdGlvbiBzb3J0RGF0ZSh0LGUpe3JldHVybiBuZXcgRGF0ZSh0KS1uZXcgRGF0ZShlKX12YXIgU29ydD17cHJvcHM6e3NvcnRNZXRob2Q6e3R5cGU6RnVuY3Rpb24sZGVmYXVsdDpmdW5jdGlvbih0LGUsaSl7dmFyIHM9dGhpcy5jb2x1bW5zLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQubmFtZT09PWV9KTtpZihudWxsPT09c3x8dm9pZCAwPT09cy5maWVsZClyZXR1cm4gdDt2YXIgbj1pPy0xOjEsbz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBzLmZpZWxkP2Z1bmN0aW9uKHQpe3JldHVybiBzLmZpZWxkKHQpfTpmdW5jdGlvbih0KXtyZXR1cm4gdFtzLmZpZWxkXX07cmV0dXJuIHQuc29ydChmdW5jdGlvbih0LGUpe3ZhciBpLHI9byh0KSxhPW8oZSk7cmV0dXJuIG51bGw9PT1yfHx2b2lkIDA9PT1yPy0xKm46bnVsbD09PWF8fHZvaWQgMD09PWE/MSpuOnMuc29ydD9zLnNvcnQocixhKSpuOmlzTnVtYmVyKHIpJiZpc051bWJlcihhKT8oci1hKSpuOmlzRGF0ZShyKSYmaXNEYXRlKGEpP3NvcnREYXRlKHIsYSkqbjpcImJvb2xlYW5cIj09dHlwZW9mIHImJlwiYm9vbGVhblwiPT10eXBlb2YgYT8odC1lKSpuOihyPShpPVtyLGFdLm1hcChmdW5jdGlvbih0KXtyZXR1cm4odCtcIlwiKS50b0xvd2VyQ2FzZSgpfSkpWzBdKTwoYT1pWzFdKT8tMSpuOnI9PT1hPzA6bn0pfX19LGNvbXB1dGVkOntjb2x1bW5Ub1NvcnQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNvbXB1dGVkUGFnaW5hdGlvbi5zb3J0Qnk7aWYodClyZXR1cm4gdGhpcy5jb2x1bW5zLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIGUubmFtZT09PXR9KXx8bnVsbH19LG1ldGhvZHM6e3NvcnQ6ZnVuY3Rpb24odCl7dD09PU9iamVjdCh0KSYmKHQ9dC5uYW1lKTt2YXIgZT10aGlzLmNvbXB1dGVkUGFnaW5hdGlvbixpPWUuc29ydEJ5LHM9ZS5kZXNjZW5kaW5nO2khPT10PyhpPXQscz0hMSk6dGhpcy5iaW5hcnlTdGF0ZVNvcnQ/cz0hczpzP2k9bnVsbDpzPSEwLHRoaXMuc2V0UGFnaW5hdGlvbih7c29ydEJ5OmksZGVzY2VuZGluZzpzLHBhZ2U6MX0pfX19LEZpbHRlcj17cHJvcHM6e2ZpbHRlcjpbU3RyaW5nLE9iamVjdF0sZmlsdGVyTWV0aG9kOnt0eXBlOkZ1bmN0aW9uLGRlZmF1bHQ6ZnVuY3Rpb24odCxlLGkscyl7dm9pZCAwPT09aSYmKGk9dGhpcy5jb21wdXRlZENvbHMpLHZvaWQgMD09PXMmJihzPXRoaXMuZ2V0Q2VsbFZhbHVlKTt2YXIgbj1lP2UudG9Mb3dlckNhc2UoKTpcIlwiO3JldHVybiB0LmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gaS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybi0xIT09KHMoZSx0KStcIlwiKS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yobil9KX0pfX19LHdhdGNoOntmaWx0ZXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7dC5zZXRQYWdpbmF0aW9uKHtwYWdlOjF9LCEwKX0pfX19O2Z1bmN0aW9uIHNhbWVQYWdpbmF0aW9uKHQsZSl7Zm9yKHZhciBpIGluIGUpaWYoZVtpXSE9PXRbaV0pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gZml4UGFnaW5hdGlvbih0KXtyZXR1cm4gdC5wYWdlPDEmJih0LnBhZ2U9MSksdm9pZCAwIT09dC5yb3dzUGVyUGFnZSYmdC5yb3dzUGVyUGFnZTwxJiYodC5yb3dzUGVyUGFnZT0wKSx0fXZhciBQYWdpbmF0aW9uPXtwcm9wczp7cGFnaW5hdGlvbjpPYmplY3Qscm93c1BlclBhZ2VPcHRpb25zOnt0eXBlOkFycmF5LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm5bMyw1LDcsMTAsMTUsMjAsMjUsNTAsMF19fX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntpbm5lclBhZ2luYXRpb246e3NvcnRCeTpudWxsLGRlc2NlbmRpbmc6ITEscGFnZToxLHJvd3NQZXJQYWdlOjV9fX0sY29tcHV0ZWQ6e2NvbXB1dGVkUGFnaW5hdGlvbjpmdW5jdGlvbigpe3JldHVybiBmaXhQYWdpbmF0aW9uKE9iamVjdC5hc3NpZ24oe30sdGhpcy5pbm5lclBhZ2luYXRpb24sdGhpcy5wYWdpbmF0aW9uKSl9LGZpcnN0Um93SW5kZXg6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNvbXB1dGVkUGFnaW5hdGlvbjtyZXR1cm4odC5wYWdlLTEpKnQucm93c1BlclBhZ2V9LGxhc3RSb3dJbmRleDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuY29tcHV0ZWRQYWdpbmF0aW9uO3JldHVybiB0LnBhZ2UqdC5yb3dzUGVyUGFnZX0saXNGaXJzdFBhZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMuY29tcHV0ZWRQYWdpbmF0aW9uLnBhZ2V9LHBhZ2VzTnVtYmVyOmZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgubWF4KDEsTWF0aC5jZWlsKHRoaXMuY29tcHV0ZWRSb3dzTnVtYmVyL3RoaXMuY29tcHV0ZWRQYWdpbmF0aW9uLnJvd3NQZXJQYWdlKSl9LGlzTGFzdFBhZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMubGFzdFJvd0luZGV4fHx0aGlzLmNvbXB1dGVkUGFnaW5hdGlvbi5wYWdlPj10aGlzLnBhZ2VzTnVtYmVyfSxjb21wdXRlZFJvd3NQZXJQYWdlT3B0aW9uczpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMucm93c1BlclBhZ2VPcHRpb25zLm1hcChmdW5jdGlvbihlKXtyZXR1cm57bGFiZWw6MD09PWU/dC4kcS5pMThuLnRhYmxlLmFsbFJvd3M6XCJcIitlLHZhbHVlOmV9fSl9fSx3YXRjaDp7cGFnZXNOdW1iZXI6ZnVuY3Rpb24odCxlKXtpZih0IT09ZSl7dmFyIGk9dGhpcy5jb21wdXRlZFBhZ2luYXRpb24ucGFnZTt0JiYhaT90aGlzLnNldFBhZ2luYXRpb24oe3BhZ2U6MX0pOnQ8aSYmdGhpcy5zZXRQYWdpbmF0aW9uKHtwYWdlOnR9KX19fSxtZXRob2RzOntfX3NlbmRTZXJ2ZXJSZXF1ZXN0OmZ1bmN0aW9uKHQpe3RoaXMucmVxdWVzdFNlcnZlckludGVyYWN0aW9uKHtwYWdpbmF0aW9uOnQsZmlsdGVyOnRoaXMuZmlsdGVyfSl9LHNldFBhZ2luYXRpb246ZnVuY3Rpb24odCxlKXt2YXIgaT1maXhQYWdpbmF0aW9uKE9iamVjdC5hc3NpZ24oe30sdGhpcy5jb21wdXRlZFBhZ2luYXRpb24sdCkpO3NhbWVQYWdpbmF0aW9uKHRoaXMuY29tcHV0ZWRQYWdpbmF0aW9uLGkpP3RoaXMuaXNTZXJ2ZXJTaWRlJiZlJiZ0aGlzLl9fc2VuZFNlcnZlclJlcXVlc3QoaSk6dGhpcy5pc1NlcnZlclNpZGU/dGhpcy5fX3NlbmRTZXJ2ZXJSZXF1ZXN0KGkpOnRoaXMucGFnaW5hdGlvbj90aGlzLiRlbWl0KFwidXBkYXRlOnBhZ2luYXRpb25cIixpKTp0aGlzLmlubmVyUGFnaW5hdGlvbj1pfSxwcmV2UGFnZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuY29tcHV0ZWRQYWdpbmF0aW9uLnBhZ2U7dD4xJiZ0aGlzLnNldFBhZ2luYXRpb24oe3BhZ2U6dC0xfSl9LG5leHRQYWdlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb21wdXRlZFBhZ2luYXRpb24sZT10LnBhZ2UsaT10LnJvd3NQZXJQYWdlO3RoaXMubGFzdFJvd0luZGV4PjAmJmUqaTx0aGlzLmNvbXB1dGVkUm93c051bWJlciYmdGhpcy5zZXRQYWdpbmF0aW9uKHtwYWdlOmUrMX0pfX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuJGVtaXQoXCJ1cGRhdGU6cGFnaW5hdGlvblwiLE9iamVjdC5hc3NpZ24oe30sdGhpcy5jb21wdXRlZFBhZ2luYXRpb24pKX19LFJvd1NlbGVjdGlvbj17cHJvcHM6e3NlbGVjdGlvbjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcIm5vbmVcIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1wic2luZ2xlXCIsXCJtdWx0aXBsZVwiLFwibm9uZVwiXS5pbmNsdWRlcyh0KX19LHNlbGVjdGVkOnt0eXBlOkFycmF5LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm5bXX19fSxjb21wdXRlZDp7c2VsZWN0ZWRLZXlzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXt9O3JldHVybiB0aGlzLnNlbGVjdGVkLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZVt0LnJvd0tleV19KS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2VbdF09ITB9KSxlfSxoYXNTZWxlY3Rpb25Nb2RlOmZ1bmN0aW9uKCl7cmV0dXJuXCJub25lXCIhPT10aGlzLnNlbGVjdGlvbn0sc2luZ2xlU2VsZWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuXCJzaW5nbGVcIj09PXRoaXMuc2VsZWN0aW9ufSxtdWx0aXBsZVNlbGVjdGlvbjpmdW5jdGlvbigpe3JldHVyblwibXVsdGlwbGVcIj09PXRoaXMuc2VsZWN0aW9ufSxhbGxSb3dzU2VsZWN0ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKHRoaXMubXVsdGlwbGVTZWxlY3Rpb24pcmV0dXJuIHRoaXMuY29tcHV0ZWRSb3dzLmxlbmd0aD4wJiZ0aGlzLmNvbXB1dGVkUm93cy5ldmVyeShmdW5jdGlvbihlKXtyZXR1cm4hMD09PXQuc2VsZWN0ZWRLZXlzW2VbdC5yb3dLZXldXX0pfSxzb21lUm93c1NlbGVjdGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih0aGlzLm11bHRpcGxlU2VsZWN0aW9uKXJldHVybiF0aGlzLmFsbFJvd3NTZWxlY3RlZCYmdGhpcy5jb21wdXRlZFJvd3Muc29tZShmdW5jdGlvbihlKXtyZXR1cm4hMD09PXQuc2VsZWN0ZWRLZXlzW2VbdC5yb3dLZXldXX0pfSxyb3dzU2VsZWN0ZWROdW1iZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3RlZC5sZW5ndGh9fSxtZXRob2RzOntpc1Jvd1NlbGVjdGVkOmZ1bmN0aW9uKHQpe3JldHVybiEwPT09dGhpcy5zZWxlY3RlZEtleXNbdF19LGNsZWFyU2VsZWN0aW9uOmZ1bmN0aW9uKCl7dGhpcy4kZW1pdChcInVwZGF0ZTpzZWxlY3RlZFwiLFtdKX0sX191cGRhdGVTZWxlY3Rpb246ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXRoaXM7dGhpcy5zaW5nbGVTZWxlY3Rpb24/dGhpcy4kZW1pdChcInVwZGF0ZTpzZWxlY3RlZFwiLGk/ZTpbXSk6dGhpcy4kZW1pdChcInVwZGF0ZTpzZWxlY3RlZFwiLGk/dGhpcy5zZWxlY3RlZC5jb25jYXQoZSk6dGhpcy5zZWxlY3RlZC5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIXQuaW5jbHVkZXMoZVtzLnJvd0tleV0pfSkpfX19LENvbHVtblNlbGVjdGlvbj17cHJvcHM6e3Zpc2libGVDb2x1bW5zOkFycmF5fSxjb21wdXRlZDp7Y29tcHV0ZWRDb2xzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuY29tcHV0ZWRQYWdpbmF0aW9uLGk9ZS5zb3J0Qnkscz1lLmRlc2NlbmRpbmc7cmV0dXJuKHRoaXMudmlzaWJsZUNvbHVtbnM/dGhpcy5jb2x1bW5zLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXF1aXJlZHx8dC52aXNpYmxlQ29sdW1ucy5pbmNsdWRlcyhlLm5hbWUpfSk6dGhpcy5jb2x1bW5zKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuYWxpZ249dC5hbGlnbnx8XCJyaWdodFwiLHQuX19pY29uQ2xhc3M9XCJxLXRhYmxlLXNvcnQtaWNvbiBxLXRhYmxlLXNvcnQtaWNvbi1cIit0LmFsaWduLHQuX190aENsYXNzPVwidGV4dC1cIit0LmFsaWduKyh0LnNvcnRhYmxlP1wiIHNvcnRhYmxlXCI6XCJcIikrKHQubmFtZT09PWk/XCIgc29ydGVkIFwiKyhzP1wic29ydC1kZXNjXCI6XCJcIik6XCJcIiksdC5fX3RkQ2xhc3M9XCJ0ZXh0LVwiK3QuYWxpZ24sdH0pfSxjb21wdXRlZENvbHNNYXA6ZnVuY3Rpb24oKXt2YXIgdD17fTtyZXR1cm4gdGhpcy5jb21wdXRlZENvbHMuZm9yRWFjaChmdW5jdGlvbihlKXt0W2UubmFtZV09ZX0pLHR9fX0sRXhwYW5kPXtkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3Jvd3NFeHBhbmRlZDp7fX19fSxRVGFibGU9e25hbWU6XCJRVGFibGVcIixtaXhpbnM6W0Z1bGxzY3JlZW5NaXhpbixUb3AsVGFibGVIZWFkZXIsVGFibGVCb2R5LEJvdHRvbSxTb3J0LEZpbHRlcixQYWdpbmF0aW9uLFJvd1NlbGVjdGlvbixDb2x1bW5TZWxlY3Rpb24sRXhwYW5kXSxwcm9wczp7ZGF0YTp7dHlwZTpBcnJheSxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuW119fSxyb3dLZXk6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJpZFwifSxjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImdyZXktOFwifSxncmlkOkJvb2xlYW4sZGVuc2U6Qm9vbGVhbixjb2x1bW5zOkFycmF5LGxvYWRpbmc6Qm9vbGVhbix0aXRsZTpTdHJpbmcsaGlkZUhlYWRlcjpCb29sZWFuLGhpZGVCb3R0b206Qm9vbGVhbixkYXJrOkJvb2xlYW4sc2VwYXJhdG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiaG9yaXpvbnRhbFwiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJob3Jpem9udGFsXCIsXCJ2ZXJ0aWNhbFwiLFwiY2VsbFwiLFwibm9uZVwiXS5pbmNsdWRlcyh0KX19LGJpbmFyeVN0YXRlU29ydDpCb29sZWFuLG5vRGF0YUxhYmVsOlN0cmluZyxub1Jlc3VsdHNMYWJlbDpTdHJpbmcsbG9hZGluZ0xhYmVsOlN0cmluZyxzZWxlY3RlZFJvd3NMYWJlbDpGdW5jdGlvbixyb3dzUGVyUGFnZUxhYmVsOlN0cmluZyxwYWdpbmF0aW9uTGFiZWw6RnVuY3Rpb24sdGFibGVTdHlsZTp7dHlwZTpbU3RyaW5nLEFycmF5LE9iamVjdF0sZGVmYXVsdDpcIlwifSx0YWJsZUNsYXNzOnt0eXBlOltTdHJpbmcsQXJyYXksT2JqZWN0XSxkZWZhdWx0OlwiXCJ9fSxjb21wdXRlZDp7Y29tcHV0ZWREYXRhOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5kYXRhLnNsaWNlKCkubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19pbmRleD1lLHR9KTtpZigwPT09dC5sZW5ndGgpcmV0dXJue3Jvd3NOdW1iZXI6MCxyb3dzOltdfTtpZih0aGlzLmlzU2VydmVyU2lkZSlyZXR1cm57cm93czp0fTt2YXIgZT10aGlzLmNvbXB1dGVkUGFnaW5hdGlvbixpPWUuc29ydEJ5LHM9ZS5kZXNjZW5kaW5nLG49ZS5yb3dzUGVyUGFnZTt0aGlzLmZpbHRlciYmKHQ9dGhpcy5maWx0ZXJNZXRob2QodCx0aGlzLmZpbHRlcix0aGlzLmNvbXB1dGVkQ29scyx0aGlzLmdldENlbGxWYWx1ZSkpLHRoaXMuY29sdW1uVG9Tb3J0JiYodD10aGlzLnNvcnRNZXRob2QodCxpLHMpKTt2YXIgbz10Lmxlbmd0aDtyZXR1cm4gbiYmKHQ9dC5zbGljZSh0aGlzLmZpcnN0Um93SW5kZXgsdGhpcy5sYXN0Um93SW5kZXgpKSx7cm93c051bWJlcjpvLHJvd3M6dH19LGNvbXB1dGVkUm93czpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbXB1dGVkRGF0YS5yb3dzfSxjb21wdXRlZFJvd3NOdW1iZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1NlcnZlclNpZGU/dGhpcy5jb21wdXRlZFBhZ2luYXRpb24ucm93c051bWJlcnx8MDp0aGlzLmNvbXB1dGVkRGF0YS5yb3dzTnVtYmVyfSxub3RoaW5nVG9EaXNwbGF5OmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLmNvbXB1dGVkUm93cy5sZW5ndGh9LGlzU2VydmVyU2lkZTpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLmNvbXB1dGVkUGFnaW5hdGlvbi5yb3dzTnVtYmVyfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse2NsYXNzOntcInEtdGFibGUtZ3JpZFwiOnRoaXMuZ3JpZCxcInEtdGFibGUtY29udGFpbmVyXCI6ITAsXCJxLXRhYmxlLWRhcmtcIjp0aGlzLmRhcmssXCJxLXRhYmxlLWRlbnNlXCI6dGhpcy5kZW5zZSxmdWxsc2NyZWVuOnRoaXMuaW5GdWxsc2NyZWVuLHNjcm9sbDp0aGlzLmluRnVsbHNjcmVlbn19LFt0aGlzLmdldFRvcCh0KSx0aGlzLmdldEJvZHkodCksdGhpcy5nZXRCb3R0b20odCldKX0sbWV0aG9kczp7cmVxdWVzdFNlcnZlckludGVyYWN0aW9uOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtlLiRlbWl0KFwicmVxdWVzdFwiLHtwYWdpbmF0aW9uOnQucGFnaW5hdGlvbnx8ZS5jb21wdXRlZFBhZ2luYXRpb24sZmlsdGVyOnQuZmlsdGVyfHxlLmZpbHRlcixnZXRDZWxsVmFsdWU6ZS5nZXRDZWxsVmFsdWV9KX0pfSxnZXRCb2R5OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT0hdGhpcy5oaWRlSGVhZGVyO2lmKHRoaXMuZ3JpZCl7dmFyIHM9dGhpcy4kc2NvcGVkU2xvdHMuaXRlbTtpZih2b2lkIDAhPT1zKXJldHVybltpJiZ0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1taWRkbGUgc2Nyb2xsXCJ9LFt0KFwidGFibGVcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlXCIrKHRoaXMuZGFyaz9cIiBxLXRhYmxlLWRhcmtcIjpcIlwiKX0sW3RoaXMuZ2V0VGFibGVIZWFkZXIodCldKV0pfHxudWxsLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJyb3dcIn0sdGhpcy5jb21wdXRlZFJvd3MubWFwKGZ1bmN0aW9uKHQpe3ZhciBpPXRbZS5yb3dLZXldLG49ZS5pc1Jvd1NlbGVjdGVkKGkpO3JldHVybiBzKGUuYWRkQm9keVJvd01ldGEoe2tleTppLHJvdzp0LGNvbHM6ZS5jb21wdXRlZENvbHMsY29sc01hcDplLmNvbXB1dGVkQ29sc01hcCxfX3RyQ2xhc3M6bj9cInNlbGVjdGVkXCI6XCJcIn0pKX0pKV19cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLW1pZGRsZSBzY3JvbGxcIixjbGFzczp0aGlzLnRhYmxlQ2xhc3Msc3R5bGU6dGhpcy50YWJsZVN0eWxlfSxbdChcInRhYmxlXCIse3N0YXRpY0NsYXNzOlwicS10YWJsZSBxLXRhYmxlLVwiK3RoaXMuc2VwYXJhdG9yK1wiLXNlcGFyYXRvclwiKyh0aGlzLmRhcms/XCIgcS10YWJsZS1kYXJrXCI6XCJcIil9LFtpJiZ0aGlzLmdldFRhYmxlSGVhZGVyKHQpfHxudWxsLHRoaXMuZ2V0VGFibGVCb2R5KHQpXSldKX19fSxRVHI9e25hbWU6XCJRVHJcIixwcm9wczp7cHJvcHM6T2JqZWN0fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJ0clwiLCF0aGlzLnByb3BzfHx0aGlzLnByb3BzLmhlYWRlcj97fTp7Y2xhc3M6dGhpcy5wcm9wcy5fX3RyQ2xhc3N9LHRoaXMuJHNsb3RzLmRlZmF1bHQpfX0sUVRkPXtuYW1lOlwiUVRkXCIscHJvcHM6e3Byb3BzOk9iamVjdCxhdXRvV2lkdGg6Qm9vbGVhbn0scmVuZGVyOmZ1bmN0aW9uKHQpe2lmKCF0aGlzLnByb3BzKXJldHVybiB0KFwidGRcIix7Y2xhc3M6e1wicS10YWJsZS1jb2wtYXV0by13aWR0aFwiOnRoaXMuYXV0b1dpZHRofX0sdGhpcy4kc2xvdHMuZGVmYXVsdCk7dmFyIGUsaT10aGlzLiR2bm9kZS5rZXk7aWYoaSl7aWYoIShlPXRoaXMucHJvcHMuY29sc01hcFtpXSkpcmV0dXJufWVsc2UgZT10aGlzLnByb3BzLmNvbDtyZXR1cm4gdChcInRkXCIse2NsYXNzOltlLl9fdGRDbGFzcyx7XCJxLXRhYmxlLWNvbC1hdXRvLXdpZHRoXCI6dGhpcy5hdXRvV2lkdGh9XX0sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxRVGFibGVDb2x1bW5zPXtuYW1lOlwiUVRhYmxlQ29sdW1uc1wiLHByb3BzOnt2YWx1ZTp7dHlwZTpBcnJheSxyZXF1aXJlZDohMH0sbGFiZWw6U3RyaW5nLGNvbHVtbnM6e3R5cGU6QXJyYXkscmVxdWlyZWQ6ITB9LGNvbG9yOlN0cmluZyxkYXJrOkJvb2xlYW59LGNvbXB1dGVkOntjb21wdXRlZE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb2x1bW5zLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4hdC5yZXF1aXJlZH0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm57dmFsdWU6dC5uYW1lLGxhYmVsOnQubGFiZWx9fSl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdChRU2VsZWN0LHtwcm9wczp7bXVsdGlwbGU6ITAsdG9nZ2xlOiEwLHZhbHVlOnRoaXMudmFsdWUsb3B0aW9uczp0aGlzLmNvbXB1dGVkT3B0aW9ucyxkaXNwbGF5VmFsdWU6dGhpcy5sYWJlbHx8dGhpcy4kcS5pMThuLnRhYmxlLmNvbHVtbnMsY29sb3I6dGhpcy5jb2xvcixkYXJrOnRoaXMuZGFyayxoaWRlVW5kZXJsaW5lOiEwfSxvbjp7aW5wdXQ6ZnVuY3Rpb24odCl7ZS4kZW1pdChcImlucHV0XCIsdCl9LGNoYW5nZTpmdW5jdGlvbih0KXtlLiRlbWl0KFwiY2hhbmdlXCIsdCl9fX0pfX0sUVRpbWVsaW5lPXtuYW1lOlwiUVRpbWVsaW5lXCIscHJvdmlkZTpmdW5jdGlvbigpe3JldHVybntfX3RpbWVsaW5lOnRoaXN9fSxwcm9wczp7Y29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJwcmltYXJ5XCJ9LHJlc3BvbnNpdmU6Qm9vbGVhbixub0hvdmVyOkJvb2xlYW4sZGFyazpCb29sZWFufSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJ1bFwiLHtzdGF0aWNDbGFzczpcInEtdGltZWxpbmVcIixjbGFzczp7XCJxLXRpbWVsaW5lLWRhcmtcIjp0aGlzLmRhcmssXCJxLXRpbWVsaW5lLXJlc3BvbnNpdmVcIjp0aGlzLnJlc3BvbnNpdmUsXCJxLXRpbWVsaW5lLWhvdmVyXCI6IXRoaXMubm9Ib3Zlcn19LHRoaXMuJHNsb3RzLmRlZmF1bHQpfX0sUVRpbWVsaW5lRW50cnk9e25hbWU6XCJRVGltZWxpbmVFbnRyeVwiLGluamVjdDp7X190aW1lbGluZTp7ZGVmYXVsdDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoXCJRVGltZWxpbmVFbnRyeSBuZWVkcyB0byBiZSBjaGlsZCBvZiBRVGltZWxpbmVcIil9fX0scHJvcHM6e2hlYWRpbmc6Qm9vbGVhbix0YWc6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJoM1wifSxzaWRlOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicmlnaHRcIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1wibGVmdFwiLFwicmlnaHRcIl0uaW5jbHVkZXModCl9fSxpY29uOlN0cmluZyxjb2xvcjpTdHJpbmcsdGl0bGU6U3RyaW5nLHN1YnRpdGxlOlN0cmluZ30sY29tcHV0ZWQ6e2NvbG9yQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm5cInRleHQtXCIrKHRoaXMuY29sb3J8fHRoaXMuX190aW1lbGluZS5jb2xvcil9LGNsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm5bXCJxLXRpbWVsaW5lLWVudHJ5LVwiKyhcImxlZnRcIj09PXRoaXMuc2lkZT9cImxlZnRcIjpcInJpZ2h0XCIpLHRoaXMuaWNvbj9cInEtdGltZWxpbmUtZW50cnktd2l0aC1pY29uXCI6XCJcIl19fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaGVhZGluZz90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10aW1lbGluZS1oZWFkaW5nXCJ9LFt0KFwiZGl2XCIpLHQoXCJkaXZcIiksdCh0aGlzLnRhZyx7c3RhdGljQ2xhc3M6XCJxLXRpbWVsaW5lLWhlYWRpbmctdGl0bGVcIn0sdGhpcy4kc2xvdHMuZGVmYXVsdCldKTp0KFwibGlcIix7c3RhdGljQ2xhc3M6XCJxLXRpbWVsaW5lLWVudHJ5XCIsY2xhc3M6dGhpcy5jbGFzc2VzfSxbdGhpcy4kc2xvdHMuc3VidGl0bGV8fHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRpbWVsaW5lLXN1YnRpdGxlXCJ9LFt0KFwic3BhblwiLHRoaXMuc3VidGl0bGUpXSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGltZWxpbmUtZG90XCIsY2xhc3M6dGhpcy5jb2xvckNsYXNzfSxbdGhpcy5pY29uP3QoUUljb24se3Byb3BzOntuYW1lOnRoaXMuaWNvbn19KTpudWxsXSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGltZWxpbmUtY29udGVudFwifSwodGhpcy4kc2xvdHMudGl0bGV8fFt0KFwiaDZcIix7c3RhdGljQ2xhc3M6XCJxLXRpbWVsaW5lLXRpdGxlXCJ9LFt0aGlzLnRpdGxlXSldKS5jb25jYXQodGhpcy4kc2xvdHMuZGVmYXVsdCkpXSl9fSxRVG9vbGJhcj17bmFtZTpcIlFUb29sYmFyXCIscHJvcHM6e2NvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSx0ZXh0Q29sb3I6U3RyaW5nLGludmVydGVkOkJvb2xlYW4sZ2xvc3N5OkJvb2xlYW59LGNvbXB1dGVkOntjbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9W1wicS10b29sYmFyLVwiKyh0aGlzLmludmVydGVkP1wiaW52ZXJ0ZWRcIjpcIm5vcm1hbFwiKV07cmV0dXJuIHRoaXMuZ2xvc3N5JiZ0LnB1c2goXCJnbG9zc3lcIiksdGhpcy5pbnZlcnRlZD90LnB1c2goXCJ0ZXh0LVwiKyh0aGlzLnRleHRDb2xvcnx8dGhpcy5jb2xvcikpOih0LnB1c2goXCJiZy1cIit0aGlzLmNvbG9yKSx0LnB1c2goXCJ0ZXh0LVwiKyh0aGlzLnRleHRDb2xvcnx8XCJ3aGl0ZVwiKSkpLHR9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRvb2xiYXIgcm93IG5vLXdyYXAgaXRlbXMtY2VudGVyIHJlbGF0aXZlLXBvc2l0aW9uXCIsY2xhc3M6dGhpcy5jbGFzc2VzfSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFUb29sYmFyVGl0bGU9e25hbWU6XCJRVG9vbGJhclRpdGxlXCIscHJvcHM6e3NocmluazpCb29sZWFufSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRvb2xiYXItdGl0bGVcIixjbGFzczp0aGlzLnNocmluaz9cImNvbC1hdXRvXCI6bnVsbH0sW3RoaXMuJHNsb3RzLmRlZmF1bHQsdGhpcy4kc2xvdHMuc3VidGl0bGU/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdG9vbGJhci1zdWJ0aXRsZVwifSx0aGlzLiRzbG90cy5zdWJ0aXRsZSk6bnVsbF0pfX0sUVRyZWU9e25hbWU6XCJRVHJlZVwiLGRpcmVjdGl2ZXM6e1JpcHBsZTpSaXBwbGV9LHByb3BzOntub2RlczpBcnJheSxub2RlS2V5Ont0eXBlOlN0cmluZyxyZXF1aXJlZDohMH0sbGFiZWxLZXk6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJsYWJlbFwifSxjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImdyZXlcIn0sY29udHJvbENvbG9yOlN0cmluZyx0ZXh0Q29sb3I6U3RyaW5nLGRhcms6Qm9vbGVhbixpY29uOlN0cmluZyx0aWNrU3RyYXRlZ3k6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJub25lXCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcIm5vbmVcIixcInN0cmljdFwiLFwibGVhZlwiLFwibGVhZi1maWx0ZXJlZFwiXS5pbmNsdWRlcyh0KX19LHRpY2tlZDpBcnJheSxleHBhbmRlZDpBcnJheSxzZWxlY3RlZDp7fSxkZWZhdWx0RXhwYW5kQWxsOkJvb2xlYW4sYWNjb3JkaW9uOkJvb2xlYW4sZmlsdGVyOlN0cmluZyxmaWx0ZXJNZXRob2Q6e3R5cGU6RnVuY3Rpb24sZGVmYXVsdDpmdW5jdGlvbih0LGUpe3ZhciBpPWUudG9Mb3dlckNhc2UoKTtyZXR1cm4gdFt0aGlzLmxhYmVsS2V5XSYmdFt0aGlzLmxhYmVsS2V5XS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoaSk+LTF9fSxkdXJhdGlvbjpOdW1iZXIsbm9Ob2Rlc0xhYmVsOlN0cmluZyxub1Jlc3VsdHNMYWJlbDpTdHJpbmd9LGNvbXB1dGVkOntoYXNSaXBwbGU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5ub1JpcHBsZX0sY2xhc3NlczpmdW5jdGlvbigpe3JldHVybltcInRleHQtXCIrdGhpcy5jb2xvcix7XCJxLXRyZWUtZGFya1wiOnRoaXMuZGFya31dfSxoYXNTZWxlY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5zZWxlY3RlZH0sY29tcHV0ZWRJY29uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWNvbnx8dGhpcy4kcS5pY29uLnRyZWUuaWNvbn0sY29tcHV0ZWRDb250cm9sQ29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250cm9sQ29sb3J8fHRoaXMuY29sb3J9LGNvbnRlbnRDbGFzczpmdW5jdGlvbigpe3JldHVyblwidGV4dC1cIisodGhpcy50ZXh0Q29sb3J8fCh0aGlzLmRhcms/XCJ3aGl0ZVwiOlwiYmxhY2tcIikpfSxtZXRhOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXt9LGk9ZnVuY3Rpb24ocyxuKXt2YXIgbz1zLnRpY2tTdHJhdGVneXx8KG4/bi50aWNrU3RyYXRlZ3k6dC50aWNrU3RyYXRlZ3kpLHI9c1t0Lm5vZGVLZXldLGE9cy5jaGlsZHJlbiYmcy5jaGlsZHJlbi5sZW5ndGg+MCxsPSFhLGM9IXMuZGlzYWJsZWQmJnQuaGFzU2VsZWN0aW9uJiYhMSE9PXMuc2VsZWN0YWJsZSxoPSFzLmRpc2FibGVkJiYhMSE9PXMuZXhwYW5kYWJsZSx1PVwibm9uZVwiIT09byxkPVwic3RyaWN0XCI9PT1vLHA9XCJsZWFmLWZpbHRlcmVkXCI9PT1vLGY9XCJsZWFmXCI9PT1vfHxcImxlYWYtZmlsdGVyZWRcIj09PW8sbT0hcy5kaXNhYmxlZCYmITEhPT1zLnRpY2thYmxlO2YmJm0mJm4mJiFuLnRpY2thYmxlJiYobT0hMSk7dmFyIGc9cy5sYXp5O2cmJnQubGF6eVtyXSYmKGc9dC5sYXp5W3JdKTt2YXIgdj17a2V5OnIscGFyZW50Om4saXNQYXJlbnQ6YSxpc0xlYWY6bCxsYXp5OmcsZGlzYWJsZWQ6cy5kaXNhYmxlZCxsaW5rOmN8fGgmJihhfHwhMD09PWcpLGNoaWxkcmVuOltdLG1hdGNoZXNGaWx0ZXI6IXQuZmlsdGVyfHx0LmZpbHRlck1ldGhvZChzLHQuZmlsdGVyKSxzZWxlY3RlZDpyPT09dC5zZWxlY3RlZCYmYyxzZWxlY3RhYmxlOmMsZXhwYW5kZWQ6ISFhJiZ0LmlubmVyRXhwYW5kZWQuaW5jbHVkZXMociksZXhwYW5kYWJsZTpoLG5vVGljazpzLm5vVGlja3x8IWQmJmcmJlwibG9hZGVkXCIhPT1nLHRpY2thYmxlOm0sdGlja1N0cmF0ZWd5Om8saGFzVGlja2luZzp1LHN0cmljdFRpY2tpbmc6ZCxsZWFmRmlsdGVyZWRUaWNraW5nOnAsbGVhZlRpY2tpbmc6Zix0aWNrZWQ6ZD90LmlubmVyVGlja2VkLmluY2x1ZGVzKHIpOiEhbCYmdC5pbm5lclRpY2tlZC5pbmNsdWRlcyhyKX07aWYoZVtyXT12LGEmJih2LmNoaWxkcmVuPXMuY2hpbGRyZW4ubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBpKHQsdil9KSx0LmZpbHRlciYmKHYubWF0Y2hlc0ZpbHRlcnx8KHYubWF0Y2hlc0ZpbHRlcj12LmNoaWxkcmVuLnNvbWUoZnVuY3Rpb24odCl7cmV0dXJuIHQubWF0Y2hlc0ZpbHRlcn0pKSx2Lm1hdGNoZXNGaWx0ZXImJiF2Lm5vVGljayYmIXYuZGlzYWJsZWQmJnYudGlja2FibGUmJnAmJnYuY2hpbGRyZW4uZXZlcnkoZnVuY3Rpb24odCl7cmV0dXJuIXQubWF0Y2hlc0ZpbHRlcnx8dC5ub1RpY2t8fCF0LnRpY2thYmxlfSkmJih2LnRpY2thYmxlPSExKSksdi5tYXRjaGVzRmlsdGVyJiYodi5ub1RpY2t8fGR8fCF2LmNoaWxkcmVuLmV2ZXJ5KGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5vVGlja30pfHwodi5ub1RpY2s9ITApLGYmJih2LnRpY2tlZD0hMSx2LmluZGV0ZXJtaW5hdGU9di5jaGlsZHJlbi5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiB0LmluZGV0ZXJtaW5hdGV9KSwhdi5pbmRldGVybWluYXRlKSkpKXt2YXIgYj12LmNoaWxkcmVuLnJlZHVjZShmdW5jdGlvbih0LGUpe3JldHVybiBlLnRpY2tlZD90KzE6dH0sMCk7Yj09PXYuY2hpbGRyZW4ubGVuZ3RoP3YudGlja2VkPSEwOmI+MCYmKHYuaW5kZXRlcm1pbmF0ZT0hMCl9cmV0dXJuIHZ9O3JldHVybiB0aGlzLm5vZGVzLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIGkodCxudWxsKX0pLGV9fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2xhenk6e30saW5uZXJUaWNrZWQ6dGhpcy50aWNrZWR8fFtdLGlubmVyRXhwYW5kZWQ6dGhpcy5leHBhbmRlZHx8W119fSx3YXRjaDp7dGlja2VkOmZ1bmN0aW9uKHQpe3RoaXMuaW5uZXJUaWNrZWQ9dH0sZXhwYW5kZWQ6ZnVuY3Rpb24odCl7dGhpcy5pbm5lckV4cGFuZGVkPXR9fSxtZXRob2RzOntnZXROb2RlQnlLZXk6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPVtdLnJlZHVjZSxzPWZ1bmN0aW9uKG4sbyl7cmV0dXJuIG58fCFvP246QXJyYXkuaXNBcnJheShvKT9pLmNhbGwoT2JqZWN0KG8pLHMsbik6b1tlLm5vZGVLZXldPT09dD9vOm8uY2hpbGRyZW4/cyhudWxsLG8uY2hpbGRyZW4pOnZvaWQgMH07cmV0dXJuIHMobnVsbCx0aGlzLm5vZGVzKX0sZ2V0VGlja2VkTm9kZXM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLmlubmVyVGlja2VkLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5nZXROb2RlQnlLZXkoZSl9KX0sZ2V0RXhwYW5kZWROb2RlczpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuaW5uZXJFeHBhbmRlZC5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZ2V0Tm9kZUJ5S2V5KGUpfSl9LGlzRXhwYW5kZWQ6ZnVuY3Rpb24odCl7cmV0dXJuISghdHx8IXRoaXMubWV0YVt0XSkmJnRoaXMubWV0YVt0XS5leHBhbmRlZH0sY29sbGFwc2VBbGw6ZnVuY3Rpb24oKXt2b2lkIDAhPT10aGlzLmV4cGFuZGVkP3RoaXMuJGVtaXQoXCJ1cGRhdGU6ZXhwYW5kZWRcIixbXSk6dGhpcy5pbm5lckV4cGFuZGVkPVtdfSxleHBhbmRBbGw6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5pbm5lckV4cGFuZGVkLGk9ZnVuY3Rpb24ocyl7cy5jaGlsZHJlbiYmcy5jaGlsZHJlbi5sZW5ndGg+MCYmITEhPT1zLmV4cGFuZGFibGUmJiEwIT09cy5kaXNhYmxlZCYmKGUucHVzaChzW3Qubm9kZUtleV0pLHMuY2hpbGRyZW4uZm9yRWFjaChpKSl9O3RoaXMubm9kZXMuZm9yRWFjaChpKSx2b2lkIDAhPT10aGlzLmV4cGFuZGVkP3RoaXMuJGVtaXQoXCJ1cGRhdGU6ZXhwYW5kZWRcIixlKTp0aGlzLmlubmVyRXhwYW5kZWQ9ZX0sc2V0RXhwYW5kZWQ6ZnVuY3Rpb24odCxlLGkscyl7dmFyIG49dGhpcztpZih2b2lkIDA9PT1pJiYoaT10aGlzLmdldE5vZGVCeUtleSh0KSksdm9pZCAwPT09cyYmKHM9dGhpcy5tZXRhW3RdKSxzLmxhenkmJlwibG9hZGVkXCIhPT1zLmxhenkpe2lmKFwibG9hZGluZ1wiPT09cy5sYXp5KXJldHVybjt0aGlzLiRzZXQodGhpcy5sYXp5LHQsXCJsb2FkaW5nXCIpLHRoaXMuJGVtaXQoXCJsYXp5LWxvYWRcIix7bm9kZTppLGtleTp0LGRvbmU6ZnVuY3Rpb24oZSl7bi5sYXp5W3RdPVwibG9hZGVkXCIsZSYmKGkuY2hpbGRyZW49ZSksbi4kbmV4dFRpY2soZnVuY3Rpb24oKXt2YXIgZT1uLm1ldGFbdF07ZSYmZS5pc1BhcmVudCYmbi5fX3NldEV4cGFuZGVkKHQsITApfSl9LGZhaWw6ZnVuY3Rpb24oKXtuLiRkZWxldGUobi5sYXp5LHQpfX0pfWVsc2Ugcy5pc1BhcmVudCYmcy5leHBhbmRhYmxlJiZ0aGlzLl9fc2V0RXhwYW5kZWQodCxlKX0sX19zZXRFeHBhbmRlZDpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMscz10aGlzLmlubmVyRXhwYW5kZWQsbj12b2lkIDAhPT10aGlzLmV4cGFuZGVkO2lmKG4mJihzPXMuc2xpY2UoKSksZSl7aWYodGhpcy5hY2NvcmRpb24mJnRoaXMubWV0YVt0XSl7dmFyIG89W107dGhpcy5tZXRhW3RdLnBhcmVudD90aGlzLm1ldGFbdF0ucGFyZW50LmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5rZXkhPT10JiZlLmV4cGFuZGFibGUmJm8ucHVzaChlLmtleSl9KTp0aGlzLm5vZGVzLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHM9ZVtpLm5vZGVLZXldO3MhPT10JiZvLnB1c2gocyl9KSxvLmxlbmd0aD4wJiYocz1zLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4hby5pbmNsdWRlcyh0KX0pKX1zPXMuY29uY2F0KFt0XSkuZmlsdGVyKGZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gaS5pbmRleE9mKHQpPT09ZX0pfWVsc2Ugcz1zLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZSE9PXR9KTtuP3RoaXMuJGVtaXQoXCJ1cGRhdGU6ZXhwYW5kZWRcIixzKTp0aGlzLmlubmVyRXhwYW5kZWQ9c30saXNUaWNrZWQ6ZnVuY3Rpb24odCl7cmV0dXJuISghdHx8IXRoaXMubWV0YVt0XSkmJnRoaXMubWV0YVt0XS50aWNrZWR9LHNldFRpY2tlZDpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMuaW5uZXJUaWNrZWQscz12b2lkIDAhPT10aGlzLnRpY2tlZDtzJiYoaT1pLnNsaWNlKCkpLGk9ZT9pLmNvbmNhdCh0KS5maWx0ZXIoZnVuY3Rpb24odCxlLGkpe3JldHVybiBpLmluZGV4T2YodCk9PT1lfSk6aS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIXQuaW5jbHVkZXMoZSl9KSxzJiZ0aGlzLiRlbWl0KFwidXBkYXRlOnRpY2tlZFwiLGkpfSxfX2dldFNsb3RTY29wZTpmdW5jdGlvbih0LGUsaSl7dmFyIHM9dGhpcyxuPXt0cmVlOnRoaXMsbm9kZTp0LGtleTppLGNvbG9yOnRoaXMuY29sb3IsZGFyazp0aGlzLmRhcmt9O3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobixcImV4cGFuZGVkXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBlLmV4cGFuZGVkfSxzZXQ6ZnVuY3Rpb24odCl7dCE9PWUuZXhwYW5kZWQmJnMuc2V0RXhwYW5kZWQoaSx0KX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobixcInRpY2tlZFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZS50aWNrZWR9LHNldDpmdW5jdGlvbih0KXt0IT09ZS50aWNrZWQmJnMuc2V0VGlja2VkKFtpXSx0KX19KSxufSxfX2dldENoaWxkcmVuOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcztyZXR1cm4odGhpcy5maWx0ZXI/ZS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIGkubWV0YVt0W2kubm9kZUtleV1dLm1hdGNoZXNGaWx0ZXJ9KTplKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGkuX19nZXROb2RlKHQsZSl9KX0sX19nZXROb2RlTWVkaWE6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5pY29uP3QoUUljb24se3N0YXRpY0NsYXNzOlwicS10cmVlLWljb24gcS1tci1zbVwiLHByb3BzOntuYW1lOmUuaWNvbixjb2xvcjplLmljb25Db2xvcn19KTplLmltZ3x8ZS5hdmF0YXI/dChcImltZ1wiLHtzdGF0aWNDbGFzczpcInEtdHJlZS1pbWcgcS1tci1zbVwiLGNsYXNzOnthdmF0YXI6ZS5hdmF0YXJ9LGF0dHJzOntzcmM6ZS5pbWd8fGUuYXZhdGFyfX0pOnZvaWQgMH0sX19nZXROb2RlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcyxzPWVbdGhpcy5ub2RlS2V5XSxuPXRoaXMubWV0YVtzXSxvPWUuaGVhZGVyJiZ0aGlzLiRzY29wZWRTbG90c1tcImhlYWRlci1cIitlLmhlYWRlcl18fHRoaXMuJHNjb3BlZFNsb3RzW1wiZGVmYXVsdC1oZWFkZXJcIl0scj1uLmlzUGFyZW50P3RoaXMuX19nZXRDaGlsZHJlbih0LGUuY2hpbGRyZW4pOltdLGE9ci5sZW5ndGg+MHx8bi5sYXp5JiZcImxvYWRlZFwiIT09bi5sYXp5LGw9ZS5ib2R5JiZ0aGlzLiRzY29wZWRTbG90c1tcImJvZHktXCIrZS5ib2R5XXx8dGhpcy4kc2NvcGVkU2xvdHNbXCJkZWZhdWx0LWJvZHlcIl0sYz1vfHxsP3RoaXMuX19nZXRTbG90U2NvcGUoZSxuLHMpOm51bGw7cmV0dXJuIGwmJihsPXQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRyZWUtbm9kZS1ib2R5IHJlbGF0aXZlLXBvc2l0aW9uXCJ9LFt0KFwiZGl2XCIse2NsYXNzOnRoaXMuY29udGVudENsYXNzfSxbbChjKV0pXSkpLHQoXCJkaXZcIix7a2V5OnMsc3RhdGljQ2xhc3M6XCJxLXRyZWUtbm9kZVwiLGNsYXNzOntcInEtdHJlZS1ub2RlLXBhcmVudFwiOmEsXCJxLXRyZWUtbm9kZS1jaGlsZFwiOiFhfX0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRyZWUtbm9kZS1oZWFkZXIgcmVsYXRpdmUtcG9zaXRpb24gcm93IG5vLXdyYXAgaXRlbXMtY2VudGVyXCIsY2xhc3M6e1wicS10cmVlLW5vZGUtbGlua1wiOm4ubGluayxcInEtdHJlZS1ub2RlLXNlbGVjdGVkXCI6bi5zZWxlY3RlZCxkaXNhYmxlZDpuLmRpc2FibGVkfSxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtpLl9fb25DbGljayhlLG4pfX0sZGlyZWN0aXZlczpuLnNlbGVjdGFibGU/W3tuYW1lOlwicmlwcGxlXCJ9XTpudWxsfSxbXCJsb2FkaW5nXCI9PT1uLmxhenk/dChRU3Bpbm5lcix7c3RhdGljQ2xhc3M6XCJxLXRyZWUtbm9kZS1oZWFkZXItbWVkaWEgcS1tci14c1wiLHByb3BzOntjb2xvcjp0aGlzLmNvbXB1dGVkQ29udHJvbENvbG9yfX0pOmE/dChRSWNvbix7c3RhdGljQ2xhc3M6XCJxLXRyZWUtYXJyb3cgcS1tci14cyB0cmFuc2l0aW9uLWdlbmVyaWNcIixjbGFzczp7XCJxLXRyZWUtYXJyb3ctcm90YXRlXCI6bi5leHBhbmRlZH0scHJvcHM6e25hbWU6dGhpcy5jb21wdXRlZEljb259LG5hdGl2ZU9uOntjbGljazpmdW5jdGlvbih0KXtpLl9fb25FeHBhbmRDbGljayhlLG4sdCl9fX0pOm51bGwsdChcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJyb3cgbm8td3JhcCBpdGVtcy1jZW50ZXJcIixjbGFzczp0aGlzLmNvbnRlbnRDbGFzc30sW24uaGFzVGlja2luZyYmIW4ubm9UaWNrP3QoUUNoZWNrYm94LHtzdGF0aWNDbGFzczpcInEtbXIteHNcIixwcm9wczp7dmFsdWU6bi5pbmRldGVybWluYXRlP251bGw6bi50aWNrZWQsY29sb3I6dGhpcy5jb21wdXRlZENvbnRyb2xDb2xvcixkYXJrOnRoaXMuZGFyayxrZWVwQ29sb3I6ITAsZGlzYWJsZTohbi50aWNrYWJsZX0sb246e2lucHV0OmZ1bmN0aW9uKHQpe2kuX19vblRpY2tlZENsaWNrKGUsbix0KX19fSk6bnVsbCxvP28oYyk6W3RoaXMuX19nZXROb2RlTWVkaWEodCxlKSx0KFwic3BhblwiLGVbdGhpcy5sYWJlbEtleV0pXV0pXSksYT90KFFTbGlkZVRyYW5zaXRpb24se3Byb3BzOntkdXJhdGlvbjp0aGlzLmR1cmF0aW9ufX0sW3QoXCJkaXZcIix7ZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIsdmFsdWU6bi5leHBhbmRlZH1dLHN0YXRpY0NsYXNzOlwicS10cmVlLW5vZGUtY29sbGFwc2libGVcIixjbGFzczpcInRleHQtXCIrdGhpcy5jb2xvcn0sW2wsdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdHJlZS1jaGlsZHJlblwiLGNsYXNzOntkaXNhYmxlZDpuLmRpc2FibGVkfX0scildKV0pOmxdKX0sX19vbkNsaWNrOmZ1bmN0aW9uKHQsZSl7dGhpcy5oYXNTZWxlY3Rpb24/ZS5zZWxlY3RhYmxlJiZ0aGlzLiRlbWl0KFwidXBkYXRlOnNlbGVjdGVkXCIsZS5rZXkhPT10aGlzLnNlbGVjdGVkP2Uua2V5Om51bGwpOnRoaXMuX19vbkV4cGFuZENsaWNrKHQsZSksXCJmdW5jdGlvblwiPT10eXBlb2YgdC5oYW5kbGVyJiZ0LmhhbmRsZXIodCl9LF9fb25FeHBhbmRDbGljazpmdW5jdGlvbih0LGUsaSl7dm9pZCAwIT09aSYmaS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLnNldEV4cGFuZGVkKGUua2V5LCFlLmV4cGFuZGVkLHQsZSl9LF9fb25UaWNrZWRDbGljazpmdW5jdGlvbih0LGUsaSl7aWYoZS5pbmRldGVybWluYXRlJiZpJiYoaT0hMSksZS5zdHJpY3RUaWNraW5nKXRoaXMuc2V0VGlja2VkKFtlLmtleV0saSk7ZWxzZSBpZihlLmxlYWZUaWNraW5nKXt2YXIgcz1bXSxuPWZ1bmN0aW9uKHQpe3QuaXNQYXJlbnQ/KGl8fHQubm9UaWNrfHwhdC50aWNrYWJsZXx8cy5wdXNoKHQua2V5KSx0LmxlYWZUaWNraW5nJiZ0LmNoaWxkcmVuLmZvckVhY2gobikpOnQubm9UaWNrfHwhdC50aWNrYWJsZXx8dC5sZWFmRmlsdGVyZWRUaWNraW5nJiYhdC5tYXRjaGVzRmlsdGVyfHxzLnB1c2godC5rZXkpfTtuKGUpLHRoaXMuc2V0VGlja2VkKHMsaSl9fX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX19nZXRDaGlsZHJlbih0LHRoaXMubm9kZXMpO3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10cmVlIHJlbGF0aXZlLXBvc2l0aW9uXCIsY2xhc3M6dGhpcy5jbGFzc2VzfSwwPT09ZS5sZW5ndGg/dGhpcy5maWx0ZXI/dGhpcy5ub1Jlc3VsdHNMYWJlbHx8dGhpcy4kcS5pMThuLnRyZWUubm9SZXN1bHRzOnRoaXMubm9Ob2Rlc0xhYmVsfHx0aGlzLiRxLmkxOG4udHJlZS5ub05vZGVzOmUpfSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0RXhwYW5kQWxsJiZ0aGlzLmV4cGFuZEFsbCgpfX07ZnVuY3Rpb24gaW5pdEZpbGUodCl7dC5fX2RvbmVVcGxvYWRpbmc9ITEsdC5fX2ZhaWxlZD0hMSx0Ll9fdXBsb2FkZWQ9MCx0Ll9fcHJvZ3Jlc3M9MH12YXIgUVVwbG9hZGVyPXtuYW1lOlwiUVVwbG9hZGVyXCIsbWl4aW5zOltGcmFtZU1peGluXSxwcm9wczp7bmFtZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImZpbGVcIn0saGVhZGVyczpPYmplY3QsdXJsOnt0eXBlOlN0cmluZyxyZXF1aXJlZDohMH0sdXJsRmFjdG9yeTp7dHlwZTpGdW5jdGlvbixyZXF1aXJlZDohMX0sdXBsb2FkRmFjdG9yeTpGdW5jdGlvbixhZGRpdGlvbmFsRmllbGRzOnt0eXBlOkFycmF5LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm5bXX19LG5vQ29udGVudFR5cGU6Qm9vbGVhbixtZXRob2Q6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJQT1NUXCJ9LGZpbHRlcjpGdW5jdGlvbixleHRlbnNpb25zOlN0cmluZyxtdWx0aXBsZTpCb29sZWFuLGhpZGVVcGxvYWRCdXR0b246Qm9vbGVhbixoaWRlVXBsb2FkUHJvZ3Jlc3M6Qm9vbGVhbixub1RodW1ibmFpbHM6Qm9vbGVhbixhdXRvRXhwYW5kOkJvb2xlYW4sZXhwYW5kU3R5bGU6W0FycmF5LFN0cmluZyxPYmplY3RdLGV4cGFuZENsYXNzOltBcnJheSxTdHJpbmcsT2JqZWN0XSx3aXRoQ3JlZGVudGlhbHM6Qm9vbGVhbixzZW5kUmF3Ont0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57cXVldWU6W10sZmlsZXM6W10sdXBsb2FkaW5nOiExLHVwbG9hZGVkU2l6ZTowLHRvdGFsU2l6ZTowLHhocnM6W10sZm9jdXNlZDohMSxkbmQ6ITEsZXhwYW5kZWQ6ITF9fSxjb21wdXRlZDp7cXVldWVMZW5ndGg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWV1ZS5sZW5ndGh9LGhhc0V4cGFuZGVkQ29udGVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbGVzLmxlbmd0aD4wfSxsYWJlbDpmdW5jdGlvbigpe3ZhciB0PWh1bWFuU3RvcmFnZVNpemUodGhpcy50b3RhbFNpemUpO3JldHVybiB0aGlzLnVwbG9hZGluZz90aGlzLnByb2dyZXNzLnRvRml4ZWQoMikrXCIlIChcIitodW1hblN0b3JhZ2VTaXplKHRoaXMudXBsb2FkZWRTaXplKStcIiAvIFwiK3QrXCIpXCI6dGhpcy5xdWV1ZUxlbmd0aCtcIiAoXCIrdCtcIilcIn0scHJvZ3Jlc3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b3RhbFNpemU/TWF0aC5taW4oOTkuOTksdGhpcy51cGxvYWRlZFNpemUvdGhpcy50b3RhbFNpemUqMTAwKTowfSxhZGREaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRpc2FibGV8fCF0aGlzLm11bHRpcGxlJiZ0aGlzLnF1ZXVlTGVuZ3RoPj0xfSxmaWxlc1N0eWxlOmZ1bmN0aW9uKCl7aWYodGhpcy5tYXhIZWlnaHQpcmV0dXJue21heEhlaWdodDp0aGlzLm1heEhlaWdodH19LGRuZENsYXNzOmZ1bmN0aW9uKCl7dmFyIHQ9W1widGV4dC1cIit0aGlzLmNvbG9yXTtyZXR1cm4gdGhpcy5pc0ludmVydGVkJiZ0LnB1c2goXCJpbnZlcnRlZFwiKSx0fSxjbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJue1wicS11cGxvYWRlci1leHBhbmRlZFwiOnRoaXMuZXhwYW5kZWQsXCJxLXVwbG9hZGVyLWRhcmtcIjp0aGlzLmRhcmssXCJxLXVwbG9hZGVyLWZpbGVzLW5vLWJvcmRlclwiOnRoaXMuaXNJbnZlcnRlZHx8IXRoaXMuaGlkZVVuZGVybGluZX19LHByb2dyZXNzQ29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYXJrP1wid2hpdGVcIjpcImdyZXlcIn0sY29tcHV0ZWRFeHRlbnNpb25zOmZ1bmN0aW9uKCl7aWYodGhpcy5leHRlbnNpb25zKXJldHVybiB0aGlzLmV4dGVuc2lvbnMuc3BsaXQoXCIsXCIpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4odD10LnRyaW0oKSkuZW5kc1dpdGgoXCIvKlwiKSYmKHQ9dC5zbGljZSgwLHQubGVuZ3RoLTEpKSx0fSl9fSx3YXRjaDp7aGFzRXhwYW5kZWRDb250ZW50OmZ1bmN0aW9uKHQpeyExPT09dD90aGlzLmV4cGFuZGVkPSExOnRoaXMuYXV0b0V4cGFuZCYmKHRoaXMuZXhwYW5kZWQ9ITApfX0sbWV0aG9kczp7YWRkOmZ1bmN0aW9uKHQpe3QmJnRoaXMuX19hZGQobnVsbCx0KX0sX19vbkRyYWdPdmVyOmZ1bmN0aW9uKHQpe3N0b3BBbmRQcmV2ZW50KHQpLHRoaXMuZG5kPSEwfSxfX29uRHJhZ0xlYXZlOmZ1bmN0aW9uKHQpe3N0b3BBbmRQcmV2ZW50KHQpLHRoaXMuZG5kPSExfSxfX29uRHJvcDpmdW5jdGlvbih0KXtzdG9wQW5kUHJldmVudCh0KSx0aGlzLmRuZD0hMTt2YXIgZT10LmRhdGFUcmFuc2Zlci5maWxlczswIT09ZS5sZW5ndGgmJihlPXRoaXMubXVsdGlwbGU/ZTpbZVswXV0sdGhpcy5fX2FkZChudWxsLGUpKX0sX19maWx0ZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKHQsZnVuY3Rpb24odCl7cmV0dXJuIGUuY29tcHV0ZWRFeHRlbnNpb25zLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIHQudHlwZS50b1VwcGVyQ2FzZSgpLnN0YXJ0c1dpdGgoZS50b1VwcGVyQ2FzZSgpKXx8dC5uYW1lLnRvVXBwZXJDYXNlKCkuZW5kc1dpdGgoZS50b1VwcGVyQ2FzZSgpKX0pfSl9LF9fYWRkOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcztpZighdGhpcy5hZGREaXNhYmxlZCYmKGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZXx8dC50YXJnZXQuZmlsZXMpLCF0aGlzLmV4dGVuc2lvbnN8fDAhPT0oZT10aGlzLl9fZmlsdGVyKGUpKS5sZW5ndGgpKXt0aGlzLiRyZWZzLmZpbGUudmFsdWU9XCJcIjt2YXIgcz1bXTtlPWUuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiFpLnF1ZXVlLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIHQubmFtZT09PWUubmFtZX0pfSksXCJmdW5jdGlvblwiPT10eXBlb2YgdGhpcy5maWx0ZXImJihlPXRoaXMuZmlsdGVyKGUpKSwoZT1lLm1hcChmdW5jdGlvbih0KXtpZihpbml0RmlsZSh0KSx0Ll9fc2l6ZT1odW1hblN0b3JhZ2VTaXplKHQuc2l6ZSksdC5fX3RpbWVzdGFtcD0obmV3IERhdGUpLmdldFRpbWUoKSxpLm5vVGh1bWJuYWlsc3x8IXQudHlwZS50b1VwcGVyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJJTUFHRVwiKSlpLnF1ZXVlLnB1c2godCk7ZWxzZXt2YXIgZT1uZXcgRmlsZVJlYWRlcixuPW5ldyBQcm9taXNlKGZ1bmN0aW9uKHMsbil7ZS5vbmxvYWQ9ZnVuY3Rpb24oZSl7dmFyIG49bmV3IEltYWdlO24uc3JjPWUudGFyZ2V0LnJlc3VsdCx0Ll9faW1nPW4saS5xdWV1ZS5wdXNoKHQpLGkuX19jb21wdXRlVG90YWxTaXplKCkscyghMCl9LGUub25lcnJvcj1mdW5jdGlvbih0KXtuKHQpfX0pO2UucmVhZEFzRGF0YVVSTCh0KSxzLnB1c2gobil9cmV0dXJuIHR9KSkubGVuZ3RoPjAmJih0aGlzLmZpbGVzPXRoaXMuZmlsZXMuY29uY2F0KGUpLFByb21pc2UuYWxsKHMpLnRoZW4oZnVuY3Rpb24oKXtpLiRlbWl0KFwiYWRkXCIsZSl9KSx0aGlzLl9fY29tcHV0ZVRvdGFsU2l6ZSgpKX19LF9fY29tcHV0ZVRvdGFsU2l6ZTpmdW5jdGlvbigpe3RoaXMudG90YWxTaXplPXRoaXMucXVldWVMZW5ndGg/dGhpcy5xdWV1ZS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuc2l6ZX0pLnJlZHVjZShmdW5jdGlvbih0LGUpe3JldHVybiB0K2V9KTowfSxfX3JlbW92ZTpmdW5jdGlvbih0KXt2YXIgZT10Lm5hbWUsaT10Ll9fZG9uZVVwbG9hZGluZzt0aGlzLnVwbG9hZGluZyYmIWk/KHRoaXMuJGVtaXQoXCJyZW1vdmU6YWJvcnRcIix0LHQueGhyKSx0LnhociYmdC54aHIuYWJvcnQoKSx0aGlzLnVwbG9hZGVkU2l6ZS09dC5fX3VwbG9hZGVkKTp0aGlzLiRlbWl0KFwicmVtb3ZlOlwiKyhpP1wiZG9uZVwiOlwiY2FuY2VsXCIpLHQsdC54aHIpLGl8fCh0aGlzLnF1ZXVlPXRoaXMucXVldWUuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5hbWUhPT1lfSkpLHQuX19yZW1vdmVkPSEwLHRoaXMuZmlsZXM9dGhpcy5maWxlcy5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQubmFtZSE9PWV9KSx0aGlzLmZpbGVzLmxlbmd0aHx8KHRoaXMudXBsb2FkaW5nPSExKSx0aGlzLl9fY29tcHV0ZVRvdGFsU2l6ZSgpfSxfX3BpY2s6ZnVuY3Rpb24oKXshdGhpcy5hZGREaXNhYmxlZCYmdGhpcy4kcS5wbGF0Zm9ybS5pcy5tb3ppbGxhJiZ0aGlzLiRyZWZzLmZpbGUuY2xpY2soKX0sX19nZXRVcGxvYWRQcm9taXNlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoaW5pdEZpbGUodCksdGhpcy51cGxvYWRGYWN0b3J5KXt2YXIgaT1mdW5jdGlvbihpKXt2YXIgcz1pKnQuc2l6ZTtlLnVwbG9hZGVkU2l6ZSs9cy10Ll9fdXBsb2FkZWQsdC5fX3VwbG9hZGVkPXMsdC5fX3Byb2dyZXNzPU1hdGgubWluKDk5LHBhcnNlSW50KDEwMCppLDEwKSksZS4kZm9yY2VVcGRhdGUoKX07cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHMsbil7ZS51cGxvYWRGYWN0b3J5KHQsaSkudGhlbihmdW5jdGlvbih0KXt0Ll9fZG9uZVVwbG9hZGluZz0hMCx0Ll9fcHJvZ3Jlc3M9MTAwLGUuJGVtaXQoXCJ1cGxvYWRlZFwiLHQpLGUuJGZvcmNlVXBkYXRlKCkscyh0KX0pLmNhdGNoKGZ1bmN0aW9uKGkpe3QuX19mYWlsZWQ9ITAsZS4kZW1pdChcImZhaWxcIix0KSxlLiRmb3JjZVVwZGF0ZSgpLG4oaSl9KX0pfXZhciBzPW5ldyBGb3JtRGF0YSxuPW5ldyBYTUxIdHRwUmVxdWVzdDt0cnl7dGhpcy5hZGRpdGlvbmFsRmllbGRzLmZvckVhY2goZnVuY3Rpb24odCl7cy5hcHBlbmQodC5uYW1lLHQudmFsdWUpfSksITAhPT10aGlzLm5vQ29udGVudFR5cGUmJnMuYXBwZW5kKFwiQ29udGVudC1UeXBlXCIsdC50eXBlfHxcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiKSxzLmFwcGVuZCh0aGlzLm5hbWUsdCl9Y2F0Y2godCl7cmV0dXJufXJldHVybiB0Lnhocj1uLG5ldyBQcm9taXNlKGZ1bmN0aW9uKGksbyl7bi51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcihcInByb2dyZXNzXCIsZnVuY3Rpb24oaSl7aWYoIXQuX19yZW1vdmVkKXtpLnBlcmNlbnQ9aS50b3RhbD9pLmxvYWRlZC9pLnRvdGFsOjA7dmFyIHM9aS5wZXJjZW50KnQuc2l6ZTtlLnVwbG9hZGVkU2l6ZSs9cy10Ll9fdXBsb2FkZWQsdC5fX3VwbG9hZGVkPXMsdC5fX3Byb2dyZXNzPU1hdGgubWluKDk5LHBhcnNlSW50KDEwMCppLnBlcmNlbnQsMTApKX19LCExKSxuLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe24ucmVhZHlTdGF0ZTw0fHwobi5zdGF0dXMmJm4uc3RhdHVzPDQwMD8odC5fX2RvbmVVcGxvYWRpbmc9ITAsdC5fX3Byb2dyZXNzPTEwMCxlLiRlbWl0KFwidXBsb2FkZWRcIix0LG4pLGkodCkpOih0Ll9fZmFpbGVkPSEwLGUuJGVtaXQoXCJmYWlsXCIsdCxuKSxvKG4pKSl9LG4ub25lcnJvcj1mdW5jdGlvbigpe3QuX19mYWlsZWQ9ITAsZS4kZW1pdChcImZhaWxcIix0LG4pLG8obil9LChlLnVybEZhY3Rvcnk/ZS51cmxGYWN0b3J5KHQpOlByb21pc2UucmVzb2x2ZShlLnVybCkpLnRoZW4oZnVuY3Rpb24oaSl7bi5vcGVuKGUubWV0aG9kLGksITApLGUud2l0aENyZWRlbnRpYWxzJiYobi53aXRoQ3JlZGVudGlhbHM9ITApLGUuaGVhZGVycyYmT2JqZWN0LmtleXMoZS5oZWFkZXJzKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe24uc2V0UmVxdWVzdEhlYWRlcih0LGUuaGVhZGVyc1t0XSl9KSxlLnhocnMucHVzaChuKSxlLnNlbmRSYXc/bi5zZW5kKHQpOm4uc2VuZChzKX0pfSl9LHBpY2s6ZnVuY3Rpb24oKXt0aGlzLmFkZERpc2FibGVkfHx0aGlzLiRyZWZzLmZpbGUuY2xpY2soKX0sdXBsb2FkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMucXVldWVMZW5ndGg7aWYoIXRoaXMuZGlzYWJsZSYmMCE9PWUpe3ZhciBpPTA7dGhpcy51cGxvYWRlZFNpemU9MCx0aGlzLnVwbG9hZGluZz0hMCx0aGlzLnhocnM9W10sdGhpcy4kZW1pdChcInN0YXJ0XCIpO3ZhciBzPWZ1bmN0aW9uKCl7KytpPT09ZSYmKHQudXBsb2FkaW5nPSExLHQueGhycz1bXSx0LnF1ZXVlPXQucXVldWUuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiF0Ll9fZG9uZVVwbG9hZGluZ30pLHQuX19jb21wdXRlVG90YWxTaXplKCksdC4kZW1pdChcImZpbmlzaFwiKSl9O3RoaXMucXVldWUubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0Ll9fZ2V0VXBsb2FkUHJvbWlzZShlKX0pLmZvckVhY2goZnVuY3Rpb24odCl7dC50aGVuKHMpLmNhdGNoKHMpfSl9fSxhYm9ydDpmdW5jdGlvbigpe3RoaXMueGhycy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuYWJvcnQoKX0pLHRoaXMudXBsb2FkaW5nPSExLHRoaXMuJGVtaXQoXCJhYm9ydFwiKX0scmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLmFib3J0KCksdGhpcy5maWxlcz1bXSx0aGlzLnF1ZXVlPVtdLHRoaXMuZXhwYW5kZWQ9ITEsdGhpcy5fX2NvbXB1dGVUb3RhbFNpemUoKSx0aGlzLiRlbWl0KFwicmVzZXRcIil9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPVt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sIHEtaW5wdXQtdGFyZ2V0IGVsbGlwc2lzXCIsY2xhc3M6dGhpcy5hbGlnbkNsYXNzfSxbdGhpcy5sYWJlbF0pXTtyZXR1cm4gdGhpcy51cGxvYWRpbmc/aS5wdXNoKHRoaXMuJHNsb3RzLmxvYWRpbmc/dChcImRpdlwiLHtzbG90OlwiYWZ0ZXJcIixzdGF0aWNDbGFzczpcInEtaWYtZW5kIHNlbGYtY2VudGVyIHEtaWYtY29udHJvbFwifSx0aGlzLiRzbG90cy5sb2FkaW5nKTp0KFFTcGlubmVyLHtzbG90OlwiYWZ0ZXJcIixzdGF0aWNDbGFzczpcInEtaWYtZW5kIHNlbGYtY2VudGVyXCIscHJvcHM6e3NpemU6XCIyNHB4XCJ9fSksdChRSWNvbix7c2xvdDpcImFmdGVyXCIsc3RhdGljQ2xhc3M6XCJxLWlmLWVuZCBzZWxmLWNlbnRlciBxLWlmLWNvbnRyb2xcIixwcm9wczp7bmFtZTp0aGlzLiRxLmljb24udXBsb2FkZXJbXCJjbGVhclwiKyh0aGlzLmlzSW52ZXJ0ZWQ/XCJJbnZlcnRlZFwiOlwiXCIpXX0sbmF0aXZlT246e2NsaWNrOnRoaXMuYWJvcnR9fSkpOihpLnB1c2godChRSWNvbix7c2xvdDpcImFmdGVyXCIsc3RhdGljQ2xhc3M6XCJxLXVwbG9hZGVyLXBpY2stYnV0dG9uIHNlbGYtY2VudGVyIHEtaWYtY29udHJvbCByZWxhdGl2ZS1wb3NpdGlvbiBvdmVyZmxvdy1oaWRkZW5cIixwcm9wczp7bmFtZTp0aGlzLiRxLmljb24udXBsb2FkZXIuYWRkfSxhdHRyczp7ZGlzYWJsZWQ6dGhpcy5hZGREaXNhYmxlZH19LFt0KFwiaW5wdXRcIix7cmVmOlwiZmlsZVwiLHN0YXRpY0NsYXNzOlwicS11cGxvYWRlci1pbnB1dCBhYnNvbHV0ZS1mdWxsIGN1cnNvci1wb2ludGVyXCIsYXR0cnM6T2JqZWN0LmFzc2lnbih7dHlwZTpcImZpbGVcIixhY2NlcHQ6dGhpcy5leHRlbnNpb25zfSx0aGlzLm11bHRpcGxlP3ttdWx0aXBsZTohMH06e30pLG9uOntjaGFuZ2U6dGhpcy5fX2FkZH19KV0pKSx0aGlzLmhpZGVVcGxvYWRCdXR0b258fGkucHVzaCh0KFFJY29uLHtzbG90OlwiYWZ0ZXJcIixzdGF0aWNDbGFzczpcInEtaWYtY29udHJvbCBzZWxmLWNlbnRlclwiLHByb3BzOntuYW1lOnRoaXMuJHEuaWNvbi51cGxvYWRlci51cGxvYWR9LGF0dHJzOntkaXNhYmxlZDowPT09dGhpcy5xdWV1ZUxlbmd0aH0sbmF0aXZlT246e2NsaWNrOnRoaXMudXBsb2FkfX0pKSksdGhpcy5oYXNFeHBhbmRlZENvbnRlbnQmJmkucHVzaCh0KFFJY29uLHtzbG90OlwiYWZ0ZXJcIixzdGF0aWNDbGFzczpcInEtaWYtY29udHJvbCBnZW5lcmljX3RyYW5zaXRpb24gc2VsZi1jZW50ZXJcIixjbGFzczp7XCJyb3RhdGUtMTgwXCI6dGhpcy5leHBhbmRlZH0scHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLnVwbG9hZGVyLmV4cGFuZH0sbmF0aXZlT246e2NsaWNrOmZ1bmN0aW9uKCl7ZS5leHBhbmRlZD0hZS5leHBhbmRlZH19fSkpLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXVwbG9hZGVyIHJlbGF0aXZlLXBvc2l0aW9uXCIsY2xhc3M6dGhpcy5jbGFzc2VzLG9uOntkcmFnb3Zlcjp0aGlzLl9fb25EcmFnT3Zlcn19LFt0KFFJbnB1dEZyYW1lLHtyZWY6XCJpbnB1dFwiLHByb3BzOntwcmVmaXg6dGhpcy5wcmVmaXgsc3VmZml4OnRoaXMuc3VmZml4LHN0YWNrTGFiZWw6dGhpcy5zdGFja0xhYmVsLGZsb2F0TGFiZWw6dGhpcy5mbG9hdExhYmVsLGVycm9yOnRoaXMuZXJyb3Isd2FybmluZzp0aGlzLndhcm5pbmcscmVhZG9ubHk6dGhpcy5yZWFkb25seSxpbnZlcnRlZDp0aGlzLmludmVydGVkLGludmVydGVkTGlnaHQ6dGhpcy5pbnZlcnRlZExpZ2h0LGRhcms6dGhpcy5kYXJrLGhpZGVVbmRlcmxpbmU6dGhpcy5oaWRlVW5kZXJsaW5lLGJlZm9yZTp0aGlzLmJlZm9yZSxhZnRlcjp0aGlzLmFmdGVyLGNvbG9yOnRoaXMuY29sb3IsYWxpZ246dGhpcy5hbGlnbixub1BhcmVudEZpZWxkOnRoaXMubm9QYXJlbnRGaWVsZCxsZW5ndGg6dGhpcy5xdWV1ZUxlbmd0aCxhZGRpdGlvbmFsTGVuZ3RoOiEwfX0saSksdChRU2xpZGVUcmFuc2l0aW9uLFt0KFwiZGl2XCIse2NsYXNzOnRoaXMuZXhwYW5kQ2xhc3Msc3R5bGU6dGhpcy5leHBhbmRTdHlsZSxkaXJlY3RpdmVzOlt7bmFtZTpcInNob3dcIix2YWx1ZTp0aGlzLmV4cGFuZGVkfV19LFt0KFFMaXN0LHtzdGF0aWNDbGFzczpcInEtdXBsb2FkZXItZmlsZXMgcS1weS1ub25lIHNjcm9sbFwiLHN0eWxlOnRoaXMuZmlsZXNTdHlsZSxwcm9wczp7ZGFyazp0aGlzLmRhcmt9fSx0aGlzLmZpbGVzLm1hcChmdW5jdGlvbihpKXtyZXR1cm4gdChRSXRlbSx7a2V5OmkubmFtZStpLl9fdGltZXN0YW1wLHN0YXRpY0NsYXNzOlwicS11cGxvYWRlci1maWxlIHEtcGEteHNcIn0sWyFlLmhpZGVVcGxvYWRQcm9ncmVzcyYmdChRUHJvZ3Jlc3Mse3N0YXRpY0NsYXNzOlwicS11cGxvYWRlci1wcm9ncmVzcy1iZyBhYnNvbHV0ZS1mdWxsXCIscHJvcHM6e2NvbG9yOmkuX19mYWlsZWQ/XCJuZWdhdGl2ZVwiOmUucHJvZ3Jlc3NDb2xvcixwZXJjZW50YWdlOmkuX19wcm9ncmVzcyxoZWlnaHQ6XCIxMDAlXCJ9fSl8fHZvaWQgMCwhZS5oaWRlVXBsb2FkUHJvZ3Jlc3MmJnQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXVwbG9hZGVyLXByb2dyZXNzLXRleHQgYWJzb2x1dGVcIn0sW2kuX19wcm9ncmVzcytcIiVcIl0pfHx2b2lkIDAsdChRSXRlbVNpZGUse3Byb3BzOmkuX19pbWc/e2ltYWdlOmkuX19pbWcuc3JjfTp7aWNvbjplLiRxLmljb24udXBsb2FkZXIuZmlsZSxjb2xvcjplLmNvbG9yfX0pLHQoUUl0ZW1NYWluLHtwcm9wczp7bGFiZWw6aS5uYW1lLHN1YmxhYmVsOmkuX19zaXplfX0pLHQoUUl0ZW1TaWRlLHtwcm9wczp7cmlnaHQ6ITB9fSxbdChRSXRlbVRpbGUse3N0YXRpY0NsYXNzOlwiY3Vyc29yLXBvaW50ZXJcIixwcm9wczp7aWNvbjplLiRxLmljb24udXBsb2FkZXJbaS5fX2RvbmVVcGxvYWRpbmc/XCJkb25lXCI6XCJjbGVhclwiXSxjb2xvcjplLmNvbG9yfSxuYXRpdmVPbjp7Y2xpY2s6ZnVuY3Rpb24oKXtlLl9fcmVtb3ZlKGkpfX19KV0pXSl9KSldKV0pLHRoaXMuZG5kJiZ0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS11cGxvYWRlci1kbmQgZmxleCByb3cgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGFic29sdXRlLWZ1bGxcIixjbGFzczp0aGlzLmRuZENsYXNzLG9uOntkcmFnZW50ZXI6c3RvcEFuZFByZXZlbnQsZHJhZ292ZXI6c3RvcEFuZFByZXZlbnQsZHJhZ2xlYXZlOnRoaXMuX19vbkRyYWdMZWF2ZSxkcm9wOnRoaXMuX19vbkRyb3B9fSl8fHZvaWQgMF0pfX0sUVZpZGVvPXtuYW1lOlwiUVZpZGVvXCIscHJvcHM6e3NyYzp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9fSxjb21wdXRlZDp7aWZyYW1lRGF0YTpmdW5jdGlvbigpe3JldHVybnthdHRyczp7c3JjOnRoaXMuc3JjLGZyYW1lYm9yZGVyOlwiMFwiLGFsbG93ZnVsbHNjcmVlbjohMH19fX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS12aWRlb1wifSxbdChcImlmcmFtZVwiLHRoaXMuaWZyYW1lRGF0YSldKX19LGNvbXBvbmVudHMkMT1PYmplY3QuZnJlZXplKHtRQWN0aW9uU2hlZXQ6UUFjdGlvblNoZWV0LFFBamF4QmFyOlFBamF4QmFyLFFBbGVydDpRQWxlcnQsUUF1dG9jb21wbGV0ZTpRQXV0b2NvbXBsZXRlLFFCcmVhZGNydW1iczpRQnJlYWRjcnVtYnMsUUJyZWFkY3J1bWJzRWw6UUJyZWFkY3J1bWJzRWwsUUJ0bjpRQnRuLFFCdG5Hcm91cDpRQnRuR3JvdXAsUUJ0bkRyb3Bkb3duOlFCdG5Ecm9wZG93bixRQnRuVG9nZ2xlOlFCdG5Ub2dnbGUsUUNhcmQ6UUNhcmQsUUNhcmRUaXRsZTpRQ2FyZFRpdGxlLFFDYXJkTWFpbjpRQ2FyZE1haW4sUUNhcmRBY3Rpb25zOlFDYXJkQWN0aW9ucyxRQ2FyZE1lZGlhOlFDYXJkTWVkaWEsUUNhcmRTZXBhcmF0b3I6UUNhcmRTZXBhcmF0b3IsUUNhcm91c2VsOlFDYXJvdXNlbCxRQ2Fyb3VzZWxTbGlkZTpRQ2Fyb3VzZWxTbGlkZSxRQ2Fyb3VzZWxDb250cm9sOlFDYXJvdXNlbENvbnRyb2wsUUNoYXRNZXNzYWdlOlFDaGF0TWVzc2FnZSxRQ2hlY2tib3g6UUNoZWNrYm94LFFDaGlwOlFDaGlwLFFDaGlwc0lucHV0OlFDaGlwc0lucHV0LFFDb2xsYXBzaWJsZTpRQ29sbGFwc2libGUsUUNvbG9yOlFDb2xvcixRQ29sb3JQaWNrZXI6UUNvbG9yUGlja2VyLFFDb250ZXh0TWVudTpRQ29udGV4dE1lbnUsUURhdGV0aW1lOlFEYXRldGltZSxRRGF0ZXRpbWVQaWNrZXI6UURhdGV0aW1lUGlja2VyLFFEaWFsb2c6UURpYWxvZyxRRWRpdG9yOlFFZGl0b3IsUUZhYjpRRmFiLFFGYWJBY3Rpb246UUZhYkFjdGlvbixRRmllbGQ6UUZpZWxkLFFJY29uOlFJY29uLFFJbmZpbml0ZVNjcm9sbDpRSW5maW5pdGVTY3JvbGwsUUlubmVyTG9hZGluZzpRSW5uZXJMb2FkaW5nLFFJbnB1dDpRSW5wdXQsUUlucHV0RnJhbWU6UUlucHV0RnJhbWUsUUp1bWJvdHJvbjpRSnVtYm90cm9uLFFLbm9iOlFLbm9iLFFMYXlvdXQ6UUxheW91dCxRTGF5b3V0RHJhd2VyOlFMYXlvdXREcmF3ZXIsUUxheW91dEZvb3RlcjpRTGF5b3V0Rm9vdGVyLFFMYXlvdXRIZWFkZXI6UUxheW91dEhlYWRlcixRUGFnZTpRUGFnZSxRUGFnZUNvbnRhaW5lcjpRUGFnZUNvbnRhaW5lcixRUGFnZVN0aWNreTpRUGFnZVN0aWNreSxRSXRlbTpRSXRlbSxRSXRlbVNlcGFyYXRvcjpRSXRlbVNlcGFyYXRvcixRSXRlbU1haW46UUl0ZW1NYWluLFFJdGVtU2lkZTpRSXRlbVNpZGUsUUl0ZW1UaWxlOlFJdGVtVGlsZSxRSXRlbVdyYXBwZXI6UUl0ZW1XcmFwcGVyLFFMaXN0OlFMaXN0LFFMaXN0SGVhZGVyOlFMaXN0SGVhZGVyLFFNb2RhbDpRTW9kYWwsUU1vZGFsTGF5b3V0OlFNb2RhbExheW91dCxRTm9Tc3I6UU5vU3NyLFFSZXNpemVPYnNlcnZhYmxlOlFSZXNpemVPYnNlcnZhYmxlLFFTY3JvbGxPYnNlcnZhYmxlOlFTY3JvbGxPYnNlcnZhYmxlLFFXaW5kb3dSZXNpemVPYnNlcnZhYmxlOlFXaW5kb3dSZXNpemVPYnNlcnZhYmxlLFFPcHRpb25Hcm91cDpRT3B0aW9uR3JvdXAsUVBhZ2luYXRpb246UVBhZ2luYXRpb24sUVBhcmFsbGF4OlFQYXJhbGxheCxRUG9wb3ZlcjpRUG9wb3ZlcixRUG9wdXBFZGl0OlFQb3B1cEVkaXQsUVByb2dyZXNzOlFQcm9ncmVzcyxRUHVsbFRvUmVmcmVzaDpRUHVsbFRvUmVmcmVzaCxRUmFkaW86UVJhZGlvLFFSYW5nZTpRUmFuZ2UsUVJhdGluZzpRUmF0aW5nLFFTY3JvbGxBcmVhOlFTY3JvbGxBcmVhLFFTZWFyY2g6UVNlYXJjaCxRU2VsZWN0OlFTZWxlY3QsUVNsaWRlVHJhbnNpdGlvbjpRU2xpZGVUcmFuc2l0aW9uLFFTbGlkZXI6UVNsaWRlcixRU3Bpbm5lcjpRU3Bpbm5lcixRU3Bpbm5lckF1ZGlvOlFTcGlubmVyQXVkaW8sUVNwaW5uZXJCYWxsOlFTcGlubmVyQmFsbCxRU3Bpbm5lckJhcnM6UVNwaW5uZXJCYXJzLFFTcGlubmVyQ2lyY2xlczpRU3Bpbm5lckNpcmNsZXMsUVNwaW5uZXJDb21tZW50OlFTcGlubmVyQ29tbWVudCxRU3Bpbm5lckN1YmU6UVNwaW5uZXJDdWJlLFFTcGlubmVyRG90czpRU3Bpbm5lckRvdHMsUVNwaW5uZXJGYWNlYm9vazpRU3Bpbm5lckZhY2Vib29rLFFTcGlubmVyR2VhcnM6UVNwaW5uZXJHZWFycyxRU3Bpbm5lckdyaWQ6UVNwaW5uZXJHcmlkLFFTcGlubmVySGVhcnRzOlFTcGlubmVySGVhcnRzLFFTcGlubmVySG91cmdsYXNzOlFTcGlubmVySG91cmdsYXNzLFFTcGlubmVySW5maW5pdHk6UVNwaW5uZXJJbmZpbml0eSxRU3Bpbm5lcklvczpRU3Bpbm5lcl9pb3MsUVNwaW5uZXJNYXQ6RGVmYXVsdFNwaW5uZXIsUVNwaW5uZXJPdmFsOlFTcGlubmVyT3ZhbCxRU3Bpbm5lclBpZTpRU3Bpbm5lclBpZSxRU3Bpbm5lclB1ZmY6UVNwaW5uZXJQdWZmLFFTcGlubmVyUmFkaW86UVNwaW5uZXJSYWRpbyxRU3Bpbm5lclJpbmdzOlFTcGlubmVyUmluZ3MsUVNwaW5uZXJUYWlsOlFTcGlubmVyVGFpbCxRU3RlcDpRU3RlcCxRU3RlcHBlcjpRU3RlcHBlcixRU3RlcHBlck5hdmlnYXRpb246UVN0ZXBwZXJOYXZpZ2F0aW9uLFFSb3V0ZVRhYjpRUm91dGVUYWIsUVRhYjpRVGFiLFFUYWJQYW5lOlFUYWJQYW5lLFFUYWJzOlFUYWJzLFFUYWJsZTpRVGFibGUsUVRoOlFUaCxRVHI6UVRyLFFUZDpRVGQsUVRhYmxlQ29sdW1uczpRVGFibGVDb2x1bW5zLFFUaW1lbGluZTpRVGltZWxpbmUsUVRpbWVsaW5lRW50cnk6UVRpbWVsaW5lRW50cnksUVRvZ2dsZTpRVG9nZ2xlLFFUb29sYmFyOlFUb29sYmFyLFFUb29sYmFyVGl0bGU6UVRvb2xiYXJUaXRsZSxRVG9vbHRpcDpRVG9vbHRpcCxRVHJlZTpRVHJlZSxRVXBsb2FkZXI6UVVwbG9hZGVyLFFWaWRlbzpRVmlkZW99KTtmdW5jdGlvbiB1cGRhdGVCaW5kaW5nKHQsZSl7dmFyIGk9ZS52YWx1ZSxzPShlLm1vZGlmaWVycyx0Ll9fcWJhY2t0b3RvcCk7aWYoaSl7aWYoXCJudW1iZXJcIj09dHlwZW9mIGkpcmV0dXJuIHMub2Zmc2V0PWksdm9pZCBzLnVwZGF0ZSgpO2lmKGkmJk9iamVjdChpKSE9PWkpY29uc29sZS5lcnJvcihcInYtYmFjay10by10b3AgcmVxdWlyZXMgYW4gb2JqZWN0IHtvZmZzZXQsIGR1cmF0aW9ufSBhcyBwYXJhbWV0ZXJcIix0KTtlbHNle2lmKGkub2Zmc2V0KXtpZihcIm51bWJlclwiIT10eXBlb2YgaS5vZmZzZXQpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcihcInYtYmFjay10by10b3AgcmVxdWlyZXMgYSBudW1iZXIgYXMgb2Zmc2V0XCIsdCk7cy5vZmZzZXQ9aS5vZmZzZXR9aWYoaS5kdXJhdGlvbil7aWYoXCJudW1iZXJcIiE9dHlwZW9mIGkuZHVyYXRpb24pcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcihcInYtYmFjay10by10b3AgcmVxdWlyZXMgYSBudW1iZXIgYXMgZHVyYXRpb25cIix0KTtzLmR1cmF0aW9uPWkuZHVyYXRpb259cy51cGRhdGUoKX19ZWxzZSBzLnVwZGF0ZSgpfXZhciBiYWNrVG9Ub3A9e25hbWU6XCJiYWNrLXRvLXRvcFwiLGJpbmQ6ZnVuY3Rpb24odCl7dmFyIGU9e29mZnNldDoyMDAsZHVyYXRpb246MzAwLHVwZGF0ZU5vdzpmdW5jdGlvbigpe3ZhciBpPWdldFNjcm9sbFBvc2l0aW9uKGUuc2Nyb2xsVGFyZ2V0KTw9ZS5vZmZzZXQ7aSE9PXQuY2xhc3NMaXN0LmNvbnRhaW5zKFwiaGlkZGVuXCIpJiZ0LmNsYXNzTGlzdFtpP1wiYWRkXCI6XCJyZW1vdmVcIl0oXCJoaWRkZW5cIil9LGdvVG9Ub3A6ZnVuY3Rpb24oKXtzZXRTY3JvbGxQb3NpdGlvbihlLnNjcm9sbFRhcmdldCwwLGUuYW5pbWF0ZT9lLmR1cmF0aW9uOjApfSxnb1RvVG9wS2V5OmZ1bmN0aW9uKHQpezEzPT09dC5rZXlDb2RlJiZzZXRTY3JvbGxQb3NpdGlvbihlLnNjcm9sbFRhcmdldCwwLGUuYW5pbWF0ZT9lLmR1cmF0aW9uOjApfX07ZS51cGRhdGU9ZGVib3VuY2UoZS51cGRhdGVOb3csMjUpLHQuY2xhc3NMaXN0LmFkZChcImhpZGRlblwiKSx0Ll9fcWJhY2t0b3RvcD1lfSxpbnNlcnRlZDpmdW5jdGlvbih0LGUpe3ZhciBpPXQuX19xYmFja3RvdG9wO2kuc2Nyb2xsVGFyZ2V0PWdldFNjcm9sbFRhcmdldCh0KSxpLmFuaW1hdGU9ZS5tb2RpZmllcnMuYW5pbWF0ZSx1cGRhdGVCaW5kaW5nKHQsZSksaS5zY3JvbGxUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLGkudXBkYXRlLGxpc3Rlbk9wdHMucGFzc2l2ZSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIixpLnVwZGF0ZSxsaXN0ZW5PcHRzLnBhc3NpdmUpLHQuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsaS5nb1RvVG9wKSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXl1cFwiLGkuZ29Ub1RvcEtleSl9LHVwZGF0ZTpmdW5jdGlvbih0LGUpe0pTT04uc3RyaW5naWZ5KGUub2xkVmFsdWUpIT09SlNPTi5zdHJpbmdpZnkoZS52YWx1ZSk/dXBkYXRlQmluZGluZyh0LGUpOnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0Ll9fcWJhY2t0b3RvcCYmdC5fX3FiYWNrdG90b3AudXBkYXRlTm93KCl9LDApfSx1bmJpbmQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5fX3FiYWNrdG90b3A7ZSYmKGUuc2Nyb2xsVGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIixlLnVwZGF0ZSxsaXN0ZW5PcHRzLnBhc3NpdmUpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsZS51cGRhdGUsbGlzdGVuT3B0cy5wYXNzaXZlKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLGUuZ29Ub1RvcCksdC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5dXBcIixlLmdvVG9Ub3BLZXkpLGRlbGV0ZSB0Ll9fcWJhY2t0b3RvcCl9fSxjbG9zZU92ZXJsYXk9e25hbWU6XCJjbG9zZS1vdmVybGF5XCIsYmluZDpmdW5jdGlvbih0LGUsaSl7dmFyIHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPWkuY29tcG9uZW50SW5zdGFuY2U7ZT1lLiRwYXJlbnQ7KXt2YXIgcz1lLiRvcHRpb25zLm5hbWU7aWYoXCJRUG9wb3ZlclwiPT09c3x8XCJRTW9kYWxcIj09PXMpe2UuaGlkZSh0KTticmVha319fSxuPWZ1bmN0aW9uKHQpezEzPT09dC5rZXlDb2RlJiZzKHQpfTt0Ll9fcWNsb3NlPXtoYW5kbGVyOnMsaGFuZGxlcktleTpufSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLHMpLHQuYWRkRXZlbnRMaXN0ZW5lcihcImtleXVwXCIsbil9LHVuYmluZDpmdW5jdGlvbih0KXt2YXIgZT10Ll9fcWNsb3NlO2UmJih0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLGUuaGFuZGxlciksdC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5dXBcIixlLmhhbmRsZXJLZXkpLGRlbGV0ZSB0Ll9fcWNsb3NlKX19LGdvQmFjaz17bmFtZTpcImdvLWJhY2tcIixiaW5kOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz1lLnZhbHVlLG49ZS5tb2RpZmllcnMsbz17dmFsdWU6cyxwb3NpdGlvbjp3aW5kb3cuaGlzdG9yeS5sZW5ndGgtMSxzaW5nbGU6bi5zaW5nbGV9O1BsYXRmb3JtLmlzLmNvcmRvdmE/by5nb0JhY2s9ZnVuY3Rpb24oKXtpLmNvbnRleHQuJHJvdXRlci5nbyhvLnNpbmdsZT8tMTpvLnBvc2l0aW9uLXdpbmRvdy5oaXN0b3J5Lmxlbmd0aCl9Om8uZ29CYWNrPWZ1bmN0aW9uKCl7aS5jb250ZXh0LiRyb3V0ZXIucmVwbGFjZShvLnZhbHVlKX0sby5nb0JhY2tLZXk9ZnVuY3Rpb24odCl7MTM9PT10LmtleUNvZGUmJm8uZ29CYWNrKHQpfSx0Ll9fcWdvYmFjaz1vLHQuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsby5nb0JhY2spLHQuYWRkRXZlbnRMaXN0ZW5lcihcImtleXVwXCIsby5nb0JhY2tLZXkpfSx1cGRhdGU6ZnVuY3Rpb24odCxlKXtlLm9sZFZhbHVlIT09ZS52YWx1ZSYmKHQuX19xZ29iYWNrLnZhbHVlPWUudmFsdWUpfSx1bmJpbmQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5fX3Fnb2JhY2s7ZSYmKHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsZS5nb0JhY2spLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleXVwXCIsZS5nb0JhY2tLZXkpLGRlbGV0ZSB0Ll9fcWdvYmFjayl9fTtmdW5jdGlvbiB1cGRhdGVCaW5kaW5nJDEodCxlKXt2YXIgaT10Ll9fcXNjcm9sbGZpcmU7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgZS52YWx1ZSlyZXR1cm4gaS5zY3JvbGxUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLGkuc2Nyb2xsKSx2b2lkIGNvbnNvbGUuZXJyb3IoXCJ2LXNjcm9sbC1maXJlIHJlcXVpcmVzIGEgZnVuY3Rpb24gYXMgcGFyYW1ldGVyXCIsdCk7aS5oYW5kbGVyPWUudmFsdWUsXCJmdW5jdGlvblwiIT10eXBlb2YgZS5vbGRWYWx1ZSYmKGkuc2Nyb2xsVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIixpLnNjcm9sbCxsaXN0ZW5PcHRzLnBhc3NpdmUpLGkuc2Nyb2xsKCkpfXZhciBzY3JvbGxGaXJlPXtuYW1lOlwic2Nyb2xsLWZpcmVcIixiaW5kOmZ1bmN0aW9uKHQsZSl7dmFyIGk9e3Njcm9sbDpkZWJvdW5jZShmdW5jdGlvbigpe3ZhciBlLHM7aS5zY3JvbGxUYXJnZXQ9PT13aW5kb3c/KHM9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b20sZT13aW5kb3cuaW5uZXJIZWlnaHQpOihzPW9mZnNldCh0KS50b3AraGVpZ2h0KHQpLGU9b2Zmc2V0KGkuc2Nyb2xsVGFyZ2V0KS50b3AraGVpZ2h0KGkuc2Nyb2xsVGFyZ2V0KSkscz4wJiZzPGUmJihpLnNjcm9sbFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsaS5zY3JvbGwsbGlzdGVuT3B0cy5wYXNzaXZlKSxpLmhhbmRsZXIodCkpfSwyNSl9O3QuX19xc2Nyb2xsZmlyZT1pfSxpbnNlcnRlZDpmdW5jdGlvbih0LGUpe3QuX19xc2Nyb2xsZmlyZS5zY3JvbGxUYXJnZXQ9Z2V0U2Nyb2xsVGFyZ2V0KHQpLHVwZGF0ZUJpbmRpbmckMSh0LGUpfSx1cGRhdGU6ZnVuY3Rpb24odCxlKXtlLnZhbHVlIT09ZS5vbGRWYWx1ZSYmdXBkYXRlQmluZGluZyQxKHQsZSl9LHVuYmluZDpmdW5jdGlvbih0KXt2YXIgZT10Ll9fcXNjcm9sbGZpcmU7ZSYmKGUuc2Nyb2xsVGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIixlLnNjcm9sbCxsaXN0ZW5PcHRzLnBhc3NpdmUpLGRlbGV0ZSB0Ll9fcXNjcm9sbGZpcmUpfX07ZnVuY3Rpb24gdXBkYXRlQmluZGluZyQyKHQsZSl7dmFyIGk9dC5fX3FzY3JvbGw7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgZS52YWx1ZSlyZXR1cm4gaS5zY3JvbGxUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLGkuc2Nyb2xsLGxpc3Rlbk9wdHMucGFzc2l2ZSksdm9pZCBjb25zb2xlLmVycm9yKFwidi1zY3JvbGwgcmVxdWlyZXMgYSBmdW5jdGlvbiBhcyBwYXJhbWV0ZXJcIix0KTtpLmhhbmRsZXI9ZS52YWx1ZSxcImZ1bmN0aW9uXCIhPXR5cGVvZiBlLm9sZFZhbHVlJiZpLnNjcm9sbFRhcmdldC5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsaS5zY3JvbGwsbGlzdGVuT3B0cy5wYXNzaXZlKX12YXIgc2Nyb2xsJDE9e25hbWU6XCJzY3JvbGxcIixiaW5kOmZ1bmN0aW9uKHQsZSl7dmFyIGk9e3Njcm9sbDpmdW5jdGlvbigpe2kuaGFuZGxlcihnZXRTY3JvbGxQb3NpdGlvbihpLnNjcm9sbFRhcmdldCksZ2V0SG9yaXpvbnRhbFNjcm9sbFBvc2l0aW9uKGkuc2Nyb2xsVGFyZ2V0KSl9fTt0Ll9fcXNjcm9sbD1pfSxpbnNlcnRlZDpmdW5jdGlvbih0LGUpe3QuX19xc2Nyb2xsLnNjcm9sbFRhcmdldD1nZXRTY3JvbGxUYXJnZXQodCksdXBkYXRlQmluZGluZyQyKHQsZSl9LHVwZGF0ZTpmdW5jdGlvbih0LGUpe2Uub2xkVmFsdWUhPT1lLnZhbHVlJiZ1cGRhdGVCaW5kaW5nJDIodCxlKX0sdW5iaW5kOmZ1bmN0aW9uKHQpe3ZhciBlPXQuX19xc2Nyb2xsO2UmJihlLnNjcm9sbFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsZS5zY3JvbGwsbGlzdGVuT3B0cy5wYXNzaXZlKSxkZWxldGUgdC5fX3FzY3JvbGwpfX07ZnVuY3Rpb24gdXBkYXRlQmluZGluZyQzKHQsZSl7dmFyIGk9dC5fX3F0b3VjaGhvbGQ7aS5kdXJhdGlvbj1wYXJzZUludChlLmFyZywxMCl8fDYwMCxlLm9sZFZhbHVlIT09ZS52YWx1ZSYmKGkuaGFuZGxlcj1lLnZhbHVlKX12YXIgdG91Y2hIb2xkPXtuYW1lOlwidG91Y2gtaG9sZFwiLGJpbmQ6ZnVuY3Rpb24odCxlKXt2YXIgaT0hZS5tb2RpZmllcnMubm9Nb3VzZSxzPWUubW9kaWZpZXJzLnN0b3Asbj1lLm1vZGlmaWVycy5wcmV2ZW50LG89e21vdXNlU3RhcnQ6ZnVuY3Rpb24odCl7bGVmdENsaWNrKHQpJiYoZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLG8ubW91c2VBYm9ydCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIixvLm1vdXNlQWJvcnQpLG8uc3RhcnQodCkpfSxtb3VzZUFib3J0OmZ1bmN0aW9uKHQpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixvLm1vdXNlQWJvcnQpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsby5tb3VzZUFib3J0KSxvLmFib3J0KHQpfSxzdGFydDpmdW5jdGlvbih0KXt2YXIgZT0obmV3IERhdGUpLmdldFRpbWUoKTtzJiZ0LnN0b3BQcm9wYWdhdGlvbigpLG4mJnQucHJldmVudERlZmF1bHQoKSxvLnRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLG8ubW91c2VBYm9ydCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIixvLm1vdXNlQWJvcnQpKSxvLmhhbmRsZXIoe2V2dDp0LHBvc2l0aW9uOnBvc2l0aW9uKHQpLGR1cmF0aW9uOihuZXcgRGF0ZSkuZ2V0VGltZSgpLWV9KX0sby5kdXJhdGlvbil9LGFib3J0OmZ1bmN0aW9uKHQpe2NsZWFyVGltZW91dChvLnRpbWVyKSxvLnRpbWVyPW51bGx9fTt0Ll9fcXRvdWNoaG9sZD1vLHVwZGF0ZUJpbmRpbmckMyh0LGUpLGkmJnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLG8ubW91c2VTdGFydCksdC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLG8uc3RhcnQpLHQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLG8uYWJvcnQpLHQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoZW5kXCIsby5hYm9ydCl9LHVwZGF0ZTpmdW5jdGlvbih0LGUpe3VwZGF0ZUJpbmRpbmckMyh0LGUpfSx1bmJpbmQ6ZnVuY3Rpb24odCxlKXt2YXIgaT10Ll9fcXRvdWNoaG9sZDtpJiYodC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLGkuc3RhcnQpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoZW5kXCIsaS5hYm9ydCksdC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2htb3ZlXCIsaS5hYm9ydCksdC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsaS5tb3VzZVN0YXJ0KSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsaS5tb3VzZUFib3J0KSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLGkubW91c2VBYm9ydCksZGVsZXRlIHQuX19xdG91Y2hob2xkKX19LGRpcmVjdGl2ZXM9T2JqZWN0LmZyZWV6ZSh7QmFja1RvVG9wOmJhY2tUb1RvcCxDbG9zZU92ZXJsYXk6Y2xvc2VPdmVybGF5LEdvQmFjazpnb0JhY2ssUmlwcGxlOlJpcHBsZSxTY3JvbGxGaXJlOnNjcm9sbEZpcmUsU2Nyb2xsOnNjcm9sbCQxLFRvdWNoSG9sZDp0b3VjaEhvbGQsVG91Y2hQYW46VG91Y2hQYW4sVG91Y2hTd2lwZTpUb3VjaFN3aXBlfSk7ZnVuY3Rpb24gb2JqZWN0V2l0aG91dFByb3BlcnRpZXModCxlKXt2YXIgaT17fTtmb3IodmFyIHMgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxzKSYmLTE9PT1lLmluZGV4T2YocykmJihpW3NdPXRbc10pO3JldHVybiBpfWZ1bmN0aW9uIG1vZGFsRm4odCxlKXtyZXR1cm4gZnVuY3Rpb24oaSxzKXt2YXIgbj1pLmNsYXNzTmFtZSxvPW9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKGksW1wiY2xhc3NOYW1lXCJdKTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oaSxyKXtpZihpc1NTUilyZXR1cm4gaSgpO3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTt2YXIgbD1mdW5jdGlvbih0KXtpKHQpLGguJGRlc3Ryb3koKX0sYz1mdW5jdGlvbih0KXtyKHR8fG5ldyBFcnJvciksaC4kZGVzdHJveSgpfSxoPW5ldyBlKHtlbDphLGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57cHJvcHM6b319LHJlbmRlcjpmdW5jdGlvbihlKXtyZXR1cm4gZSh0LHtyZWY6XCJtb2RhbFwiLHByb3BzOm8sY2xhc3M6bixvbjp7b2s6bCxjYW5jZWw6Y319KX0sbW91bnRlZDpmdW5jdGlvbigpe3RoaXMuJHJlZnMubW9kYWwuc2hvdygpfX0pO3MmJnMudGhlbihsLGMpfSl9fXZhciBtZXRhVmFsdWUsYWN0aW9uU2hlZXQ9e2luc3RhbGw6ZnVuY3Rpb24odCl7dmFyIGU9dC4kcSxpPXQuVnVlO3RoaXMuY3JlYXRlPWUuYWN0aW9uU2hlZXQ9bW9kYWxGbihRQWN0aW9uU2hlZXQsaSl9fTtmdW5jdGlvbiBnZXRQcm9wKCl7cmV0dXJuIFBsYXRmb3JtLmlzLndpbnBob25lP1wibXNhcHBsaWNhdGlvbi1uYXZidXR0b24tY29sb3JcIjpQbGF0Zm9ybS5pcy5zYWZhcmk/XCJhcHBsZS1tb2JpbGUtd2ViLWFwcC1zdGF0dXMtYmFyLXN0eWxlXCI6XCJ0aGVtZS1jb2xvclwifWZ1bmN0aW9uIGdldE1ldGFUYWcodCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJNRVRBXCIpO2Zvcih2YXIgaSBpbiBlKWlmKGVbaV0ubmFtZT09PXQpcmV0dXJuIGVbaV19ZnVuY3Rpb24gc2V0Q29sb3IodCl7dm9pZCAwPT09bWV0YVZhbHVlJiYobWV0YVZhbHVlPWdldFByb3AoKSk7dmFyIGU9Z2V0TWV0YVRhZyhtZXRhVmFsdWUpLGk9dm9pZCAwPT09ZTtpJiYoZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwibWV0YVwiKSkuc2V0QXR0cmlidXRlKFwibmFtZVwiLG1ldGFWYWx1ZSksZS5zZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIsdCksaSYmZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChlKX12YXIgYWRkcmVzc2JhckNvbG9yPXtpbnN0YWxsOmZ1bmN0aW9uKHQpe3ZhciBlPXQuJHEsaT0odC5WdWUsdC5jZmcpO3RoaXMuc2V0PSFpc1NTUiYmUGxhdGZvcm0uaXMubW9iaWxlJiYoUGxhdGZvcm0uaXMuY29yZG92YXx8UGxhdGZvcm0uaXMud2lucGhvbmV8fFBsYXRmb3JtLmlzLnNhZmFyaXx8UGxhdGZvcm0uaXMud2Via2l0fHxQbGF0Zm9ybS5pcy52aXZhbGRpKT9mdW5jdGlvbih0KXt2YXIgZT10fHxnZXRCcmFuZChcInByaW1hcnlcIik7UGxhdGZvcm0uaXMuY29yZG92YSYmd2luZG93LlN0YXR1c0Jhcj93aW5kb3cuU3RhdHVzQmFyLmJhY2tncm91bmRDb2xvckJ5SGV4U3RyaW5nKGUpOnNldENvbG9yKGUpfTpmdW5jdGlvbigpe30sZS5hZGRyZXNzYmFyQ29sb3I9dGhpcyxpLmFkZHJlc3NiYXJDb2xvciYmdGhpcy5zZXQoaS5hZGRyZXNzYmFyQ29sb3IpfX0scHJlZml4ZXM9e30sYXBwRnVsbHNjcmVlbj17aXNDYXBhYmxlOiExLGlzQWN0aXZlOiExLHJlcXVlc3Q6ZnVuY3Rpb24odCl7dGhpcy5pc0NhcGFibGUmJiF0aGlzLmlzQWN0aXZlJiYodD10fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpW3ByZWZpeGVzLnJlcXVlc3RdKCl9LGV4aXQ6ZnVuY3Rpb24oKXt0aGlzLmlzQ2FwYWJsZSYmdGhpcy5pc0FjdGl2ZSYmZG9jdW1lbnRbcHJlZml4ZXMuZXhpdF0oKX0sdG9nZ2xlOmZ1bmN0aW9uKHQpe3RoaXMuaXNBY3RpdmU/dGhpcy5leGl0KCk6dGhpcy5yZXF1ZXN0KHQpfSxpbnN0YWxsOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT10LiRxLHM9dC5WdWU7aS5mdWxsc2NyZWVuPXRoaXMsaXNTU1J8fChwcmVmaXhlcy5yZXF1ZXN0PVtcInJlcXVlc3RGdWxsc2NyZWVuXCIsXCJtc1JlcXVlc3RGdWxsc2NyZWVuXCIsXCJtb3pSZXF1ZXN0RnVsbFNjcmVlblwiLFwid2Via2l0UmVxdWVzdEZ1bGxzY3JlZW5cIl0uZmluZChmdW5jdGlvbih0KXtyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50W3RdfSksdGhpcy5pc0NhcGFibGU9dm9pZCAwIT09cHJlZml4ZXMucmVxdWVzdCx0aGlzLmlzQ2FwYWJsZSYmKHByZWZpeGVzLmV4aXQ9W1wiZXhpdEZ1bGxzY3JlZW5cIixcIm1zRXhpdEZ1bGxzY3JlZW5cIixcIm1vekNhbmNlbEZ1bGxTY3JlZW5cIixcIndlYmtpdEV4aXRGdWxsc2NyZWVuXCJdLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIGRvY3VtZW50W3RdfSksdGhpcy5pc0FjdGl2ZT0hIShkb2N1bWVudC5mdWxsc2NyZWVuRWxlbWVudHx8ZG9jdW1lbnQubW96RnVsbFNjcmVlbkVsZW1lbnR8fGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbGVtZW50fHxkb2N1bWVudC5tc0Z1bGxzY3JlZW5FbGVtZW50KSxbXCJvbmZ1bGxzY3JlZW5jaGFuZ2VcIixcIm9ubXNmdWxsc2NyZWVuY2hhbmdlXCIsXCJvbm1vemZ1bGxzY3JlZW5jaGFuZ2VcIixcIm9ud2Via2l0ZnVsbHNjcmVlbmNoYW5nZVwiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2RvY3VtZW50W3RdPWZ1bmN0aW9uKCl7ZS5pc0FjdGl2ZT0hZS5pc0FjdGl2ZX19KSxzLnV0aWwuZGVmaW5lUmVhY3RpdmUodGhpcyxcImlzQWN0aXZlXCIsdGhpcy5pc0FjdGl2ZSkpKX19LGFwcFZpc2liaWxpdHk9e2FwcFZpc2libGU6ITEsaW5zdGFsbDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dC4kcSxzPXQuVnVlO2lmKGlzU1NSKXRoaXMuYXBwVmlzaWJsZT1pLmFwcFZpc2libGU9ITA7ZWxzZXt2YXIgbixvO3ZvaWQgMCE9PWRvY3VtZW50LmhpZGRlbj8obj1cImhpZGRlblwiLG89XCJ2aXNpYmlsaXR5Y2hhbmdlXCIpOnZvaWQgMCE9PWRvY3VtZW50Lm1zSGlkZGVuPyhuPVwibXNIaWRkZW5cIixvPVwibXN2aXNpYmlsaXR5Y2hhbmdlXCIpOnZvaWQgMCE9PWRvY3VtZW50LndlYmtpdEhpZGRlbiYmKG49XCJ3ZWJraXRIaWRkZW5cIixvPVwid2Via2l0dmlzaWJpbGl0eWNoYW5nZVwiKTt2YXIgcj1mdW5jdGlvbigpe2UuYXBwVmlzaWJsZT1pLmFwcFZpc2libGU9IWRvY3VtZW50W25dfTtyKCksbyYmdm9pZCAwIT09ZG9jdW1lbnRbbl0mJihzLnV0aWwuZGVmaW5lUmVhY3RpdmUoaSxcImFwcFZpc2libGVcIix0aGlzLmFwcFZpc2libGUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIobyxyLCExKSl9fX07ZnVuY3Rpb24gZW5jb2RlKHQpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQodCl9ZnVuY3Rpb24gZGVjb2RlKHQpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQodCl9ZnVuY3Rpb24gc3RyaW5naWZ5Q29va2llVmFsdWUodCl7cmV0dXJuIGVuY29kZSh0PT09T2JqZWN0KHQpP0pTT04uc3RyaW5naWZ5KHQpOlwiXCIrdCl9ZnVuY3Rpb24gcmVhZCh0KXtpZihcIlwiPT09dClyZXR1cm4gdDswPT09dC5pbmRleE9mKCdcIicpJiYodD10LnNsaWNlKDEsLTEpLnJlcGxhY2UoL1xcXFxcIi9nLCdcIicpLnJlcGxhY2UoL1xcXFxcXFxcL2csXCJcXFxcXCIpKSx0PWRlY29kZSh0LnJlcGxhY2UoL1xcKy9nLFwiIFwiKSk7dHJ5e3Q9SlNPTi5wYXJzZSh0KX1jYXRjaCh0KXt9cmV0dXJuIHR9ZnVuY3Rpb24gc2V0KHQsZSxpLHMpe3ZhciBuLG87aWYodm9pZCAwPT09aSYmKGk9e30pLHZvaWQgMCE9PWkuZXhwaXJlcyl7aWYobz1wYXJzZUludChpLmV4cGlyZXMsMTApLGlzTmFOKG8pKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoXCJRdWFzYXIgY29va2llOiBleHBpcmVzIG5lZWRzIHRvIGJlIGEgbnVtYmVyXCIpOyhuPW5ldyBEYXRlKS5zZXRNaWxsaXNlY29uZHMobi5nZXRNaWxsaXNlY29uZHMoKSs4NjRlNSpvKX12YXIgcj1lbmNvZGUodCkrXCI9XCIrc3RyaW5naWZ5Q29va2llVmFsdWUoZSksYT1bcix2b2lkIDAhPT1uP1wiOyBFeHBpcmVzPVwiK24udG9VVENTdHJpbmcoKTpcIlwiLGkucGF0aD9cIjsgUGF0aD1cIitpLnBhdGg6XCJcIixpLmRvbWFpbj9cIjsgRG9tYWluPVwiK2kuZG9tYWluOlwiXCIsaS5odHRwT25seT9cIjsgSHR0cE9ubHlcIjpcIlwiLGkuc2VjdXJlP1wiOyBTZWN1cmVcIjpcIlwiXS5qb2luKFwiXCIpO2lmKHMpe3MucmVxLnFDb29raWVzP3MucmVxLnFDb29raWVzLnB1c2goYSk6cy5yZXEucUNvb2tpZXM9W2FdLHMucmVzLnNldEhlYWRlcihcIlNldC1Db29raWVcIixzLnJlcS5xQ29va2llcyk7dmFyIGw9cy5yZXEuaGVhZGVycy5jb29raWV8fFwiXCI7aWYodm9pZCAwIT09biYmbzwwKXt2YXIgYz1nZXQodCxzKTt2b2lkIDAhPT1jJiYobD1sLnJlcGxhY2UodCtcIj1cIitjK1wiOyBcIixcIlwiKS5yZXBsYWNlKFwiOyBcIit0K1wiPVwiK2MsXCJcIikucmVwbGFjZSh0K1wiPVwiK2MsXCJcIikpfWVsc2UgbD1sP3IrXCI7IFwiK2w6YTtzLnJlcS5oZWFkZXJzLmNvb2tpZT1sfWVsc2UgZG9jdW1lbnQuY29va2llPWF9ZnVuY3Rpb24gZ2V0KHQsZSl7Zm9yKHZhciBpLHMsbixvPXQ/dm9pZCAwOnt9LHI9ZT9lLnJlcS5oZWFkZXJzOmRvY3VtZW50LGE9ci5jb29raWU/ci5jb29raWUuc3BsaXQoXCI7IFwiKTpbXSxsPTAsYz1hLmxlbmd0aDtsPGM7bCsrKWlmKHM9ZGVjb2RlKChpPWFbbF0uc3BsaXQoXCI9XCIpKS5zaGlmdCgpKSxuPWkuam9pbihcIj1cIiksdCl7aWYodD09PXMpe289cmVhZChuKTticmVha319ZWxzZSBvW3NdPW47cmV0dXJuIG99ZnVuY3Rpb24gcmVtb3ZlKHQsZSxpKXtzZXQodCxcIlwiLE9iamVjdC5hc3NpZ24oe30sZSx7ZXhwaXJlczotMX0pLGkpfWZ1bmN0aW9uIGhhcyh0LGUpe3JldHVybiB2b2lkIDAhPT1nZXQodCxlKX1mdW5jdGlvbiBnZXRPYmplY3QodCl7dm9pZCAwPT09dCYmKHQ9e30pO3ZhciBlPXQuc3NyO3JldHVybntnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGdldCh0LGUpfSxzZXQ6ZnVuY3Rpb24odCxpLHMpe3JldHVybiBzZXQodCxpLHMsZSl9LGhhczpmdW5jdGlvbih0KXtyZXR1cm4gaGFzKHQsZSl9LHJlbW92ZTpmdW5jdGlvbih0LGkpe3JldHVybiByZW1vdmUodCxpLGUpfSxhbGw6ZnVuY3Rpb24oKXtyZXR1cm4gZ2V0KG51bGwsZSl9fX12YXIgdm0sdGltZW91dCx1cGRhdGVJZCxzc3JUYWtlb3Zlcixjb29raWVzPXtwYXJzZVNTUjpmdW5jdGlvbih0KXtyZXR1cm4gdD9nZXRPYmplY3Qoe3Nzcjp0fSk6dGhpc30saW5zdGFsbDpmdW5jdGlvbih0KXt2YXIgZT10LiRxLGk9dC5xdWV1ZXM7aXNTU1I/aS5zZXJ2ZXIucHVzaChmdW5jdGlvbih0LGUpe3QuY29va2llcz1nZXRPYmplY3QoZSl9KTooT2JqZWN0LmFzc2lnbih0aGlzLGdldE9iamVjdCgpKSxlLmNvb2tpZXM9dGhpcyl9fSxkaWFsb2c9e2luc3RhbGw6ZnVuY3Rpb24odCl7dmFyIGU9dC4kcSxpPXQuVnVlO3RoaXMuY3JlYXRlPWUuZGlhbG9nPW1vZGFsRm4oUURpYWxvZyxpKX19LGxvYWRpbmdCYXI9e3N0YXJ0OmZ1bmN0aW9uKCl7fSxzdG9wOmZ1bmN0aW9uKCl7fSxpbmNyZW1lbnQ6ZnVuY3Rpb24oKXt9LGluc3RhbGw6ZnVuY3Rpb24odCl7dmFyIGU9dC4kcSxpPXQuVnVlLHM9dC5jZmc7aWYoaXNTU1IpZS5sb2FkaW5nQmFyPXRoaXM7ZWxzZXt2YXIgbj1lLmxvYWRpbmdCYXI9bmV3IGkoe3JlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChRQWpheEJhcix7cmVmOlwiYmFyXCIscHJvcHM6cy5sb2FkaW5nQmFyfSl9fSkuJG1vdW50KCkuJHJlZnMuYmFyO09iamVjdC5hc3NpZ24odGhpcyx7c3RhcnQ6bi5zdGFydCxzdG9wOm4uc3RvcCxpbmNyZW1lbnQ6bi5pbmNyZW1lbnR9KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUubG9hZGluZ0Jhci4kcGFyZW50LiRlbCl9fX0scHJvcHM9e30sZGVmYXVsdHM9e2RlbGF5OjAsbWVzc2FnZTohMSxzcGlubmVyU2l6ZTo4MCxzcGlubmVyQ29sb3I6XCJ3aGl0ZVwiLG1lc3NhZ2VDb2xvcjpcIndoaXRlXCIsc3Bpbm5lcjpRU3Bpbm5lcixjdXN0b21DbGFzczohMX0sc3RhdGljQ2xhc3M9XCJxLWxvYWRpbmcgYW5pbWF0ZS1mYWRlIGZ1bGxzY3JlZW4gY29sdW1uIGZsZXgtY2VudGVyIHotbWF4XCIsbG9hZGluZz17aXNBY3RpdmU6ITEsc2hvdzpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2lzU1NSfHwoXCJzdHJpbmdcIj09dHlwZW9mKHByb3BzPU9iamVjdC5hc3NpZ24oe30sZGVmYXVsdHMsdCkpLmN1c3RvbUNsYXNzJiYocHJvcHMuY3VzdG9tQ2xhc3M9cHJvcHMuY3VzdG9tQ2xhc3MudHJpbSgpKSx0aGlzLmlzQWN0aXZlP3ZtJiZ2bS4kZm9yY2VVcGRhdGUoKToodGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGltZW91dD1udWxsO3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0KSxkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJ3aXRoLWxvYWRpbmdcIiksdm09bmV3IGUuX19WdWUoe25hbWU6XCJRTG9hZGluZ1wiLGVsOnQscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOnN0YXRpY0NsYXNzLGNsYXNzOnByb3BzLmN1c3RvbUNsYXNzfSxbdChwcm9wcy5zcGlubmVyLHtwcm9wczp7Y29sb3I6cHJvcHMuc3Bpbm5lckNvbG9yLHNpemU6cHJvcHMuc3Bpbm5lclNpemV9fSkscHJvcHMubWVzc2FnZT90KFwiZGl2XCIse2NsYXNzOlwidGV4dC1cIitwcm9wcy5tZXNzYWdlQ29sb3IsZG9tUHJvcHM6e2lubmVySFRNTDpwcm9wcy5tZXNzYWdlfX0pOm51bGxdKX19KX0scHJvcHMuZGVsYXkpLHRoaXMuaXNBY3RpdmU9ITApKX0saGlkZTpmdW5jdGlvbigpe3RoaXMuaXNBY3RpdmUmJih0aW1lb3V0PyhjbGVhclRpbWVvdXQodGltZW91dCksdGltZW91dD1udWxsKToodm0uJGRlc3Ryb3koKSxkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJ3aXRoLWxvYWRpbmdcIiksdm0uJGVsLnJlbW92ZSgpLHZtPW51bGwpLHRoaXMuaXNBY3RpdmU9ITEpfSxzZXREZWZhdWx0czpmdW5jdGlvbih0KXtPYmplY3QuYXNzaWduKGRlZmF1bHRzLHQpfSxfX1Z1ZTpudWxsLGluc3RhbGw6ZnVuY3Rpb24odCl7dmFyIGU9dC4kcSxpPXQuVnVlLHM9dC5jZmcubG9hZGluZztzJiZ0aGlzLnNldERlZmF1bHRzKHMpLGUubG9hZGluZz10aGlzLHRoaXMuX19WdWU9aX19O2Z1bmN0aW9uIG5vcm1hbGl6ZSh0KXt0LnRpdGxlJiYodC50aXRsZT10LnRpdGxlVGVtcGxhdGU/dC50aXRsZVRlbXBsYXRlKHQudGl0bGV8fFwiXCIpOnQudGl0bGUsZGVsZXRlIHQudGl0bGVUZW1wbGF0ZSksW1tcIm1ldGFcIixcImNvbnRlbnRcIl0sW1wibGlua1wiLFwiaHJlZlwiXV0uZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgaT10W2VbMF1dLHM9ZVsxXTtmb3IodmFyIG4gaW4gaSl7dmFyIG89aVtuXTtvLnRlbXBsYXRlJiYoMT09PU9iamVjdC5rZXlzKG8pLmxlbmd0aD9kZWxldGUgaVtuXToob1tzXT1vLnRlbXBsYXRlKG9bc118fFwiXCIpLGRlbGV0ZSBvLnRlbXBsYXRlKSl9fSl9ZnVuY3Rpb24gY2hhbmdlZCh0LGUpe2lmKE9iamVjdC5rZXlzKHQpLmxlbmd0aCE9PU9iamVjdC5rZXlzKGUpLmxlbmd0aClyZXR1cm4hMDtmb3IodmFyIGkgaW4gdClpZih0W2ldIT09ZVtpXSlyZXR1cm4hMH1mdW5jdGlvbiBib2R5RmlsdGVyKHQpe3JldHVybiFbXCJjbGFzc1wiLFwic3R5bGVcIl0uaW5jbHVkZXModCl9ZnVuY3Rpb24gaHRtbEZpbHRlcih0KXtyZXR1cm4hW1wibGFuZ1wiLFwiZGlyXCJdLmluY2x1ZGVzKHQpfWZ1bmN0aW9uIGRpZmYodCxlKXt2YXIgaT17fSxzPXt9O3JldHVybiB0Pyh0LnRpdGxlIT09ZS50aXRsZSYmKGkudGl0bGU9ZS50aXRsZSksW1wibWV0YVwiLFwibGlua1wiLFwic2NyaXB0XCIsXCJodG1sQXR0clwiLFwiYm9keUF0dHJcIl0uZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgbz10W25dLHI9ZVtuXTtpZihzW25dPVtdLG8pe2Zvcih2YXIgYSBpbiBpW25dPXt9LG8pci5oYXNPd25Qcm9wZXJ0eShhKXx8c1tuXS5wdXNoKGEpO2Zvcih2YXIgbCBpbiByKW8uaGFzT3duUHJvcGVydHkobCk/Y2hhbmdlZChvW2xdLHJbbF0pJiYoc1tuXS5wdXNoKGwpLGlbbl1bbF09cltsXSk6aVtuXVtsXT1yW2xdfWVsc2UgaVtuXT1yfSkse2FkZDppLHJlbW92ZTpzfSk6e2FkZDplLHJlbW92ZTpzfX1mdW5jdGlvbiBhcHBseSh0KXt2YXIgZT10LmFkZCxpPXQucmVtb3ZlO2UudGl0bGUmJihkb2N1bWVudC50aXRsZT1lLnRpdGxlKSxPYmplY3Qua2V5cyhpKS5sZW5ndGg+MCYmKFtcIm1ldGFcIixcImxpbmtcIixcInNjcmlwdFwiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lbdF0uZm9yRWFjaChmdW5jdGlvbihlKXtkb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3IodCsnW2RhdGEtcW1ldGE9XCInK2UrJ1wiXScpLnJlbW92ZSgpfSl9KSxpLmh0bWxBdHRyLmZpbHRlcihodG1sRmlsdGVyKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUodCl9KSxpLmJvZHlBdHRyLmZpbHRlcihib2R5RmlsdGVyKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2RvY3VtZW50LmJvZHkucmVtb3ZlQXR0cmlidXRlKHQpfSkpLFtcIm1ldGFcIixcImxpbmtcIixcInNjcmlwdFwiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBpPWVbdF07Zm9yKHZhciBzIGluIGkpe3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodCk7Zm9yKHZhciBvIGluIGlbc10pXCJpbm5lckhUTUxcIiE9PW8mJm4uc2V0QXR0cmlidXRlKG8saVtzXVtvXSk7bi5zZXRBdHRyaWJ1dGUoXCJkYXRhLXFtZXRhXCIscyksXCJzY3JpcHRcIj09PXQmJihuLmlubmVySFRNTD1pW3NdLmlubmVySFRNTHx8XCJcIiksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChuKX19KSxPYmplY3Qua2V5cyhlLmh0bWxBdHRyKS5maWx0ZXIoaHRtbEZpbHRlcikuZm9yRWFjaChmdW5jdGlvbih0KXtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2V0QXR0cmlidXRlKHQsZS5odG1sQXR0clt0XXx8XCJcIil9KSxPYmplY3Qua2V5cyhlLmJvZHlBdHRyKS5maWx0ZXIoYm9keUZpbHRlcikuZm9yRWFjaChmdW5jdGlvbih0KXtkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZSh0LGUuYm9keUF0dHJbdF18fFwiXCIpfSl9ZnVuY3Rpb24gcGFyc2VNZXRhKHQsZSl7aWYoIXQuX2luYWN0aXZlKXt2YXIgaT10LiRvcHRpb25zLm1ldGE7aSYmKGV4dGVuZCghMCxlLHQuX19xTWV0YSksaS5zdG9wUHJvcGFnYXRpb24pfHx0LiRjaGlsZHJlbiYmdC4kY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbih0KXtwYXJzZU1ldGEodCxlKX0pfX1mdW5jdGlvbiB1cGRhdGVDbGllbnQoKXtpZihzc3JUYWtlb3ZlcilyZXR1cm4gc3NyVGFrZW92ZXI9ITEsdGhpcy4kcm9vdC5fX2N1cnJlbnRNZXRhPXdpbmRvdy5fX1FfTUVUQV9fLHZvaWQgZG9jdW1lbnQuYm9keS5xdWVyeVNlbGVjdG9yKFwic2NyaXB0W2RhdGEtcW1ldGEtaW5pdF1cIikucmVtb3ZlKCk7dmFyIHQ9e3RpdGxlOlwiXCIsdGl0bGVUZW1wbGF0ZTpudWxsLG1ldGE6e30sbGluazp7fSxzY3JpcHQ6e30saHRtbEF0dHI6e30sYm9keUF0dHI6e319O3BhcnNlTWV0YSh0aGlzLiRyb290LHQpLG5vcm1hbGl6ZSh0KSxhcHBseShkaWZmKHRoaXMuJHJvb3QuX19jdXJyZW50TWV0YSx0KSksdGhpcy4kcm9vdC5fX2N1cnJlbnRNZXRhPXR9ZnVuY3Rpb24gZ2V0QXR0cih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIGk9dFtlXTtyZXR1cm4gZSsodm9pZCAwIT09aT8nPVwiJytpKydcIic6XCJcIil9fWZ1bmN0aW9uIGdldEhlYWQodCl7dmFyIGU9XCJcIjtyZXR1cm4gdC50aXRsZSYmKGUrPVwiPHRpdGxlPlwiK3QudGl0bGUrXCI8L3RpdGxlPlwiKSxbXCJtZXRhXCIsXCJsaW5rXCIsXCJzY3JpcHRcIl0uZm9yRWFjaChmdW5jdGlvbihpKXt2YXIgcz10W2ldO2Zvcih2YXIgbiBpbiBzKXt2YXIgbz1PYmplY3Qua2V5cyhzW25dKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuXCJpbm5lckhUTUxcIiE9PXR9KS5tYXAoZ2V0QXR0cihzW25dKSk7ZSs9XCI8XCIraStcIiBcIitvLmpvaW4oXCIgXCIpKycgZGF0YS1xbWV0YT1cIicrbisnXCI+JyxcInNjcmlwdFwiPT09aSYmKGUrPShzW25dLmlubmVySFRNTHx8XCJcIikrXCI8XFwvc2NyaXB0PlwiKX19KSxlfWZ1bmN0aW9uIGdldFNlcnZlck1ldGEodCxlKXt2YXIgaT17dGl0bGU6XCJcIix0aXRsZVRlbXBsYXRlOm51bGwsbWV0YTp7fSxsaW5rOnt9LGh0bWxBdHRyOnt9LGJvZHlBdHRyOnt9LG5vc2NyaXB0Ont9fTtwYXJzZU1ldGEodCxpKSxub3JtYWxpemUoaSk7dmFyIHM9e1wiJSVRX0hUTUxfQVRUUlMlJVwiOk9iamVjdC5rZXlzKGkuaHRtbEF0dHIpLmZpbHRlcihodG1sRmlsdGVyKS5tYXAoZ2V0QXR0cihpLmh0bWxBdHRyKSkuam9pbihcIiBcIiksXCIlJVFfSEVBRF9UQUdTJSVcIjpnZXRIZWFkKGkpLFwiJSVRX0JPRFlfQVRUUlMlJVwiOk9iamVjdC5rZXlzKGkuYm9keUF0dHIpLmZpbHRlcihib2R5RmlsdGVyKS5tYXAoZ2V0QXR0cihpLmJvZHlBdHRyKSkuam9pbihcIiBcIiksXCIlJVFfQk9EWV9UQUdTJSVcIjpPYmplY3Qua2V5cyhpLm5vc2NyaXB0KS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuJzxub3NjcmlwdCBkYXRhLXFtZXRhPVwiJyt0KydcIj4nK2kubm9zY3JpcHRbdF0rXCI8L25vc2NyaXB0PlwifSkuam9pbihcIlwiKStcIjxzY3JpcHQgZGF0YS1xbWV0YS1pbml0PndpbmRvdy5fX1FfTUVUQV9fPVwiKyhkZWxldGUgaS5ub3NjcmlwdCYmSlNPTi5zdHJpbmdpZnkoaSkpK1wiPFxcL3NjcmlwdD5cIn07cmV0dXJuIE9iamVjdC5rZXlzKHMpLmZvckVhY2goZnVuY3Rpb24odCl7ZT1lLnJlcGxhY2UodCxzW3RdKX0pLGV9ZnVuY3Rpb24gYmVmb3JlQ3JlYXRlKCl7dGhpcy4kb3B0aW9ucy5tZXRhJiYoXCJmdW5jdGlvblwiPT10eXBlb2YgdGhpcy4kb3B0aW9ucy5tZXRhPyh0aGlzLiRvcHRpb25zLmNvbXB1dGVkfHwodGhpcy4kb3B0aW9ucy5jb21wdXRlZD17fSksdGhpcy4kb3B0aW9ucy5jb21wdXRlZC5fX3FNZXRhPXRoaXMuJG9wdGlvbnMubWV0YSk6dGhpcy5fX3FNZXRhPXRoaXMuJG9wdGlvbnMubWV0YSl9ZnVuY3Rpb24gdHJpZ2dlck1ldGEoKXt0aGlzLiRvcHRpb25zLm1ldGEmJnRoaXMuX19xTWV0YVVwZGF0ZSgpfXZhciBtZXRhPXtpbnN0YWxsOmZ1bmN0aW9uKHQpe3ZhciBlPXQucXVldWVzLGk9dC5WdWU7aXNTU1I/KGkucHJvdG90eXBlLiRnZXRNZXRhSFRNTD1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGdldFNlcnZlck1ldGEodCxlKX19LGkubWl4aW4oe2JlZm9yZUNyZWF0ZTpiZWZvcmVDcmVhdGV9KSxlLnNlcnZlci5wdXNoKGZ1bmN0aW9uKHQsZSl7ZS5zc3IuUV9IVE1MX0FUVFJTKz1cIiAlJVFfSFRNTF9BVFRSUyUlXCIsT2JqZWN0LmFzc2lnbihlLnNzcix7UV9IRUFEX1RBR1M6XCIlJVFfSEVBRF9UQUdTJSVcIixRX0JPRFlfQVRUUlM6XCIlJVFfQk9EWV9BVFRSUyUlXCIsUV9CT0RZX1RBR1M6XCIlJVFfQk9EWV9UQUdTJSVcIn0pfSkpOihzc3JUYWtlb3Zlcj1mcm9tU1NSLGkubWl4aW4oe2JlZm9yZUNyZWF0ZTpiZWZvcmVDcmVhdGUsY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuJG9wdGlvbnMubWV0YSYmKHRoaXMuX19xTWV0YVVud2F0Y2g9dGhpcy4kd2F0Y2goXCJfX3FNZXRhXCIsdGhpcy5fX3FNZXRhVXBkYXRlKSl9LGFjdGl2YXRlZDp0cmlnZ2VyTWV0YSxkZWFjdGl2YXRlZDp0cmlnZ2VyTWV0YSxiZWZvcmVNb3VudDp0cmlnZ2VyTWV0YSxkZXN0cm95ZWQ6ZnVuY3Rpb24oKXt0aGlzLiRvcHRpb25zLm1ldGEmJih0aGlzLl9fcU1ldGFVbndhdGNoKCksdGhpcy5fX3FNZXRhVXBkYXRlKCkpfSxtZXRob2RzOntfX3FNZXRhVXBkYXRlOmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHVwZGF0ZUlkKSx1cGRhdGVJZD1zZXRUaW1lb3V0KHVwZGF0ZUNsaWVudC5iaW5kKHRoaXMpLDUwKX19fSkpfX0sZGVmYXVsdHMkMT17fSxwb3NpdGlvbkxpc3Q9W1widG9wLWxlZnRcIixcInRvcC1yaWdodFwiLFwiYm90dG9tLWxlZnRcIixcImJvdHRvbS1yaWdodFwiLFwidG9wXCIsXCJib3R0b21cIixcImxlZnRcIixcInJpZ2h0XCIsXCJjZW50ZXJcIl07ZnVuY3Rpb24gaW5pdCh0KXt2YXIgZT10LlZ1ZSxpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpKSx0aGlzLl9fdm09bmV3IGUoe25hbWU6XCJRTm90aWZpY2F0aW9uc1wiLGRhdGE6e25vdGlmczp7Y2VudGVyOltdLGxlZnQ6W10scmlnaHQ6W10sdG9wOltdLFwidG9wLWxlZnRcIjpbXSxcInRvcC1yaWdodFwiOltdLGJvdHRvbTpbXSxcImJvdHRvbS1sZWZ0XCI6W10sXCJib3R0b20tcmlnaHRcIjpbXX19LG1ldGhvZHM6e2FkZDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKCF0KXJldHVybiBjb25zb2xlLmVycm9yKFwiTm90aWZ5OiBwYXJhbWV0ZXIgcmVxdWlyZWRcIiksITE7dmFyIGk9T2JqZWN0LmFzc2lnbih7fSxkZWZhdWx0cyQxLFwic3RyaW5nXCI9PXR5cGVvZiB0P3ttZXNzYWdlOnR9OmNsb25lKHQpKTtpZihpLnBvc2l0aW9uKXtpZighcG9zaXRpb25MaXN0LmluY2x1ZGVzKGkucG9zaXRpb24pKXJldHVybiBjb25zb2xlLmVycm9yKFwiTm90aWZ5OiB3cm9uZyBwb3NpdGlvbjogXCIraS5wb3NpdGlvbiksITF9ZWxzZSBpLnBvc2l0aW9uPVwiYm90dG9tXCI7aWYoaS5fX3VpZD11aWQoKSx2b2lkIDA9PT1pLnRpbWVvdXQpaS50aW1lb3V0PTVlMztlbHNle3ZhciBzPXBhcnNlSW50KGkudGltZW91dCwxMCk7aWYoaXNOYU4ocyl8fHM8MClyZXR1cm4gY29uc29sZS5lcnJvcihcIk5vdGlmeTogd3JvbmcgdGltZW91dDogXCIraS50aW1lb3V0KSwhMTtpLnRpbWVvdXQ9c312YXIgbj1mdW5jdGlvbigpe2UucmVtb3ZlKGkpfTtpZih0LmFjdGlvbnMmJihpLmFjdGlvbnM9dC5hY3Rpb25zLm1hcChmdW5jdGlvbih0KXt2YXIgZT10LmhhbmRsZXIsaT1jbG9uZSh0KTtyZXR1cm4gaS5oYW5kbGVyPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZnVuY3Rpb24oKXtlKCksIXQubm9EaXNtaXNzJiZuKCl9OmZ1bmN0aW9uKCl7cmV0dXJuIG4oKX0saX0pKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiB0Lm9uRGlzbWlzcyYmKGkub25EaXNtaXNzPXQub25EaXNtaXNzKSxpLmNsb3NlQnRuKXt2YXIgbz1be2Nsb3NlQnRuOiEwLGxhYmVsOmkuY2xvc2VCdG4saGFuZGxlcjpufV07aS5hY3Rpb25zPWkuYWN0aW9ucz9pLmFjdGlvbnMuY29uY2F0KG8pOm99aS50aW1lb3V0PjAmJihpLl9fdGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bigpfSxpLnRpbWVvdXQrMWUzKSk7dmFyIHI9aS5wb3NpdGlvbi5pbmRleE9mKFwidG9wXCIpPi0xP1widW5zaGlmdFwiOlwicHVzaFwiO3JldHVybiB0aGlzLm5vdGlmc1tpLnBvc2l0aW9uXVtyXShpKSxufSxyZW1vdmU6ZnVuY3Rpb24odCl7dC5fX3RpbWVvdXQmJmNsZWFyVGltZW91dCh0Ll9fdGltZW91dCk7dmFyIGU9dGhpcy5ub3RpZnNbdC5wb3NpdGlvbl0uaW5kZXhPZih0KTtpZigtMSE9PWUpe3ZhciBpPXRoaXMuJHJlZnNbXCJub3RpZl9cIit0Ll9fdWlkXTtpZihpJiZpLiRlbCl7dmFyIHM9aS4kZWw7cy5zdHlsZS5sZWZ0PXMub2Zmc2V0TGVmdCtcInB4XCIscy5zdHlsZS53aWR0aD1nZXRDb21wdXRlZFN0eWxlKHMpLndpZHRofXRoaXMubm90aWZzW3QucG9zaXRpb25dLnNwbGljZShlLDEpLFwiZnVuY3Rpb25cIj09dHlwZW9mIHQub25EaXNtaXNzJiZ0Lm9uRGlzbWlzcygpfX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1ub3RpZmljYXRpb25zXCJ9LHBvc2l0aW9uTGlzdC5tYXAoZnVuY3Rpb24oaSl7dmFyIHM9W1wibGVmdFwiLFwiY2VudGVyXCIsXCJyaWdodFwiXS5pbmNsdWRlcyhpKT9cImNlbnRlclwiOmkuaW5kZXhPZihcInRvcFwiKT4tMT9cInRvcFwiOlwiYm90dG9tXCIsbj1pLmluZGV4T2YoXCJsZWZ0XCIpPi0xP1wic3RhcnRcIjppLmluZGV4T2YoXCJyaWdodFwiKT4tMT9cImVuZFwiOlwiY2VudGVyXCIsbz1bXCJsZWZ0XCIsXCJyaWdodFwiXS5pbmNsdWRlcyhpKT9cIml0ZW1zLVwiKyhcImxlZnRcIj09PWk/XCJzdGFydFwiOlwiZW5kXCIpK1wiIGp1c3RpZnktY2VudGVyXCI6XCJjZW50ZXJcIj09PWk/XCJmbGV4LWNlbnRlclwiOlwiaXRlbXMtXCIrbjtyZXR1cm4gdChcInRyYW5zaXRpb24tZ3JvdXBcIix7a2V5Omksc3RhdGljQ2xhc3M6XCJxLW5vdGlmaWNhdGlvbi1saXN0IHEtbm90aWZpY2F0aW9uLWxpc3QtXCIrcytcIiBmaXhlZCBjb2x1bW4gXCIrbyx0YWc6XCJkaXZcIixwcm9wczp7bmFtZTpcInEtbm90aWZpY2F0aW9uLVwiK2ksbW9kZTpcIm91dC1pblwifX0sZS5ub3RpZnNbaV0ubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0KFFBbGVydCx7cmVmOlwibm90aWZfXCIrZS5fX3VpZCxrZXk6ZS5fX3VpZCxzdGF0aWNDbGFzczpcInEtbm90aWZpY2F0aW9uXCIscHJvcHM6ZX0sW2UubWVzc2FnZV0pfSkpfSkpfX0pLHRoaXMuX192bS4kbW91bnQoaSl9dmFyIG5vdGlmeT17Y3JlYXRlOmZ1bmN0aW9uKHQpe3JldHVybiBpc1NTUj9mdW5jdGlvbigpe306dGhpcy5fX3ZtLmFkZCh0KX0sc2V0RGVmYXVsdHM6ZnVuY3Rpb24odCl7T2JqZWN0LmFzc2lnbihkZWZhdWx0cyQxLHQpfSxpbnN0YWxsOmZ1bmN0aW9uKHQpe2lmKGlzU1NSKXJldHVybiB0LiRxLm5vdGlmeT1mdW5jdGlvbigpe30sdm9pZCh0LiRxLm5vdGlmeS5zZXREZWZhdWx0cz1mdW5jdGlvbigpe30pO2luaXQuY2FsbCh0aGlzLHQpLHQuY2ZnLm5vdGlmeSYmdGhpcy5zZXREZWZhdWx0cyh0LmNmZy5ub3RpZnkpLHQuJHEubm90aWZ5PXRoaXMuY3JlYXRlLmJpbmQodGhpcyksdC4kcS5ub3RpZnkuc2V0RGVmYXVsdHM9dGhpcy5zZXREZWZhdWx0c319LFNJWkVfTElTVD1bXCJzbVwiLFwibWRcIixcImxnXCIsXCJ4bFwiXSxzY3JlZW49e3dpZHRoOjAsc2l6ZXM6e3NtOjU3NixtZDo3NjgsbGc6OTkyLHhsOjEyMDB9LGx0OntzbTohMCxtZDohMCxsZzohMCx4bDohMH0sZ3Q6e30seHM6ITAsc2V0U2l6ZXM6ZnVuY3Rpb24oKXt9LHNldERlYm91bmNlOmZ1bmN0aW9uKCl7fSxpbnN0YWxsOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT10LiRxLHM9dC5xdWV1ZXMsbj10LlZ1ZTtpZihpc1NTUilpLnNjcmVlbj10aGlzO2Vsc2V7dmFyIG8scixhPWZ1bmN0aW9uKHQpe3ZhciBpPXdpbmRvdy5pbm5lcldpZHRoLHM9ZS5zaXplczt0JiZpPT09ZS53aWR0aHx8KGUud2lkdGg9aSxlLmd0LnhzPWk+PXMuc20sZS5ndC5zbT1pPj1zLm1kLGUuZ3QubWQ9aT49cy5sZyxlLmd0LmxnPWk+PXMueGwsZS5sdC5zbT1pPHMuc20sZS5sdC5tZD1pPHMubWQsZS5sdC5sZz1pPHMubGcsZS5sdC54bD1pPHMueGwsZS54cz1lLmx0LnNtLGUuc209ZS5ndC54cyYmZS5sdC5tZCxlLm1kPWUuZ3Quc20mJmUubHQubGcsZS5sZz1lLmd0Lm1kJiZlLmx0LnhsLGUueGw9aT5zLnhsKX0sbD17fTt0aGlzLnNldFNpemVzPWZ1bmN0aW9uKHQpe1NJWkVfTElTVC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3RbZV0mJihsW2VdPXRbZV0pfSl9LHRoaXMuc2V0RGVib3VuY2U9ZnVuY3Rpb24odCl7cj10fTt2YXIgYz1mdW5jdGlvbigpe3ZhciB0PWdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSk7dC5nZXRQcm9wZXJ0eVZhbHVlKFwiLS1xLXNpemUtc21cIikmJlNJWkVfTElTVC5mb3JFYWNoKGZ1bmN0aW9uKGkpe2Uuc2l6ZXNbaV09cGFyc2VJbnQodC5nZXRQcm9wZXJ0eVZhbHVlKFwiLS1xLXNpemUtXCIraSksMTApfSksZS5zZXRTaXplcz1mdW5jdGlvbih0KXtTSVpFX0xJU1QuZm9yRWFjaChmdW5jdGlvbihpKXt0W2ldJiYoZS5zaXplc1tpXT10W2ldKX0pLGEoKX0sZS5zZXREZWJvdW5jZT1mdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbigpe2EoITApfTtvJiZ3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLG8sbGlzdGVuT3B0cy5wYXNzaXZlKSxvPXQ+MD9kZWJvdW5jZShlLHQpOmUsd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIixvLGxpc3Rlbk9wdHMucGFzc2l2ZSl9LGUuc2V0RGVib3VuY2Uocnx8MTAwKSxPYmplY3Qua2V5cyhsKS5sZW5ndGg+MD8oZS5zZXRTaXplcyhsKSxsPW51bGwpOmEoKX07ZnJvbVNTUj9zLnRha2VvdmVyLnB1c2goYyk6YygpLG4udXRpbC5kZWZpbmVSZWFjdGl2ZShpLFwic2NyZWVuXCIsdGhpcyl9fX07ZnVuY3Rpb24gZW5jb2RlJDEodCl7cmV0dXJuXCJbb2JqZWN0IERhdGVdXCI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCk/XCJfX3FfZGF0ZXxcIit0LnRvVVRDU3RyaW5nKCk6XCJbb2JqZWN0IFJlZ0V4cF1cIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT9cIl9fcV9leHByfFwiK3Quc291cmNlOlwibnVtYmVyXCI9PXR5cGVvZiB0P1wiX19xX251bWJ8XCIrdDpcImJvb2xlYW5cIj09dHlwZW9mIHQ/XCJfX3FfYm9vbHxcIisodD9cIjFcIjpcIjBcIik6XCJzdHJpbmdcIj09dHlwZW9mIHQ/XCJfX3Ffc3RybnxcIit0OlwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/XCJfX3Ffc3RybnxcIit0LnRvU3RyaW5nKCk6dD09PU9iamVjdCh0KT9cIl9fcV9vYmp0fFwiK0pTT04uc3RyaW5naWZ5KHQpOnR9ZnVuY3Rpb24gZGVjb2RlJDEodCl7dmFyIGUsaTtpZih0Lmxlbmd0aDw5KXJldHVybiB0O3N3aXRjaChlPXQuc3Vic3RyKDAsOCksaT10LnN1YnN0cmluZyg5KSxlKXtjYXNlXCJfX3FfZGF0ZVwiOnJldHVybiBuZXcgRGF0ZShpKTtjYXNlXCJfX3FfZXhwclwiOnJldHVybiBuZXcgUmVnRXhwKGkpO2Nhc2VcIl9fcV9udW1iXCI6cmV0dXJuIE51bWJlcihpKTtjYXNlXCJfX3FfYm9vbFwiOnJldHVybiBCb29sZWFuKFwiMVwiPT09aSk7Y2FzZVwiX19xX3N0cm5cIjpyZXR1cm5cIlwiK2k7Y2FzZVwiX19xX29ianRcIjpyZXR1cm4gSlNPTi5wYXJzZShpKTtkZWZhdWx0OnJldHVybiB0fX1mdW5jdGlvbiBnZXRFbXB0eVN0b3JhZ2UoKXt2YXIgdD1mdW5jdGlvbigpe307cmV0dXJue2hhczp0LGdldDp7bGVuZ3RoOnQsaXRlbTp0LGluZGV4OnQsYWxsOnR9LHNldDp0LHJlbW92ZTp0LGNsZWFyOnQsaXNFbXB0eTp0fX1mdW5jdGlvbiBnZXRTdG9yYWdlKHQpe3ZhciBlPXdpbmRvd1t0K1wiU3RvcmFnZVwiXSxpPWZ1bmN0aW9uKHQpe3ZhciBpPWUuZ2V0SXRlbSh0KTtyZXR1cm4gaT9kZWNvZGUkMShpKTpudWxsfTtyZXR1cm57aGFzOmZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT09ZS5nZXRJdGVtKHQpfSxnZXQ6e2xlbmd0aDpmdW5jdGlvbigpe3JldHVybiBlLmxlbmd0aH0saXRlbTppLGluZGV4OmZ1bmN0aW9uKHQpe2lmKHQ8ZS5sZW5ndGgpcmV0dXJuIGkoZS5rZXkodCkpfSxhbGw6ZnVuY3Rpb24oKXtmb3IodmFyIHQscz17fSxuPWUubGVuZ3RoLG89MDtvPG47bysrKXNbdD1lLmtleShvKV09aSh0KTtyZXR1cm4gc319LHNldDpmdW5jdGlvbih0LGkpe2Uuc2V0SXRlbSh0LGVuY29kZSQxKGkpKX0scmVtb3ZlOmZ1bmN0aW9uKHQpe2UucmVtb3ZlSXRlbSh0KX0sY2xlYXI6ZnVuY3Rpb24oKXtlLmNsZWFyKCl9LGlzRW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PWUubGVuZ3RofX19dmFyIGxvY2FsU3RvcmFnZT17aW5zdGFsbDpmdW5jdGlvbih0KXt2YXIgZT10LiRxLGk9aXNTU1J8fCFoYXNXZWJTdG9yYWdlP2dldEVtcHR5U3RvcmFnZSgpOmdldFN0b3JhZ2UoXCJsb2NhbFwiKTtlLmxvY2FsU3RvcmFnZT1pLE9iamVjdC5hc3NpZ24odGhpcyxpKX19LHNlc3Npb25TdG9yYWdlPXtpbnN0YWxsOmZ1bmN0aW9uKHQpe3ZhciBlPXQuJHEsaT1pc1NTUnx8IWhhc1dlYlN0b3JhZ2U/Z2V0RW1wdHlTdG9yYWdlKCk6Z2V0U3RvcmFnZShcInNlc3Npb25cIik7ZS5zZXNzaW9uU3RvcmFnZT1pLE9iamVjdC5hc3NpZ24odGhpcyxpKX19LHBsdWdpbnM9T2JqZWN0LmZyZWV6ZSh7QWN0aW9uU2hlZXQ6YWN0aW9uU2hlZXQsQWRkcmVzc2JhckNvbG9yOmFkZHJlc3NiYXJDb2xvcixBcHBGdWxsc2NyZWVuOmFwcEZ1bGxzY3JlZW4sQXBwVmlzaWJpbGl0eTphcHBWaXNpYmlsaXR5LENvb2tpZXM6Y29va2llcyxEaWFsb2c6ZGlhbG9nLExvYWRpbmdCYXI6bG9hZGluZ0JhcixMb2FkaW5nOmxvYWRpbmcsTWV0YTptZXRhLE5vdGlmeTpub3RpZnksUGxhdGZvcm06UGxhdGZvcm0sU2NyZWVuOnNjcmVlbixMb2NhbFN0b3JhZ2U6bG9jYWxTdG9yYWdlLFNlc3Npb25TdG9yYWdlOnNlc3Npb25TdG9yYWdlfSk7ZnVuY3Rpb24gb3BlblVybCh0LGUpe2lmKFBsYXRmb3JtLmlzLmNvcmRvdmEmJm5hdmlnYXRvciYmbmF2aWdhdG9yLmFwcClyZXR1cm4gbmF2aWdhdG9yLmFwcC5sb2FkVXJsKHQse29wZW5FeHRlcm5hbDohMH0pO3ZhciBpPXdpbmRvdy5vcGVuKHQsXCJfYmxhbmtcIik7aWYoaSlyZXR1cm4gaS5mb2N1cygpLGk7ZSYmZSgpfWZ1bmN0aW9uIG5vb3AoKXt9dmFyIGluZGV4X2VzbT1PYmplY3QuYXNzaWduKHt9LFZ1ZVBsdWdpbix7aW5zdGFsbDpmdW5jdGlvbih0LGUpe1Z1ZVBsdWdpbi5pbnN0YWxsKHQsT2JqZWN0LmFzc2lnbih7fSx7Y29tcG9uZW50czpjb21wb25lbnRzJDEsZGlyZWN0aXZlczpkaXJlY3RpdmVzLHBsdWdpbnM6cGx1Z2luc30sZSkpfX0pO2V4cG9ydCBkZWZhdWx0IGluZGV4X2VzbTtleHBvcnR7UUFjdGlvblNoZWV0LFFBamF4QmFyLFFBbGVydCxRQXV0b2NvbXBsZXRlLFFCcmVhZGNydW1icyxRQnJlYWRjcnVtYnNFbCxRQnRuLFFCdG5Hcm91cCxRQnRuRHJvcGRvd24sUUJ0blRvZ2dsZSxRQ2FyZCxRQ2FyZFRpdGxlLFFDYXJkTWFpbixRQ2FyZEFjdGlvbnMsUUNhcmRNZWRpYSxRQ2FyZFNlcGFyYXRvcixRQ2Fyb3VzZWwsUUNhcm91c2VsU2xpZGUsUUNhcm91c2VsQ29udHJvbCxRQ2hhdE1lc3NhZ2UsUUNoZWNrYm94LFFDaGlwLFFDaGlwc0lucHV0LFFDb2xsYXBzaWJsZSxRQ29sb3IsUUNvbG9yUGlja2VyLFFDb250ZXh0TWVudSxRRGF0ZXRpbWUsUURhdGV0aW1lUGlja2VyLFFEaWFsb2csUUVkaXRvcixRRmFiLFFGYWJBY3Rpb24sUUZpZWxkLFFJY29uLFFJbmZpbml0ZVNjcm9sbCxRSW5uZXJMb2FkaW5nLFFJbnB1dCxRSW5wdXRGcmFtZSxRSnVtYm90cm9uLFFLbm9iLFFMYXlvdXQsUUxheW91dERyYXdlcixRTGF5b3V0Rm9vdGVyLFFMYXlvdXRIZWFkZXIsUVBhZ2UsUVBhZ2VDb250YWluZXIsUVBhZ2VTdGlja3ksUUl0ZW0sUUl0ZW1TZXBhcmF0b3IsUUl0ZW1NYWluLFFJdGVtU2lkZSxRSXRlbVRpbGUsUUl0ZW1XcmFwcGVyLFFMaXN0LFFMaXN0SGVhZGVyLFFNb2RhbCxRTW9kYWxMYXlvdXQsUU5vU3NyLFFSZXNpemVPYnNlcnZhYmxlLFFTY3JvbGxPYnNlcnZhYmxlLFFXaW5kb3dSZXNpemVPYnNlcnZhYmxlLFFPcHRpb25Hcm91cCxRUGFnaW5hdGlvbixRUGFyYWxsYXgsUVBvcG92ZXIsUVBvcHVwRWRpdCxRUHJvZ3Jlc3MsUVB1bGxUb1JlZnJlc2gsUVJhZGlvLFFSYW5nZSxRUmF0aW5nLFFTY3JvbGxBcmVhLFFTZWFyY2gsUVNlbGVjdCxRU2xpZGVUcmFuc2l0aW9uLFFTbGlkZXIsUVNwaW5uZXIsUVNwaW5uZXJBdWRpbyxRU3Bpbm5lckJhbGwsUVNwaW5uZXJCYXJzLFFTcGlubmVyQ2lyY2xlcyxRU3Bpbm5lckNvbW1lbnQsUVNwaW5uZXJDdWJlLFFTcGlubmVyRG90cyxRU3Bpbm5lckZhY2Vib29rLFFTcGlubmVyR2VhcnMsUVNwaW5uZXJHcmlkLFFTcGlubmVySGVhcnRzLFFTcGlubmVySG91cmdsYXNzLFFTcGlubmVySW5maW5pdHksUVNwaW5uZXJfaW9zIGFzIFFTcGlubmVySW9zLERlZmF1bHRTcGlubmVyIGFzIFFTcGlubmVyTWF0LFFTcGlubmVyT3ZhbCxRU3Bpbm5lclBpZSxRU3Bpbm5lclB1ZmYsUVNwaW5uZXJSYWRpbyxRU3Bpbm5lclJpbmdzLFFTcGlubmVyVGFpbCxRU3RlcCxRU3RlcHBlcixRU3RlcHBlck5hdmlnYXRpb24sUVJvdXRlVGFiLFFUYWIsUVRhYlBhbmUsUVRhYnMsUVRhYmxlLFFUaCxRVHIsUVRkLFFUYWJsZUNvbHVtbnMsUVRpbWVsaW5lLFFUaW1lbGluZUVudHJ5LFFUb2dnbGUsUVRvb2xiYXIsUVRvb2xiYXJUaXRsZSxRVG9vbHRpcCxRVHJlZSxRVXBsb2FkZXIsUVZpZGVvLGJhY2tUb1RvcCBhcyBCYWNrVG9Ub3AsY2xvc2VPdmVybGF5IGFzIENsb3NlT3ZlcmxheSxnb0JhY2sgYXMgR29CYWNrLFJpcHBsZSxzY3JvbGxGaXJlIGFzIFNjcm9sbEZpcmUsc2Nyb2xsJDEgYXMgU2Nyb2xsLHRvdWNoSG9sZCBhcyBUb3VjaEhvbGQsVG91Y2hQYW4sVG91Y2hTd2lwZSxhY3Rpb25TaGVldCBhcyBBY3Rpb25TaGVldCxhZGRyZXNzYmFyQ29sb3IgYXMgQWRkcmVzc2JhckNvbG9yLGFwcEZ1bGxzY3JlZW4gYXMgQXBwRnVsbHNjcmVlbixhcHBWaXNpYmlsaXR5IGFzIEFwcFZpc2liaWxpdHksY29va2llcyBhcyBDb29raWVzLGRpYWxvZyBhcyBEaWFsb2csbG9hZGluZ0JhciBhcyBMb2FkaW5nQmFyLGxvYWRpbmcgYXMgTG9hZGluZyxtZXRhIGFzIE1ldGEsbm90aWZ5IGFzIE5vdGlmeSxQbGF0Zm9ybSxzY3JlZW4gYXMgU2NyZWVuLGxvY2FsU3RvcmFnZSBhcyBMb2NhbFN0b3JhZ2Usc2Vzc2lvblN0b3JhZ2UgYXMgU2Vzc2lvblN0b3JhZ2UsYW5pbWF0ZSxjbG9uZSxjb2xvcnMsZGF0ZSxkZWJvdW5jZSxkb20sZWFzaW5nLGV2ZW50LGV4dGVuZCxmaWx0ZXIsZm9ybWF0LGZyYW1lRGVib3VuY2Usbm9vcCxvcGVuVXJsIGFzIG9wZW5VUkwsc2Nyb2xsLHRocm90dGxlLHVpZH07IiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9hcHAudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTRmYmM3MzViJnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2FwcC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2FwcC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmltcG9ydCBzdHlsZTAgZnJvbSBcIi4vYXBwLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTRmYmM3MzViJnNjb3BlZD10cnVlJmxhbmc9Y3NzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCI0ZmJjNzM1YlwiLFxuICBudWxsXG4gIFxuKVxuXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICB2YXIgYXBpID0gcmVxdWlyZShcIi9Vc2Vycy9zZWIvd2ViL2Vtb2ppLW1hcnQvZW1vamktbWFydC12dWUvbm9kZV9tb2R1bGVzL3Z1ZS1ob3QtcmVsb2FkLWFwaS9kaXN0L2luZGV4LmpzXCIpXG4gIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKVxuICBpZiAoYXBpLmNvbXBhdGlibGUpIHtcbiAgICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnNGZiYzczNWInKSkge1xuICAgICAgYXBpLmNyZWF0ZVJlY29yZCgnNGZiYzczNWInLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9IGVsc2Uge1xuICAgICAgYXBpLnJlbG9hZCgnNGZiYzczNWInLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL2FwcC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NGZiYzczNWImc2NvcGVkPXRydWUmXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFwaS5yZXJlbmRlcignNGZiYzczNWInLCB7XG4gICAgICAgIHJlbmRlcjogcmVuZGVyLFxuICAgICAgICBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZuc1xuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcImRvY3MvYXBwLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vRW1vamkudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTUzNGFkOTQ2JlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0Vtb2ppLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vRW1vamkudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbFxuICBcbilcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgdmFyIGFwaSA9IHJlcXVpcmUoXCIvVXNlcnMvc2ViL3dlYi9lbW9qaS1tYXJ0L2Vtb2ppLW1hcnQtdnVlL25vZGVfbW9kdWxlcy92dWUtaG90LXJlbG9hZC1hcGkvZGlzdC9pbmRleC5qc1wiKVxuICBhcGkuaW5zdGFsbChyZXF1aXJlKCd2dWUnKSlcbiAgaWYgKGFwaS5jb21wYXRpYmxlKSB7XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICAgIGlmICghYXBpLmlzUmVjb3JkZWQoJzUzNGFkOTQ2JykpIHtcbiAgICAgIGFwaS5jcmVhdGVSZWNvcmQoJzUzNGFkOTQ2JywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZWxvYWQoJzUzNGFkOTQ2JywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfVxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9FbW9qaS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NTM0YWQ5NDYmXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFwaS5yZXJlbmRlcignNTM0YWQ5NDYnLCB7XG4gICAgICAgIHJlbmRlcjogcmVuZGVyLFxuICAgICAgICBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZuc1xuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy9jb21wb25lbnRzL0Vtb2ppLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vUGlja2VyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kMTZlOTA4NCZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9QaWNrZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9QaWNrZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbFxuICBcbilcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgdmFyIGFwaSA9IHJlcXVpcmUoXCIvVXNlcnMvc2ViL3dlYi9lbW9qaS1tYXJ0L2Vtb2ppLW1hcnQtdnVlL25vZGVfbW9kdWxlcy92dWUtaG90LXJlbG9hZC1hcGkvZGlzdC9pbmRleC5qc1wiKVxuICBhcGkuaW5zdGFsbChyZXF1aXJlKCd2dWUnKSlcbiAgaWYgKGFwaS5jb21wYXRpYmxlKSB7XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICAgIGlmICghYXBpLmlzUmVjb3JkZWQoJ2QxNmU5MDg0JykpIHtcbiAgICAgIGFwaS5jcmVhdGVSZWNvcmQoJ2QxNmU5MDg0JywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZWxvYWQoJ2QxNmU5MDg0JywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfVxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9QaWNrZXIudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWQxNmU5MDg0JlwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBhcGkucmVyZW5kZXIoJ2QxNmU5MDg0Jywge1xuICAgICAgICByZW5kZXI6IHJlbmRlcixcbiAgICAgICAgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnNcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxufVxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvY29tcG9uZW50cy9QaWNrZXIudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9hbmNob3JzLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01MTE4ODEwNCZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9hbmNob3JzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vYW5jaG9ycy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBudWxsLFxuICBudWxsXG4gIFxuKVxuXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICB2YXIgYXBpID0gcmVxdWlyZShcIi9Vc2Vycy9zZWIvd2ViL2Vtb2ppLW1hcnQvZW1vamktbWFydC12dWUvbm9kZV9tb2R1bGVzL3Z1ZS1ob3QtcmVsb2FkLWFwaS9kaXN0L2luZGV4LmpzXCIpXG4gIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKVxuICBpZiAoYXBpLmNvbXBhdGlibGUpIHtcbiAgICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnNTExODgxMDQnKSkge1xuICAgICAgYXBpLmNyZWF0ZVJlY29yZCgnNTExODgxMDQnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9IGVsc2Uge1xuICAgICAgYXBpLnJlbG9hZCgnNTExODgxMDQnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL2FuY2hvcnMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTUxMTg4MTA0JlwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBhcGkucmVyZW5kZXIoJzUxMTg4MTA0Jywge1xuICAgICAgICByZW5kZXI6IHJlbmRlcixcbiAgICAgICAgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnNcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxufVxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvY29tcG9uZW50cy9hbmNob3JzLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vY2F0ZWdvcnkudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTM3NmNkYTBlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2NhdGVnb3J5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vY2F0ZWdvcnkudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbFxuICBcbilcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgdmFyIGFwaSA9IHJlcXVpcmUoXCIvVXNlcnMvc2ViL3dlYi9lbW9qaS1tYXJ0L2Vtb2ppLW1hcnQtdnVlL25vZGVfbW9kdWxlcy92dWUtaG90LXJlbG9hZC1hcGkvZGlzdC9pbmRleC5qc1wiKVxuICBhcGkuaW5zdGFsbChyZXF1aXJlKCd2dWUnKSlcbiAgaWYgKGFwaS5jb21wYXRpYmxlKSB7XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICAgIGlmICghYXBpLmlzUmVjb3JkZWQoJzM3NmNkYTBlJykpIHtcbiAgICAgIGFwaS5jcmVhdGVSZWNvcmQoJzM3NmNkYTBlJywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZWxvYWQoJzM3NmNkYTBlJywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfVxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9jYXRlZ29yeS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9Mzc2Y2RhMGUmXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFwaS5yZXJlbmRlcignMzc2Y2RhMGUnLCB7XG4gICAgICAgIHJlbmRlcjogcmVuZGVyLFxuICAgICAgICBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZuc1xuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy9jb21wb25lbnRzL2NhdGVnb3J5LnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vcHJldmlldy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MzUwNTZjMzAmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vcHJldmlldy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3ByZXZpZXcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbFxuICBcbilcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgdmFyIGFwaSA9IHJlcXVpcmUoXCIvVXNlcnMvc2ViL3dlYi9lbW9qaS1tYXJ0L2Vtb2ppLW1hcnQtdnVlL25vZGVfbW9kdWxlcy92dWUtaG90LXJlbG9hZC1hcGkvZGlzdC9pbmRleC5qc1wiKVxuICBhcGkuaW5zdGFsbChyZXF1aXJlKCd2dWUnKSlcbiAgaWYgKGFwaS5jb21wYXRpYmxlKSB7XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICAgIGlmICghYXBpLmlzUmVjb3JkZWQoJzM1MDU2YzMwJykpIHtcbiAgICAgIGFwaS5jcmVhdGVSZWNvcmQoJzM1MDU2YzMwJywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZWxvYWQoJzM1MDU2YzMwJywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfVxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9wcmV2aWV3LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0zNTA1NmMzMCZcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgYXBpLnJlcmVuZGVyKCczNTA1NmMzMCcsIHtcbiAgICAgICAgcmVuZGVyOiByZW5kZXIsXG4gICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zXG4gICAgICB9KVxuICAgIH0pXG4gIH1cbn1cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjL2NvbXBvbmVudHMvcHJldmlldy52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL3NlYXJjaC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NGFkNDFiYjgmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vc2VhcmNoLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vc2VhcmNoLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiL1VzZXJzL3NlYi93ZWIvZW1vamktbWFydC9lbW9qaS1tYXJ0LXZ1ZS9ub2RlX21vZHVsZXMvdnVlLWhvdC1yZWxvYWQtYXBpL2Rpc3QvaW5kZXguanNcIilcbiAgYXBpLmluc3RhbGwocmVxdWlyZSgndnVlJykpXG4gIGlmIChhcGkuY29tcGF0aWJsZSkge1xuICAgIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgICBpZiAoIWFwaS5pc1JlY29yZGVkKCc0YWQ0MWJiOCcpKSB7XG4gICAgICBhcGkuY3JlYXRlUmVjb3JkKCc0YWQ0MWJiOCcsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVsb2FkKCc0YWQ0MWJiOCcsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH1cbiAgICBtb2R1bGUuaG90LmFjY2VwdChcIi4vc2VhcmNoLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00YWQ0MWJiOCZcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgYXBpLnJlcmVuZGVyKCc0YWQ0MWJiOCcsIHtcbiAgICAgICAgcmVuZGVyOiByZW5kZXIsXG4gICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zXG4gICAgICB9KVxuICAgIH0pXG4gIH1cbn1cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjL2NvbXBvbmVudHMvc2VhcmNoLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vc2tpbnMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTFjNjE0ODk0JlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3NraW5zLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vc2tpbnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbFxuICBcbilcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgdmFyIGFwaSA9IHJlcXVpcmUoXCIvVXNlcnMvc2ViL3dlYi9lbW9qaS1tYXJ0L2Vtb2ppLW1hcnQtdnVlL25vZGVfbW9kdWxlcy92dWUtaG90LXJlbG9hZC1hcGkvZGlzdC9pbmRleC5qc1wiKVxuICBhcGkuaW5zdGFsbChyZXF1aXJlKCd2dWUnKSlcbiAgaWYgKGFwaS5jb21wYXRpYmxlKSB7XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICAgIGlmICghYXBpLmlzUmVjb3JkZWQoJzFjNjE0ODk0JykpIHtcbiAgICAgIGFwaS5jcmVhdGVSZWNvcmQoJzFjNjE0ODk0JywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZWxvYWQoJzFjNjE0ODk0JywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfVxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9za2lucy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MWM2MTQ4OTQmXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFwaS5yZXJlbmRlcignMWM2MTQ4OTQnLCB7XG4gICAgICAgIHJlbmRlcjogcmVuZGVyLFxuICAgICAgICBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZuc1xuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy9jb21wb25lbnRzL3NraW5zLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9hcHAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vYXBwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9FbW9qaS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9FbW9qaS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vUGlja2VyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1BpY2tlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vYW5jaG9ycy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9hbmNob3JzLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9jYXRlZ29yeS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9jYXRlZ29yeS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vcHJldmlldy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9wcmV2aWV3LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9zZWFyY2gudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vc2VhcmNoLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9za2lucy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9za2lucy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJleHBvcnQgKiBmcm9tIFwiLSEuLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy90ZW1wbGF0ZUxvYWRlci5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vYXBwLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00ZmJjNzM1YiZzY29wZWQ9dHJ1ZSZcIiIsImV4cG9ydCAqIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3RlbXBsYXRlTG9hZGVyLmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9FbW9qaS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NTM0YWQ5NDYmXCIiLCJleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy90ZW1wbGF0ZUxvYWRlci5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vUGlja2VyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kMTZlOTA4NCZcIiIsImV4cG9ydCAqIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3RlbXBsYXRlTG9hZGVyLmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9hbmNob3JzLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01MTE4ODEwNCZcIiIsImV4cG9ydCAqIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3RlbXBsYXRlTG9hZGVyLmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9jYXRlZ29yeS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9Mzc2Y2RhMGUmXCIiLCJleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy90ZW1wbGF0ZUxvYWRlci5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vcHJldmlldy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MzUwNTZjMzAmXCIiLCJleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy90ZW1wbGF0ZUxvYWRlci5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vc2VhcmNoLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00YWQ0MWJiOCZcIiIsImV4cG9ydCAqIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3RlbXBsYXRlTG9hZGVyLmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9za2lucy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MWM2MTQ4OTQmXCIiLCJleHBvcnQgKiBmcm9tIFwiLSEuLi9ub2RlX21vZHVsZXMvdnVlLXN0eWxlLWxvYWRlci9pbmRleC5qcyEuLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vYXBwLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTRmYmM3MzViJnNjb3BlZD10cnVlJmxhbmc9Y3NzJlwiIiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX2MoXG4gICAgXCJkaXZcIixcbiAgICB7IHN0YXRpY0NsYXNzOiBcImFwcFwiIH0sXG4gICAgW1xuICAgICAgX3ZtLl9tKDApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFxuICAgICAgICBcImRpdlwiLFxuICAgICAgICB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0sXG4gICAgICAgIFtcbiAgICAgICAgICBfYyhcImVtb2ppXCIsIHtcbiAgICAgICAgICAgIGF0dHJzOiB7IGRhdGE6IF92bS5pbmRleCwgZW1vamk6IFwiOnNhbnRhOjpza2luLXRvbmUtMzpcIiwgc2l6ZTogMzIgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgIF9jKFwiZW1vamlcIiwge1xuICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgZGF0YTogX3ZtLmluZGV4LFxuICAgICAgICAgICAgICBlbW9qaTogXCJzYW50YVwiLFxuICAgICAgICAgICAgICBzZXQ6IFwidHdpdHRlclwiLFxuICAgICAgICAgICAgICBzaXplOiAzMixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICBfYyhcImVtb2ppXCIsIHtcbiAgICAgICAgICAgIGF0dHJzOiB7IGRhdGE6IF92bS5pbmRleCwgZW1vamk6IF92bS5zYW50YUVtb2ppT2JqZWN0LCBzaXplOiAzMiB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgICAxXG4gICAgICApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSwgW1xuICAgICAgICBfYyhcImJ1dHRvblwiLCB7IG9uOiB7IGNsaWNrOiBfdm0udG9nZ2xlVmlzaWJsZSB9IH0sIFtcbiAgICAgICAgICBfdm0uX3YoXCJTaG93IC8gaGlkZSB0aGUgcGlja2VyXCIpLFxuICAgICAgICBdKSxcbiAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgX2MoXCJidXR0b25cIiwge1xuICAgICAgICAgIGRvbVByb3BzOiB7IGlubmVySFRNTDogX3ZtLl9zKF92bS5zbWlsZSkgfSxcbiAgICAgICAgICBvbjogeyBjbGljazogX3ZtLnRvZ2dsZVZpc2libGUgfSxcbiAgICAgICAgfSksXG4gICAgICBdKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcbiAgICAgICAgXCJkaXZcIixcbiAgICAgICAgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9LFxuICAgICAgICBbXG4gICAgICAgICAgX3ZtLl9sKFxuICAgICAgICAgICAgW1wibmF0aXZlXCIsIFwiYXBwbGVcIiwgXCJnb29nbGVcIiwgXCJ0d2l0dGVyXCIsIFwiZmFjZWJvb2tcIl0sXG4gICAgICAgICAgICBmdW5jdGlvbiAoc2V0KSB7XG4gICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgICAgICBcImJ1dHRvblwiLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBrZXk6IHNldCxcbiAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHsgZGlzYWJsZWQ6IF92bS5hY3RpdmVTZXQgPT0gc2V0IH0sXG4gICAgICAgICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF92bS5hY3RpdmVTZXQgPSBzZXRcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFtfdm0uX3YoXCJcXG4gICAgICAgIFwiICsgX3ZtLl9zKHNldCkgKyBcIlxcbiAgICAgIFwiKV1cbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKSxcbiAgICAgICAgXSxcbiAgICAgICAgMlxuICAgICAgKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfdm0uaXNWaXNpYmxlXG4gICAgICAgID8gX2MoXG4gICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9LFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICBfYyhcInBpY2tlclwiLCB7XG4gICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgIGRhdGE6IF92bS5pbmRleCxcbiAgICAgICAgICAgICAgICAgIHNldDogX3ZtLmFjdGl2ZVNldCxcbiAgICAgICAgICAgICAgICAgIG5hdGl2ZTogX3ZtLm5hdGl2ZSxcbiAgICAgICAgICAgICAgICAgIGVtb2ppOiBfdm0uZW1vamksXG4gICAgICAgICAgICAgICAgICBlbW9qaVRvb2x0aXA6IHRydWUsXG4gICAgICAgICAgICAgICAgICB0aXRsZTogX3ZtLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgZW1vamlTaXplOiAzMCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG9uOiB7IHNlbGVjdDogX3ZtLnNob3dFbW9qaSB9LFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAxXG4gICAgICAgICAgKVxuICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFxuICAgICAgICBcImRpdlwiLFxuICAgICAgICB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0sXG4gICAgICAgIF92bS5fbChfdm0uc2VsZWN0ZWRFbW9qaXMsIGZ1bmN0aW9uIChlbW8pIHtcbiAgICAgICAgICByZXR1cm4gX2MoXCJlbW9qaVwiLCB7XG4gICAgICAgICAgICBrZXk6IGVtbyxcbiAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgIGRhdGE6IF92bS5pbmRleCxcbiAgICAgICAgICAgICAgZW1vamk6IGVtbyxcbiAgICAgICAgICAgICAgc2V0OiBfdm0uYWN0aXZlU2V0LFxuICAgICAgICAgICAgICBuYXRpdmU6IF92bS5uYXRpdmUsXG4gICAgICAgICAgICAgIHNpemU6IDMyLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KVxuICAgICAgICB9KSxcbiAgICAgICAgMVxuICAgICAgKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0sIFtcbiAgICAgICAgX3ZtLl92KFwiXFxuICAgIFwiICsgX3ZtLl9zKF92bS5lbW9qaXNPdXRwdXQpICsgXCJcXG4gIFwiKSxcbiAgICAgIF0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF92bS5fbSgxKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiaDJcIiwgW192bS5fdihcIlFEaWFsb2cgRXhhbXBsZVwiKV0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFxuICAgICAgICBcImRpdlwiLFxuICAgICAgICB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0sXG4gICAgICAgIFtcbiAgICAgICAgICBfYyhcInEtYnRuXCIsIHtcbiAgICAgICAgICAgIGF0dHJzOiB7IGxhYmVsOiBcIk9wZW4gUURpYWxvZ1wiIH0sXG4gICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICBjbGljazogZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICAgIF92bS5lbW9qaVBpY2tlckRpYWxvZyA9IHRydWVcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICAgIDFcbiAgICAgICksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJxLWRpYWxvZ1wiLCB7XG4gICAgICAgIHNjb3BlZFNsb3RzOiBfdm0uX3UoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogXCJib2R5XCIsXG4gICAgICAgICAgICBmbjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIF9jKFwicGlja2VyXCIsIHtcbiAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IGRhdGE6IF92bS5pbmRleCwgZW1vamlTaXplOiAyNCwgbmF0aXZlOiB0cnVlIH0sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcm94eTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdKSxcbiAgICAgICAgbW9kZWw6IHtcbiAgICAgICAgICB2YWx1ZTogX3ZtLmVtb2ppUGlja2VyRGlhbG9nLFxuICAgICAgICAgIGNhbGxiYWNrOiBmdW5jdGlvbiAoJCR2KSB7XG4gICAgICAgICAgICBfdm0uZW1vamlQaWNrZXJEaWFsb2cgPSAkJHZcbiAgICAgICAgICB9LFxuICAgICAgICAgIGV4cHJlc3Npb246IFwiZW1vamlQaWNrZXJEaWFsb2dcIixcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJoMlwiLCBbX3ZtLl92KFwiQ3VzdG9tIERpYWxvZyBFeGFtcGxlXCIpXSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9LCBbXG4gICAgICAgIF9jKFxuICAgICAgICAgIFwiYnV0dG9uXCIsXG4gICAgICAgICAge1xuICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICBfdm0uZW1vamlQaWNrZXJDdXN0b21EaWFsb2cgPSB0cnVlXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgW192bS5fdihcIlxcbiAgICAgIE9wZW4gQ3VzdG9tIERpYWxvZ1xcbiAgICBcIildXG4gICAgICAgICksXG4gICAgICBdKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfdm0uZW1vamlQaWNrZXJDdXN0b21EaWFsb2dcbiAgICAgICAgPyBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInBvcHVwXCIgfSwgW1xuICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzdGF0aWNDbGFzczogXCJwb3B1cC1ib3hcIixcbiAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgX3ZtLmVtb2ppUGlja2VyQ3VzdG9tRGlhbG9nID0gZmFsc2VcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGljQ2xhc3M6IFwicG9wdXAtY29udGVudFwiLFxuICAgICAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwicG9wdXAtY2xvc2VcIiB9LCBbXG4gICAgICAgICAgICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGljazogZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLmVtb2ppUGlja2VyQ3VzdG9tRGlhbG9nID0gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtfdm0uX3YoXCJYXCIpXVxuICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICAgICAgICBfYyhcImgyXCIsIFtfdm0uX3YoXCJFbW9qaSBTZWxlY3RvclwiKV0pLFxuICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICAgICAgICBfYyhcInBpY2tlclwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHsgZGF0YTogX3ZtLmluZGV4LCBlbW9qaVNpemU6IDI0LCBuYXRpdmU6IHRydWUgfSxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgXSlcbiAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiaDJcIiwgW192bS5fdihcIkN1c3RvbSBTZWFyY2ggQW5kIFByZXZpZXcgVGVtcGxhdGVzIEV4YW1wbGVcIildKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcbiAgICAgICAgXCJkaXZcIixcbiAgICAgICAgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9LFxuICAgICAgICBbXG4gICAgICAgICAgX2MoXCJQaWNrZXJcIiwge1xuICAgICAgICAgICAgYXR0cnM6IHsgZGF0YTogX3ZtLmluZGV4LCBuYXRpdmU6IHRydWUgfSxcbiAgICAgICAgICAgIHNjb3BlZFNsb3RzOiBfdm0uX3UoW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiBcInNlYXJjaFRlbXBsYXRlXCIsXG4gICAgICAgICAgICAgICAgZm46IGZ1bmN0aW9uIChzbG90UHJvcHMpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAgIF9jKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBzbG90UHJvcHMuaTE4bi5zZWFyY2gsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNsb3RQcm9wcy5vblNlYXJjaCgkZXZlbnQudGFyZ2V0LnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiBcInByZXZpZXdUZW1wbGF0ZVwiLFxuICAgICAgICAgICAgICAgIGZuOiBmdW5jdGlvbiAoc2xvdFByb3BzKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlld1wiIH0sIFtcbiAgICAgICAgICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1lbW9qaVwiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF9jKFwiRW1vamlcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBzbG90UHJvcHMuZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtb2ppOiBzbG90UHJvcHMuZW1vamlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBzbG90UHJvcHMuZW1vamlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcInBvaW50X3VwXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXRpdmU6IHNsb3RQcm9wcy5lbW9qaVByb3BzLm5hdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraW46IHNsb3RQcm9wcy5lbW9qaVByb3BzLnNraW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQ6IHNsb3RQcm9wcy5lbW9qaVByb3BzLnNldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICAgICAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1wcmV2aWV3LWRhdGFcIiB9LCBbXG4gICAgICAgICAgICAgICAgICAgICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1uYW1lXCIgfSwgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcXG4gICAgICAgICAgICAgIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5fcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdFByb3BzLmVtb2ppXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIn5cIiArIHNsb3RQcm9wcy5lbW9qaS5uYW1lICsgXCJ+XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQ2hvb3NlLi4uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1wcmV2aWV3LXNob3J0bmFtZXNcIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLl92KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcXG4gICAgICAgICAgICAgIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLl9zKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3RQcm9wcy5lbW9qaSA/IHNsb3RQcm9wcy5lbW9qaS5jb2xvbnMgOiBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgICAxXG4gICAgICApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJoMlwiLCBbX3ZtLl92KFwiRmlsdGVyZWQgcGlja2VyIGV4YW1wbGVcIildKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcbiAgICAgICAgXCJkaXZcIixcbiAgICAgICAge1xuICAgICAgICAgIGRpcmVjdGl2ZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogXCJzaG93XCIsXG4gICAgICAgICAgICAgIHJhd05hbWU6IFwidi1zaG93XCIsXG4gICAgICAgICAgICAgIHZhbHVlOiBfdm0uZmxhZ3NWaXNpYmxlLFxuICAgICAgICAgICAgICBleHByZXNzaW9uOiBcImZsYWdzVmlzaWJsZVwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHN0YXRpY0NsYXNzOiBcInJvd1wiLFxuICAgICAgICB9LFxuICAgICAgICBbXG4gICAgICAgICAgX2MoXCJQaWNrZXJcIiwge1xuICAgICAgICAgICAgcmVmOiBcImZsYWdzXCIsXG4gICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICBuYXRpdmU6IHRydWUsXG4gICAgICAgICAgICAgIGVtb2ppOiBcImZsYWctdGZcIixcbiAgICAgICAgICAgICAgZW1vamlTaXplOiAxOCxcbiAgICAgICAgICAgICAgZGF0YTogX3ZtLmluZGV4RmlsdGVyZWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgICAxXG4gICAgICApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSwgW1xuICAgICAgICBfYyhcImJ1dHRvblwiLCB7IG9uOiB7IGNsaWNrOiBfdm0udG9nZ2xlRmxhZ3NWaXNpYmxlIH0gfSwgW1xuICAgICAgICAgIF92bS5fdihcIlxcbiAgICAgIFNob3cgLyBoaWRlIHRoZSBmbGFncyBwaWNrZXIgKHdpdGggdi1zaG93KVxcbiAgICBcIiksXG4gICAgICAgIF0pLFxuICAgICAgXSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9KSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcImgyXCIsIFtfdm0uX3YoXCJJMThuIHBpY2tlciBleGFtcGxlXCIpXSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXG4gICAgICAgIFwiZGl2XCIsXG4gICAgICAgIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSxcbiAgICAgICAgW1xuICAgICAgICAgIF9jKFwiUGlja2VyXCIsIHtcbiAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgIGVtb2ppOiBcImRlcGFydG1lbnRfc3RvcmVcIixcbiAgICAgICAgICAgICAgZGF0YTogX3ZtLmluZGV4STE4bixcbiAgICAgICAgICAgICAgaTE4bjogX3ZtLmkxOG4sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgICAxXG4gICAgICApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJoMlwiLCBbX3ZtLl92KFwiQ3VzdG9tIG9yZGVyIGV4YW1wbGVcIildKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcbiAgICAgICAgXCJkaXZcIixcbiAgICAgICAgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9LFxuICAgICAgICBbX2MoXCJQaWNrZXJcIiwgeyBhdHRyczogeyBkYXRhOiBfdm0uaW5kZXhJbmNsdWRlIH0gfSldLFxuICAgICAgICAxXG4gICAgICApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJoMlwiLCBbX3ZtLl92KFwiU21hbGwgcGlja2VyIGV4YW1wbGVcIildKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcbiAgICAgICAgXCJkaXZcIixcbiAgICAgICAgeyBzdGF0aWNDbGFzczogXCJyb3cgcm93LXNtYWxsLXBpY2tlclwiIH0sXG4gICAgICAgIFtcbiAgICAgICAgICBfYyhcIlBpY2tlclwiLCB7XG4gICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICBkYXRhOiBfdm0uaW5kZXgsXG4gICAgICAgICAgICAgIG5hdGl2ZTogX3ZtLm5hdGl2ZSxcbiAgICAgICAgICAgICAgc2V0OiBfdm0uYWN0aXZlU2V0LFxuICAgICAgICAgICAgICBlbW9qaVNpemU6IDEyLFxuICAgICAgICAgICAgICBwZXJMaW5lOiA1LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgICAgMVxuICAgICAgKSxcbiAgICBdLFxuICAgIDFcbiAgKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtcbiAgZnVuY3Rpb24gKCkge1xuICAgIHZhciBfdm0gPSB0aGlzXG4gICAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gICAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gICAgcmV0dXJuIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSwgW1xuICAgICAgX2MoXCJoMVwiLCBbX3ZtLl92KFwiRW1vamkgTWFydCBWdWUg8J+PrFwiKV0pLFxuICAgIF0pXG4gIH0sXG4gIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgX3ZtID0gdGhpc1xuICAgIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICAgIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICAgIHJldHVybiBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInJvdy1zbWFsbFwiIH0sIFtcbiAgICAgIF9jKFwiaWZyYW1lXCIsIHtcbiAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICBzcmM6IFwiaHR0cHM6Ly9naGJ0bnMuY29tL2dpdGh1Yi1idG4uaHRtbD91c2VyPXNlcmVicm92JnJlcG89ZW1vamktbWFydC12dWUmdHlwZT1zdGFyJmNvdW50PXRydWVcIixcbiAgICAgICAgICBmcmFtZUJvcmRlcjogXCIwXCIsXG4gICAgICAgICAgc2Nyb2xsaW5nOiBcIjBcIixcbiAgICAgICAgICB3aWR0aDogXCI5MHB4XCIsXG4gICAgICAgICAgaGVpZ2h0OiBcIjIwcHhcIixcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgIF0pXG4gIH0sXG5dXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF92bS52aWV3LmNhblJlbmRlclxuICAgID8gX2MoXG4gICAgICAgIF92bS50YWcsXG4gICAgICAgIHtcbiAgICAgICAgICB0YWc6IFwiY29tcG9uZW50XCIsXG4gICAgICAgICAgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1lbW9qaVwiLFxuICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICB0aXRsZTogX3ZtLnZpZXcudGl0bGUsXG4gICAgICAgICAgICBcImFyaWEtbGFiZWxcIjogX3ZtLnZpZXcuYXJpYUxhYmVsLFxuICAgICAgICAgICAgXCJkYXRhLXRpdGxlXCI6IF92bS50aXRsZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICBtb3VzZWVudGVyOiBfdm0ub25Nb3VzZUVudGVyLFxuICAgICAgICAgICAgbW91c2VsZWF2ZTogX3ZtLm9uTW91c2VMZWF2ZSxcbiAgICAgICAgICAgIGNsaWNrOiBfdm0ub25DbGljayxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBbXG4gICAgICAgICAgX2MoXCJzcGFuXCIsIHsgY2xhc3M6IF92bS52aWV3LmNzc0NsYXNzLCBzdHlsZTogX3ZtLnZpZXcuY3NzU3R5bGUgfSwgW1xuICAgICAgICAgICAgX3ZtLl92KF92bS5fcyhfdm0udmlldy5jb250ZW50KSksXG4gICAgICAgICAgXSksXG4gICAgICAgIF1cbiAgICAgIClcbiAgICA6IF92bS5fZSgpXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX2MoXG4gICAgXCJzZWN0aW9uXCIsXG4gICAgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0IGVtb2ppLW1hcnQtc3RhdGljXCIsIHN0eWxlOiBfdm0uY3VzdG9tU3R5bGVzIH0sXG4gICAgW1xuICAgICAgX3ZtLnNob3dDYXRlZ29yaWVzXG4gICAgICAgID8gX2MoXG4gICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LWJhciBlbW9qaS1tYXJ0LWJhci1hbmNob3JzXCIgfSxcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgX2MoXCJhbmNob3JzXCIsIHtcbiAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgZGF0YTogX3ZtLmRhdGEsXG4gICAgICAgICAgICAgICAgICBpMThuOiBfdm0ubWVyZ2VkSTE4bixcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiBfdm0uY29sb3IsXG4gICAgICAgICAgICAgICAgICBjYXRlZ29yaWVzOiBfdm0udmlldy5hbGxDYXRlZ29yaWVzLFxuICAgICAgICAgICAgICAgICAgXCJhY3RpdmUtY2F0ZWdvcnlcIjogX3ZtLnZpZXcuYWN0aXZlQ2F0ZWdvcnksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvbjogeyBjbGljazogX3ZtLm9uQW5jaG9yQ2xpY2sgfSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgMVxuICAgICAgICAgIClcbiAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfdm0uX3QoXG4gICAgICAgIFwic2VhcmNoVGVtcGxhdGVcIixcbiAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBfdm0uc2hvd1NlYXJjaFxuICAgICAgICAgICAgICA/IF9jKFwic2VhcmNoXCIsIHtcbiAgICAgICAgICAgICAgICAgIHJlZjogXCJzZWFyY2hcIixcbiAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IF92bS5kYXRhLFxuICAgICAgICAgICAgICAgICAgICBpMThuOiBfdm0ubWVyZ2VkSTE4bixcbiAgICAgICAgICAgICAgICAgICAgXCJhdXRvLWZvY3VzXCI6IF92bS5hdXRvRm9jdXMsXG4gICAgICAgICAgICAgICAgICAgIFwib24tc2VhcmNoXCI6IF92bS5vblNlYXJjaCxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgICBzZWFyY2g6IF92bS5vblNlYXJjaCxcbiAgICAgICAgICAgICAgICAgICAgYXJyb3dMZWZ0OiBfdm0ub25BcnJvd0xlZnQsXG4gICAgICAgICAgICAgICAgICAgIGFycm93UmlnaHQ6IF92bS5vbkFycm93UmlnaHQsXG4gICAgICAgICAgICAgICAgICAgIGFycm93RG93bjogX3ZtLm9uQXJyb3dEb3duLFxuICAgICAgICAgICAgICAgICAgICBhcnJvd1VwOiBfdm0ub25BcnJvd1VwLFxuICAgICAgICAgICAgICAgICAgICBlbnRlcjogX3ZtLm9uRW50ZXIsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIDogX3ZtLl9lKCksXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZGF0YTogX3ZtLmRhdGEsXG4gICAgICAgICAgaTE4bjogX3ZtLmkxOG4sXG4gICAgICAgICAgYXV0b0ZvY3VzOiBfdm0uYXV0b0ZvY3VzLFxuICAgICAgICAgIG9uU2VhcmNoOiBfdm0ub25TZWFyY2gsXG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXG4gICAgICAgIFwiZGl2XCIsXG4gICAgICAgIHtcbiAgICAgICAgICByZWY6IFwic2Nyb2xsXCIsXG4gICAgICAgICAgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1zY3JvbGxcIixcbiAgICAgICAgICBhdHRyczogeyByb2xlOiBcInRhYnBhbmVsXCIgfSxcbiAgICAgICAgICBvbjogeyBzY3JvbGw6IF92bS5vblNjcm9sbCB9LFxuICAgICAgICB9LFxuICAgICAgICBbXG4gICAgICAgICAgX2MoXG4gICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICByZWY6IFwic2Nyb2xsQ29udGVudFwiLFxuICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgIGlkOiBcImVtb2ppLW1hcnQtbGlzdFwiLFxuICAgICAgICAgICAgICAgIHJvbGU6IFwibGlzdGJveFwiLFxuICAgICAgICAgICAgICAgIFwiYXJpYS1leHBhbmRlZFwiOiBcInRydWVcIixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfdm0uX2woX3ZtLnZpZXcuZmlsdGVyZWRDYXRlZ29yaWVzLCBmdW5jdGlvbiAoY2F0ZWdvcnksIGlkeCkge1xuICAgICAgICAgICAgICByZXR1cm4gX2MoXCJjYXRlZ29yeVwiLCB7XG4gICAgICAgICAgICAgICAgZGlyZWN0aXZlczogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcInNob3dcIixcbiAgICAgICAgICAgICAgICAgICAgcmF3TmFtZTogXCJ2LXNob3dcIixcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6XG4gICAgICAgICAgICAgICAgICAgICAgX3ZtLmluZmluaXRlU2Nyb2xsIHx8IGNhdGVnb3J5ID09IF92bS52aWV3LmFjdGl2ZUNhdGVnb3J5LFxuICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uOlxuICAgICAgICAgICAgICAgICAgICAgIFwiaW5maW5pdGVTY3JvbGwgfHwgY2F0ZWdvcnkgPT0gdmlldy5hY3RpdmVDYXRlZ29yeVwiLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIGtleTogY2F0ZWdvcnkuaWQsXG4gICAgICAgICAgICAgICAgcmVmOiBcImNhdGVnb3JpZXNfXCIgKyBpZHgsXG4gICAgICAgICAgICAgICAgcmVmSW5Gb3I6IHRydWUsXG4gICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgIGRhdGE6IF92bS5kYXRhLFxuICAgICAgICAgICAgICAgICAgaTE4bjogX3ZtLm1lcmdlZEkxOG4sXG4gICAgICAgICAgICAgICAgICBpZDogY2F0ZWdvcnkuaWQsXG4gICAgICAgICAgICAgICAgICBuYW1lOiBjYXRlZ29yeS5uYW1lLFxuICAgICAgICAgICAgICAgICAgZW1vamlzOiBjYXRlZ29yeS5lbW9qaXMsXG4gICAgICAgICAgICAgICAgICBcImVtb2ppLXByb3BzXCI6IF92bS5lbW9qaVByb3BzLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIDFcbiAgICAgICAgICApLFxuICAgICAgICBdXG4gICAgICApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF92bS5fdChcbiAgICAgICAgXCJwcmV2aWV3VGVtcGxhdGVcIixcbiAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBfdm0uc2hvd1ByZXZpZXdcbiAgICAgICAgICAgICAgPyBfYyhcbiAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgICB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtYmFyIGVtb2ppLW1hcnQtYmFyLXByZXZpZXdcIiB9LFxuICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICBfYyhcInByZXZpZXdcIiwge1xuICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBfdm0uZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBfdm0udGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbW9qaTogX3ZtLnZpZXcucHJldmlld0Vtb2ppLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJpZGxlLWVtb2ppXCI6IF92bS5pZGxlRW1vamksXG4gICAgICAgICAgICAgICAgICAgICAgICBcInNob3ctc2tpbi10b25lc1wiOiBfdm0uc2hvd1NraW5Ub25lcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZW1vamktcHJvcHNcIjogX3ZtLmVtb2ppUHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInNraW4tcHJvcHNcIjogX3ZtLnNraW5Qcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwib24tc2tpbi1jaGFuZ2VcIjogX3ZtLm9uU2tpbkNoYW5nZSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGRhdGE6IF92bS5kYXRhLFxuICAgICAgICAgIHRpdGxlOiBfdm0udGl0bGUsXG4gICAgICAgICAgZW1vamk6IF92bS52aWV3LnByZXZpZXdFbW9qaSxcbiAgICAgICAgICBpZGxlRW1vamk6IF92bS5pZGxlRW1vamksXG4gICAgICAgICAgc2hvd1NraW5Ub25lczogX3ZtLnNob3dTa2luVG9uZXMsXG4gICAgICAgICAgZW1vamlQcm9wczogX3ZtLmVtb2ppUHJvcHMsXG4gICAgICAgICAgc2tpblByb3BzOiBfdm0uc2tpblByb3BzLFxuICAgICAgICAgIG9uU2tpbkNoYW5nZTogX3ZtLm9uU2tpbkNoYW5nZSxcbiAgICAgICAgfVxuICAgICAgKSxcbiAgICBdLFxuICAgIDJcbiAgKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFxuICAgIFwiZGl2XCIsXG4gICAgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LWFuY2hvcnNcIiwgYXR0cnM6IHsgcm9sZTogXCJ0YWJsaXN0XCIgfSB9LFxuICAgIF92bS5fbChfdm0uY2F0ZWdvcmllcywgZnVuY3Rpb24gKGNhdGVnb3J5KSB7XG4gICAgICByZXR1cm4gX2MoXG4gICAgICAgIFwiYnV0dG9uXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6IGNhdGVnb3J5LmlkLFxuICAgICAgICAgIGNsYXNzOiB7XG4gICAgICAgICAgICBcImVtb2ppLW1hcnQtYW5jaG9yXCI6IHRydWUsXG4gICAgICAgICAgICBcImVtb2ppLW1hcnQtYW5jaG9yLXNlbGVjdGVkXCI6IGNhdGVnb3J5LmlkID09IF92bS5hY3RpdmVDYXRlZ29yeS5pZCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICBjb2xvcjogY2F0ZWdvcnkuaWQgPT0gX3ZtLmFjdGl2ZUNhdGVnb3J5LmlkID8gX3ZtLmNvbG9yIDogXCJcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICByb2xlOiBcInRhYlwiLFxuICAgICAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBjYXRlZ29yeS5uYW1lLFxuICAgICAgICAgICAgXCJhcmlhLXNlbGVjdGVkXCI6IGNhdGVnb3J5LmlkID09IF92bS5hY3RpdmVDYXRlZ29yeS5pZCxcbiAgICAgICAgICAgIFwiZGF0YS10aXRsZVwiOiBfdm0uaTE4bi5jYXRlZ29yaWVzW2NhdGVnb3J5LmlkXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICBjbGljazogZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICByZXR1cm4gX3ZtLiRlbWl0KFwiY2xpY2tcIiwgY2F0ZWdvcnkpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFtcbiAgICAgICAgICBfYyhcImRpdlwiLCB7XG4gICAgICAgICAgICBhdHRyczogeyBcImFyaWEtaGlkZGVuXCI6IFwidHJ1ZVwiIH0sXG4gICAgICAgICAgICBkb21Qcm9wczogeyBpbm5lckhUTUw6IF92bS5fcyhfdm0uc3Znc1tjYXRlZ29yeS5pZF0pIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICBfYyhcInNwYW5cIiwge1xuICAgICAgICAgICAgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1hbmNob3ItYmFyXCIsXG4gICAgICAgICAgICBzdHlsZTogeyBiYWNrZ3JvdW5kQ29sb3I6IF92bS5jb2xvciB9LFxuICAgICAgICAgICAgYXR0cnM6IHsgXCJhcmlhLWhpZGRlblwiOiBcInRydWVcIiB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICBdXG4gICAgICApXG4gICAgfSksXG4gICAgMFxuICApXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX3ZtLmlzVmlzaWJsZSAmJiAoX3ZtLmlzU2VhcmNoIHx8IF92bS5oYXNSZXN1bHRzKVxuICAgID8gX2MoXG4gICAgICAgIFwic2VjdGlvblwiLFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3M6IHtcbiAgICAgICAgICAgIFwiZW1vamktbWFydC1jYXRlZ29yeVwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbW9qaS1tYXJ0LW5vLXJlc3VsdHNcIjogIV92bS5oYXNSZXN1bHRzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYXR0cnM6IHsgXCJhcmlhLWxhYmVsXCI6IF92bS5pMThuLmNhdGVnb3JpZXNbX3ZtLmlkXSB9LFxuICAgICAgICB9LFxuICAgICAgICBbXG4gICAgICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LWNhdGVnb3J5LWxhYmVsXCIgfSwgW1xuICAgICAgICAgICAgX2MoXCJoM1wiLCB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtY2F0ZWdvcnktbGFiZWxcIiB9LCBbXG4gICAgICAgICAgICAgIF92bS5fdihfdm0uX3MoX3ZtLmkxOG4uY2F0ZWdvcmllc1tfdm0uaWRdKSksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICBdKSxcbiAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgIF92bS5fbChfdm0uZW1vamlPYmplY3RzLCBmdW5jdGlvbiAocmVmKSB7XG4gICAgICAgICAgICB2YXIgZW1vamlPYmplY3QgPSByZWYuZW1vamlPYmplY3RcbiAgICAgICAgICAgIHZhciBlbW9qaVZpZXcgPSByZWYuZW1vamlWaWV3XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICBlbW9qaVZpZXcuY2FuUmVuZGVyXG4gICAgICAgICAgICAgICAgPyBfYyhcbiAgICAgICAgICAgICAgICAgICAgXCJidXR0b25cIixcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIGtleTogZW1vamlPYmplY3QuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1lbW9qaVwiLFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBfdm0uYWN0aXZlQ2xhc3MoZW1vamlPYmplY3QpLFxuICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImFyaWEtbGFiZWxcIjogZW1vamlWaWV3LmFyaWFMYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU6IFwib3B0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFyaWEtc2VsZWN0ZWRcIjogXCJmYWxzZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhcmlhLXBvc2luc2V0XCI6IFwiMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhcmlhLXNldHNpemVcIjogXCIxODEyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJkYXRhLXRpdGxlXCI6IGVtb2ppT2JqZWN0LnNob3J0X25hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogZW1vamlWaWV3LnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vdXNlZW50ZXI6IGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLmVtb2ppUHJvcHMub25FbnRlcihlbW9qaVZpZXcuZ2V0RW1vamkoKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBtb3VzZWxlYXZlOiBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5lbW9qaVByb3BzLm9uTGVhdmUoZW1vamlWaWV3LmdldEVtb2ppKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLmVtb2ppUHJvcHMub25DbGljayhlbW9qaVZpZXcuZ2V0RW1vamkoKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzcGFuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBlbW9qaVZpZXcuY3NzQ2xhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBlbW9qaVZpZXcuY3NzU3R5bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgW192bS5fdihfdm0uX3MoZW1vamlWaWV3LmNvbnRlbnQpKV1cbiAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICFfdm0uaGFzUmVzdWx0c1xuICAgICAgICAgICAgPyBfYyhcbiAgICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgIF9jKFwiZW1vamlcIiwge1xuICAgICAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IF92bS5kYXRhLFxuICAgICAgICAgICAgICAgICAgICAgIGVtb2ppOiBcInNsZXV0aF9vcl9zcHlcIixcbiAgICAgICAgICAgICAgICAgICAgICBuYXRpdmU6IF92bS5lbW9qaVByb3BzLm5hdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICBza2luOiBfdm0uZW1vamlQcm9wcy5za2luLFxuICAgICAgICAgICAgICAgICAgICAgIHNldDogX3ZtLmVtb2ppUHJvcHMuc2V0LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LW5vLXJlc3VsdHMtbGFiZWxcIiB9LCBbXG4gICAgICAgICAgICAgICAgICAgIF92bS5fdihfdm0uX3MoX3ZtLmkxOG4ubm90Zm91bmQpKSxcbiAgICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgICBdLFxuICAgICAgICAyXG4gICAgICApXG4gICAgOiBfdm0uX2UoKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFxuICAgIFwiZGl2XCIsXG4gICAgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXByZXZpZXdcIiB9LFxuICAgIFtcbiAgICAgIF92bS5lbW9qaVxuICAgICAgICA/IFtcbiAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1lbW9qaVwiIH0sXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICBfYyhcImVtb2ppXCIsIHtcbiAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IF92bS5kYXRhLFxuICAgICAgICAgICAgICAgICAgICBlbW9qaTogX3ZtLmVtb2ppLFxuICAgICAgICAgICAgICAgICAgICBuYXRpdmU6IF92bS5lbW9qaVByb3BzLm5hdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgc2tpbjogX3ZtLmVtb2ppUHJvcHMuc2tpbixcbiAgICAgICAgICAgICAgICAgICAgc2V0OiBfdm0uZW1vamlQcm9wcy5zZXQsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAxXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1wcmV2aWV3LWRhdGFcIiB9LCBbXG4gICAgICAgICAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1wcmV2aWV3LW5hbWVcIiB9LCBbXG4gICAgICAgICAgICAgICAgX3ZtLl92KF92bS5fcyhfdm0uZW1vamkubmFtZSkpLFxuICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgICB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1zaG9ydG5hbWVzXCIgfSxcbiAgICAgICAgICAgICAgICBfdm0uX2woX3ZtLmVtb2ppU2hvcnROYW1lcywgZnVuY3Rpb24gKHNob3J0TmFtZSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIF9jKFxuICAgICAgICAgICAgICAgICAgICBcInNwYW5cIixcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIGtleTogc2hvcnROYW1lLFxuICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1zaG9ydG5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgW192bS5fdihcIjpcIiArIF92bS5fcyhzaG9ydE5hbWUpICsgXCI6XCIpXVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIDBcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgICB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1lbW90aWNvbnNcIiB9LFxuICAgICAgICAgICAgICAgIF92bS5fbChfdm0uZW1vamlFbW90aWNvbnMsIGZ1bmN0aW9uIChlbW90aWNvbikge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIF9jKFxuICAgICAgICAgICAgICAgICAgICBcInNwYW5cIixcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIGtleTogZW1vdGljb24sXG4gICAgICAgICAgICAgICAgICAgICAgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1wcmV2aWV3LWVtb3RpY29uXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFtfdm0uX3YoX3ZtLl9zKGVtb3RpY29uKSldXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgMFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgXVxuICAgICAgICA6IFtcbiAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1lbW9qaVwiIH0sXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICBfYyhcImVtb2ppXCIsIHtcbiAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IF92bS5kYXRhLFxuICAgICAgICAgICAgICAgICAgICBlbW9qaTogX3ZtLmlkbGVFbW9qaSxcbiAgICAgICAgICAgICAgICAgICAgbmF0aXZlOiBfdm0uZW1vamlQcm9wcy5uYXRpdmUsXG4gICAgICAgICAgICAgICAgICAgIHNraW46IF92bS5lbW9qaVByb3BzLnNraW4sXG4gICAgICAgICAgICAgICAgICAgIHNldDogX3ZtLmVtb2ppUHJvcHMuc2V0LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1kYXRhXCIgfSwgW1xuICAgICAgICAgICAgICBfYyhcInNwYW5cIiwgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXRpdGxlLWxhYmVsXCIgfSwgW1xuICAgICAgICAgICAgICAgIF92bS5fdihfdm0uX3MoX3ZtLnRpdGxlKSksXG4gICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgX3ZtLnNob3dTa2luVG9uZXNcbiAgICAgICAgICAgICAgPyBfYyhcbiAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgICB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1za2luc1wiIH0sXG4gICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgIF9jKFwic2tpbnNcIiwge1xuICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IHNraW46IF92bS5za2luUHJvcHMuc2tpbiB9LFxuICAgICAgICAgICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2U6IGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF92bS5vblNraW5DaGFuZ2UoJGV2ZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgICAgIF0sXG4gICAgXSxcbiAgICAyXG4gIClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtc2VhcmNoXCIgfSwgW1xuICAgIF9jKFwiaW5wdXRcIiwge1xuICAgICAgZGlyZWN0aXZlczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJtb2RlbFwiLFxuICAgICAgICAgIHJhd05hbWU6IFwidi1tb2RlbFwiLFxuICAgICAgICAgIHZhbHVlOiBfdm0udmFsdWUsXG4gICAgICAgICAgZXhwcmVzc2lvbjogXCJ2YWx1ZVwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGF0dHJzOiB7XG4gICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICBwbGFjZWhvbGRlcjogX3ZtLmkxOG4uc2VhcmNoLFxuICAgICAgICByb2xlOiBcInRleHRib3hcIixcbiAgICAgICAgXCJhcmlhLWF1dG9jb21wbGV0ZVwiOiBcImxpc3RcIixcbiAgICAgICAgXCJhcmlhLW93bnNcIjogXCJlbW9qaS1tYXJ0LWxpc3RcIixcbiAgICAgICAgXCJhcmlhLWxhYmVsXCI6IFwiU2VhcmNoIGZvciBhbiBlbW9qaVwiLFxuICAgICAgICBcImFyaWEtZGVzY3JpYmVkYnlcIjogXCJlbW9qaS1tYXJ0LXNlYXJjaC1kZXNjcmlwdGlvblwiLFxuICAgICAgfSxcbiAgICAgIGRvbVByb3BzOiB7IHZhbHVlOiBfdm0udmFsdWUgfSxcbiAgICAgIG9uOiB7XG4gICAgICAgIGtleWRvd246IFtcbiAgICAgICAgICBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICEkZXZlbnQudHlwZS5pbmRleE9mKFwia2V5XCIpICYmXG4gICAgICAgICAgICAgIF92bS5faygkZXZlbnQua2V5Q29kZSwgXCJsZWZ0XCIsIDM3LCAkZXZlbnQua2V5LCBbXG4gICAgICAgICAgICAgICAgXCJMZWZ0XCIsXG4gICAgICAgICAgICAgICAgXCJBcnJvd0xlZnRcIixcbiAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFwiYnV0dG9uXCIgaW4gJGV2ZW50ICYmICRldmVudC5idXR0b24gIT09IDApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAgIHJldHVybiBfdm0uJGVtaXQoXCJhcnJvd0xlZnRcIiwgJGV2ZW50KVxuICAgICAgICAgICAgfS5hcHBseShudWxsLCBhcmd1bWVudHMpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICEkZXZlbnQudHlwZS5pbmRleE9mKFwia2V5XCIpICYmXG4gICAgICAgICAgICAgIF92bS5faygkZXZlbnQua2V5Q29kZSwgXCJyaWdodFwiLCAzOSwgJGV2ZW50LmtleSwgW1xuICAgICAgICAgICAgICAgIFwiUmlnaHRcIixcbiAgICAgICAgICAgICAgICBcIkFycm93UmlnaHRcIixcbiAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFwiYnV0dG9uXCIgaW4gJGV2ZW50ICYmICRldmVudC5idXR0b24gIT09IDIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHJldHVybiBfdm0uJGVtaXQoXCJhcnJvd1JpZ2h0XCIpXG4gICAgICAgICAgICB9LmFwcGx5KG51bGwsIGFyZ3VtZW50cylcbiAgICAgICAgICB9LFxuICAgICAgICAgIGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgISRldmVudC50eXBlLmluZGV4T2YoXCJrZXlcIikgJiZcbiAgICAgICAgICAgICAgX3ZtLl9rKCRldmVudC5rZXlDb2RlLCBcImRvd25cIiwgNDAsICRldmVudC5rZXksIFtcbiAgICAgICAgICAgICAgICBcIkRvd25cIixcbiAgICAgICAgICAgICAgICBcIkFycm93RG93blwiLFxuICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICByZXR1cm4gX3ZtLiRlbWl0KFwiYXJyb3dEb3duXCIpXG4gICAgICAgICAgICB9LmFwcGx5KG51bGwsIGFyZ3VtZW50cylcbiAgICAgICAgICB9LFxuICAgICAgICAgIGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgISRldmVudC50eXBlLmluZGV4T2YoXCJrZXlcIikgJiZcbiAgICAgICAgICAgICAgX3ZtLl9rKCRldmVudC5rZXlDb2RlLCBcInVwXCIsIDM4LCAkZXZlbnQua2V5LCBbXCJVcFwiLCBcIkFycm93VXBcIl0pXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAgIHJldHVybiBfdm0uJGVtaXQoXCJhcnJvd1VwXCIsICRldmVudClcbiAgICAgICAgICAgIH0uYXBwbHkobnVsbCwgYXJndW1lbnRzKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAhJGV2ZW50LnR5cGUuaW5kZXhPZihcImtleVwiKSAmJlxuICAgICAgICAgICAgICBfdm0uX2soJGV2ZW50LmtleUNvZGUsIFwiZW50ZXJcIiwgMTMsICRldmVudC5rZXksIFwiRW50ZXJcIilcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIF92bS4kZW1pdChcImVudGVyXCIpXG4gICAgICAgICAgICB9LmFwcGx5KG51bGwsIGFyZ3VtZW50cylcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBpbnB1dDogZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgIGlmICgkZXZlbnQudGFyZ2V0LmNvbXBvc2luZykge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICAgIF92bS52YWx1ZSA9ICRldmVudC50YXJnZXQudmFsdWVcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgX3ZtLl92KFwiIFwiKSxcbiAgICBfYyhcbiAgICAgIFwic3BhblwiLFxuICAgICAge1xuICAgICAgICBzdGF0aWNDbGFzczogXCJoaWRkZW5cIixcbiAgICAgICAgYXR0cnM6IHsgaWQ6IFwiZW1vamktcGlja2VyLXNlYXJjaC1kZXNjcmlwdGlvblwiIH0sXG4gICAgICB9LFxuICAgICAgW1xuICAgICAgICBfdm0uX3YoXG4gICAgICAgICAgXCJVc2UgdGhlIGxlZnQsIHJpZ2h0LCB1cCBhbmQgZG93biBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIHRoZSBlbW9qaSBzZWFyY2hcXG4gICAgcmVzdWx0cy5cIlxuICAgICAgICApLFxuICAgICAgXVxuICAgICksXG4gIF0pXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX2MoXG4gICAgXCJkaXZcIixcbiAgICB7XG4gICAgICBjbGFzczoge1xuICAgICAgICBcImVtb2ppLW1hcnQtc2tpbi1zd2F0Y2hlc1wiOiB0cnVlLFxuICAgICAgICBcImVtb2ppLW1hcnQtc2tpbi1zd2F0Y2hlcy1vcGVuZWRcIjogX3ZtLm9wZW5lZCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBfdm0uX2woNiwgZnVuY3Rpb24gKHNraW5Ub25lKSB7XG4gICAgICByZXR1cm4gX2MoXG4gICAgICAgIFwic3BhblwiLFxuICAgICAgICB7XG4gICAgICAgICAga2V5OiBza2luVG9uZSxcbiAgICAgICAgICBjbGFzczoge1xuICAgICAgICAgICAgXCJlbW9qaS1tYXJ0LXNraW4tc3dhdGNoXCI6IHRydWUsXG4gICAgICAgICAgICBcImVtb2ppLW1hcnQtc2tpbi1zd2F0Y2gtc2VsZWN0ZWRcIjogX3ZtLnNraW4gPT0gc2tpblRvbmUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgW1xuICAgICAgICAgIF9jKFwic3BhblwiLCB7XG4gICAgICAgICAgICBjbGFzczogXCJlbW9qaS1tYXJ0LXNraW4gZW1vamktbWFydC1za2luLXRvbmUtXCIgKyBza2luVG9uZSxcbiAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF92bS5vbkNsaWNrKHNraW5Ub25lKVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXVxuICAgICAgKVxuICAgIH0pLFxuICAgIDBcbiAgKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsIi8qIGdsb2JhbHMgX19WVUVfU1NSX0NPTlRFWFRfXyAqL1xuXG4vLyBJTVBPUlRBTlQ6IERvIE5PVCB1c2UgRVMyMDE1IGZlYXR1cmVzIGluIHRoaXMgZmlsZSAoZXhjZXB0IGZvciBtb2R1bGVzKS5cbi8vIFRoaXMgbW9kdWxlIGlzIGEgcnVudGltZSB1dGlsaXR5IGZvciBjbGVhbmVyIGNvbXBvbmVudCBtb2R1bGUgb3V0cHV0IGFuZCB3aWxsXG4vLyBiZSBpbmNsdWRlZCBpbiB0aGUgZmluYWwgd2VicGFjayB1c2VyIGJ1bmRsZS5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbm9ybWFsaXplQ29tcG9uZW50IChcbiAgc2NyaXB0RXhwb3J0cyxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZ1bmN0aW9uYWxUZW1wbGF0ZSxcbiAgaW5qZWN0U3R5bGVzLFxuICBzY29wZUlkLFxuICBtb2R1bGVJZGVudGlmaWVyLCAvKiBzZXJ2ZXIgb25seSAqL1xuICBzaGFkb3dNb2RlIC8qIHZ1ZS1jbGkgb25seSAqL1xuKSB7XG4gIC8vIFZ1ZS5leHRlbmQgY29uc3RydWN0b3IgZXhwb3J0IGludGVyb3BcbiAgdmFyIG9wdGlvbnMgPSB0eXBlb2Ygc2NyaXB0RXhwb3J0cyA9PT0gJ2Z1bmN0aW9uJ1xuICAgID8gc2NyaXB0RXhwb3J0cy5vcHRpb25zXG4gICAgOiBzY3JpcHRFeHBvcnRzXG5cbiAgLy8gcmVuZGVyIGZ1bmN0aW9uc1xuICBpZiAocmVuZGVyKSB7XG4gICAgb3B0aW9ucy5yZW5kZXIgPSByZW5kZXJcbiAgICBvcHRpb25zLnN0YXRpY1JlbmRlckZucyA9IHN0YXRpY1JlbmRlckZuc1xuICAgIG9wdGlvbnMuX2NvbXBpbGVkID0gdHJ1ZVxuICB9XG5cbiAgLy8gZnVuY3Rpb25hbCB0ZW1wbGF0ZVxuICBpZiAoZnVuY3Rpb25hbFRlbXBsYXRlKSB7XG4gICAgb3B0aW9ucy5mdW5jdGlvbmFsID0gdHJ1ZVxuICB9XG5cbiAgLy8gc2NvcGVkSWRcbiAgaWYgKHNjb3BlSWQpIHtcbiAgICBvcHRpb25zLl9zY29wZUlkID0gJ2RhdGEtdi0nICsgc2NvcGVJZFxuICB9XG5cbiAgdmFyIGhvb2tcbiAgaWYgKG1vZHVsZUlkZW50aWZpZXIpIHsgLy8gc2VydmVyIGJ1aWxkXG4gICAgaG9vayA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgICAvLyAyLjMgaW5qZWN0aW9uXG4gICAgICBjb250ZXh0ID1cbiAgICAgICAgY29udGV4dCB8fCAvLyBjYWNoZWQgY2FsbFxuICAgICAgICAodGhpcy4kdm5vZGUgJiYgdGhpcy4kdm5vZGUuc3NyQ29udGV4dCkgfHwgLy8gc3RhdGVmdWxcbiAgICAgICAgKHRoaXMucGFyZW50ICYmIHRoaXMucGFyZW50LiR2bm9kZSAmJiB0aGlzLnBhcmVudC4kdm5vZGUuc3NyQ29udGV4dCkgLy8gZnVuY3Rpb25hbFxuICAgICAgLy8gMi4yIHdpdGggcnVuSW5OZXdDb250ZXh0OiB0cnVlXG4gICAgICBpZiAoIWNvbnRleHQgJiYgdHlwZW9mIF9fVlVFX1NTUl9DT05URVhUX18gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGNvbnRleHQgPSBfX1ZVRV9TU1JfQ09OVEVYVF9fXG4gICAgICB9XG4gICAgICAvLyBpbmplY3QgY29tcG9uZW50IHN0eWxlc1xuICAgICAgaWYgKGluamVjdFN0eWxlcykge1xuICAgICAgICBpbmplY3RTdHlsZXMuY2FsbCh0aGlzLCBjb250ZXh0KVxuICAgICAgfVxuICAgICAgLy8gcmVnaXN0ZXIgY29tcG9uZW50IG1vZHVsZSBpZGVudGlmaWVyIGZvciBhc3luYyBjaHVuayBpbmZlcnJlbmNlXG4gICAgICBpZiAoY29udGV4dCAmJiBjb250ZXh0Ll9yZWdpc3RlcmVkQ29tcG9uZW50cykge1xuICAgICAgICBjb250ZXh0Ll9yZWdpc3RlcmVkQ29tcG9uZW50cy5hZGQobW9kdWxlSWRlbnRpZmllcilcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gdXNlZCBieSBzc3IgaW4gY2FzZSBjb21wb25lbnQgaXMgY2FjaGVkIGFuZCBiZWZvcmVDcmVhdGVcbiAgICAvLyBuZXZlciBnZXRzIGNhbGxlZFxuICAgIG9wdGlvbnMuX3NzclJlZ2lzdGVyID0gaG9va1xuICB9IGVsc2UgaWYgKGluamVjdFN0eWxlcykge1xuICAgIGhvb2sgPSBzaGFkb3dNb2RlXG4gICAgICA/IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaW5qZWN0U3R5bGVzLmNhbGwoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICAob3B0aW9ucy5mdW5jdGlvbmFsID8gdGhpcy5wYXJlbnQgOiB0aGlzKS4kcm9vdC4kb3B0aW9ucy5zaGFkb3dSb290XG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIDogaW5qZWN0U3R5bGVzXG4gIH1cblxuICBpZiAoaG9vaykge1xuICAgIGlmIChvcHRpb25zLmZ1bmN0aW9uYWwpIHtcbiAgICAgIC8vIGZvciB0ZW1wbGF0ZS1vbmx5IGhvdC1yZWxvYWQgYmVjYXVzZSBpbiB0aGF0IGNhc2UgdGhlIHJlbmRlciBmbiBkb2Vzbid0XG4gICAgICAvLyBnbyB0aHJvdWdoIHRoZSBub3JtYWxpemVyXG4gICAgICBvcHRpb25zLl9pbmplY3RTdHlsZXMgPSBob29rXG4gICAgICAvLyByZWdpc3RlciBmb3IgZnVuY3Rpb25hbCBjb21wb25lbnQgaW4gdnVlIGZpbGVcbiAgICAgIHZhciBvcmlnaW5hbFJlbmRlciA9IG9wdGlvbnMucmVuZGVyXG4gICAgICBvcHRpb25zLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcldpdGhTdHlsZUluamVjdGlvbiAoaCwgY29udGV4dCkge1xuICAgICAgICBob29rLmNhbGwoY29udGV4dClcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsUmVuZGVyKGgsIGNvbnRleHQpXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGluamVjdCBjb21wb25lbnQgcmVnaXN0cmF0aW9uIGFzIGJlZm9yZUNyZWF0ZSBob29rXG4gICAgICB2YXIgZXhpc3RpbmcgPSBvcHRpb25zLmJlZm9yZUNyZWF0ZVxuICAgICAgb3B0aW9ucy5iZWZvcmVDcmVhdGUgPSBleGlzdGluZ1xuICAgICAgICA/IFtdLmNvbmNhdChleGlzdGluZywgaG9vaylcbiAgICAgICAgOiBbaG9va11cbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGV4cG9ydHM6IHNjcmlwdEV4cG9ydHMsXG4gICAgb3B0aW9uczogb3B0aW9uc1xuICB9XG59XG4iLCIvLyBzdHlsZS1sb2FkZXI6IEFkZHMgc29tZSBjc3MgdG8gdGhlIERPTSBieSBhZGRpbmcgYSA8c3R5bGU+IHRhZ1xuXG4vLyBsb2FkIHRoZSBzdHlsZXNcbnZhciBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vZW1vamktbWFydC5jc3NcIik7XG5pZihjb250ZW50Ll9fZXNNb2R1bGUpIGNvbnRlbnQgPSBjb250ZW50LmRlZmF1bHQ7XG5pZih0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbmlmKGNvbnRlbnQubG9jYWxzKSBtb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzO1xuLy8gYWRkIHRoZSBzdHlsZXMgdG8gdGhlIERPTVxudmFyIGFkZCA9IHJlcXVpcmUoXCIhLi4vbm9kZV9tb2R1bGVzL3Z1ZS1zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlc0NsaWVudC5qc1wiKS5kZWZhdWx0XG52YXIgdXBkYXRlID0gYWRkKFwiMDQ5N2NhNjFcIiwgY29udGVudCwgZmFsc2UsIHt9KTtcbi8vIEhvdCBNb2R1bGUgUmVwbGFjZW1lbnRcbmlmKG1vZHVsZS5ob3QpIHtcbiAvLyBXaGVuIHRoZSBzdHlsZXMgY2hhbmdlLCB1cGRhdGUgdGhlIDxzdHlsZT4gdGFnc1xuIGlmKCFjb250ZW50LmxvY2Fscykge1xuICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIhIS4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2Vtb2ppLW1hcnQuY3NzXCIsIGZ1bmN0aW9uKCkge1xuICAgICB2YXIgbmV3Q29udGVudCA9IHJlcXVpcmUoXCIhIS4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2Vtb2ppLW1hcnQuY3NzXCIpO1xuICAgICBpZihuZXdDb250ZW50Ll9fZXNNb2R1bGUpIG5ld0NvbnRlbnQgPSBuZXdDb250ZW50LmRlZmF1bHQ7XG4gICAgIGlmKHR5cGVvZiBuZXdDb250ZW50ID09PSAnc3RyaW5nJykgbmV3Q29udGVudCA9IFtbbW9kdWxlLmlkLCBuZXdDb250ZW50LCAnJ11dO1xuICAgICB1cGRhdGUobmV3Q29udGVudCk7XG4gICB9KTtcbiB9XG4gLy8gV2hlbiB0aGUgbW9kdWxlIGlzIGRpc3Bvc2VkLCByZW1vdmUgdGhlIDxzdHlsZT4gdGFnc1xuIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbigpIHsgdXBkYXRlKCk7IH0pO1xufSIsIi8vIHN0eWxlLWxvYWRlcjogQWRkcyBzb21lIGNzcyB0byB0aGUgRE9NIGJ5IGFkZGluZyBhIDxzdHlsZT4gdGFnXG5cbi8vIGxvYWQgdGhlIHN0eWxlc1xudmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi8uLi9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vcXVhc2FyLm1hdC5jc3NcIik7XG5pZihjb250ZW50Ll9fZXNNb2R1bGUpIGNvbnRlbnQgPSBjb250ZW50LmRlZmF1bHQ7XG5pZih0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbmlmKGNvbnRlbnQubG9jYWxzKSBtb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzO1xuLy8gYWRkIHRoZSBzdHlsZXMgdG8gdGhlIERPTVxudmFyIGFkZCA9IHJlcXVpcmUoXCIhLi4vLi4vLi4vdnVlLXN0eWxlLWxvYWRlci9saWIvYWRkU3R5bGVzQ2xpZW50LmpzXCIpLmRlZmF1bHRcbnZhciB1cGRhdGUgPSBhZGQoXCI4M2NlYzdlYVwiLCBjb250ZW50LCBmYWxzZSwge30pO1xuLy8gSG90IE1vZHVsZSBSZXBsYWNlbWVudFxuaWYobW9kdWxlLmhvdCkge1xuIC8vIFdoZW4gdGhlIHN0eWxlcyBjaGFuZ2UsIHVwZGF0ZSB0aGUgPHN0eWxlPiB0YWdzXG4gaWYoIWNvbnRlbnQubG9jYWxzKSB7XG4gICBtb2R1bGUuaG90LmFjY2VwdChcIiEhLi4vLi4vLi4vY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3F1YXNhci5tYXQuY3NzXCIsIGZ1bmN0aW9uKCkge1xuICAgICB2YXIgbmV3Q29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uLy4uL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanMhLi9xdWFzYXIubWF0LmNzc1wiKTtcbiAgICAgaWYobmV3Q29udGVudC5fX2VzTW9kdWxlKSBuZXdDb250ZW50ID0gbmV3Q29udGVudC5kZWZhdWx0O1xuICAgICBpZih0eXBlb2YgbmV3Q29udGVudCA9PT0gJ3N0cmluZycpIG5ld0NvbnRlbnQgPSBbW21vZHVsZS5pZCwgbmV3Q29udGVudCwgJyddXTtcbiAgICAgdXBkYXRlKG5ld0NvbnRlbnQpO1xuICAgfSk7XG4gfVxuIC8vIFdoZW4gdGhlIG1vZHVsZSBpcyBkaXNwb3NlZCwgcmVtb3ZlIHRoZSA8c3R5bGU+IHRhZ3NcbiBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7IHVwZGF0ZSgpOyB9KTtcbn0iLCIvLyBzdHlsZS1sb2FkZXI6IEFkZHMgc29tZSBjc3MgdG8gdGhlIERPTSBieSBhZGRpbmcgYSA8c3R5bGU+IHRhZ1xuXG4vLyBsb2FkIHRoZSBzdHlsZXNcbnZhciBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2FwcC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD00ZmJjNzM1YiZzY29wZWQ9dHJ1ZSZsYW5nPWNzcyZcIik7XG5pZihjb250ZW50Ll9fZXNNb2R1bGUpIGNvbnRlbnQgPSBjb250ZW50LmRlZmF1bHQ7XG5pZih0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbmlmKGNvbnRlbnQubG9jYWxzKSBtb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzO1xuLy8gYWRkIHRoZSBzdHlsZXMgdG8gdGhlIERPTVxudmFyIGFkZCA9IHJlcXVpcmUoXCIhLi4vbm9kZV9tb2R1bGVzL3Z1ZS1zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlc0NsaWVudC5qc1wiKS5kZWZhdWx0XG52YXIgdXBkYXRlID0gYWRkKFwiMjNmMGU4ODhcIiwgY29udGVudCwgZmFsc2UsIHt9KTtcbi8vIEhvdCBNb2R1bGUgUmVwbGFjZW1lbnRcbmlmKG1vZHVsZS5ob3QpIHtcbiAvLyBXaGVuIHRoZSBzdHlsZXMgY2hhbmdlLCB1cGRhdGUgdGhlIDxzdHlsZT4gdGFnc1xuIGlmKCFjb250ZW50LmxvY2Fscykge1xuICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIhIS4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9hcHAudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NGZiYzczNWImc2NvcGVkPXRydWUmbGFuZz1jc3MmXCIsIGZ1bmN0aW9uKCkge1xuICAgICB2YXIgbmV3Q29udGVudCA9IHJlcXVpcmUoXCIhIS4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9hcHAudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NGZiYzczNWImc2NvcGVkPXRydWUmbGFuZz1jc3MmXCIpO1xuICAgICBpZihuZXdDb250ZW50Ll9fZXNNb2R1bGUpIG5ld0NvbnRlbnQgPSBuZXdDb250ZW50LmRlZmF1bHQ7XG4gICAgIGlmKHR5cGVvZiBuZXdDb250ZW50ID09PSAnc3RyaW5nJykgbmV3Q29udGVudCA9IFtbbW9kdWxlLmlkLCBuZXdDb250ZW50LCAnJ11dO1xuICAgICB1cGRhdGUobmV3Q29udGVudCk7XG4gICB9KTtcbiB9XG4gLy8gV2hlbiB0aGUgbW9kdWxlIGlzIGRpc3Bvc2VkLCByZW1vdmUgdGhlIDxzdHlsZT4gdGFnc1xuIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbigpIHsgdXBkYXRlKCk7IH0pO1xufSIsIi8qXG4gIE1JVCBMaWNlbnNlIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwXG4gIEF1dGhvciBUb2JpYXMgS29wcGVycyBAc29rcmFcbiAgTW9kaWZpZWQgYnkgRXZhbiBZb3UgQHl5eDk5MDgwM1xuKi9cblxuaW1wb3J0IGxpc3RUb1N0eWxlcyBmcm9tICcuL2xpc3RUb1N0eWxlcydcblxudmFyIGhhc0RvY3VtZW50ID0gdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJ1xuXG5pZiAodHlwZW9mIERFQlVHICE9PSAndW5kZWZpbmVkJyAmJiBERUJVRykge1xuICBpZiAoIWhhc0RvY3VtZW50KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICd2dWUtc3R5bGUtbG9hZGVyIGNhbm5vdCBiZSB1c2VkIGluIGEgbm9uLWJyb3dzZXIgZW52aXJvbm1lbnQuICcgK1xuICAgIFwiVXNlIHsgdGFyZ2V0OiAnbm9kZScgfSBpbiB5b3VyIFdlYnBhY2sgY29uZmlnIHRvIGluZGljYXRlIGEgc2VydmVyLXJlbmRlcmluZyBlbnZpcm9ubWVudC5cIlxuICApIH1cbn1cblxuLypcbnR5cGUgU3R5bGVPYmplY3QgPSB7XG4gIGlkOiBudW1iZXI7XG4gIHBhcnRzOiBBcnJheTxTdHlsZU9iamVjdFBhcnQ+XG59XG5cbnR5cGUgU3R5bGVPYmplY3RQYXJ0ID0ge1xuICBjc3M6IHN0cmluZztcbiAgbWVkaWE6IHN0cmluZztcbiAgc291cmNlTWFwOiA/c3RyaW5nXG59XG4qL1xuXG52YXIgc3R5bGVzSW5Eb20gPSB7LypcbiAgW2lkOiBudW1iZXJdOiB7XG4gICAgaWQ6IG51bWJlcixcbiAgICByZWZzOiBudW1iZXIsXG4gICAgcGFydHM6IEFycmF5PChvYmo/OiBTdHlsZU9iamVjdFBhcnQpID0+IHZvaWQ+XG4gIH1cbiovfVxuXG52YXIgaGVhZCA9IGhhc0RvY3VtZW50ICYmIChkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0pXG52YXIgc2luZ2xldG9uRWxlbWVudCA9IG51bGxcbnZhciBzaW5nbGV0b25Db3VudGVyID0gMFxudmFyIGlzUHJvZHVjdGlvbiA9IGZhbHNlXG52YXIgbm9vcCA9IGZ1bmN0aW9uICgpIHt9XG52YXIgb3B0aW9ucyA9IG51bGxcbnZhciBzc3JJZEtleSA9ICdkYXRhLXZ1ZS1zc3ItaWQnXG5cbi8vIEZvcmNlIHNpbmdsZS10YWcgc29sdXRpb24gb24gSUU2LTksIHdoaWNoIGhhcyBhIGhhcmQgbGltaXQgb24gdGhlICMgb2YgPHN0eWxlPlxuLy8gdGFncyBpdCB3aWxsIGFsbG93IG9uIGEgcGFnZVxudmFyIGlzT2xkSUUgPSB0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiAvbXNpZSBbNi05XVxcYi8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkpXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGFkZFN0eWxlc0NsaWVudCAocGFyZW50SWQsIGxpc3QsIF9pc1Byb2R1Y3Rpb24sIF9vcHRpb25zKSB7XG4gIGlzUHJvZHVjdGlvbiA9IF9pc1Byb2R1Y3Rpb25cblxuICBvcHRpb25zID0gX29wdGlvbnMgfHwge31cblxuICB2YXIgc3R5bGVzID0gbGlzdFRvU3R5bGVzKHBhcmVudElkLCBsaXN0KVxuICBhZGRTdHlsZXNUb0RvbShzdHlsZXMpXG5cbiAgcmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZSAobmV3TGlzdCkge1xuICAgIHZhciBtYXlSZW1vdmUgPSBbXVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3R5bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaXRlbSA9IHN0eWxlc1tpXVxuICAgICAgdmFyIGRvbVN0eWxlID0gc3R5bGVzSW5Eb21baXRlbS5pZF1cbiAgICAgIGRvbVN0eWxlLnJlZnMtLVxuICAgICAgbWF5UmVtb3ZlLnB1c2goZG9tU3R5bGUpXG4gICAgfVxuICAgIGlmIChuZXdMaXN0KSB7XG4gICAgICBzdHlsZXMgPSBsaXN0VG9TdHlsZXMocGFyZW50SWQsIG5ld0xpc3QpXG4gICAgICBhZGRTdHlsZXNUb0RvbShzdHlsZXMpXG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlcyA9IFtdXG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWF5UmVtb3ZlLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZG9tU3R5bGUgPSBtYXlSZW1vdmVbaV1cbiAgICAgIGlmIChkb21TdHlsZS5yZWZzID09PSAwKSB7XG4gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgZG9tU3R5bGUucGFydHMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICBkb21TdHlsZS5wYXJ0c1tqXSgpXG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlIHN0eWxlc0luRG9tW2RvbVN0eWxlLmlkXVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBhZGRTdHlsZXNUb0RvbSAoc3R5bGVzIC8qIEFycmF5PFN0eWxlT2JqZWN0PiAqLykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpdGVtID0gc3R5bGVzW2ldXG4gICAgdmFyIGRvbVN0eWxlID0gc3R5bGVzSW5Eb21baXRlbS5pZF1cbiAgICBpZiAoZG9tU3R5bGUpIHtcbiAgICAgIGRvbVN0eWxlLnJlZnMrK1xuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBkb21TdHlsZS5wYXJ0cy5sZW5ndGg7IGorKykge1xuICAgICAgICBkb21TdHlsZS5wYXJ0c1tqXShpdGVtLnBhcnRzW2pdKVxuICAgICAgfVxuICAgICAgZm9yICg7IGogPCBpdGVtLnBhcnRzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIGRvbVN0eWxlLnBhcnRzLnB1c2goYWRkU3R5bGUoaXRlbS5wYXJ0c1tqXSkpXG4gICAgICB9XG4gICAgICBpZiAoZG9tU3R5bGUucGFydHMubGVuZ3RoID4gaXRlbS5wYXJ0cy5sZW5ndGgpIHtcbiAgICAgICAgZG9tU3R5bGUucGFydHMubGVuZ3RoID0gaXRlbS5wYXJ0cy5sZW5ndGhcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHBhcnRzID0gW11cbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgaXRlbS5wYXJ0cy5sZW5ndGg7IGorKykge1xuICAgICAgICBwYXJ0cy5wdXNoKGFkZFN0eWxlKGl0ZW0ucGFydHNbal0pKVxuICAgICAgfVxuICAgICAgc3R5bGVzSW5Eb21baXRlbS5pZF0gPSB7IGlkOiBpdGVtLmlkLCByZWZzOiAxLCBwYXJ0czogcGFydHMgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVTdHlsZUVsZW1lbnQgKCkge1xuICB2YXIgc3R5bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKVxuICBzdHlsZUVsZW1lbnQudHlwZSA9ICd0ZXh0L2NzcydcbiAgaGVhZC5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQpXG4gIHJldHVybiBzdHlsZUVsZW1lbnRcbn1cblxuZnVuY3Rpb24gYWRkU3R5bGUgKG9iaiAvKiBTdHlsZU9iamVjdFBhcnQgKi8pIHtcbiAgdmFyIHVwZGF0ZSwgcmVtb3ZlXG4gIHZhciBzdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzdHlsZVsnICsgc3NySWRLZXkgKyAnfj1cIicgKyBvYmouaWQgKyAnXCJdJylcblxuICBpZiAoc3R5bGVFbGVtZW50KSB7XG4gICAgaWYgKGlzUHJvZHVjdGlvbikge1xuICAgICAgLy8gaGFzIFNTUiBzdHlsZXMgYW5kIGluIHByb2R1Y3Rpb24gbW9kZS5cbiAgICAgIC8vIHNpbXBseSBkbyBub3RoaW5nLlxuICAgICAgcmV0dXJuIG5vb3BcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gaGFzIFNTUiBzdHlsZXMgYnV0IGluIGRldiBtb2RlLlxuICAgICAgLy8gZm9yIHNvbWUgcmVhc29uIENocm9tZSBjYW4ndCBoYW5kbGUgc291cmNlIG1hcCBpbiBzZXJ2ZXItcmVuZGVyZWRcbiAgICAgIC8vIHN0eWxlIHRhZ3MgLSBzb3VyY2UgbWFwcyBpbiA8c3R5bGU+IG9ubHkgd29ya3MgaWYgdGhlIHN0eWxlIHRhZyBpc1xuICAgICAgLy8gY3JlYXRlZCBhbmQgaW5zZXJ0ZWQgZHluYW1pY2FsbHkuIFNvIHdlIHJlbW92ZSB0aGUgc2VydmVyIHJlbmRlcmVkXG4gICAgICAvLyBzdHlsZXMgYW5kIGluamVjdCBuZXcgb25lcy5cbiAgICAgIHN0eWxlRWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHN0eWxlRWxlbWVudClcbiAgICB9XG4gIH1cblxuICBpZiAoaXNPbGRJRSkge1xuICAgIC8vIHVzZSBzaW5nbGV0b24gbW9kZSBmb3IgSUU5LlxuICAgIHZhciBzdHlsZUluZGV4ID0gc2luZ2xldG9uQ291bnRlcisrXG4gICAgc3R5bGVFbGVtZW50ID0gc2luZ2xldG9uRWxlbWVudCB8fCAoc2luZ2xldG9uRWxlbWVudCA9IGNyZWF0ZVN0eWxlRWxlbWVudCgpKVxuICAgIHVwZGF0ZSA9IGFwcGx5VG9TaW5nbGV0b25UYWcuYmluZChudWxsLCBzdHlsZUVsZW1lbnQsIHN0eWxlSW5kZXgsIGZhbHNlKVxuICAgIHJlbW92ZSA9IGFwcGx5VG9TaW5nbGV0b25UYWcuYmluZChudWxsLCBzdHlsZUVsZW1lbnQsIHN0eWxlSW5kZXgsIHRydWUpXG4gIH0gZWxzZSB7XG4gICAgLy8gdXNlIG11bHRpLXN0eWxlLXRhZyBtb2RlIGluIGFsbCBvdGhlciBjYXNlc1xuICAgIHN0eWxlRWxlbWVudCA9IGNyZWF0ZVN0eWxlRWxlbWVudCgpXG4gICAgdXBkYXRlID0gYXBwbHlUb1RhZy5iaW5kKG51bGwsIHN0eWxlRWxlbWVudClcbiAgICByZW1vdmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBzdHlsZUVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzdHlsZUVsZW1lbnQpXG4gICAgfVxuICB9XG5cbiAgdXBkYXRlKG9iailcblxuICByZXR1cm4gZnVuY3Rpb24gdXBkYXRlU3R5bGUgKG5ld09iaiAvKiBTdHlsZU9iamVjdFBhcnQgKi8pIHtcbiAgICBpZiAobmV3T2JqKSB7XG4gICAgICBpZiAobmV3T2JqLmNzcyA9PT0gb2JqLmNzcyAmJlxuICAgICAgICAgIG5ld09iai5tZWRpYSA9PT0gb2JqLm1lZGlhICYmXG4gICAgICAgICAgbmV3T2JqLnNvdXJjZU1hcCA9PT0gb2JqLnNvdXJjZU1hcCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIHVwZGF0ZShvYmogPSBuZXdPYmopXG4gICAgfSBlbHNlIHtcbiAgICAgIHJlbW92ZSgpXG4gICAgfVxuICB9XG59XG5cbnZhciByZXBsYWNlVGV4dCA9IChmdW5jdGlvbiAoKSB7XG4gIHZhciB0ZXh0U3RvcmUgPSBbXVxuXG4gIHJldHVybiBmdW5jdGlvbiAoaW5kZXgsIHJlcGxhY2VtZW50KSB7XG4gICAgdGV4dFN0b3JlW2luZGV4XSA9IHJlcGxhY2VtZW50XG4gICAgcmV0dXJuIHRleHRTdG9yZS5maWx0ZXIoQm9vbGVhbikuam9pbignXFxuJylcbiAgfVxufSkoKVxuXG5mdW5jdGlvbiBhcHBseVRvU2luZ2xldG9uVGFnIChzdHlsZUVsZW1lbnQsIGluZGV4LCByZW1vdmUsIG9iaikge1xuICB2YXIgY3NzID0gcmVtb3ZlID8gJycgOiBvYmouY3NzXG5cbiAgaWYgKHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0KSB7XG4gICAgc3R5bGVFbGVtZW50LnN0eWxlU2hlZXQuY3NzVGV4dCA9IHJlcGxhY2VUZXh0KGluZGV4LCBjc3MpXG4gIH0gZWxzZSB7XG4gICAgdmFyIGNzc05vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3MpXG4gICAgdmFyIGNoaWxkTm9kZXMgPSBzdHlsZUVsZW1lbnQuY2hpbGROb2Rlc1xuICAgIGlmIChjaGlsZE5vZGVzW2luZGV4XSkgc3R5bGVFbGVtZW50LnJlbW92ZUNoaWxkKGNoaWxkTm9kZXNbaW5kZXhdKVxuICAgIGlmIChjaGlsZE5vZGVzLmxlbmd0aCkge1xuICAgICAgc3R5bGVFbGVtZW50Lmluc2VydEJlZm9yZShjc3NOb2RlLCBjaGlsZE5vZGVzW2luZGV4XSlcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGVFbGVtZW50LmFwcGVuZENoaWxkKGNzc05vZGUpXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGFwcGx5VG9UYWcgKHN0eWxlRWxlbWVudCwgb2JqKSB7XG4gIHZhciBjc3MgPSBvYmouY3NzXG4gIHZhciBtZWRpYSA9IG9iai5tZWRpYVxuICB2YXIgc291cmNlTWFwID0gb2JqLnNvdXJjZU1hcFxuXG4gIGlmIChtZWRpYSkge1xuICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ21lZGlhJywgbWVkaWEpXG4gIH1cbiAgaWYgKG9wdGlvbnMuc3NySWQpIHtcbiAgICBzdHlsZUVsZW1lbnQuc2V0QXR0cmlidXRlKHNzcklkS2V5LCBvYmouaWQpXG4gIH1cblxuICBpZiAoc291cmNlTWFwKSB7XG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuY2hyb21lLmNvbS9kZXZ0b29scy9kb2NzL2phdmFzY3JpcHQtZGVidWdnaW5nXG4gICAgLy8gdGhpcyBtYWtlcyBzb3VyY2UgbWFwcyBpbnNpZGUgc3R5bGUgdGFncyB3b3JrIHByb3Blcmx5IGluIENocm9tZVxuICAgIGNzcyArPSAnXFxuLyojIHNvdXJjZVVSTD0nICsgc291cmNlTWFwLnNvdXJjZXNbMF0gKyAnICovJ1xuICAgIC8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzI2NjAzODc1XG4gICAgY3NzICs9ICdcXG4vKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LCcgKyBidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShzb3VyY2VNYXApKSkpICsgJyAqLydcbiAgfVxuXG4gIGlmIChzdHlsZUVsZW1lbnQuc3R5bGVTaGVldCkge1xuICAgIHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3NcbiAgfSBlbHNlIHtcbiAgICB3aGlsZSAoc3R5bGVFbGVtZW50LmZpcnN0Q2hpbGQpIHtcbiAgICAgIHN0eWxlRWxlbWVudC5yZW1vdmVDaGlsZChzdHlsZUVsZW1lbnQuZmlyc3RDaGlsZClcbiAgICB9XG4gICAgc3R5bGVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcykpXG4gIH1cbn1cbiIsIi8qKlxuICogVHJhbnNsYXRlcyB0aGUgbGlzdCBmb3JtYXQgcHJvZHVjZWQgYnkgY3NzLWxvYWRlciBpbnRvIHNvbWV0aGluZ1xuICogZWFzaWVyIHRvIG1hbmlwdWxhdGUuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGxpc3RUb1N0eWxlcyAocGFyZW50SWQsIGxpc3QpIHtcbiAgdmFyIHN0eWxlcyA9IFtdXG4gIHZhciBuZXdTdHlsZXMgPSB7fVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaXRlbSA9IGxpc3RbaV1cbiAgICB2YXIgaWQgPSBpdGVtWzBdXG4gICAgdmFyIGNzcyA9IGl0ZW1bMV1cbiAgICB2YXIgbWVkaWEgPSBpdGVtWzJdXG4gICAgdmFyIHNvdXJjZU1hcCA9IGl0ZW1bM11cbiAgICB2YXIgcGFydCA9IHtcbiAgICAgIGlkOiBwYXJlbnRJZCArICc6JyArIGksXG4gICAgICBjc3M6IGNzcyxcbiAgICAgIG1lZGlhOiBtZWRpYSxcbiAgICAgIHNvdXJjZU1hcDogc291cmNlTWFwXG4gICAgfVxuICAgIGlmICghbmV3U3R5bGVzW2lkXSkge1xuICAgICAgc3R5bGVzLnB1c2gobmV3U3R5bGVzW2lkXSA9IHsgaWQ6IGlkLCBwYXJ0czogW3BhcnRdIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld1N0eWxlc1tpZF0ucGFydHMucHVzaChwYXJ0KVxuICAgIH1cbiAgfVxuICByZXR1cm4gc3R5bGVzXG59XG4iLCIvKiFcbiAqIFZ1ZS5qcyB2Mi42LjE0XG4gKiAoYykgMjAxNC0yMDIxIEV2YW4gWW91XG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXG4gKi9cbi8qICAqL1xuXG52YXIgZW1wdHlPYmplY3QgPSBPYmplY3QuZnJlZXplKHt9KTtcblxuLy8gVGhlc2UgaGVscGVycyBwcm9kdWNlIGJldHRlciBWTSBjb2RlIGluIEpTIGVuZ2luZXMgZHVlIHRvIHRoZWlyXG4vLyBleHBsaWNpdG5lc3MgYW5kIGZ1bmN0aW9uIGlubGluaW5nLlxuZnVuY3Rpb24gaXNVbmRlZiAodikge1xuICByZXR1cm4gdiA9PT0gdW5kZWZpbmVkIHx8IHYgPT09IG51bGxcbn1cblxuZnVuY3Rpb24gaXNEZWYgKHYpIHtcbiAgcmV0dXJuIHYgIT09IHVuZGVmaW5lZCAmJiB2ICE9PSBudWxsXG59XG5cbmZ1bmN0aW9uIGlzVHJ1ZSAodikge1xuICByZXR1cm4gdiA9PT0gdHJ1ZVxufVxuXG5mdW5jdGlvbiBpc0ZhbHNlICh2KSB7XG4gIHJldHVybiB2ID09PSBmYWxzZVxufVxuXG4vKipcbiAqIENoZWNrIGlmIHZhbHVlIGlzIHByaW1pdGl2ZS5cbiAqL1xuZnVuY3Rpb24gaXNQcmltaXRpdmUgKHZhbHVlKSB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fFxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgfHxcbiAgICAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbiAgICB0eXBlb2YgdmFsdWUgPT09ICdzeW1ib2wnIHx8XG4gICAgdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbidcbiAgKVxufVxuXG4vKipcbiAqIFF1aWNrIG9iamVjdCBjaGVjayAtIHRoaXMgaXMgcHJpbWFyaWx5IHVzZWQgdG8gdGVsbFxuICogT2JqZWN0cyBmcm9tIHByaW1pdGl2ZSB2YWx1ZXMgd2hlbiB3ZSBrbm93IHRoZSB2YWx1ZVxuICogaXMgYSBKU09OLWNvbXBsaWFudCB0eXBlLlxuICovXG5mdW5jdGlvbiBpc09iamVjdCAob2JqKSB7XG4gIHJldHVybiBvYmogIT09IG51bGwgJiYgdHlwZW9mIG9iaiA9PT0gJ29iamVjdCdcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHJhdyB0eXBlIHN0cmluZyBvZiBhIHZhbHVlLCBlLmcuLCBbb2JqZWN0IE9iamVjdF0uXG4gKi9cbnZhciBfdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuXG5mdW5jdGlvbiB0b1Jhd1R5cGUgKHZhbHVlKSB7XG4gIHJldHVybiBfdG9TdHJpbmcuY2FsbCh2YWx1ZSkuc2xpY2UoOCwgLTEpXG59XG5cbi8qKlxuICogU3RyaWN0IG9iamVjdCB0eXBlIGNoZWNrLiBPbmx5IHJldHVybnMgdHJ1ZVxuICogZm9yIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0cy5cbiAqL1xuZnVuY3Rpb24gaXNQbGFpbk9iamVjdCAob2JqKSB7XG4gIHJldHVybiBfdG9TdHJpbmcuY2FsbChvYmopID09PSAnW29iamVjdCBPYmplY3RdJ1xufVxuXG5mdW5jdGlvbiBpc1JlZ0V4cCAodikge1xuICByZXR1cm4gX3RvU3RyaW5nLmNhbGwodikgPT09ICdbb2JqZWN0IFJlZ0V4cF0nXG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdmFsIGlzIGEgdmFsaWQgYXJyYXkgaW5kZXguXG4gKi9cbmZ1bmN0aW9uIGlzVmFsaWRBcnJheUluZGV4ICh2YWwpIHtcbiAgdmFyIG4gPSBwYXJzZUZsb2F0KFN0cmluZyh2YWwpKTtcbiAgcmV0dXJuIG4gPj0gMCAmJiBNYXRoLmZsb29yKG4pID09PSBuICYmIGlzRmluaXRlKHZhbClcbn1cblxuZnVuY3Rpb24gaXNQcm9taXNlICh2YWwpIHtcbiAgcmV0dXJuIChcbiAgICBpc0RlZih2YWwpICYmXG4gICAgdHlwZW9mIHZhbC50aGVuID09PSAnZnVuY3Rpb24nICYmXG4gICAgdHlwZW9mIHZhbC5jYXRjaCA9PT0gJ2Z1bmN0aW9uJ1xuICApXG59XG5cbi8qKlxuICogQ29udmVydCBhIHZhbHVlIHRvIGEgc3RyaW5nIHRoYXQgaXMgYWN0dWFsbHkgcmVuZGVyZWQuXG4gKi9cbmZ1bmN0aW9uIHRvU3RyaW5nICh2YWwpIHtcbiAgcmV0dXJuIHZhbCA9PSBudWxsXG4gICAgPyAnJ1xuICAgIDogQXJyYXkuaXNBcnJheSh2YWwpIHx8IChpc1BsYWluT2JqZWN0KHZhbCkgJiYgdmFsLnRvU3RyaW5nID09PSBfdG9TdHJpbmcpXG4gICAgICA/IEpTT04uc3RyaW5naWZ5KHZhbCwgbnVsbCwgMilcbiAgICAgIDogU3RyaW5nKHZhbClcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGFuIGlucHV0IHZhbHVlIHRvIGEgbnVtYmVyIGZvciBwZXJzaXN0ZW5jZS5cbiAqIElmIHRoZSBjb252ZXJzaW9uIGZhaWxzLCByZXR1cm4gb3JpZ2luYWwgc3RyaW5nLlxuICovXG5mdW5jdGlvbiB0b051bWJlciAodmFsKSB7XG4gIHZhciBuID0gcGFyc2VGbG9hdCh2YWwpO1xuICByZXR1cm4gaXNOYU4obikgPyB2YWwgOiBuXG59XG5cbi8qKlxuICogTWFrZSBhIG1hcCBhbmQgcmV0dXJuIGEgZnVuY3Rpb24gZm9yIGNoZWNraW5nIGlmIGEga2V5XG4gKiBpcyBpbiB0aGF0IG1hcC5cbiAqL1xuZnVuY3Rpb24gbWFrZU1hcCAoXG4gIHN0cixcbiAgZXhwZWN0c0xvd2VyQ2FzZVxuKSB7XG4gIHZhciBtYXAgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICB2YXIgbGlzdCA9IHN0ci5zcGxpdCgnLCcpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICBtYXBbbGlzdFtpXV0gPSB0cnVlO1xuICB9XG4gIHJldHVybiBleHBlY3RzTG93ZXJDYXNlXG4gICAgPyBmdW5jdGlvbiAodmFsKSB7IHJldHVybiBtYXBbdmFsLnRvTG93ZXJDYXNlKCldOyB9XG4gICAgOiBmdW5jdGlvbiAodmFsKSB7IHJldHVybiBtYXBbdmFsXTsgfVxufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgdGFnIGlzIGEgYnVpbHQtaW4gdGFnLlxuICovXG52YXIgaXNCdWlsdEluVGFnID0gbWFrZU1hcCgnc2xvdCxjb21wb25lbnQnLCB0cnVlKTtcblxuLyoqXG4gKiBDaGVjayBpZiBhbiBhdHRyaWJ1dGUgaXMgYSByZXNlcnZlZCBhdHRyaWJ1dGUuXG4gKi9cbnZhciBpc1Jlc2VydmVkQXR0cmlidXRlID0gbWFrZU1hcCgna2V5LHJlZixzbG90LHNsb3Qtc2NvcGUsaXMnKTtcblxuLyoqXG4gKiBSZW1vdmUgYW4gaXRlbSBmcm9tIGFuIGFycmF5LlxuICovXG5mdW5jdGlvbiByZW1vdmUgKGFyciwgaXRlbSkge1xuICBpZiAoYXJyLmxlbmd0aCkge1xuICAgIHZhciBpbmRleCA9IGFyci5pbmRleE9mKGl0ZW0pO1xuICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICByZXR1cm4gYXJyLnNwbGljZShpbmRleCwgMSlcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIGFuIG9iamVjdCBoYXMgdGhlIHByb3BlcnR5LlxuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuZnVuY3Rpb24gaGFzT3duIChvYmosIGtleSkge1xuICByZXR1cm4gaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSlcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBjYWNoZWQgdmVyc2lvbiBvZiBhIHB1cmUgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGNhY2hlZCAoZm4pIHtcbiAgdmFyIGNhY2hlID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgcmV0dXJuIChmdW5jdGlvbiBjYWNoZWRGbiAoc3RyKSB7XG4gICAgdmFyIGhpdCA9IGNhY2hlW3N0cl07XG4gICAgcmV0dXJuIGhpdCB8fCAoY2FjaGVbc3RyXSA9IGZuKHN0cikpXG4gIH0pXG59XG5cbi8qKlxuICogQ2FtZWxpemUgYSBoeXBoZW4tZGVsaW1pdGVkIHN0cmluZy5cbiAqL1xudmFyIGNhbWVsaXplUkUgPSAvLShcXHcpL2c7XG52YXIgY2FtZWxpemUgPSBjYWNoZWQoZnVuY3Rpb24gKHN0cikge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoY2FtZWxpemVSRSwgZnVuY3Rpb24gKF8sIGMpIHsgcmV0dXJuIGMgPyBjLnRvVXBwZXJDYXNlKCkgOiAnJzsgfSlcbn0pO1xuXG4vKipcbiAqIENhcGl0YWxpemUgYSBzdHJpbmcuXG4gKi9cbnZhciBjYXBpdGFsaXplID0gY2FjaGVkKGZ1bmN0aW9uIChzdHIpIHtcbiAgcmV0dXJuIHN0ci5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0ci5zbGljZSgxKVxufSk7XG5cbi8qKlxuICogSHlwaGVuYXRlIGEgY2FtZWxDYXNlIHN0cmluZy5cbiAqL1xudmFyIGh5cGhlbmF0ZVJFID0gL1xcQihbQS1aXSkvZztcbnZhciBoeXBoZW5hdGUgPSBjYWNoZWQoZnVuY3Rpb24gKHN0cikge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoaHlwaGVuYXRlUkUsICctJDEnKS50b0xvd2VyQ2FzZSgpXG59KTtcblxuLyoqXG4gKiBTaW1wbGUgYmluZCBwb2x5ZmlsbCBmb3IgZW52aXJvbm1lbnRzIHRoYXQgZG8gbm90IHN1cHBvcnQgaXQsXG4gKiBlLmcuLCBQaGFudG9tSlMgMS54LiBUZWNobmljYWxseSwgd2UgZG9uJ3QgbmVlZCB0aGlzIGFueW1vcmVcbiAqIHNpbmNlIG5hdGl2ZSBiaW5kIGlzIG5vdyBwZXJmb3JtYW50IGVub3VnaCBpbiBtb3N0IGJyb3dzZXJzLlxuICogQnV0IHJlbW92aW5nIGl0IHdvdWxkIG1lYW4gYnJlYWtpbmcgY29kZSB0aGF0IHdhcyBhYmxlIHRvIHJ1biBpblxuICogUGhhbnRvbUpTIDEueCwgc28gdGhpcyBtdXN0IGJlIGtlcHQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gKi9cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmZ1bmN0aW9uIHBvbHlmaWxsQmluZCAoZm4sIGN0eCkge1xuICBmdW5jdGlvbiBib3VuZEZuIChhKSB7XG4gICAgdmFyIGwgPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIHJldHVybiBsXG4gICAgICA/IGwgPiAxXG4gICAgICAgID8gZm4uYXBwbHkoY3R4LCBhcmd1bWVudHMpXG4gICAgICAgIDogZm4uY2FsbChjdHgsIGEpXG4gICAgICA6IGZuLmNhbGwoY3R4KVxuICB9XG5cbiAgYm91bmRGbi5fbGVuZ3RoID0gZm4ubGVuZ3RoO1xuICByZXR1cm4gYm91bmRGblxufVxuXG5mdW5jdGlvbiBuYXRpdmVCaW5kIChmbiwgY3R4KSB7XG4gIHJldHVybiBmbi5iaW5kKGN0eClcbn1cblxudmFyIGJpbmQgPSBGdW5jdGlvbi5wcm90b3R5cGUuYmluZFxuICA/IG5hdGl2ZUJpbmRcbiAgOiBwb2x5ZmlsbEJpbmQ7XG5cbi8qKlxuICogQ29udmVydCBhbiBBcnJheS1saWtlIG9iamVjdCB0byBhIHJlYWwgQXJyYXkuXG4gKi9cbmZ1bmN0aW9uIHRvQXJyYXkgKGxpc3QsIHN0YXJ0KSB7XG4gIHN0YXJ0ID0gc3RhcnQgfHwgMDtcbiAgdmFyIGkgPSBsaXN0Lmxlbmd0aCAtIHN0YXJ0O1xuICB2YXIgcmV0ID0gbmV3IEFycmF5KGkpO1xuICB3aGlsZSAoaS0tKSB7XG4gICAgcmV0W2ldID0gbGlzdFtpICsgc3RhcnRdO1xuICB9XG4gIHJldHVybiByZXRcbn1cblxuLyoqXG4gKiBNaXggcHJvcGVydGllcyBpbnRvIHRhcmdldCBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGV4dGVuZCAodG8sIF9mcm9tKSB7XG4gIGZvciAodmFyIGtleSBpbiBfZnJvbSkge1xuICAgIHRvW2tleV0gPSBfZnJvbVtrZXldO1xuICB9XG4gIHJldHVybiB0b1xufVxuXG4vKipcbiAqIE1lcmdlIGFuIEFycmF5IG9mIE9iamVjdHMgaW50byBhIHNpbmdsZSBPYmplY3QuXG4gKi9cbmZ1bmN0aW9uIHRvT2JqZWN0IChhcnIpIHtcbiAgdmFyIHJlcyA9IHt9O1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgIGlmIChhcnJbaV0pIHtcbiAgICAgIGV4dGVuZChyZXMsIGFycltpXSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXNcbn1cblxuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cblxuLyoqXG4gKiBQZXJmb3JtIG5vIG9wZXJhdGlvbi5cbiAqIFN0dWJiaW5nIGFyZ3MgdG8gbWFrZSBGbG93IGhhcHB5IHdpdGhvdXQgbGVhdmluZyB1c2VsZXNzIHRyYW5zcGlsZWQgY29kZVxuICogd2l0aCAuLi5yZXN0IChodHRwczovL2Zsb3cub3JnL2Jsb2cvMjAxNy8wNS8wNy9TdHJpY3QtRnVuY3Rpb24tQ2FsbC1Bcml0eS8pLlxuICovXG5mdW5jdGlvbiBub29wIChhLCBiLCBjKSB7fVxuXG4vKipcbiAqIEFsd2F5cyByZXR1cm4gZmFsc2UuXG4gKi9cbnZhciBubyA9IGZ1bmN0aW9uIChhLCBiLCBjKSB7IHJldHVybiBmYWxzZTsgfTtcblxuLyogZXNsaW50LWVuYWJsZSBuby11bnVzZWQtdmFycyAqL1xuXG4vKipcbiAqIFJldHVybiB0aGUgc2FtZSB2YWx1ZS5cbiAqL1xudmFyIGlkZW50aXR5ID0gZnVuY3Rpb24gKF8pIHsgcmV0dXJuIF87IH07XG5cbi8qKlxuICogQ2hlY2sgaWYgdHdvIHZhbHVlcyBhcmUgbG9vc2VseSBlcXVhbCAtIHRoYXQgaXMsXG4gKiBpZiB0aGV5IGFyZSBwbGFpbiBvYmplY3RzLCBkbyB0aGV5IGhhdmUgdGhlIHNhbWUgc2hhcGU/XG4gKi9cbmZ1bmN0aW9uIGxvb3NlRXF1YWwgKGEsIGIpIHtcbiAgaWYgKGEgPT09IGIpIHsgcmV0dXJuIHRydWUgfVxuICB2YXIgaXNPYmplY3RBID0gaXNPYmplY3QoYSk7XG4gIHZhciBpc09iamVjdEIgPSBpc09iamVjdChiKTtcbiAgaWYgKGlzT2JqZWN0QSAmJiBpc09iamVjdEIpIHtcbiAgICB0cnkge1xuICAgICAgdmFyIGlzQXJyYXlBID0gQXJyYXkuaXNBcnJheShhKTtcbiAgICAgIHZhciBpc0FycmF5QiA9IEFycmF5LmlzQXJyYXkoYik7XG4gICAgICBpZiAoaXNBcnJheUEgJiYgaXNBcnJheUIpIHtcbiAgICAgICAgcmV0dXJuIGEubGVuZ3RoID09PSBiLmxlbmd0aCAmJiBhLmV2ZXJ5KGZ1bmN0aW9uIChlLCBpKSB7XG4gICAgICAgICAgcmV0dXJuIGxvb3NlRXF1YWwoZSwgYltpXSlcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSBpZiAoYSBpbnN0YW5jZW9mIERhdGUgJiYgYiBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgcmV0dXJuIGEuZ2V0VGltZSgpID09PSBiLmdldFRpbWUoKVxuICAgICAgfSBlbHNlIGlmICghaXNBcnJheUEgJiYgIWlzQXJyYXlCKSB7XG4gICAgICAgIHZhciBrZXlzQSA9IE9iamVjdC5rZXlzKGEpO1xuICAgICAgICB2YXIga2V5c0IgPSBPYmplY3Qua2V5cyhiKTtcbiAgICAgICAgcmV0dXJuIGtleXNBLmxlbmd0aCA9PT0ga2V5c0IubGVuZ3RoICYmIGtleXNBLmV2ZXJ5KGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICByZXR1cm4gbG9vc2VFcXVhbChhW2tleV0sIGJba2V5XSlcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH0gZWxzZSBpZiAoIWlzT2JqZWN0QSAmJiAhaXNPYmplY3RCKSB7XG4gICAgcmV0dXJuIFN0cmluZyhhKSA9PT0gU3RyaW5nKGIpXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIGZpcnN0IGluZGV4IGF0IHdoaWNoIGEgbG9vc2VseSBlcXVhbCB2YWx1ZSBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBhcnJheSAoaWYgdmFsdWUgaXMgYSBwbGFpbiBvYmplY3QsIHRoZSBhcnJheSBtdXN0XG4gKiBjb250YWluIGFuIG9iamVjdCBvZiB0aGUgc2FtZSBzaGFwZSksIG9yIC0xIGlmIGl0IGlzIG5vdCBwcmVzZW50LlxuICovXG5mdW5jdGlvbiBsb29zZUluZGV4T2YgKGFyciwgdmFsKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGxvb3NlRXF1YWwoYXJyW2ldLCB2YWwpKSB7IHJldHVybiBpIH1cbiAgfVxuICByZXR1cm4gLTFcbn1cblxuLyoqXG4gKiBFbnN1cmUgYSBmdW5jdGlvbiBpcyBjYWxsZWQgb25seSBvbmNlLlxuICovXG5mdW5jdGlvbiBvbmNlIChmbikge1xuICB2YXIgY2FsbGVkID0gZmFsc2U7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCFjYWxsZWQpIHtcbiAgICAgIGNhbGxlZCA9IHRydWU7XG4gICAgICBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgU1NSX0FUVFIgPSAnZGF0YS1zZXJ2ZXItcmVuZGVyZWQnO1xuXG52YXIgQVNTRVRfVFlQRVMgPSBbXG4gICdjb21wb25lbnQnLFxuICAnZGlyZWN0aXZlJyxcbiAgJ2ZpbHRlcidcbl07XG5cbnZhciBMSUZFQ1lDTEVfSE9PS1MgPSBbXG4gICdiZWZvcmVDcmVhdGUnLFxuICAnY3JlYXRlZCcsXG4gICdiZWZvcmVNb3VudCcsXG4gICdtb3VudGVkJyxcbiAgJ2JlZm9yZVVwZGF0ZScsXG4gICd1cGRhdGVkJyxcbiAgJ2JlZm9yZURlc3Ryb3knLFxuICAnZGVzdHJveWVkJyxcbiAgJ2FjdGl2YXRlZCcsXG4gICdkZWFjdGl2YXRlZCcsXG4gICdlcnJvckNhcHR1cmVkJyxcbiAgJ3NlcnZlclByZWZldGNoJ1xuXTtcblxuLyogICovXG5cblxuXG52YXIgY29uZmlnID0gKHtcbiAgLyoqXG4gICAqIE9wdGlvbiBtZXJnZSBzdHJhdGVnaWVzICh1c2VkIGluIGNvcmUvdXRpbC9vcHRpb25zKVxuICAgKi9cbiAgLy8gJGZsb3ctZGlzYWJsZS1saW5lXG4gIG9wdGlvbk1lcmdlU3RyYXRlZ2llczogT2JqZWN0LmNyZWF0ZShudWxsKSxcblxuICAvKipcbiAgICogV2hldGhlciB0byBzdXBwcmVzcyB3YXJuaW5ncy5cbiAgICovXG4gIHNpbGVudDogZmFsc2UsXG5cbiAgLyoqXG4gICAqIFNob3cgcHJvZHVjdGlvbiBtb2RlIHRpcCBtZXNzYWdlIG9uIGJvb3Q/XG4gICAqL1xuICBwcm9kdWN0aW9uVGlwOiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nLFxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVuYWJsZSBkZXZ0b29sc1xuICAgKi9cbiAgZGV2dG9vbHM6IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicsXG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmVjb3JkIHBlcmZcbiAgICovXG4gIHBlcmZvcm1hbmNlOiBmYWxzZSxcblxuICAvKipcbiAgICogRXJyb3IgaGFuZGxlciBmb3Igd2F0Y2hlciBlcnJvcnNcbiAgICovXG4gIGVycm9ySGFuZGxlcjogbnVsbCxcblxuICAvKipcbiAgICogV2FybiBoYW5kbGVyIGZvciB3YXRjaGVyIHdhcm5zXG4gICAqL1xuICB3YXJuSGFuZGxlcjogbnVsbCxcblxuICAvKipcbiAgICogSWdub3JlIGNlcnRhaW4gY3VzdG9tIGVsZW1lbnRzXG4gICAqL1xuICBpZ25vcmVkRWxlbWVudHM6IFtdLFxuXG4gIC8qKlxuICAgKiBDdXN0b20gdXNlciBrZXkgYWxpYXNlcyBmb3Igdi1vblxuICAgKi9cbiAgLy8gJGZsb3ctZGlzYWJsZS1saW5lXG4gIGtleUNvZGVzOiBPYmplY3QuY3JlYXRlKG51bGwpLFxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIHRhZyBpcyByZXNlcnZlZCBzbyB0aGF0IGl0IGNhbm5vdCBiZSByZWdpc3RlcmVkIGFzIGFcbiAgICogY29tcG9uZW50LiBUaGlzIGlzIHBsYXRmb3JtLWRlcGVuZGVudCBhbmQgbWF5IGJlIG92ZXJ3cml0dGVuLlxuICAgKi9cbiAgaXNSZXNlcnZlZFRhZzogbm8sXG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGFuIGF0dHJpYnV0ZSBpcyByZXNlcnZlZCBzbyB0aGF0IGl0IGNhbm5vdCBiZSB1c2VkIGFzIGEgY29tcG9uZW50XG4gICAqIHByb3AuIFRoaXMgaXMgcGxhdGZvcm0tZGVwZW5kZW50IGFuZCBtYXkgYmUgb3ZlcndyaXR0ZW4uXG4gICAqL1xuICBpc1Jlc2VydmVkQXR0cjogbm8sXG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgdGFnIGlzIGFuIHVua25vd24gZWxlbWVudC5cbiAgICogUGxhdGZvcm0tZGVwZW5kZW50LlxuICAgKi9cbiAgaXNVbmtub3duRWxlbWVudDogbm8sXG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbmFtZXNwYWNlIG9mIGFuIGVsZW1lbnRcbiAgICovXG4gIGdldFRhZ05hbWVzcGFjZTogbm9vcCxcblxuICAvKipcbiAgICogUGFyc2UgdGhlIHJlYWwgdGFnIG5hbWUgZm9yIHRoZSBzcGVjaWZpYyBwbGF0Zm9ybS5cbiAgICovXG4gIHBhcnNlUGxhdGZvcm1UYWdOYW1lOiBpZGVudGl0eSxcblxuICAvKipcbiAgICogQ2hlY2sgaWYgYW4gYXR0cmlidXRlIG11c3QgYmUgYm91bmQgdXNpbmcgcHJvcGVydHksIGUuZy4gdmFsdWVcbiAgICogUGxhdGZvcm0tZGVwZW5kZW50LlxuICAgKi9cbiAgbXVzdFVzZVByb3A6IG5vLFxuXG4gIC8qKlxuICAgKiBQZXJmb3JtIHVwZGF0ZXMgYXN5bmNocm9ub3VzbHkuIEludGVuZGVkIHRvIGJlIHVzZWQgYnkgVnVlIFRlc3QgVXRpbHNcbiAgICogVGhpcyB3aWxsIHNpZ25pZmljYW50bHkgcmVkdWNlIHBlcmZvcm1hbmNlIGlmIHNldCB0byBmYWxzZS5cbiAgICovXG4gIGFzeW5jOiB0cnVlLFxuXG4gIC8qKlxuICAgKiBFeHBvc2VkIGZvciBsZWdhY3kgcmVhc29uc1xuICAgKi9cbiAgX2xpZmVjeWNsZUhvb2tzOiBMSUZFQ1lDTEVfSE9PS1Ncbn0pO1xuXG4vKiAgKi9cblxuLyoqXG4gKiB1bmljb2RlIGxldHRlcnMgdXNlZCBmb3IgcGFyc2luZyBodG1sIHRhZ3MsIGNvbXBvbmVudCBuYW1lcyBhbmQgcHJvcGVydHkgcGF0aHMuXG4gKiB1c2luZyBodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUzL3NlbWFudGljcy1zY3JpcHRpbmcuaHRtbCNwb3RlbnRpYWxjdXN0b21lbGVtZW50bmFtZVxuICogc2tpcHBpbmcgXFx1MTAwMDAtXFx1RUZGRkYgZHVlIHRvIGl0IGZyZWV6aW5nIHVwIFBoYW50b21KU1xuICovXG52YXIgdW5pY29kZVJlZ0V4cCA9IC9hLXpBLVpcXHUwMEI3XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjAzRi1cXHUyMDQwXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZELztcblxuLyoqXG4gKiBDaGVjayBpZiBhIHN0cmluZyBzdGFydHMgd2l0aCAkIG9yIF9cbiAqL1xuZnVuY3Rpb24gaXNSZXNlcnZlZCAoc3RyKSB7XG4gIHZhciBjID0gKHN0ciArICcnKS5jaGFyQ29kZUF0KDApO1xuICByZXR1cm4gYyA9PT0gMHgyNCB8fCBjID09PSAweDVGXG59XG5cbi8qKlxuICogRGVmaW5lIGEgcHJvcGVydHkuXG4gKi9cbmZ1bmN0aW9uIGRlZiAob2JqLCBrZXksIHZhbCwgZW51bWVyYWJsZSkge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHtcbiAgICB2YWx1ZTogdmFsLFxuICAgIGVudW1lcmFibGU6ICEhZW51bWVyYWJsZSxcbiAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICBjb25maWd1cmFibGU6IHRydWVcbiAgfSk7XG59XG5cbi8qKlxuICogUGFyc2Ugc2ltcGxlIHBhdGguXG4gKi9cbnZhciBiYWlsUkUgPSBuZXcgUmVnRXhwKChcIlteXCIgKyAodW5pY29kZVJlZ0V4cC5zb3VyY2UpICsgXCIuJF9cXFxcZF1cIikpO1xuZnVuY3Rpb24gcGFyc2VQYXRoIChwYXRoKSB7XG4gIGlmIChiYWlsUkUudGVzdChwYXRoKSkge1xuICAgIHJldHVyblxuICB9XG4gIHZhciBzZWdtZW50cyA9IHBhdGguc3BsaXQoJy4nKTtcbiAgcmV0dXJuIGZ1bmN0aW9uIChvYmopIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlZ21lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoIW9iaikgeyByZXR1cm4gfVxuICAgICAgb2JqID0gb2JqW3NlZ21lbnRzW2ldXTtcbiAgICB9XG4gICAgcmV0dXJuIG9ialxuICB9XG59XG5cbi8qICAqL1xuXG4vLyBjYW4gd2UgdXNlIF9fcHJvdG9fXz9cbnZhciBoYXNQcm90byA9ICdfX3Byb3RvX18nIGluIHt9O1xuXG4vLyBCcm93c2VyIGVudmlyb25tZW50IHNuaWZmaW5nXG52YXIgaW5Ccm93c2VyID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCc7XG52YXIgaW5XZWV4ID0gdHlwZW9mIFdYRW52aXJvbm1lbnQgIT09ICd1bmRlZmluZWQnICYmICEhV1hFbnZpcm9ubWVudC5wbGF0Zm9ybTtcbnZhciB3ZWV4UGxhdGZvcm0gPSBpbldlZXggJiYgV1hFbnZpcm9ubWVudC5wbGF0Zm9ybS50b0xvd2VyQ2FzZSgpO1xudmFyIFVBID0gaW5Ccm93c2VyICYmIHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7XG52YXIgaXNJRSA9IFVBICYmIC9tc2llfHRyaWRlbnQvLnRlc3QoVUEpO1xudmFyIGlzSUU5ID0gVUEgJiYgVUEuaW5kZXhPZignbXNpZSA5LjAnKSA+IDA7XG52YXIgaXNFZGdlID0gVUEgJiYgVUEuaW5kZXhPZignZWRnZS8nKSA+IDA7XG52YXIgaXNBbmRyb2lkID0gKFVBICYmIFVBLmluZGV4T2YoJ2FuZHJvaWQnKSA+IDApIHx8ICh3ZWV4UGxhdGZvcm0gPT09ICdhbmRyb2lkJyk7XG52YXIgaXNJT1MgPSAoVUEgJiYgL2lwaG9uZXxpcGFkfGlwb2R8aW9zLy50ZXN0KFVBKSkgfHwgKHdlZXhQbGF0Zm9ybSA9PT0gJ2lvcycpO1xudmFyIGlzQ2hyb21lID0gVUEgJiYgL2Nocm9tZVxcL1xcZCsvLnRlc3QoVUEpICYmICFpc0VkZ2U7XG52YXIgaXNQaGFudG9tSlMgPSBVQSAmJiAvcGhhbnRvbWpzLy50ZXN0KFVBKTtcbnZhciBpc0ZGID0gVUEgJiYgVUEubWF0Y2goL2ZpcmVmb3hcXC8oXFxkKykvKTtcblxuLy8gRmlyZWZveCBoYXMgYSBcIndhdGNoXCIgZnVuY3Rpb24gb24gT2JqZWN0LnByb3RvdHlwZS4uLlxudmFyIG5hdGl2ZVdhdGNoID0gKHt9KS53YXRjaDtcblxudmFyIHN1cHBvcnRzUGFzc2l2ZSA9IGZhbHNlO1xuaWYgKGluQnJvd3Nlcikge1xuICB0cnkge1xuICAgIHZhciBvcHRzID0ge307XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9wdHMsICdwYXNzaXZlJywgKHtcbiAgICAgIGdldDogZnVuY3Rpb24gZ2V0ICgpIHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgc3VwcG9ydHNQYXNzaXZlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KSk7IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9mbG93L2lzc3Vlcy8yODVcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndGVzdC1wYXNzaXZlJywgbnVsbCwgb3B0cyk7XG4gIH0gY2F0Y2ggKGUpIHt9XG59XG5cbi8vIHRoaXMgbmVlZHMgdG8gYmUgbGF6eS1ldmFsZWQgYmVjYXVzZSB2dWUgbWF5IGJlIHJlcXVpcmVkIGJlZm9yZVxuLy8gdnVlLXNlcnZlci1yZW5kZXJlciBjYW4gc2V0IFZVRV9FTlZcbnZhciBfaXNTZXJ2ZXI7XG52YXIgaXNTZXJ2ZXJSZW5kZXJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gIGlmIChfaXNTZXJ2ZXIgPT09IHVuZGVmaW5lZCkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmICghaW5Ccm93c2VyICYmICFpbldlZXggJiYgdHlwZW9mIGdsb2JhbCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIC8vIGRldGVjdCBwcmVzZW5jZSBvZiB2dWUtc2VydmVyLXJlbmRlcmVyIGFuZCBhdm9pZFxuICAgICAgLy8gV2VicGFjayBzaGltbWluZyB0aGUgcHJvY2Vzc1xuICAgICAgX2lzU2VydmVyID0gZ2xvYmFsWydwcm9jZXNzJ10gJiYgZ2xvYmFsWydwcm9jZXNzJ10uZW52LlZVRV9FTlYgPT09ICdzZXJ2ZXInO1xuICAgIH0gZWxzZSB7XG4gICAgICBfaXNTZXJ2ZXIgPSBmYWxzZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIF9pc1NlcnZlclxufTtcblxuLy8gZGV0ZWN0IGRldnRvb2xzXG52YXIgZGV2dG9vbHMgPSBpbkJyb3dzZXIgJiYgd2luZG93Ll9fVlVFX0RFVlRPT0xTX0dMT0JBTF9IT09LX187XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5mdW5jdGlvbiBpc05hdGl2ZSAoQ3Rvcikge1xuICByZXR1cm4gdHlwZW9mIEN0b3IgPT09ICdmdW5jdGlvbicgJiYgL25hdGl2ZSBjb2RlLy50ZXN0KEN0b3IudG9TdHJpbmcoKSlcbn1cblxudmFyIGhhc1N5bWJvbCA9XG4gIHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIGlzTmF0aXZlKFN5bWJvbCkgJiZcbiAgdHlwZW9mIFJlZmxlY3QgIT09ICd1bmRlZmluZWQnICYmIGlzTmF0aXZlKFJlZmxlY3Qub3duS2V5cyk7XG5cbnZhciBfU2V0O1xuLyogaXN0YW5idWwgaWdub3JlIGlmICovIC8vICRmbG93LWRpc2FibGUtbGluZVxuaWYgKHR5cGVvZiBTZXQgIT09ICd1bmRlZmluZWQnICYmIGlzTmF0aXZlKFNldCkpIHtcbiAgLy8gdXNlIG5hdGl2ZSBTZXQgd2hlbiBhdmFpbGFibGUuXG4gIF9TZXQgPSBTZXQ7XG59IGVsc2Uge1xuICAvLyBhIG5vbi1zdGFuZGFyZCBTZXQgcG9seWZpbGwgdGhhdCBvbmx5IHdvcmtzIHdpdGggcHJpbWl0aXZlIGtleXMuXG4gIF9TZXQgPSAvKkBfX1BVUkVfXyovKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBTZXQgKCkge1xuICAgICAgdGhpcy5zZXQgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIH1cbiAgICBTZXQucHJvdG90eXBlLmhhcyA9IGZ1bmN0aW9uIGhhcyAoa2V5KSB7XG4gICAgICByZXR1cm4gdGhpcy5zZXRba2V5XSA9PT0gdHJ1ZVxuICAgIH07XG4gICAgU2V0LnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiBhZGQgKGtleSkge1xuICAgICAgdGhpcy5zZXRba2V5XSA9IHRydWU7XG4gICAgfTtcbiAgICBTZXQucHJvdG90eXBlLmNsZWFyID0gZnVuY3Rpb24gY2xlYXIgKCkge1xuICAgICAgdGhpcy5zZXQgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIH07XG5cbiAgICByZXR1cm4gU2V0O1xuICB9KCkpO1xufVxuXG4vKiAgKi9cblxudmFyIHdhcm4gPSBub29wO1xudmFyIHRpcCA9IG5vb3A7XG52YXIgZ2VuZXJhdGVDb21wb25lbnRUcmFjZSA9IChub29wKTsgLy8gd29yayBhcm91bmQgZmxvdyBjaGVja1xudmFyIGZvcm1hdENvbXBvbmVudE5hbWUgPSAobm9vcCk7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhciBoYXNDb25zb2xlID0gdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnO1xuICB2YXIgY2xhc3NpZnlSRSA9IC8oPzpefFstX10pKFxcdykvZztcbiAgdmFyIGNsYXNzaWZ5ID0gZnVuY3Rpb24gKHN0cikgeyByZXR1cm4gc3RyXG4gICAgLnJlcGxhY2UoY2xhc3NpZnlSRSwgZnVuY3Rpb24gKGMpIHsgcmV0dXJuIGMudG9VcHBlckNhc2UoKTsgfSlcbiAgICAucmVwbGFjZSgvWy1fXS9nLCAnJyk7IH07XG5cbiAgd2FybiA9IGZ1bmN0aW9uIChtc2csIHZtKSB7XG4gICAgdmFyIHRyYWNlID0gdm0gPyBnZW5lcmF0ZUNvbXBvbmVudFRyYWNlKHZtKSA6ICcnO1xuXG4gICAgaWYgKGNvbmZpZy53YXJuSGFuZGxlcikge1xuICAgICAgY29uZmlnLndhcm5IYW5kbGVyLmNhbGwobnVsbCwgbXNnLCB2bSwgdHJhY2UpO1xuICAgIH0gZWxzZSBpZiAoaGFzQ29uc29sZSAmJiAoIWNvbmZpZy5zaWxlbnQpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKChcIltWdWUgd2Fybl06IFwiICsgbXNnICsgdHJhY2UpKTtcbiAgICB9XG4gIH07XG5cbiAgdGlwID0gZnVuY3Rpb24gKG1zZywgdm0pIHtcbiAgICBpZiAoaGFzQ29uc29sZSAmJiAoIWNvbmZpZy5zaWxlbnQpKSB7XG4gICAgICBjb25zb2xlLndhcm4oXCJbVnVlIHRpcF06IFwiICsgbXNnICsgKFxuICAgICAgICB2bSA/IGdlbmVyYXRlQ29tcG9uZW50VHJhY2Uodm0pIDogJydcbiAgICAgICkpO1xuICAgIH1cbiAgfTtcblxuICBmb3JtYXRDb21wb25lbnROYW1lID0gZnVuY3Rpb24gKHZtLCBpbmNsdWRlRmlsZSkge1xuICAgIGlmICh2bS4kcm9vdCA9PT0gdm0pIHtcbiAgICAgIHJldHVybiAnPFJvb3Q+J1xuICAgIH1cbiAgICB2YXIgb3B0aW9ucyA9IHR5cGVvZiB2bSA9PT0gJ2Z1bmN0aW9uJyAmJiB2bS5jaWQgIT0gbnVsbFxuICAgICAgPyB2bS5vcHRpb25zXG4gICAgICA6IHZtLl9pc1Z1ZVxuICAgICAgICA/IHZtLiRvcHRpb25zIHx8IHZtLmNvbnN0cnVjdG9yLm9wdGlvbnNcbiAgICAgICAgOiB2bTtcbiAgICB2YXIgbmFtZSA9IG9wdGlvbnMubmFtZSB8fCBvcHRpb25zLl9jb21wb25lbnRUYWc7XG4gICAgdmFyIGZpbGUgPSBvcHRpb25zLl9fZmlsZTtcbiAgICBpZiAoIW5hbWUgJiYgZmlsZSkge1xuICAgICAgdmFyIG1hdGNoID0gZmlsZS5tYXRjaCgvKFteL1xcXFxdKylcXC52dWUkLyk7XG4gICAgICBuYW1lID0gbWF0Y2ggJiYgbWF0Y2hbMV07XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIChuYW1lID8gKFwiPFwiICsgKGNsYXNzaWZ5KG5hbWUpKSArIFwiPlwiKSA6IFwiPEFub255bW91cz5cIikgK1xuICAgICAgKGZpbGUgJiYgaW5jbHVkZUZpbGUgIT09IGZhbHNlID8gKFwiIGF0IFwiICsgZmlsZSkgOiAnJylcbiAgICApXG4gIH07XG5cbiAgdmFyIHJlcGVhdCA9IGZ1bmN0aW9uIChzdHIsIG4pIHtcbiAgICB2YXIgcmVzID0gJyc7XG4gICAgd2hpbGUgKG4pIHtcbiAgICAgIGlmIChuICUgMiA9PT0gMSkgeyByZXMgKz0gc3RyOyB9XG4gICAgICBpZiAobiA+IDEpIHsgc3RyICs9IHN0cjsgfVxuICAgICAgbiA+Pj0gMTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc1xuICB9O1xuXG4gIGdlbmVyYXRlQ29tcG9uZW50VHJhY2UgPSBmdW5jdGlvbiAodm0pIHtcbiAgICBpZiAodm0uX2lzVnVlICYmIHZtLiRwYXJlbnQpIHtcbiAgICAgIHZhciB0cmVlID0gW107XG4gICAgICB2YXIgY3VycmVudFJlY3Vyc2l2ZVNlcXVlbmNlID0gMDtcbiAgICAgIHdoaWxlICh2bSkge1xuICAgICAgICBpZiAodHJlZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdmFyIGxhc3QgPSB0cmVlW3RyZWUubGVuZ3RoIC0gMV07XG4gICAgICAgICAgaWYgKGxhc3QuY29uc3RydWN0b3IgPT09IHZtLmNvbnN0cnVjdG9yKSB7XG4gICAgICAgICAgICBjdXJyZW50UmVjdXJzaXZlU2VxdWVuY2UrKztcbiAgICAgICAgICAgIHZtID0gdm0uJHBhcmVudDtcbiAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50UmVjdXJzaXZlU2VxdWVuY2UgPiAwKSB7XG4gICAgICAgICAgICB0cmVlW3RyZWUubGVuZ3RoIC0gMV0gPSBbbGFzdCwgY3VycmVudFJlY3Vyc2l2ZVNlcXVlbmNlXTtcbiAgICAgICAgICAgIGN1cnJlbnRSZWN1cnNpdmVTZXF1ZW5jZSA9IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRyZWUucHVzaCh2bSk7XG4gICAgICAgIHZtID0gdm0uJHBhcmVudDtcbiAgICAgIH1cbiAgICAgIHJldHVybiAnXFxuXFxuZm91bmQgaW5cXG5cXG4nICsgdHJlZVxuICAgICAgICAubWFwKGZ1bmN0aW9uICh2bSwgaSkgeyByZXR1cm4gKFwiXCIgKyAoaSA9PT0gMCA/ICctLS0+ICcgOiByZXBlYXQoJyAnLCA1ICsgaSAqIDIpKSArIChBcnJheS5pc0FycmF5KHZtKVxuICAgICAgICAgICAgPyAoKGZvcm1hdENvbXBvbmVudE5hbWUodm1bMF0pKSArIFwiLi4uIChcIiArICh2bVsxXSkgKyBcIiByZWN1cnNpdmUgY2FsbHMpXCIpXG4gICAgICAgICAgICA6IGZvcm1hdENvbXBvbmVudE5hbWUodm0pKSk7IH0pXG4gICAgICAgIC5qb2luKCdcXG4nKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKFwiXFxuXFxuKGZvdW5kIGluIFwiICsgKGZvcm1hdENvbXBvbmVudE5hbWUodm0pKSArIFwiKVwiKVxuICAgIH1cbiAgfTtcbn1cblxuLyogICovXG5cbnZhciB1aWQgPSAwO1xuXG4vKipcbiAqIEEgZGVwIGlzIGFuIG9ic2VydmFibGUgdGhhdCBjYW4gaGF2ZSBtdWx0aXBsZVxuICogZGlyZWN0aXZlcyBzdWJzY3JpYmluZyB0byBpdC5cbiAqL1xudmFyIERlcCA9IGZ1bmN0aW9uIERlcCAoKSB7XG4gIHRoaXMuaWQgPSB1aWQrKztcbiAgdGhpcy5zdWJzID0gW107XG59O1xuXG5EZXAucHJvdG90eXBlLmFkZFN1YiA9IGZ1bmN0aW9uIGFkZFN1YiAoc3ViKSB7XG4gIHRoaXMuc3Vicy5wdXNoKHN1Yik7XG59O1xuXG5EZXAucHJvdG90eXBlLnJlbW92ZVN1YiA9IGZ1bmN0aW9uIHJlbW92ZVN1YiAoc3ViKSB7XG4gIHJlbW92ZSh0aGlzLnN1YnMsIHN1Yik7XG59O1xuXG5EZXAucHJvdG90eXBlLmRlcGVuZCA9IGZ1bmN0aW9uIGRlcGVuZCAoKSB7XG4gIGlmIChEZXAudGFyZ2V0KSB7XG4gICAgRGVwLnRhcmdldC5hZGREZXAodGhpcyk7XG4gIH1cbn07XG5cbkRlcC5wcm90b3R5cGUubm90aWZ5ID0gZnVuY3Rpb24gbm90aWZ5ICgpIHtcbiAgLy8gc3RhYmlsaXplIHRoZSBzdWJzY3JpYmVyIGxpc3QgZmlyc3RcbiAgdmFyIHN1YnMgPSB0aGlzLnN1YnMuc2xpY2UoKTtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgIWNvbmZpZy5hc3luYykge1xuICAgIC8vIHN1YnMgYXJlbid0IHNvcnRlZCBpbiBzY2hlZHVsZXIgaWYgbm90IHJ1bm5pbmcgYXN5bmNcbiAgICAvLyB3ZSBuZWVkIHRvIHNvcnQgdGhlbSBub3cgdG8gbWFrZSBzdXJlIHRoZXkgZmlyZSBpbiBjb3JyZWN0XG4gICAgLy8gb3JkZXJcbiAgICBzdWJzLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJuIGEuaWQgLSBiLmlkOyB9KTtcbiAgfVxuICBmb3IgKHZhciBpID0gMCwgbCA9IHN1YnMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgc3Vic1tpXS51cGRhdGUoKTtcbiAgfVxufTtcblxuLy8gVGhlIGN1cnJlbnQgdGFyZ2V0IHdhdGNoZXIgYmVpbmcgZXZhbHVhdGVkLlxuLy8gVGhpcyBpcyBnbG9iYWxseSB1bmlxdWUgYmVjYXVzZSBvbmx5IG9uZSB3YXRjaGVyXG4vLyBjYW4gYmUgZXZhbHVhdGVkIGF0IGEgdGltZS5cbkRlcC50YXJnZXQgPSBudWxsO1xudmFyIHRhcmdldFN0YWNrID0gW107XG5cbmZ1bmN0aW9uIHB1c2hUYXJnZXQgKHRhcmdldCkge1xuICB0YXJnZXRTdGFjay5wdXNoKHRhcmdldCk7XG4gIERlcC50YXJnZXQgPSB0YXJnZXQ7XG59XG5cbmZ1bmN0aW9uIHBvcFRhcmdldCAoKSB7XG4gIHRhcmdldFN0YWNrLnBvcCgpO1xuICBEZXAudGFyZ2V0ID0gdGFyZ2V0U3RhY2tbdGFyZ2V0U3RhY2subGVuZ3RoIC0gMV07XG59XG5cbi8qICAqL1xuXG52YXIgVk5vZGUgPSBmdW5jdGlvbiBWTm9kZSAoXG4gIHRhZyxcbiAgZGF0YSxcbiAgY2hpbGRyZW4sXG4gIHRleHQsXG4gIGVsbSxcbiAgY29udGV4dCxcbiAgY29tcG9uZW50T3B0aW9ucyxcbiAgYXN5bmNGYWN0b3J5XG4pIHtcbiAgdGhpcy50YWcgPSB0YWc7XG4gIHRoaXMuZGF0YSA9IGRhdGE7XG4gIHRoaXMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgdGhpcy50ZXh0ID0gdGV4dDtcbiAgdGhpcy5lbG0gPSBlbG07XG4gIHRoaXMubnMgPSB1bmRlZmluZWQ7XG4gIHRoaXMuY29udGV4dCA9IGNvbnRleHQ7XG4gIHRoaXMuZm5Db250ZXh0ID0gdW5kZWZpbmVkO1xuICB0aGlzLmZuT3B0aW9ucyA9IHVuZGVmaW5lZDtcbiAgdGhpcy5mblNjb3BlSWQgPSB1bmRlZmluZWQ7XG4gIHRoaXMua2V5ID0gZGF0YSAmJiBkYXRhLmtleTtcbiAgdGhpcy5jb21wb25lbnRPcHRpb25zID0gY29tcG9uZW50T3B0aW9ucztcbiAgdGhpcy5jb21wb25lbnRJbnN0YW5jZSA9IHVuZGVmaW5lZDtcbiAgdGhpcy5wYXJlbnQgPSB1bmRlZmluZWQ7XG4gIHRoaXMucmF3ID0gZmFsc2U7XG4gIHRoaXMuaXNTdGF0aWMgPSBmYWxzZTtcbiAgdGhpcy5pc1Jvb3RJbnNlcnQgPSB0cnVlO1xuICB0aGlzLmlzQ29tbWVudCA9IGZhbHNlO1xuICB0aGlzLmlzQ2xvbmVkID0gZmFsc2U7XG4gIHRoaXMuaXNPbmNlID0gZmFsc2U7XG4gIHRoaXMuYXN5bmNGYWN0b3J5ID0gYXN5bmNGYWN0b3J5O1xuICB0aGlzLmFzeW5jTWV0YSA9IHVuZGVmaW5lZDtcbiAgdGhpcy5pc0FzeW5jUGxhY2Vob2xkZXIgPSBmYWxzZTtcbn07XG5cbnZhciBwcm90b3R5cGVBY2Nlc3NvcnMgPSB7IGNoaWxkOiB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH07XG5cbi8vIERFUFJFQ0FURUQ6IGFsaWFzIGZvciBjb21wb25lbnRJbnN0YW5jZSBmb3IgYmFja3dhcmRzIGNvbXBhdC5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5wcm90b3R5cGVBY2Nlc3NvcnMuY2hpbGQuZ2V0ID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5jb21wb25lbnRJbnN0YW5jZVxufTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoIFZOb2RlLnByb3RvdHlwZSwgcHJvdG90eXBlQWNjZXNzb3JzICk7XG5cbnZhciBjcmVhdGVFbXB0eVZOb2RlID0gZnVuY3Rpb24gKHRleHQpIHtcbiAgaWYgKCB0ZXh0ID09PSB2b2lkIDAgKSB0ZXh0ID0gJyc7XG5cbiAgdmFyIG5vZGUgPSBuZXcgVk5vZGUoKTtcbiAgbm9kZS50ZXh0ID0gdGV4dDtcbiAgbm9kZS5pc0NvbW1lbnQgPSB0cnVlO1xuICByZXR1cm4gbm9kZVxufTtcblxuZnVuY3Rpb24gY3JlYXRlVGV4dFZOb2RlICh2YWwpIHtcbiAgcmV0dXJuIG5ldyBWTm9kZSh1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBTdHJpbmcodmFsKSlcbn1cblxuLy8gb3B0aW1pemVkIHNoYWxsb3cgY2xvbmVcbi8vIHVzZWQgZm9yIHN0YXRpYyBub2RlcyBhbmQgc2xvdCBub2RlcyBiZWNhdXNlIHRoZXkgbWF5IGJlIHJldXNlZCBhY3Jvc3Ncbi8vIG11bHRpcGxlIHJlbmRlcnMsIGNsb25pbmcgdGhlbSBhdm9pZHMgZXJyb3JzIHdoZW4gRE9NIG1hbmlwdWxhdGlvbnMgcmVseVxuLy8gb24gdGhlaXIgZWxtIHJlZmVyZW5jZS5cbmZ1bmN0aW9uIGNsb25lVk5vZGUgKHZub2RlKSB7XG4gIHZhciBjbG9uZWQgPSBuZXcgVk5vZGUoXG4gICAgdm5vZGUudGFnLFxuICAgIHZub2RlLmRhdGEsXG4gICAgLy8gIzc5NzVcbiAgICAvLyBjbG9uZSBjaGlsZHJlbiBhcnJheSB0byBhdm9pZCBtdXRhdGluZyBvcmlnaW5hbCBpbiBjYXNlIG9mIGNsb25pbmdcbiAgICAvLyBhIGNoaWxkLlxuICAgIHZub2RlLmNoaWxkcmVuICYmIHZub2RlLmNoaWxkcmVuLnNsaWNlKCksXG4gICAgdm5vZGUudGV4dCxcbiAgICB2bm9kZS5lbG0sXG4gICAgdm5vZGUuY29udGV4dCxcbiAgICB2bm9kZS5jb21wb25lbnRPcHRpb25zLFxuICAgIHZub2RlLmFzeW5jRmFjdG9yeVxuICApO1xuICBjbG9uZWQubnMgPSB2bm9kZS5ucztcbiAgY2xvbmVkLmlzU3RhdGljID0gdm5vZGUuaXNTdGF0aWM7XG4gIGNsb25lZC5rZXkgPSB2bm9kZS5rZXk7XG4gIGNsb25lZC5pc0NvbW1lbnQgPSB2bm9kZS5pc0NvbW1lbnQ7XG4gIGNsb25lZC5mbkNvbnRleHQgPSB2bm9kZS5mbkNvbnRleHQ7XG4gIGNsb25lZC5mbk9wdGlvbnMgPSB2bm9kZS5mbk9wdGlvbnM7XG4gIGNsb25lZC5mblNjb3BlSWQgPSB2bm9kZS5mblNjb3BlSWQ7XG4gIGNsb25lZC5hc3luY01ldGEgPSB2bm9kZS5hc3luY01ldGE7XG4gIGNsb25lZC5pc0Nsb25lZCA9IHRydWU7XG4gIHJldHVybiBjbG9uZWRcbn1cblxuLypcbiAqIG5vdCB0eXBlIGNoZWNraW5nIHRoaXMgZmlsZSBiZWNhdXNlIGZsb3cgZG9lc24ndCBwbGF5IHdlbGwgd2l0aFxuICogZHluYW1pY2FsbHkgYWNjZXNzaW5nIG1ldGhvZHMgb24gQXJyYXkgcHJvdG90eXBlXG4gKi9cblxudmFyIGFycmF5UHJvdG8gPSBBcnJheS5wcm90b3R5cGU7XG52YXIgYXJyYXlNZXRob2RzID0gT2JqZWN0LmNyZWF0ZShhcnJheVByb3RvKTtcblxudmFyIG1ldGhvZHNUb1BhdGNoID0gW1xuICAncHVzaCcsXG4gICdwb3AnLFxuICAnc2hpZnQnLFxuICAndW5zaGlmdCcsXG4gICdzcGxpY2UnLFxuICAnc29ydCcsXG4gICdyZXZlcnNlJ1xuXTtcblxuLyoqXG4gKiBJbnRlcmNlcHQgbXV0YXRpbmcgbWV0aG9kcyBhbmQgZW1pdCBldmVudHNcbiAqL1xubWV0aG9kc1RvUGF0Y2guZm9yRWFjaChmdW5jdGlvbiAobWV0aG9kKSB7XG4gIC8vIGNhY2hlIG9yaWdpbmFsIG1ldGhvZFxuICB2YXIgb3JpZ2luYWwgPSBhcnJheVByb3RvW21ldGhvZF07XG4gIGRlZihhcnJheU1ldGhvZHMsIG1ldGhvZCwgZnVuY3Rpb24gbXV0YXRvciAoKSB7XG4gICAgdmFyIGFyZ3MgPSBbXSwgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICB3aGlsZSAoIGxlbi0tICkgYXJnc1sgbGVuIF0gPSBhcmd1bWVudHNbIGxlbiBdO1xuXG4gICAgdmFyIHJlc3VsdCA9IG9yaWdpbmFsLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgIHZhciBvYiA9IHRoaXMuX19vYl9fO1xuICAgIHZhciBpbnNlcnRlZDtcbiAgICBzd2l0Y2ggKG1ldGhvZCkge1xuICAgICAgY2FzZSAncHVzaCc6XG4gICAgICBjYXNlICd1bnNoaWZ0JzpcbiAgICAgICAgaW5zZXJ0ZWQgPSBhcmdzO1xuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnc3BsaWNlJzpcbiAgICAgICAgaW5zZXJ0ZWQgPSBhcmdzLnNsaWNlKDIpO1xuICAgICAgICBicmVha1xuICAgIH1cbiAgICBpZiAoaW5zZXJ0ZWQpIHsgb2Iub2JzZXJ2ZUFycmF5KGluc2VydGVkKTsgfVxuICAgIC8vIG5vdGlmeSBjaGFuZ2VcbiAgICBvYi5kZXAubm90aWZ5KCk7XG4gICAgcmV0dXJuIHJlc3VsdFxuICB9KTtcbn0pO1xuXG4vKiAgKi9cblxudmFyIGFycmF5S2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGFycmF5TWV0aG9kcyk7XG5cbi8qKlxuICogSW4gc29tZSBjYXNlcyB3ZSBtYXkgd2FudCB0byBkaXNhYmxlIG9ic2VydmF0aW9uIGluc2lkZSBhIGNvbXBvbmVudCdzXG4gKiB1cGRhdGUgY29tcHV0YXRpb24uXG4gKi9cbnZhciBzaG91bGRPYnNlcnZlID0gdHJ1ZTtcblxuZnVuY3Rpb24gdG9nZ2xlT2JzZXJ2aW5nICh2YWx1ZSkge1xuICBzaG91bGRPYnNlcnZlID0gdmFsdWU7XG59XG5cbi8qKlxuICogT2JzZXJ2ZXIgY2xhc3MgdGhhdCBpcyBhdHRhY2hlZCB0byBlYWNoIG9ic2VydmVkXG4gKiBvYmplY3QuIE9uY2UgYXR0YWNoZWQsIHRoZSBvYnNlcnZlciBjb252ZXJ0cyB0aGUgdGFyZ2V0XG4gKiBvYmplY3QncyBwcm9wZXJ0eSBrZXlzIGludG8gZ2V0dGVyL3NldHRlcnMgdGhhdFxuICogY29sbGVjdCBkZXBlbmRlbmNpZXMgYW5kIGRpc3BhdGNoIHVwZGF0ZXMuXG4gKi9cbnZhciBPYnNlcnZlciA9IGZ1bmN0aW9uIE9ic2VydmVyICh2YWx1ZSkge1xuICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIHRoaXMuZGVwID0gbmV3IERlcCgpO1xuICB0aGlzLnZtQ291bnQgPSAwO1xuICBkZWYodmFsdWUsICdfX29iX18nLCB0aGlzKTtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgaWYgKGhhc1Byb3RvKSB7XG4gICAgICBwcm90b0F1Z21lbnQodmFsdWUsIGFycmF5TWV0aG9kcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvcHlBdWdtZW50KHZhbHVlLCBhcnJheU1ldGhvZHMsIGFycmF5S2V5cyk7XG4gICAgfVxuICAgIHRoaXMub2JzZXJ2ZUFycmF5KHZhbHVlKTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLndhbGsodmFsdWUpO1xuICB9XG59O1xuXG4vKipcbiAqIFdhbGsgdGhyb3VnaCBhbGwgcHJvcGVydGllcyBhbmQgY29udmVydCB0aGVtIGludG9cbiAqIGdldHRlci9zZXR0ZXJzLiBUaGlzIG1ldGhvZCBzaG91bGQgb25seSBiZSBjYWxsZWQgd2hlblxuICogdmFsdWUgdHlwZSBpcyBPYmplY3QuXG4gKi9cbk9ic2VydmVyLnByb3RvdHlwZS53YWxrID0gZnVuY3Rpb24gd2FsayAob2JqKSB7XG4gIHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgZGVmaW5lUmVhY3RpdmUkJDEob2JqLCBrZXlzW2ldKTtcbiAgfVxufTtcblxuLyoqXG4gKiBPYnNlcnZlIGEgbGlzdCBvZiBBcnJheSBpdGVtcy5cbiAqL1xuT2JzZXJ2ZXIucHJvdG90eXBlLm9ic2VydmVBcnJheSA9IGZ1bmN0aW9uIG9ic2VydmVBcnJheSAoaXRlbXMpIHtcbiAgZm9yICh2YXIgaSA9IDAsIGwgPSBpdGVtcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBvYnNlcnZlKGl0ZW1zW2ldKTtcbiAgfVxufTtcblxuLy8gaGVscGVyc1xuXG4vKipcbiAqIEF1Z21lbnQgYSB0YXJnZXQgT2JqZWN0IG9yIEFycmF5IGJ5IGludGVyY2VwdGluZ1xuICogdGhlIHByb3RvdHlwZSBjaGFpbiB1c2luZyBfX3Byb3RvX19cbiAqL1xuZnVuY3Rpb24gcHJvdG9BdWdtZW50ICh0YXJnZXQsIHNyYykge1xuICAvKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90byAqL1xuICB0YXJnZXQuX19wcm90b19fID0gc3JjO1xuICAvKiBlc2xpbnQtZW5hYmxlIG5vLXByb3RvICovXG59XG5cbi8qKlxuICogQXVnbWVudCBhIHRhcmdldCBPYmplY3Qgb3IgQXJyYXkgYnkgZGVmaW5pbmdcbiAqIGhpZGRlbiBwcm9wZXJ0aWVzLlxuICovXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuZnVuY3Rpb24gY29weUF1Z21lbnQgKHRhcmdldCwgc3JjLCBrZXlzKSB7XG4gIGZvciAodmFyIGkgPSAwLCBsID0ga2V5cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICB2YXIga2V5ID0ga2V5c1tpXTtcbiAgICBkZWYodGFyZ2V0LCBrZXksIHNyY1trZXldKTtcbiAgfVxufVxuXG4vKipcbiAqIEF0dGVtcHQgdG8gY3JlYXRlIGFuIG9ic2VydmVyIGluc3RhbmNlIGZvciBhIHZhbHVlLFxuICogcmV0dXJucyB0aGUgbmV3IG9ic2VydmVyIGlmIHN1Y2Nlc3NmdWxseSBvYnNlcnZlZCxcbiAqIG9yIHRoZSBleGlzdGluZyBvYnNlcnZlciBpZiB0aGUgdmFsdWUgYWxyZWFkeSBoYXMgb25lLlxuICovXG5mdW5jdGlvbiBvYnNlcnZlICh2YWx1ZSwgYXNSb290RGF0YSkge1xuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSB8fCB2YWx1ZSBpbnN0YW5jZW9mIFZOb2RlKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgdmFyIG9iO1xuICBpZiAoaGFzT3duKHZhbHVlLCAnX19vYl9fJykgJiYgdmFsdWUuX19vYl9fIGluc3RhbmNlb2YgT2JzZXJ2ZXIpIHtcbiAgICBvYiA9IHZhbHVlLl9fb2JfXztcbiAgfSBlbHNlIGlmIChcbiAgICBzaG91bGRPYnNlcnZlICYmXG4gICAgIWlzU2VydmVyUmVuZGVyaW5nKCkgJiZcbiAgICAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgfHwgaXNQbGFpbk9iamVjdCh2YWx1ZSkpICYmXG4gICAgT2JqZWN0LmlzRXh0ZW5zaWJsZSh2YWx1ZSkgJiZcbiAgICAhdmFsdWUuX2lzVnVlXG4gICkge1xuICAgIG9iID0gbmV3IE9ic2VydmVyKHZhbHVlKTtcbiAgfVxuICBpZiAoYXNSb290RGF0YSAmJiBvYikge1xuICAgIG9iLnZtQ291bnQrKztcbiAgfVxuICByZXR1cm4gb2Jcbn1cblxuLyoqXG4gKiBEZWZpbmUgYSByZWFjdGl2ZSBwcm9wZXJ0eSBvbiBhbiBPYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGRlZmluZVJlYWN0aXZlJCQxIChcbiAgb2JqLFxuICBrZXksXG4gIHZhbCxcbiAgY3VzdG9tU2V0dGVyLFxuICBzaGFsbG93XG4pIHtcbiAgdmFyIGRlcCA9IG5ldyBEZXAoKTtcblxuICB2YXIgcHJvcGVydHkgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KTtcbiAgaWYgKHByb3BlcnR5ICYmIHByb3BlcnR5LmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIC8vIGNhdGVyIGZvciBwcmUtZGVmaW5lZCBnZXR0ZXIvc2V0dGVyc1xuICB2YXIgZ2V0dGVyID0gcHJvcGVydHkgJiYgcHJvcGVydHkuZ2V0O1xuICB2YXIgc2V0dGVyID0gcHJvcGVydHkgJiYgcHJvcGVydHkuc2V0O1xuICBpZiAoKCFnZXR0ZXIgfHwgc2V0dGVyKSAmJiBhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7XG4gICAgdmFsID0gb2JqW2tleV07XG4gIH1cblxuICB2YXIgY2hpbGRPYiA9ICFzaGFsbG93ICYmIG9ic2VydmUodmFsKTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiByZWFjdGl2ZUdldHRlciAoKSB7XG4gICAgICB2YXIgdmFsdWUgPSBnZXR0ZXIgPyBnZXR0ZXIuY2FsbChvYmopIDogdmFsO1xuICAgICAgaWYgKERlcC50YXJnZXQpIHtcbiAgICAgICAgZGVwLmRlcGVuZCgpO1xuICAgICAgICBpZiAoY2hpbGRPYikge1xuICAgICAgICAgIGNoaWxkT2IuZGVwLmRlcGVuZCgpO1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgZGVwZW5kQXJyYXkodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlXG4gICAgfSxcbiAgICBzZXQ6IGZ1bmN0aW9uIHJlYWN0aXZlU2V0dGVyIChuZXdWYWwpIHtcbiAgICAgIHZhciB2YWx1ZSA9IGdldHRlciA/IGdldHRlci5jYWxsKG9iaikgOiB2YWw7XG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby1zZWxmLWNvbXBhcmUgKi9cbiAgICAgIGlmIChuZXdWYWwgPT09IHZhbHVlIHx8IChuZXdWYWwgIT09IG5ld1ZhbCAmJiB2YWx1ZSAhPT0gdmFsdWUpKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgLyogZXNsaW50LWVuYWJsZSBuby1zZWxmLWNvbXBhcmUgKi9cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGN1c3RvbVNldHRlcikge1xuICAgICAgICBjdXN0b21TZXR0ZXIoKTtcbiAgICAgIH1cbiAgICAgIC8vICM3OTgxOiBmb3IgYWNjZXNzb3IgcHJvcGVydGllcyB3aXRob3V0IHNldHRlclxuICAgICAgaWYgKGdldHRlciAmJiAhc2V0dGVyKSB7IHJldHVybiB9XG4gICAgICBpZiAoc2V0dGVyKSB7XG4gICAgICAgIHNldHRlci5jYWxsKG9iaiwgbmV3VmFsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbCA9IG5ld1ZhbDtcbiAgICAgIH1cbiAgICAgIGNoaWxkT2IgPSAhc2hhbGxvdyAmJiBvYnNlcnZlKG5ld1ZhbCk7XG4gICAgICBkZXAubm90aWZ5KCk7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBTZXQgYSBwcm9wZXJ0eSBvbiBhbiBvYmplY3QuIEFkZHMgdGhlIG5ldyBwcm9wZXJ0eSBhbmRcbiAqIHRyaWdnZXJzIGNoYW5nZSBub3RpZmljYXRpb24gaWYgdGhlIHByb3BlcnR5IGRvZXNuJ3RcbiAqIGFscmVhZHkgZXhpc3QuXG4gKi9cbmZ1bmN0aW9uIHNldCAodGFyZ2V0LCBrZXksIHZhbCkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJlxuICAgIChpc1VuZGVmKHRhcmdldCkgfHwgaXNQcmltaXRpdmUodGFyZ2V0KSlcbiAgKSB7XG4gICAgd2FybigoXCJDYW5ub3Qgc2V0IHJlYWN0aXZlIHByb3BlcnR5IG9uIHVuZGVmaW5lZCwgbnVsbCwgb3IgcHJpbWl0aXZlIHZhbHVlOiBcIiArICgodGFyZ2V0KSkpKTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheSh0YXJnZXQpICYmIGlzVmFsaWRBcnJheUluZGV4KGtleSkpIHtcbiAgICB0YXJnZXQubGVuZ3RoID0gTWF0aC5tYXgodGFyZ2V0Lmxlbmd0aCwga2V5KTtcbiAgICB0YXJnZXQuc3BsaWNlKGtleSwgMSwgdmFsKTtcbiAgICByZXR1cm4gdmFsXG4gIH1cbiAgaWYgKGtleSBpbiB0YXJnZXQgJiYgIShrZXkgaW4gT2JqZWN0LnByb3RvdHlwZSkpIHtcbiAgICB0YXJnZXRba2V5XSA9IHZhbDtcbiAgICByZXR1cm4gdmFsXG4gIH1cbiAgdmFyIG9iID0gKHRhcmdldCkuX19vYl9fO1xuICBpZiAodGFyZ2V0Ll9pc1Z1ZSB8fCAob2IgJiYgb2Iudm1Db3VudCkpIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICAnQXZvaWQgYWRkaW5nIHJlYWN0aXZlIHByb3BlcnRpZXMgdG8gYSBWdWUgaW5zdGFuY2Ugb3IgaXRzIHJvb3QgJGRhdGEgJyArXG4gICAgICAnYXQgcnVudGltZSAtIGRlY2xhcmUgaXQgdXBmcm9udCBpbiB0aGUgZGF0YSBvcHRpb24uJ1xuICAgICk7XG4gICAgcmV0dXJuIHZhbFxuICB9XG4gIGlmICghb2IpIHtcbiAgICB0YXJnZXRba2V5XSA9IHZhbDtcbiAgICByZXR1cm4gdmFsXG4gIH1cbiAgZGVmaW5lUmVhY3RpdmUkJDEob2IudmFsdWUsIGtleSwgdmFsKTtcbiAgb2IuZGVwLm5vdGlmeSgpO1xuICByZXR1cm4gdmFsXG59XG5cbi8qKlxuICogRGVsZXRlIGEgcHJvcGVydHkgYW5kIHRyaWdnZXIgY2hhbmdlIGlmIG5lY2Vzc2FyeS5cbiAqL1xuZnVuY3Rpb24gZGVsICh0YXJnZXQsIGtleSkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJlxuICAgIChpc1VuZGVmKHRhcmdldCkgfHwgaXNQcmltaXRpdmUodGFyZ2V0KSlcbiAgKSB7XG4gICAgd2FybigoXCJDYW5ub3QgZGVsZXRlIHJlYWN0aXZlIHByb3BlcnR5IG9uIHVuZGVmaW5lZCwgbnVsbCwgb3IgcHJpbWl0aXZlIHZhbHVlOiBcIiArICgodGFyZ2V0KSkpKTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheSh0YXJnZXQpICYmIGlzVmFsaWRBcnJheUluZGV4KGtleSkpIHtcbiAgICB0YXJnZXQuc3BsaWNlKGtleSwgMSk7XG4gICAgcmV0dXJuXG4gIH1cbiAgdmFyIG9iID0gKHRhcmdldCkuX19vYl9fO1xuICBpZiAodGFyZ2V0Ll9pc1Z1ZSB8fCAob2IgJiYgb2Iudm1Db3VudCkpIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICAnQXZvaWQgZGVsZXRpbmcgcHJvcGVydGllcyBvbiBhIFZ1ZSBpbnN0YW5jZSBvciBpdHMgcm9vdCAkZGF0YSAnICtcbiAgICAgICctIGp1c3Qgc2V0IGl0IHRvIG51bGwuJ1xuICAgICk7XG4gICAgcmV0dXJuXG4gIH1cbiAgaWYgKCFoYXNPd24odGFyZ2V0LCBrZXkpKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgZGVsZXRlIHRhcmdldFtrZXldO1xuICBpZiAoIW9iKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgb2IuZGVwLm5vdGlmeSgpO1xufVxuXG4vKipcbiAqIENvbGxlY3QgZGVwZW5kZW5jaWVzIG9uIGFycmF5IGVsZW1lbnRzIHdoZW4gdGhlIGFycmF5IGlzIHRvdWNoZWQsIHNpbmNlXG4gKiB3ZSBjYW5ub3QgaW50ZXJjZXB0IGFycmF5IGVsZW1lbnQgYWNjZXNzIGxpa2UgcHJvcGVydHkgZ2V0dGVycy5cbiAqL1xuZnVuY3Rpb24gZGVwZW5kQXJyYXkgKHZhbHVlKSB7XG4gIGZvciAodmFyIGUgPSAodm9pZCAwKSwgaSA9IDAsIGwgPSB2YWx1ZS5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBlID0gdmFsdWVbaV07XG4gICAgZSAmJiBlLl9fb2JfXyAmJiBlLl9fb2JfXy5kZXAuZGVwZW5kKCk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZSkpIHtcbiAgICAgIGRlcGVuZEFycmF5KGUpO1xuICAgIH1cbiAgfVxufVxuXG4vKiAgKi9cblxuLyoqXG4gKiBPcHRpb24gb3ZlcndyaXRpbmcgc3RyYXRlZ2llcyBhcmUgZnVuY3Rpb25zIHRoYXQgaGFuZGxlXG4gKiBob3cgdG8gbWVyZ2UgYSBwYXJlbnQgb3B0aW9uIHZhbHVlIGFuZCBhIGNoaWxkIG9wdGlvblxuICogdmFsdWUgaW50byB0aGUgZmluYWwgdmFsdWUuXG4gKi9cbnZhciBzdHJhdHMgPSBjb25maWcub3B0aW9uTWVyZ2VTdHJhdGVnaWVzO1xuXG4vKipcbiAqIE9wdGlvbnMgd2l0aCByZXN0cmljdGlvbnNcbiAqL1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgc3RyYXRzLmVsID0gc3RyYXRzLnByb3BzRGF0YSA9IGZ1bmN0aW9uIChwYXJlbnQsIGNoaWxkLCB2bSwga2V5KSB7XG4gICAgaWYgKCF2bSkge1xuICAgICAgd2FybihcbiAgICAgICAgXCJvcHRpb24gXFxcIlwiICsga2V5ICsgXCJcXFwiIGNhbiBvbmx5IGJlIHVzZWQgZHVyaW5nIGluc3RhbmNlIFwiICtcbiAgICAgICAgJ2NyZWF0aW9uIHdpdGggdGhlIGBuZXdgIGtleXdvcmQuJ1xuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGRlZmF1bHRTdHJhdChwYXJlbnQsIGNoaWxkKVxuICB9O1xufVxuXG4vKipcbiAqIEhlbHBlciB0aGF0IHJlY3Vyc2l2ZWx5IG1lcmdlcyB0d28gZGF0YSBvYmplY3RzIHRvZ2V0aGVyLlxuICovXG5mdW5jdGlvbiBtZXJnZURhdGEgKHRvLCBmcm9tKSB7XG4gIGlmICghZnJvbSkgeyByZXR1cm4gdG8gfVxuICB2YXIga2V5LCB0b1ZhbCwgZnJvbVZhbDtcblxuICB2YXIga2V5cyA9IGhhc1N5bWJvbFxuICAgID8gUmVmbGVjdC5vd25LZXlzKGZyb20pXG4gICAgOiBPYmplY3Qua2V5cyhmcm9tKTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICBrZXkgPSBrZXlzW2ldO1xuICAgIC8vIGluIGNhc2UgdGhlIG9iamVjdCBpcyBhbHJlYWR5IG9ic2VydmVkLi4uXG4gICAgaWYgKGtleSA9PT0gJ19fb2JfXycpIHsgY29udGludWUgfVxuICAgIHRvVmFsID0gdG9ba2V5XTtcbiAgICBmcm9tVmFsID0gZnJvbVtrZXldO1xuICAgIGlmICghaGFzT3duKHRvLCBrZXkpKSB7XG4gICAgICBzZXQodG8sIGtleSwgZnJvbVZhbCk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRvVmFsICE9PSBmcm9tVmFsICYmXG4gICAgICBpc1BsYWluT2JqZWN0KHRvVmFsKSAmJlxuICAgICAgaXNQbGFpbk9iamVjdChmcm9tVmFsKVxuICAgICkge1xuICAgICAgbWVyZ2VEYXRhKHRvVmFsLCBmcm9tVmFsKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRvXG59XG5cbi8qKlxuICogRGF0YVxuICovXG5mdW5jdGlvbiBtZXJnZURhdGFPckZuIChcbiAgcGFyZW50VmFsLFxuICBjaGlsZFZhbCxcbiAgdm1cbikge1xuICBpZiAoIXZtKSB7XG4gICAgLy8gaW4gYSBWdWUuZXh0ZW5kIG1lcmdlLCBib3RoIHNob3VsZCBiZSBmdW5jdGlvbnNcbiAgICBpZiAoIWNoaWxkVmFsKSB7XG4gICAgICByZXR1cm4gcGFyZW50VmFsXG4gICAgfVxuICAgIGlmICghcGFyZW50VmFsKSB7XG4gICAgICByZXR1cm4gY2hpbGRWYWxcbiAgICB9XG4gICAgLy8gd2hlbiBwYXJlbnRWYWwgJiBjaGlsZFZhbCBhcmUgYm90aCBwcmVzZW50LFxuICAgIC8vIHdlIG5lZWQgdG8gcmV0dXJuIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZVxuICAgIC8vIG1lcmdlZCByZXN1bHQgb2YgYm90aCBmdW5jdGlvbnMuLi4gbm8gbmVlZCB0b1xuICAgIC8vIGNoZWNrIGlmIHBhcmVudFZhbCBpcyBhIGZ1bmN0aW9uIGhlcmUgYmVjYXVzZVxuICAgIC8vIGl0IGhhcyB0byBiZSBhIGZ1bmN0aW9uIHRvIHBhc3MgcHJldmlvdXMgbWVyZ2VzLlxuICAgIHJldHVybiBmdW5jdGlvbiBtZXJnZWREYXRhRm4gKCkge1xuICAgICAgcmV0dXJuIG1lcmdlRGF0YShcbiAgICAgICAgdHlwZW9mIGNoaWxkVmFsID09PSAnZnVuY3Rpb24nID8gY2hpbGRWYWwuY2FsbCh0aGlzLCB0aGlzKSA6IGNoaWxkVmFsLFxuICAgICAgICB0eXBlb2YgcGFyZW50VmFsID09PSAnZnVuY3Rpb24nID8gcGFyZW50VmFsLmNhbGwodGhpcywgdGhpcykgOiBwYXJlbnRWYWxcbiAgICAgIClcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIG1lcmdlZEluc3RhbmNlRGF0YUZuICgpIHtcbiAgICAgIC8vIGluc3RhbmNlIG1lcmdlXG4gICAgICB2YXIgaW5zdGFuY2VEYXRhID0gdHlwZW9mIGNoaWxkVmFsID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gY2hpbGRWYWwuY2FsbCh2bSwgdm0pXG4gICAgICAgIDogY2hpbGRWYWw7XG4gICAgICB2YXIgZGVmYXVsdERhdGEgPSB0eXBlb2YgcGFyZW50VmFsID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gcGFyZW50VmFsLmNhbGwodm0sIHZtKVxuICAgICAgICA6IHBhcmVudFZhbDtcbiAgICAgIGlmIChpbnN0YW5jZURhdGEpIHtcbiAgICAgICAgcmV0dXJuIG1lcmdlRGF0YShpbnN0YW5jZURhdGEsIGRlZmF1bHREYXRhKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHREYXRhXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnN0cmF0cy5kYXRhID0gZnVuY3Rpb24gKFxuICBwYXJlbnRWYWwsXG4gIGNoaWxkVmFsLFxuICB2bVxuKSB7XG4gIGlmICghdm0pIHtcbiAgICBpZiAoY2hpbGRWYWwgJiYgdHlwZW9mIGNoaWxkVmFsICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICAgICdUaGUgXCJkYXRhXCIgb3B0aW9uIHNob3VsZCBiZSBhIGZ1bmN0aW9uICcgK1xuICAgICAgICAndGhhdCByZXR1cm5zIGEgcGVyLWluc3RhbmNlIHZhbHVlIGluIGNvbXBvbmVudCAnICtcbiAgICAgICAgJ2RlZmluaXRpb25zLicsXG4gICAgICAgIHZtXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gcGFyZW50VmFsXG4gICAgfVxuICAgIHJldHVybiBtZXJnZURhdGFPckZuKHBhcmVudFZhbCwgY2hpbGRWYWwpXG4gIH1cblxuICByZXR1cm4gbWVyZ2VEYXRhT3JGbihwYXJlbnRWYWwsIGNoaWxkVmFsLCB2bSlcbn07XG5cbi8qKlxuICogSG9va3MgYW5kIHByb3BzIGFyZSBtZXJnZWQgYXMgYXJyYXlzLlxuICovXG5mdW5jdGlvbiBtZXJnZUhvb2sgKFxuICBwYXJlbnRWYWwsXG4gIGNoaWxkVmFsXG4pIHtcbiAgdmFyIHJlcyA9IGNoaWxkVmFsXG4gICAgPyBwYXJlbnRWYWxcbiAgICAgID8gcGFyZW50VmFsLmNvbmNhdChjaGlsZFZhbClcbiAgICAgIDogQXJyYXkuaXNBcnJheShjaGlsZFZhbClcbiAgICAgICAgPyBjaGlsZFZhbFxuICAgICAgICA6IFtjaGlsZFZhbF1cbiAgICA6IHBhcmVudFZhbDtcbiAgcmV0dXJuIHJlc1xuICAgID8gZGVkdXBlSG9va3MocmVzKVxuICAgIDogcmVzXG59XG5cbmZ1bmN0aW9uIGRlZHVwZUhvb2tzIChob29rcykge1xuICB2YXIgcmVzID0gW107XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgaG9va3MubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAocmVzLmluZGV4T2YoaG9va3NbaV0pID09PSAtMSkge1xuICAgICAgcmVzLnB1c2goaG9va3NbaV0pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbkxJRkVDWUNMRV9IT09LUy5mb3JFYWNoKGZ1bmN0aW9uIChob29rKSB7XG4gIHN0cmF0c1tob29rXSA9IG1lcmdlSG9vaztcbn0pO1xuXG4vKipcbiAqIEFzc2V0c1xuICpcbiAqIFdoZW4gYSB2bSBpcyBwcmVzZW50IChpbnN0YW5jZSBjcmVhdGlvbiksIHdlIG5lZWQgdG8gZG9cbiAqIGEgdGhyZWUtd2F5IG1lcmdlIGJldHdlZW4gY29uc3RydWN0b3Igb3B0aW9ucywgaW5zdGFuY2VcbiAqIG9wdGlvbnMgYW5kIHBhcmVudCBvcHRpb25zLlxuICovXG5mdW5jdGlvbiBtZXJnZUFzc2V0cyAoXG4gIHBhcmVudFZhbCxcbiAgY2hpbGRWYWwsXG4gIHZtLFxuICBrZXlcbikge1xuICB2YXIgcmVzID0gT2JqZWN0LmNyZWF0ZShwYXJlbnRWYWwgfHwgbnVsbCk7XG4gIGlmIChjaGlsZFZhbCkge1xuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgYXNzZXJ0T2JqZWN0VHlwZShrZXksIGNoaWxkVmFsLCB2bSk7XG4gICAgcmV0dXJuIGV4dGVuZChyZXMsIGNoaWxkVmFsKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiByZXNcbiAgfVxufVxuXG5BU1NFVF9UWVBFUy5mb3JFYWNoKGZ1bmN0aW9uICh0eXBlKSB7XG4gIHN0cmF0c1t0eXBlICsgJ3MnXSA9IG1lcmdlQXNzZXRzO1xufSk7XG5cbi8qKlxuICogV2F0Y2hlcnMuXG4gKlxuICogV2F0Y2hlcnMgaGFzaGVzIHNob3VsZCBub3Qgb3ZlcndyaXRlIG9uZVxuICogYW5vdGhlciwgc28gd2UgbWVyZ2UgdGhlbSBhcyBhcnJheXMuXG4gKi9cbnN0cmF0cy53YXRjaCA9IGZ1bmN0aW9uIChcbiAgcGFyZW50VmFsLFxuICBjaGlsZFZhbCxcbiAgdm0sXG4gIGtleVxuKSB7XG4gIC8vIHdvcmsgYXJvdW5kIEZpcmVmb3gncyBPYmplY3QucHJvdG90eXBlLndhdGNoLi4uXG4gIGlmIChwYXJlbnRWYWwgPT09IG5hdGl2ZVdhdGNoKSB7IHBhcmVudFZhbCA9IHVuZGVmaW5lZDsgfVxuICBpZiAoY2hpbGRWYWwgPT09IG5hdGl2ZVdhdGNoKSB7IGNoaWxkVmFsID0gdW5kZWZpbmVkOyB9XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoIWNoaWxkVmFsKSB7IHJldHVybiBPYmplY3QuY3JlYXRlKHBhcmVudFZhbCB8fCBudWxsKSB9XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgYXNzZXJ0T2JqZWN0VHlwZShrZXksIGNoaWxkVmFsLCB2bSk7XG4gIH1cbiAgaWYgKCFwYXJlbnRWYWwpIHsgcmV0dXJuIGNoaWxkVmFsIH1cbiAgdmFyIHJldCA9IHt9O1xuICBleHRlbmQocmV0LCBwYXJlbnRWYWwpO1xuICBmb3IgKHZhciBrZXkkMSBpbiBjaGlsZFZhbCkge1xuICAgIHZhciBwYXJlbnQgPSByZXRba2V5JDFdO1xuICAgIHZhciBjaGlsZCA9IGNoaWxkVmFsW2tleSQxXTtcbiAgICBpZiAocGFyZW50ICYmICFBcnJheS5pc0FycmF5KHBhcmVudCkpIHtcbiAgICAgIHBhcmVudCA9IFtwYXJlbnRdO1xuICAgIH1cbiAgICByZXRba2V5JDFdID0gcGFyZW50XG4gICAgICA/IHBhcmVudC5jb25jYXQoY2hpbGQpXG4gICAgICA6IEFycmF5LmlzQXJyYXkoY2hpbGQpID8gY2hpbGQgOiBbY2hpbGRdO1xuICB9XG4gIHJldHVybiByZXRcbn07XG5cbi8qKlxuICogT3RoZXIgb2JqZWN0IGhhc2hlcy5cbiAqL1xuc3RyYXRzLnByb3BzID1cbnN0cmF0cy5tZXRob2RzID1cbnN0cmF0cy5pbmplY3QgPVxuc3RyYXRzLmNvbXB1dGVkID0gZnVuY3Rpb24gKFxuICBwYXJlbnRWYWwsXG4gIGNoaWxkVmFsLFxuICB2bSxcbiAga2V5XG4pIHtcbiAgaWYgKGNoaWxkVmFsICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBhc3NlcnRPYmplY3RUeXBlKGtleSwgY2hpbGRWYWwsIHZtKTtcbiAgfVxuICBpZiAoIXBhcmVudFZhbCkgeyByZXR1cm4gY2hpbGRWYWwgfVxuICB2YXIgcmV0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgZXh0ZW5kKHJldCwgcGFyZW50VmFsKTtcbiAgaWYgKGNoaWxkVmFsKSB7IGV4dGVuZChyZXQsIGNoaWxkVmFsKTsgfVxuICByZXR1cm4gcmV0XG59O1xuc3RyYXRzLnByb3ZpZGUgPSBtZXJnZURhdGFPckZuO1xuXG4vKipcbiAqIERlZmF1bHQgc3RyYXRlZ3kuXG4gKi9cbnZhciBkZWZhdWx0U3RyYXQgPSBmdW5jdGlvbiAocGFyZW50VmFsLCBjaGlsZFZhbCkge1xuICByZXR1cm4gY2hpbGRWYWwgPT09IHVuZGVmaW5lZFxuICAgID8gcGFyZW50VmFsXG4gICAgOiBjaGlsZFZhbFxufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSBjb21wb25lbnQgbmFtZXNcbiAqL1xuZnVuY3Rpb24gY2hlY2tDb21wb25lbnRzIChvcHRpb25zKSB7XG4gIGZvciAodmFyIGtleSBpbiBvcHRpb25zLmNvbXBvbmVudHMpIHtcbiAgICB2YWxpZGF0ZUNvbXBvbmVudE5hbWUoa2V5KTtcbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZUNvbXBvbmVudE5hbWUgKG5hbWUpIHtcbiAgaWYgKCFuZXcgUmVnRXhwKChcIl5bYS16QS1aXVtcXFxcLVxcXFwuMC05X1wiICsgKHVuaWNvZGVSZWdFeHAuc291cmNlKSArIFwiXSokXCIpKS50ZXN0KG5hbWUpKSB7XG4gICAgd2FybihcbiAgICAgICdJbnZhbGlkIGNvbXBvbmVudCBuYW1lOiBcIicgKyBuYW1lICsgJ1wiLiBDb21wb25lbnQgbmFtZXMgJyArXG4gICAgICAnc2hvdWxkIGNvbmZvcm0gdG8gdmFsaWQgY3VzdG9tIGVsZW1lbnQgbmFtZSBpbiBodG1sNSBzcGVjaWZpY2F0aW9uLidcbiAgICApO1xuICB9XG4gIGlmIChpc0J1aWx0SW5UYWcobmFtZSkgfHwgY29uZmlnLmlzUmVzZXJ2ZWRUYWcobmFtZSkpIHtcbiAgICB3YXJuKFxuICAgICAgJ0RvIG5vdCB1c2UgYnVpbHQtaW4gb3IgcmVzZXJ2ZWQgSFRNTCBlbGVtZW50cyBhcyBjb21wb25lbnQgJyArXG4gICAgICAnaWQ6ICcgKyBuYW1lXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIEVuc3VyZSBhbGwgcHJvcHMgb3B0aW9uIHN5bnRheCBhcmUgbm9ybWFsaXplZCBpbnRvIHRoZVxuICogT2JqZWN0LWJhc2VkIGZvcm1hdC5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplUHJvcHMgKG9wdGlvbnMsIHZtKSB7XG4gIHZhciBwcm9wcyA9IG9wdGlvbnMucHJvcHM7XG4gIGlmICghcHJvcHMpIHsgcmV0dXJuIH1cbiAgdmFyIHJlcyA9IHt9O1xuICB2YXIgaSwgdmFsLCBuYW1lO1xuICBpZiAoQXJyYXkuaXNBcnJheShwcm9wcykpIHtcbiAgICBpID0gcHJvcHMubGVuZ3RoO1xuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgIHZhbCA9IHByb3BzW2ldO1xuICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG5hbWUgPSBjYW1lbGl6ZSh2YWwpO1xuICAgICAgICByZXNbbmFtZV0gPSB7IHR5cGU6IG51bGwgfTtcbiAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB3YXJuKCdwcm9wcyBtdXN0IGJlIHN0cmluZ3Mgd2hlbiB1c2luZyBhcnJheSBzeW50YXguJyk7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2UgaWYgKGlzUGxhaW5PYmplY3QocHJvcHMpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIHByb3BzKSB7XG4gICAgICB2YWwgPSBwcm9wc1trZXldO1xuICAgICAgbmFtZSA9IGNhbWVsaXplKGtleSk7XG4gICAgICByZXNbbmFtZV0gPSBpc1BsYWluT2JqZWN0KHZhbClcbiAgICAgICAgPyB2YWxcbiAgICAgICAgOiB7IHR5cGU6IHZhbCB9O1xuICAgIH1cbiAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgd2FybihcbiAgICAgIFwiSW52YWxpZCB2YWx1ZSBmb3Igb3B0aW9uIFxcXCJwcm9wc1xcXCI6IGV4cGVjdGVkIGFuIEFycmF5IG9yIGFuIE9iamVjdCwgXCIgK1xuICAgICAgXCJidXQgZ290IFwiICsgKHRvUmF3VHlwZShwcm9wcykpICsgXCIuXCIsXG4gICAgICB2bVxuICAgICk7XG4gIH1cbiAgb3B0aW9ucy5wcm9wcyA9IHJlcztcbn1cblxuLyoqXG4gKiBOb3JtYWxpemUgYWxsIGluamVjdGlvbnMgaW50byBPYmplY3QtYmFzZWQgZm9ybWF0XG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZUluamVjdCAob3B0aW9ucywgdm0pIHtcbiAgdmFyIGluamVjdCA9IG9wdGlvbnMuaW5qZWN0O1xuICBpZiAoIWluamVjdCkgeyByZXR1cm4gfVxuICB2YXIgbm9ybWFsaXplZCA9IG9wdGlvbnMuaW5qZWN0ID0ge307XG4gIGlmIChBcnJheS5pc0FycmF5KGluamVjdCkpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGluamVjdC5sZW5ndGg7IGkrKykge1xuICAgICAgbm9ybWFsaXplZFtpbmplY3RbaV1dID0geyBmcm9tOiBpbmplY3RbaV0gfTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNQbGFpbk9iamVjdChpbmplY3QpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIGluamVjdCkge1xuICAgICAgdmFyIHZhbCA9IGluamVjdFtrZXldO1xuICAgICAgbm9ybWFsaXplZFtrZXldID0gaXNQbGFpbk9iamVjdCh2YWwpXG4gICAgICAgID8gZXh0ZW5kKHsgZnJvbToga2V5IH0sIHZhbClcbiAgICAgICAgOiB7IGZyb206IHZhbCB9O1xuICAgIH1cbiAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgd2FybihcbiAgICAgIFwiSW52YWxpZCB2YWx1ZSBmb3Igb3B0aW9uIFxcXCJpbmplY3RcXFwiOiBleHBlY3RlZCBhbiBBcnJheSBvciBhbiBPYmplY3QsIFwiICtcbiAgICAgIFwiYnV0IGdvdCBcIiArICh0b1Jhd1R5cGUoaW5qZWN0KSkgKyBcIi5cIixcbiAgICAgIHZtXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIE5vcm1hbGl6ZSByYXcgZnVuY3Rpb24gZGlyZWN0aXZlcyBpbnRvIG9iamVjdCBmb3JtYXQuXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZURpcmVjdGl2ZXMgKG9wdGlvbnMpIHtcbiAgdmFyIGRpcnMgPSBvcHRpb25zLmRpcmVjdGl2ZXM7XG4gIGlmIChkaXJzKSB7XG4gICAgZm9yICh2YXIga2V5IGluIGRpcnMpIHtcbiAgICAgIHZhciBkZWYkJDEgPSBkaXJzW2tleV07XG4gICAgICBpZiAodHlwZW9mIGRlZiQkMSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBkaXJzW2tleV0gPSB7IGJpbmQ6IGRlZiQkMSwgdXBkYXRlOiBkZWYkJDEgfTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYXNzZXJ0T2JqZWN0VHlwZSAobmFtZSwgdmFsdWUsIHZtKSB7XG4gIGlmICghaXNQbGFpbk9iamVjdCh2YWx1ZSkpIHtcbiAgICB3YXJuKFxuICAgICAgXCJJbnZhbGlkIHZhbHVlIGZvciBvcHRpb24gXFxcIlwiICsgbmFtZSArIFwiXFxcIjogZXhwZWN0ZWQgYW4gT2JqZWN0LCBcIiArXG4gICAgICBcImJ1dCBnb3QgXCIgKyAodG9SYXdUeXBlKHZhbHVlKSkgKyBcIi5cIixcbiAgICAgIHZtXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIE1lcmdlIHR3byBvcHRpb24gb2JqZWN0cyBpbnRvIGEgbmV3IG9uZS5cbiAqIENvcmUgdXRpbGl0eSB1c2VkIGluIGJvdGggaW5zdGFudGlhdGlvbiBhbmQgaW5oZXJpdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIG1lcmdlT3B0aW9ucyAoXG4gIHBhcmVudCxcbiAgY2hpbGQsXG4gIHZtXG4pIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBjaGVja0NvbXBvbmVudHMoY2hpbGQpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBjaGlsZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNoaWxkID0gY2hpbGQub3B0aW9ucztcbiAgfVxuXG4gIG5vcm1hbGl6ZVByb3BzKGNoaWxkLCB2bSk7XG4gIG5vcm1hbGl6ZUluamVjdChjaGlsZCwgdm0pO1xuICBub3JtYWxpemVEaXJlY3RpdmVzKGNoaWxkKTtcblxuICAvLyBBcHBseSBleHRlbmRzIGFuZCBtaXhpbnMgb24gdGhlIGNoaWxkIG9wdGlvbnMsXG4gIC8vIGJ1dCBvbmx5IGlmIGl0IGlzIGEgcmF3IG9wdGlvbnMgb2JqZWN0IHRoYXQgaXNuJ3RcbiAgLy8gdGhlIHJlc3VsdCBvZiBhbm90aGVyIG1lcmdlT3B0aW9ucyBjYWxsLlxuICAvLyBPbmx5IG1lcmdlZCBvcHRpb25zIGhhcyB0aGUgX2Jhc2UgcHJvcGVydHkuXG4gIGlmICghY2hpbGQuX2Jhc2UpIHtcbiAgICBpZiAoY2hpbGQuZXh0ZW5kcykge1xuICAgICAgcGFyZW50ID0gbWVyZ2VPcHRpb25zKHBhcmVudCwgY2hpbGQuZXh0ZW5kcywgdm0pO1xuICAgIH1cbiAgICBpZiAoY2hpbGQubWl4aW5zKSB7XG4gICAgICBmb3IgKHZhciBpID0gMCwgbCA9IGNoaWxkLm1peGlucy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgcGFyZW50ID0gbWVyZ2VPcHRpb25zKHBhcmVudCwgY2hpbGQubWl4aW5zW2ldLCB2bSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIG9wdGlvbnMgPSB7fTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gcGFyZW50KSB7XG4gICAgbWVyZ2VGaWVsZChrZXkpO1xuICB9XG4gIGZvciAoa2V5IGluIGNoaWxkKSB7XG4gICAgaWYgKCFoYXNPd24ocGFyZW50LCBrZXkpKSB7XG4gICAgICBtZXJnZUZpZWxkKGtleSk7XG4gICAgfVxuICB9XG4gIGZ1bmN0aW9uIG1lcmdlRmllbGQgKGtleSkge1xuICAgIHZhciBzdHJhdCA9IHN0cmF0c1trZXldIHx8IGRlZmF1bHRTdHJhdDtcbiAgICBvcHRpb25zW2tleV0gPSBzdHJhdChwYXJlbnRba2V5XSwgY2hpbGRba2V5XSwgdm0sIGtleSk7XG4gIH1cbiAgcmV0dXJuIG9wdGlvbnNcbn1cblxuLyoqXG4gKiBSZXNvbHZlIGFuIGFzc2V0LlxuICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGJlY2F1c2UgY2hpbGQgaW5zdGFuY2VzIG5lZWQgYWNjZXNzXG4gKiB0byBhc3NldHMgZGVmaW5lZCBpbiBpdHMgYW5jZXN0b3IgY2hhaW4uXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVBc3NldCAoXG4gIG9wdGlvbnMsXG4gIHR5cGUsXG4gIGlkLFxuICB3YXJuTWlzc2luZ1xuKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAodHlwZW9mIGlkICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVyblxuICB9XG4gIHZhciBhc3NldHMgPSBvcHRpb25zW3R5cGVdO1xuICAvLyBjaGVjayBsb2NhbCByZWdpc3RyYXRpb24gdmFyaWF0aW9ucyBmaXJzdFxuICBpZiAoaGFzT3duKGFzc2V0cywgaWQpKSB7IHJldHVybiBhc3NldHNbaWRdIH1cbiAgdmFyIGNhbWVsaXplZElkID0gY2FtZWxpemUoaWQpO1xuICBpZiAoaGFzT3duKGFzc2V0cywgY2FtZWxpemVkSWQpKSB7IHJldHVybiBhc3NldHNbY2FtZWxpemVkSWRdIH1cbiAgdmFyIFBhc2NhbENhc2VJZCA9IGNhcGl0YWxpemUoY2FtZWxpemVkSWQpO1xuICBpZiAoaGFzT3duKGFzc2V0cywgUGFzY2FsQ2FzZUlkKSkgeyByZXR1cm4gYXNzZXRzW1Bhc2NhbENhc2VJZF0gfVxuICAvLyBmYWxsYmFjayB0byBwcm90b3R5cGUgY2hhaW5cbiAgdmFyIHJlcyA9IGFzc2V0c1tpZF0gfHwgYXNzZXRzW2NhbWVsaXplZElkXSB8fCBhc3NldHNbUGFzY2FsQ2FzZUlkXTtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgd2Fybk1pc3NpbmcgJiYgIXJlcykge1xuICAgIHdhcm4oXG4gICAgICAnRmFpbGVkIHRvIHJlc29sdmUgJyArIHR5cGUuc2xpY2UoMCwgLTEpICsgJzogJyArIGlkLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG4vKiAgKi9cblxuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlUHJvcCAoXG4gIGtleSxcbiAgcHJvcE9wdGlvbnMsXG4gIHByb3BzRGF0YSxcbiAgdm1cbikge1xuICB2YXIgcHJvcCA9IHByb3BPcHRpb25zW2tleV07XG4gIHZhciBhYnNlbnQgPSAhaGFzT3duKHByb3BzRGF0YSwga2V5KTtcbiAgdmFyIHZhbHVlID0gcHJvcHNEYXRhW2tleV07XG4gIC8vIGJvb2xlYW4gY2FzdGluZ1xuICB2YXIgYm9vbGVhbkluZGV4ID0gZ2V0VHlwZUluZGV4KEJvb2xlYW4sIHByb3AudHlwZSk7XG4gIGlmIChib29sZWFuSW5kZXggPiAtMSkge1xuICAgIGlmIChhYnNlbnQgJiYgIWhhc093bihwcm9wLCAnZGVmYXVsdCcpKSB7XG4gICAgICB2YWx1ZSA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPT09ICcnIHx8IHZhbHVlID09PSBoeXBoZW5hdGUoa2V5KSkge1xuICAgICAgLy8gb25seSBjYXN0IGVtcHR5IHN0cmluZyAvIHNhbWUgbmFtZSB0byBib29sZWFuIGlmXG4gICAgICAvLyBib29sZWFuIGhhcyBoaWdoZXIgcHJpb3JpdHlcbiAgICAgIHZhciBzdHJpbmdJbmRleCA9IGdldFR5cGVJbmRleChTdHJpbmcsIHByb3AudHlwZSk7XG4gICAgICBpZiAoc3RyaW5nSW5kZXggPCAwIHx8IGJvb2xlYW5JbmRleCA8IHN0cmluZ0luZGV4KSB7XG4gICAgICAgIHZhbHVlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gY2hlY2sgZGVmYXVsdCB2YWx1ZVxuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIHZhbHVlID0gZ2V0UHJvcERlZmF1bHRWYWx1ZSh2bSwgcHJvcCwga2V5KTtcbiAgICAvLyBzaW5jZSB0aGUgZGVmYXVsdCB2YWx1ZSBpcyBhIGZyZXNoIGNvcHksXG4gICAgLy8gbWFrZSBzdXJlIHRvIG9ic2VydmUgaXQuXG4gICAgdmFyIHByZXZTaG91bGRPYnNlcnZlID0gc2hvdWxkT2JzZXJ2ZTtcbiAgICB0b2dnbGVPYnNlcnZpbmcodHJ1ZSk7XG4gICAgb2JzZXJ2ZSh2YWx1ZSk7XG4gICAgdG9nZ2xlT2JzZXJ2aW5nKHByZXZTaG91bGRPYnNlcnZlKTtcbiAgfVxuICBpZiAoXG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJlxuICAgIC8vIHNraXAgdmFsaWRhdGlvbiBmb3Igd2VleCByZWN5Y2xlLWxpc3QgY2hpbGQgY29tcG9uZW50IHByb3BzXG4gICAgIShmYWxzZSlcbiAgKSB7XG4gICAgYXNzZXJ0UHJvcChwcm9wLCBrZXksIHZhbHVlLCB2bSwgYWJzZW50KTtcbiAgfVxuICByZXR1cm4gdmFsdWVcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGRlZmF1bHQgdmFsdWUgb2YgYSBwcm9wLlxuICovXG5mdW5jdGlvbiBnZXRQcm9wRGVmYXVsdFZhbHVlICh2bSwgcHJvcCwga2V5KSB7XG4gIC8vIG5vIGRlZmF1bHQsIHJldHVybiB1bmRlZmluZWRcbiAgaWYgKCFoYXNPd24ocHJvcCwgJ2RlZmF1bHQnKSkge1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuICB2YXIgZGVmID0gcHJvcC5kZWZhdWx0O1xuICAvLyB3YXJuIGFnYWluc3Qgbm9uLWZhY3RvcnkgZGVmYXVsdHMgZm9yIE9iamVjdCAmIEFycmF5XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGlzT2JqZWN0KGRlZikpIHtcbiAgICB3YXJuKFxuICAgICAgJ0ludmFsaWQgZGVmYXVsdCB2YWx1ZSBmb3IgcHJvcCBcIicgKyBrZXkgKyAnXCI6ICcgK1xuICAgICAgJ1Byb3BzIHdpdGggdHlwZSBPYmplY3QvQXJyYXkgbXVzdCB1c2UgYSBmYWN0b3J5IGZ1bmN0aW9uICcgK1xuICAgICAgJ3RvIHJldHVybiB0aGUgZGVmYXVsdCB2YWx1ZS4nLFxuICAgICAgdm1cbiAgICApO1xuICB9XG4gIC8vIHRoZSByYXcgcHJvcCB2YWx1ZSB3YXMgYWxzbyB1bmRlZmluZWQgZnJvbSBwcmV2aW91cyByZW5kZXIsXG4gIC8vIHJldHVybiBwcmV2aW91cyBkZWZhdWx0IHZhbHVlIHRvIGF2b2lkIHVubmVjZXNzYXJ5IHdhdGNoZXIgdHJpZ2dlclxuICBpZiAodm0gJiYgdm0uJG9wdGlvbnMucHJvcHNEYXRhICYmXG4gICAgdm0uJG9wdGlvbnMucHJvcHNEYXRhW2tleV0gPT09IHVuZGVmaW5lZCAmJlxuICAgIHZtLl9wcm9wc1trZXldICE9PSB1bmRlZmluZWRcbiAgKSB7XG4gICAgcmV0dXJuIHZtLl9wcm9wc1trZXldXG4gIH1cbiAgLy8gY2FsbCBmYWN0b3J5IGZ1bmN0aW9uIGZvciBub24tRnVuY3Rpb24gdHlwZXNcbiAgLy8gYSB2YWx1ZSBpcyBGdW5jdGlvbiBpZiBpdHMgcHJvdG90eXBlIGlzIGZ1bmN0aW9uIGV2ZW4gYWNyb3NzIGRpZmZlcmVudCBleGVjdXRpb24gY29udGV4dFxuICByZXR1cm4gdHlwZW9mIGRlZiA9PT0gJ2Z1bmN0aW9uJyAmJiBnZXRUeXBlKHByb3AudHlwZSkgIT09ICdGdW5jdGlvbidcbiAgICA/IGRlZi5jYWxsKHZtKVxuICAgIDogZGVmXG59XG5cbi8qKlxuICogQXNzZXJ0IHdoZXRoZXIgYSBwcm9wIGlzIHZhbGlkLlxuICovXG5mdW5jdGlvbiBhc3NlcnRQcm9wIChcbiAgcHJvcCxcbiAgbmFtZSxcbiAgdmFsdWUsXG4gIHZtLFxuICBhYnNlbnRcbikge1xuICBpZiAocHJvcC5yZXF1aXJlZCAmJiBhYnNlbnQpIHtcbiAgICB3YXJuKFxuICAgICAgJ01pc3NpbmcgcmVxdWlyZWQgcHJvcDogXCInICsgbmFtZSArICdcIicsXG4gICAgICB2bVxuICAgICk7XG4gICAgcmV0dXJuXG4gIH1cbiAgaWYgKHZhbHVlID09IG51bGwgJiYgIXByb3AucmVxdWlyZWQpIHtcbiAgICByZXR1cm5cbiAgfVxuICB2YXIgdHlwZSA9IHByb3AudHlwZTtcbiAgdmFyIHZhbGlkID0gIXR5cGUgfHwgdHlwZSA9PT0gdHJ1ZTtcbiAgdmFyIGV4cGVjdGVkVHlwZXMgPSBbXTtcbiAgaWYgKHR5cGUpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodHlwZSkpIHtcbiAgICAgIHR5cGUgPSBbdHlwZV07XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHlwZS5sZW5ndGggJiYgIXZhbGlkOyBpKyspIHtcbiAgICAgIHZhciBhc3NlcnRlZFR5cGUgPSBhc3NlcnRUeXBlKHZhbHVlLCB0eXBlW2ldLCB2bSk7XG4gICAgICBleHBlY3RlZFR5cGVzLnB1c2goYXNzZXJ0ZWRUeXBlLmV4cGVjdGVkVHlwZSB8fCAnJyk7XG4gICAgICB2YWxpZCA9IGFzc2VydGVkVHlwZS52YWxpZDtcbiAgICB9XG4gIH1cblxuICB2YXIgaGF2ZUV4cGVjdGVkVHlwZXMgPSBleHBlY3RlZFR5cGVzLnNvbWUoZnVuY3Rpb24gKHQpIHsgcmV0dXJuIHQ7IH0pO1xuICBpZiAoIXZhbGlkICYmIGhhdmVFeHBlY3RlZFR5cGVzKSB7XG4gICAgd2FybihcbiAgICAgIGdldEludmFsaWRUeXBlTWVzc2FnZShuYW1lLCB2YWx1ZSwgZXhwZWN0ZWRUeXBlcyksXG4gICAgICB2bVxuICAgICk7XG4gICAgcmV0dXJuXG4gIH1cbiAgdmFyIHZhbGlkYXRvciA9IHByb3AudmFsaWRhdG9yO1xuICBpZiAodmFsaWRhdG9yKSB7XG4gICAgaWYgKCF2YWxpZGF0b3IodmFsdWUpKSB7XG4gICAgICB3YXJuKFxuICAgICAgICAnSW52YWxpZCBwcm9wOiBjdXN0b20gdmFsaWRhdG9yIGNoZWNrIGZhaWxlZCBmb3IgcHJvcCBcIicgKyBuYW1lICsgJ1wiLicsXG4gICAgICAgIHZtXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG52YXIgc2ltcGxlQ2hlY2tSRSA9IC9eKFN0cmluZ3xOdW1iZXJ8Qm9vbGVhbnxGdW5jdGlvbnxTeW1ib2x8QmlnSW50KSQvO1xuXG5mdW5jdGlvbiBhc3NlcnRUeXBlICh2YWx1ZSwgdHlwZSwgdm0pIHtcbiAgdmFyIHZhbGlkO1xuICB2YXIgZXhwZWN0ZWRUeXBlID0gZ2V0VHlwZSh0eXBlKTtcbiAgaWYgKHNpbXBsZUNoZWNrUkUudGVzdChleHBlY3RlZFR5cGUpKSB7XG4gICAgdmFyIHQgPSB0eXBlb2YgdmFsdWU7XG4gICAgdmFsaWQgPSB0ID09PSBleHBlY3RlZFR5cGUudG9Mb3dlckNhc2UoKTtcbiAgICAvLyBmb3IgcHJpbWl0aXZlIHdyYXBwZXIgb2JqZWN0c1xuICAgIGlmICghdmFsaWQgJiYgdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHZhbGlkID0gdmFsdWUgaW5zdGFuY2VvZiB0eXBlO1xuICAgIH1cbiAgfSBlbHNlIGlmIChleHBlY3RlZFR5cGUgPT09ICdPYmplY3QnKSB7XG4gICAgdmFsaWQgPSBpc1BsYWluT2JqZWN0KHZhbHVlKTtcbiAgfSBlbHNlIGlmIChleHBlY3RlZFR5cGUgPT09ICdBcnJheScpIHtcbiAgICB2YWxpZCA9IEFycmF5LmlzQXJyYXkodmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICB2YWxpZCA9IHZhbHVlIGluc3RhbmNlb2YgdHlwZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB3YXJuKCdJbnZhbGlkIHByb3AgdHlwZTogXCInICsgU3RyaW5nKHR5cGUpICsgJ1wiIGlzIG5vdCBhIGNvbnN0cnVjdG9yJywgdm0pO1xuICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB2YWxpZDogdmFsaWQsXG4gICAgZXhwZWN0ZWRUeXBlOiBleHBlY3RlZFR5cGVcbiAgfVxufVxuXG52YXIgZnVuY3Rpb25UeXBlQ2hlY2tSRSA9IC9eXFxzKmZ1bmN0aW9uIChcXHcrKS87XG5cbi8qKlxuICogVXNlIGZ1bmN0aW9uIHN0cmluZyBuYW1lIHRvIGNoZWNrIGJ1aWx0LWluIHR5cGVzLFxuICogYmVjYXVzZSBhIHNpbXBsZSBlcXVhbGl0eSBjaGVjayB3aWxsIGZhaWwgd2hlbiBydW5uaW5nXG4gKiBhY3Jvc3MgZGlmZmVyZW50IHZtcyAvIGlmcmFtZXMuXG4gKi9cbmZ1bmN0aW9uIGdldFR5cGUgKGZuKSB7XG4gIHZhciBtYXRjaCA9IGZuICYmIGZuLnRvU3RyaW5nKCkubWF0Y2goZnVuY3Rpb25UeXBlQ2hlY2tSRSk7XG4gIHJldHVybiBtYXRjaCA/IG1hdGNoWzFdIDogJydcbn1cblxuZnVuY3Rpb24gaXNTYW1lVHlwZSAoYSwgYikge1xuICByZXR1cm4gZ2V0VHlwZShhKSA9PT0gZ2V0VHlwZShiKVxufVxuXG5mdW5jdGlvbiBnZXRUeXBlSW5kZXggKHR5cGUsIGV4cGVjdGVkVHlwZXMpIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KGV4cGVjdGVkVHlwZXMpKSB7XG4gICAgcmV0dXJuIGlzU2FtZVR5cGUoZXhwZWN0ZWRUeXBlcywgdHlwZSkgPyAwIDogLTFcbiAgfVxuICBmb3IgKHZhciBpID0gMCwgbGVuID0gZXhwZWN0ZWRUeXBlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGlmIChpc1NhbWVUeXBlKGV4cGVjdGVkVHlwZXNbaV0sIHR5cGUpKSB7XG4gICAgICByZXR1cm4gaVxuICAgIH1cbiAgfVxuICByZXR1cm4gLTFcbn1cblxuZnVuY3Rpb24gZ2V0SW52YWxpZFR5cGVNZXNzYWdlIChuYW1lLCB2YWx1ZSwgZXhwZWN0ZWRUeXBlcykge1xuICB2YXIgbWVzc2FnZSA9IFwiSW52YWxpZCBwcm9wOiB0eXBlIGNoZWNrIGZhaWxlZCBmb3IgcHJvcCBcXFwiXCIgKyBuYW1lICsgXCJcXFwiLlwiICtcbiAgICBcIiBFeHBlY3RlZCBcIiArIChleHBlY3RlZFR5cGVzLm1hcChjYXBpdGFsaXplKS5qb2luKCcsICcpKTtcbiAgdmFyIGV4cGVjdGVkVHlwZSA9IGV4cGVjdGVkVHlwZXNbMF07XG4gIHZhciByZWNlaXZlZFR5cGUgPSB0b1Jhd1R5cGUodmFsdWUpO1xuICAvLyBjaGVjayBpZiB3ZSBuZWVkIHRvIHNwZWNpZnkgZXhwZWN0ZWQgdmFsdWVcbiAgaWYgKFxuICAgIGV4cGVjdGVkVHlwZXMubGVuZ3RoID09PSAxICYmXG4gICAgaXNFeHBsaWNhYmxlKGV4cGVjdGVkVHlwZSkgJiZcbiAgICBpc0V4cGxpY2FibGUodHlwZW9mIHZhbHVlKSAmJlxuICAgICFpc0Jvb2xlYW4oZXhwZWN0ZWRUeXBlLCByZWNlaXZlZFR5cGUpXG4gICkge1xuICAgIG1lc3NhZ2UgKz0gXCIgd2l0aCB2YWx1ZSBcIiArIChzdHlsZVZhbHVlKHZhbHVlLCBleHBlY3RlZFR5cGUpKTtcbiAgfVxuICBtZXNzYWdlICs9IFwiLCBnb3QgXCIgKyByZWNlaXZlZFR5cGUgKyBcIiBcIjtcbiAgLy8gY2hlY2sgaWYgd2UgbmVlZCB0byBzcGVjaWZ5IHJlY2VpdmVkIHZhbHVlXG4gIGlmIChpc0V4cGxpY2FibGUocmVjZWl2ZWRUeXBlKSkge1xuICAgIG1lc3NhZ2UgKz0gXCJ3aXRoIHZhbHVlIFwiICsgKHN0eWxlVmFsdWUodmFsdWUsIHJlY2VpdmVkVHlwZSkpICsgXCIuXCI7XG4gIH1cbiAgcmV0dXJuIG1lc3NhZ2Vcbn1cblxuZnVuY3Rpb24gc3R5bGVWYWx1ZSAodmFsdWUsIHR5cGUpIHtcbiAgaWYgKHR5cGUgPT09ICdTdHJpbmcnKSB7XG4gICAgcmV0dXJuIChcIlxcXCJcIiArIHZhbHVlICsgXCJcXFwiXCIpXG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ051bWJlcicpIHtcbiAgICByZXR1cm4gKFwiXCIgKyAoTnVtYmVyKHZhbHVlKSkpXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIChcIlwiICsgdmFsdWUpXG4gIH1cbn1cblxudmFyIEVYUExJQ0FCTEVfVFlQRVMgPSBbJ3N0cmluZycsICdudW1iZXInLCAnYm9vbGVhbiddO1xuZnVuY3Rpb24gaXNFeHBsaWNhYmxlICh2YWx1ZSkge1xuICByZXR1cm4gRVhQTElDQUJMRV9UWVBFUy5zb21lKGZ1bmN0aW9uIChlbGVtKSB7IHJldHVybiB2YWx1ZS50b0xvd2VyQ2FzZSgpID09PSBlbGVtOyB9KVxufVxuXG5mdW5jdGlvbiBpc0Jvb2xlYW4gKCkge1xuICB2YXIgYXJncyA9IFtdLCBsZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICB3aGlsZSAoIGxlbi0tICkgYXJnc1sgbGVuIF0gPSBhcmd1bWVudHNbIGxlbiBdO1xuXG4gIHJldHVybiBhcmdzLnNvbWUoZnVuY3Rpb24gKGVsZW0pIHsgcmV0dXJuIGVsZW0udG9Mb3dlckNhc2UoKSA9PT0gJ2Jvb2xlYW4nOyB9KVxufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gaGFuZGxlRXJyb3IgKGVyciwgdm0sIGluZm8pIHtcbiAgLy8gRGVhY3RpdmF0ZSBkZXBzIHRyYWNraW5nIHdoaWxlIHByb2Nlc3NpbmcgZXJyb3IgaGFuZGxlciB0byBhdm9pZCBwb3NzaWJsZSBpbmZpbml0ZSByZW5kZXJpbmcuXG4gIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL3Z1ZWpzL3Z1ZXgvaXNzdWVzLzE1MDVcbiAgcHVzaFRhcmdldCgpO1xuICB0cnkge1xuICAgIGlmICh2bSkge1xuICAgICAgdmFyIGN1ciA9IHZtO1xuICAgICAgd2hpbGUgKChjdXIgPSBjdXIuJHBhcmVudCkpIHtcbiAgICAgICAgdmFyIGhvb2tzID0gY3VyLiRvcHRpb25zLmVycm9yQ2FwdHVyZWQ7XG4gICAgICAgIGlmIChob29rcykge1xuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaG9va3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHZhciBjYXB0dXJlID0gaG9va3NbaV0uY2FsbChjdXIsIGVyciwgdm0sIGluZm8pID09PSBmYWxzZTtcbiAgICAgICAgICAgICAgaWYgKGNhcHR1cmUpIHsgcmV0dXJuIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgZ2xvYmFsSGFuZGxlRXJyb3IoZSwgY3VyLCAnZXJyb3JDYXB0dXJlZCBob29rJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGdsb2JhbEhhbmRsZUVycm9yKGVyciwgdm0sIGluZm8pO1xuICB9IGZpbmFsbHkge1xuICAgIHBvcFRhcmdldCgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGludm9rZVdpdGhFcnJvckhhbmRsaW5nIChcbiAgaGFuZGxlcixcbiAgY29udGV4dCxcbiAgYXJncyxcbiAgdm0sXG4gIGluZm9cbikge1xuICB2YXIgcmVzO1xuICB0cnkge1xuICAgIHJlcyA9IGFyZ3MgPyBoYW5kbGVyLmFwcGx5KGNvbnRleHQsIGFyZ3MpIDogaGFuZGxlci5jYWxsKGNvbnRleHQpO1xuICAgIGlmIChyZXMgJiYgIXJlcy5faXNWdWUgJiYgaXNQcm9taXNlKHJlcykgJiYgIXJlcy5faGFuZGxlZCkge1xuICAgICAgcmVzLmNhdGNoKGZ1bmN0aW9uIChlKSB7IHJldHVybiBoYW5kbGVFcnJvcihlLCB2bSwgaW5mbyArIFwiIChQcm9taXNlL2FzeW5jKVwiKTsgfSk7XG4gICAgICAvLyBpc3N1ZSAjOTUxMVxuICAgICAgLy8gYXZvaWQgY2F0Y2ggdHJpZ2dlcmluZyBtdWx0aXBsZSB0aW1lcyB3aGVuIG5lc3RlZCBjYWxsc1xuICAgICAgcmVzLl9oYW5kbGVkID0gdHJ1ZTtcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBoYW5kbGVFcnJvcihlLCB2bSwgaW5mbyk7XG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG5mdW5jdGlvbiBnbG9iYWxIYW5kbGVFcnJvciAoZXJyLCB2bSwgaW5mbykge1xuICBpZiAoY29uZmlnLmVycm9ySGFuZGxlcikge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gY29uZmlnLmVycm9ySGFuZGxlci5jYWxsKG51bGwsIGVyciwgdm0sIGluZm8pXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gaWYgdGhlIHVzZXIgaW50ZW50aW9uYWxseSB0aHJvd3MgdGhlIG9yaWdpbmFsIGVycm9yIGluIHRoZSBoYW5kbGVyLFxuICAgICAgLy8gZG8gbm90IGxvZyBpdCB0d2ljZVxuICAgICAgaWYgKGUgIT09IGVycikge1xuICAgICAgICBsb2dFcnJvcihlLCBudWxsLCAnY29uZmlnLmVycm9ySGFuZGxlcicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBsb2dFcnJvcihlcnIsIHZtLCBpbmZvKTtcbn1cblxuZnVuY3Rpb24gbG9nRXJyb3IgKGVyciwgdm0sIGluZm8pIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICB3YXJuKChcIkVycm9yIGluIFwiICsgaW5mbyArIFwiOiBcXFwiXCIgKyAoZXJyLnRvU3RyaW5nKCkpICsgXCJcXFwiXCIpLCB2bSk7XG4gIH1cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKChpbkJyb3dzZXIgfHwgaW5XZWV4KSAmJiB0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBjb25zb2xlLmVycm9yKGVycik7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgZXJyXG4gIH1cbn1cblxuLyogICovXG5cbnZhciBpc1VzaW5nTWljcm9UYXNrID0gZmFsc2U7XG5cbnZhciBjYWxsYmFja3MgPSBbXTtcbnZhciBwZW5kaW5nID0gZmFsc2U7XG5cbmZ1bmN0aW9uIGZsdXNoQ2FsbGJhY2tzICgpIHtcbiAgcGVuZGluZyA9IGZhbHNlO1xuICB2YXIgY29waWVzID0gY2FsbGJhY2tzLnNsaWNlKDApO1xuICBjYWxsYmFja3MubGVuZ3RoID0gMDtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3BpZXMubGVuZ3RoOyBpKyspIHtcbiAgICBjb3BpZXNbaV0oKTtcbiAgfVxufVxuXG4vLyBIZXJlIHdlIGhhdmUgYXN5bmMgZGVmZXJyaW5nIHdyYXBwZXJzIHVzaW5nIG1pY3JvdGFza3MuXG4vLyBJbiAyLjUgd2UgdXNlZCAobWFjcm8pIHRhc2tzIChpbiBjb21iaW5hdGlvbiB3aXRoIG1pY3JvdGFza3MpLlxuLy8gSG93ZXZlciwgaXQgaGFzIHN1YnRsZSBwcm9ibGVtcyB3aGVuIHN0YXRlIGlzIGNoYW5nZWQgcmlnaHQgYmVmb3JlIHJlcGFpbnRcbi8vIChlLmcuICM2ODEzLCBvdXQtaW4gdHJhbnNpdGlvbnMpLlxuLy8gQWxzbywgdXNpbmcgKG1hY3JvKSB0YXNrcyBpbiBldmVudCBoYW5kbGVyIHdvdWxkIGNhdXNlIHNvbWUgd2VpcmQgYmVoYXZpb3JzXG4vLyB0aGF0IGNhbm5vdCBiZSBjaXJjdW12ZW50ZWQgKGUuZy4gIzcxMDksICM3MTUzLCAjNzU0NiwgIzc4MzQsICM4MTA5KS5cbi8vIFNvIHdlIG5vdyB1c2UgbWljcm90YXNrcyBldmVyeXdoZXJlLCBhZ2Fpbi5cbi8vIEEgbWFqb3IgZHJhd2JhY2sgb2YgdGhpcyB0cmFkZW9mZiBpcyB0aGF0IHRoZXJlIGFyZSBzb21lIHNjZW5hcmlvc1xuLy8gd2hlcmUgbWljcm90YXNrcyBoYXZlIHRvbyBoaWdoIGEgcHJpb3JpdHkgYW5kIGZpcmUgaW4gYmV0d2VlbiBzdXBwb3NlZGx5XG4vLyBzZXF1ZW50aWFsIGV2ZW50cyAoZS5nLiAjNDUyMSwgIzY2OTAsIHdoaWNoIGhhdmUgd29ya2Fyb3VuZHMpXG4vLyBvciBldmVuIGJldHdlZW4gYnViYmxpbmcgb2YgdGhlIHNhbWUgZXZlbnQgKCM2NTY2KS5cbnZhciB0aW1lckZ1bmM7XG5cbi8vIFRoZSBuZXh0VGljayBiZWhhdmlvciBsZXZlcmFnZXMgdGhlIG1pY3JvdGFzayBxdWV1ZSwgd2hpY2ggY2FuIGJlIGFjY2Vzc2VkXG4vLyB2aWEgZWl0aGVyIG5hdGl2ZSBQcm9taXNlLnRoZW4gb3IgTXV0YXRpb25PYnNlcnZlci5cbi8vIE11dGF0aW9uT2JzZXJ2ZXIgaGFzIHdpZGVyIHN1cHBvcnQsIGhvd2V2ZXIgaXQgaXMgc2VyaW91c2x5IGJ1Z2dlZCBpblxuLy8gVUlXZWJWaWV3IGluIGlPUyA+PSA5LjMuMyB3aGVuIHRyaWdnZXJlZCBpbiB0b3VjaCBldmVudCBoYW5kbGVycy4gSXRcbi8vIGNvbXBsZXRlbHkgc3RvcHMgd29ya2luZyBhZnRlciB0cmlnZ2VyaW5nIGEgZmV3IHRpbWVzLi4uIHNvLCBpZiBuYXRpdmVcbi8vIFByb21pc2UgaXMgYXZhaWxhYmxlLCB3ZSB3aWxsIHVzZSBpdDpcbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0LCAkZmxvdy1kaXNhYmxlLWxpbmUgKi9cbmlmICh0eXBlb2YgUHJvbWlzZSAhPT0gJ3VuZGVmaW5lZCcgJiYgaXNOYXRpdmUoUHJvbWlzZSkpIHtcbiAgdmFyIHAgPSBQcm9taXNlLnJlc29sdmUoKTtcbiAgdGltZXJGdW5jID0gZnVuY3Rpb24gKCkge1xuICAgIHAudGhlbihmbHVzaENhbGxiYWNrcyk7XG4gICAgLy8gSW4gcHJvYmxlbWF0aWMgVUlXZWJWaWV3cywgUHJvbWlzZS50aGVuIGRvZXNuJ3QgY29tcGxldGVseSBicmVhaywgYnV0XG4gICAgLy8gaXQgY2FuIGdldCBzdHVjayBpbiBhIHdlaXJkIHN0YXRlIHdoZXJlIGNhbGxiYWNrcyBhcmUgcHVzaGVkIGludG8gdGhlXG4gICAgLy8gbWljcm90YXNrIHF1ZXVlIGJ1dCB0aGUgcXVldWUgaXNuJ3QgYmVpbmcgZmx1c2hlZCwgdW50aWwgdGhlIGJyb3dzZXJcbiAgICAvLyBuZWVkcyB0byBkbyBzb21lIG90aGVyIHdvcmssIGUuZy4gaGFuZGxlIGEgdGltZXIuIFRoZXJlZm9yZSB3ZSBjYW5cbiAgICAvLyBcImZvcmNlXCIgdGhlIG1pY3JvdGFzayBxdWV1ZSB0byBiZSBmbHVzaGVkIGJ5IGFkZGluZyBhbiBlbXB0eSB0aW1lci5cbiAgICBpZiAoaXNJT1MpIHsgc2V0VGltZW91dChub29wKTsgfVxuICB9O1xuICBpc1VzaW5nTWljcm9UYXNrID0gdHJ1ZTtcbn0gZWxzZSBpZiAoIWlzSUUgJiYgdHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnICYmIChcbiAgaXNOYXRpdmUoTXV0YXRpb25PYnNlcnZlcikgfHxcbiAgLy8gUGhhbnRvbUpTIGFuZCBpT1MgNy54XG4gIE11dGF0aW9uT2JzZXJ2ZXIudG9TdHJpbmcoKSA9PT0gJ1tvYmplY3QgTXV0YXRpb25PYnNlcnZlckNvbnN0cnVjdG9yXSdcbikpIHtcbiAgLy8gVXNlIE11dGF0aW9uT2JzZXJ2ZXIgd2hlcmUgbmF0aXZlIFByb21pc2UgaXMgbm90IGF2YWlsYWJsZSxcbiAgLy8gZS5nLiBQaGFudG9tSlMsIGlPUzcsIEFuZHJvaWQgNC40XG4gIC8vICgjNjQ2NiBNdXRhdGlvbk9ic2VydmVyIGlzIHVucmVsaWFibGUgaW4gSUUxMSlcbiAgdmFyIGNvdW50ZXIgPSAxO1xuICB2YXIgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmbHVzaENhbGxiYWNrcyk7XG4gIHZhciB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKFN0cmluZyhjb3VudGVyKSk7XG4gIG9ic2VydmVyLm9ic2VydmUodGV4dE5vZGUsIHtcbiAgICBjaGFyYWN0ZXJEYXRhOiB0cnVlXG4gIH0pO1xuICB0aW1lckZ1bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgY291bnRlciA9IChjb3VudGVyICsgMSkgJSAyO1xuICAgIHRleHROb2RlLmRhdGEgPSBTdHJpbmcoY291bnRlcik7XG4gIH07XG4gIGlzVXNpbmdNaWNyb1Rhc2sgPSB0cnVlO1xufSBlbHNlIGlmICh0eXBlb2Ygc2V0SW1tZWRpYXRlICE9PSAndW5kZWZpbmVkJyAmJiBpc05hdGl2ZShzZXRJbW1lZGlhdGUpKSB7XG4gIC8vIEZhbGxiYWNrIHRvIHNldEltbWVkaWF0ZS5cbiAgLy8gVGVjaG5pY2FsbHkgaXQgbGV2ZXJhZ2VzIHRoZSAobWFjcm8pIHRhc2sgcXVldWUsXG4gIC8vIGJ1dCBpdCBpcyBzdGlsbCBhIGJldHRlciBjaG9pY2UgdGhhbiBzZXRUaW1lb3V0LlxuICB0aW1lckZ1bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgc2V0SW1tZWRpYXRlKGZsdXNoQ2FsbGJhY2tzKTtcbiAgfTtcbn0gZWxzZSB7XG4gIC8vIEZhbGxiYWNrIHRvIHNldFRpbWVvdXQuXG4gIHRpbWVyRnVuYyA9IGZ1bmN0aW9uICgpIHtcbiAgICBzZXRUaW1lb3V0KGZsdXNoQ2FsbGJhY2tzLCAwKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gbmV4dFRpY2sgKGNiLCBjdHgpIHtcbiAgdmFyIF9yZXNvbHZlO1xuICBjYWxsYmFja3MucHVzaChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGNiKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjYi5jYWxsKGN0eCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGhhbmRsZUVycm9yKGUsIGN0eCwgJ25leHRUaWNrJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChfcmVzb2x2ZSkge1xuICAgICAgX3Jlc29sdmUoY3R4KTtcbiAgICB9XG4gIH0pO1xuICBpZiAoIXBlbmRpbmcpIHtcbiAgICBwZW5kaW5nID0gdHJ1ZTtcbiAgICB0aW1lckZ1bmMoKTtcbiAgfVxuICAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbiAgaWYgKCFjYiAmJiB0eXBlb2YgUHJvbWlzZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgIF9yZXNvbHZlID0gcmVzb2x2ZTtcbiAgICB9KVxuICB9XG59XG5cbi8qICAqL1xuXG4vKiBub3QgdHlwZSBjaGVja2luZyB0aGlzIGZpbGUgYmVjYXVzZSBmbG93IGRvZXNuJ3QgcGxheSB3ZWxsIHdpdGggUHJveHkgKi9cblxudmFyIGluaXRQcm94eTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFyIGFsbG93ZWRHbG9iYWxzID0gbWFrZU1hcChcbiAgICAnSW5maW5pdHksdW5kZWZpbmVkLE5hTixpc0Zpbml0ZSxpc05hTiwnICtcbiAgICAncGFyc2VGbG9hdCxwYXJzZUludCxkZWNvZGVVUkksZGVjb2RlVVJJQ29tcG9uZW50LGVuY29kZVVSSSxlbmNvZGVVUklDb21wb25lbnQsJyArXG4gICAgJ01hdGgsTnVtYmVyLERhdGUsQXJyYXksT2JqZWN0LEJvb2xlYW4sU3RyaW5nLFJlZ0V4cCxNYXAsU2V0LEpTT04sSW50bCxCaWdJbnQsJyArXG4gICAgJ3JlcXVpcmUnIC8vIGZvciBXZWJwYWNrL0Jyb3dzZXJpZnlcbiAgKTtcblxuICB2YXIgd2Fybk5vblByZXNlbnQgPSBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHtcbiAgICB3YXJuKFxuICAgICAgXCJQcm9wZXJ0eSBvciBtZXRob2QgXFxcIlwiICsga2V5ICsgXCJcXFwiIGlzIG5vdCBkZWZpbmVkIG9uIHRoZSBpbnN0YW5jZSBidXQgXCIgK1xuICAgICAgJ3JlZmVyZW5jZWQgZHVyaW5nIHJlbmRlci4gTWFrZSBzdXJlIHRoYXQgdGhpcyBwcm9wZXJ0eSBpcyByZWFjdGl2ZSwgJyArXG4gICAgICAnZWl0aGVyIGluIHRoZSBkYXRhIG9wdGlvbiwgb3IgZm9yIGNsYXNzLWJhc2VkIGNvbXBvbmVudHMsIGJ5ICcgK1xuICAgICAgJ2luaXRpYWxpemluZyB0aGUgcHJvcGVydHkuICcgK1xuICAgICAgJ1NlZTogaHR0cHM6Ly92dWVqcy5vcmcvdjIvZ3VpZGUvcmVhY3Rpdml0eS5odG1sI0RlY2xhcmluZy1SZWFjdGl2ZS1Qcm9wZXJ0aWVzLicsXG4gICAgICB0YXJnZXRcbiAgICApO1xuICB9O1xuXG4gIHZhciB3YXJuUmVzZXJ2ZWRQcmVmaXggPSBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHtcbiAgICB3YXJuKFxuICAgICAgXCJQcm9wZXJ0eSBcXFwiXCIgKyBrZXkgKyBcIlxcXCIgbXVzdCBiZSBhY2Nlc3NlZCB3aXRoIFxcXCIkZGF0YS5cIiArIGtleSArIFwiXFxcIiBiZWNhdXNlIFwiICtcbiAgICAgICdwcm9wZXJ0aWVzIHN0YXJ0aW5nIHdpdGggXCIkXCIgb3IgXCJfXCIgYXJlIG5vdCBwcm94aWVkIGluIHRoZSBWdWUgaW5zdGFuY2UgdG8gJyArXG4gICAgICAncHJldmVudCBjb25mbGljdHMgd2l0aCBWdWUgaW50ZXJuYWxzLiAnICtcbiAgICAgICdTZWU6IGh0dHBzOi8vdnVlanMub3JnL3YyL2FwaS8jZGF0YScsXG4gICAgICB0YXJnZXRcbiAgICApO1xuICB9O1xuXG4gIHZhciBoYXNQcm94eSA9XG4gICAgdHlwZW9mIFByb3h5ICE9PSAndW5kZWZpbmVkJyAmJiBpc05hdGl2ZShQcm94eSk7XG5cbiAgaWYgKGhhc1Byb3h5KSB7XG4gICAgdmFyIGlzQnVpbHRJbk1vZGlmaWVyID0gbWFrZU1hcCgnc3RvcCxwcmV2ZW50LHNlbGYsY3RybCxzaGlmdCxhbHQsbWV0YSxleGFjdCcpO1xuICAgIGNvbmZpZy5rZXlDb2RlcyA9IG5ldyBQcm94eShjb25maWcua2V5Q29kZXMsIHtcbiAgICAgIHNldDogZnVuY3Rpb24gc2V0ICh0YXJnZXQsIGtleSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKGlzQnVpbHRJbk1vZGlmaWVyKGtleSkpIHtcbiAgICAgICAgICB3YXJuKChcIkF2b2lkIG92ZXJ3cml0aW5nIGJ1aWx0LWluIG1vZGlmaWVyIGluIGNvbmZpZy5rZXlDb2RlczogLlwiICsga2V5KSk7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB2YXIgaGFzSGFuZGxlciA9IHtcbiAgICBoYXM6IGZ1bmN0aW9uIGhhcyAodGFyZ2V0LCBrZXkpIHtcbiAgICAgIHZhciBoYXMgPSBrZXkgaW4gdGFyZ2V0O1xuICAgICAgdmFyIGlzQWxsb3dlZCA9IGFsbG93ZWRHbG9iYWxzKGtleSkgfHxcbiAgICAgICAgKHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnICYmIGtleS5jaGFyQXQoMCkgPT09ICdfJyAmJiAhKGtleSBpbiB0YXJnZXQuJGRhdGEpKTtcbiAgICAgIGlmICghaGFzICYmICFpc0FsbG93ZWQpIHtcbiAgICAgICAgaWYgKGtleSBpbiB0YXJnZXQuJGRhdGEpIHsgd2FyblJlc2VydmVkUHJlZml4KHRhcmdldCwga2V5KTsgfVxuICAgICAgICBlbHNlIHsgd2Fybk5vblByZXNlbnQodGFyZ2V0LCBrZXkpOyB9XG4gICAgICB9XG4gICAgICByZXR1cm4gaGFzIHx8ICFpc0FsbG93ZWRcbiAgICB9XG4gIH07XG5cbiAgdmFyIGdldEhhbmRsZXIgPSB7XG4gICAgZ2V0OiBmdW5jdGlvbiBnZXQgKHRhcmdldCwga2V5KSB7XG4gICAgICBpZiAodHlwZW9mIGtleSA9PT0gJ3N0cmluZycgJiYgIShrZXkgaW4gdGFyZ2V0KSkge1xuICAgICAgICBpZiAoa2V5IGluIHRhcmdldC4kZGF0YSkgeyB3YXJuUmVzZXJ2ZWRQcmVmaXgodGFyZ2V0LCBrZXkpOyB9XG4gICAgICAgIGVsc2UgeyB3YXJuTm9uUHJlc2VudCh0YXJnZXQsIGtleSk7IH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0YXJnZXRba2V5XVxuICAgIH1cbiAgfTtcblxuICBpbml0UHJveHkgPSBmdW5jdGlvbiBpbml0UHJveHkgKHZtKSB7XG4gICAgaWYgKGhhc1Byb3h5KSB7XG4gICAgICAvLyBkZXRlcm1pbmUgd2hpY2ggcHJveHkgaGFuZGxlciB0byB1c2VcbiAgICAgIHZhciBvcHRpb25zID0gdm0uJG9wdGlvbnM7XG4gICAgICB2YXIgaGFuZGxlcnMgPSBvcHRpb25zLnJlbmRlciAmJiBvcHRpb25zLnJlbmRlci5fd2l0aFN0cmlwcGVkXG4gICAgICAgID8gZ2V0SGFuZGxlclxuICAgICAgICA6IGhhc0hhbmRsZXI7XG4gICAgICB2bS5fcmVuZGVyUHJveHkgPSBuZXcgUHJveHkodm0sIGhhbmRsZXJzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdm0uX3JlbmRlclByb3h5ID0gdm07XG4gICAgfVxuICB9O1xufVxuXG4vKiAgKi9cblxudmFyIHNlZW5PYmplY3RzID0gbmV3IF9TZXQoKTtcblxuLyoqXG4gKiBSZWN1cnNpdmVseSB0cmF2ZXJzZSBhbiBvYmplY3QgdG8gZXZva2UgYWxsIGNvbnZlcnRlZFxuICogZ2V0dGVycywgc28gdGhhdCBldmVyeSBuZXN0ZWQgcHJvcGVydHkgaW5zaWRlIHRoZSBvYmplY3RcbiAqIGlzIGNvbGxlY3RlZCBhcyBhIFwiZGVlcFwiIGRlcGVuZGVuY3kuXG4gKi9cbmZ1bmN0aW9uIHRyYXZlcnNlICh2YWwpIHtcbiAgX3RyYXZlcnNlKHZhbCwgc2Vlbk9iamVjdHMpO1xuICBzZWVuT2JqZWN0cy5jbGVhcigpO1xufVxuXG5mdW5jdGlvbiBfdHJhdmVyc2UgKHZhbCwgc2Vlbikge1xuICB2YXIgaSwga2V5cztcbiAgdmFyIGlzQSA9IEFycmF5LmlzQXJyYXkodmFsKTtcbiAgaWYgKCghaXNBICYmICFpc09iamVjdCh2YWwpKSB8fCBPYmplY3QuaXNGcm96ZW4odmFsKSB8fCB2YWwgaW5zdGFuY2VvZiBWTm9kZSkge1xuICAgIHJldHVyblxuICB9XG4gIGlmICh2YWwuX19vYl9fKSB7XG4gICAgdmFyIGRlcElkID0gdmFsLl9fb2JfXy5kZXAuaWQ7XG4gICAgaWYgKHNlZW4uaGFzKGRlcElkKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHNlZW4uYWRkKGRlcElkKTtcbiAgfVxuICBpZiAoaXNBKSB7XG4gICAgaSA9IHZhbC5sZW5ndGg7XG4gICAgd2hpbGUgKGktLSkgeyBfdHJhdmVyc2UodmFsW2ldLCBzZWVuKTsgfVxuICB9IGVsc2Uge1xuICAgIGtleXMgPSBPYmplY3Qua2V5cyh2YWwpO1xuICAgIGkgPSBrZXlzLmxlbmd0aDtcbiAgICB3aGlsZSAoaS0tKSB7IF90cmF2ZXJzZSh2YWxba2V5c1tpXV0sIHNlZW4pOyB9XG4gIH1cbn1cblxudmFyIG1hcms7XG52YXIgbWVhc3VyZTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFyIHBlcmYgPSBpbkJyb3dzZXIgJiYgd2luZG93LnBlcmZvcm1hbmNlO1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKFxuICAgIHBlcmYgJiZcbiAgICBwZXJmLm1hcmsgJiZcbiAgICBwZXJmLm1lYXN1cmUgJiZcbiAgICBwZXJmLmNsZWFyTWFya3MgJiZcbiAgICBwZXJmLmNsZWFyTWVhc3VyZXNcbiAgKSB7XG4gICAgbWFyayA9IGZ1bmN0aW9uICh0YWcpIHsgcmV0dXJuIHBlcmYubWFyayh0YWcpOyB9O1xuICAgIG1lYXN1cmUgPSBmdW5jdGlvbiAobmFtZSwgc3RhcnRUYWcsIGVuZFRhZykge1xuICAgICAgcGVyZi5tZWFzdXJlKG5hbWUsIHN0YXJ0VGFnLCBlbmRUYWcpO1xuICAgICAgcGVyZi5jbGVhck1hcmtzKHN0YXJ0VGFnKTtcbiAgICAgIHBlcmYuY2xlYXJNYXJrcyhlbmRUYWcpO1xuICAgICAgLy8gcGVyZi5jbGVhck1lYXN1cmVzKG5hbWUpXG4gICAgfTtcbiAgfVxufVxuXG4vKiAgKi9cblxudmFyIG5vcm1hbGl6ZUV2ZW50ID0gY2FjaGVkKGZ1bmN0aW9uIChuYW1lKSB7XG4gIHZhciBwYXNzaXZlID0gbmFtZS5jaGFyQXQoMCkgPT09ICcmJztcbiAgbmFtZSA9IHBhc3NpdmUgPyBuYW1lLnNsaWNlKDEpIDogbmFtZTtcbiAgdmFyIG9uY2UkJDEgPSBuYW1lLmNoYXJBdCgwKSA9PT0gJ34nOyAvLyBQcmVmaXhlZCBsYXN0LCBjaGVja2VkIGZpcnN0XG4gIG5hbWUgPSBvbmNlJCQxID8gbmFtZS5zbGljZSgxKSA6IG5hbWU7XG4gIHZhciBjYXB0dXJlID0gbmFtZS5jaGFyQXQoMCkgPT09ICchJztcbiAgbmFtZSA9IGNhcHR1cmUgPyBuYW1lLnNsaWNlKDEpIDogbmFtZTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBuYW1lLFxuICAgIG9uY2U6IG9uY2UkJDEsXG4gICAgY2FwdHVyZTogY2FwdHVyZSxcbiAgICBwYXNzaXZlOiBwYXNzaXZlXG4gIH1cbn0pO1xuXG5mdW5jdGlvbiBjcmVhdGVGbkludm9rZXIgKGZucywgdm0pIHtcbiAgZnVuY3Rpb24gaW52b2tlciAoKSB7XG4gICAgdmFyIGFyZ3VtZW50cyQxID0gYXJndW1lbnRzO1xuXG4gICAgdmFyIGZucyA9IGludm9rZXIuZm5zO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGZucykpIHtcbiAgICAgIHZhciBjbG9uZWQgPSBmbnMuc2xpY2UoKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2xvbmVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGludm9rZVdpdGhFcnJvckhhbmRsaW5nKGNsb25lZFtpXSwgbnVsbCwgYXJndW1lbnRzJDEsIHZtLCBcInYtb24gaGFuZGxlclwiKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gcmV0dXJuIGhhbmRsZXIgcmV0dXJuIHZhbHVlIGZvciBzaW5nbGUgaGFuZGxlcnNcbiAgICAgIHJldHVybiBpbnZva2VXaXRoRXJyb3JIYW5kbGluZyhmbnMsIG51bGwsIGFyZ3VtZW50cywgdm0sIFwidi1vbiBoYW5kbGVyXCIpXG4gICAgfVxuICB9XG4gIGludm9rZXIuZm5zID0gZm5zO1xuICByZXR1cm4gaW52b2tlclxufVxuXG5mdW5jdGlvbiB1cGRhdGVMaXN0ZW5lcnMgKFxuICBvbixcbiAgb2xkT24sXG4gIGFkZCxcbiAgcmVtb3ZlJCQxLFxuICBjcmVhdGVPbmNlSGFuZGxlcixcbiAgdm1cbikge1xuICB2YXIgbmFtZSwgZGVmJCQxLCBjdXIsIG9sZCwgZXZlbnQ7XG4gIGZvciAobmFtZSBpbiBvbikge1xuICAgIGRlZiQkMSA9IGN1ciA9IG9uW25hbWVdO1xuICAgIG9sZCA9IG9sZE9uW25hbWVdO1xuICAgIGV2ZW50ID0gbm9ybWFsaXplRXZlbnQobmFtZSk7XG4gICAgaWYgKGlzVW5kZWYoY3VyKSkge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB3YXJuKFxuICAgICAgICBcIkludmFsaWQgaGFuZGxlciBmb3IgZXZlbnQgXFxcIlwiICsgKGV2ZW50Lm5hbWUpICsgXCJcXFwiOiBnb3QgXCIgKyBTdHJpbmcoY3VyKSxcbiAgICAgICAgdm1cbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChpc1VuZGVmKG9sZCkpIHtcbiAgICAgIGlmIChpc1VuZGVmKGN1ci5mbnMpKSB7XG4gICAgICAgIGN1ciA9IG9uW25hbWVdID0gY3JlYXRlRm5JbnZva2VyKGN1ciwgdm0pO1xuICAgICAgfVxuICAgICAgaWYgKGlzVHJ1ZShldmVudC5vbmNlKSkge1xuICAgICAgICBjdXIgPSBvbltuYW1lXSA9IGNyZWF0ZU9uY2VIYW5kbGVyKGV2ZW50Lm5hbWUsIGN1ciwgZXZlbnQuY2FwdHVyZSk7XG4gICAgICB9XG4gICAgICBhZGQoZXZlbnQubmFtZSwgY3VyLCBldmVudC5jYXB0dXJlLCBldmVudC5wYXNzaXZlLCBldmVudC5wYXJhbXMpO1xuICAgIH0gZWxzZSBpZiAoY3VyICE9PSBvbGQpIHtcbiAgICAgIG9sZC5mbnMgPSBjdXI7XG4gICAgICBvbltuYW1lXSA9IG9sZDtcbiAgICB9XG4gIH1cbiAgZm9yIChuYW1lIGluIG9sZE9uKSB7XG4gICAgaWYgKGlzVW5kZWYob25bbmFtZV0pKSB7XG4gICAgICBldmVudCA9IG5vcm1hbGl6ZUV2ZW50KG5hbWUpO1xuICAgICAgcmVtb3ZlJCQxKGV2ZW50Lm5hbWUsIG9sZE9uW25hbWVdLCBldmVudC5jYXB0dXJlKTtcbiAgICB9XG4gIH1cbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIG1lcmdlVk5vZGVIb29rIChkZWYsIGhvb2tLZXksIGhvb2spIHtcbiAgaWYgKGRlZiBpbnN0YW5jZW9mIFZOb2RlKSB7XG4gICAgZGVmID0gZGVmLmRhdGEuaG9vayB8fCAoZGVmLmRhdGEuaG9vayA9IHt9KTtcbiAgfVxuICB2YXIgaW52b2tlcjtcbiAgdmFyIG9sZEhvb2sgPSBkZWZbaG9va0tleV07XG5cbiAgZnVuY3Rpb24gd3JhcHBlZEhvb2sgKCkge1xuICAgIGhvb2suYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAvLyBpbXBvcnRhbnQ6IHJlbW92ZSBtZXJnZWQgaG9vayB0byBlbnN1cmUgaXQncyBjYWxsZWQgb25seSBvbmNlXG4gICAgLy8gYW5kIHByZXZlbnQgbWVtb3J5IGxlYWtcbiAgICByZW1vdmUoaW52b2tlci5mbnMsIHdyYXBwZWRIb29rKTtcbiAgfVxuXG4gIGlmIChpc1VuZGVmKG9sZEhvb2spKSB7XG4gICAgLy8gbm8gZXhpc3RpbmcgaG9va1xuICAgIGludm9rZXIgPSBjcmVhdGVGbkludm9rZXIoW3dyYXBwZWRIb29rXSk7XG4gIH0gZWxzZSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKGlzRGVmKG9sZEhvb2suZm5zKSAmJiBpc1RydWUob2xkSG9vay5tZXJnZWQpKSB7XG4gICAgICAvLyBhbHJlYWR5IGEgbWVyZ2VkIGludm9rZXJcbiAgICAgIGludm9rZXIgPSBvbGRIb29rO1xuICAgICAgaW52b2tlci5mbnMucHVzaCh3cmFwcGVkSG9vayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGV4aXN0aW5nIHBsYWluIGhvb2tcbiAgICAgIGludm9rZXIgPSBjcmVhdGVGbkludm9rZXIoW29sZEhvb2ssIHdyYXBwZWRIb29rXSk7XG4gICAgfVxuICB9XG5cbiAgaW52b2tlci5tZXJnZWQgPSB0cnVlO1xuICBkZWZbaG9va0tleV0gPSBpbnZva2VyO1xufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gZXh0cmFjdFByb3BzRnJvbVZOb2RlRGF0YSAoXG4gIGRhdGEsXG4gIEN0b3IsXG4gIHRhZ1xuKSB7XG4gIC8vIHdlIGFyZSBvbmx5IGV4dHJhY3RpbmcgcmF3IHZhbHVlcyBoZXJlLlxuICAvLyB2YWxpZGF0aW9uIGFuZCBkZWZhdWx0IHZhbHVlcyBhcmUgaGFuZGxlZCBpbiB0aGUgY2hpbGRcbiAgLy8gY29tcG9uZW50IGl0c2VsZi5cbiAgdmFyIHByb3BPcHRpb25zID0gQ3Rvci5vcHRpb25zLnByb3BzO1xuICBpZiAoaXNVbmRlZihwcm9wT3B0aW9ucykpIHtcbiAgICByZXR1cm5cbiAgfVxuICB2YXIgcmVzID0ge307XG4gIHZhciBhdHRycyA9IGRhdGEuYXR0cnM7XG4gIHZhciBwcm9wcyA9IGRhdGEucHJvcHM7XG4gIGlmIChpc0RlZihhdHRycykgfHwgaXNEZWYocHJvcHMpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIHByb3BPcHRpb25zKSB7XG4gICAgICB2YXIgYWx0S2V5ID0gaHlwaGVuYXRlKGtleSk7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB2YXIga2V5SW5Mb3dlckNhc2UgPSBrZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGtleSAhPT0ga2V5SW5Mb3dlckNhc2UgJiZcbiAgICAgICAgICBhdHRycyAmJiBoYXNPd24oYXR0cnMsIGtleUluTG93ZXJDYXNlKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aXAoXG4gICAgICAgICAgICBcIlByb3AgXFxcIlwiICsga2V5SW5Mb3dlckNhc2UgKyBcIlxcXCIgaXMgcGFzc2VkIHRvIGNvbXBvbmVudCBcIiArXG4gICAgICAgICAgICAoZm9ybWF0Q29tcG9uZW50TmFtZSh0YWcgfHwgQ3RvcikpICsgXCIsIGJ1dCB0aGUgZGVjbGFyZWQgcHJvcCBuYW1lIGlzXCIgK1xuICAgICAgICAgICAgXCIgXFxcIlwiICsga2V5ICsgXCJcXFwiLiBcIiArXG4gICAgICAgICAgICBcIk5vdGUgdGhhdCBIVE1MIGF0dHJpYnV0ZXMgYXJlIGNhc2UtaW5zZW5zaXRpdmUgYW5kIGNhbWVsQ2FzZWQgXCIgK1xuICAgICAgICAgICAgXCJwcm9wcyBuZWVkIHRvIHVzZSB0aGVpciBrZWJhYi1jYXNlIGVxdWl2YWxlbnRzIHdoZW4gdXNpbmcgaW4tRE9NIFwiICtcbiAgICAgICAgICAgIFwidGVtcGxhdGVzLiBZb3Ugc2hvdWxkIHByb2JhYmx5IHVzZSBcXFwiXCIgKyBhbHRLZXkgKyBcIlxcXCIgaW5zdGVhZCBvZiBcXFwiXCIgKyBrZXkgKyBcIlxcXCIuXCJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjaGVja1Byb3AocmVzLCBwcm9wcywga2V5LCBhbHRLZXksIHRydWUpIHx8XG4gICAgICBjaGVja1Byb3AocmVzLCBhdHRycywga2V5LCBhbHRLZXksIGZhbHNlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG5mdW5jdGlvbiBjaGVja1Byb3AgKFxuICByZXMsXG4gIGhhc2gsXG4gIGtleSxcbiAgYWx0S2V5LFxuICBwcmVzZXJ2ZVxuKSB7XG4gIGlmIChpc0RlZihoYXNoKSkge1xuICAgIGlmIChoYXNPd24oaGFzaCwga2V5KSkge1xuICAgICAgcmVzW2tleV0gPSBoYXNoW2tleV07XG4gICAgICBpZiAoIXByZXNlcnZlKSB7XG4gICAgICAgIGRlbGV0ZSBoYXNoW2tleV07XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH0gZWxzZSBpZiAoaGFzT3duKGhhc2gsIGFsdEtleSkpIHtcbiAgICAgIHJlc1trZXldID0gaGFzaFthbHRLZXldO1xuICAgICAgaWYgKCFwcmVzZXJ2ZSkge1xuICAgICAgICBkZWxldGUgaGFzaFthbHRLZXldO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbi8qICAqL1xuXG4vLyBUaGUgdGVtcGxhdGUgY29tcGlsZXIgYXR0ZW1wdHMgdG8gbWluaW1pemUgdGhlIG5lZWQgZm9yIG5vcm1hbGl6YXRpb24gYnlcbi8vIHN0YXRpY2FsbHkgYW5hbHl6aW5nIHRoZSB0ZW1wbGF0ZSBhdCBjb21waWxlIHRpbWUuXG4vL1xuLy8gRm9yIHBsYWluIEhUTUwgbWFya3VwLCBub3JtYWxpemF0aW9uIGNhbiBiZSBjb21wbGV0ZWx5IHNraXBwZWQgYmVjYXVzZSB0aGVcbi8vIGdlbmVyYXRlZCByZW5kZXIgZnVuY3Rpb24gaXMgZ3VhcmFudGVlZCB0byByZXR1cm4gQXJyYXk8Vk5vZGU+LiBUaGVyZSBhcmVcbi8vIHR3byBjYXNlcyB3aGVyZSBleHRyYSBub3JtYWxpemF0aW9uIGlzIG5lZWRlZDpcblxuLy8gMS4gV2hlbiB0aGUgY2hpbGRyZW4gY29udGFpbnMgY29tcG9uZW50cyAtIGJlY2F1c2UgYSBmdW5jdGlvbmFsIGNvbXBvbmVudFxuLy8gbWF5IHJldHVybiBhbiBBcnJheSBpbnN0ZWFkIG9mIGEgc2luZ2xlIHJvb3QuIEluIHRoaXMgY2FzZSwganVzdCBhIHNpbXBsZVxuLy8gbm9ybWFsaXphdGlvbiBpcyBuZWVkZWQgLSBpZiBhbnkgY2hpbGQgaXMgYW4gQXJyYXksIHdlIGZsYXR0ZW4gdGhlIHdob2xlXG4vLyB0aGluZyB3aXRoIEFycmF5LnByb3RvdHlwZS5jb25jYXQuIEl0IGlzIGd1YXJhbnRlZWQgdG8gYmUgb25seSAxLWxldmVsIGRlZXBcbi8vIGJlY2F1c2UgZnVuY3Rpb25hbCBjb21wb25lbnRzIGFscmVhZHkgbm9ybWFsaXplIHRoZWlyIG93biBjaGlsZHJlbi5cbmZ1bmN0aW9uIHNpbXBsZU5vcm1hbGl6ZUNoaWxkcmVuIChjaGlsZHJlbikge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW5baV0pKSB7XG4gICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSwgY2hpbGRyZW4pXG4gICAgfVxuICB9XG4gIHJldHVybiBjaGlsZHJlblxufVxuXG4vLyAyLiBXaGVuIHRoZSBjaGlsZHJlbiBjb250YWlucyBjb25zdHJ1Y3RzIHRoYXQgYWx3YXlzIGdlbmVyYXRlZCBuZXN0ZWQgQXJyYXlzLFxuLy8gZS5nLiA8dGVtcGxhdGU+LCA8c2xvdD4sIHYtZm9yLCBvciB3aGVuIHRoZSBjaGlsZHJlbiBpcyBwcm92aWRlZCBieSB1c2VyXG4vLyB3aXRoIGhhbmQtd3JpdHRlbiByZW5kZXIgZnVuY3Rpb25zIC8gSlNYLiBJbiBzdWNoIGNhc2VzIGEgZnVsbCBub3JtYWxpemF0aW9uXG4vLyBpcyBuZWVkZWQgdG8gY2F0ZXIgdG8gYWxsIHBvc3NpYmxlIHR5cGVzIG9mIGNoaWxkcmVuIHZhbHVlcy5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUNoaWxkcmVuIChjaGlsZHJlbikge1xuICByZXR1cm4gaXNQcmltaXRpdmUoY2hpbGRyZW4pXG4gICAgPyBbY3JlYXRlVGV4dFZOb2RlKGNoaWxkcmVuKV1cbiAgICA6IEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pXG4gICAgICA/IG5vcm1hbGl6ZUFycmF5Q2hpbGRyZW4oY2hpbGRyZW4pXG4gICAgICA6IHVuZGVmaW5lZFxufVxuXG5mdW5jdGlvbiBpc1RleHROb2RlIChub2RlKSB7XG4gIHJldHVybiBpc0RlZihub2RlKSAmJiBpc0RlZihub2RlLnRleHQpICYmIGlzRmFsc2Uobm9kZS5pc0NvbW1lbnQpXG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUFycmF5Q2hpbGRyZW4gKGNoaWxkcmVuLCBuZXN0ZWRJbmRleCkge1xuICB2YXIgcmVzID0gW107XG4gIHZhciBpLCBjLCBsYXN0SW5kZXgsIGxhc3Q7XG4gIGZvciAoaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgIGMgPSBjaGlsZHJlbltpXTtcbiAgICBpZiAoaXNVbmRlZihjKSB8fCB0eXBlb2YgYyA9PT0gJ2Jvb2xlYW4nKSB7IGNvbnRpbnVlIH1cbiAgICBsYXN0SW5kZXggPSByZXMubGVuZ3RoIC0gMTtcbiAgICBsYXN0ID0gcmVzW2xhc3RJbmRleF07XG4gICAgLy8gIG5lc3RlZFxuICAgIGlmIChBcnJheS5pc0FycmF5KGMpKSB7XG4gICAgICBpZiAoYy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGMgPSBub3JtYWxpemVBcnJheUNoaWxkcmVuKGMsICgobmVzdGVkSW5kZXggfHwgJycpICsgXCJfXCIgKyBpKSk7XG4gICAgICAgIC8vIG1lcmdlIGFkamFjZW50IHRleHQgbm9kZXNcbiAgICAgICAgaWYgKGlzVGV4dE5vZGUoY1swXSkgJiYgaXNUZXh0Tm9kZShsYXN0KSkge1xuICAgICAgICAgIHJlc1tsYXN0SW5kZXhdID0gY3JlYXRlVGV4dFZOb2RlKGxhc3QudGV4dCArIChjWzBdKS50ZXh0KTtcbiAgICAgICAgICBjLnNoaWZ0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzLnB1c2guYXBwbHkocmVzLCBjKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzUHJpbWl0aXZlKGMpKSB7XG4gICAgICBpZiAoaXNUZXh0Tm9kZShsYXN0KSkge1xuICAgICAgICAvLyBtZXJnZSBhZGphY2VudCB0ZXh0IG5vZGVzXG4gICAgICAgIC8vIHRoaXMgaXMgbmVjZXNzYXJ5IGZvciBTU1IgaHlkcmF0aW9uIGJlY2F1c2UgdGV4dCBub2RlcyBhcmVcbiAgICAgICAgLy8gZXNzZW50aWFsbHkgbWVyZ2VkIHdoZW4gcmVuZGVyZWQgdG8gSFRNTCBzdHJpbmdzXG4gICAgICAgIHJlc1tsYXN0SW5kZXhdID0gY3JlYXRlVGV4dFZOb2RlKGxhc3QudGV4dCArIGMpO1xuICAgICAgfSBlbHNlIGlmIChjICE9PSAnJykge1xuICAgICAgICAvLyBjb252ZXJ0IHByaW1pdGl2ZSB0byB2bm9kZVxuICAgICAgICByZXMucHVzaChjcmVhdGVUZXh0Vk5vZGUoYykpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaXNUZXh0Tm9kZShjKSAmJiBpc1RleHROb2RlKGxhc3QpKSB7XG4gICAgICAgIC8vIG1lcmdlIGFkamFjZW50IHRleHQgbm9kZXNcbiAgICAgICAgcmVzW2xhc3RJbmRleF0gPSBjcmVhdGVUZXh0Vk5vZGUobGFzdC50ZXh0ICsgYy50ZXh0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGRlZmF1bHQga2V5IGZvciBuZXN0ZWQgYXJyYXkgY2hpbGRyZW4gKGxpa2VseSBnZW5lcmF0ZWQgYnkgdi1mb3IpXG4gICAgICAgIGlmIChpc1RydWUoY2hpbGRyZW4uX2lzVkxpc3QpICYmXG4gICAgICAgICAgaXNEZWYoYy50YWcpICYmXG4gICAgICAgICAgaXNVbmRlZihjLmtleSkgJiZcbiAgICAgICAgICBpc0RlZihuZXN0ZWRJbmRleCkpIHtcbiAgICAgICAgICBjLmtleSA9IFwiX192bGlzdFwiICsgbmVzdGVkSW5kZXggKyBcIl9cIiArIGkgKyBcIl9fXCI7XG4gICAgICAgIH1cbiAgICAgICAgcmVzLnB1c2goYyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiByZXNcbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIGluaXRQcm92aWRlICh2bSkge1xuICB2YXIgcHJvdmlkZSA9IHZtLiRvcHRpb25zLnByb3ZpZGU7XG4gIGlmIChwcm92aWRlKSB7XG4gICAgdm0uX3Byb3ZpZGVkID0gdHlwZW9mIHByb3ZpZGUgPT09ICdmdW5jdGlvbidcbiAgICAgID8gcHJvdmlkZS5jYWxsKHZtKVxuICAgICAgOiBwcm92aWRlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGluaXRJbmplY3Rpb25zICh2bSkge1xuICB2YXIgcmVzdWx0ID0gcmVzb2x2ZUluamVjdCh2bS4kb3B0aW9ucy5pbmplY3QsIHZtKTtcbiAgaWYgKHJlc3VsdCkge1xuICAgIHRvZ2dsZU9ic2VydmluZyhmYWxzZSk7XG4gICAgT2JqZWN0LmtleXMocmVzdWx0KS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBkZWZpbmVSZWFjdGl2ZSQkMSh2bSwga2V5LCByZXN1bHRba2V5XSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHdhcm4oXG4gICAgICAgICAgICBcIkF2b2lkIG11dGF0aW5nIGFuIGluamVjdGVkIHZhbHVlIGRpcmVjdGx5IHNpbmNlIHRoZSBjaGFuZ2VzIHdpbGwgYmUgXCIgK1xuICAgICAgICAgICAgXCJvdmVyd3JpdHRlbiB3aGVuZXZlciB0aGUgcHJvdmlkZWQgY29tcG9uZW50IHJlLXJlbmRlcnMuIFwiICtcbiAgICAgICAgICAgIFwiaW5qZWN0aW9uIGJlaW5nIG11dGF0ZWQ6IFxcXCJcIiArIGtleSArIFwiXFxcIlwiLFxuICAgICAgICAgICAgdm1cbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlZmluZVJlYWN0aXZlJCQxKHZtLCBrZXksIHJlc3VsdFtrZXldKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0b2dnbGVPYnNlcnZpbmcodHJ1ZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZUluamVjdCAoaW5qZWN0LCB2bSkge1xuICBpZiAoaW5qZWN0KSB7XG4gICAgLy8gaW5qZWN0IGlzIDphbnkgYmVjYXVzZSBmbG93IGlzIG5vdCBzbWFydCBlbm91Z2ggdG8gZmlndXJlIG91dCBjYWNoZWRcbiAgICB2YXIgcmVzdWx0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB2YXIga2V5cyA9IGhhc1N5bWJvbFxuICAgICAgPyBSZWZsZWN0Lm93bktleXMoaW5qZWN0KVxuICAgICAgOiBPYmplY3Qua2V5cyhpbmplY3QpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIga2V5ID0ga2V5c1tpXTtcbiAgICAgIC8vICM2NTc0IGluIGNhc2UgdGhlIGluamVjdCBvYmplY3QgaXMgb2JzZXJ2ZWQuLi5cbiAgICAgIGlmIChrZXkgPT09ICdfX29iX18nKSB7IGNvbnRpbnVlIH1cbiAgICAgIHZhciBwcm92aWRlS2V5ID0gaW5qZWN0W2tleV0uZnJvbTtcbiAgICAgIHZhciBzb3VyY2UgPSB2bTtcbiAgICAgIHdoaWxlIChzb3VyY2UpIHtcbiAgICAgICAgaWYgKHNvdXJjZS5fcHJvdmlkZWQgJiYgaGFzT3duKHNvdXJjZS5fcHJvdmlkZWQsIHByb3ZpZGVLZXkpKSB7XG4gICAgICAgICAgcmVzdWx0W2tleV0gPSBzb3VyY2UuX3Byb3ZpZGVkW3Byb3ZpZGVLZXldO1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgc291cmNlID0gc291cmNlLiRwYXJlbnQ7XG4gICAgICB9XG4gICAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgICBpZiAoJ2RlZmF1bHQnIGluIGluamVjdFtrZXldKSB7XG4gICAgICAgICAgdmFyIHByb3ZpZGVEZWZhdWx0ID0gaW5qZWN0W2tleV0uZGVmYXVsdDtcbiAgICAgICAgICByZXN1bHRba2V5XSA9IHR5cGVvZiBwcm92aWRlRGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgPyBwcm92aWRlRGVmYXVsdC5jYWxsKHZtKVxuICAgICAgICAgICAgOiBwcm92aWRlRGVmYXVsdDtcbiAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgd2FybigoXCJJbmplY3Rpb24gXFxcIlwiICsga2V5ICsgXCJcXFwiIG5vdCBmb3VuZFwiKSwgdm0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRcbiAgfVxufVxuXG4vKiAgKi9cblxuXG5cbi8qKlxuICogUnVudGltZSBoZWxwZXIgZm9yIHJlc29sdmluZyByYXcgY2hpbGRyZW4gVk5vZGVzIGludG8gYSBzbG90IG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZVNsb3RzIChcbiAgY2hpbGRyZW4sXG4gIGNvbnRleHRcbikge1xuICBpZiAoIWNoaWxkcmVuIHx8ICFjaGlsZHJlbi5sZW5ndGgpIHtcbiAgICByZXR1cm4ge31cbiAgfVxuICB2YXIgc2xvdHMgPSB7fTtcbiAgZm9yICh2YXIgaSA9IDAsIGwgPSBjaGlsZHJlbi5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICB2YXIgY2hpbGQgPSBjaGlsZHJlbltpXTtcbiAgICB2YXIgZGF0YSA9IGNoaWxkLmRhdGE7XG4gICAgLy8gcmVtb3ZlIHNsb3QgYXR0cmlidXRlIGlmIHRoZSBub2RlIGlzIHJlc29sdmVkIGFzIGEgVnVlIHNsb3Qgbm9kZVxuICAgIGlmIChkYXRhICYmIGRhdGEuYXR0cnMgJiYgZGF0YS5hdHRycy5zbG90KSB7XG4gICAgICBkZWxldGUgZGF0YS5hdHRycy5zbG90O1xuICAgIH1cbiAgICAvLyBuYW1lZCBzbG90cyBzaG91bGQgb25seSBiZSByZXNwZWN0ZWQgaWYgdGhlIHZub2RlIHdhcyByZW5kZXJlZCBpbiB0aGVcbiAgICAvLyBzYW1lIGNvbnRleHQuXG4gICAgaWYgKChjaGlsZC5jb250ZXh0ID09PSBjb250ZXh0IHx8IGNoaWxkLmZuQ29udGV4dCA9PT0gY29udGV4dCkgJiZcbiAgICAgIGRhdGEgJiYgZGF0YS5zbG90ICE9IG51bGxcbiAgICApIHtcbiAgICAgIHZhciBuYW1lID0gZGF0YS5zbG90O1xuICAgICAgdmFyIHNsb3QgPSAoc2xvdHNbbmFtZV0gfHwgKHNsb3RzW25hbWVdID0gW10pKTtcbiAgICAgIGlmIChjaGlsZC50YWcgPT09ICd0ZW1wbGF0ZScpIHtcbiAgICAgICAgc2xvdC5wdXNoLmFwcGx5KHNsb3QsIGNoaWxkLmNoaWxkcmVuIHx8IFtdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNsb3QucHVzaChjaGlsZCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIChzbG90cy5kZWZhdWx0IHx8IChzbG90cy5kZWZhdWx0ID0gW10pKS5wdXNoKGNoaWxkKTtcbiAgICB9XG4gIH1cbiAgLy8gaWdub3JlIHNsb3RzIHRoYXQgY29udGFpbnMgb25seSB3aGl0ZXNwYWNlXG4gIGZvciAodmFyIG5hbWUkMSBpbiBzbG90cykge1xuICAgIGlmIChzbG90c1tuYW1lJDFdLmV2ZXJ5KGlzV2hpdGVzcGFjZSkpIHtcbiAgICAgIGRlbGV0ZSBzbG90c1tuYW1lJDFdO1xuICAgIH1cbiAgfVxuICByZXR1cm4gc2xvdHNcbn1cblxuZnVuY3Rpb24gaXNXaGl0ZXNwYWNlIChub2RlKSB7XG4gIHJldHVybiAobm9kZS5pc0NvbW1lbnQgJiYgIW5vZGUuYXN5bmNGYWN0b3J5KSB8fCBub2RlLnRleHQgPT09ICcgJ1xufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gaXNBc3luY1BsYWNlaG9sZGVyIChub2RlKSB7XG4gIHJldHVybiBub2RlLmlzQ29tbWVudCAmJiBub2RlLmFzeW5jRmFjdG9yeVxufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gbm9ybWFsaXplU2NvcGVkU2xvdHMgKFxuICBzbG90cyxcbiAgbm9ybWFsU2xvdHMsXG4gIHByZXZTbG90c1xuKSB7XG4gIHZhciByZXM7XG4gIHZhciBoYXNOb3JtYWxTbG90cyA9IE9iamVjdC5rZXlzKG5vcm1hbFNsb3RzKS5sZW5ndGggPiAwO1xuICB2YXIgaXNTdGFibGUgPSBzbG90cyA/ICEhc2xvdHMuJHN0YWJsZSA6ICFoYXNOb3JtYWxTbG90cztcbiAgdmFyIGtleSA9IHNsb3RzICYmIHNsb3RzLiRrZXk7XG4gIGlmICghc2xvdHMpIHtcbiAgICByZXMgPSB7fTtcbiAgfSBlbHNlIGlmIChzbG90cy5fbm9ybWFsaXplZCkge1xuICAgIC8vIGZhc3QgcGF0aCAxOiBjaGlsZCBjb21wb25lbnQgcmUtcmVuZGVyIG9ubHksIHBhcmVudCBkaWQgbm90IGNoYW5nZVxuICAgIHJldHVybiBzbG90cy5fbm9ybWFsaXplZFxuICB9IGVsc2UgaWYgKFxuICAgIGlzU3RhYmxlICYmXG4gICAgcHJldlNsb3RzICYmXG4gICAgcHJldlNsb3RzICE9PSBlbXB0eU9iamVjdCAmJlxuICAgIGtleSA9PT0gcHJldlNsb3RzLiRrZXkgJiZcbiAgICAhaGFzTm9ybWFsU2xvdHMgJiZcbiAgICAhcHJldlNsb3RzLiRoYXNOb3JtYWxcbiAgKSB7XG4gICAgLy8gZmFzdCBwYXRoIDI6IHN0YWJsZSBzY29wZWQgc2xvdHMgdy8gbm8gbm9ybWFsIHNsb3RzIHRvIHByb3h5LFxuICAgIC8vIG9ubHkgbmVlZCB0byBub3JtYWxpemUgb25jZVxuICAgIHJldHVybiBwcmV2U2xvdHNcbiAgfSBlbHNlIHtcbiAgICByZXMgPSB7fTtcbiAgICBmb3IgKHZhciBrZXkkMSBpbiBzbG90cykge1xuICAgICAgaWYgKHNsb3RzW2tleSQxXSAmJiBrZXkkMVswXSAhPT0gJyQnKSB7XG4gICAgICAgIHJlc1trZXkkMV0gPSBub3JtYWxpemVTY29wZWRTbG90KG5vcm1hbFNsb3RzLCBrZXkkMSwgc2xvdHNba2V5JDFdKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gZXhwb3NlIG5vcm1hbCBzbG90cyBvbiBzY29wZWRTbG90c1xuICBmb3IgKHZhciBrZXkkMiBpbiBub3JtYWxTbG90cykge1xuICAgIGlmICghKGtleSQyIGluIHJlcykpIHtcbiAgICAgIHJlc1trZXkkMl0gPSBwcm94eU5vcm1hbFNsb3Qobm9ybWFsU2xvdHMsIGtleSQyKTtcbiAgICB9XG4gIH1cbiAgLy8gYXZvcmlheiBzZWVtcyB0byBtb2NrIGEgbm9uLWV4dGVuc2libGUgJHNjb3BlZFNsb3RzIG9iamVjdFxuICAvLyBhbmQgd2hlbiB0aGF0IGlzIHBhc3NlZCBkb3duIHRoaXMgd291bGQgY2F1c2UgYW4gZXJyb3JcbiAgaWYgKHNsb3RzICYmIE9iamVjdC5pc0V4dGVuc2libGUoc2xvdHMpKSB7XG4gICAgKHNsb3RzKS5fbm9ybWFsaXplZCA9IHJlcztcbiAgfVxuICBkZWYocmVzLCAnJHN0YWJsZScsIGlzU3RhYmxlKTtcbiAgZGVmKHJlcywgJyRrZXknLCBrZXkpO1xuICBkZWYocmVzLCAnJGhhc05vcm1hbCcsIGhhc05vcm1hbFNsb3RzKTtcbiAgcmV0dXJuIHJlc1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVTY29wZWRTbG90KG5vcm1hbFNsb3RzLCBrZXksIGZuKSB7XG4gIHZhciBub3JtYWxpemVkID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciByZXMgPSBhcmd1bWVudHMubGVuZ3RoID8gZm4uYXBwbHkobnVsbCwgYXJndW1lbnRzKSA6IGZuKHt9KTtcbiAgICByZXMgPSByZXMgJiYgdHlwZW9mIHJlcyA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkocmVzKVxuICAgICAgPyBbcmVzXSAvLyBzaW5nbGUgdm5vZGVcbiAgICAgIDogbm9ybWFsaXplQ2hpbGRyZW4ocmVzKTtcbiAgICB2YXIgdm5vZGUgPSByZXMgJiYgcmVzWzBdO1xuICAgIHJldHVybiByZXMgJiYgKFxuICAgICAgIXZub2RlIHx8XG4gICAgICAocmVzLmxlbmd0aCA9PT0gMSAmJiB2bm9kZS5pc0NvbW1lbnQgJiYgIWlzQXN5bmNQbGFjZWhvbGRlcih2bm9kZSkpIC8vICM5NjU4LCAjMTAzOTFcbiAgICApID8gdW5kZWZpbmVkXG4gICAgICA6IHJlc1xuICB9O1xuICAvLyB0aGlzIGlzIGEgc2xvdCB1c2luZyB0aGUgbmV3IHYtc2xvdCBzeW50YXggd2l0aG91dCBzY29wZS4gYWx0aG91Z2ggaXQgaXNcbiAgLy8gY29tcGlsZWQgYXMgYSBzY29wZWQgc2xvdCwgcmVuZGVyIGZuIHVzZXJzIHdvdWxkIGV4cGVjdCBpdCB0byBiZSBwcmVzZW50XG4gIC8vIG9uIHRoaXMuJHNsb3RzIGJlY2F1c2UgdGhlIHVzYWdlIGlzIHNlbWFudGljYWxseSBhIG5vcm1hbCBzbG90LlxuICBpZiAoZm4ucHJveHkpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobm9ybWFsU2xvdHMsIGtleSwge1xuICAgICAgZ2V0OiBub3JtYWxpemVkLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICB9XG4gIHJldHVybiBub3JtYWxpemVkXG59XG5cbmZ1bmN0aW9uIHByb3h5Tm9ybWFsU2xvdChzbG90cywga2V5KSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7IHJldHVybiBzbG90c1trZXldOyB9XG59XG5cbi8qICAqL1xuXG4vKipcbiAqIFJ1bnRpbWUgaGVscGVyIGZvciByZW5kZXJpbmcgdi1mb3IgbGlzdHMuXG4gKi9cbmZ1bmN0aW9uIHJlbmRlckxpc3QgKFxuICB2YWwsXG4gIHJlbmRlclxuKSB7XG4gIHZhciByZXQsIGksIGwsIGtleXMsIGtleTtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSB8fCB0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgIHJldCA9IG5ldyBBcnJheSh2YWwubGVuZ3RoKTtcbiAgICBmb3IgKGkgPSAwLCBsID0gdmFsLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgcmV0W2ldID0gcmVuZGVyKHZhbFtpXSwgaSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgcmV0ID0gbmV3IEFycmF5KHZhbCk7XG4gICAgZm9yIChpID0gMDsgaSA8IHZhbDsgaSsrKSB7XG4gICAgICByZXRbaV0gPSByZW5kZXIoaSArIDEsIGkpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChpc09iamVjdCh2YWwpKSB7XG4gICAgaWYgKGhhc1N5bWJvbCAmJiB2YWxbU3ltYm9sLml0ZXJhdG9yXSkge1xuICAgICAgcmV0ID0gW107XG4gICAgICB2YXIgaXRlcmF0b3IgPSB2YWxbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICAgICAgdmFyIHJlc3VsdCA9IGl0ZXJhdG9yLm5leHQoKTtcbiAgICAgIHdoaWxlICghcmVzdWx0LmRvbmUpIHtcbiAgICAgICAgcmV0LnB1c2gocmVuZGVyKHJlc3VsdC52YWx1ZSwgcmV0Lmxlbmd0aCkpO1xuICAgICAgICByZXN1bHQgPSBpdGVyYXRvci5uZXh0KCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGtleXMgPSBPYmplY3Qua2V5cyh2YWwpO1xuICAgICAgcmV0ID0gbmV3IEFycmF5KGtleXMubGVuZ3RoKTtcbiAgICAgIGZvciAoaSA9IDAsIGwgPSBrZXlzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICBrZXkgPSBrZXlzW2ldO1xuICAgICAgICByZXRbaV0gPSByZW5kZXIodmFsW2tleV0sIGtleSwgaSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmICghaXNEZWYocmV0KSkge1xuICAgIHJldCA9IFtdO1xuICB9XG4gIChyZXQpLl9pc1ZMaXN0ID0gdHJ1ZTtcbiAgcmV0dXJuIHJldFxufVxuXG4vKiAgKi9cblxuLyoqXG4gKiBSdW50aW1lIGhlbHBlciBmb3IgcmVuZGVyaW5nIDxzbG90PlxuICovXG5mdW5jdGlvbiByZW5kZXJTbG90IChcbiAgbmFtZSxcbiAgZmFsbGJhY2tSZW5kZXIsXG4gIHByb3BzLFxuICBiaW5kT2JqZWN0XG4pIHtcbiAgdmFyIHNjb3BlZFNsb3RGbiA9IHRoaXMuJHNjb3BlZFNsb3RzW25hbWVdO1xuICB2YXIgbm9kZXM7XG4gIGlmIChzY29wZWRTbG90Rm4pIHtcbiAgICAvLyBzY29wZWQgc2xvdFxuICAgIHByb3BzID0gcHJvcHMgfHwge307XG4gICAgaWYgKGJpbmRPYmplY3QpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICFpc09iamVjdChiaW5kT2JqZWN0KSkge1xuICAgICAgICB3YXJuKCdzbG90IHYtYmluZCB3aXRob3V0IGFyZ3VtZW50IGV4cGVjdHMgYW4gT2JqZWN0JywgdGhpcyk7XG4gICAgICB9XG4gICAgICBwcm9wcyA9IGV4dGVuZChleHRlbmQoe30sIGJpbmRPYmplY3QpLCBwcm9wcyk7XG4gICAgfVxuICAgIG5vZGVzID1cbiAgICAgIHNjb3BlZFNsb3RGbihwcm9wcykgfHxcbiAgICAgICh0eXBlb2YgZmFsbGJhY2tSZW5kZXIgPT09ICdmdW5jdGlvbicgPyBmYWxsYmFja1JlbmRlcigpIDogZmFsbGJhY2tSZW5kZXIpO1xuICB9IGVsc2Uge1xuICAgIG5vZGVzID1cbiAgICAgIHRoaXMuJHNsb3RzW25hbWVdIHx8XG4gICAgICAodHlwZW9mIGZhbGxiYWNrUmVuZGVyID09PSAnZnVuY3Rpb24nID8gZmFsbGJhY2tSZW5kZXIoKSA6IGZhbGxiYWNrUmVuZGVyKTtcbiAgfVxuXG4gIHZhciB0YXJnZXQgPSBwcm9wcyAmJiBwcm9wcy5zbG90O1xuICBpZiAodGFyZ2V0KSB7XG4gICAgcmV0dXJuIHRoaXMuJGNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJywgeyBzbG90OiB0YXJnZXQgfSwgbm9kZXMpXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5vZGVzXG4gIH1cbn1cblxuLyogICovXG5cbi8qKlxuICogUnVudGltZSBoZWxwZXIgZm9yIHJlc29sdmluZyBmaWx0ZXJzXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVGaWx0ZXIgKGlkKSB7XG4gIHJldHVybiByZXNvbHZlQXNzZXQodGhpcy4kb3B0aW9ucywgJ2ZpbHRlcnMnLCBpZCwgdHJ1ZSkgfHwgaWRlbnRpdHlcbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIGlzS2V5Tm90TWF0Y2ggKGV4cGVjdCwgYWN0dWFsKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGV4cGVjdCkpIHtcbiAgICByZXR1cm4gZXhwZWN0LmluZGV4T2YoYWN0dWFsKSA9PT0gLTFcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZXhwZWN0ICE9PSBhY3R1YWxcbiAgfVxufVxuXG4vKipcbiAqIFJ1bnRpbWUgaGVscGVyIGZvciBjaGVja2luZyBrZXlDb2RlcyBmcm9tIGNvbmZpZy5cbiAqIGV4cG9zZWQgYXMgVnVlLnByb3RvdHlwZS5fa1xuICogcGFzc2luZyBpbiBldmVudEtleU5hbWUgYXMgbGFzdCBhcmd1bWVudCBzZXBhcmF0ZWx5IGZvciBiYWNrd2FyZHMgY29tcGF0XG4gKi9cbmZ1bmN0aW9uIGNoZWNrS2V5Q29kZXMgKFxuICBldmVudEtleUNvZGUsXG4gIGtleSxcbiAgYnVpbHRJbktleUNvZGUsXG4gIGV2ZW50S2V5TmFtZSxcbiAgYnVpbHRJbktleU5hbWVcbikge1xuICB2YXIgbWFwcGVkS2V5Q29kZSA9IGNvbmZpZy5rZXlDb2Rlc1trZXldIHx8IGJ1aWx0SW5LZXlDb2RlO1xuICBpZiAoYnVpbHRJbktleU5hbWUgJiYgZXZlbnRLZXlOYW1lICYmICFjb25maWcua2V5Q29kZXNba2V5XSkge1xuICAgIHJldHVybiBpc0tleU5vdE1hdGNoKGJ1aWx0SW5LZXlOYW1lLCBldmVudEtleU5hbWUpXG4gIH0gZWxzZSBpZiAobWFwcGVkS2V5Q29kZSkge1xuICAgIHJldHVybiBpc0tleU5vdE1hdGNoKG1hcHBlZEtleUNvZGUsIGV2ZW50S2V5Q29kZSlcbiAgfSBlbHNlIGlmIChldmVudEtleU5hbWUpIHtcbiAgICByZXR1cm4gaHlwaGVuYXRlKGV2ZW50S2V5TmFtZSkgIT09IGtleVxuICB9XG4gIHJldHVybiBldmVudEtleUNvZGUgPT09IHVuZGVmaW5lZFxufVxuXG4vKiAgKi9cblxuLyoqXG4gKiBSdW50aW1lIGhlbHBlciBmb3IgbWVyZ2luZyB2LWJpbmQ9XCJvYmplY3RcIiBpbnRvIGEgVk5vZGUncyBkYXRhLlxuICovXG5mdW5jdGlvbiBiaW5kT2JqZWN0UHJvcHMgKFxuICBkYXRhLFxuICB0YWcsXG4gIHZhbHVlLFxuICBhc1Byb3AsXG4gIGlzU3luY1xuKSB7XG4gIGlmICh2YWx1ZSkge1xuICAgIGlmICghaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICAgICd2LWJpbmQgd2l0aG91dCBhcmd1bWVudCBleHBlY3RzIGFuIE9iamVjdCBvciBBcnJheSB2YWx1ZScsXG4gICAgICAgIHRoaXNcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICB2YWx1ZSA9IHRvT2JqZWN0KHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHZhciBoYXNoO1xuICAgICAgdmFyIGxvb3AgPSBmdW5jdGlvbiAoIGtleSApIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGtleSA9PT0gJ2NsYXNzJyB8fFxuICAgICAgICAgIGtleSA9PT0gJ3N0eWxlJyB8fFxuICAgICAgICAgIGlzUmVzZXJ2ZWRBdHRyaWJ1dGUoa2V5KVxuICAgICAgICApIHtcbiAgICAgICAgICBoYXNoID0gZGF0YTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIgdHlwZSA9IGRhdGEuYXR0cnMgJiYgZGF0YS5hdHRycy50eXBlO1xuICAgICAgICAgIGhhc2ggPSBhc1Byb3AgfHwgY29uZmlnLm11c3RVc2VQcm9wKHRhZywgdHlwZSwga2V5KVxuICAgICAgICAgICAgPyBkYXRhLmRvbVByb3BzIHx8IChkYXRhLmRvbVByb3BzID0ge30pXG4gICAgICAgICAgICA6IGRhdGEuYXR0cnMgfHwgKGRhdGEuYXR0cnMgPSB7fSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGNhbWVsaXplZEtleSA9IGNhbWVsaXplKGtleSk7XG4gICAgICAgIHZhciBoeXBoZW5hdGVkS2V5ID0gaHlwaGVuYXRlKGtleSk7XG4gICAgICAgIGlmICghKGNhbWVsaXplZEtleSBpbiBoYXNoKSAmJiAhKGh5cGhlbmF0ZWRLZXkgaW4gaGFzaCkpIHtcbiAgICAgICAgICBoYXNoW2tleV0gPSB2YWx1ZVtrZXldO1xuXG4gICAgICAgICAgaWYgKGlzU3luYykge1xuICAgICAgICAgICAgdmFyIG9uID0gZGF0YS5vbiB8fCAoZGF0YS5vbiA9IHt9KTtcbiAgICAgICAgICAgIG9uWyhcInVwZGF0ZTpcIiArIGtleSldID0gZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICB2YWx1ZVtrZXldID0gJGV2ZW50O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGZvciAodmFyIGtleSBpbiB2YWx1ZSkgbG9vcCgga2V5ICk7XG4gICAgfVxuICB9XG4gIHJldHVybiBkYXRhXG59XG5cbi8qICAqL1xuXG4vKipcbiAqIFJ1bnRpbWUgaGVscGVyIGZvciByZW5kZXJpbmcgc3RhdGljIHRyZWVzLlxuICovXG5mdW5jdGlvbiByZW5kZXJTdGF0aWMgKFxuICBpbmRleCxcbiAgaXNJbkZvclxuKSB7XG4gIHZhciBjYWNoZWQgPSB0aGlzLl9zdGF0aWNUcmVlcyB8fCAodGhpcy5fc3RhdGljVHJlZXMgPSBbXSk7XG4gIHZhciB0cmVlID0gY2FjaGVkW2luZGV4XTtcbiAgLy8gaWYgaGFzIGFscmVhZHktcmVuZGVyZWQgc3RhdGljIHRyZWUgYW5kIG5vdCBpbnNpZGUgdi1mb3IsXG4gIC8vIHdlIGNhbiByZXVzZSB0aGUgc2FtZSB0cmVlLlxuICBpZiAodHJlZSAmJiAhaXNJbkZvcikge1xuICAgIHJldHVybiB0cmVlXG4gIH1cbiAgLy8gb3RoZXJ3aXNlLCByZW5kZXIgYSBmcmVzaCB0cmVlLlxuICB0cmVlID0gY2FjaGVkW2luZGV4XSA9IHRoaXMuJG9wdGlvbnMuc3RhdGljUmVuZGVyRm5zW2luZGV4XS5jYWxsKFxuICAgIHRoaXMuX3JlbmRlclByb3h5LFxuICAgIG51bGwsXG4gICAgdGhpcyAvLyBmb3IgcmVuZGVyIGZucyBnZW5lcmF0ZWQgZm9yIGZ1bmN0aW9uYWwgY29tcG9uZW50IHRlbXBsYXRlc1xuICApO1xuICBtYXJrU3RhdGljKHRyZWUsIChcIl9fc3RhdGljX19cIiArIGluZGV4KSwgZmFsc2UpO1xuICByZXR1cm4gdHJlZVxufVxuXG4vKipcbiAqIFJ1bnRpbWUgaGVscGVyIGZvciB2LW9uY2UuXG4gKiBFZmZlY3RpdmVseSBpdCBtZWFucyBtYXJraW5nIHRoZSBub2RlIGFzIHN0YXRpYyB3aXRoIGEgdW5pcXVlIGtleS5cbiAqL1xuZnVuY3Rpb24gbWFya09uY2UgKFxuICB0cmVlLFxuICBpbmRleCxcbiAga2V5XG4pIHtcbiAgbWFya1N0YXRpYyh0cmVlLCAoXCJfX29uY2VfX1wiICsgaW5kZXggKyAoa2V5ID8gKFwiX1wiICsga2V5KSA6IFwiXCIpKSwgdHJ1ZSk7XG4gIHJldHVybiB0cmVlXG59XG5cbmZ1bmN0aW9uIG1hcmtTdGF0aWMgKFxuICB0cmVlLFxuICBrZXksXG4gIGlzT25jZVxuKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHRyZWUpKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0cmVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodHJlZVtpXSAmJiB0eXBlb2YgdHJlZVtpXSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgbWFya1N0YXRpY05vZGUodHJlZVtpXSwgKGtleSArIFwiX1wiICsgaSksIGlzT25jZSk7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG1hcmtTdGF0aWNOb2RlKHRyZWUsIGtleSwgaXNPbmNlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXJrU3RhdGljTm9kZSAobm9kZSwga2V5LCBpc09uY2UpIHtcbiAgbm9kZS5pc1N0YXRpYyA9IHRydWU7XG4gIG5vZGUua2V5ID0ga2V5O1xuICBub2RlLmlzT25jZSA9IGlzT25jZTtcbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIGJpbmRPYmplY3RMaXN0ZW5lcnMgKGRhdGEsIHZhbHVlKSB7XG4gIGlmICh2YWx1ZSkge1xuICAgIGlmICghaXNQbGFpbk9iamVjdCh2YWx1ZSkpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgd2FybihcbiAgICAgICAgJ3Ytb24gd2l0aG91dCBhcmd1bWVudCBleHBlY3RzIGFuIE9iamVjdCB2YWx1ZScsXG4gICAgICAgIHRoaXNcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBvbiA9IGRhdGEub24gPSBkYXRhLm9uID8gZXh0ZW5kKHt9LCBkYXRhLm9uKSA6IHt9O1xuICAgICAgZm9yICh2YXIga2V5IGluIHZhbHVlKSB7XG4gICAgICAgIHZhciBleGlzdGluZyA9IG9uW2tleV07XG4gICAgICAgIHZhciBvdXJzID0gdmFsdWVba2V5XTtcbiAgICAgICAgb25ba2V5XSA9IGV4aXN0aW5nID8gW10uY29uY2F0KGV4aXN0aW5nLCBvdXJzKSA6IG91cnM7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBkYXRhXG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiByZXNvbHZlU2NvcGVkU2xvdHMgKFxuICBmbnMsIC8vIHNlZSBmbG93L3Zub2RlXG4gIHJlcyxcbiAgLy8gdGhlIGZvbGxvd2luZyBhcmUgYWRkZWQgaW4gMi42XG4gIGhhc0R5bmFtaWNLZXlzLFxuICBjb250ZW50SGFzaEtleVxuKSB7XG4gIHJlcyA9IHJlcyB8fCB7ICRzdGFibGU6ICFoYXNEeW5hbWljS2V5cyB9O1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGZucy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBzbG90ID0gZm5zW2ldO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHNsb3QpKSB7XG4gICAgICByZXNvbHZlU2NvcGVkU2xvdHMoc2xvdCwgcmVzLCBoYXNEeW5hbWljS2V5cyk7XG4gICAgfSBlbHNlIGlmIChzbG90KSB7XG4gICAgICAvLyBtYXJrZXIgZm9yIHJldmVyc2UgcHJveHlpbmcgdi1zbG90IHdpdGhvdXQgc2NvcGUgb24gdGhpcy4kc2xvdHNcbiAgICAgIGlmIChzbG90LnByb3h5KSB7XG4gICAgICAgIHNsb3QuZm4ucHJveHkgPSB0cnVlO1xuICAgICAgfVxuICAgICAgcmVzW3Nsb3Qua2V5XSA9IHNsb3QuZm47XG4gICAgfVxuICB9XG4gIGlmIChjb250ZW50SGFzaEtleSkge1xuICAgIChyZXMpLiRrZXkgPSBjb250ZW50SGFzaEtleTtcbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBiaW5kRHluYW1pY0tleXMgKGJhc2VPYmosIHZhbHVlcykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkgKz0gMikge1xuICAgIHZhciBrZXkgPSB2YWx1ZXNbaV07XG4gICAgaWYgKHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnICYmIGtleSkge1xuICAgICAgYmFzZU9ialt2YWx1ZXNbaV1dID0gdmFsdWVzW2kgKyAxXTtcbiAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYga2V5ICE9PSAnJyAmJiBrZXkgIT09IG51bGwpIHtcbiAgICAgIC8vIG51bGwgaXMgYSBzcGVjaWFsIHZhbHVlIGZvciBleHBsaWNpdGx5IHJlbW92aW5nIGEgYmluZGluZ1xuICAgICAgd2FybihcbiAgICAgICAgKFwiSW52YWxpZCB2YWx1ZSBmb3IgZHluYW1pYyBkaXJlY3RpdmUgYXJndW1lbnQgKGV4cGVjdGVkIHN0cmluZyBvciBudWxsKTogXCIgKyBrZXkpLFxuICAgICAgICB0aGlzXG4gICAgICApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYmFzZU9ialxufVxuXG4vLyBoZWxwZXIgdG8gZHluYW1pY2FsbHkgYXBwZW5kIG1vZGlmaWVyIHJ1bnRpbWUgbWFya2VycyB0byBldmVudCBuYW1lcy5cbi8vIGVuc3VyZSBvbmx5IGFwcGVuZCB3aGVuIHZhbHVlIGlzIGFscmVhZHkgc3RyaW5nLCBvdGhlcndpc2UgaXQgd2lsbCBiZSBjYXN0XG4vLyB0byBzdHJpbmcgYW5kIGNhdXNlIHRoZSB0eXBlIGNoZWNrIHRvIG1pc3MuXG5mdW5jdGlvbiBwcmVwZW5kTW9kaWZpZXIgKHZhbHVlLCBzeW1ib2wpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyBzeW1ib2wgKyB2YWx1ZSA6IHZhbHVlXG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBpbnN0YWxsUmVuZGVySGVscGVycyAodGFyZ2V0KSB7XG4gIHRhcmdldC5fbyA9IG1hcmtPbmNlO1xuICB0YXJnZXQuX24gPSB0b051bWJlcjtcbiAgdGFyZ2V0Ll9zID0gdG9TdHJpbmc7XG4gIHRhcmdldC5fbCA9IHJlbmRlckxpc3Q7XG4gIHRhcmdldC5fdCA9IHJlbmRlclNsb3Q7XG4gIHRhcmdldC5fcSA9IGxvb3NlRXF1YWw7XG4gIHRhcmdldC5faSA9IGxvb3NlSW5kZXhPZjtcbiAgdGFyZ2V0Ll9tID0gcmVuZGVyU3RhdGljO1xuICB0YXJnZXQuX2YgPSByZXNvbHZlRmlsdGVyO1xuICB0YXJnZXQuX2sgPSBjaGVja0tleUNvZGVzO1xuICB0YXJnZXQuX2IgPSBiaW5kT2JqZWN0UHJvcHM7XG4gIHRhcmdldC5fdiA9IGNyZWF0ZVRleHRWTm9kZTtcbiAgdGFyZ2V0Ll9lID0gY3JlYXRlRW1wdHlWTm9kZTtcbiAgdGFyZ2V0Ll91ID0gcmVzb2x2ZVNjb3BlZFNsb3RzO1xuICB0YXJnZXQuX2cgPSBiaW5kT2JqZWN0TGlzdGVuZXJzO1xuICB0YXJnZXQuX2QgPSBiaW5kRHluYW1pY0tleXM7XG4gIHRhcmdldC5fcCA9IHByZXBlbmRNb2RpZmllcjtcbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIEZ1bmN0aW9uYWxSZW5kZXJDb250ZXh0IChcbiAgZGF0YSxcbiAgcHJvcHMsXG4gIGNoaWxkcmVuLFxuICBwYXJlbnQsXG4gIEN0b3Jcbikge1xuICB2YXIgdGhpcyQxID0gdGhpcztcblxuICB2YXIgb3B0aW9ucyA9IEN0b3Iub3B0aW9ucztcbiAgLy8gZW5zdXJlIHRoZSBjcmVhdGVFbGVtZW50IGZ1bmN0aW9uIGluIGZ1bmN0aW9uYWwgY29tcG9uZW50c1xuICAvLyBnZXRzIGEgdW5pcXVlIGNvbnRleHQgLSB0aGlzIGlzIG5lY2Vzc2FyeSBmb3IgY29ycmVjdCBuYW1lZCBzbG90IGNoZWNrXG4gIHZhciBjb250ZXh0Vm07XG4gIGlmIChoYXNPd24ocGFyZW50LCAnX3VpZCcpKSB7XG4gICAgY29udGV4dFZtID0gT2JqZWN0LmNyZWF0ZShwYXJlbnQpO1xuICAgIC8vICRmbG93LWRpc2FibGUtbGluZVxuICAgIGNvbnRleHRWbS5fb3JpZ2luYWwgPSBwYXJlbnQ7XG4gIH0gZWxzZSB7XG4gICAgLy8gdGhlIGNvbnRleHQgdm0gcGFzc2VkIGluIGlzIGEgZnVuY3Rpb25hbCBjb250ZXh0IGFzIHdlbGwuXG4gICAgLy8gaW4gdGhpcyBjYXNlIHdlIHdhbnQgdG8gbWFrZSBzdXJlIHdlIGFyZSBhYmxlIHRvIGdldCBhIGhvbGQgdG8gdGhlXG4gICAgLy8gcmVhbCBjb250ZXh0IGluc3RhbmNlLlxuICAgIGNvbnRleHRWbSA9IHBhcmVudDtcbiAgICAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbiAgICBwYXJlbnQgPSBwYXJlbnQuX29yaWdpbmFsO1xuICB9XG4gIHZhciBpc0NvbXBpbGVkID0gaXNUcnVlKG9wdGlvbnMuX2NvbXBpbGVkKTtcbiAgdmFyIG5lZWROb3JtYWxpemF0aW9uID0gIWlzQ29tcGlsZWQ7XG5cbiAgdGhpcy5kYXRhID0gZGF0YTtcbiAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XG4gIHRoaXMucGFyZW50ID0gcGFyZW50O1xuICB0aGlzLmxpc3RlbmVycyA9IGRhdGEub24gfHwgZW1wdHlPYmplY3Q7XG4gIHRoaXMuaW5qZWN0aW9ucyA9IHJlc29sdmVJbmplY3Qob3B0aW9ucy5pbmplY3QsIHBhcmVudCk7XG4gIHRoaXMuc2xvdHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCF0aGlzJDEuJHNsb3RzKSB7XG4gICAgICBub3JtYWxpemVTY29wZWRTbG90cyhcbiAgICAgICAgZGF0YS5zY29wZWRTbG90cyxcbiAgICAgICAgdGhpcyQxLiRzbG90cyA9IHJlc29sdmVTbG90cyhjaGlsZHJlbiwgcGFyZW50KVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMkMS4kc2xvdHNcbiAgfTtcblxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ3Njb3BlZFNsb3RzJywgKHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gZ2V0ICgpIHtcbiAgICAgIHJldHVybiBub3JtYWxpemVTY29wZWRTbG90cyhkYXRhLnNjb3BlZFNsb3RzLCB0aGlzLnNsb3RzKCkpXG4gICAgfVxuICB9KSk7XG5cbiAgLy8gc3VwcG9ydCBmb3IgY29tcGlsZWQgZnVuY3Rpb25hbCB0ZW1wbGF0ZVxuICBpZiAoaXNDb21waWxlZCkge1xuICAgIC8vIGV4cG9zaW5nICRvcHRpb25zIGZvciByZW5kZXJTdGF0aWMoKVxuICAgIHRoaXMuJG9wdGlvbnMgPSBvcHRpb25zO1xuICAgIC8vIHByZS1yZXNvbHZlIHNsb3RzIGZvciByZW5kZXJTbG90KClcbiAgICB0aGlzLiRzbG90cyA9IHRoaXMuc2xvdHMoKTtcbiAgICB0aGlzLiRzY29wZWRTbG90cyA9IG5vcm1hbGl6ZVNjb3BlZFNsb3RzKGRhdGEuc2NvcGVkU2xvdHMsIHRoaXMuJHNsb3RzKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLl9zY29wZUlkKSB7XG4gICAgdGhpcy5fYyA9IGZ1bmN0aW9uIChhLCBiLCBjLCBkKSB7XG4gICAgICB2YXIgdm5vZGUgPSBjcmVhdGVFbGVtZW50KGNvbnRleHRWbSwgYSwgYiwgYywgZCwgbmVlZE5vcm1hbGl6YXRpb24pO1xuICAgICAgaWYgKHZub2RlICYmICFBcnJheS5pc0FycmF5KHZub2RlKSkge1xuICAgICAgICB2bm9kZS5mblNjb3BlSWQgPSBvcHRpb25zLl9zY29wZUlkO1xuICAgICAgICB2bm9kZS5mbkNvbnRleHQgPSBwYXJlbnQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gdm5vZGVcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHRoaXMuX2MgPSBmdW5jdGlvbiAoYSwgYiwgYywgZCkgeyByZXR1cm4gY3JlYXRlRWxlbWVudChjb250ZXh0Vm0sIGEsIGIsIGMsIGQsIG5lZWROb3JtYWxpemF0aW9uKTsgfTtcbiAgfVxufVxuXG5pbnN0YWxsUmVuZGVySGVscGVycyhGdW5jdGlvbmFsUmVuZGVyQ29udGV4dC5wcm90b3R5cGUpO1xuXG5mdW5jdGlvbiBjcmVhdGVGdW5jdGlvbmFsQ29tcG9uZW50IChcbiAgQ3RvcixcbiAgcHJvcHNEYXRhLFxuICBkYXRhLFxuICBjb250ZXh0Vm0sXG4gIGNoaWxkcmVuXG4pIHtcbiAgdmFyIG9wdGlvbnMgPSBDdG9yLm9wdGlvbnM7XG4gIHZhciBwcm9wcyA9IHt9O1xuICB2YXIgcHJvcE9wdGlvbnMgPSBvcHRpb25zLnByb3BzO1xuICBpZiAoaXNEZWYocHJvcE9wdGlvbnMpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIHByb3BPcHRpb25zKSB7XG4gICAgICBwcm9wc1trZXldID0gdmFsaWRhdGVQcm9wKGtleSwgcHJvcE9wdGlvbnMsIHByb3BzRGF0YSB8fCBlbXB0eU9iamVjdCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChpc0RlZihkYXRhLmF0dHJzKSkgeyBtZXJnZVByb3BzKHByb3BzLCBkYXRhLmF0dHJzKTsgfVxuICAgIGlmIChpc0RlZihkYXRhLnByb3BzKSkgeyBtZXJnZVByb3BzKHByb3BzLCBkYXRhLnByb3BzKTsgfVxuICB9XG5cbiAgdmFyIHJlbmRlckNvbnRleHQgPSBuZXcgRnVuY3Rpb25hbFJlbmRlckNvbnRleHQoXG4gICAgZGF0YSxcbiAgICBwcm9wcyxcbiAgICBjaGlsZHJlbixcbiAgICBjb250ZXh0Vm0sXG4gICAgQ3RvclxuICApO1xuXG4gIHZhciB2bm9kZSA9IG9wdGlvbnMucmVuZGVyLmNhbGwobnVsbCwgcmVuZGVyQ29udGV4dC5fYywgcmVuZGVyQ29udGV4dCk7XG5cbiAgaWYgKHZub2RlIGluc3RhbmNlb2YgVk5vZGUpIHtcbiAgICByZXR1cm4gY2xvbmVBbmRNYXJrRnVuY3Rpb25hbFJlc3VsdCh2bm9kZSwgZGF0YSwgcmVuZGVyQ29udGV4dC5wYXJlbnQsIG9wdGlvbnMsIHJlbmRlckNvbnRleHQpXG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2bm9kZSkpIHtcbiAgICB2YXIgdm5vZGVzID0gbm9ybWFsaXplQ2hpbGRyZW4odm5vZGUpIHx8IFtdO1xuICAgIHZhciByZXMgPSBuZXcgQXJyYXkodm5vZGVzLmxlbmd0aCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2bm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlc1tpXSA9IGNsb25lQW5kTWFya0Z1bmN0aW9uYWxSZXN1bHQodm5vZGVzW2ldLCBkYXRhLCByZW5kZXJDb250ZXh0LnBhcmVudCwgb3B0aW9ucywgcmVuZGVyQ29udGV4dCk7XG4gICAgfVxuICAgIHJldHVybiByZXNcbiAgfVxufVxuXG5mdW5jdGlvbiBjbG9uZUFuZE1hcmtGdW5jdGlvbmFsUmVzdWx0ICh2bm9kZSwgZGF0YSwgY29udGV4dFZtLCBvcHRpb25zLCByZW5kZXJDb250ZXh0KSB7XG4gIC8vICM3ODE3IGNsb25lIG5vZGUgYmVmb3JlIHNldHRpbmcgZm5Db250ZXh0LCBvdGhlcndpc2UgaWYgdGhlIG5vZGUgaXMgcmV1c2VkXG4gIC8vIChlLmcuIGl0IHdhcyBmcm9tIGEgY2FjaGVkIG5vcm1hbCBzbG90KSB0aGUgZm5Db250ZXh0IGNhdXNlcyBuYW1lZCBzbG90c1xuICAvLyB0aGF0IHNob3VsZCBub3QgYmUgbWF0Y2hlZCB0byBtYXRjaC5cbiAgdmFyIGNsb25lID0gY2xvbmVWTm9kZSh2bm9kZSk7XG4gIGNsb25lLmZuQ29udGV4dCA9IGNvbnRleHRWbTtcbiAgY2xvbmUuZm5PcHRpb25zID0gb3B0aW9ucztcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAoY2xvbmUuZGV2dG9vbHNNZXRhID0gY2xvbmUuZGV2dG9vbHNNZXRhIHx8IHt9KS5yZW5kZXJDb250ZXh0ID0gcmVuZGVyQ29udGV4dDtcbiAgfVxuICBpZiAoZGF0YS5zbG90KSB7XG4gICAgKGNsb25lLmRhdGEgfHwgKGNsb25lLmRhdGEgPSB7fSkpLnNsb3QgPSBkYXRhLnNsb3Q7XG4gIH1cbiAgcmV0dXJuIGNsb25lXG59XG5cbmZ1bmN0aW9uIG1lcmdlUHJvcHMgKHRvLCBmcm9tKSB7XG4gIGZvciAodmFyIGtleSBpbiBmcm9tKSB7XG4gICAgdG9bY2FtZWxpemUoa2V5KV0gPSBmcm9tW2tleV07XG4gIH1cbn1cblxuLyogICovXG5cbi8qICAqL1xuXG4vKiAgKi9cblxuLyogICovXG5cbi8vIGlubGluZSBob29rcyB0byBiZSBpbnZva2VkIG9uIGNvbXBvbmVudCBWTm9kZXMgZHVyaW5nIHBhdGNoXG52YXIgY29tcG9uZW50Vk5vZGVIb29rcyA9IHtcbiAgaW5pdDogZnVuY3Rpb24gaW5pdCAodm5vZGUsIGh5ZHJhdGluZykge1xuICAgIGlmIChcbiAgICAgIHZub2RlLmNvbXBvbmVudEluc3RhbmNlICYmXG4gICAgICAhdm5vZGUuY29tcG9uZW50SW5zdGFuY2UuX2lzRGVzdHJveWVkICYmXG4gICAgICB2bm9kZS5kYXRhLmtlZXBBbGl2ZVxuICAgICkge1xuICAgICAgLy8ga2VwdC1hbGl2ZSBjb21wb25lbnRzLCB0cmVhdCBhcyBhIHBhdGNoXG4gICAgICB2YXIgbW91bnRlZE5vZGUgPSB2bm9kZTsgLy8gd29yayBhcm91bmQgZmxvd1xuICAgICAgY29tcG9uZW50Vk5vZGVIb29rcy5wcmVwYXRjaChtb3VudGVkTm9kZSwgbW91bnRlZE5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgY2hpbGQgPSB2bm9kZS5jb21wb25lbnRJbnN0YW5jZSA9IGNyZWF0ZUNvbXBvbmVudEluc3RhbmNlRm9yVm5vZGUoXG4gICAgICAgIHZub2RlLFxuICAgICAgICBhY3RpdmVJbnN0YW5jZVxuICAgICAgKTtcbiAgICAgIGNoaWxkLiRtb3VudChoeWRyYXRpbmcgPyB2bm9kZS5lbG0gOiB1bmRlZmluZWQsIGh5ZHJhdGluZyk7XG4gICAgfVxuICB9LFxuXG4gIHByZXBhdGNoOiBmdW5jdGlvbiBwcmVwYXRjaCAob2xkVm5vZGUsIHZub2RlKSB7XG4gICAgdmFyIG9wdGlvbnMgPSB2bm9kZS5jb21wb25lbnRPcHRpb25zO1xuICAgIHZhciBjaGlsZCA9IHZub2RlLmNvbXBvbmVudEluc3RhbmNlID0gb2xkVm5vZGUuY29tcG9uZW50SW5zdGFuY2U7XG4gICAgdXBkYXRlQ2hpbGRDb21wb25lbnQoXG4gICAgICBjaGlsZCxcbiAgICAgIG9wdGlvbnMucHJvcHNEYXRhLCAvLyB1cGRhdGVkIHByb3BzXG4gICAgICBvcHRpb25zLmxpc3RlbmVycywgLy8gdXBkYXRlZCBsaXN0ZW5lcnNcbiAgICAgIHZub2RlLCAvLyBuZXcgcGFyZW50IHZub2RlXG4gICAgICBvcHRpb25zLmNoaWxkcmVuIC8vIG5ldyBjaGlsZHJlblxuICAgICk7XG4gIH0sXG5cbiAgaW5zZXJ0OiBmdW5jdGlvbiBpbnNlcnQgKHZub2RlKSB7XG4gICAgdmFyIGNvbnRleHQgPSB2bm9kZS5jb250ZXh0O1xuICAgIHZhciBjb21wb25lbnRJbnN0YW5jZSA9IHZub2RlLmNvbXBvbmVudEluc3RhbmNlO1xuICAgIGlmICghY29tcG9uZW50SW5zdGFuY2UuX2lzTW91bnRlZCkge1xuICAgICAgY29tcG9uZW50SW5zdGFuY2UuX2lzTW91bnRlZCA9IHRydWU7XG4gICAgICBjYWxsSG9vayhjb21wb25lbnRJbnN0YW5jZSwgJ21vdW50ZWQnKTtcbiAgICB9XG4gICAgaWYgKHZub2RlLmRhdGEua2VlcEFsaXZlKSB7XG4gICAgICBpZiAoY29udGV4dC5faXNNb3VudGVkKSB7XG4gICAgICAgIC8vIHZ1ZS1yb3V0ZXIjMTIxMlxuICAgICAgICAvLyBEdXJpbmcgdXBkYXRlcywgYSBrZXB0LWFsaXZlIGNvbXBvbmVudCdzIGNoaWxkIGNvbXBvbmVudHMgbWF5XG4gICAgICAgIC8vIGNoYW5nZSwgc28gZGlyZWN0bHkgd2Fsa2luZyB0aGUgdHJlZSBoZXJlIG1heSBjYWxsIGFjdGl2YXRlZCBob29rc1xuICAgICAgICAvLyBvbiBpbmNvcnJlY3QgY2hpbGRyZW4uIEluc3RlYWQgd2UgcHVzaCB0aGVtIGludG8gYSBxdWV1ZSB3aGljaCB3aWxsXG4gICAgICAgIC8vIGJlIHByb2Nlc3NlZCBhZnRlciB0aGUgd2hvbGUgcGF0Y2ggcHJvY2VzcyBlbmRlZC5cbiAgICAgICAgcXVldWVBY3RpdmF0ZWRDb21wb25lbnQoY29tcG9uZW50SW5zdGFuY2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWN0aXZhdGVDaGlsZENvbXBvbmVudChjb21wb25lbnRJbnN0YW5jZSwgdHJ1ZSAvKiBkaXJlY3QgKi8pO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICBkZXN0cm95OiBmdW5jdGlvbiBkZXN0cm95ICh2bm9kZSkge1xuICAgIHZhciBjb21wb25lbnRJbnN0YW5jZSA9IHZub2RlLmNvbXBvbmVudEluc3RhbmNlO1xuICAgIGlmICghY29tcG9uZW50SW5zdGFuY2UuX2lzRGVzdHJveWVkKSB7XG4gICAgICBpZiAoIXZub2RlLmRhdGEua2VlcEFsaXZlKSB7XG4gICAgICAgIGNvbXBvbmVudEluc3RhbmNlLiRkZXN0cm95KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWFjdGl2YXRlQ2hpbGRDb21wb25lbnQoY29tcG9uZW50SW5zdGFuY2UsIHRydWUgLyogZGlyZWN0ICovKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbnZhciBob29rc1RvTWVyZ2UgPSBPYmplY3Qua2V5cyhjb21wb25lbnRWTm9kZUhvb2tzKTtcblxuZnVuY3Rpb24gY3JlYXRlQ29tcG9uZW50IChcbiAgQ3RvcixcbiAgZGF0YSxcbiAgY29udGV4dCxcbiAgY2hpbGRyZW4sXG4gIHRhZ1xuKSB7XG4gIGlmIChpc1VuZGVmKEN0b3IpKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICB2YXIgYmFzZUN0b3IgPSBjb250ZXh0LiRvcHRpb25zLl9iYXNlO1xuXG4gIC8vIHBsYWluIG9wdGlvbnMgb2JqZWN0OiB0dXJuIGl0IGludG8gYSBjb25zdHJ1Y3RvclxuICBpZiAoaXNPYmplY3QoQ3RvcikpIHtcbiAgICBDdG9yID0gYmFzZUN0b3IuZXh0ZW5kKEN0b3IpO1xuICB9XG5cbiAgLy8gaWYgYXQgdGhpcyBzdGFnZSBpdCdzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIGFuIGFzeW5jIGNvbXBvbmVudCBmYWN0b3J5LFxuICAvLyByZWplY3QuXG4gIGlmICh0eXBlb2YgQ3RvciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB3YXJuKChcIkludmFsaWQgQ29tcG9uZW50IGRlZmluaXRpb246IFwiICsgKFN0cmluZyhDdG9yKSkpLCBjb250ZXh0KTtcbiAgICB9XG4gICAgcmV0dXJuXG4gIH1cblxuICAvLyBhc3luYyBjb21wb25lbnRcbiAgdmFyIGFzeW5jRmFjdG9yeTtcbiAgaWYgKGlzVW5kZWYoQ3Rvci5jaWQpKSB7XG4gICAgYXN5bmNGYWN0b3J5ID0gQ3RvcjtcbiAgICBDdG9yID0gcmVzb2x2ZUFzeW5jQ29tcG9uZW50KGFzeW5jRmFjdG9yeSwgYmFzZUN0b3IpO1xuICAgIGlmIChDdG9yID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIHJldHVybiBhIHBsYWNlaG9sZGVyIG5vZGUgZm9yIGFzeW5jIGNvbXBvbmVudCwgd2hpY2ggaXMgcmVuZGVyZWRcbiAgICAgIC8vIGFzIGEgY29tbWVudCBub2RlIGJ1dCBwcmVzZXJ2ZXMgYWxsIHRoZSByYXcgaW5mb3JtYXRpb24gZm9yIHRoZSBub2RlLlxuICAgICAgLy8gdGhlIGluZm9ybWF0aW9uIHdpbGwgYmUgdXNlZCBmb3IgYXN5bmMgc2VydmVyLXJlbmRlcmluZyBhbmQgaHlkcmF0aW9uLlxuICAgICAgcmV0dXJuIGNyZWF0ZUFzeW5jUGxhY2Vob2xkZXIoXG4gICAgICAgIGFzeW5jRmFjdG9yeSxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIHRhZ1xuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIGRhdGEgPSBkYXRhIHx8IHt9O1xuXG4gIC8vIHJlc29sdmUgY29uc3RydWN0b3Igb3B0aW9ucyBpbiBjYXNlIGdsb2JhbCBtaXhpbnMgYXJlIGFwcGxpZWQgYWZ0ZXJcbiAgLy8gY29tcG9uZW50IGNvbnN0cnVjdG9yIGNyZWF0aW9uXG4gIHJlc29sdmVDb25zdHJ1Y3Rvck9wdGlvbnMoQ3Rvcik7XG5cbiAgLy8gdHJhbnNmb3JtIGNvbXBvbmVudCB2LW1vZGVsIGRhdGEgaW50byBwcm9wcyAmIGV2ZW50c1xuICBpZiAoaXNEZWYoZGF0YS5tb2RlbCkpIHtcbiAgICB0cmFuc2Zvcm1Nb2RlbChDdG9yLm9wdGlvbnMsIGRhdGEpO1xuICB9XG5cbiAgLy8gZXh0cmFjdCBwcm9wc1xuICB2YXIgcHJvcHNEYXRhID0gZXh0cmFjdFByb3BzRnJvbVZOb2RlRGF0YShkYXRhLCBDdG9yLCB0YWcpO1xuXG4gIC8vIGZ1bmN0aW9uYWwgY29tcG9uZW50XG4gIGlmIChpc1RydWUoQ3Rvci5vcHRpb25zLmZ1bmN0aW9uYWwpKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUZ1bmN0aW9uYWxDb21wb25lbnQoQ3RvciwgcHJvcHNEYXRhLCBkYXRhLCBjb250ZXh0LCBjaGlsZHJlbilcbiAgfVxuXG4gIC8vIGV4dHJhY3QgbGlzdGVuZXJzLCBzaW5jZSB0aGVzZSBuZWVkcyB0byBiZSB0cmVhdGVkIGFzXG4gIC8vIGNoaWxkIGNvbXBvbmVudCBsaXN0ZW5lcnMgaW5zdGVhZCBvZiBET00gbGlzdGVuZXJzXG4gIHZhciBsaXN0ZW5lcnMgPSBkYXRhLm9uO1xuICAvLyByZXBsYWNlIHdpdGggbGlzdGVuZXJzIHdpdGggLm5hdGl2ZSBtb2RpZmllclxuICAvLyBzbyBpdCBnZXRzIHByb2Nlc3NlZCBkdXJpbmcgcGFyZW50IGNvbXBvbmVudCBwYXRjaC5cbiAgZGF0YS5vbiA9IGRhdGEubmF0aXZlT247XG5cbiAgaWYgKGlzVHJ1ZShDdG9yLm9wdGlvbnMuYWJzdHJhY3QpKSB7XG4gICAgLy8gYWJzdHJhY3QgY29tcG9uZW50cyBkbyBub3Qga2VlcCBhbnl0aGluZ1xuICAgIC8vIG90aGVyIHRoYW4gcHJvcHMgJiBsaXN0ZW5lcnMgJiBzbG90XG5cbiAgICAvLyB3b3JrIGFyb3VuZCBmbG93XG4gICAgdmFyIHNsb3QgPSBkYXRhLnNsb3Q7XG4gICAgZGF0YSA9IHt9O1xuICAgIGlmIChzbG90KSB7XG4gICAgICBkYXRhLnNsb3QgPSBzbG90O1xuICAgIH1cbiAgfVxuXG4gIC8vIGluc3RhbGwgY29tcG9uZW50IG1hbmFnZW1lbnQgaG9va3Mgb250byB0aGUgcGxhY2Vob2xkZXIgbm9kZVxuICBpbnN0YWxsQ29tcG9uZW50SG9va3MoZGF0YSk7XG5cbiAgLy8gcmV0dXJuIGEgcGxhY2Vob2xkZXIgdm5vZGVcbiAgdmFyIG5hbWUgPSBDdG9yLm9wdGlvbnMubmFtZSB8fCB0YWc7XG4gIHZhciB2bm9kZSA9IG5ldyBWTm9kZShcbiAgICAoXCJ2dWUtY29tcG9uZW50LVwiICsgKEN0b3IuY2lkKSArIChuYW1lID8gKFwiLVwiICsgbmFtZSkgOiAnJykpLFxuICAgIGRhdGEsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbnRleHQsXG4gICAgeyBDdG9yOiBDdG9yLCBwcm9wc0RhdGE6IHByb3BzRGF0YSwgbGlzdGVuZXJzOiBsaXN0ZW5lcnMsIHRhZzogdGFnLCBjaGlsZHJlbjogY2hpbGRyZW4gfSxcbiAgICBhc3luY0ZhY3RvcnlcbiAgKTtcblxuICByZXR1cm4gdm5vZGVcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ29tcG9uZW50SW5zdGFuY2VGb3JWbm9kZSAoXG4gIC8vIHdlIGtub3cgaXQncyBNb3VudGVkQ29tcG9uZW50Vk5vZGUgYnV0IGZsb3cgZG9lc24ndFxuICB2bm9kZSxcbiAgLy8gYWN0aXZlSW5zdGFuY2UgaW4gbGlmZWN5Y2xlIHN0YXRlXG4gIHBhcmVudFxuKSB7XG4gIHZhciBvcHRpb25zID0ge1xuICAgIF9pc0NvbXBvbmVudDogdHJ1ZSxcbiAgICBfcGFyZW50Vm5vZGU6IHZub2RlLFxuICAgIHBhcmVudDogcGFyZW50XG4gIH07XG4gIC8vIGNoZWNrIGlubGluZS10ZW1wbGF0ZSByZW5kZXIgZnVuY3Rpb25zXG4gIHZhciBpbmxpbmVUZW1wbGF0ZSA9IHZub2RlLmRhdGEuaW5saW5lVGVtcGxhdGU7XG4gIGlmIChpc0RlZihpbmxpbmVUZW1wbGF0ZSkpIHtcbiAgICBvcHRpb25zLnJlbmRlciA9IGlubGluZVRlbXBsYXRlLnJlbmRlcjtcbiAgICBvcHRpb25zLnN0YXRpY1JlbmRlckZucyA9IGlubGluZVRlbXBsYXRlLnN0YXRpY1JlbmRlckZucztcbiAgfVxuICByZXR1cm4gbmV3IHZub2RlLmNvbXBvbmVudE9wdGlvbnMuQ3RvcihvcHRpb25zKVxufVxuXG5mdW5jdGlvbiBpbnN0YWxsQ29tcG9uZW50SG9va3MgKGRhdGEpIHtcbiAgdmFyIGhvb2tzID0gZGF0YS5ob29rIHx8IChkYXRhLmhvb2sgPSB7fSk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgaG9va3NUb01lcmdlLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGtleSA9IGhvb2tzVG9NZXJnZVtpXTtcbiAgICB2YXIgZXhpc3RpbmcgPSBob29rc1trZXldO1xuICAgIHZhciB0b01lcmdlID0gY29tcG9uZW50Vk5vZGVIb29rc1trZXldO1xuICAgIGlmIChleGlzdGluZyAhPT0gdG9NZXJnZSAmJiAhKGV4aXN0aW5nICYmIGV4aXN0aW5nLl9tZXJnZWQpKSB7XG4gICAgICBob29rc1trZXldID0gZXhpc3RpbmcgPyBtZXJnZUhvb2skMSh0b01lcmdlLCBleGlzdGluZykgOiB0b01lcmdlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBtZXJnZUhvb2skMSAoZjEsIGYyKSB7XG4gIHZhciBtZXJnZWQgPSBmdW5jdGlvbiAoYSwgYikge1xuICAgIC8vIGZsb3cgY29tcGxhaW5zIGFib3V0IGV4dHJhIGFyZ3Mgd2hpY2ggaXMgd2h5IHdlIHVzZSBhbnlcbiAgICBmMShhLCBiKTtcbiAgICBmMihhLCBiKTtcbiAgfTtcbiAgbWVyZ2VkLl9tZXJnZWQgPSB0cnVlO1xuICByZXR1cm4gbWVyZ2VkXG59XG5cbi8vIHRyYW5zZm9ybSBjb21wb25lbnQgdi1tb2RlbCBpbmZvICh2YWx1ZSBhbmQgY2FsbGJhY2spIGludG9cbi8vIHByb3AgYW5kIGV2ZW50IGhhbmRsZXIgcmVzcGVjdGl2ZWx5LlxuZnVuY3Rpb24gdHJhbnNmb3JtTW9kZWwgKG9wdGlvbnMsIGRhdGEpIHtcbiAgdmFyIHByb3AgPSAob3B0aW9ucy5tb2RlbCAmJiBvcHRpb25zLm1vZGVsLnByb3ApIHx8ICd2YWx1ZSc7XG4gIHZhciBldmVudCA9IChvcHRpb25zLm1vZGVsICYmIG9wdGlvbnMubW9kZWwuZXZlbnQpIHx8ICdpbnB1dCdcbiAgOyhkYXRhLmF0dHJzIHx8IChkYXRhLmF0dHJzID0ge30pKVtwcm9wXSA9IGRhdGEubW9kZWwudmFsdWU7XG4gIHZhciBvbiA9IGRhdGEub24gfHwgKGRhdGEub24gPSB7fSk7XG4gIHZhciBleGlzdGluZyA9IG9uW2V2ZW50XTtcbiAgdmFyIGNhbGxiYWNrID0gZGF0YS5tb2RlbC5jYWxsYmFjaztcbiAgaWYgKGlzRGVmKGV4aXN0aW5nKSkge1xuICAgIGlmIChcbiAgICAgIEFycmF5LmlzQXJyYXkoZXhpc3RpbmcpXG4gICAgICAgID8gZXhpc3RpbmcuaW5kZXhPZihjYWxsYmFjaykgPT09IC0xXG4gICAgICAgIDogZXhpc3RpbmcgIT09IGNhbGxiYWNrXG4gICAgKSB7XG4gICAgICBvbltldmVudF0gPSBbY2FsbGJhY2tdLmNvbmNhdChleGlzdGluZyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG9uW2V2ZW50XSA9IGNhbGxiYWNrO1xuICB9XG59XG5cbi8qICAqL1xuXG52YXIgU0lNUExFX05PUk1BTElaRSA9IDE7XG52YXIgQUxXQVlTX05PUk1BTElaRSA9IDI7XG5cbi8vIHdyYXBwZXIgZnVuY3Rpb24gZm9yIHByb3ZpZGluZyBhIG1vcmUgZmxleGlibGUgaW50ZXJmYWNlXG4vLyB3aXRob3V0IGdldHRpbmcgeWVsbGVkIGF0IGJ5IGZsb3dcbmZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnQgKFxuICBjb250ZXh0LFxuICB0YWcsXG4gIGRhdGEsXG4gIGNoaWxkcmVuLFxuICBub3JtYWxpemF0aW9uVHlwZSxcbiAgYWx3YXlzTm9ybWFsaXplXG4pIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkgfHwgaXNQcmltaXRpdmUoZGF0YSkpIHtcbiAgICBub3JtYWxpemF0aW9uVHlwZSA9IGNoaWxkcmVuO1xuICAgIGNoaWxkcmVuID0gZGF0YTtcbiAgICBkYXRhID0gdW5kZWZpbmVkO1xuICB9XG4gIGlmIChpc1RydWUoYWx3YXlzTm9ybWFsaXplKSkge1xuICAgIG5vcm1hbGl6YXRpb25UeXBlID0gQUxXQVlTX05PUk1BTElaRTtcbiAgfVxuICByZXR1cm4gX2NyZWF0ZUVsZW1lbnQoY29udGV4dCwgdGFnLCBkYXRhLCBjaGlsZHJlbiwgbm9ybWFsaXphdGlvblR5cGUpXG59XG5cbmZ1bmN0aW9uIF9jcmVhdGVFbGVtZW50IChcbiAgY29udGV4dCxcbiAgdGFnLFxuICBkYXRhLFxuICBjaGlsZHJlbixcbiAgbm9ybWFsaXphdGlvblR5cGVcbikge1xuICBpZiAoaXNEZWYoZGF0YSkgJiYgaXNEZWYoKGRhdGEpLl9fb2JfXykpIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICBcIkF2b2lkIHVzaW5nIG9ic2VydmVkIGRhdGEgb2JqZWN0IGFzIHZub2RlIGRhdGE6IFwiICsgKEpTT04uc3RyaW5naWZ5KGRhdGEpKSArIFwiXFxuXCIgK1xuICAgICAgJ0Fsd2F5cyBjcmVhdGUgZnJlc2ggdm5vZGUgZGF0YSBvYmplY3RzIGluIGVhY2ggcmVuZGVyIScsXG4gICAgICBjb250ZXh0XG4gICAgKTtcbiAgICByZXR1cm4gY3JlYXRlRW1wdHlWTm9kZSgpXG4gIH1cbiAgLy8gb2JqZWN0IHN5bnRheCBpbiB2LWJpbmRcbiAgaWYgKGlzRGVmKGRhdGEpICYmIGlzRGVmKGRhdGEuaXMpKSB7XG4gICAgdGFnID0gZGF0YS5pcztcbiAgfVxuICBpZiAoIXRhZykge1xuICAgIC8vIGluIGNhc2Ugb2YgY29tcG9uZW50IDppcyBzZXQgdG8gZmFsc3kgdmFsdWVcbiAgICByZXR1cm4gY3JlYXRlRW1wdHlWTm9kZSgpXG4gIH1cbiAgLy8gd2FybiBhZ2FpbnN0IG5vbi1wcmltaXRpdmUga2V5XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmXG4gICAgaXNEZWYoZGF0YSkgJiYgaXNEZWYoZGF0YS5rZXkpICYmICFpc1ByaW1pdGl2ZShkYXRhLmtleSlcbiAgKSB7XG4gICAge1xuICAgICAgd2FybihcbiAgICAgICAgJ0F2b2lkIHVzaW5nIG5vbi1wcmltaXRpdmUgdmFsdWUgYXMga2V5LCAnICtcbiAgICAgICAgJ3VzZSBzdHJpbmcvbnVtYmVyIHZhbHVlIGluc3RlYWQuJyxcbiAgICAgICAgY29udGV4dFxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgLy8gc3VwcG9ydCBzaW5nbGUgZnVuY3Rpb24gY2hpbGRyZW4gYXMgZGVmYXVsdCBzY29wZWQgc2xvdFxuICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikgJiZcbiAgICB0eXBlb2YgY2hpbGRyZW5bMF0gPT09ICdmdW5jdGlvbidcbiAgKSB7XG4gICAgZGF0YSA9IGRhdGEgfHwge307XG4gICAgZGF0YS5zY29wZWRTbG90cyA9IHsgZGVmYXVsdDogY2hpbGRyZW5bMF0gfTtcbiAgICBjaGlsZHJlbi5sZW5ndGggPSAwO1xuICB9XG4gIGlmIChub3JtYWxpemF0aW9uVHlwZSA9PT0gQUxXQVlTX05PUk1BTElaRSkge1xuICAgIGNoaWxkcmVuID0gbm9ybWFsaXplQ2hpbGRyZW4oY2hpbGRyZW4pO1xuICB9IGVsc2UgaWYgKG5vcm1hbGl6YXRpb25UeXBlID09PSBTSU1QTEVfTk9STUFMSVpFKSB7XG4gICAgY2hpbGRyZW4gPSBzaW1wbGVOb3JtYWxpemVDaGlsZHJlbihjaGlsZHJlbik7XG4gIH1cbiAgdmFyIHZub2RlLCBucztcbiAgaWYgKHR5cGVvZiB0YWcgPT09ICdzdHJpbmcnKSB7XG4gICAgdmFyIEN0b3I7XG4gICAgbnMgPSAoY29udGV4dC4kdm5vZGUgJiYgY29udGV4dC4kdm5vZGUubnMpIHx8IGNvbmZpZy5nZXRUYWdOYW1lc3BhY2UodGFnKTtcbiAgICBpZiAoY29uZmlnLmlzUmVzZXJ2ZWRUYWcodGFnKSkge1xuICAgICAgLy8gcGxhdGZvcm0gYnVpbHQtaW4gZWxlbWVudHNcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGlzRGVmKGRhdGEpICYmIGlzRGVmKGRhdGEubmF0aXZlT24pICYmIGRhdGEudGFnICE9PSAnY29tcG9uZW50Jykge1xuICAgICAgICB3YXJuKFxuICAgICAgICAgIChcIlRoZSAubmF0aXZlIG1vZGlmaWVyIGZvciB2LW9uIGlzIG9ubHkgdmFsaWQgb24gY29tcG9uZW50cyBidXQgaXQgd2FzIHVzZWQgb24gPFwiICsgdGFnICsgXCI+LlwiKSxcbiAgICAgICAgICBjb250ZXh0XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICB2bm9kZSA9IG5ldyBWTm9kZShcbiAgICAgICAgY29uZmlnLnBhcnNlUGxhdGZvcm1UYWdOYW1lKHRhZyksIGRhdGEsIGNoaWxkcmVuLFxuICAgICAgICB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29udGV4dFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKCghZGF0YSB8fCAhZGF0YS5wcmUpICYmIGlzRGVmKEN0b3IgPSByZXNvbHZlQXNzZXQoY29udGV4dC4kb3B0aW9ucywgJ2NvbXBvbmVudHMnLCB0YWcpKSkge1xuICAgICAgLy8gY29tcG9uZW50XG4gICAgICB2bm9kZSA9IGNyZWF0ZUNvbXBvbmVudChDdG9yLCBkYXRhLCBjb250ZXh0LCBjaGlsZHJlbiwgdGFnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdW5rbm93biBvciB1bmxpc3RlZCBuYW1lc3BhY2VkIGVsZW1lbnRzXG4gICAgICAvLyBjaGVjayBhdCBydW50aW1lIGJlY2F1c2UgaXQgbWF5IGdldCBhc3NpZ25lZCBhIG5hbWVzcGFjZSB3aGVuIGl0c1xuICAgICAgLy8gcGFyZW50IG5vcm1hbGl6ZXMgY2hpbGRyZW5cbiAgICAgIHZub2RlID0gbmV3IFZOb2RlKFxuICAgICAgICB0YWcsIGRhdGEsIGNoaWxkcmVuLFxuICAgICAgICB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29udGV4dFxuICAgICAgKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gZGlyZWN0IGNvbXBvbmVudCBvcHRpb25zIC8gY29uc3RydWN0b3JcbiAgICB2bm9kZSA9IGNyZWF0ZUNvbXBvbmVudCh0YWcsIGRhdGEsIGNvbnRleHQsIGNoaWxkcmVuKTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheSh2bm9kZSkpIHtcbiAgICByZXR1cm4gdm5vZGVcbiAgfSBlbHNlIGlmIChpc0RlZih2bm9kZSkpIHtcbiAgICBpZiAoaXNEZWYobnMpKSB7IGFwcGx5TlModm5vZGUsIG5zKTsgfVxuICAgIGlmIChpc0RlZihkYXRhKSkgeyByZWdpc3RlckRlZXBCaW5kaW5ncyhkYXRhKTsgfVxuICAgIHJldHVybiB2bm9kZVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBjcmVhdGVFbXB0eVZOb2RlKClcbiAgfVxufVxuXG5mdW5jdGlvbiBhcHBseU5TICh2bm9kZSwgbnMsIGZvcmNlKSB7XG4gIHZub2RlLm5zID0gbnM7XG4gIGlmICh2bm9kZS50YWcgPT09ICdmb3JlaWduT2JqZWN0Jykge1xuICAgIC8vIHVzZSBkZWZhdWx0IG5hbWVzcGFjZSBpbnNpZGUgZm9yZWlnbk9iamVjdFxuICAgIG5zID0gdW5kZWZpbmVkO1xuICAgIGZvcmNlID0gdHJ1ZTtcbiAgfVxuICBpZiAoaXNEZWYodm5vZGUuY2hpbGRyZW4pKSB7XG4gICAgZm9yICh2YXIgaSA9IDAsIGwgPSB2bm9kZS5jaGlsZHJlbi5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIHZhciBjaGlsZCA9IHZub2RlLmNoaWxkcmVuW2ldO1xuICAgICAgaWYgKGlzRGVmKGNoaWxkLnRhZykgJiYgKFxuICAgICAgICBpc1VuZGVmKGNoaWxkLm5zKSB8fCAoaXNUcnVlKGZvcmNlKSAmJiBjaGlsZC50YWcgIT09ICdzdmcnKSkpIHtcbiAgICAgICAgYXBwbHlOUyhjaGlsZCwgbnMsIGZvcmNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gcmVmICM1MzE4XG4vLyBuZWNlc3NhcnkgdG8gZW5zdXJlIHBhcmVudCByZS1yZW5kZXIgd2hlbiBkZWVwIGJpbmRpbmdzIGxpa2UgOnN0eWxlIGFuZFxuLy8gOmNsYXNzIGFyZSB1c2VkIG9uIHNsb3Qgbm9kZXNcbmZ1bmN0aW9uIHJlZ2lzdGVyRGVlcEJpbmRpbmdzIChkYXRhKSB7XG4gIGlmIChpc09iamVjdChkYXRhLnN0eWxlKSkge1xuICAgIHRyYXZlcnNlKGRhdGEuc3R5bGUpO1xuICB9XG4gIGlmIChpc09iamVjdChkYXRhLmNsYXNzKSkge1xuICAgIHRyYXZlcnNlKGRhdGEuY2xhc3MpO1xuICB9XG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBpbml0UmVuZGVyICh2bSkge1xuICB2bS5fdm5vZGUgPSBudWxsOyAvLyB0aGUgcm9vdCBvZiB0aGUgY2hpbGQgdHJlZVxuICB2bS5fc3RhdGljVHJlZXMgPSBudWxsOyAvLyB2LW9uY2UgY2FjaGVkIHRyZWVzXG4gIHZhciBvcHRpb25zID0gdm0uJG9wdGlvbnM7XG4gIHZhciBwYXJlbnRWbm9kZSA9IHZtLiR2bm9kZSA9IG9wdGlvbnMuX3BhcmVudFZub2RlOyAvLyB0aGUgcGxhY2Vob2xkZXIgbm9kZSBpbiBwYXJlbnQgdHJlZVxuICB2YXIgcmVuZGVyQ29udGV4dCA9IHBhcmVudFZub2RlICYmIHBhcmVudFZub2RlLmNvbnRleHQ7XG4gIHZtLiRzbG90cyA9IHJlc29sdmVTbG90cyhvcHRpb25zLl9yZW5kZXJDaGlsZHJlbiwgcmVuZGVyQ29udGV4dCk7XG4gIHZtLiRzY29wZWRTbG90cyA9IGVtcHR5T2JqZWN0O1xuICAvLyBiaW5kIHRoZSBjcmVhdGVFbGVtZW50IGZuIHRvIHRoaXMgaW5zdGFuY2VcbiAgLy8gc28gdGhhdCB3ZSBnZXQgcHJvcGVyIHJlbmRlciBjb250ZXh0IGluc2lkZSBpdC5cbiAgLy8gYXJncyBvcmRlcjogdGFnLCBkYXRhLCBjaGlsZHJlbiwgbm9ybWFsaXphdGlvblR5cGUsIGFsd2F5c05vcm1hbGl6ZVxuICAvLyBpbnRlcm5hbCB2ZXJzaW9uIGlzIHVzZWQgYnkgcmVuZGVyIGZ1bmN0aW9ucyBjb21waWxlZCBmcm9tIHRlbXBsYXRlc1xuICB2bS5fYyA9IGZ1bmN0aW9uIChhLCBiLCBjLCBkKSB7IHJldHVybiBjcmVhdGVFbGVtZW50KHZtLCBhLCBiLCBjLCBkLCBmYWxzZSk7IH07XG4gIC8vIG5vcm1hbGl6YXRpb24gaXMgYWx3YXlzIGFwcGxpZWQgZm9yIHRoZSBwdWJsaWMgdmVyc2lvbiwgdXNlZCBpblxuICAvLyB1c2VyLXdyaXR0ZW4gcmVuZGVyIGZ1bmN0aW9ucy5cbiAgdm0uJGNyZWF0ZUVsZW1lbnQgPSBmdW5jdGlvbiAoYSwgYiwgYywgZCkgeyByZXR1cm4gY3JlYXRlRWxlbWVudCh2bSwgYSwgYiwgYywgZCwgdHJ1ZSk7IH07XG5cbiAgLy8gJGF0dHJzICYgJGxpc3RlbmVycyBhcmUgZXhwb3NlZCBmb3IgZWFzaWVyIEhPQyBjcmVhdGlvbi5cbiAgLy8gdGhleSBuZWVkIHRvIGJlIHJlYWN0aXZlIHNvIHRoYXQgSE9DcyB1c2luZyB0aGVtIGFyZSBhbHdheXMgdXBkYXRlZFxuICB2YXIgcGFyZW50RGF0YSA9IHBhcmVudFZub2RlICYmIHBhcmVudFZub2RlLmRhdGE7XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBkZWZpbmVSZWFjdGl2ZSQkMSh2bSwgJyRhdHRycycsIHBhcmVudERhdGEgJiYgcGFyZW50RGF0YS5hdHRycyB8fCBlbXB0eU9iamVjdCwgZnVuY3Rpb24gKCkge1xuICAgICAgIWlzVXBkYXRpbmdDaGlsZENvbXBvbmVudCAmJiB3YXJuKFwiJGF0dHJzIGlzIHJlYWRvbmx5LlwiLCB2bSk7XG4gICAgfSwgdHJ1ZSk7XG4gICAgZGVmaW5lUmVhY3RpdmUkJDEodm0sICckbGlzdGVuZXJzJywgb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzIHx8IGVtcHR5T2JqZWN0LCBmdW5jdGlvbiAoKSB7XG4gICAgICAhaXNVcGRhdGluZ0NoaWxkQ29tcG9uZW50ICYmIHdhcm4oXCIkbGlzdGVuZXJzIGlzIHJlYWRvbmx5LlwiLCB2bSk7XG4gICAgfSwgdHJ1ZSk7XG4gIH0gZWxzZSB7XG4gICAgZGVmaW5lUmVhY3RpdmUkJDEodm0sICckYXR0cnMnLCBwYXJlbnREYXRhICYmIHBhcmVudERhdGEuYXR0cnMgfHwgZW1wdHlPYmplY3QsIG51bGwsIHRydWUpO1xuICAgIGRlZmluZVJlYWN0aXZlJCQxKHZtLCAnJGxpc3RlbmVycycsIG9wdGlvbnMuX3BhcmVudExpc3RlbmVycyB8fCBlbXB0eU9iamVjdCwgbnVsbCwgdHJ1ZSk7XG4gIH1cbn1cblxudmFyIGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZSA9IG51bGw7XG5cbmZ1bmN0aW9uIHJlbmRlck1peGluIChWdWUpIHtcbiAgLy8gaW5zdGFsbCBydW50aW1lIGNvbnZlbmllbmNlIGhlbHBlcnNcbiAgaW5zdGFsbFJlbmRlckhlbHBlcnMoVnVlLnByb3RvdHlwZSk7XG5cbiAgVnVlLnByb3RvdHlwZS4kbmV4dFRpY2sgPSBmdW5jdGlvbiAoZm4pIHtcbiAgICByZXR1cm4gbmV4dFRpY2soZm4sIHRoaXMpXG4gIH07XG5cbiAgVnVlLnByb3RvdHlwZS5fcmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciB2bSA9IHRoaXM7XG4gICAgdmFyIHJlZiA9IHZtLiRvcHRpb25zO1xuICAgIHZhciByZW5kZXIgPSByZWYucmVuZGVyO1xuICAgIHZhciBfcGFyZW50Vm5vZGUgPSByZWYuX3BhcmVudFZub2RlO1xuXG4gICAgaWYgKF9wYXJlbnRWbm9kZSkge1xuICAgICAgdm0uJHNjb3BlZFNsb3RzID0gbm9ybWFsaXplU2NvcGVkU2xvdHMoXG4gICAgICAgIF9wYXJlbnRWbm9kZS5kYXRhLnNjb3BlZFNsb3RzLFxuICAgICAgICB2bS4kc2xvdHMsXG4gICAgICAgIHZtLiRzY29wZWRTbG90c1xuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBzZXQgcGFyZW50IHZub2RlLiB0aGlzIGFsbG93cyByZW5kZXIgZnVuY3Rpb25zIHRvIGhhdmUgYWNjZXNzXG4gICAgLy8gdG8gdGhlIGRhdGEgb24gdGhlIHBsYWNlaG9sZGVyIG5vZGUuXG4gICAgdm0uJHZub2RlID0gX3BhcmVudFZub2RlO1xuICAgIC8vIHJlbmRlciBzZWxmXG4gICAgdmFyIHZub2RlO1xuICAgIHRyeSB7XG4gICAgICAvLyBUaGVyZSdzIG5vIG5lZWQgdG8gbWFpbnRhaW4gYSBzdGFjayBiZWNhdXNlIGFsbCByZW5kZXIgZm5zIGFyZSBjYWxsZWRcbiAgICAgIC8vIHNlcGFyYXRlbHkgZnJvbSBvbmUgYW5vdGhlci4gTmVzdGVkIGNvbXBvbmVudCdzIHJlbmRlciBmbnMgYXJlIGNhbGxlZFxuICAgICAgLy8gd2hlbiBwYXJlbnQgY29tcG9uZW50IGlzIHBhdGNoZWQuXG4gICAgICBjdXJyZW50UmVuZGVyaW5nSW5zdGFuY2UgPSB2bTtcbiAgICAgIHZub2RlID0gcmVuZGVyLmNhbGwodm0uX3JlbmRlclByb3h5LCB2bS4kY3JlYXRlRWxlbWVudCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaGFuZGxlRXJyb3IoZSwgdm0sIFwicmVuZGVyXCIpO1xuICAgICAgLy8gcmV0dXJuIGVycm9yIHJlbmRlciByZXN1bHQsXG4gICAgICAvLyBvciBwcmV2aW91cyB2bm9kZSB0byBwcmV2ZW50IHJlbmRlciBlcnJvciBjYXVzaW5nIGJsYW5rIGNvbXBvbmVudFxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHZtLiRvcHRpb25zLnJlbmRlckVycm9yKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdm5vZGUgPSB2bS4kb3B0aW9ucy5yZW5kZXJFcnJvci5jYWxsKHZtLl9yZW5kZXJQcm94eSwgdm0uJGNyZWF0ZUVsZW1lbnQsIGUpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaGFuZGxlRXJyb3IoZSwgdm0sIFwicmVuZGVyRXJyb3JcIik7XG4gICAgICAgICAgdm5vZGUgPSB2bS5fdm5vZGU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZub2RlID0gdm0uX3Zub2RlO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICBjdXJyZW50UmVuZGVyaW5nSW5zdGFuY2UgPSBudWxsO1xuICAgIH1cbiAgICAvLyBpZiB0aGUgcmV0dXJuZWQgYXJyYXkgY29udGFpbnMgb25seSBhIHNpbmdsZSBub2RlLCBhbGxvdyBpdFxuICAgIGlmIChBcnJheS5pc0FycmF5KHZub2RlKSAmJiB2bm9kZS5sZW5ndGggPT09IDEpIHtcbiAgICAgIHZub2RlID0gdm5vZGVbMF07XG4gICAgfVxuICAgIC8vIHJldHVybiBlbXB0eSB2bm9kZSBpbiBjYXNlIHRoZSByZW5kZXIgZnVuY3Rpb24gZXJyb3JlZCBvdXRcbiAgICBpZiAoISh2bm9kZSBpbnN0YW5jZW9mIFZOb2RlKSkge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgQXJyYXkuaXNBcnJheSh2bm9kZSkpIHtcbiAgICAgICAgd2FybihcbiAgICAgICAgICAnTXVsdGlwbGUgcm9vdCBub2RlcyByZXR1cm5lZCBmcm9tIHJlbmRlciBmdW5jdGlvbi4gUmVuZGVyIGZ1bmN0aW9uICcgK1xuICAgICAgICAgICdzaG91bGQgcmV0dXJuIGEgc2luZ2xlIHJvb3Qgbm9kZS4nLFxuICAgICAgICAgIHZtXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICB2bm9kZSA9IGNyZWF0ZUVtcHR5Vk5vZGUoKTtcbiAgICB9XG4gICAgLy8gc2V0IHBhcmVudFxuICAgIHZub2RlLnBhcmVudCA9IF9wYXJlbnRWbm9kZTtcbiAgICByZXR1cm4gdm5vZGVcbiAgfTtcbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIGVuc3VyZUN0b3IgKGNvbXAsIGJhc2UpIHtcbiAgaWYgKFxuICAgIGNvbXAuX19lc01vZHVsZSB8fFxuICAgIChoYXNTeW1ib2wgJiYgY29tcFtTeW1ib2wudG9TdHJpbmdUYWddID09PSAnTW9kdWxlJylcbiAgKSB7XG4gICAgY29tcCA9IGNvbXAuZGVmYXVsdDtcbiAgfVxuICByZXR1cm4gaXNPYmplY3QoY29tcClcbiAgICA/IGJhc2UuZXh0ZW5kKGNvbXApXG4gICAgOiBjb21wXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUFzeW5jUGxhY2Vob2xkZXIgKFxuICBmYWN0b3J5LFxuICBkYXRhLFxuICBjb250ZXh0LFxuICBjaGlsZHJlbixcbiAgdGFnXG4pIHtcbiAgdmFyIG5vZGUgPSBjcmVhdGVFbXB0eVZOb2RlKCk7XG4gIG5vZGUuYXN5bmNGYWN0b3J5ID0gZmFjdG9yeTtcbiAgbm9kZS5hc3luY01ldGEgPSB7IGRhdGE6IGRhdGEsIGNvbnRleHQ6IGNvbnRleHQsIGNoaWxkcmVuOiBjaGlsZHJlbiwgdGFnOiB0YWcgfTtcbiAgcmV0dXJuIG5vZGVcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZUFzeW5jQ29tcG9uZW50IChcbiAgZmFjdG9yeSxcbiAgYmFzZUN0b3Jcbikge1xuICBpZiAoaXNUcnVlKGZhY3RvcnkuZXJyb3IpICYmIGlzRGVmKGZhY3RvcnkuZXJyb3JDb21wKSkge1xuICAgIHJldHVybiBmYWN0b3J5LmVycm9yQ29tcFxuICB9XG5cbiAgaWYgKGlzRGVmKGZhY3RvcnkucmVzb2x2ZWQpKSB7XG4gICAgcmV0dXJuIGZhY3RvcnkucmVzb2x2ZWRcbiAgfVxuXG4gIHZhciBvd25lciA9IGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZTtcbiAgaWYgKG93bmVyICYmIGlzRGVmKGZhY3Rvcnkub3duZXJzKSAmJiBmYWN0b3J5Lm93bmVycy5pbmRleE9mKG93bmVyKSA9PT0gLTEpIHtcbiAgICAvLyBhbHJlYWR5IHBlbmRpbmdcbiAgICBmYWN0b3J5Lm93bmVycy5wdXNoKG93bmVyKTtcbiAgfVxuXG4gIGlmIChpc1RydWUoZmFjdG9yeS5sb2FkaW5nKSAmJiBpc0RlZihmYWN0b3J5LmxvYWRpbmdDb21wKSkge1xuICAgIHJldHVybiBmYWN0b3J5LmxvYWRpbmdDb21wXG4gIH1cblxuICBpZiAob3duZXIgJiYgIWlzRGVmKGZhY3Rvcnkub3duZXJzKSkge1xuICAgIHZhciBvd25lcnMgPSBmYWN0b3J5Lm93bmVycyA9IFtvd25lcl07XG4gICAgdmFyIHN5bmMgPSB0cnVlO1xuICAgIHZhciB0aW1lckxvYWRpbmcgPSBudWxsO1xuICAgIHZhciB0aW1lclRpbWVvdXQgPSBudWxsXG5cbiAgICA7KG93bmVyKS4kb24oJ2hvb2s6ZGVzdHJveWVkJywgZnVuY3Rpb24gKCkgeyByZXR1cm4gcmVtb3ZlKG93bmVycywgb3duZXIpOyB9KTtcblxuICAgIHZhciBmb3JjZVJlbmRlciA9IGZ1bmN0aW9uIChyZW5kZXJDb21wbGV0ZWQpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwLCBsID0gb3duZXJzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICAob3duZXJzW2ldKS4kZm9yY2VVcGRhdGUoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlbmRlckNvbXBsZXRlZCkge1xuICAgICAgICBvd25lcnMubGVuZ3RoID0gMDtcbiAgICAgICAgaWYgKHRpbWVyTG9hZGluZyAhPT0gbnVsbCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lckxvYWRpbmcpO1xuICAgICAgICAgIHRpbWVyTG9hZGluZyA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRpbWVyVGltZW91dCAhPT0gbnVsbCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lclRpbWVvdXQpO1xuICAgICAgICAgIHRpbWVyVGltZW91dCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdmFyIHJlc29sdmUgPSBvbmNlKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgIC8vIGNhY2hlIHJlc29sdmVkXG4gICAgICBmYWN0b3J5LnJlc29sdmVkID0gZW5zdXJlQ3RvcihyZXMsIGJhc2VDdG9yKTtcbiAgICAgIC8vIGludm9rZSBjYWxsYmFja3Mgb25seSBpZiB0aGlzIGlzIG5vdCBhIHN5bmNocm9ub3VzIHJlc29sdmVcbiAgICAgIC8vIChhc3luYyByZXNvbHZlcyBhcmUgc2hpbW1lZCBhcyBzeW5jaHJvbm91cyBkdXJpbmcgU1NSKVxuICAgICAgaWYgKCFzeW5jKSB7XG4gICAgICAgIGZvcmNlUmVuZGVyKHRydWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3duZXJzLmxlbmd0aCA9IDA7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB2YXIgcmVqZWN0ID0gb25jZShmdW5jdGlvbiAocmVhc29uKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICAgIFwiRmFpbGVkIHRvIHJlc29sdmUgYXN5bmMgY29tcG9uZW50OiBcIiArIChTdHJpbmcoZmFjdG9yeSkpICtcbiAgICAgICAgKHJlYXNvbiA/IChcIlxcblJlYXNvbjogXCIgKyByZWFzb24pIDogJycpXG4gICAgICApO1xuICAgICAgaWYgKGlzRGVmKGZhY3RvcnkuZXJyb3JDb21wKSkge1xuICAgICAgICBmYWN0b3J5LmVycm9yID0gdHJ1ZTtcbiAgICAgICAgZm9yY2VSZW5kZXIodHJ1ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB2YXIgcmVzID0gZmFjdG9yeShyZXNvbHZlLCByZWplY3QpO1xuXG4gICAgaWYgKGlzT2JqZWN0KHJlcykpIHtcbiAgICAgIGlmIChpc1Byb21pc2UocmVzKSkge1xuICAgICAgICAvLyAoKSA9PiBQcm9taXNlXG4gICAgICAgIGlmIChpc1VuZGVmKGZhY3RvcnkucmVzb2x2ZWQpKSB7XG4gICAgICAgICAgcmVzLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpc1Byb21pc2UocmVzLmNvbXBvbmVudCkpIHtcbiAgICAgICAgcmVzLmNvbXBvbmVudC50aGVuKHJlc29sdmUsIHJlamVjdCk7XG5cbiAgICAgICAgaWYgKGlzRGVmKHJlcy5lcnJvcikpIHtcbiAgICAgICAgICBmYWN0b3J5LmVycm9yQ29tcCA9IGVuc3VyZUN0b3IocmVzLmVycm9yLCBiYXNlQ3Rvcik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNEZWYocmVzLmxvYWRpbmcpKSB7XG4gICAgICAgICAgZmFjdG9yeS5sb2FkaW5nQ29tcCA9IGVuc3VyZUN0b3IocmVzLmxvYWRpbmcsIGJhc2VDdG9yKTtcbiAgICAgICAgICBpZiAocmVzLmRlbGF5ID09PSAwKSB7XG4gICAgICAgICAgICBmYWN0b3J5LmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aW1lckxvYWRpbmcgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgdGltZXJMb2FkaW5nID0gbnVsbDtcbiAgICAgICAgICAgICAgaWYgKGlzVW5kZWYoZmFjdG9yeS5yZXNvbHZlZCkgJiYgaXNVbmRlZihmYWN0b3J5LmVycm9yKSkge1xuICAgICAgICAgICAgICAgIGZhY3RvcnkubG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgZm9yY2VSZW5kZXIoZmFsc2UpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCByZXMuZGVsYXkgfHwgMjAwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNEZWYocmVzLnRpbWVvdXQpKSB7XG4gICAgICAgICAgdGltZXJUaW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aW1lclRpbWVvdXQgPSBudWxsO1xuICAgICAgICAgICAgaWYgKGlzVW5kZWYoZmFjdG9yeS5yZXNvbHZlZCkpIHtcbiAgICAgICAgICAgICAgcmVqZWN0KFxuICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbidcbiAgICAgICAgICAgICAgICAgID8gKFwidGltZW91dCAoXCIgKyAocmVzLnRpbWVvdXQpICsgXCJtcylcIilcbiAgICAgICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sIHJlcy50aW1lb3V0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHN5bmMgPSBmYWxzZTtcbiAgICAvLyByZXR1cm4gaW4gY2FzZSByZXNvbHZlZCBzeW5jaHJvbm91c2x5XG4gICAgcmV0dXJuIGZhY3RvcnkubG9hZGluZ1xuICAgICAgPyBmYWN0b3J5LmxvYWRpbmdDb21wXG4gICAgICA6IGZhY3RvcnkucmVzb2x2ZWRcbiAgfVxufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gZ2V0Rmlyc3RDb21wb25lbnRDaGlsZCAoY2hpbGRyZW4pIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGMgPSBjaGlsZHJlbltpXTtcbiAgICAgIGlmIChpc0RlZihjKSAmJiAoaXNEZWYoYy5jb21wb25lbnRPcHRpb25zKSB8fCBpc0FzeW5jUGxhY2Vob2xkZXIoYykpKSB7XG4gICAgICAgIHJldHVybiBjXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qICAqL1xuXG4vKiAgKi9cblxuZnVuY3Rpb24gaW5pdEV2ZW50cyAodm0pIHtcbiAgdm0uX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIHZtLl9oYXNIb29rRXZlbnQgPSBmYWxzZTtcbiAgLy8gaW5pdCBwYXJlbnQgYXR0YWNoZWQgZXZlbnRzXG4gIHZhciBsaXN0ZW5lcnMgPSB2bS4kb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzO1xuICBpZiAobGlzdGVuZXJzKSB7XG4gICAgdXBkYXRlQ29tcG9uZW50TGlzdGVuZXJzKHZtLCBsaXN0ZW5lcnMpO1xuICB9XG59XG5cbnZhciB0YXJnZXQ7XG5cbmZ1bmN0aW9uIGFkZCAoZXZlbnQsIGZuKSB7XG4gIHRhcmdldC4kb24oZXZlbnQsIGZuKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlJDEgKGV2ZW50LCBmbikge1xuICB0YXJnZXQuJG9mZihldmVudCwgZm4pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVPbmNlSGFuZGxlciAoZXZlbnQsIGZuKSB7XG4gIHZhciBfdGFyZ2V0ID0gdGFyZ2V0O1xuICByZXR1cm4gZnVuY3Rpb24gb25jZUhhbmRsZXIgKCkge1xuICAgIHZhciByZXMgPSBmbi5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgIGlmIChyZXMgIT09IG51bGwpIHtcbiAgICAgIF90YXJnZXQuJG9mZihldmVudCwgb25jZUhhbmRsZXIpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB1cGRhdGVDb21wb25lbnRMaXN0ZW5lcnMgKFxuICB2bSxcbiAgbGlzdGVuZXJzLFxuICBvbGRMaXN0ZW5lcnNcbikge1xuICB0YXJnZXQgPSB2bTtcbiAgdXBkYXRlTGlzdGVuZXJzKGxpc3RlbmVycywgb2xkTGlzdGVuZXJzIHx8IHt9LCBhZGQsIHJlbW92ZSQxLCBjcmVhdGVPbmNlSGFuZGxlciwgdm0pO1xuICB0YXJnZXQgPSB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGV2ZW50c01peGluIChWdWUpIHtcbiAgdmFyIGhvb2tSRSA9IC9eaG9vazovO1xuICBWdWUucHJvdG90eXBlLiRvbiA9IGZ1bmN0aW9uIChldmVudCwgZm4pIHtcbiAgICB2YXIgdm0gPSB0aGlzO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGV2ZW50KSkge1xuICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSBldmVudC5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgdm0uJG9uKGV2ZW50W2ldLCBmbik7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICh2bS5fZXZlbnRzW2V2ZW50XSB8fCAodm0uX2V2ZW50c1tldmVudF0gPSBbXSkpLnB1c2goZm4pO1xuICAgICAgLy8gb3B0aW1pemUgaG9vazpldmVudCBjb3N0IGJ5IHVzaW5nIGEgYm9vbGVhbiBmbGFnIG1hcmtlZCBhdCByZWdpc3RyYXRpb25cbiAgICAgIC8vIGluc3RlYWQgb2YgYSBoYXNoIGxvb2t1cFxuICAgICAgaWYgKGhvb2tSRS50ZXN0KGV2ZW50KSkge1xuICAgICAgICB2bS5faGFzSG9va0V2ZW50ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZtXG4gIH07XG5cbiAgVnVlLnByb3RvdHlwZS4kb25jZSA9IGZ1bmN0aW9uIChldmVudCwgZm4pIHtcbiAgICB2YXIgdm0gPSB0aGlzO1xuICAgIGZ1bmN0aW9uIG9uICgpIHtcbiAgICAgIHZtLiRvZmYoZXZlbnQsIG9uKTtcbiAgICAgIGZuLmFwcGx5KHZtLCBhcmd1bWVudHMpO1xuICAgIH1cbiAgICBvbi5mbiA9IGZuO1xuICAgIHZtLiRvbihldmVudCwgb24pO1xuICAgIHJldHVybiB2bVxuICB9O1xuXG4gIFZ1ZS5wcm90b3R5cGUuJG9mZiA9IGZ1bmN0aW9uIChldmVudCwgZm4pIHtcbiAgICB2YXIgdm0gPSB0aGlzO1xuICAgIC8vIGFsbFxuICAgIGlmICghYXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgdm0uX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICByZXR1cm4gdm1cbiAgICB9XG4gICAgLy8gYXJyYXkgb2YgZXZlbnRzXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZXZlbnQpKSB7XG4gICAgICBmb3IgKHZhciBpJDEgPSAwLCBsID0gZXZlbnQubGVuZ3RoOyBpJDEgPCBsOyBpJDErKykge1xuICAgICAgICB2bS4kb2ZmKGV2ZW50W2kkMV0sIGZuKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2bVxuICAgIH1cbiAgICAvLyBzcGVjaWZpYyBldmVudFxuICAgIHZhciBjYnMgPSB2bS5fZXZlbnRzW2V2ZW50XTtcbiAgICBpZiAoIWNicykge1xuICAgICAgcmV0dXJuIHZtXG4gICAgfVxuICAgIGlmICghZm4pIHtcbiAgICAgIHZtLl9ldmVudHNbZXZlbnRdID0gbnVsbDtcbiAgICAgIHJldHVybiB2bVxuICAgIH1cbiAgICAvLyBzcGVjaWZpYyBoYW5kbGVyXG4gICAgdmFyIGNiO1xuICAgIHZhciBpID0gY2JzLmxlbmd0aDtcbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICBjYiA9IGNic1tpXTtcbiAgICAgIGlmIChjYiA9PT0gZm4gfHwgY2IuZm4gPT09IGZuKSB7XG4gICAgICAgIGNicy5zcGxpY2UoaSwgMSk7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2bVxuICB9O1xuXG4gIFZ1ZS5wcm90b3R5cGUuJGVtaXQgPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICB2YXIgdm0gPSB0aGlzO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB2YXIgbG93ZXJDYXNlRXZlbnQgPSBldmVudC50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKGxvd2VyQ2FzZUV2ZW50ICE9PSBldmVudCAmJiB2bS5fZXZlbnRzW2xvd2VyQ2FzZUV2ZW50XSkge1xuICAgICAgICB0aXAoXG4gICAgICAgICAgXCJFdmVudCBcXFwiXCIgKyBsb3dlckNhc2VFdmVudCArIFwiXFxcIiBpcyBlbWl0dGVkIGluIGNvbXBvbmVudCBcIiArXG4gICAgICAgICAgKGZvcm1hdENvbXBvbmVudE5hbWUodm0pKSArIFwiIGJ1dCB0aGUgaGFuZGxlciBpcyByZWdpc3RlcmVkIGZvciBcXFwiXCIgKyBldmVudCArIFwiXFxcIi4gXCIgK1xuICAgICAgICAgIFwiTm90ZSB0aGF0IEhUTUwgYXR0cmlidXRlcyBhcmUgY2FzZS1pbnNlbnNpdGl2ZSBhbmQgeW91IGNhbm5vdCB1c2UgXCIgK1xuICAgICAgICAgIFwidi1vbiB0byBsaXN0ZW4gdG8gY2FtZWxDYXNlIGV2ZW50cyB3aGVuIHVzaW5nIGluLURPTSB0ZW1wbGF0ZXMuIFwiICtcbiAgICAgICAgICBcIllvdSBzaG91bGQgcHJvYmFibHkgdXNlIFxcXCJcIiArIChoeXBoZW5hdGUoZXZlbnQpKSArIFwiXFxcIiBpbnN0ZWFkIG9mIFxcXCJcIiArIGV2ZW50ICsgXCJcXFwiLlwiXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHZhciBjYnMgPSB2bS5fZXZlbnRzW2V2ZW50XTtcbiAgICBpZiAoY2JzKSB7XG4gICAgICBjYnMgPSBjYnMubGVuZ3RoID4gMSA/IHRvQXJyYXkoY2JzKSA6IGNicztcbiAgICAgIHZhciBhcmdzID0gdG9BcnJheShhcmd1bWVudHMsIDEpO1xuICAgICAgdmFyIGluZm8gPSBcImV2ZW50IGhhbmRsZXIgZm9yIFxcXCJcIiArIGV2ZW50ICsgXCJcXFwiXCI7XG4gICAgICBmb3IgKHZhciBpID0gMCwgbCA9IGNicy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgaW52b2tlV2l0aEVycm9ySGFuZGxpbmcoY2JzW2ldLCB2bSwgYXJncywgdm0sIGluZm8pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdm1cbiAgfTtcbn1cblxuLyogICovXG5cbnZhciBhY3RpdmVJbnN0YW5jZSA9IG51bGw7XG52YXIgaXNVcGRhdGluZ0NoaWxkQ29tcG9uZW50ID0gZmFsc2U7XG5cbmZ1bmN0aW9uIHNldEFjdGl2ZUluc3RhbmNlKHZtKSB7XG4gIHZhciBwcmV2QWN0aXZlSW5zdGFuY2UgPSBhY3RpdmVJbnN0YW5jZTtcbiAgYWN0aXZlSW5zdGFuY2UgPSB2bTtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICBhY3RpdmVJbnN0YW5jZSA9IHByZXZBY3RpdmVJbnN0YW5jZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbml0TGlmZWN5Y2xlICh2bSkge1xuICB2YXIgb3B0aW9ucyA9IHZtLiRvcHRpb25zO1xuXG4gIC8vIGxvY2F0ZSBmaXJzdCBub24tYWJzdHJhY3QgcGFyZW50XG4gIHZhciBwYXJlbnQgPSBvcHRpb25zLnBhcmVudDtcbiAgaWYgKHBhcmVudCAmJiAhb3B0aW9ucy5hYnN0cmFjdCkge1xuICAgIHdoaWxlIChwYXJlbnQuJG9wdGlvbnMuYWJzdHJhY3QgJiYgcGFyZW50LiRwYXJlbnQpIHtcbiAgICAgIHBhcmVudCA9IHBhcmVudC4kcGFyZW50O1xuICAgIH1cbiAgICBwYXJlbnQuJGNoaWxkcmVuLnB1c2godm0pO1xuICB9XG5cbiAgdm0uJHBhcmVudCA9IHBhcmVudDtcbiAgdm0uJHJvb3QgPSBwYXJlbnQgPyBwYXJlbnQuJHJvb3QgOiB2bTtcblxuICB2bS4kY2hpbGRyZW4gPSBbXTtcbiAgdm0uJHJlZnMgPSB7fTtcblxuICB2bS5fd2F0Y2hlciA9IG51bGw7XG4gIHZtLl9pbmFjdGl2ZSA9IG51bGw7XG4gIHZtLl9kaXJlY3RJbmFjdGl2ZSA9IGZhbHNlO1xuICB2bS5faXNNb3VudGVkID0gZmFsc2U7XG4gIHZtLl9pc0Rlc3Ryb3llZCA9IGZhbHNlO1xuICB2bS5faXNCZWluZ0Rlc3Ryb3llZCA9IGZhbHNlO1xufVxuXG5mdW5jdGlvbiBsaWZlY3ljbGVNaXhpbiAoVnVlKSB7XG4gIFZ1ZS5wcm90b3R5cGUuX3VwZGF0ZSA9IGZ1bmN0aW9uICh2bm9kZSwgaHlkcmF0aW5nKSB7XG4gICAgdmFyIHZtID0gdGhpcztcbiAgICB2YXIgcHJldkVsID0gdm0uJGVsO1xuICAgIHZhciBwcmV2Vm5vZGUgPSB2bS5fdm5vZGU7XG4gICAgdmFyIHJlc3RvcmVBY3RpdmVJbnN0YW5jZSA9IHNldEFjdGl2ZUluc3RhbmNlKHZtKTtcbiAgICB2bS5fdm5vZGUgPSB2bm9kZTtcbiAgICAvLyBWdWUucHJvdG90eXBlLl9fcGF0Y2hfXyBpcyBpbmplY3RlZCBpbiBlbnRyeSBwb2ludHNcbiAgICAvLyBiYXNlZCBvbiB0aGUgcmVuZGVyaW5nIGJhY2tlbmQgdXNlZC5cbiAgICBpZiAoIXByZXZWbm9kZSkge1xuICAgICAgLy8gaW5pdGlhbCByZW5kZXJcbiAgICAgIHZtLiRlbCA9IHZtLl9fcGF0Y2hfXyh2bS4kZWwsIHZub2RlLCBoeWRyYXRpbmcsIGZhbHNlIC8qIHJlbW92ZU9ubHkgKi8pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyB1cGRhdGVzXG4gICAgICB2bS4kZWwgPSB2bS5fX3BhdGNoX18ocHJldlZub2RlLCB2bm9kZSk7XG4gICAgfVxuICAgIHJlc3RvcmVBY3RpdmVJbnN0YW5jZSgpO1xuICAgIC8vIHVwZGF0ZSBfX3Z1ZV9fIHJlZmVyZW5jZVxuICAgIGlmIChwcmV2RWwpIHtcbiAgICAgIHByZXZFbC5fX3Z1ZV9fID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKHZtLiRlbCkge1xuICAgICAgdm0uJGVsLl9fdnVlX18gPSB2bTtcbiAgICB9XG4gICAgLy8gaWYgcGFyZW50IGlzIGFuIEhPQywgdXBkYXRlIGl0cyAkZWwgYXMgd2VsbFxuICAgIGlmICh2bS4kdm5vZGUgJiYgdm0uJHBhcmVudCAmJiB2bS4kdm5vZGUgPT09IHZtLiRwYXJlbnQuX3Zub2RlKSB7XG4gICAgICB2bS4kcGFyZW50LiRlbCA9IHZtLiRlbDtcbiAgICB9XG4gICAgLy8gdXBkYXRlZCBob29rIGlzIGNhbGxlZCBieSB0aGUgc2NoZWR1bGVyIHRvIGVuc3VyZSB0aGF0IGNoaWxkcmVuIGFyZVxuICAgIC8vIHVwZGF0ZWQgaW4gYSBwYXJlbnQncyB1cGRhdGVkIGhvb2suXG4gIH07XG5cbiAgVnVlLnByb3RvdHlwZS4kZm9yY2VVcGRhdGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHZtID0gdGhpcztcbiAgICBpZiAodm0uX3dhdGNoZXIpIHtcbiAgICAgIHZtLl93YXRjaGVyLnVwZGF0ZSgpO1xuICAgIH1cbiAgfTtcblxuICBWdWUucHJvdG90eXBlLiRkZXN0cm95ID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciB2bSA9IHRoaXM7XG4gICAgaWYgKHZtLl9pc0JlaW5nRGVzdHJveWVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY2FsbEhvb2sodm0sICdiZWZvcmVEZXN0cm95Jyk7XG4gICAgdm0uX2lzQmVpbmdEZXN0cm95ZWQgPSB0cnVlO1xuICAgIC8vIHJlbW92ZSBzZWxmIGZyb20gcGFyZW50XG4gICAgdmFyIHBhcmVudCA9IHZtLiRwYXJlbnQ7XG4gICAgaWYgKHBhcmVudCAmJiAhcGFyZW50Ll9pc0JlaW5nRGVzdHJveWVkICYmICF2bS4kb3B0aW9ucy5hYnN0cmFjdCkge1xuICAgICAgcmVtb3ZlKHBhcmVudC4kY2hpbGRyZW4sIHZtKTtcbiAgICB9XG4gICAgLy8gdGVhcmRvd24gd2F0Y2hlcnNcbiAgICBpZiAodm0uX3dhdGNoZXIpIHtcbiAgICAgIHZtLl93YXRjaGVyLnRlYXJkb3duKCk7XG4gICAgfVxuICAgIHZhciBpID0gdm0uX3dhdGNoZXJzLmxlbmd0aDtcbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICB2bS5fd2F0Y2hlcnNbaV0udGVhcmRvd24oKTtcbiAgICB9XG4gICAgLy8gcmVtb3ZlIHJlZmVyZW5jZSBmcm9tIGRhdGEgb2JcbiAgICAvLyBmcm96ZW4gb2JqZWN0IG1heSBub3QgaGF2ZSBvYnNlcnZlci5cbiAgICBpZiAodm0uX2RhdGEuX19vYl9fKSB7XG4gICAgICB2bS5fZGF0YS5fX29iX18udm1Db3VudC0tO1xuICAgIH1cbiAgICAvLyBjYWxsIHRoZSBsYXN0IGhvb2suLi5cbiAgICB2bS5faXNEZXN0cm95ZWQgPSB0cnVlO1xuICAgIC8vIGludm9rZSBkZXN0cm95IGhvb2tzIG9uIGN1cnJlbnQgcmVuZGVyZWQgdHJlZVxuICAgIHZtLl9fcGF0Y2hfXyh2bS5fdm5vZGUsIG51bGwpO1xuICAgIC8vIGZpcmUgZGVzdHJveWVkIGhvb2tcbiAgICBjYWxsSG9vayh2bSwgJ2Rlc3Ryb3llZCcpO1xuICAgIC8vIHR1cm4gb2ZmIGFsbCBpbnN0YW5jZSBsaXN0ZW5lcnMuXG4gICAgdm0uJG9mZigpO1xuICAgIC8vIHJlbW92ZSBfX3Z1ZV9fIHJlZmVyZW5jZVxuICAgIGlmICh2bS4kZWwpIHtcbiAgICAgIHZtLiRlbC5fX3Z1ZV9fID0gbnVsbDtcbiAgICB9XG4gICAgLy8gcmVsZWFzZSBjaXJjdWxhciByZWZlcmVuY2UgKCM2NzU5KVxuICAgIGlmICh2bS4kdm5vZGUpIHtcbiAgICAgIHZtLiR2bm9kZS5wYXJlbnQgPSBudWxsO1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gbW91bnRDb21wb25lbnQgKFxuICB2bSxcbiAgZWwsXG4gIGh5ZHJhdGluZ1xuKSB7XG4gIHZtLiRlbCA9IGVsO1xuICBpZiAoIXZtLiRvcHRpb25zLnJlbmRlcikge1xuICAgIHZtLiRvcHRpb25zLnJlbmRlciA9IGNyZWF0ZUVtcHR5Vk5vZGU7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgaWYgKCh2bS4kb3B0aW9ucy50ZW1wbGF0ZSAmJiB2bS4kb3B0aW9ucy50ZW1wbGF0ZS5jaGFyQXQoMCkgIT09ICcjJykgfHxcbiAgICAgICAgdm0uJG9wdGlvbnMuZWwgfHwgZWwpIHtcbiAgICAgICAgd2FybihcbiAgICAgICAgICAnWW91IGFyZSB1c2luZyB0aGUgcnVudGltZS1vbmx5IGJ1aWxkIG9mIFZ1ZSB3aGVyZSB0aGUgdGVtcGxhdGUgJyArXG4gICAgICAgICAgJ2NvbXBpbGVyIGlzIG5vdCBhdmFpbGFibGUuIEVpdGhlciBwcmUtY29tcGlsZSB0aGUgdGVtcGxhdGVzIGludG8gJyArXG4gICAgICAgICAgJ3JlbmRlciBmdW5jdGlvbnMsIG9yIHVzZSB0aGUgY29tcGlsZXItaW5jbHVkZWQgYnVpbGQuJyxcbiAgICAgICAgICB2bVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2FybihcbiAgICAgICAgICAnRmFpbGVkIHRvIG1vdW50IGNvbXBvbmVudDogdGVtcGxhdGUgb3IgcmVuZGVyIGZ1bmN0aW9uIG5vdCBkZWZpbmVkLicsXG4gICAgICAgICAgdm1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgY2FsbEhvb2sodm0sICdiZWZvcmVNb3VudCcpO1xuXG4gIHZhciB1cGRhdGVDb21wb25lbnQ7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBjb25maWcucGVyZm9ybWFuY2UgJiYgbWFyaykge1xuICAgIHVwZGF0ZUNvbXBvbmVudCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBuYW1lID0gdm0uX25hbWU7XG4gICAgICB2YXIgaWQgPSB2bS5fdWlkO1xuICAgICAgdmFyIHN0YXJ0VGFnID0gXCJ2dWUtcGVyZi1zdGFydDpcIiArIGlkO1xuICAgICAgdmFyIGVuZFRhZyA9IFwidnVlLXBlcmYtZW5kOlwiICsgaWQ7XG5cbiAgICAgIG1hcmsoc3RhcnRUYWcpO1xuICAgICAgdmFyIHZub2RlID0gdm0uX3JlbmRlcigpO1xuICAgICAgbWFyayhlbmRUYWcpO1xuICAgICAgbWVhc3VyZSgoXCJ2dWUgXCIgKyBuYW1lICsgXCIgcmVuZGVyXCIpLCBzdGFydFRhZywgZW5kVGFnKTtcblxuICAgICAgbWFyayhzdGFydFRhZyk7XG4gICAgICB2bS5fdXBkYXRlKHZub2RlLCBoeWRyYXRpbmcpO1xuICAgICAgbWFyayhlbmRUYWcpO1xuICAgICAgbWVhc3VyZSgoXCJ2dWUgXCIgKyBuYW1lICsgXCIgcGF0Y2hcIiksIHN0YXJ0VGFnLCBlbmRUYWcpO1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgdXBkYXRlQ29tcG9uZW50ID0gZnVuY3Rpb24gKCkge1xuICAgICAgdm0uX3VwZGF0ZSh2bS5fcmVuZGVyKCksIGh5ZHJhdGluZyk7XG4gICAgfTtcbiAgfVxuXG4gIC8vIHdlIHNldCB0aGlzIHRvIHZtLl93YXRjaGVyIGluc2lkZSB0aGUgd2F0Y2hlcidzIGNvbnN0cnVjdG9yXG4gIC8vIHNpbmNlIHRoZSB3YXRjaGVyJ3MgaW5pdGlhbCBwYXRjaCBtYXkgY2FsbCAkZm9yY2VVcGRhdGUgKGUuZy4gaW5zaWRlIGNoaWxkXG4gIC8vIGNvbXBvbmVudCdzIG1vdW50ZWQgaG9vayksIHdoaWNoIHJlbGllcyBvbiB2bS5fd2F0Y2hlciBiZWluZyBhbHJlYWR5IGRlZmluZWRcbiAgbmV3IFdhdGNoZXIodm0sIHVwZGF0ZUNvbXBvbmVudCwgbm9vcCwge1xuICAgIGJlZm9yZTogZnVuY3Rpb24gYmVmb3JlICgpIHtcbiAgICAgIGlmICh2bS5faXNNb3VudGVkICYmICF2bS5faXNEZXN0cm95ZWQpIHtcbiAgICAgICAgY2FsbEhvb2sodm0sICdiZWZvcmVVcGRhdGUnKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHRydWUgLyogaXNSZW5kZXJXYXRjaGVyICovKTtcbiAgaHlkcmF0aW5nID0gZmFsc2U7XG5cbiAgLy8gbWFudWFsbHkgbW91bnRlZCBpbnN0YW5jZSwgY2FsbCBtb3VudGVkIG9uIHNlbGZcbiAgLy8gbW91bnRlZCBpcyBjYWxsZWQgZm9yIHJlbmRlci1jcmVhdGVkIGNoaWxkIGNvbXBvbmVudHMgaW4gaXRzIGluc2VydGVkIGhvb2tcbiAgaWYgKHZtLiR2bm9kZSA9PSBudWxsKSB7XG4gICAgdm0uX2lzTW91bnRlZCA9IHRydWU7XG4gICAgY2FsbEhvb2sodm0sICdtb3VudGVkJyk7XG4gIH1cbiAgcmV0dXJuIHZtXG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUNoaWxkQ29tcG9uZW50IChcbiAgdm0sXG4gIHByb3BzRGF0YSxcbiAgbGlzdGVuZXJzLFxuICBwYXJlbnRWbm9kZSxcbiAgcmVuZGVyQ2hpbGRyZW5cbikge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGlzVXBkYXRpbmdDaGlsZENvbXBvbmVudCA9IHRydWU7XG4gIH1cblxuICAvLyBkZXRlcm1pbmUgd2hldGhlciBjb21wb25lbnQgaGFzIHNsb3QgY2hpbGRyZW5cbiAgLy8gd2UgbmVlZCB0byBkbyB0aGlzIGJlZm9yZSBvdmVyd3JpdGluZyAkb3B0aW9ucy5fcmVuZGVyQ2hpbGRyZW4uXG5cbiAgLy8gY2hlY2sgaWYgdGhlcmUgYXJlIGR5bmFtaWMgc2NvcGVkU2xvdHMgKGhhbmQtd3JpdHRlbiBvciBjb21waWxlZCBidXQgd2l0aFxuICAvLyBkeW5hbWljIHNsb3QgbmFtZXMpLiBTdGF0aWMgc2NvcGVkIHNsb3RzIGNvbXBpbGVkIGZyb20gdGVtcGxhdGUgaGFzIHRoZVxuICAvLyBcIiRzdGFibGVcIiBtYXJrZXIuXG4gIHZhciBuZXdTY29wZWRTbG90cyA9IHBhcmVudFZub2RlLmRhdGEuc2NvcGVkU2xvdHM7XG4gIHZhciBvbGRTY29wZWRTbG90cyA9IHZtLiRzY29wZWRTbG90cztcbiAgdmFyIGhhc0R5bmFtaWNTY29wZWRTbG90ID0gISEoXG4gICAgKG5ld1Njb3BlZFNsb3RzICYmICFuZXdTY29wZWRTbG90cy4kc3RhYmxlKSB8fFxuICAgIChvbGRTY29wZWRTbG90cyAhPT0gZW1wdHlPYmplY3QgJiYgIW9sZFNjb3BlZFNsb3RzLiRzdGFibGUpIHx8XG4gICAgKG5ld1Njb3BlZFNsb3RzICYmIHZtLiRzY29wZWRTbG90cy4ka2V5ICE9PSBuZXdTY29wZWRTbG90cy4ka2V5KSB8fFxuICAgICghbmV3U2NvcGVkU2xvdHMgJiYgdm0uJHNjb3BlZFNsb3RzLiRrZXkpXG4gICk7XG5cbiAgLy8gQW55IHN0YXRpYyBzbG90IGNoaWxkcmVuIGZyb20gdGhlIHBhcmVudCBtYXkgaGF2ZSBjaGFuZ2VkIGR1cmluZyBwYXJlbnQnc1xuICAvLyB1cGRhdGUuIER5bmFtaWMgc2NvcGVkIHNsb3RzIG1heSBhbHNvIGhhdmUgY2hhbmdlZC4gSW4gc3VjaCBjYXNlcywgYSBmb3JjZWRcbiAgLy8gdXBkYXRlIGlzIG5lY2Vzc2FyeSB0byBlbnN1cmUgY29ycmVjdG5lc3MuXG4gIHZhciBuZWVkc0ZvcmNlVXBkYXRlID0gISEoXG4gICAgcmVuZGVyQ2hpbGRyZW4gfHwgICAgICAgICAgICAgICAvLyBoYXMgbmV3IHN0YXRpYyBzbG90c1xuICAgIHZtLiRvcHRpb25zLl9yZW5kZXJDaGlsZHJlbiB8fCAgLy8gaGFzIG9sZCBzdGF0aWMgc2xvdHNcbiAgICBoYXNEeW5hbWljU2NvcGVkU2xvdFxuICApO1xuXG4gIHZtLiRvcHRpb25zLl9wYXJlbnRWbm9kZSA9IHBhcmVudFZub2RlO1xuICB2bS4kdm5vZGUgPSBwYXJlbnRWbm9kZTsgLy8gdXBkYXRlIHZtJ3MgcGxhY2Vob2xkZXIgbm9kZSB3aXRob3V0IHJlLXJlbmRlclxuXG4gIGlmICh2bS5fdm5vZGUpIHsgLy8gdXBkYXRlIGNoaWxkIHRyZWUncyBwYXJlbnRcbiAgICB2bS5fdm5vZGUucGFyZW50ID0gcGFyZW50Vm5vZGU7XG4gIH1cbiAgdm0uJG9wdGlvbnMuX3JlbmRlckNoaWxkcmVuID0gcmVuZGVyQ2hpbGRyZW47XG5cbiAgLy8gdXBkYXRlICRhdHRycyBhbmQgJGxpc3RlbmVycyBoYXNoXG4gIC8vIHRoZXNlIGFyZSBhbHNvIHJlYWN0aXZlIHNvIHRoZXkgbWF5IHRyaWdnZXIgY2hpbGQgdXBkYXRlIGlmIHRoZSBjaGlsZFxuICAvLyB1c2VkIHRoZW0gZHVyaW5nIHJlbmRlclxuICB2bS4kYXR0cnMgPSBwYXJlbnRWbm9kZS5kYXRhLmF0dHJzIHx8IGVtcHR5T2JqZWN0O1xuICB2bS4kbGlzdGVuZXJzID0gbGlzdGVuZXJzIHx8IGVtcHR5T2JqZWN0O1xuXG4gIC8vIHVwZGF0ZSBwcm9wc1xuICBpZiAocHJvcHNEYXRhICYmIHZtLiRvcHRpb25zLnByb3BzKSB7XG4gICAgdG9nZ2xlT2JzZXJ2aW5nKGZhbHNlKTtcbiAgICB2YXIgcHJvcHMgPSB2bS5fcHJvcHM7XG4gICAgdmFyIHByb3BLZXlzID0gdm0uJG9wdGlvbnMuX3Byb3BLZXlzIHx8IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcEtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBrZXkgPSBwcm9wS2V5c1tpXTtcbiAgICAgIHZhciBwcm9wT3B0aW9ucyA9IHZtLiRvcHRpb25zLnByb3BzOyAvLyB3dGYgZmxvdz9cbiAgICAgIHByb3BzW2tleV0gPSB2YWxpZGF0ZVByb3Aoa2V5LCBwcm9wT3B0aW9ucywgcHJvcHNEYXRhLCB2bSk7XG4gICAgfVxuICAgIHRvZ2dsZU9ic2VydmluZyh0cnVlKTtcbiAgICAvLyBrZWVwIGEgY29weSBvZiByYXcgcHJvcHNEYXRhXG4gICAgdm0uJG9wdGlvbnMucHJvcHNEYXRhID0gcHJvcHNEYXRhO1xuICB9XG5cbiAgLy8gdXBkYXRlIGxpc3RlbmVyc1xuICBsaXN0ZW5lcnMgPSBsaXN0ZW5lcnMgfHwgZW1wdHlPYmplY3Q7XG4gIHZhciBvbGRMaXN0ZW5lcnMgPSB2bS4kb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzO1xuICB2bS4kb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzID0gbGlzdGVuZXJzO1xuICB1cGRhdGVDb21wb25lbnRMaXN0ZW5lcnModm0sIGxpc3RlbmVycywgb2xkTGlzdGVuZXJzKTtcblxuICAvLyByZXNvbHZlIHNsb3RzICsgZm9yY2UgdXBkYXRlIGlmIGhhcyBjaGlsZHJlblxuICBpZiAobmVlZHNGb3JjZVVwZGF0ZSkge1xuICAgIHZtLiRzbG90cyA9IHJlc29sdmVTbG90cyhyZW5kZXJDaGlsZHJlbiwgcGFyZW50Vm5vZGUuY29udGV4dCk7XG4gICAgdm0uJGZvcmNlVXBkYXRlKCk7XG4gIH1cblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGlzVXBkYXRpbmdDaGlsZENvbXBvbmVudCA9IGZhbHNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzSW5JbmFjdGl2ZVRyZWUgKHZtKSB7XG4gIHdoaWxlICh2bSAmJiAodm0gPSB2bS4kcGFyZW50KSkge1xuICAgIGlmICh2bS5faW5hY3RpdmUpIHsgcmV0dXJuIHRydWUgfVxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuXG5mdW5jdGlvbiBhY3RpdmF0ZUNoaWxkQ29tcG9uZW50ICh2bSwgZGlyZWN0KSB7XG4gIGlmIChkaXJlY3QpIHtcbiAgICB2bS5fZGlyZWN0SW5hY3RpdmUgPSBmYWxzZTtcbiAgICBpZiAoaXNJbkluYWN0aXZlVHJlZSh2bSkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgfSBlbHNlIGlmICh2bS5fZGlyZWN0SW5hY3RpdmUpIHtcbiAgICByZXR1cm5cbiAgfVxuICBpZiAodm0uX2luYWN0aXZlIHx8IHZtLl9pbmFjdGl2ZSA9PT0gbnVsbCkge1xuICAgIHZtLl9pbmFjdGl2ZSA9IGZhbHNlO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdm0uJGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICBhY3RpdmF0ZUNoaWxkQ29tcG9uZW50KHZtLiRjaGlsZHJlbltpXSk7XG4gICAgfVxuICAgIGNhbGxIb29rKHZtLCAnYWN0aXZhdGVkJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZGVhY3RpdmF0ZUNoaWxkQ29tcG9uZW50ICh2bSwgZGlyZWN0KSB7XG4gIGlmIChkaXJlY3QpIHtcbiAgICB2bS5fZGlyZWN0SW5hY3RpdmUgPSB0cnVlO1xuICAgIGlmIChpc0luSW5hY3RpdmVUcmVlKHZtKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICB9XG4gIGlmICghdm0uX2luYWN0aXZlKSB7XG4gICAgdm0uX2luYWN0aXZlID0gdHJ1ZTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZtLiRjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgZGVhY3RpdmF0ZUNoaWxkQ29tcG9uZW50KHZtLiRjaGlsZHJlbltpXSk7XG4gICAgfVxuICAgIGNhbGxIb29rKHZtLCAnZGVhY3RpdmF0ZWQnKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjYWxsSG9vayAodm0sIGhvb2spIHtcbiAgLy8gIzc1NzMgZGlzYWJsZSBkZXAgY29sbGVjdGlvbiB3aGVuIGludm9raW5nIGxpZmVjeWNsZSBob29rc1xuICBwdXNoVGFyZ2V0KCk7XG4gIHZhciBoYW5kbGVycyA9IHZtLiRvcHRpb25zW2hvb2tdO1xuICB2YXIgaW5mbyA9IGhvb2sgKyBcIiBob29rXCI7XG4gIGlmIChoYW5kbGVycykge1xuICAgIGZvciAodmFyIGkgPSAwLCBqID0gaGFuZGxlcnMubGVuZ3RoOyBpIDwgajsgaSsrKSB7XG4gICAgICBpbnZva2VXaXRoRXJyb3JIYW5kbGluZyhoYW5kbGVyc1tpXSwgdm0sIG51bGwsIHZtLCBpbmZvKTtcbiAgICB9XG4gIH1cbiAgaWYgKHZtLl9oYXNIb29rRXZlbnQpIHtcbiAgICB2bS4kZW1pdCgnaG9vazonICsgaG9vayk7XG4gIH1cbiAgcG9wVGFyZ2V0KCk7XG59XG5cbi8qICAqL1xuXG52YXIgTUFYX1VQREFURV9DT1VOVCA9IDEwMDtcblxudmFyIHF1ZXVlID0gW107XG52YXIgYWN0aXZhdGVkQ2hpbGRyZW4gPSBbXTtcbnZhciBoYXMgPSB7fTtcbnZhciBjaXJjdWxhciA9IHt9O1xudmFyIHdhaXRpbmcgPSBmYWxzZTtcbnZhciBmbHVzaGluZyA9IGZhbHNlO1xudmFyIGluZGV4ID0gMDtcblxuLyoqXG4gKiBSZXNldCB0aGUgc2NoZWR1bGVyJ3Mgc3RhdGUuXG4gKi9cbmZ1bmN0aW9uIHJlc2V0U2NoZWR1bGVyU3RhdGUgKCkge1xuICBpbmRleCA9IHF1ZXVlLmxlbmd0aCA9IGFjdGl2YXRlZENoaWxkcmVuLmxlbmd0aCA9IDA7XG4gIGhhcyA9IHt9O1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGNpcmN1bGFyID0ge307XG4gIH1cbiAgd2FpdGluZyA9IGZsdXNoaW5nID0gZmFsc2U7XG59XG5cbi8vIEFzeW5jIGVkZ2UgY2FzZSAjNjU2NiByZXF1aXJlcyBzYXZpbmcgdGhlIHRpbWVzdGFtcCB3aGVuIGV2ZW50IGxpc3RlbmVycyBhcmVcbi8vIGF0dGFjaGVkLiBIb3dldmVyLCBjYWxsaW5nIHBlcmZvcm1hbmNlLm5vdygpIGhhcyBhIHBlcmYgb3ZlcmhlYWQgZXNwZWNpYWxseVxuLy8gaWYgdGhlIHBhZ2UgaGFzIHRob3VzYW5kcyBvZiBldmVudCBsaXN0ZW5lcnMuIEluc3RlYWQsIHdlIHRha2UgYSB0aW1lc3RhbXBcbi8vIGV2ZXJ5IHRpbWUgdGhlIHNjaGVkdWxlciBmbHVzaGVzIGFuZCB1c2UgdGhhdCBmb3IgYWxsIGV2ZW50IGxpc3RlbmVyc1xuLy8gYXR0YWNoZWQgZHVyaW5nIHRoYXQgZmx1c2guXG52YXIgY3VycmVudEZsdXNoVGltZXN0YW1wID0gMDtcblxuLy8gQXN5bmMgZWRnZSBjYXNlIGZpeCByZXF1aXJlcyBzdG9yaW5nIGFuIGV2ZW50IGxpc3RlbmVyJ3MgYXR0YWNoIHRpbWVzdGFtcC5cbnZhciBnZXROb3cgPSBEYXRlLm5vdztcblxuLy8gRGV0ZXJtaW5lIHdoYXQgZXZlbnQgdGltZXN0YW1wIHRoZSBicm93c2VyIGlzIHVzaW5nLiBBbm5veWluZ2x5LCB0aGVcbi8vIHRpbWVzdGFtcCBjYW4gZWl0aGVyIGJlIGhpLXJlcyAocmVsYXRpdmUgdG8gcGFnZSBsb2FkKSBvciBsb3ctcmVzXG4vLyAocmVsYXRpdmUgdG8gVU5JWCBlcG9jaCksIHNvIGluIG9yZGVyIHRvIGNvbXBhcmUgdGltZSB3ZSBoYXZlIHRvIHVzZSB0aGVcbi8vIHNhbWUgdGltZXN0YW1wIHR5cGUgd2hlbiBzYXZpbmcgdGhlIGZsdXNoIHRpbWVzdGFtcC5cbi8vIEFsbCBJRSB2ZXJzaW9ucyB1c2UgbG93LXJlcyBldmVudCB0aW1lc3RhbXBzLCBhbmQgaGF2ZSBwcm9ibGVtYXRpYyBjbG9ja1xuLy8gaW1wbGVtZW50YXRpb25zICgjOTYzMilcbmlmIChpbkJyb3dzZXIgJiYgIWlzSUUpIHtcbiAgdmFyIHBlcmZvcm1hbmNlID0gd2luZG93LnBlcmZvcm1hbmNlO1xuICBpZiAoXG4gICAgcGVyZm9ybWFuY2UgJiZcbiAgICB0eXBlb2YgcGVyZm9ybWFuY2Uubm93ID09PSAnZnVuY3Rpb24nICYmXG4gICAgZ2V0Tm93KCkgPiBkb2N1bWVudC5jcmVhdGVFdmVudCgnRXZlbnQnKS50aW1lU3RhbXBcbiAgKSB7XG4gICAgLy8gaWYgdGhlIGV2ZW50IHRpbWVzdGFtcCwgYWx0aG91Z2ggZXZhbHVhdGVkIEFGVEVSIHRoZSBEYXRlLm5vdygpLCBpc1xuICAgIC8vIHNtYWxsZXIgdGhhbiBpdCwgaXQgbWVhbnMgdGhlIGV2ZW50IGlzIHVzaW5nIGEgaGktcmVzIHRpbWVzdGFtcCxcbiAgICAvLyBhbmQgd2UgbmVlZCB0byB1c2UgdGhlIGhpLXJlcyB2ZXJzaW9uIGZvciBldmVudCBsaXN0ZW5lciB0aW1lc3RhbXBzIGFzXG4gICAgLy8gd2VsbC5cbiAgICBnZXROb3cgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBwZXJmb3JtYW5jZS5ub3coKTsgfTtcbiAgfVxufVxuXG4vKipcbiAqIEZsdXNoIGJvdGggcXVldWVzIGFuZCBydW4gdGhlIHdhdGNoZXJzLlxuICovXG5mdW5jdGlvbiBmbHVzaFNjaGVkdWxlclF1ZXVlICgpIHtcbiAgY3VycmVudEZsdXNoVGltZXN0YW1wID0gZ2V0Tm93KCk7XG4gIGZsdXNoaW5nID0gdHJ1ZTtcbiAgdmFyIHdhdGNoZXIsIGlkO1xuXG4gIC8vIFNvcnQgcXVldWUgYmVmb3JlIGZsdXNoLlxuICAvLyBUaGlzIGVuc3VyZXMgdGhhdDpcbiAgLy8gMS4gQ29tcG9uZW50cyBhcmUgdXBkYXRlZCBmcm9tIHBhcmVudCB0byBjaGlsZC4gKGJlY2F1c2UgcGFyZW50IGlzIGFsd2F5c1xuICAvLyAgICBjcmVhdGVkIGJlZm9yZSB0aGUgY2hpbGQpXG4gIC8vIDIuIEEgY29tcG9uZW50J3MgdXNlciB3YXRjaGVycyBhcmUgcnVuIGJlZm9yZSBpdHMgcmVuZGVyIHdhdGNoZXIgKGJlY2F1c2VcbiAgLy8gICAgdXNlciB3YXRjaGVycyBhcmUgY3JlYXRlZCBiZWZvcmUgdGhlIHJlbmRlciB3YXRjaGVyKVxuICAvLyAzLiBJZiBhIGNvbXBvbmVudCBpcyBkZXN0cm95ZWQgZHVyaW5nIGEgcGFyZW50IGNvbXBvbmVudCdzIHdhdGNoZXIgcnVuLFxuICAvLyAgICBpdHMgd2F0Y2hlcnMgY2FuIGJlIHNraXBwZWQuXG4gIHF1ZXVlLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJuIGEuaWQgLSBiLmlkOyB9KTtcblxuICAvLyBkbyBub3QgY2FjaGUgbGVuZ3RoIGJlY2F1c2UgbW9yZSB3YXRjaGVycyBtaWdodCBiZSBwdXNoZWRcbiAgLy8gYXMgd2UgcnVuIGV4aXN0aW5nIHdhdGNoZXJzXG4gIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IHF1ZXVlLmxlbmd0aDsgaW5kZXgrKykge1xuICAgIHdhdGNoZXIgPSBxdWV1ZVtpbmRleF07XG4gICAgaWYgKHdhdGNoZXIuYmVmb3JlKSB7XG4gICAgICB3YXRjaGVyLmJlZm9yZSgpO1xuICAgIH1cbiAgICBpZCA9IHdhdGNoZXIuaWQ7XG4gICAgaGFzW2lkXSA9IG51bGw7XG4gICAgd2F0Y2hlci5ydW4oKTtcbiAgICAvLyBpbiBkZXYgYnVpbGQsIGNoZWNrIGFuZCBzdG9wIGNpcmN1bGFyIHVwZGF0ZXMuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgaGFzW2lkXSAhPSBudWxsKSB7XG4gICAgICBjaXJjdWxhcltpZF0gPSAoY2lyY3VsYXJbaWRdIHx8IDApICsgMTtcbiAgICAgIGlmIChjaXJjdWxhcltpZF0gPiBNQVhfVVBEQVRFX0NPVU5UKSB7XG4gICAgICAgIHdhcm4oXG4gICAgICAgICAgJ1lvdSBtYXkgaGF2ZSBhbiBpbmZpbml0ZSB1cGRhdGUgbG9vcCAnICsgKFxuICAgICAgICAgICAgd2F0Y2hlci51c2VyXG4gICAgICAgICAgICAgID8gKFwiaW4gd2F0Y2hlciB3aXRoIGV4cHJlc3Npb24gXFxcIlwiICsgKHdhdGNoZXIuZXhwcmVzc2lvbikgKyBcIlxcXCJcIilcbiAgICAgICAgICAgICAgOiBcImluIGEgY29tcG9uZW50IHJlbmRlciBmdW5jdGlvbi5cIlxuICAgICAgICAgICksXG4gICAgICAgICAgd2F0Y2hlci52bVxuICAgICAgICApO1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIGtlZXAgY29waWVzIG9mIHBvc3QgcXVldWVzIGJlZm9yZSByZXNldHRpbmcgc3RhdGVcbiAgdmFyIGFjdGl2YXRlZFF1ZXVlID0gYWN0aXZhdGVkQ2hpbGRyZW4uc2xpY2UoKTtcbiAgdmFyIHVwZGF0ZWRRdWV1ZSA9IHF1ZXVlLnNsaWNlKCk7XG5cbiAgcmVzZXRTY2hlZHVsZXJTdGF0ZSgpO1xuXG4gIC8vIGNhbGwgY29tcG9uZW50IHVwZGF0ZWQgYW5kIGFjdGl2YXRlZCBob29rc1xuICBjYWxsQWN0aXZhdGVkSG9va3MoYWN0aXZhdGVkUXVldWUpO1xuICBjYWxsVXBkYXRlZEhvb2tzKHVwZGF0ZWRRdWV1ZSk7XG5cbiAgLy8gZGV2dG9vbCBob29rXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoZGV2dG9vbHMgJiYgY29uZmlnLmRldnRvb2xzKSB7XG4gICAgZGV2dG9vbHMuZW1pdCgnZmx1c2gnKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlZEhvb2tzIChxdWV1ZSkge1xuICB2YXIgaSA9IHF1ZXVlLmxlbmd0aDtcbiAgd2hpbGUgKGktLSkge1xuICAgIHZhciB3YXRjaGVyID0gcXVldWVbaV07XG4gICAgdmFyIHZtID0gd2F0Y2hlci52bTtcbiAgICBpZiAodm0uX3dhdGNoZXIgPT09IHdhdGNoZXIgJiYgdm0uX2lzTW91bnRlZCAmJiAhdm0uX2lzRGVzdHJveWVkKSB7XG4gICAgICBjYWxsSG9vayh2bSwgJ3VwZGF0ZWQnKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBRdWV1ZSBhIGtlcHQtYWxpdmUgY29tcG9uZW50IHRoYXQgd2FzIGFjdGl2YXRlZCBkdXJpbmcgcGF0Y2guXG4gKiBUaGUgcXVldWUgd2lsbCBiZSBwcm9jZXNzZWQgYWZ0ZXIgdGhlIGVudGlyZSB0cmVlIGhhcyBiZWVuIHBhdGNoZWQuXG4gKi9cbmZ1bmN0aW9uIHF1ZXVlQWN0aXZhdGVkQ29tcG9uZW50ICh2bSkge1xuICAvLyBzZXR0aW5nIF9pbmFjdGl2ZSB0byBmYWxzZSBoZXJlIHNvIHRoYXQgYSByZW5kZXIgZnVuY3Rpb24gY2FuXG4gIC8vIHJlbHkgb24gY2hlY2tpbmcgd2hldGhlciBpdCdzIGluIGFuIGluYWN0aXZlIHRyZWUgKGUuZy4gcm91dGVyLXZpZXcpXG4gIHZtLl9pbmFjdGl2ZSA9IGZhbHNlO1xuICBhY3RpdmF0ZWRDaGlsZHJlbi5wdXNoKHZtKTtcbn1cblxuZnVuY3Rpb24gY2FsbEFjdGl2YXRlZEhvb2tzIChxdWV1ZSkge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHF1ZXVlLmxlbmd0aDsgaSsrKSB7XG4gICAgcXVldWVbaV0uX2luYWN0aXZlID0gdHJ1ZTtcbiAgICBhY3RpdmF0ZUNoaWxkQ29tcG9uZW50KHF1ZXVlW2ldLCB0cnVlIC8qIHRydWUgKi8pO1xuICB9XG59XG5cbi8qKlxuICogUHVzaCBhIHdhdGNoZXIgaW50byB0aGUgd2F0Y2hlciBxdWV1ZS5cbiAqIEpvYnMgd2l0aCBkdXBsaWNhdGUgSURzIHdpbGwgYmUgc2tpcHBlZCB1bmxlc3MgaXQnc1xuICogcHVzaGVkIHdoZW4gdGhlIHF1ZXVlIGlzIGJlaW5nIGZsdXNoZWQuXG4gKi9cbmZ1bmN0aW9uIHF1ZXVlV2F0Y2hlciAod2F0Y2hlcikge1xuICB2YXIgaWQgPSB3YXRjaGVyLmlkO1xuICBpZiAoaGFzW2lkXSA9PSBudWxsKSB7XG4gICAgaGFzW2lkXSA9IHRydWU7XG4gICAgaWYgKCFmbHVzaGluZykge1xuICAgICAgcXVldWUucHVzaCh3YXRjaGVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gaWYgYWxyZWFkeSBmbHVzaGluZywgc3BsaWNlIHRoZSB3YXRjaGVyIGJhc2VkIG9uIGl0cyBpZFxuICAgICAgLy8gaWYgYWxyZWFkeSBwYXN0IGl0cyBpZCwgaXQgd2lsbCBiZSBydW4gbmV4dCBpbW1lZGlhdGVseS5cbiAgICAgIHZhciBpID0gcXVldWUubGVuZ3RoIC0gMTtcbiAgICAgIHdoaWxlIChpID4gaW5kZXggJiYgcXVldWVbaV0uaWQgPiB3YXRjaGVyLmlkKSB7XG4gICAgICAgIGktLTtcbiAgICAgIH1cbiAgICAgIHF1ZXVlLnNwbGljZShpICsgMSwgMCwgd2F0Y2hlcik7XG4gICAgfVxuICAgIC8vIHF1ZXVlIHRoZSBmbHVzaFxuICAgIGlmICghd2FpdGluZykge1xuICAgICAgd2FpdGluZyA9IHRydWU7XG5cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICFjb25maWcuYXN5bmMpIHtcbiAgICAgICAgZmx1c2hTY2hlZHVsZXJRdWV1ZSgpO1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIG5leHRUaWNrKGZsdXNoU2NoZWR1bGVyUXVldWUpO1xuICAgIH1cbiAgfVxufVxuXG4vKiAgKi9cblxuXG5cbnZhciB1aWQkMiA9IDA7XG5cbi8qKlxuICogQSB3YXRjaGVyIHBhcnNlcyBhbiBleHByZXNzaW9uLCBjb2xsZWN0cyBkZXBlbmRlbmNpZXMsXG4gKiBhbmQgZmlyZXMgY2FsbGJhY2sgd2hlbiB0aGUgZXhwcmVzc2lvbiB2YWx1ZSBjaGFuZ2VzLlxuICogVGhpcyBpcyB1c2VkIGZvciBib3RoIHRoZSAkd2F0Y2goKSBhcGkgYW5kIGRpcmVjdGl2ZXMuXG4gKi9cbnZhciBXYXRjaGVyID0gZnVuY3Rpb24gV2F0Y2hlciAoXG4gIHZtLFxuICBleHBPckZuLFxuICBjYixcbiAgb3B0aW9ucyxcbiAgaXNSZW5kZXJXYXRjaGVyXG4pIHtcbiAgdGhpcy52bSA9IHZtO1xuICBpZiAoaXNSZW5kZXJXYXRjaGVyKSB7XG4gICAgdm0uX3dhdGNoZXIgPSB0aGlzO1xuICB9XG4gIHZtLl93YXRjaGVycy5wdXNoKHRoaXMpO1xuICAvLyBvcHRpb25zXG4gIGlmIChvcHRpb25zKSB7XG4gICAgdGhpcy5kZWVwID0gISFvcHRpb25zLmRlZXA7XG4gICAgdGhpcy51c2VyID0gISFvcHRpb25zLnVzZXI7XG4gICAgdGhpcy5sYXp5ID0gISFvcHRpb25zLmxhenk7XG4gICAgdGhpcy5zeW5jID0gISFvcHRpb25zLnN5bmM7XG4gICAgdGhpcy5iZWZvcmUgPSBvcHRpb25zLmJlZm9yZTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLmRlZXAgPSB0aGlzLnVzZXIgPSB0aGlzLmxhenkgPSB0aGlzLnN5bmMgPSBmYWxzZTtcbiAgfVxuICB0aGlzLmNiID0gY2I7XG4gIHRoaXMuaWQgPSArK3VpZCQyOyAvLyB1aWQgZm9yIGJhdGNoaW5nXG4gIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgdGhpcy5kaXJ0eSA9IHRoaXMubGF6eTsgLy8gZm9yIGxhenkgd2F0Y2hlcnNcbiAgdGhpcy5kZXBzID0gW107XG4gIHRoaXMubmV3RGVwcyA9IFtdO1xuICB0aGlzLmRlcElkcyA9IG5ldyBfU2V0KCk7XG4gIHRoaXMubmV3RGVwSWRzID0gbmV3IF9TZXQoKTtcbiAgdGhpcy5leHByZXNzaW9uID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJ1xuICAgID8gZXhwT3JGbi50b1N0cmluZygpXG4gICAgOiAnJztcbiAgLy8gcGFyc2UgZXhwcmVzc2lvbiBmb3IgZ2V0dGVyXG4gIGlmICh0eXBlb2YgZXhwT3JGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHRoaXMuZ2V0dGVyID0gZXhwT3JGbjtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLmdldHRlciA9IHBhcnNlUGF0aChleHBPckZuKTtcbiAgICBpZiAoIXRoaXMuZ2V0dGVyKSB7XG4gICAgICB0aGlzLmdldHRlciA9IG5vb3A7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICAgIFwiRmFpbGVkIHdhdGNoaW5nIHBhdGg6IFxcXCJcIiArIGV4cE9yRm4gKyBcIlxcXCIgXCIgK1xuICAgICAgICAnV2F0Y2hlciBvbmx5IGFjY2VwdHMgc2ltcGxlIGRvdC1kZWxpbWl0ZWQgcGF0aHMuICcgK1xuICAgICAgICAnRm9yIGZ1bGwgY29udHJvbCwgdXNlIGEgZnVuY3Rpb24gaW5zdGVhZC4nLFxuICAgICAgICB2bVxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgdGhpcy52YWx1ZSA9IHRoaXMubGF6eVxuICAgID8gdW5kZWZpbmVkXG4gICAgOiB0aGlzLmdldCgpO1xufTtcblxuLyoqXG4gKiBFdmFsdWF0ZSB0aGUgZ2V0dGVyLCBhbmQgcmUtY29sbGVjdCBkZXBlbmRlbmNpZXMuXG4gKi9cbldhdGNoZXIucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIGdldCAoKSB7XG4gIHB1c2hUYXJnZXQodGhpcyk7XG4gIHZhciB2YWx1ZTtcbiAgdmFyIHZtID0gdGhpcy52bTtcbiAgdHJ5IHtcbiAgICB2YWx1ZSA9IHRoaXMuZ2V0dGVyLmNhbGwodm0sIHZtKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmICh0aGlzLnVzZXIpIHtcbiAgICAgIGhhbmRsZUVycm9yKGUsIHZtLCAoXCJnZXR0ZXIgZm9yIHdhdGNoZXIgXFxcIlwiICsgKHRoaXMuZXhwcmVzc2lvbikgKyBcIlxcXCJcIikpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBlXG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIC8vIFwidG91Y2hcIiBldmVyeSBwcm9wZXJ0eSBzbyB0aGV5IGFyZSBhbGwgdHJhY2tlZCBhc1xuICAgIC8vIGRlcGVuZGVuY2llcyBmb3IgZGVlcCB3YXRjaGluZ1xuICAgIGlmICh0aGlzLmRlZXApIHtcbiAgICAgIHRyYXZlcnNlKHZhbHVlKTtcbiAgICB9XG4gICAgcG9wVGFyZ2V0KCk7XG4gICAgdGhpcy5jbGVhbnVwRGVwcygpO1xuICB9XG4gIHJldHVybiB2YWx1ZVxufTtcblxuLyoqXG4gKiBBZGQgYSBkZXBlbmRlbmN5IHRvIHRoaXMgZGlyZWN0aXZlLlxuICovXG5XYXRjaGVyLnByb3RvdHlwZS5hZGREZXAgPSBmdW5jdGlvbiBhZGREZXAgKGRlcCkge1xuICB2YXIgaWQgPSBkZXAuaWQ7XG4gIGlmICghdGhpcy5uZXdEZXBJZHMuaGFzKGlkKSkge1xuICAgIHRoaXMubmV3RGVwSWRzLmFkZChpZCk7XG4gICAgdGhpcy5uZXdEZXBzLnB1c2goZGVwKTtcbiAgICBpZiAoIXRoaXMuZGVwSWRzLmhhcyhpZCkpIHtcbiAgICAgIGRlcC5hZGRTdWIodGhpcyk7XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIENsZWFuIHVwIGZvciBkZXBlbmRlbmN5IGNvbGxlY3Rpb24uXG4gKi9cbldhdGNoZXIucHJvdG90eXBlLmNsZWFudXBEZXBzID0gZnVuY3Rpb24gY2xlYW51cERlcHMgKCkge1xuICB2YXIgaSA9IHRoaXMuZGVwcy5sZW5ndGg7XG4gIHdoaWxlIChpLS0pIHtcbiAgICB2YXIgZGVwID0gdGhpcy5kZXBzW2ldO1xuICAgIGlmICghdGhpcy5uZXdEZXBJZHMuaGFzKGRlcC5pZCkpIHtcbiAgICAgIGRlcC5yZW1vdmVTdWIodGhpcyk7XG4gICAgfVxuICB9XG4gIHZhciB0bXAgPSB0aGlzLmRlcElkcztcbiAgdGhpcy5kZXBJZHMgPSB0aGlzLm5ld0RlcElkcztcbiAgdGhpcy5uZXdEZXBJZHMgPSB0bXA7XG4gIHRoaXMubmV3RGVwSWRzLmNsZWFyKCk7XG4gIHRtcCA9IHRoaXMuZGVwcztcbiAgdGhpcy5kZXBzID0gdGhpcy5uZXdEZXBzO1xuICB0aGlzLm5ld0RlcHMgPSB0bXA7XG4gIHRoaXMubmV3RGVwcy5sZW5ndGggPSAwO1xufTtcblxuLyoqXG4gKiBTdWJzY3JpYmVyIGludGVyZmFjZS5cbiAqIFdpbGwgYmUgY2FsbGVkIHdoZW4gYSBkZXBlbmRlbmN5IGNoYW5nZXMuXG4gKi9cbldhdGNoZXIucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIHVwZGF0ZSAoKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gIGlmICh0aGlzLmxhenkpIHtcbiAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcbiAgfSBlbHNlIGlmICh0aGlzLnN5bmMpIHtcbiAgICB0aGlzLnJ1bigpO1xuICB9IGVsc2Uge1xuICAgIHF1ZXVlV2F0Y2hlcih0aGlzKTtcbiAgfVxufTtcblxuLyoqXG4gKiBTY2hlZHVsZXIgam9iIGludGVyZmFjZS5cbiAqIFdpbGwgYmUgY2FsbGVkIGJ5IHRoZSBzY2hlZHVsZXIuXG4gKi9cbldhdGNoZXIucHJvdG90eXBlLnJ1biA9IGZ1bmN0aW9uIHJ1biAoKSB7XG4gIGlmICh0aGlzLmFjdGl2ZSkge1xuICAgIHZhciB2YWx1ZSA9IHRoaXMuZ2V0KCk7XG4gICAgaWYgKFxuICAgICAgdmFsdWUgIT09IHRoaXMudmFsdWUgfHxcbiAgICAgIC8vIERlZXAgd2F0Y2hlcnMgYW5kIHdhdGNoZXJzIG9uIE9iamVjdC9BcnJheXMgc2hvdWxkIGZpcmUgZXZlblxuICAgICAgLy8gd2hlbiB0aGUgdmFsdWUgaXMgdGhlIHNhbWUsIGJlY2F1c2UgdGhlIHZhbHVlIG1heVxuICAgICAgLy8gaGF2ZSBtdXRhdGVkLlxuICAgICAgaXNPYmplY3QodmFsdWUpIHx8XG4gICAgICB0aGlzLmRlZXBcbiAgICApIHtcbiAgICAgIC8vIHNldCBuZXcgdmFsdWVcbiAgICAgIHZhciBvbGRWYWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICBpZiAodGhpcy51c2VyKSB7XG4gICAgICAgIHZhciBpbmZvID0gXCJjYWxsYmFjayBmb3Igd2F0Y2hlciBcXFwiXCIgKyAodGhpcy5leHByZXNzaW9uKSArIFwiXFxcIlwiO1xuICAgICAgICBpbnZva2VXaXRoRXJyb3JIYW5kbGluZyh0aGlzLmNiLCB0aGlzLnZtLCBbdmFsdWUsIG9sZFZhbHVlXSwgdGhpcy52bSwgaW5mbyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNiLmNhbGwodGhpcy52bSwgdmFsdWUsIG9sZFZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogRXZhbHVhdGUgdGhlIHZhbHVlIG9mIHRoZSB3YXRjaGVyLlxuICogVGhpcyBvbmx5IGdldHMgY2FsbGVkIGZvciBsYXp5IHdhdGNoZXJzLlxuICovXG5XYXRjaGVyLnByb3RvdHlwZS5ldmFsdWF0ZSA9IGZ1bmN0aW9uIGV2YWx1YXRlICgpIHtcbiAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0KCk7XG4gIHRoaXMuZGlydHkgPSBmYWxzZTtcbn07XG5cbi8qKlxuICogRGVwZW5kIG9uIGFsbCBkZXBzIGNvbGxlY3RlZCBieSB0aGlzIHdhdGNoZXIuXG4gKi9cbldhdGNoZXIucHJvdG90eXBlLmRlcGVuZCA9IGZ1bmN0aW9uIGRlcGVuZCAoKSB7XG4gIHZhciBpID0gdGhpcy5kZXBzLmxlbmd0aDtcbiAgd2hpbGUgKGktLSkge1xuICAgIHRoaXMuZGVwc1tpXS5kZXBlbmQoKTtcbiAgfVxufTtcblxuLyoqXG4gKiBSZW1vdmUgc2VsZiBmcm9tIGFsbCBkZXBlbmRlbmNpZXMnIHN1YnNjcmliZXIgbGlzdC5cbiAqL1xuV2F0Y2hlci5wcm90b3R5cGUudGVhcmRvd24gPSBmdW5jdGlvbiB0ZWFyZG93biAoKSB7XG4gIGlmICh0aGlzLmFjdGl2ZSkge1xuICAgIC8vIHJlbW92ZSBzZWxmIGZyb20gdm0ncyB3YXRjaGVyIGxpc3RcbiAgICAvLyB0aGlzIGlzIGEgc29tZXdoYXQgZXhwZW5zaXZlIG9wZXJhdGlvbiBzbyB3ZSBza2lwIGl0XG4gICAgLy8gaWYgdGhlIHZtIGlzIGJlaW5nIGRlc3Ryb3llZC5cbiAgICBpZiAoIXRoaXMudm0uX2lzQmVpbmdEZXN0cm95ZWQpIHtcbiAgICAgIHJlbW92ZSh0aGlzLnZtLl93YXRjaGVycywgdGhpcyk7XG4gICAgfVxuICAgIHZhciBpID0gdGhpcy5kZXBzLmxlbmd0aDtcbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICB0aGlzLmRlcHNbaV0ucmVtb3ZlU3ViKHRoaXMpO1xuICAgIH1cbiAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICB9XG59O1xuXG4vKiAgKi9cblxudmFyIHNoYXJlZFByb3BlcnR5RGVmaW5pdGlvbiA9IHtcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlLFxuICBnZXQ6IG5vb3AsXG4gIHNldDogbm9vcFxufTtcblxuZnVuY3Rpb24gcHJveHkgKHRhcmdldCwgc291cmNlS2V5LCBrZXkpIHtcbiAgc2hhcmVkUHJvcGVydHlEZWZpbml0aW9uLmdldCA9IGZ1bmN0aW9uIHByb3h5R2V0dGVyICgpIHtcbiAgICByZXR1cm4gdGhpc1tzb3VyY2VLZXldW2tleV1cbiAgfTtcbiAgc2hhcmVkUHJvcGVydHlEZWZpbml0aW9uLnNldCA9IGZ1bmN0aW9uIHByb3h5U2V0dGVyICh2YWwpIHtcbiAgICB0aGlzW3NvdXJjZUtleV1ba2V5XSA9IHZhbDtcbiAgfTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzaGFyZWRQcm9wZXJ0eURlZmluaXRpb24pO1xufVxuXG5mdW5jdGlvbiBpbml0U3RhdGUgKHZtKSB7XG4gIHZtLl93YXRjaGVycyA9IFtdO1xuICB2YXIgb3B0cyA9IHZtLiRvcHRpb25zO1xuICBpZiAob3B0cy5wcm9wcykgeyBpbml0UHJvcHModm0sIG9wdHMucHJvcHMpOyB9XG4gIGlmIChvcHRzLm1ldGhvZHMpIHsgaW5pdE1ldGhvZHModm0sIG9wdHMubWV0aG9kcyk7IH1cbiAgaWYgKG9wdHMuZGF0YSkge1xuICAgIGluaXREYXRhKHZtKTtcbiAgfSBlbHNlIHtcbiAgICBvYnNlcnZlKHZtLl9kYXRhID0ge30sIHRydWUgLyogYXNSb290RGF0YSAqLyk7XG4gIH1cbiAgaWYgKG9wdHMuY29tcHV0ZWQpIHsgaW5pdENvbXB1dGVkKHZtLCBvcHRzLmNvbXB1dGVkKTsgfVxuICBpZiAob3B0cy53YXRjaCAmJiBvcHRzLndhdGNoICE9PSBuYXRpdmVXYXRjaCkge1xuICAgIGluaXRXYXRjaCh2bSwgb3B0cy53YXRjaCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5pdFByb3BzICh2bSwgcHJvcHNPcHRpb25zKSB7XG4gIHZhciBwcm9wc0RhdGEgPSB2bS4kb3B0aW9ucy5wcm9wc0RhdGEgfHwge307XG4gIHZhciBwcm9wcyA9IHZtLl9wcm9wcyA9IHt9O1xuICAvLyBjYWNoZSBwcm9wIGtleXMgc28gdGhhdCBmdXR1cmUgcHJvcHMgdXBkYXRlcyBjYW4gaXRlcmF0ZSB1c2luZyBBcnJheVxuICAvLyBpbnN0ZWFkIG9mIGR5bmFtaWMgb2JqZWN0IGtleSBlbnVtZXJhdGlvbi5cbiAgdmFyIGtleXMgPSB2bS4kb3B0aW9ucy5fcHJvcEtleXMgPSBbXTtcbiAgdmFyIGlzUm9vdCA9ICF2bS4kcGFyZW50O1xuICAvLyByb290IGluc3RhbmNlIHByb3BzIHNob3VsZCBiZSBjb252ZXJ0ZWRcbiAgaWYgKCFpc1Jvb3QpIHtcbiAgICB0b2dnbGVPYnNlcnZpbmcoZmFsc2UpO1xuICB9XG4gIHZhciBsb29wID0gZnVuY3Rpb24gKCBrZXkgKSB7XG4gICAga2V5cy5wdXNoKGtleSk7XG4gICAgdmFyIHZhbHVlID0gdmFsaWRhdGVQcm9wKGtleSwgcHJvcHNPcHRpb25zLCBwcm9wc0RhdGEsIHZtKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB2YXIgaHlwaGVuYXRlZEtleSA9IGh5cGhlbmF0ZShrZXkpO1xuICAgICAgaWYgKGlzUmVzZXJ2ZWRBdHRyaWJ1dGUoaHlwaGVuYXRlZEtleSkgfHxcbiAgICAgICAgICBjb25maWcuaXNSZXNlcnZlZEF0dHIoaHlwaGVuYXRlZEtleSkpIHtcbiAgICAgICAgd2FybihcbiAgICAgICAgICAoXCJcXFwiXCIgKyBoeXBoZW5hdGVkS2V5ICsgXCJcXFwiIGlzIGEgcmVzZXJ2ZWQgYXR0cmlidXRlIGFuZCBjYW5ub3QgYmUgdXNlZCBhcyBjb21wb25lbnQgcHJvcC5cIiksXG4gICAgICAgICAgdm1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGRlZmluZVJlYWN0aXZlJCQxKHByb3BzLCBrZXksIHZhbHVlLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghaXNSb290ICYmICFpc1VwZGF0aW5nQ2hpbGRDb21wb25lbnQpIHtcbiAgICAgICAgICB3YXJuKFxuICAgICAgICAgICAgXCJBdm9pZCBtdXRhdGluZyBhIHByb3AgZGlyZWN0bHkgc2luY2UgdGhlIHZhbHVlIHdpbGwgYmUgXCIgK1xuICAgICAgICAgICAgXCJvdmVyd3JpdHRlbiB3aGVuZXZlciB0aGUgcGFyZW50IGNvbXBvbmVudCByZS1yZW5kZXJzLiBcIiArXG4gICAgICAgICAgICBcIkluc3RlYWQsIHVzZSBhIGRhdGEgb3IgY29tcHV0ZWQgcHJvcGVydHkgYmFzZWQgb24gdGhlIHByb3AncyBcIiArXG4gICAgICAgICAgICBcInZhbHVlLiBQcm9wIGJlaW5nIG11dGF0ZWQ6IFxcXCJcIiArIGtleSArIFwiXFxcIlwiLFxuICAgICAgICAgICAgdm1cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVmaW5lUmVhY3RpdmUkJDEocHJvcHMsIGtleSwgdmFsdWUpO1xuICAgIH1cbiAgICAvLyBzdGF0aWMgcHJvcHMgYXJlIGFscmVhZHkgcHJveGllZCBvbiB0aGUgY29tcG9uZW50J3MgcHJvdG90eXBlXG4gICAgLy8gZHVyaW5nIFZ1ZS5leHRlbmQoKS4gV2Ugb25seSBuZWVkIHRvIHByb3h5IHByb3BzIGRlZmluZWQgYXRcbiAgICAvLyBpbnN0YW50aWF0aW9uIGhlcmUuXG4gICAgaWYgKCEoa2V5IGluIHZtKSkge1xuICAgICAgcHJveHkodm0sIFwiX3Byb3BzXCIsIGtleSk7XG4gICAgfVxuICB9O1xuXG4gIGZvciAodmFyIGtleSBpbiBwcm9wc09wdGlvbnMpIGxvb3AoIGtleSApO1xuICB0b2dnbGVPYnNlcnZpbmcodHJ1ZSk7XG59XG5cbmZ1bmN0aW9uIGluaXREYXRhICh2bSkge1xuICB2YXIgZGF0YSA9IHZtLiRvcHRpb25zLmRhdGE7XG4gIGRhdGEgPSB2bS5fZGF0YSA9IHR5cGVvZiBkYXRhID09PSAnZnVuY3Rpb24nXG4gICAgPyBnZXREYXRhKGRhdGEsIHZtKVxuICAgIDogZGF0YSB8fCB7fTtcbiAgaWYgKCFpc1BsYWluT2JqZWN0KGRhdGEpKSB7XG4gICAgZGF0YSA9IHt9O1xuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgd2FybihcbiAgICAgICdkYXRhIGZ1bmN0aW9ucyBzaG91bGQgcmV0dXJuIGFuIG9iamVjdDpcXG4nICtcbiAgICAgICdodHRwczovL3Z1ZWpzLm9yZy92Mi9ndWlkZS9jb21wb25lbnRzLmh0bWwjZGF0YS1NdXN0LUJlLWEtRnVuY3Rpb24nLFxuICAgICAgdm1cbiAgICApO1xuICB9XG4gIC8vIHByb3h5IGRhdGEgb24gaW5zdGFuY2VcbiAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhkYXRhKTtcbiAgdmFyIHByb3BzID0gdm0uJG9wdGlvbnMucHJvcHM7XG4gIHZhciBtZXRob2RzID0gdm0uJG9wdGlvbnMubWV0aG9kcztcbiAgdmFyIGkgPSBrZXlzLmxlbmd0aDtcbiAgd2hpbGUgKGktLSkge1xuICAgIHZhciBrZXkgPSBrZXlzW2ldO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBpZiAobWV0aG9kcyAmJiBoYXNPd24obWV0aG9kcywga2V5KSkge1xuICAgICAgICB3YXJuKFxuICAgICAgICAgIChcIk1ldGhvZCBcXFwiXCIgKyBrZXkgKyBcIlxcXCIgaGFzIGFscmVhZHkgYmVlbiBkZWZpbmVkIGFzIGEgZGF0YSBwcm9wZXJ0eS5cIiksXG4gICAgICAgICAgdm1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb3BzICYmIGhhc093bihwcm9wcywga2V5KSkge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB3YXJuKFxuICAgICAgICBcIlRoZSBkYXRhIHByb3BlcnR5IFxcXCJcIiArIGtleSArIFwiXFxcIiBpcyBhbHJlYWR5IGRlY2xhcmVkIGFzIGEgcHJvcC4gXCIgK1xuICAgICAgICBcIlVzZSBwcm9wIGRlZmF1bHQgdmFsdWUgaW5zdGVhZC5cIixcbiAgICAgICAgdm1cbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICghaXNSZXNlcnZlZChrZXkpKSB7XG4gICAgICBwcm94eSh2bSwgXCJfZGF0YVwiLCBrZXkpO1xuICAgIH1cbiAgfVxuICAvLyBvYnNlcnZlIGRhdGFcbiAgb2JzZXJ2ZShkYXRhLCB0cnVlIC8qIGFzUm9vdERhdGEgKi8pO1xufVxuXG5mdW5jdGlvbiBnZXREYXRhIChkYXRhLCB2bSkge1xuICAvLyAjNzU3MyBkaXNhYmxlIGRlcCBjb2xsZWN0aW9uIHdoZW4gaW52b2tpbmcgZGF0YSBnZXR0ZXJzXG4gIHB1c2hUYXJnZXQoKTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZGF0YS5jYWxsKHZtLCB2bSlcbiAgfSBjYXRjaCAoZSkge1xuICAgIGhhbmRsZUVycm9yKGUsIHZtLCBcImRhdGEoKVwiKTtcbiAgICByZXR1cm4ge31cbiAgfSBmaW5hbGx5IHtcbiAgICBwb3BUYXJnZXQoKTtcbiAgfVxufVxuXG52YXIgY29tcHV0ZWRXYXRjaGVyT3B0aW9ucyA9IHsgbGF6eTogdHJ1ZSB9O1xuXG5mdW5jdGlvbiBpbml0Q29tcHV0ZWQgKHZtLCBjb21wdXRlZCkge1xuICAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbiAgdmFyIHdhdGNoZXJzID0gdm0uX2NvbXB1dGVkV2F0Y2hlcnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAvLyBjb21wdXRlZCBwcm9wZXJ0aWVzIGFyZSBqdXN0IGdldHRlcnMgZHVyaW5nIFNTUlxuICB2YXIgaXNTU1IgPSBpc1NlcnZlclJlbmRlcmluZygpO1xuXG4gIGZvciAodmFyIGtleSBpbiBjb21wdXRlZCkge1xuICAgIHZhciB1c2VyRGVmID0gY29tcHV0ZWRba2V5XTtcbiAgICB2YXIgZ2V0dGVyID0gdHlwZW9mIHVzZXJEZWYgPT09ICdmdW5jdGlvbicgPyB1c2VyRGVmIDogdXNlckRlZi5nZXQ7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgZ2V0dGVyID09IG51bGwpIHtcbiAgICAgIHdhcm4oXG4gICAgICAgIChcIkdldHRlciBpcyBtaXNzaW5nIGZvciBjb21wdXRlZCBwcm9wZXJ0eSBcXFwiXCIgKyBrZXkgKyBcIlxcXCIuXCIpLFxuICAgICAgICB2bVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzU1NSKSB7XG4gICAgICAvLyBjcmVhdGUgaW50ZXJuYWwgd2F0Y2hlciBmb3IgdGhlIGNvbXB1dGVkIHByb3BlcnR5LlxuICAgICAgd2F0Y2hlcnNba2V5XSA9IG5ldyBXYXRjaGVyKFxuICAgICAgICB2bSxcbiAgICAgICAgZ2V0dGVyIHx8IG5vb3AsXG4gICAgICAgIG5vb3AsXG4gICAgICAgIGNvbXB1dGVkV2F0Y2hlck9wdGlvbnNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gY29tcG9uZW50LWRlZmluZWQgY29tcHV0ZWQgcHJvcGVydGllcyBhcmUgYWxyZWFkeSBkZWZpbmVkIG9uIHRoZVxuICAgIC8vIGNvbXBvbmVudCBwcm90b3R5cGUuIFdlIG9ubHkgbmVlZCB0byBkZWZpbmUgY29tcHV0ZWQgcHJvcGVydGllcyBkZWZpbmVkXG4gICAgLy8gYXQgaW5zdGFudGlhdGlvbiBoZXJlLlxuICAgIGlmICghKGtleSBpbiB2bSkpIHtcbiAgICAgIGRlZmluZUNvbXB1dGVkKHZtLCBrZXksIHVzZXJEZWYpO1xuICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKGtleSBpbiB2bS4kZGF0YSkge1xuICAgICAgICB3YXJuKChcIlRoZSBjb21wdXRlZCBwcm9wZXJ0eSBcXFwiXCIgKyBrZXkgKyBcIlxcXCIgaXMgYWxyZWFkeSBkZWZpbmVkIGluIGRhdGEuXCIpLCB2bSk7XG4gICAgICB9IGVsc2UgaWYgKHZtLiRvcHRpb25zLnByb3BzICYmIGtleSBpbiB2bS4kb3B0aW9ucy5wcm9wcykge1xuICAgICAgICB3YXJuKChcIlRoZSBjb21wdXRlZCBwcm9wZXJ0eSBcXFwiXCIgKyBrZXkgKyBcIlxcXCIgaXMgYWxyZWFkeSBkZWZpbmVkIGFzIGEgcHJvcC5cIiksIHZtKTtcbiAgICAgIH0gZWxzZSBpZiAodm0uJG9wdGlvbnMubWV0aG9kcyAmJiBrZXkgaW4gdm0uJG9wdGlvbnMubWV0aG9kcykge1xuICAgICAgICB3YXJuKChcIlRoZSBjb21wdXRlZCBwcm9wZXJ0eSBcXFwiXCIgKyBrZXkgKyBcIlxcXCIgaXMgYWxyZWFkeSBkZWZpbmVkIGFzIGEgbWV0aG9kLlwiKSwgdm0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBkZWZpbmVDb21wdXRlZCAoXG4gIHRhcmdldCxcbiAga2V5LFxuICB1c2VyRGVmXG4pIHtcbiAgdmFyIHNob3VsZENhY2hlID0gIWlzU2VydmVyUmVuZGVyaW5nKCk7XG4gIGlmICh0eXBlb2YgdXNlckRlZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHNoYXJlZFByb3BlcnR5RGVmaW5pdGlvbi5nZXQgPSBzaG91bGRDYWNoZVxuICAgICAgPyBjcmVhdGVDb21wdXRlZEdldHRlcihrZXkpXG4gICAgICA6IGNyZWF0ZUdldHRlckludm9rZXIodXNlckRlZik7XG4gICAgc2hhcmVkUHJvcGVydHlEZWZpbml0aW9uLnNldCA9IG5vb3A7XG4gIH0gZWxzZSB7XG4gICAgc2hhcmVkUHJvcGVydHlEZWZpbml0aW9uLmdldCA9IHVzZXJEZWYuZ2V0XG4gICAgICA/IHNob3VsZENhY2hlICYmIHVzZXJEZWYuY2FjaGUgIT09IGZhbHNlXG4gICAgICAgID8gY3JlYXRlQ29tcHV0ZWRHZXR0ZXIoa2V5KVxuICAgICAgICA6IGNyZWF0ZUdldHRlckludm9rZXIodXNlckRlZi5nZXQpXG4gICAgICA6IG5vb3A7XG4gICAgc2hhcmVkUHJvcGVydHlEZWZpbml0aW9uLnNldCA9IHVzZXJEZWYuc2V0IHx8IG5vb3A7XG4gIH1cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiZcbiAgICAgIHNoYXJlZFByb3BlcnR5RGVmaW5pdGlvbi5zZXQgPT09IG5vb3ApIHtcbiAgICBzaGFyZWRQcm9wZXJ0eURlZmluaXRpb24uc2V0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgd2FybihcbiAgICAgICAgKFwiQ29tcHV0ZWQgcHJvcGVydHkgXFxcIlwiICsga2V5ICsgXCJcXFwiIHdhcyBhc3NpZ25lZCB0byBidXQgaXQgaGFzIG5vIHNldHRlci5cIiksXG4gICAgICAgIHRoaXNcbiAgICAgICk7XG4gICAgfTtcbiAgfVxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNoYXJlZFByb3BlcnR5RGVmaW5pdGlvbik7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbXB1dGVkR2V0dGVyIChrZXkpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGNvbXB1dGVkR2V0dGVyICgpIHtcbiAgICB2YXIgd2F0Y2hlciA9IHRoaXMuX2NvbXB1dGVkV2F0Y2hlcnMgJiYgdGhpcy5fY29tcHV0ZWRXYXRjaGVyc1trZXldO1xuICAgIGlmICh3YXRjaGVyKSB7XG4gICAgICBpZiAod2F0Y2hlci5kaXJ0eSkge1xuICAgICAgICB3YXRjaGVyLmV2YWx1YXRlKCk7XG4gICAgICB9XG4gICAgICBpZiAoRGVwLnRhcmdldCkge1xuICAgICAgICB3YXRjaGVyLmRlcGVuZCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHdhdGNoZXIudmFsdWVcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlR2V0dGVySW52b2tlcihmbikge1xuICByZXR1cm4gZnVuY3Rpb24gY29tcHV0ZWRHZXR0ZXIgKCkge1xuICAgIHJldHVybiBmbi5jYWxsKHRoaXMsIHRoaXMpXG4gIH1cbn1cblxuZnVuY3Rpb24gaW5pdE1ldGhvZHMgKHZtLCBtZXRob2RzKSB7XG4gIHZhciBwcm9wcyA9IHZtLiRvcHRpb25zLnByb3BzO1xuICBmb3IgKHZhciBrZXkgaW4gbWV0aG9kcykge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBpZiAodHlwZW9mIG1ldGhvZHNba2V5XSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB3YXJuKFxuICAgICAgICAgIFwiTWV0aG9kIFxcXCJcIiArIGtleSArIFwiXFxcIiBoYXMgdHlwZSBcXFwiXCIgKyAodHlwZW9mIG1ldGhvZHNba2V5XSkgKyBcIlxcXCIgaW4gdGhlIGNvbXBvbmVudCBkZWZpbml0aW9uLiBcIiArXG4gICAgICAgICAgXCJEaWQgeW91IHJlZmVyZW5jZSB0aGUgZnVuY3Rpb24gY29ycmVjdGx5P1wiLFxuICAgICAgICAgIHZtXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMgJiYgaGFzT3duKHByb3BzLCBrZXkpKSB7XG4gICAgICAgIHdhcm4oXG4gICAgICAgICAgKFwiTWV0aG9kIFxcXCJcIiArIGtleSArIFwiXFxcIiBoYXMgYWxyZWFkeSBiZWVuIGRlZmluZWQgYXMgYSBwcm9wLlwiKSxcbiAgICAgICAgICB2bVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKChrZXkgaW4gdm0pICYmIGlzUmVzZXJ2ZWQoa2V5KSkge1xuICAgICAgICB3YXJuKFxuICAgICAgICAgIFwiTWV0aG9kIFxcXCJcIiArIGtleSArIFwiXFxcIiBjb25mbGljdHMgd2l0aCBhbiBleGlzdGluZyBWdWUgaW5zdGFuY2UgbWV0aG9kLiBcIiArXG4gICAgICAgICAgXCJBdm9pZCBkZWZpbmluZyBjb21wb25lbnQgbWV0aG9kcyB0aGF0IHN0YXJ0IHdpdGggXyBvciAkLlwiXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHZtW2tleV0gPSB0eXBlb2YgbWV0aG9kc1trZXldICE9PSAnZnVuY3Rpb24nID8gbm9vcCA6IGJpbmQobWV0aG9kc1trZXldLCB2bSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5pdFdhdGNoICh2bSwgd2F0Y2gpIHtcbiAgZm9yICh2YXIga2V5IGluIHdhdGNoKSB7XG4gICAgdmFyIGhhbmRsZXIgPSB3YXRjaFtrZXldO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGhhbmRsZXIpKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGhhbmRsZXIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY3JlYXRlV2F0Y2hlcih2bSwga2V5LCBoYW5kbGVyW2ldKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY3JlYXRlV2F0Y2hlcih2bSwga2V5LCBoYW5kbGVyKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlV2F0Y2hlciAoXG4gIHZtLFxuICBleHBPckZuLFxuICBoYW5kbGVyLFxuICBvcHRpb25zXG4pIHtcbiAgaWYgKGlzUGxhaW5PYmplY3QoaGFuZGxlcikpIHtcbiAgICBvcHRpb25zID0gaGFuZGxlcjtcbiAgICBoYW5kbGVyID0gaGFuZGxlci5oYW5kbGVyO1xuICB9XG4gIGlmICh0eXBlb2YgaGFuZGxlciA9PT0gJ3N0cmluZycpIHtcbiAgICBoYW5kbGVyID0gdm1baGFuZGxlcl07XG4gIH1cbiAgcmV0dXJuIHZtLiR3YXRjaChleHBPckZuLCBoYW5kbGVyLCBvcHRpb25zKVxufVxuXG5mdW5jdGlvbiBzdGF0ZU1peGluIChWdWUpIHtcbiAgLy8gZmxvdyBzb21laG93IGhhcyBwcm9ibGVtcyB3aXRoIGRpcmVjdGx5IGRlY2xhcmVkIGRlZmluaXRpb24gb2JqZWN0XG4gIC8vIHdoZW4gdXNpbmcgT2JqZWN0LmRlZmluZVByb3BlcnR5LCBzbyB3ZSBoYXZlIHRvIHByb2NlZHVyYWxseSBidWlsZCB1cFxuICAvLyB0aGUgb2JqZWN0IGhlcmUuXG4gIHZhciBkYXRhRGVmID0ge307XG4gIGRhdGFEZWYuZ2V0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fZGF0YSB9O1xuICB2YXIgcHJvcHNEZWYgPSB7fTtcbiAgcHJvcHNEZWYuZ2V0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fcHJvcHMgfTtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBkYXRhRGVmLnNldCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHdhcm4oXG4gICAgICAgICdBdm9pZCByZXBsYWNpbmcgaW5zdGFuY2Ugcm9vdCAkZGF0YS4gJyArXG4gICAgICAgICdVc2UgbmVzdGVkIGRhdGEgcHJvcGVydGllcyBpbnN0ZWFkLicsXG4gICAgICAgIHRoaXNcbiAgICAgICk7XG4gICAgfTtcbiAgICBwcm9wc0RlZi5zZXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB3YXJuKFwiJHByb3BzIGlzIHJlYWRvbmx5LlwiLCB0aGlzKTtcbiAgICB9O1xuICB9XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShWdWUucHJvdG90eXBlLCAnJGRhdGEnLCBkYXRhRGVmKTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFZ1ZS5wcm90b3R5cGUsICckcHJvcHMnLCBwcm9wc0RlZik7XG5cbiAgVnVlLnByb3RvdHlwZS4kc2V0ID0gc2V0O1xuICBWdWUucHJvdG90eXBlLiRkZWxldGUgPSBkZWw7XG5cbiAgVnVlLnByb3RvdHlwZS4kd2F0Y2ggPSBmdW5jdGlvbiAoXG4gICAgZXhwT3JGbixcbiAgICBjYixcbiAgICBvcHRpb25zXG4gICkge1xuICAgIHZhciB2bSA9IHRoaXM7XG4gICAgaWYgKGlzUGxhaW5PYmplY3QoY2IpKSB7XG4gICAgICByZXR1cm4gY3JlYXRlV2F0Y2hlcih2bSwgZXhwT3JGbiwgY2IsIG9wdGlvbnMpXG4gICAgfVxuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIG9wdGlvbnMudXNlciA9IHRydWU7XG4gICAgdmFyIHdhdGNoZXIgPSBuZXcgV2F0Y2hlcih2bSwgZXhwT3JGbiwgY2IsIG9wdGlvbnMpO1xuICAgIGlmIChvcHRpb25zLmltbWVkaWF0ZSkge1xuICAgICAgdmFyIGluZm8gPSBcImNhbGxiYWNrIGZvciBpbW1lZGlhdGUgd2F0Y2hlciBcXFwiXCIgKyAod2F0Y2hlci5leHByZXNzaW9uKSArIFwiXFxcIlwiO1xuICAgICAgcHVzaFRhcmdldCgpO1xuICAgICAgaW52b2tlV2l0aEVycm9ySGFuZGxpbmcoY2IsIHZtLCBbd2F0Y2hlci52YWx1ZV0sIHZtLCBpbmZvKTtcbiAgICAgIHBvcFRhcmdldCgpO1xuICAgIH1cbiAgICByZXR1cm4gZnVuY3Rpb24gdW53YXRjaEZuICgpIHtcbiAgICAgIHdhdGNoZXIudGVhcmRvd24oKTtcbiAgICB9XG4gIH07XG59XG5cbi8qICAqL1xuXG52YXIgdWlkJDMgPSAwO1xuXG5mdW5jdGlvbiBpbml0TWl4aW4gKFZ1ZSkge1xuICBWdWUucHJvdG90eXBlLl9pbml0ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICB2YXIgdm0gPSB0aGlzO1xuICAgIC8vIGEgdWlkXG4gICAgdm0uX3VpZCA9IHVpZCQzKys7XG5cbiAgICB2YXIgc3RhcnRUYWcsIGVuZFRhZztcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBjb25maWcucGVyZm9ybWFuY2UgJiYgbWFyaykge1xuICAgICAgc3RhcnRUYWcgPSBcInZ1ZS1wZXJmLXN0YXJ0OlwiICsgKHZtLl91aWQpO1xuICAgICAgZW5kVGFnID0gXCJ2dWUtcGVyZi1lbmQ6XCIgKyAodm0uX3VpZCk7XG4gICAgICBtYXJrKHN0YXJ0VGFnKTtcbiAgICB9XG5cbiAgICAvLyBhIGZsYWcgdG8gYXZvaWQgdGhpcyBiZWluZyBvYnNlcnZlZFxuICAgIHZtLl9pc1Z1ZSA9IHRydWU7XG4gICAgLy8gbWVyZ2Ugb3B0aW9uc1xuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuX2lzQ29tcG9uZW50KSB7XG4gICAgICAvLyBvcHRpbWl6ZSBpbnRlcm5hbCBjb21wb25lbnQgaW5zdGFudGlhdGlvblxuICAgICAgLy8gc2luY2UgZHluYW1pYyBvcHRpb25zIG1lcmdpbmcgaXMgcHJldHR5IHNsb3csIGFuZCBub25lIG9mIHRoZVxuICAgICAgLy8gaW50ZXJuYWwgY29tcG9uZW50IG9wdGlvbnMgbmVlZHMgc3BlY2lhbCB0cmVhdG1lbnQuXG4gICAgICBpbml0SW50ZXJuYWxDb21wb25lbnQodm0sIG9wdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2bS4kb3B0aW9ucyA9IG1lcmdlT3B0aW9ucyhcbiAgICAgICAgcmVzb2x2ZUNvbnN0cnVjdG9yT3B0aW9ucyh2bS5jb25zdHJ1Y3RvciksXG4gICAgICAgIG9wdGlvbnMgfHwge30sXG4gICAgICAgIHZtXG4gICAgICApO1xuICAgIH1cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBpbml0UHJveHkodm0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB2bS5fcmVuZGVyUHJveHkgPSB2bTtcbiAgICB9XG4gICAgLy8gZXhwb3NlIHJlYWwgc2VsZlxuICAgIHZtLl9zZWxmID0gdm07XG4gICAgaW5pdExpZmVjeWNsZSh2bSk7XG4gICAgaW5pdEV2ZW50cyh2bSk7XG4gICAgaW5pdFJlbmRlcih2bSk7XG4gICAgY2FsbEhvb2sodm0sICdiZWZvcmVDcmVhdGUnKTtcbiAgICBpbml0SW5qZWN0aW9ucyh2bSk7IC8vIHJlc29sdmUgaW5qZWN0aW9ucyBiZWZvcmUgZGF0YS9wcm9wc1xuICAgIGluaXRTdGF0ZSh2bSk7XG4gICAgaW5pdFByb3ZpZGUodm0pOyAvLyByZXNvbHZlIHByb3ZpZGUgYWZ0ZXIgZGF0YS9wcm9wc1xuICAgIGNhbGxIb29rKHZtLCAnY3JlYXRlZCcpO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgY29uZmlnLnBlcmZvcm1hbmNlICYmIG1hcmspIHtcbiAgICAgIHZtLl9uYW1lID0gZm9ybWF0Q29tcG9uZW50TmFtZSh2bSwgZmFsc2UpO1xuICAgICAgbWFyayhlbmRUYWcpO1xuICAgICAgbWVhc3VyZSgoXCJ2dWUgXCIgKyAodm0uX25hbWUpICsgXCIgaW5pdFwiKSwgc3RhcnRUYWcsIGVuZFRhZyk7XG4gICAgfVxuXG4gICAgaWYgKHZtLiRvcHRpb25zLmVsKSB7XG4gICAgICB2bS4kbW91bnQodm0uJG9wdGlvbnMuZWwpO1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gaW5pdEludGVybmFsQ29tcG9uZW50ICh2bSwgb3B0aW9ucykge1xuICB2YXIgb3B0cyA9IHZtLiRvcHRpb25zID0gT2JqZWN0LmNyZWF0ZSh2bS5jb25zdHJ1Y3Rvci5vcHRpb25zKTtcbiAgLy8gZG9pbmcgdGhpcyBiZWNhdXNlIGl0J3MgZmFzdGVyIHRoYW4gZHluYW1pYyBlbnVtZXJhdGlvbi5cbiAgdmFyIHBhcmVudFZub2RlID0gb3B0aW9ucy5fcGFyZW50Vm5vZGU7XG4gIG9wdHMucGFyZW50ID0gb3B0aW9ucy5wYXJlbnQ7XG4gIG9wdHMuX3BhcmVudFZub2RlID0gcGFyZW50Vm5vZGU7XG5cbiAgdmFyIHZub2RlQ29tcG9uZW50T3B0aW9ucyA9IHBhcmVudFZub2RlLmNvbXBvbmVudE9wdGlvbnM7XG4gIG9wdHMucHJvcHNEYXRhID0gdm5vZGVDb21wb25lbnRPcHRpb25zLnByb3BzRGF0YTtcbiAgb3B0cy5fcGFyZW50TGlzdGVuZXJzID0gdm5vZGVDb21wb25lbnRPcHRpb25zLmxpc3RlbmVycztcbiAgb3B0cy5fcmVuZGVyQ2hpbGRyZW4gPSB2bm9kZUNvbXBvbmVudE9wdGlvbnMuY2hpbGRyZW47XG4gIG9wdHMuX2NvbXBvbmVudFRhZyA9IHZub2RlQ29tcG9uZW50T3B0aW9ucy50YWc7XG5cbiAgaWYgKG9wdGlvbnMucmVuZGVyKSB7XG4gICAgb3B0cy5yZW5kZXIgPSBvcHRpb25zLnJlbmRlcjtcbiAgICBvcHRzLnN0YXRpY1JlbmRlckZucyA9IG9wdGlvbnMuc3RhdGljUmVuZGVyRm5zO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVDb25zdHJ1Y3Rvck9wdGlvbnMgKEN0b3IpIHtcbiAgdmFyIG9wdGlvbnMgPSBDdG9yLm9wdGlvbnM7XG4gIGlmIChDdG9yLnN1cGVyKSB7XG4gICAgdmFyIHN1cGVyT3B0aW9ucyA9IHJlc29sdmVDb25zdHJ1Y3Rvck9wdGlvbnMoQ3Rvci5zdXBlcik7XG4gICAgdmFyIGNhY2hlZFN1cGVyT3B0aW9ucyA9IEN0b3Iuc3VwZXJPcHRpb25zO1xuICAgIGlmIChzdXBlck9wdGlvbnMgIT09IGNhY2hlZFN1cGVyT3B0aW9ucykge1xuICAgICAgLy8gc3VwZXIgb3B0aW9uIGNoYW5nZWQsXG4gICAgICAvLyBuZWVkIHRvIHJlc29sdmUgbmV3IG9wdGlvbnMuXG4gICAgICBDdG9yLnN1cGVyT3B0aW9ucyA9IHN1cGVyT3B0aW9ucztcbiAgICAgIC8vIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgbGF0ZS1tb2RpZmllZC9hdHRhY2hlZCBvcHRpb25zICgjNDk3NilcbiAgICAgIHZhciBtb2RpZmllZE9wdGlvbnMgPSByZXNvbHZlTW9kaWZpZWRPcHRpb25zKEN0b3IpO1xuICAgICAgLy8gdXBkYXRlIGJhc2UgZXh0ZW5kIG9wdGlvbnNcbiAgICAgIGlmIChtb2RpZmllZE9wdGlvbnMpIHtcbiAgICAgICAgZXh0ZW5kKEN0b3IuZXh0ZW5kT3B0aW9ucywgbW9kaWZpZWRPcHRpb25zKTtcbiAgICAgIH1cbiAgICAgIG9wdGlvbnMgPSBDdG9yLm9wdGlvbnMgPSBtZXJnZU9wdGlvbnMoc3VwZXJPcHRpb25zLCBDdG9yLmV4dGVuZE9wdGlvbnMpO1xuICAgICAgaWYgKG9wdGlvbnMubmFtZSkge1xuICAgICAgICBvcHRpb25zLmNvbXBvbmVudHNbb3B0aW9ucy5uYW1lXSA9IEN0b3I7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBvcHRpb25zXG59XG5cbmZ1bmN0aW9uIHJlc29sdmVNb2RpZmllZE9wdGlvbnMgKEN0b3IpIHtcbiAgdmFyIG1vZGlmaWVkO1xuICB2YXIgbGF0ZXN0ID0gQ3Rvci5vcHRpb25zO1xuICB2YXIgc2VhbGVkID0gQ3Rvci5zZWFsZWRPcHRpb25zO1xuICBmb3IgKHZhciBrZXkgaW4gbGF0ZXN0KSB7XG4gICAgaWYgKGxhdGVzdFtrZXldICE9PSBzZWFsZWRba2V5XSkge1xuICAgICAgaWYgKCFtb2RpZmllZCkgeyBtb2RpZmllZCA9IHt9OyB9XG4gICAgICBtb2RpZmllZFtrZXldID0gbGF0ZXN0W2tleV07XG4gICAgfVxuICB9XG4gIHJldHVybiBtb2RpZmllZFxufVxuXG5mdW5jdGlvbiBWdWUgKG9wdGlvbnMpIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiZcbiAgICAhKHRoaXMgaW5zdGFuY2VvZiBWdWUpXG4gICkge1xuICAgIHdhcm4oJ1Z1ZSBpcyBhIGNvbnN0cnVjdG9yIGFuZCBzaG91bGQgYmUgY2FsbGVkIHdpdGggdGhlIGBuZXdgIGtleXdvcmQnKTtcbiAgfVxuICB0aGlzLl9pbml0KG9wdGlvbnMpO1xufVxuXG5pbml0TWl4aW4oVnVlKTtcbnN0YXRlTWl4aW4oVnVlKTtcbmV2ZW50c01peGluKFZ1ZSk7XG5saWZlY3ljbGVNaXhpbihWdWUpO1xucmVuZGVyTWl4aW4oVnVlKTtcblxuLyogICovXG5cbmZ1bmN0aW9uIGluaXRVc2UgKFZ1ZSkge1xuICBWdWUudXNlID0gZnVuY3Rpb24gKHBsdWdpbikge1xuICAgIHZhciBpbnN0YWxsZWRQbHVnaW5zID0gKHRoaXMuX2luc3RhbGxlZFBsdWdpbnMgfHwgKHRoaXMuX2luc3RhbGxlZFBsdWdpbnMgPSBbXSkpO1xuICAgIGlmIChpbnN0YWxsZWRQbHVnaW5zLmluZGV4T2YocGx1Z2luKSA+IC0xKSB7XG4gICAgICByZXR1cm4gdGhpc1xuICAgIH1cblxuICAgIC8vIGFkZGl0aW9uYWwgcGFyYW1ldGVyc1xuICAgIHZhciBhcmdzID0gdG9BcnJheShhcmd1bWVudHMsIDEpO1xuICAgIGFyZ3MudW5zaGlmdCh0aGlzKTtcbiAgICBpZiAodHlwZW9mIHBsdWdpbi5pbnN0YWxsID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwbHVnaW4uaW5zdGFsbC5hcHBseShwbHVnaW4sIGFyZ3MpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHBsdWdpbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcGx1Z2luLmFwcGx5KG51bGwsIGFyZ3MpO1xuICAgIH1cbiAgICBpbnN0YWxsZWRQbHVnaW5zLnB1c2gocGx1Z2luKTtcbiAgICByZXR1cm4gdGhpc1xuICB9O1xufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gaW5pdE1peGluJDEgKFZ1ZSkge1xuICBWdWUubWl4aW4gPSBmdW5jdGlvbiAobWl4aW4pIHtcbiAgICB0aGlzLm9wdGlvbnMgPSBtZXJnZU9wdGlvbnModGhpcy5vcHRpb25zLCBtaXhpbik7XG4gICAgcmV0dXJuIHRoaXNcbiAgfTtcbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIGluaXRFeHRlbmQgKFZ1ZSkge1xuICAvKipcbiAgICogRWFjaCBpbnN0YW5jZSBjb25zdHJ1Y3RvciwgaW5jbHVkaW5nIFZ1ZSwgaGFzIGEgdW5pcXVlXG4gICAqIGNpZC4gVGhpcyBlbmFibGVzIHVzIHRvIGNyZWF0ZSB3cmFwcGVkIFwiY2hpbGRcbiAgICogY29uc3RydWN0b3JzXCIgZm9yIHByb3RvdHlwYWwgaW5oZXJpdGFuY2UgYW5kIGNhY2hlIHRoZW0uXG4gICAqL1xuICBWdWUuY2lkID0gMDtcbiAgdmFyIGNpZCA9IDE7XG5cbiAgLyoqXG4gICAqIENsYXNzIGluaGVyaXRhbmNlXG4gICAqL1xuICBWdWUuZXh0ZW5kID0gZnVuY3Rpb24gKGV4dGVuZE9wdGlvbnMpIHtcbiAgICBleHRlbmRPcHRpb25zID0gZXh0ZW5kT3B0aW9ucyB8fCB7fTtcbiAgICB2YXIgU3VwZXIgPSB0aGlzO1xuICAgIHZhciBTdXBlcklkID0gU3VwZXIuY2lkO1xuICAgIHZhciBjYWNoZWRDdG9ycyA9IGV4dGVuZE9wdGlvbnMuX0N0b3IgfHwgKGV4dGVuZE9wdGlvbnMuX0N0b3IgPSB7fSk7XG4gICAgaWYgKGNhY2hlZEN0b3JzW1N1cGVySWRdKSB7XG4gICAgICByZXR1cm4gY2FjaGVkQ3RvcnNbU3VwZXJJZF1cbiAgICB9XG5cbiAgICB2YXIgbmFtZSA9IGV4dGVuZE9wdGlvbnMubmFtZSB8fCBTdXBlci5vcHRpb25zLm5hbWU7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgbmFtZSkge1xuICAgICAgdmFsaWRhdGVDb21wb25lbnROYW1lKG5hbWUpO1xuICAgIH1cblxuICAgIHZhciBTdWIgPSBmdW5jdGlvbiBWdWVDb21wb25lbnQgKG9wdGlvbnMpIHtcbiAgICAgIHRoaXMuX2luaXQob3B0aW9ucyk7XG4gICAgfTtcbiAgICBTdWIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShTdXBlci5wcm90b3R5cGUpO1xuICAgIFN1Yi5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBTdWI7XG4gICAgU3ViLmNpZCA9IGNpZCsrO1xuICAgIFN1Yi5vcHRpb25zID0gbWVyZ2VPcHRpb25zKFxuICAgICAgU3VwZXIub3B0aW9ucyxcbiAgICAgIGV4dGVuZE9wdGlvbnNcbiAgICApO1xuICAgIFN1Ylsnc3VwZXInXSA9IFN1cGVyO1xuXG4gICAgLy8gRm9yIHByb3BzIGFuZCBjb21wdXRlZCBwcm9wZXJ0aWVzLCB3ZSBkZWZpbmUgdGhlIHByb3h5IGdldHRlcnMgb25cbiAgICAvLyB0aGUgVnVlIGluc3RhbmNlcyBhdCBleHRlbnNpb24gdGltZSwgb24gdGhlIGV4dGVuZGVkIHByb3RvdHlwZS4gVGhpc1xuICAgIC8vIGF2b2lkcyBPYmplY3QuZGVmaW5lUHJvcGVydHkgY2FsbHMgZm9yIGVhY2ggaW5zdGFuY2UgY3JlYXRlZC5cbiAgICBpZiAoU3ViLm9wdGlvbnMucHJvcHMpIHtcbiAgICAgIGluaXRQcm9wcyQxKFN1Yik7XG4gICAgfVxuICAgIGlmIChTdWIub3B0aW9ucy5jb21wdXRlZCkge1xuICAgICAgaW5pdENvbXB1dGVkJDEoU3ViKTtcbiAgICB9XG5cbiAgICAvLyBhbGxvdyBmdXJ0aGVyIGV4dGVuc2lvbi9taXhpbi9wbHVnaW4gdXNhZ2VcbiAgICBTdWIuZXh0ZW5kID0gU3VwZXIuZXh0ZW5kO1xuICAgIFN1Yi5taXhpbiA9IFN1cGVyLm1peGluO1xuICAgIFN1Yi51c2UgPSBTdXBlci51c2U7XG5cbiAgICAvLyBjcmVhdGUgYXNzZXQgcmVnaXN0ZXJzLCBzbyBleHRlbmRlZCBjbGFzc2VzXG4gICAgLy8gY2FuIGhhdmUgdGhlaXIgcHJpdmF0ZSBhc3NldHMgdG9vLlxuICAgIEFTU0VUX1RZUEVTLmZvckVhY2goZnVuY3Rpb24gKHR5cGUpIHtcbiAgICAgIFN1Ylt0eXBlXSA9IFN1cGVyW3R5cGVdO1xuICAgIH0pO1xuICAgIC8vIGVuYWJsZSByZWN1cnNpdmUgc2VsZi1sb29rdXBcbiAgICBpZiAobmFtZSkge1xuICAgICAgU3ViLm9wdGlvbnMuY29tcG9uZW50c1tuYW1lXSA9IFN1YjtcbiAgICB9XG5cbiAgICAvLyBrZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBzdXBlciBvcHRpb25zIGF0IGV4dGVuc2lvbiB0aW1lLlxuICAgIC8vIGxhdGVyIGF0IGluc3RhbnRpYXRpb24gd2UgY2FuIGNoZWNrIGlmIFN1cGVyJ3Mgb3B0aW9ucyBoYXZlXG4gICAgLy8gYmVlbiB1cGRhdGVkLlxuICAgIFN1Yi5zdXBlck9wdGlvbnMgPSBTdXBlci5vcHRpb25zO1xuICAgIFN1Yi5leHRlbmRPcHRpb25zID0gZXh0ZW5kT3B0aW9ucztcbiAgICBTdWIuc2VhbGVkT3B0aW9ucyA9IGV4dGVuZCh7fSwgU3ViLm9wdGlvbnMpO1xuXG4gICAgLy8gY2FjaGUgY29uc3RydWN0b3JcbiAgICBjYWNoZWRDdG9yc1tTdXBlcklkXSA9IFN1YjtcbiAgICByZXR1cm4gU3ViXG4gIH07XG59XG5cbmZ1bmN0aW9uIGluaXRQcm9wcyQxIChDb21wKSB7XG4gIHZhciBwcm9wcyA9IENvbXAub3B0aW9ucy5wcm9wcztcbiAgZm9yICh2YXIga2V5IGluIHByb3BzKSB7XG4gICAgcHJveHkoQ29tcC5wcm90b3R5cGUsIFwiX3Byb3BzXCIsIGtleSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5pdENvbXB1dGVkJDEgKENvbXApIHtcbiAgdmFyIGNvbXB1dGVkID0gQ29tcC5vcHRpb25zLmNvbXB1dGVkO1xuICBmb3IgKHZhciBrZXkgaW4gY29tcHV0ZWQpIHtcbiAgICBkZWZpbmVDb21wdXRlZChDb21wLnByb3RvdHlwZSwga2V5LCBjb21wdXRlZFtrZXldKTtcbiAgfVxufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gaW5pdEFzc2V0UmVnaXN0ZXJzIChWdWUpIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhc3NldCByZWdpc3RyYXRpb24gbWV0aG9kcy5cbiAgICovXG4gIEFTU0VUX1RZUEVTLmZvckVhY2goZnVuY3Rpb24gKHR5cGUpIHtcbiAgICBWdWVbdHlwZV0gPSBmdW5jdGlvbiAoXG4gICAgICBpZCxcbiAgICAgIGRlZmluaXRpb25cbiAgICApIHtcbiAgICAgIGlmICghZGVmaW5pdGlvbikge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zW3R5cGUgKyAncyddW2lkXVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHR5cGUgPT09ICdjb21wb25lbnQnKSB7XG4gICAgICAgICAgdmFsaWRhdGVDb21wb25lbnROYW1lKGlkKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZSA9PT0gJ2NvbXBvbmVudCcgJiYgaXNQbGFpbk9iamVjdChkZWZpbml0aW9uKSkge1xuICAgICAgICAgIGRlZmluaXRpb24ubmFtZSA9IGRlZmluaXRpb24ubmFtZSB8fCBpZDtcbiAgICAgICAgICBkZWZpbml0aW9uID0gdGhpcy5vcHRpb25zLl9iYXNlLmV4dGVuZChkZWZpbml0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZSA9PT0gJ2RpcmVjdGl2ZScgJiYgdHlwZW9mIGRlZmluaXRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBkZWZpbml0aW9uID0geyBiaW5kOiBkZWZpbml0aW9uLCB1cGRhdGU6IGRlZmluaXRpb24gfTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wdGlvbnNbdHlwZSArICdzJ11baWRdID0gZGVmaW5pdGlvbjtcbiAgICAgICAgcmV0dXJuIGRlZmluaXRpb25cbiAgICAgIH1cbiAgICB9O1xuICB9KTtcbn1cblxuLyogICovXG5cblxuXG5cblxuZnVuY3Rpb24gZ2V0Q29tcG9uZW50TmFtZSAob3B0cykge1xuICByZXR1cm4gb3B0cyAmJiAob3B0cy5DdG9yLm9wdGlvbnMubmFtZSB8fCBvcHRzLnRhZylcbn1cblxuZnVuY3Rpb24gbWF0Y2hlcyAocGF0dGVybiwgbmFtZSkge1xuICBpZiAoQXJyYXkuaXNBcnJheShwYXR0ZXJuKSkge1xuICAgIHJldHVybiBwYXR0ZXJuLmluZGV4T2YobmFtZSkgPiAtMVxuICB9IGVsc2UgaWYgKHR5cGVvZiBwYXR0ZXJuID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBwYXR0ZXJuLnNwbGl0KCcsJykuaW5kZXhPZihuYW1lKSA+IC0xXG4gIH0gZWxzZSBpZiAoaXNSZWdFeHAocGF0dGVybikpIHtcbiAgICByZXR1cm4gcGF0dGVybi50ZXN0KG5hbWUpXG4gIH1cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmZ1bmN0aW9uIHBydW5lQ2FjaGUgKGtlZXBBbGl2ZUluc3RhbmNlLCBmaWx0ZXIpIHtcbiAgdmFyIGNhY2hlID0ga2VlcEFsaXZlSW5zdGFuY2UuY2FjaGU7XG4gIHZhciBrZXlzID0ga2VlcEFsaXZlSW5zdGFuY2Uua2V5cztcbiAgdmFyIF92bm9kZSA9IGtlZXBBbGl2ZUluc3RhbmNlLl92bm9kZTtcbiAgZm9yICh2YXIga2V5IGluIGNhY2hlKSB7XG4gICAgdmFyIGVudHJ5ID0gY2FjaGVba2V5XTtcbiAgICBpZiAoZW50cnkpIHtcbiAgICAgIHZhciBuYW1lID0gZW50cnkubmFtZTtcbiAgICAgIGlmIChuYW1lICYmICFmaWx0ZXIobmFtZSkpIHtcbiAgICAgICAgcHJ1bmVDYWNoZUVudHJ5KGNhY2hlLCBrZXksIGtleXMsIF92bm9kZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHBydW5lQ2FjaGVFbnRyeSAoXG4gIGNhY2hlLFxuICBrZXksXG4gIGtleXMsXG4gIGN1cnJlbnRcbikge1xuICB2YXIgZW50cnkgPSBjYWNoZVtrZXldO1xuICBpZiAoZW50cnkgJiYgKCFjdXJyZW50IHx8IGVudHJ5LnRhZyAhPT0gY3VycmVudC50YWcpKSB7XG4gICAgZW50cnkuY29tcG9uZW50SW5zdGFuY2UuJGRlc3Ryb3koKTtcbiAgfVxuICBjYWNoZVtrZXldID0gbnVsbDtcbiAgcmVtb3ZlKGtleXMsIGtleSk7XG59XG5cbnZhciBwYXR0ZXJuVHlwZXMgPSBbU3RyaW5nLCBSZWdFeHAsIEFycmF5XTtcblxudmFyIEtlZXBBbGl2ZSA9IHtcbiAgbmFtZTogJ2tlZXAtYWxpdmUnLFxuICBhYnN0cmFjdDogdHJ1ZSxcblxuICBwcm9wczoge1xuICAgIGluY2x1ZGU6IHBhdHRlcm5UeXBlcyxcbiAgICBleGNsdWRlOiBwYXR0ZXJuVHlwZXMsXG4gICAgbWF4OiBbU3RyaW5nLCBOdW1iZXJdXG4gIH0sXG5cbiAgbWV0aG9kczoge1xuICAgIGNhY2hlVk5vZGU6IGZ1bmN0aW9uIGNhY2hlVk5vZGUoKSB7XG4gICAgICB2YXIgcmVmID0gdGhpcztcbiAgICAgIHZhciBjYWNoZSA9IHJlZi5jYWNoZTtcbiAgICAgIHZhciBrZXlzID0gcmVmLmtleXM7XG4gICAgICB2YXIgdm5vZGVUb0NhY2hlID0gcmVmLnZub2RlVG9DYWNoZTtcbiAgICAgIHZhciBrZXlUb0NhY2hlID0gcmVmLmtleVRvQ2FjaGU7XG4gICAgICBpZiAodm5vZGVUb0NhY2hlKSB7XG4gICAgICAgIHZhciB0YWcgPSB2bm9kZVRvQ2FjaGUudGFnO1xuICAgICAgICB2YXIgY29tcG9uZW50SW5zdGFuY2UgPSB2bm9kZVRvQ2FjaGUuY29tcG9uZW50SW5zdGFuY2U7XG4gICAgICAgIHZhciBjb21wb25lbnRPcHRpb25zID0gdm5vZGVUb0NhY2hlLmNvbXBvbmVudE9wdGlvbnM7XG4gICAgICAgIGNhY2hlW2tleVRvQ2FjaGVdID0ge1xuICAgICAgICAgIG5hbWU6IGdldENvbXBvbmVudE5hbWUoY29tcG9uZW50T3B0aW9ucyksXG4gICAgICAgICAgdGFnOiB0YWcsXG4gICAgICAgICAgY29tcG9uZW50SW5zdGFuY2U6IGNvbXBvbmVudEluc3RhbmNlLFxuICAgICAgICB9O1xuICAgICAgICBrZXlzLnB1c2goa2V5VG9DYWNoZSk7XG4gICAgICAgIC8vIHBydW5lIG9sZGVzdCBlbnRyeVxuICAgICAgICBpZiAodGhpcy5tYXggJiYga2V5cy5sZW5ndGggPiBwYXJzZUludCh0aGlzLm1heCkpIHtcbiAgICAgICAgICBwcnVuZUNhY2hlRW50cnkoY2FjaGUsIGtleXNbMF0sIGtleXMsIHRoaXMuX3Zub2RlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZub2RlVG9DYWNoZSA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIGNyZWF0ZWQ6IGZ1bmN0aW9uIGNyZWF0ZWQgKCkge1xuICAgIHRoaXMuY2FjaGUgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHRoaXMua2V5cyA9IFtdO1xuICB9LFxuXG4gIGRlc3Ryb3llZDogZnVuY3Rpb24gZGVzdHJveWVkICgpIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gdGhpcy5jYWNoZSkge1xuICAgICAgcHJ1bmVDYWNoZUVudHJ5KHRoaXMuY2FjaGUsIGtleSwgdGhpcy5rZXlzKTtcbiAgICB9XG4gIH0sXG5cbiAgbW91bnRlZDogZnVuY3Rpb24gbW91bnRlZCAoKSB7XG4gICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cbiAgICB0aGlzLmNhY2hlVk5vZGUoKTtcbiAgICB0aGlzLiR3YXRjaCgnaW5jbHVkZScsIGZ1bmN0aW9uICh2YWwpIHtcbiAgICAgIHBydW5lQ2FjaGUodGhpcyQxLCBmdW5jdGlvbiAobmFtZSkgeyByZXR1cm4gbWF0Y2hlcyh2YWwsIG5hbWUpOyB9KTtcbiAgICB9KTtcbiAgICB0aGlzLiR3YXRjaCgnZXhjbHVkZScsIGZ1bmN0aW9uICh2YWwpIHtcbiAgICAgIHBydW5lQ2FjaGUodGhpcyQxLCBmdW5jdGlvbiAobmFtZSkgeyByZXR1cm4gIW1hdGNoZXModmFsLCBuYW1lKTsgfSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgdXBkYXRlZDogZnVuY3Rpb24gdXBkYXRlZCAoKSB7XG4gICAgdGhpcy5jYWNoZVZOb2RlKCk7XG4gIH0sXG5cbiAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIgKCkge1xuICAgIHZhciBzbG90ID0gdGhpcy4kc2xvdHMuZGVmYXVsdDtcbiAgICB2YXIgdm5vZGUgPSBnZXRGaXJzdENvbXBvbmVudENoaWxkKHNsb3QpO1xuICAgIHZhciBjb21wb25lbnRPcHRpb25zID0gdm5vZGUgJiYgdm5vZGUuY29tcG9uZW50T3B0aW9ucztcbiAgICBpZiAoY29tcG9uZW50T3B0aW9ucykge1xuICAgICAgLy8gY2hlY2sgcGF0dGVyblxuICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lKGNvbXBvbmVudE9wdGlvbnMpO1xuICAgICAgdmFyIHJlZiA9IHRoaXM7XG4gICAgICB2YXIgaW5jbHVkZSA9IHJlZi5pbmNsdWRlO1xuICAgICAgdmFyIGV4Y2x1ZGUgPSByZWYuZXhjbHVkZTtcbiAgICAgIGlmIChcbiAgICAgICAgLy8gbm90IGluY2x1ZGVkXG4gICAgICAgIChpbmNsdWRlICYmICghbmFtZSB8fCAhbWF0Y2hlcyhpbmNsdWRlLCBuYW1lKSkpIHx8XG4gICAgICAgIC8vIGV4Y2x1ZGVkXG4gICAgICAgIChleGNsdWRlICYmIG5hbWUgJiYgbWF0Y2hlcyhleGNsdWRlLCBuYW1lKSlcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gdm5vZGVcbiAgICAgIH1cblxuICAgICAgdmFyIHJlZiQxID0gdGhpcztcbiAgICAgIHZhciBjYWNoZSA9IHJlZiQxLmNhY2hlO1xuICAgICAgdmFyIGtleXMgPSByZWYkMS5rZXlzO1xuICAgICAgdmFyIGtleSA9IHZub2RlLmtleSA9PSBudWxsXG4gICAgICAgIC8vIHNhbWUgY29uc3RydWN0b3IgbWF5IGdldCByZWdpc3RlcmVkIGFzIGRpZmZlcmVudCBsb2NhbCBjb21wb25lbnRzXG4gICAgICAgIC8vIHNvIGNpZCBhbG9uZSBpcyBub3QgZW5vdWdoICgjMzI2OSlcbiAgICAgICAgPyBjb21wb25lbnRPcHRpb25zLkN0b3IuY2lkICsgKGNvbXBvbmVudE9wdGlvbnMudGFnID8gKFwiOjpcIiArIChjb21wb25lbnRPcHRpb25zLnRhZykpIDogJycpXG4gICAgICAgIDogdm5vZGUua2V5O1xuICAgICAgaWYgKGNhY2hlW2tleV0pIHtcbiAgICAgICAgdm5vZGUuY29tcG9uZW50SW5zdGFuY2UgPSBjYWNoZVtrZXldLmNvbXBvbmVudEluc3RhbmNlO1xuICAgICAgICAvLyBtYWtlIGN1cnJlbnQga2V5IGZyZXNoZXN0XG4gICAgICAgIHJlbW92ZShrZXlzLCBrZXkpO1xuICAgICAgICBrZXlzLnB1c2goa2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGRlbGF5IHNldHRpbmcgdGhlIGNhY2hlIHVudGlsIHVwZGF0ZVxuICAgICAgICB0aGlzLnZub2RlVG9DYWNoZSA9IHZub2RlO1xuICAgICAgICB0aGlzLmtleVRvQ2FjaGUgPSBrZXk7XG4gICAgICB9XG5cbiAgICAgIHZub2RlLmRhdGEua2VlcEFsaXZlID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHZub2RlIHx8IChzbG90ICYmIHNsb3RbMF0pXG4gIH1cbn07XG5cbnZhciBidWlsdEluQ29tcG9uZW50cyA9IHtcbiAgS2VlcEFsaXZlOiBLZWVwQWxpdmVcbn07XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBpbml0R2xvYmFsQVBJIChWdWUpIHtcbiAgLy8gY29uZmlnXG4gIHZhciBjb25maWdEZWYgPSB7fTtcbiAgY29uZmlnRGVmLmdldCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGNvbmZpZzsgfTtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBjb25maWdEZWYuc2V0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgd2FybihcbiAgICAgICAgJ0RvIG5vdCByZXBsYWNlIHRoZSBWdWUuY29uZmlnIG9iamVjdCwgc2V0IGluZGl2aWR1YWwgZmllbGRzIGluc3RlYWQuJ1xuICAgICAgKTtcbiAgICB9O1xuICB9XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShWdWUsICdjb25maWcnLCBjb25maWdEZWYpO1xuXG4gIC8vIGV4cG9zZWQgdXRpbCBtZXRob2RzLlxuICAvLyBOT1RFOiB0aGVzZSBhcmUgbm90IGNvbnNpZGVyZWQgcGFydCBvZiB0aGUgcHVibGljIEFQSSAtIGF2b2lkIHJlbHlpbmcgb25cbiAgLy8gdGhlbSB1bmxlc3MgeW91IGFyZSBhd2FyZSBvZiB0aGUgcmlzay5cbiAgVnVlLnV0aWwgPSB7XG4gICAgd2Fybjogd2FybixcbiAgICBleHRlbmQ6IGV4dGVuZCxcbiAgICBtZXJnZU9wdGlvbnM6IG1lcmdlT3B0aW9ucyxcbiAgICBkZWZpbmVSZWFjdGl2ZTogZGVmaW5lUmVhY3RpdmUkJDFcbiAgfTtcblxuICBWdWUuc2V0ID0gc2V0O1xuICBWdWUuZGVsZXRlID0gZGVsO1xuICBWdWUubmV4dFRpY2sgPSBuZXh0VGljaztcblxuICAvLyAyLjYgZXhwbGljaXQgb2JzZXJ2YWJsZSBBUElcbiAgVnVlLm9ic2VydmFibGUgPSBmdW5jdGlvbiAob2JqKSB7XG4gICAgb2JzZXJ2ZShvYmopO1xuICAgIHJldHVybiBvYmpcbiAgfTtcblxuICBWdWUub3B0aW9ucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIEFTU0VUX1RZUEVTLmZvckVhY2goZnVuY3Rpb24gKHR5cGUpIHtcbiAgICBWdWUub3B0aW9uc1t0eXBlICsgJ3MnXSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIH0pO1xuXG4gIC8vIHRoaXMgaXMgdXNlZCB0byBpZGVudGlmeSB0aGUgXCJiYXNlXCIgY29uc3RydWN0b3IgdG8gZXh0ZW5kIGFsbCBwbGFpbi1vYmplY3RcbiAgLy8gY29tcG9uZW50cyB3aXRoIGluIFdlZXgncyBtdWx0aS1pbnN0YW5jZSBzY2VuYXJpb3MuXG4gIFZ1ZS5vcHRpb25zLl9iYXNlID0gVnVlO1xuXG4gIGV4dGVuZChWdWUub3B0aW9ucy5jb21wb25lbnRzLCBidWlsdEluQ29tcG9uZW50cyk7XG5cbiAgaW5pdFVzZShWdWUpO1xuICBpbml0TWl4aW4kMShWdWUpO1xuICBpbml0RXh0ZW5kKFZ1ZSk7XG4gIGluaXRBc3NldFJlZ2lzdGVycyhWdWUpO1xufVxuXG5pbml0R2xvYmFsQVBJKFZ1ZSk7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShWdWUucHJvdG90eXBlLCAnJGlzU2VydmVyJywge1xuICBnZXQ6IGlzU2VydmVyUmVuZGVyaW5nXG59KTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KFZ1ZS5wcm90b3R5cGUsICckc3NyQ29udGV4dCcsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQgKCkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHRoaXMuJHZub2RlICYmIHRoaXMuJHZub2RlLnNzckNvbnRleHRcbiAgfVxufSk7XG5cbi8vIGV4cG9zZSBGdW5jdGlvbmFsUmVuZGVyQ29udGV4dCBmb3Igc3NyIHJ1bnRpbWUgaGVscGVyIGluc3RhbGxhdGlvblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KFZ1ZSwgJ0Z1bmN0aW9uYWxSZW5kZXJDb250ZXh0Jywge1xuICB2YWx1ZTogRnVuY3Rpb25hbFJlbmRlckNvbnRleHRcbn0pO1xuXG5WdWUudmVyc2lvbiA9ICcyLjYuMTQnO1xuXG4vKiAgKi9cblxuLy8gdGhlc2UgYXJlIHJlc2VydmVkIGZvciB3ZWIgYmVjYXVzZSB0aGV5IGFyZSBkaXJlY3RseSBjb21waWxlZCBhd2F5XG4vLyBkdXJpbmcgdGVtcGxhdGUgY29tcGlsYXRpb25cbnZhciBpc1Jlc2VydmVkQXR0ciA9IG1ha2VNYXAoJ3N0eWxlLGNsYXNzJyk7XG5cbi8vIGF0dHJpYnV0ZXMgdGhhdCBzaG91bGQgYmUgdXNpbmcgcHJvcHMgZm9yIGJpbmRpbmdcbnZhciBhY2NlcHRWYWx1ZSA9IG1ha2VNYXAoJ2lucHV0LHRleHRhcmVhLG9wdGlvbixzZWxlY3QscHJvZ3Jlc3MnKTtcbnZhciBtdXN0VXNlUHJvcCA9IGZ1bmN0aW9uICh0YWcsIHR5cGUsIGF0dHIpIHtcbiAgcmV0dXJuIChcbiAgICAoYXR0ciA9PT0gJ3ZhbHVlJyAmJiBhY2NlcHRWYWx1ZSh0YWcpKSAmJiB0eXBlICE9PSAnYnV0dG9uJyB8fFxuICAgIChhdHRyID09PSAnc2VsZWN0ZWQnICYmIHRhZyA9PT0gJ29wdGlvbicpIHx8XG4gICAgKGF0dHIgPT09ICdjaGVja2VkJyAmJiB0YWcgPT09ICdpbnB1dCcpIHx8XG4gICAgKGF0dHIgPT09ICdtdXRlZCcgJiYgdGFnID09PSAndmlkZW8nKVxuICApXG59O1xuXG52YXIgaXNFbnVtZXJhdGVkQXR0ciA9IG1ha2VNYXAoJ2NvbnRlbnRlZGl0YWJsZSxkcmFnZ2FibGUsc3BlbGxjaGVjaycpO1xuXG52YXIgaXNWYWxpZENvbnRlbnRFZGl0YWJsZVZhbHVlID0gbWFrZU1hcCgnZXZlbnRzLGNhcmV0LHR5cGluZyxwbGFpbnRleHQtb25seScpO1xuXG52YXIgY29udmVydEVudW1lcmF0ZWRWYWx1ZSA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gIHJldHVybiBpc0ZhbHN5QXR0clZhbHVlKHZhbHVlKSB8fCB2YWx1ZSA9PT0gJ2ZhbHNlJ1xuICAgID8gJ2ZhbHNlJ1xuICAgIC8vIGFsbG93IGFyYml0cmFyeSBzdHJpbmcgdmFsdWUgZm9yIGNvbnRlbnRlZGl0YWJsZVxuICAgIDoga2V5ID09PSAnY29udGVudGVkaXRhYmxlJyAmJiBpc1ZhbGlkQ29udGVudEVkaXRhYmxlVmFsdWUodmFsdWUpXG4gICAgICA/IHZhbHVlXG4gICAgICA6ICd0cnVlJ1xufTtcblxudmFyIGlzQm9vbGVhbkF0dHIgPSBtYWtlTWFwKFxuICAnYWxsb3dmdWxsc2NyZWVuLGFzeW5jLGF1dG9mb2N1cyxhdXRvcGxheSxjaGVja2VkLGNvbXBhY3QsY29udHJvbHMsZGVjbGFyZSwnICtcbiAgJ2RlZmF1bHQsZGVmYXVsdGNoZWNrZWQsZGVmYXVsdG11dGVkLGRlZmF1bHRzZWxlY3RlZCxkZWZlcixkaXNhYmxlZCwnICtcbiAgJ2VuYWJsZWQsZm9ybW5vdmFsaWRhdGUsaGlkZGVuLGluZGV0ZXJtaW5hdGUsaW5lcnQsaXNtYXAsaXRlbXNjb3BlLGxvb3AsbXVsdGlwbGUsJyArXG4gICdtdXRlZCxub2hyZWYsbm9yZXNpemUsbm9zaGFkZSxub3ZhbGlkYXRlLG5vd3JhcCxvcGVuLHBhdXNlb25leGl0LHJlYWRvbmx5LCcgK1xuICAncmVxdWlyZWQscmV2ZXJzZWQsc2NvcGVkLHNlYW1sZXNzLHNlbGVjdGVkLHNvcnRhYmxlLCcgK1xuICAndHJ1ZXNwZWVkLHR5cGVtdXN0bWF0Y2gsdmlzaWJsZSdcbik7XG5cbnZhciB4bGlua05TID0gJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnO1xuXG52YXIgaXNYbGluayA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIHJldHVybiBuYW1lLmNoYXJBdCg1KSA9PT0gJzonICYmIG5hbWUuc2xpY2UoMCwgNSkgPT09ICd4bGluaydcbn07XG5cbnZhciBnZXRYbGlua1Byb3AgPSBmdW5jdGlvbiAobmFtZSkge1xuICByZXR1cm4gaXNYbGluayhuYW1lKSA/IG5hbWUuc2xpY2UoNiwgbmFtZS5sZW5ndGgpIDogJydcbn07XG5cbnZhciBpc0ZhbHN5QXR0clZhbHVlID0gZnVuY3Rpb24gKHZhbCkge1xuICByZXR1cm4gdmFsID09IG51bGwgfHwgdmFsID09PSBmYWxzZVxufTtcblxuLyogICovXG5cbmZ1bmN0aW9uIGdlbkNsYXNzRm9yVm5vZGUgKHZub2RlKSB7XG4gIHZhciBkYXRhID0gdm5vZGUuZGF0YTtcbiAgdmFyIHBhcmVudE5vZGUgPSB2bm9kZTtcbiAgdmFyIGNoaWxkTm9kZSA9IHZub2RlO1xuICB3aGlsZSAoaXNEZWYoY2hpbGROb2RlLmNvbXBvbmVudEluc3RhbmNlKSkge1xuICAgIGNoaWxkTm9kZSA9IGNoaWxkTm9kZS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGU7XG4gICAgaWYgKGNoaWxkTm9kZSAmJiBjaGlsZE5vZGUuZGF0YSkge1xuICAgICAgZGF0YSA9IG1lcmdlQ2xhc3NEYXRhKGNoaWxkTm9kZS5kYXRhLCBkYXRhKTtcbiAgICB9XG4gIH1cbiAgd2hpbGUgKGlzRGVmKHBhcmVudE5vZGUgPSBwYXJlbnROb2RlLnBhcmVudCkpIHtcbiAgICBpZiAocGFyZW50Tm9kZSAmJiBwYXJlbnROb2RlLmRhdGEpIHtcbiAgICAgIGRhdGEgPSBtZXJnZUNsYXNzRGF0YShkYXRhLCBwYXJlbnROb2RlLmRhdGEpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVuZGVyQ2xhc3MoZGF0YS5zdGF0aWNDbGFzcywgZGF0YS5jbGFzcylcbn1cblxuZnVuY3Rpb24gbWVyZ2VDbGFzc0RhdGEgKGNoaWxkLCBwYXJlbnQpIHtcbiAgcmV0dXJuIHtcbiAgICBzdGF0aWNDbGFzczogY29uY2F0KGNoaWxkLnN0YXRpY0NsYXNzLCBwYXJlbnQuc3RhdGljQ2xhc3MpLFxuICAgIGNsYXNzOiBpc0RlZihjaGlsZC5jbGFzcylcbiAgICAgID8gW2NoaWxkLmNsYXNzLCBwYXJlbnQuY2xhc3NdXG4gICAgICA6IHBhcmVudC5jbGFzc1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlbmRlckNsYXNzIChcbiAgc3RhdGljQ2xhc3MsXG4gIGR5bmFtaWNDbGFzc1xuKSB7XG4gIGlmIChpc0RlZihzdGF0aWNDbGFzcykgfHwgaXNEZWYoZHluYW1pY0NsYXNzKSkge1xuICAgIHJldHVybiBjb25jYXQoc3RhdGljQ2xhc3MsIHN0cmluZ2lmeUNsYXNzKGR5bmFtaWNDbGFzcykpXG4gIH1cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcmV0dXJuICcnXG59XG5cbmZ1bmN0aW9uIGNvbmNhdCAoYSwgYikge1xuICByZXR1cm4gYSA/IGIgPyAoYSArICcgJyArIGIpIDogYSA6IChiIHx8ICcnKVxufVxuXG5mdW5jdGlvbiBzdHJpbmdpZnlDbGFzcyAodmFsdWUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHN0cmluZ2lmeUFycmF5KHZhbHVlKVxuICB9XG4gIGlmIChpc09iamVjdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gc3RyaW5naWZ5T2JqZWN0KHZhbHVlKVxuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcmV0dXJuICcnXG59XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeUFycmF5ICh2YWx1ZSkge1xuICB2YXIgcmVzID0gJyc7XG4gIHZhciBzdHJpbmdpZmllZDtcbiAgZm9yICh2YXIgaSA9IDAsIGwgPSB2YWx1ZS5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBpZiAoaXNEZWYoc3RyaW5naWZpZWQgPSBzdHJpbmdpZnlDbGFzcyh2YWx1ZVtpXSkpICYmIHN0cmluZ2lmaWVkICE9PSAnJykge1xuICAgICAgaWYgKHJlcykgeyByZXMgKz0gJyAnOyB9XG4gICAgICByZXMgKz0gc3RyaW5naWZpZWQ7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXNcbn1cblxuZnVuY3Rpb24gc3RyaW5naWZ5T2JqZWN0ICh2YWx1ZSkge1xuICB2YXIgcmVzID0gJyc7XG4gIGZvciAodmFyIGtleSBpbiB2YWx1ZSkge1xuICAgIGlmICh2YWx1ZVtrZXldKSB7XG4gICAgICBpZiAocmVzKSB7IHJlcyArPSAnICc7IH1cbiAgICAgIHJlcyArPSBrZXk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXNcbn1cblxuLyogICovXG5cbnZhciBuYW1lc3BhY2VNYXAgPSB7XG4gIHN2ZzogJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyxcbiAgbWF0aDogJ2h0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwnXG59O1xuXG52YXIgaXNIVE1MVGFnID0gbWFrZU1hcChcbiAgJ2h0bWwsYm9keSxiYXNlLGhlYWQsbGluayxtZXRhLHN0eWxlLHRpdGxlLCcgK1xuICAnYWRkcmVzcyxhcnRpY2xlLGFzaWRlLGZvb3RlcixoZWFkZXIsaDEsaDIsaDMsaDQsaDUsaDYsaGdyb3VwLG5hdixzZWN0aW9uLCcgK1xuICAnZGl2LGRkLGRsLGR0LGZpZ2NhcHRpb24sZmlndXJlLHBpY3R1cmUsaHIsaW1nLGxpLG1haW4sb2wscCxwcmUsdWwsJyArXG4gICdhLGIsYWJicixiZGksYmRvLGJyLGNpdGUsY29kZSxkYXRhLGRmbixlbSxpLGtiZCxtYXJrLHEscnAscnQscnRjLHJ1YnksJyArXG4gICdzLHNhbXAsc21hbGwsc3BhbixzdHJvbmcsc3ViLHN1cCx0aW1lLHUsdmFyLHdicixhcmVhLGF1ZGlvLG1hcCx0cmFjayx2aWRlbywnICtcbiAgJ2VtYmVkLG9iamVjdCxwYXJhbSxzb3VyY2UsY2FudmFzLHNjcmlwdCxub3NjcmlwdCxkZWwsaW5zLCcgK1xuICAnY2FwdGlvbixjb2wsY29sZ3JvdXAsdGFibGUsdGhlYWQsdGJvZHksdGQsdGgsdHIsJyArXG4gICdidXR0b24sZGF0YWxpc3QsZmllbGRzZXQsZm9ybSxpbnB1dCxsYWJlbCxsZWdlbmQsbWV0ZXIsb3B0Z3JvdXAsb3B0aW9uLCcgK1xuICAnb3V0cHV0LHByb2dyZXNzLHNlbGVjdCx0ZXh0YXJlYSwnICtcbiAgJ2RldGFpbHMsZGlhbG9nLG1lbnUsbWVudWl0ZW0sc3VtbWFyeSwnICtcbiAgJ2NvbnRlbnQsZWxlbWVudCxzaGFkb3csdGVtcGxhdGUsYmxvY2txdW90ZSxpZnJhbWUsdGZvb3QnXG4pO1xuXG4vLyB0aGlzIG1hcCBpcyBpbnRlbnRpb25hbGx5IHNlbGVjdGl2ZSwgb25seSBjb3ZlcmluZyBTVkcgZWxlbWVudHMgdGhhdCBtYXlcbi8vIGNvbnRhaW4gY2hpbGQgZWxlbWVudHMuXG52YXIgaXNTVkcgPSBtYWtlTWFwKFxuICAnc3ZnLGFuaW1hdGUsY2lyY2xlLGNsaXBwYXRoLGN1cnNvcixkZWZzLGRlc2MsZWxsaXBzZSxmaWx0ZXIsZm9udC1mYWNlLCcgK1xuICAnZm9yZWlnbm9iamVjdCxnLGdseXBoLGltYWdlLGxpbmUsbWFya2VyLG1hc2ssbWlzc2luZy1nbHlwaCxwYXRoLHBhdHRlcm4sJyArXG4gICdwb2x5Z29uLHBvbHlsaW5lLHJlY3Qsc3dpdGNoLHN5bWJvbCx0ZXh0LHRleHRwYXRoLHRzcGFuLHVzZSx2aWV3JyxcbiAgdHJ1ZVxuKTtcblxudmFyIGlzUmVzZXJ2ZWRUYWcgPSBmdW5jdGlvbiAodGFnKSB7XG4gIHJldHVybiBpc0hUTUxUYWcodGFnKSB8fCBpc1NWRyh0YWcpXG59O1xuXG5mdW5jdGlvbiBnZXRUYWdOYW1lc3BhY2UgKHRhZykge1xuICBpZiAoaXNTVkcodGFnKSkge1xuICAgIHJldHVybiAnc3ZnJ1xuICB9XG4gIC8vIGJhc2ljIHN1cHBvcnQgZm9yIE1hdGhNTFxuICAvLyBub3RlIGl0IGRvZXNuJ3Qgc3VwcG9ydCBvdGhlciBNYXRoTUwgZWxlbWVudHMgYmVpbmcgY29tcG9uZW50IHJvb3RzXG4gIGlmICh0YWcgPT09ICdtYXRoJykge1xuICAgIHJldHVybiAnbWF0aCdcbiAgfVxufVxuXG52YXIgdW5rbm93bkVsZW1lbnRDYWNoZSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5mdW5jdGlvbiBpc1Vua25vd25FbGVtZW50ICh0YWcpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmICghaW5Ccm93c2VyKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuICBpZiAoaXNSZXNlcnZlZFRhZyh0YWcpKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgdGFnID0gdGFnLnRvTG93ZXJDYXNlKCk7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAodW5rbm93bkVsZW1lbnRDYWNoZVt0YWddICE9IG51bGwpIHtcbiAgICByZXR1cm4gdW5rbm93bkVsZW1lbnRDYWNoZVt0YWddXG4gIH1cbiAgdmFyIGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWcpO1xuICBpZiAodGFnLmluZGV4T2YoJy0nKSA+IC0xKSB7XG4gICAgLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMjgyMTAzNjQvMTA3MDI0NFxuICAgIHJldHVybiAodW5rbm93bkVsZW1lbnRDYWNoZVt0YWddID0gKFxuICAgICAgZWwuY29uc3RydWN0b3IgPT09IHdpbmRvdy5IVE1MVW5rbm93bkVsZW1lbnQgfHxcbiAgICAgIGVsLmNvbnN0cnVjdG9yID09PSB3aW5kb3cuSFRNTEVsZW1lbnRcbiAgICApKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiAodW5rbm93bkVsZW1lbnRDYWNoZVt0YWddID0gL0hUTUxVbmtub3duRWxlbWVudC8udGVzdChlbC50b1N0cmluZygpKSlcbiAgfVxufVxuXG52YXIgaXNUZXh0SW5wdXRUeXBlID0gbWFrZU1hcCgndGV4dCxudW1iZXIscGFzc3dvcmQsc2VhcmNoLGVtYWlsLHRlbCx1cmwnKTtcblxuLyogICovXG5cbi8qKlxuICogUXVlcnkgYW4gZWxlbWVudCBzZWxlY3RvciBpZiBpdCdzIG5vdCBhbiBlbGVtZW50IGFscmVhZHkuXG4gKi9cbmZ1bmN0aW9uIHF1ZXJ5IChlbCkge1xuICBpZiAodHlwZW9mIGVsID09PSAnc3RyaW5nJykge1xuICAgIHZhciBzZWxlY3RlZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZWwpO1xuICAgIGlmICghc2VsZWN0ZWQpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgd2FybihcbiAgICAgICAgJ0Nhbm5vdCBmaW5kIGVsZW1lbnQ6ICcgKyBlbFxuICAgICAgKTtcbiAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgIH1cbiAgICByZXR1cm4gc2VsZWN0ZWRcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZWxcbiAgfVxufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gY3JlYXRlRWxlbWVudCQxICh0YWdOYW1lLCB2bm9kZSkge1xuICB2YXIgZWxtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWdOYW1lKTtcbiAgaWYgKHRhZ05hbWUgIT09ICdzZWxlY3QnKSB7XG4gICAgcmV0dXJuIGVsbVxuICB9XG4gIC8vIGZhbHNlIG9yIG51bGwgd2lsbCByZW1vdmUgdGhlIGF0dHJpYnV0ZSBidXQgdW5kZWZpbmVkIHdpbGwgbm90XG4gIGlmICh2bm9kZS5kYXRhICYmIHZub2RlLmRhdGEuYXR0cnMgJiYgdm5vZGUuZGF0YS5hdHRycy5tdWx0aXBsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZWxtLnNldEF0dHJpYnV0ZSgnbXVsdGlwbGUnLCAnbXVsdGlwbGUnKTtcbiAgfVxuICByZXR1cm4gZWxtXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnROUyAobmFtZXNwYWNlLCB0YWdOYW1lKSB7XG4gIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobmFtZXNwYWNlTWFwW25hbWVzcGFjZV0sIHRhZ05hbWUpXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVRleHROb2RlICh0ZXh0KSB7XG4gIHJldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KVxufVxuXG5mdW5jdGlvbiBjcmVhdGVDb21tZW50ICh0ZXh0KSB7XG4gIHJldHVybiBkb2N1bWVudC5jcmVhdGVDb21tZW50KHRleHQpXG59XG5cbmZ1bmN0aW9uIGluc2VydEJlZm9yZSAocGFyZW50Tm9kZSwgbmV3Tm9kZSwgcmVmZXJlbmNlTm9kZSkge1xuICBwYXJlbnROb2RlLmluc2VydEJlZm9yZShuZXdOb2RlLCByZWZlcmVuY2VOb2RlKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlQ2hpbGQgKG5vZGUsIGNoaWxkKSB7XG4gIG5vZGUucmVtb3ZlQ2hpbGQoY2hpbGQpO1xufVxuXG5mdW5jdGlvbiBhcHBlbmRDaGlsZCAobm9kZSwgY2hpbGQpIHtcbiAgbm9kZS5hcHBlbmRDaGlsZChjaGlsZCk7XG59XG5cbmZ1bmN0aW9uIHBhcmVudE5vZGUgKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUucGFyZW50Tm9kZVxufVxuXG5mdW5jdGlvbiBuZXh0U2libGluZyAobm9kZSkge1xuICByZXR1cm4gbm9kZS5uZXh0U2libGluZ1xufVxuXG5mdW5jdGlvbiB0YWdOYW1lIChub2RlKSB7XG4gIHJldHVybiBub2RlLnRhZ05hbWVcbn1cblxuZnVuY3Rpb24gc2V0VGV4dENvbnRlbnQgKG5vZGUsIHRleHQpIHtcbiAgbm9kZS50ZXh0Q29udGVudCA9IHRleHQ7XG59XG5cbmZ1bmN0aW9uIHNldFN0eWxlU2NvcGUgKG5vZGUsIHNjb3BlSWQpIHtcbiAgbm9kZS5zZXRBdHRyaWJ1dGUoc2NvcGVJZCwgJycpO1xufVxuXG52YXIgbm9kZU9wcyA9IC8qI19fUFVSRV9fKi9PYmplY3QuZnJlZXplKHtcbiAgY3JlYXRlRWxlbWVudDogY3JlYXRlRWxlbWVudCQxLFxuICBjcmVhdGVFbGVtZW50TlM6IGNyZWF0ZUVsZW1lbnROUyxcbiAgY3JlYXRlVGV4dE5vZGU6IGNyZWF0ZVRleHROb2RlLFxuICBjcmVhdGVDb21tZW50OiBjcmVhdGVDb21tZW50LFxuICBpbnNlcnRCZWZvcmU6IGluc2VydEJlZm9yZSxcbiAgcmVtb3ZlQ2hpbGQ6IHJlbW92ZUNoaWxkLFxuICBhcHBlbmRDaGlsZDogYXBwZW5kQ2hpbGQsXG4gIHBhcmVudE5vZGU6IHBhcmVudE5vZGUsXG4gIG5leHRTaWJsaW5nOiBuZXh0U2libGluZyxcbiAgdGFnTmFtZTogdGFnTmFtZSxcbiAgc2V0VGV4dENvbnRlbnQ6IHNldFRleHRDb250ZW50LFxuICBzZXRTdHlsZVNjb3BlOiBzZXRTdHlsZVNjb3BlXG59KTtcblxuLyogICovXG5cbnZhciByZWYgPSB7XG4gIGNyZWF0ZTogZnVuY3Rpb24gY3JlYXRlIChfLCB2bm9kZSkge1xuICAgIHJlZ2lzdGVyUmVmKHZub2RlKTtcbiAgfSxcbiAgdXBkYXRlOiBmdW5jdGlvbiB1cGRhdGUgKG9sZFZub2RlLCB2bm9kZSkge1xuICAgIGlmIChvbGRWbm9kZS5kYXRhLnJlZiAhPT0gdm5vZGUuZGF0YS5yZWYpIHtcbiAgICAgIHJlZ2lzdGVyUmVmKG9sZFZub2RlLCB0cnVlKTtcbiAgICAgIHJlZ2lzdGVyUmVmKHZub2RlKTtcbiAgICB9XG4gIH0sXG4gIGRlc3Ryb3k6IGZ1bmN0aW9uIGRlc3Ryb3kgKHZub2RlKSB7XG4gICAgcmVnaXN0ZXJSZWYodm5vZGUsIHRydWUpO1xuICB9XG59O1xuXG5mdW5jdGlvbiByZWdpc3RlclJlZiAodm5vZGUsIGlzUmVtb3ZhbCkge1xuICB2YXIga2V5ID0gdm5vZGUuZGF0YS5yZWY7XG4gIGlmICghaXNEZWYoa2V5KSkgeyByZXR1cm4gfVxuXG4gIHZhciB2bSA9IHZub2RlLmNvbnRleHQ7XG4gIHZhciByZWYgPSB2bm9kZS5jb21wb25lbnRJbnN0YW5jZSB8fCB2bm9kZS5lbG07XG4gIHZhciByZWZzID0gdm0uJHJlZnM7XG4gIGlmIChpc1JlbW92YWwpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZWZzW2tleV0pKSB7XG4gICAgICByZW1vdmUocmVmc1trZXldLCByZWYpO1xuICAgIH0gZWxzZSBpZiAocmVmc1trZXldID09PSByZWYpIHtcbiAgICAgIHJlZnNba2V5XSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKHZub2RlLmRhdGEucmVmSW5Gb3IpIHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShyZWZzW2tleV0pKSB7XG4gICAgICAgIHJlZnNba2V5XSA9IFtyZWZdO1xuICAgICAgfSBlbHNlIGlmIChyZWZzW2tleV0uaW5kZXhPZihyZWYpIDwgMCkge1xuICAgICAgICAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbiAgICAgICAgcmVmc1trZXldLnB1c2gocmVmKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmVmc1trZXldID0gcmVmO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFZpcnR1YWwgRE9NIHBhdGNoaW5nIGFsZ29yaXRobSBiYXNlZCBvbiBTbmFiYmRvbSBieVxuICogU2ltb24gRnJpaXMgVmluZHVtIChAcGFsZGVwaW5kKVxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlXG4gKiBodHRwczovL2dpdGh1Yi5jb20vcGFsZGVwaW5kL3NuYWJiZG9tL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqXG4gKiBtb2RpZmllZCBieSBFdmFuIFlvdSAoQHl5eDk5MDgwMylcbiAqXG4gKiBOb3QgdHlwZS1jaGVja2luZyB0aGlzIGJlY2F1c2UgdGhpcyBmaWxlIGlzIHBlcmYtY3JpdGljYWwgYW5kIHRoZSBjb3N0XG4gKiBvZiBtYWtpbmcgZmxvdyB1bmRlcnN0YW5kIGl0IGlzIG5vdCB3b3J0aCBpdC5cbiAqL1xuXG52YXIgZW1wdHlOb2RlID0gbmV3IFZOb2RlKCcnLCB7fSwgW10pO1xuXG52YXIgaG9va3MgPSBbJ2NyZWF0ZScsICdhY3RpdmF0ZScsICd1cGRhdGUnLCAncmVtb3ZlJywgJ2Rlc3Ryb3knXTtcblxuZnVuY3Rpb24gc2FtZVZub2RlIChhLCBiKSB7XG4gIHJldHVybiAoXG4gICAgYS5rZXkgPT09IGIua2V5ICYmXG4gICAgYS5hc3luY0ZhY3RvcnkgPT09IGIuYXN5bmNGYWN0b3J5ICYmIChcbiAgICAgIChcbiAgICAgICAgYS50YWcgPT09IGIudGFnICYmXG4gICAgICAgIGEuaXNDb21tZW50ID09PSBiLmlzQ29tbWVudCAmJlxuICAgICAgICBpc0RlZihhLmRhdGEpID09PSBpc0RlZihiLmRhdGEpICYmXG4gICAgICAgIHNhbWVJbnB1dFR5cGUoYSwgYilcbiAgICAgICkgfHwgKFxuICAgICAgICBpc1RydWUoYS5pc0FzeW5jUGxhY2Vob2xkZXIpICYmXG4gICAgICAgIGlzVW5kZWYoYi5hc3luY0ZhY3RvcnkuZXJyb3IpXG4gICAgICApXG4gICAgKVxuICApXG59XG5cbmZ1bmN0aW9uIHNhbWVJbnB1dFR5cGUgKGEsIGIpIHtcbiAgaWYgKGEudGFnICE9PSAnaW5wdXQnKSB7IHJldHVybiB0cnVlIH1cbiAgdmFyIGk7XG4gIHZhciB0eXBlQSA9IGlzRGVmKGkgPSBhLmRhdGEpICYmIGlzRGVmKGkgPSBpLmF0dHJzKSAmJiBpLnR5cGU7XG4gIHZhciB0eXBlQiA9IGlzRGVmKGkgPSBiLmRhdGEpICYmIGlzRGVmKGkgPSBpLmF0dHJzKSAmJiBpLnR5cGU7XG4gIHJldHVybiB0eXBlQSA9PT0gdHlwZUIgfHwgaXNUZXh0SW5wdXRUeXBlKHR5cGVBKSAmJiBpc1RleHRJbnB1dFR5cGUodHlwZUIpXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUtleVRvT2xkSWR4IChjaGlsZHJlbiwgYmVnaW5JZHgsIGVuZElkeCkge1xuICB2YXIgaSwga2V5O1xuICB2YXIgbWFwID0ge307XG4gIGZvciAoaSA9IGJlZ2luSWR4OyBpIDw9IGVuZElkeDsgKytpKSB7XG4gICAga2V5ID0gY2hpbGRyZW5baV0ua2V5O1xuICAgIGlmIChpc0RlZihrZXkpKSB7IG1hcFtrZXldID0gaTsgfVxuICB9XG4gIHJldHVybiBtYXBcbn1cblxuZnVuY3Rpb24gY3JlYXRlUGF0Y2hGdW5jdGlvbiAoYmFja2VuZCkge1xuICB2YXIgaSwgajtcbiAgdmFyIGNicyA9IHt9O1xuXG4gIHZhciBtb2R1bGVzID0gYmFja2VuZC5tb2R1bGVzO1xuICB2YXIgbm9kZU9wcyA9IGJhY2tlbmQubm9kZU9wcztcblxuICBmb3IgKGkgPSAwOyBpIDwgaG9va3MubGVuZ3RoOyArK2kpIHtcbiAgICBjYnNbaG9va3NbaV1dID0gW107XG4gICAgZm9yIChqID0gMDsgaiA8IG1vZHVsZXMubGVuZ3RoOyArK2opIHtcbiAgICAgIGlmIChpc0RlZihtb2R1bGVzW2pdW2hvb2tzW2ldXSkpIHtcbiAgICAgICAgY2JzW2hvb2tzW2ldXS5wdXNoKG1vZHVsZXNbal1baG9va3NbaV1dKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBlbXB0eU5vZGVBdCAoZWxtKSB7XG4gICAgcmV0dXJuIG5ldyBWTm9kZShub2RlT3BzLnRhZ05hbWUoZWxtKS50b0xvd2VyQ2FzZSgpLCB7fSwgW10sIHVuZGVmaW5lZCwgZWxtKVxuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlUm1DYiAoY2hpbGRFbG0sIGxpc3RlbmVycykge1xuICAgIGZ1bmN0aW9uIHJlbW92ZSQkMSAoKSB7XG4gICAgICBpZiAoLS1yZW1vdmUkJDEubGlzdGVuZXJzID09PSAwKSB7XG4gICAgICAgIHJlbW92ZU5vZGUoY2hpbGRFbG0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZW1vdmUkJDEubGlzdGVuZXJzID0gbGlzdGVuZXJzO1xuICAgIHJldHVybiByZW1vdmUkJDFcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbW92ZU5vZGUgKGVsKSB7XG4gICAgdmFyIHBhcmVudCA9IG5vZGVPcHMucGFyZW50Tm9kZShlbCk7XG4gICAgLy8gZWxlbWVudCBtYXkgaGF2ZSBhbHJlYWR5IGJlZW4gcmVtb3ZlZCBkdWUgdG8gdi1odG1sIC8gdi10ZXh0XG4gICAgaWYgKGlzRGVmKHBhcmVudCkpIHtcbiAgICAgIG5vZGVPcHMucmVtb3ZlQ2hpbGQocGFyZW50LCBlbCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaXNVbmtub3duRWxlbWVudCQkMSAodm5vZGUsIGluVlByZSkge1xuICAgIHJldHVybiAoXG4gICAgICAhaW5WUHJlICYmXG4gICAgICAhdm5vZGUubnMgJiZcbiAgICAgICEoXG4gICAgICAgIGNvbmZpZy5pZ25vcmVkRWxlbWVudHMubGVuZ3RoICYmXG4gICAgICAgIGNvbmZpZy5pZ25vcmVkRWxlbWVudHMuc29tZShmdW5jdGlvbiAoaWdub3JlKSB7XG4gICAgICAgICAgcmV0dXJuIGlzUmVnRXhwKGlnbm9yZSlcbiAgICAgICAgICAgID8gaWdub3JlLnRlc3Qodm5vZGUudGFnKVxuICAgICAgICAgICAgOiBpZ25vcmUgPT09IHZub2RlLnRhZ1xuICAgICAgICB9KVxuICAgICAgKSAmJlxuICAgICAgY29uZmlnLmlzVW5rbm93bkVsZW1lbnQodm5vZGUudGFnKVxuICAgIClcbiAgfVxuXG4gIHZhciBjcmVhdGluZ0VsbUluVlByZSA9IDA7XG5cbiAgZnVuY3Rpb24gY3JlYXRlRWxtIChcbiAgICB2bm9kZSxcbiAgICBpbnNlcnRlZFZub2RlUXVldWUsXG4gICAgcGFyZW50RWxtLFxuICAgIHJlZkVsbSxcbiAgICBuZXN0ZWQsXG4gICAgb3duZXJBcnJheSxcbiAgICBpbmRleFxuICApIHtcbiAgICBpZiAoaXNEZWYodm5vZGUuZWxtKSAmJiBpc0RlZihvd25lckFycmF5KSkge1xuICAgICAgLy8gVGhpcyB2bm9kZSB3YXMgdXNlZCBpbiBhIHByZXZpb3VzIHJlbmRlciFcbiAgICAgIC8vIG5vdyBpdCdzIHVzZWQgYXMgYSBuZXcgbm9kZSwgb3ZlcndyaXRpbmcgaXRzIGVsbSB3b3VsZCBjYXVzZVxuICAgICAgLy8gcG90ZW50aWFsIHBhdGNoIGVycm9ycyBkb3duIHRoZSByb2FkIHdoZW4gaXQncyB1c2VkIGFzIGFuIGluc2VydGlvblxuICAgICAgLy8gcmVmZXJlbmNlIG5vZGUuIEluc3RlYWQsIHdlIGNsb25lIHRoZSBub2RlIG9uLWRlbWFuZCBiZWZvcmUgY3JlYXRpbmdcbiAgICAgIC8vIGFzc29jaWF0ZWQgRE9NIGVsZW1lbnQgZm9yIGl0LlxuICAgICAgdm5vZGUgPSBvd25lckFycmF5W2luZGV4XSA9IGNsb25lVk5vZGUodm5vZGUpO1xuICAgIH1cblxuICAgIHZub2RlLmlzUm9vdEluc2VydCA9ICFuZXN0ZWQ7IC8vIGZvciB0cmFuc2l0aW9uIGVudGVyIGNoZWNrXG4gICAgaWYgKGNyZWF0ZUNvbXBvbmVudCh2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCBwYXJlbnRFbG0sIHJlZkVsbSkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHZhciBkYXRhID0gdm5vZGUuZGF0YTtcbiAgICB2YXIgY2hpbGRyZW4gPSB2bm9kZS5jaGlsZHJlbjtcbiAgICB2YXIgdGFnID0gdm5vZGUudGFnO1xuICAgIGlmIChpc0RlZih0YWcpKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLnByZSkge1xuICAgICAgICAgIGNyZWF0aW5nRWxtSW5WUHJlKys7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzVW5rbm93bkVsZW1lbnQkJDEodm5vZGUsIGNyZWF0aW5nRWxtSW5WUHJlKSkge1xuICAgICAgICAgIHdhcm4oXG4gICAgICAgICAgICAnVW5rbm93biBjdXN0b20gZWxlbWVudDogPCcgKyB0YWcgKyAnPiAtIGRpZCB5b3UgJyArXG4gICAgICAgICAgICAncmVnaXN0ZXIgdGhlIGNvbXBvbmVudCBjb3JyZWN0bHk/IEZvciByZWN1cnNpdmUgY29tcG9uZW50cywgJyArXG4gICAgICAgICAgICAnbWFrZSBzdXJlIHRvIHByb3ZpZGUgdGhlIFwibmFtZVwiIG9wdGlvbi4nLFxuICAgICAgICAgICAgdm5vZGUuY29udGV4dFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdm5vZGUuZWxtID0gdm5vZGUubnNcbiAgICAgICAgPyBub2RlT3BzLmNyZWF0ZUVsZW1lbnROUyh2bm9kZS5ucywgdGFnKVxuICAgICAgICA6IG5vZGVPcHMuY3JlYXRlRWxlbWVudCh0YWcsIHZub2RlKTtcbiAgICAgIHNldFNjb3BlKHZub2RlKTtcblxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICB7XG4gICAgICAgIGNyZWF0ZUNoaWxkcmVuKHZub2RlLCBjaGlsZHJlbiwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKTtcbiAgICAgICAgaWYgKGlzRGVmKGRhdGEpKSB7XG4gICAgICAgICAgaW52b2tlQ3JlYXRlSG9va3Modm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaW5zZXJ0KHBhcmVudEVsbSwgdm5vZGUuZWxtLCByZWZFbG0pO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBkYXRhICYmIGRhdGEucHJlKSB7XG4gICAgICAgIGNyZWF0aW5nRWxtSW5WUHJlLS07XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpc1RydWUodm5vZGUuaXNDb21tZW50KSkge1xuICAgICAgdm5vZGUuZWxtID0gbm9kZU9wcy5jcmVhdGVDb21tZW50KHZub2RlLnRleHQpO1xuICAgICAgaW5zZXJ0KHBhcmVudEVsbSwgdm5vZGUuZWxtLCByZWZFbG0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB2bm9kZS5lbG0gPSBub2RlT3BzLmNyZWF0ZVRleHROb2RlKHZub2RlLnRleHQpO1xuICAgICAgaW5zZXJ0KHBhcmVudEVsbSwgdm5vZGUuZWxtLCByZWZFbG0pO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUNvbXBvbmVudCAodm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSwgcGFyZW50RWxtLCByZWZFbG0pIHtcbiAgICB2YXIgaSA9IHZub2RlLmRhdGE7XG4gICAgaWYgKGlzRGVmKGkpKSB7XG4gICAgICB2YXIgaXNSZWFjdGl2YXRlZCA9IGlzRGVmKHZub2RlLmNvbXBvbmVudEluc3RhbmNlKSAmJiBpLmtlZXBBbGl2ZTtcbiAgICAgIGlmIChpc0RlZihpID0gaS5ob29rKSAmJiBpc0RlZihpID0gaS5pbml0KSkge1xuICAgICAgICBpKHZub2RlLCBmYWxzZSAvKiBoeWRyYXRpbmcgKi8pO1xuICAgICAgfVxuICAgICAgLy8gYWZ0ZXIgY2FsbGluZyB0aGUgaW5pdCBob29rLCBpZiB0aGUgdm5vZGUgaXMgYSBjaGlsZCBjb21wb25lbnRcbiAgICAgIC8vIGl0IHNob3VsZCd2ZSBjcmVhdGVkIGEgY2hpbGQgaW5zdGFuY2UgYW5kIG1vdW50ZWQgaXQuIHRoZSBjaGlsZFxuICAgICAgLy8gY29tcG9uZW50IGFsc28gaGFzIHNldCB0aGUgcGxhY2Vob2xkZXIgdm5vZGUncyBlbG0uXG4gICAgICAvLyBpbiB0aGF0IGNhc2Ugd2UgY2FuIGp1c3QgcmV0dXJuIHRoZSBlbGVtZW50IGFuZCBiZSBkb25lLlxuICAgICAgaWYgKGlzRGVmKHZub2RlLmNvbXBvbmVudEluc3RhbmNlKSkge1xuICAgICAgICBpbml0Q29tcG9uZW50KHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUpO1xuICAgICAgICBpbnNlcnQocGFyZW50RWxtLCB2bm9kZS5lbG0sIHJlZkVsbSk7XG4gICAgICAgIGlmIChpc1RydWUoaXNSZWFjdGl2YXRlZCkpIHtcbiAgICAgICAgICByZWFjdGl2YXRlQ29tcG9uZW50KHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIHBhcmVudEVsbSwgcmVmRWxtKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRDb21wb25lbnQgKHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUpIHtcbiAgICBpZiAoaXNEZWYodm5vZGUuZGF0YS5wZW5kaW5nSW5zZXJ0KSkge1xuICAgICAgaW5zZXJ0ZWRWbm9kZVF1ZXVlLnB1c2guYXBwbHkoaW5zZXJ0ZWRWbm9kZVF1ZXVlLCB2bm9kZS5kYXRhLnBlbmRpbmdJbnNlcnQpO1xuICAgICAgdm5vZGUuZGF0YS5wZW5kaW5nSW5zZXJ0ID0gbnVsbDtcbiAgICB9XG4gICAgdm5vZGUuZWxtID0gdm5vZGUuY29tcG9uZW50SW5zdGFuY2UuJGVsO1xuICAgIGlmIChpc1BhdGNoYWJsZSh2bm9kZSkpIHtcbiAgICAgIGludm9rZUNyZWF0ZUhvb2tzKHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUpO1xuICAgICAgc2V0U2NvcGUodm5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBlbXB0eSBjb21wb25lbnQgcm9vdC5cbiAgICAgIC8vIHNraXAgYWxsIGVsZW1lbnQtcmVsYXRlZCBtb2R1bGVzIGV4Y2VwdCBmb3IgcmVmICgjMzQ1NSlcbiAgICAgIHJlZ2lzdGVyUmVmKHZub2RlKTtcbiAgICAgIC8vIG1ha2Ugc3VyZSB0byBpbnZva2UgdGhlIGluc2VydCBob29rXG4gICAgICBpbnNlcnRlZFZub2RlUXVldWUucHVzaCh2bm9kZSk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcmVhY3RpdmF0ZUNvbXBvbmVudCAodm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSwgcGFyZW50RWxtLCByZWZFbG0pIHtcbiAgICB2YXIgaTtcbiAgICAvLyBoYWNrIGZvciAjNDMzOTogYSByZWFjdGl2YXRlZCBjb21wb25lbnQgd2l0aCBpbm5lciB0cmFuc2l0aW9uXG4gICAgLy8gZG9lcyBub3QgdHJpZ2dlciBiZWNhdXNlIHRoZSBpbm5lciBub2RlJ3MgY3JlYXRlZCBob29rcyBhcmUgbm90IGNhbGxlZFxuICAgIC8vIGFnYWluLiBJdCdzIG5vdCBpZGVhbCB0byBpbnZvbHZlIG1vZHVsZS1zcGVjaWZpYyBsb2dpYyBpbiBoZXJlIGJ1dFxuICAgIC8vIHRoZXJlIGRvZXNuJ3Qgc2VlbSB0byBiZSBhIGJldHRlciB3YXkgdG8gZG8gaXQuXG4gICAgdmFyIGlubmVyTm9kZSA9IHZub2RlO1xuICAgIHdoaWxlIChpbm5lck5vZGUuY29tcG9uZW50SW5zdGFuY2UpIHtcbiAgICAgIGlubmVyTm9kZSA9IGlubmVyTm9kZS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGU7XG4gICAgICBpZiAoaXNEZWYoaSA9IGlubmVyTm9kZS5kYXRhKSAmJiBpc0RlZihpID0gaS50cmFuc2l0aW9uKSkge1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY2JzLmFjdGl2YXRlLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgY2JzLmFjdGl2YXRlW2ldKGVtcHR5Tm9kZSwgaW5uZXJOb2RlKTtcbiAgICAgICAgfVxuICAgICAgICBpbnNlcnRlZFZub2RlUXVldWUucHVzaChpbm5lck5vZGUpO1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH1cbiAgICAvLyB1bmxpa2UgYSBuZXdseSBjcmVhdGVkIGNvbXBvbmVudCxcbiAgICAvLyBhIHJlYWN0aXZhdGVkIGtlZXAtYWxpdmUgY29tcG9uZW50IGRvZXNuJ3QgaW5zZXJ0IGl0c2VsZlxuICAgIGluc2VydChwYXJlbnRFbG0sIHZub2RlLmVsbSwgcmVmRWxtKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGluc2VydCAocGFyZW50LCBlbG0sIHJlZiQkMSkge1xuICAgIGlmIChpc0RlZihwYXJlbnQpKSB7XG4gICAgICBpZiAoaXNEZWYocmVmJCQxKSkge1xuICAgICAgICBpZiAobm9kZU9wcy5wYXJlbnROb2RlKHJlZiQkMSkgPT09IHBhcmVudCkge1xuICAgICAgICAgIG5vZGVPcHMuaW5zZXJ0QmVmb3JlKHBhcmVudCwgZWxtLCByZWYkJDEpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2RlT3BzLmFwcGVuZENoaWxkKHBhcmVudCwgZWxtKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVDaGlsZHJlbiAodm5vZGUsIGNoaWxkcmVuLCBpbnNlcnRlZFZub2RlUXVldWUpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGNoZWNrRHVwbGljYXRlS2V5cyhjaGlsZHJlbik7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIGNyZWF0ZUVsbShjaGlsZHJlbltpXSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCB2bm9kZS5lbG0sIG51bGwsIHRydWUsIGNoaWxkcmVuLCBpKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzUHJpbWl0aXZlKHZub2RlLnRleHQpKSB7XG4gICAgICBub2RlT3BzLmFwcGVuZENoaWxkKHZub2RlLmVsbSwgbm9kZU9wcy5jcmVhdGVUZXh0Tm9kZShTdHJpbmcodm5vZGUudGV4dCkpKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBpc1BhdGNoYWJsZSAodm5vZGUpIHtcbiAgICB3aGlsZSAodm5vZGUuY29tcG9uZW50SW5zdGFuY2UpIHtcbiAgICAgIHZub2RlID0gdm5vZGUuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlO1xuICAgIH1cbiAgICByZXR1cm4gaXNEZWYodm5vZGUudGFnKVxuICB9XG5cbiAgZnVuY3Rpb24gaW52b2tlQ3JlYXRlSG9va3MgKHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUpIHtcbiAgICBmb3IgKHZhciBpJDEgPSAwOyBpJDEgPCBjYnMuY3JlYXRlLmxlbmd0aDsgKytpJDEpIHtcbiAgICAgIGNicy5jcmVhdGVbaSQxXShlbXB0eU5vZGUsIHZub2RlKTtcbiAgICB9XG4gICAgaSA9IHZub2RlLmRhdGEuaG9vazsgLy8gUmV1c2UgdmFyaWFibGVcbiAgICBpZiAoaXNEZWYoaSkpIHtcbiAgICAgIGlmIChpc0RlZihpLmNyZWF0ZSkpIHsgaS5jcmVhdGUoZW1wdHlOb2RlLCB2bm9kZSk7IH1cbiAgICAgIGlmIChpc0RlZihpLmluc2VydCkpIHsgaW5zZXJ0ZWRWbm9kZVF1ZXVlLnB1c2godm5vZGUpOyB9XG4gICAgfVxuICB9XG5cbiAgLy8gc2V0IHNjb3BlIGlkIGF0dHJpYnV0ZSBmb3Igc2NvcGVkIENTUy5cbiAgLy8gdGhpcyBpcyBpbXBsZW1lbnRlZCBhcyBhIHNwZWNpYWwgY2FzZSB0byBhdm9pZCB0aGUgb3ZlcmhlYWRcbiAgLy8gb2YgZ29pbmcgdGhyb3VnaCB0aGUgbm9ybWFsIGF0dHJpYnV0ZSBwYXRjaGluZyBwcm9jZXNzLlxuICBmdW5jdGlvbiBzZXRTY29wZSAodm5vZGUpIHtcbiAgICB2YXIgaTtcbiAgICBpZiAoaXNEZWYoaSA9IHZub2RlLmZuU2NvcGVJZCkpIHtcbiAgICAgIG5vZGVPcHMuc2V0U3R5bGVTY29wZSh2bm9kZS5lbG0sIGkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgYW5jZXN0b3IgPSB2bm9kZTtcbiAgICAgIHdoaWxlIChhbmNlc3Rvcikge1xuICAgICAgICBpZiAoaXNEZWYoaSA9IGFuY2VzdG9yLmNvbnRleHQpICYmIGlzRGVmKGkgPSBpLiRvcHRpb25zLl9zY29wZUlkKSkge1xuICAgICAgICAgIG5vZGVPcHMuc2V0U3R5bGVTY29wZSh2bm9kZS5lbG0sIGkpO1xuICAgICAgICB9XG4gICAgICAgIGFuY2VzdG9yID0gYW5jZXN0b3IucGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBmb3Igc2xvdCBjb250ZW50IHRoZXkgc2hvdWxkIGFsc28gZ2V0IHRoZSBzY29wZUlkIGZyb20gdGhlIGhvc3QgaW5zdGFuY2UuXG4gICAgaWYgKGlzRGVmKGkgPSBhY3RpdmVJbnN0YW5jZSkgJiZcbiAgICAgIGkgIT09IHZub2RlLmNvbnRleHQgJiZcbiAgICAgIGkgIT09IHZub2RlLmZuQ29udGV4dCAmJlxuICAgICAgaXNEZWYoaSA9IGkuJG9wdGlvbnMuX3Njb3BlSWQpXG4gICAgKSB7XG4gICAgICBub2RlT3BzLnNldFN0eWxlU2NvcGUodm5vZGUuZWxtLCBpKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBhZGRWbm9kZXMgKHBhcmVudEVsbSwgcmVmRWxtLCB2bm9kZXMsIHN0YXJ0SWR4LCBlbmRJZHgsIGluc2VydGVkVm5vZGVRdWV1ZSkge1xuICAgIGZvciAoOyBzdGFydElkeCA8PSBlbmRJZHg7ICsrc3RhcnRJZHgpIHtcbiAgICAgIGNyZWF0ZUVsbSh2bm9kZXNbc3RhcnRJZHhdLCBpbnNlcnRlZFZub2RlUXVldWUsIHBhcmVudEVsbSwgcmVmRWxtLCBmYWxzZSwgdm5vZGVzLCBzdGFydElkeCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaW52b2tlRGVzdHJveUhvb2sgKHZub2RlKSB7XG4gICAgdmFyIGksIGo7XG4gICAgdmFyIGRhdGEgPSB2bm9kZS5kYXRhO1xuICAgIGlmIChpc0RlZihkYXRhKSkge1xuICAgICAgaWYgKGlzRGVmKGkgPSBkYXRhLmhvb2spICYmIGlzRGVmKGkgPSBpLmRlc3Ryb3kpKSB7IGkodm5vZGUpOyB9XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgY2JzLmRlc3Ryb3kubGVuZ3RoOyArK2kpIHsgY2JzLmRlc3Ryb3lbaV0odm5vZGUpOyB9XG4gICAgfVxuICAgIGlmIChpc0RlZihpID0gdm5vZGUuY2hpbGRyZW4pKSB7XG4gICAgICBmb3IgKGogPSAwOyBqIDwgdm5vZGUuY2hpbGRyZW4ubGVuZ3RoOyArK2opIHtcbiAgICAgICAgaW52b2tlRGVzdHJveUhvb2sodm5vZGUuY2hpbGRyZW5bal0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbW92ZVZub2RlcyAodm5vZGVzLCBzdGFydElkeCwgZW5kSWR4KSB7XG4gICAgZm9yICg7IHN0YXJ0SWR4IDw9IGVuZElkeDsgKytzdGFydElkeCkge1xuICAgICAgdmFyIGNoID0gdm5vZGVzW3N0YXJ0SWR4XTtcbiAgICAgIGlmIChpc0RlZihjaCkpIHtcbiAgICAgICAgaWYgKGlzRGVmKGNoLnRhZykpIHtcbiAgICAgICAgICByZW1vdmVBbmRJbnZva2VSZW1vdmVIb29rKGNoKTtcbiAgICAgICAgICBpbnZva2VEZXN0cm95SG9vayhjaCk7XG4gICAgICAgIH0gZWxzZSB7IC8vIFRleHQgbm9kZVxuICAgICAgICAgIHJlbW92ZU5vZGUoY2guZWxtKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbW92ZUFuZEludm9rZVJlbW92ZUhvb2sgKHZub2RlLCBybSkge1xuICAgIGlmIChpc0RlZihybSkgfHwgaXNEZWYodm5vZGUuZGF0YSkpIHtcbiAgICAgIHZhciBpO1xuICAgICAgdmFyIGxpc3RlbmVycyA9IGNicy5yZW1vdmUubGVuZ3RoICsgMTtcbiAgICAgIGlmIChpc0RlZihybSkpIHtcbiAgICAgICAgLy8gd2UgaGF2ZSBhIHJlY3Vyc2l2ZWx5IHBhc3NlZCBkb3duIHJtIGNhbGxiYWNrXG4gICAgICAgIC8vIGluY3JlYXNlIHRoZSBsaXN0ZW5lcnMgY291bnRcbiAgICAgICAgcm0ubGlzdGVuZXJzICs9IGxpc3RlbmVycztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGRpcmVjdGx5IHJlbW92aW5nXG4gICAgICAgIHJtID0gY3JlYXRlUm1DYih2bm9kZS5lbG0sIGxpc3RlbmVycyk7XG4gICAgICB9XG4gICAgICAvLyByZWN1cnNpdmVseSBpbnZva2UgaG9va3Mgb24gY2hpbGQgY29tcG9uZW50IHJvb3Qgbm9kZVxuICAgICAgaWYgKGlzRGVmKGkgPSB2bm9kZS5jb21wb25lbnRJbnN0YW5jZSkgJiYgaXNEZWYoaSA9IGkuX3Zub2RlKSAmJiBpc0RlZihpLmRhdGEpKSB7XG4gICAgICAgIHJlbW92ZUFuZEludm9rZVJlbW92ZUhvb2soaSwgcm0pO1xuICAgICAgfVxuICAgICAgZm9yIChpID0gMDsgaSA8IGNicy5yZW1vdmUubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgY2JzLnJlbW92ZVtpXSh2bm9kZSwgcm0pO1xuICAgICAgfVxuICAgICAgaWYgKGlzRGVmKGkgPSB2bm9kZS5kYXRhLmhvb2spICYmIGlzRGVmKGkgPSBpLnJlbW92ZSkpIHtcbiAgICAgICAgaSh2bm9kZSwgcm0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcm0oKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmVtb3ZlTm9kZSh2bm9kZS5lbG0pO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHVwZGF0ZUNoaWxkcmVuIChwYXJlbnRFbG0sIG9sZENoLCBuZXdDaCwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCByZW1vdmVPbmx5KSB7XG4gICAgdmFyIG9sZFN0YXJ0SWR4ID0gMDtcbiAgICB2YXIgbmV3U3RhcnRJZHggPSAwO1xuICAgIHZhciBvbGRFbmRJZHggPSBvbGRDaC5sZW5ndGggLSAxO1xuICAgIHZhciBvbGRTdGFydFZub2RlID0gb2xkQ2hbMF07XG4gICAgdmFyIG9sZEVuZFZub2RlID0gb2xkQ2hbb2xkRW5kSWR4XTtcbiAgICB2YXIgbmV3RW5kSWR4ID0gbmV3Q2gubGVuZ3RoIC0gMTtcbiAgICB2YXIgbmV3U3RhcnRWbm9kZSA9IG5ld0NoWzBdO1xuICAgIHZhciBuZXdFbmRWbm9kZSA9IG5ld0NoW25ld0VuZElkeF07XG4gICAgdmFyIG9sZEtleVRvSWR4LCBpZHhJbk9sZCwgdm5vZGVUb01vdmUsIHJlZkVsbTtcblxuICAgIC8vIHJlbW92ZU9ubHkgaXMgYSBzcGVjaWFsIGZsYWcgdXNlZCBvbmx5IGJ5IDx0cmFuc2l0aW9uLWdyb3VwPlxuICAgIC8vIHRvIGVuc3VyZSByZW1vdmVkIGVsZW1lbnRzIHN0YXkgaW4gY29ycmVjdCByZWxhdGl2ZSBwb3NpdGlvbnNcbiAgICAvLyBkdXJpbmcgbGVhdmluZyB0cmFuc2l0aW9uc1xuICAgIHZhciBjYW5Nb3ZlID0gIXJlbW92ZU9ubHk7XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgY2hlY2tEdXBsaWNhdGVLZXlzKG5ld0NoKTtcbiAgICB9XG5cbiAgICB3aGlsZSAob2xkU3RhcnRJZHggPD0gb2xkRW5kSWR4ICYmIG5ld1N0YXJ0SWR4IDw9IG5ld0VuZElkeCkge1xuICAgICAgaWYgKGlzVW5kZWYob2xkU3RhcnRWbm9kZSkpIHtcbiAgICAgICAgb2xkU3RhcnRWbm9kZSA9IG9sZENoWysrb2xkU3RhcnRJZHhdOyAvLyBWbm9kZSBoYXMgYmVlbiBtb3ZlZCBsZWZ0XG4gICAgICB9IGVsc2UgaWYgKGlzVW5kZWYob2xkRW5kVm5vZGUpKSB7XG4gICAgICAgIG9sZEVuZFZub2RlID0gb2xkQ2hbLS1vbGRFbmRJZHhdO1xuICAgICAgfSBlbHNlIGlmIChzYW1lVm5vZGUob2xkU3RhcnRWbm9kZSwgbmV3U3RhcnRWbm9kZSkpIHtcbiAgICAgICAgcGF0Y2hWbm9kZShvbGRTdGFydFZub2RlLCBuZXdTdGFydFZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIG5ld0NoLCBuZXdTdGFydElkeCk7XG4gICAgICAgIG9sZFN0YXJ0Vm5vZGUgPSBvbGRDaFsrK29sZFN0YXJ0SWR4XTtcbiAgICAgICAgbmV3U3RhcnRWbm9kZSA9IG5ld0NoWysrbmV3U3RhcnRJZHhdO1xuICAgICAgfSBlbHNlIGlmIChzYW1lVm5vZGUob2xkRW5kVm5vZGUsIG5ld0VuZFZub2RlKSkge1xuICAgICAgICBwYXRjaFZub2RlKG9sZEVuZFZub2RlLCBuZXdFbmRWbm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCBuZXdDaCwgbmV3RW5kSWR4KTtcbiAgICAgICAgb2xkRW5kVm5vZGUgPSBvbGRDaFstLW9sZEVuZElkeF07XG4gICAgICAgIG5ld0VuZFZub2RlID0gbmV3Q2hbLS1uZXdFbmRJZHhdO1xuICAgICAgfSBlbHNlIGlmIChzYW1lVm5vZGUob2xkU3RhcnRWbm9kZSwgbmV3RW5kVm5vZGUpKSB7IC8vIFZub2RlIG1vdmVkIHJpZ2h0XG4gICAgICAgIHBhdGNoVm5vZGUob2xkU3RhcnRWbm9kZSwgbmV3RW5kVm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSwgbmV3Q2gsIG5ld0VuZElkeCk7XG4gICAgICAgIGNhbk1vdmUgJiYgbm9kZU9wcy5pbnNlcnRCZWZvcmUocGFyZW50RWxtLCBvbGRTdGFydFZub2RlLmVsbSwgbm9kZU9wcy5uZXh0U2libGluZyhvbGRFbmRWbm9kZS5lbG0pKTtcbiAgICAgICAgb2xkU3RhcnRWbm9kZSA9IG9sZENoWysrb2xkU3RhcnRJZHhdO1xuICAgICAgICBuZXdFbmRWbm9kZSA9IG5ld0NoWy0tbmV3RW5kSWR4XTtcbiAgICAgIH0gZWxzZSBpZiAoc2FtZVZub2RlKG9sZEVuZFZub2RlLCBuZXdTdGFydFZub2RlKSkgeyAvLyBWbm9kZSBtb3ZlZCBsZWZ0XG4gICAgICAgIHBhdGNoVm5vZGUob2xkRW5kVm5vZGUsIG5ld1N0YXJ0Vm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSwgbmV3Q2gsIG5ld1N0YXJ0SWR4KTtcbiAgICAgICAgY2FuTW92ZSAmJiBub2RlT3BzLmluc2VydEJlZm9yZShwYXJlbnRFbG0sIG9sZEVuZFZub2RlLmVsbSwgb2xkU3RhcnRWbm9kZS5lbG0pO1xuICAgICAgICBvbGRFbmRWbm9kZSA9IG9sZENoWy0tb2xkRW5kSWR4XTtcbiAgICAgICAgbmV3U3RhcnRWbm9kZSA9IG5ld0NoWysrbmV3U3RhcnRJZHhdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGlzVW5kZWYob2xkS2V5VG9JZHgpKSB7IG9sZEtleVRvSWR4ID0gY3JlYXRlS2V5VG9PbGRJZHgob2xkQ2gsIG9sZFN0YXJ0SWR4LCBvbGRFbmRJZHgpOyB9XG4gICAgICAgIGlkeEluT2xkID0gaXNEZWYobmV3U3RhcnRWbm9kZS5rZXkpXG4gICAgICAgICAgPyBvbGRLZXlUb0lkeFtuZXdTdGFydFZub2RlLmtleV1cbiAgICAgICAgICA6IGZpbmRJZHhJbk9sZChuZXdTdGFydFZub2RlLCBvbGRDaCwgb2xkU3RhcnRJZHgsIG9sZEVuZElkeCk7XG4gICAgICAgIGlmIChpc1VuZGVmKGlkeEluT2xkKSkgeyAvLyBOZXcgZWxlbWVudFxuICAgICAgICAgIGNyZWF0ZUVsbShuZXdTdGFydFZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIHBhcmVudEVsbSwgb2xkU3RhcnRWbm9kZS5lbG0sIGZhbHNlLCBuZXdDaCwgbmV3U3RhcnRJZHgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZub2RlVG9Nb3ZlID0gb2xkQ2hbaWR4SW5PbGRdO1xuICAgICAgICAgIGlmIChzYW1lVm5vZGUodm5vZGVUb01vdmUsIG5ld1N0YXJ0Vm5vZGUpKSB7XG4gICAgICAgICAgICBwYXRjaFZub2RlKHZub2RlVG9Nb3ZlLCBuZXdTdGFydFZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIG5ld0NoLCBuZXdTdGFydElkeCk7XG4gICAgICAgICAgICBvbGRDaFtpZHhJbk9sZF0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjYW5Nb3ZlICYmIG5vZGVPcHMuaW5zZXJ0QmVmb3JlKHBhcmVudEVsbSwgdm5vZGVUb01vdmUuZWxtLCBvbGRTdGFydFZub2RlLmVsbSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHNhbWUga2V5IGJ1dCBkaWZmZXJlbnQgZWxlbWVudC4gdHJlYXQgYXMgbmV3IGVsZW1lbnRcbiAgICAgICAgICAgIGNyZWF0ZUVsbShuZXdTdGFydFZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIHBhcmVudEVsbSwgb2xkU3RhcnRWbm9kZS5lbG0sIGZhbHNlLCBuZXdDaCwgbmV3U3RhcnRJZHgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBuZXdTdGFydFZub2RlID0gbmV3Q2hbKytuZXdTdGFydElkeF07XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChvbGRTdGFydElkeCA+IG9sZEVuZElkeCkge1xuICAgICAgcmVmRWxtID0gaXNVbmRlZihuZXdDaFtuZXdFbmRJZHggKyAxXSkgPyBudWxsIDogbmV3Q2hbbmV3RW5kSWR4ICsgMV0uZWxtO1xuICAgICAgYWRkVm5vZGVzKHBhcmVudEVsbSwgcmVmRWxtLCBuZXdDaCwgbmV3U3RhcnRJZHgsIG5ld0VuZElkeCwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKTtcbiAgICB9IGVsc2UgaWYgKG5ld1N0YXJ0SWR4ID4gbmV3RW5kSWR4KSB7XG4gICAgICByZW1vdmVWbm9kZXMob2xkQ2gsIG9sZFN0YXJ0SWR4LCBvbGRFbmRJZHgpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGNoZWNrRHVwbGljYXRlS2V5cyAoY2hpbGRyZW4pIHtcbiAgICB2YXIgc2VlbktleXMgPSB7fTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgdm5vZGUgPSBjaGlsZHJlbltpXTtcbiAgICAgIHZhciBrZXkgPSB2bm9kZS5rZXk7XG4gICAgICBpZiAoaXNEZWYoa2V5KSkge1xuICAgICAgICBpZiAoc2VlbktleXNba2V5XSkge1xuICAgICAgICAgIHdhcm4oXG4gICAgICAgICAgICAoXCJEdXBsaWNhdGUga2V5cyBkZXRlY3RlZDogJ1wiICsga2V5ICsgXCInLiBUaGlzIG1heSBjYXVzZSBhbiB1cGRhdGUgZXJyb3IuXCIpLFxuICAgICAgICAgICAgdm5vZGUuY29udGV4dFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2VlbktleXNba2V5XSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBmaW5kSWR4SW5PbGQgKG5vZGUsIG9sZENoLCBzdGFydCwgZW5kKSB7XG4gICAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICAgIHZhciBjID0gb2xkQ2hbaV07XG4gICAgICBpZiAoaXNEZWYoYykgJiYgc2FtZVZub2RlKG5vZGUsIGMpKSB7IHJldHVybiBpIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBwYXRjaFZub2RlIChcbiAgICBvbGRWbm9kZSxcbiAgICB2bm9kZSxcbiAgICBpbnNlcnRlZFZub2RlUXVldWUsXG4gICAgb3duZXJBcnJheSxcbiAgICBpbmRleCxcbiAgICByZW1vdmVPbmx5XG4gICkge1xuICAgIGlmIChvbGRWbm9kZSA9PT0gdm5vZGUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChpc0RlZih2bm9kZS5lbG0pICYmIGlzRGVmKG93bmVyQXJyYXkpKSB7XG4gICAgICAvLyBjbG9uZSByZXVzZWQgdm5vZGVcbiAgICAgIHZub2RlID0gb3duZXJBcnJheVtpbmRleF0gPSBjbG9uZVZOb2RlKHZub2RlKTtcbiAgICB9XG5cbiAgICB2YXIgZWxtID0gdm5vZGUuZWxtID0gb2xkVm5vZGUuZWxtO1xuXG4gICAgaWYgKGlzVHJ1ZShvbGRWbm9kZS5pc0FzeW5jUGxhY2Vob2xkZXIpKSB7XG4gICAgICBpZiAoaXNEZWYodm5vZGUuYXN5bmNGYWN0b3J5LnJlc29sdmVkKSkge1xuICAgICAgICBoeWRyYXRlKG9sZFZub2RlLmVsbSwgdm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2bm9kZS5pc0FzeW5jUGxhY2Vob2xkZXIgPSB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gcmV1c2UgZWxlbWVudCBmb3Igc3RhdGljIHRyZWVzLlxuICAgIC8vIG5vdGUgd2Ugb25seSBkbyB0aGlzIGlmIHRoZSB2bm9kZSBpcyBjbG9uZWQgLVxuICAgIC8vIGlmIHRoZSBuZXcgbm9kZSBpcyBub3QgY2xvbmVkIGl0IG1lYW5zIHRoZSByZW5kZXIgZnVuY3Rpb25zIGhhdmUgYmVlblxuICAgIC8vIHJlc2V0IGJ5IHRoZSBob3QtcmVsb2FkLWFwaSBhbmQgd2UgbmVlZCB0byBkbyBhIHByb3BlciByZS1yZW5kZXIuXG4gICAgaWYgKGlzVHJ1ZSh2bm9kZS5pc1N0YXRpYykgJiZcbiAgICAgIGlzVHJ1ZShvbGRWbm9kZS5pc1N0YXRpYykgJiZcbiAgICAgIHZub2RlLmtleSA9PT0gb2xkVm5vZGUua2V5ICYmXG4gICAgICAoaXNUcnVlKHZub2RlLmlzQ2xvbmVkKSB8fCBpc1RydWUodm5vZGUuaXNPbmNlKSlcbiAgICApIHtcbiAgICAgIHZub2RlLmNvbXBvbmVudEluc3RhbmNlID0gb2xkVm5vZGUuY29tcG9uZW50SW5zdGFuY2U7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB2YXIgaTtcbiAgICB2YXIgZGF0YSA9IHZub2RlLmRhdGE7XG4gICAgaWYgKGlzRGVmKGRhdGEpICYmIGlzRGVmKGkgPSBkYXRhLmhvb2spICYmIGlzRGVmKGkgPSBpLnByZXBhdGNoKSkge1xuICAgICAgaShvbGRWbm9kZSwgdm5vZGUpO1xuICAgIH1cblxuICAgIHZhciBvbGRDaCA9IG9sZFZub2RlLmNoaWxkcmVuO1xuICAgIHZhciBjaCA9IHZub2RlLmNoaWxkcmVuO1xuICAgIGlmIChpc0RlZihkYXRhKSAmJiBpc1BhdGNoYWJsZSh2bm9kZSkpIHtcbiAgICAgIGZvciAoaSA9IDA7IGkgPCBjYnMudXBkYXRlLmxlbmd0aDsgKytpKSB7IGNicy51cGRhdGVbaV0ob2xkVm5vZGUsIHZub2RlKTsgfVxuICAgICAgaWYgKGlzRGVmKGkgPSBkYXRhLmhvb2spICYmIGlzRGVmKGkgPSBpLnVwZGF0ZSkpIHsgaShvbGRWbm9kZSwgdm5vZGUpOyB9XG4gICAgfVxuICAgIGlmIChpc1VuZGVmKHZub2RlLnRleHQpKSB7XG4gICAgICBpZiAoaXNEZWYob2xkQ2gpICYmIGlzRGVmKGNoKSkge1xuICAgICAgICBpZiAob2xkQ2ggIT09IGNoKSB7IHVwZGF0ZUNoaWxkcmVuKGVsbSwgb2xkQ2gsIGNoLCBpbnNlcnRlZFZub2RlUXVldWUsIHJlbW92ZU9ubHkpOyB9XG4gICAgICB9IGVsc2UgaWYgKGlzRGVmKGNoKSkge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIGNoZWNrRHVwbGljYXRlS2V5cyhjaCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRGVmKG9sZFZub2RlLnRleHQpKSB7IG5vZGVPcHMuc2V0VGV4dENvbnRlbnQoZWxtLCAnJyk7IH1cbiAgICAgICAgYWRkVm5vZGVzKGVsbSwgbnVsbCwgY2gsIDAsIGNoLmxlbmd0aCAtIDEsIGluc2VydGVkVm5vZGVRdWV1ZSk7XG4gICAgICB9IGVsc2UgaWYgKGlzRGVmKG9sZENoKSkge1xuICAgICAgICByZW1vdmVWbm9kZXMob2xkQ2gsIDAsIG9sZENoLmxlbmd0aCAtIDEpO1xuICAgICAgfSBlbHNlIGlmIChpc0RlZihvbGRWbm9kZS50ZXh0KSkge1xuICAgICAgICBub2RlT3BzLnNldFRleHRDb250ZW50KGVsbSwgJycpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAob2xkVm5vZGUudGV4dCAhPT0gdm5vZGUudGV4dCkge1xuICAgICAgbm9kZU9wcy5zZXRUZXh0Q29udGVudChlbG0sIHZub2RlLnRleHQpO1xuICAgIH1cbiAgICBpZiAoaXNEZWYoZGF0YSkpIHtcbiAgICAgIGlmIChpc0RlZihpID0gZGF0YS5ob29rKSAmJiBpc0RlZihpID0gaS5wb3N0cGF0Y2gpKSB7IGkob2xkVm5vZGUsIHZub2RlKTsgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGludm9rZUluc2VydEhvb2sgKHZub2RlLCBxdWV1ZSwgaW5pdGlhbCkge1xuICAgIC8vIGRlbGF5IGluc2VydCBob29rcyBmb3IgY29tcG9uZW50IHJvb3Qgbm9kZXMsIGludm9rZSB0aGVtIGFmdGVyIHRoZVxuICAgIC8vIGVsZW1lbnQgaXMgcmVhbGx5IGluc2VydGVkXG4gICAgaWYgKGlzVHJ1ZShpbml0aWFsKSAmJiBpc0RlZih2bm9kZS5wYXJlbnQpKSB7XG4gICAgICB2bm9kZS5wYXJlbnQuZGF0YS5wZW5kaW5nSW5zZXJ0ID0gcXVldWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcXVldWUubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgcXVldWVbaV0uZGF0YS5ob29rLmluc2VydChxdWV1ZVtpXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIGh5ZHJhdGlvbkJhaWxlZCA9IGZhbHNlO1xuICAvLyBsaXN0IG9mIG1vZHVsZXMgdGhhdCBjYW4gc2tpcCBjcmVhdGUgaG9vayBkdXJpbmcgaHlkcmF0aW9uIGJlY2F1c2UgdGhleVxuICAvLyBhcmUgYWxyZWFkeSByZW5kZXJlZCBvbiB0aGUgY2xpZW50IG9yIGhhcyBubyBuZWVkIGZvciBpbml0aWFsaXphdGlvblxuICAvLyBOb3RlOiBzdHlsZSBpcyBleGNsdWRlZCBiZWNhdXNlIGl0IHJlbGllcyBvbiBpbml0aWFsIGNsb25lIGZvciBmdXR1cmVcbiAgLy8gZGVlcCB1cGRhdGVzICgjNzA2MykuXG4gIHZhciBpc1JlbmRlcmVkTW9kdWxlID0gbWFrZU1hcCgnYXR0cnMsY2xhc3Msc3RhdGljQ2xhc3Msc3RhdGljU3R5bGUsa2V5Jyk7XG5cbiAgLy8gTm90ZTogdGhpcyBpcyBhIGJyb3dzZXItb25seSBmdW5jdGlvbiBzbyB3ZSBjYW4gYXNzdW1lIGVsbXMgYXJlIERPTSBub2Rlcy5cbiAgZnVuY3Rpb24gaHlkcmF0ZSAoZWxtLCB2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCBpblZQcmUpIHtcbiAgICB2YXIgaTtcbiAgICB2YXIgdGFnID0gdm5vZGUudGFnO1xuICAgIHZhciBkYXRhID0gdm5vZGUuZGF0YTtcbiAgICB2YXIgY2hpbGRyZW4gPSB2bm9kZS5jaGlsZHJlbjtcbiAgICBpblZQcmUgPSBpblZQcmUgfHwgKGRhdGEgJiYgZGF0YS5wcmUpO1xuICAgIHZub2RlLmVsbSA9IGVsbTtcblxuICAgIGlmIChpc1RydWUodm5vZGUuaXNDb21tZW50KSAmJiBpc0RlZih2bm9kZS5hc3luY0ZhY3RvcnkpKSB7XG4gICAgICB2bm9kZS5pc0FzeW5jUGxhY2Vob2xkZXIgPSB0cnVlO1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgLy8gYXNzZXJ0IG5vZGUgbWF0Y2hcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKCFhc3NlcnROb2RlTWF0Y2goZWxtLCB2bm9kZSwgaW5WUHJlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGlzRGVmKGRhdGEpKSB7XG4gICAgICBpZiAoaXNEZWYoaSA9IGRhdGEuaG9vaykgJiYgaXNEZWYoaSA9IGkuaW5pdCkpIHsgaSh2bm9kZSwgdHJ1ZSAvKiBoeWRyYXRpbmcgKi8pOyB9XG4gICAgICBpZiAoaXNEZWYoaSA9IHZub2RlLmNvbXBvbmVudEluc3RhbmNlKSkge1xuICAgICAgICAvLyBjaGlsZCBjb21wb25lbnQuIGl0IHNob3VsZCBoYXZlIGh5ZHJhdGVkIGl0cyBvd24gdHJlZS5cbiAgICAgICAgaW5pdENvbXBvbmVudCh2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKTtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGlzRGVmKHRhZykpIHtcbiAgICAgIGlmIChpc0RlZihjaGlsZHJlbikpIHtcbiAgICAgICAgLy8gZW1wdHkgZWxlbWVudCwgYWxsb3cgY2xpZW50IHRvIHBpY2sgdXAgYW5kIHBvcHVsYXRlIGNoaWxkcmVuXG4gICAgICAgIGlmICghZWxtLmhhc0NoaWxkTm9kZXMoKSkge1xuICAgICAgICAgIGNyZWF0ZUNoaWxkcmVuKHZub2RlLCBjaGlsZHJlbiwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyB2LWh0bWwgYW5kIGRvbVByb3BzOiBpbm5lckhUTUxcbiAgICAgICAgICBpZiAoaXNEZWYoaSA9IGRhdGEpICYmIGlzRGVmKGkgPSBpLmRvbVByb3BzKSAmJiBpc0RlZihpID0gaS5pbm5lckhUTUwpKSB7XG4gICAgICAgICAgICBpZiAoaSAhPT0gZWxtLmlubmVySFRNTCkge1xuICAgICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiZcbiAgICAgICAgICAgICAgICB0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgICAgICAgICAhaHlkcmF0aW9uQmFpbGVkXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGh5ZHJhdGlvbkJhaWxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdQYXJlbnQ6ICcsIGVsbSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdzZXJ2ZXIgaW5uZXJIVE1MOiAnLCBpKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ2NsaWVudCBpbm5lckhUTUw6ICcsIGVsbS5pbm5lckhUTUwpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBpdGVyYXRlIGFuZCBjb21wYXJlIGNoaWxkcmVuIGxpc3RzXG4gICAgICAgICAgICB2YXIgY2hpbGRyZW5NYXRjaCA9IHRydWU7XG4gICAgICAgICAgICB2YXIgY2hpbGROb2RlID0gZWxtLmZpcnN0Q2hpbGQ7XG4gICAgICAgICAgICBmb3IgKHZhciBpJDEgPSAwOyBpJDEgPCBjaGlsZHJlbi5sZW5ndGg7IGkkMSsrKSB7XG4gICAgICAgICAgICAgIGlmICghY2hpbGROb2RlIHx8ICFoeWRyYXRlKGNoaWxkTm9kZSwgY2hpbGRyZW5baSQxXSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCBpblZQcmUpKSB7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW5NYXRjaCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY2hpbGROb2RlID0gY2hpbGROb2RlLm5leHRTaWJsaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gaWYgY2hpbGROb2RlIGlzIG5vdCBudWxsLCBpdCBtZWFucyB0aGUgYWN0dWFsIGNoaWxkTm9kZXMgbGlzdCBpc1xuICAgICAgICAgICAgLy8gbG9uZ2VyIHRoYW4gdGhlIHZpcnR1YWwgY2hpbGRyZW4gbGlzdC5cbiAgICAgICAgICAgIGlmICghY2hpbGRyZW5NYXRjaCB8fCBjaGlsZE5vZGUpIHtcbiAgICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmXG4gICAgICAgICAgICAgICAgdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICAgICAgICAgIWh5ZHJhdGlvbkJhaWxlZFxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBoeWRyYXRpb25CYWlsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignUGFyZW50OiAnLCBlbG0pO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignTWlzbWF0Y2hpbmcgY2hpbGROb2RlcyB2cy4gVk5vZGVzOiAnLCBlbG0uY2hpbGROb2RlcywgY2hpbGRyZW4pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGlzRGVmKGRhdGEpKSB7XG4gICAgICAgIHZhciBmdWxsSW52b2tlID0gZmFsc2U7XG4gICAgICAgIGZvciAodmFyIGtleSBpbiBkYXRhKSB7XG4gICAgICAgICAgaWYgKCFpc1JlbmRlcmVkTW9kdWxlKGtleSkpIHtcbiAgICAgICAgICAgIGZ1bGxJbnZva2UgPSB0cnVlO1xuICAgICAgICAgICAgaW52b2tlQ3JlYXRlSG9va3Modm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSk7XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWZ1bGxJbnZva2UgJiYgZGF0YVsnY2xhc3MnXSkge1xuICAgICAgICAgIC8vIGVuc3VyZSBjb2xsZWN0aW5nIGRlcHMgZm9yIGRlZXAgY2xhc3MgYmluZGluZ3MgZm9yIGZ1dHVyZSB1cGRhdGVzXG4gICAgICAgICAgdHJhdmVyc2UoZGF0YVsnY2xhc3MnXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGVsbS5kYXRhICE9PSB2bm9kZS50ZXh0KSB7XG4gICAgICBlbG0uZGF0YSA9IHZub2RlLnRleHQ7XG4gICAgfVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBmdW5jdGlvbiBhc3NlcnROb2RlTWF0Y2ggKG5vZGUsIHZub2RlLCBpblZQcmUpIHtcbiAgICBpZiAoaXNEZWYodm5vZGUudGFnKSkge1xuICAgICAgcmV0dXJuIHZub2RlLnRhZy5pbmRleE9mKCd2dWUtY29tcG9uZW50JykgPT09IDAgfHwgKFxuICAgICAgICAhaXNVbmtub3duRWxlbWVudCQkMSh2bm9kZSwgaW5WUHJlKSAmJlxuICAgICAgICB2bm9kZS50YWcudG9Mb3dlckNhc2UoKSA9PT0gKG5vZGUudGFnTmFtZSAmJiBub2RlLnRhZ05hbWUudG9Mb3dlckNhc2UoKSlcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5vZGUubm9kZVR5cGUgPT09ICh2bm9kZS5pc0NvbW1lbnQgPyA4IDogMylcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gcGF0Y2ggKG9sZFZub2RlLCB2bm9kZSwgaHlkcmF0aW5nLCByZW1vdmVPbmx5KSB7XG4gICAgaWYgKGlzVW5kZWYodm5vZGUpKSB7XG4gICAgICBpZiAoaXNEZWYob2xkVm5vZGUpKSB7IGludm9rZURlc3Ryb3lIb29rKG9sZFZub2RlKTsgfVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdmFyIGlzSW5pdGlhbFBhdGNoID0gZmFsc2U7XG4gICAgdmFyIGluc2VydGVkVm5vZGVRdWV1ZSA9IFtdO1xuXG4gICAgaWYgKGlzVW5kZWYob2xkVm5vZGUpKSB7XG4gICAgICAvLyBlbXB0eSBtb3VudCAobGlrZWx5IGFzIGNvbXBvbmVudCksIGNyZWF0ZSBuZXcgcm9vdCBlbGVtZW50XG4gICAgICBpc0luaXRpYWxQYXRjaCA9IHRydWU7XG4gICAgICBjcmVhdGVFbG0odm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBpc1JlYWxFbGVtZW50ID0gaXNEZWYob2xkVm5vZGUubm9kZVR5cGUpO1xuICAgICAgaWYgKCFpc1JlYWxFbGVtZW50ICYmIHNhbWVWbm9kZShvbGRWbm9kZSwgdm5vZGUpKSB7XG4gICAgICAgIC8vIHBhdGNoIGV4aXN0aW5nIHJvb3Qgbm9kZVxuICAgICAgICBwYXRjaFZub2RlKG9sZFZub2RlLCB2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCBudWxsLCBudWxsLCByZW1vdmVPbmx5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChpc1JlYWxFbGVtZW50KSB7XG4gICAgICAgICAgLy8gbW91bnRpbmcgdG8gYSByZWFsIGVsZW1lbnRcbiAgICAgICAgICAvLyBjaGVjayBpZiB0aGlzIGlzIHNlcnZlci1yZW5kZXJlZCBjb250ZW50IGFuZCBpZiB3ZSBjYW4gcGVyZm9ybVxuICAgICAgICAgIC8vIGEgc3VjY2Vzc2Z1bCBoeWRyYXRpb24uXG4gICAgICAgICAgaWYgKG9sZFZub2RlLm5vZGVUeXBlID09PSAxICYmIG9sZFZub2RlLmhhc0F0dHJpYnV0ZShTU1JfQVRUUikpIHtcbiAgICAgICAgICAgIG9sZFZub2RlLnJlbW92ZUF0dHJpYnV0ZShTU1JfQVRUUik7XG4gICAgICAgICAgICBoeWRyYXRpbmcgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNUcnVlKGh5ZHJhdGluZykpIHtcbiAgICAgICAgICAgIGlmIChoeWRyYXRlKG9sZFZub2RlLCB2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKSkge1xuICAgICAgICAgICAgICBpbnZva2VJbnNlcnRIb29rKHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIHRydWUpO1xuICAgICAgICAgICAgICByZXR1cm4gb2xkVm5vZGVcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICB3YXJuKFxuICAgICAgICAgICAgICAgICdUaGUgY2xpZW50LXNpZGUgcmVuZGVyZWQgdmlydHVhbCBET00gdHJlZSBpcyBub3QgbWF0Y2hpbmcgJyArXG4gICAgICAgICAgICAgICAgJ3NlcnZlci1yZW5kZXJlZCBjb250ZW50LiBUaGlzIGlzIGxpa2VseSBjYXVzZWQgYnkgaW5jb3JyZWN0ICcgK1xuICAgICAgICAgICAgICAgICdIVE1MIG1hcmt1cCwgZm9yIGV4YW1wbGUgbmVzdGluZyBibG9jay1sZXZlbCBlbGVtZW50cyBpbnNpZGUgJyArXG4gICAgICAgICAgICAgICAgJzxwPiwgb3IgbWlzc2luZyA8dGJvZHk+LiBCYWlsaW5nIGh5ZHJhdGlvbiBhbmQgcGVyZm9ybWluZyAnICtcbiAgICAgICAgICAgICAgICAnZnVsbCBjbGllbnQtc2lkZSByZW5kZXIuJ1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBlaXRoZXIgbm90IHNlcnZlci1yZW5kZXJlZCwgb3IgaHlkcmF0aW9uIGZhaWxlZC5cbiAgICAgICAgICAvLyBjcmVhdGUgYW4gZW1wdHkgbm9kZSBhbmQgcmVwbGFjZSBpdFxuICAgICAgICAgIG9sZFZub2RlID0gZW1wdHlOb2RlQXQob2xkVm5vZGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmVwbGFjaW5nIGV4aXN0aW5nIGVsZW1lbnRcbiAgICAgICAgdmFyIG9sZEVsbSA9IG9sZFZub2RlLmVsbTtcbiAgICAgICAgdmFyIHBhcmVudEVsbSA9IG5vZGVPcHMucGFyZW50Tm9kZShvbGRFbG0pO1xuXG4gICAgICAgIC8vIGNyZWF0ZSBuZXcgbm9kZVxuICAgICAgICBjcmVhdGVFbG0oXG4gICAgICAgICAgdm5vZGUsXG4gICAgICAgICAgaW5zZXJ0ZWRWbm9kZVF1ZXVlLFxuICAgICAgICAgIC8vIGV4dHJlbWVseSByYXJlIGVkZ2UgY2FzZTogZG8gbm90IGluc2VydCBpZiBvbGQgZWxlbWVudCBpcyBpbiBhXG4gICAgICAgICAgLy8gbGVhdmluZyB0cmFuc2l0aW9uLiBPbmx5IGhhcHBlbnMgd2hlbiBjb21iaW5pbmcgdHJhbnNpdGlvbiArXG4gICAgICAgICAgLy8ga2VlcC1hbGl2ZSArIEhPQ3MuICgjNDU5MClcbiAgICAgICAgICBvbGRFbG0uX2xlYXZlQ2IgPyBudWxsIDogcGFyZW50RWxtLFxuICAgICAgICAgIG5vZGVPcHMubmV4dFNpYmxpbmcob2xkRWxtKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIHVwZGF0ZSBwYXJlbnQgcGxhY2Vob2xkZXIgbm9kZSBlbGVtZW50LCByZWN1cnNpdmVseVxuICAgICAgICBpZiAoaXNEZWYodm5vZGUucGFyZW50KSkge1xuICAgICAgICAgIHZhciBhbmNlc3RvciA9IHZub2RlLnBhcmVudDtcbiAgICAgICAgICB2YXIgcGF0Y2hhYmxlID0gaXNQYXRjaGFibGUodm5vZGUpO1xuICAgICAgICAgIHdoaWxlIChhbmNlc3Rvcikge1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYnMuZGVzdHJveS5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgICBjYnMuZGVzdHJveVtpXShhbmNlc3Rvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhbmNlc3Rvci5lbG0gPSB2bm9kZS5lbG07XG4gICAgICAgICAgICBpZiAocGF0Y2hhYmxlKSB7XG4gICAgICAgICAgICAgIGZvciAodmFyIGkkMSA9IDA7IGkkMSA8IGNicy5jcmVhdGUubGVuZ3RoOyArK2kkMSkge1xuICAgICAgICAgICAgICAgIGNicy5jcmVhdGVbaSQxXShlbXB0eU5vZGUsIGFuY2VzdG9yKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvLyAjNjUxM1xuICAgICAgICAgICAgICAvLyBpbnZva2UgaW5zZXJ0IGhvb2tzIHRoYXQgbWF5IGhhdmUgYmVlbiBtZXJnZWQgYnkgY3JlYXRlIGhvb2tzLlxuICAgICAgICAgICAgICAvLyBlLmcuIGZvciBkaXJlY3RpdmVzIHRoYXQgdXNlcyB0aGUgXCJpbnNlcnRlZFwiIGhvb2suXG4gICAgICAgICAgICAgIHZhciBpbnNlcnQgPSBhbmNlc3Rvci5kYXRhLmhvb2suaW5zZXJ0O1xuICAgICAgICAgICAgICBpZiAoaW5zZXJ0Lm1lcmdlZCkge1xuICAgICAgICAgICAgICAgIC8vIHN0YXJ0IGF0IGluZGV4IDEgdG8gYXZvaWQgcmUtaW52b2tpbmcgY29tcG9uZW50IG1vdW50ZWQgaG9va1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGkkMiA9IDE7IGkkMiA8IGluc2VydC5mbnMubGVuZ3RoOyBpJDIrKykge1xuICAgICAgICAgICAgICAgICAgaW5zZXJ0LmZuc1tpJDJdKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZWdpc3RlclJlZihhbmNlc3Rvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhbmNlc3RvciA9IGFuY2VzdG9yLnBhcmVudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBkZXN0cm95IG9sZCBub2RlXG4gICAgICAgIGlmIChpc0RlZihwYXJlbnRFbG0pKSB7XG4gICAgICAgICAgcmVtb3ZlVm5vZGVzKFtvbGRWbm9kZV0sIDAsIDApO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRGVmKG9sZFZub2RlLnRhZykpIHtcbiAgICAgICAgICBpbnZva2VEZXN0cm95SG9vayhvbGRWbm9kZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbnZva2VJbnNlcnRIb29rKHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIGlzSW5pdGlhbFBhdGNoKTtcbiAgICByZXR1cm4gdm5vZGUuZWxtXG4gIH1cbn1cblxuLyogICovXG5cbnZhciBkaXJlY3RpdmVzID0ge1xuICBjcmVhdGU6IHVwZGF0ZURpcmVjdGl2ZXMsXG4gIHVwZGF0ZTogdXBkYXRlRGlyZWN0aXZlcyxcbiAgZGVzdHJveTogZnVuY3Rpb24gdW5iaW5kRGlyZWN0aXZlcyAodm5vZGUpIHtcbiAgICB1cGRhdGVEaXJlY3RpdmVzKHZub2RlLCBlbXB0eU5vZGUpO1xuICB9XG59O1xuXG5mdW5jdGlvbiB1cGRhdGVEaXJlY3RpdmVzIChvbGRWbm9kZSwgdm5vZGUpIHtcbiAgaWYgKG9sZFZub2RlLmRhdGEuZGlyZWN0aXZlcyB8fCB2bm9kZS5kYXRhLmRpcmVjdGl2ZXMpIHtcbiAgICBfdXBkYXRlKG9sZFZub2RlLCB2bm9kZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gX3VwZGF0ZSAob2xkVm5vZGUsIHZub2RlKSB7XG4gIHZhciBpc0NyZWF0ZSA9IG9sZFZub2RlID09PSBlbXB0eU5vZGU7XG4gIHZhciBpc0Rlc3Ryb3kgPSB2bm9kZSA9PT0gZW1wdHlOb2RlO1xuICB2YXIgb2xkRGlycyA9IG5vcm1hbGl6ZURpcmVjdGl2ZXMkMShvbGRWbm9kZS5kYXRhLmRpcmVjdGl2ZXMsIG9sZFZub2RlLmNvbnRleHQpO1xuICB2YXIgbmV3RGlycyA9IG5vcm1hbGl6ZURpcmVjdGl2ZXMkMSh2bm9kZS5kYXRhLmRpcmVjdGl2ZXMsIHZub2RlLmNvbnRleHQpO1xuXG4gIHZhciBkaXJzV2l0aEluc2VydCA9IFtdO1xuICB2YXIgZGlyc1dpdGhQb3N0cGF0Y2ggPSBbXTtcblxuICB2YXIga2V5LCBvbGREaXIsIGRpcjtcbiAgZm9yIChrZXkgaW4gbmV3RGlycykge1xuICAgIG9sZERpciA9IG9sZERpcnNba2V5XTtcbiAgICBkaXIgPSBuZXdEaXJzW2tleV07XG4gICAgaWYgKCFvbGREaXIpIHtcbiAgICAgIC8vIG5ldyBkaXJlY3RpdmUsIGJpbmRcbiAgICAgIGNhbGxIb29rJDEoZGlyLCAnYmluZCcsIHZub2RlLCBvbGRWbm9kZSk7XG4gICAgICBpZiAoZGlyLmRlZiAmJiBkaXIuZGVmLmluc2VydGVkKSB7XG4gICAgICAgIGRpcnNXaXRoSW5zZXJ0LnB1c2goZGlyKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZXhpc3RpbmcgZGlyZWN0aXZlLCB1cGRhdGVcbiAgICAgIGRpci5vbGRWYWx1ZSA9IG9sZERpci52YWx1ZTtcbiAgICAgIGRpci5vbGRBcmcgPSBvbGREaXIuYXJnO1xuICAgICAgY2FsbEhvb2skMShkaXIsICd1cGRhdGUnLCB2bm9kZSwgb2xkVm5vZGUpO1xuICAgICAgaWYgKGRpci5kZWYgJiYgZGlyLmRlZi5jb21wb25lbnRVcGRhdGVkKSB7XG4gICAgICAgIGRpcnNXaXRoUG9zdHBhdGNoLnB1c2goZGlyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoZGlyc1dpdGhJbnNlcnQubGVuZ3RoKSB7XG4gICAgdmFyIGNhbGxJbnNlcnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpcnNXaXRoSW5zZXJ0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNhbGxIb29rJDEoZGlyc1dpdGhJbnNlcnRbaV0sICdpbnNlcnRlZCcsIHZub2RlLCBvbGRWbm9kZSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBpZiAoaXNDcmVhdGUpIHtcbiAgICAgIG1lcmdlVk5vZGVIb29rKHZub2RlLCAnaW5zZXJ0JywgY2FsbEluc2VydCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhbGxJbnNlcnQoKTtcbiAgICB9XG4gIH1cblxuICBpZiAoZGlyc1dpdGhQb3N0cGF0Y2gubGVuZ3RoKSB7XG4gICAgbWVyZ2VWTm9kZUhvb2sodm5vZGUsICdwb3N0cGF0Y2gnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpcnNXaXRoUG9zdHBhdGNoLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNhbGxIb29rJDEoZGlyc1dpdGhQb3N0cGF0Y2hbaV0sICdjb21wb25lbnRVcGRhdGVkJywgdm5vZGUsIG9sZFZub2RlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGlmICghaXNDcmVhdGUpIHtcbiAgICBmb3IgKGtleSBpbiBvbGREaXJzKSB7XG4gICAgICBpZiAoIW5ld0RpcnNba2V5XSkge1xuICAgICAgICAvLyBubyBsb25nZXIgcHJlc2VudCwgdW5iaW5kXG4gICAgICAgIGNhbGxIb29rJDEob2xkRGlyc1trZXldLCAndW5iaW5kJywgb2xkVm5vZGUsIG9sZFZub2RlLCBpc0Rlc3Ryb3kpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG52YXIgZW1wdHlNb2RpZmllcnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuXG5mdW5jdGlvbiBub3JtYWxpemVEaXJlY3RpdmVzJDEgKFxuICBkaXJzLFxuICB2bVxuKSB7XG4gIHZhciByZXMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBpZiAoIWRpcnMpIHtcbiAgICAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbiAgICByZXR1cm4gcmVzXG4gIH1cbiAgdmFyIGksIGRpcjtcbiAgZm9yIChpID0gMDsgaSA8IGRpcnMubGVuZ3RoOyBpKyspIHtcbiAgICBkaXIgPSBkaXJzW2ldO1xuICAgIGlmICghZGlyLm1vZGlmaWVycykge1xuICAgICAgLy8gJGZsb3ctZGlzYWJsZS1saW5lXG4gICAgICBkaXIubW9kaWZpZXJzID0gZW1wdHlNb2RpZmllcnM7XG4gICAgfVxuICAgIHJlc1tnZXRSYXdEaXJOYW1lKGRpcildID0gZGlyO1xuICAgIGRpci5kZWYgPSByZXNvbHZlQXNzZXQodm0uJG9wdGlvbnMsICdkaXJlY3RpdmVzJywgZGlyLm5hbWUsIHRydWUpO1xuICB9XG4gIC8vICRmbG93LWRpc2FibGUtbGluZVxuICByZXR1cm4gcmVzXG59XG5cbmZ1bmN0aW9uIGdldFJhd0Rpck5hbWUgKGRpcikge1xuICByZXR1cm4gZGlyLnJhd05hbWUgfHwgKChkaXIubmFtZSkgKyBcIi5cIiArIChPYmplY3Qua2V5cyhkaXIubW9kaWZpZXJzIHx8IHt9KS5qb2luKCcuJykpKVxufVxuXG5mdW5jdGlvbiBjYWxsSG9vayQxIChkaXIsIGhvb2ssIHZub2RlLCBvbGRWbm9kZSwgaXNEZXN0cm95KSB7XG4gIHZhciBmbiA9IGRpci5kZWYgJiYgZGlyLmRlZltob29rXTtcbiAgaWYgKGZuKSB7XG4gICAgdHJ5IHtcbiAgICAgIGZuKHZub2RlLmVsbSwgZGlyLCB2bm9kZSwgb2xkVm5vZGUsIGlzRGVzdHJveSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaGFuZGxlRXJyb3IoZSwgdm5vZGUuY29udGV4dCwgKFwiZGlyZWN0aXZlIFwiICsgKGRpci5uYW1lKSArIFwiIFwiICsgaG9vayArIFwiIGhvb2tcIikpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgYmFzZU1vZHVsZXMgPSBbXG4gIHJlZixcbiAgZGlyZWN0aXZlc1xuXTtcblxuLyogICovXG5cbmZ1bmN0aW9uIHVwZGF0ZUF0dHJzIChvbGRWbm9kZSwgdm5vZGUpIHtcbiAgdmFyIG9wdHMgPSB2bm9kZS5jb21wb25lbnRPcHRpb25zO1xuICBpZiAoaXNEZWYob3B0cykgJiYgb3B0cy5DdG9yLm9wdGlvbnMuaW5oZXJpdEF0dHJzID09PSBmYWxzZSkge1xuICAgIHJldHVyblxuICB9XG4gIGlmIChpc1VuZGVmKG9sZFZub2RlLmRhdGEuYXR0cnMpICYmIGlzVW5kZWYodm5vZGUuZGF0YS5hdHRycykpIHtcbiAgICByZXR1cm5cbiAgfVxuICB2YXIga2V5LCBjdXIsIG9sZDtcbiAgdmFyIGVsbSA9IHZub2RlLmVsbTtcbiAgdmFyIG9sZEF0dHJzID0gb2xkVm5vZGUuZGF0YS5hdHRycyB8fCB7fTtcbiAgdmFyIGF0dHJzID0gdm5vZGUuZGF0YS5hdHRycyB8fCB7fTtcbiAgLy8gY2xvbmUgb2JzZXJ2ZWQgb2JqZWN0cywgYXMgdGhlIHVzZXIgcHJvYmFibHkgd2FudHMgdG8gbXV0YXRlIGl0XG4gIGlmIChpc0RlZihhdHRycy5fX29iX18pKSB7XG4gICAgYXR0cnMgPSB2bm9kZS5kYXRhLmF0dHJzID0gZXh0ZW5kKHt9LCBhdHRycyk7XG4gIH1cblxuICBmb3IgKGtleSBpbiBhdHRycykge1xuICAgIGN1ciA9IGF0dHJzW2tleV07XG4gICAgb2xkID0gb2xkQXR0cnNba2V5XTtcbiAgICBpZiAob2xkICE9PSBjdXIpIHtcbiAgICAgIHNldEF0dHIoZWxtLCBrZXksIGN1ciwgdm5vZGUuZGF0YS5wcmUpO1xuICAgIH1cbiAgfVxuICAvLyAjNDM5MTogaW4gSUU5LCBzZXR0aW5nIHR5cGUgY2FuIHJlc2V0IHZhbHVlIGZvciBpbnB1dFt0eXBlPXJhZGlvXVxuICAvLyAjNjY2NjogSUUvRWRnZSBmb3JjZXMgcHJvZ3Jlc3MgdmFsdWUgZG93biB0byAxIGJlZm9yZSBzZXR0aW5nIGEgbWF4XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoKGlzSUUgfHwgaXNFZGdlKSAmJiBhdHRycy52YWx1ZSAhPT0gb2xkQXR0cnMudmFsdWUpIHtcbiAgICBzZXRBdHRyKGVsbSwgJ3ZhbHVlJywgYXR0cnMudmFsdWUpO1xuICB9XG4gIGZvciAoa2V5IGluIG9sZEF0dHJzKSB7XG4gICAgaWYgKGlzVW5kZWYoYXR0cnNba2V5XSkpIHtcbiAgICAgIGlmIChpc1hsaW5rKGtleSkpIHtcbiAgICAgICAgZWxtLnJlbW92ZUF0dHJpYnV0ZU5TKHhsaW5rTlMsIGdldFhsaW5rUHJvcChrZXkpKTtcbiAgICAgIH0gZWxzZSBpZiAoIWlzRW51bWVyYXRlZEF0dHIoa2V5KSkge1xuICAgICAgICBlbG0ucmVtb3ZlQXR0cmlidXRlKGtleSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHNldEF0dHIgKGVsLCBrZXksIHZhbHVlLCBpc0luUHJlKSB7XG4gIGlmIChpc0luUHJlIHx8IGVsLnRhZ05hbWUuaW5kZXhPZignLScpID4gLTEpIHtcbiAgICBiYXNlU2V0QXR0cihlbCwga2V5LCB2YWx1ZSk7XG4gIH0gZWxzZSBpZiAoaXNCb29sZWFuQXR0cihrZXkpKSB7XG4gICAgLy8gc2V0IGF0dHJpYnV0ZSBmb3IgYmxhbmsgdmFsdWVcbiAgICAvLyBlLmcuIDxvcHRpb24gZGlzYWJsZWQ+U2VsZWN0IG9uZTwvb3B0aW9uPlxuICAgIGlmIChpc0ZhbHN5QXR0clZhbHVlKHZhbHVlKSkge1xuICAgICAgZWwucmVtb3ZlQXR0cmlidXRlKGtleSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHRlY2huaWNhbGx5IGFsbG93ZnVsbHNjcmVlbiBpcyBhIGJvb2xlYW4gYXR0cmlidXRlIGZvciA8aWZyYW1lPixcbiAgICAgIC8vIGJ1dCBGbGFzaCBleHBlY3RzIGEgdmFsdWUgb2YgXCJ0cnVlXCIgd2hlbiB1c2VkIG9uIDxlbWJlZD4gdGFnXG4gICAgICB2YWx1ZSA9IGtleSA9PT0gJ2FsbG93ZnVsbHNjcmVlbicgJiYgZWwudGFnTmFtZSA9PT0gJ0VNQkVEJ1xuICAgICAgICA/ICd0cnVlJ1xuICAgICAgICA6IGtleTtcbiAgICAgIGVsLnNldEF0dHJpYnV0ZShrZXksIHZhbHVlKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNFbnVtZXJhdGVkQXR0cihrZXkpKSB7XG4gICAgZWwuc2V0QXR0cmlidXRlKGtleSwgY29udmVydEVudW1lcmF0ZWRWYWx1ZShrZXksIHZhbHVlKSk7XG4gIH0gZWxzZSBpZiAoaXNYbGluayhrZXkpKSB7XG4gICAgaWYgKGlzRmFsc3lBdHRyVmFsdWUodmFsdWUpKSB7XG4gICAgICBlbC5yZW1vdmVBdHRyaWJ1dGVOUyh4bGlua05TLCBnZXRYbGlua1Byb3Aoa2V5KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsLnNldEF0dHJpYnV0ZU5TKHhsaW5rTlMsIGtleSwgdmFsdWUpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBiYXNlU2V0QXR0cihlbCwga2V5LCB2YWx1ZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYmFzZVNldEF0dHIgKGVsLCBrZXksIHZhbHVlKSB7XG4gIGlmIChpc0ZhbHN5QXR0clZhbHVlKHZhbHVlKSkge1xuICAgIGVsLnJlbW92ZUF0dHJpYnV0ZShrZXkpO1xuICB9IGVsc2Uge1xuICAgIC8vICM3MTM4OiBJRTEwICYgMTEgZmlyZXMgaW5wdXQgZXZlbnQgd2hlbiBzZXR0aW5nIHBsYWNlaG9sZGVyIG9uXG4gICAgLy8gPHRleHRhcmVhPi4uLiBibG9jayB0aGUgZmlyc3QgaW5wdXQgZXZlbnQgYW5kIHJlbW92ZSB0aGUgYmxvY2tlclxuICAgIC8vIGltbWVkaWF0ZWx5LlxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmIChcbiAgICAgIGlzSUUgJiYgIWlzSUU5ICYmXG4gICAgICBlbC50YWdOYW1lID09PSAnVEVYVEFSRUEnICYmXG4gICAgICBrZXkgPT09ICdwbGFjZWhvbGRlcicgJiYgdmFsdWUgIT09ICcnICYmICFlbC5fX2llcGhcbiAgICApIHtcbiAgICAgIHZhciBibG9ja2VyID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBibG9ja2VyKTtcbiAgICAgIH07XG4gICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGJsb2NrZXIpO1xuICAgICAgLy8gJGZsb3ctZGlzYWJsZS1saW5lXG4gICAgICBlbC5fX2llcGggPSB0cnVlOyAvKiBJRSBwbGFjZWhvbGRlciBwYXRjaGVkICovXG4gICAgfVxuICAgIGVsLnNldEF0dHJpYnV0ZShrZXksIHZhbHVlKTtcbiAgfVxufVxuXG52YXIgYXR0cnMgPSB7XG4gIGNyZWF0ZTogdXBkYXRlQXR0cnMsXG4gIHVwZGF0ZTogdXBkYXRlQXR0cnNcbn07XG5cbi8qICAqL1xuXG5mdW5jdGlvbiB1cGRhdGVDbGFzcyAob2xkVm5vZGUsIHZub2RlKSB7XG4gIHZhciBlbCA9IHZub2RlLmVsbTtcbiAgdmFyIGRhdGEgPSB2bm9kZS5kYXRhO1xuICB2YXIgb2xkRGF0YSA9IG9sZFZub2RlLmRhdGE7XG4gIGlmIChcbiAgICBpc1VuZGVmKGRhdGEuc3RhdGljQ2xhc3MpICYmXG4gICAgaXNVbmRlZihkYXRhLmNsYXNzKSAmJiAoXG4gICAgICBpc1VuZGVmKG9sZERhdGEpIHx8IChcbiAgICAgICAgaXNVbmRlZihvbGREYXRhLnN0YXRpY0NsYXNzKSAmJlxuICAgICAgICBpc1VuZGVmKG9sZERhdGEuY2xhc3MpXG4gICAgICApXG4gICAgKVxuICApIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIHZhciBjbHMgPSBnZW5DbGFzc0ZvclZub2RlKHZub2RlKTtcblxuICAvLyBoYW5kbGUgdHJhbnNpdGlvbiBjbGFzc2VzXG4gIHZhciB0cmFuc2l0aW9uQ2xhc3MgPSBlbC5fdHJhbnNpdGlvbkNsYXNzZXM7XG4gIGlmIChpc0RlZih0cmFuc2l0aW9uQ2xhc3MpKSB7XG4gICAgY2xzID0gY29uY2F0KGNscywgc3RyaW5naWZ5Q2xhc3ModHJhbnNpdGlvbkNsYXNzKSk7XG4gIH1cblxuICAvLyBzZXQgdGhlIGNsYXNzXG4gIGlmIChjbHMgIT09IGVsLl9wcmV2Q2xhc3MpIHtcbiAgICBlbC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgY2xzKTtcbiAgICBlbC5fcHJldkNsYXNzID0gY2xzO1xuICB9XG59XG5cbnZhciBrbGFzcyA9IHtcbiAgY3JlYXRlOiB1cGRhdGVDbGFzcyxcbiAgdXBkYXRlOiB1cGRhdGVDbGFzc1xufTtcblxuLyogICovXG5cbi8qICAqL1xuXG4vKiAgKi9cblxuLyogICovXG5cbi8vIGluIHNvbWUgY2FzZXMsIHRoZSBldmVudCB1c2VkIGhhcyB0byBiZSBkZXRlcm1pbmVkIGF0IHJ1bnRpbWVcbi8vIHNvIHdlIHVzZWQgc29tZSByZXNlcnZlZCB0b2tlbnMgZHVyaW5nIGNvbXBpbGUuXG52YXIgUkFOR0VfVE9LRU4gPSAnX19yJztcbnZhciBDSEVDS0JPWF9SQURJT19UT0tFTiA9ICdfX2MnO1xuXG4vKiAgKi9cblxuLy8gbm9ybWFsaXplIHYtbW9kZWwgZXZlbnQgdG9rZW5zIHRoYXQgY2FuIG9ubHkgYmUgZGV0ZXJtaW5lZCBhdCBydW50aW1lLlxuLy8gaXQncyBpbXBvcnRhbnQgdG8gcGxhY2UgdGhlIGV2ZW50IGFzIHRoZSBmaXJzdCBpbiB0aGUgYXJyYXkgYmVjYXVzZVxuLy8gdGhlIHdob2xlIHBvaW50IGlzIGVuc3VyaW5nIHRoZSB2LW1vZGVsIGNhbGxiYWNrIGdldHMgY2FsbGVkIGJlZm9yZVxuLy8gdXNlci1hdHRhY2hlZCBoYW5kbGVycy5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUV2ZW50cyAob24pIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChpc0RlZihvbltSQU5HRV9UT0tFTl0pKSB7XG4gICAgLy8gSUUgaW5wdXRbdHlwZT1yYW5nZV0gb25seSBzdXBwb3J0cyBgY2hhbmdlYCBldmVudFxuICAgIHZhciBldmVudCA9IGlzSUUgPyAnY2hhbmdlJyA6ICdpbnB1dCc7XG4gICAgb25bZXZlbnRdID0gW10uY29uY2F0KG9uW1JBTkdFX1RPS0VOXSwgb25bZXZlbnRdIHx8IFtdKTtcbiAgICBkZWxldGUgb25bUkFOR0VfVE9LRU5dO1xuICB9XG4gIC8vIFRoaXMgd2FzIG9yaWdpbmFsbHkgaW50ZW5kZWQgdG8gZml4ICM0NTIxIGJ1dCBubyBsb25nZXIgbmVjZXNzYXJ5XG4gIC8vIGFmdGVyIDIuNS4gS2VlcGluZyBpdCBmb3IgYmFja3dhcmRzIGNvbXBhdCB3aXRoIGdlbmVyYXRlZCBjb2RlIGZyb20gPCAyLjRcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChpc0RlZihvbltDSEVDS0JPWF9SQURJT19UT0tFTl0pKSB7XG4gICAgb24uY2hhbmdlID0gW10uY29uY2F0KG9uW0NIRUNLQk9YX1JBRElPX1RPS0VOXSwgb24uY2hhbmdlIHx8IFtdKTtcbiAgICBkZWxldGUgb25bQ0hFQ0tCT1hfUkFESU9fVE9LRU5dO1xuICB9XG59XG5cbnZhciB0YXJnZXQkMTtcblxuZnVuY3Rpb24gY3JlYXRlT25jZUhhbmRsZXIkMSAoZXZlbnQsIGhhbmRsZXIsIGNhcHR1cmUpIHtcbiAgdmFyIF90YXJnZXQgPSB0YXJnZXQkMTsgLy8gc2F2ZSBjdXJyZW50IHRhcmdldCBlbGVtZW50IGluIGNsb3N1cmVcbiAgcmV0dXJuIGZ1bmN0aW9uIG9uY2VIYW5kbGVyICgpIHtcbiAgICB2YXIgcmVzID0gaGFuZGxlci5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgIGlmIChyZXMgIT09IG51bGwpIHtcbiAgICAgIHJlbW92ZSQyKGV2ZW50LCBvbmNlSGFuZGxlciwgY2FwdHVyZSwgX3RhcmdldCk7XG4gICAgfVxuICB9XG59XG5cbi8vICM5NDQ2OiBGaXJlZm94IDw9IDUzIChpbiBwYXJ0aWN1bGFyLCBFU1IgNTIpIGhhcyBpbmNvcnJlY3QgRXZlbnQudGltZVN0YW1wXG4vLyBpbXBsZW1lbnRhdGlvbiBhbmQgZG9lcyBub3QgZmlyZSBtaWNyb3Rhc2tzIGluIGJldHdlZW4gZXZlbnQgcHJvcGFnYXRpb24sIHNvXG4vLyBzYWZlIHRvIGV4Y2x1ZGUuXG52YXIgdXNlTWljcm90YXNrRml4ID0gaXNVc2luZ01pY3JvVGFzayAmJiAhKGlzRkYgJiYgTnVtYmVyKGlzRkZbMV0pIDw9IDUzKTtcblxuZnVuY3Rpb24gYWRkJDEgKFxuICBuYW1lLFxuICBoYW5kbGVyLFxuICBjYXB0dXJlLFxuICBwYXNzaXZlXG4pIHtcbiAgLy8gYXN5bmMgZWRnZSBjYXNlICM2NTY2OiBpbm5lciBjbGljayBldmVudCB0cmlnZ2VycyBwYXRjaCwgZXZlbnQgaGFuZGxlclxuICAvLyBhdHRhY2hlZCB0byBvdXRlciBlbGVtZW50IGR1cmluZyBwYXRjaCwgYW5kIHRyaWdnZXJlZCBhZ2Fpbi4gVGhpc1xuICAvLyBoYXBwZW5zIGJlY2F1c2UgYnJvd3NlcnMgZmlyZSBtaWNyb3Rhc2sgdGlja3MgYmV0d2VlbiBldmVudCBwcm9wYWdhdGlvbi5cbiAgLy8gdGhlIHNvbHV0aW9uIGlzIHNpbXBsZTogd2Ugc2F2ZSB0aGUgdGltZXN0YW1wIHdoZW4gYSBoYW5kbGVyIGlzIGF0dGFjaGVkLFxuICAvLyBhbmQgdGhlIGhhbmRsZXIgd291bGQgb25seSBmaXJlIGlmIHRoZSBldmVudCBwYXNzZWQgdG8gaXQgd2FzIGZpcmVkXG4gIC8vIEFGVEVSIGl0IHdhcyBhdHRhY2hlZC5cbiAgaWYgKHVzZU1pY3JvdGFza0ZpeCkge1xuICAgIHZhciBhdHRhY2hlZFRpbWVzdGFtcCA9IGN1cnJlbnRGbHVzaFRpbWVzdGFtcDtcbiAgICB2YXIgb3JpZ2luYWwgPSBoYW5kbGVyO1xuICAgIGhhbmRsZXIgPSBvcmlnaW5hbC5fd3JhcHBlciA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICBpZiAoXG4gICAgICAgIC8vIG5vIGJ1YmJsaW5nLCBzaG91bGQgYWx3YXlzIGZpcmUuXG4gICAgICAgIC8vIHRoaXMgaXMganVzdCBhIHNhZmV0eSBuZXQgaW4gY2FzZSBldmVudC50aW1lU3RhbXAgaXMgdW5yZWxpYWJsZSBpblxuICAgICAgICAvLyBjZXJ0YWluIHdlaXJkIGVudmlyb25tZW50cy4uLlxuICAgICAgICBlLnRhcmdldCA9PT0gZS5jdXJyZW50VGFyZ2V0IHx8XG4gICAgICAgIC8vIGV2ZW50IGlzIGZpcmVkIGFmdGVyIGhhbmRsZXIgYXR0YWNobWVudFxuICAgICAgICBlLnRpbWVTdGFtcCA+PSBhdHRhY2hlZFRpbWVzdGFtcCB8fFxuICAgICAgICAvLyBiYWlsIGZvciBlbnZpcm9ubWVudHMgdGhhdCBoYXZlIGJ1Z2d5IGV2ZW50LnRpbWVTdGFtcCBpbXBsZW1lbnRhdGlvbnNcbiAgICAgICAgLy8gIzk0NjIgaU9TIDkgYnVnOiBldmVudC50aW1lU3RhbXAgaXMgMCBhZnRlciBoaXN0b3J5LnB1c2hTdGF0ZVxuICAgICAgICAvLyAjOTY4MSBRdFdlYkVuZ2luZSBldmVudC50aW1lU3RhbXAgaXMgbmVnYXRpdmUgdmFsdWVcbiAgICAgICAgZS50aW1lU3RhbXAgPD0gMCB8fFxuICAgICAgICAvLyAjOTQ0OCBiYWlsIGlmIGV2ZW50IGlzIGZpcmVkIGluIGFub3RoZXIgZG9jdW1lbnQgaW4gYSBtdWx0aS1wYWdlXG4gICAgICAgIC8vIGVsZWN0cm9uL253LmpzIGFwcCwgc2luY2UgZXZlbnQudGltZVN0YW1wIHdpbGwgYmUgdXNpbmcgYSBkaWZmZXJlbnRcbiAgICAgICAgLy8gc3RhcnRpbmcgcmVmZXJlbmNlXG4gICAgICAgIGUudGFyZ2V0Lm93bmVyRG9jdW1lbnQgIT09IGRvY3VtZW50XG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsLmFwcGx5KHRoaXMsIGFyZ3VtZW50cylcbiAgICAgIH1cbiAgICB9O1xuICB9XG4gIHRhcmdldCQxLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgbmFtZSxcbiAgICBoYW5kbGVyLFxuICAgIHN1cHBvcnRzUGFzc2l2ZVxuICAgICAgPyB7IGNhcHR1cmU6IGNhcHR1cmUsIHBhc3NpdmU6IHBhc3NpdmUgfVxuICAgICAgOiBjYXB0dXJlXG4gICk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZSQyIChcbiAgbmFtZSxcbiAgaGFuZGxlcixcbiAgY2FwdHVyZSxcbiAgX3RhcmdldFxuKSB7XG4gIChfdGFyZ2V0IHx8IHRhcmdldCQxKS5yZW1vdmVFdmVudExpc3RlbmVyKFxuICAgIG5hbWUsXG4gICAgaGFuZGxlci5fd3JhcHBlciB8fCBoYW5kbGVyLFxuICAgIGNhcHR1cmVcbiAgKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlRE9NTGlzdGVuZXJzIChvbGRWbm9kZSwgdm5vZGUpIHtcbiAgaWYgKGlzVW5kZWYob2xkVm5vZGUuZGF0YS5vbikgJiYgaXNVbmRlZih2bm9kZS5kYXRhLm9uKSkge1xuICAgIHJldHVyblxuICB9XG4gIHZhciBvbiA9IHZub2RlLmRhdGEub24gfHwge307XG4gIHZhciBvbGRPbiA9IG9sZFZub2RlLmRhdGEub24gfHwge307XG4gIHRhcmdldCQxID0gdm5vZGUuZWxtO1xuICBub3JtYWxpemVFdmVudHMob24pO1xuICB1cGRhdGVMaXN0ZW5lcnMob24sIG9sZE9uLCBhZGQkMSwgcmVtb3ZlJDIsIGNyZWF0ZU9uY2VIYW5kbGVyJDEsIHZub2RlLmNvbnRleHQpO1xuICB0YXJnZXQkMSA9IHVuZGVmaW5lZDtcbn1cblxudmFyIGV2ZW50cyA9IHtcbiAgY3JlYXRlOiB1cGRhdGVET01MaXN0ZW5lcnMsXG4gIHVwZGF0ZTogdXBkYXRlRE9NTGlzdGVuZXJzXG59O1xuXG4vKiAgKi9cblxudmFyIHN2Z0NvbnRhaW5lcjtcblxuZnVuY3Rpb24gdXBkYXRlRE9NUHJvcHMgKG9sZFZub2RlLCB2bm9kZSkge1xuICBpZiAoaXNVbmRlZihvbGRWbm9kZS5kYXRhLmRvbVByb3BzKSAmJiBpc1VuZGVmKHZub2RlLmRhdGEuZG9tUHJvcHMpKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgdmFyIGtleSwgY3VyO1xuICB2YXIgZWxtID0gdm5vZGUuZWxtO1xuICB2YXIgb2xkUHJvcHMgPSBvbGRWbm9kZS5kYXRhLmRvbVByb3BzIHx8IHt9O1xuICB2YXIgcHJvcHMgPSB2bm9kZS5kYXRhLmRvbVByb3BzIHx8IHt9O1xuICAvLyBjbG9uZSBvYnNlcnZlZCBvYmplY3RzLCBhcyB0aGUgdXNlciBwcm9iYWJseSB3YW50cyB0byBtdXRhdGUgaXRcbiAgaWYgKGlzRGVmKHByb3BzLl9fb2JfXykpIHtcbiAgICBwcm9wcyA9IHZub2RlLmRhdGEuZG9tUHJvcHMgPSBleHRlbmQoe30sIHByb3BzKTtcbiAgfVxuXG4gIGZvciAoa2V5IGluIG9sZFByb3BzKSB7XG4gICAgaWYgKCEoa2V5IGluIHByb3BzKSkge1xuICAgICAgZWxtW2tleV0gPSAnJztcbiAgICB9XG4gIH1cblxuICBmb3IgKGtleSBpbiBwcm9wcykge1xuICAgIGN1ciA9IHByb3BzW2tleV07XG4gICAgLy8gaWdub3JlIGNoaWxkcmVuIGlmIHRoZSBub2RlIGhhcyB0ZXh0Q29udGVudCBvciBpbm5lckhUTUwsXG4gICAgLy8gYXMgdGhlc2Ugd2lsbCB0aHJvdyBhd2F5IGV4aXN0aW5nIERPTSBub2RlcyBhbmQgY2F1c2UgcmVtb3ZhbCBlcnJvcnNcbiAgICAvLyBvbiBzdWJzZXF1ZW50IHBhdGNoZXMgKCMzMzYwKVxuICAgIGlmIChrZXkgPT09ICd0ZXh0Q29udGVudCcgfHwga2V5ID09PSAnaW5uZXJIVE1MJykge1xuICAgICAgaWYgKHZub2RlLmNoaWxkcmVuKSB7IHZub2RlLmNoaWxkcmVuLmxlbmd0aCA9IDA7IH1cbiAgICAgIGlmIChjdXIgPT09IG9sZFByb3BzW2tleV0pIHsgY29udGludWUgfVxuICAgICAgLy8gIzY2MDEgd29yayBhcm91bmQgQ2hyb21lIHZlcnNpb24gPD0gNTUgYnVnIHdoZXJlIHNpbmdsZSB0ZXh0Tm9kZVxuICAgICAgLy8gcmVwbGFjZWQgYnkgaW5uZXJIVE1ML3RleHRDb250ZW50IHJldGFpbnMgaXRzIHBhcmVudE5vZGUgcHJvcGVydHlcbiAgICAgIGlmIChlbG0uY2hpbGROb2Rlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgZWxtLnJlbW92ZUNoaWxkKGVsbS5jaGlsZE5vZGVzWzBdKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoa2V5ID09PSAndmFsdWUnICYmIGVsbS50YWdOYW1lICE9PSAnUFJPR1JFU1MnKSB7XG4gICAgICAvLyBzdG9yZSB2YWx1ZSBhcyBfdmFsdWUgYXMgd2VsbCBzaW5jZVxuICAgICAgLy8gbm9uLXN0cmluZyB2YWx1ZXMgd2lsbCBiZSBzdHJpbmdpZmllZFxuICAgICAgZWxtLl92YWx1ZSA9IGN1cjtcbiAgICAgIC8vIGF2b2lkIHJlc2V0dGluZyBjdXJzb3IgcG9zaXRpb24gd2hlbiB2YWx1ZSBpcyB0aGUgc2FtZVxuICAgICAgdmFyIHN0ckN1ciA9IGlzVW5kZWYoY3VyKSA/ICcnIDogU3RyaW5nKGN1cik7XG4gICAgICBpZiAoc2hvdWxkVXBkYXRlVmFsdWUoZWxtLCBzdHJDdXIpKSB7XG4gICAgICAgIGVsbS52YWx1ZSA9IHN0ckN1cjtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2lubmVySFRNTCcgJiYgaXNTVkcoZWxtLnRhZ05hbWUpICYmIGlzVW5kZWYoZWxtLmlubmVySFRNTCkpIHtcbiAgICAgIC8vIElFIGRvZXNuJ3Qgc3VwcG9ydCBpbm5lckhUTUwgZm9yIFNWRyBlbGVtZW50c1xuICAgICAgc3ZnQ29udGFpbmVyID0gc3ZnQ29udGFpbmVyIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgc3ZnQ29udGFpbmVyLmlubmVySFRNTCA9IFwiPHN2Zz5cIiArIGN1ciArIFwiPC9zdmc+XCI7XG4gICAgICB2YXIgc3ZnID0gc3ZnQ29udGFpbmVyLmZpcnN0Q2hpbGQ7XG4gICAgICB3aGlsZSAoZWxtLmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgZWxtLnJlbW92ZUNoaWxkKGVsbS5maXJzdENoaWxkKTtcbiAgICAgIH1cbiAgICAgIHdoaWxlIChzdmcuZmlyc3RDaGlsZCkge1xuICAgICAgICBlbG0uYXBwZW5kQ2hpbGQoc3ZnLmZpcnN0Q2hpbGQpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICAvLyBza2lwIHRoZSB1cGRhdGUgaWYgb2xkIGFuZCBuZXcgVkRPTSBzdGF0ZSBpcyB0aGUgc2FtZS5cbiAgICAgIC8vIGB2YWx1ZWAgaXMgaGFuZGxlZCBzZXBhcmF0ZWx5IGJlY2F1c2UgdGhlIERPTSB2YWx1ZSBtYXkgYmUgdGVtcG9yYXJpbHlcbiAgICAgIC8vIG91dCBvZiBzeW5jIHdpdGggVkRPTSBzdGF0ZSBkdWUgdG8gZm9jdXMsIGNvbXBvc2l0aW9uIGFuZCBtb2RpZmllcnMuXG4gICAgICAvLyBUaGlzICAjNDUyMSBieSBza2lwcGluZyB0aGUgdW5uZWNlc3NhcnkgYGNoZWNrZWRgIHVwZGF0ZS5cbiAgICAgIGN1ciAhPT0gb2xkUHJvcHNba2V5XVxuICAgICkge1xuICAgICAgLy8gc29tZSBwcm9wZXJ0eSB1cGRhdGVzIGNhbiB0aHJvd1xuICAgICAgLy8gZS5nLiBgdmFsdWVgIG9uIDxwcm9ncmVzcz4gdy8gbm9uLWZpbml0ZSB2YWx1ZVxuICAgICAgdHJ5IHtcbiAgICAgICAgZWxtW2tleV0gPSBjdXI7XG4gICAgICB9IGNhdGNoIChlKSB7fVxuICAgIH1cbiAgfVxufVxuXG4vLyBjaGVjayBwbGF0Zm9ybXMvd2ViL3V0aWwvYXR0cnMuanMgYWNjZXB0VmFsdWVcblxuXG5mdW5jdGlvbiBzaG91bGRVcGRhdGVWYWx1ZSAoZWxtLCBjaGVja1ZhbCkge1xuICByZXR1cm4gKCFlbG0uY29tcG9zaW5nICYmIChcbiAgICBlbG0udGFnTmFtZSA9PT0gJ09QVElPTicgfHxcbiAgICBpc05vdEluRm9jdXNBbmREaXJ0eShlbG0sIGNoZWNrVmFsKSB8fFxuICAgIGlzRGlydHlXaXRoTW9kaWZpZXJzKGVsbSwgY2hlY2tWYWwpXG4gICkpXG59XG5cbmZ1bmN0aW9uIGlzTm90SW5Gb2N1c0FuZERpcnR5IChlbG0sIGNoZWNrVmFsKSB7XG4gIC8vIHJldHVybiB0cnVlIHdoZW4gdGV4dGJveCAoLm51bWJlciBhbmQgLnRyaW0pIGxvc2VzIGZvY3VzIGFuZCBpdHMgdmFsdWUgaXNcbiAgLy8gbm90IGVxdWFsIHRvIHRoZSB1cGRhdGVkIHZhbHVlXG4gIHZhciBub3RJbkZvY3VzID0gdHJ1ZTtcbiAgLy8gIzYxNTdcbiAgLy8gd29yayBhcm91bmQgSUUgYnVnIHdoZW4gYWNjZXNzaW5nIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW4gYW4gaWZyYW1lXG4gIHRyeSB7IG5vdEluRm9jdXMgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSBlbG07IH0gY2F0Y2ggKGUpIHt9XG4gIHJldHVybiBub3RJbkZvY3VzICYmIGVsbS52YWx1ZSAhPT0gY2hlY2tWYWxcbn1cblxuZnVuY3Rpb24gaXNEaXJ0eVdpdGhNb2RpZmllcnMgKGVsbSwgbmV3VmFsKSB7XG4gIHZhciB2YWx1ZSA9IGVsbS52YWx1ZTtcbiAgdmFyIG1vZGlmaWVycyA9IGVsbS5fdk1vZGlmaWVyczsgLy8gaW5qZWN0ZWQgYnkgdi1tb2RlbCBydW50aW1lXG4gIGlmIChpc0RlZihtb2RpZmllcnMpKSB7XG4gICAgaWYgKG1vZGlmaWVycy5udW1iZXIpIHtcbiAgICAgIHJldHVybiB0b051bWJlcih2YWx1ZSkgIT09IHRvTnVtYmVyKG5ld1ZhbClcbiAgICB9XG4gICAgaWYgKG1vZGlmaWVycy50cmltKSB7XG4gICAgICByZXR1cm4gdmFsdWUudHJpbSgpICE9PSBuZXdWYWwudHJpbSgpXG4gICAgfVxuICB9XG4gIHJldHVybiB2YWx1ZSAhPT0gbmV3VmFsXG59XG5cbnZhciBkb21Qcm9wcyA9IHtcbiAgY3JlYXRlOiB1cGRhdGVET01Qcm9wcyxcbiAgdXBkYXRlOiB1cGRhdGVET01Qcm9wc1xufTtcblxuLyogICovXG5cbnZhciBwYXJzZVN0eWxlVGV4dCA9IGNhY2hlZChmdW5jdGlvbiAoY3NzVGV4dCkge1xuICB2YXIgcmVzID0ge307XG4gIHZhciBsaXN0RGVsaW1pdGVyID0gLzsoPyFbXihdKlxcKSkvZztcbiAgdmFyIHByb3BlcnR5RGVsaW1pdGVyID0gLzooLispLztcbiAgY3NzVGV4dC5zcGxpdChsaXN0RGVsaW1pdGVyKS5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIHZhciB0bXAgPSBpdGVtLnNwbGl0KHByb3BlcnR5RGVsaW1pdGVyKTtcbiAgICAgIHRtcC5sZW5ndGggPiAxICYmIChyZXNbdG1wWzBdLnRyaW0oKV0gPSB0bXBbMV0udHJpbSgpKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gcmVzXG59KTtcblxuLy8gbWVyZ2Ugc3RhdGljIGFuZCBkeW5hbWljIHN0eWxlIGRhdGEgb24gdGhlIHNhbWUgdm5vZGVcbmZ1bmN0aW9uIG5vcm1hbGl6ZVN0eWxlRGF0YSAoZGF0YSkge1xuICB2YXIgc3R5bGUgPSBub3JtYWxpemVTdHlsZUJpbmRpbmcoZGF0YS5zdHlsZSk7XG4gIC8vIHN0YXRpYyBzdHlsZSBpcyBwcmUtcHJvY2Vzc2VkIGludG8gYW4gb2JqZWN0IGR1cmluZyBjb21waWxhdGlvblxuICAvLyBhbmQgaXMgYWx3YXlzIGEgZnJlc2ggb2JqZWN0LCBzbyBpdCdzIHNhZmUgdG8gbWVyZ2UgaW50byBpdFxuICByZXR1cm4gZGF0YS5zdGF0aWNTdHlsZVxuICAgID8gZXh0ZW5kKGRhdGEuc3RhdGljU3R5bGUsIHN0eWxlKVxuICAgIDogc3R5bGVcbn1cblxuLy8gbm9ybWFsaXplIHBvc3NpYmxlIGFycmF5IC8gc3RyaW5nIHZhbHVlcyBpbnRvIE9iamVjdFxuZnVuY3Rpb24gbm9ybWFsaXplU3R5bGVCaW5kaW5nIChiaW5kaW5nU3R5bGUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYmluZGluZ1N0eWxlKSkge1xuICAgIHJldHVybiB0b09iamVjdChiaW5kaW5nU3R5bGUpXG4gIH1cbiAgaWYgKHR5cGVvZiBiaW5kaW5nU3R5bGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHBhcnNlU3R5bGVUZXh0KGJpbmRpbmdTdHlsZSlcbiAgfVxuICByZXR1cm4gYmluZGluZ1N0eWxlXG59XG5cbi8qKlxuICogcGFyZW50IGNvbXBvbmVudCBzdHlsZSBzaG91bGQgYmUgYWZ0ZXIgY2hpbGQnc1xuICogc28gdGhhdCBwYXJlbnQgY29tcG9uZW50J3Mgc3R5bGUgY291bGQgb3ZlcnJpZGUgaXRcbiAqL1xuZnVuY3Rpb24gZ2V0U3R5bGUgKHZub2RlLCBjaGVja0NoaWxkKSB7XG4gIHZhciByZXMgPSB7fTtcbiAgdmFyIHN0eWxlRGF0YTtcblxuICBpZiAoY2hlY2tDaGlsZCkge1xuICAgIHZhciBjaGlsZE5vZGUgPSB2bm9kZTtcbiAgICB3aGlsZSAoY2hpbGROb2RlLmNvbXBvbmVudEluc3RhbmNlKSB7XG4gICAgICBjaGlsZE5vZGUgPSBjaGlsZE5vZGUuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlO1xuICAgICAgaWYgKFxuICAgICAgICBjaGlsZE5vZGUgJiYgY2hpbGROb2RlLmRhdGEgJiZcbiAgICAgICAgKHN0eWxlRGF0YSA9IG5vcm1hbGl6ZVN0eWxlRGF0YShjaGlsZE5vZGUuZGF0YSkpXG4gICAgICApIHtcbiAgICAgICAgZXh0ZW5kKHJlcywgc3R5bGVEYXRhKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoKHN0eWxlRGF0YSA9IG5vcm1hbGl6ZVN0eWxlRGF0YSh2bm9kZS5kYXRhKSkpIHtcbiAgICBleHRlbmQocmVzLCBzdHlsZURhdGEpO1xuICB9XG5cbiAgdmFyIHBhcmVudE5vZGUgPSB2bm9kZTtcbiAgd2hpbGUgKChwYXJlbnROb2RlID0gcGFyZW50Tm9kZS5wYXJlbnQpKSB7XG4gICAgaWYgKHBhcmVudE5vZGUuZGF0YSAmJiAoc3R5bGVEYXRhID0gbm9ybWFsaXplU3R5bGVEYXRhKHBhcmVudE5vZGUuZGF0YSkpKSB7XG4gICAgICBleHRlbmQocmVzLCBzdHlsZURhdGEpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbi8qICAqL1xuXG52YXIgY3NzVmFyUkUgPSAvXi0tLztcbnZhciBpbXBvcnRhbnRSRSA9IC9cXHMqIWltcG9ydGFudCQvO1xudmFyIHNldFByb3AgPSBmdW5jdGlvbiAoZWwsIG5hbWUsIHZhbCkge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKGNzc1ZhclJFLnRlc3QobmFtZSkpIHtcbiAgICBlbC5zdHlsZS5zZXRQcm9wZXJ0eShuYW1lLCB2YWwpO1xuICB9IGVsc2UgaWYgKGltcG9ydGFudFJFLnRlc3QodmFsKSkge1xuICAgIGVsLnN0eWxlLnNldFByb3BlcnR5KGh5cGhlbmF0ZShuYW1lKSwgdmFsLnJlcGxhY2UoaW1wb3J0YW50UkUsICcnKSwgJ2ltcG9ydGFudCcpO1xuICB9IGVsc2Uge1xuICAgIHZhciBub3JtYWxpemVkTmFtZSA9IG5vcm1hbGl6ZShuYW1lKTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICAvLyBTdXBwb3J0IHZhbHVlcyBhcnJheSBjcmVhdGVkIGJ5IGF1dG9wcmVmaXhlciwgZS5nLlxuICAgICAgLy8ge2Rpc3BsYXk6IFtcIi13ZWJraXQtYm94XCIsIFwiLW1zLWZsZXhib3hcIiwgXCJmbGV4XCJdfVxuICAgICAgLy8gU2V0IHRoZW0gb25lIGJ5IG9uZSwgYW5kIHRoZSBicm93c2VyIHdpbGwgb25seSBzZXQgdGhvc2UgaXQgY2FuIHJlY29nbml6ZVxuICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHZhbC5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICBlbC5zdHlsZVtub3JtYWxpemVkTmFtZV0gPSB2YWxbaV07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsLnN0eWxlW25vcm1hbGl6ZWROYW1lXSA9IHZhbDtcbiAgICB9XG4gIH1cbn07XG5cbnZhciB2ZW5kb3JOYW1lcyA9IFsnV2Via2l0JywgJ01veicsICdtcyddO1xuXG52YXIgZW1wdHlTdHlsZTtcbnZhciBub3JtYWxpemUgPSBjYWNoZWQoZnVuY3Rpb24gKHByb3ApIHtcbiAgZW1wdHlTdHlsZSA9IGVtcHR5U3R5bGUgfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jykuc3R5bGU7XG4gIHByb3AgPSBjYW1lbGl6ZShwcm9wKTtcbiAgaWYgKHByb3AgIT09ICdmaWx0ZXInICYmIChwcm9wIGluIGVtcHR5U3R5bGUpKSB7XG4gICAgcmV0dXJuIHByb3BcbiAgfVxuICB2YXIgY2FwTmFtZSA9IHByb3AuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBwcm9wLnNsaWNlKDEpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHZlbmRvck5hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIG5hbWUgPSB2ZW5kb3JOYW1lc1tpXSArIGNhcE5hbWU7XG4gICAgaWYgKG5hbWUgaW4gZW1wdHlTdHlsZSkge1xuICAgICAgcmV0dXJuIG5hbWVcbiAgICB9XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiB1cGRhdGVTdHlsZSAob2xkVm5vZGUsIHZub2RlKSB7XG4gIHZhciBkYXRhID0gdm5vZGUuZGF0YTtcbiAgdmFyIG9sZERhdGEgPSBvbGRWbm9kZS5kYXRhO1xuXG4gIGlmIChpc1VuZGVmKGRhdGEuc3RhdGljU3R5bGUpICYmIGlzVW5kZWYoZGF0YS5zdHlsZSkgJiZcbiAgICBpc1VuZGVmKG9sZERhdGEuc3RhdGljU3R5bGUpICYmIGlzVW5kZWYob2xkRGF0YS5zdHlsZSlcbiAgKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICB2YXIgY3VyLCBuYW1lO1xuICB2YXIgZWwgPSB2bm9kZS5lbG07XG4gIHZhciBvbGRTdGF0aWNTdHlsZSA9IG9sZERhdGEuc3RhdGljU3R5bGU7XG4gIHZhciBvbGRTdHlsZUJpbmRpbmcgPSBvbGREYXRhLm5vcm1hbGl6ZWRTdHlsZSB8fCBvbGREYXRhLnN0eWxlIHx8IHt9O1xuXG4gIC8vIGlmIHN0YXRpYyBzdHlsZSBleGlzdHMsIHN0eWxlYmluZGluZyBhbHJlYWR5IG1lcmdlZCBpbnRvIGl0IHdoZW4gZG9pbmcgbm9ybWFsaXplU3R5bGVEYXRhXG4gIHZhciBvbGRTdHlsZSA9IG9sZFN0YXRpY1N0eWxlIHx8IG9sZFN0eWxlQmluZGluZztcblxuICB2YXIgc3R5bGUgPSBub3JtYWxpemVTdHlsZUJpbmRpbmcodm5vZGUuZGF0YS5zdHlsZSkgfHwge307XG5cbiAgLy8gc3RvcmUgbm9ybWFsaXplZCBzdHlsZSB1bmRlciBhIGRpZmZlcmVudCBrZXkgZm9yIG5leHQgZGlmZlxuICAvLyBtYWtlIHN1cmUgdG8gY2xvbmUgaXQgaWYgaXQncyByZWFjdGl2ZSwgc2luY2UgdGhlIHVzZXIgbGlrZWx5IHdhbnRzXG4gIC8vIHRvIG11dGF0ZSBpdC5cbiAgdm5vZGUuZGF0YS5ub3JtYWxpemVkU3R5bGUgPSBpc0RlZihzdHlsZS5fX29iX18pXG4gICAgPyBleHRlbmQoe30sIHN0eWxlKVxuICAgIDogc3R5bGU7XG5cbiAgdmFyIG5ld1N0eWxlID0gZ2V0U3R5bGUodm5vZGUsIHRydWUpO1xuXG4gIGZvciAobmFtZSBpbiBvbGRTdHlsZSkge1xuICAgIGlmIChpc1VuZGVmKG5ld1N0eWxlW25hbWVdKSkge1xuICAgICAgc2V0UHJvcChlbCwgbmFtZSwgJycpO1xuICAgIH1cbiAgfVxuICBmb3IgKG5hbWUgaW4gbmV3U3R5bGUpIHtcbiAgICBjdXIgPSBuZXdTdHlsZVtuYW1lXTtcbiAgICBpZiAoY3VyICE9PSBvbGRTdHlsZVtuYW1lXSkge1xuICAgICAgLy8gaWU5IHNldHRpbmcgdG8gbnVsbCBoYXMgbm8gZWZmZWN0LCBtdXN0IHVzZSBlbXB0eSBzdHJpbmdcbiAgICAgIHNldFByb3AoZWwsIG5hbWUsIGN1ciA9PSBudWxsID8gJycgOiBjdXIpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgc3R5bGUgPSB7XG4gIGNyZWF0ZTogdXBkYXRlU3R5bGUsXG4gIHVwZGF0ZTogdXBkYXRlU3R5bGVcbn07XG5cbi8qICAqL1xuXG52YXIgd2hpdGVzcGFjZVJFID0gL1xccysvO1xuXG4vKipcbiAqIEFkZCBjbGFzcyB3aXRoIGNvbXBhdGliaWxpdHkgZm9yIFNWRyBzaW5jZSBjbGFzc0xpc3QgaXMgbm90IHN1cHBvcnRlZCBvblxuICogU1ZHIGVsZW1lbnRzIGluIElFXG4gKi9cbmZ1bmN0aW9uIGFkZENsYXNzIChlbCwgY2xzKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoIWNscyB8fCAhKGNscyA9IGNscy50cmltKCkpKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICBpZiAoZWwuY2xhc3NMaXN0KSB7XG4gICAgaWYgKGNscy5pbmRleE9mKCcgJykgPiAtMSkge1xuICAgICAgY2xzLnNwbGl0KHdoaXRlc3BhY2VSRSkuZm9yRWFjaChmdW5jdGlvbiAoYykgeyByZXR1cm4gZWwuY2xhc3NMaXN0LmFkZChjKTsgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsLmNsYXNzTGlzdC5hZGQoY2xzKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIGN1ciA9IFwiIFwiICsgKGVsLmdldEF0dHJpYnV0ZSgnY2xhc3MnKSB8fCAnJykgKyBcIiBcIjtcbiAgICBpZiAoY3VyLmluZGV4T2YoJyAnICsgY2xzICsgJyAnKSA8IDApIHtcbiAgICAgIGVsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAoY3VyICsgY2xzKS50cmltKCkpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJlbW92ZSBjbGFzcyB3aXRoIGNvbXBhdGliaWxpdHkgZm9yIFNWRyBzaW5jZSBjbGFzc0xpc3QgaXMgbm90IHN1cHBvcnRlZCBvblxuICogU1ZHIGVsZW1lbnRzIGluIElFXG4gKi9cbmZ1bmN0aW9uIHJlbW92ZUNsYXNzIChlbCwgY2xzKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoIWNscyB8fCAhKGNscyA9IGNscy50cmltKCkpKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICBpZiAoZWwuY2xhc3NMaXN0KSB7XG4gICAgaWYgKGNscy5pbmRleE9mKCcgJykgPiAtMSkge1xuICAgICAgY2xzLnNwbGl0KHdoaXRlc3BhY2VSRSkuZm9yRWFjaChmdW5jdGlvbiAoYykgeyByZXR1cm4gZWwuY2xhc3NMaXN0LnJlbW92ZShjKTsgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsLmNsYXNzTGlzdC5yZW1vdmUoY2xzKTtcbiAgICB9XG4gICAgaWYgKCFlbC5jbGFzc0xpc3QubGVuZ3RoKSB7XG4gICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUoJ2NsYXNzJyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHZhciBjdXIgPSBcIiBcIiArIChlbC5nZXRBdHRyaWJ1dGUoJ2NsYXNzJykgfHwgJycpICsgXCIgXCI7XG4gICAgdmFyIHRhciA9ICcgJyArIGNscyArICcgJztcbiAgICB3aGlsZSAoY3VyLmluZGV4T2YodGFyKSA+PSAwKSB7XG4gICAgICBjdXIgPSBjdXIucmVwbGFjZSh0YXIsICcgJyk7XG4gICAgfVxuICAgIGN1ciA9IGN1ci50cmltKCk7XG4gICAgaWYgKGN1cikge1xuICAgICAgZWwuc2V0QXR0cmlidXRlKCdjbGFzcycsIGN1cik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZSgnY2xhc3MnKTtcbiAgICB9XG4gIH1cbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIHJlc29sdmVUcmFuc2l0aW9uIChkZWYkJDEpIHtcbiAgaWYgKCFkZWYkJDEpIHtcbiAgICByZXR1cm5cbiAgfVxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICBpZiAodHlwZW9mIGRlZiQkMSA9PT0gJ29iamVjdCcpIHtcbiAgICB2YXIgcmVzID0ge307XG4gICAgaWYgKGRlZiQkMS5jc3MgIT09IGZhbHNlKSB7XG4gICAgICBleHRlbmQocmVzLCBhdXRvQ3NzVHJhbnNpdGlvbihkZWYkJDEubmFtZSB8fCAndicpKTtcbiAgICB9XG4gICAgZXh0ZW5kKHJlcywgZGVmJCQxKTtcbiAgICByZXR1cm4gcmVzXG4gIH0gZWxzZSBpZiAodHlwZW9mIGRlZiQkMSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gYXV0b0Nzc1RyYW5zaXRpb24oZGVmJCQxKVxuICB9XG59XG5cbnZhciBhdXRvQ3NzVHJhbnNpdGlvbiA9IGNhY2hlZChmdW5jdGlvbiAobmFtZSkge1xuICByZXR1cm4ge1xuICAgIGVudGVyQ2xhc3M6IChuYW1lICsgXCItZW50ZXJcIiksXG4gICAgZW50ZXJUb0NsYXNzOiAobmFtZSArIFwiLWVudGVyLXRvXCIpLFxuICAgIGVudGVyQWN0aXZlQ2xhc3M6IChuYW1lICsgXCItZW50ZXItYWN0aXZlXCIpLFxuICAgIGxlYXZlQ2xhc3M6IChuYW1lICsgXCItbGVhdmVcIiksXG4gICAgbGVhdmVUb0NsYXNzOiAobmFtZSArIFwiLWxlYXZlLXRvXCIpLFxuICAgIGxlYXZlQWN0aXZlQ2xhc3M6IChuYW1lICsgXCItbGVhdmUtYWN0aXZlXCIpXG4gIH1cbn0pO1xuXG52YXIgaGFzVHJhbnNpdGlvbiA9IGluQnJvd3NlciAmJiAhaXNJRTk7XG52YXIgVFJBTlNJVElPTiA9ICd0cmFuc2l0aW9uJztcbnZhciBBTklNQVRJT04gPSAnYW5pbWF0aW9uJztcblxuLy8gVHJhbnNpdGlvbiBwcm9wZXJ0eS9ldmVudCBzbmlmZmluZ1xudmFyIHRyYW5zaXRpb25Qcm9wID0gJ3RyYW5zaXRpb24nO1xudmFyIHRyYW5zaXRpb25FbmRFdmVudCA9ICd0cmFuc2l0aW9uZW5kJztcbnZhciBhbmltYXRpb25Qcm9wID0gJ2FuaW1hdGlvbic7XG52YXIgYW5pbWF0aW9uRW5kRXZlbnQgPSAnYW5pbWF0aW9uZW5kJztcbmlmIChoYXNUcmFuc2l0aW9uKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAod2luZG93Lm9udHJhbnNpdGlvbmVuZCA9PT0gdW5kZWZpbmVkICYmXG4gICAgd2luZG93Lm9ud2Via2l0dHJhbnNpdGlvbmVuZCAhPT0gdW5kZWZpbmVkXG4gICkge1xuICAgIHRyYW5zaXRpb25Qcm9wID0gJ1dlYmtpdFRyYW5zaXRpb24nO1xuICAgIHRyYW5zaXRpb25FbmRFdmVudCA9ICd3ZWJraXRUcmFuc2l0aW9uRW5kJztcbiAgfVxuICBpZiAod2luZG93Lm9uYW5pbWF0aW9uZW5kID09PSB1bmRlZmluZWQgJiZcbiAgICB3aW5kb3cub253ZWJraXRhbmltYXRpb25lbmQgIT09IHVuZGVmaW5lZFxuICApIHtcbiAgICBhbmltYXRpb25Qcm9wID0gJ1dlYmtpdEFuaW1hdGlvbic7XG4gICAgYW5pbWF0aW9uRW5kRXZlbnQgPSAnd2Via2l0QW5pbWF0aW9uRW5kJztcbiAgfVxufVxuXG4vLyBiaW5kaW5nIHRvIHdpbmRvdyBpcyBuZWNlc3NhcnkgdG8gbWFrZSBob3QgcmVsb2FkIHdvcmsgaW4gSUUgaW4gc3RyaWN0IG1vZGVcbnZhciByYWYgPSBpbkJyb3dzZXJcbiAgPyB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lXG4gICAgPyB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KVxuICAgIDogc2V0VGltZW91dFxuICA6IC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovIGZ1bmN0aW9uIChmbikgeyByZXR1cm4gZm4oKTsgfTtcblxuZnVuY3Rpb24gbmV4dEZyYW1lIChmbikge1xuICByYWYoZnVuY3Rpb24gKCkge1xuICAgIHJhZihmbik7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGRUcmFuc2l0aW9uQ2xhc3MgKGVsLCBjbHMpIHtcbiAgdmFyIHRyYW5zaXRpb25DbGFzc2VzID0gZWwuX3RyYW5zaXRpb25DbGFzc2VzIHx8IChlbC5fdHJhbnNpdGlvbkNsYXNzZXMgPSBbXSk7XG4gIGlmICh0cmFuc2l0aW9uQ2xhc3Nlcy5pbmRleE9mKGNscykgPCAwKSB7XG4gICAgdHJhbnNpdGlvbkNsYXNzZXMucHVzaChjbHMpO1xuICAgIGFkZENsYXNzKGVsLCBjbHMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlbW92ZVRyYW5zaXRpb25DbGFzcyAoZWwsIGNscykge1xuICBpZiAoZWwuX3RyYW5zaXRpb25DbGFzc2VzKSB7XG4gICAgcmVtb3ZlKGVsLl90cmFuc2l0aW9uQ2xhc3NlcywgY2xzKTtcbiAgfVxuICByZW1vdmVDbGFzcyhlbCwgY2xzKTtcbn1cblxuZnVuY3Rpb24gd2hlblRyYW5zaXRpb25FbmRzIChcbiAgZWwsXG4gIGV4cGVjdGVkVHlwZSxcbiAgY2Jcbikge1xuICB2YXIgcmVmID0gZ2V0VHJhbnNpdGlvbkluZm8oZWwsIGV4cGVjdGVkVHlwZSk7XG4gIHZhciB0eXBlID0gcmVmLnR5cGU7XG4gIHZhciB0aW1lb3V0ID0gcmVmLnRpbWVvdXQ7XG4gIHZhciBwcm9wQ291bnQgPSByZWYucHJvcENvdW50O1xuICBpZiAoIXR5cGUpIHsgcmV0dXJuIGNiKCkgfVxuICB2YXIgZXZlbnQgPSB0eXBlID09PSBUUkFOU0lUSU9OID8gdHJhbnNpdGlvbkVuZEV2ZW50IDogYW5pbWF0aW9uRW5kRXZlbnQ7XG4gIHZhciBlbmRlZCA9IDA7XG4gIHZhciBlbmQgPSBmdW5jdGlvbiAoKSB7XG4gICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudCwgb25FbmQpO1xuICAgIGNiKCk7XG4gIH07XG4gIHZhciBvbkVuZCA9IGZ1bmN0aW9uIChlKSB7XG4gICAgaWYgKGUudGFyZ2V0ID09PSBlbCkge1xuICAgICAgaWYgKCsrZW5kZWQgPj0gcHJvcENvdW50KSB7XG4gICAgICAgIGVuZCgpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbiAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGVuZGVkIDwgcHJvcENvdW50KSB7XG4gICAgICBlbmQoKTtcbiAgICB9XG4gIH0sIHRpbWVvdXQgKyAxKTtcbiAgZWwuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgb25FbmQpO1xufVxuXG52YXIgdHJhbnNmb3JtUkUgPSAvXFxiKHRyYW5zZm9ybXxhbGwpKCx8JCkvO1xuXG5mdW5jdGlvbiBnZXRUcmFuc2l0aW9uSW5mbyAoZWwsIGV4cGVjdGVkVHlwZSkge1xuICB2YXIgc3R5bGVzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpO1xuICAvLyBKU0RPTSBtYXkgcmV0dXJuIHVuZGVmaW5lZCBmb3IgdHJhbnNpdGlvbiBwcm9wZXJ0aWVzXG4gIHZhciB0cmFuc2l0aW9uRGVsYXlzID0gKHN0eWxlc1t0cmFuc2l0aW9uUHJvcCArICdEZWxheSddIHx8ICcnKS5zcGxpdCgnLCAnKTtcbiAgdmFyIHRyYW5zaXRpb25EdXJhdGlvbnMgPSAoc3R5bGVzW3RyYW5zaXRpb25Qcm9wICsgJ0R1cmF0aW9uJ10gfHwgJycpLnNwbGl0KCcsICcpO1xuICB2YXIgdHJhbnNpdGlvblRpbWVvdXQgPSBnZXRUaW1lb3V0KHRyYW5zaXRpb25EZWxheXMsIHRyYW5zaXRpb25EdXJhdGlvbnMpO1xuICB2YXIgYW5pbWF0aW9uRGVsYXlzID0gKHN0eWxlc1thbmltYXRpb25Qcm9wICsgJ0RlbGF5J10gfHwgJycpLnNwbGl0KCcsICcpO1xuICB2YXIgYW5pbWF0aW9uRHVyYXRpb25zID0gKHN0eWxlc1thbmltYXRpb25Qcm9wICsgJ0R1cmF0aW9uJ10gfHwgJycpLnNwbGl0KCcsICcpO1xuICB2YXIgYW5pbWF0aW9uVGltZW91dCA9IGdldFRpbWVvdXQoYW5pbWF0aW9uRGVsYXlzLCBhbmltYXRpb25EdXJhdGlvbnMpO1xuXG4gIHZhciB0eXBlO1xuICB2YXIgdGltZW91dCA9IDA7XG4gIHZhciBwcm9wQ291bnQgPSAwO1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKGV4cGVjdGVkVHlwZSA9PT0gVFJBTlNJVElPTikge1xuICAgIGlmICh0cmFuc2l0aW9uVGltZW91dCA+IDApIHtcbiAgICAgIHR5cGUgPSBUUkFOU0lUSU9OO1xuICAgICAgdGltZW91dCA9IHRyYW5zaXRpb25UaW1lb3V0O1xuICAgICAgcHJvcENvdW50ID0gdHJhbnNpdGlvbkR1cmF0aW9ucy5sZW5ndGg7XG4gICAgfVxuICB9IGVsc2UgaWYgKGV4cGVjdGVkVHlwZSA9PT0gQU5JTUFUSU9OKSB7XG4gICAgaWYgKGFuaW1hdGlvblRpbWVvdXQgPiAwKSB7XG4gICAgICB0eXBlID0gQU5JTUFUSU9OO1xuICAgICAgdGltZW91dCA9IGFuaW1hdGlvblRpbWVvdXQ7XG4gICAgICBwcm9wQ291bnQgPSBhbmltYXRpb25EdXJhdGlvbnMubGVuZ3RoO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB0aW1lb3V0ID0gTWF0aC5tYXgodHJhbnNpdGlvblRpbWVvdXQsIGFuaW1hdGlvblRpbWVvdXQpO1xuICAgIHR5cGUgPSB0aW1lb3V0ID4gMFxuICAgICAgPyB0cmFuc2l0aW9uVGltZW91dCA+IGFuaW1hdGlvblRpbWVvdXRcbiAgICAgICAgPyBUUkFOU0lUSU9OXG4gICAgICAgIDogQU5JTUFUSU9OXG4gICAgICA6IG51bGw7XG4gICAgcHJvcENvdW50ID0gdHlwZVxuICAgICAgPyB0eXBlID09PSBUUkFOU0lUSU9OXG4gICAgICAgID8gdHJhbnNpdGlvbkR1cmF0aW9ucy5sZW5ndGhcbiAgICAgICAgOiBhbmltYXRpb25EdXJhdGlvbnMubGVuZ3RoXG4gICAgICA6IDA7XG4gIH1cbiAgdmFyIGhhc1RyYW5zZm9ybSA9XG4gICAgdHlwZSA9PT0gVFJBTlNJVElPTiAmJlxuICAgIHRyYW5zZm9ybVJFLnRlc3Qoc3R5bGVzW3RyYW5zaXRpb25Qcm9wICsgJ1Byb3BlcnR5J10pO1xuICByZXR1cm4ge1xuICAgIHR5cGU6IHR5cGUsXG4gICAgdGltZW91dDogdGltZW91dCxcbiAgICBwcm9wQ291bnQ6IHByb3BDb3VudCxcbiAgICBoYXNUcmFuc2Zvcm06IGhhc1RyYW5zZm9ybVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldFRpbWVvdXQgKGRlbGF5cywgZHVyYXRpb25zKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHdoaWxlIChkZWxheXMubGVuZ3RoIDwgZHVyYXRpb25zLmxlbmd0aCkge1xuICAgIGRlbGF5cyA9IGRlbGF5cy5jb25jYXQoZGVsYXlzKTtcbiAgfVxuXG4gIHJldHVybiBNYXRoLm1heC5hcHBseShudWxsLCBkdXJhdGlvbnMubWFwKGZ1bmN0aW9uIChkLCBpKSB7XG4gICAgcmV0dXJuIHRvTXMoZCkgKyB0b01zKGRlbGF5c1tpXSlcbiAgfSkpXG59XG5cbi8vIE9sZCB2ZXJzaW9ucyBvZiBDaHJvbWl1bSAoYmVsb3cgNjEuMC4zMTYzLjEwMCkgZm9ybWF0cyBmbG9hdGluZyBwb2ludGVyIG51bWJlcnNcbi8vIGluIGEgbG9jYWxlLWRlcGVuZGVudCB3YXksIHVzaW5nIGEgY29tbWEgaW5zdGVhZCBvZiBhIGRvdC5cbi8vIElmIGNvbW1hIGlzIG5vdCByZXBsYWNlZCB3aXRoIGEgZG90LCB0aGUgaW5wdXQgd2lsbCBiZSByb3VuZGVkIGRvd24gKGkuZS4gYWN0aW5nXG4vLyBhcyBhIGZsb29yIGZ1bmN0aW9uKSBjYXVzaW5nIHVuZXhwZWN0ZWQgYmVoYXZpb3JzXG5mdW5jdGlvbiB0b01zIChzKSB7XG4gIHJldHVybiBOdW1iZXIocy5zbGljZSgwLCAtMSkucmVwbGFjZSgnLCcsICcuJykpICogMTAwMFxufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gZW50ZXIgKHZub2RlLCB0b2dnbGVEaXNwbGF5KSB7XG4gIHZhciBlbCA9IHZub2RlLmVsbTtcblxuICAvLyBjYWxsIGxlYXZlIGNhbGxiYWNrIG5vd1xuICBpZiAoaXNEZWYoZWwuX2xlYXZlQ2IpKSB7XG4gICAgZWwuX2xlYXZlQ2IuY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICBlbC5fbGVhdmVDYigpO1xuICB9XG5cbiAgdmFyIGRhdGEgPSByZXNvbHZlVHJhbnNpdGlvbih2bm9kZS5kYXRhLnRyYW5zaXRpb24pO1xuICBpZiAoaXNVbmRlZihkYXRhKSkge1xuICAgIHJldHVyblxuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChpc0RlZihlbC5fZW50ZXJDYikgfHwgZWwubm9kZVR5cGUgIT09IDEpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIHZhciBjc3MgPSBkYXRhLmNzcztcbiAgdmFyIHR5cGUgPSBkYXRhLnR5cGU7XG4gIHZhciBlbnRlckNsYXNzID0gZGF0YS5lbnRlckNsYXNzO1xuICB2YXIgZW50ZXJUb0NsYXNzID0gZGF0YS5lbnRlclRvQ2xhc3M7XG4gIHZhciBlbnRlckFjdGl2ZUNsYXNzID0gZGF0YS5lbnRlckFjdGl2ZUNsYXNzO1xuICB2YXIgYXBwZWFyQ2xhc3MgPSBkYXRhLmFwcGVhckNsYXNzO1xuICB2YXIgYXBwZWFyVG9DbGFzcyA9IGRhdGEuYXBwZWFyVG9DbGFzcztcbiAgdmFyIGFwcGVhckFjdGl2ZUNsYXNzID0gZGF0YS5hcHBlYXJBY3RpdmVDbGFzcztcbiAgdmFyIGJlZm9yZUVudGVyID0gZGF0YS5iZWZvcmVFbnRlcjtcbiAgdmFyIGVudGVyID0gZGF0YS5lbnRlcjtcbiAgdmFyIGFmdGVyRW50ZXIgPSBkYXRhLmFmdGVyRW50ZXI7XG4gIHZhciBlbnRlckNhbmNlbGxlZCA9IGRhdGEuZW50ZXJDYW5jZWxsZWQ7XG4gIHZhciBiZWZvcmVBcHBlYXIgPSBkYXRhLmJlZm9yZUFwcGVhcjtcbiAgdmFyIGFwcGVhciA9IGRhdGEuYXBwZWFyO1xuICB2YXIgYWZ0ZXJBcHBlYXIgPSBkYXRhLmFmdGVyQXBwZWFyO1xuICB2YXIgYXBwZWFyQ2FuY2VsbGVkID0gZGF0YS5hcHBlYXJDYW5jZWxsZWQ7XG4gIHZhciBkdXJhdGlvbiA9IGRhdGEuZHVyYXRpb247XG5cbiAgLy8gYWN0aXZlSW5zdGFuY2Ugd2lsbCBhbHdheXMgYmUgdGhlIDx0cmFuc2l0aW9uPiBjb21wb25lbnQgbWFuYWdpbmcgdGhpc1xuICAvLyB0cmFuc2l0aW9uLiBPbmUgZWRnZSBjYXNlIHRvIGNoZWNrIGlzIHdoZW4gdGhlIDx0cmFuc2l0aW9uPiBpcyBwbGFjZWRcbiAgLy8gYXMgdGhlIHJvb3Qgbm9kZSBvZiBhIGNoaWxkIGNvbXBvbmVudC4gSW4gdGhhdCBjYXNlIHdlIG5lZWQgdG8gY2hlY2tcbiAgLy8gPHRyYW5zaXRpb24+J3MgcGFyZW50IGZvciBhcHBlYXIgY2hlY2suXG4gIHZhciBjb250ZXh0ID0gYWN0aXZlSW5zdGFuY2U7XG4gIHZhciB0cmFuc2l0aW9uTm9kZSA9IGFjdGl2ZUluc3RhbmNlLiR2bm9kZTtcbiAgd2hpbGUgKHRyYW5zaXRpb25Ob2RlICYmIHRyYW5zaXRpb25Ob2RlLnBhcmVudCkge1xuICAgIGNvbnRleHQgPSB0cmFuc2l0aW9uTm9kZS5jb250ZXh0O1xuICAgIHRyYW5zaXRpb25Ob2RlID0gdHJhbnNpdGlvbk5vZGUucGFyZW50O1xuICB9XG5cbiAgdmFyIGlzQXBwZWFyID0gIWNvbnRleHQuX2lzTW91bnRlZCB8fCAhdm5vZGUuaXNSb290SW5zZXJ0O1xuXG4gIGlmIChpc0FwcGVhciAmJiAhYXBwZWFyICYmIGFwcGVhciAhPT0gJycpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIHZhciBzdGFydENsYXNzID0gaXNBcHBlYXIgJiYgYXBwZWFyQ2xhc3NcbiAgICA/IGFwcGVhckNsYXNzXG4gICAgOiBlbnRlckNsYXNzO1xuICB2YXIgYWN0aXZlQ2xhc3MgPSBpc0FwcGVhciAmJiBhcHBlYXJBY3RpdmVDbGFzc1xuICAgID8gYXBwZWFyQWN0aXZlQ2xhc3NcbiAgICA6IGVudGVyQWN0aXZlQ2xhc3M7XG4gIHZhciB0b0NsYXNzID0gaXNBcHBlYXIgJiYgYXBwZWFyVG9DbGFzc1xuICAgID8gYXBwZWFyVG9DbGFzc1xuICAgIDogZW50ZXJUb0NsYXNzO1xuXG4gIHZhciBiZWZvcmVFbnRlckhvb2sgPSBpc0FwcGVhclxuICAgID8gKGJlZm9yZUFwcGVhciB8fCBiZWZvcmVFbnRlcilcbiAgICA6IGJlZm9yZUVudGVyO1xuICB2YXIgZW50ZXJIb29rID0gaXNBcHBlYXJcbiAgICA/ICh0eXBlb2YgYXBwZWFyID09PSAnZnVuY3Rpb24nID8gYXBwZWFyIDogZW50ZXIpXG4gICAgOiBlbnRlcjtcbiAgdmFyIGFmdGVyRW50ZXJIb29rID0gaXNBcHBlYXJcbiAgICA/IChhZnRlckFwcGVhciB8fCBhZnRlckVudGVyKVxuICAgIDogYWZ0ZXJFbnRlcjtcbiAgdmFyIGVudGVyQ2FuY2VsbGVkSG9vayA9IGlzQXBwZWFyXG4gICAgPyAoYXBwZWFyQ2FuY2VsbGVkIHx8IGVudGVyQ2FuY2VsbGVkKVxuICAgIDogZW50ZXJDYW5jZWxsZWQ7XG5cbiAgdmFyIGV4cGxpY2l0RW50ZXJEdXJhdGlvbiA9IHRvTnVtYmVyKFxuICAgIGlzT2JqZWN0KGR1cmF0aW9uKVxuICAgICAgPyBkdXJhdGlvbi5lbnRlclxuICAgICAgOiBkdXJhdGlvblxuICApO1xuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGV4cGxpY2l0RW50ZXJEdXJhdGlvbiAhPSBudWxsKSB7XG4gICAgY2hlY2tEdXJhdGlvbihleHBsaWNpdEVudGVyRHVyYXRpb24sICdlbnRlcicsIHZub2RlKTtcbiAgfVxuXG4gIHZhciBleHBlY3RzQ1NTID0gY3NzICE9PSBmYWxzZSAmJiAhaXNJRTk7XG4gIHZhciB1c2VyV2FudHNDb250cm9sID0gZ2V0SG9va0FyZ3VtZW50c0xlbmd0aChlbnRlckhvb2spO1xuXG4gIHZhciBjYiA9IGVsLl9lbnRlckNiID0gb25jZShmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGV4cGVjdHNDU1MpIHtcbiAgICAgIHJlbW92ZVRyYW5zaXRpb25DbGFzcyhlbCwgdG9DbGFzcyk7XG4gICAgICByZW1vdmVUcmFuc2l0aW9uQ2xhc3MoZWwsIGFjdGl2ZUNsYXNzKTtcbiAgICB9XG4gICAgaWYgKGNiLmNhbmNlbGxlZCkge1xuICAgICAgaWYgKGV4cGVjdHNDU1MpIHtcbiAgICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKGVsLCBzdGFydENsYXNzKTtcbiAgICAgIH1cbiAgICAgIGVudGVyQ2FuY2VsbGVkSG9vayAmJiBlbnRlckNhbmNlbGxlZEhvb2soZWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhZnRlckVudGVySG9vayAmJiBhZnRlckVudGVySG9vayhlbCk7XG4gICAgfVxuICAgIGVsLl9lbnRlckNiID0gbnVsbDtcbiAgfSk7XG5cbiAgaWYgKCF2bm9kZS5kYXRhLnNob3cpIHtcbiAgICAvLyByZW1vdmUgcGVuZGluZyBsZWF2ZSBlbGVtZW50IG9uIGVudGVyIGJ5IGluamVjdGluZyBhbiBpbnNlcnQgaG9va1xuICAgIG1lcmdlVk5vZGVIb29rKHZub2RlLCAnaW5zZXJ0JywgZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIHBhcmVudCA9IGVsLnBhcmVudE5vZGU7XG4gICAgICB2YXIgcGVuZGluZ05vZGUgPSBwYXJlbnQgJiYgcGFyZW50Ll9wZW5kaW5nICYmIHBhcmVudC5fcGVuZGluZ1t2bm9kZS5rZXldO1xuICAgICAgaWYgKHBlbmRpbmdOb2RlICYmXG4gICAgICAgIHBlbmRpbmdOb2RlLnRhZyA9PT0gdm5vZGUudGFnICYmXG4gICAgICAgIHBlbmRpbmdOb2RlLmVsbS5fbGVhdmVDYlxuICAgICAgKSB7XG4gICAgICAgIHBlbmRpbmdOb2RlLmVsbS5fbGVhdmVDYigpO1xuICAgICAgfVxuICAgICAgZW50ZXJIb29rICYmIGVudGVySG9vayhlbCwgY2IpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gc3RhcnQgZW50ZXIgdHJhbnNpdGlvblxuICBiZWZvcmVFbnRlckhvb2sgJiYgYmVmb3JlRW50ZXJIb29rKGVsKTtcbiAgaWYgKGV4cGVjdHNDU1MpIHtcbiAgICBhZGRUcmFuc2l0aW9uQ2xhc3MoZWwsIHN0YXJ0Q2xhc3MpO1xuICAgIGFkZFRyYW5zaXRpb25DbGFzcyhlbCwgYWN0aXZlQ2xhc3MpO1xuICAgIG5leHRGcmFtZShmdW5jdGlvbiAoKSB7XG4gICAgICByZW1vdmVUcmFuc2l0aW9uQ2xhc3MoZWwsIHN0YXJ0Q2xhc3MpO1xuICAgICAgaWYgKCFjYi5jYW5jZWxsZWQpIHtcbiAgICAgICAgYWRkVHJhbnNpdGlvbkNsYXNzKGVsLCB0b0NsYXNzKTtcbiAgICAgICAgaWYgKCF1c2VyV2FudHNDb250cm9sKSB7XG4gICAgICAgICAgaWYgKGlzVmFsaWREdXJhdGlvbihleHBsaWNpdEVudGVyRHVyYXRpb24pKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGNiLCBleHBsaWNpdEVudGVyRHVyYXRpb24pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3aGVuVHJhbnNpdGlvbkVuZHMoZWwsIHR5cGUsIGNiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGlmICh2bm9kZS5kYXRhLnNob3cpIHtcbiAgICB0b2dnbGVEaXNwbGF5ICYmIHRvZ2dsZURpc3BsYXkoKTtcbiAgICBlbnRlckhvb2sgJiYgZW50ZXJIb29rKGVsLCBjYik7XG4gIH1cblxuICBpZiAoIWV4cGVjdHNDU1MgJiYgIXVzZXJXYW50c0NvbnRyb2wpIHtcbiAgICBjYigpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGxlYXZlICh2bm9kZSwgcm0pIHtcbiAgdmFyIGVsID0gdm5vZGUuZWxtO1xuXG4gIC8vIGNhbGwgZW50ZXIgY2FsbGJhY2sgbm93XG4gIGlmIChpc0RlZihlbC5fZW50ZXJDYikpIHtcbiAgICBlbC5fZW50ZXJDYi5jYW5jZWxsZWQgPSB0cnVlO1xuICAgIGVsLl9lbnRlckNiKCk7XG4gIH1cblxuICB2YXIgZGF0YSA9IHJlc29sdmVUcmFuc2l0aW9uKHZub2RlLmRhdGEudHJhbnNpdGlvbik7XG4gIGlmIChpc1VuZGVmKGRhdGEpIHx8IGVsLm5vZGVUeXBlICE9PSAxKSB7XG4gICAgcmV0dXJuIHJtKClcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoaXNEZWYoZWwuX2xlYXZlQ2IpKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICB2YXIgY3NzID0gZGF0YS5jc3M7XG4gIHZhciB0eXBlID0gZGF0YS50eXBlO1xuICB2YXIgbGVhdmVDbGFzcyA9IGRhdGEubGVhdmVDbGFzcztcbiAgdmFyIGxlYXZlVG9DbGFzcyA9IGRhdGEubGVhdmVUb0NsYXNzO1xuICB2YXIgbGVhdmVBY3RpdmVDbGFzcyA9IGRhdGEubGVhdmVBY3RpdmVDbGFzcztcbiAgdmFyIGJlZm9yZUxlYXZlID0gZGF0YS5iZWZvcmVMZWF2ZTtcbiAgdmFyIGxlYXZlID0gZGF0YS5sZWF2ZTtcbiAgdmFyIGFmdGVyTGVhdmUgPSBkYXRhLmFmdGVyTGVhdmU7XG4gIHZhciBsZWF2ZUNhbmNlbGxlZCA9IGRhdGEubGVhdmVDYW5jZWxsZWQ7XG4gIHZhciBkZWxheUxlYXZlID0gZGF0YS5kZWxheUxlYXZlO1xuICB2YXIgZHVyYXRpb24gPSBkYXRhLmR1cmF0aW9uO1xuXG4gIHZhciBleHBlY3RzQ1NTID0gY3NzICE9PSBmYWxzZSAmJiAhaXNJRTk7XG4gIHZhciB1c2VyV2FudHNDb250cm9sID0gZ2V0SG9va0FyZ3VtZW50c0xlbmd0aChsZWF2ZSk7XG5cbiAgdmFyIGV4cGxpY2l0TGVhdmVEdXJhdGlvbiA9IHRvTnVtYmVyKFxuICAgIGlzT2JqZWN0KGR1cmF0aW9uKVxuICAgICAgPyBkdXJhdGlvbi5sZWF2ZVxuICAgICAgOiBkdXJhdGlvblxuICApO1xuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGlzRGVmKGV4cGxpY2l0TGVhdmVEdXJhdGlvbikpIHtcbiAgICBjaGVja0R1cmF0aW9uKGV4cGxpY2l0TGVhdmVEdXJhdGlvbiwgJ2xlYXZlJywgdm5vZGUpO1xuICB9XG5cbiAgdmFyIGNiID0gZWwuX2xlYXZlQ2IgPSBvbmNlKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoZWwucGFyZW50Tm9kZSAmJiBlbC5wYXJlbnROb2RlLl9wZW5kaW5nKSB7XG4gICAgICBlbC5wYXJlbnROb2RlLl9wZW5kaW5nW3Zub2RlLmtleV0gPSBudWxsO1xuICAgIH1cbiAgICBpZiAoZXhwZWN0c0NTUykge1xuICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKGVsLCBsZWF2ZVRvQ2xhc3MpO1xuICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKGVsLCBsZWF2ZUFjdGl2ZUNsYXNzKTtcbiAgICB9XG4gICAgaWYgKGNiLmNhbmNlbGxlZCkge1xuICAgICAgaWYgKGV4cGVjdHNDU1MpIHtcbiAgICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKGVsLCBsZWF2ZUNsYXNzKTtcbiAgICAgIH1cbiAgICAgIGxlYXZlQ2FuY2VsbGVkICYmIGxlYXZlQ2FuY2VsbGVkKGVsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcm0oKTtcbiAgICAgIGFmdGVyTGVhdmUgJiYgYWZ0ZXJMZWF2ZShlbCk7XG4gICAgfVxuICAgIGVsLl9sZWF2ZUNiID0gbnVsbDtcbiAgfSk7XG5cbiAgaWYgKGRlbGF5TGVhdmUpIHtcbiAgICBkZWxheUxlYXZlKHBlcmZvcm1MZWF2ZSk7XG4gIH0gZWxzZSB7XG4gICAgcGVyZm9ybUxlYXZlKCk7XG4gIH1cblxuICBmdW5jdGlvbiBwZXJmb3JtTGVhdmUgKCkge1xuICAgIC8vIHRoZSBkZWxheWVkIGxlYXZlIG1heSBoYXZlIGFscmVhZHkgYmVlbiBjYW5jZWxsZWRcbiAgICBpZiAoY2IuY2FuY2VsbGVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgLy8gcmVjb3JkIGxlYXZpbmcgZWxlbWVudFxuICAgIGlmICghdm5vZGUuZGF0YS5zaG93ICYmIGVsLnBhcmVudE5vZGUpIHtcbiAgICAgIChlbC5wYXJlbnROb2RlLl9wZW5kaW5nIHx8IChlbC5wYXJlbnROb2RlLl9wZW5kaW5nID0ge30pKVsodm5vZGUua2V5KV0gPSB2bm9kZTtcbiAgICB9XG4gICAgYmVmb3JlTGVhdmUgJiYgYmVmb3JlTGVhdmUoZWwpO1xuICAgIGlmIChleHBlY3RzQ1NTKSB7XG4gICAgICBhZGRUcmFuc2l0aW9uQ2xhc3MoZWwsIGxlYXZlQ2xhc3MpO1xuICAgICAgYWRkVHJhbnNpdGlvbkNsYXNzKGVsLCBsZWF2ZUFjdGl2ZUNsYXNzKTtcbiAgICAgIG5leHRGcmFtZShmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJlbW92ZVRyYW5zaXRpb25DbGFzcyhlbCwgbGVhdmVDbGFzcyk7XG4gICAgICAgIGlmICghY2IuY2FuY2VsbGVkKSB7XG4gICAgICAgICAgYWRkVHJhbnNpdGlvbkNsYXNzKGVsLCBsZWF2ZVRvQ2xhc3MpO1xuICAgICAgICAgIGlmICghdXNlcldhbnRzQ29udHJvbCkge1xuICAgICAgICAgICAgaWYgKGlzVmFsaWREdXJhdGlvbihleHBsaWNpdExlYXZlRHVyYXRpb24pKSB7XG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoY2IsIGV4cGxpY2l0TGVhdmVEdXJhdGlvbik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB3aGVuVHJhbnNpdGlvbkVuZHMoZWwsIHR5cGUsIGNiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBsZWF2ZSAmJiBsZWF2ZShlbCwgY2IpO1xuICAgIGlmICghZXhwZWN0c0NTUyAmJiAhdXNlcldhbnRzQ29udHJvbCkge1xuICAgICAgY2IoKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gb25seSB1c2VkIGluIGRldiBtb2RlXG5mdW5jdGlvbiBjaGVja0R1cmF0aW9uICh2YWwsIG5hbWUsIHZub2RlKSB7XG4gIGlmICh0eXBlb2YgdmFsICE9PSAnbnVtYmVyJykge1xuICAgIHdhcm4oXG4gICAgICBcIjx0cmFuc2l0aW9uPiBleHBsaWNpdCBcIiArIG5hbWUgKyBcIiBkdXJhdGlvbiBpcyBub3QgYSB2YWxpZCBudW1iZXIgLSBcIiArXG4gICAgICBcImdvdCBcIiArIChKU09OLnN0cmluZ2lmeSh2YWwpKSArIFwiLlwiLFxuICAgICAgdm5vZGUuY29udGV4dFxuICAgICk7XG4gIH0gZWxzZSBpZiAoaXNOYU4odmFsKSkge1xuICAgIHdhcm4oXG4gICAgICBcIjx0cmFuc2l0aW9uPiBleHBsaWNpdCBcIiArIG5hbWUgKyBcIiBkdXJhdGlvbiBpcyBOYU4gLSBcIiArXG4gICAgICAndGhlIGR1cmF0aW9uIGV4cHJlc3Npb24gbWlnaHQgYmUgaW5jb3JyZWN0LicsXG4gICAgICB2bm9kZS5jb250ZXh0XG4gICAgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc1ZhbGlkRHVyYXRpb24gKHZhbCkge1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ251bWJlcicgJiYgIWlzTmFOKHZhbClcbn1cblxuLyoqXG4gKiBOb3JtYWxpemUgYSB0cmFuc2l0aW9uIGhvb2sncyBhcmd1bWVudCBsZW5ndGguIFRoZSBob29rIG1heSBiZTpcbiAqIC0gYSBtZXJnZWQgaG9vayAoaW52b2tlcikgd2l0aCB0aGUgb3JpZ2luYWwgaW4gLmZuc1xuICogLSBhIHdyYXBwZWQgY29tcG9uZW50IG1ldGhvZCAoY2hlY2sgLl9sZW5ndGgpXG4gKiAtIGEgcGxhaW4gZnVuY3Rpb24gKC5sZW5ndGgpXG4gKi9cbmZ1bmN0aW9uIGdldEhvb2tBcmd1bWVudHNMZW5ndGggKGZuKSB7XG4gIGlmIChpc1VuZGVmKGZuKSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIHZhciBpbnZva2VyRm5zID0gZm4uZm5zO1xuICBpZiAoaXNEZWYoaW52b2tlckZucykpIHtcbiAgICAvLyBpbnZva2VyXG4gICAgcmV0dXJuIGdldEhvb2tBcmd1bWVudHNMZW5ndGgoXG4gICAgICBBcnJheS5pc0FycmF5KGludm9rZXJGbnMpXG4gICAgICAgID8gaW52b2tlckZuc1swXVxuICAgICAgICA6IGludm9rZXJGbnNcbiAgICApXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIChmbi5fbGVuZ3RoIHx8IGZuLmxlbmd0aCkgPiAxXG4gIH1cbn1cblxuZnVuY3Rpb24gX2VudGVyIChfLCB2bm9kZSkge1xuICBpZiAodm5vZGUuZGF0YS5zaG93ICE9PSB0cnVlKSB7XG4gICAgZW50ZXIodm5vZGUpO1xuICB9XG59XG5cbnZhciB0cmFuc2l0aW9uID0gaW5Ccm93c2VyID8ge1xuICBjcmVhdGU6IF9lbnRlcixcbiAgYWN0aXZhdGU6IF9lbnRlcixcbiAgcmVtb3ZlOiBmdW5jdGlvbiByZW1vdmUkJDEgKHZub2RlLCBybSkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHZub2RlLmRhdGEuc2hvdyAhPT0gdHJ1ZSkge1xuICAgICAgbGVhdmUodm5vZGUsIHJtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcm0oKTtcbiAgICB9XG4gIH1cbn0gOiB7fTtcblxudmFyIHBsYXRmb3JtTW9kdWxlcyA9IFtcbiAgYXR0cnMsXG4gIGtsYXNzLFxuICBldmVudHMsXG4gIGRvbVByb3BzLFxuICBzdHlsZSxcbiAgdHJhbnNpdGlvblxuXTtcblxuLyogICovXG5cbi8vIHRoZSBkaXJlY3RpdmUgbW9kdWxlIHNob3VsZCBiZSBhcHBsaWVkIGxhc3QsIGFmdGVyIGFsbFxuLy8gYnVpbHQtaW4gbW9kdWxlcyBoYXZlIGJlZW4gYXBwbGllZC5cbnZhciBtb2R1bGVzID0gcGxhdGZvcm1Nb2R1bGVzLmNvbmNhdChiYXNlTW9kdWxlcyk7XG5cbnZhciBwYXRjaCA9IGNyZWF0ZVBhdGNoRnVuY3Rpb24oeyBub2RlT3BzOiBub2RlT3BzLCBtb2R1bGVzOiBtb2R1bGVzIH0pO1xuXG4vKipcbiAqIE5vdCB0eXBlIGNoZWNraW5nIHRoaXMgZmlsZSBiZWNhdXNlIGZsb3cgZG9lc24ndCBsaWtlIGF0dGFjaGluZ1xuICogcHJvcGVydGllcyB0byBFbGVtZW50cy5cbiAqL1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbmlmIChpc0lFOSkge1xuICAvLyBodHRwOi8vd3d3Lm1hdHRzNDExLmNvbS9wb3N0L2ludGVybmV0LWV4cGxvcmVyLTktb25pbnB1dC9cbiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2VsZWN0aW9uY2hhbmdlJywgZnVuY3Rpb24gKCkge1xuICAgIHZhciBlbCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKGVsICYmIGVsLnZtb2RlbCkge1xuICAgICAgdHJpZ2dlcihlbCwgJ2lucHV0Jyk7XG4gICAgfVxuICB9KTtcbn1cblxudmFyIGRpcmVjdGl2ZSA9IHtcbiAgaW5zZXJ0ZWQ6IGZ1bmN0aW9uIGluc2VydGVkIChlbCwgYmluZGluZywgdm5vZGUsIG9sZFZub2RlKSB7XG4gICAgaWYgKHZub2RlLnRhZyA9PT0gJ3NlbGVjdCcpIHtcbiAgICAgIC8vICM2OTAzXG4gICAgICBpZiAob2xkVm5vZGUuZWxtICYmICFvbGRWbm9kZS5lbG0uX3ZPcHRpb25zKSB7XG4gICAgICAgIG1lcmdlVk5vZGVIb29rKHZub2RlLCAncG9zdHBhdGNoJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGRpcmVjdGl2ZS5jb21wb25lbnRVcGRhdGVkKGVsLCBiaW5kaW5nLCB2bm9kZSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0U2VsZWN0ZWQoZWwsIGJpbmRpbmcsIHZub2RlLmNvbnRleHQpO1xuICAgICAgfVxuICAgICAgZWwuX3ZPcHRpb25zID0gW10ubWFwLmNhbGwoZWwub3B0aW9ucywgZ2V0VmFsdWUpO1xuICAgIH0gZWxzZSBpZiAodm5vZGUudGFnID09PSAndGV4dGFyZWEnIHx8IGlzVGV4dElucHV0VHlwZShlbC50eXBlKSkge1xuICAgICAgZWwuX3ZNb2RpZmllcnMgPSBiaW5kaW5nLm1vZGlmaWVycztcbiAgICAgIGlmICghYmluZGluZy5tb2RpZmllcnMubGF6eSkge1xuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdjb21wb3NpdGlvbnN0YXJ0Jywgb25Db21wb3NpdGlvblN0YXJ0KTtcbiAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcignY29tcG9zaXRpb25lbmQnLCBvbkNvbXBvc2l0aW9uRW5kKTtcbiAgICAgICAgLy8gU2FmYXJpIDwgMTAuMiAmIFVJV2ViVmlldyBkb2Vzbid0IGZpcmUgY29tcG9zaXRpb25lbmQgd2hlblxuICAgICAgICAvLyBzd2l0Y2hpbmcgZm9jdXMgYmVmb3JlIGNvbmZpcm1pbmcgY29tcG9zaXRpb24gY2hvaWNlXG4gICAgICAgIC8vIHRoaXMgYWxzbyBmaXhlcyB0aGUgaXNzdWUgd2hlcmUgc29tZSBicm93c2VycyBlLmcuIGlPUyBDaHJvbWVcbiAgICAgICAgLy8gZmlyZXMgXCJjaGFuZ2VcIiBpbnN0ZWFkIG9mIFwiaW5wdXRcIiBvbiBhdXRvY29tcGxldGUuXG4gICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIG9uQ29tcG9zaXRpb25FbmQpO1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgICAgaWYgKGlzSUU5KSB7XG4gICAgICAgICAgZWwudm1vZGVsID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICBjb21wb25lbnRVcGRhdGVkOiBmdW5jdGlvbiBjb21wb25lbnRVcGRhdGVkIChlbCwgYmluZGluZywgdm5vZGUpIHtcbiAgICBpZiAodm5vZGUudGFnID09PSAnc2VsZWN0Jykge1xuICAgICAgc2V0U2VsZWN0ZWQoZWwsIGJpbmRpbmcsIHZub2RlLmNvbnRleHQpO1xuICAgICAgLy8gaW4gY2FzZSB0aGUgb3B0aW9ucyByZW5kZXJlZCBieSB2LWZvciBoYXZlIGNoYW5nZWQsXG4gICAgICAvLyBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHZhbHVlIGlzIG91dC1vZi1zeW5jIHdpdGggdGhlIHJlbmRlcmVkIG9wdGlvbnMuXG4gICAgICAvLyBkZXRlY3Qgc3VjaCBjYXNlcyBhbmQgZmlsdGVyIG91dCB2YWx1ZXMgdGhhdCBubyBsb25nZXIgaGFzIGEgbWF0Y2hpbmdcbiAgICAgIC8vIG9wdGlvbiBpbiB0aGUgRE9NLlxuICAgICAgdmFyIHByZXZPcHRpb25zID0gZWwuX3ZPcHRpb25zO1xuICAgICAgdmFyIGN1ck9wdGlvbnMgPSBlbC5fdk9wdGlvbnMgPSBbXS5tYXAuY2FsbChlbC5vcHRpb25zLCBnZXRWYWx1ZSk7XG4gICAgICBpZiAoY3VyT3B0aW9ucy5zb21lKGZ1bmN0aW9uIChvLCBpKSB7IHJldHVybiAhbG9vc2VFcXVhbChvLCBwcmV2T3B0aW9uc1tpXSk7IH0pKSB7XG4gICAgICAgIC8vIHRyaWdnZXIgY2hhbmdlIGV2ZW50IGlmXG4gICAgICAgIC8vIG5vIG1hdGNoaW5nIG9wdGlvbiBmb3VuZCBmb3IgYXQgbGVhc3Qgb25lIHZhbHVlXG4gICAgICAgIHZhciBuZWVkUmVzZXQgPSBlbC5tdWx0aXBsZVxuICAgICAgICAgID8gYmluZGluZy52YWx1ZS5zb21lKGZ1bmN0aW9uICh2KSB7IHJldHVybiBoYXNOb01hdGNoaW5nT3B0aW9uKHYsIGN1ck9wdGlvbnMpOyB9KVxuICAgICAgICAgIDogYmluZGluZy52YWx1ZSAhPT0gYmluZGluZy5vbGRWYWx1ZSAmJiBoYXNOb01hdGNoaW5nT3B0aW9uKGJpbmRpbmcudmFsdWUsIGN1ck9wdGlvbnMpO1xuICAgICAgICBpZiAobmVlZFJlc2V0KSB7XG4gICAgICAgICAgdHJpZ2dlcihlbCwgJ2NoYW5nZScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG5mdW5jdGlvbiBzZXRTZWxlY3RlZCAoZWwsIGJpbmRpbmcsIHZtKSB7XG4gIGFjdHVhbGx5U2V0U2VsZWN0ZWQoZWwsIGJpbmRpbmcsIHZtKTtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChpc0lFIHx8IGlzRWRnZSkge1xuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgYWN0dWFsbHlTZXRTZWxlY3RlZChlbCwgYmluZGluZywgdm0pO1xuICAgIH0sIDApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFjdHVhbGx5U2V0U2VsZWN0ZWQgKGVsLCBiaW5kaW5nLCB2bSkge1xuICB2YXIgdmFsdWUgPSBiaW5kaW5nLnZhbHVlO1xuICB2YXIgaXNNdWx0aXBsZSA9IGVsLm11bHRpcGxlO1xuICBpZiAoaXNNdWx0aXBsZSAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICBcIjxzZWxlY3QgbXVsdGlwbGUgdi1tb2RlbD1cXFwiXCIgKyAoYmluZGluZy5leHByZXNzaW9uKSArIFwiXFxcIj4gXCIgK1xuICAgICAgXCJleHBlY3RzIGFuIEFycmF5IHZhbHVlIGZvciBpdHMgYmluZGluZywgYnV0IGdvdCBcIiArIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpLnNsaWNlKDgsIC0xKSksXG4gICAgICB2bVxuICAgICk7XG4gICAgcmV0dXJuXG4gIH1cbiAgdmFyIHNlbGVjdGVkLCBvcHRpb247XG4gIGZvciAodmFyIGkgPSAwLCBsID0gZWwub3B0aW9ucy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBvcHRpb24gPSBlbC5vcHRpb25zW2ldO1xuICAgIGlmIChpc011bHRpcGxlKSB7XG4gICAgICBzZWxlY3RlZCA9IGxvb3NlSW5kZXhPZih2YWx1ZSwgZ2V0VmFsdWUob3B0aW9uKSkgPiAtMTtcbiAgICAgIGlmIChvcHRpb24uc2VsZWN0ZWQgIT09IHNlbGVjdGVkKSB7XG4gICAgICAgIG9wdGlvbi5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobG9vc2VFcXVhbChnZXRWYWx1ZShvcHRpb24pLCB2YWx1ZSkpIHtcbiAgICAgICAgaWYgKGVsLnNlbGVjdGVkSW5kZXggIT09IGkpIHtcbiAgICAgICAgICBlbC5zZWxlY3RlZEluZGV4ID0gaTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKCFpc011bHRpcGxlKSB7XG4gICAgZWwuc2VsZWN0ZWRJbmRleCA9IC0xO1xuICB9XG59XG5cbmZ1bmN0aW9uIGhhc05vTWF0Y2hpbmdPcHRpb24gKHZhbHVlLCBvcHRpb25zKSB7XG4gIHJldHVybiBvcHRpb25zLmV2ZXJ5KGZ1bmN0aW9uIChvKSB7IHJldHVybiAhbG9vc2VFcXVhbChvLCB2YWx1ZSk7IH0pXG59XG5cbmZ1bmN0aW9uIGdldFZhbHVlIChvcHRpb24pIHtcbiAgcmV0dXJuICdfdmFsdWUnIGluIG9wdGlvblxuICAgID8gb3B0aW9uLl92YWx1ZVxuICAgIDogb3B0aW9uLnZhbHVlXG59XG5cbmZ1bmN0aW9uIG9uQ29tcG9zaXRpb25TdGFydCAoZSkge1xuICBlLnRhcmdldC5jb21wb3NpbmcgPSB0cnVlO1xufVxuXG5mdW5jdGlvbiBvbkNvbXBvc2l0aW9uRW5kIChlKSB7XG4gIC8vIHByZXZlbnQgdHJpZ2dlcmluZyBhbiBpbnB1dCBldmVudCBmb3Igbm8gcmVhc29uXG4gIGlmICghZS50YXJnZXQuY29tcG9zaW5nKSB7IHJldHVybiB9XG4gIGUudGFyZ2V0LmNvbXBvc2luZyA9IGZhbHNlO1xuICB0cmlnZ2VyKGUudGFyZ2V0LCAnaW5wdXQnKTtcbn1cblxuZnVuY3Rpb24gdHJpZ2dlciAoZWwsIHR5cGUpIHtcbiAgdmFyIGUgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnSFRNTEV2ZW50cycpO1xuICBlLmluaXRFdmVudCh0eXBlLCB0cnVlLCB0cnVlKTtcbiAgZWwuZGlzcGF0Y2hFdmVudChlKTtcbn1cblxuLyogICovXG5cbi8vIHJlY3Vyc2l2ZWx5IHNlYXJjaCBmb3IgcG9zc2libGUgdHJhbnNpdGlvbiBkZWZpbmVkIGluc2lkZSB0aGUgY29tcG9uZW50IHJvb3RcbmZ1bmN0aW9uIGxvY2F0ZU5vZGUgKHZub2RlKSB7XG4gIHJldHVybiB2bm9kZS5jb21wb25lbnRJbnN0YW5jZSAmJiAoIXZub2RlLmRhdGEgfHwgIXZub2RlLmRhdGEudHJhbnNpdGlvbilcbiAgICA/IGxvY2F0ZU5vZGUodm5vZGUuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlKVxuICAgIDogdm5vZGVcbn1cblxudmFyIHNob3cgPSB7XG4gIGJpbmQ6IGZ1bmN0aW9uIGJpbmQgKGVsLCByZWYsIHZub2RlKSB7XG4gICAgdmFyIHZhbHVlID0gcmVmLnZhbHVlO1xuXG4gICAgdm5vZGUgPSBsb2NhdGVOb2RlKHZub2RlKTtcbiAgICB2YXIgdHJhbnNpdGlvbiQkMSA9IHZub2RlLmRhdGEgJiYgdm5vZGUuZGF0YS50cmFuc2l0aW9uO1xuICAgIHZhciBvcmlnaW5hbERpc3BsYXkgPSBlbC5fX3ZPcmlnaW5hbERpc3BsYXkgPVxuICAgICAgZWwuc3R5bGUuZGlzcGxheSA9PT0gJ25vbmUnID8gJycgOiBlbC5zdHlsZS5kaXNwbGF5O1xuICAgIGlmICh2YWx1ZSAmJiB0cmFuc2l0aW9uJCQxKSB7XG4gICAgICB2bm9kZS5kYXRhLnNob3cgPSB0cnVlO1xuICAgICAgZW50ZXIodm5vZGUsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZWwuc3R5bGUuZGlzcGxheSA9IG9yaWdpbmFsRGlzcGxheTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbC5zdHlsZS5kaXNwbGF5ID0gdmFsdWUgPyBvcmlnaW5hbERpc3BsYXkgOiAnbm9uZSc7XG4gICAgfVxuICB9LFxuXG4gIHVwZGF0ZTogZnVuY3Rpb24gdXBkYXRlIChlbCwgcmVmLCB2bm9kZSkge1xuICAgIHZhciB2YWx1ZSA9IHJlZi52YWx1ZTtcbiAgICB2YXIgb2xkVmFsdWUgPSByZWYub2xkVmFsdWU7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoIXZhbHVlID09PSAhb2xkVmFsdWUpIHsgcmV0dXJuIH1cbiAgICB2bm9kZSA9IGxvY2F0ZU5vZGUodm5vZGUpO1xuICAgIHZhciB0cmFuc2l0aW9uJCQxID0gdm5vZGUuZGF0YSAmJiB2bm9kZS5kYXRhLnRyYW5zaXRpb247XG4gICAgaWYgKHRyYW5zaXRpb24kJDEpIHtcbiAgICAgIHZub2RlLmRhdGEuc2hvdyA9IHRydWU7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgZW50ZXIodm5vZGUsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBlbC5zdHlsZS5kaXNwbGF5ID0gZWwuX192T3JpZ2luYWxEaXNwbGF5O1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxlYXZlKHZub2RlLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgZWwuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsLnN0eWxlLmRpc3BsYXkgPSB2YWx1ZSA/IGVsLl9fdk9yaWdpbmFsRGlzcGxheSA6ICdub25lJztcbiAgICB9XG4gIH0sXG5cbiAgdW5iaW5kOiBmdW5jdGlvbiB1bmJpbmQgKFxuICAgIGVsLFxuICAgIGJpbmRpbmcsXG4gICAgdm5vZGUsXG4gICAgb2xkVm5vZGUsXG4gICAgaXNEZXN0cm95XG4gICkge1xuICAgIGlmICghaXNEZXN0cm95KSB7XG4gICAgICBlbC5zdHlsZS5kaXNwbGF5ID0gZWwuX192T3JpZ2luYWxEaXNwbGF5O1xuICAgIH1cbiAgfVxufTtcblxudmFyIHBsYXRmb3JtRGlyZWN0aXZlcyA9IHtcbiAgbW9kZWw6IGRpcmVjdGl2ZSxcbiAgc2hvdzogc2hvd1xufTtcblxuLyogICovXG5cbnZhciB0cmFuc2l0aW9uUHJvcHMgPSB7XG4gIG5hbWU6IFN0cmluZyxcbiAgYXBwZWFyOiBCb29sZWFuLFxuICBjc3M6IEJvb2xlYW4sXG4gIG1vZGU6IFN0cmluZyxcbiAgdHlwZTogU3RyaW5nLFxuICBlbnRlckNsYXNzOiBTdHJpbmcsXG4gIGxlYXZlQ2xhc3M6IFN0cmluZyxcbiAgZW50ZXJUb0NsYXNzOiBTdHJpbmcsXG4gIGxlYXZlVG9DbGFzczogU3RyaW5nLFxuICBlbnRlckFjdGl2ZUNsYXNzOiBTdHJpbmcsXG4gIGxlYXZlQWN0aXZlQ2xhc3M6IFN0cmluZyxcbiAgYXBwZWFyQ2xhc3M6IFN0cmluZyxcbiAgYXBwZWFyQWN0aXZlQ2xhc3M6IFN0cmluZyxcbiAgYXBwZWFyVG9DbGFzczogU3RyaW5nLFxuICBkdXJhdGlvbjogW051bWJlciwgU3RyaW5nLCBPYmplY3RdXG59O1xuXG4vLyBpbiBjYXNlIHRoZSBjaGlsZCBpcyBhbHNvIGFuIGFic3RyYWN0IGNvbXBvbmVudCwgZS5nLiA8a2VlcC1hbGl2ZT5cbi8vIHdlIHdhbnQgdG8gcmVjdXJzaXZlbHkgcmV0cmlldmUgdGhlIHJlYWwgY29tcG9uZW50IHRvIGJlIHJlbmRlcmVkXG5mdW5jdGlvbiBnZXRSZWFsQ2hpbGQgKHZub2RlKSB7XG4gIHZhciBjb21wT3B0aW9ucyA9IHZub2RlICYmIHZub2RlLmNvbXBvbmVudE9wdGlvbnM7XG4gIGlmIChjb21wT3B0aW9ucyAmJiBjb21wT3B0aW9ucy5DdG9yLm9wdGlvbnMuYWJzdHJhY3QpIHtcbiAgICByZXR1cm4gZ2V0UmVhbENoaWxkKGdldEZpcnN0Q29tcG9uZW50Q2hpbGQoY29tcE9wdGlvbnMuY2hpbGRyZW4pKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiB2bm9kZVxuICB9XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RUcmFuc2l0aW9uRGF0YSAoY29tcCkge1xuICB2YXIgZGF0YSA9IHt9O1xuICB2YXIgb3B0aW9ucyA9IGNvbXAuJG9wdGlvbnM7XG4gIC8vIHByb3BzXG4gIGZvciAodmFyIGtleSBpbiBvcHRpb25zLnByb3BzRGF0YSkge1xuICAgIGRhdGFba2V5XSA9IGNvbXBba2V5XTtcbiAgfVxuICAvLyBldmVudHMuXG4gIC8vIGV4dHJhY3QgbGlzdGVuZXJzIGFuZCBwYXNzIHRoZW0gZGlyZWN0bHkgdG8gdGhlIHRyYW5zaXRpb24gbWV0aG9kc1xuICB2YXIgbGlzdGVuZXJzID0gb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzO1xuICBmb3IgKHZhciBrZXkkMSBpbiBsaXN0ZW5lcnMpIHtcbiAgICBkYXRhW2NhbWVsaXplKGtleSQxKV0gPSBsaXN0ZW5lcnNba2V5JDFdO1xuICB9XG4gIHJldHVybiBkYXRhXG59XG5cbmZ1bmN0aW9uIHBsYWNlaG9sZGVyIChoLCByYXdDaGlsZCkge1xuICBpZiAoL1xcZC1rZWVwLWFsaXZlJC8udGVzdChyYXdDaGlsZC50YWcpKSB7XG4gICAgcmV0dXJuIGgoJ2tlZXAtYWxpdmUnLCB7XG4gICAgICBwcm9wczogcmF3Q2hpbGQuY29tcG9uZW50T3B0aW9ucy5wcm9wc0RhdGFcbiAgICB9KVxuICB9XG59XG5cbmZ1bmN0aW9uIGhhc1BhcmVudFRyYW5zaXRpb24gKHZub2RlKSB7XG4gIHdoaWxlICgodm5vZGUgPSB2bm9kZS5wYXJlbnQpKSB7XG4gICAgaWYgKHZub2RlLmRhdGEudHJhbnNpdGlvbikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNTYW1lQ2hpbGQgKGNoaWxkLCBvbGRDaGlsZCkge1xuICByZXR1cm4gb2xkQ2hpbGQua2V5ID09PSBjaGlsZC5rZXkgJiYgb2xkQ2hpbGQudGFnID09PSBjaGlsZC50YWdcbn1cblxudmFyIGlzTm90VGV4dE5vZGUgPSBmdW5jdGlvbiAoYykgeyByZXR1cm4gYy50YWcgfHwgaXNBc3luY1BsYWNlaG9sZGVyKGMpOyB9O1xuXG52YXIgaXNWU2hvd0RpcmVjdGl2ZSA9IGZ1bmN0aW9uIChkKSB7IHJldHVybiBkLm5hbWUgPT09ICdzaG93JzsgfTtcblxudmFyIFRyYW5zaXRpb24gPSB7XG4gIG5hbWU6ICd0cmFuc2l0aW9uJyxcbiAgcHJvcHM6IHRyYW5zaXRpb25Qcm9wcyxcbiAgYWJzdHJhY3Q6IHRydWUsXG5cbiAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIgKGgpIHtcbiAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuICAgIHZhciBjaGlsZHJlbiA9IHRoaXMuJHNsb3RzLmRlZmF1bHQ7XG4gICAgaWYgKCFjaGlsZHJlbikge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gZmlsdGVyIG91dCB0ZXh0IG5vZGVzIChwb3NzaWJsZSB3aGl0ZXNwYWNlcylcbiAgICBjaGlsZHJlbiA9IGNoaWxkcmVuLmZpbHRlcihpc05vdFRleHROb2RlKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoIWNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gd2FybiBtdWx0aXBsZSBlbGVtZW50c1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGNoaWxkcmVuLmxlbmd0aCA+IDEpIHtcbiAgICAgIHdhcm4oXG4gICAgICAgICc8dHJhbnNpdGlvbj4gY2FuIG9ubHkgYmUgdXNlZCBvbiBhIHNpbmdsZSBlbGVtZW50LiBVc2UgJyArXG4gICAgICAgICc8dHJhbnNpdGlvbi1ncm91cD4gZm9yIGxpc3RzLicsXG4gICAgICAgIHRoaXMuJHBhcmVudFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB2YXIgbW9kZSA9IHRoaXMubW9kZTtcblxuICAgIC8vIHdhcm4gaW52YWxpZCBtb2RlXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiZcbiAgICAgIG1vZGUgJiYgbW9kZSAhPT0gJ2luLW91dCcgJiYgbW9kZSAhPT0gJ291dC1pbidcbiAgICApIHtcbiAgICAgIHdhcm4oXG4gICAgICAgICdpbnZhbGlkIDx0cmFuc2l0aW9uPiBtb2RlOiAnICsgbW9kZSxcbiAgICAgICAgdGhpcy4kcGFyZW50XG4gICAgICApO1xuICAgIH1cblxuICAgIHZhciByYXdDaGlsZCA9IGNoaWxkcmVuWzBdO1xuXG4gICAgLy8gaWYgdGhpcyBpcyBhIGNvbXBvbmVudCByb290IG5vZGUgYW5kIHRoZSBjb21wb25lbnQnc1xuICAgIC8vIHBhcmVudCBjb250YWluZXIgbm9kZSBhbHNvIGhhcyB0cmFuc2l0aW9uLCBza2lwLlxuICAgIGlmIChoYXNQYXJlbnRUcmFuc2l0aW9uKHRoaXMuJHZub2RlKSkge1xuICAgICAgcmV0dXJuIHJhd0NoaWxkXG4gICAgfVxuXG4gICAgLy8gYXBwbHkgdHJhbnNpdGlvbiBkYXRhIHRvIGNoaWxkXG4gICAgLy8gdXNlIGdldFJlYWxDaGlsZCgpIHRvIGlnbm9yZSBhYnN0cmFjdCBjb21wb25lbnRzIGUuZy4ga2VlcC1hbGl2ZVxuICAgIHZhciBjaGlsZCA9IGdldFJlYWxDaGlsZChyYXdDaGlsZCk7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKCFjaGlsZCkge1xuICAgICAgcmV0dXJuIHJhd0NoaWxkXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2xlYXZpbmcpIHtcbiAgICAgIHJldHVybiBwbGFjZWhvbGRlcihoLCByYXdDaGlsZClcbiAgICB9XG5cbiAgICAvLyBlbnN1cmUgYSBrZXkgdGhhdCBpcyB1bmlxdWUgdG8gdGhlIHZub2RlIHR5cGUgYW5kIHRvIHRoaXMgdHJhbnNpdGlvblxuICAgIC8vIGNvbXBvbmVudCBpbnN0YW5jZS4gVGhpcyBrZXkgd2lsbCBiZSB1c2VkIHRvIHJlbW92ZSBwZW5kaW5nIGxlYXZpbmcgbm9kZXNcbiAgICAvLyBkdXJpbmcgZW50ZXJpbmcuXG4gICAgdmFyIGlkID0gXCJfX3RyYW5zaXRpb24tXCIgKyAodGhpcy5fdWlkKSArIFwiLVwiO1xuICAgIGNoaWxkLmtleSA9IGNoaWxkLmtleSA9PSBudWxsXG4gICAgICA/IGNoaWxkLmlzQ29tbWVudFxuICAgICAgICA/IGlkICsgJ2NvbW1lbnQnXG4gICAgICAgIDogaWQgKyBjaGlsZC50YWdcbiAgICAgIDogaXNQcmltaXRpdmUoY2hpbGQua2V5KVxuICAgICAgICA/IChTdHJpbmcoY2hpbGQua2V5KS5pbmRleE9mKGlkKSA9PT0gMCA/IGNoaWxkLmtleSA6IGlkICsgY2hpbGQua2V5KVxuICAgICAgICA6IGNoaWxkLmtleTtcblxuICAgIHZhciBkYXRhID0gKGNoaWxkLmRhdGEgfHwgKGNoaWxkLmRhdGEgPSB7fSkpLnRyYW5zaXRpb24gPSBleHRyYWN0VHJhbnNpdGlvbkRhdGEodGhpcyk7XG4gICAgdmFyIG9sZFJhd0NoaWxkID0gdGhpcy5fdm5vZGU7XG4gICAgdmFyIG9sZENoaWxkID0gZ2V0UmVhbENoaWxkKG9sZFJhd0NoaWxkKTtcblxuICAgIC8vIG1hcmsgdi1zaG93XG4gICAgLy8gc28gdGhhdCB0aGUgdHJhbnNpdGlvbiBtb2R1bGUgY2FuIGhhbmQgb3ZlciB0aGUgY29udHJvbCB0byB0aGUgZGlyZWN0aXZlXG4gICAgaWYgKGNoaWxkLmRhdGEuZGlyZWN0aXZlcyAmJiBjaGlsZC5kYXRhLmRpcmVjdGl2ZXMuc29tZShpc1ZTaG93RGlyZWN0aXZlKSkge1xuICAgICAgY2hpbGQuZGF0YS5zaG93ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBvbGRDaGlsZCAmJlxuICAgICAgb2xkQ2hpbGQuZGF0YSAmJlxuICAgICAgIWlzU2FtZUNoaWxkKGNoaWxkLCBvbGRDaGlsZCkgJiZcbiAgICAgICFpc0FzeW5jUGxhY2Vob2xkZXIob2xkQ2hpbGQpICYmXG4gICAgICAvLyAjNjY4NyBjb21wb25lbnQgcm9vdCBpcyBhIGNvbW1lbnQgbm9kZVxuICAgICAgIShvbGRDaGlsZC5jb21wb25lbnRJbnN0YW5jZSAmJiBvbGRDaGlsZC5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUuaXNDb21tZW50KVxuICAgICkge1xuICAgICAgLy8gcmVwbGFjZSBvbGQgY2hpbGQgdHJhbnNpdGlvbiBkYXRhIHdpdGggZnJlc2ggb25lXG4gICAgICAvLyBpbXBvcnRhbnQgZm9yIGR5bmFtaWMgdHJhbnNpdGlvbnMhXG4gICAgICB2YXIgb2xkRGF0YSA9IG9sZENoaWxkLmRhdGEudHJhbnNpdGlvbiA9IGV4dGVuZCh7fSwgZGF0YSk7XG4gICAgICAvLyBoYW5kbGUgdHJhbnNpdGlvbiBtb2RlXG4gICAgICBpZiAobW9kZSA9PT0gJ291dC1pbicpIHtcbiAgICAgICAgLy8gcmV0dXJuIHBsYWNlaG9sZGVyIG5vZGUgYW5kIHF1ZXVlIHVwZGF0ZSB3aGVuIGxlYXZlIGZpbmlzaGVzXG4gICAgICAgIHRoaXMuX2xlYXZpbmcgPSB0cnVlO1xuICAgICAgICBtZXJnZVZOb2RlSG9vayhvbGREYXRhLCAnYWZ0ZXJMZWF2ZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB0aGlzJDEuX2xlYXZpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzJDEuJGZvcmNlVXBkYXRlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcGxhY2Vob2xkZXIoaCwgcmF3Q2hpbGQpXG4gICAgICB9IGVsc2UgaWYgKG1vZGUgPT09ICdpbi1vdXQnKSB7XG4gICAgICAgIGlmIChpc0FzeW5jUGxhY2Vob2xkZXIoY2hpbGQpKSB7XG4gICAgICAgICAgcmV0dXJuIG9sZFJhd0NoaWxkXG4gICAgICAgIH1cbiAgICAgICAgdmFyIGRlbGF5ZWRMZWF2ZTtcbiAgICAgICAgdmFyIHBlcmZvcm1MZWF2ZSA9IGZ1bmN0aW9uICgpIHsgZGVsYXllZExlYXZlKCk7IH07XG4gICAgICAgIG1lcmdlVk5vZGVIb29rKGRhdGEsICdhZnRlckVudGVyJywgcGVyZm9ybUxlYXZlKTtcbiAgICAgICAgbWVyZ2VWTm9kZUhvb2soZGF0YSwgJ2VudGVyQ2FuY2VsbGVkJywgcGVyZm9ybUxlYXZlKTtcbiAgICAgICAgbWVyZ2VWTm9kZUhvb2sob2xkRGF0YSwgJ2RlbGF5TGVhdmUnLCBmdW5jdGlvbiAobGVhdmUpIHsgZGVsYXllZExlYXZlID0gbGVhdmU7IH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByYXdDaGlsZFxuICB9XG59O1xuXG4vKiAgKi9cblxudmFyIHByb3BzID0gZXh0ZW5kKHtcbiAgdGFnOiBTdHJpbmcsXG4gIG1vdmVDbGFzczogU3RyaW5nXG59LCB0cmFuc2l0aW9uUHJvcHMpO1xuXG5kZWxldGUgcHJvcHMubW9kZTtcblxudmFyIFRyYW5zaXRpb25Hcm91cCA9IHtcbiAgcHJvcHM6IHByb3BzLFxuXG4gIGJlZm9yZU1vdW50OiBmdW5jdGlvbiBiZWZvcmVNb3VudCAoKSB7XG4gICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cbiAgICB2YXIgdXBkYXRlID0gdGhpcy5fdXBkYXRlO1xuICAgIHRoaXMuX3VwZGF0ZSA9IGZ1bmN0aW9uICh2bm9kZSwgaHlkcmF0aW5nKSB7XG4gICAgICB2YXIgcmVzdG9yZUFjdGl2ZUluc3RhbmNlID0gc2V0QWN0aXZlSW5zdGFuY2UodGhpcyQxKTtcbiAgICAgIC8vIGZvcmNlIHJlbW92aW5nIHBhc3NcbiAgICAgIHRoaXMkMS5fX3BhdGNoX18oXG4gICAgICAgIHRoaXMkMS5fdm5vZGUsXG4gICAgICAgIHRoaXMkMS5rZXB0LFxuICAgICAgICBmYWxzZSwgLy8gaHlkcmF0aW5nXG4gICAgICAgIHRydWUgLy8gcmVtb3ZlT25seSAoIWltcG9ydGFudCwgYXZvaWRzIHVubmVjZXNzYXJ5IG1vdmVzKVxuICAgICAgKTtcbiAgICAgIHRoaXMkMS5fdm5vZGUgPSB0aGlzJDEua2VwdDtcbiAgICAgIHJlc3RvcmVBY3RpdmVJbnN0YW5jZSgpO1xuICAgICAgdXBkYXRlLmNhbGwodGhpcyQxLCB2bm9kZSwgaHlkcmF0aW5nKTtcbiAgICB9O1xuICB9LFxuXG4gIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyIChoKSB7XG4gICAgdmFyIHRhZyA9IHRoaXMudGFnIHx8IHRoaXMuJHZub2RlLmRhdGEudGFnIHx8ICdzcGFuJztcbiAgICB2YXIgbWFwID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB2YXIgcHJldkNoaWxkcmVuID0gdGhpcy5wcmV2Q2hpbGRyZW4gPSB0aGlzLmNoaWxkcmVuO1xuICAgIHZhciByYXdDaGlsZHJlbiA9IHRoaXMuJHNsb3RzLmRlZmF1bHQgfHwgW107XG4gICAgdmFyIGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbiA9IFtdO1xuICAgIHZhciB0cmFuc2l0aW9uRGF0YSA9IGV4dHJhY3RUcmFuc2l0aW9uRGF0YSh0aGlzKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmF3Q2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBjID0gcmF3Q2hpbGRyZW5baV07XG4gICAgICBpZiAoYy50YWcpIHtcbiAgICAgICAgaWYgKGMua2V5ICE9IG51bGwgJiYgU3RyaW5nKGMua2V5KS5pbmRleE9mKCdfX3ZsaXN0JykgIT09IDApIHtcbiAgICAgICAgICBjaGlsZHJlbi5wdXNoKGMpO1xuICAgICAgICAgIG1hcFtjLmtleV0gPSBjXG4gICAgICAgICAgOyhjLmRhdGEgfHwgKGMuZGF0YSA9IHt9KSkudHJhbnNpdGlvbiA9IHRyYW5zaXRpb25EYXRhO1xuICAgICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICB2YXIgb3B0cyA9IGMuY29tcG9uZW50T3B0aW9ucztcbiAgICAgICAgICB2YXIgbmFtZSA9IG9wdHMgPyAob3B0cy5DdG9yLm9wdGlvbnMubmFtZSB8fCBvcHRzLnRhZyB8fCAnJykgOiBjLnRhZztcbiAgICAgICAgICB3YXJuKChcIjx0cmFuc2l0aW9uLWdyb3VwPiBjaGlsZHJlbiBtdXN0IGJlIGtleWVkOiA8XCIgKyBuYW1lICsgXCI+XCIpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwcmV2Q2hpbGRyZW4pIHtcbiAgICAgIHZhciBrZXB0ID0gW107XG4gICAgICB2YXIgcmVtb3ZlZCA9IFtdO1xuICAgICAgZm9yICh2YXIgaSQxID0gMDsgaSQxIDwgcHJldkNoaWxkcmVuLmxlbmd0aDsgaSQxKyspIHtcbiAgICAgICAgdmFyIGMkMSA9IHByZXZDaGlsZHJlbltpJDFdO1xuICAgICAgICBjJDEuZGF0YS50cmFuc2l0aW9uID0gdHJhbnNpdGlvbkRhdGE7XG4gICAgICAgIGMkMS5kYXRhLnBvcyA9IGMkMS5lbG0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGlmIChtYXBbYyQxLmtleV0pIHtcbiAgICAgICAgICBrZXB0LnB1c2goYyQxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZW1vdmVkLnB1c2goYyQxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5rZXB0ID0gaCh0YWcsIG51bGwsIGtlcHQpO1xuICAgICAgdGhpcy5yZW1vdmVkID0gcmVtb3ZlZDtcbiAgICB9XG5cbiAgICByZXR1cm4gaCh0YWcsIG51bGwsIGNoaWxkcmVuKVxuICB9LFxuXG4gIHVwZGF0ZWQ6IGZ1bmN0aW9uIHVwZGF0ZWQgKCkge1xuICAgIHZhciBjaGlsZHJlbiA9IHRoaXMucHJldkNoaWxkcmVuO1xuICAgIHZhciBtb3ZlQ2xhc3MgPSB0aGlzLm1vdmVDbGFzcyB8fCAoKHRoaXMubmFtZSB8fCAndicpICsgJy1tb3ZlJyk7XG4gICAgaWYgKCFjaGlsZHJlbi5sZW5ndGggfHwgIXRoaXMuaGFzTW92ZShjaGlsZHJlblswXS5lbG0sIG1vdmVDbGFzcykpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIHdlIGRpdmlkZSB0aGUgd29yayBpbnRvIHRocmVlIGxvb3BzIHRvIGF2b2lkIG1peGluZyBET00gcmVhZHMgYW5kIHdyaXRlc1xuICAgIC8vIGluIGVhY2ggaXRlcmF0aW9uIC0gd2hpY2ggaGVscHMgcHJldmVudCBsYXlvdXQgdGhyYXNoaW5nLlxuICAgIGNoaWxkcmVuLmZvckVhY2goY2FsbFBlbmRpbmdDYnMpO1xuICAgIGNoaWxkcmVuLmZvckVhY2gocmVjb3JkUG9zaXRpb24pO1xuICAgIGNoaWxkcmVuLmZvckVhY2goYXBwbHlUcmFuc2xhdGlvbik7XG5cbiAgICAvLyBmb3JjZSByZWZsb3cgdG8gcHV0IGV2ZXJ5dGhpbmcgaW4gcG9zaXRpb25cbiAgICAvLyBhc3NpZ24gdG8gdGhpcyB0byBhdm9pZCBiZWluZyByZW1vdmVkIGluIHRyZWUtc2hha2luZ1xuICAgIC8vICRmbG93LWRpc2FibGUtbGluZVxuICAgIHRoaXMuX3JlZmxvdyA9IGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0O1xuXG4gICAgY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiAoYykge1xuICAgICAgaWYgKGMuZGF0YS5tb3ZlZCkge1xuICAgICAgICB2YXIgZWwgPSBjLmVsbTtcbiAgICAgICAgdmFyIHMgPSBlbC5zdHlsZTtcbiAgICAgICAgYWRkVHJhbnNpdGlvbkNsYXNzKGVsLCBtb3ZlQ2xhc3MpO1xuICAgICAgICBzLnRyYW5zZm9ybSA9IHMuV2Via2l0VHJhbnNmb3JtID0gcy50cmFuc2l0aW9uRHVyYXRpb24gPSAnJztcbiAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcih0cmFuc2l0aW9uRW5kRXZlbnQsIGVsLl9tb3ZlQ2IgPSBmdW5jdGlvbiBjYiAoZSkge1xuICAgICAgICAgIGlmIChlICYmIGUudGFyZ2V0ICE9PSBlbCkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghZSB8fCAvdHJhbnNmb3JtJC8udGVzdChlLnByb3BlcnR5TmFtZSkpIHtcbiAgICAgICAgICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIodHJhbnNpdGlvbkVuZEV2ZW50LCBjYik7XG4gICAgICAgICAgICBlbC5fbW92ZUNiID0gbnVsbDtcbiAgICAgICAgICAgIHJlbW92ZVRyYW5zaXRpb25DbGFzcyhlbCwgbW92ZUNsYXNzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuXG4gIG1ldGhvZHM6IHtcbiAgICBoYXNNb3ZlOiBmdW5jdGlvbiBoYXNNb3ZlIChlbCwgbW92ZUNsYXNzKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgIGlmICghaGFzVHJhbnNpdGlvbikge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgaWYgKHRoaXMuX2hhc01vdmUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc01vdmVcbiAgICAgIH1cbiAgICAgIC8vIERldGVjdCB3aGV0aGVyIGFuIGVsZW1lbnQgd2l0aCB0aGUgbW92ZSBjbGFzcyBhcHBsaWVkIGhhc1xuICAgICAgLy8gQ1NTIHRyYW5zaXRpb25zLiBTaW5jZSB0aGUgZWxlbWVudCBtYXkgYmUgaW5zaWRlIGFuIGVudGVyaW5nXG4gICAgICAvLyB0cmFuc2l0aW9uIGF0IHRoaXMgdmVyeSBtb21lbnQsIHdlIG1ha2UgYSBjbG9uZSBvZiBpdCBhbmQgcmVtb3ZlXG4gICAgICAvLyBhbGwgb3RoZXIgdHJhbnNpdGlvbiBjbGFzc2VzIGFwcGxpZWQgdG8gZW5zdXJlIG9ubHkgdGhlIG1vdmUgY2xhc3NcbiAgICAgIC8vIGlzIGFwcGxpZWQuXG4gICAgICB2YXIgY2xvbmUgPSBlbC5jbG9uZU5vZGUoKTtcbiAgICAgIGlmIChlbC5fdHJhbnNpdGlvbkNsYXNzZXMpIHtcbiAgICAgICAgZWwuX3RyYW5zaXRpb25DbGFzc2VzLmZvckVhY2goZnVuY3Rpb24gKGNscykgeyByZW1vdmVDbGFzcyhjbG9uZSwgY2xzKTsgfSk7XG4gICAgICB9XG4gICAgICBhZGRDbGFzcyhjbG9uZSwgbW92ZUNsYXNzKTtcbiAgICAgIGNsb25lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICB0aGlzLiRlbC5hcHBlbmRDaGlsZChjbG9uZSk7XG4gICAgICB2YXIgaW5mbyA9IGdldFRyYW5zaXRpb25JbmZvKGNsb25lKTtcbiAgICAgIHRoaXMuJGVsLnJlbW92ZUNoaWxkKGNsb25lKTtcbiAgICAgIHJldHVybiAodGhpcy5faGFzTW92ZSA9IGluZm8uaGFzVHJhbnNmb3JtKVxuICAgIH1cbiAgfVxufTtcblxuZnVuY3Rpb24gY2FsbFBlbmRpbmdDYnMgKGMpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChjLmVsbS5fbW92ZUNiKSB7XG4gICAgYy5lbG0uX21vdmVDYigpO1xuICB9XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoYy5lbG0uX2VudGVyQ2IpIHtcbiAgICBjLmVsbS5fZW50ZXJDYigpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlY29yZFBvc2l0aW9uIChjKSB7XG4gIGMuZGF0YS5uZXdQb3MgPSBjLmVsbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbn1cblxuZnVuY3Rpb24gYXBwbHlUcmFuc2xhdGlvbiAoYykge1xuICB2YXIgb2xkUG9zID0gYy5kYXRhLnBvcztcbiAgdmFyIG5ld1BvcyA9IGMuZGF0YS5uZXdQb3M7XG4gIHZhciBkeCA9IG9sZFBvcy5sZWZ0IC0gbmV3UG9zLmxlZnQ7XG4gIHZhciBkeSA9IG9sZFBvcy50b3AgLSBuZXdQb3MudG9wO1xuICBpZiAoZHggfHwgZHkpIHtcbiAgICBjLmRhdGEubW92ZWQgPSB0cnVlO1xuICAgIHZhciBzID0gYy5lbG0uc3R5bGU7XG4gICAgcy50cmFuc2Zvcm0gPSBzLldlYmtpdFRyYW5zZm9ybSA9IFwidHJhbnNsYXRlKFwiICsgZHggKyBcInB4LFwiICsgZHkgKyBcInB4KVwiO1xuICAgIHMudHJhbnNpdGlvbkR1cmF0aW9uID0gJzBzJztcbiAgfVxufVxuXG52YXIgcGxhdGZvcm1Db21wb25lbnRzID0ge1xuICBUcmFuc2l0aW9uOiBUcmFuc2l0aW9uLFxuICBUcmFuc2l0aW9uR3JvdXA6IFRyYW5zaXRpb25Hcm91cFxufTtcblxuLyogICovXG5cbi8vIGluc3RhbGwgcGxhdGZvcm0gc3BlY2lmaWMgdXRpbHNcblZ1ZS5jb25maWcubXVzdFVzZVByb3AgPSBtdXN0VXNlUHJvcDtcblZ1ZS5jb25maWcuaXNSZXNlcnZlZFRhZyA9IGlzUmVzZXJ2ZWRUYWc7XG5WdWUuY29uZmlnLmlzUmVzZXJ2ZWRBdHRyID0gaXNSZXNlcnZlZEF0dHI7XG5WdWUuY29uZmlnLmdldFRhZ05hbWVzcGFjZSA9IGdldFRhZ05hbWVzcGFjZTtcblZ1ZS5jb25maWcuaXNVbmtub3duRWxlbWVudCA9IGlzVW5rbm93bkVsZW1lbnQ7XG5cbi8vIGluc3RhbGwgcGxhdGZvcm0gcnVudGltZSBkaXJlY3RpdmVzICYgY29tcG9uZW50c1xuZXh0ZW5kKFZ1ZS5vcHRpb25zLmRpcmVjdGl2ZXMsIHBsYXRmb3JtRGlyZWN0aXZlcyk7XG5leHRlbmQoVnVlLm9wdGlvbnMuY29tcG9uZW50cywgcGxhdGZvcm1Db21wb25lbnRzKTtcblxuLy8gaW5zdGFsbCBwbGF0Zm9ybSBwYXRjaCBmdW5jdGlvblxuVnVlLnByb3RvdHlwZS5fX3BhdGNoX18gPSBpbkJyb3dzZXIgPyBwYXRjaCA6IG5vb3A7XG5cbi8vIHB1YmxpYyBtb3VudCBtZXRob2RcblZ1ZS5wcm90b3R5cGUuJG1vdW50ID0gZnVuY3Rpb24gKFxuICBlbCxcbiAgaHlkcmF0aW5nXG4pIHtcbiAgZWwgPSBlbCAmJiBpbkJyb3dzZXIgPyBxdWVyeShlbCkgOiB1bmRlZmluZWQ7XG4gIHJldHVybiBtb3VudENvbXBvbmVudCh0aGlzLCBlbCwgaHlkcmF0aW5nKVxufTtcblxuLy8gZGV2dG9vbHMgZ2xvYmFsIGhvb2tcbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5pZiAoaW5Ccm93c2VyKSB7XG4gIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgIGlmIChjb25maWcuZGV2dG9vbHMpIHtcbiAgICAgIGlmIChkZXZ0b29scykge1xuICAgICAgICBkZXZ0b29scy5lbWl0KCdpbml0JywgVnVlKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiZcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICd0ZXN0J1xuICAgICAgKSB7XG4gICAgICAgIGNvbnNvbGVbY29uc29sZS5pbmZvID8gJ2luZm8nIDogJ2xvZyddKFxuICAgICAgICAgICdEb3dubG9hZCB0aGUgVnVlIERldnRvb2xzIGV4dGVuc2lvbiBmb3IgYSBiZXR0ZXIgZGV2ZWxvcG1lbnQgZXhwZXJpZW5jZTpcXG4nICtcbiAgICAgICAgICAnaHR0cHM6Ly9naXRodWIuY29tL3Z1ZWpzL3Z1ZS1kZXZ0b29scydcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiZcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAndGVzdCcgJiZcbiAgICAgIGNvbmZpZy5wcm9kdWN0aW9uVGlwICE9PSBmYWxzZSAmJlxuICAgICAgdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnXG4gICAgKSB7XG4gICAgICBjb25zb2xlW2NvbnNvbGUuaW5mbyA/ICdpbmZvJyA6ICdsb2cnXShcbiAgICAgICAgXCJZb3UgYXJlIHJ1bm5pbmcgVnVlIGluIGRldmVsb3BtZW50IG1vZGUuXFxuXCIgK1xuICAgICAgICBcIk1ha2Ugc3VyZSB0byB0dXJuIG9uIHByb2R1Y3Rpb24gbW9kZSB3aGVuIGRlcGxveWluZyBmb3IgcHJvZHVjdGlvbi5cXG5cIiArXG4gICAgICAgIFwiU2VlIG1vcmUgdGlwcyBhdCBodHRwczovL3Z1ZWpzLm9yZy9ndWlkZS9kZXBsb3ltZW50Lmh0bWxcIlxuICAgICAgKTtcbiAgICB9XG4gIH0sIDApO1xufVxuXG4vKiAgKi9cblxuZXhwb3J0IGRlZmF1bHQgVnVlO1xuIiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2FycmF5TGlrZVRvQXJyYXkoYXJyLCBsZW4pIHtcbiAgaWYgKGxlbiA9PSBudWxsIHx8IGxlbiA+IGFyci5sZW5ndGgpIGxlbiA9IGFyci5sZW5ndGg7XG5cbiAgZm9yICh2YXIgaSA9IDAsIGFycjIgPSBuZXcgQXJyYXkobGVuKTsgaSA8IGxlbjsgaSsrKSB7XG4gICAgYXJyMltpXSA9IGFycltpXTtcbiAgfVxuXG4gIHJldHVybiBhcnIyO1xufSIsImltcG9ydCBhcnJheUxpa2VUb0FycmF5IGZyb20gXCIuL2FycmF5TGlrZVRvQXJyYXkuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9hcnJheVdpdGhvdXRIb2xlcyhhcnIpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkgcmV0dXJuIGFycmF5TGlrZVRvQXJyYXkoYXJyKTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7XG4gIGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTtcbiAgfVxufSIsImZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07XG4gICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlO1xuICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTtcbiAgICBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7XG4gIGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpO1xuICBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7XG4gIHJldHVybiBDb25zdHJ1Y3Rvcjtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7XG4gIGlmIChrZXkgaW4gb2JqKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvYmpba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfaXRlcmFibGVUb0FycmF5KGl0ZXIpIHtcbiAgaWYgKHR5cGVvZiBTeW1ib2wgIT09IFwidW5kZWZpbmVkXCIgJiYgaXRlcltTeW1ib2wuaXRlcmF0b3JdICE9IG51bGwgfHwgaXRlcltcIkBAaXRlcmF0b3JcIl0gIT0gbnVsbCkgcmV0dXJuIEFycmF5LmZyb20oaXRlcik7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX25vbkl0ZXJhYmxlU3ByZWFkKCkge1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbn0iLCJpbXBvcnQgYXJyYXlXaXRob3V0SG9sZXMgZnJvbSBcIi4vYXJyYXlXaXRob3V0SG9sZXMuanNcIjtcbmltcG9ydCBpdGVyYWJsZVRvQXJyYXkgZnJvbSBcIi4vaXRlcmFibGVUb0FycmF5LmpzXCI7XG5pbXBvcnQgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkgZnJvbSBcIi4vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanNcIjtcbmltcG9ydCBub25JdGVyYWJsZVNwcmVhZCBmcm9tIFwiLi9ub25JdGVyYWJsZVNwcmVhZC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3RvQ29uc3VtYWJsZUFycmF5KGFycikge1xuICByZXR1cm4gYXJyYXlXaXRob3V0SG9sZXMoYXJyKSB8fCBpdGVyYWJsZVRvQXJyYXkoYXJyKSB8fCB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShhcnIpIHx8IG5vbkl0ZXJhYmxlU3ByZWFkKCk7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikge1xuICAgIF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikge1xuICAgICAgcmV0dXJuIHR5cGVvZiBvYmo7XG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgICAgIHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqO1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gX3R5cGVvZihvYmopO1xufSIsImltcG9ydCBhcnJheUxpa2VUb0FycmF5IGZyb20gXCIuL2FycmF5TGlrZVRvQXJyYXkuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShvLCBtaW5MZW4pIHtcbiAgaWYgKCFvKSByZXR1cm47XG4gIGlmICh0eXBlb2YgbyA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIGFycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTtcbiAgdmFyIG4gPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykuc2xpY2UoOCwgLTEpO1xuICBpZiAobiA9PT0gXCJPYmplY3RcIiAmJiBvLmNvbnN0cnVjdG9yKSBuID0gby5jb25zdHJ1Y3Rvci5uYW1lO1xuICBpZiAobiA9PT0gXCJNYXBcIiB8fCBuID09PSBcIlNldFwiKSByZXR1cm4gQXJyYXkuZnJvbShvKTtcbiAgaWYgKG4gPT09IFwiQXJndW1lbnRzXCIgfHwgL14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7XG59IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHRpZDogbW9kdWxlSWQsXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbi8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBfX3dlYnBhY2tfbW9kdWxlc19fO1xuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdGZ1bmN0aW9uKCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuXHRcdGZ1bmN0aW9uKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgZGVmaW5pdGlvbikge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmcgPSAoZnVuY3Rpb24oKSB7XG5cdGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gJ29iamVjdCcpIHJldHVybiBnbG9iYWxUaGlzO1xuXHR0cnkge1xuXHRcdHJldHVybiB0aGlzIHx8IG5ldyBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXHR9IGNhdGNoIChlKSB7XG5cdFx0aWYgKHR5cGVvZiB3aW5kb3cgPT09ICdvYmplY3QnKSByZXR1cm4gd2luZG93O1xuXHR9XG59KSgpOyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iaiwgcHJvcCkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCk7IH0iLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18uYiA9IGRvY3VtZW50LmJhc2VVUkkgfHwgc2VsZi5sb2NhdGlvbi5ocmVmO1xuXG4vLyBvYmplY3QgdG8gc3RvcmUgbG9hZGVkIGFuZCBsb2FkaW5nIGNodW5rc1xuLy8gdW5kZWZpbmVkID0gY2h1bmsgbm90IGxvYWRlZCwgbnVsbCA9IGNodW5rIHByZWxvYWRlZC9wcmVmZXRjaGVkXG4vLyBbcmVzb2x2ZSwgcmVqZWN0LCBQcm9taXNlXSA9IGNodW5rIGxvYWRpbmcsIDAgPSBjaHVuayBsb2FkZWRcbnZhciBpbnN0YWxsZWRDaHVua3MgPSB7XG5cdFwibWFpblwiOiAwXG59O1xuXG4vLyBubyBjaHVuayBvbiBkZW1hbmQgbG9hZGluZ1xuXG4vLyBubyBwcmVmZXRjaGluZ1xuXG4vLyBubyBwcmVsb2FkZWRcblxuLy8gbm8gSE1SXG5cbi8vIG5vIEhNUiBtYW5pZmVzdFxuXG4vLyBubyBvbiBjaHVua3MgbG9hZGVkXG5cbi8vIG5vIGpzb25wIGZ1bmN0aW9uIiwiaW1wb3J0IFZ1ZSBmcm9tICd2dWUnXG5pbXBvcnQgQXBwIGZyb20gJy4vYXBwJ1xuXG4vLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3F1YXNhcmZyYW1ld29yay9xdWFzYXIvaXNzdWVzLzE1NzZcbi8vIGZvciB0aGUgaW5mb3JtYXRpb24gYWJvdXQgUXVhc2FyIGludGVncmF0aW9uIGludG8gZXhpc3RpbmcgYXBwLlxuaW1wb3J0ICdxdWFzYXItZnJhbWV3b3JrL2Rpc3QvdW1kL3F1YXNhci5tYXQuY3NzJ1xuaW1wb3J0IFF1YXNhciBmcm9tICdxdWFzYXItZnJhbWV3b3JrL2Rpc3QvcXVhc2FyLm1hdC5lc20nXG5WdWUudXNlKFF1YXNhcilcblxubmV3IFZ1ZSh7XG5cdGVsOiAnI2FwcCcsXG5cdHJlbmRlcjogKGgpID0+IGgoQXBwKSxcbn0pXG4iXSwibmFtZXMiOlsiZGVmYXVsdCIsIkFuY2hvcnMiLCJDYXRlZ29yeSIsIlByZXZpZXciLCJTZWFyY2giLCJTa2lucyIsIkVtb2ppIiwiUGlja2VyIiwic3RvcmUiLCJ1bmNvbXByZXNzIiwiZnJlcXVlbnRseSIsIkVtb2ppSW5kZXgiLCJFbW9qaVZpZXciLCJFbW9qaURhdGEiLCJzYW5pdGl6ZSIsIl9TdHJpbmciLCJTdHJpbmciLCJmcm9tQ29kZVBvaW50Iiwic3RyaW5nRnJvbUNvZGVQb2ludCIsIk1BWF9TSVpFIiwiY29kZVVuaXRzIiwiaGlnaFN1cnJvZ2F0ZSIsImxvd1N1cnJvZ2F0ZSIsImluZGV4IiwibGVuZ3RoIiwiYXJndW1lbnRzIiwicmVzdWx0IiwiY29kZVBvaW50IiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJNYXRoIiwiZmxvb3IiLCJSYW5nZUVycm9yIiwicHVzaCIsImZyb21DaGFyQ29kZSIsImFwcGx5IiwiU1ZHcyIsImFjdGl2aXR5IiwiY3VzdG9tIiwiZmxhZ3MiLCJmb29kcyIsIm5hdHVyZSIsIm9iamVjdHMiLCJzbWlsZXlzIiwicGVvcGxlIiwicGxhY2VzIiwicmVjZW50Iiwic3ltYm9scyIsIm1hcHBpbmciLCJuYW1lIiwidW5pZmllZCIsIm5vbl9xdWFsaWZpZWQiLCJoYXNfaW1nX2FwcGxlIiwiaGFzX2ltZ19nb29nbGUiLCJoYXNfaW1nX3R3aXR0ZXIiLCJoYXNfaW1nX2ZhY2Vib29rIiwia2V5d29yZHMiLCJzaGVldCIsImVtb3RpY29ucyIsInRleHQiLCJzaG9ydF9uYW1lcyIsImFkZGVkX2luIiwiYnVpbGRTZWFyY2giLCJlbW9qaSIsInNlYXJjaCIsImFkZFRvU2VhcmNoIiwic3RyaW5ncyIsInNwbGl0IiwiQXJyYXkiLCJpc0FycmF5IiwiZm9yRWFjaCIsInN0cmluZyIsInMiLCJ0b0xvd2VyQ2FzZSIsImluZGV4T2YiLCJqb2luIiwiZGVlcEZyZWV6ZSIsIm9iamVjdCIsInByb3BOYW1lcyIsIk9iamVjdCIsImdldE93blByb3BlcnR5TmFtZXMiLCJ2YWx1ZSIsImZyZWV6ZSIsImRhdGEiLCJjb21wcmVzc2VkIiwiaWQiLCJlbW9qaXMiLCJrZXkiLCJ1bnNoaWZ0Iiwic2hlZXRfeCIsInNoZWV0X3kiLCJ0b0ZpeGVkIiwiaW50ZXJzZWN0IiwidW5pZmllZFRvTmF0aXZlIiwiU0hFRVRfQ09MVU1OUyIsIkNPTE9OU19SRUdFWCIsIlNLSU5TIiwiZW1vamlzVG9TaG93RmlsdGVyIiwiaW5jbHVkZSIsImV4Y2x1ZGUiLCJyZWNlbnRMZW5ndGgiLCJfZGF0YSIsIl9lbW9qaXNGaWx0ZXIiLCJfaW5jbHVkZSIsIl9leGNsdWRlIiwiX2N1c3RvbSIsIl9yZWNlbnQiLCJnZXQiLCJfZW1vamlzIiwiX25hdGl2ZUVtb2ppcyIsIl9lbW90aWNvbnMiLCJfY2F0ZWdvcmllcyIsIl9yZWNlbnRDYXRlZ29yeSIsIl9jdXN0b21DYXRlZ29yeSIsIl9zZWFyY2hJbmRleCIsImJ1aWxkSW5kZXgiLCJhbGxDYXRlZ29yaWVzIiwiY2F0ZWdvcmllcyIsImZpbHRlciIsIml0ZW0iLCJpbmNsdWRlcyIsInNvcnQiLCJhIiwiYiIsImluZGV4QSIsImluZGV4QiIsImNhdGVnb3J5RGF0YSIsImlzQ2F0ZWdvcnlOZWVkZWQiLCJjYXRlZ29yeSIsImVtb2ppSWQiLCJhZGRFbW9qaSIsImN1c3RvbUVtb2ppIiwiYWRkQ3VzdG9tRW1vamkiLCJtYXAiLCJoYXNFbW9qaSIsInNraW4iLCJtYXRjaGVzIiwibWF0Y2giLCJwYXJzZUludCIsImFsaWFzZXMiLCJoYXNPd25Qcm9wZXJ0eSIsImVtb2ppT2JqZWN0IiwiZ2V0U2tpbiIsIkVycm9yIiwia2V5cyIsInVuaWNvZGVFbW9qaSIsIm1heFJlc3VsdHMiLCJ2YWx1ZXMiLCJhbGxSZXN1bHRzIiwiY3VycmVudEluZGV4IiwiY2hhckluZGV4IiwiY2hhciIsInJlc3VsdHMiLCJzY29yZXMiLCJzdWIiLCJzdWJzdHIiLCJzdWJJbmRleCIsInNjb3JlIiwiYVNjb3JlIiwiYlNjb3JlIiwic2xpY2UiLCJlbW9qaURhdGEiLCJhc3NpZ24iLCJpc0Vtb2ppTmVlZGVkIiwibmF0aXZlIiwiX3NraW5zIiwiaWR4IiwiZW1vdGljb24iLCJjYXRlZ29yeV9pZCIsImlzSW5jbHVkZWQiLCJpc0V4Y2x1ZGVkIiwic2tpbl92YXJpYXRpb25zIiwic2tpbklkeCIsInNraW5LZXkiLCJ2YXJpYXRpb25EYXRhIiwic2tpbkRhdGEiLCJrIiwiX3Nhbml0aXplZCIsInNob3J0X25hbWUiLCJhZGp1c3RlZENvbHVtbnMiLCJ4IiwieSIsImNvbmNhdCIsIkJvb2xlYW4iLCJzZXQiLCJmYWxsYmFjayIsImVtb2ppVG9vbHRpcCIsImVtb2ppU2l6ZSIsIl9lbW9qaSIsIl9uYXRpdmUiLCJfc2tpbiIsIl9zZXQiLCJfZmFsbGJhY2siLCJjYW5SZW5kZXIiLCJfY2FuUmVuZGVyIiwiY3NzQ2xhc3MiLCJfY3NzQ2xhc3MiLCJjc3NTdHlsZSIsIl9jc3NTdHlsZSIsImNvbnRlbnQiLCJfY29udGVudCIsInRpdGxlIiwiYXJpYUxhYmVsIiwiX2lzQ3VzdG9tIiwiX2lzTmF0aXZlIiwiX2hhc0Vtb2ppIiwiX2Vtb2ppVHlwZSIsImJhY2tncm91bmRJbWFnZSIsImdldEVtb2ppIiwiaW1hZ2VVcmwiLCJiYWNrZ3JvdW5kU2l6ZSIsIndpZHRoIiwiaGVpZ2h0IiwiYmFja2dyb3VuZFBvc2l0aW9uIiwiZ2V0UG9zaXRpb24iLCJmb250U2l6ZSIsInJvdW5kIiwiaGFzSW1hZ2UiLCJ1bmRlZmluZWQiLCJza2luX3RvbmUiLCJjb2xvbnMiLCJERUZBVUxUUyIsImluaXRpYWxpemVkIiwiZGVmYXVsdHMiLCJpbml0IiwiYWRkIiwibWF4TnVtYmVyIiwiZGVmYXVsdExlbmd0aCIsIm1pbiIsImkiLCJxdWFudGl0eSIsImZyZXF1ZW50bHlLZXlzIiwic29ydGVkIiwicmV2ZXJzZSIsInNsaWNlZCIsImxhc3QiLCJwb3AiLCJ1bmljb2RlcyIsImNvZGVQb2ludHMiLCJ1IiwidW5pcSIsImFyciIsInJlZHVjZSIsImFjYyIsInVuaXFBIiwidW5pcUIiLCJkZWVwTWVyZ2UiLCJvIiwib3JpZ2luYWxWYWx1ZSIsIm1lYXN1cmVTY3JvbGxiYXIiLCJkb2N1bWVudCIsImRpdiIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsIm92ZXJmbG93IiwicG9zaXRpb24iLCJ0b3AiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJzY3JvbGxiYXJXaWR0aCIsIm9mZnNldFdpZHRoIiwiY2xpZW50V2lkdGgiLCJyZW1vdmVDaGlsZCIsIlBpY2tlclZpZXciLCJwaWNrZXJDb21wb25lbnQiLCJfdm0iLCJfcGVyTGluZSIsInBlckxpbmUiLCJmaXJzdCIsImFjdGl2ZUNhdGVnb3J5Iiwic2VhcmNoRW1vamlzIiwicHJldmlld0Vtb2ppIiwicHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHgiLCJwcmV2aWV3RW1vamlJZHgiLCJzY3JvbGxFbGVtZW50IiwiJHJlZnMiLCJzY3JvbGwiLCJzY3JvbGxUb3AiLCJmaWx0ZXJlZENhdGVnb3JpZXMiLCJsIiwiY29tcG9uZW50IiwiZ2V0Q2F0ZWdvcnlDb21wb25lbnQiLCIkZWwiLCJvZmZzZXRUb3AiLCJoYXNFbW9qaXMiLCJzY3JvbGxUb0NvbXBvbmVudCIsImluZmluaXRlU2Nyb2xsIiwibWF4U2VhcmNoUmVzdWx0cyIsInVwZGF0ZVByZXZpZXdFbW9qaSIsImVtb2ppc0xlbmd0aCIsIm9uQXJyb3dSaWdodCIsImNhdGVnb3J5TGVuZ3RoIiwiZGlmZiIsInByZXZDYXRlZ29yeUxhc3RSb3dMZW5ndGgiLCJvbkFycm93TGVmdCIsIiRuZXh0VGljayIsInNjcm9sbEVsIiwiZW1vamlFbCIsInF1ZXJ5U2VsZWN0b3IiLCJzY3JvbGxIZWlnaHQiLCJvZmZzZXRIZWlnaHQiLCJjYXRlZ29yeUlkeCIsIkVtb2ppUHJvcHMiLCJ0eXBlIiwidG9vbHRpcCIsIkZ1bmN0aW9uIiwicmVxdWlyZWQiLCJzaXplIiwidGFnIiwiUGlja2VyUHJvcHMiLCJjb2xvciIsImRlZmF1bHRTa2luIiwiYXV0b0ZvY3VzIiwiaTE4biIsInNob3dQcmV2aWV3Iiwic2hvd1NlYXJjaCIsInNob3dDYXRlZ29yaWVzIiwic2hvd1NraW5Ub25lcyIsInBpY2tlclN0eWxlcyIsIk5BTUVTUEFDRSIsIl9KU09OIiwiSlNPTiIsImlzTG9jYWxTdG9yYWdlU3VwcG9ydGVkIiwid2luZG93IiwiZ2V0dGVyIiwic2V0dGVyIiwic2V0SGFuZGxlcnMiLCJoYW5kbGVycyIsInNldE5hbWVzcGFjZSIsIm5hbWVzcGFjZSIsInVwZGF0ZSIsInN0YXRlIiwibG9jYWxTdG9yYWdlIiwic3RyaW5naWZ5IiwiZSIsInBhcnNlIiwiaXNXaW5kb3dBdmFpbGFibGUiLCJsYXN0VGltZSIsInZlbmRvcnMiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsImNhbGxiYWNrIiwiZWxlbWVudCIsImN1cnJUaW1lIiwiRGF0ZSIsImdldFRpbWUiLCJ0aW1lVG9DYWxsIiwibWF4Iiwic2V0VGltZW91dCIsImNsZWFyVGltZW91dCIsIlZ1ZSIsIkFwcCIsIlF1YXNhciIsInVzZSIsImVsIiwicmVuZGVyIiwiaCJdLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file diff --git a/package.json b/package.json index 6e57dd5..89da685 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "emoji-mart-vue-fast", - "version": "10.2.2", + "version": "11.0.0", "description": "Customizable Slack-like emoji picker for VueJS, fast version", "main": "dist/emoji-mart.js", "repository": {