{"version":3,"sources":["node_modules/browser-pack/_prelude.js","resources/src/js/app/main.js"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i 0) {\r\n\t\t\ttrigger_slick_on_mobile($fiveRangeSlider, mobileRangeSettings, 1259);\r\n\t\t}\r\n\r\n\t\tvar $fourRangeSlider = $('.range-models---mobile-only-carousel.four-items');\r\n\t\tif ($fourRangeSlider.length > 0) {\r\n\t\t\ttrigger_slick_on_mobile($fourRangeSlider, mobileRangeSettings, 1009);\r\n\t\t}\r\n\r\n\t\tvar $threeRangeSlider = $('.range-models---mobile-only-carousel.three-items');\r\n\t\tif ($threeRangeSlider.length > 0) {\r\n\t\t\ttrigger_slick_on_mobile($threeRangeSlider, mobileRangeSettings, 559);\r\n\t\t}\r\n\r\n\t};\r\n\r\n\r\n\tconst doFixedNavigation = function doFixedNavigationFn() {\r\n\t\t\r\n\t\t\r\n\t\t// if scrolled past x px, apply fixed header class\r\n\t\tconst scrollThreshold = 1;\r\n\t\t\r\n\t\t$(document).scroll( function() {\r\n\r\n \t\t// top of scroll\r\n \t\tif( $(_w).scrollTop() >= 1 ) {\r\n\t\t\t\t$(_b).addClass('has-fixed-header');\r\n\t\t\t}else{\r\n\t\t\t\t$(_b).removeClass('has-fixed-header');\r\n\t\t\t}\r\n\t\t})\r\n\t};\r\n\r\n\r\n\r\n\tconst doTabs = function doTabsFn(){\r\n\r\n\t\tconst allTabContent = $('.tabs__content');\r\n\t\tconst allTabLinks = $('.tabs__link');\r\n\r\n\r\n\t\t$(_d).on('click', '.tabs__link', function( e ){\r\n\r\n\t\t\tallTabContent.removeClass('active');\r\n\t\t\tallTabLinks.removeClass('active');\r\n\r\n\t\t\t$(this).addClass('active');\t\t\t\r\n\t\t\t$('#'+e.currentTarget.dataset.tab).addClass('active');\r\n\r\n\t\t\t// initialise slick sliders to calc height/width when\r\n\t\t\t// initialised in a disply:none block e.g. the hidden tab\r\n\t\t\t$('[class^=js-slick-models]').slick('setPosition');\r\n\r\n\t\t\te.preventDefault();\r\n\r\n\t\t});\r\n\r\n\r\n\r\n\t\t$(_d).on('click', '.inner-tab-nav__link', function( e ){\r\n\r\n\t\t\t// deactivate other tabs (just in this main tab not all inner tabs)\r\n\t\t\t$(this).parents('.tabs__content').find('.inner-tab-nav__link, .inner-tab__content').removeClass('active');\r\n\r\n\t\t\t// sctivate tab\r\n\t\t\t$(this).addClass('active');\t\t\t\r\n\t\t\t$('#'+e.currentTarget.dataset.tab).addClass('active');\r\n\r\n\t\t\te.preventDefault();\r\n\r\n\t\t});\r\n\r\n\t}\r\n\r\n\r\n\r\n\t// rollover images\r\n\t// hover class for showing subnav\r\n\tconst doNavigation = function doNavigationFn(){\r\n\r\n\t\t// toggle sub-nav\r\n\t\tconst siteHeader = $('.site-header');\r\n\t\tconst parentLink = $('.has-sub-nav');\r\n\r\n\t\tparentLink.on('mouseenter', function( e ){\r\n\r\n\t\t\tcloseSubNavs();\r\n\t\t\t\r\n\t\t\tconst el = $(this);\r\n\r\n\t\t\t$(el).find('.sub-nav').addClass('active');\r\n\t\t\tsiteHeader.addClass('sub-nav-active');\r\n\r\n\t\t}).on('mouseleave', function( e ){\r\n\t\t\t\r\n\t\t\tcloseSubNavs();\r\n\r\n\t\t});\r\n\r\n\r\n\t\tconst parentMegaLink = $('.has-mega-nav');\r\n\r\n\t\tparentMegaLink.on('mouseenter', function (e) {\r\n\r\n\t\t\tcloseSubNavs();\r\n\r\n\t\t\tconst el = $(this);\r\n\r\n\t\t\t$(el).find('.mega-nav').addClass('active');\r\n\t\t\tsiteHeader.addClass('mega-nav-active');\r\n\r\n\t\t}).on('mouseleave', function (e) {\r\n\r\n\t\t\tcloseSubNavs();\r\n\r\n\t\t});\r\n\r\n\r\n\t\tvar closeSubNavs = function () {\r\n\t\t\t$('.sub-nav.active').removeClass('active');\r\n\t\t\t$('.mega-nav.active').removeClass('active');\r\n\t\t\tsiteHeader.removeClass('sub-nav-active');\r\n\t\t\tsiteHeader.removeClass('mega-nav-active');\r\n\t\t}\r\n\r\n\t}\r\n\r\n\r\n\r\n\tconst doMegaSubNavigation = function doMegaSubNavigationFn() {\r\n\r\n\t\t// toggle sub-nav\r\n\t\tconst wrapper = $('.meganav__content--tiles');\r\n\t\tconst allChildPanels = $('.meganav__content--tiles-children');\r\n\t\tconst megaSubNavLink = $('.meganav__content--sidenav-link');\r\n\r\n\t\tmegaSubNavLink.on('mouseenter', function (e) {\r\n\r\n\t\t\tcloseMegaSubNavs();\r\n\r\n\t\t\tconst el = $(this);\r\n\r\n\t\t\tvar linkId = $(el).data('meganavId');\r\n\t\t\tvar panelToShow = wrapper.find(\"[data-meganav-parent-id='\" + linkId + \"']\");\r\n\t\t\tpanelToShow.addClass('active');\r\n\r\n\r\n\t\t});\r\n\r\n\t\tvar closeMegaSubNavs = function () {\r\n\t\t\tallChildPanels.removeClass('active');\t\t\t\r\n\t\t}\r\n\r\n\t}\r\n\r\n\r\n\r\n\r\n const doArticle = function doArticleFn() {\r\n var $latestTag = $('#js-tag-default');\r\n var $articleList = $('#article-list');\r\n var nodeId;\r\n var pageIndex = 1;\r\n var maxPage;\r\n var $selectedTags = [];\r\n\r\n function resetPagination() {\r\n pageIndex = 1;\r\n maxPage = $('#maxPage').val();\r\n }\r\n\r\n function toggleTag() {\r\n $('.js-filter-tag').click(function () {\r\n var _text = $(this)[0].innerText;\r\n\r\n var i = $selectedTags.indexOf(_text);\r\n if (i > -1) {\r\n $selectedTags.splice(i, 1);\r\n $(this).removeClass('current');\r\n }\r\n else {\r\n $selectedTags.push(_text);\r\n $(this).addClass('current');\r\n }\r\n\r\n loadFirstPageArticleContent(nodeId, $selectedTags);\r\n\r\n if ($selectedTags.length == 0) {\r\n $latestTag.addClass('current'); \r\n }\r\n else {\r\n $latestTag.removeClass('current');\r\n }\r\n });\r\n\r\n $($latestTag).click(function () {\r\n \r\n if ($(this)[0].classList.contains('current')) {\r\n //do nothing\r\n }\r\n else {\r\n $(this)[0].classList.add('current');\r\n\r\n var _tagElements = $('.js-filter-tag').toArray();\r\n _tagElements.forEach(function (element) {\r\n element.classList.remove('current') \r\n });\r\n\r\n $selectedTags = [];\r\n loadFirstPageArticleContent(nodeId, $selectedTags);\r\n }\r\n });\r\n\r\n }\r\n\r\n function loadPagedContent(_nodeId, _pageIndex, _selectedTags) {\r\n var $loadMoreBtn = $('.js-load-more-news');\r\n\r\n $.ajax({\r\n url: '/umbraco/surface/Article/PagedArticle',\r\n data: {\r\n 'nodeId': _nodeId,\r\n 'page': _pageIndex,\r\n 'tags': JSON.stringify(_selectedTags)\r\n },\r\n type: 'GET',\r\n success: function (data) {\r\n if (data !== '' && data.length > 5) {\r\n $(data).appendTo('.paged-articles').hide().fadeIn('slow');\r\n if (_pageIndex == maxPage) {\r\n $loadMoreBtn.hide();\r\n } \r\n $loadMoreBtn.text('Load more').prop('disabled', false);\t\t\t \r\n }\r\n else {\r\n $loadMoreBtn.delay(600).fadeOut();\r\n }\r\n },\r\n error: function () {\r\n console.log('error!');\r\n }\r\n });\r\n }\r\n\r\n function loadFirstPageArticleContent(_nodeId, _selectedTags) {\r\n $.ajax({\r\n url: '/umbraco/surface/Article/ArticleList',\r\n data: {\r\n 'nodeId': _nodeId,\r\n 'page': 1,\r\n 'tags': JSON.stringify(_selectedTags)\r\n },\r\n type: 'GET',\r\n success: function (data) {\r\n if (data !== '' && data.length > 5) {\r\n $articleList.empty();\r\n $(data).appendTo($articleList).hide().fadeIn('slow');\r\n }\r\n else {\r\n //no result\r\n }\r\n\r\n resetPagination();\r\n },\r\n error: function () {\r\n console.log('error!');\r\n }\r\n });\r\n }\r\n\r\n function triggerArticleFilter() {\r\n if ($articleList.length) {\r\n nodeId = $('#article-list').data('nodeid');\r\n resetPagination();\r\n toggleTag();\r\n }\r\n\r\n $(document).on('click', '.js-load-more-news', function (e) {\r\n $(this).text('loading').prop('disabled', true);\r\n pageIndex++;\r\n\r\n setTimeout( function(){\r\n loadPagedContent(nodeId, pageIndex, $selectedTags);\r\n\t\t\t }, 400 );\r\n\r\n return false;\r\n });\r\n }\r\n\r\n triggerArticleFilter();\r\n\t}\r\n\r\n\r\n\r\n\r\n\tconst doMobileMenu = function doMobileMenuFn() {\r\n\r\n\t\t// hamburger\r\n\t\tconst _brgr = document.getElementById('js-toggle-menu');\r\n\t\tconst _mobileLink = $('.mobile-nav__firstlevel-link');\r\n\t\tconst _mobileSubLink = $('.mobile-nav__secondlevel-link');\r\n\r\n\t\tconst wrapper = $('.mobile-nav__sub-panels');\r\n\t\tconst allChildPanels = $('.mobile-nav__sub-panel');\r\n\r\n\t\tconst returnLink = $('.mobile-nav_sub-panel-return');\r\n\r\n\t\t$(_brgr).on('click', function (e) {\r\n\r\n\t\t\t$('.mobile-nav__sub-panel').removeClass('active');\r\n\t\t\t\r\n\t\t\t// toggle active class on button\r\n\t\t\t$(this).toggleClass('is-active');\r\n\r\n\t\t\t//toggle class on body\r\n\t\t\t$(_b).toggleClass('mobile-nav-active');\r\n\r\n\t\t\te.preventDefault();\r\n\t\t});\r\n\r\n\r\n\t\t$(_mobileLink).on('click', function (e) {\r\n\r\n\t\t\tallChildPanels.removeClass('active');\r\n\r\n\t\t\tconst el = $(this);\r\n\r\n\t\t\tvar linkId = $(el).data('mobilelinkId');\r\n\t\t\tvar panelToShow = wrapper.find(\"[data-mobilelink-parent-id='\" + linkId + \"']\");\r\n\t\t\tpanelToShow.addClass('active');\r\n\r\n\t\t\te.preventDefault();\r\n\t\t});\r\n\r\n\t\t$(_mobileSubLink).on('click', function (e) {\r\n\t\t\tconst el = $(this);\r\n\r\n\t\t\tvar linkId = $(el).data('mobileSecondlevellinkId');\r\n\t\t\tconsole.log('link id ', linkId);\r\n\t\t\tvar panelToShow = wrapper.find(\"[data-mobilelink-secondlevellink-parent-id='\" + linkId + \"']\");\r\n\t\t\tconsole.log('panel to show', panelToShow);\r\n\t\t\tpanelToShow.addClass('active');\r\n\r\n\t\t\te.preventDefault();\r\n\t\t});\r\n\r\n\t\t$(returnLink).on('click', function (e) {\r\n\r\n\t\t\tconst el = $(this);\r\n\t\t\tvar thisPanel = el.parents('.mobile-nav__sub-panel');\r\n\t\t\tthisPanel.removeClass('active');\r\n\r\n\t\t\te.preventDefault();\r\n\t\t});\r\n\t\t\r\n\t}; \r\n\r\n\r\n\r\n\r\n\r\n\r\n\tconst doToggleLoopForm = function doToggleLoopFormFn(){\r\n\r\n\t\tconst _toggleBtn = $('.js-toggle-in-the-loop-form');\r\n\r\n\t\t_toggleBtn.on('click', function( e ){\r\n\r\n\t\t\t$(this).parents('.module').find('.in-the-loop-form').toggleClass('open');\r\n\r\n\t\t\te.preventDefault();\r\n\t\t});\r\n\t}\r\n\r\n\r\n\r\n\t/* \r\n * ANIMATIONS\r\n */\r\n\r\n\tconst doAnimationsInit = function doAnimationsInitFn() {\r\n\r\n\t\tconst scroll = window.requestAnimationFrame || function(callback){ \r\n\t\t window.setTimeout( callback, 1000/60); \r\n\t\t};\r\n\r\n\t\tconst elementsToShow = document.querySelectorAll('.animate');\r\n\r\n\t\tfunction loop() {\r\n\r\n\t\t\telementsToShow.forEach(function (element) {\r\n\t\t\t\tif (isElementInViewport(element)) {\r\n\t\t\t\t\telement.classList.add('is-visible');\r\n\t\t\t\t} else {\r\n\t\t\t\t\t//element.classList.remove('is-visible');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tscroll(loop);\r\n\t\t}\r\n\r\n\t\tfunction isElementInViewport(el) {\r\n\r\n\t\t\t// special bonus for those using jQuery\r\n\t\t\tif (typeof jQuery === 'function' && el instanceof jQuery) {\r\n\t\t\tel = el[0];\r\n\t\t\t}\r\n\r\n\t\t\tconst rect = el.getBoundingClientRect();\r\n\r\n\t\t\treturn (\r\n\t\t\t\t (rect.top <= 0 && rect.bottom >= 0) \r\n\t\t\t\t|| (rect.bottom >= (window.innerHeight \r\n\t\t\t\t|| document.documentElement.clientHeight) && rect.top <= (window.innerHeight \r\n\t\t\t\t|| document.documentElement.clientHeight)) \r\n\t\t\t\t|| (rect.top >= 0 && rect.bottom <= (window.innerHeight \r\n\t\t\t\t|| document.documentElement.clientHeight))\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tloop();\r\n\r\n\t};\r\n\r\n\t// https://www.npmjs.com/package/js-datepicker\r\n\tconst doDatePicker = function doDatePickerFn(){\r\n\t\t\r\n\t\tif( $('.js-date-picker').length != '' ) {\r\n\t\t\tconsole.log('yep - datepickers here');\r\n\r\n\t\t\tconst picker = datepicker('.js-date-picker', {\r\n\t\t\t\tnoWeekends: true,\r\n\t\t\t\tformatter: (input, date, instance) => {\r\n\t\t\t\t\tconst value = date.toLocaleDateString()\r\n\t\t\t\t\tinput.value = value // => '1/1/2099'\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tconst doInstaWidget = function doInstaWidgetFn(){\r\n var $instawidget = $('#instawidget');\r\n\r\n function fetchInstagramFeeds() {\r\n var _url = '/umbraco/api/Instagram/GetFeeds';\r\n $.ajax({\r\n type: 'GET',\r\n url: _url,\r\n contentType: 'application/json',\r\n success: function (response) {\r\n var data = JSON.parse(response);\r\n\r\n $.each(data, function (i, obj) {\r\n $instawidget.append('\"'');\r\n });\r\n\r\n },\r\n error: function (err) {\r\n console.log(err);\r\n $instawidget.append('Error fetching Instagram media. Please try again later');\r\n }\r\n });\r\n }\r\n\r\n if ($instawidget.length != '' ) {\r\n fetchInstagramFeeds(); \r\n\t\t}\r\n\t}\r\n\r\n const doNewsletter = function doNewsletterFn() {\r\n var $name = $('#newsletterName');\r\n var $email = $('#newsletterEmail');\r\n var $btnSubmit = $('.js-newsletter-btn');\r\n var $message = $('#js-newsletter-message');\r\n\r\n function formValidation() {\r\n var form = $('.js-newsletter-form')[0];\r\n for (var i = 0; i < form.elements.length; i++) {\r\n if (form.elements[i].value === '' && form.elements[i].hasAttribute('required')) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n function subscribe() {\r\n\r\n $btnSubmit.on(\"click\", function (event) {\r\n if (formValidation() == false) {\r\n $message.css({ 'color': 'red' });\r\n $message.html('Both fields are mandatory.');\r\n $message[0].style.display = 'block';\r\n return false;\r\n }\r\n\r\n event.preventDefault();\r\n\r\n var _model = {\r\n \"Name\": $name.val(),\r\n \"Email\": $email.val(),\r\n \"SiteId\": $('.js-newsletter-form')[0].getAttribute('data-siteid')\r\n };\r\n\r\n var _url = '/umbraco/api/newsletter/send';\r\n $.ajax({\r\n type: 'POST',\r\n url: _url,\r\n contentType: 'application/json',\r\n data: JSON.stringify(_model),\r\n success: function (response) {\r\n //console.log(response);\r\n if (response.StatusCode == 400) {\r\n $message.css({ 'color': 'red' });\r\n $message.html(response.Message);\r\n $message[0].style.display = 'block';\r\n }\r\n else {\r\n $btnSubmit.hide();\r\n $name.val(null);\r\n $email.val(null);\r\n $message.css({ 'color': 'white' });\r\n $message.html(response.Message);\r\n $message[0].style.display = 'block';\r\n }\r\n\r\n },\r\n error: function (response) {\r\n console.log(response);\r\n $message.css({ 'color': 'red' });\r\n $message.html('Something went wrong. Please try again later.');\r\n $message[0].style.display = 'block';\r\n }\r\n });\r\n\r\n return false;\r\n });\r\n }\r\n\r\n subscribe();\r\n }\r\n\r\n\t// jQuery onReady\r\n\t//\r\n\t$(function() {\r\n\r\n\t\tdoSlickCarousel();\r\n\r\n\t\tdoFixedNavigation();\r\n\r\n\t\tdoTabs();\r\n\r\n\t\tdoArticle();\r\n\r\n\t\tdoNavigation();\r\n\r\n\t\tdoMegaSubNavigation();\r\n\r\n\t\tdoMobileMenu();\r\n\r\n\t\tdoToggleLoopForm();\r\n\r\n\t\tdoAnimationsInit();\r\n\r\n\t\tdoDatePicker();\r\n\r\n doInstaWidget();\r\n\r\n\t\tdoNewsletter();\r\n\r\n\t\tlightbox.option({\r\n\t\t\t'resizeDuration': 200 \r\n\t\t})\r\n\r\n\t});\r\n\r\n}(rayglass, jQuery, window, document);\r\n\r\n\r\n\r\nfunction trigger_slick_on_mobile(slider, settings, breakpoint) {\r\n\t$(window).on('load resize', function () {\r\n\t\tif ($(window).width() > breakpoint) {\r\n\t\t\tif (slider.hasClass('slick-initialized')) {\r\n\t\t\t\tslider.slick('unslick');\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!slider.hasClass('slick-initialized')) {\r\n\t\t\treturn slider.slick(settings);\r\n\t\t}\r\n\t});\r\n};"],"preExistingComment":"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJyZXNvdXJjZXMvc3JjL2pzL2FwcC9tYWluLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7QUNBQSxJQUFNLFFBQVEsR0FBRyxRQUFRLElBQUksQ0FBQyxDQUFDO0FBRS9CLElBQU0sSUFBSSxHQUFHLFVBQVUsUUFBUSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRTtFQUVoRTtFQUNBO0VBQ0EsSUFBTSxFQUFFLEdBQUcsUUFBUTtFQUNuQixJQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtFQUNsQixJQUFNLEVBQUUsR0FBRyxNQUFNOztFQUVqQjtFQUNBO0VBQ0EsSUFBTSxlQUFlLEdBQUcsU0FBUyxpQkFBaUIsQ0FBQSxFQUFHO0lBSXBEO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0lBRUEsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBSyxDQUFDO01BQ3pCLElBQUksRUFBRSxJQUFJO01BQ1YsUUFBUSxFQUFFLGFBQWE7TUFDdkIsWUFBWSxFQUFFLENBQUM7TUFDZixJQUFJLEVBQUUsSUFBSTtNQUNWLE1BQU0sRUFBRSxLQUFLO01BQ2IsY0FBYyxFQUFFLENBQUM7TUFDakIsWUFBWSxFQUFFLENBQUM7TUFDTixRQUFRLEVBQUUsSUFBSTtNQUNkLGFBQWEsRUFBRSxJQUFJO01BQzVCLGNBQWMsRUFBRTtJQUNqQixDQUFDLENBQUM7SUFDRjtJQUNBO0lBQ0E7O0lBSUEsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsS0FBSyxDQUFDO01BQzNCLElBQUksRUFBRSxJQUFJO01BQ1YsUUFBUSxFQUFFLGFBQWE7TUFDdkIsWUFBWSxFQUFFLENBQUM7TUFDZixJQUFJLEVBQUUsSUFBSTtNQUNWLE1BQU0sRUFBRSxLQUFLO01BQ2IsY0FBYyxFQUFFLENBQUM7TUFDakIsWUFBWSxFQUFFLENBQUM7TUFDZixRQUFRLEVBQUU7SUFDWCxD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QWdCLENBQUMsQ0FBQztJQUVsQixnQkFBZ0IsQ0FBQyxDQUFDO0lBRWxCLFlBQVksQ0FBQyxDQUFDO0lBRVIsYUFBYSxDQUFDLENBQUM7SUFFckIsWUFBWSxDQUFDLENBQUM7SUFFZCxRQUFRLENBQUMsTUFBTSxDQUFDO01BQ2YsZ0JBQWdCLEVBQUU7SUFDbkIsQ0FBQyxDQUFDO0VBRUgsQ0FBQyxDQUFDO0FBRUgsQ0FBQyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQztBQUlyQyxTQUFTLHVCQUF1QixDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFO0VBQzlELENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFlBQVk7SUFDdkMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxVQUFVLEVBQUU7TUFDbkMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLEVBQUU7UUFDekMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7TUFDeEI7TUFDQTtJQUNEO0lBQ0EsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsRUFBRTtNQUMxQyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQzlCO0VBQ0QsQ0FBQyxDQUFDO0FBQ0g7QUFBQyIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLG4sdCl7ZnVuY3Rpb24gbyhpLGYpe2lmKCFuW2ldKXtpZighZVtpXSl7dmFyIGM9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighZiYmYylyZXR1cm4gYyhpLCEwKTtpZih1KXJldHVybiB1KGksITApO3ZhciBhPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIraStcIidcIik7dGhyb3cgYS5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGF9dmFyIHA9bltpXT17ZXhwb3J0czp7fX07ZVtpXVswXS5jYWxsKHAuZXhwb3J0cyxmdW5jdGlvbihyKXt2YXIgbj1lW2ldWzFdW3JdO3JldHVybiBvKG58fHIpfSxwLHAuZXhwb3J0cyxyLGUsbix0KX1yZXR1cm4gbltpXS5leHBvcnRzfWZvcih2YXIgdT1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGk9MDtpPHQubGVuZ3RoO2krKylvKHRbaV0pO3JldHVybiBvfXJldHVybiByfSkoKSIsImNvbnN0IHJheWdsYXNzID0gcmF5Z2xhc3MgfHwge307XHJcblxyXG5jb25zdCBpbml0ID0gZnVuY3Rpb24gKHJheWdsYXNzLCAkLCB3aW5kb3csIGRvY3VtZW50LCB1bmRlZmluZWQpIHtcclxuXHJcblx0Ly8gcHJpdmF0ZSBjb25zdHNcclxuXHQvL1xyXG5cdGNvbnN0IF9kID0gZG9jdW1lbnQ7XHJcblx0Y29uc3QgX2IgPSBfZC5ib2R5O1xyXG5cdGNvbnN0IF93ID0gd2luZG93O1xyXG5cclxuXHQvLyBjYXJvdXNlbHNcclxuXHQvL1xyXG5cdGNvbnN0IGRvU2xpY2tDYXJvdXNlbCA9IGZ1bmN0aW9uIGRvU2xpY2tDYXJvdXNlbEZuKCkge1xyXG5cdFx0XHJcblxyXG5cclxuXHRcdC8vIGhvbWUgcGFnZSBoZXJvIHNsaWRlclxyXG5cdFx0Ly8gJCgnLmpzLXNsaWNrLWhlcm8nKS5vbignaW5pdCcsIGZ1bmN0aW9uKCBldmVudCwgc2xpY2sgKSB7XHJcblx0XHQvLyBcdCQoJy5jdXJyZW50JykudGV4dChzbGljay5jdXJyZW50U2xpZGUrMSk7XHJcblx0XHQvLyBcdCQoJy50b3RhbCcpLnRleHQoc2xpY2suc2xpZGVDb3VudCk7XHJcblx0XHQvLyB9KTtcclxuXHJcblx0XHQkKCcuanMtc2xpY2staGVybycpLnNsaWNrKHtcclxuXHRcdFx0ZmFkZTogdHJ1ZSxcclxuXHRcdFx0bGF6eUxvYWQ6ICdwcm9ncmVzc2l2ZScsXHJcblx0XHRcdHNsaWRlc1RvU2hvdzogMSxcclxuXHRcdFx0ZG90czogdHJ1ZSxcclxuXHRcdFx0YXJyb3dzOiBmYWxzZSxcclxuXHRcdFx0c2xpZGVzVG9TY3JvbGw6IDEsXHJcblx0XHRcdGluaXRpYWxTbGlkZTogMCxcclxuICAgICAgICAgICAgYXV0b3BsYXk6IHRydWUsXHJcbiAgICAgICAgICAgIGF1dG9wbGF5U3BlZWQ6IDYwMDAsXHJcblx0XHRcdGFkYXB0aXZlSGVpZ2h0OiB0cnVlXHJcblx0XHR9KTtcclxuXHRcdC8vIC5vbignYmVmb3JlQ2hhbmdlJywgZnVuY3Rpb24oZXZlbnQsIHNsaWNrLCBjdXJyZW50U2xpZGUsIG5leHRTbGlkZSkge1xyXG5cdFx0Ly8gICAkKCcuY3VycmVudCcpLnRleHQobmV4dFNsaWRlKzEpO1xyXG5cdFx0Ly8gfSk7XHJcblxyXG5cclxuXHJcblx0XHQkKCcuanMtc2xpY2staGVhZGVyJykuc2xpY2soe1xyXG5cdFx0XHRmYWRlOiB0cnVlLFxyXG5cdFx0XHRsYXp5TG9hZDogJ3Byb2dyZXNzaXZlJyxcclxuXHRcdFx0c2xpZGVzVG9TaG93OiAxLFxyXG5cdFx0XHRkb3RzOiB0cnVlLFxyXG5cdFx0XHRhcnJvd3M6IGZhbHNlLFxyXG5cdFx0XHRzbGlkZXNUb1Njcm9sbDogMSxcclxuXHRcdFx0aW5pdGlhbFNsaWRlOiAwLFxyXG5cdFx0XHRhdXRvcGxheTogZmFsc2VcclxuXHRcdH0pO1xyXG5cclxuXHJcblxyXG5cdFx0Ly8gZmVhdHVyZSBtb2R1bGVcclxuXHRcdCQoJy5qcy1zbGljay1mZWF0dXJlJykuc2xpY2soe1xyXG5cdFx0XHRsYXp5TG9hZDogJ3Byb2dyZXNzaXZlJyxcclxuXHRcdFx0c2xpZGVzVG9TaG93OiAxLFxyXG5cdFx0XHRkb3RzOiBmYWxzZSxcclxuXHRcdFx0YXJyb3dzOiB0cnVlLFxyXG5cdFx0XHRzbGlkZXNUb1Njcm9sbDogMSxcclxuXHRcdFx0aW5pdGlhbFNsaWRlOiAwLFxyXG5cdFx0XHRhdXRvcGxheTogZmFsc2VcclxuXHRcdH0pO1xyXG5cclxuXHJcblxyXG5cdFx0Ly8gbW9kZWwgc2xpZGVyIC0gbGVnZW5kXHJcblx0XHQvLyBmZWF0dXJlIG1vZHVsZVxyXG5cdFx0JCgnLmpzLXNsaWNrLW1vZGVscy1sZWdlbmQnKS5zbGljayh7XHJcblx0XHRcdGZhZGU6IHRydWUsXHJcblx0XHRcdHNsaWRlc1RvU2hvdzogMSxcclxuXHRcdFx0ZG90czogdHJ1ZSxcclxuXHRcdFx0YXJyb3dzOiBmYWxzZSxcclxuXHRcdFx0c2xpZGVzVG9TY3JvbGw6IDEsXHJcblx0XHRcdGluaXRpYWxTbGlkZTogMCxcclxuXHRcdFx0YXV0b3BsYXk6IGZhbHNlLFxyXG5cdFx0XHRkcmFnZ2FibGU6IGZhbHNlLFxyXG5cdFx0XHRhcHBlbmREb3RzOiAnLmpzLXNsaWNrLWRvdHMtbGVnZW5kJ1xyXG5cdFx0fSk7XHJcblxyXG5cdFx0Ly8gbW9kZWwgc2xpZGVyIC0gY2hhc2VcclxuXHRcdC8vIGZlYXR1cmUgbW9kdWxlXHJcblx0XHQkKCcuanMtc2xpY2stbW9kZWxzLWNoYXNlJykuc2xpY2soe1xyXG5cdFx0XHRmYWRlOiB0cnVlLFxyXG5cdFx0XHRzbGlkZXNUb1Nob3c6IDEsXHJcblx0XHRcdGRvdHM6IHRydWUsXHJcblx0XHRcdGFycm93czogZmFsc2UsXHJcblx0XHRcdHNsaWRlc1RvU2Nyb2xsOiAxLFxyXG5cdFx0XHRpbml0aWFsU2xpZGU6IDAsXHJcblx0XHRcdGF1dG9wbGF5OiBmYWxzZSxcclxuXHRcdFx0ZHJhZ2dhYmxlOiBmYWxzZSxcclxuXHRcdFx0YXBwZW5kRG90czogJy5qcy1zbGljay1kb3RzLWNoYXNlJ1xyXG5cdFx0fSk7XHJcblxyXG5cclxuXHJcblxyXG5cdFx0Ly8gdGltZWxpbmVcclxuXHRcdCQoJy5qcy1zbGljay10aW1lbGluZScpLnNsaWNrKHtcclxuXHRcdFx0aW5pdGlhbFNsaWRlOiAwLFxyXG5cdFx0XHRhdXRvcGxheTogdHJ1ZSxcclxuXHRcdFx0ZHJhZ2dhYmxlOiB0cnVlLFxyXG5cdFx0XHRzbGlkZXNUb1Nob3c6IDMsXHJcblx0XHRcdHJlc3BvbnNpdmU6IFtcclxuXHRcdFx0ICAgIHtcclxuXHRcdFx0ICAgICAgYnJlYWtwb2ludDogMTIwMCxcclxuXHRcdFx0ICAgICAgc2V0dGluZ3M6IHtcclxuXHRcdFx0ICAgICAgICBzbGlkZXNUb1Nob3c6IDMsXHJcblx0XHRcdCAgICAgIH1cclxuXHRcdFx0ICAgIH0sXHJcblx0XHRcdCAgICB7XHJcblx0XHRcdCAgICAgIGJyZWFrcG9pbnQ6IDkwMCxcclxuXHRcdFx0ICAgICAgc2V0dGluZ3M6IHtcclxuXHRcdFx0ICAgICAgICBzbGlkZXNUb1Nob3c6IDIsXHJcblx0XHRcdFx0XHRpbmZpbml0ZTogdHJ1ZVxyXG5cdFx0XHQgICAgICB9XHJcblx0XHRcdCAgICB9LFxyXG5cdFx0XHQgICAge1xyXG5cdFx0XHQgICAgICBicmVha3BvaW50OiA2MDAsXHJcblx0XHRcdCAgICAgIHNldHRpbmdzOiB7XHJcblx0XHRcdCAgICAgICAgc2xpZGVzVG9TaG93OiAxLFxyXG5cdFx0XHQgICAgICAgIHNsaWRlc1RvU2Nyb2xsOiAxLFxyXG5cdFx0XHQgICAgICAgIGRvdHM6IGZhbHNlXHJcblx0XHRcdCAgICAgIH1cclxuXHRcdFx0ICAgIH1cclxuXHRcdFx0ICBdXHJcblx0XHR9KTtcclxuXHJcblxyXG5cdFx0Ly8gbW9kZWwgY2F0ZWdvcnkgbGlzdGluZyBibG9ja1xyXG5cdFx0JCgnLnJhbmdlLW1vZGVscy0tLWRlc2t0b3AtY2Fyb3VzZWwnKS5zbGljayh7XHRcdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdHNsaWRlc1RvU2Nyb2xsOiAxLFxyXG5cdFx0XHR2YXJpYWJsZVdpZHRoOiB0cnVlLFxyXG5cdFx0XHRkb3RzOiBmYWxzZSxcclxuXHRcdFx0aW5maW5pdGU6IHRydWUsXHJcblx0XHRcdGFycm93czogdHJ1ZVxyXG5cdFx0fSk7XHJcblxyXG5cclxuXHJcblx0XHRcclxuXHRcdHZhciBtb2JpbGVSYW5nZVNldHRpbmdzID0ge1xyXG5cdFx0XHRzbGlkZXNUb1Njcm9sbDogMSxcclxuXHRcdFx0dmFyaWFibGVXaWR0aDogdHJ1ZSxcclxuXHRcdFx0ZG90czogZmFsc2UsXHJcblx0XHRcdGluZmluaXRlOiB0cnVlLFxyXG5cdFx0XHRhcnJvd3M6IHRydWVcclxuXHRcdH1cclxuXHJcblx0XHR2YXIgJGZpdmVSYW5nZVNsaWRlciA9ICQoJy5yYW5nZS1tb2RlbHMtLS1tb2JpbGUtb25seS1jYXJvdXNlbC5maXZlLWl0ZW1zJyk7XHJcblx0XHRpZiAoJGZpdmVSYW5nZVNsaWRlci5sZW5ndGggPiAwKSB7XHJcblx0XHRcdHRyaWdnZXJfc2xpY2tfb25fbW9iaWxlKCRmaXZlUmFuZ2VTbGlkZXIsIG1vYmlsZVJhbmdlU2V0dGluZ3MsIDEyNTkpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHZhciAkZm91clJhbmdlU2xpZGVyID0gJCgnLnJhbmdlLW1vZGVscy0tLW1vYmlsZS1vbmx5LWNhcm91c2VsLmZvdXItaXRlbXMnKTtcclxuXHRcdGlmICgkZm91clJhbmdlU2xpZGVyLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0dHJpZ2dlcl9zbGlja19vbl9tb2JpbGUoJGZvdXJSYW5nZVNsaWRlciwgbW9iaWxlUmFuZ2VTZXR0aW5ncywgMTAwOSk7XHJcblx0XHR9XHJcblxyXG5cdFx0dmFyICR0aHJlZVJhbmdlU2xpZGVyID0gJCgnLnJhbmdlLW1vZGVscy0tLW1vYmlsZS1vbmx5LWNhcm91c2VsLnRocmVlLWl0ZW1zJyk7XHJcblx0XHRpZiAoJHRocmVlUmFuZ2VTbGlkZXIubGVuZ3RoID4gMCkge1xyXG5cdFx0XHR0cmlnZ2VyX3NsaWNrX29uX21vYmlsZSgkdGhyZWVSYW5nZVNsaWRlciwgbW9iaWxlUmFuZ2VTZXR0aW5ncywgNTU5KTtcclxuXHRcdH1cclxuXHJcblx0fTtcclxuXHJcblxyXG5cdGNvbnN0IGRvRml4ZWROYXZpZ2F0aW9uID0gZnVuY3Rpb24gZG9GaXhlZE5hdmlnYXRpb25GbigpIHtcclxuXHRcdFxyXG5cdFx0XHJcblx0XHQvLyBpZiBzY3JvbGxlZCBwYXN0IHggcHgsIGFwcGx5IGZpeGVkIGhlYWRlciBjbGFzc1xyXG5cdFx0Y29uc3Qgc2Nyb2xsVGhyZXNob2xkID0gMTtcclxuXHRcdFxyXG5cdFx0JChkb2N1bWVudCkuc2Nyb2xsKCBmdW5jdGlvbigpIHtcclxuXHJcbiAgICAgIFx0XHQvLyB0b3Agb2Ygc2Nyb2xsXHJcbiAgICAgIFx0XHRpZiggJChfdykuc2Nyb2xsVG9wKCkgPj0gMSApIHtcclxuXHRcdFx0XHQkKF9iKS5hZGRDbGFzcygnaGFzLWZpeGVkLWhlYWRlcicpO1xyXG5cdFx0XHR9ZWxzZXtcclxuXHRcdFx0XHQkKF9iKS5yZW1vdmVDbGFzcygnaGFzLWZpeGVkLWhlYWRlcicpO1xyXG5cdFx0XHR9XHJcblx0XHR9KVxyXG5cdH07XHJcblxyXG5cclxuXHJcblx0Y29uc3QgZG9UYWJzID0gZnVuY3Rpb24gZG9UYWJzRm4oKXtcclxuXHJcblx0XHRjb25zdCBhbGxUYWJDb250ZW50ID0gJCgnLnRhYnNfX2NvbnRlbnQnKTtcclxuXHRcdGNvbnN0IGFsbFRhYkxpbmtzID0gJCgnLnRhYnNfX2xpbmsnKTtcclxuXHJcblxyXG5cdFx0JChfZCkub24oJ2NsaWNrJywgJy50YWJzX19saW5rJywgZnVuY3Rpb24oIGUgKXtcclxuXHJcblx0XHRcdGFsbFRhYkNvbnRlbnQucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xyXG5cdFx0XHRhbGxUYWJMaW5rcy5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XHJcblxyXG5cdFx0XHQkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcdFx0XHRcclxuXHRcdFx0JCgnIycrZS5jdXJyZW50VGFyZ2V0LmRhdGFzZXQudGFiKS5hZGRDbGFzcygnYWN0aXZlJyk7XHJcblxyXG5cdFx0XHQvLyBpbml0aWFsaXNlIHNsaWNrIHNsaWRlcnMgdG8gY2FsYyBoZWlnaHQvd2lkdGggd2hlblxyXG5cdFx0XHQvLyBpbml0aWFsaXNlZCBpbiBhIGRpc3BseTpub25lIGJsb2NrIGUuZy4gdGhlIGhpZGRlbiB0YWJcclxuXHRcdFx0JCgnW2NsYXNzXj1qcy1zbGljay1tb2RlbHNdJykuc2xpY2soJ3NldFBvc2l0aW9uJyk7XHJcblxyXG5cdFx0XHRlLnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG5cdFx0fSk7XHJcblxyXG5cclxuXHJcblx0XHQkKF9kKS5vbignY2xpY2snLCAnLmlubmVyLXRhYi1uYXZfX2xpbmsnLCBmdW5jdGlvbiggZSApe1xyXG5cclxuXHRcdFx0Ly8gZGVhY3RpdmF0ZSBvdGhlciB0YWJzIChqdXN0IGluIHRoaXMgbWFpbiB0YWIgbm90IGFsbCBpbm5lciB0YWJzKVxyXG5cdFx0XHQkKHRoaXMpLnBhcmVudHMoJy50YWJzX19jb250ZW50JykuZmluZCgnLmlubmVyLXRhYi1uYXZfX2xpbmssIC5pbm5lci10YWJfX2NvbnRlbnQnKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XHJcblxyXG5cdFx0XHQvLyBzY3RpdmF0ZSB0YWJcclxuXHRcdFx0JCh0aGlzKS5hZGRDbGFzcygnYWN0aXZlJyk7XHRcdFx0XHJcblx0XHRcdCQoJyMnK2UuY3VycmVudFRhcmdldC5kYXRhc2V0LnRhYikuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xyXG5cclxuXHRcdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuXHRcdH0pO1xyXG5cclxuXHR9XHJcblxyXG5cclxuXHJcblx0Ly8gcm9sbG92ZXIgaW1hZ2VzXHJcblx0Ly8gaG92ZXIgY2xhc3MgZm9yIHNob3dpbmcgc3VibmF2XHJcblx0Y29uc3QgZG9OYXZpZ2F0aW9uID0gZnVuY3Rpb24gZG9OYXZpZ2F0aW9uRm4oKXtcclxuXHJcblx0XHQvLyB0b2dnbGUgc3ViLW5hdlxyXG5cdFx0Y29uc3Qgc2l0ZUhlYWRlciA9ICQoJy5zaXRlLWhlYWRlcicpO1xyXG5cdFx0Y29uc3QgcGFyZW50TGluayA9ICQoJy5oYXMtc3ViLW5hdicpO1xyXG5cclxuXHRcdHBhcmVudExpbmsub24oJ21vdXNlZW50ZXInLCBmdW5jdGlvbiggZSApe1xyXG5cclxuXHRcdFx0Y2xvc2VTdWJOYXZzKCk7XHJcblx0XHRcdFxyXG5cdFx0XHRjb25zdCBlbCA9ICQodGhpcyk7XHJcblxyXG5cdFx0XHQkKGVsKS5maW5kKCcuc3ViLW5hdicpLmFkZENsYXNzKCdhY3RpdmUnKTtcclxuXHRcdFx0c2l0ZUhlYWRlci5hZGRDbGFzcygnc3ViLW5hdi1hY3RpdmUnKTtcclxuXHJcblx0XHR9KS5vbignbW91c2VsZWF2ZScsIGZ1bmN0aW9uKCBlICl7XHJcblx0XHRcdFxyXG5cdFx0XHRjbG9zZVN1Yk5hdnMoKTtcclxuXHJcblx0XHR9KTtcclxuXHJcblxyXG5cdFx0Y29uc3QgcGFyZW50TWVnYUxpbmsgPSAkKCcuaGFzLW1lZ2EtbmF2Jyk7XHJcblxyXG5cdFx0cGFyZW50TWVnYUxpbmsub24oJ21vdXNlZW50ZXInLCBmdW5jdGlvbiAoZSkge1xyXG5cclxuXHRcdFx0Y2xvc2VTdWJOYXZzKCk7XHJcblxyXG5cdFx0XHRjb25zdCBlbCA9ICQodGhpcyk7XHJcblxyXG5cdFx0XHQkKGVsKS5maW5kKCcubWVnYS1uYXYnKS5hZGRDbGFzcygnYWN0aXZlJyk7XHJcblx0XHRcdHNpdGVIZWFkZXIuYWRkQ2xhc3MoJ21lZ2EtbmF2LWFjdGl2ZScpO1xyXG5cclxuXHRcdH0pLm9uKCdtb3VzZWxlYXZlJywgZnVuY3Rpb24gKGUpIHtcclxuXHJcblx0XHRcdGNsb3NlU3ViTmF2cygpO1xyXG5cclxuXHRcdH0pO1xyXG5cclxuXHJcblx0XHR2YXIgY2xvc2VTdWJOYXZzID0gZnVuY3Rpb24gKCkge1xyXG5cdFx0XHQkKCcuc3ViLW5hdi5hY3RpdmUnKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XHJcblx0XHRcdCQoJy5tZWdhLW5hdi5hY3RpdmUnKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XHJcblx0XHRcdHNpdGVIZWFkZXIucmVtb3ZlQ2xhc3MoJ3N1Yi1uYXYtYWN0aXZlJyk7XHJcblx0XHRcdHNpdGVIZWFkZXIucmVtb3ZlQ2xhc3MoJ21lZ2EtbmF2LWFjdGl2ZScpO1xyXG5cdFx0fVxyXG5cclxuXHR9XHJcblxyXG5cclxuXHJcblx0Y29uc3QgZG9NZWdhU3ViTmF2aWdhdGlvbiA9IGZ1bmN0aW9uIGRvTWVnYVN1Yk5hdmlnYXRpb25GbigpIHtcclxuXHJcblx0XHQvLyB0b2dnbGUgc3ViLW5hdlxyXG5cdFx0Y29uc3Qgd3JhcHBlciA9ICQoJy5tZWdhbmF2X19jb250ZW50LS10aWxlcycpO1xyXG5cdFx0Y29uc3QgYWxsQ2hpbGRQYW5lbHMgPSAkKCcubWVnYW5hdl9fY29udGVudC0tdGlsZXMtY2hpbGRyZW4nKTtcclxuXHRcdGNvbnN0IG1lZ2FTdWJOYXZMaW5rID0gJCgnLm1lZ2FuYXZfX2NvbnRlbnQtLXNpZGVuYXYtbGluaycpO1xyXG5cclxuXHRcdG1lZ2FTdWJOYXZMaW5rLm9uKCdtb3VzZWVudGVyJywgZnVuY3Rpb24gKGUpIHtcclxuXHJcblx0XHRcdGNsb3NlTWVnYVN1Yk5hdnMoKTtcclxuXHJcblx0XHRcdGNvbnN0IGVsID0gJCh0aGlzKTtcclxuXHJcblx0XHRcdHZhciBsaW5rSWQgPSAkKGVsKS5kYXRhKCdtZWdhbmF2SWQnKTtcclxuXHRcdFx0dmFyIHBhbmVsVG9TaG93ID0gd3JhcHBlci5maW5kKFwiW2RhdGEtbWVnYW5hdi1wYXJlbnQtaWQ9J1wiICsgbGlua0lkICsgXCInXVwiKTtcclxuXHRcdFx0cGFuZWxUb1Nob3cuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xyXG5cclxuXHJcblx0XHR9KTtcclxuXHJcblx0XHR2YXIgY2xvc2VNZWdhU3ViTmF2cyA9IGZ1bmN0aW9uICgpIHtcclxuXHRcdFx0YWxsQ2hpbGRQYW5lbHMucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1x0XHRcdFxyXG5cdFx0fVxyXG5cclxuXHR9XHJcblxyXG5cclxuXHJcblxyXG4gICAgY29uc3QgZG9BcnRpY2xlID0gZnVuY3Rpb24gZG9BcnRpY2xlRm4oKSB7XHJcbiAgICAgICAgdmFyICRsYXRlc3RUYWcgPSAkKCcjanMtdGFnLWRlZmF1bHQnKTtcclxuICAgICAgICB2YXIgJGFydGljbGVMaXN0ID0gJCgnI2FydGljbGUtbGlzdCcpO1xyXG4gICAgICAgIHZhciBub2RlSWQ7XHJcbiAgICAgICAgdmFyIHBhZ2VJbmRleCA9IDE7XHJcbiAgICAgICAgdmFyIG1heFBhZ2U7XHJcbiAgICAgICAgdmFyICRzZWxlY3RlZFRhZ3MgPSBbXTtcclxuXHJcbiAgICAgICAgZnVuY3Rpb24gcmVzZXRQYWdpbmF0aW9uKCkge1xyXG4gICAgICAgICAgICBwYWdlSW5kZXggPSAxO1xyXG4gICAgICAgICAgICBtYXhQYWdlID0gJCgnI21heFBhZ2UnKS52YWwoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZ1bmN0aW9uIHRvZ2dsZVRhZygpIHtcclxuICAgICAgICAgICAgJCgnLmpzLWZpbHRlci10YWcnKS5jbGljayhmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgX3RleHQgPSAkKHRoaXMpWzBdLmlubmVyVGV4dDtcclxuXHJcbiAgICAgICAgICAgICAgICB2YXIgaSA9ICRzZWxlY3RlZFRhZ3MuaW5kZXhPZihfdGV4dCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoaSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJHNlbGVjdGVkVGFncy5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnY3VycmVudCcpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJHNlbGVjdGVkVGFncy5wdXNoKF90ZXh0KTtcclxuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdjdXJyZW50Jyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgbG9hZEZpcnN0UGFnZUFydGljbGVDb250ZW50KG5vZGVJZCwgJHNlbGVjdGVkVGFncyk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKCRzZWxlY3RlZFRhZ3MubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAkbGF0ZXN0VGFnLmFkZENsYXNzKCdjdXJyZW50Jyk7ICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICRsYXRlc3RUYWcucmVtb3ZlQ2xhc3MoJ2N1cnJlbnQnKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAkKCRsYXRlc3RUYWcpLmNsaWNrKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgaWYgKCQodGhpcylbMF0uY2xhc3NMaXN0LmNvbnRhaW5zKCdjdXJyZW50JykpIHtcclxuICAgICAgICAgICAgICAgICAgICAvL2RvIG5vdGhpbmdcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICQodGhpcylbMF0uY2xhc3NMaXN0LmFkZCgnY3VycmVudCcpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB2YXIgX3RhZ0VsZW1lbnRzID0gJCgnLmpzLWZpbHRlci10YWcnKS50b0FycmF5KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgX3RhZ0VsZW1lbnRzLmZvckVhY2goZnVuY3Rpb24gKGVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdjdXJyZW50JykgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJHNlbGVjdGVkVGFncyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIGxvYWRGaXJzdFBhZ2VBcnRpY2xlQ29udGVudChub2RlSWQsICRzZWxlY3RlZFRhZ3MpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmdW5jdGlvbiBsb2FkUGFnZWRDb250ZW50KF9ub2RlSWQsIF9wYWdlSW5kZXgsIF9zZWxlY3RlZFRhZ3MpIHtcclxuICAgICAgICAgICAgdmFyICRsb2FkTW9yZUJ0biA9ICQoJy5qcy1sb2FkLW1vcmUtbmV3cycpO1xyXG5cclxuICAgICAgICAgICAgJC5hamF4KHtcclxuICAgICAgICAgICAgICAgIHVybDogJy91bWJyYWNvL3N1cmZhY2UvQXJ0aWNsZS9QYWdlZEFydGljbGUnLFxyXG4gICAgICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgICAgICAgICdub2RlSWQnOiBfbm9kZUlkLFxyXG4gICAgICAgICAgICAgICAgICAgICdwYWdlJzogX3BhZ2VJbmRleCxcclxuICAgICAgICAgICAgICAgICAgICAndGFncyc6IEpTT04uc3RyaW5naWZ5KF9zZWxlY3RlZFRhZ3MpXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgdHlwZTogJ0dFVCcsXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhICE9PSAnJyAmJiBkYXRhLmxlbmd0aCA+IDUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJChkYXRhKS5hcHBlbmRUbygnLnBhZ2VkLWFydGljbGVzJykuaGlkZSgpLmZhZGVJbignc2xvdycpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX3BhZ2VJbmRleCA9PSBtYXhQYWdlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbG9hZE1vcmVCdG4uaGlkZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICRsb2FkTW9yZUJ0bi50ZXh0KCdMb2FkIG1vcmUnKS5wcm9wKCdkaXNhYmxlZCcsIGZhbHNlKTtcdFx0XHQgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICRsb2FkTW9yZUJ0bi5kZWxheSg2MDApLmZhZGVPdXQoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZXJyb3IhJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZnVuY3Rpb24gbG9hZEZpcnN0UGFnZUFydGljbGVDb250ZW50KF9ub2RlSWQsIF9zZWxlY3RlZFRhZ3MpIHtcclxuICAgICAgICAgICAgJC5hamF4KHtcclxuICAgICAgICAgICAgICAgIHVybDogJy91bWJyYWNvL3N1cmZhY2UvQXJ0aWNsZS9BcnRpY2xlTGlzdCcsXHJcbiAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgJ25vZGVJZCc6IF9ub2RlSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgJ3BhZ2UnOiAxLFxyXG4gICAgICAgICAgICAgICAgICAgICd0YWdzJzogSlNPTi5zdHJpbmdpZnkoX3NlbGVjdGVkVGFncylcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnR0VUJyxcclxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uIChkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEgIT09ICcnICYmIGRhdGEubGVuZ3RoID4gNSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkYXJ0aWNsZUxpc3QuZW1wdHkoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJChkYXRhKS5hcHBlbmRUbygkYXJ0aWNsZUxpc3QpLmhpZGUoKS5mYWRlSW4oJ3Nsb3cnKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vbm8gcmVzdWx0XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXNldFBhZ2luYXRpb24oKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdlcnJvciEnKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmdW5jdGlvbiB0cmlnZ2VyQXJ0aWNsZUZpbHRlcigpIHtcclxuICAgICAgICAgICAgaWYgKCRhcnRpY2xlTGlzdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIG5vZGVJZCA9ICQoJyNhcnRpY2xlLWxpc3QnKS5kYXRhKCdub2RlaWQnKTtcclxuICAgICAgICAgICAgICAgIHJlc2V0UGFnaW5hdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgdG9nZ2xlVGFnKCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKCdjbGljaycsICcuanMtbG9hZC1tb3JlLW5ld3MnLCBmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgICAgICAgICAgJCh0aGlzKS50ZXh0KCdsb2FkaW5nJykucHJvcCgnZGlzYWJsZWQnLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgIHBhZ2VJbmRleCsrO1xyXG5cclxuICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCBmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICAgICAgICAgICBsb2FkUGFnZWRDb250ZW50KG5vZGVJZCwgcGFnZUluZGV4LCAkc2VsZWN0ZWRUYWdzKTtcclxuXHRcdFx0ICAgIH0sIDQwMCApO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0cmlnZ2VyQXJ0aWNsZUZpbHRlcigpO1xyXG5cdH1cclxuXHJcblxyXG5cclxuXHJcblx0Y29uc3QgZG9Nb2JpbGVNZW51ID0gZnVuY3Rpb24gZG9Nb2JpbGVNZW51Rm4oKSB7XHJcblxyXG5cdFx0Ly8gaGFtYnVyZ2VyXHJcblx0XHRjb25zdCBfYnJnciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdqcy10b2dnbGUtbWVudScpO1xyXG5cdFx0Y29uc3QgX21vYmlsZUxpbmsgPSAkKCcubW9iaWxlLW5hdl9fZmlyc3RsZXZlbC1saW5rJyk7XHJcblx0XHRjb25zdCBfbW9iaWxlU3ViTGluayA9ICQoJy5tb2JpbGUtbmF2X19zZWNvbmRsZXZlbC1saW5rJyk7XHJcblxyXG5cdFx0Y29uc3Qgd3JhcHBlciA9ICQoJy5tb2JpbGUtbmF2X19zdWItcGFuZWxzJyk7XHJcblx0XHRjb25zdCBhbGxDaGlsZFBhbmVscyA9ICQoJy5tb2JpbGUtbmF2X19zdWItcGFuZWwnKTtcclxuXHJcblx0XHRjb25zdCByZXR1cm5MaW5rID0gJCgnLm1vYmlsZS1uYXZfc3ViLXBhbmVsLXJldHVybicpO1xyXG5cclxuXHRcdCQoX2JyZ3IpLm9uKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7XHJcblxyXG5cdFx0XHQkKCcubW9iaWxlLW5hdl9fc3ViLXBhbmVsJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xyXG5cdFx0XHRcclxuXHRcdFx0Ly8gdG9nZ2xlIGFjdGl2ZSBjbGFzcyBvbiBidXR0b25cclxuXHRcdFx0JCh0aGlzKS50b2dnbGVDbGFzcygnaXMtYWN0aXZlJyk7XHJcblxyXG5cdFx0XHQvL3RvZ2dsZSBjbGFzcyBvbiBib2R5XHJcblx0XHRcdCQoX2IpLnRvZ2dsZUNsYXNzKCdtb2JpbGUtbmF2LWFjdGl2ZScpO1xyXG5cclxuXHRcdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0fSk7XHJcblxyXG5cclxuXHRcdCQoX21vYmlsZUxpbmspLm9uKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7XHJcblxyXG5cdFx0XHRhbGxDaGlsZFBhbmVscy5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XHJcblxyXG5cdFx0XHRjb25zdCBlbCA9ICQodGhpcyk7XHJcblxyXG5cdFx0XHR2YXIgbGlua0lkID0gJChlbCkuZGF0YSgnbW9iaWxlbGlua0lkJyk7XHJcblx0XHRcdHZhciBwYW5lbFRvU2hvdyA9IHdyYXBwZXIuZmluZChcIltkYXRhLW1vYmlsZWxpbmstcGFyZW50LWlkPSdcIiArIGxpbmtJZCArIFwiJ11cIik7XHJcblx0XHRcdHBhbmVsVG9TaG93LmFkZENsYXNzKCdhY3RpdmUnKTtcclxuXHJcblx0XHRcdGUucHJldmVudERlZmF1bHQoKTtcclxuXHRcdH0pO1xyXG5cclxuXHRcdCQoX21vYmlsZVN1YkxpbmspLm9uKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7XHJcblx0XHRcdGNvbnN0IGVsID0gJCh0aGlzKTtcclxuXHJcblx0XHRcdHZhciBsaW5rSWQgPSAkKGVsKS5kYXRhKCdtb2JpbGVTZWNvbmRsZXZlbGxpbmtJZCcpO1xyXG5cdFx0XHRjb25zb2xlLmxvZygnbGluayBpZCAnLCBsaW5rSWQpO1xyXG5cdFx0XHR2YXIgcGFuZWxUb1Nob3cgPSB3cmFwcGVyLmZpbmQoXCJbZGF0YS1tb2JpbGVsaW5rLXNlY29uZGxldmVsbGluay1wYXJlbnQtaWQ9J1wiICsgbGlua0lkICsgXCInXVwiKTtcclxuXHRcdFx0Y29uc29sZS5sb2coJ3BhbmVsIHRvIHNob3cnLCBwYW5lbFRvU2hvdyk7XHJcblx0XHRcdHBhbmVsVG9TaG93LmFkZENsYXNzKCdhY3RpdmUnKTtcclxuXHJcblx0XHRcdGUucHJldmVudERlZmF1bHQoKTtcclxuXHRcdH0pO1xyXG5cclxuXHRcdCQocmV0dXJuTGluaykub24oJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcclxuXHJcblx0XHRcdGNvbnN0IGVsID0gJCh0aGlzKTtcclxuXHRcdFx0dmFyIHRoaXNQYW5lbCA9IGVsLnBhcmVudHMoJy5tb2JpbGUtbmF2X19zdWItcGFuZWwnKTtcclxuXHRcdFx0dGhpc1BhbmVsLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcclxuXHJcblx0XHRcdGUucHJldmVudERlZmF1bHQoKTtcclxuXHRcdH0pO1xyXG5cdFx0XHJcblx0fTsgXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblx0Y29uc3QgZG9Ub2dnbGVMb29wRm9ybSA9IGZ1bmN0aW9uIGRvVG9nZ2xlTG9vcEZvcm1Gbigpe1xyXG5cclxuXHRcdGNvbnN0IF90b2dnbGVCdG4gPSAkKCcuanMtdG9nZ2xlLWluLXRoZS1sb29wLWZvcm0nKTtcclxuXHJcblx0XHRfdG9nZ2xlQnRuLm9uKCdjbGljaycsIGZ1bmN0aW9uKCBlICl7XHJcblxyXG5cdFx0XHQkKHRoaXMpLnBhcmVudHMoJy5tb2R1bGUnKS5maW5kKCcuaW4tdGhlLWxvb3AtZm9ybScpLnRvZ2dsZUNsYXNzKCdvcGVuJyk7XHJcblxyXG5cdFx0XHRlLnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cclxuXHJcblx0LyogXHJcbiAgICogQU5JTUFUSU9OU1xyXG4gICAqL1xyXG5cclxuXHRjb25zdCAgZG9BbmltYXRpb25zSW5pdCA9IGZ1bmN0aW9uIGRvQW5pbWF0aW9uc0luaXRGbigpIHtcclxuXHJcblx0XHRjb25zdCAgc2Nyb2xsID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSB8fCBmdW5jdGlvbihjYWxsYmFjayl7IFxyXG5cdFx0ICB3aW5kb3cuc2V0VGltZW91dCggY2FsbGJhY2ssIDEwMDAvNjApOyBcclxuXHRcdH07XHJcblxyXG5cdFx0Y29uc3QgIGVsZW1lbnRzVG9TaG93ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmFuaW1hdGUnKTtcclxuXHJcblx0XHRmdW5jdGlvbiBsb29wKCkge1xyXG5cclxuXHRcdFx0ZWxlbWVudHNUb1Nob3cuZm9yRWFjaChmdW5jdGlvbiAoZWxlbWVudCkge1xyXG5cdFx0XHRcdGlmIChpc0VsZW1lbnRJblZpZXdwb3J0KGVsZW1lbnQpKSB7XHJcblx0XHRcdFx0XHRlbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2lzLXZpc2libGUnKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0Ly9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2lzLXZpc2libGUnKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdFx0c2Nyb2xsKGxvb3ApO1xyXG5cdFx0fVxyXG5cclxuXHRcdGZ1bmN0aW9uIGlzRWxlbWVudEluVmlld3BvcnQoZWwpIHtcclxuXHJcblx0XHRcdC8vIHNwZWNpYWwgYm9udXMgZm9yIHRob3NlIHVzaW5nIGpRdWVyeVxyXG5cdFx0XHRpZiAodHlwZW9mIGpRdWVyeSA9PT0gJ2Z1bmN0aW9uJyAmJiBlbCBpbnN0YW5jZW9mIGpRdWVyeSkge1xyXG5cdFx0XHRlbCA9IGVsWzBdO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRjb25zdCAgcmVjdCA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cclxuXHRcdFx0cmV0dXJuIChcclxuXHRcdFx0XHQgICAocmVjdC50b3AgPD0gMCAmJiByZWN0LmJvdHRvbSA+PSAwKSBcclxuXHRcdFx0XHR8fCAocmVjdC5ib3R0b20gPj0gKHdpbmRvdy5pbm5lckhlaWdodCBcclxuXHRcdFx0XHR8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSAmJiByZWN0LnRvcCA8PSAod2luZG93LmlubmVySGVpZ2h0IFxyXG5cdFx0XHRcdHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpKSBcclxuXHRcdFx0XHR8fCAocmVjdC50b3AgPj0gMCAmJiByZWN0LmJvdHRvbSA8PSAod2luZG93LmlubmVySGVpZ2h0IFxyXG5cdFx0XHRcdHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpKVxyXG5cdFx0XHQpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGxvb3AoKTtcclxuXHJcblx0fTtcclxuXHJcblx0Ly8gaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvanMtZGF0ZXBpY2tlclxyXG5cdGNvbnN0IGRvRGF0ZVBpY2tlciA9IGZ1bmN0aW9uIGRvRGF0ZVBpY2tlckZuKCl7XHJcblx0XHRcclxuXHRcdGlmKCAkKCcuanMtZGF0ZS1waWNrZXInKS5sZW5ndGggIT0gJycgKSB7XHJcblx0XHRcdGNvbnNvbGUubG9nKCd5ZXAgLSBkYXRlcGlja2VycyBoZXJlJyk7XHJcblxyXG5cdFx0XHRjb25zdCBwaWNrZXIgPSBkYXRlcGlja2VyKCcuanMtZGF0ZS1waWNrZXInLCB7XHJcblx0XHRcdFx0bm9XZWVrZW5kczogdHJ1ZSxcclxuXHRcdFx0XHRmb3JtYXR0ZXI6IChpbnB1dCwgZGF0ZSwgaW5zdGFuY2UpID0+IHtcclxuXHRcdFx0XHRcdGNvbnN0IHZhbHVlID0gZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKVxyXG5cdFx0XHRcdFx0aW5wdXQudmFsdWUgPSB2YWx1ZSAvLyA9PiAnMS8xLzIwOTknXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cclxuXHRjb25zdCBkb0luc3RhV2lkZ2V0ID0gZnVuY3Rpb24gZG9JbnN0YVdpZGdldEZuKCl7XHJcbiAgICAgICAgdmFyICRpbnN0YXdpZGdldCA9ICQoJyNpbnN0YXdpZGdldCcpO1xyXG5cclxuICAgICAgICBmdW5jdGlvbiBmZXRjaEluc3RhZ3JhbUZlZWRzKCkge1xyXG4gICAgICAgICAgICB2YXIgX3VybCA9ICcvdW1icmFjby9hcGkvSW5zdGFncmFtL0dldEZlZWRzJztcclxuICAgICAgICAgICAgJC5hamF4KHtcclxuICAgICAgICAgICAgICAgIHR5cGU6ICdHRVQnLFxyXG4gICAgICAgICAgICAgICAgdXJsOiBfdXJsLFxyXG4gICAgICAgICAgICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uIChyZXNwb25zZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0gSlNPTi5wYXJzZShyZXNwb25zZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICQuZWFjaChkYXRhLCBmdW5jdGlvbiAoaSwgb2JqKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICRpbnN0YXdpZGdldC5hcHBlbmQoJzxhIGhyZWY9XCInICsgb2JqLnBlcm1hbGluayArICdcIiB0YXJnZXQ9XCJfYmxhbmtcIj48aW1nIHNyYz1cIicgKyBvYmoubWVkaWFfdXJsICsgJ1wiIGFsdD1cIicgKyBvYmouY2FwdGlvbiArICdcIj48L2E+Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICAkaW5zdGF3aWRnZXQuYXBwZW5kKCdFcnJvciBmZXRjaGluZyBJbnN0YWdyYW0gbWVkaWEuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXInKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoJGluc3Rhd2lkZ2V0Lmxlbmd0aCAhPSAnJyApIHtcclxuICAgICAgICAgICAgZmV0Y2hJbnN0YWdyYW1GZWVkcygpOyAgICAgICAgICBcclxuXHRcdH1cclxuXHR9XHJcblxyXG4gICAgY29uc3QgZG9OZXdzbGV0dGVyID0gZnVuY3Rpb24gZG9OZXdzbGV0dGVyRm4oKSB7XHJcbiAgICAgICAgdmFyICRuYW1lID0gJCgnI25ld3NsZXR0ZXJOYW1lJyk7XHJcbiAgICAgICAgdmFyICRlbWFpbCA9ICQoJyNuZXdzbGV0dGVyRW1haWwnKTtcclxuICAgICAgICB2YXIgJGJ0blN1Ym1pdCA9ICQoJy5qcy1uZXdzbGV0dGVyLWJ0bicpO1xyXG4gICAgICAgIHZhciAkbWVzc2FnZSA9ICQoJyNqcy1uZXdzbGV0dGVyLW1lc3NhZ2UnKTtcclxuXHJcbiAgICAgICAgZnVuY3Rpb24gZm9ybVZhbGlkYXRpb24oKSB7XHJcbiAgICAgICAgICAgIHZhciBmb3JtID0gJCgnLmpzLW5ld3NsZXR0ZXItZm9ybScpWzBdO1xyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZvcm0uZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGlmIChmb3JtLmVsZW1lbnRzW2ldLnZhbHVlID09PSAnJyAmJiBmb3JtLmVsZW1lbnRzW2ldLmhhc0F0dHJpYnV0ZSgncmVxdWlyZWQnKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZnVuY3Rpb24gc3Vic2NyaWJlKCkge1xyXG5cclxuICAgICAgICAgICAgJGJ0blN1Ym1pdC5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGZvcm1WYWxpZGF0aW9uKCkgPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAkbWVzc2FnZS5jc3MoeyAnY29sb3InOiAncmVkJyB9KTtcclxuICAgICAgICAgICAgICAgICAgICAkbWVzc2FnZS5odG1sKCdCb3RoIGZpZWxkcyBhcmUgbWFuZGF0b3J5LicpO1xyXG4gICAgICAgICAgICAgICAgICAgICRtZXNzYWdlWzBdLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgICAgICAgICAgICAgIHZhciBfbW9kZWwgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgXCJOYW1lXCI6ICRuYW1lLnZhbCgpLFxyXG4gICAgICAgICAgICAgICAgICAgIFwiRW1haWxcIjogJGVtYWlsLnZhbCgpLFxyXG4gICAgICAgICAgICAgICAgICAgIFwiU2l0ZUlkXCI6ICQoJy5qcy1uZXdzbGV0dGVyLWZvcm0nKVswXS5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2l0ZWlkJylcclxuICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgdmFyIF91cmwgPSAnL3VtYnJhY28vYXBpL25ld3NsZXR0ZXIvc2VuZCc7XHJcbiAgICAgICAgICAgICAgICAkLmFqYXgoe1xyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdQT1NUJyxcclxuICAgICAgICAgICAgICAgICAgICB1cmw6IF91cmwsXHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShfbW9kZWwpLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uIChyZXNwb25zZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKHJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1c0NvZGUgPT0gNDAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbWVzc2FnZS5jc3MoeyAnY29sb3InOiAncmVkJyB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtZXNzYWdlLmh0bWwocmVzcG9uc2UuTWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbWVzc2FnZVswXS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRidG5TdWJtaXQuaGlkZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWUudmFsKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGVtYWlsLnZhbChudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtZXNzYWdlLmNzcyh7ICdjb2xvcic6ICd3aGl0ZScgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbWVzc2FnZS5odG1sKHJlc3BvbnNlLk1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1lc3NhZ2VbMF0uc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24gKHJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJG1lc3NhZ2UuY3NzKHsgJ2NvbG9yJzogJ3JlZCcgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICRtZXNzYWdlLmh0bWwoJ1NvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLicpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkbWVzc2FnZVswXS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG5cdC8vIGpRdWVyeSBvblJlYWR5XHJcblx0Ly9cclxuXHQkKGZ1bmN0aW9uKCkge1xyXG5cclxuXHRcdGRvU2xpY2tDYXJvdXNlbCgpO1xyXG5cclxuXHRcdGRvRml4ZWROYXZpZ2F0aW9uKCk7XHJcblxyXG5cdFx0ZG9UYWJzKCk7XHJcblxyXG5cdFx0ZG9BcnRpY2xlKCk7XHJcblxyXG5cdFx0ZG9OYXZpZ2F0aW9uKCk7XHJcblxyXG5cdFx0ZG9NZWdhU3ViTmF2aWdhdGlvbigpO1xyXG5cclxuXHRcdGRvTW9iaWxlTWVudSgpO1xyXG5cclxuXHRcdGRvVG9nZ2xlTG9vcEZvcm0oKTtcclxuXHJcblx0XHRkb0FuaW1hdGlvbnNJbml0KCk7XHJcblxyXG5cdFx0ZG9EYXRlUGlja2VyKCk7XHJcblxyXG4gICAgICAgIGRvSW5zdGFXaWRnZXQoKTtcclxuXHJcblx0XHRkb05ld3NsZXR0ZXIoKTtcclxuXHJcblx0XHRsaWdodGJveC5vcHRpb24oe1xyXG5cdFx0XHQncmVzaXplRHVyYXRpb24nOiAyMDAgXHJcblx0XHR9KVxyXG5cclxuXHR9KTtcclxuXHJcbn0ocmF5Z2xhc3MsIGpRdWVyeSwgd2luZG93LCBkb2N1bWVudCk7XHJcblxyXG5cclxuXHJcbmZ1bmN0aW9uIHRyaWdnZXJfc2xpY2tfb25fbW9iaWxlKHNsaWRlciwgc2V0dGluZ3MsIGJyZWFrcG9pbnQpIHtcclxuXHQkKHdpbmRvdykub24oJ2xvYWQgcmVzaXplJywgZnVuY3Rpb24gKCkge1xyXG5cdFx0aWYgKCQod2luZG93KS53aWR0aCgpID4gYnJlYWtwb2ludCkge1xyXG5cdFx0XHRpZiAoc2xpZGVyLmhhc0NsYXNzKCdzbGljay1pbml0aWFsaXplZCcpKSB7XHJcblx0XHRcdFx0c2xpZGVyLnNsaWNrKCd1bnNsaWNrJyk7XHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCFzbGlkZXIuaGFzQ2xhc3MoJ3NsaWNrLWluaXRpYWxpemVkJykpIHtcclxuXHRcdFx0cmV0dXJuIHNsaWRlci5zbGljayhzZXR0aW5ncyk7XHJcblx0XHR9XHJcblx0fSk7XHJcbn07Il19"}