1"use strict";!function(e){var i;function t(i){i.preventDefault();for(var t=e("#news-filters").serialize().replace("?","").split("&"),s="",n=0,o=t.length;n<o;n++){var a=t[n].split("=");a[1]&&(s+=(s?"&":"")+a[0]+"="+a[1])}window.location.href=i.target.href+(s?"?"+s:"")}function s(i){i.preventDefault();var t=e(".listing-options"),s=e("#search-ref").data("search"),n=e(this).attr("href").match(/page\/\d+|paged=\d+/gm),o="/"+window.location.pathname.slice(1).split("/")[0],a=e("#listing-options-results");n=parseInt(n[0].replace(/[^0-9]+/g,"")),t.addClass("loading"),e.post(ajax.url,{action:"goto_listing_options_results_page",values:s,paged:n},function(i){i.query&&history.pushState({},"",window.location.origin+o+"/?"+i.query),a.html(i.html),e("html,body").animate({scrollTop:a.offset().top-50}),t.removeClass("loading")})}function n(){var i=e("#listing-options-form").find("button[type=submit]"),t=!0;e("#listing-options-form input").each(function(){e(this).val()&&(t=!1)}),e("#listing-options-form select").each(function(){e(this).val()&&(t=!1)}),t?i.prop("disabled",!0):i.prop("disabled",!1)}function o(i){i.preventDefault();var t=e(this).closest("form");t.find("input").each(function(){e(this).val("")}
1),t.find("select").each(function(){e(this).prop("selectedIndex",0)})}function a(i){i.preventDefault();var t=e(this),s=t.closest(".listing-options"),n=t.serialize(),o="/"+window.location.pathname.slice(1).split("/")[0],a=e("#listing-options-results");s.addClass("loading"),t.find(".button").blur(),e.post(ajax.url,{action:"update_listing_options_results",values:n},function(i){i.query&&history.pushState({},"",window.location.origin+o+"/?"+i.query),a.html(i.html),e("html,body").animate({scrollTop:a.offset().top-50}),s.removeClass("loading")})}function l(){i.removeClass("mm-active"),e(".top-nav").removeClass("mobile")}function r(){var i=e(".main-content.alumnae-inside, .main-content.programs-inside"),t=e(".secondary-nav"),s=e(".sidebar.alumnae-inside-sb"),n=t.height()+s.height();e(window).width()>670?i.height()<n&&i.css({minHeight:n}):i.removeAttr("style")}function d(e){e.preventDefault(),i.toggleClass("side-nav-active")}function c(){i.removeClass("side-nav-active")}e(document).ready(function(){i=e("body"),e(".flexslider").length&&e(".flexslider").flexslider({animation:"slide",animationSpeed:600,slideshowSpeed:5e3,directionNav:!1,useCSS:!1,touch:!0,start:function(e){e.slides.eq(e.currentSlide),e.slides.eq(e.currentSlide-1),e.slides.eq(e.animatingTo)},after:function(i){var t=i.slides.eq(i.currentSlide);i.slides.eq(i.currentSlide-1),i.slides.eq(i.animatingTo),e(window).width()>670&&e(".flexslider.home").is("*")&&t.find("a").slideDown()},before:function(i){var t=i.slides.eq(i.currentSlide);i.slides.eq(i.currentSlide-1),i.slides.eq(i.animatingTo),e(window).width()>670&&e(".flexslider.home").is("*")?(e(".slides>li").find("a").hide(),t.find("a").show()):e(".slides>li").find("a").show()}}),e(".js-toggle-side-nav").click(d),e(window).resize(c),e("iframe").load(function(){}),navigator.userAgent.match(/(Android (2.0|2.1))|(Nokia)|(Opera (Mini|Mobi))|(w(eb)?OSBrowser)|(UCWEB)|(Windows Phone)|(XBLWP)|(ZuneWP)/)&&(e(".icon").addClass("fallback"),e(".programs-listing").addClass("fallback")),"function"==typeof e.fn.tweets&&e(".twitter-feed").tweets({username:"MSVU_Halifax",tweetTemplate:'<li> <p> {DATE}<br /> {TWEET}<br /> </p> <p style="margin-top:.5em"><a href="{REPLY}">reply</a> - <a href="{FAVORITE}">favorite</a> - <a href="{RETWEET}">retweet</a></p> </li>',tweets:3,includeLinks:2,dateFormat:!1}),e(window).resize(function(){e(window).width()>670&&e(".header-search-field").closest(".hide-for-tablet").removeAttr("style"),r(),l()}),e(".bams-page").is("*")&&i.addClass("bams domino"),e(".accordion_link").click(function(e){e.preventDefault()}),e(".accordion_box").find(".sm_header").click(function(){var i=e(this).closest(".sm_box"),t=e(this).find("a"),s=i.find(".sm_section_accordion, .sm_section");s.is(":visible")?(t.removeClass("sm_open").addClass("sm_closed"),s.slideUp()):(t.removeClass("sm_closed").addClass("sm_open"),s.slideDown())}),e(".attend-an-event").find(".date").each(function(){var i=e(this).find("span"),t=i.text().split(" ")[0].substring(0,3),s=i.text().split(" ")[1];i.text(t+" "+s.replace(/[^0-9]+/g,""))}),e(".mobile-controls>.toggle-menu").click(function(){e(".top-nav").addClass("mobile"),i.addClass("mm-active")}),e(".hide-menu").click(function(){l()}),e(".mobile-controls>.toggle-search").click(function(){e(".header-search-field").closest(".hide-for-tablet").slideToggle().toggleClass("visible")}),e(".select-user-type").hover(function(){e(".select-user-type-options").stop(!0,!0).slideDown()},function(){e(".select-user-type-options").stop(!0,!0).slideUp()}),e(".feeds-tabs>ul>li").click(function(){var i=e(".feeds-tabs").find("li.active"),t=e(this).attr("id").substr(4),s=e(".feeds-content").find(".block"),n=e(".feeds-content").find(".feeds-"+i.attr("id").substr(4));i.removeClass("active"),e(this).addClass("active"),n.fadeOut(function(){!function(i,t){i.each(function(){e(this).hasClass("feeds-"+t)&&e(this).fadeIn()})}(s,t)})}),r(),e(".js-apply-news-filters").click(t),e("#listing-options-form").submit(a),e(".js-clear-listing-options").click(o),e("#listing-options-form input[type=text]").keyup(n),e("#listing-options-form select").change(n),i.on("click","#listing-options-results .pager a",s)})}(jQuery); 2//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9qcy9zY3JpcHRzLmpzIl0sIm5hbWVzIjpbIiQiLCJib2R5IiwiYXBwbHlOZXdzRmlsdGVyc0hhbmRsZXIiLCJlIiwicHJldmVudERlZmF1bHQiLCJxdWVyeUFyciIsInNlcmlhbGl6ZSIsInJlcGxhY2UiLCJzcGxpdCIsInF1ZXJ5IiwicSIsInFBcnJMZW5ndGgiLCJsZW5ndGgiLCJxQXJyIiwid2luZG93IiwibG9jYXRpb24iLCJocmVmIiwidGFyZ2V0IiwiZ290b0xpc3RpbmdPcHRpb25zUGFnZUhhbmRsZXIiLCJjb250YWluZXIiLCJ2YWx1ZXMiLCJkYXRhIiwidGFyZ2V0UGFnZSIsInRoaXMiLCJhdHRyIiwibWF0Y2giLCJwYXRoIiwicGF0aG5hbWUiLCJzbGljZSIsInJlc3VsdHNDb250YWluZXIiLCJwYXJzZUludCIsImFkZENsYXNzIiwicG9zdCIsImFqYXgiLCJ1cmwiLCJhY3Rpb24iLCJwYWdlZCIsInJlc3BvbnNlIiwiaGlzdG9yeSIsInB1c2hTdGF0ZSIsIm9yaWdpbiIsImh0bWwiLCJhbmltYXRlIiwic2Nyb2xsVG9wIiwib2Zmc2V0IiwidG9wIiwicmVtb3ZlQ2xhc3MiLCJjaGVja0VtcHR5RmllbGRIYW5kbGVyIiwic3VibWl0IiwiZmluZCIsImlzRW1wdHkiLCJlYWNoIiwidmFsIiwicHJvcCIsImNsZWFyTGlzdGluZ09wdGlvbnNIYW5kbGVyIiwiZm9ybSIsImNsb3Nlc3QiLCJsaXN0aW5nT3B0aW9uc1N1Ym1pdEhhbmRsZXIiLCJibHVyIiwiaGlkZU1lbnUiLCJzZXRDb250ZW50SGVpZ2h0IiwibWFpbkNvbnRlbnQiLCJzYk5hdiIsInNiQ29udGVudCIsImNvbWJpbmVkSGVpZ2h0IiwiaGVpZ2h0Iiwid2lkdGgiLCJjc3MiLCJtaW5IZWlnaHQiLCJyZW1vdmVBdHRyIiwidG9nZ2xlU2lkZU5hdiIsInRvZ2dsZUNsYXNzIiwicmVzaXplSGFuZGxlciIsImRvY3VtZW50IiwicmVhZHkiLCJmbGV4c2xpZGVyIiwiYW5pbWF0aW9uIiwiYW5pbWF0aW9uU3BlZWQiLCJzbGlkZXNob3dTcGVlZCIsImRpcmVjdGlvbk5hdiIsInVzZUNTUyIsInRvdWNoIiwic3RhcnQiLCJzbGlkZXIiLCJzbGlkZXMiLCJlcSIsImN1cnJlbnRTbGlkZSIsImFuaW1hdGluZ1RvIiwiYWZ0ZXIiLCJjdXJyZW50IiwiaXMiLCJzbGlkZURvd24iLCJiZWZvcmUiLCJoaWRlIiwic2hvdyIsImNsaWNrIiwicmVzaXplIiwibG9hZCIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsImZuIiwidHdlZXRzIiwidXNlcm5hbWUiLCJ0d2VldFRlbXBsYXRlIiwiaW5jbHVkZUxpbmtzIiwiZGF0ZUZvcm1hdCIsInBhcmVudCIsImFMYWJlbCIsImFDb250ZW50Iiwic2xpZGVVcCIsImRhdGUiLCJtb250aCIsInRleHQiLCJzdWJzdHJpbmciLCJkYXkiLCJzbGlkZVRvZ2dsZSIsImhvdmVyIiwic3RvcCIsImFjdGl2ZVRhYiIsInNlbGVjdGVkVGFiIiwic3Vic3RyIiwicGFnZXMiLCJjdXJyZW50UGFnZSIsImZhZGVPdXQiLCJoYXNDbGFzcyIsImZhZGVJbiIsImNoYW5nZVRhYiIsImtleXVwIiwiY2hhbmdlIiwib24iLCJqUXVlcnkiXSwibWFwcGluZ3MiOiJjQUFBLFNBQVVBLEdBQVQsSUFBQUMsRUFxSkQsU0FBQUMsRUFBQUMsR0FDSUEsRUFBQUMsaUJBT0osSUFMQSxJQUVZQyxFQUZaTCxFQUFBLGlCQUNxQk0sWUFDS0MsUUFBVyxJQUFBLElBQUFDLE1BQUEsS0FDekJDLEVBQVEsR0FFcEJDLEVBQUEsRUFBQUMsRUFBQU4sRUFBQU8sT0FBQUYsRUFBQUMsRUFBQUQsSUFBQSxDQUNRLElBQUtHLEVBQVNSLEVBQUVLLEdBQVVGLE1BQUcsS0FDckJLLEVBQUksS0FDSkosSUFBU0EsRUFBQSxJQUFBLElBQUFJLEVBQUEsR0FBQSxJQUFBQSxFQUFBLElBSXpCQyxPQUFBQyxTQUFBQyxLQUFBYixFQUFBYyxPQUFBRCxNQUFBUCxFQUFBLElBQUFBLEVBQUEsSUFPQSxTQUFBUyxF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kgsRUFBRXVCLE1BQU1zRyxXQXJLUkMsQ0FBWUwsRUFBUUYsT0FLcEMzRCxJQUdBNUQsRUFBQSwwQkFBQStGLE1BQUE3RixHQUdBRixFQUFBLHlCQUFBZ0QsT0FBQVMsR0FDUXpELEVBQUUsNkJBQXlCK0YsTUFBT3pDLEd
2BQ2xDdEQsRUFBRSwwQ0FBbUMrSCxNQUFBaEYsR0FDckMvQyxFQUFFLGdDQUFBZ0ksT0FBQWpGLEdBQ0Y5QyxFQUFFZ0ksR0FBQSxRQUFBLG9DQUF1Qy9HLEtBaEpqRCxDQXNYQWdIIiwiZmlsZSI6InNjcmlwdHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oJCl7XG4gICAgdmFyIGFkbWluID0gZmFsc2U7XG4gICAgdmFyIGJvZHk7XG5cbiAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe1xuICAgICAgICBib2R5ID0gJCgnYm9keScpO1xuXG4gICAgICAgIGluaXRpYXRlRmxleHNsaWRlcigpO1xuXG4gICAgICAgICQoJy5qcy10b2dnbGUtc2lkZS1uYXYnKS5jbGljayh0b2dnbGVTaWRlTmF2KTtcbiAgICAgICAgJCh3aW5kb3cpLnJlc2l6ZShyZXNpemVIYW5kbGVyKTtcblxuICAgICAgICAvLyBkZXRlY3QgaWZyYW1lIGxvYWRcbiAgICAgICAgJCgnaWZyYW1lJykubG9hZChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIC8vdGhpcy5zdHlsZS5oZWlnaHQgPSB0aGlzLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQgKyAncHgnO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBkZXRlY3QgaWYgdXNlciBpcyBvbiBhIHdpbmRvd3MgcGhvbmVcbiAgICAgICAgaWYgKCEhbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvKEFuZHJvaWQgKDIuMHwyLjEpKXwoTm9raWEpfChPcGVyYSAoTWluaXxNb2JpKSl8KHcoZWIpP09TQnJvd3Nlcil8KFVDV0VCKXwoV2luZG93cyBQaG9uZSl8KFhCTFdQKXwoWnVuZVdQKS8pKSB7XG4gICAgICAgICAgICAkKCcuaWNvbicpLmFkZENsYXNzKCdmYWxsYmFjaycpO1xuICAgICAgICAgICAgJCgnLnByb2dyYW1zLWxpc3RpbmcnKS5hZGRDbGFzcygnZmFsbGJhY2snKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGluaXRpYXRlIHR3aXR0ZXIgZmVlZFxuICAgICAgICBpZiAodHlwZW9mICQuZm4udHdlZXRzID09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgJCgnLnR3aXR0ZXItZmVlZCcpLnR3ZWV0cyh7XG4gICAgICAgICAgICAgICAgdXNlcm5hbWU6IFwiTVNWVV9IYWxpZmF4XCIsXG4gICAgICAgICAgICAgICAgdHdlZXRUZW1wbGF0ZTogJzxsaT5cXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge0RBVEV9PGJyIC8+XFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtUV0VFVH08YnIgLz5cXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9XCJtYXJnaW4tdG9wOi41ZW1cIj48YSBocmVmPVwie1JFUExZfVwiPnJlcGx5PC9hPiAtIDxhIGhyZWY9XCJ7RkFWT1JJVEV9XCI+ZmF2b3JpdGU8L2E+IC0gPGEgaHJlZj1cIntSRVRXRUVUfVwiPnJldHdlZXQ8L2E+PC9wPlxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4nLFxuICAgICAgICAgICAgICAgIHR3ZWV0czogMyxcbiAgICAgICAgICAgICAgICBpbmNsdWRlTGlua3M6IDIsXG4gICAgICAgICAgICAgICAgZGF0ZUZvcm1hdDogZmFsc2VcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gYnJvd3NlciByZXNpemUgaGFuZGxlclxuICAgICAgICAkKHdpbmRvdykucmVzaXplKGZ1bmN0aW9uICgpIHtcblxuICAgICAgICAgICAgLy8gcmVzZXQgc2VhcmNoXG4gICAgICAgICAgICBpZigkKHdpbmRvdykud2lkdGgoKSA+IDY3MCApe1xuICAgICAgICAgICAgICAgICQoJy5oZWFkZXItc2VhcmNoLWZpZWxkJykuY2xvc2VzdCgnLmhpZGUtZm9yLXRhYmxldCcpLnJlbW92ZUF0dHIoJ3N0eWxlJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNldENvbnRlbnRIZWlnaHQoKTtcbiAgICAgICAgICAgIGhpZGVNZW51KCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIHNwZWNpZmljIHBhZ2UgaGFuZGxlcnNcbiAgICAgICAgaWYoJCgnLmJhbXMtcGFnZScpLmlzKCcqJykpe1xuICAgICAgICAgICAgYm9keS5hZGRDbGFzcygnYmFtcyBkb21pbm8nKTtcbiAgICAgICAgfVxuXG5cblxuICAgICAgICAvLyBvbGQgYWNjb3JkaW9uIGhhbmRsZXJcbiAgICAgICAgJCgnLmFjY29yZGlvbl9saW5rJykuY2xpY2soZnVuY3Rpb24oZSl7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgICQoJy5hY2NvcmRpb25fYm94JykuZmluZCgnLnNtX2hlYWRlcicpLmNsaWNrKGZ1bmN0aW9uKCl7XG5cbiAgICAgICAgICAgIHZhciBwYXJlbnQgPSAkKHRoaXMpLmNsb3Nlc3QoJy5zbV9ib3gnKSxcbiAgICAgICAgICAgICAgICBhTGFiZWwgPSAkKHRoaXMpLmZpbmQoJ2EnKSxcbiAgICAgICAgICAgICAgICBhQ29udGVudCA9IHBhcmVudC5maW5kKCcuc21fc2VjdGlvbl9hY2NvcmRpb24sIC5zbV9zZWN0aW9uJyk7XG5cbiAgICAgICAgICAgIGlmKGFDb250ZW50LmlzKCc6dmlzaWJsZScpKXtcbiAgICAgICAgICAgICAgICBhTGFiZWwucmVtb3ZlQ2xhc3MoJ3NtX29wZW4nKS5hZGRDbGFzcygnc21fY2xvc2VkJyk7XG4gICAgICAgICAgICAgICAgYUNvbnRlbnQuc2xpZGVVcCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhTGFiZWwucmVtb3ZlQ2xhc3MoJ3NtX2Nsb3NlZCcpLmFkZENsYXNzKCdzbV9vcGVuJyk7XG4gICAgICAgICAgICAgICAgYUNvbnRlbnQuc2xpZGVEb3duKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIGNvbnZlcnQgRXZlbnQgZGF0ZSB0byBvbmx5IHNob3cgc3RhcnQgZGF0ZSBpbiBwcmVmZXJyZWQgZm9ybWF0IC0gTU1NIEREXG4gICAgICAgICQoJy5hdHRlbmQtYW4tZXZlbnQnKS5maW5kKCcuZGF0ZScpLmVhY2goZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHZhciBkYXRlID0gJCh0aGlzKS5maW5kKCdzcGFuJyk7XG4gICAgICAgICAgICB2Y
2XIgbW9udGggPSBkYXRlLnRleHQoKS5zcGxpdCgnICcpWzBdLnN1YnN0cmluZygwLCAzKTtcbiAgICAgICAgICAgIHZhciBkYXkgPSBkYXRlLnRleHQoKS5zcGxpdCgnICcpWzFdO1xuXG4gICAgICAgICAgICBkYXRlLnRleHQobW9udGggKycgJysgZGF5LnJlcGxhY2UoL1teMC05XSsvZywgJycpKTtcblxuICAgICAgICB9KTtcblxuICAgICAgICAvLyB0b2dnbGUgbW9iaWxlIGZseW91dCBtZW51XG4gICAgICAgICQoJy5tb2JpbGUtY29udHJvbHM+LnRvZ2dsZS1tZW51JykuY2xpY2soZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICQoJy50b3AtbmF2JykuYWRkQ2xhc3MoJ21vYmlsZScpO1xuICAgICAgICAgICAgYm9keS5hZGRDbGFzcygnbW0tYWN0aXZlJyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgICQoJy5oaWRlLW1lbnUnKS5jbGljayhmdW5jdGlvbigpe1xuICAgICAgICAgICAgaGlkZU1lbnUoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gdG9nZ2xlIHNlYXJjaCBmaWVsZCB2aXNpYmlsaXR5XG4gICAgICAgICQoJy5tb2JpbGUtY29udHJvbHM+LnRvZ2dsZS1zZWFyY2gnKS5jbGljayhmdW5jdGlvbigpe1xuICAgICAgICAgICAgJCgnLmhlYWRlci1zZWFyY2gtZmllbGQnKS5jbG9zZXN0KCcuaGlkZS1mb3ItdGFibGV0Jykuc2xpZGVUb2dnbGUoKS50b2dnbGVDbGFzcygndmlzaWJsZScpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBzZWxlY3QgdXNlciB0eXBlIGp1bXAgbWVudSBob3ZlciBmdW5jdGlvblxuICAgICAgICBpZighYWRtaW4pIHtcbiAgICAgICAgICAgICQoJy5zZWxlY3QtdXNlci10eXBlJykuaG92ZXIoXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAkKCcuc2VsZWN0LXVzZXItdHlwZS1vcHRpb25zJykuc3RvcCh0cnVlLCB0cnVlKS5zbGlkZURvd24oKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgJCgnLnNlbGVjdC11c2VyLXR5cGUtb3B0aW9ucycpLnN0b3AodHJ1ZSwgdHJ1ZSkuc2xpZGVVcCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBuZXdzIGZlZWQgdGFiIGNvbnRyb2xzXG4gICAgICAgIGlmKCFhZG1pbikge1xuICAgICAgICAgICAgJCgnLmZlZWRzLXRhYnM+dWw+bGknKS5jbGljayhmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGFjdGl2ZVRhYiA9ICQoJy5mZWVkcy10YWJzJykuZmluZCgnbGkuYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkVGFiID0gJCh0aGlzKS5hdHRyKCdpZCcpLnN1YnN0cig0KTtcbiAgICAgICAgICAgICAgICB2Y
2XIgcGFnZXMgPSAkKCcuZmVlZHMtY29udGVudCcpLmZpbmQoJy5ibG9jaycpO1xuICAgICAgICAgICAgICAgIHZhciBjdXJyZW50UGFnZSA9ICQoJy5mZWVkcy1jb250ZW50JykuZmluZCgnLmZlZWRzLScgKyBhY3RpdmVUYWIuYXR0cignaWQnKS5zdWJzdHIoNCkpO1xuXG4gICAgICAgICAgICAgICAgLy8gY2hhbmdlIGFjdGl2ZSB0YWJcbiAgICAgICAgICAgICAgICBhY3RpdmVUYWIucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAgICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuXG4gICAgICAgICAgICAgICAgLy8gY2hhbmdlIHRoZSBhY3RpdmUgcGFnZVxuICAgICAgICAgICAgICAgIGN1cnJlbnRQYWdlLmZhZGVPdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VUYWIocGFnZXMsIHNlbGVjdGVkVGFiKVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRDb250ZW50SGVpZ2h0KCk7XG5cbiAgICAgICAgLy8gTmV3cyBmaWx0ZXJzLlxuICAgICAgICAkKCcuanMtYXBwbHktbmV3cy1maWx0ZXJzJykuY2xpY2soYXBwbHlOZXdzRmlsdGVyc0hhbmRsZXIpO1xuXG4gICAgICAgIC8vIExpc3Rpbmcgb3B0aW9ucyBldmVudCBoYW5kbGVycy5cbiAgICAgICAgJCgnI2xpc3Rpbmctb3B0aW9ucy1mb3JtJykuc3VibWl0KGxpc3RpbmdPcHRpb25zU3VibWl0SGFuZGxlcik7XG4gICAgICAgICQoJy5qcy1jbGVhci1saXN0aW5nLW9wdGlvbnMnKS5jbGljayhjbGVhckxpc3RpbmdPcHRpb25zSGFuZGxlcik7XG4gICAgICAgICQoJyNsaXN0aW5nLW9wdGlvbnMtZm9ybSBpbnB1dFt0eXBlPXRleHRdJykua2V5dXAoY2hlY2tFbXB0eUZpZWxkSGFuZGxlcik7XG4gICAgICAgICQoJyNsaXN0aW5nLW9wdGlvbnMtZm9ybSBzZWxlY3QnKS5jaGFuZ2UoY2hlY2tFbXB0eUZpZWxkSGFuZGxlcik7XG4gICAgICAgIGJvZHkub24oJ2NsaWNrJywgJyNsaXN0aW5nLW9wdGlvbnMtcmVzdWx0cyAucGFnZXIgYScsIGdvdG9MaXN0aW5nT3B0aW9uc1BhZ2VIYW5kbGVyKTtcbiAgICB9KTtcbiAgICAvLyBkb2N1bWVudCByZWFkeSAvLyBlbmRcblxuXG4gICAgZnVuY3Rpb24gYXBwbHlOZXdzRmlsdGVyc0hhbmRsZXIoZSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgdmFyIGZvcm0gPSAkKCcjbmV3cy1maWx0ZXJzJyksXG4gICAgICAgICAgICB2YWx1ZXMgPSBmb3JtLnNlcmlhbGl6ZSgpLFxuICAgICAgICAgICAgcXVlcnlBcnIgPSB2YWx1ZXMucmVwbGFjZSgnPycsJycpLnNwbGl0KCcmJyksXG4gICAgICAgICAgICBxdWVyeSA9ICcnO1xuXG4gICAgICAgIGZvciAodmFyIHEgPSAwLCBxQXJyTGVuZ3RoID0gcXVlcnlBcnIubGVuZ3RoOyBxIDwgcUFyckxlbmd0aDsgcSsrKSB7XG4gICAgICAgICAgICB2Y
2XIgcUFyciA9IHF1ZXJ5QXJyW3FdLnNwbGl0KCc9Jyk7XG4gICAgICAgICAgICBpZiggcUFyclsxXSApe1xuICAgICAgICAgICAgICAgIHF1ZXJ5ICs9ICggcXVlcnkgPyAnJicgOiAnJykgKyBxQXJyWzBdICsgJz0nICsgcUFyclsxXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gZS50YXJnZXQuaHJlZiArIChxdWVyeSA/ICc/JyArIHF1ZXJ5IDogJycpO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogVXNlcyBBSkFYIHRvIGxvYWQgdGhlIHNlbGVjdGVkIHBhZ2UuXG4gICAgICovXG4gICAgZnVuY3Rpb24gZ290b0xpc3RpbmdPcHRpb25zUGFnZUhhbmRsZXIoZSl7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICB2YXIgY29udGFpbmVyID0gJCgnLmxpc3Rpbmctb3B0aW9ucycpLFxuICAgICAgICAgICAgdmFsdWVzID0gJCgnI3NlYXJjaC1yZWYnKS5kYXRhKCdzZWFyY2gnKSxcbiAgICAgICAgICAgIHRhcmdldFBhZ2UgPSAkKHRoaXMpLmF0dHIoJ2hyZWYnKS5tYXRjaCgvcGFnZVxcL1xcZCt8cGFnZWQ9XFxkKy9nbSksXG4gICAgICAgICAgICBwYXRoID0gJy8nICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnNsaWNlKDEpLnNwbGl0KCcvJylbMF0sXG4gICAgICAgICAgICByZXN1bHRzQ29udGFpbmVyID0gJCgnI2xpc3Rpbmctb3B0aW9ucy1yZXN1bHRzJyk7XG5cbiAgICAgICAgdGFyZ2V0UGFnZSA9IHBhcnNlSW50KCB0YXJnZXRQYWdlWzBdLnJlcGxhY2UoL1teMC05XSsvZywgJycpICk7XG5cbiAgICAgICAgLy8gQWRkIGxvYWRpbmcgY2xhc3NcbiAgICAgICAgY29udGFpbmVyLmFkZENsYXNzKCdsb2FkaW5nJyk7XG5cbiAgICAgICAgJC5wb3N0KGFqYXgudXJsLCB7XG4gICAgICAgICAgICAnYWN0aW9uJzogJ2dvdG9fbGlzdGluZ19vcHRpb25zX3Jlc3VsdHNfcGFnZScsXG4gICAgICAgICAgICAndmFsdWVzJzogdmFsdWVzLFxuICAgICAgICAgICAgJ3BhZ2VkJzogdGFyZ2V0UGFnZSxcbiAgICAgICAgfSwgZnVuY3Rpb24ocmVzcG9uc2UpIHtcblxuICAgICAgICAgICAgLy8gVXBkYXRlIGJyb3dzZXIgaGlzdG9yeS5cbiAgICAgICAgICAgIGlmKCByZXNwb25zZS5xdWVyeSApe1xuICAgICAgICAgICAgICAgIGhpc3RvcnkucHVzaFN0YXRlKHt9LCAnJywgd2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHBhdGggKyAnLz8nICsgcmVzcG9uc2UucXVlcnkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBPdXRwdXQgdGhlIHJlc3VsdHMuXG4gICAgICAgICAgICByZXN1bHRzQ29udGFpbmVyLmh0bWwocmVzcG9uc2UuaHRtbCk7XG5cbiAgICAgICAgICAgIC8vIFNjcm9sbCB0byByZXN1bHRzLlxuICAgICAgICAgICAgJCgnaHRtbCxib2R5JykuYW5pbWF0ZSh7c2Nyb2xsVG9wOiByZXN1bHRzQ29udGFpbmVyLm9mZnNldCgpLnRvcCAtIDUwIH0pO1xuXG4gICAgICAgICAgICAvLyBSZW1vdmUgbG9hZGluZyBjbGFzcy5cbiAgICAgICAgICAgIGNvbnRhaW5lci5yZW1vdmVDbGFzcygnbG9hZGluZycpO1xuICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIERpc2FibGVzIHRoZSBmb3JtIHN1Ym1pdCBidXR0b24gd2hlbiBhbGwgb2YgdGhlIGZpZWxkcyBhcmUgZW1wdHkuXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2hlY2tFbXB0eUZpZWxkSGFuZGxlcigpIHtcbiAgICAgICAgdmFyIGZvcm0gPSAkKCcjbGlzdGluZy1vcHRpb25zLWZvcm0nKSxcbiAgICAgICAgICAgIHN1Ym1pdCA9IGZvcm0uZmluZCgnYnV0dG9uW3R5cGU9c3VibWl0XScpLFxuICAgICAgICAgICAgaXNFbXB0eSA9IHRydWU7XG5cbiAgICAgICAgJCgnI2xpc3Rpbmctb3B0aW9ucy1mb3JtIGlucHV0JykuZWFjaChmdW5jdGlvbigpe1xuICAgICAgICAgICAgaWYoJCh0aGlzKS52YWwoKSl7XG4gICAgICAgICAgICAgICAgaXNFbXB0eSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgJCgnI2xpc3Rpbmctb3B0aW9ucy1mb3JtIHNlbGVjdCcpLmVhY2goZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIGlmKCQodGhpcykudmFsKCkpe1xuICAgICAgICAgICAgICAgIGlzRW1wdHkgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYoIGlzRW1wdHkgKXtcbiAgICAgICAgICAgIHN1Ym1pdC5wcm9wKCdkaXNhYmxlZCcsIHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VibWl0LnByb3AoJ2Rpc2FibGVkJywgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xlYXJzIHRoZSBsaXN0aW5nIG9wdGlvbnMgZm9ybSBmaWVsZHMuXG4gICAgICovXG4gICAgZnVuY3Rpb24gY2xlYXJMaXN0aW5nT3B0aW9uc0hhbmRsZXIoZSl7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdmFyIGZvcm0gPSAkKHRoaXMpLmNsb3Nlc3QoJ2Zvcm0nKTtcbiAgICAgICAgZm9ybS5maW5kKCdpbnB1dCcpLmVhY2goZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICQodGhpcykudmFsKCcnKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGZvcm0uZmluZCgnc2VsZWN0JykuZWFjaChmdW5jdGlvbigpe1xuICAgICAgICAgICAgJCh0aGlzKS5wcm9wKCdzZWxlY3RlZEluZGV4JywgMCk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyAkKCcjbGlzdGluZy1vcHRpb25zLWZvcm0gYnV0dG9uW3R5cGU9c3VibWl0XScpLnByb3AoJ2Rpc2FibGVkJywgdHJ1ZSlcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIFVzZXMgQUpBWCB0byBkaXNwbGF5IHRoZSBwcm9ncmFtIHNlYXJjaCByZXN1bHRzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxpc3RpbmdPcHRpb25zU3VibWl0SGFuZGxlcihlKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdmFyIGZvcm0gPSAkKHRoaXMpLFxuICAgICAgICAgICAgY29udGFpbmVyID0gZm9ybS5jbG9zZXN0KCcubGlzdGluZy1vcHRpb25zJyksXG4gICAgICAgICAgICB2YWx1ZXMgPSBmb3JtLnNlcmlhbGl6ZSgpLFxuICAgICAgICAgICAgcGF0aCA9ICcvJyArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zbGljZSgxKS5zcGxpdCgnLycpWzBdLFxuICAgICAgICAgICAgcmVzdWx0c0NvbnRhaW5lciA9ICQoJyNsaXN0aW5nLW9wdGlvbnMtcmVzdWx0cycpO1xuXG4gICAgICAgIC8vIEFkZCBsb2FkaW5nIGNsYXNzXG4gICAgICAgIGNvbnRhaW5lci5hZGRDbGFzcygnbG9hZGluZycpO1xuICAgICAgICBmb3JtLmZpbmQoJy5idXR0b24nKS5ibHVyKCk7XG5cbiAgICAgICAgJC5wb3N0KGFqYXgudXJsLCB7XG4gICAgICAgICAgICAnYWN0aW9uJzogJ3VwZGF0ZV9saXN0aW5nX29wdGlvbnNfcmVzdWx0cycsXG4gICAgICAgICAgICAndmFsdWVzJzogdmFsdWVzLFxuICAgICAgICB9LCBmdW5jdGlvbihyZXNwb25zZSkge1xuXG4gICAgICAgICAgICAvLyBVcGRhdGUgYnJvd3NlciBoaXN0b3J5LlxuICAgICAgICAgICAgaWYoIHJlc3BvbnNlLn
2F1ZXJ5ICl7XG4gICAgICAgICAgICAgICAgaGlzdG9yeS5wdXNoU3RhdGUoe30sICcnLCB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgcGF0aCArICcvPycgKyByZXNwb25zZS5xdWVyeSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIE91dHB1dCB0aGUgcmVzdWx0cy5cbiAgICAgICAgICAgIHJlc3VsdHNDb250YWluZXIuaHRtbChyZXNwb25zZS5odG1sKTtcblxuICAgICAgICAgICAgLy8gU2Nyb2xsIHRvIHJlc3VsdHMuXG4gICAgICAgICAgICAkKCdodG1sLGJvZHknKS5hbmltYXRlKHtzY3JvbGxUb3A6IHJlc3VsdHNDb250YWluZXIub2Zmc2V0KCkudG9wIC0gNTAgfSk7XG5cbiAgICAgICAgICAgIC8vIFJlbW92ZSBsb2FkaW5nIGNsYXNzLlxuICAgICAgICAgICAgY29udGFpbmVyLnJlbW92ZUNsYXNzKCdsb2FkaW5nJyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGhpZGVNZW51KCl7XG4gICAgICAgIGJvZHkucmVtb3ZlQ2xhc3MoJ21tLWFjdGl2ZScpO1xuICAgICAgICAkKCcudG9wLW5hdicpLnJlbW92ZUNsYXNzKCdtb2JpbGUnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjaGFuZ2VUYWIocGFnZXMsIHNlbGVjdGVkVGFiKXtcbiAgICAgICAgcGFnZXMuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoJCh0aGlzKS5oYXNDbGFzcygnZmVlZHMtJyArIHNlbGVjdGVkVGFiKSkge1xuICAgICAgICAgICAgICAgICQodGhpcykuZmFkZUluKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuXG4gICAgLypcbiAgICAgKiBBZGp1c3QgdGhlIGhlaWdodCBvZiB0aGUgbWFpbiBjb250ZW50IGlmIHRoZSBzaWRlYmFyXG4gICAgICogaXMgdG9vIGxvbmcuXG4gICAgICovXG5cbiAgICBmdW5jdGlvbiBzZXRDb250ZW50SGVpZ2h0KCl7XG4gICAgICAgIHZhciBtYWluQ29udGVudCA9ICQoJy5tYWluLWNvbnRlbnQuYWx1bW5hZS1pbnNpZGUsIC5tYWluLWNvbnRlbnQucHJvZ3JhbXMtaW5zaWRlJyk7XG4gICAgICAgIHZhciBzYk5hdiA9ICQoJy5zZWNvbmRhcnktbmF2Jyk7XG4gICAgICAgIHZhciBzYkNvbnRlbnQgPSAkKCcuc2lkZWJhci5hbHVtbmFlLWluc2lkZS1zYicpO1xuICAgICAgICB2Y
2XIgY29tYmluZWRIZWlnaHQgPSBzYk5hdi5oZWlnaHQoKSArIHNiQ29udGVudC5oZWlnaHQoKTtcblxuICAgICAgICBpZigkKHdpbmRvdykud2lkdGgoKSA+IDY3MCkge1xuICAgICAgICAgICAgaWYgKG1haW5Db250ZW50LmhlaWdodCgpIDwgY29tYmluZWRIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICBtYWluQ29udGVudC5jc3Moe21pbkhlaWdodDogY29tYmluZWRIZWlnaHR9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1haW5Db250ZW50LnJlbW92ZUF0dHIoJ3N0eWxlJyk7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIGZ1bmN0aW9uIGluaXRpYXRlRmxleHNsaWRlcigpe1xuXG4gICAgICAgIC8vIGluaXRpYXRlIGZsZXhzbGlkZXJcbiAgICAgICAgaWYoICQoJy5mbGV4c2xpZGVyJykubGVuZ3RoICkge1xuICAgICAgICAgICAgJCgnLmZsZXhzbGlkZXInKS5mbGV4c2xpZGVyKHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246ICdzbGlkZScsXG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uU3BlZWQ6IDYwMCxcbiAgICAgICAgICAgICAgICBzbGlkZXNob3dTcGVlZDogNTAwMCxcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb25OYXY6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHVzZUNTUzogZmFsc2UsXG4gICAgICAgICAgICAgICAgdG91Y2g6IHRydWUsXG4gICAgICAgICAgICAgICAgc3RhcnQ6IGZ1bmN0aW9uIChzbGlkZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGN1cnJlbnQgPSBzbGlkZXIuc2xpZGVzLmVxKHNsaWRlci5jdXJyZW50U2xpZGUpO1xuICAgICAgICAgICAgICAgICAgICB2Y
2XIgcHJldiA9IHNsaWRlci5zbGlkZXMuZXEoc2xpZGVyLmN1cnJlbnRTbGlkZSAtIDEpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgbmV4dCA9IHNsaWRlci5zbGlkZXMuZXEoc2xpZGVyLmFuaW1hdGluZ1RvKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGFmdGVyOiBmdW5jdGlvbiAoc2xpZGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjdXJyZW50ID0gc2xpZGVyLnNsaWRlcy5lcShzbGlkZXIuY3VycmVudFNsaWRlKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHByZXYgPSBzbGlkZXIuc2xpZGVzLmVxKHNsaWRlci5jdXJyZW50U2xpZGUgLSAxKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG5leHQgPSBzbGlkZXIuc2xpZGVzLmVxKHNsaWRlci5hbmltYXRpbmdUbyk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gYW5pbWF0ZSBjYXB0aW9uIGlmIHZpZXdpbmcgb24gZGVza3RvcFxuICAgICAgICAgICAgICAgICAgICBpZiAoJCh3aW5kb3cpLndpZHRoKCkgPiA2NzAgJiYgJCgnLmZsZXhzbGlkZXIuaG9tZScpLmlzKCcqJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQuZmluZCgnYScpLnNsaWRlRG93bigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBiZWZvcmU6IGZ1bmN0aW9uIChzbGlkZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGN1cnJlbnQgPSBzbGlkZXIuc2xpZGVzLmVxKHNsaWRlci5jdXJyZW50U2xpZGUpO1xuICAgICAgICAgICAgICAgICAgICB2Y
2XIgcHJldiA9IHNsaWRlci5zbGlkZXMuZXEoc2xpZGVyLmN1cnJlbnRTbGlkZSAtIDEpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgbmV4dCA9IHNsaWRlci5zbGlkZXMuZXEoc2xpZGVyLmFuaW1hdGluZ1RvKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoJCh3aW5kb3cpLndpZHRoKCkgPiA2NzAgJiYgJCgnLmZsZXhzbGlkZXIuaG9tZScpLmlzKCcqJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICQoJy5zbGlkZXM+bGknKS5maW5kKCdhJykuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudC5maW5kKCdhJykuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgJCgnLnNsaWRlcz5saScpLmZpbmQoJ2EnKS5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgZnVuY3Rpb24gdG9nZ2xlU2lkZU5hdihlKXtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGJvZHkudG9nZ2xlQ2xhc3MoJ3NpZGUtbmF2LWFjdGl2ZScpO1xuICAgIH1cblxuXG4gICAgZnVuY3Rpb24gcmVzaXplSGFuZGxlcigpIHtcbiAgICAgICAgYm9keS5yZW1vdmVDbGFzcygnc2lkZS1uYXYtYWN0aXZlJyk7XG4gICAgfVxufSkoalF1ZXJ5KTtcblxuIl19
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.