1(() => { 2 var __getOwnPropNames = Object.getOwnPropertyNames; 3 var __commonJS = (cb, mod) => function __require() { 4 return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; 5 }; 6 7 // Static/Scripts/Site.js 8 var require_Site = __commonJS({ 9 "Static/Scripts/Site.js"(exports, module) { 10 $(document).ready(function() { 11 var _header = $("header").get(0); 12 var _headerParent = $("header").parent().get(0); 13 var _headerNav = $(".header-navigation").get(0); 14 var _headerUtility = $(".header-utility").get(0); 15 var _searchPageFiltersPanel = $(".search-results-filters-panel").get(0); 16 var _headerHeight = _header ? $(_header).height() : 0; 17 var _utilityHeight = _headerUtility ? $(_headerUtility).height() : 0; 18 var _headerTriggerOffset = _headerParent ? $(_headerParent).offset().top + ($(window).width() >= 1200 ? _utilityHeight : 0) : 0; 19 if (_header && _headerParent) { 20 $(window).on("scroll", function() { 21 CalculateFixedHeader(); 22 }); 23 $(window).on("resize", function() { 24 _headerHeight = $(_header).height(); 25 _utilityHeight = $(_headerUtility).height(); 26 _headerTriggerOffset = $(_headerParent).offset().top + ($(window).width() >= 1200 ? _utilityHeight : 0); 27 CalculateFixedHeader(); 28 }); 29 CalculateFixedHeader(); 30 } 31 function CalculateFixedHeader() { 32 if ($(window).scrollTop() > _headerTriggerOffset) { 33 $(_header).addClass("header-fixed"); 34 $(_headerParent).addClass("header-fixed"); 35 $(_headerParent).css({ "padding-top": _headerHeight + "px" }); 36 } else { 37 $(_headerParent).css({ "padding-top": "0px" }); 38 $(_header).removeClass("header-fixed"); 39 $(_headerParent).removeClass("header-fixed"); 40 closeNav(); 41 } 42 } 43 $(".nav-hamburger").on("click", function(e) { 44 e.stopPropagation(); 45 openNav(); 46 }); 47 $(".sort-filter-button").on("click", function(e) { 48 e.stopPropagation(); 49 openSortAndFilters(); 50 }); 51 $(".sort-filter-close").on("click", function(e) { 52 closeSortAndFilters(); 53 }); 54 $(".header-navigation").on("click", function(e) { 55 e.stopPropagation(); 56 }); 57 $(".nav-close").on("click", function(e) { 58 closeNav(); 59 }); 60 function openNav() { 61 $("html").addClass("nav-open"); 62 $(_header).addClass("nav-open"); 63 $(_header).on("click.closeNavOnBlur", function(e) { 64 closeNav(); 65 }); 66 $(document).on("keyup.navopen", function(event) { 67 if (event.which == 27) { 68 closeNav(); 69 } 70 }); 71 } 72 function closeNav() { 73 $("html").removeClass("nav-open"); 74 $(_header).removeClass("nav-open"); 75 $(_header).off("click.closeNavOnBlur"); 76 $(_header).off("keyup.navopen"); 77 } 78 function openSortAndFilters() { 79 $("html").addClass("sort-filter-open"); 80 $(_searchPageFiltersPanel).addClass("sort-filter-open"); 81 $(document).on("keyup.SortAndFiltersopen", function(event) { 82 if (event.which == 27) { 83 closeSortAndFilters(); 84 } 85 }); 86 } 87 function closeSortAndFilters() { 88 $("html").removeClass("sort-filter-open"); 89 $(_searchPageFiltersPanel).removeClass("sort-filter-open"); 90 $(_searchPageFiltersPanel).off("keyup.SortAndFiltersopen"); 91 } 92 $(window).on("resize", function() { 93 closeSortAndFilters(); 94 }); 95 var liNavEnter = null; 96 $("li.nav_lvl_0").on("mouseenter", function() { 97 var _this2 = $(this); 98 liNavEnter = setTimeout(function() { 99 $("a", $(this).siblings()).blur(); 100 if ($(_this2).hasClass("HasChildren")) { 101 $("ul.nav_lvl_0").addClass("focused"); 102 } 103 $("> a, > span", this).attr("aria-expanded", "true"); 104 }, 200); 105 }).on("mouseleave", function() { 106 clearTimeout(liNavEnter); 107 $("ul.nav_lvl_0").removeClass("focused"); 108 $("> a, > span", this).attr("aria-expanded", "false"); 109 }); 110 $(".nav_lvl_0.HasChildren > a, .nav_lvl_0.HasChildren > span").on("click", function(e) { 111 e.preventDefault(); 112 if ($(this).hasClass("liextended")) { 113 $(this).removeClass("liextended"); 114 $(this).parent().removeClass("liextended"); 115 $(".navigation-main > nav").removeClass("liextended"); 116 $(this).attr("aria-expanded", "false"); 117 } else { 118 $(this).addClass("liextended"); 119 $(this).parent().addClass("liextended"); 120 $(".navigation-main > nav").addClass("liextended"); 121 $(this).attr("aria-expanded", "true"); 122 } 123 }); 124 $(".nav_lvl_0.HasChildren").on("mouseleave", function(e) { 125 if (!$(_header).hasClass("header-fixed") && !$(_header).hasClass("nav-open")) { 126 $(".navigation-main a, .navigation-main span").blur(); 127 $(".liextended").removeClass("liextended"); 128 } 129 }); 130 $(window).on("resize", function() { 131 $(".navigation-main a, .navigation-main span").blur(); 132 $(".liextended").removeClass("liextended"); 133 }); 134 function onVisible(element, callback) { 135 const observer = new IntersectionObserver((entries, observer2) => {
136 entries.forEach((entry) => { 137 if (entry.isIntersecting) { 138 $(element).siblings('[role="menuitem"]').attr("aria-expanded", "true"); 139 } else { 140 $(element).siblings('[role="menuitem"]').attr("aria-expanded", "false"); 141 } 142 }); 143 }); 144 observer.observe(element); 145 } 146 $("li.HasChildren.nav_lvl_0 > .nav-dropdown").each(function() { 147 var _this2 = $(this)[0]; 148 onVisible(_this2, function() { 149 }); 150 }); 151 $(".header-search-icon").on("click", function(e) { 152 openSearch(); 153 }); 154 $(".search-close").on("click", function(e) { 155 closeSearch($(this)); 156 }); 157 function openSearch() { 158 $(_header).addClass("search-open"); 159 $(document).on("keyup.searchopen", function(event) { 160 if (event.which == 27) { 161 closeSearch(); 162 } 163 }); 164 } 165 function closeSearch(trigger = null) { 166 $(_header).removeClass("search-open"); 167 if (trigger) { 168 $(trigger).prev("input").val(""); 169 $(trigger).removeClass("show"); 170 } else { 171 $(".global-search-input .searchInput > input").val(""); 172 $(".global-search-input .searchInput > .search-close").removeClass("show"); 173 } 174 $(document).off("keyup.searchopen"); 175 } 176 $(".global-search-input .searchInput a.SearchButton").on("click", function() { 177 ValidateSearchTerm($(this).siblings("input")); 178 }); 179 $(".global-search-input .searchInput > input").on("keyup", function() { 180 var _this2 = $(this); 181 var searchInputVal = $(_this2).val().trim(); 182 if (searchInputVal != "" && searchInputVal !== null && searchInputVal !== void 0) { 183 $(_this2).next(".search-close").addClass("show"); 184 } else { 185 $(_this2).next(".search-close").removeClass("show"); 186 } 187 }); 188 $(".global-search-input .searchInput > input").on("focus", function() { 189 var _this2 = $(this); 190 $(document).bind("keyup.SearchTypingStarted", function(event) { 191 if (event.which == 13) { 192 ValidateSearchTerm(_this2); 193 } 194 }); 195 }); 196 $(".global-search-input .searchInput > input").on("focusout", function() { 197 $(document).unbind("keyup.SearchTypingStarted"); 198 }); 199 function ValidateSearchTerm(elSearchInput) { 200 var searchInputVal = elSearchInput.val().trim(); 201 if (searchInputVal != "" && searchInputVal !== null && searchInputVal !== void 0) { 202 var searchUrl = elSearchInput.attr("data-search-url"); 203 if (searchUrl != "" && searchUrl !== null && searchUrl !== void 0) { 204 window.location.href = searchUrl + "?q=" + searchInputVal; 205 } else { 206 throw new Error("Error searching, please try again later"); 207 return false; 208 } 209 } else { 210 throw new Error("Empty search not allowed"); 211 return false; 212 } 213 } 214 $(".ads-login").on("click", function() { 215 $(this).toggleClass("ads-login-expanded").attr("aria-expanded", "true"); 216 }).on("mouseleave", function() { 217 $(this).removeClass("ads-login-expanded").attr("aria-expanded", "false"); 218 $(document).off("keyup.ads-login-focused"); 219 }).on("focus", function() { 220 var _this2 = $(this); 221 $(document).on("keyup.ads-login-focused", function(event) { 222 if (event.key == "Enter" || event.keyCode == 13) { 223 if ($(_this2).attr("aria-expanded") == "false") { 224 $(_this2).addClass("ads-login-expanded"); 225 $(_this2).attr("aria-expanded", "true"); 226 } else { 227 $(_this2).removeClass("ads-login-expanded"); 228 $(_this2).attr("aria-expanded", "false"); 229 } 230 } 231 }); 232 }).on("focusout", function() { 233 var _this2 = $(this); 234 if (!$(_this2).is(":focus-within")) { 235 $(_this2).removeClass("ads-login-expanded"); 236 $(_this2).attr("aria-expanded", "false"); 237 $(document).off("keyup.ads-login-focused"); 238 } 239 }); 240 $(".faq-block").on("click", function(event) { 241 var _this2 = $(this); 242 if (!$(_this2).data("faq-focus-lock")) { 243 $(_this2).data("faq-focus-lock", true); 244 setTimeout(() => { 245 $(_this2).data("faq-focus-lock", false); 246 }, 200); 247 $(_this2).toggleClass("faq-block-expanded"); 248 if (!$(_this2).hasClass("faq-block-expanded")) { 249 $(_this2).attr("aria-expanded", "true"); 250 } else { 251 $(_this2).attr("aria-expanded", "false"); 252 } 253 $(_this2).parent().siblings().children().removeClass("faq-block-expanded"); 254 } 255 }).on("focus", function(event) { 256 var _this2 = $(this); 257 if (!$(_this2).hasClass("faq-block-expanded")) { 258 $(_this2).data("faq-focus-lock", true); 259 setTimeout(() => { 260 $(_this2).data("faq-focus-lock", false); 261 }, 200); 262 $(_this2).addClass("faq-block-expanded"); 263 $(_this2).parent().siblings().children().removeClass("faq-block-expanded"); 264 } 265 }).on("focusin", function(event) { 266 var _this2 = $(this); 267 if ($(_this2).is(":focus-within")) { 268 $(_this2).attr("aria-expanded", "true"); 269 } else { 270 $(_this2).attr("aria-expanded", "false"); 271 } 272 }).on("focusout", function() { 273 var _this2 = $(this); 274 if (!$(_this2).is(":focus-within")) { 275 $(_this2).attr("aria-expanded", "false"); 276 } 277 }); 278 $(".faq-block-answer *").on("click", function(event) { 279 event.stopPropagation(); 280 }); 281 function getTimeRemaining(endtime) { 282 var t = endtime - Date.parse(/* @__PURE__ */ new Date()); 283 var seconds = Math.floor(t / 1e3 % 60); 284 var minutes = Math.floor(t / 1e3 / 60 % 60); 285 var hours = Math.floor(t / (1e3 * 60 * 60) % 24); 286 var days = Math.floor(t / (1e3 * 60 * 60 * 24)); 287 return { "total": t, "days": days, "hours": hours, "minutes": minutes, "seconds": seconds }; 288 } 289 function updateTicker(_t, _days, _hours, _minutes, _seconds) { 290 $(_days).html(_t.days < 99 ? ("0" + _t.days).slice(-2) : _t.days); 291 $(_hours).html(("0" + _t.hours).slice(-2)); 292 $(_minutes).html(("0" + _t.minutes).slice(-2)); 293 $(_seconds).html(("0" + _t.seconds).slice(-2)); 294 } 295 $(".timeticker").each(function() { 296 var _showTicker = true; 297 var _timeNow = Date.parse(/* @__PURE__ */ new Date()); 298 var _displayStart = Date.parse($(this).data("displaystart")) || null; 299 var _displayEnd = Date.parse($(this).data("displayend")) || null; 300 var _eventTime = Date.parse($(this).data("eventtime")) || null; 301 if (_eventTime) { 302 if (_displayStart || _displayEnd) { 303 if (_displayStart && _displayStart > _timeNow) { 304 _showTicker = false;
305 } 306 if (_displayEnd && _displayEnd <= _timeNow) { 307 _showTicker = false; 308 } 309 } 310 } else { 311 _showTicker = false; 312 } 313 if (_showTicker) { 314 var _t = getTimeRemaining(_eventTime); 315 var _wrap = $("<div/>").addClass("timeticker_wrap"); 316 var _days = $("<span/>").html("00"); 317 var _dayswrap = $("<div/>").addClass("timeticker_days").html("days").prepend(_days); 318 var _hours = $("<span/>").html("00"); 319 var _hourswrap = $("<div/>").addClass("timeticker_hours").html("hours").prepend(_hours); 320 var _minutes = $("<span/>").html("00"); 321 var _minuteswrap = $("<div/>").addClass("timeticker_minutes").html("minutes").prepend(_minutes); 322 var _seconds = $("<span/>").html("00"); 323 var _secondswrap = $("<div/>").addClass("timeticker_seconds").html("seconds").prepend(_seconds); 324 $(_wrap).append(_dayswrap).append(_hourswrap).append(_minuteswrap).append(_secondswrap); 325 if (_t.total > 0) { 326 updateTicker(_t, _days, _hours, _minutes, _seconds); 327 var tickinterval = setInterval(function() { 328 _t = getTimeRemaining(_eventTime); 329 updateTicker(_t, _days, _hours, _minutes, _seconds); 330 if (_t.total <= 0) { 331 clearInterval(tickinterval); 332 } 333 }, 1e3); 334 } 335 $(this).show().append(_wrap); 336 } 337 }); 338 $(".hero-banner-slider").each(function() { 339 var _this = $(this); 340 var _controls = $(".slick-controls", $(_this)).get(0); 341 var _controls_prev = $(".slick-backward", _controls).get(0); 342 var _controls_next = $(".slick-forward", _controls).get(0); 343 var _controls_pause = $(".slick-btn-pause", _controls).get(0); 344 var _controls_play = $(".slick-btn-play", _controls).get(0); 345 var _slider_images = $(".hero-banner-slider-images-slider", $(_this)).get(0); 346 var _slider_text = $(".hero-banner-slider-text-slider", $(_this)).get(0); 347 var _isVisible = true; 348 var hero_image_load = {}; 349 $(_slider_images).on("init", function(slick) { 350 hero_image_load.heroLoadType = "init"; 351 hero_image_load.slideDirection = ""; 352 hero_image_load.nextCarouselPosition = 0; 353 pushDataLayer(); 354 if ($(_this).data("autoplay")) { 355 bindObserver(); 356 } 357 }); 358 $(_slider_images).slick({ 359 infinite: $(_this).data("autoplay") || false, 360 slidesToShow: 1, 361 slidesToScroll: 1, 362 arrows: false, 363 dots: false, 364 draggable: true, 365 autoplay: $(_this).data("autoplay") || false, 366 autoplaySpeed: $(_this).data("rotationintervals") || 3e3, 367 speed: $(_this).data("transitionspeed") || 300, 368 asNavFor: $(_slider_text),
369 useAutoplayToggleButton: false, 370 pauseOnHover: false 371 //pauseOnFocus: $(_this).data('autoplay') || false, 372 //pauseOnHover: $(_this).data('autoplay') || false, 373 //pauseOnDotsHover: $(_this).data('autoplay') || false, 374 }); 375 $(_slider_text).slick({ 376 infinite: $(_this).data("autoplay") || false, 377 slidesToShow: 1, 378 slidesToScroll: 1, 379 arrows: true, 380 dots: false, 381 draggable: true, 382 autoplay: false, 383 speed: $(_this).data("transitionspeed") || 300, 384 prevArrow: $(_controls_prev), 385 nextArrow: $(_controls_next), 386 //pauseIcon: $(_controls_pause), 387 //playIcon: $(_controls_play), 388 asNavFor: $(_slider_images), 389 useAutoplayToggleButton: false, 390 pauseOnHover: false 391 }); 392 if ($(_this).data("autoplay")) { 393 $(_controls_pause).on("click", function(e) { 394 eventSlickPause(true); 395 }); 396 $(_controls_play).on("click", function(e) { 397 eventSlickPlay(true); 398 }); 399 } 400 var _permaPause = false; 401 function eventSlickPause(isPersistent = false) { 402 _permaPause = !_permaPause ? isPersistent : _permaPause; 403 if (!_permaPause || isPersistent) { 404 $(_slider_images).slick("slickPause"); 405 if (isPersistent) { 406 $(_controls_pause).hide().trigger("blur"); 407 $(_controls_play).show().trigger("focus"); 408 } 409 } 410 } 411 function eventSlickPlay(isPersistent = false) { 412 _permaPause = isPersistent ? false : _permaPause; 413 if (!_permaPause || isPersistent) { 414 $(_slider_images).slick("slickPlay"); 415 if (isPersistent) { 416 $(_controls_pause).show().trigger("focus"); 417 $(_controls_play).hide().trigger("blur"); 418 } 419 } 420 } 421 var eventCurrent = 0; 422 var eventNext = 0; 423 var hero_image_load = {}; 424 var _maxAutoGtmLimit = 10; 425 $(_controls_prev).on("click", function(event) { 426 if (hero_image_load.slideChanged) { 427 hero_image_load.heroLoadType = event.type; 428 hero_image_load.slideDirection = "left"; 429 } 430 }); 431 $(_controls_next).on("click", function(event) { 432 if (hero_image_load.slideChanged) { 433 hero_image_load.heroLoadType = event.type; 434 hero_image_load.slideDirection = "right"; 435 } 436 }); 437 $([_slider_images, _slider_text]).on("swipe", function(event, slick, direction) { 438 if (hero_image_load.slideChanged) { 439 hero_image_load.heroLoadType = event.type; 440 hero_image_load.slideDirection = direction && direction == "left" ? "right" : "left"; 441 } 442 }); 443 $(_slider_text).on("beforeChange", function(event, slick, currentSlide2, nextSlide2) { 444 eventCurrent = currentSlide2; 445 eventNext = nextSlide2; 446 hero_image_load.heroLoadType = "auto"; 447 hero_image_load.slideDirection = "right"; 448 if (slideChanged()) { 449 hero_image_load.currentCarouselPosition = currentSlide2; 450 hero_image_load.nextCarouselPosition = nextSlide2; 451 } 452 }); 453 $(_slider_text).on("afterChange", function(event, slick, currentSlide2) { 454 if (hero_image_load.slideChanged) { 455 pushDataLayer(); 456 } 457 }); 458 function slideChanged() { 459 if (eventCurrent != eventNext && eventCurrent != hero_image_load.currentCarouselPosition) { 460 hero_image_load.slideChanged = true; 461 return true; 462 } 463 hero_image_load.slideChanged = false; 464 return false; 465 } 466 function createDatalayer() { 467 var currentSlide = eval("hero" + $(_this).data("blockguid"))[hero_image_load.currentCarouselPosition]; 468 var nextSlide = eval("hero" + $(_this).data("blockguid"))[hero_image_load.nextCarouselPosition]; 469 var eventDL = { 470 "event": "hero_image_load", 471 "heroLoadType": hero_image_load.heroLoadType, 472 "slideDirection": hero_image_load.slideDirection, 473 "currentCarouselPosition": currentSlide ? currentSlide.slideIndex : "", 474 "currentImageName": currentSlide ? currentSlide.slideImage : "", 475 "currentSlideTitle": currentSlide ? currentSlide.slideTitle : "", 476 "currentSlideHref": currentSlide ? currentSlide.slideHref : "", 477 "nextCarouselPosition": nextSlide ? nextSlide.slideIndex : "", 478 "nextImageName": nextSlide ? nextSlide.slideImage : "", 479 "nextSlideTitle": nextSlide ? nextSlide.slideTitle : "", 480 "nextSlideHref": nextSlide ? nextSlide.slideHref : "" 481 }; 482 return eventDL; 483 } 484 function pushDataLayer() { 485 var gtmdata = createDatalayer(); 486 if ($(_this).data("autoplay") && gtmdata.heroLoadType == "auto") { 487 if (_maxAutoGtmLimit) { 488 _maxAutoGtmLimit--; 489 } else { 490 return; 491 } 492 } 493 dataLayer.push(gtmdata); 494 } 495 function bindObserver() { 496 var heroObserver = new IntersectionObserver( 497 (entries) => {
498 entries.forEach((entry) => { 499 if (entry["isIntersecting"] === true) { 500 if (entry["intersectionRatio"] >= 0 && entry["intersectionRatio"] <= 0.45) { 501 eventSlickPause(); 502 _isVisible = false; 503 } else { 504 eventSlickPlay(); 505 _isVisible = true; 506 } 507 } else { 508 eventSlickPause(); 509 _isVisible = false; 510 } 511 }); 512 }, 513 { threshold: [0, 0.45, 1] } 514 ); 515 heroObserver.observe($(_this).get(0)); 516 } 517 }); 518 $(".eventlist-block-rc-list").each(function() { 519 var _this2 = $(this); 520 var _slider = $(".eventlist-block-rc-slider", $(_this2)).get(0); 521 var _controls2 = $(".slick-controls", $(_this2)).get(0); 522 var _controls_prev2 = $(".slick-backward", _controls2).get(0); 523 var _controls_next2 = $(".slick-forward", _controls2).get(0); 524 var _controls_dots = $(".slick-controls-dots", $(_this2)).get(0); 525 $(_slider).slick({ 526 infinite: false, 527 slidesToShow: 1, 528 slidesToScroll: 1, 529 arrows: true, 530 dots: true, 531 appendDots: $(_controls_dots), 532 draggable: true, 533 autoplay: false, 534 prevArrow: $(_controls_prev2), 535 nextArrow: $(_controls_next2), 536 accessibility: true 537 }); 538 }); 539 $(".linkitemcarousel-block-list").each(function() { 540 var _this2 = $(this); 541 var _slider = $(".linkitemcarousel-block-slider", $(_this2)).get(0); 542 var _controls2 = $(".slick-controls", $(_this2)).get(0); 543 var _controls_prev2 = $(".slick-backward", _controls2).get(0); 544 var _controls_next2 = $(".slick-forward", _controls2).get(0); 545 var _controls_dots = $(".slick-controls-dots", $(_this2)).get(0); 546 $(_slider).slick({ 547 infinite: false, 548 slidesToShow: 4, 549 slidesToScroll: 4, 550 arrows: true, 551 dots: true, 552 appendDots: $(_controls_dots), 553 draggable: true, 554 autoplay: false, 555 prevArrow: $(_controls_prev2), 556 nextArrow: $(_controls_next2), 557 responsive: [ 558 { 559 breakpoint: 1200, 560 settings: { 561 slidesToShow: 3, 562 slidesToScroll: 3 563 } 564 }, 565 { 566 breakpoint: 992, 567 settings: { 568 slidesToShow: 2, 569 slidesToScroll: 2 570 } 571 }, 572 { 573 breakpoint: 576, 574 settings: { 575 slidesToShow: 1, 576 slidesToScroll: 1 577 } 578 } 579 ] 580 }); 581 }); 582 $(".articlepage-slider").each(function() { 583 var _this2 = $(this); 584 var _controls2 = $(".slick-controls", $(_this2)).get(0); 585 var _controls_prev2 = $(".slick-backward", _controls2).get(0); 586 var _controls_next2 = $(".slick-forward", _controls2).get(0); 587 var _slider_images2 = $(".articlepage-images-slider", $(_this2)).get(0); 588 var _slider_thumbs = $(".articlepage-thumb-slider", $(_this2)).get(0); 589 var _slider_captions = $(".articlepage-caption-slider", $(_this2)).get(0); 590 var _thumbcount = $(_this2).data("thumbcount"); 591 $(_slider_images2).slick({ 592 infinite: false, 593 slidesToShow: 1, 594 slidesToScroll: 1, 595 arrows: false, 596 dots: false, 597 draggable: false, 598 autoplay: false 599 //, 600 //asNavFor: $(_slider_thumbs) 601 }); 602 $(_slider_thumbs).slick({ 603 infinite: false, 604 slidesToShow: _thumbcount, 605 slidesToScroll: _thumbcount, 606 arrows: true, 607 dots: false, 608 draggable: false, 609 autoplay: false, 610 prevArrow: $(_controls_prev2), 611 nextArrow: $(_controls_next2) 612 //, 613 //asNavFor: $(_slider_images) 614 }); 615 $(_slider_captions).slick({ 616 infinite: false, 617 slidesToShow: 1, 618 slidesToScroll: 1,
619 arrows: false, 620 dots: false, 621 draggable: false, 622 autoplay: false 623 }); 624 $(".slick-slide", _slider_thumbs).on("click", function() { 625 var _index = $(this).data("slick-index"); 626 $(_slider_images2).slick("slickGoTo", _index, true); 627 $(_slider_captions).slick("slickGoTo", _index, true); 628 }); 629 }); 630 $(".nav-scrollable").each(function() { 631 var _parent = $(this).data("target-parent") ? $($(this).data("target-parent")) : $(this); 632 var _navwrap = $(".nav-scrollable-wrap", this).get(0); 633 scrollableTabsCalcOverflow(_navwrap, _parent); 634 $(window).on("resize", function() { 635 scrollableTabsCalcOverflow(_navwrap, _parent); 636 }); 637 }); 638 function scrollableTabsCalcOverflow(_navwrap, _parent) { 639 if ($(_navwrap)[0].scrollWidth > Math.ceil($(_navwrap).width())) { 640 $(_parent).addClass("scrollable-overflow"); 641 $(_navwrap).on("scroll.tab-scroll", function() { 642 scrollableTabsScrollControls(_parent, _navwrap, $(_navwrap).scrollLeft()); 643 }); 644 scrollableTabsScrollControls(_parent, _navwrap, $(_navwrap).scrollLeft()); 645 $(".nav-scroll-left", _parent).on("click.scroll-left", function() { 646 var _scrollToVal = $(_navwrap).scrollLeft() - $(_navwrap).width(); 647 scrollableTabsScrollControls(_parent, _navwrap, _scrollToVal); 648 $(_navwrap).stop(true, true); 649 $(_navwrap).animate({ "scrollLeft": _scrollToVal + "px" }); 650 }); 651 $(".nav-scroll-right", _parent).on("click.scroll-right", function() { 652 var _scrollToVal = $(_navwrap).scrollLeft() + $(_navwrap).width(); 653 scrollableTabsScrollControls(_parent, _navwrap, _scrollToVal); 654 $(_navwrap).stop(true, true); 655 $(_navwrap).animate({ "scrollLeft": _scrollToVal + "px" }); 656 }); 657 } else { 658 $(_parent).removeClass("scrollable-overflow"); 659 $(_navwrap).off("scroll.tab-scroll"); 660 $(".nav-scroll-left", _parent).off("click.scroll-left"); 661 $(".nav-scroll-right", _parent).off("click.scroll-right"); 662 } 663 } 664 function scrollableTabsScrollControls(_parent, _navwrap, _scrollToVal) { 665 if (_scrollToVal <= 0) { 666 $(".nav-scroll-left", _parent).hide(); 667 } else { 668 $(".nav-scroll-left", _parent).show(); 669 } 670 if ($(_navwrap)[0].scrollWidth > _scrollToVal + $(_navwrap).width()) { 671 $(".nav-scroll-right", _parent).show(); 672 } else { 673 $(".nav-scroll-right", _parent).hide(); 674 } 675 } 676 $(".subnav.subnav-default select").on("change", function(e) { 677 window.location.href = $("option:selected", this).val(); 678 }); 679 $(".back-to-top").on("click", function() { 680 var _this2 = $(this); 681 $("html, body").stop(true, true); 682 $("html, body").animate({ scrollTop: 0 }, 350, "linear", function() { 683 $(_this2).blur(); 684 }); 685 }); 686 $(".back-to-top").on("focus", function() { 687 var _this2 = $(this); 688 $(this).bind("keyup.BackToTop", function(event) { 689 if (event.which == 13) { 690 $(_this2).trigger("click"); 691 } 692 }); 693 }); 694 $(".back-to-top").on("blur", function() { 695 $(this).unbind("keyup.BackToTop"); 696 }); 697 $(".back-to-top").on("mouseleave", function() { 698 $(this).blur(); 699 }); 700 $(".scroll-to-anchor").on("click", function(e) { 701 e.preventDefault(); 702 var _this2 = $(this); 703 var voffset = $($(_this2).attr("href")).offset().top - 75; 704 $("html, body").stop(true, true); 705 $("html, body").animate({ scrollTop: voffset }, 250, "linear", function() { 706 $(_this2).blur(); 707 }); 708 }); 709 $('.accordionblock .accordion-collapse[data-collapseothers="true"]').each(function() { 710 $(this).on("show.bs.collapse", function(event) { 711 $(".accordion-collapse").collapse("hide"); 712 }); 713 }); 714 $(".articlepage-image-modal > .modal").each(function() { 715 var _this2 = $(this); 716 $(_this2).on("show.bs.modal", function(event) { 717 var button = event.relatedTarget; 718 var imgSrc = button.getAttribute("data-bs-img-src"); 719 var modalBody = $(".modal-body", _this2); 720 $(modalBody).html(`<img src="${imgSrc}" />`); 721 }); 722 }); 723 }); 724 } 725 }); 726 require_Site(); 727})(); 728//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vU3RhdGljL1NjcmlwdHMvU2l0ZS5qcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiXHVGRUZGJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xuICAgIHZhciBfaGVhZGVyID0gJCgnaGVhZGVyJykuZ2V0KDApO1xuICAgIHZhciBfaGVhZGVyUGFyZW50ID0gJCgnaGVhZGVyJykucGFyZW50KCkuZ2V0KDApO1xuICAgIHZhciBfaGVhZGVyTmF2ID0gJCgnLmhlYWRlci1uYXZpZ2F0aW9uJykuZ2V0KDApO1xuICAgIHZhciBfaGVhZGVyVXRpbGl0eSA9ICQoJy5oZWFkZXItdXRpbGl0eScpLmdldCgwKTtcbiAgICB2YXIgX3NlYXJjaFBhZ2VGaWx0ZXJzUGFuZWwgPSAkKCcuc2VhcmNoLXJlc3VsdHMtZmlsdGVycy1wYW5lbCcpLmdldCgwKTtcbiAgICB2YXIgX2hlYWRlckhlaWdodCA9IChfaGVhZGVyKSA/ICQoX2hlYWRlcikuaGVpZ2h0KCkgOiAwO1xuICAgIHZhciBfdXRpbGl0eUhlaWdodCA9IChfaGVhZGVyVXRpbGl0eSkgPyAkKF9oZWFkZXJVdGlsaXR5KS5oZWlnaHQoKSA6IDA7XG4gICAgdmFyIF9oZWFkZXJUcmlnZ2VyT2Zmc2V0ID0gKF9oZWFkZXJQYXJlbnQpID8gJChfaGVhZGVyUGFyZW50KS5vZmZzZXQoKS50b3AgKyAoKCQod2luZG93KS53aWR0aCgpID49IDEyMDApID8gX3V0aWxpdHlIZWlnaHQgOiAwKSA6IDA7XG4gICAgaWYgKF9oZWFkZXIgJiYgX2hlYWRlclBhcmVudCkge1xuICAgICAgICAkKHdpbmRvdykub24oJ3Njcm9sbCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIENhbGN1bGF0ZUZpeGVkSGVhZGVyKCk7XG4gICAgICAgI
728H0pO1xuICAgICAgICAkKHdpbmRvdykub24oJ3Jlc2l6ZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF9oZWFkZXJIZWlnaHQgPSAkKF9oZWFkZXIpLmhlaWdodCgpO1xuICAgICAgICAgICAgX3V0aWxpdHlIZWlnaHQgPSAkKF9oZWFkZXJVdGlsaXR5KS5oZWlnaHQoKTtcbiAgICAgICAgICAgIF9oZWFkZXJUcmlnZ2VyT2Zmc2V0ID0gJChfaGVhZGVyUGFyZW50KS5vZmZzZXQoKS50b3AgKyAoKCQod2luZG93KS53aWR0aCgpID49IDEyMDApID8gX3V0aWxpdHlIZWlnaHQgOiAwKTtcbiAgICAgICAgICAgIENhbGN1bGF0ZUZpeGVkSGVhZGVyKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBDYWxjdWxhdGVGaXhlZEhlYWRlcigpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBDYWxjdWxhdGVGaXhlZEhlYWRlcigpIHtcbiAgICAgICAgaWYgKCQod2luZG93KS5zY3JvbGxUb3AoKSA+IF9oZWFkZXJUcmlnZ2VyT2Zmc2V0KSB7XG4gICAgICAgICAgICAkKF9oZWFkZXIpLmFkZENsYXNzKCdoZWFkZXItZml4ZWQnKTtcbiAgICAgICAgICAgICQoX2hlYWRlclBhcmVudCkuYWRkQ2xhc3MoJ2hlYWRlci1maXhlZCcpO1xuICAgICAgICAgICAgJChfaGVhZGVyUGFyZW50KS5jc3MoeyAncGFkZGluZy10b3AnOiBfaGVhZGVySGVpZ2h0ICsgJ3B4JyB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICQoX2hlYWRlclBhcmVudCkuY3NzKHsgJ3BhZGRpbmctdG9wJzogJzBweCcgfSk7XG4gICAgICAgICAgICAkKF9oZWFkZXIpLnJlbW92ZUNsYXNzKCdoZWFkZXItZml4ZWQnKTtcbiAgICAgICAgICAgICQoX2hlYWRlclBhcmVudCkucmVtb3ZlQ2xhc3MoJ2hlYWRlci1maXhlZCcpO1xuICAgICAgICAgICAgY2xvc2VOYXYoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICQoJy5uYXYtaGFtYnVyZ2VyJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgb3Blbk5hdigpO1xuICAgIH0pO1xuXG4gICAgJCgnLnNvcnQtZmlsdGVyLWJ1dHRvbicpLm9uKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIG9wZW5Tb3J0QW5kRmlsdGVycygpO1xuICAgIH0pO1xuXG4gICAgJCgnLnNvcnQtZmlsdGVyLWNsb3NlJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgY2xvc2VTb3J0QW5kRmlsdGVycygpO1xuICAgIH0pO1xuXG4gICAgJCgnLmhlYWRlci1uYXZpZ2F0aW9uJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcblxuICAgICQoJy5uYXYtY2xvc2UnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICBjbG9zZU5hdigpO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gb3Blbk5hdigpIHtcbiAgICAgICAgJCgnaHRtbCcpLmFkZENsYXNzKCduYXYtb3BlbicpO1xuICAgICAgICAkKF9oZWFkZXIpLmFkZENsYXNzKCduYXYtb3BlbicpO1xuICAgICAgICAkKF9oZWFkZXIpLm9uKCdjbGljay5jbG9zZU5hdk9uQmx1cicsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICBjbG9zZU5hdigpO1xuICAgICAgICB9KTtcbiAgICAgICAgJChkb2N1bWVudCkub24oJ2tleXVwLm5hdm9wZW4nLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGlmIChldmVudC53aGljaCA9PSAyNykge1xuICAgICAgICAgICAgICAgIGNsb3NlTmF2KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNsb3NlTmF2KCkge1xuICAgICAgICAkKCdodG1sJykucmVtb3ZlQ2xhc3MoJ25hdi1vcGVuJyk7XG4gICAgICAgICQoX2hlYWRlcikucmVtb3ZlQ2xhc3MoJ25hdi1vcGVuJyk7XG4gICAgICAgICQoX2hlYWRlcikub2ZmKCdjbGljay5jbG9zZU5hdk9uQmx1cicpO1xuICAgICAgICAkKF9oZWFkZXIpLm9mZigna2V5dXAubmF2b3BlbicpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG9wZW5Tb3J0QW5kRmlsdGVycygpIHtcbiAgICAgICAgJCgnaHRtbCcpLmFkZENsYXNzKCdzb3J0LWZpbHRlci1vcGVuJyk7XG4gICAgICAgICQoX3NlYXJjaFBhZ2VGaWx0ZXJzUGFuZWwpLmFkZENsYXNzKCdzb3J0LWZpbHRlci1vcGVuJyk7XG4gICAgICAgIC8vICQoX3NlYXJjaFBhZ2VGaWx0ZXJzUGFuZWwpLm9uKCdjbGljay5jbG9zZVNvcnRBbmRGaWx0ZXJzT25CbHVyJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgLy8gICAgIGNsb3NlU29ydEFuZEZpbHRlcnMoKTtcbiAgICAgICAgLy8gfSk7XG4gICAgICAgICQoZG9jdW1lbnQpLm9uKCdrZXl1cC5Tb3J0QW5kRmlsdGVyc29wZW4nLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGlmIChldmVudC53aGljaCA9PSAyNykge1xuICAgICAgICAgICAgICAgIGNsb3NlU29ydEFuZEZpbHRlcnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2xvc2VTb3J0QW5kRmlsdGVycygpIHtcbiAgICAgICAgJCgnaHRtbCcpLnJlbW92ZUNsYXNzKCdzb3J0LWZpbHRlci1vcGVuJyk7XG4gICAgICAgICQoX3NlYXJjaFBhZ2VGaWx0ZXJzUGFuZWwpLnJlbW92ZUNsYXNzKCdzb3J0LWZpbHRlci1vcGVuJyk7XG4gICAgICAgIC8vJChfc2VhcmNoUGFnZUZpbHRlcnNQYW5lbCkub2ZmKCdjbGljay5jbG9zZVNvcnRBbmRGaWx0ZXJzT25CbHVyJyk7XG4gICAgICAgICQoX3NlYXJjaFBhZ2VGaWx0ZXJzUGFuZWwpLm9mZigna2V5dXAuU29ydEFuZEZpbHRlcnNvcGVuJyk7XG4gICAgfVxuXG4gICAgJCh3aW5kb3cpLm9uKCdyZXNpemUnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNsb3NlU29ydEFuZEZpbHRlcnMoKTtcbiAgICB9KTtcblxuICAgIHZhciBsaU5hdkVudGVyID0gbnVsbDtcbiAgICAkKCdsaS5uYXZfbHZsXzAnKS5vbignbW91c2VlbnRlcicsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gJCh0aGlzKTtcbiAgICAgICAgbGlOYXZFbnRlciA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgJCgnYScsICQodGhpcykuc2libGluZ3MoKSkuYmx1cigpO1xuICAgICAgICAgICAgaWYgKCQoX3RoaXMpLmhhc0NsYXNzKCdIYXNDaGlsZHJlbicpKSB7XG4gICAgICAgICAgICAgICAgJCgndWwubmF2X2x2bF8wJ
728ykuYWRkQ2xhc3MoJ2ZvY3VzZWQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICQoJz4gYSwgPiBzcGFuJywgdGhpcykuYXR0cignYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG4gICAgICAgIH0sIDIwMCk7XG4gICAgfSlcbiAgICAub24oJ21vdXNlbGVhdmUnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNsZWFyVGltZW91dChsaU5hdkVudGVyKTtcbiAgICAgICAgJCgndWwubmF2X2x2bF8wJykucmVtb3ZlQ2xhc3MoJ2ZvY3VzZWQnKTtcbiAgICAgICAgJCgnPiBhLCA+IHNwYW4nLCB0aGlzKS5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gICAgfSk7XG5cbiAgICAkKCcubmF2X2x2bF8wLkhhc0NoaWxkcmVuID4gYSwgLm5hdl9sdmxfMC5IYXNDaGlsZHJlbiA+IHNwYW4nKS5vbignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmICgkKHRoaXMpLmhhc0NsYXNzKCdsaWV4dGVuZGVkJykpIHtcbiAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ2xpZXh0ZW5kZWQnKTtcbiAgICAgICAgICAgICQodGhpcykucGFyZW50KCkucmVtb3ZlQ2xhc3MoJ2xpZXh0ZW5kZWQnKTtcbiAgICAgICAgICAgICQoJy5uYXZpZ2F0aW9uLW1haW4gPiBuYXYnKS5yZW1vdmVDbGFzcygnbGlleHRlbmRlZCcpO1xuICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdsaWV4dGVuZGVkJyk7XG4gICAgICAgICAgICAkKHRoaXMpLnBhcmVudCgpLmFkZENsYXNzKCdsaWV4dGVuZGVkJyk7XG4gICAgICAgICAgICAkKCcubmF2aWdhdGlvbi1tYWluID4gbmF2JykuYWRkQ2xhc3MoJ2xpZXh0ZW5kZWQnKTtcbiAgICAgICAgICAgICQodGhpcykuYXR0cignYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgICQoJy5uYXZfbHZsXzAuSGFzQ2hpbGRyZW4nKS5vbignbW91c2VsZWF2ZScsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGlmICghJChfaGVhZGVyKS5oYXNDbGFzcygnaGVhZGVyLWZpeGVkJykgJiYgISQoX2hlYWRlcikuaGFzQ2xhc3MoJ25hdi1vcGVuJykpIHtcbiAgICAgICAgICAgICQoJy5uYXZpZ2F0aW9uLW1haW4gYSwgLm5hdmlnYXRpb24tbWFpbiBzcGFuJykuYmx1cigpO1xuICAgICAgICAgICAgJCgnLmxpZXh0ZW5kZWQnKS5yZW1vdmVDbGFzcygnbGlleHRlbmRlZCcpO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICAkKHdpbmRvdykub24oJ3Jlc2l6ZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJCgnLm5hdmlnYXRpb24tbWFpbiBhLCAubmF2aWdhdGlvbi1tYWluIHNwYW4nKS5ibHVyKCk7XG4gICAgICAgICQoJy5saWV4dGVuZGVkJykucmVtb3ZlQ2xhc3MoJ2xpZXh0ZW5kZWQnKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIG9uVmlzaWJsZShlbGVtZW50LCBjYWxsYmFjaykge1xuICAgICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllcywgb2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgIGVudHJpZXMuZm9yRWFjaChlbnRyeSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVudHJ5LmlzSW50ZXJzZWN0aW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuc2libGluZ3MoJ1tyb2xlPVwibWVudWl0ZW1cIl0nKS5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ3RydWUnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICQoZWxlbWVudCkuc2libGluZ3MoJ1tyb2xlPVwibWVudWl0ZW1cIl0nKS5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQpO1xuICAgIH1cblxuICAgICQoJ2xpLkhhc0NoaWxkcmVuLm5hdl9sdmxfMCA+IC5uYXYtZHJvcGRvd24nKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gJCh0aGlzKVswXTtcbiAgICAgICAgb25WaXNpYmxlKF90aGlzLCBmdW5jdGlvbiAoKSB7fSk7XG4gICAgfSk7XG5cbiAgICAkKCcuaGVhZGVyLXNlYXJjaC1pY29uJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgb3BlblNlYXJjaCgpO1xuICAgIH0pO1xuICAgICQoJy5zZWFyY2gtY2xvc2UnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICBjbG9zZVNlYXJjaCgkKHRoaXMpKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIG9wZW5TZWFyY2goKSB7XG4gICAgICAgICQoX2hlYWRlcikuYWRkQ2xhc3MoJ3NlYXJjaC1vcGVuJyk7XG4gICAgICAgICQoZG9jdW1lbnQpLm9uKCdrZXl1cC5zZWFyY2hvcGVuJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICBpZiAoZXZlbnQud2hpY2ggPT0gMjcpIHtcbiAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy8kKF9oZWFkZXIpLm9uKCdjbGljay5jbG9zZVNlYXJjaE9uQmx1cicsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIC8vICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgIC8vfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2xvc2VTZWFyY2godHJpZ2dlciA9IG51bGwpIHtcbiAgICAgICAgJChfaGVhZGVyKS5yZW1vdmVDbGFzcygnc2VhcmNoLW9wZW4nKTtcbiAgICAgICAgaWYgKHRyaWdnZXIpIHtcbiAgICAgICAgICAgICQodHJpZ2dlcikucHJldignaW5wdXQnKS52YWwoJycpO1xuICAgICAgICAgICAgJCh0cmlnZ2VyKS5yZW1vdmVDbGFzcygnc2hvdycpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgJCgnLmdsb2JhbC1zZWFyY2gtaW5wdXQgLnNlYXJjaElucHV0ID4gaW5wdXQnKS52YWwoJycpO1xuICAgICAgICAgICAgJCgnLmdsb2JhbC1zZWFyY2gtaW5wdXQgLnNlYXJjaElucHV0ID4gLnNlYXJjaC1jbG9zZScpLnJlbW92ZUNsYXNzKCdzaG93Jyk7XG4gICAgICAgI
728H1cbiAgICAgICAgJChkb2N1bWVudCkub2ZmKCdrZXl1cC5zZWFyY2hvcGVuJyk7XG4gICAgICAgIC8vJChfaGVhZGVyKS5vZmYoJ2NsaWNrLmNsb3NlU2VhcmNoT25CbHVyJyk7XG4gICAgfVxuXG4gICAgJCgnLmdsb2JhbC1zZWFyY2gtaW5wdXQgLnNlYXJjaElucHV0IGEuU2VhcmNoQnV0dG9uJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBWYWxpZGF0ZVNlYXJjaFRlcm0oJCh0aGlzKS5zaWJsaW5ncygnaW5wdXQnKSk7XG4gICAgfSk7XG4gICAgJCgnLmdsb2JhbC1zZWFyY2gtaW5wdXQgLnNlYXJjaElucHV0ID4gaW5wdXQnKS5vbigna2V5dXAnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9ICQodGhpcyk7XG4gICAgICAgIHZhciBzZWFyY2hJbnB1dFZhbCA9ICQoX3RoaXMpLnZhbCgpLnRyaW0oKTtcbiAgICAgICAgaWYgKHNlYXJjaElucHV0VmFsICE9IFwiXCIgJiYgc2VhcmNoSW5wdXRWYWwgIT09IG51bGwgJiYgc2VhcmNoSW5wdXRWYWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgJChfdGhpcykubmV4dCgnLnNlYXJjaC1jbG9zZScpLmFkZENsYXNzKCdzaG93Jyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAkKF90aGlzKS5uZXh0KCcuc2VhcmNoLWNsb3NlJykucmVtb3ZlQ2xhc3MoJ3Nob3cnKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgICQoJy5nbG9iYWwtc2VhcmNoLWlucHV0IC5zZWFyY2hJbnB1dCA+IGlucHV0Jykub24oJ2ZvY3VzJywgZnVuY3Rpb24gKCkge1xuICAgICAgICB2Y
728XIgX3RoaXMgPSAkKHRoaXMpO1xuICAgICAgICAkKGRvY3VtZW50KS5iaW5kKCdrZXl1cC5TZWFyY2hUeXBpbmdTdGFydGVkJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICBpZiAoZXZlbnQud2hpY2ggPT0gMTMpIHtcbiAgICAgICAgICAgICAgICBWYWxpZGF0ZVNlYXJjaFRlcm0oX3RoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICAkKCcuZ2xvYmFsLXNlYXJjaC1pbnB1dCAuc2VhcmNoSW5wdXQgPiBpbnB1dCcpLm9uKCdmb2N1c291dCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJChkb2N1bWVudCkudW5iaW5kKCdrZXl1cC5TZWFyY2hUeXBpbmdTdGFydGVkJyk7XG4gICAgfSk7XG4gICAgLy8kKCcuanMtc2VhcmNoLXNvcnQnKS5vbignY2hhbmdlJyxcbiAgICAvLyAgICBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAvLyAgICAgICAgdmFyIHNvcnQgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgLy8gICAgICAgIHZhciBxID0gJCh0aGlzKS5kYXRhKCdxJyk7XG4gICAgLy8gICAgICAgIHZhciBzZWFyY2hVcmwgPSBsb2NhdGlvbi5wcm90b2NvbCArICcvLycgKyBsb2NhdGlvbi5ob3N0ICsgbG9jYXRpb24ucGF0aG5hbWU7XG4gICAgLy8gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gc2VhcmNoVXJsICsgJz9xPScgKyBxICsgJyZzb3J0PScgKyBzb3J0O1xuICAgIC8vICAgIH1cbiAgICAvLyk7XG4gICAgZnVuY3Rpb24gVmFsaWRhdGVTZWFyY2hUZXJtKGVsU2VhcmNoSW5wdXQpIHtcbiAgICAgICAgdmFyIHNlYXJjaElucHV0VmFsID0gZWxTZWFyY2hJbnB1dC52YWwoKS50cmltKCk7XG4gICAgICAgIGlmIChzZWFyY2hJbnB1dFZhbCAhPSBcIlwiICYmIHNlYXJjaElucHV0VmFsICE9PSBudWxsICYmIHNlYXJjaElucHV0VmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vR0FTZW5kU2VhcmNoVGVybShzZWFyY2hJbnB1dFZhbCk7XG4gICAgICAgICAgICB2Y
728XIgc2VhcmNoVXJsID0gZWxTZWFyY2hJbnB1dC5hdHRyKCdkYXRhLXNlYXJjaC11cmwnKTtcbiAgICAgICAgICAgIGlmIChzZWFyY2hVcmwgIT0gXCJcIiAmJiBzZWFyY2hVcmwgIT09IG51bGwgJiYgc2VhcmNoVXJsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHNlYXJjaFVybCArICc/cT0nICsgc2VhcmNoSW5wdXRWYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyQoJzxkaXYvPicpLmFkZENsYXNzKCdzZWFyY2hJbnB1dEVycm9yJykuaHRtbCgnPHNwYW4gY2xhc3M9XCJpY29uIGljb24tYW5nbGUtZG91YmxlLXVwXCI+PC9zcGFuPiBFcnJvciBzZWFyY2hpbmcsIHBsZWFzZSB0cnkgYWdhaW4gbGF0ZXInKS5hcHBlbmRUbygkKGVsU2VhcmNoSW5wdXQpLnBhcmVudCgpKS5mYWRlSW4oZnVuY3Rpb24gKCkgeyAkKHRoaXMpLmRlbGF5KDMwMDApLmZhZGVPdXQoZnVuY3Rpb24gKCkgeyAkKHRoaXMpLnJlbW92ZSgpOyB9KTsgfSk7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFcnJvciBzZWFyY2hpbmcsIHBsZWFzZSB0cnkgYWdhaW4gbGF0ZXInKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyQoJzxkaXYvPicpLmFkZENsYXNzKCdzZWFyY2hJbnB1dEVycm9yJykuaHRtbCgnPHNwYW4gY2xhc3M9XCJpY29uIGljb24tYW5nbGUtZG91YmxlLXVwXCI+PC9zcGFuPiBFbnRlciBhIFNlYXJjaCBUZXJtJykuYXBwZW5kVG8oJChlbFNlYXJjaElucHV0KS5wYXJlbnQoKSkuZmFkZUluKGZ1bmN0aW9uICgpIHsgJCh0aGlzKS5kZWxheSgzMDAwKS5mYWRlT3V0KGZ1bmN0aW9uICgpIHsgJCh0aGlzKS5yZW1vdmUoKTsgfSk7IH0pO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbXB0eSBzZWFyY2ggbm90IGFsbG93ZWQnKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICQoJy5hZHMtbG9naW4nKVxuICAgICAgICAub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgJCh0aGlzKS50b2dnbGVDbGFzcygnYWRzLWxvZ2luLWV4cGFuZGVkJykuYXR0cignYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG4gICAgICAgIH0pXG4gICAgICAgIC5vbignbW91c2VsZWF2ZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ2Fkcy1sb2dpbi1leHBhbmRlZCcpLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCAnZmFsc2UnKTtcbiAgICAgICAgICAgICQoZG9jdW1lbnQpLm9mZigna2V5dXAuYWRzLWxvZ2luLWZvY3VzZWQnKTtcbiAgICAgICAgfSlcbiAgICAgICAgLm9uKCdmb2N1cycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBfdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICAkKGRvY3VtZW50KS5vbigna2V5dXAuYWRzLWxvZ2luLWZvY3VzZWQnLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09IFwiRW50ZXJcIiB8fCBldmVudC5rZXlDb2RlID09IDEzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkKF90aGlzKS5hdHRyKCdhcmlhLWV4cGFuZGVkJykgPT0gJ2ZhbHNlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgJChfdGhpcykuYWRkQ2xhc3MoJ2Fkcy1sb2dpbi1leHBhbmRlZCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJChfdGhpcykuYXR0cignYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKF90aGlzKS5yZW1vdmVDbGFzcygnYWRzLWxvZ2luLWV4cGFuZGVkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKF90aGlzKS5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLm9uKCdmb2N1c291dCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBfdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICBpZiAoISQoX3RoaXMpLmlzKCc6Zm9jdXMtd2l0aGluJykpIHtcbiAgICAgICAgICAgICAgICAkKF90aGlzKS5yZW1vdmVDbGFzcygnYWRzLWxvZ2luLWV4cGFuZGVkJyk7XG4gICAgICAgICAgICAgICAgJChfdGhpcykuYXR0cignYXJpYS1leHBhbmRlZCcsICdmYWxzZScpO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9mZigna2V5dXAuYWRzLWxvZ2luLWZvY3VzZWQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAkKCcuZmFxLWJsb2NrJylcbiAgICAgICAgLm9uKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgdmFyIF90aGlzID0gJCh0aGlzKTtcbiAgICAgICAgICAgIGlmICghJChfdGhpcykuZGF0YSgnZmFxLWZvY3VzLWxvY2snKSkge1xuICAgICAgICAgICAgICAgICQoX3RoaXMpLmRhdGEoJ2ZhcS1mb2N1cy1sb2NrJywgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7ICQoX3RoaXMpLmRhdGEoJ2ZhcS1mb2N1cy1sb2NrJywgZmFsc2UpOyB9LCAyMDApO1xuICAgICAgICAgICAgICAgICQoX3RoaXMpLnRvZ2dsZUNsYXNzKCdmYXEtYmxvY2stZXhwYW5kZWQnKTtcbiAgICAgICAgICAgICAgICBpZiAoISQoX3RoaXMpLmhhc0NsYXNzKCdmYXEtYmxvY2stZXhwYW5kZWQnKSkge1xuICAgICAgICAgICAgICAgICAgICAkKF90aGlzKS5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ3RydWUnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICQoX3RoaXMpLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCAnZmFsc2UnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJChfdGhpcykucGFyZW50KCkuc2libGluZ3MoKS5jaGlsZHJlbigpLnJlbW92ZUNsYXNzKCdmYXEtYmxvY2stZXhwYW5kZWQnKTtcbiAgICAgICAgICAgI
728H1cbiAgICAgICAgfSlcbiAgICAgICAgLm9uKCdmb2N1cycsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgdmFyIF90aGlzID0gJCh0aGlzKTtcbiAgICAgICAgICAgIGlmICghJChfdGhpcykuaGFzQ2xhc3MoJ2ZhcS1ibG9jay1leHBhbmRlZCcpKSB7XG4gICAgICAgICAgICAgICAgJChfdGhpcykuZGF0YSgnZmFxLWZvY3VzLWxvY2snLCB0cnVlKTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgJChfdGhpcykuZGF0YSgnZmFxLWZvY3VzLWxvY2snLCBmYWxzZSk7IH0sIDIwMCk7XG4gICAgICAgICAgICAgICAgJChfdGhpcykuYWRkQ2xhc3MoJ2ZhcS1ibG9jay1leHBhbmRlZCcpO1xuICAgICAgICAgICAgICAgICQoX3RoaXMpLnBhcmVudCgpLnNpYmxpbmdzKCkuY2hpbGRyZW4oKS5yZW1vdmVDbGFzcygnZmFxLWJsb2NrLWV4cGFuZGVkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5vbignZm9jdXNpbicsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgdmFyIF90aGlzID0gJCh0aGlzKTtcbiAgICAgICAgICAgIGlmICgkKF90aGlzKS5pcygnOmZvY3VzLXdpdGhpbicpKSB7XG4gICAgICAgICAgICAgICAgJChfdGhpcykuYXR0cignYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKF90aGlzKS5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5vbignZm9jdXNvdXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2Y
728XIgX3RoaXMgPSAkKHRoaXMpO1xuICAgICAgICAgICAgaWYgKCEkKF90aGlzKS5pcygnOmZvY3VzLXdpdGhpbicpKSB7XG4gICAgICAgICAgICAgICAgJChfdGhpcykuYXR0cignYXJpYS1leHBhbmRlZCcsICdmYWxzZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAkKCcuZmFxLWJsb2NrLWFuc3dlciAqJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0pO1xuICAgIFxuICAgIGZ1bmN0aW9uIGdldFRpbWVSZW1haW5pbmcoZW5kdGltZSkge1xuICAgICAgICB2YXIgdCA9IGVuZHRpbWUgLSBEYXRlLnBhcnNlKG5ldyBEYXRlKCkpO1xuICAgICAgICB2YXIgc2Vjb25kcyA9IE1hdGguZmxvb3IoKHQgLyAxMDAwKSAlIDYwKTtcbiAgICAgICAgdmFyIG1pbnV0ZXMgPSBNYXRoLmZsb29yKCh0IC8gMTAwMCAvIDYwKSAlIDYwKTtcbiAgICAgICAgdmFyIGhvdXJzID0gTWF0aC5mbG9vcigodCAvICgxMDAwICogNjAgKiA2MCkpICUgMjQpO1xuICAgICAgICB2YXIgZGF5cyA9IE1hdGguZmxvb3IodCAvICgxMDAwICogNjAgKiA2MCAqIDI0KSk7XG4gICAgICAgIHJldHVybiB7ICd0b3RhbCc6IHQsICdkYXlzJzogZGF5cywgJ2hvdXJzJzogaG91cnMsICdtaW51dGVzJzogbWludXRlcywgJ3NlY29uZHMnOiBzZWNvbmRzIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdXBkYXRlVGlja2VyKF90LCBfZGF5cywgX2hvdXJzLCBfbWludXRlcywgX3NlY29uZHMpIHtcbiAgICAgICAgJChfZGF5cykuaHRtbCgoX3QuZGF5cyA8IDk5KSA/ICgnMCcgKyBfdC5kYXlzKS5zbGljZSgtMikgOiBfdC5kYXlzKTtcbiAgICAgICAgJChfaG91cnMpLmh0bWwoKCcwJyArIF90LmhvdXJzKS5zbGljZSgtMikpO1xuICAgICAgICAkKF9taW51dGVzKS5odG1sKCgnMCcgKyBfdC5taW51dGVzKS5zbGljZSgtMikpO1xuICAgICAgICAkKF9zZWNvbmRzKS5odG1sKCgnMCcgKyBfdC5zZWNvbmRzKS5zbGljZSgtMikpO1xuICAgIH1cblxuICAgICQoJy50aW1ldGlja2VyJykuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfc2hvd1RpY2tlciA9IHRydWU7XG4gICAgICAgIHZhciBfdGltZU5vdyA9IERhdGUucGFyc2UobmV3IERhdGUoKSk7XG4gICAgICAgIHZhciBfZGlzcGxheVN0YXJ0ID0gRGF0ZS5wYXJzZSgkKHRoaXMpLmRhdGEoJ2Rpc3BsYXlzdGFydCcpKSB8fCBudWxsO1xuICAgICAgICB2Y
728XIgX2Rpc3BsYXlFbmQgPSBEYXRlLnBhcnNlKCQodGhpcykuZGF0YSgnZGlzcGxheWVuZCcpKSB8fCBudWxsO1xuICAgICAgICB2YXIgX2V2ZW50VGltZSA9IERhdGUucGFyc2UoJCh0aGlzKS5kYXRhKCdldmVudHRpbWUnKSkgfHwgbnVsbDtcbiAgICAgICAgaWYgKF9ldmVudFRpbWUpIHtcbiAgICAgICAgICAgIGlmIChfZGlzcGxheVN0YXJ0IHx8IF9kaXNwbGF5RW5kKSB7XG4gICAgICAgICAgICAgICAgaWYgKF9kaXNwbGF5U3RhcnQgJiYgX2Rpc3BsYXlTdGFydCA+IF90aW1lTm93KSB7XG4gICAgICAgICAgICAgICAgICAgIF9zaG93VGlja2VyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChfZGlzcGxheUVuZCAmJiBfZGlzcGxheUVuZCA8PSBfdGltZU5vdykge1xuICAgICAgICAgICAgICAgICAgICBfc2hvd1RpY2tlciA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIF9zaG93VGlja2VyID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKF9zaG93VGlja2VyKSB7XG4gICAgICAgICAgICB2YXIgX3QgPSBnZXRUaW1lUmVtYWluaW5nKF9ldmVudFRpbWUpO1xuICAgICAgICAgICAgdmFyIF93cmFwID0gJCgnPGRpdi8+JykuYWRkQ2xhc3MoJ3RpbWV0aWNrZXJfd3JhcCcpO1xuICAgICAgICAgICAgdmFyIF9kYXlzID0gJCgnPHNwYW4vPicpLmh0bWwoJzAwJyk7XG4gICAgICAgICAgICB2YXIgX2RheXN3cmFwID0gJCgnPGRpdi8+JykuYWRkQ2xhc3MoJ3RpbWV0aWNrZXJfZGF5cycpLmh0bWwoJ2RheXMnKS5wcmVwZW5kKF9kYXlzKTtcbiAgICAgICAgICAgIHZhciBfaG91cnMgPSAkKCc8c3Bhbi8+JykuaHRtbCgnMDAnKTtcbiAgICAgICAgICAgIHZhciBfaG91cnN3cmFwID0gJCgnPGRpdi8+JykuYWRkQ2xhc3MoJ3RpbWV0aWNrZXJfaG91cnMnKS5odG1sKCdob3VycycpLnByZXBlbmQoX2hvdXJzKTtcbiAgICAgICAgICAgIHZhciBfbWludXRlcyA9ICQoJzxzcGFuLz4nKS5odG1sKCcwMCcpO1xuICAgICAgICAgICAgdmFyIF9taW51dGVzd3JhcCA9ICQoJzxkaXYvPicpLmFkZENsYXNzKCd0aW1ldGlja2VyX21pbnV0ZXMnKS5odG1sKCdtaW51dGVzJykucHJlcGVuZChfbWludXRlcyk7XG4gICAgICAgICAgICB2Y
728XIgX3NlY29uZHMgPSAkKCc8c3Bhbi8+JykuaHRtbCgnMDAnKTtcbiAgICAgICAgICAgIHZhciBfc2Vjb25kc3dyYXAgPSAkKCc8ZGl2Lz4nKS5hZGRDbGFzcygndGltZXRpY2tlcl9zZWNvbmRzJykuaHRtbCgnc2Vjb25kcycpLnByZXBlbmQoX3NlY29uZHMpO1xuICAgICAgICAgICAgJChfd3JhcCkuYXBwZW5kKF9kYXlzd3JhcCkuYXBwZW5kKF9ob3Vyc3dyYXApLmFwcGVuZChfbWludXRlc3dyYXApLmFwcGVuZChfc2Vjb25kc3dyYXApO1xuXG4gICAgICAgICAgICBpZiAoX3QudG90YWwgPiAwKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlVGlja2VyKF90LCBfZGF5cywgX2hvdXJzLCBfbWludXRlcywgX3NlY29uZHMpO1xuICAgICAgICAgICAgICAgIHZhciB0aWNraW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIF90ID0gZ2V0VGltZVJlbWFpbmluZyhfZXZlbnRUaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlVGlja2VyKF90LCBfZGF5cywgX2hvdXJzLCBfbWludXRlcywgX3NlY29uZHMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoX3QudG90YWwgPD0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aWNraW50ZXJ2YWwpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgMTAwMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICQodGhpcykuc2hvdygpLmFwcGVuZChfd3JhcCk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vU2VhcmNoUGFnZVxuICAgIC8vJCgnLmJiU2VhcmNoRmN0c0J0dG5NYmwnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xuICAgIC8vICAgICQoJy5iYlNlYXJjaEZjdHNNYmwnKS5zdG9wKHRydWUsIHRydWUpO1xuICAgIC8vICAgIGlmICgkKCcuYmJTZWFyY2hGY3RzTWJsJykuaXMoJzp2aXNpYmxlJykpIHtcbiAgICAvLyAgICAgICAgJCgnLmJiU2VhcmNoRmN0c01ibCcpLmhpZGUoKTtcbiAgICAvLyAgICB9XG4gICAgLy8gICAgZWxzZSB7XG4gICAgLy8gICAgICAgICQoJy5iYlNlYXJjaEZjdHNNYmwnKS5zaG93KCk7XG4gICAgLy8gICAgfVxuICAgIC8vfSk7XG5cbiAgICAvLyQoJ
728y5iYlNlYXJjaEZjdEhkck1uJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICAvLyAgICAkKCcuYmJTZWFyY2hGY3RJdG1NbicpLnN0b3AodHJ1ZSwgdHJ1ZSk7XG4gICAgLy8gICAgaWYgKCQodGhpcykubmV4dCgnLmJiU2VhcmNoRmN0SXRtTW4nKS5pcygnOnZpc2libGUnKSkge1xuICAgIC8vICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdpc09wZW4nKTtcbiAgICAvLyAgICAgICAgJCh0aGlzKS5uZXh0KCcuYmJTZWFyY2hGY3RJdG1NbicpLnNsaWRlVXAoMTUwKTtcbiAgICAvLyAgICB9XG4gICAgLy8gICAgZWxzZSB7XG4gICAgLy8gICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ2lzT3BlbicpO1xuICAgIC8vICAgICAgICAkKHRoaXMpLm5leHQoJy5iYlNlYXJjaEZjdEl0bU1uJykuc2xpZGVEb3duKDI1MCk7XG4gICAgLy8gICAgfVxuICAgIC8vfSk7XG5cbiAgICAvLyQoJy5iYlNlYXJjaEZjdEl0bU1uIC5tYXhsaXN0LW1vcmUnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xuICAgIC8vICAgICQoJ3VsLnNob3dNb3JlJykuc3RvcCh0cnVlLCB0cnVlKTtcbiAgICAvLyAgICBpZiAoJCh0aGlzKS5wcmV2KCd1bC5zaG93TW9yZScpLmlzKCc6dmlzaWJsZScpKSB7XG4gICAgLy8gICAgICAgICQodGhpcykudGV4dCgkKHRoaXMpLmRhdGEoJ3RleHRtb3JlJykpO1xuICAgIC8vICAgICAgICAkKHRoaXMpLnByZXYoJ3VsLnNob3dNb3JlJykuc2xpZGVVcCgxNTApO1xuICAgIC8vICAgIH1cbiAgICAvLyAgICBlbHNlIHtcbiAgICAvLyAgICAgICAgJCh0aGlzKS50ZXh0KCQodGhpcykuZGF0YSgndGV4dGxlc3MnKSk7XG4gICAgLy8gICAgICAgICQodGhpcykucHJldigndWwuc2hvd01vcmUnKS5zbGlkZURvd24oMjUwKTtcbiAgICAvLyAgICB9XG4gICAgLy99KTtcblxuICAgICQoJy5oZXJvLWJhbm5lci1zbGlkZXInKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gJCh0aGlzKTtcbiAgICAgICAgdmFyIF9jb250cm9scyA9ICQoJy5zbGljay1jb250cm9scycsICQoX3RoaXMpKS5nZXQoMCk7XG4gICAgICAgIHZhciBfY29udHJvbHNfcHJldiA9ICQoJy5zbGljay1iYWNrd2FyZCcsIF9jb250cm9scykuZ2V0KDApO1xuICAgICAgICB2Y
728XIgX2NvbnRyb2xzX25leHQgPSAkKCcuc2xpY2stZm9yd2FyZCcsIF9jb250cm9scykuZ2V0KDApO1xuICAgICAgICB2YXIgX2NvbnRyb2xzX3BhdXNlID0gJCgnLnNsaWNrLWJ0bi1wYXVzZScsIF9jb250cm9scykuZ2V0KDApO1xuICAgICAgICB2YXIgX2NvbnRyb2xzX3BsYXkgPSAkKCcuc2xpY2stYnRuLXBsYXknLCBfY29udHJvbHMpLmdldCgwKTtcbiAgICAgICAgdmFyIF9zbGlkZXJfaW1hZ2VzID0gJCgnLmhlcm8tYmFubmVyLXNsaWRlci1pbWFnZXMtc2xpZGVyJywgJChfdGhpcykpLmdldCgwKTtcbiAgICAgICAgdmFyIF9zbGlkZXJfdGV4dCA9ICQoJy5oZXJvLWJhbm5lci1zbGlkZXItdGV4dC1zbGlkZXInLCAkKF90aGlzKSkuZ2V0KDApO1xuICAgICAgICB2YXIgX2lzVmlzaWJsZSA9IHRydWU7XG5cbiAgICAgICAgdmFyIGhlcm9faW1hZ2VfbG9hZCA9IHt9O1xuICAgICAgICAkKF9zbGlkZXJfaW1hZ2VzKS5vbignaW5pdCcsIGZ1bmN0aW9uIChzbGljaykge1xuICAgICAgICAgICAgaGVyb19pbWFnZV9sb2FkLmhlcm9Mb2FkVHlwZSA9ICdpbml0JztcbiAgICAgICAgICAgIGhlcm9faW1hZ2VfbG9hZC5zbGlkZURpcmVjdGlvbiA9ICcnO1xuICAgICAgICAgICAgaGVyb19pbWFnZV9sb2FkLm5leHRDYXJvdXNlbFBvc2l0aW9uID0gMDtcbiAgICAgICAgICAgIHB1c2hEYXRhTGF5ZXIoKTtcblxuICAgICAgICAgICAgaWYgKCQoX3RoaXMpLmRhdGEoJ2F1dG9wbGF5JykpIHtcbiAgICAgICAgICAgICAgICBiaW5kT2JzZXJ2ZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgJChfc2xpZGVyX2ltYWdlcykuc2xpY2soe1xuICAgICAgICAgICAgaW5maW5pdGU6ICQoX3RoaXMpLmRhdGEoJ2F1dG9wbGF5JykgfHwgZmFsc2UsXG4gICAgICAgICAgICBzbGlkZXNUb1Nob3c6IDEsXG4gICAgICAgICAgICBzbGlkZXNUb1Njcm9sbDogMSxcbiAgICAgICAgICAgIGFycm93czogZmFsc2UsXG4gICAgICAgICAgICBkb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIGRyYWdnYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGF1dG9wbGF5OiAkKF90aGlzKS5kYXRhKCdhdXRvcGxheScpIHx8IGZhbHNlLFxuICAgICAgICAgICAgYXV0b3BsYXlTcGVlZDogJChfdGhpcykuZGF0YSgncm90YXRpb25pbnRlcnZhbHMnKSB8fCAzMDAwLFxuICAgICAgICAgICAgc3BlZWQ6ICQoX3RoaXMpLmRhdGEoJ3RyYW5zaXRpb25zcGVlZCcpIHx8IDMwMCxcbiAgICAgICAgICAgIGFzTmF2Rm9yOiAkKF9zbGlkZXJfdGV4dCksXG4gICAgICAgICAgICB1c2VBdXRvcGxheVRvZ2dsZUJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICBwYXVzZU9uSG92ZXI6IGZhbHNlXG4gICAgICAgICAgICAvL3BhdXNlT25Gb2N1czogJChfdGhpcykuZGF0YSgnYXV0b3BsYXknKSB8fCBmYWxzZSxcbiAgICAgICAgICAgIC8vcGF1c2VPbkhvdmVyOiAkKF90aGlzKS5kYXRhKCdhdXRvcGxheScpIHx8IGZhbHNlLFxuICAgICAgICAgICAgLy9wYXVzZU9uRG90c0hvdmVyOiAkKF90aGlzKS5kYXRhKCdhdXRvcGxheScpIHx8IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgICAgJChfc2xpZGVyX3RleHQpLnNsaWNrKHtcbiAgICAgICAgICAgIGluZmluaXRlOiAkKF90aGlzKS5kYXRhKCdhdXRvcGxheScpIHx8IGZhbHNlLFxuICAgICAgICAgICAgc2xpZGVzVG9TaG93OiAxLFxuICAgICAgICAgICAgc2xpZGVzVG9TY3JvbGw6IDEsXG4gICAgICAgICAgICBhcnJvd3M6IHRydWUsXG4gICAgICAgICAgICBkb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIGRyYWdnYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGF1dG9wbGF5OiBmYWxzZSxcbiAgICAgICAgICAgIHNwZWVkOiAkKF90aGlzKS5kYXRhKCd0cmFuc2l0aW9uc3BlZWQnKSB8fCAzMDAsXG4gICAgICAgICAgICBwcmV2QXJyb3c6ICQoX2NvbnRyb2xzX3ByZXYpLFxuICAgICAgICAgICAgbmV4dEFycm93OiAkKF9jb250cm9sc19uZXh0KSxcbiAgICAgICAgICAgIC8vcGF1c2VJY29uOiAkKF9jb250cm9sc19wYXVzZSksXG4gICAgICAgICAgICAvL3BsYXlJY29uOiAkKF9jb250cm9sc19wbGF5KSxcbiAgICAgICAgICAgIGFzTmF2Rm9yOiAkKF9zbGlkZXJfaW1hZ2VzKSxcbiAgICAgICAgICAgIHVzZUF1dG9wbGF5VG9nZ2xlQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgIHBhdXNlT25Ib3ZlcjogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICgkKF90aGlzKS5kYXRhKCdhdXRvcGxheScpKSB7XG4gICAgICAgICAgICAkKF9jb250cm9sc19wYXVzZSkub24oJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICBldmVudFNsaWNrUGF1c2UodHJ1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICQoX2NvbnRyb2xzX3BsYXkpLm9uKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgZXZlbnRTbGlja1BsYXkodHJ1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vJChfdGhpcykub24oJ21vdXNlZW50ZXInLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAvLyAgICBldmVudFNsaWNrUGF1c2UoKTtcbiAgICAgICAgICAgIC8vfSkub24oJ21vdXNlbGVhdmUnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgLy8gICAgaWYgKCEkKF90aGlzKS5pcygnOmZvY3VzLXdpdGhpbicpICYmIF9pc1Zpc2libGUpIHtcbiAgICAgICAgICAgIC8vICAgICAgICBldmVudFNsaWNrUGxheSgpO1xuICAgICAgICAgICAgLy8gICAgfVxuICAgICAgICAgICAgLy99KTtcbiAgICAgICAgICAgIC8vJCgnKicsIF90aGlzKS5vbignZm9jdXNpbicsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIC8vICAgIGV2ZW50U2xpY2tQYXVzZSgpO1xuICAgICAgICAgICAgLy99KS5vbignZm9jdXNvdXQnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgLy8gICAgaWYgKCEkKF90aGlzKS5pcygnOmZvY3VzLXdpdGhpbicpICYmIF9pc1Zpc2libGUpIHtcbiAgICAgICAgICAgIC8vICAgICAgICBldmVudFNsaWNrUGxheSgpO1xuICAgICAgICAgICAgLy8gICAgfVxuICAgICAgICAgICAgLy99KTtcbiAgICAgICAgfVxuXG4gICAgICAgI
728HZhciBfcGVybWFQYXVzZSA9IGZhbHNlO1xuXG4gICAgICAgIGZ1bmN0aW9uIGV2ZW50U2xpY2tQYXVzZShpc1BlcnNpc3RlbnQgPSBmYWxzZSkge1xuICAgICAgICAgICAgX3Blcm1hUGF1c2UgPSAoIV9wZXJtYVBhdXNlKSA/IGlzUGVyc2lzdGVudCA6IF9wZXJtYVBhdXNlO1xuICAgICAgICAgICAgaWYgKCFfcGVybWFQYXVzZSB8fCBpc1BlcnNpc3RlbnQpIHtcbiAgICAgICAgICAgICAgICAkKF9zbGlkZXJfaW1hZ2VzKS5zbGljaygnc2xpY2tQYXVzZScpO1xuICAgICAgICAgICAgICAgIC8vJChfc2xpZGVyX2ltYWdlcykuc2xpY2soXCJzbGlja1NldE9wdGlvblwiLCBcImF1dG9wbGF5XCIsIGZhbHNlLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgaWYgKGlzUGVyc2lzdGVudCkge1xuICAgICAgICAgICAgICAgICAgICAkKF9jb250cm9sc19wYXVzZSkuaGlkZSgpLnRyaWdnZXIoJ2JsdXInKTtcbiAgICAgICAgICAgICAgICAgICAgJChfY29udHJvbHNfcGxheSkuc2hvdygpLnRyaWdnZXIoJ2ZvY3VzJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gZXZlbnRTbGlja1BsYXkoaXNQZXJzaXN0ZW50ID0gZmFsc2UpIHtcbiAgICAgICAgICAgIF9wZXJtYVBhdXNlID0gKGlzUGVyc2lzdGVudCkgPyBmYWxzZSA6IF9wZXJtYVBhdXNlO1xuICAgICAgICAgICAgaWYgKCFfcGVybWFQYXVzZSB8fCBpc1BlcnNpc3RlbnQpIHtcbiAgICAgICAgICAgICAgICAkKF9zbGlkZXJfaW1hZ2VzKS5zbGljaygnc2xpY2tQbGF5Jyk7XG4gICAgICAgICAgICAgICAgLy8kKF9zbGlkZXJfaW1hZ2VzKS5zbGljayhcInNsaWNrU2V0T3B0aW9uXCIsIFwiYXV0b3BsYXlcIiwgZmFsc2UsIHRydWUpO1xuICAgICAgICAgICAgICAgIGlmIChpc1BlcnNpc3RlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgJChfY29udHJvbHNfcGF1c2UpLnNob3coKS50cmlnZ2VyKCdmb2N1cycpO1xuICAgICAgICAgICAgICAgICAgICAkKF9jb250cm9sc19wbGF5KS5oaWRlKCkudHJpZ2dlcignYmx1cicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vR1RNIEV2ZW50XG4gICAgICAgIHZhciBldmVudEN1cnJlbnQgPSAwO1xuICAgICAgICB2Y
728XIgZXZlbnROZXh0ID0gMDtcbiAgICAgICAgdmFyIGhlcm9faW1hZ2VfbG9hZCA9IHt9O1xuICAgICAgICB2YXIgX21heEF1dG9HdG1MaW1pdCA9IDEwO1xuXG4gICAgICAgICQoX2NvbnRyb2xzX3ByZXYpLm9uKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgaWYgKGhlcm9faW1hZ2VfbG9hZC5zbGlkZUNoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICBoZXJvX2ltYWdlX2xvYWQuaGVyb0xvYWRUeXBlID0gZXZlbnQudHlwZTtcbiAgICAgICAgICAgICAgICBoZXJvX2ltYWdlX2xvYWQuc2xpZGVEaXJlY3Rpb24gPSAnbGVmdCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAkKF9jb250cm9sc19uZXh0KS5vbignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGlmIChoZXJvX2ltYWdlX2xvYWQuc2xpZGVDaGFuZ2VkKSB7XG4gICAgICAgICAgICAgICAgaGVyb19pbWFnZV9sb2FkLmhlcm9Mb2FkVHlwZSA9IGV2ZW50LnR5cGU7XG4gICAgICAgICAgICAgICAgaGVyb19pbWFnZV9sb2FkLnNsaWRlRGlyZWN0aW9uID0gJ3JpZ2h0JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgICQoW19zbGlkZXJfaW1hZ2VzLCBfc2xpZGVyX3RleHRdKS5vbignc3dpcGUnLCBmdW5jdGlvbiAoZXZlbnQsIHNsaWNrLCBkaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGlmIChoZXJvX2ltYWdlX2xvYWQuc2xpZGVDaGFuZ2VkKSB7XG4gICAgICAgICAgICAgICAgaGVyb19pbWFnZV9sb2FkLmhlcm9Mb2FkVHlwZSA9IGV2ZW50LnR5cGU7XG4gICAgICAgICAgICAgICAgaGVyb19pbWFnZV9sb2FkLnNsaWRlRGlyZWN0aW9uID0gKGRpcmVjdGlvbiAmJiBkaXJlY3Rpb24gPT0gXCJsZWZ0XCIpID8gXCJyaWdodFwiIDogXCJsZWZ0XCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAkKF9zbGlkZXJfdGV4dCkub24oJ2JlZm9yZUNoYW5nZScsIGZ1bmN0aW9uIChldmVudCwgc2xpY2ssIGN1cnJlbnRTbGlkZSwgbmV4dFNsaWRlKSB7XG4gICAgICAgICAgICBldmVudEN1cnJlbnQgPSBjdXJyZW50U2xpZGU7XG4gICAgICAgICAgICBldmVudE5leHQgPSBuZXh0U2xpZGU7XG4gICAgICAgICAgICBoZXJvX2ltYWdlX2xvYWQuaGVyb0xvYWRUeXBlID0gJ2F1dG8nO1xuICAgICAgICAgICAgaGVyb19pbWFnZV9sb2FkLnNsaWRlRGlyZWN0aW9uID0gJ3JpZ2h0JztcbiAgICAgICAgICAgIGlmIChzbGlkZUNoYW5nZWQoKSkge1xuICAgICAgICAgICAgICAgIGhlcm9faW1hZ2VfbG9hZC5jdXJyZW50Q2Fyb3VzZWxQb3NpdGlvbiA9IGN1cnJlbnRTbGlkZTtcbiAgICAgICAgICAgICAgICBoZXJvX2ltYWdlX2xvYWQubmV4dENhcm91c2VsUG9zaXRpb24gPSBuZXh0U2xpZGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAkKF9zbGlkZXJfdGV4dCkub24oJ2FmdGVyQ2hhbmdlJywgZnVuY3Rpb24gKGV2ZW50LCBzbGljaywgY3VycmVudFNsaWRlKSB7XG4gICAgICAgICAgICBpZiAoaGVyb19pbWFnZV9sb2FkLnNsaWRlQ2hhbmdlZCkge1xuICAgICAgICAgICAgICAgIHB1c2hEYXRhTGF5ZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGZ1bmN0aW9uIHNsaWRlQ2hhbmdlZCgpIHtcbiAgICAgICAgICAgIGlmIChldmVudEN1cnJlbnQgIT0gZXZlbnROZXh0ICYmIGV2ZW50Q3VycmVudCAhPSBoZXJvX2ltYWdlX2xvYWQuY3VycmVudENhcm91c2VsUG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICBoZXJvX2ltYWdlX2xvYWQuc2xpZGVDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGhlcm9faW1hZ2VfbG9hZC5zbGlkZUNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBmdW5jdGlvbiBjcmVhdGVEYXRhbGF5ZXIoKSB7XG4gICAgICAgICAgICB2Y
728XIgY3VycmVudFNsaWRlID0gZXZhbCgnaGVybycgKyAkKF90aGlzKS5kYXRhKCdibG9ja2d1aWQnKSlbaGVyb19pbWFnZV9sb2FkLmN1cnJlbnRDYXJvdXNlbFBvc2l0aW9uXTtcbiAgICAgICAgICAgIHZhciBuZXh0U2xpZGUgPSBldmFsKCdoZXJvJyArICQoX3RoaXMpLmRhdGEoJ2Jsb2NrZ3VpZCcpKVtoZXJvX2ltYWdlX2xvYWQubmV4dENhcm91c2VsUG9zaXRpb25dO1xuICAgICAgICAgICAgdmFyIGV2ZW50REwgPSB7XG4gICAgICAgICAgICAgICAgXCJldmVudFwiOiBcImhlcm9faW1hZ2VfbG9hZFwiLFxuICAgICAgICAgICAgICAgIFwiaGVyb0xvYWRUeXBlXCI6IGhlcm9faW1hZ2VfbG9hZC5oZXJvTG9hZFR5cGUsXG4gICAgICAgICAgICAgICAgXCJzbGlkZURpcmVjdGlvblwiOiBoZXJvX2ltYWdlX2xvYWQuc2xpZGVEaXJlY3Rpb24sXG4gICAgICAgICAgICAgICAgXCJjdXJyZW50Q2Fyb3VzZWxQb3NpdGlvblwiOiAoY3VycmVudFNsaWRlKSA/IGN1cnJlbnRTbGlkZS5zbGlkZUluZGV4IDogXCJcIixcbiAgICAgICAgICAgICAgICBcImN1cnJlbnRJbWFnZU5hbWVcIjogKGN1cnJlbnRTbGlkZSkgPyBjdXJyZW50U2xpZGUuc2xpZGVJbWFnZSA6IFwiXCIsXG4gICAgICAgICAgICAgICAgXCJjdXJyZW50U2xpZGVUaXRsZVwiOiAoY3VycmVudFNsaWRlKSA/IGN1cnJlbnRTbGlkZS5zbGlkZVRpdGxlIDogXCJcIixcbiAgICAgICAgICAgICAgICBcImN1cnJlbnRTbGlkZUhyZWZcIjogKGN1cnJlbnRTbGlkZSkgPyBjdXJyZW50U2xpZGUuc2xpZGVIcmVmIDogXCJcIixcbiAgICAgICAgICAgICAgICBcIm5leHRDYXJvdXNlbFBvc2l0aW9uXCI6IChuZXh0U2xpZGUpID8gbmV4dFNsaWRlLnNsaWRlSW5kZXggOiBcIlwiLFxuICAgICAgICAgICAgICAgIFwibmV4dEltYWdlTmFtZVwiOiAobmV4dFNsaWRlKSA/IG5leHRTbGlkZS5zbGlkZUltYWdlIDogXCJcIixcbiAgICAgICAgICAgICAgICBcIm5leHRTbGlkZVRpdGxlXCI6IChuZXh0U2xpZGUpID8gbmV4dFNsaWRlLnNsaWRlVGl0bGUgOiBcIlwiLFxuICAgICAgICAgICAgICAgIFwibmV4dFNsaWRlSHJlZlwiOiAobmV4dFNsaWRlKSA/IG5leHRTbGlkZS5zbGlkZUhyZWYgOiBcIlwiXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIGV2ZW50REw7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gcHVzaERhdGFMYXllcigpIHtcbiAgICAgICAgICAgIHZhciBndG1kYXRhID0gY3JlYXRlRGF0YWxheWVyKCk7XG4gICAgICAgICAgICBpZiAoJChfdGhpcykuZGF0YSgnYXV0b3BsYXknKSAmJiBndG1kYXRhLmhlcm9Mb2FkVHlwZSA9PSBcImF1dG9cIikge1xuICAgICAgICAgICAgICAgIGlmIChfbWF4QXV0b0d0bUxpbWl0KSB7XG4gICAgICAgICAgICAgICAgICAgIF9tYXhBdXRvR3RtTGltaXQtLTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXRhTGF5ZXIucHVzaChndG1kYXRhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGJpbmRPYnNlcnZlcigpIHtcbiAgICAgICAgICAgIHZhciBoZXJvT2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAgICAgICAgICAgZW50cmllcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGVudHJpZXMuZm9yRWFjaChlbnRyeSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW50cnlbJ2lzSW50ZXJzZWN0aW5nJ10gPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW50cnlbJ2ludGVyc2VjdGlvblJhdGlvJ10gPj0gMCAmJiBlbnRyeVsnaW50ZXJzZWN0aW9uUmF0aW8nXSA8PSAwLjQ1KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50U2xpY2tQYXVzZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaXNWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudFNsaWNrUGxheSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaXNWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudFNsaWNrUGF1c2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaXNWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfSwgeyB0aHJlc2hvbGQ6IFswLCAwLjQ1LCAxXSB9KTtcblxuICAgICAgICAgICAgaGVyb09ic2VydmVyLm9ic2VydmUoJChfdGhpcykuZ2V0KDApKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgJCgnLmV2ZW50bGlzdC1ibG9jay1yYy1saXN0JykuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9ICQodGhpcyk7XG4gICAgICAgIHZhciBfc2xpZGVyID0gJCgnLmV2ZW50bGlzdC1ibG9jay1yYy1zbGlkZXInLCAkKF90aGlzKSkuZ2V0KDApO1xuICAgICAgICB2Y
728XIgX2NvbnRyb2xzID0gJCgnLnNsaWNrLWNvbnRyb2xzJywgJChfdGhpcykpLmdldCgwKTtcbiAgICAgICAgdmFyIF9jb250cm9sc19wcmV2ID0gJCgnLnNsaWNrLWJhY2t3YXJkJywgX2NvbnRyb2xzKS5nZXQoMCk7XG4gICAgICAgIHZhciBfY29udHJvbHNfbmV4dCA9ICQoJy5zbGljay1mb3J3YXJkJywgX2NvbnRyb2xzKS5nZXQoMCk7XG4gICAgICAgIHZhciBfY29udHJvbHNfZG90cyA9ICQoJy5zbGljay1jb250cm9scy1kb3RzJywgJChfdGhpcykpLmdldCgwKTtcbiAgICAgICAgJChfc2xpZGVyKS5zbGljayh7XG4gICAgICAgICAgICBpbmZpbml0ZTogZmFsc2UsXG4gICAgICAgICAgICBzbGlkZXNUb1Nob3c6IDEsXG4gICAgICAgICAgICBzbGlkZXNUb1Njcm9sbDogMSxcbiAgICAgICAgICAgIGFycm93czogdHJ1ZSxcbiAgICAgICAgICAgIGRvdHM6IHRydWUsXG4gICAgICAgICAgICBhcHBlbmREb3RzOiAkKF9jb250cm9sc19kb3RzKSxcbiAgICAgICAgICAgIGRyYWdnYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGF1dG9wbGF5OiBmYWxzZSxcbiAgICAgICAgICAgIHByZXZBcnJvdzogJChfY29udHJvbHNfcHJldiksXG4gICAgICAgICAgICBuZXh0QXJyb3c6ICQoX2NvbnRyb2xzX25leHQpLFxuICAgICAgICAgICAgYWNjZXNzaWJpbGl0eTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgICQoJy5saW5raXRlbWNhcm91c2VsLWJsb2NrLWxpc3QnKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gJCh0aGlzKTtcbiAgICAgICAgdmFyIF9zbGlkZXIgPSAkKCcubGlua2l0ZW1jYXJvdXNlbC1ibG9jay1zbGlkZXInLCAkKF90aGlzKSkuZ2V0KDApO1xuICAgICAgICB2Y
728XIgX2NvbnRyb2xzID0gJCgnLnNsaWNrLWNvbnRyb2xzJywgJChfdGhpcykpLmdldCgwKTtcbiAgICAgICAgdmFyIF9jb250cm9sc19wcmV2ID0gJCgnLnNsaWNrLWJhY2t3YXJkJywgX2NvbnRyb2xzKS5nZXQoMCk7XG4gICAgICAgIHZhciBfY29udHJvbHNfbmV4dCA9ICQoJy5zbGljay1mb3J3YXJkJywgX2NvbnRyb2xzKS5nZXQoMCk7XG4gICAgICAgIHZhciBfY29udHJvbHNfZG90cyA9ICQoJy5zbGljay1jb250cm9scy1kb3RzJywgJChfdGhpcykpLmdldCgwKTtcbiAgICAgICAgJChfc2xpZGVyKS5zbGljayh7XG4gICAgICAgICAgICBpbmZpbml0ZTogZmFsc2UsXG4gICAgICAgICAgICBzbGlkZXNUb1Nob3c6IDQsXG4gICAgICAgICAgICBzbGlkZXNUb1Njcm9sbDogNCxcbiAgICAgICAgICAgIGFycm93czogdHJ1ZSxcbiAgICAgICAgICAgIGRvdHM6IHRydWUsXG4gICAgICAgICAgICBhcHBlbmREb3RzOiAkKF9jb250cm9sc19kb3RzKSxcbiAgICAgICAgICAgIGRyYWdnYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGF1dG9wbGF5OiBmYWxzZSxcbiAgICAgICAgICAgIHByZXZBcnJvdzogJChfY29udHJvbHNfcHJldiksXG4gICAgICAgICAgICBuZXh0QXJyb3c6ICQoX2NvbnRyb2xzX25leHQpLFxuICAgICAgICAgICAgcmVzcG9uc2l2ZTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogMTIwMCxcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogMyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2Nyb2xsOiAzXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogOTkyLFxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TaG93OiAyLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TY3JvbGw6IDJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50OiA1NzYsXG4gICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNUb1Nob3c6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNUb1Njcm9sbDogMVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgICQoJy5hcnRpY2xlcGFnZS1zbGlkZXInKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gJCh0aGlzKTtcbiAgICAgICAgdmFyIF9jb250cm9scyA9ICQoJy5zbGljay1jb250cm9scycsICQoX3RoaXMpKS5nZXQoMCk7XG4gICAgICAgIHZhciBfY29udHJvbHNfcHJldiA9ICQoJy5zbGljay1iYWNrd2FyZCcsIF9jb250cm9scykuZ2V0KDApO1xuICAgICAgICB2Y
728XIgX2NvbnRyb2xzX25leHQgPSAkKCcuc2xpY2stZm9yd2FyZCcsIF9jb250cm9scykuZ2V0KDApO1xuICAgICAgICB2YXIgX3NsaWRlcl9pbWFnZXMgPSAkKCcuYXJ0aWNsZXBhZ2UtaW1hZ2VzLXNsaWRlcicsICQoX3RoaXMpKS5nZXQoMCk7XG4gICAgICAgIHZhciBfc2xpZGVyX3RodW1icyA9ICQoJy5hcnRpY2xlcGFnZS10aHVtYi1zbGlkZXInLCAkKF90aGlzKSkuZ2V0KDApO1xuICAgICAgICB2YXIgX3NsaWRlcl9jYXB0aW9ucyA9ICQoJy5hcnRpY2xlcGFnZS1jYXB0aW9uLXNsaWRlcicsICQoX3RoaXMpKS5nZXQoMCk7XG4gICAgICAgIHZhciBfdGh1bWJjb3VudCA9ICQoX3RoaXMpLmRhdGEoJ3RodW1iY291bnQnKTtcbiAgICAgICAgJChfc2xpZGVyX2ltYWdlcykuc2xpY2soe1xuICAgICAgICAgICAgaW5maW5pdGU6IGZhbHNlLFxuICAgICAgICAgICAgc2xpZGVzVG9TaG93OiAxLFxuICAgICAgICAgICAgc2xpZGVzVG9TY3JvbGw6IDEsXG4gICAgICAgICAgICBhcnJvd3M6IGZhbHNlLFxuICAgICAgICAgICAgZG90czogZmFsc2UsXG4gICAgICAgICAgICBkcmFnZ2FibGU6IGZhbHNlLFxuICAgICAgICAgICAgYXV0b3BsYXk6IGZhbHNlLy8sXG4gICAgICAgICAgICAvL2FzTmF2Rm9yOiAkKF9zbGlkZXJfdGh1bWJzKVxuICAgICAgICB9KTtcbiAgICAgICAgJChfc2xpZGVyX3RodW1icykuc2xpY2soe1xuICAgICAgICAgICAgaW5maW5pdGU6IGZhbHNlLFxuICAgICAgICAgICAgc2xpZGVzVG9TaG93OiBfdGh1bWJjb3VudCxcbiAgICAgICAgICAgIHNsaWRlc1RvU2Nyb2xsOiBfdGh1bWJjb3VudCxcbiAgICAgICAgICAgIGFycm93czogdHJ1ZSxcbiAgICAgICAgICAgIGRvdHM6IGZhbHNlLFxuICAgICAgICAgICAgZHJhZ2dhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGF1dG9wbGF5OiBmYWxzZSxcbiAgICAgICAgICAgIHByZXZBcnJvdzogJChfY29udHJvbHNfcHJldiksXG4gICAgICAgICAgICBuZXh0QXJyb3c6ICQoX2NvbnRyb2xzX25leHQpLy8sXG4gICAgICAgICAgICAvL2FzTmF2Rm9yOiAkKF9zbGlkZXJfaW1hZ2VzKVxuICAgICAgICB9KTtcbiAgICAgICAgJChfc2xpZGVyX2NhcHRpb25zKS5zbGljayh7XG4gICAgICAgICAgICBpbmZpbml0ZTogZmFsc2UsXG4gICAgICAgICAgICBzbGlkZXNUb1Nob3c6IDEsXG4gICAgICAgICAgICBzbGlkZXNUb1Njcm9sbDogMSxcbiAgICAgICAgICAgIGFycm93czogZmFsc2UsXG4gICAgICAgICAgICBkb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIGRyYWdnYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBhdXRvcGxheTogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICAgICQoJy5zbGljay1zbGlkZScsIF9zbGlkZXJfdGh1bWJzKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2Y
728XIgX2luZGV4ID0gJCh0aGlzKS5kYXRhKCdzbGljay1pbmRleCcpO1xuICAgICAgICAgICAgJChfc2xpZGVyX2ltYWdlcykuc2xpY2soJ3NsaWNrR29UbycsIF9pbmRleCwgdHJ1ZSk7XG4gICAgICAgICAgICAkKF9zbGlkZXJfY2FwdGlvbnMpLnNsaWNrKCdzbGlja0dvVG8nLCBfaW5kZXgsIHRydWUpO1xuICAgICAgICAgICAgLy8kKF9zbGlkZXJfdGh1bWJzKS5zbGljaygnc2xpY2tHb1RvJywgX2luZGV4KTtcbiAgICAgICAgfSk7XG5cbiAgICB9KTtcblxuICAgICQoJy5uYXYtc2Nyb2xsYWJsZScpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3BhcmVudCA9ICgkKHRoaXMpLmRhdGEoJ3RhcmdldC1wYXJlbnQnKSkgPyAkKCQodGhpcykuZGF0YSgndGFyZ2V0LXBhcmVudCcpKSA6ICQodGhpcyk7XG4gICAgICAgIHZhciBfbmF2d3JhcCA9ICQoJy5uYXYtc2Nyb2xsYWJsZS13cmFwJywgdGhpcykuZ2V0KDApO1xuICAgICAgICBzY3JvbGxhYmxlVGFic0NhbGNPdmVyZmxvdyhfbmF2d3JhcCwgX3BhcmVudCk7XG4gICAgICAgICQod2luZG93KS5vbigncmVzaXplJywgZnVuY3Rpb24gKCkgeyBzY3JvbGxhYmxlVGFic0NhbGNPdmVyZmxvdyhfbmF2d3JhcCwgX3BhcmVudCk7IH0pO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gc2Nyb2xsYWJsZVRhYnNDYWxjT3ZlcmZsb3coX25hdndyYXAsIF9wYXJlbnQpIHtcbiAgICAgICAgaWYgKCQoX25hdndyYXApWzBdLnNjcm9sbFdpZHRoID4gTWF0aC5jZWlsKCQoX25hdndyYXApLndpZHRoKCkpKSB7XG4gICAgICAgICAgICAkKF9wYXJlbnQpLmFkZENsYXNzKCdzY3JvbGxhYmxlLW92ZXJmbG93Jyk7XG4gICAgICAgICAgICAkKF9uYXZ3cmFwKS5vbignc2Nyb2xsLnRhYi1zY3JvbGwnLCBmdW5jdGlvbiAoKSB7IHNjcm9sbGFibGVUYWJzU2Nyb2xsQ29udHJvbHMoX3BhcmVudCwgX25hdndyYXAsICQoX25hdndyYXApLnNjcm9sbExlZnQoKSk7IH0pO1xuICAgICAgICAgICAgc2Nyb2xsYWJsZVRhYnNTY3JvbGxDb250cm9scyhfcGFyZW50LCBfbmF2d3JhcCwgJChfbmF2d3JhcCkuc2Nyb2xsTGVmdCgpKTtcbiAgICAgICAgICAgICQoJy5uYXYtc2Nyb2xsLWxlZnQnLCBfcGFyZW50KS5vbignY2xpY2suc2Nyb2xsLWxlZnQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9zY3JvbGxUb1ZhbCA9ICQoX25hdndyYXApLnNjcm9sbExlZnQoKSAtICQoX25hdndyYXApLndpZHRoKCk7XG4gICAgICAgICAgICAgICAgc2Nyb2xsYWJsZVRhYnNTY3JvbGxDb250cm9scyhfcGFyZW50LCBfbmF2d3JhcCwgX3Njcm9sbFRvVmFsKTtcbiAgICAgICAgICAgICAgICAkKF9uYXZ3cmFwKS5zdG9wKHRydWUsIHRydWUpO1xuICAgICAgICAgICAgICAgICQoX25hdndyYXApLmFuaW1hdGUoeyAnc2Nyb2xsTGVmdCc6IF9zY3JvbGxUb1ZhbCArICdweCcgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICQoJy5uYXYtc2Nyb2xsLXJpZ2h0JywgX3BhcmVudCkub24oJ2NsaWNrLnNjcm9sbC1yaWdodCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2Y
728XIgX3Njcm9sbFRvVmFsID0gJChfbmF2d3JhcCkuc2Nyb2xsTGVmdCgpICsgJChfbmF2d3JhcCkud2lkdGgoKTtcbiAgICAgICAgICAgICAgICBzY3JvbGxhYmxlVGFic1Njcm9sbENvbnRyb2xzKF9wYXJlbnQsIF9uYXZ3cmFwLCBfc2Nyb2xsVG9WYWwpO1xuICAgICAgICAgICAgICAgICQoX25hdndyYXApLnN0b3AodHJ1ZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgJChfbmF2d3JhcCkuYW5pbWF0ZSh7ICdzY3JvbGxMZWZ0JzogX3Njcm9sbFRvVmFsICsgJ3B4JyB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgJChfcGFyZW50KS5yZW1vdmVDbGFzcygnc2Nyb2xsYWJsZS1vdmVyZmxvdycpO1xuICAgICAgICAgICAgJChfbmF2d3JhcCkub2ZmKCdzY3JvbGwudGFiLXNjcm9sbCcpO1xuICAgICAgICAgICAgJCgnLm5hdi1zY3JvbGwtbGVmdCcsIF9wYXJlbnQpLm9mZignY2xpY2suc2Nyb2xsLWxlZnQnKTtcbiAgICAgICAgICAgICQoJy5uYXYtc2Nyb2xsLXJpZ2h0JywgX3BhcmVudCkub2ZmKCdjbGljay5zY3JvbGwtcmlnaHQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNjcm9sbGFibGVUYWJzU2Nyb2xsQ29udHJvbHMoX3BhcmVudCwgX25hdndyYXAsIF9zY3JvbGxUb1ZhbCkge1xuICAgICAgICBpZiAoX3Njcm9sbFRvVmFsIDw9IDApIHtcbiAgICAgICAgICAgICQoJy5uYXYtc2Nyb2xsLWxlZnQnLCBfcGFyZW50KS5oaWRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAkKCcubmF2LXNjcm9sbC1sZWZ0JywgX3BhcmVudCkuc2hvdygpO1xuICAgICAgICB9XG4gICAgICAgIGlmICgkKF9uYXZ3cmFwKVswXS5zY3JvbGxXaWR0aCA+IF9zY3JvbGxUb1ZhbCArICQoX25hdndyYXApLndpZHRoKCkpIHtcbiAgICAgICAgICAgICQoJy5uYXYtc2Nyb2xsLXJpZ2h0JywgX3BhcmVudCkuc2hvdygpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgJCgnLm5hdi1zY3JvbGwtcmlnaHQnLCBfcGFyZW50KS5oaWRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAkKCcuc3VibmF2LnN1Ym5hdi1kZWZhdWx0IHNlbGVjdCcpLm9uKCdjaGFuZ2UnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICQoJ29wdGlvbjpzZWxlY3RlZCcsIHRoaXMpLnZhbCgpO1xuICAgIH0pO1xuXG4gICAgJCgnLmJhY2stdG8tdG9wJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICB2Y
728XIgX3RoaXMgPSAkKHRoaXMpO1xuICAgICAgICAkKFwiaHRtbCwgYm9keVwiKS5zdG9wKHRydWUsIHRydWUpO1xuICAgICAgICAkKFwiaHRtbCwgYm9keVwiKS5hbmltYXRlKHsgc2Nyb2xsVG9wOiAwIH0sIDM1MCwgJ2xpbmVhcicsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQoX3RoaXMpLmJsdXIoKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgJCgnLmJhY2stdG8tdG9wJykub24oJ2ZvY3VzJywgZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSAkKHRoaXMpO1xuICAgICAgICAkKHRoaXMpLmJpbmQoJ2tleXVwLkJhY2tUb1RvcCcsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgaWYgKGV2ZW50LndoaWNoID09IDEzKSB7XG4gICAgICAgICAgICAgICAgJChfdGhpcykudHJpZ2dlcignY2xpY2snKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgJCgnLmJhY2stdG8tdG9wJykub24oJ2JsdXInLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICQodGhpcykudW5iaW5kKCdrZXl1cC5CYWNrVG9Ub3AnKTtcbiAgICB9KTtcbiAgICAkKCcuYmFjay10by10b3AnKS5vbignbW91c2VsZWF2ZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJCh0aGlzKS5ibHVyKCk7XG4gICAgfSk7XG5cbiAgICAkKCcuc2Nyb2xsLXRvLWFuY2hvcicpLm9uKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdmFyIF90aGlzID0gJCh0aGlzKTtcbiAgICAgICAgdmFyIHZvZmZzZXQgPSAkKCQoX3RoaXMpLmF0dHIoJ2hyZWYnKSkub2Zmc2V0KCkudG9wIC0gNzU7XG4gICAgICAgICQoXCJodG1sLCBib2R5XCIpLnN0b3AodHJ1ZSwgdHJ1ZSk7XG4gICAgICAgICQoXCJodG1sLCBib2R5XCIpLmFuaW1hdGUoeyBzY3JvbGxUb3A6IHZvZmZzZXQgfSwgMjUwLCAnbGluZWFyJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgJChfdGhpcykuYmx1cigpO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgICQoJy5hY2NvcmRpb25ibG9jayAuYWNjb3JkaW9uLWNvbGxhcHNlW2RhdGEtY29sbGFwc2VvdGhlcnM9XCJ0cnVlXCJdJykuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICQodGhpcykub24oJ3Nob3cuYnMuY29sbGFwc2UnLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICQoJy5hY2NvcmRpb24tY29sbGFwc2UnKS5jb2xsYXBzZSgnaGlkZScpO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgICQoJy5hcnRpY2xlcGFnZS1pbWFnZS1tb2RhbCA+IC5tb2RhbCcpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICB2Y
728XIgX3RoaXMgPSAkKHRoaXMpO1xuICAgICAgICAkKF90aGlzKS5vbignc2hvdy5icy5tb2RhbCcsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgdmFyIGJ1dHRvbiA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQ7XG4gICAgICAgICAgICB2YXIgaW1nU3JjID0gYnV0dG9uLmdldEF0dHJpYnV0ZSgnZGF0YS1icy1pbWctc3JjJyk7XG4gICAgICAgICAgICB2YXIgbW9kYWxCb2R5ID0gJCgnLm1vZGFsLWJvZHknLCBfdGhpcyk7XG4gICAgICAgICAgICAkKG1vZGFsQm9keSkuaHRtbChgPGltZyBzcmM9XCIke2ltZ1NyY31cIiAvPmApO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn0pOyJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7QUFBQTtBQUFBO0FBQUMsUUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFZO0FBQzNCLFlBQUksVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUM7QUFDL0IsWUFBSSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQztBQUM5QyxZQUFJLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxJQUFJLENBQUM7QUFDOUMsWUFBSSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLENBQUM7QUFDL0MsWUFBSSwwQkFBMEIsRUFBRSwrQkFBK0IsRUFBRSxJQUFJLENBQUM7QUFDdEUsWUFBSSxnQkFBaUIsVUFBVyxFQUFFLE9BQU8sRUFBRSxPQUFPLElBQUk7QUFDdEQsWUFBSSxpQkFBa0IsaUJBQWtCLEVBQUUsY0FBYyxFQUFFLE9BQU8sSUFBSTtBQUNyRSxZQUFJLHVCQUF3QixnQkFBaUIsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE9BQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxLQUFLLE9BQVEsaUJBQWlCLEtBQUs7QUFDbEksWUFBSSxXQUFXLGVBQWU7QUFDMUIsWUFBRSxNQUFNLEVBQUUsR0FBRyxVQUFVLFdBQVk7QUFDL0IsaUNBQXFCO0FBQUEsVUFDek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FLHFCQUFxQixFQUFFLFNBQVMsTUFBTTtBQUFBLFVBQzVDLENBQUM7QUFBQSxRQUNMLENBQUM7QUFFRCxVQUFFLG1DQUFtQyxFQUFFLEtBQUssV0FBWTtBQUNwRCxjQUFJQSxTQUFRLEVBQUUsSUFBSTtBQUNsQixZQUFFQSxNQUFLLEVBQUUsR0FBRyxpQkFBaUIsU0FBVSxPQUFPO0FBQzFDLGdCQUFJLFNBQVMsTUFBTTtBQUNuQixnQkFBSSxTQUFTLE9BQU8sYUFBYSxpQkFBaUI7QUFDbEQsZ0JBQUksWUFBWSxFQUFFLGVBQWVBLE1BQUs7QUFDdEMsY0FBRSxTQUFTLEVBQUUsS0FBSyxhQUFhLE1BQU0sTUFBTTtBQUFBLFVBQy9DLENBQUM7QUFBQSxRQUNMLENBQUM7QUFBQSxNQUNMLENBQUM7QUFBQTtBQUFBOyIsCiAgIm5hbWVzIjogWyJfdGhpcyIsICJvYnNlcnZlciIsICJjdXJyZW50U2xpZGUiLCAibmV4dFNsaWRlIiwgIl9jb250cm9scyIsICJfY29udHJvbHNfcHJldiIsICJfY29udHJvbHNfbmV4dCIsICJfc2xpZGVyX2ltYWdlcyJdCn0K
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.