vendor: 87 bytes, lines 1-4
1/******/ (() => { // webpackBootstrap 2/******/ var __webpack_modules__ = ({ 3 4/***/ "./
4assets/js/app.js": 5/*!**************************!*\ 6 !*** ./assets/js/app.js ***! 7 \**************************/ 8/***/ (() => { 9 10// Put your JS here 11document.documentElement.style.setProperty('--global-scrollbar-width', window.innerWidth - document.documentElement.clientWidth + "px"); 12/* ======================================================================== 13 * DOM-based Routing 14 * Based on http://goo.gl/EUTi53 by Paul Irish 15 * 16 * Only fires on body classes that match. If a body class contains a dash, 17 * replace the dash with an underscore when adding it to the object below. 18 * 19 * .noConflict() 20 * The routing is enclosed within an anonymous function so that you can 21 * always reference jQuery with $, even when in .noConflict() mode. 22 * ======================================================================== */ 23 24(function ($) { 25 // Use this variable to set up the common and page specific functions. If you 26 // rename this variable, you will also need to rename the namespace below. 27 var mirai = { 28 // All pages 29 common: { 30 init: function init() { 31 /* 32 * 33 * Core Functionality 34 * 35 */ 36 // Small header 37 $(window).scroll(function () { 38 var headerUpperHeight = $('.header__main-upper').outerHeight(); 39 var scroll = $(window).scrollTop(); 40 41 if (scroll >= 30) { 42 $('.header').addClass('header--small'); 43 $('.header').css({ 44 "transform": "translateY(-" + headerUpperHeight + "px)" 45 }); 46 } else { 47 $('.header').removeClass('header--small'); 48 $('.header').css({ 49 "transform": "translateY(0px)" 50 }); 51 } 52 53 ; 54 }); // Smooth scroll to links 55 56 $('a[href*="#"]:not([href="#"])').click(function () { 57 var offset = -250; // <-- change the value here 58 59 if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) { 60 var target = $(this.hash); 61 target = target.length ? target : $('[name=' + this.hash.slice(1) + ']'); 62 63 if (target.length) { 64 $('html, body').animate({ 65 scrollTop: target.offset().top + offset 66 }, 1000); 67 return false; 68 } 69 70 ; 71 } 72 73 ; 74 }); // Mobile Trigger to open Mobile Menu 75 76 $('.mobile-trigger').click(function () { 77 $(this).find('span').toggleClass('mobile-menu-active'); 78 $('body, .nav-mobile').toggleClass('mobile-menu-active'); 79 }); // Hide Sub Menu when clicking outside 80 81 $(document).click(function (e) { 82 if (document.documentElement.clientWidth > 900) { 83 e.stopPropagation(); 84 var container = $('.nav-primary'); //check if the clicked area is dropDown or not 85 86 if (container.has(e.target).length === 0) { 87 $('.nav-primary li, .sub-menu').removeClass('menu-active'); 88 } 89 } 90 91 $('.dropdown').removeClass('open'); 92 }); // Mobile Menu 93 94 $('.submenu-reveal').click(function () { 95 // on .submenu-reveal click 96 // find parent .menu-section and apply transition out left to all li > a, button 97 // find closest sibling .menu-section and make left 0 98 // in closest sibling .menu-section apply transition in right to all li > a, button 99 var closestMenuSection = $(this).closest('.menu-section'); 100 $(closestMenuSection).addClass('menu-section-under'); 101 var closestMenuSectionButtons = $(this).closest('.menu-section-under').find('> button, > ul > li > a, > ul > li > button'); 102 $(closestMenuSectionButtons).removeClass('transition-out-right transition-in-right transition-in-left').addClass('transition-out-left'); 103 var nextMenuSection = $(this).next('.menu-section'); 104 nextMenuSection.addClass('active'); 105 var nextMenuSectionButtons = $(nextMenuSection).find('> button, > ul > li > a, > ul > li > button'); 106 $(nextMenuSectionButtons).removeClass('transition-out-right').addClass('transition-in-right'); 107 }); 108 $('.submenu-back').click(function () { 109 // on .submenu-back click 110 // find closest sibling ul and apply transition out right to all li > a, button 111 // find .menu-section 2 up and apply transition in left to all li > a, button 112 var closestUl = $(this).next('ul'); 113 var closestUlButtons = $(closestUl).find('> li > a, > li > button'); 114 $(this).removeClass('transition-in-right transition-in-left').addClass('transition-out-right'); 115 $(closestUlButtons).removeClass('transition-in-right transition-in-left').addClass('transition-out-right'); 116 var closestMenuSection = $(this).closest('.menu-section'); 117 var closestMenuSectionTwo = $(this).closest('.menu-section-under'); 118 var closestMenuSectionTwoButtons = $(closestMenuSectionTwo).find('> button, > ul > li > a, > ul > li > button'); 119 $(closestMenuSectionTwoButtons).removeClass('transition-out-left').addClass('transition-in-left'); // wait 400ms 120 // find closest parent .menu-section and make left 150% 121 122 setTimeout(function () { 123 $(closestMenuSection).removeClass('active'); 124 $(closestMenuSectionTwo).removeClass('menu-section-under'); 125 }, 400); 126 }); // Navigation 127 128 $('.item--has-dropdown > button').click(function () { 129 $(this).parent().attr('aria-expanded', function (i, val) { 130 return val == "false" ? true : false;
131 }); 132 $(this).parent().find('.dropdown-menu').toggleClass('active'); 133 }); 134 $('.nav-primary .level-0 .item--has-dropdown').hover(function () { 135 $(this).attr("aria-expanded", "true"); 136 $(this).find('.dropdown-menu').addClass('active'); 137 }, function () { 138 $(this).attr("aria-expanded", "false"); 139 $(this).find('.dropdown-menu').removeClass('active'); 140 }); 141 $('.search-submit').blur(function () { 142 $('.dropdown-menu').removeClass('active'); 143 }); // Container Float (Floating Container) 144 145 function containerFloat() { 146 var containerSize = 1440; 147 var windowWidth = $(window).width(); 148 var scrollbarWidth = window.innerWidth - document.documentElement.clientWidth; 149 windowWidth = windowWidth + scrollbarWidth; 150 var containerFloat = $('.container--float'); 151 $(containerFloat).each(function () { 152 var fivePercent = windowWidth / 10 / 2; 153 var remainingWidth = windowWidth - containerSize; 154 155 var _float = remainingWidth / 2; 156 157 if (windowWidth >= 1200) { 158 if (fivePercent > _float) { 159 if ($(this).hasClass('container--float-left')) { 160 $(this).css({ 161 "width": windowWidth - fivePercent + "px", 162 "max-width": "100%", 163 "margin": "0 0 0 " + fivePercent + "px" 164 }); 165 } 166 167 ; 168 169 if ($(this).hasClass('container--float-right')) { 170 $(this).css({ 171 "width": windowWidth - fivePercent + "px", 172 "max-width": "100%", 173 "margin": "0 " + fivePercent + "px 0 0" 174 }); 175 } 176 177 ; 178 } else { 179 if ($(this).hasClass('container--float-left')) { 180 $(this).css({ 181 "width": windowWidth - _float + "px", 182 "max-width": "100%", 183 "margin": "0 0 0 " + _float + "px" 184 }); 185 } 186 187 ; 188 189 if ($(this).hasClass('container--float-right')) { 190 $(this).css({ 191 "width": windowWidth - _float + "px", 192 "max-width": "100%", 193 "margin": "0 " + _float + "px 0 0" 194 }); 195 } 196 197 ; 198 } 199 200 ; 201 } else { 202 if ($(this).hasClass('container--float-mobile-full')) { 203 $(this).css({ 204 "width": "100%", 205 "max-width": "100%", 206 "margin": "0 auto" 207 }); 208 } else { 209 $(this).css({ 210 "width": "90%", 211 "max-width": "1440px", 212 "margin": "0 auto" 213 }); 214 } 215 216 ; // if ($(this).hasClass('container--float-left')) { 217 // $('.container--float-left').css({ 218 // "width": "90%", 219 // "max-width": "1440px", 220 // "margin": "0 auto", 221 // }); 222 // }; 223 // if ($(this).hasClass('container--float-right')) { 224 // $('.container--float-right').css({ 225 // "width": "90%", 226 // "max-width": "1440px", 227 // "margin": "0 auto", 228 // }); 229 // }; 230 } 231 232 ; 233 }); 234 } 235 236 ; 237 238 function containerFloatMargin() { 239 var containerSize = 1440; 240 var windowWidth = $(window).width(); 241 var windowWith90 = windowWidth / 10 * 9; 242 var marginSize = 0; 243 244 if (windowWith90 >= containerSize) { 245 marginSize = (windowWidth - containerSize) / 2; 246 } else { 247 marginSize = windowWidth / 10 / 2; 248 } 249 250 ; 251 $('.container-float-margin').css({ 252 "width": marginSize + "px", 253 "min-width": marginSize + "px" 254 }); 255 } 256 257 ; 258 259 function cyclingHeading() { 260 var numItems = $('.brand-split__normal-cycle').length; 261 var above = $('.brand-split__normal .above'); 262 var current = $('.brand-split__normal .active'); 263 var next = $('.brand-split__normal .active').next('span'); 264 265 if (numItems == 1) { 266 current.removeClass('active').addClass('above'); 267 $('.brand-split__normal .below').removeClass('below').addClass('active'); 268 setTimeout(function () { 269 $('.brand-split__normal .above').removeClass('above').addClass('below'); 270 }, 410); 271 } else { 272 if (next.length) { 273 above.removeClass('above').addClass('below'); 274 current.removeClass('active').addClass('above'); 275 next.removeClass('below').addClass('active'); 276 } else { 277 $('.brand-split__normal .above').removeClass('above').addClass('below'); 278 current.removeClass('active').addClass('above'); 279 $('.bsn-1').removeClass('below').addClass('active'); 280 } 281 282 ; 283 } 284 } 285 286 ; 287 288 function mediaTextAlignment() { 289 var windowWidth = $(window).width(); 290 var scrollbarWidth = window.innerWidth - document.documentElement.clientWidth; 291 var mediaTextMedia = $('.block__media-text').find('.media-text__media--desktop'); 292 293 if (windowWidth >= 1200) { 294 $(mediaTextMedia).each(function () { 295 $(this).css({ 296 width: 'calc(50vw - ' + scrollbarWidth / 2 + 'px)' 297 }); 298 }); 299 } 300 301 ; 302 } 303 304 ; 305 306 function sliderAlignment() { 307 var windowWidth = $(window).width(); 308 var scrollbarWidth = window.innerWidth - document.documentElement.clientWidth; 309 var sliderMedia = $('.block__slider--alternate').find('.slider__item-image'); 310 var sliderPrev = $('.block__slider--alternate').find('.slick-prev'); 311 var sliderNext = $('.block__slider--alternate').find('.slick-next'); 312 313 if (windowWidth >= 1200) { 314 $(sliderMedia).each(function () { 315 $(this).css({ 316 width: 'calc(50vw - ' + scrollbarWidth / 2 + 'px)' 317 }); 318 }); 319 $(sliderPrev).each(function () { 320 var slider__slider = $(this).closest('.slider__slider'); 321 322 if ($(slider__slider).hasClass('slider__slider--flipped')) { 323 $(this).css({ 324 left: 'calc(50vw - ' + scrollbarWidth / 2 + 'px)' 325 }); 326 } else { 327 $(this).css({ 328 right: 'calc(50vw - ' + scrollbarWidth / 2 + 'px)' 329 }); 330 } 331 332 ; 333 }); 334 $(sliderNext).each(function () { 335 var slider__slider = $(this).closest('.slider__slider'); 336 337 if ($(slider__slider).hasClass('slider__slider--flipped')) { 338 $(this).css({ 339 left: 'calc(50vw - ' + scrollbarWidth / 2 + 'px)' 340 }); 341 } else { 342 $(this).css({ 343 right: 'calc(50vw - ' + scrollbarWidth / 2 + 'px)' 344 }); 345 } 346 347 ; 348 }); 349 } else { 350 var sliderMedia = $('.block__slider--alternate').find('.slider__item-image'); 351 $(sliderMedia).each(function () { 352 $(this).css({ 353 width: '100vw' 354 }); 355 }); 356 $(sliderPrev).each(function () { 357 $(this).css({ 358 right: '60px' 359 }); 360 }); 361 $(sliderNext).each(function () { 362 $(this).css({ 363 right: '0px' 364 }); 365 }); 366 } 367 368 ; 369 } 370 371 ; // Functions to run on load 372 // Length checks to see if page has these elements before running costly JavaScript resources 373 374 $(document).ready(function () { 375 if ($('.container--float').length) {// containerFloat(); 376 } 377 378 ; 379 380 if ($('.container-float-margin').length) {//containerFloatMargin(); 381 } 382 383 ; 384 385 if ($('.brand-split--cycling').length) { 386 setInterval(cyclingHeading, 5000); 387 } 388 389 ; 390 391 if ($('.block__media-text').length) { 392 mediaTextAlignment(); 393 } 394 395 ; 396 397 if ($('.block__slider--alternate').length) { 398 sliderAlignment(); 399 } 400 401 ; 402 setTimeout(function () { 403 $('.header').removeClass('header--loading'); 404 }, 1500); 405 /* 406 * 407 * Interactive Map 408 * 409 */ 410 411 if ($('.block__interactive-map').length) { 412 // add active class when clicking on explore holkham and prevent default 413 $('.explore-holkham__toggle').on('click', function (e) { 414 e.preventDefault(); 415 $(this).toggleClass('active'); // add class to parent explore-holkham 416 417 $(this).parent('.explore-holkham').toggleClass('active'); 418 }); 419 var minZoomVal = 1; 420 421 if ($(window).width() < 768) { 422 var minZoomVal = 2; 423 } 424 425 svgPanZoom('svg#map', { 426 viewportSelector: '.svg-pan-zoom_viewport', 427 panEnabled: true, 428 controlIconsEnabled: true, 429 zoomEnabled: true, 430 dblClickZoomEnabled: true, 431 mouseWheelZoomEnabled: false, 432 preventMouseEventsDefault: true, 433 zoomScaleSensitivity: 0.2, 434 minZoom: minZoomVal, 435 maxZoom: 6, 436 fit: true,
437 contain: false, 438 center: true, 439 refreshRate: 'auto' 440 }); 441 var panZoomMap = svgPanZoom('#map'); 442 panZoomMap.zoom(2); 443 panZoomMap.updateBBox(); // Update viewport bounding box 444 445 panZoomMap.fit(); // fit works as expected 446 // hide the content if clicking outside of the content 447 // $('#map').on('click', function (e) { 448 // if (!$(e.target).is('.holkham-map__content div *')) { 449 // $('.explore-holkham__content ul li a').removeClass('active'); 450 // $('.map-info').removeClass('active'); 451 // $('.holkham-map__content div').fadeOut(); 452 // } 453 // }); 454 // close the content when .popup-close is clicked 455 456 $('.popup-close').on('click', function (e) { 457 $('.explore-holkham__content ul li a').removeClass('active'); 458 $('.map-info').removeClass('active'); 459 $('.holkham-map__content div').fadeOut(); 460 panZoomMap.zoom(2); 461 }); // store the explore-holkham__panel__locations id on click 462 463 $('.explore-holkham__content ul li a, .map-info').on('click', function (event) { 464 event.stopPropagation(); 465 var attraction = $(this).attr('id'); 466 var location = $(this).data('src'); 467 var windowWidth = $(window).width(); 468 469 if (windowWidth < 768) { 470 $('.explore-holkham, .explore-holkham__toggle').removeClass('active'); 471 } 472 473 ; 474 475 if ($(this).hasClass('active')) { 476 $('.explore-holkham__content ul li a').removeClass('active'); 477 $('.map-info').removeClass('active'); 478 $('.holkham-map__content div').fadeOut(); 479 } else { 480 $('.explore-holkham__content ul li a').removeClass('active'); 481 $('.map-info').removeClass('active'); 482 $('.holkham-map__content div').fadeOut(); // add active class 483 484 $('.explore-holkham__content ul li a#' + attraction).addClass('active'); 485 $('.map-info[data-src="' + location + '"]').addClass('active'); // loop through holkmap-map__content and find matching data-rel attribute 486 487 $('.holkham-map__content div').each(function () { 488 if ($(this).attr('data-rel') == attraction) { 489 // show the matching content 490 $(this).fadeIn(); 491 } 492 }); 493 setTimeout(function () { 494 $('svg g#buildings image').each(function () { 495 // find the image id that matches the location and store the x and y coordinates 496 if ($(this).attr('id') === location) { 497 // var { left, width, top, height } = $(this).get(0).getBoundingClientRect(); 498 // console.log(left, width, top, height); 499 // // pan to the location and center on the image 500 // panZoomMap.panBy({x: -left, y: 0}); 501 // panZoomMap.panBy({x: 0, y: -top}); 502 var initialSizes = panZoomMap.getSizes(); 503 var initialBounds = $(this).get(0).getBoundingClientRect(); 504 var initialCX = initialBounds.x + initialBounds.width / 2; 505 var initialCY = initialBounds.y + initialBounds.height / 2 - 120; 506 var dX = initialSizes.width / 2 - initialCX; 507 var dY = initialSizes.height / 2 - initialCY; 508 panZoomMap.panBy({ 509 x: dX, 510 y: dY 511 }); 512 panZoomMap.zoom(4); 513 } 514 }); 515 }, 250); 516 } 517 518 ; 519 }); // store the explore-holkham__panel__locations id on click 520 521 $('.explore-holkham__content ul li a, .map-info, .building-image').hover(function () { 522 var location = $(this).data('src'); 523 $('.building-image[data-src="' + location + '"]').addClass('hover-state'); 524 }, function () { 525 $('.building-image').removeClass('hover-state'); 526 }); 527 $('.attraction-content__prev').click(function () { 528 // console.log("Previous"); 529 var closestModal = $(this).closest('.holkham-map__content-modal'); 530 $(closestModal).fadeOut(); 531 532 if ($(closestModal).prev().length) { 533 $(closestModal).prev().fadeIn(); 534 var attraction = $(closestModal).prev().data('rel'); 535 $('.explore-holkham__content ul li a').removeClass('active'); 536 $('.map-info').removeClass('active'); 537 $('.explore-holkham__content ul li a#' + attraction).addClass('active'); 538 $('.map-info.' + attraction).addClass('active'); 539 setTimeout(function () { 540 $('svg g#buildings image').each(function () { 541 // find the image id that matches the location and store the x and y coordinates 542 if ($(this).attr('id') === attraction) { 543 // var { left, width, top, height } = $(this).get(0).getBoundingClientRect(); 544 // console.log(left, width, top, height); 545 // // pan to the location and center on the image 546 // panZoomMap.panBy({x: -left, y: 0}); 547 // panZoomMap.panBy({x: 0, y: -top}); 548 var initialSizes = panZoomMap.getSizes(); 549 var initialBounds = $(this).get(0).getBoundingClientRect(); 550 var initialCX = initialBounds.x + initialBounds.width / 2; 551 var initialCY = initialBounds.y + initialBounds.height / 2 - 120; 552 var dX = initialSizes.width / 2 - initialCX; 553 var dY = initialSizes.height / 2 - initialCY; 554 panZoomMap.panBy({ 555 x: dX, 556 y: dY 557 }); 558 panZoomMap.zoom(4); 559 } 560 }); 561 }, 250); 562 } else { 563 $('.holkham-map__content .holkham-map__content-modal').last().fadeIn(); 564 var attraction = $('.holkham-map__content .holkham-map__content-modal').last().data('rel'); 565 $('.explore-holkham__content ul li a').removeClass('active'); 566 $('.map-info').removeClass('active'); 567 $('.explore-holkham__content ul li a#' + attraction).addClass('active'); 568 $('.map-info.' + attraction).addClass('active'); 569 setTimeout(function () { 570 $('svg g#buildings image').each(function () { 571 // find the image id that matches the location and store the x and y coordinates 572 if ($(this).attr('id') === attraction) { 573 // var { left, width, top, height } = $(this).get(0).getBoundingClientRect(); 574 // console.log(left, width, top, height); 575 // // pan to the location and center on the image 576 // panZoomMap.panBy({x: -left, y: 0}); 577 // panZoomMap.panBy({x: 0, y: -top}); 578 var initialSizes = panZoomMap.getSizes(); 579 var initialBounds = $(this).get(0).getBoundingClientRect(); 580 var initialCX = initialBounds.x + initialBounds.width / 2; 581 var initialCY = initialBounds.y + initialBounds.height / 2 - 120; 582 var dX = initialSizes.width / 2 - initialCX; 583 var dY = initialSizes.height / 2 - initialCY; 584 panZoomMap.panBy({ 585 x: dX, 586 y: dY 587 }); 588 panZoomMap.zoom(4); 589 } 590 }); 591 }, 250); 592 } 593 594 ; 595 }); 596 $('.attraction-content__next').click(function () { 597 var closestModal = $(this).closest('.holkham-map__content-modal'); 598 $(closestModal).fadeOut(); 599 600 if ($(closestModal).next().length) { 601 $(closestModal).next().fadeIn(); 602 var attraction = $(closestModal).next().data('rel'); 603 $('.explore-holkham__content ul li a').removeClass('active'); 604 $('.map-info').removeClass('active'); 605 $('.explore-holkham__content ul li a#' + attraction).addClass('active'); 606 $('.map-info.' + attraction).addClass('active'); 607 setTimeout(function () { 608 $('svg g#buildings image').each(function () { 609 // find the image id that matches the location and store the x and y coordinates 610 if ($(this).attr('id') === attraction) { 611 // var { left, width, top, height } = $(this).get(0).getBoundingClientRect(); 612 // console.log(left, width, top, height); 613 // // pan to the location and center on the image 614 // panZoomMap.panBy({x: -left, y: 0}); 615 // panZoomMap.panBy({x: 0, y: -top}); 616 var initialSizes = panZoomMap.getSizes(); 617 var initialBounds = $(this).get(0).getBoundingClientRect(); 618 var initialCX = initialBounds.x + initialBounds.width / 2; 619 var initialCY = initialBounds.y + initialBounds.height / 2 - 120; 620 var dX = initialSizes.width / 2 - initialCX; 621 var dY = initialSizes.height / 2 - initialCY; 622 panZoomMap.panBy({ 623 x: dX, 624 y: dY 625 }); 626 panZoomMap.zoom(4); 627 } 628 }); 629 }, 250); 630 } else { 631 $('.holkham-map__content .holkham-map__content-modal').first().fadeIn(); 632 var attraction = $('.holkham-map__content .holkham-map__content-modal').first().data('rel'); 633 $('.explore-holkham__content ul li a').removeClass('active'); 634 $('.map-info').removeClass('active'); 635 $('.explore-holkham__content ul li a#' + attraction).addClass('active'); 636 $('.map-info.' + attraction).addClass('active'); 637 setTimeout(function () { 638 $('svg g#buildings image').each(function () { 639 // find the image id that matches the location and store the x and y coordinates 640 if ($(this).attr('id') === attraction) { 641 // var { left, width, top, height } = $(this).get(0).getBoundingClientRect(); 642 // console.log(left, width, top, height); 643 // // pan to the location and center on the image 644 // panZoomMap.panBy({x: -left, y: 0}); 645 // panZoomMap.panBy({x: 0, y: -top}); 646 var initialSizes = panZoomMap.getSizes(); 647 var initialBounds = $(this).get(0).getBoundingClientRect(); 648 var initialCX = initialBounds.x + initialBounds.width / 2; 649 var initialCY = initialBounds.y + initialBounds.height / 2 - 120; 650 var dX = initialSizes.width / 2 - initialCX; 651 var dY = initialSizes.height / 2 - initialCY; 652 panZoomMap.panBy({ 653 x: dX, 654 y: dY 655 }); 656 panZoomMap.zoom(4); 657 } 658 }); 659 }, 250); 660 } 661 662 ; 663 }); // Cycle Routes 664 // when clicking on cycle route a 665 666 $('.holkham-map__routes ul li a').on('click', function () { 667 var route = $(this).attr('id'); 668 panZoomMap.zoom(2); 669 panZoomMap.updateBBox(); // Update viewport bounding box 670 671 panZoomMap.fit();
671 // fit works as expected 672 // hide all #cycling routes 673 674 $('#cycling path').removeClass('active').hide(); // loop through the cycling routes and show the one that matches the id 675 676 $('#cycling path').each(function () { 677 if ($(this).attr('id') === route) { 678 $(this).show(); // set the path width to 4px 679 680 $(this).css('stroke-width', '4px'); 681 } 682 }); // if show all routes is clicked 683 684 if (route === 'route-all') { 685 // show all cycling routes 686 $('#cycling path').show(); // set the path width to 1px 687 688 $('#cycling path').css('stroke-width', '1px'); 689 } 690 }); 691 document.getElementById("zoom-in").addEventListener("click", function (ev) { 692 ev.preventDefault(); 693 panZoomMap.zoomIn(); 694 }); 695 document.getElementById("zoom-out").addEventListener("click", function (ev) { 696 ev.preventDefault(); 697 panZoomMap.zoomOut(); 698 }); 699 } 700 701 ; 702 }); // Functions to run on window resize 703 // Length checks to see if page has these elements before running costly JavaScript resources 704 705 $(window).resize(function () { 706 if ($('.container--float').length) {//containerFloat(); 707 } 708 709 ; 710 711 if ($('.container-float-margin').length) {//containerFloatMargin(); 712 } 713 714 ; 715 716 if ($('.block__media-text').length) { 717 mediaTextAlignment(); 718 } 719 720 ; 721 722 if ($('.block__slider--slider').length) { 723 sliderAlignment(); 724 } 725 726 ; 727 }); // wrap embeds in div 728 729 $('iframe[src^="https://www.youtube.com/embed/"]').wrap('<div class="embed"></div>'); 730 $("iframe[src^='https://player.vimeo.com/video']:not('.no-wrap')").wrap('<div class="embed"></div>'); 731 /* 732 * 733 * General Functionality 734 * 735 */ 736 737 $('.js-open-opening-times').click(function () { 738 $('.opening-times').addClass('open'); 739 }); 740 $('.opening-times__close').click(function () { 741 $('.opening-times').removeClass('open'); 742 }); 743 $('.button--back-to-top').click(function () { 744 $('html, body').animate({ 745 scrollTop: 0 746 }, 1000); 747 }); 748 $('.button--scroll-down').click(function () { 749 var section = $(this).closest('.block'); 750 var sectionBottom = section.position().top + section.outerHeight(true); 751 var scrollDistance = sectionBottom; 752 $('html, body').animate({ 753 scrollTop: scrollDistance 754 }, 1000); 755 }); // Header Search Bar 756 757 $('.search__toggle').click(function () { 758 var parent = $(this).closest('.search'); 759 760 if ($(parent).hasClass('closed')) { 761 $(parent).removeClass('closed'); 762 $(parent).addClass('open'); 763 $(this).closest('header').addClass('search-open'); 764 $(this).closest('header').find('.header__search').addClass('open'); 765 } else { 766 $(parent).removeClass('open'); 767 $(parent).addClass('closed'); 768 $(this).closest('header').removeClass('search-open'); 769 $(this).closest('header').find('.header__search').removeClass('open'); 770 } 771 }); // Media (Video) 772 773 $('video').on("play", function (e) { 774 $(this).closest('.video-container').addClass('playing'); 775 }); 776 $('video').on("pause", function (e) { 777 $(this).closest('.video-container').removeClass('playing'); 778 }); 779 $('.video-play').click(function () { 780 var media = $(this).closest('.video-container'); 781 782 if (!$(media).hasClass('playing')) { 783 $(media).addClass('playing'); 784 $(media).find('video').trigger('play'); 785 } 786 787 ; 788 }); // Accordions 789 790 $('.accordion__toggle').click(function (e) { 791 $(this).closest('.accordion').toggleClass('open'); 792 }); // Block Accordions Standard 793 794 $('.accordions__standard .accordions__standard-selectors .button').click(function () { 795 var id = $(this).data('id'); 796 var closestBlock = $(this).closest('.block'); 797 $(closestBlock).find('.accordions__standard-selectors .button').removeClass('active'); 798 $(this).addClass('active'); 799 $(closestBlock).find('.accordions__standard-accordion').removeClass('active'); 800 $(closestBlock).find('.accordions__standard-accordion--' + id).addClass('active'); 801 }); // Accordions - Timed 802 803 $(".accordions__timed-selectors").slick({ 804 infinite: true, 805 fade: true, 806 slidesToShow: 1, 807 slidesToScroll: 1,
808 arrows: false, 809 dots: false, 810 autoplay: true, 811 autoplaySpeed: 7500, 812 pauseOnHover: true 813 }); 814 $(".accordions__timed-selectors").on("beforeChange", function (e, t, n, i) { 815 var o = $(this).closest("section"); 816 r = i + 1; 817 o.find(".accordions__timed-accordion.active").removeClass("active"); 818 o.find('.accordions__timed-accordion[data-slide="' + r + '"]').addClass("active"); 819 }); 820 $(".accordions__timed-selector button").on("click", function () { 821 $(this).closest("section").find(".slick-slider").slick("slickGoTo", $(this).attr("data-slide") - 1); 822 $(this).closest("section").find('.slick-slider').slick('slickPlay'); 823 }); 824 $('.accordions__timed-selectors').hover(function () { 825 $(this).slick('slickPause'); 826 }, function () { 827 $(this).slick('slickPlay'); 828 }); // Tabs 829 830 $('.tabs__selector').click(function () { 831 var id = $(this).data('id'); 832 var closestBlock = $(this).closest('.block'); 833 $(closestBlock).find('.tabs__selector').removeClass('active'); 834 $(this).addClass('active'); 835 $(closestBlock).find('.tabs__tab').removeClass('active'); 836 $(closestBlock).find('.tabs__tab--' + id).addClass('active'); 837 }); // Booking 838 839 $('.booking__selector-button').click(function () { 840 var id = $(this).data('id'); 841 var closestBlock = $(this).closest('.block'); 842 $(closestBlock).find('.booking__selector-button').removeClass('active'); 843 $(this).addClass('active'); 844 $(closestBlock).find('.booking__tab').removeClass('active'); 845 $(closestBlock).find('.booking__tab--' + id).addClass('active'); 846 }); // Timeline 847 848 $('.timeline__periods-selector').click(function () { 849 var id = $(this).data('id'); 850 var closestBlock = $(this).closest('.block'); 851 $(closestBlock).find('.timeline__periods-selector').removeClass('active'); 852 $(this).addClass('active'); 853 $(closestBlock).find('.timeline__slider').removeClass('active'); 854 $(closestBlock).find('.timeline__slider--' + id).addClass('active'); 855 $(closestBlock).find('.smooth-slider__controls').removeClass('active'); 856 $(closestBlock).find('.smooth-slider__controls--' + id).addClass('active'); 857 }); // Meet the team 858 859 $('.meet-the-team__profiles-selector button').click(function () { 860 var id = $(this).data('id'); 861 var closestBlock = $(this).closest('.block'); 862 $(closestBlock).find('.meet-the-team__profiles-selector button').removeClass('active'); 863 $(this).addClass('active'); 864 $(closestBlock).find('.meet-the-team__profile').removeClass('active'); 865 $(closestBlock).find('.meet-the-team__profile--' + id).addClass('active'); 866 }); // Timeline Show More 867 868 $('.expandable-content-toggle').click(function () { 869 $(this).toggleClass('open'); 870 $(this).closest('.timeline__event').find('.expandable-content').toggleClass('open'); 871 }); // Opening Times & Prices 872 873 $('.opening-times-and-prices__season-picker--desktop button, .opening-times-and-prices__season-picker--mobile .dropdown__options .dropdown__options-inner button').click(function () { 874 if (!$(this).hasClass('active')) { 875 var season = $(this).data('season'); 876 $('.opening-times-and-prices__season-picker button').removeClass('active'); 877 $(this).addClass('active'); 878 $('.opening-times-and-prices__season').removeClass('active'); 879 $('.opening-times-and-prices__season--' + season).addClass('active'); 880 } 881 882 ; 883 }); // Familial Nav Dropdown (Mobile) 884 885 $('.familial-nav__dropdown-upper').click(function () { 886 var parent = $(this).closest('.familial-nav__dropdown'); 887 $(parent).toggleClass('open'); 888 }); // Dropdown 889 890 $('.dropdown__toggle').click(function () { 891 event.stopPropagation(); 892 $(this).closest('.dropdown').toggleClass('open'); 893 }); 894 $('.dropdown__options a').click(function (e) { 895 $(this).closest('.dropdown').removeClass('open'); 896 }); 897 /* 898 * 899 * Sliders 900 * 901 */ 902 // Media Slider 903 904 $('.media__slider').slick({ 905 arrows: true, 906 dots: true, 907 slidesToShow: 1, 908 slidesToScroll: 1, 909 fade: true, 910 adaptiveHeight: true 911 }); // Cards Slider 912 913 $('.cards__grid--slider-3').slick({ 914 arrows: true, 915 dots: true, 916 slidesToShow: 3, 917 slidesToScroll: 1, 918 responsive: [{ 919 breakpoint: 1199, 920 settings: { 921 slidesToShow: 2 922 } 923 }, { 924 breakpoint: 767, 925 settings: { 926 slidesToShow: 1 927 } 928 } // You can unslick at a given breakpoint now by adding: 929 // settings: "unslick" 930 // instead of a settings object 931 ] 932 }); // Cards Slider 933 934 $('.cards__grid--slider-4').slick({ 935 arrows: true, 936 dots: true, 937 slidesToShow: 4, 938 slidesToScroll: 1, 939 responsive: [{ 940 breakpoint: 1199, 941 settings: { 942 slidesToShow: 2 943 } 944 }, { 945 breakpoint: 767, 946 settings: { 947 slidesToShow: 1 948 } 949 } // You can unslick at a given breakpoint now by adding: 950 // settings: "unslick" 951 // instead of a settings object 952 ] 953 }); // Card Image Gallery 954 955 $('.cards__card-gallery--slider').slick({ 956 arrows: true, 957 dots: false, 958 adaptiveHeight: true, 959 slidesToShow: 1, 960 slidesToScroll: 1, 961 fade: true 962 }); // Content Grid Slider 963 // only show on desktop 964 965 if ($(window).width() > 1199) { 966 $('.super-cards__grid--slider').slick({
967 arrows: false, 968 dots: false, 969 slidesToShow: 5, 970 slidesToScroll: 1, 971 autoplay: true, 972 autoplaySpeed: 0, 973 speed: 8000, 974 draggable: true, 975 pauseOnHover: true, 976 pauseOnFocus: true, 977 cssEase: 'linear', 978 responsive: [{ 979 breakpoint: 1199, 980 settings: { 981 slidesToShow: 2.5 982 } 983 }, { 984 breakpoint: 767, 985 settings: { 986 slidesToShow: 1.5 987 } 988 } // You can unslick at a given breakpoint now by adding: 989 // settings: "unslick" 990 // instead of a settings object 991 ] 992 }); 993 } // Posts Slider 994 995 996 $('.posts__slider').slick({ 997 arrows: true, 998 dots: false, 999 slidesToShow: 3, 1000 slidesToScroll: 1, 1001 adaptiveHeight: false, 1002 responsive: [{ 1003 breakpoint: 1199, 1004 settings: { 1005 slidesToShow: 2, 1006 adaptiveHeight: false 1007 } 1008 }, { 1009 breakpoint: 767, 1010 settings: { 1011 slidesToShow: 1, 1012 adaptiveHeight: true 1013 } 1014 } // You can unslick at a given breakpoint now by adding: 1015 // settings: "unslick" 1016 // instead of a settings object 1017 ] 1018 }); // Slider 1019 1020 $('.block__slider--alternate .slider__slider').slick({ 1021 arrows: true, 1022 dots: true, 1023 slidesToShow: 1, 1024 slidesToScroll: 1, 1025 fade: true, 1026 adaptiveHeight: false, 1027 responsive: [{ 1028 breakpoint: 1199, 1029 settings: { 1030 adaptiveHeight: true 1031 } 1032 } // You can unslick at a given breakpoint now by adding: 1033 // settings: "unslick" 1034 // instead of a settings object 1035 ] 1036 }); // Testimonials 1037 1038 $('.block__testimonials--slider .container').slick({ 1039 arrows: true, 1040 dots: true, 1041 slidesToShow: 1, 1042 slidesToScroll: 1, 1043 fade: true 1044 }); // Sliders with custom controls require looping through 1045 1046 $(document).ready(function () { 1047 // Smoother Slider - Slider 1048 $('.smooth-slider--slider').each(function () { 1049 var slider = $(this); 1050 slider.on('beforeChange', function (event, slick, currentSlide, nextSlide) { 1051 var calc = nextSlide / (slick.slideCount - 2) * 100; 1052 1053 if ($(window).width() < 768) { 1054 calc = nextSlide / (slick.slideCount - 1) * 100; 1055 } 1056 1057 ; 1058 var progressBar = $(this).closest('.block').find('.progress'); 1059 var progressBarLabel = $(this).closest('.block').find('.slider__label'); 1060 progressBar.css('background-size', calc + '% 100%').attr('aria-valuenow', calc); 1061 progressBarLabel.text(calc + '% completed'); 1062 }); 1063 slider.slick({ 1064 arrows: true, 1065 dots: false, 1066 slidesToShow: 2.5, 1067 slidesToScroll: 1, 1068 speed: 400, 1069 infinite: false, 1070 prevArrow: $(this).closest('.block').find('.slick-custom-arrows__arrow--prev'), 1071 nextArrow: $(this).closest('.block').find('.slick-custom-arrows__arrow--next'), 1072 responsive: [{ 1073 breakpoint: 767, 1074 settings: { 1075 slidesToShow: 1 1076 } 1077 } // You can unslick at a given breakpoint now by adding: 1078 // settings: "unslick" 1079 // instead of a settings object 1080 ] 1081 }); 1082 }); // Smoother Slider - Slider 1083 1084 var smoothSliderCounter = 1; 1085 $('.smooth-slider--timeline').each(function () { 1086 var slider = $(this); 1087 var closestControls = $(this).closest('.block').find('.smooth-slider__controls--' + smoothSliderCounter); 1088 slider.on('beforeChange', function (event, slick, currentSlide, nextSlide) { 1089 var calc = nextSlide / (slick.slideCount - 2) * 100; 1090 var progressBar = $(closestControls).find('.progress'); 1091 var progressBarLabel = $(closestControls).find('.slider__label'); 1092 progressBar.css('background-size', calc + '% 100%').attr('aria-valuenow', calc); 1093 progressBarLabel.text(calc + '% completed'); 1094 }); 1095 slider.slick({ 1096 arrows: true, 1097 dots: false, 1098 slidesToShow: 2, 1099 slidesToScroll: 1, 1100 speed: 400, 1101 infinite: false, 1102 variableWidth: true,
1103 prevArrow: $(closestControls).find('.slick-custom-arrows__arrow--prev'), 1104 nextArrow: $(closestControls).find('.slick-custom-arrows__arrow--next'), 1105 responsive: [{ 1106 breakpoint: 1199, 1107 settings: "unslick" 1108 } // You can unslick at a given breakpoint now by adding: 1109 // settings: "unslick" 1110 // instead of a settings object 1111 ] 1112 }); 1113 smoothSliderCounter++; 1114 }); 1115 }); 1116 /* 1117 * 1118 * Intersection Observer 1119 * 1120 */ 1121 1122 if ('IntersectionObserver' in window) { 1123 // Intersection Observer Callback Function 1124 blockObserverCallback = function blockObserverCallback(entries, observer) { 1125 entries.forEach(function (entry) { 1126 if (entry.isIntersecting) { 1127 entry.target.classList.add('in-view'); 1128 1129 if (entry.target.classList.contains('block__accordions--timed')) { 1130 entry.target.classList.remove('paused'); 1131 entry.target.classList.add('playing'); 1132 $(entry.target).find('.slick-slider').slick('slickPlay'); 1133 } else { 1134 observer.unobserve(entry.target); 1135 } 1136 1137 ; 1138 } else { 1139 if (entry.target.classList.contains('block__accordions--timed')) { 1140 entry.target.classList.remove('playing'); 1141 entry.target.classList.add('paused'); 1142 $(entry.target).find('.slick-slider').slick('slickPause'); 1143 } 1144 } 1145 1146 ; 1147 }); 1148 }; // Intersection Observer Options 1149 1150 1151 var blockObserverOptions = { 1152 root: null, 1153 rootMargin: '0% 0% -25% 0%', 1154 threshold: 0 1155 }; // Creation of Intersection Observer 1156 1157 var blockObserver = new IntersectionObserver(blockObserverCallback, blockObserverOptions); // Intersection Observer Elements to observe 1158 1159 blockObserverElements = document.querySelectorAll('.block'); // Pass Elements to Observer 1160 1161 blockObserverElements.forEach(function (blockObserverElement) { 1162 blockObserver.observe(blockObserverElement); 1163 }); // Intersection Observer Callback Function 1164 1165 imgObserverCallback = function imgObserverCallback(entries, observer) { 1166 entries.forEach(function (entry) { 1167 if (entry.isIntersecting) { 1168 entry.target.classList.add('in-view'); 1169 observer.unobserve(entry.target); 1170 } 1171 1172 ; 1173 }); 1174 }; // Intersection Observer Options 1175 1176 1177 var imgObserverOptions = { 1178 root: null, 1179 rootMargin: '0% 0% 0% 0%', 1180 threshold: 0 1181 }; // Creation of Intersection Observer 1182 1183 var imgObserver = new IntersectionObserver(imgObserverCallback, imgObserverOptions); // Intersection Observer Elements to observe 1184 1185 imgObserverElements = document.querySelectorAll('img:not(.nav-mobile img, .book .block__booking img)'); // Pass Elements to Observer 1186 1187 imgObserverElements.forEach(function (imgObserverElement) { 1188 imgObserver.observe(imgObserverElement); 1189 }); 1190 } else { 1191 allObserverElements = document.querySelectorAll('.block, img:not(.nav-mobile img, .book .block__booking img)'); 1192 allObserverElements.forEach(function (allObserverElement) { 1193 allObserverElement.classList.add('in-view'); 1194 }); 1195 } 1196 1197 ; 1198 /* 1199 * 1200 * Google Map 1201 * 1202 */ 1203 1204 function new_map($el) { 1205 // var 1206 var $markers = $el.find('.marker'); // vars 1207 1208 var args = { 1209 zoom: 16, 1210 center: new google.maps.LatLng(0, 0), 1211 mapTypeId: google.maps.MapTypeId.ROADMAP, 1212 scrollwheel: false, 1213 navigationControl: false, 1214 mapTypeControl: false, 1215 scaleControl: false, 1216 draggable: false 1217 }; // create map 1218 1219 var map = new google.maps.Map($el[0], args); // add a markers reference 1220 1221 map.markers = []; // add markers 1222 1223 $markers.each(function () { 1224 add_marker($(this), map); 1225 }); // center map 1226 1227 center_map(map); // return 1228 1229 return map; 1230 } 1231 1232 function add_marker($marker, map) { 1233 // var 1234 var latlng = new google.maps.LatLng($marker.attr('data-lat'), $marker.attr('data-lng')); 1235 var icon = $marker.attr('data-icon'); // create marker 1236 1237 var marker = new google.maps.Marker({ 1238 position: latlng, 1239 map: map, 1240 icon: icon 1241 }); // add to array 1242 1243 map.markers.push(marker); // if marker contains HTML, add it to an infoWindow 1244 1245 if ($marker.html()) {
1246 // create info window 1247 var infowindow = new google.maps.InfoWindow({ 1248 content: $marker.html() 1249 }); // show info window when marker is clicked 1250 1251 google.maps.event.addListener(marker, 'click', function () { 1252 infowindow.open(map, marker); 1253 }); 1254 } 1255 } 1256 1257 function center_map(map) { 1258 // vars 1259 var bounds = new google.maps.LatLngBounds(); // loop through all markers and create bounds 1260 1261 $.each(map.markers, function (i, marker) { 1262 var latlng = new google.maps.LatLng(marker.position.lat(), marker.position.lng()); 1263 bounds.extend(latlng); 1264 }); // only 1 marker? 1265 1266 if (map.markers.length == 1) { 1267 // set center of map 1268 map.setCenter(bounds.getCenter()); 1269 map.setZoom(16); 1270 } else { 1271 // fit to bounds 1272 map.fitBounds(bounds); 1273 } 1274 } // global var 1275 1276 1277 var map = null; 1278 $('.acf-map').each(function () { 1279 // create map 1280 map = new_map($(this)); 1281 }); // $('h1:not(.brand-split), h2:not(.brand-split, .text__content-details), h3:not(.brand-split, .slider__item-link), h4:not(.brand-split, .text__author-cat), h5:not(.brand-split), h6:not(.brand-split)').each(function () { 1282 1283 $('h1:not(.brand-split), h2:not(.brand-split').each(function () { 1284 $(this).html($(this).text().replace(/\s(?=[^\s]*$)/g, " ")); 1285 }); 1286 }, 1287 finalize: function finalize() {// JavaScript to be fired on all pages, after page specific JS is fired 1288 } 1289 }, 1290 // Home page 1291 home: { 1292 init: function init() {// JavaScript to be fired on the home page 1293 }, 1294 finalize: function finalize() {// JavaScript to be fired on the home page, after the init JS 1295 } 1296 }, 1297 // About us page, note the change from about-us to about_us. 1298 about_us: { 1299 init: function init() {// JavaScript to be fired on the about us page 1300 } 1301 }, 1302 contact: { 1303 init: function init() {} 1304 } 1305 }; // The routing fires all common scripts, followed by the page specific scripts. 1306 // Add additional events for more control over timing e.g. a finalize event 1307 1308 var UTIL = { 1309 fire: function fire(func, funcname, args) { 1310 var fire; 1311 var namespace = mirai; 1312 funcname = funcname === undefined ? 'init' : funcname; 1313 fire = func !== ''; 1314 fire = fire && namespace[func]; 1315 fire = fire && typeof namespace[func][funcname] === 'function'; 1316 1317 if (fire) { 1318 namespace[func][funcname](args); 1319 } 1320 }, 1321 loadEvents: function loadEvents() { 1322 // Fire common init JS 1323 UTIL.fire('common'); // Fire page-specific init JS, and then finalize JS 1324 1325 $.each(document.body.className.replace(/-/g, '_').split(/\s+/), function (i, classnm) { 1326 UTIL.fire(classnm); 1327 UTIL.fire(classnm, 'finalize'); 1328 }); // Fire common finalize JS 1329 1330 UTIL.fire('common', 'finalize'); 1331 } 1332 }; // Load Events 1333 1334 $(document).ready(UTIL.loadEvents); // Start ROOM reservation form date pickers 1335 1336 $("form#online-booking-form-room #pick-up-date-input-room, form#online-booking-form-room #return-date-input-room").datepicker({ 1337 rangeSelect: true, 1338 //beforeShow: customRange, 1339 onSelect: customRangeRoom, 1340 minDate: '+1d', 1341 dateFormat: 'yy-mm-dd', 1342 numberOfMonths: 2 1343 }); 1344 1345 function customRangeRoom(input, inst) { 1346 if ($(this).is("form#online-booking-form-room #pick-up-date-input-room")) { 1347 var selected = $(this).datepicker("getDate"); 1348 1349 if (selected != null) { 1350 selected.setDate(selected.getDate()); 1351 $("form#online-booking-form-room #return-date-input-room").prop("disabled", false).datepicker("option", "minDate", selected); 1352 } 1353 } 1354 1355 if ($(this).is("form#online-booking-form-room #return-date-input-room")) { 1356 var selected = $(this).datepicker("getDate"); 1357 1358 if (selected != null) { 1359 selected.setDate(selected.getDate()); 1360 $("form#online-booking-form-room .submit-button #quick-booking-room").prop("disabled", false); 1361 } 1362 } 1363 } 1364 1365 $("form#online-booking-form-room #type-filter-room").on('change', function () { 1366 $('form#online-booking-form-room input#webProductId-room').val('[' + $("form#online-booking-form-room #type-filter-room").select2("val").join(',') + ']'); 1367 }); 1368 $("form#online-booking-form-room #type-filter-room").select2({ 1369 placeholder: "All", 1370 allowClear: true, 1371 minimumResultsForSearch: -1 1372 }); 1373 $("form#online-booking-form-room .select2-container .select2-search--inline .select2-search__field").css('opacity', '1'); 1374 $("form#online-booking-form-room .select2-container .select2-search--inline .select2-search__field").prop("disabled", false); // End ROOM reservation form date pickers 1375 // Start Lunch / Dinner reservation form date pickers 1376 1377 $("form#online-booking-form-table #pick-up-date-input-table, form#online-booking-form-table #return-date-input-table").datepicker({ 1378 rangeSelect: true, 1379 //beforeShow: customRange, 1380 onSelect: customRangeTable, 1381 minDate: '+0d', 1382 dateFormat: 'yy-mm-dd', 1383 numberOfMonths: 2 1384 }); 1385 $("form#online-booking-form-dinner #pick-up-date-input-dinner, form#online-booking-form-dinner #return-date-input-dinner").datepicker({ 1386 rangeSelect: true, 1387 //beforeShow: customRange, 1388 onSelect: customRangeDinner, 1389 minDate: '+0d', 1390 dateFormat: 'yy-mm-dd', 1391 numberOfMonths: 2 1392 }); 1393 1394 function customRangeTable(input, inst) { 1395 if ($(this).is("form#online-booking-form-table #pick-up-date-input-table")) { 1396 var selected = $(this).datepicker("getDate"); 1397 1398 if (selected != null) { 1399 selected.setDate(selected.getDate()); 1400 $("form#online-booking-form-table #return-date-input-table").prop("disabled", false).datepicker("option", "minDate", selected); 1401 var tablecheckout = selected.toISOString().split('T')[0]; 1402 $("form#online-booking-form-table #return-date-input-table").val(tablecheckout); 1403 } 1404 } 1405 } 1406 1407 function customRangeDinner(input, inst) { 1408 if ($(this).is("form#online-booking-form-dinner #pick-up-date-input-dinner")) { 1409 var selectedDinner = $(this).datepicker("getDate"); 1410 1411 if (selectedDinner != null) { 1412 selectedDinner.setDate(selectedDinner.getDate()); 1413 $("form#online-booking-form-dinner #return-date-input-dinner").prop("disabled", false).datepicker("option", "minDate", selectedDinner); 1414 var tablecheckoutDinner = selectedDinner.toISOString().split('T')[0]; 1415 $("form#online-booking-form-dinner #return-date-input-dinner").val(tablecheckoutDinner); 1416 } 1417 } 1418 } 1419 1420 $("form#online-booking-form-table #type-filter-table").on('change', function () { 1421 $('form#online-booking-form-table').attr('action', 'https://reservations.visbook.com/' + $("form#online-booking-form-table #type-filter-table").select2("val") + '/search'); 1422 $("form#online-booking-form-table .submit-button #quick-booking-table").prop("disabled", false); 1423 }); 1424 $("form#online-booking-form-dinner #type-filter-dinner").on('change', function () { 1425 $('form#online-booking-form-dinner').attr('action', 'https://reservations.visbook.com/' + $("form#online-booking-form-dinner #type-filter-dinner").select2("val") + '/search'); 1426 $("form#online-booking-form-dinner .submit-button #quick-booking-dinner").prop("disabled", false); 1427 }); 1428 $("form#online-booking-form-table select#type-filter-table").select2({ 1429 placeholder: "Select", 1430 minimumResultsForSearch: -1 1431 }); 1432 $("form#online-booking-form-dinner select#type-filter-dinner").select2({ 1433 placeholder: "Select", 1434 minimumResultsForSearch: -1 1435 }); // End TABLE reservation form date pickers 1436 1437 $(window).on('orientationchange resize', function () { 1438 $("form#online-booking-form-room #type-filter-room").select2("destroy"); 1439 $("form#online-booking-form-room #type-filter-room").select2({ 1440 placeholder: "All", 1441 allowClear: true, 1442 minimumResultsForSearch: -1 1443 }); 1444 $("form#online-booking-form-dinner select#type-filter-dinner").select2("destroy"); 1445 $("form#online-booking-form-dinner select#type-filter-dinner").select2({ 1446 placeholder: "Select", 1447 minimumResultsForSearch: -1 1448 }); 1449 $("form#online-booking-form-table select#type-filter-table").select2("destroy"); 1450 $("form#online-booking-form-table select#type-filter-table").select2({ 1451 placeholder: "Select", 1452 minimumResultsForSearch: -1 1453 }); 1454 }); 1455 $('.cards__collapsable-content-button button').click(function (e) { 1456 e.preventDefault(); 1457 $(this).parents('.cards__collapsable-content').find('.cards__collapsable-content-text').removeClass('cards__collapsable-content-text--collapsed'); 1458 $(this).hide(); 1459 return false;
1460 }); 1461})(jQuery); // Fully reference jQuery after this point. 1462//@prepros-prepend ./vendor/*.js 1463 1464/***/ }), 1465
1466/***/ "./assets/js/vendor/simpleParallax.min.js": 1467/*!************************************************!*\ 1468 !*** ./assets/js/vendor/simpleParallax.min.js ***! 1469 \************************************************/ 1470/***/ ((module, exports, __webpack_require__) => { 1471 1472/* module decorator */ module = __webpack_require__.nmd(module); 1473var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } 1474 1475/*! 1476 * simpleParallax.min - simpleParallax is a simple JavaScript library that gives your website parallax animations on any images or videos, 1477 * @date: 20-08-2020 14:0:14, 1478 * @version: 5.6.2, 1479 * @link: https://simpleparallax.com/ 1480 */ 1481!function (t, e) { 1482 "object" == ( false ? 0 : _typeof(exports)) && "object" == ( false ? 0 : _typeof(module)) ? module.exports = e() : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (e), 1483 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 1484 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 1485 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : 0; 1486}(window, function () { 1487 return function (t) { 1488 var e = {}; 1489 1490 function n(i) { 1491 if (e[i]) return e[i].exports; 1492 var r = e[i] = { 1493 i: i, 1494 l: !1, 1495 exports: {} 1496 }; 1497 return t[i].call(r.exports, r, r.exports, n), r.l = !0, r.exports; 1498 } 1499 1500 return n.m = t, n.c = e, n.d = function (t, e, i) { 1501 n.o(t, e) || Object.defineProperty(t, e, { 1502 enumerable: !0, 1503 get: i 1504 }); 1505 }, n.r = function (t) { 1506 "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { 1507 value: "Module" 1508 }), Object.defineProperty(t, "__esModule", { 1509 value: !0 1510 }); 1511 }, n.t = function (t, e) { 1512 if (1 & e && (t = n(t)), 8 & e) return t; 1513 if (4 & e && "object" == _typeof(t) && t && t.__esModule) return t; 1514 var i = Object.create(null); 1515 if (n.r(i), Object.defineProperty(i, "default", { 1516 enumerable: !0, 1517 value: t 1518 }), 2 & e && "string" != typeof t) for (var r in t) { 1519 n.d(i, r, function (e) { 1520 return t[e]; 1521 }.bind(null, r)); 1522 } 1523 return i; 1524 }, n.n = function (t) { 1525 var e = t && t.__esModule ? function () { 1526 return t["default"]; 1527 } : function () { 1528 return t; 1529 }; 1530 return n.d(e, "a", e), e; 1531 }, n.o = function (t, e) { 1532 return Object.prototype.hasOwnProperty.call(t, e); 1533 }, n.p = "", n(n.s = 0); 1534 }([function (t, e, n) { 1535 "use strict"; 1536 1537 n.r(e), n.d(e, "default", function () { 1538 return x; 1539 }); 1540 1541 var i = function i() { 1542 return Element.prototype.closest && "IntersectionObserver" in window; 1543 }; 1544 1545 function r(t, e) { 1546 for (var n = 0; n < e.length; n++) { 1547 var i = e[n]; 1548 i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i); 1549 } 1550 } 1551 1552 var s = new (function () { 1553 function t() { 1554 !function (t, e) { 1555 if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); 1556 }(this, t), this.positions = { 1557 top: 0, 1558 bottom: 0, 1559 height: 0 1560 }; 1561 } 1562 1563 var e, n, i; 1564 return e = t, (n = [{ 1565 key: "setViewportTop", 1566 value: function value(t) { 1567 return this.positions.top = t ? t.scrollTop : window.pageYOffset, this.positions; 1568 } 1569 }, { 1570 key: "setViewportBottom", 1571 value: function value() { 1572 return this.positions.bottom = this.positions.top + this.positions.height, this.positions; 1573 } 1574 }, { 1575 key: "setViewportAll", 1576 value: function value(t) { 1577 return this.positions.top = t ? t.scrollTop : window.pageYOffset, this.positions.height = t ? t.clientHeight : document.documentElement.clientHeight, this.positions.bottom = this.positions.top + this.positions.height, this.positions; 1578 } 1579 }]) && r(e.prototype, n), i && r(e, i), t; 1580 }())(), 1581 o = function o(t) { 1582 return NodeList.prototype.isPrototypeOf(t) || HTMLCollection.prototype.isPrototypeOf(t) ? Array.from(t) : "string" == typeof t || t instanceof String ? document.querySelectorAll(t) : [t]; 1583 }, 1584 a = function () { 1585 for (var t, e = "transform webkitTransform mozTransform oTransform msTransform".split(" "), n = 0; void 0 === t;) { 1586 t = void 0 !== document.createElement("div").style[e[n]] ? e[n] : void 0, n += 1; 1587 } 1588 1589 return t; 1590 }(), 1591 l = function l(t) { 1592 return "img" !== t.tagName.toLowerCase() && "picture" !== t.tagName.toLowerCase() || !!t && !!t.complete && (void 0 === t.naturalWi
1592dth || 0 !== t.naturalWidth); 1593 }; 1594 1595 function u(t) { 1596 return function (t) { 1597 if (Array.isArray(t)) return c(t); 1598 }(t) || function (t) { 1599 if ("undefined" != typeof Symbol && Symbol.iterator in Object(t)) return Array.from(t); 1600 }(t) || function (t, e) { 1601 if (!t) return; 1602 if ("string" == typeof t) return c(t, e); 1603 var n = Object.prototype.toString.call(t).slice(8, -1); 1604 "Object" === n && t.constructor && (n = t.constructor.name); 1605 if ("Map" === n || "Set" === n) return Array.from(t); 1606 if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return c(t, e); 1607 }(t) || function () { 1608 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); 1609 }(); 1610 } 1611 1612 function c(t, e) { 1613 (null == e || e > t.length) && (e = t.length); 1614 1615 for (var n = 0, i = new Array(e); n < e; n++) { 1616 i[n] = t[n]; 1617 } 1618 1619 return i; 1620 } 1621 1622 function h(t, e) { 1623 for (var n = 0; n < e.length; n++) { 1624 var i = e[n]; 1625 i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i); 1626 } 1627 } 1628 1629 var f = function () { 1630 function t(e, n) { 1631 var i = this; 1632 !function (t, e) { 1633 if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); 1634 }(this, t), this.element = e, this.elementContainer = e, this.settings = n, this.isVisible = !0, this.isInit = !1, this.oldTranslateValue = -1, this.init = this.init.bind(this), this.customWrapper = this.settings.customWrapper && this.element.closest(this.settings.customWrapper) ? this.element.closest(this.settings.customWrapper) : null, l(e) ? this.init() : this.element.addEventListener("load", function () { 1635 setTimeout(function () { 1636 i.init(!0); 1637 }, 50); 1638 }); 1639 } 1640 1641 var e, n, i; 1642 return e = t, (n = [{ 1643 key: "init", 1644 value: function value(t) { 1645 var e = this; 1646 this.isInit || (t && (this.rangeMax = null), this.element.closest(".simpleParallax") || (!1 === this.settings.overflow && this.wrapElement(this.element), this.setTransformCSS(), this.getElementOffset(), this.intersectionObserver(), this.getTranslateValue(), this.animate(), this.settings.delay > 0 ? setTimeout(function () { 1647 e.setTransitionCSS(), e.elementContainer.classList.add("simple-parallax-initialized"); 1648 }, 10) : this.elementContainer.classList.add("simple-parallax-initialized"), this.isInit = !0)); 1649 } 1650 }, { 1651 key: "wrapElement", 1652 value: function value() { 1653 var t = this.element.closest("picture") || this.element, 1654 e = this.customWrapper || document.createElement("div"); 1655 e.classList.add("simpleParallax"), e.style.overflow = "hidden", this.customWrapper || (t.parentNode.insertBefore(e, t), e.appendChild(t)), this.elementContainer = e; 1656 } 1657 }, { 1658 key: "unWrapElement", 1659 value: function value() { 1660 var t = this.elementContainer; 1661 this.customWrapper ? (t.classList.remove("simpleParallax"), t.style.overflow = "") : t.replaceWith.apply(t, u(t.childNodes)); 1662 } 1663 }, { 1664 key: "setTransformCSS", 1665 value: function value() { 1666 !1 === this.settings.overflow && (this.element.style[a] = "scale(".concat(this.settings.scale, ")")), this.element.style.willChange = "transform"; 1667 } 1668 }, { 1669 key: "setTransitionCSS", 1670 value: function value() { 1671 this.element.style.transition = "transform ".concat(this.settings.delay, "s ").concat(this.settings.transition); 1672 } 1673 }, { 1674 key: "unSetStyle", 1675 value: function value() { 1676 this.element.style.willChange = "", this.element.style[a] = "", this.element.style.transition = ""; 1677 } 1678 }, { 1679 key: "getElementOffset", 1680 value: function value() { 1681 var t = this.elementContainer.getBoundingClientRect(); 1682 1683 if (this.elementHeight = t.height, this.elementTop = t.top + s.positions.top, this.settings.customContainer) { 1684 var e = this.settings.customContainer.getBoundingClientRect(); 1685 this.elementTop = t.top - e.top + s.positions.top; 1686 } 1687 1688 this.elementBottom = this.elementHeight + this.elementTop; 1689 } 1690 }, { 1691 key: "buildThresholdList", 1692 value: function value() { 1693 for (var t = [], e = 1; e <= this.elementHeight; e++) { 1694 var n = e / this.elementHeight; 1695 t.push(n); 1696 } 1697 1698 return t; 1699 } 1700 }, { 1701 key: "intersectionObserver", 1702 value: function value() { 1703 var t = { 1704 root: null, 1705 threshold: this.buildThresholdList() 1706 }; 1707 this.observer = new IntersectionObserver(this.intersectionObserverCallback.bind(this), t), this.observer.observe(this.element); 1708 } 1709 }, { 1710 key: "intersectionObserverCallback", 1711 value: function value(t) { 1712 var e = this; 1713 t.forEach(function (t) { 1714 t.isIntersecting ? e.isVisible = !0 : e.isVisible = !1; 1715 }); 1716 } 1717 }, { 1718 key: "checkIfVisible", 1719 value: function value() { 1720 return this.elementBottom > s.positions.top && this.elementTop < s.positions.bottom; 1721 } 1722 }, { 1723 key: "getRangeMax", 1724 value: function value() { 1725 var t = this.element.clientHeight; 1726 this.rangeMax = t * this.settings.scale - t; 1727 } 1728 }, { 1729 key: "getTranslateValue", 1730 value: function value() { 1731 var t = ((s.positions.bottom - this.elementTop) / ((s.positions.height + this.elementHeight) / 100)).toFixed(1); 1732 return t = Math.min(100, Math.max(0, t)), 0 !== this.settings.maxTransition && t > this.settings.maxTransition && (t = this.settings.maxTransition), this.oldPercentage !== t && (this.rangeMax || this.getRangeMax(), this.translateValue = (t / 100 * this.rangeMax - this.rangeMax / 2).toFixed(0), this.oldTranslateValue !== this.translateValue && (this.oldPercentage = t, this.oldTranslateValue = this.translateValue, !0)); 1733 } 1734 }, { 1735 key: "animate", 1736 value: function value() { 1737 var t, 1738 e = 0, 1739 n = 0; 1740 (this.settings.orientation.includes("left") || this.settings.orientation.includes("right")) && (n = "".concat(this.settings.orientation.includes("left") ? -1 * this.translateValue : this.translateValue, "px")), (this.settings.orientation.includes("up") || this.settings.orientation.includes("down")) && (e = "".concat(this.settings.orientation.includes("up") ? -1 * this.translateValue : this.translateValue, "px")), t = !1 === this.settings.overflow ? "translate3d(".concat(n, ", ").concat(e, ", 0) scale(").concat(this.settings.scale, ")") : "translate3d(".concat(n, ", ").concat(e, ", 0)"), this.element.style[a] = t; 1741 } 1742 }]) && h(e.prototype, n), i && h(e, i), t; 1743 }(); 1744 1745 function m(t) { 1746 return function (t) { 1747 if (Array.isArray(t)) return y(t); 1748 }(t) || function (t) { 1749 if ("undefined" != typeof Symbol && Symbol.iterator in Object(t)) return Array.from(t); 1750 }(t) || d(t) || function () { 1751 throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); 1752 }(); 1753 } 1754 1755 function p(t, e) { 1756 return function (t) { 1757 if (Array.isArray(t)) return t; 1758 }(t) || function (t, e) { 1759 if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(t))) return; 1760 var n = [], 1761 i = !0, 1762 r = !1, 1763 s = void 0; 1764 1765 try { 1766 for (var o, a = t[Symbol.iterator](); !(i = (o = a.next()).done) && (n.push(o.value), !e || n.length !== e); i = !0) { 1767 ; 1768 } 1769 } catch (t) { 1770 r = !0, s = t; 1771 } finally { 1772 try { 1773 i || null == a["return"] || a["return"](); 1774 } finally { 1775 if (r) throw s; 1776 } 1777 } 1778 1779 return n; 1780 }(t, e) || d(t, e) || function () {
1781 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); 1782 }(); 1783 } 1784 1785 function d(t, e) { 1786 if (t) { 1787 if ("string" == typeof t) return y(t, e); 1788 var n = Object.prototype.toString.call(t).slice(8, -1); 1789 return "Object" === n && t.constructor && (n = t.constructor.name), "Map" === n || "Set" === n ? Array.from(t) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? y(t, e) : void 0; 1790 } 1791 } 1792 1793 function y(t, e) { 1794 (null == e || e > t.length) && (e = t.length); 1795 1796 for (var n = 0, i = new Array(e); n < e; n++) { 1797 i[n] = t[n]; 1798 } 1799 1800 return i; 1801 } 1802 1803 function v(t, e) { 1804 for (var n = 0; n < e.length; n++) { 1805 var i = e[n]; 1806 i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i); 1807 } 1808 } 1809 1810 var g, 1811 b, 1812 w = !1, 1813 T = [], 1814 x = function () { 1815 function t(e, n) { 1816 if (function (t, e) { 1817 if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); 1818 }(this, t), e && i()) { 1819 if (this.elements = o(e), this.defaults = { 1820 delay: 0, 1821 orientation: "up", 1822 scale: 1.3, 1823 overflow: !1, 1824 transition: "cubic-bezier(0,0,0,1)", 1825 customContainer: "", 1826 customWrapper: "", 1827 maxTransition: 0 1828 }, this.settings = Object.assign(this.defaults, n), this.settings.customContainer) { 1829 var r = p(o(this.settings.customContainer), 1); 1830 this.customContainer = r[0]; 1831 } 1832 1833 this.lastPosition = -1, this.resizeIsDone = this.resizeIsDone.bind(this), this.refresh = this.refresh.bind(this), this.proceedRequestAnimationFrame = this.proceedRequestAnimationFrame.bind(this), this.init(); 1834 } 1835 } 1836 1837 var e, n, r; 1838 return e = t, (n = [{ 1839 key: "init", 1840 value: function value() { 1841 var t = this; 1842 s.setViewportAll(this.customContainer), T = [].concat(m(this.elements.map(function (e) { 1843 return new f(e, t.settings); 1844 })), m(T)), w || (this.proceedRequestAnimationFrame(), window.addEventListener("resize", this.resizeIsDone), w = !0); 1845 } 1846 }, { 1847 key: "resizeIsDone", 1848 value: function value() { 1849 clearTimeout(b), b = setTimeout(this.refresh, 200); 1850 } 1851 }, { 1852 key: "proceedRequestAnimationFrame", 1853 value: function value() { 1854 var t = this; 1855 s.setViewportTop(this.customContainer), this.lastPosition !== s.positions.top ? (s.setViewportBottom(), T.forEach(function (e) { 1856 t.proceedElement(e); 1857 }), g = window.requestAnimationFrame(this.proceedRequestAnimationFrame), this.lastPosition = s.positions.top) : g = window.requestAnimationFrame(this.proceedRequestAnimationFrame); 1858 } 1859 }, { 1860 key: "proceedElement", 1861 value: function value(t) { 1862 (this.customContainer ? t.checkIfVisible() : t.isVisible) && t.getTranslateValue() && t.animate(); 1863 } 1864 }, { 1865 key: "refresh", 1866 value: function value() { 1867 s.setViewportAll(this.customContainer), T.forEach(function (t) { 1868 t.getElementOffset(), t.getRangeMax(); 1869 }), this.lastPosition = -1; 1870 } 1871 }, { 1872 key: "destroy", 1873 value: function value() { 1874 var t = this, 1875 e = []; 1876 T = T.filter(function (n) { 1877 return t.elements.includes(n.element) ? (e.push(n), !1) : n; 1878 }), e.forEach(function (e) { 1879 e.unSetStyle(), !1 === t.settings.overflow && e.unWrapElement(); 1880 }), T.length || (window.cancelAnimationFrame(g), window.removeEventListener("resize", this.refresh), w = !1); 1881 } 1882 }]) && v(e.prototype, n), r && v(e, r), t; 1883 }(); 1884 }])["default"]; 1885}); 1886 1887/***/ }), 1888
vendor: 6,872 bytes, lines 1889-2023
1889/***/ "./assets/js/vendor/slick.min.js": 1890/*!***************************************!*\ 1891 !*** ./assets/js/vendor/slick.min.js ***! 1892 \***************************************/ 1893/***/ ((module, exports, __webpack_require__) => { 1894 1895var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } 1896 1897!function (i) { 1898 "use strict"; 1899 1900 true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ "jquery")], __WEBPACK_AMD_DEFINE_FACTORY__ = (i), 1901 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 1902 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 1903 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : 0; 1904}(function (d) { 1905 "use strict"; 1906 1907 var s, 1908 l = window.Slick || {}; 1909 s = 0, (l = function l(i, e) { 1910 var t, 1911 o = this; 1912 o.defaults = { 1913 adaptiveHeight: !1, 1914 appendArrows: d(i), 1915 appendDots: d(i), 1916 arrows: !0, 1917 arrowsPlacement: null, 1918 asNavFor: null, 1919 prevArrow: '<button class="slick-prev" type="button"><span class="slick-prev-icon" aria-hidden="true"></span><span class="slick-sr-only">Previous</span></button>', 1920 nextArrow: '<button class="slick-next" type="button"><span class="slick-next-icon" aria-hidden="true"></span><span class="slick-sr-only">Next</span></button>', 1921 autoplay: !1, 1922 autoplaySpeed: 3e3, 1923 centerMode: !1, 1924 centerPadding: "50px", 1925 cssEase: "ease", 1926 customPaging: function customPaging(i, e) { 1927 return d('<button type="button"><span class="slick-dot-icon" aria-hidden="true"></span><span class="slick-sr-only">Go to slide ' + (e + 1) + "</span></button>"); 1928 }, 1929 dots: !1, 1930 dotsClass: "slick-dots", 1931 draggable: !0, 1932 easing: "linear", 1933 edgeFriction: .35, 1934 fade: !1, 1935 infinite: !0, 1936 initialSlide: 0, 1937 instructionsText: null, 1938 lazyLoad: "ondemand", 1939 mobileFirst: !1, 1940 playIcon: '<span class="slick-play-icon" aria-hidden="true"></span>', 1941 pauseIcon: '<span class="slick-pause-icon" aria-hidden="true"></span>', 1942 pauseOnHover: !0, 1943 pauseOnFocus: !0, 1944 pauseOnDotsHover: !1, 1945 regionLabel: "carousel", 1946 respondTo: "window", 1947 responsive: null, 1948 rows: 1, 1949 rtl: !1, 1950 slide: "", 1951 slidesPerRow: 1, 1952 slidesToShow: 1, 1953 slidesToScroll: 1, 1954 speed: 500, 1955 swipe: !0, 1956 swipeToSlide: !1, 1957 touchMove: !0, 1958 touchThreshold: 5, 1959 useAutoplayToggleButton: !0, 1960 useCSS: !0, 1961 useGroupRole: !0, 1962 useTransform: !0, 1963 variableWidth: !1, 1964 vertical: !1, 1965 verticalSwiping: !1, 1966 waitForAnimate: !0, 1967 zIndex: 1e3 1968 }, o.initials = { 1969 animating: !1, 1970 dragging: !1, 1971 autoPlayTimer: null, 1972 currentDirection: 0, 1973 currentLeft: null, 1974 currentSlide: 0, 1975 direction: 1, 1976 $dots: null, 1977 $instructionsText: null, 1978 listWidth: null, 1979 listHeight: null, 1980 loadIndex: 0, 1981 $nextArrow: null, 1982 $pauseButton: null, 1983 $pauseIcon: null, 1984 $playIcon: null, 1985 $prevArrow: null, 1986 scrolling: !1, 1987 slideCount: null, 1988 slideWidth: null, 1989 $slideTrack: null, 1990 $slides: null, 1991 sliding: !1, 1992 slideOffset: 0, 1993 swipeLeft: null, 1994 swiping: !1, 1995 $list: null, 1996 touchObject: {}, 1997 transformsEnabled: !1, 1998 unslicked: !1 1999 }, d.extend(o, o.initials), o.activeBreakpoint = null, o.animType = null, o.animProp = null, o.breakpoints = [], o.breakpointSettings = [], o.cssTransitions = !1, o.focussed = !1, o.interrupted = !1, o.hidden = "hidden", o.paused = !0, o.positionProp = null, o.respondTo = null, o.rowCount = 1, o.shouldClick = !0, o.$slider = d(i), o.$slidesCache = null, o.transformType = null, o.transitionType = null, o.visibilityChange = "visibilitychange", o.windowWidth = 0, o.windowTimer = null, t = d(i).data("slick") || {}, o.options = d.extend({}, o.defaults, e, t), o.currentSlide = o.options.initialSlide, o.originalSettings = o.options, void 0 !== document.mozHidden ? (o.hidden = "mozHidden", o.visibilityChange = "mozvisibilitychange") : void 0 !== document.webkitHidden && (o.hidden = "webkitHidden", o.visibilityChange = "webkitvisibilitychange"), o.autoPlay = d.proxy(o.autoPlay, o), o.autoPlayClear = d.proxy(o.autoPlayClear, o), o.autoPlayIterator = d.proxy(o.autoPlayIterator, o), o.autoPlayToggleHandler = d.proxy(o.autoPlayToggleHandler, o), o.changeSlide = d.proxy(o.changeSlide, o), o.clickHandler = d.proxy(o.clickHandler, o), o.selectHandler = d.proxy(o.selectHandler, o), o.setPosition = d.proxy(o.setPosition, o), o.swipeHandler = d.proxy(o.swipeHandler, o), o.dragHandler = d.proxy(o.dragHandler, o), o.instanceUid = s++, o.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/, o.registerBreakpoints(), o.init(!0); 2000 }).prototype.addSlide = l.prototype.slickAdd = function (i, e, t) { 2001 var o = this; 2002 if ("boolean" == typeof e) t = e, e = null;else if (e < 0 || e >= o.slideCount) return !1; 2003 o.unload(), "number" == typeof e ? 0 === e && 0 === o.$slides.length ? d(i).appendTo(o.$slideTrack) : t ? d(i).insertBefore(o.$slides.eq(e)) : d(i).insertAfter(o.$slides.eq(e)) : !0 === t ? d(i).prependTo(o.$slideTrack) : d(i).appendTo(o.$slideTrack), o.$slides = o.$slideTrack.children(this.options.slide), o.$slideTrack.children(this.options.slide).detach(), o.$slideTrack.append(o.$slides), o.$slides.each(function (i, e) { 2004 d(e).attr("data-slick-index", i), d(e).attr("role", "group"), d(e).attr("aria-label", "slide " + i); 2005 }), o.$slidesCache = o.$slides, o.reinit(); 2006 }, l.prototype.animateHeight = function () { 2007 var i, 2008 e = this; 2009 1 === e.options.slidesToShow && !0 === e.options.adaptiveHeight && !1 === e.options.vertical && (i = e.$slides.eq(e.currentSlide).outerHeight(!0), e.$list.animate({ 2010 height: i 2011 }, e.options.speed)); 2012 }, l.prototype.animateSlide = function (i, e) { 2013 var t = {}, 2014 o = this; 2015 o.animateHeight(), !0 === o.options.rtl && !1 === o.options.vertical && (i = -i), !1 === o.transformsEnabled ? !1 === o.options.vertical ? o.$slideTrack.animate({ 2016 left: i 2017 }, o.options.speed, o.options.easing, e) : o.$slideTrack.animate({ 2018 top: i 2019 }, o.options.speed, o.options.easing, e) : !1 === o.cssTransitions ? (!0 === o.options.rtl && (o.currentLeft = -o.currentLeft), d({ 2020 animStart: o.currentLeft 2021 }).animate({ 2022 animStart: i 2023 }, {
2024 duration: o.options.speed, 2025 easing: o.options.easing, 2026 step: function step(i) { 2027 i = Math.ceil(i), !1 === o.options.vertical ? t[o.animType] = "translate(" + i + "px, 0px)" : t[o.animType] = "translate(0px," + i + "px)", o.$slideTrack.css(t); 2028 }, 2029 complete: function complete() { 2030 e && e.call(); 2031 } 2032 })) : (o.applyTransition(), i = Math.ceil(i), !1 === o.options.vertical ? t[o.animType] = "translate3d(" + i + "px, 0px, 0px)" : t[o.animType] = "translate3d(0px," + i + "px, 0px)", o.$slideTrack.css(t), e && setTimeout(function () { 2033 o.disableTransition(), e.call(); 2034 }, o.options.speed)); 2035 }, l.prototype.getNavTarget = function () { 2036 var i = this.options.asNavFor; 2037 return i && null !== i && (i = d(i).not(this.$slider)), i; 2038 }, l.prototype.asNavFor = function (e) { 2039 var i = this.getNavTarget(); 2040 null !== i && "object" == _typeof(i) && i.each(function () { 2041 var i = d(this).slick("getSlick"); 2042 i.unslicked || i.slideHandler(e, !0); 2043 }); 2044 }, l.prototype.applyTransition = function (i) { 2045 var e = this, 2046 t = {}; 2047 !1 === e.options.fade ? t[e.transitionType] = e.transformType + " " + e.options.speed + "ms " + e.options.cssEase : t[e.transitionType] = "opacity " + e.options.speed + "ms " + e.options.cssEase, !1 === e.options.fade ? e.$slideTrack.css(t) : e.$slides.eq(i).css(t); 2048 }, l.prototype.autoPlay = function () { 2049 var i = this; 2050 i.autoPlayClear(), i.slideCount > i.options.slidesToShow && (i.autoPlayTimer = setInterval(i.autoPlayIterator, i.options.autoplaySpeed)); 2051 }, l.prototype.autoPlayClear = function () { 2052 this.autoPlayTimer && clearInterval(this.autoPlayTimer); 2053 }, l.prototype.autoPlayIterator = function () { 2054 var i = this, 2055 e = i.currentSlide + i.options.slidesToScroll; 2056 i.paused || i.interrupted || i.focussed || (!1 === i.options.infinite && (1 === i.direction && i.currentSlide + 1 === i.slideCount - 1 ? i.direction = 0 : 0 === i.direction && (e = i.currentSlide - i.options.slidesToScroll, i.currentSlide - 1 == 0 && (i.direction = 1))), i.slideHandler(e)); 2057 }, l.prototype.autoPlayToggleHandler = function () { 2058 var i = this; 2059 i.paused ? (i.$playIcon.css("display", "none"), i.$pauseIcon.css("display", "inline"), i.$pauseButton.find(".slick-play-text").attr("style", "display: none"), i.$pauseButton.find(".slick-pause-text").removeAttr("style"), i.slickPlay()) : (i.$playIcon.css("display", "inline"), i.$pauseIcon.css("display", "none"), i.$pauseButton.find(".slick-play-text").removeAttr("style"), i.$pauseButton.find(".slick-pause-text").attr("style", "display: none"), i.slickPause()); 2060 }, l.prototype.buildArrows = function () { 2061 var i = this; 2062 if (!0 === i.options.arrows) if (i.$prevArrow = d(i.options.prevArrow).addClass("slick-arrow"), i.$nextArrow = d(i.options.nextArrow).addClass("slick-arrow"), i.slideCount > i.options.slidesToShow) { 2063 if (i.htmlExpr.test(i.options.prevArrow)) if (null != i.options.arrowsPlacement) switch (i.options.arrowsPlacement) { 2064 case "beforeSlides": 2065 case "split": 2066 console.log("test"), i.$prevArrow.prependTo(i.options.appendArrows); 2067 break; 2068 2069 case "afterSlides": 2070 i.$prevArrow.appendTo(i.options.appendArrows); 2071 } else i.$prevArrow.prependTo(i.options.appendArrows); 2072 if (i.htmlExpr.test(i.options.nextArrow)) if (null != i.options.arrowsPlacement) switch (i.options.arrowsPlacement) { 2073 case "beforeSlides": 2074 console.log("test2"), i.$prevArrow.after(i.$nextArrow); 2075 break; 2076 2077 case "afterSlides": 2078 case "split": 2079 i.$nextArrow.appendTo(i.options.appendArrows); 2080 } else i.$nextArrow.appendTo(i.options.appendArrows); 2081 !0 !== i.options.infinite && i.$prevArrow.addClass("slick-disabled").prop("disabled", !0); 2082 } else i.$prevArrow.add(i.$nextArrow).addClass("slick-hidden").prop("disabled", !0); 2083 }, l.prototype.buildDots = function () { 2084 var i, 2085 e, 2086 t = this; 2087 2088 if (!0 === t.options.dots && t.slideCount > t.options.slidesToShow) { 2089 for (t.$slider.addClass("slick-dotted"), e = d("<ul />
vendor: 5,905 bytes, lines 2089-2180
2089").addClass(t.options.dotsClass), i = 0; i <= t.getDotCount(); i += 1) { 2090 e.append(d("<li />").append(t.options.customPaging.call(this, t, i))); 2091 } 2092 2093 t.$dots = e.appendTo(t.options.appendDots), t.$dots.find("li").first().addClass("slick-active"); 2094 } 2095 }, l.prototype.buildOut = function () { 2096 var t = this; 2097 t.$slides = t.$slider.children(t.options.slide + ":not(.slick-cloned)").addClass("slick-slide"), t.slideCount = t.$slides.length, t.$slides.each(function (i, e) { 2098 d(e).attr("data-slick-index", i).data("originalStyling", d(e).attr("style") || ""), t.options.useGroupRole && d(e).attr("role", "group").attr("aria-label", "slide " + (i + 1)); 2099 }), t.$slider.addClass("slick-slider"), t.$slider.attr("role", "region"), t.$slider.attr("aria-label", t.options.regionLabel), t.$slideTrack = 0 === t.slideCount ? d('<div class="slick-track"/>').appendTo(t.$slider) : t.$slides.wrapAll('<div class="slick-track"/>').parent(), t.$list = t.$slideTrack.wrap('<div class="slick-list"/>').parent(), t.$slideTrack.css("opacity", 0), !0 !== t.options.centerMode && !0 !== t.options.swipeToSlide || (t.options.slidesToScroll = 1), d("img[data-lazy]", t.$slider).not("[src]").addClass("slick-loading"), t.setupInfinite(), t.buildArrows(), t.buildDots(), t.updateDots(), t.setSlideClasses("number" == typeof t.currentSlide ? t.currentSlide : 0), !0 === t.options.draggable && t.$list.addClass("draggable"), t.options.autoplay && t.options.useAutoplayToggleButton && (t.$pauseIcon = d(t.options.pauseIcon).attr("aria-hidden", !0), t.$playIcon = d(t.options.playIcon).attr("aria-hidden", !0), t.$pauseButton = d('<button type="button" class="slick-autoplay-toggle-button">'), t.$pauseButton.append(t.$pauseIcon), t.$pauseButton.append(t.$playIcon.css("display", "none")), t.$pauseButton.append(d('<span class="slick-pause-text slick-sr-only">Pause</span>')), t.$pauseButton.append(d('<span class="slick-play-text slick-sr-only" style="display: none">Play</span>')), t.$pauseButton.prependTo(t.$slider)), null != t.options.instructionsText && "" != t.options.instructionsText && (t.$instructionsText = d('<p class="slick-instructions slick-sr-only">' + t.options.instructionsText + "</p>"), t.$instructionsText.prependTo(t.$slider)); 2100 }, l.prototype.buildRows = function () { 2101 var i, 2102 e, 2103 t, 2104 o = this, 2105 s = document.createDocumentFragment(), 2106 n = o.$slider.children(); 2107 2108 if (0 < o.options.rows) { 2109 for (t = o.options.slidesPerRow * o.options.rows, e = Math.ceil(n.length / t), i = 0; i < e; i++) { 2110 for (var l = document.createElement("div"), r = 0; r < o.options.rows; r++) { 2111 for (var a = document.createElement("div"), d = 0; d < o.options.slidesPerRow; d++) { 2112 var p = i * t + (r * o.options.slidesPerRow + d); 2113 n.get(p) && a.appendChild(n.get(p)); 2114 } 2115 2116 l.appendChild(a); 2117 } 2118 2119 s.appendChild(l); 2120 } 2121 2122 o.$slider.empty().append(s), o.$slider.children().children().children().css({ 2123 width: 100 / o.options.slidesPerRow + "%", 2124 display: "inline-block" 2125 }); 2126 } 2127 }, l.prototype.checkResponsive = function (i, e) { 2128 var t, 2129 o, 2130 s, 2131 n = this, 2132 l = !1, 2133 r = n.$slider.width(), 2134 a = window.innerWidth || d(window).width(); 2135 2136 if ("window" === n.respondTo ? s = a : "slider" === n.respondTo ? s = r : "min" === n.respondTo && (s = Math.min(a, r)), n.options.responsive && n.options.responsive.length && null !== n.options.responsive) { 2137 for (t in o = null, n.breakpoints) { 2138 n.breakpoints.hasOwnProperty(t) && (!1 === n.originalSettings.mobileFirst ? s < n.breakpoints[t] && (o = n.breakpoints[t]) : s > n.breakpoints[t] && (o = n.breakpoints[t])); 2139 } 2140 2141 null !== o ? null !== n.activeBreakpoint && o === n.activeBreakpoint && !e || (n.activeBreakpoint = o, "unslick" === n.breakpointSettings[o] ? n.unslick(o) : (n.options = d.extend({}, n.originalSettings, n.breakpointSettings[o]), !0 === i && (n.currentSlide = n.options.initialSlide), n.refresh(i)), l = o) : null !== n.activeBreakpoint && (n.activeBreakpoint = null, n.options = n.originalSettings, !0 === i && (n.currentSlide = n.options.initialSlide), n.refresh(i), l = o), i || !1 === l || n.$slider.trigger("breakpoint", [n, l]); 2142 } 2143 }, l.prototype.changeSlide = function (i, e) { 2144 var t, 2145 o, 2146 s = this, 2147 n = d(i.currentTarget); 2148 2149 switch (n.is("a") && i.preventDefault(), n.is("li") || (n = n.closest("li")), t = s.slideCount % s.options.slidesToScroll != 0 ? 0 : (s.slideCount - s.currentSlide) % s.options.slidesToScroll, i.data.message) { 2150 case "previous": 2151 o = 0 == t ? s.options.slidesToScroll : s.options.slidesToShow - t, s.slideCount > s.options.slidesToShow && s.slideHandler(s.currentSlide - o, !1, e); 2152 break; 2153 2154 case "next": 2155 o = 0 == t ? s.options.slidesToScroll : t, s.slideCount > s.options.slidesToShow && s.slideHandler(s.currentSlide + o, !1, e); 2156 break; 2157 2158 case "index": 2159 var l = 0 === i.data.index ? 0 : i.data.index || n.index() * s.options.slidesToScroll; 2160 s.slideHandler(s.checkNavigable(l), !1, e), n.children().trigger("focus"); 2161 break; 2162 2163 default: 2164 return; 2165 } 2166 }, l.prototype.checkNavigable = function (i) { 2167 var e = this.getNavigableIndexes(), 2168 t = 0; 2169 if (i > e[e.length - 1]) i = e[e.length - 1];else for (var o in e) { 2170 if (i < e[o]) { 2171 i = t; 2172 break; 2173 } 2174 2175 t = e[o]; 2176 } 2177 return i; 2178 }, l.prototype.cleanUpEvents = function () { 2179 var i = this; 2180 i.options.autoplay && i.options.useAutoplayToggleButton && i.$pauseButton.off("click.slick", i.autoPlayToggleHandler), i.options.dots && null !== i.$dots && d("li", i.$dots).off("click.slick", i.changeSlide).off("mouseenter.slick", d.proxy(i.interrupt, i, !0)).off("mouseleave.
2180slick", d.proxy(i.interrupt, i, !1)), i.$slider.off("focus.slick blur.slick"), !0 === i.options.arrows && i.slideCount > i.options.slidesToShow && (i.$prevArrow && i.$prevArrow.off("click.slick", i.changeSlide), i.$nextArrow && i.$nextArrow.off("click.slick", i.changeSlide)), i.$list.off("touchstart.slick mousedown.slick", i.swipeHandler), i.$list.off("touchmove.slick mousemove.slick", i.swipeHandler), i.$list.off("touchend.slick mouseup.slick", i.swipeHandler), i.$list.off("touchcancel.slick mouseleave.slick", i.swipeHandler), i.$list.off("click.slick", i.clickHandler), d(document).off(i.visibilityChange, i.visibility), i.cleanUpSlideEvents(), d(window).off("orientationchange.slick.slick-" + i.instanceUid, i.orientationChange), d(window).off("resize.slick.slick-" + i.instanceUid, i.resize), d("[draggable!=true]", i.$slideTrack).off("dragstart", i.preventDefault), d(window).off("load.slick.slick-" + i.instanceUid, i.setPosition); 2181 }, l.prototype.cleanUpSlideEvents = function () { 2182 var i = this; 2183 i.$list.off("mouseenter.slick", d.proxy(i.interrupt, i, !0)), i.$list.off("mouseleave.slick", d.proxy(i.interrupt, i, !1)); 2184 }, l.prototype.cleanUpRows = function () { 2185 var i; 2186 0 < this.options.rows && ((i = this.$slides.children().children()).removeAttr("style"), this.$slider.empty().append(i)); 2187 }, l.prototype.clickHandler = function (i) { 2188 !1 === this.shouldClick && (i.stopImmediatePropagation(), i.stopPropagation(), i.preventDefault()); 2189 }, l.prototype.destroy = function (i) { 2190 var e = this; 2191 e.autoPlayClear(), e.touchObject = {}, e.cleanUpEvents(), d(".slick-cloned", e.$slider).detach(), e.options.autoplay && e.options.useAutoplayToggleButton && e.$pauseButton.remove(), e.$dots && e.$dots.remove(), e.$prevArrow && e.$prevArrow.length && (e.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").prop("disabled", !1).css("display", ""), e.htmlExpr.test(e.options.prevArrow) && e.$prevArrow.remove()), e.$nextArrow && e.$nextArrow.length && (e.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").prop("disabled", !1).css("display", ""), e.htmlExpr.test(e.options.nextArrow) && e.$nextArrow.remove()), e.$slides && (e.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function () { 2192 d(this).attr("style", d(this).data("originalStyling")); 2193 }), e.$slideTrack.children(this.options.slide).detach(), e.$slideTrack.detach(), e.$list.detach(), e.$slider.append(e.$slides)), e.cleanUpRows(), e.$slider.removeClass("slick-slider"), e.$slider.removeClass("slick-initialized"), e.$slider.removeClass("slick-dotted"), e.unslicked = !0, i || e.$slider.trigger("destroy", [e]); 2194 }, l.prototype.disableTransition = function (i) { 2195 var e = {}; 2196 e[this.transitionType] = "", !1 === this.options.fade ? this.$slideTrack.css(e) : this.$slides.eq(i).css(e); 2197 }, l.prototype.fadeSlide = function (i, e) { 2198 var t = this; 2199 !1 === t.cssTransitions ? (t.$slides.eq(i).css({ 2200 zIndex: t.options.zIndex 2201 }), t.$slides.eq(i).animate({ 2202 opacity: 1 2203 }, t.options.speed, t.options.easing, e)) : (t.applyTransition(i), t.$slides.eq(i).css({ 2204 opacity: 1, 2205 zIndex: t.options.zIndex 2206 }), e && setTimeout(function () { 2207 t.disableTransition(i), e.call(); 2208 }, t.options.speed)); 2209 }, l.prototype.fadeSlideOut = function (i) { 2210 var e = this; 2211 !1 === e.cssTransitions ? e.$slides.eq(i).animate({ 2212 opacity: 0, 2213 zIndex: e.options.zIndex - 2 2214 }, e.options.speed, e.options.easing) : (e.applyTransition(i), e.$slides.eq(i).css({ 2215 opacity: 0, 2216 zIndex: e.options.zIndex - 2 2217 })); 2218 }, l.prototype.filterSlides = l.prototype.slickFilter = function (i) { 2219 var e = this; 2220 null !== i && (e.$slidesCache = e.$slides, e.unload(), e.$slideTrack.children(this.options.slide).detach(), e.$slidesCache.filter(i).appendTo(e.$slideTrack), e.reinit()); 2221 }, l.prototype.focusHandler = function () { 2222 var t = this; 2223 t.$slider.off("focus.slick blur.slick").on("focus.slick", "*", function (i) { 2224 var e = d(this); 2225 setTimeout(function () { 2226 t.options.pauseOnFocus && e.is(":focus") && (t.focussed = !0, t.autoPlay()); 2227 }, 0); 2228 }).on("blur.slick", "*", function (i) { 2229 d(this); 2230 t.options.pauseOnFocus && (t.focussed = !1, t.autoPlay()); 2231 }); 2232 }, l.prototype.getCurrent = l.prototype.slickCurrentSlide = function () { 2233 return this.currentSlide; 2234 }, l.prototype.getDotCount = function () { 2235 var i = this, 2236 e = 0, 2237 t = 0, 2238 o = 0; 2239 if (!0 === i.options.infinite) { 2240 if (i.slideCount <= i.options.slidesToShow) ++o;else for (; e < i.slideCount;) { 2241 ++o, e = t + i.options.slidesToScroll, t += i.options.slidesToScroll <= i.options.slidesToShow ? i.options.slidesToScroll : i.options.slidesToShow; 2242 } 2243 }
vendor: 4,536 bytes, lines 2243-2284
2243 else if (!0 === i.options.centerMode) o = i.slideCount;else if (i.options.asNavFor) for (; e < i.slideCount;) { 2244 ++o, e = t + i.options.slidesToScroll, t += i.options.slidesToScroll <= i.options.slidesToShow ? i.options.slidesToScroll : i.options.slidesToShow; 2245 } else o = 1 + Math.ceil((i.slideCount - i.options.slidesToShow) / i.options.slidesToScroll); 2246 return o - 1; 2247 }, l.prototype.getLeft = function (i) { 2248 var e, 2249 t, 2250 o, 2251 s, 2252 n = this, 2253 l = 0; 2254 return n.slideOffset = 0, t = n.$slides.first().outerHeight(!0), !0 === n.options.infinite ? (n.slideCount > n.options.slidesToShow && (n.slideOffset = n.slideWidth * n.options.slidesToShow * -1, s = -1, !0 === n.options.vertical && !0 === n.options.centerMode && (2 === n.options.slidesToShow ? s = -1.5 : 1 === n.options.slidesToShow && (s = -2)), l = t * n.options.slidesToShow * s), n.slideCount % n.options.slidesToScroll != 0 && i + n.options.slidesToScroll > n.slideCount && n.slideCount > n.options.slidesToShow && (l = i > n.slideCount ? (n.slideOffset = (n.options.slidesToShow - (i - n.slideCount)) * n.slideWidth * -1, (n.options.slidesToShow - (i - n.slideCount)) * t * -1) : (n.slideOffset = n.slideCount % n.options.slidesToScroll * n.slideWidth * -1, n.slideCount % n.options.slidesToScroll * t * -1))) : i + n.options.slidesToShow > n.slideCount && (n.slideOffset = (i + n.options.slidesToShow - n.slideCount) * n.slideWidth, l = (i + n.options.slidesToShow - n.slideCount) * t), n.slideCount <= n.options.slidesToShow && (l = n.slideOffset = 0), !0 === n.options.centerMode && n.slideCount <= n.options.slidesToShow ? n.slideOffset = n.slideWidth * Math.floor(n.options.slidesToShow) / 2 - n.slideWidth * n.slideCount / 2 : !0 === n.options.centerMode && !0 === n.options.infinite ? n.slideOffset += n.slideWidth * Math.floor(n.options.slidesToShow / 2) - n.slideWidth : !0 === n.options.centerMode && (n.slideOffset = 0, n.slideOffset += n.slideWidth * Math.floor(n.options.slidesToShow / 2)), e = !1 === n.options.vertical ? i * n.slideWidth * -1 + n.slideOffset : i * t * -1 + l, !0 === n.options.variableWidth && (o = n.slideCount <= n.options.slidesToShow || !1 === n.options.infinite ? n.$slideTrack.children(".slick-slide").eq(i) : n.$slideTrack.children(".slick-slide").eq(i + n.options.slidesToShow), e = !0 === n.options.rtl ? o[0] ? -1 * (n.$slideTrack.width() - o[0].offsetLeft - o.width()) : 0 : o[0] ? -1 * o[0].offsetLeft : 0, !0 === n.options.centerMode && (o = n.slideCount <= n.options.slidesToShow || !1 === n.options.infinite ? n.$slideTrack.children(".slick-slide").eq(i) : n.$slideTrack.children(".slick-slide").eq(i + n.options.slidesToShow + 1), e = !0 === n.options.rtl ? o[0] ? -1 * (n.$slideTrack.width() - o[0].offsetLeft - o.width()) : 0 : o[0] ? -1 * o[0].offsetLeft : 0, e += (n.$list.width() - o.outerWidth()) / 2)), e; 2255 }, l.prototype.getOption = l.prototype.slickGetOption = function (i) { 2256 return this.options[i]; 2257 }, l.prototype.getNavigableIndexes = function () { 2258 for (var i = this, e = 0, t = 0, o = [], s = !1 === i.options.infinite ? i.slideCount : (e = -1 * i.options.slidesToScroll, t = -1 * i.options.slidesToScroll, 2 * i.slideCount); e < s;) { 2259 o.push(e), e = t + i.options.slidesToScroll, t += i.options.slidesToScroll <= i.options.slidesToShow ? i.options.slidesToScroll : i.options.slidesToShow; 2260 } 2261 2262 return o; 2263 }, l.prototype.getSlick = function () { 2264 return this; 2265 }, l.prototype.getSlideCount = function () { 2266 var s, 2267 n = this, 2268 i = !0 === n.options.centerMode ? Math.floor(n.$list.width() / 2) : 0, 2269 l = -1 * n.swipeLeft + i; 2270 return !0 === n.options.swipeToSlide ? (n.$slideTrack.find(".slick-slide").each(function (i, e) { 2271 var t = d(e).outerWidth(), 2272 o = e.offsetLeft; 2273 if (!0 !== n.options.centerMode && (o += t / 2), l < o + t) return s = e, !1; 2274 }), Math.abs(d(s).attr("data-slick-index") - n.currentSlide) || 1) : n.options.slidesToScroll; 2275 }, l.prototype.goTo = l.prototype.slickGoTo = function (i, e) { 2276 this.changeSlide({ 2277 data: { 2278 message: "index", 2279 index: parseInt(i) 2280 } 2281 }, e); 2282 }, l.prototype.init = function (i) { 2283 var e = this; 2284 d(e.$slider).hasClass("slick-initialized") || (d(e.$slider).addClass("slick-initialized"), e.buildRows(), e.buildOut(), e.setProps(), e.startLoad(), e.loadSlider(), e.initializeEvents(), e.updateArrows(), e.updateDots(), e.checkResponsive(!0), e.focusHandler()), i && e.$slider.trigger("init", [e]), e.o
2284ptions.autoplay && (e.paused = !1, e.autoPlay()), e.updateSlideVisibility(), null != e.options.accessibility && console.warn("accessibility setting is no longer supported."), null != e.options.focusOnChange && console.warn("focusOnChange is no longer supported."), null != e.options.focusOnSelect && console.warn("focusOnSelect is no longer supported."); 2285 }, l.prototype.initArrowEvents = function () { 2286 var i = this; 2287 !0 === i.options.arrows && i.slideCount > i.options.slidesToShow && (i.$prevArrow.off("click.slick").on("click.slick", { 2288 message: "previous" 2289 }, i.changeSlide), i.$nextArrow.off("click.slick").on("click.slick", { 2290 message: "next" 2291 }, i.changeSlide)); 2292 }, l.prototype.initDotEvents = function () { 2293 var i = this; 2294 !0 === i.options.dots && i.slideCount > i.options.slidesToShow && d("li", i.$dots).on("click.slick", { 2295 message: "index" 2296 }, i.changeSlide), !0 === i.options.dots && !0 === i.options.pauseOnDotsHover && i.slideCount > i.options.slidesToShow && d("li", i.$dots).on("mouseenter.slick", d.proxy(i.interrupt, i, !0)).on("mouseleave.slick", d.proxy(i.interrupt, i, !1)); 2297 }, l.prototype.initSlideEvents = function () { 2298 var i = this; 2299 i.options.pauseOnHover && (i.$list.on("mouseenter.slick", d.proxy(i.interrupt, i, !0)), i.$list.on("mouseleave.slick", d.proxy(i.interrupt, i, !1))); 2300 }, l.prototype.initializeEvents = function () { 2301 var i = this; 2302 i.initArrowEvents(), i.initDotEvents(), i.initSlideEvents(), i.options.autoplay && i.options.useAutoplayToggleButton && i.$pauseButton.on("click.slick", i.autoPlayToggleHandler), i.$list.on("touchstart.slick mousedown.slick", { 2303 action: "start" 2304 }, i.swipeHandler), i.$list.on("touchmove.slick mousemove.slick", { 2305 action: "move" 2306 }, i.swipeHandler), i.$list.on("touchend.slick mouseup.slick", { 2307 action: "end" 2308 }
vendor: 23,846 bytes, lines 2308-2631
2308, i.swipeHandler), i.$list.on("touchcancel.slick mouseleave.slick", { 2309 action: "end" 2310 }, i.swipeHandler), i.$list.on("click.slick", i.clickHandler), d(document).on(i.visibilityChange, d.proxy(i.visibility, i)), d(window).on("orientationchange.slick.slick-" + i.instanceUid, d.proxy(i.orientationChange, i)), d(window).on("resize.slick.slick-" + i.instanceUid, d.proxy(i.resize, i)), d("[draggable!=true]", i.$slideTrack).on("dragstart", i.preventDefault), d(window).on("load.slick.slick-" + i.instanceUid, i.setPosition), d(i.setPosition); 2311 }, l.prototype.initUI = function () { 2312 var i = this; 2313 !0 === i.options.arrows && i.slideCount > i.options.slidesToShow && (i.$prevArrow.show(), i.$nextArrow.show()), !0 === i.options.dots && i.slideCount > i.options.slidesToShow && i.$dots.show(); 2314 }, l.prototype.lazyLoad = function () { 2315 var i, 2316 e, 2317 t, 2318 n = this; 2319 2320 function o(i) { 2321 d("img[data-lazy]", i).each(function () { 2322 var i = d(this), 2323 e = d(this).attr("data-lazy"), 2324 t = d(this).attr("data-srcset"), 2325 o = d(this).attr("data-sizes") || n.$slider.attr("data-sizes"), 2326 s = document.createElement("img"); 2327 s.onload = function () { 2328 i.animate({ 2329 opacity: 0 2330 }, 100, function () { 2331 t && (i.attr("srcset", t), o && i.attr("sizes", o)), i.attr("src", e).animate({ 2332 opacity: 1 2333 }, 200, function () { 2334 i.removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"); 2335 }), n.$slider.trigger("lazyLoaded", [n, i, e]); 2336 }); 2337 }, s.onerror = function () { 2338 i.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"), n.$slider.trigger("lazyLoadError", [n, i, e]); 2339 }, s.src = e; 2340 }); 2341 } 2342 2343 if (!0 === n.options.centerMode ? t = !0 === n.options.infinite ? (e = n.currentSlide + (n.options.slidesToShow / 2 + 1)) + n.options.slidesToShow + 2 : (e = Math.max(0, n.currentSlide - (n.options.slidesToShow / 2 + 1)), n.options.slidesToShow / 2 + 1 + 2 + n.currentSlide) : (e = n.options.infinite ? n.options.slidesToShow + n.currentSlide : n.currentSlide, t = Math.ceil(e + n.options.slidesToShow), !0 === n.options.fade && (0 < e && e--, t <= n.slideCount && t++)), i = n.$slider.find(".slick-slide").slice(e, t), "anticipated" === n.options.lazyLoad) for (var s = e - 1, l = t, r = n.$slider.find(".slick-slide"), a = 0; a < n.options.slidesToScroll; a++) { 2344 s < 0 && (s = n.slideCount - 1), i = (i = i.add(r.eq(s))).add(r.eq(l)), s--, l++; 2345 } 2346 o(i), n.slideCount <= n.options.slidesToShow ? o(n.$slider.find(".slick-slide")) : n.currentSlide >= n.slideCount - n.options.slidesToShow ? o(n.$slider.find(".slick-cloned").slice(0, n.options.slidesToShow)) : 0 === n.currentSlide && o(n.$slider.find(".slick-cloned").slice(-1 * n.options.slidesToShow)); 2347 }, l.prototype.loadSlider = function () { 2348 var i = this; 2349 i.setPosition(), i.$slideTrack.css({ 2350 opacity: 1 2351 }), i.$slider.removeClass("slick-loading"), i.initUI(), "progressive" === i.options.lazyLoad && i.progressiveLazyLoad(); 2352 }, l.prototype.next = l.prototype.slickNext = function () { 2353 this.changeSlide({ 2354 data: { 2355 message: "next" 2356 } 2357 }); 2358 }, l.prototype.orientationChange = function () { 2359 this.checkResponsive(), this.setPosition(); 2360 }, l.prototype.pause = l.prototype.slickPause = function () { 2361 this.autoPlayClear(), this.paused = !0; 2362 }, l.prototype.play = l.prototype.slickPlay = function () { 2363 var i = this; 2364 i.autoPlay(), i.options.autoplay = !0, i.paused = !1, i.focussed = !1, i.interrupted = !1; 2365 }, l.prototype.postSlide = function (i) { 2366 var e = this; 2367 e.unslicked || (e.$slider.trigger("afterChange", [e, i]), e.animating = !1, e.slideCount > e.options.slidesToShow && e.setPosition(), e.swipeLeft = null, e.options.autoplay && e.autoPlay(), e.updateSlideVisibility()); 2368 }, l.prototype.prev = l.prototype.slickPrev = function () { 2369 this.changeSlide({ 2370 data: { 2371 message: "previous" 2372 } 2373 }); 2374 }, l.prototype.preventDefault = function (i) { 2375 i.preventDefault(); 2376 }, l.prototype.progressiveLazyLoad = function (i) { 2377 i = i || 1; 2378 var e, 2379 t, 2380 o, 2381 s, 2382 n, 2383 l = this, 2384 r = d("img[data-lazy]", l.$slider); 2385 r.length ? (e = r.first(), t = e.attr("data-lazy"), o = e.attr("data-srcset"), s = e.attr("data-sizes") || l.$slider.attr("data-sizes"), (n = document.createElement("img")).onload = function () { 2386 o && (e.attr("srcset", o), s && e.attr("sizes", s)), e.attr("src", t).removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"), !0 === l.options.adaptiveHeight && l.setPosition(), l.$slider.trigger("lazyLoaded", [l, e, t]), l.progressiveLazyLoad(); 2387 }, n.onerror = function () { 2388 i < 3 ? setTimeout(function () { 2389 l.progressiveLazyLoad(i + 1); 2390 }, 500) : (e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"), l.$slider.trigger("lazyLoadError", [l, e, t]), l.progressiveLazyLoad()); 2391 }, n.src = t) : l.$slider.trigger("allImagesLoaded", [l]); 2392 }, l.prototype.refresh = function (i) { 2393 var e, 2394 t = this, 2395 o = t.slideCount - t.options.slidesToShow; 2396 !t.options.infinite && t.currentSlide > o && (t.currentSlide = o), t.slideCount <= t.options.slidesToShow && (t.currentSlide = 0), e = t.currentSlide, t.destroy(!0), d.extend(t, t.initials, { 2397 currentSlide: e 2398 }), t.init(), i || t.changeSlide({ 2399 data: { 2400 message: "index", 2401 index: e 2402 } 2403 }, !1); 2404 }, l.prototype.registerBreakpoints = function () { 2405 var i, 2406 e, 2407 t, 2408 o = this, 2409 s = o.options.responsive || null; 2410 2411 if ("array" === d.type(s) && s.length) { 2412 for (i in o.respondTo = o.options.respondTo || "window", s) { 2413 if (t = o.breakpoints.length - 1, s.hasOwnProperty(i)) { 2414 for (e = s[i].breakpoint; 0 <= t;) { 2415 o.breakpoints[t] && o.breakpoints[t] === e && o.breakpoints.splice(t, 1), t--; 2416 } 2417 2418 o.breakpoints.push(e), o.breakpointSettings[e] = s[i].settings; 2419 } 2420 } 2421 2422 o.breakpoints.sort(function (i, e) { 2423 return o.options.mobileFirst ? i - e : e - i; 2424 }); 2425 } 2426 }, l.prototype.reinit = function () { 2427 var i = this; 2428 i.$slides = i.$slideTrack.children(i.options.slide).addClass("slick-slide"), i.slideCount = i.$slides.length, i.currentSlide >= i.slideCount && 0 !== i.currentSlide && (i.currentSlide = i.currentSlide - i.options.slidesToScroll), i.slideCount <= i.options.slidesToShow && (i.currentSlide = 0), i.registerBreakpoints(), i.setProps(), i.setupInfinite(), i.buildArrows(), i.updateArrows(), i.initArrowEvents(), i.buildDots(), i.updateDots(), i.initDotEvents(), i.cleanUpSlideEvents(), i.initSlideEvents(), i.checkResponsive(!1, !0), i.setSlideClasses("number" == typeof i.currentSlide ? i.currentSlide : 0), i.setPosition(), i.focusHandler(), i.paused = !i.options.autoplay, i.autoPlay(), i.$slider.trigger("reInit", [i]); 2429 }, l.prototype.resize = function () { 2430 var i = this; 2431 d(window).width() !== i.windowWidth && (clearTimeout(i.windowDelay), i.windowDelay = window.setTimeout(function () { 2432 i.windowWidth = d(window).width(), i.checkResponsive(), i.unslicked || i.setPosition(); 2433 }, 50)); 2434 }, l.prototype.removeSlide = l.prototype.slickRemove = function (i, e, t) { 2435 var o = this; 2436 if (i = "boolean" == typeof i ? !0 === (e = i) ? 0 : o.slideCount - 1 : !0 === e ? --i : i, o.slideCount < 1 || i < 0 || i > o.slideCount - 1) return !1; 2437 o.unload(), !0 === t ? o.$slideTrack.children().remove() : o.$slideTrack.children(this.options.slide).eq(i).remove(), o.$slides = o.$slideTrack.children(this.options.slide), o.$slideTrack.children(this.options.slide).detach(), o.$slideTrack.append(o.$slides), o.$slidesCache = o.$slides, o.reinit(); 2438 }, l.prototype.setCSS = function (i) { 2439 var e, 2440 t, 2441 o = this, 2442 s = {}; 2443 !0 === o.options.rtl && (i = -i), e = "left" == o.positionProp ? Math.ceil(i) + "px" : "0px", t = "top" == o.positionProp ? Math.ceil(i) + "px" : "0px", s[o.positionProp] = i, !1 === o.transformsEnabled || (!(s = {}) === o.cssTransitions ? s[o.animType] = "translate(" + e + ", " + t + ")" : s[o.animType] = "translate3d(" + e + ", " + t + ", 0px)"), o.$slideTrack.css(s); 2444 }, l.prototype.setDimensions = function () { 2445 var i = this; 2446 !1 === i.options.vertical ? !0 === i.options.centerMode && i.$list.css({ 2447 padding: "0px " + i.options.centerPadding 2448 }) : (i.$list.height(i.$slides.first().outerHeight(!0) * i.options.slidesToShow), !0 === i.options.centerMode && i.$list.css({ 2449 padding: i.options.centerPadding + " 0px" 2450 })), i.listWidth = i.$list.width(), i.listHeight = i.$list.height(), !1 === i.options.vertical && !1 === i.options.variableWidth ? (i.slideWidth = Math.ceil(i.listWidth / i.options.slidesToShow), i.$slideTrack.width(Math.ceil(i.slideWidth * i.$slideTrack.children(".slick-slide").length))) : !0 === i.options.variableWidth ? i.$slideTrack.width(5e3 * i.slideCount) : (i.slideWidth = Math.ceil(i.listWidth), i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0) * i.$slideTrack.children(".slick-slide").length))); 2451 var e = i.$slides.first().outerWidth(!0) - i.$slides.first().width(); 2452 !1 === i.options.variableWidth && i.$slideTrack.children(".slick-slide").width(i.slideWidth - e); 2453 }, l.prototype.setFade = function () { 2454 var t, 2455 o = this; 2456 o.$slides.each(function (i, e) { 2457 t = o.slideWidth * i * -1, !0 === o.options.rtl ? d(e).css({ 2458 position: "relative", 2459 right: t, 2460 top: 0, 2461 zIndex: o.options.zIndex - 2, 2462 opacity: 0 2463 }) : d(e).css({ 2464 position: "relative", 2465 left: t, 2466 top: 0, 2467 zIndex: o.options.zIndex - 2, 2468 opacity: 0 2469 }); 2470 }), o.$slides.eq(o.currentSlide).css({ 2471 zIndex: o.options.zIndex - 1, 2472 opacity: 1 2473 }); 2474 }, l.prototype.setHeight = function () { 2475 var i, 2476 e = this; 2477 1 === e.options.slidesToShow && !0 === e.options.adaptiveHeight && !1 === e.options.vertical && (i = e.$slides.eq(e.currentSlide).outerHeight(!0), e.$list.css("height", i)); 2478 }, l.prototype.setOption = l.prototype.slickSetOption = function () { 2479 var i, 2480 e, 2481 t, 2482 o, 2483 s, 2484 n = this, 2485 l = !1; 2486 if ("object" === d.type(arguments[0]) ? (t = arguments[0], l = arguments[1], s = "multiple") : "string" === d.type(arguments[0]) && (o = arguments[1], l = arguments[2], "responsive" === (t = arguments[0]) && "array" === d.type(arguments[1]) ? s = "responsive" : void 0 !== arguments[1] && (s = "single")), "single" === s) n.options[t] = o;else if ("multiple" === s) d.each(t, function (i, e) { 2487 n.options[i] = e; 2488 });else if ("responsive" === s) for (e in o) { 2489 if ("array" !== d.type(n.options.responsive)) n.options.responsive = [o[e]];else { 2490 for (i = n.options.responsive.length - 1; 0 <= i;) { 2491 n.options.responsive[i].breakpoint === o[e].breakpoint && n.options.responsive.splice(i, 1), i--; 2492 } 2493 2494 n.options.responsive.push(o[e]); 2495 } 2496 } 2497 l && (n.unload(), n.reinit()); 2498 }, l.prototype.setPosition = function () { 2499 var i = this; 2500 i.setDimensions(), i.setHeight(), !1 === i.options.fade ? i.setCSS(i.getLeft(i.currentSlide)) : i.setFade(), i.$slider.trigger("setPosition", [i]); 2501 }, l.prototype.setProps = function () { 2502 var i = this, 2503 e = document.body.style; 2504 i.positionProp = !0 === i.options.vertical ? "top" : "left", "top" === i.positionProp ? i.$slider.addClass("slick-vertical") : i.$slider.removeClass("slick-vertical"), void 0 === e.WebkitTransition && void 0 === e.MozTransition && void 0 === e.msTransition || !0 === i.options.useCSS && (i.cssTransitions = !0), i.options.fade && ("number" == typeof i.options.zIndex ? i.options.zIndex < 3 && (i.options.zIndex = 3) : i.options.zIndex = i.defaults.zIndex), void 0 !== e.OTransform && (i.animType = "OTransform", i.transformType = "-o-transform", i.transitionType = "OTransition", void 0 === e.perspectiveProperty && void 0 === e.webkitPerspective && (i.animType = !1)), void 0 !== e.MozTransform && (i.animType = "MozTransform", i.transformType = "-moz-transform", i.transitionType = "MozTransition", void 0 === e.perspectiveProperty && void 0 === e.MozPerspective && (i.animType = !1)), void 0 !== e.webkitTransform && (i.animType = "webkitTransform", i.transformType = "-webkit-transform", i.transitionType = "webkitTransition", void 0 === e.perspectiveProperty && void 0 === e.webkitPerspective && (i.animType = !1)), void 0 !== e.msTransform && (i.animType = "msTransform", i.transformType = "-ms-transform", i.transitionType = "msTransition", void 0 === e.msTransform && (i.animType = !1)), void 0 !== e.transform && !1 !== i.animType && (i.animType = "transform", i.transformType = "transform", i.transitionType = "transition"), i.transformsEnabled = i.options.useTransform && null !== i.animType && !1 !== i.animType; 2505 }, l.prototype.setSlideClasses = function (i) { 2506 var e, 2507 t, 2508 o, 2509 s, 2510 n = this, 2511 l = n.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden", "true").attr("aria-label", function () { 2512 return d(this).attr("aria-label").replace(" (centered)", ""); 2513 }); 2514 n.$slides.eq(i).addClass("slick-current"), !0 === n.options.centerMode ? (o = n.options.slidesToShow % 2 == 0 ? 1 : 0, s = Math.floor(n.options.slidesToShow / 2), !0 === n.options.infinite && (s <= i && i <= n.slideCount - 1 - s ? n.$slides.slice(i - s + o, i + s + 1).addClass("slick-active").removeAttr("aria-hidden") : (e = n.options.slidesToShow + i, l.slice(e - s + 1 + o, e + s + 2).addClass("slick-active").removeAttr("aria-hidden")), 0 === i ? l.eq(n.options.slidesToShow + n.slideCount + 1).addClass("slick-center").attr("aria-label", function () { 2515 return d(this).attr("aria-label") + " (centered)"; 2516 }) : i === n.slideCount - 1 && l.eq(n.options.slidesToShow).addClass("slick-center").attr("aria-label", function () { 2517 return d(this).attr("aria-label") + " (centered)"; 2518 })), n.$slides.eq(i).addClass("slick-center").attr("aria-label", function () { 2519 return d(this).attr("aria-label") + " (centered)"; 2520 })) : 0 <= i && i <= n.slideCount - n.options.slidesToShow ? n.$slides.slice(i, i + n.options.slidesToShow).addClass("slick-active").removeAttr("aria-hidden") : l.length <= n.options.slidesToShow ? l.addClass("slick-active").removeAttr("aria-hidden") : (t = n.slideCount % n.options.slidesToShow, e = !0 === n.options.infinite ? n.options.slidesToShow + i : i, n.options.slidesToShow == n.options.slidesToScroll && n.slideCount - i < n.options.slidesToShow ? l.slice(e - (n.options.slidesToShow - t), e + t).addClass("slick-active").removeAttr("aria-hidden") : l.slice(e, e + n.options.slidesToShow).addClass("slick-active").removeAttr("aria-hidden")), "ondemand" !== n.options.lazyLoad && "anticipated" !== n.options.lazyLoad || n.lazyLoad(); 2521 }, l.prototype.setupInfinite = function () { 2522 var i, 2523 e, 2524 t, 2525 o = this; 2526 2527 if (!0 === o.options.fade && (o.options.centerMode = !1), !0 === o.options.infinite && !1 === o.options.fade && (e = null, o.slideCount > o.options.slidesToShow)) { 2528 for (t = !0 === o.options.centerMode ? o.options.slidesToShow + 1 : o.options.slidesToShow, i = o.slideCount; i > o.slideCount - t; --i) { 2529 e = i - 1, d(o.$slides[e]).clone(!0).attr("id", "").attr("data-slick-index", e - o.slideCount).prependTo(o.$slideTrack).addClass("slick-cloned"); 2530 } 2531 2532 for (i = 0; i < t + o.slideCount; i += 1) { 2533 e = i, d(o.$slides[e]).clone(!0).attr("id", "").attr("data-slick-index", e + o.slideCount).appendTo(o.$slideTrack).addClass("slick-cloned"); 2534 } 2535 2536 o.$slideTrack.find(".slick-cloned").find("[id]").each(function () { 2537 d(this).attr("id", ""); 2538 }); 2539 } 2540 }, l.prototype.interrupt = function (i) { 2541 i || this.autoPlay(), this.interrupted = i; 2542 }, l.prototype.selectHandler = function (i) { 2543 var e = d(i.target).is(".slick-slide") ? d(i.target) : d(i.target).parents(".slick-slide"), 2544 t = (t = parseInt(e.attr("data-slick-index"))) || 0; 2545 this.slideCount <= this.options.slidesToShow ? this.slideHandler(t, !1, !0) : this.slideHandler(t); 2546 }, l.prototype.slideHandler = function (i, e, t) { 2547 var o, 2548 s, 2549 n, 2550 l, 2551 r, 2552 a, 2553 d = this; 2554 if (e = e || !1, !(!0 === d.animating && !0 === d.options.waitForAnimate || !0 === d.options.fade && d.currentSlide === i)) if (!1 === e && d.asNavFor(i), o = i, r = d.getLeft(o), l = d.getLeft(d.currentSlide), d.currentLeft = null === d.swipeLeft ? l : d.swipeLeft, !1 === d.options.infinite && !1 === d.options.centerMode && (i < 0 || i > d.getDotCount() * d.options.slidesToScroll)) !1 === d.options.fade && (o = d.currentSlide, !0 !== t && d.slideCount > d.options.slidesToShow ? d.animateSlide(l, function () { 2555 d.postSlide(o); 2556 }) : d.postSlide(o));else if (!1 === d.options.infinite && !0 === d.options.centerMode && (i < 0 || i > d.slideCount - d.options.slidesToScroll)) !1 === d.options.fade && (o = d.currentSlide, !0 !== t && d.slideCount > d.options.slidesToShow ? d.animateSlide(l, function () { 2557 d.postSlide(o); 2558 }) : d.postSlide(o));else { 2559 if (d.options.autoplay && clearInterval(d.autoPlayTimer), s = o < 0 ? d.slideCount % d.options.slidesToScroll != 0 ? d.slideCount - d.slideCount % d.options.slidesToScroll : d.slideCount + o : o >= d.slideCount ? d.slideCount % d.options.slidesToScroll != 0 ? 0 : o - d.slideCount : o, d.animating = !0, d.$slider.trigger("beforeChange", [d, d.currentSlide, s]), n = d.currentSlide, d.currentSlide = s, d.setSlideClasses(d.currentSlide), d.options.asNavFor && (a = (a = d.getNavTarget()).slick("getSlick")).slideCount <= a.options.slidesToShow && a.setSlideClasses(d.currentSlide), d.updateDots(), d.updateArrows(), !0 === d.options.fade) return !0 !== t ? (d.fadeSlideOut(n), d.fadeSlide(s, function () { 2560 d.postSlide(s); 2561 })) : d.postSlide(s), void d.animateHeight(); 2562 !0 !== t && d.slideCount > d.options.slidesToShow ? d.animateSlide(r, function () { 2563 d.postSlide(s); 2564 }) : d.postSlide(s); 2565 } 2566 }, l.prototype.startLoad = function () { 2567 var i = this; 2568 !0 === i.options.arrows && i.slideCount > i.options.slidesToShow && (i.$prevArrow.hide(), i.$nextArrow.hide()), !0 === i.options.dots && i.slideCount > i.options.slidesToShow && i.$dots.hide(), i.$slider.addClass("slick-loading"); 2569 }, l.prototype.swipeDirection = function () { 2570 var i = this, 2571 e = i.touchObject.startX - i.touchObject.curX, 2572 t = i.touchObject.startY - i.touchObject.curY, 2573 o = Math.atan2(t, e), 2574 s = Math.round(180 * o / Math.PI); 2575 return s < 0 && (s = 360 - Math.abs(s)), s <= 45 && 0 <= s || s <= 360 && 315 <= s ? !1 === i.options.rtl ? "left" : "right" : 135 <= s && s <= 225 ? !1 === i.options.rtl ? "right" : "left" : !0 === i.options.verticalSwiping ? 35 <= s && s <= 135 ? "down" : "up" : "vertical"; 2576 }, l.prototype.swipeEnd = function (i) { 2577 var e, 2578 t, 2579 o = this; 2580 if (o.dragging = !1, o.swiping = !1, o.scrolling) return o.scrolling = !1; 2581 if (o.interrupted = !1, o.shouldClick = !(10 < o.touchObject.swipeLength), void 0 === o.touchObject.curX) return !1; 2582 2583 if (!0 === o.touchObject.edgeHit && o.$slider.trigger("edge", [o, o.swipeDirection()]), o.touchObject.swipeLength >= o.touchObject.minSwipe) { 2584 switch (t = o.swipeDirection()) { 2585 case "left": 2586 case "down": 2587 e = o.options.swipeToSlide ? o.checkNavigable(o.currentSlide + o.getSlideCount()) : o.currentSlide + o.getSlideCount(), o.currentDirection = 0; 2588 break; 2589 2590 case "right": 2591 case "up": 2592 e = o.options.swipeToSlide ? o.checkNavigable(o.currentSlide - o.getSlideCount()) : o.currentSlide - o.getSlideCount(), o.currentDirection = 1; 2593 } 2594 2595 "vertical" != t && (o.slideHandler(e), o.touchObject = {}, o.$slider.trigger("swipe", [o, t])); 2596 } else o.touchObject.startX !== o.touchObject.curX && (o.slideHandler(o.currentSlide), o.touchObject = {}); 2597 }, l.prototype.swipeHandler = function (i) { 2598 var e = this; 2599 if (!(!1 === e.options.swipe || "ontouchend" in document && !1 === e.options.swipe || !1 === e.options.draggable && -1 !== i.type.indexOf("mouse"))) switch (e.touchObject.fingerCount = i.originalEvent && void 0 !== i.originalEvent.touches ? i.originalEvent.touches.length : 1, e.touchObject.minSwipe = e.listWidth / e.options.touchThreshold, !0 === e.options.verticalSwiping && (e.touchObject.minSwipe = e.listHeight / e.options.touchThreshold), i.data.action) { 2600 case "start": 2601 e.swipeStart(i); 2602 break; 2603 2604 case "move": 2605 e.swipeMove(i); 2606 break; 2607 2608 case "end": 2609 e.swipeEnd(i); 2610 } 2611 }, l.prototype.swipeMove = function (i) { 2612 var e, 2613 t, 2614 o, 2615 s, 2616 n, 2617 l = this, 2618 r = void 0 !== i.originalEvent ? i.originalEvent.touches : null; 2619 return !(!l.dragging || l.scrolling || r && 1 !== r.length) && (e = l.getLeft(l.currentSlide), l.touchObject.curX = void 0 !== r ? r[0].pageX : i.clientX, l.touchObject.curY = void 0 !== r ? r[0].pageY : i.clientY, l.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(l.touchObject.curX - l.touchObject.startX, 2))), n = Math.round(Math.sqrt(Math.pow(l.touchObject.curY - l.touchObject.startY, 2))), !l.options.verticalSwiping && !l.swiping && 4 < n ? !(l.scrolling = !0) : (!0 === l.options.verticalSwiping && (l.touchObject.swipeLength = n), t = l.swipeDirection(), void 0 !== i.originalEvent && 4 < l.touchObject.swipeLength && (l.swiping = !0, i.preventDefault()), s = (!1 === l.options.rtl ? 1 : -1) * (l.touchObject.curX > l.touchObject.startX ? 1 : -1), !0 === l.options.verticalSwiping && (s = l.touchObject.curY > l.touchObject.startY ? 1 : -1), o = l.touchObject.swipeLength, (l.touchObject.edgeHit = !1) === l.options.infinite && (0 === l.currentSlide && "right" === t || l.currentSlide >= l.getDotCount() && "left" === t) && (o = l.touchObject.swipeLength * l.options.edgeFriction, l.touchObject.edgeHit = !0), !1 === l.options.vertical ? l.swipeLeft = e + o * s : l.swipeLeft = e + o * (l.$list.height() / l.listWidth) * s, !0 === l.options.verticalSwiping && (l.swipeLeft = e + o * s), !0 !== l.options.fade && !1 !== l.options.touchMove && (!0 === l.animating ? (l.swipeLeft = null, !1) : void l.setCSS(l.swipeLeft)))); 2620 }, l.prototype.swipeStart = function (i) { 2621 var e, 2622 t = this; 2623 if (t.interrupted = !0, 1 !== t.touchObject.fingerCount || t.slideCount <= t.options.slidesToShow) return !(t.touchObject = {}); 2624 void 0 !== i.originalEvent && void 0 !== i.originalEvent.touches && (e = i.originalEvent.touches[0]), t.touchObject.startX = t.touchObject.curX = void 0 !== e ? e.pageX : i.clientX, t.touchObject.startY = t.touchObject.curY = void 0 !== e ? e.pageY : i.clientY, t.dragging = !0; 2625 }, l.prototype.unfilterSlides = l.prototype.slickUnfilter = function () { 2626 var i = this; 2627 null !== i.$slidesCache && (i.unload(), i.$slideTrack.children(this.options.slide).detach(), i.$slidesCache.appendTo(i.$slideTrack), i.reinit()); 2628 }, l.prototype.unload = function () { 2629 var i = this; 2630 d(".slick-cloned", i.$slider).remove(), i.$dots && i.$dots.remove(), i.$prevArrow && i.htmlExpr.test(i.options.prevArrow) && i.$prevArrow.remove(), i.$nextArrow && i.htmlExpr.test(i.options.nextArrow) && i.$nextArrow.remove(), i.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden", "true").css("width", ""); 2631 }
2631, l.prototype.unslick = function (i) { 2632 this.$slider.trigger("unslick", [this, i]), this.destroy(); 2633 }, l.prototype.updateArrows = function () { 2634 var i = this; 2635 Math.floor(i.options.slidesToShow / 2); 2636 !0 === i.options.arrows && i.slideCount > i.options.slidesToShow && !i.options.infinite && (i.$prevArrow.removeClass("slick-disabled").prop("disabled", !1), i.$nextArrow.removeClass("slick-disabled").prop("disabled", !1), 0 === i.currentSlide ? (i.$prevArrow.addClass("slick-disabled").prop("disabled", !0), i.$nextArrow.removeClass("slick-disabled").prop("disabled", !1)) : (i.currentSlide >= i.slideCount - i.options.slidesToShow && !1 === i.options.centerMode || i.currentSlide >= i.slideCount - 1 && !0 === i.options.centerMode) && (i.$nextArrow.addClass("slick-disabled").prop("disabled", !0), i.$prevArrow.removeClass("slick-disabled").prop("disabled", !1))); 2637 }, l.prototype.updateDots = function () { 2638 var i = this; 2639 null !== i.$dots && (i.$dots.find("li").removeClass("slick-active").find("button").removeAttr("aria-current").end().end(), i.$dots.find("li").eq(Math.floor(i.currentSlide / i.options.slidesToScroll)).addClass("slick-active").find("button").attr("aria-current", !0).end().end()); 2640 }, l.prototype.updateSlideVisibility = function () { 2641 this.$slideTrack.find(".slick-slide").attr("aria-hidden", "true").find("a, input, button, select").attr("tabindex", "-1"), this.$slideTrack.find(".slick-active").removeAttr("aria-hidden").find("a, input, button, select").removeAttr("tabindex"); 2642 }, l.prototype.visibility = function () { 2643 this.options.autoplay && (document[this.hidden] ? this.interrupted = !0 : this.interrupted = !1); 2644 }, d.fn.slick = function () { 2645 for (var i, e = this, t = arguments[0], o = Array.prototype.slice.call(arguments, 1), s = e.length, n = 0; n < s; n++) { 2646 if ("object" == _typeof(t) || void 0 === t ? e[n].slick = new l(e[n], t) : i = e[n].slick[t].apply(e[n].slick, o), void 0 !== i) return i; 2647 } 2648 2649 return e; 2650 }; 2651}); 2652 2653/***/ }), 2654
2655/***/ "./assets/js/vendor/svg-pan-zoom.min.js": 2656/*!**********************************************!*\ 2657 !*** ./assets/js/vendor/svg-pan-zoom.min.js ***! 2658 \**********************************************/ 2659/***/ ((module, exports, __webpack_require__) => { 2660 2661var __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } 2662 2663// svg-pan-zoom v3.6.1 2664// https://github.com/ariutta/svg-pan-zoom 2665!function s(r, a, l) { 2666 function u(e, t) { 2667 if (!a[e]) { 2668 if (!r[e]) { 2669 var o = undefined; 2670 if (!t && o) return require(e, !0); 2671 if (h) return h(e, !0); 2672 var n = new Error("Cannot find module '" + e + "'"); 2673 throw n.code = "MODULE_NOT_FOUND", n; 2674 } 2675 2676 var i = a[e] = { 2677 exports: {} 2678 }; 2679 r[e][0].call(i.exports, function (t) { 2680 return u(r[e][1][t] || t); 2681 }, i, i.exports, s, r, a, l); 2682 } 2683 2684 return a[e].exports; 2685 } 2686 2687 for (var h = undefined, t = 0; t < l.length; t++) { 2688 u(l[t]); 2689 } 2690 2691 return u; 2692}({ 2693 1: [function (t, e, o) { 2694 var s = t("./svg-utilities"); 2695 e.exports = { 2696 enable: function enable(t) { 2697 var e = t.svg.querySelector("defs"); 2698 2699 if (e || (e = document.createElementNS(s.svgNS, "defs"), t.svg.appendChild(e)), !e.querySelector("style#svg-pan-zoom-controls-styles")) { 2700 var o = document.createElementNS(s.svgNS, "style"); 2701 o.setAttribute("id", "svg-pan-zoom-controls-styles"), o.setAttribute("type", "text/css"), o.textContent = ".svg-pan-zoom-control { cursor: pointer; fill: black; fill-opacity: 0.333; } .svg-pan-zoom-control:hover { fill-opacity: 0.8; } .svg-pan-zoom-control-background { fill: white; fill-opacity: 0.5; } .svg-pan-zoom-control-background { fill-opacity: 0.8; }", e.appendChild(o); 2702 } 2703 2704 var n = document.createElementNS(s.svgNS, "g"); 2705 n.setAttribute("id", "svg-pan-zoom-controls"), n.setAttribute("transform", "translate(" + (t.width - 70) + " " + (t.height - 76) + ") scale(0.75)"), n.setAttribute("class", "svg-pan-zoom-control"), n.appendChild(this._createZoomIn(t)), n.appendChild(this._createZoomReset(t)), n.appendChild(this._createZoomOut(t)), t.svg.appendChild(n), t.controlIcons = n; 2706 }, 2707 _createZoomIn: function _createZoomIn(t) { 2708 var e = document.createElementNS(s.svgNS, "g"); 2709 e.setAttribute("id", "svg-pan-zoom-zoom-in"), e.setAttribute("transform", "translate(30.5 5) scale(0.015)"), e.setAttribute("class", "svg-pan-zoom-control"), e.addEventListener("click", function () { 2710 t.getPublicInstance().zoomIn(); 2711 }, !1), e.addEventListener("touchstart", function () { 2712 t.getPublicInstance().zoomIn(); 2713 }, !1); 2714 var o = document.createElementNS(s.svgNS, "rect"); 2715 o.setAttribute("x", "0"), o.setAttribute("y", "0"), o.setAttribute("width", "1500"), o.setAttribute("height", "1400"), o.setAttribute("class", "svg-pan-zoom-control-background"), e.appendChild(o); 2716 var n = document.createElementNS(s.svgNS, "path"); 2717 return n.setAttribute("d", "M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z"), n.setAttribute("class", "svg-pan-zoom-control-element"), e.appendChild(n), e; 2718 }, 2719 _createZoomReset: function _createZoomReset(t) { 2720 var e = document.createElementNS(s.svgNS, "g"); 2721 e.setAttribute("id", "svg-pan-zoom-reset-pan-zoom"), e.setAttribute("transform", "translate(5 35) scale(0.4)"), e.setAttribute("class", "svg-pan-zoom-control"), e.addEventListener("click", function () { 2722 t.getPublicInstance().reset(); 2723 }, !1), e.addEventListener("touchstart", function () { 2724 t.getPublicInstance().reset(); 2725 }, !1); 2726 var o = document.createElementNS(s.svgNS, "rect"); 2727 o.setAttribute("x", "2"), o.setAttribute("y", "2"), o.setAttribute("width", "182"), o.setAttribute("height", "58"), o.setAttribute("class", "svg-pan-zoom-control-background"), e.appendChild(o); 2728 var n = document.createElementNS(s.svgNS, "path"); 2729 n.setAttribute("d", "M33.051,20.632c-0.742-0.406-1.854-0.609-3.338-0.609h-7.969v9.281h7.769c1.543,0,2.701-0.188,3.473-0.562c1.365-0.656,2.048-1.953,2.048-3.891C35.032,22.757,34.372,21.351,33.051,20.632z"), n.setAttribute("class", "svg-pan-zoom-control-element"), e.appendChild(n); 2730 var i = document.createElementNS(s.svgNS, "path"); 2731 return i.setAttribute("d", "M170.231,0.5H15.847C7.102,0.5,0.5,5.708,0.5,11.84v38.861C0.5,56.833,7.102,61.5,15.847,61.5h154.384c8.745,0,15.269-4.667,15.269-10.798V11.84C185.5,5.708,178.976,0.5,170.231,0.5z M42.837,48.569h-7.969c-0.219-0.766-0.375-1.383-0.469-1.852c-0.188-0.969-0.289-1.961-0.305-2.977l-0.047-3.211c-0.03-2.203-0.41-3.672-1.142-4.406c-0.732-0.734-2.103-1.102-4.113-1.102h-7.05v13.547h-7.055V14.022h16.524c2.361,0.047,4.178,0.344,5.45,0.891c1.272,0.547,2.351,1.352,3.234,2.414c0.731,0.875,1.31,1.844,1.737,2.906s0.64,2.273,0.64,3.633c0,1.641-0.414,3.254-1.242,4.84s-2.195,2.707-4.102,3.363c1.594,0.641,2.723,1.551,3.387,2.73s0.996,2.98,0.996,5.402v2.32c0,1.578,0.063,2.648,0.19,3.211c0.19,0.891,0.635,1.547,1.333,1.969V48.569z M75.579,48.569h-26.18V14.022h25.336v6.117H56.454v7.336h16.781v6H56.454v8.883h19.125V48.569z M104.497,46.331c-2.44,2.086-5.887,3.129-10.34,3.129c-4.548,0-8.125-1.027-10.731-3.082s-3.909-4.879-3.909-8.473h6.891c0.224,1.578,0.662,2.758,1.316,3.539c1.196,1.422,3.246,2.133,6.15,2.133c1.739,0,3.151-0.188,4.236-0.562c2.058-0.719,3.087-2.055,3.087-4.008c0-1.141-0.504-2.023-1.512-2.648c-1.008-0.609-2.607-1.148-4.796-1.617l-3.74-0.82c-3.676-0.812-6.201-1.695-7.576-2.648c-2.328-1.594-3.492-4.086-3.492-7.477c0-3.094,1.139-5.664,3.417-7.711s5.623-3.07,10.036-3.07c3.685,0,6.829,0.965,9.431,2.895c2.602,1.93,3.966,4.73,4.093,8.402h-6.938c-0.128-2.078-1.057-3.555-2.787-4.43c-1.154-0.578-2.587-0.867-4.301-0.867c-1.907,0-3.428,0.375-4.565,1.125c-1.138,0.75-1.706,1.797-1.706,3.141c0,1.234,0.561,2.156,1.682,2.766c0.721,0.406,2.25,0.883,4.589,1.43l6.063,1.43c2.657,0.625,4.648,1.461,5.975,2.508c2.059,1.625,3.089,3.977,3.089,7.055C108.157,41.624,106.937,44.245,104.497,46.331z M139.61,48.569h-26.18V14.022h25.336v6.117h-18.281v7.336h16.781v6h-16.781v8.883h19.125V48.569z M170.337,20.14h-10.336v28.43h-7.266V20.14h-10.383v-6.117h27.984V20.14z"), i.setAttribute("class", "svg-pan-zoom-control-element"), e.appendChild(i), e; 2732 }, 2733 _createZoomOut: function _createZoomOut(t) { 2734 var e = document.createElementNS(s.svgNS, "g"); 2735 e.setAttribute("id", "svg-pan-zoom-zoom-out"), e.setAttribute("transform", "translate(30.5 70) scale(0.015)"), e.setAttribute("class", "svg-pan-zoom-control"), e.addEventListener("click", function () { 2736 t.getPublicInstance().zoomOut(); 2737 }, !1), e.addEventListener("touchstart", function () { 2738 t.getPublicInstance().zoomOut(); 2739 }, !1); 2740 var o = document.createElementNS(s.svgNS, "rect"); 2741 o.setAttribute("x", "0"), o.setAttribute("y", "0"), o.setAttribute("width", "1500"), o.setAttribute("height", "1400"), o.setAttribute("class", "svg-pan-zoom-control-background"), e.appendChild(o); 2742 var n = document.createElementNS(s.svgNS, "path"); 2743 return n.setAttribute("d", "M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z"), n.setAttribute("class", "svg-pan-zoom-control-element"), e.appendChild(n), e; 2744 }, 2745 disable: function disable(t) { 2746 t.controlIcons && (t.controlIcons.parentNode.removeChild(t.controlIcons), t.controlIcons = null); 2747 } 2748 }; 2749 }, { 2750 "./svg-utilities": 5 2751 }], 2752 2: [function (t, e, o) { 2753 function n(t, e) { 2754 this.init(t, e); 2755 } 2756 2757 var i = t("./svg-utilities"), 2758 r = t("./utilities"); 2759 n.prototype.init = function (t, e) { 2760 this.viewport = t, this.options = e, this.originalState = { 2761 zoom: 1, 2762 x: 0, 2763 y: 0 2764 }, this.activeState = { 2765 zoom: 1, 2766 x: 0, 2767 y: 0 2768 }, this.updateCTMCached = r.proxy(this.updateCTM, this), this.requestAnimationFrame = r.createRequestAnimationFrame(this.options.refreshRate), this.viewBox = { 2769 x: 0, 2770 y: 0, 2771 width: 0, 2772 height: 0 2773 }, this.cacheViewBox(); 2774 var o = this.processCTM(); 2775 this.setCTM(o), this.updateCTM(); 2776 }, n.prototype.cacheViewBox = function () { 2777 var t = this.options.svg.getAttribute("viewBox"); 2778 2779 if (t) { 2780 var e = t.split(/[\s\,]/).filter(function (t) { 2781 return t; 2782 }).map(parseFloat); 2783 this.viewBox.x = e[0], this.viewBox.y = e[1], this.viewBox.width = e[2], this.viewBox.height = e[3]; 2784 var o = Math.min(this.options.width / this.viewBox.width, this.options.height / this.viewBox.height); 2785 this.activeState.zoom = o, this.activeState.x = (this.options.width - this.viewBox.width * o) / 2, this.activeState.y = (this.options.height - this.viewBox.height * o) / 2, this.updateCTMOnNextFrame(), this.options.svg.removeAttribute("viewBox"); 2786 } else this.simpleViewBoxCache(); 2787 }, n.prototype.simpleViewBoxCache = function () { 2788 var t = this.viewport.getBBox(); 2789 this.viewBox.x = t.x, this.viewBox.y = t.y, this.viewBox.width = t.width, this.viewBox.height = t.height; 2790 }, n.prototype.getViewBox = function () { 2791 return r.extend({}, this.viewBox); 2792 }, n.prototype.processCTM = function () { 2793 var t, 2794 e = this.getCTM(); 2795 (this.options.fit || this.options.contain) && (t = this.options.fit ? Math.min(this.options.width / this.viewBox.width, this.options.height / this.viewBox.height) : Math.max(this.options.width / this.viewBox.width, this.options.height / this.viewBox.height), e.a = t, e.d = t, e.e = -this.viewBox.x * t, e.f = -this.viewBox.y * t); 2796 2797 if (this.options.center) { 2798 var o = .5 * (this.options.width - (this.viewBox.width + 2 * this.viewBox.x) * e.a), 2799 n = .5 * (this.options.height - (this.viewBox.height + 2 * this.viewBox.y) * e.a); 2800 e.e = o, e.f = n; 2801 } 2802 2803 return this.originalState.zoom = e.a, this.originalState.x = e.e, this.originalState.y = e.f, e; 2804 }, n.prototype.getOriginalState = function () { 2805 return r.extend({}, this.originalState); 2806 }, n.prototype.getState = function () { 2807 return r.extend({}, this.activeState); 2808 }, n.prototype.getZoom = function () { 2809 return this.activeState.zoom; 2810 }, n.prototype.getRelativeZoom = function () { 2811 return this.activeState.zoom / this.originalState.zoom; 2812 }, n.prototype.computeRelativeZoom = function (t) { 2813 return t / this.originalState.zoom; 2814 }, n.prototype.getPan = function () { 2815 return { 2816 x: this.activeState.x, 2817 y: this.activeState.y 2818 }; 2819 }, n.prototype.getCTM = function () { 2820 var t = this.options.svg.createSVGMatrix(); 2821 return t.a = this.activeState.zoom, t.b = 0, t.c = 0, t.d = this.activeState.zoom, t.e = this.activeState.x, t.f = this.activeState.y, t; 2822 }, n.prototype.setCTM = function (t) { 2823 var e = this.isZoomDifferent(t), 2824 o = this.isPanDifferent(t); 2825 2826 if (e || o) { 2827 if (e && (!1 === this.options.beforeZoom(this.getRelativeZoom(), this.computeRelativeZoom(t.a)) ? (t.a = t.d = this.activeState.zoom, e = !1) : (this.updateCache(t), this.options.onZoom(this.getRelativeZoom()))), o) { 2828 var n = this.options.beforePan(this.getPan(), { 2829 x: t.e, 2830 y: t.f 2831 }), 2832 i = !1, 2833 s = !1; 2834 !1 === n ? (t.e = this.getPan().x, t.f = this.getPan().y, i = s = !0) : r.isObject(n) && (!1 === n.x ? (t.e = this.getPan().x, i = !0) : r.isNumber(n.x) && (t.e = n.x), !1 === n.y ? (t.f = this.getPan().y, s = !0) : r.isNumber(n.y) && (t.f = n.y)), i && s || !this.isPanDifferent(t) ? o = !1 : (this.updateCache(t), this.options.onPan(this.getPan())); 2835 } 2836 2837 (e || o) && this.updateCTMOnNextFrame(); 2838 } 2839 }, n.prototype.isZoomDifferent = function (t) { 2840 return this.activeState.zoom !== t.a; 2841 }, n.prototype.isPanDifferent = function (t) { 2842 return this.activeState.x !== t.e || this.activeState.y !== t.f; 2843 }, n.prototype.updateCache = function (t) { 2844 this.activeState.zoom = t.a, this.activeState.x = t.e, this.activeState.y = t.f; 2845 }, n.prototype.pendingUpdate = !1, n.prototype.updateCTMOnNextFrame = function () { 2846 this.pendingUpdate || (this.pendingUpdate = !0, this.requestAnimationFrame.call(window, this.updateCTMCached)); 2847 }, n.prototype.updateCTM = function () { 2848 var t = this.getCTM(); 2849 i.setCTM(this.viewport, t, this.defs), this.pendingUpdate = !1, this.options.onUpdatedCTM && this.options.onUpdatedCTM(t); 2850 }, e.exports = function (t, e) { 2851 return new n(t, e); 2852 }; 2853 }, { 2854 "./svg-utilities": 5, 2855 "./utilities": 7 2856 }], 2857 3: [function (t, e, o) { 2858 var n, 2859 i = t("./svg-pan-zoom.js"); 2860 n = window, document, true ? !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () { 2861 return i; 2862 }).call(exports, __webpack_require__, exports, module), 2863 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : 0; 2864 }, { 2865 "./svg-pan-zoom.js": 4 2866 }], 2867 4: [function (t, e, o) { 2868 function i(t, e) { 2869 this.init(t, e); 2870 } 2871 2872 var n = t("./uniwheel"), 2873 s = t("./control-icons"), 2874 r = t("./utilities"), 2875 a = t("./svg-utilities"), 2876 l = t("./shadow-viewport"), 2877 u = { 2878 viewportSelector: ".svg-pan-zoom_viewport", 2879 panEnabled: !0, 2880 controlIconsEnabled: !1, 2881 zoomEnabled: !0, 2882 dblClickZoomEnabled: !0, 2883 mouseWheelZoomEnabled: !0, 2884 preventMouseEventsDefault: !0, 2885 zoomScaleSensitivity: .1, 2886 minZoom: .5, 2887 maxZoom: 10, 2888 fit: !0, 2889 contain: !1, 2890 center: !0, 2891 refreshRate: "auto", 2892 beforeZoom: null, 2893 onZoom: null, 2894 beforePan: null, 2895 onPan: null, 2896 customEventsHandler: null, 2897 eventsListenerElement: null, 2898 onUpdatedCTM: null 2899 }, 2900 h = { 2901 passive: !0 2902 }; 2903 i.prototype.init = function (t, e) { 2904 var o = this; 2905 this.svg = t, this.defs = t.querySelector("defs"), a.setupSvgAttributes(this.svg), this.options = r.extend(r.extend({}, u), e), this.state = "none"; 2906 var n = a.getBoundingClientRectNormalized(t); 2907 this.width = n.width, this.height = n.height, this.viewport = l(a.getOrCreateViewport(this.svg, this.options.viewportSelector), { 2908 svg: this.svg, 2909 width: this.width, 2910 height: this.height, 2911 fit: this.options.fit, 2912 contain: this.options.contain, 2913 center: this.options.center, 2914 refreshRate: this.options.refreshRate, 2915 beforeZoom: function beforeZoom(t, e) { 2916 if (o.viewport && o.options.beforeZoom) return o.options.beforeZoom(t, e); 2917 }, 2918 onZoom: function onZoom(t) { 2919 if (o.viewport && o.options.onZoom) return o.options.onZoom(t); 2920 }, 2921 beforePan: function beforePan(t, e) { 2922 if (o.viewport && o.options.beforePan) return o.options.beforePan(t, e); 2923 }, 2924 onPan: function onPan(t) { 2925 if (o.viewport && o.options.onPan) return o.options.onPan(t); 2926 }, 2927 onUpdatedCTM: function onUpdatedCTM(t) { 2928 if (o.viewport && o.options.onUpdatedCTM) return o.options.onUpdatedCTM(t); 2929 } 2930 }); 2931 var i = this.getPublicInstance();
vendor: 4,860 bytes, lines 2932-3026
2932 i.setBeforeZoom(this.options.beforeZoom), i.setOnZoom(this.options.onZoom), i.setBeforePan(this.options.beforePan), i.setOnPan(this.options.onPan), i.setOnUpdatedCTM(this.options.onUpdatedCTM), this.options.controlIconsEnabled && s.enable(this), this.lastMouseWheelEventTime = Date.now(), this.setupHandlers(); 2933 }, i.prototype.setupHandlers = function () { 2934 var o = this, 2935 n = null; 2936 2937 if (this.eventListeners = { 2938 mousedown: function mousedown(t) { 2939 var e = o.handleMouseDown(t, n); 2940 return n = t, e; 2941 }, 2942 touchstart: function touchstart(t) { 2943 var e = o.handleMouseDown(t, n); 2944 return n = t, e; 2945 }, 2946 mouseup: function mouseup(t) { 2947 return o.handleMouseUp(t); 2948 }, 2949 touchend: function touchend(t) { 2950 return o.handleMouseUp(t); 2951 }, 2952 mousemove: function mousemove(t) { 2953 return o.handleMouseMove(t); 2954 }, 2955 touchmove: function touchmove(t) { 2956 return o.handleMouseMove(t); 2957 }, 2958 mouseleave: function mouseleave(t) { 2959 return o.handleMouseUp(t); 2960 }, 2961 touchleave: function touchleave(t) { 2962 return o.handleMouseUp(t); 2963 }, 2964 touchcancel: function touchcancel(t) { 2965 return o.handleMouseUp(t); 2966 } 2967 }, null != this.options.customEventsHandler) { 2968 this.options.customEventsHandler.init({ 2969 svgElement: this.svg, 2970 eventsListenerElement: this.options.eventsListenerElement, 2971 instance: this.getPublicInstance() 2972 }); 2973 var t = this.options.customEventsHandler.haltEventListeners; 2974 if (t && t.length) for (var e = t.length - 1; 0 <= e; e--) { 2975 this.eventListeners.hasOwnProperty(t[e]) && delete this.eventListeners[t[e]]; 2976 } 2977 } 2978 2979 for (var i in this.eventListeners) { 2980 (this.options.eventsListenerElement || this.svg).addEventListener(i, this.eventListeners[i], !this.options.preventMouseEventsDefault && h); 2981 } 2982 2983 this.options.mouseWheelZoomEnabled && (this.options.mouseWheelZoomEnabled = !1, this.enableMouseWheelZoom()); 2984 }, i.prototype.enableMouseWheelZoom = function () { 2985 if (!this.options.mouseWheelZoomEnabled) { 2986 var e = this; 2987 2988 this.wheelListener = function (t) { 2989 return e.handleMouseWheel(t); 2990 }; 2991 2992 var t = !this.options.preventMouseEventsDefault; 2993 n.on(this.options.eventsListenerElement || this.svg, this.wheelListener, t), this.options.mouseWheelZoomEnabled = !0; 2994 } 2995 }, i.prototype.disableMouseWheelZoom = function () { 2996 if (this.options.mouseWheelZoomEnabled) { 2997 var t = !this.options.preventMouseEventsDefault; 2998 n.off(this.options.eventsListenerElement || this.svg, this.wheelListener, t), this.options.mouseWheelZoomEnabled = !1; 2999 } 3000 }, i.prototype.handleMouseWheel = function (t) { 3001 if (this.options.zoomEnabled && "none" === this.state) { 3002 this.options.preventMouseEventsDefault && (t.preventDefault ? t.preventDefault() : t.returnValue = !1); 3003 var e = t.deltaY || 1, 3004 o = Date.now() - this.lastMouseWheelEventTime, 3005 n = 3 + Math.max(0, 30 - o); 3006 this.lastMouseWheelEventTime = Date.now(), "deltaMode" in t && 0 === t.deltaMode && t.wheelDelta && (e = 0 === t.deltaY ? 0 : Math.abs(t.wheelDelta) / t.deltaY), e = -.3 < e && e < .3 ? e : (0 < e ? 1 : -1) * Math.log(Math.abs(e) + 10) / n; 3007 var i = this.svg.getScreenCTM().inverse(), 3008 s = a.getEventPoint(t, this.svg).matrixTransform(i), 3009 r = Math.pow(1 + this.options.zoomScaleSensitivity, -1 * e); 3010 this.zoomAtPoint(r, s); 3011 } 3012 }, i.prototype.zoomAtPoint = function (t, e, o) { 3013 var n = this.viewport.getOriginalState(); 3014 o ? (t = Math.max(this.options.minZoom * n.zoom, Math.min(this.options.maxZoom * n.zoom, t)), t /= this.getZoom()) : this.getZoom() * t < this.options.minZoom * n.zoom ? t = this.options.minZoom * n.zoom / this.getZoom() : this.getZoom() * t > this.options.maxZoom * n.zoom && (t = this.options.maxZoom * n.zoom / this.getZoom()); 3015 var i = this.viewport.getCTM(), 3016 s = e.matrixTransform(i.inverse()), 3017 r = this.svg.createSVGMatrix().translate(s.x, s.y).scale(t).translate(-s.x, -s.y), 3018 a = i.multiply(r); 3019 a.a !== i.a && this.viewport.setCTM(a); 3020 }, i.prototype.zoom = function (t, e) { 3021 this.zoomAtPoint(t, a.getSvgCenterPoint(this.svg, this.width, this.height), e); 3022 }, i.prototype.publicZoom = function (t, e) { 3023 e && (t = this.computeFromRelativeZoom(t)), this.zoom(t, e); 3024 }, i.prototype.publicZoomAtPoint = function (t, e, o) { 3025 if (o && (t = this.computeFromRelativeZoom(t)), "SVGPoint" !== r.getType(e)) { 3026 if (!("x" in e && "y" in e)) throw new Error("Given point is invali
3026d"); 3027 e = a.createSVGPoint(this.svg, e.x, e.y); 3028 } 3029 3030 this.zoomAtPoint(t, e, o); 3031 }, i.prototype.getZoom = function () { 3032 return this.viewport.getZoom(); 3033 }, i.prototype.getRelativeZoom = function () { 3034 return this.viewport.getRelativeZoom(); 3035 }, i.prototype.computeFromRelativeZoom = function (t) { 3036 return t * this.viewport.getOriginalState().zoom; 3037 }, i.prototype.resetZoom = function () { 3038 var t = this.viewport.getOriginalState(); 3039 this.zoom(t.zoom, !0); 3040 }, i.prototype.resetPan = function () { 3041 this.pan(this.viewport.getOriginalState()); 3042 }, i.prototype.reset = function () { 3043 this.resetZoom(), this.resetPan(); 3044 }, i.prototype.handleDblClick = function (t) { 3045 var e; 3046 if ((this.options.preventMouseEventsDefault && (t.preventDefault ? t.preventDefault() : t.returnValue = !1), this.options.controlIconsEnabled) && -1 < (t.target.getAttribute("class") || "").indexOf("svg-pan-zoom-control")) return !1; 3047 e = t.shiftKey ? 1 / (2 * (1 + this.options.zoomScaleSensitivity)) : 2 * (1 + this.options.zoomScaleSensitivity); 3048 var o = a.getEventPoint(t, this.svg).matrixTransform(this.svg.getScreenCTM().inverse()); 3049 this.zoomAtPoint(e, o); 3050 }, i.prototype.handleMouseDown = function (t, e) { 3051 this.options.preventMouseEventsDefault && (t.preventDefault ? t.preventDefault() : t.returnValue = !1), r.mouseAndTouchNormalize(t, this.svg), this.options.dblClickZoomEnabled && r.isDblClick(t, e) ? this.handleDblClick(t) : (this.state = "pan", this.firstEventCTM = this.viewport.getCTM(), this.stateOrigin = a.getEventPoint(t, this.svg).matrixTransform(this.firstEventCTM.inverse())); 3052 }, i.prototype.handleMouseMove = function (t) { 3053 if (this.options.preventMouseEventsDefault && (t.preventDefault ? t.preventDefault() : t.returnValue = !1), "pan" === this.state && this.options.panEnabled) { 3054 var e = a.getEventPoint(t, this.svg).matrixTransform(this.firstEventCTM.inverse()), 3055 o = this.firstEventCTM.translate(e.x - this.stateOrigin.x, e.y - this.stateOrigin.y); 3056 this.viewport.setCTM(o); 3057 } 3058 }, i.prototype.handleMouseUp = function (t) { 3059 this.options.preventMouseEventsDefault && (t.preventDefault ? t.preventDefault() : t.returnValue = !1), "pan" === this.state && (this.state = "none"); 3060 }, i.prototype.fit = function () { 3061 var t = this.viewport.getViewBox(), 3062 e = Math.min(this.width / t.width, this.height / t.height); 3063 this.zoom(e, !0); 3064 }, i.prototype.contain = function () { 3065 var t = this.viewport.getViewBox(), 3066 e = Math.max(this.width / t.width, this.height / t.height); 3067 this.zoom(e, !0); 3068 }, i.prototype.center = function () { 3069 var t = this.viewport.getViewBox(), 3070 e = .5 * (this.width - (t.width + 2 * t.x) * this.getZoom()), 3071 o = .5 * (this.height - (t.height + 2 * t.y) * this.getZoom()); 3072 this.getPublicInstance().pan({ 3073 x: e, 3074 y: o 3075 }); 3076 }, i.prototype.updateBBox = function () { 3077 this.viewport.simpleViewBoxCache(); 3078 }, i.prototype.pan = function (t) { 3079 var e = this.viewport.getCTM(); 3080 e.e = t.x, e.f = t.y, this.viewport.setCTM(e); 3081 }, i.prototype.panBy = function (t) { 3082 var e = this.viewport.getCTM(); 3083 e.e += t.x, e.f += t.y, this.viewport.setCTM(e); 3084 }, i.prototype.getPan = function () { 3085 var t = this.viewport.getState(); 3086 return { 3087 x: t.x, 3088 y: t.y 3089 }; 3090 }, i.prototype.resize = function () { 3091 var t = a.getBoundingClientRectNormalized(this.svg); 3092 this.width = t.width, this.height = t.height; 3093 var e = this.viewport; 3094 e.options.width = this.width, e.options.height = this.height, e.processCTM(), this.options.controlIconsEnabled && (this.getPublicInstance().disableControlIcons(), this.getPublicInstance().enableControlIcons()); 3095 }, i.prototype.destroy = function () { 3096 var e = this; 3097 3098 for (var t in this.beforeZoom = null, this.onZoom = null, this.beforePan = null, this.onPan = null, (this.onUpdatedCTM = null) != this.options.customEventsHandler && this.options.customEventsHandler.destroy({ 3099 svgElement: this.svg, 3100 eventsListenerElement: this.options.eventsListenerElement, 3101 instance: this.getPublicInstance() 3102 }), this.eventListeners) { 3103 (this.options.eventsListenerElement || this.svg).removeEventListener(t, this.eventListeners[t], !this.options.preventMouseEventsDefault && h); 3104 } 3105 3106 this.disableMouseWheelZoom(), this.getPublicInstance().disableControlIcons(), this.reset(), c = c.filter(function (t) { 3107 return t.svg !== e.svg; 3108 }), delete this.options, delete this.viewport, delete this.publicInstance, delete this.pi, this.getPublicInstance = function () { 3109 return null; 3110 }; 3111 }, i.prototype.getPublicInstance = function () { 3112 var o = this; 3113 return this.publicInstance || (this.publicInstance = this.pi = { 3114 enablePan: function enablePan() { 3115 return o.options.panEnabled = !0, o.pi; 3116 }, 3117 disablePan: function disablePan() { 3118 return o.options.panEnabled = !1, o.pi; 3119 }, 3120 isPanEnabled: function isPanEnabled() { 3121 return !!o.options.panEnabled; 3122 }, 3123 pan: function pan(t) { 3124 return o.pan(t), o.pi; 3125 }, 3126 panBy: function panBy(t) { 3127 return o.panBy(t), o.pi; 3128 }, 3129 getPan: function getPan() { 3130 return o.getPan(); 3131 }, 3132 setBeforePan: function setBeforePan(t) {
3133 return o.options.beforePan = null === t ? null : r.proxy(t, o.publicInstance), o.pi; 3134 }, 3135 setOnPan: function setOnPan(t) { 3136 return o.options.onPan = null === t ? null : r.proxy(t, o.publicInstance), o.pi; 3137 }, 3138 enableZoom: function enableZoom() { 3139 return o.options.zoomEnabled = !0, o.pi; 3140 }, 3141 disableZoom: function disableZoom() { 3142 return o.options.zoomEnabled = !1, o.pi; 3143 }, 3144 isZoomEnabled: function isZoomEnabled() { 3145 return !!o.options.zoomEnabled; 3146 }, 3147 enableControlIcons: function enableControlIcons() { 3148 return o.options.controlIconsEnabled || (o.options.controlIconsEnabled = !0, s.enable(o)), o.pi; 3149 }, 3150 disableControlIcons: function disableControlIcons() { 3151 return o.options.controlIconsEnabled && (o.options.controlIconsEnabled = !1, s.disable(o)), o.pi; 3152 }, 3153 isControlIconsEnabled: function isControlIconsEnabled() { 3154 return !!o.options.controlIconsEnabled; 3155 }, 3156 enableDblClickZoom: function enableDblClickZoom() { 3157 return o.options.dblClickZoomEnabled = !0, o.pi; 3158 }, 3159 disableDblClickZoom: function disableDblClickZoom() { 3160 return o.options.dblClickZoomEnabled = !1, o.pi; 3161 }, 3162 isDblClickZoomEnabled: function isDblClickZoomEnabled() { 3163 return !!o.options.dblClickZoomEnabled; 3164 }, 3165 enableMouseWheelZoom: function enableMouseWheelZoom() { 3166 return o.enableMouseWheelZoom(), o.pi; 3167 }, 3168 disableMouseWheelZoom: function disableMouseWheelZoom() { 3169 return o.disableMouseWheelZoom(), o.pi; 3170 }, 3171 isMouseWheelZoomEnabled: function isMouseWheelZoomEnabled() { 3172 return !!o.options.mouseWheelZoomEnabled; 3173 }, 3174 setZoomScaleSensitivity: function setZoomScaleSensitivity(t) { 3175 return o.options.zoomScaleSensitivity = t, o.pi; 3176 }, 3177 setMinZoom: function setMinZoom(t) { 3178 return o.options.minZoom = t, o.pi; 3179 }, 3180 setMaxZoom: function setMaxZoom(t) { 3181 return o.options.maxZoom = t, o.pi; 3182 }, 3183 setBeforeZoom: function setBeforeZoom(t) { 3184 return o.options.beforeZoom = null === t ? null : r.proxy(t, o.publicInstance), o.pi; 3185 }, 3186 setOnZoom: function setOnZoom(t) { 3187 return o.options.onZoom = null === t ? null : r.proxy(t, o.publicInstance), o.pi; 3188 }, 3189 zoom: function zoom(t) { 3190 return o.publicZoom(t, !0), o.pi; 3191 }, 3192 zoomBy: function zoomBy(t) { 3193 return o.publicZoom(t, !1), o.pi; 3194 }, 3195 zoomAtPoint: function zoomAtPoint(t, e) { 3196 return o.publicZoomAtPoint(t, e, !0), o.pi; 3197 }, 3198 zoomAtPointBy: function zoomAtPointBy(t, e) { 3199 return o.publicZoomAtPoint(t, e, !1), o.pi; 3200 }, 3201 zoomIn: function zoomIn() { 3202 return this.zoomBy(1 + o.options.zoomScaleSensitivity), o.pi; 3203 }, 3204 zoomOut: function zoomOut() { 3205 return this.zoomBy(1 / (1 + o.options.zoomScaleSensitivity)), o.pi; 3206 }, 3207 getZoom: function getZoom() { 3208 return o.getRelativeZoom(); 3209 }, 3210 setOnUpdatedCTM: function setOnUpdatedCTM(t) { 3211 return o.options.onUpdatedCTM = null === t ? null : r.proxy(t, o.publicInstance), o.pi; 3212 }, 3213 resetZoom: function resetZoom() { 3214 return o.resetZoom(), o.pi; 3215 }, 3216 resetPan: function resetPan() { 3217 return o.resetPan(), o.pi; 3218 }, 3219 reset: function reset() { 3220 return o.reset(), o.pi; 3221 }, 3222 fit: function fit() { 3223 return o.fit(), o.pi; 3224 }, 3225 contain: function contain() { 3226 return o.contain(), o.pi; 3227 }, 3228 center: function center() { 3229 return o.center(), o.pi; 3230 }, 3231 updateBBox: function updateBBox() { 3232 return o.updateBBox(), o.pi; 3233 }, 3234 resize: function resize() { 3235 return o.resize(), o.pi; 3236 }, 3237 getSizes: function getSizes() { 3238 return { 3239 width: o.width, 3240 height: o.height, 3241 realZoom: o.getZoom(),
3242 viewBox: o.viewport.getViewBox() 3243 }; 3244 }, 3245 destroy: function destroy() { 3246 return o.destroy(), o.pi; 3247 } 3248 }), this.publicInstance; 3249 }; 3250 var c = []; 3251 3252 e.exports = function (t, e) { 3253 var o = r.getSvg(t); 3254 if (null === o) return null; 3255 3256 for (var n = c.length - 1; 0 <= n; n--) { 3257 if (c[n].svg === o) return c[n].instance.getPublicInstance(); 3258 } 3259 3260 return c.push({ 3261 svg: o, 3262 instance: new i(o, e) 3263 }), c[c.length - 1].instance.getPublicInstance(); 3264 }; 3265 }, { 3266 "./control-icons": 1, 3267 "./shadow-viewport": 2, 3268 "./svg-utilities": 5, 3269 "./uniwheel": 6, 3270 "./utilities": 7 3271 }], 3272 5: [function (t, e, o) { 3273 var l = t("./utilities"), 3274 s = "unknown"; 3275 document.documentMode && (s = "ie"), e.exports = { 3276 svgNS: "http://www.w3.org/2000/svg", 3277 xmlNS: "http://www.w3.org/XML/1998/namespace", 3278 xmlnsNS: "http://www.w3.org/2000/xmlns/", 3279 xlinkNS: "http://www.w3.org/1999/xlink", 3280 evNS: "http://www.w3.org/2001/xml-events", 3281 getBoundingClientRectNormalized: function getBoundingClientRectNormalized(t) { 3282 if (t.clientWidth && t.clientHeight) return { 3283 width: t.clientWidth, 3284 height: t.clientHeight 3285 }; 3286 if (t.getBoundingClientRect()) return t.getBoundingClientRect(); 3287 throw new Error("Cannot get BoundingClientRect for SVG."); 3288 }, 3289 getOrCreateViewport: function getOrCreateViewport(t, e) { 3290 var o = null; 3291 3292 if (!(o = l.isElement(e) ? e : t.querySelector(e))) { 3293 var n = Array.prototype.slice.call(t.childNodes || t.children).filter(function (t) { 3294 return "defs" !== t.nodeName && "#text" !== t.nodeName; 3295 }); 3296 1 === n.length && "g" === n[0].nodeName && null === n[0].getAttribute("transform") && (o = n[0]); 3297 } 3298 3299 if (!o) { 3300 var i = "viewport-" + new Date().toISOString().replace(/\D/g, ""); 3301 (o = document.createElementNS(this.svgNS, "g")).setAttribute("id", i); 3302 var s = t.childNodes || t.children; 3303 if (s && 0 < s.length) for (var r = s.length; 0 < r; r--) { 3304 "defs" !== s[s.length - r].nodeName && o.appendChild(s[s.length - r]); 3305 } 3306 t.appendChild(o); 3307 } 3308 3309 var a = []; 3310 return o.getAttribute("class") && (a = o.getAttribute("class").split(" ")), ~a.indexOf("svg-pan-zoom_viewport") || (a.push("svg-pan-zoom_viewport"), o.setAttribute("class", a.join(" "))), o; 3311 }, 3312 setupSvgAttributes: function setupSvgAttributes(t) { 3313 if (t.setAttribute("xmlns", this.svgNS), t.setAttributeNS(this.xmlnsNS, "xmlns:xlink", this.xlinkNS), t.setAttributeNS(this.xmlnsNS, "xmlns:ev", this.evNS), null !== t.parentNode) { 3314 var e = t.getAttribute("style") || ""; 3315 -1 === e.toLowerCase().indexOf("overflow") && t.setAttribute("style", "overflow: hidden; " + e); 3316 } 3317 }, 3318 internetExplorerRedisplayInterval: 300, 3319 refreshDefsGlobal: l.throttle(function () { 3320 for (var t = document.querySelectorAll("defs"), e = t.length, o = 0; o < e; o++) { 3321 var n = t[o]; 3322 n.parentNode.insertBefore(n, n); 3323 } 3324 }, this ? this.internetExplorerRedisplayInterval : null), 3325 setCTM: function setCTM(t, e, o) { 3326 var n = this, 3327 i = "matrix(" + e.a + "," + e.b + "," + e.c + "," + e.d + "," + e.e + "," + e.f + ")"; 3328 t.setAttributeNS(null, "transform", i), "transform" in t.style ? t.style.transform = i : "-ms-transform" in t.style ? t.style["-ms-transform"] = i : "-webkit-transform" in t.style && (t.style["-webkit-transform"] = i), "ie" === s && o && (o.parentNode.insertBefore(o, o), window.setTimeout(function () { 3329 n.refreshDefsGlobal(); 3330 }, n.internetExplorerRedisplayInterval)); 3331 }, 3332 getEventPoint: function getEventPoint(t, e) { 3333 var o = e.createSVGPoint(); 3334 return l.mouseAndTouchNormalize(t, e), o.x = t.clientX, o.y = t.clientY, o; 3335 }, 3336 getSvgCenterPoint: function getSvgCenterPoint(t, e, o) { 3337 return this.createSVGPoint(t, e / 2, o / 2); 3338 }, 3339 createSVGPoint: function createSVGPoint(t, e, o) { 3340 var n = t.createSVGPoint(); 3341 return n.x = e, n.y = o, n; 3342 } 3343 }; 3344 }, { 3345 "./utilities": 7 3346 }], 3347 6: [function (t, e, o) { 3348 function n(t, e, o, n) { 3349 var i; 3350 i = "wheel" === a ? o : function (t, o) { 3351 function e(t) { 3352 var e = { 3353 originalEvent: t = t || window.event, 3354 target: t.target || t.srcElement, 3355 type: "wheel", 3356 deltaMode: "MozMousePixelScroll" == t.type ? 0 : 1, 3357 deltaX: 0, 3358 delatZ: 0, 3359 preventDefault: function preventDefault() { 3360 t.preventDefault ? t.preventDefault() : t.returnValue = !1; 3361 } 3362 }; 3363 return "mousewheel" == a ? (e.deltaY = -.025 * t.wheelDelta, t.wheelDeltaX && (e.deltaX = -.025 * t.wheelDeltaX)) : e.deltaY = t.detail, o(e); 3364 } 3365 3366 return u.push({ 3367 element: t, 3368 fn: e 3369 }), e; 3370 }(t, o), t[s](l + e, i, !!n && h); 3371 } 3372 3373 function i(t, e, o, n) { 3374 var i; 3375 i = "wheel" === a ? o : function (t) { 3376 for (var e = 0; e < u.length; e++) { 3377 if (u[e].element === t) return u[e].fn; 3378 } 3379 3380 return function () {}; 3381 }(t), t[r](l + e, i, !!n && h), function (t) { 3382 for (var e = 0; e < u.length; e++) { 3383 if (u[e].element === t) return u.splice(e, 1); 3384 } 3385 }(t); 3386 } 3387 3388 var s, r, a, l, u, h; 3389 e.exports = (u = [], h = { 3390 passive: !(l = "") 3391 }, window.addEventListener ? (s = "addEventListener", r = "removeEventListener") : (s = "attachEvent", r = "detachEvent", l = "on"), a = "onwheel" in document.createElement("div") ? "wheel" : void 0 !== document.onmousewheel ? "mousewheel" : "DOMMouseScroll", { 3392 on: function on(t, e, o) { 3393 n(t, a, e, o), "DOMMouseScroll" == a && n(t, "MozMousePixelScroll", e, o); 3394 }, 3395 off: function off(t, e, o) { 3396 i(t, a, e, o), "DOMMouseScroll" == a && i(t, "MozMousePixelScroll", e, o); 3397 } 3398 }); 3399 }, {}], 3400 7: [function (t, e, o) { 3401 function n(e) { 3402 return function (t) { 3403 window.setTimeout(t, e); 3404 }; 3405 } 3406 3407 e.exports = { 3408 extend: function extend(t, e) { 3409 for (var o in t = t || {}, e) { 3410 this.isObject(e[o]) ? t[o] = this.extend(t[o], e[o]) : t[o] = e[o]; 3411 } 3412 3413 return t; 3414 }, 3415 isElement: function isElement(t) { 3416 return t instanceof HTMLElement || t instanceof SVGElement || t instanceof SVGSVGElement || t && "object" == _typeof(t) && null !== t && 1 === t.nodeType && "string" == typeof t.nodeName; 3417 }, 3418 isObject: function isObject(t) { 3419 return "[object Object]" === Object.prototype.toString.call(t); 3420 }, 3421 isNumber: function isNumber(t) { 3422 return !isNaN(parseFloat(t)) && isFinite(t); 3423 }, 3424 getSvg: function getSvg(t) { 3425 var e, o; 3426 if (this.isElement(t)) e = t;else { 3427 if (!("string" == typeof t || t instanceof String)) throw new Error("Provided selector is not an HTML object nor String"); 3428 if (!(e = document.querySelector(t))) throw new Error("Provided selector did not find any elements. Selector: " + t); 3429 } 3430 if ("svg" === e.tagName.toLowerCase()) o = e;else if ("object" === e.tagName.toLowerCase()) o = e.contentDocument.documentElement;else { 3431 if ("embed" !== e.tagName.toLowerCase()) throw "img" === e.tagName.toLowerCase() ? new Error('Cannot script an SVG in an "img" element. Please use an "object" element or an in-line SVG.') : new Error("Cannot get SVG."); 3432 o = e.getSVGDocument().documentElement; 3433 } 3434 return o; 3435 }, 3436 proxy: function proxy(t, e) { 3437 return function () { 3438 return t.apply(e, arguments); 3439 }; 3440 }, 3441 getType: function getType(t) { 3442 return Object.prototype.toString.apply(t).replace(/^\[object\s/, "").replace(/\]$/, ""); 3443 }, 3444 mouseAndTouchNormalize: function mouseAndTouchNormalize(t, e) { 3445 if (void 0 === t.clientX || null === t.clientX) if (t.clientX = 0, void (t.clientY = 0) !== t.touches && t.touches.length) { 3446 if (void 0 !== t.touches[0].clientX) t.clientX = t.touches[0].clientX, t.clientY = t.touches[0].clientY;else if (void 0 !== t.touches[0].pageX) { 3447 var o = e.getBoundingClientRect(); 3448 t.clientX = t.touches[0].pageX - o.left, t.clientY = t.touches[0].pageY - o.top; 3449 } 3450 } else void 0 !== t.originalEvent && void 0 !== t.originalEvent.clientX && (t.clientX = t.originalEvent.clientX, t.clientY = t.originalEvent.clientY); 3451 }, 3452 isDblClick: function isDblClick(t, e) { 3453 if (2 === t.detail) return !0; 3454 if (null == e) return !1; 3455 var o = t.timeStamp - e.timeStamp, 3456 n = Math.sqrt(Math.pow(t.clientX - e.clientX, 2) + Math.pow(t.clientY - e.clientY, 2)); 3457 return o < 250 && n < 10; 3458 }, 3459 now: Date.now || function () { 3460 return new Date().getTime(); 3461 }, 3462 throttle: function throttle(o, n, i) { 3463 var s, 3464 r, 3465 a, 3466 l = this, 3467 u = null, 3468 h = 0; 3469 i = i || {}; 3470 3471 function c() { 3472 h = !1 === i.leading ? 0 : l.now(), u = null, a = o.apply(s, r), u || (s = r = null); 3473 } 3474 3475 return function () { 3476 var t = l.now(); 3477 h || !1 !== i.leading || (h = t); 3478 var e = n - (t - h); 3479 return s = this, r = arguments, e <= 0 || n < e ? (clearTimeout(u), u = null, h = t, a = o.apply(s, r), u || (s = r = null)) : u || !1 === i.trailing || (u = setTimeout(c, e)), a; 3480 }; 3481 }, 3482 createRequestAnimationFrame: function createRequestAnimationFrame(t) { 3483 var e = null; 3484 return "auto" !== t && t < 60 && 1 < t && (e = Math.floor(1e3 / t)), null === e ? window.requestAnimationFrame || n(33) : n(e); 3485 } 3486 }; 3487 }, {}] 3488}, {}, [3]); 3489 3490/***/ }), 3491
3492/***/ "./assets/scss/style.scss": 3493/*!********************************!*\ 3494 !*** ./assets/scss/style.scss ***! 3495 \********************************/ 3496/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { 3497 3498"use strict"; 3499__webpack_require__.r(__webpack_exports__); 3500// extracted by mini-css-extract-plugin 3501 3502 3503/***/ })
vendor: 8,544 bytes, lines 3503-3674
3503, 3504 3505/***/ "jquery": 3506/*!*************************!*\ 3507 !*** external "jQuery" ***! 3508 \*************************/ 3509/***/ ((module) => { 3510 3511"use strict"; 3512module.exports = jQuery; 3513 3514/***/ }) 3515 3516/******/ }); 3517/************************************************************************/ 3518/******/ // The module cache 3519/******/ var __webpack_module_cache__ = {}; 3520/******/ 3521/******/ // The require function 3522/******/ function __webpack_require__(moduleId) { 3523/******/ // Check if module is in cache 3524/******/ var cachedModule = __webpack_module_cache__[moduleId]; 3525/******/ if (cachedModule !== undefined) { 3526/******/ return cachedModule.exports; 3527/******/ } 3528/******/ // Create a new module (and put it into the cache) 3529/******/ var module = __webpack_module_cache__[moduleId] = { 3530/******/ id: moduleId, 3531/******/ loaded: false, 3532/******/ exports: {} 3533/******/ }; 3534/******/ 3535/******/ // Execute the module function 3536/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); 3537/******/ 3538/******/ // Flag the module as loaded 3539/******/ module.loaded = true; 3540/******/ 3541/******/ // Return the exports of the module 3542/******/ return module.exports; 3543/******/ } 3544/******/ 3545/******/ // expose the modules object (__webpack_modules__) 3546/******/ __webpack_require__.m = __webpack_modules__; 3547/******/ 3548/************************************************************************/ 3549/******/ /* webpack/runtime/chunk loaded */ 3550/******/ (() => { 3551/******/ var deferred = []; 3552/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { 3553/******/ if(chunkIds) { 3554/******/ priority = priority || 0; 3555/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; 3556/******/ deferred[i] = [chunkIds, fn, priority]; 3557/******/ return; 3558/******/ } 3559/******/ var notFulfilled = Infinity; 3560/******/ for (var i = 0; i < deferred.length; i++) { 3561/******/ var [chunkIds, fn, priority] = deferred[i]; 3562/******/ var fulfilled = true; 3563/******/ for (var j = 0; j < chunkIds.length; j++) { 3564/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { 3565/******/ chunkIds.splice(j--, 1); 3566/******/ } else { 3567/******/ fulfilled = false; 3568/******/ if(priority < notFulfilled) notFulfilled = priority; 3569/******/ } 3570/******/ } 3571/******/ if(fulfilled) { 3572/******/ deferred.splice(i--, 1) 3573/******/ var r = fn(); 3574/******/ if (r !== undefined) result = r; 3575/******/ } 3576/******/ } 3577/******/ return result; 3578/******/ }; 3579/******/ })(); 3580/******/ 3581/******/ /* webpack/runtime/hasOwnProperty shorthand */ 3582/******/ (() => { 3583/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) 3584/******/ })(); 3585/******/ 3586/******/ /* webpack/runtime/make namespace object */ 3587/******/ (() => { 3588/******/ // define __esModule on exports 3589/******/ __webpack_require__.r = (exports) => { 3590/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 3591/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 3592/******/ } 3593/******/ Object.defineProperty(exports, '__esModule', { value: true }); 3594/******/ }; 3595/******/ })(); 3596/******/ 3597/******/ /* webpack/runtime/node module decorator */ 3598/******/ (() => { 3599/******/ __webpack_require__.nmd = (module) => { 3600/******/ module.paths = []; 3601/******/ if (!module.children) module.children = []; 3602/******/ return module; 3603/******/ }; 3604/******/ })(); 3605/******/ 3606/******/ /* webpack/runtime/jsonp chunk loading */ 3607/******/ (() => { 3608/******/ // no baseURI 3609/******/ 3610/******/ // object to store loaded and loading chunks 3611/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched 3612/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded 3613/******/ var installedChunks = { 3614/******/ "/dist/js/app.min": 0, 3615/******/ "dist/css/style.min": 0 3616/******/ }; 3617/******/ 3618/******/ // no chunk on demand loading 3619/******/ 3620/******/ // no prefetching 3621/******/ 3622/******/ // no preloaded 3623/******/ 3624/******/ // no HMR 3625/******/ 3626/******/ // no HMR manifest 3627/******/ 3628/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); 3629/******/ 3630/******/ // install a JSONP callback for chunk loading 3631/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { 3632/******/ var [chunkIds, moreModules, runtime] = data; 3633/******/ // add "moreModules" to the modules object, 3634/******/ // then flag all "chunkIds" as loaded and fire callback 3635/******/ var moduleId, chunkId, i = 0; 3636/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { 3637/******/ for(moduleId in moreModules) { 3638/******/ if(__webpack_require__.o(moreModules, moduleId)) { 3639/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; 3640/******/ } 3641/******/ } 3642/******/ if(runtime) var result = runtime(__webpack_require__); 3643/******/ } 3644/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); 3645/******/ for(;i < chunkIds.length; i++) { 3646/******/ chunkId = chunkIds[i]; 3647/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { 3648/******/ installedChunks[chunkId][0](); 3649/******/ } 3650/******/ installedChunks[chunkId] = 0; 3651/******/ } 3652/******/ return __webpack_require__.O(result); 3653/******/ } 3654/******/ 3655/******/ var chunkLoadingGlobal = self["webpackChunkholkham"] = self["webpackChunkholkham"] || []; 3656/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); 3657/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); 3658/******/ })(); 3659/******/ 3660/************************************************************************/ 3661/******/ 3662/******/ // startup 3663/******/ // Load entry module and return exports 3664/******/ // This entry module depends on other loaded chunks and execution need to be delayed 3665/******/ __webpack_require__.O(undefined, ["dist/css/style.min"], () => (__webpack_require__("./assets/js/vendor/simpleParallax.min.js"))) 3666/******/ __webpack_require__.O(undefined, ["dist/css/style.min"], () => (__webpack_require__("./assets/js/vendor/slick.min.js"))) 3667/******/ __webpack_require__.O(undefined, ["dist/css/style.min"], () => (__webpack_require__("./assets/js/vendor/svg-pan-zoom.min.js"))) 3668/******/ __webpack_require__.O(undefined, ["dist/css/style.min"], () => (__webpack_require__("./assets/js/app.js"))) 3669/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["dist/css/style.min"], () => (__webpack_require__("./assets/scss/style.scss"))) 3670/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); 3671/******/ 3672/******/ })() 3673; 3674//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q3hFO1dBQ0EsZ0RBQWdELGFBQWE7V0FDN0Q7Ozs7O1dDTkE7V0FDQTtXQUNBO1dBQ0E7V0FDQTs7Ozs7V0NKQTs7V0FFQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTs7V0FFQTs7V0FFQTs7V0FFQTs7V0FFQTs7V0FFQTs7V0FFQTs7V0FFQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQSxNQUFNLHFCQUFxQjtXQUMzQjtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBOztXQUVBO1dBQ0E7V0FDQTs7Ozs7VUVqREE7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vaG9sa2hhbS8uL2Fzc2V0cy9qcy9hcHAuanMiLCJ3ZWJwYWNrOi8vaG9sa2hhbS8uL2Fzc2V0cy9qcy92ZW5kb3Ivc2ltcGxlUGFyYWxsYXgubWluLmpzIiwid2VicGFjazovL2hvbGtoYW0vLi9hc3NldHMvanMvdmVuZG9yL3NsaWNrLm1pbi5qcyIsIndlYnBhY2s6Ly9ob2xraGFtLy4vYXNzZXRzL2pzL3ZlbmRvci9zdmctcGFuLXpvb20ubWluLmpzIiwid2VicGFjazovL2hvbGtoYW0vLi9hc3NldHMvc2Nzcy9zdHlsZS5zY3NzPzQ3ZWQiLCJ3ZWJwYWNrOi8vaG9sa2hhbS9leHRlcm5hbCB2YXIgXCJqUXVlcnlcIiIsIndlYnBhY2s6Ly9ob2xraGFtL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL2hvbGtoYW0vd2VicGFjay9ydW50aW1lL2NodW5rIGxvYWRlZCIsIndlYnBhY2s6Ly9ob2xraGFtL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vaG9sa2hhbS93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL2hvbGtoYW0vd2VicGFjay9ydW50aW1lL25vZGUgbW9kdWxlIGRlY29yYXRvciIsIndlYnBhY2s6Ly9ob2xraGFtL3dlYnBhY2svcnVudGltZS9qc29ucCBjaHVuayBsb2FkaW5nIiwid2VicGFjazovL2hvbGtoYW0vd2VicGFjay9iZWZvcmUtc3RhcnR1cCIsIndlYnBhY2s6Ly9ob2xraGFtL3dlYnBhY2svc3RhcnR1cCIsIndlYnBhY2s6Ly9ob2xraGFtL3dlYnBhY2svYWZ0ZXItc3RhcnR1cCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBQdXQgeW91ciBKUyBoZXJlXG5cbmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1nbG9iYWwtc2Nyb2xsYmFyLXdpZHRoJywgKHdpbmRvdy5pbm5lcldpZHRoIC0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKSArIFwicHhcIik7XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogRE9NLWJhc2VkIFJvdXRpbmdcbiAqIEJhc2VkIG9uIGh0dHA6Ly9nb28uZ2wvRVVUaTUzIGJ5IFBhdWwgSXJpc2hcbiAqXG4gKiBPbmx5IGZpcmVzIG9uIGJvZHkgY2xhc3NlcyB0aGF0IG1hdGNoLiBJZiBhIGJvZHkgY2xhc3MgY29udGFpbnMgYSBkYXNoLFxuICogcmVwbGFjZSB0aGUgZGFzaCB3aXRoIGFuIHVuZGVyc2NvcmUgd2hlbiBhZGRpbmcgaXQgdG8gdGhlIG9iamVjdCBiZWxvdy5cbiAqXG4gKiAubm9Db25mbGljdCgpXG4gKiBUaGUgcm91dGluZyBpcyBlbmNsb3NlZCB3aXRoaW4gYW4gYW5vbnltb3VzIGZ1bmN0aW9uIHNvIHRoYXQgeW91IGNhblxuICogYWx3YXlzIHJlZmVyZW5jZSBqUXVlcnkgd2l0aCAkLCBldmVuIHdoZW4gaW4gLm5vQ29uZmxpY3QoKSBtb2RlLlxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbihmdW5jdGlvbiAoJCkge1xuXHQvLyBVc2UgdGhpcyB2YXJpYWJsZSB0byBzZXQgdXAgdGhlIGNvbW1vbiBhbmQgcGFnZSBzcGVjaWZpYyBmdW5jdGlvbnMuIElmIHlvdVxuXHQvLyByZW5hbWUgdGhpcyB2YXJpYWJsZSwgeW91IHdpbGwgYWxzbyBuZWVkIHRvIHJlbmFtZSB0aGUgbmFtZXNwYWNlIGJlbG93LlxuXHR2YXIgbWlyYWkgPSB7XG5cdFx0Ly8gQWxsIHBhZ2VzXG5cdFx0Y29tbW9uOiB7XG5cdFx0XHRpbml0OiBmdW5jdGlvbiAoKSB7XG5cblx0XHRcdFx0Lypcblx0XHRcdFx0ICpcblx0XHRcdFx0ICogQ29yZSBGdW5jdGlvbmFsaXR5XG5cdFx0XHRcdCAqXG5cdFx0XHRcdCAqL1xuXG5cdFx0XHRcdC8vIFNtYWxsIGhlYWRlclxuXHRcdFx0XHQkKHdpbmRvdykuc2Nyb2xsKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHR2YXIgaGVhZGVyVXBwZXJIZWlnaHQgPSAkKCcuaGVhZGVyX19tYWluLXVwcGVyJykub3V0ZXJIZWlnaHQoKTtcblx0XHRcdFx0XHR2YXIgc2Nyb2xsID0gJCh3aW5kb3cpLnNjcm9sbFRvcCgpO1xuXHRcdFx0XHRcdGlmIChzY3JvbGwgPj0gMzApIHtcblx0XHRcdFx0XHRcdCQoJy5oZWFkZXInKS5hZGRDbGFzcygnaGVhZGVyLS1zbWFsbCcpO1xuXHRcdFx0XHRcdFx0JCgnLmhlYWRlcicpLmNzcyh7XG5cdFx0XHRcdFx0XHRcdFwidHJhbnNmb3JtXCI6IFwidHJhbnNsYXRlWSgtXCIgKyBoZWFkZXJVcHBlckhlaWdodCArIFwicHgpXCIsXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0JCgnLmhlYWRlcicpLnJlbW92ZUNsYXNzKCdoZWFkZXItLXNtYWxsJyk7XG5cdFx0XHRcdFx0XHQkKCcuaGVhZGVyJykuY3NzKHtcblx0XHRcdFx0XHRcdFx0XCJ0cmFuc2Zvcm1cIjogXCJ0cmFuc2xhdGVZKDBweClcIixcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdC8vIFNtb290aCBzY3JvbGwgdG8gbGlua3Ncblx0XHRcdFx0JCgnYVtocmVmKj1cIiNcIl06bm90KFtocmVmPVwiI1wiXSknKS5jbGljayhmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0dmFyIG9mZnNldCA9IC0yNTA7IC8vIDwtLSBjaGFuZ2UgdGhlIHZhbHVlIGhlcmVcblx0XHRcdFx0XHRpZiAobG9jYXRpb24ucGF0aG5hbWUucmVwbGFjZSgvXlxcLy8sICcnKSA9PSB0aGlzLnBhdGhuYW1lLnJlcGxhY2UoL15cXC8vLCAnJykgJiYgbG9jYXRpb24uaG9zdG5hbWUgPT0gdGhpcy5ob3N0bmFtZSkge1xuXHRcdFx0XHRcdFx0dmFyIHRhcmdldCA9ICQodGhpcy5oYXNoKTtcblx0XHRcdFx0XHRcdHRhcmdldCA9IHRhcmdldC5sZW5ndGggPyB0YXJnZXQgOiAkKCdbbmFtZT0nICsgdGh
3674pcy5oYXNoLnNsaWNlKDEpICsgJ10nKTtcblx0XHRcdFx0XHRcdGlmICh0YXJnZXQubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRcdCQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHtcblx0XHRcdFx0XHRcdFx0XHRzY3JvbGxUb3A6IHRhcmdldC5vZmZzZXQoKS50b3AgKyBvZmZzZXRcblx0XHRcdFx0XHRcdFx0fSwgMTAwMCk7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0Ly8gTW9iaWxlIFRyaWdnZXIgdG8gb3BlbiBNb2JpbGUgTWVudVxuXHRcdFx0XHQkKCcubW9iaWxlLXRyaWdnZXInKS5jbGljayhmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0JCh0aGlzKVxuXHRcdFx0XHRcdFx0LmZpbmQoJ3NwYW4nKVxuXHRcdFx0XHRcdFx0LnRvZ2dsZUNsYXNzKCdtb2JpbGUtbWVudS1hY3RpdmUnKTtcblx0XHRcdFx0XHQkKCdib2R5LCAubmF2LW1vYmlsZScpLnRvZ2dsZUNsYXNzKCdtb2JpbGUtbWVudS1hY3RpdmUnKTtcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0Ly8gSGlkZSBTdWIgTWVudSB3aGVuIGNsaWNraW5nIG91dHNpZGVcblx0XHRcdFx0JChkb2N1bWVudCkuY2xpY2soZnVuY3Rpb24gKGUpIHtcblx0XHRcdFx0XHRpZiAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoID4gOTAwKSB7XG5cdFx0XHRcdFx0XHRlLnN0b3BQcm9wYWdhdGlvbigpO1xuXHRcdFx0XHRcdFx0dmFyIGNvbnRhaW5lciA9ICQoJy5uYXYtcHJpbWFyeScpO1xuXG5cdFx0XHRcdFx0XHQvL2NoZWNrIGlmIHRoZSBjbGlja2VkIGFyZWEgaXMgZHJvcERvd24gb3Igbm90XG5cdFx0XHRcdFx0XHRpZiAoY29udGFpbmVyLmhhcyhlLnRhcmdldCkubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdFx0XHRcdCQoJy5uYXYtcHJpbWFyeSBsaSwgLnN1Yi1tZW51JykucmVtb3ZlQ2xhc3MoJ21lbnUtYWN0aXZlJyk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0JCgnLmRyb3Bkb3duJykucmVtb3ZlQ2xhc3MoJ29wZW4nKTtcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0Ly8gTW9iaWxlIE1lbnVcblx0XHRcdFx0JCgnLnN1Ym1lbnUtcmV2ZWFsJykuY2xpY2soZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdC8vIG9uIC5zdWJtZW51LXJldmVhbCBjbGljayBcblx0XHRcdFx0XHQvLyBmaW5kIHBhcmVudCAubWVudS1zZWN0aW9uIGFuZCBhcHBseSB0cmFuc2l0aW9uIG91dCBsZWZ0IHRvIGFsbCBsaSA+IGEsIGJ1dHRvblxuXHRcdFx0XHRcdC8vIGZpbmQgY2xvc2VzdCBzaWJsaW5nIC5tZW51LXNlY3Rpb24gYW5kIG1ha2UgbGVmdCAwXG5cdFx0XHRcdFx0Ly8gaW4gY2xvc2VzdCBzaWJsaW5nIC5tZW51LXNlY3Rpb24gYXBwbHkgdHJhbnNpdGlvbiBpbiByaWdodCB0byBhbGwgbGkgPiBhLCBidXR0b24gXG5cblx0XHRcdFx0XHR2YXIgY2xvc2VzdE1lbnVTZWN0aW9uID0gJCh0aGlzKS5jbG9zZXN0KCcubWVudS1zZWN0aW9uJyk7XG5cdFx0XHRcdFx0JChjbG9zZXN0TWVudVNlY3Rpb24pLmFkZENsYXNzKCdtZW51LXNlY3Rpb24tdW5kZXInKVxuXG5cdFx0XHRcdFx0dmFyIGNsb3Nlc3RNZW51U2VjdGlvbkJ1dHRvbnMgPSAkKHRoaXMpLmNsb3Nlc3QoJy5tZW51LXNlY3Rpb24tdW5kZXInKS5maW5kKCc+IGJ1dHRvbiwgPiB1bCA+IGxpID4gYSwgPiB1bCA+IGxpID4gYnV0dG9uJyk7XG5cdFx0XHRcdFx0JChjbG9zZXN0TWVudVNlY3Rpb25CdXR0b25zKS5yZW1vdmVDbGFzcygndHJhbnNpdGlvbi1vdXQtcmlnaHQgdHJhbnNpdGlvbi1pbi1yaWdodCB0cmFuc2l0aW9uLWluLWxlZnQnKS5hZGRDbGFzcygndHJhbnNpdGlvbi1vdXQtbGVmdCcpO1xuXG5cblxuXHRcdFx0XHRcdHZhciBuZXh0TWVudVNlY3Rpb24gPSAkKHRoaXMpLm5leHQoJy5tZW51LXNlY3Rpb24nKTtcblx0XHRcdFx0XHRuZXh0TWVudVNlY3Rpb24uYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuXG5cdFx0XHRcdFx0dmFyIG5leHRNZW51U2VjdGlvbkJ1dHRvbnMgPSAkKG5leHRNZW51U2VjdGlvbikuZmluZCgnPiBidXR0b24sID4gdWwgPiBsaSA+IGEsID4gdWwgPiBsaSA+IGJ1dHRvbicpO1xuXHRcdFx0XHRcdCQobmV4dE1lbnVTZWN0aW9uQnV0dG9ucykucmVtb3ZlQ2xhc3MoJ3RyYW5zaXRpb24tb3V0LXJpZ2h0JykuYWRkQ2xhc3MoJ3RyYW5zaXRpb24taW4tcmlnaHQnKTtcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0JCgnLnN1Ym1lbnUtYmFjaycpLmNsaWNrKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHQvLyBvbiAuc3VibWVudS1iYWNrIGNsaWNrXG5cdFx0XHRcdFx0Ly8gZmluZCBjbG9zZXN0IHNpYmxpbmcgdWwgYW5kIGFwcGx5IHRyYW5zaXRpb24gb3V0IHJpZ2h0IHRvIGFsbCBsaSA+IGEsIGJ1dHRvblxuXHRcdFx0XHRcdC8vIGZpbmQgLm1lbnUtc2VjdGlvbiAyIHVwIGFuZCBhcHBseSB0cmFuc2l0aW9uIGluIGxlZnQgdG8gYWxsIGxpID4gYSwgYnV0dG9uXG5cblx0XHRcdFx0XHR2YXIgY2xvc2VzdFVsID0gJCh0aGlzKS5uZXh0KCd1bCcpO1xuXHRcdFx0XHRcdHZhciBjbG9zZXN0VWxCdXR0b25zID0gJChjbG9zZXN0VWwpLmZpbmQoJz4gbGkgPiBhLCA+IGxpID4gYnV0dG9uJyk7XG5cdFx0XHRcdFx0JCh0aGlzKS5yZW1vdmVDbGFzcygndHJhbnNpdGlvbi1pbi1yaWdodCB0cmFuc2l0aW9uLWluLWxlZnQnKS5hZGRDbGFzcygndHJhbnNpdGlvbi1vdXQtcmlnaHQnKTtcblx0XHRcdFx0XHQkKGNsb3Nlc3RVbEJ1dHRvbnMpLnJlbW92ZUNsYXNzKCd0cmFuc2l0aW9uLWluLXJpZ2h0IHRyYW5zaXRpb24taW4tbGVmdCcpLmFkZENsYXNzKCd0cmFuc2l0aW9uLW91dC1yaWdodCcpO1xuXG5cdFx0XHRcdFx0dmFyIGNsb3Nlc3RNZW51U2VjdGlvbiA9ICQodGhpcykuY2xvc2VzdCgnLm1lbnUtc2VjdGlvbicpO1xuXG5cdFx0XHRcdFx0dmFyIGNsb3Nlc3RNZW51U2VjdGlvblR3byA9ICQodGhpcykuY2xvc2VzdCgnLm1lbnUtc2VjdGlvbi11bmRlcicpO1xuXG5cdFx0XHRcdFx0dmFyIGNsb3Nlc3RNZW51U2VjdGlvblR3b0J1dHRvbnMgPSAkKGNsb3Nlc3RNZW51U2VjdGlvblR3bykuZmluZCgnPiBidXR0b24sID4gdWwgPiBsaSA+IGEsID4gdWwgPiBsaSA+IGJ1dHRvbicpO1xuXHRcdFx0XHRcdCQoY2xvc2VzdE1lbnVTZWN0aW9uVHdvQnV0dG9ucykucmVtb3ZlQ2xhc3MoJ3RyYW5zaXRpb24tb3V0LWxlZnQnKS5hZGRDbGFzcygndHJhbnNpdGlvbi1pbi1sZWZ0JylcblxuXHRcdFx0XHRcdC8vIHdhaXQgNDAwbXNcblx0XHRcdFx0XHQvLyBmaW5kIGNsb3Nlc3QgcGFyZW50IC5tZW51LXNlY3Rpb24gYW5kIG1ha2UgbGVmdCAxNTAlXG5cdFx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHQkKGNsb3Nlc3RNZW51U2VjdGlvbikucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuXHRcdFx0XHRcdFx0JChjbG9zZXN0TWVudVNlY3Rpb25Ud28pLnJlbW92ZUNsYXNzKCdtZW51LXNlY3Rpb24tdW5kZXInKTtcblx0XHRcdFx0XHR9LCA0MDApO1xuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHQvLyBOYXZpZ2F0aW9uXG5cdFx0XHRcdCQoJy5pdGVtLS1oYXMtZHJvcGRvd24gPiBidXR0b24nKS5jbGljayhmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0JCh0aGlzKS5wYXJlbnQoKS5hdHRyKCdhcmlhLWV4cGFuZGVkJywgZnVuY3Rpb24gKGksIHZhbCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHZhbCA9PSBcImZhbHNlXCIgPyB0cnVlIDogZmFsc2U7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0JCh0aGlzKS5wYXJlbnQoKS5maW5kKCcuZHJvcGRvd24tbWVudScpLnRvZ2dsZUNsYXNzKCdhY3RpdmUnKTtcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0JCgnLm5hdi1wcmltYXJ5IC5sZXZlbC0wIC5pdGVtLS1oYXMtZHJvcGRvd24nKS5ob3ZlcihcblxuXHRcdFx0XHRcdGZ1bmN0aW9uICgpIHtcblxuXHRcdFx0XHRcdFx0JCh0aGlzKS5hdHRyKFwiYXJpYS1leHBhbmRlZFwiLCBcInRydWVcIik7XG5cdFx0XHRcdFx0XHQkKHRoaXMpLmZpbmQoJy5kcm9wZG93bi1tZW51JykuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuXHRcdFx0XHRcdH0sXG5cblx0XHRcdFx0XHRmdW5jdGlvbiAoKSB7XG5cblx0XHRcdFx0XHRcdCQodGhpcykuYXR0cihcImFyaWEtZXhwYW5kZWRcIiwgXCJmYWxzZVwiKTtcblx0XHRcdFx0XHRcdCQodGhpcykuZmluZCgnLmRyb3Bkb3duLW1lbnUnKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHQpO1xuXG5cdFx0XHRcdCQoJy5zZWFyY2gtc3VibWl0JykuYmx1cihmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0JCgnLmRyb3Bkb3duLW1lbnUnKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG5cdFx0XHRcdH0pO1xuXG5cblx0XHRcdFx0Ly8gQ29udGFpbmVyIEZsb2F0IChGbG9hdGluZyBDb250YWluZXIpXG5cdFx0XHRcdGZ1bmN0aW9uIGNvbnRhaW5lckZsb2F0KCkge1xuXHRcdFx0XHRcdHZhciBjb250YWluZXJTaXplID0gMTQ0MDtcblx0XHRcdFx0XHR2YXIgd2luZG93V2lkdGggPSAkKHdpbmRvdykud2lkdGgoKTtcblx0XHRcdFx0XHR2YXIgc2Nyb2xsYmFyV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCAtIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDtcblx0XHRcdFx0XHR3aW5kb3dXaWR0aCA9IHdpbmRvd1dpZHRoICsgc2Nyb2xsYmFyV2lkdGg7XG5cblx0XHRcdFx0XHR2YXIgY29udGFpbmVyRmxvYXQgPSAkKCcuY29udGFpbmVyLS1mbG9hdCcpO1xuXG5cdFx0XHRcdFx0JChjb250YWluZXJGbG9hdCkuZWFjaChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHR2YXIgZml2ZVBlcmNlbnQgPSAod2luZG93V2lkdGggLyAxMCkgLyAyO1xuXHRcdFx0XHRcdFx0dmFyIHJlbWFpbmluZ1dpZHRoID0gd2luZG93V2lkdGggLSBjb250YWluZXJTaXplO1xuXHRcdFx0XHRcdFx0dmFyIGZsb2F0ID0gcmVtYWluaW5nV2lkdGggLyAyO1xuXG5cdFx0XHRcdFx0XHRpZiAod2luZG93V2lkdGggPj0gMTIwMCkge1xuXHRcdFx0XHRcdFx0XHRpZiAoZml2ZVBlcmNlbnQgPiBmbG9hdCkge1xuXHRcdFx0XHRcdFx0XHRcdGlmICgkKHRoaXMpLmhhc0NsYXNzKCdjb250YWluZXItLWZsb2F0LWxlZnQnKSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0JCh0aGlzKS5jc3Moe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcIndpZHRoXCI6IHdpbmRvd1dpZHRoIC0gZml2ZVBlcmNlbnQgKyBcInB4XCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFwibWF4LXdpZHRoXCI6IFwiMTAwJVwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcIm1hcmdpblwiOiBcIjAgMCAwIFwiICsgZml2ZVBlcmNlbnQgKyBcInB4XCIsXG5cdFx0XHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdFx0XHR9O1xuXG5cdFx0XHRcdFx0XHRcdFx0aWYgKCQodGhpcykuaGFzQ2xhc3MoJ2NvbnRhaW5lci0tZmxvYXQtcmlnaHQnKSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0JCh0aGlzKS5jc3Moe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcIndpZHRoXCI6IHdpbmRvd1dpZHRoIC0gZml2ZVBlcmNlbnQgKyBcInB4XCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFwibWF4LXdpZHRoXCI6IFwiMTAwJVwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcIm1hcmdpblwiOiBcIjAgXCIgKyBmaXZlUGVyY2VudCArIFwicHggMCAwXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdGlmICgkKHRoaXMpLmhhc0NsYXNzKCdjb250YWluZXItLWZsb2F0LWxlZnQnKSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0JCh0aGlzKS5jc3Moe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcIndpZHRoXCI6IHdpbmRvd1dpZHRoIC0gZmxvYXQgKyBcInB4XCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFwibWF4LXdpZHRoXCI6IFwiMTAwJVwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcIm1hcmdpblwiOiBcIjAgMCAwIFwiICsgZmxvYXQgKyBcInB4XCIsXG5cdFx0XHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdFx0XHR9O1xuXG5cdFx0XHRcdFx0XHRcdFx0aWYgKCQodGhpcykuaGFzQ2xhc3MoJ2NvbnRhaW5lci0tZmxvYXQtcmlnaHQnKSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0JCh0aGlzKS5jc3Moe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcIndpZHRoXCI6IHdpbmRvd1dpZHRoIC0gZmxvYXQgKyBcInB4XCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFwibWF4LXdpZHRoXCI6IFwiMTAwJVwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcIm1hcmdpblwiOiBcIjAgXCIgKyBmbG9hdCArIFwicHggMCAwXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0aWYgKCQodGhpcykuaGFzQ2xhc3MoJ2NvbnRhaW5lci0tZmxvYXQtbW9iaWxlLWZ1bGwnKSkge1xuXHRcdFx0XHRcdFx0XHRcdCQodGhpcykuY3NzKHtcblx0XHRcdFx0XHRcdFx0XHRcdFwid2lkdGhcIjogXCIxMDAlXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcIm1heC13aWR0aFwiOiBcIjEwMCVcIixcblx0XHRcdFx0XHRcdFx0XHRcdFwibWFyZ2luXCI6IFwiMCBhdXRvXCIsXG5cdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0JCh0aGlzKS5jc3Moe1xuXHRcdFx0XHRcdFx0XHRcdFx0XCJ3aWR0aFwiOiBcIjkwJVwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XCJtYXgtd2lkdGhcIjogXCIxNDQwcHhcIixcblx0XHRcdFx0XHRcdFx0XHRcdFwibWFyZ2luXCI6IFwiMCBhdXRvXCIsXG5cdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHRcdFx0Ly8gaWYgKCQodGhpcykuaGFzQ2xhc3MoJ2NvbnRhaW5lci0tZmxvYXQtbGVmdCcpKSB7XG5cdFx0XHRcdFx0XHRcdC8vIFx0JCgnLmNvbnRhaW5lci0tZmxvYXQtbGVmdCcpLmNzcyh7XG5cdFx0XHRcdFx0XHRcdC8vIFx0XHRcIndpZHRoXCI6IFwiOTAlXCIsXG5cdFx0XHRcdFx0XHRcdC8vIFx0XHRcIm1heC13aWR0aFwiOiBcIjE0NDBweFwiLFxuXHRcdFx0XHRcdFx0XHQvLyBcdFx0XCJtYXJnaW5cIjogXCIwIGF1dG9cIixcblx0XHRcdFx0XHRcdFx0Ly8gXHR9KTtcblx0XHRcdFx0XHRcdFx0Ly8gfTtcblxuXHRcdFx0XHRcdFx0XHQvLyBpZiAoJCh0aGlzKS5oYXNDbGFzcygnY29udGFpbmVyLS1mbG9hdC1yaWdodCcpKSB7XG5cdFx0XHRcdFx0XHRcdC8vIFx0JCgnLmNvbnRhaW5lci0tZmxvYXQtcmlnaHQnKS5jc3Moe1xuXHRcdFx0XHRcdFx0XHQvLyBcdFx0XCJ3aWR0aFwiOiBcIjkwJVwiLFxuXHRcdFx0XHRcdFx0XHQvLyBcdFx0XCJtYXgtd2lkdGhcIjogXCIxNDQwcHhcIixcblx0XHRcdFx0XHRcdFx0Ly8gXHRcdFwibWFyZ2luXCI6IFwiMCBhdXRvXCIsXG5cdFx0XHRcdFx0XHRcdC8vIFx0fSk7XG5cdFx0XHRcdFx0XHRcdC8vIH07XG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9O1xuXG5cdFx0XHRcdGZ1bmN0aW9uIGNvbnRhaW5lckZsb2F0TWFyZ2luKCkge1xuXHRcdFx0XHRcdHZhciBjb250YWluZXJTaXplID0gMTQ0MDtcblx0XHRcdFx0XHR2YXIgd2luZG93V2lkdGggPSAkKHdpbmRvdykud2lkdGgoKTtcblx0XHRcdFx0XHR2YXIgd2luZG93V2l0aDkwID0gKHdpbmRvd1dpZHRoIC8gMTApICogOTtcblx0XHRcdFx0XHR2YXIgbWFyZ2luU2l6ZSA9IDA7XG5cblx0XHRcdFx0XHRpZiAod2luZG93V2l0aDkwID49IGNvbnRhaW5lclNpemUpIHtcblx0XHRcdFx0XHRcdG1hcmdpblNpemUgPSAod2luZG93V2lkdGggLSBjb250YWluZXJTaXplKSAvIDI7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdG1hcmdpblNpemUgPSAod2luZG93V2lkdGggLyAxMCkgLyAyO1xuXHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHQkKCcuY29udGFpbmVyLWZsb2F0LW1hcmdpbicpLmNzcyh7XG5cdFx0XHRcdFx0XHRcIndpZHRoXCI6IG1hcmdpblNpemUgKyBcInB4XCIsXG5cdFx0XHRcdFx0XHRcIm1pbi13aWR0aFwiOiBtYXJnaW5TaXplICsgXCJweFwiLFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9O1xuXG5cdFx0XHRcdGZ1bmN0aW9uIGN5Y2xpbmdIZWFkaW5nKCkge1xuXHRcdFx0XHRcdHZhciBudW1JdGVtcyA9ICQoJy5icmFuZC1zcGxpdF9fbm9ybWFsLWN5Y2xlJykubGVuZ3RoO1xuXHRcdFx0XHRcdHZhciBhYm92ZSA9ICQoJy5icmFuZC1zcGxpdF9fbm9ybWFsIC5hYm92ZScpO1xuXHRcdFx0XHRcdHZhciBjdXJyZW50ID0gJCgnLmJyYW5kLXNwbGl0X19ub3JtYWwgLmFjdGl2ZScpO1xuXHRcdFx0XHRcdHZhciBuZXh0ID0gJCgnLmJyYW5kLXNwbGl0X19ub3JtYWwgLmFjdGl2ZScpLm5leHQoJ3NwYW4nKTtcblxuXHRcdFx0XHRcdGlmIChudW1JdGVtcyA9PSAxKSB7XG5cdFx0XHRcdFx0XHRjdXJyZW50LnJlbW92ZUNsYXNzKCdhY3RpdmUnKS5hZGRDbGFzcygnYWJvdmUnKTtcblx0XHRcdFx0XHRcdCQoJy5icmFuZC1zcGxpdF9fbm9ybWFsIC5iZWxvdycpLnJlbW92ZUNsYXNzKCdiZWxvdycpLmFkZENsYXNzKCdhY3RpdmUnKTtcblx0XHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHQkKCcuYnJhbmQtc3BsaXRfX25vcm1hbCAuYWJvdmUnKS5yZW1vdmVDbGFzcygnYWJvdmUnKS5hZGRDbGFzcygnYmVsb3cnKTtcblx0XHRcdFx0XHRcdH0sIDQxMCk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGlmIChuZXh0Lmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHRhYm92ZS5yZW1vdmVDbGFzcygnYWJvdmUnKS5hZGRDbGFzcygnYmVsb3cnKTtcblx0XHRcdFx0XHRcdFx0Y3VycmVudC5yZW1vdmVDbGFzcygnYWN0aXZlJykuYWRkQ2xhc3MoJ2Fib3ZlJyk7XG5cdFx0XHRcdFx0XHRcdG5leHQucmVtb3ZlQ2xhc3MoJ2JlbG93JykuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0JCgnLmJyYW5kLXNwbGl0X19ub3JtYWwgLmFib3ZlJykucmVtb3ZlQ2xhc3MoJ2Fib3ZlJykuYWRkQ2xhc3MoJ2JlbG93Jyk7XG5cdFx0XHRcdFx0XHRcdGN1cnJlbnQucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpLmFkZENsYXNzKCdhYm92ZScpO1xuXHRcdFx0XHRcdFx0XHQkKCcuYnNuLTEnKS5yZW1vdmVDbGFzcygnYmVsb3cnKS5hZGRDbGFzcygnYWN0aXZlJyk7XG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fTtcblxuXHRcdFx0XHRmdW5jdGlvbiBtZWRpYVRleHRBbGlnbm1lbnQoKSB7XG5cdFx0XHRcdFx0dmFyIHdpbmRvd1dpZHRoID0gJCh3aW5kb3cpLndpZHRoKCk7XG5cblx0XHRcdFx0XHR2YXIgc2Nyb2xsYmFyV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCAtIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDtcblx0XHRcdFx0XHR2YXIgbWVkaWFUZXh0TWVkaWEgPSAkKCcuYmxvY2tfX21lZGlhLXRleHQnKS5maW5kKCcubWVkaWEtdGV4dF9fbWVkaWEtLWRlc2t0b3AnKTtcblxuXHRcdFx0XHRcdGlmICh3aW5kb3dXaWR0aCA+PSAxMjAwKSB7XG5cblx0XHRcdFx0XHRcdCQobWVkaWFUZXh0TWVkaWEpLmVhY2goZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHQkKHRoaXMpLmNzcyh7XG5cdFx0XHRcdFx0XHRcdFx0d2lkdGg6ICdjYWxjKDUwdncgLSAnICsgc2Nyb2xsYmFyV2lkdGggLyAyICsgJ3B4KScsXG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fTtcblxuXHRcdFx0XHRmdW5jdGlvbiBzbGlkZXJBbGlnbm1lbnQoKSB7XG5cdFx0XHRcdFx0dmFyIHdpbmRvd1dpZHRoID0gJCh3aW5kb3cpLndpZHRoKCk7XG5cblx0XHRcdFx0XHR2YXIgc2Nyb2xsYmFyV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCAtIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDtcblx0XHRcdFx0XHR2YXIgc2xpZGVyTWVkaWEgPSAkKCcuYmxvY2tfX3NsaWRlci0tYWx0ZXJuYXRlJykuZmluZCgnLnNsaWRlcl9faXRlbS1pbWFnZScpO1xuXHRcdFx0XHRcdHZhciBzbGlkZXJQcmV2ID0gJCgnLmJsb2NrX19zbGlkZXItLWFsdGVybmF0ZScpLmZpbmQoJy5zbGljay1wcmV2Jyk7XG5cdFx0XHRcdFx0dmFyIHNsaWRlck5leHQgPSAkKCcuYmxvY2tfX3NsaWRlci0tYWx0ZXJuYXRlJykuZmluZCgnLnNsaWNrLW5leHQnKTtcblxuXHRcdFx0XHRcdGlmICh3aW5kb3dXaWR0aCA+PSAxMjAwKSB7XG5cblx0XHRcdFx0XHRcdCQoc2xpZGVyTWVkaWEpLmVhY2goZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHQkKHRoaXMpLmNzcyh7XG5cdFx0XHRcdFx0XHRcdFx0d2lkdGg6ICdjYWxjKDUwdncgLSAnICsgc2Nyb2xsYmFyV2lkdGggLyAyICsgJ3B4KScsXG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHRcdCQoc2xpZGVyUHJldikuZWFjaChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRcdHZhciBzbGlkZXJfX3NsaWRlciA9ICQodGhpcykuY2xvc2VzdCgnLnNsaWRlcl9fc2xpZGVyJyk7XG5cblx0XHRcdFx0XHRcdFx0aWYgKCQoc2xpZGVyX19zbGlkZXIpLmhhc0NsYXNzKCdzbGlkZXJfX3NsaWRlci0tZmxpcHBlZCcpKSB7XG5cdFx0XHRcdFx0XHRcdFx0JCh0aGlzKS5jc3Moe1xuXHRcdFx0XHRcdFx0XHRcdFx0bGVmdDogJ2NhbGMoNTB2dyAtICcgKyBzY3JvbGxiYXJXaWR0aCAvIDIgKyAncHgpJyxcblx0XHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHQkKHRoaXMpLmNzcyh7XG5cdFx0XHRcdFx0XHRcdFx0XHRyaWdodDogJ2NhbGMoNTB2dyAtICcgKyBzY3JvbGxiYXJXaWR0aCAvIDIgKyAncHgpJyxcblx0XHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdH0pO1xuXG5cdFx0XHRcdFx0XHQkKHNsaWRlck5leHQpLmVhY2goZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHR2YXIgc2xpZGVyX19zbGlkZXIgPSAkKHRoaXMpLmNsb3Nlc3QoJy5zbGlkZXJfX3NsaWRlcicpO1xuXG5cdFx0XHRcdFx0XHRcdGlmICgkKHNsaWRlcl9fc2xpZGVyKS5oYXNDbGFzcygnc2xpZGVyX19zbGlkZXItLWZsaXBwZWQnKSkge1xuXHRcdFx0XHRcdFx0XHRcdCQodGhpcykuY3NzKHtcblx0XHRcdFx0XHRcdFx0XHRcdGxlZnQ6ICdjYWxjKDUwdncgLSAnICsgc2Nyb2xsYmFyV2lkdGggLyAyICsgJ3B4KScsXG5cdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0JCh0aGlzKS5jc3Moe1xuXHRcdFx0XHRcdFx0XHRcdFx0cmlnaHQ6ICdjYWxjKDUwdncgLSAnICsgc2Nyb2xsYmFyV2lkdGggLyAyICsgJ3B4KScsXG5cdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dmFyIHNsaWRlck1lZGlhID0gJCgnLmJsb2NrX19zbGlkZXItLWFsdGVybmF0ZScpLmZpbmQoJy5zbGlkZXJfX2l0ZW0taW1hZ2UnKTtcblxuXHRcdFx0XHRcdFx0JChzbGlkZXJNZWRpYSkuZWFjaChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRcdCQodGhpcykuY3NzKHtcblx0XHRcdFx0XHRcdFx0XHR3aWR0aDogJzEwMHZ3Jyxcblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRcdFx0JChzbGlkZXJQcmV2KS5lYWNoKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0JCh0aGlzKS5jc3Moe1xuXHRcdFx0XHRcdFx0XHRcdHJpZ2h0OiAnNjBweCcsXG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHRcdCQoc2xpZGVyTmV4dCkuZWFjaChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRcdCQodGhpcykuY3NzKHtcblx0XHRcdFx0XHRcdFx0XHRyaWdodDogJzBweCcsXG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fTtcblxuXHRcdFx0XHQvLyBGdW5jdGlvbnMgdG8gcnVuIG9uIGxvYWRcblx0XHRcdFx0Ly8gTGVuZ3RoIGNoZWNrcyB0byBzZWUgaWYgcGFnZSBoYXMgdGhlc2UgZWxlbWVudHMgYmVmb3JlIHJ1bm5pbmcgY29zdGx5IEphdmFTY3JpcHQgcmVzb3VyY2VzXG5cdFx0XHRcdCQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRpZiAoJCgnLmNvbnRhaW5lci0tZmxvYXQnKS5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdC8vIGNvbnRhaW5lckZsb2F0KCk7XG5cdFx0XHRcdFx0fTtcblxuXHRcdFx0XHRcdGlmICgkKCcuY29udGFpbmVyLWZsb2F0LW1hcmdpbicpLmxlbmd0aCkge1x
3674uXHRcdFx0XHRcdFx0Ly9jb250YWluZXJGbG9hdE1hcmdpbigpO1xuXHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHRpZiAoJCgnLmJyYW5kLXNwbGl0LS1jeWNsaW5nJykubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRzZXRJbnRlcnZhbChjeWNsaW5nSGVhZGluZywgNTAwMCk7XG5cdFx0XHRcdFx0fTtcblxuXHRcdFx0XHRcdGlmICgkKCcuYmxvY2tfX21lZGlhLXRleHQnKS5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdG1lZGlhVGV4dEFsaWdubWVudCgpO1xuXHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHRpZiAoJCgnLmJsb2NrX19zbGlkZXItLWFsdGVybmF0ZScpLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0c2xpZGVyQWxpZ25tZW50KCk7XG5cdFx0XHRcdFx0fTtcblxuXHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0JCgnLmhlYWRlcicpLnJlbW92ZUNsYXNzKCdoZWFkZXItLWxvYWRpbmcnKTtcblx0XHRcdFx0XHR9LCAxNTAwKTtcblxuXG5cblxuXG5cblx0XHRcdFx0XHQvKlxuXHRcdFx0XHRcdCAqXG5cdFx0XHRcdFx0ICogSW50ZXJhY3RpdmUgTWFwXG5cdFx0XHRcdFx0ICpcblx0XHRcdFx0XHQgKi9cblxuXHRcdFx0XHRcdGlmICgkKCcuYmxvY2tfX2ludGVyYWN0aXZlLW1hcCcpLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0Ly8gYWRkIGFjdGl2ZSBjbGFzcyB3aGVuIGNsaWNraW5nIG9uIGV4cGxvcmUgaG9sa2hhbSBhbmQgcHJldmVudCBkZWZhdWx0XG5cdFx0XHRcdFx0XHQkKCcuZXhwbG9yZS1ob2xraGFtX190b2dnbGUnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xuXHRcdFx0XHRcdFx0XHRlLnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdFx0XHRcdCQodGhpcykudG9nZ2xlQ2xhc3MoJ2FjdGl2ZScpO1xuXG5cdFx0XHRcdFx0XHRcdC8vIGFkZCBjbGFzcyB0byBwYXJlbnQgZXhwbG9yZS1ob2xraGFtXG5cdFx0XHRcdFx0XHRcdCQodGhpcykucGFyZW50KCcuZXhwbG9yZS1ob2xraGFtJykudG9nZ2xlQ2xhc3MoJ2FjdGl2ZScpO1xuXHRcdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHRcdHZhciBtaW5ab29tVmFsID0gMTtcblx0XHRcdFx0XHRcdGlmICgkKHdpbmRvdykud2lkdGgoKSA8IDc2OCkge1xuXHRcdFx0XHRcdFx0XHR2YXIgbWluWm9vbVZhbCA9IDI7XG5cblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0c3ZnUGFuWm9vbSgnc3ZnI21hcCcsIHtcblx0XHRcdFx0XHRcdFx0dmlld3BvcnRTZWxlY3RvcjogJy5zdmctcGFuLXpvb21fdmlld3BvcnQnLFxuXHRcdFx0XHRcdFx0XHRwYW5FbmFibGVkOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRjb250cm9sSWNvbnNFbmFibGVkOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHR6b29tRW5hYmxlZDogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0ZGJsQ2xpY2tab29tRW5hYmxlZDogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0bW91c2VXaGVlbFpvb21FbmFibGVkOiBmYWxzZSxcblx0XHRcdFx0XHRcdFx0cHJldmVudE1vdXNlRXZlbnRzRGVmYXVsdDogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0em9vbVNjYWxlU2Vuc2l0aXZpdHk6IDAuMixcblx0XHRcdFx0XHRcdFx0bWluWm9vbTogbWluWm9vbVZhbCxcblx0XHRcdFx0XHRcdFx0bWF4Wm9vbTogNixcblx0XHRcdFx0XHRcdFx0Zml0OiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRjb250YWluOiBmYWxzZSxcblx0XHRcdFx0XHRcdFx0Y2VudGVyOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRyZWZyZXNoUmF0ZTogJ2F1dG8nLFxuXHRcdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHRcdHZhciBwYW5ab29tTWFwID0gc3ZnUGFuWm9vbSgnI21hcCcpO1xuXG5cdFx0XHRcdFx0XHRwYW5ab29tTWFwLnpvb20oMilcblx0XHRcdFx0XHRcdHBhblpvb21NYXAudXBkYXRlQkJveCgpOyAvLyBVcGRhdGUgdmlld3BvcnQgYm91bmRpbmcgYm94XG5cdFx0XHRcdFx0XHRwYW5ab29tTWFwLmZpdCgpOyAvLyBmaXQgd29ya3MgYXMgZXhwZWN0ZWRcblxuXHRcdFx0XHRcdFx0Ly8gaGlkZSB0aGUgY29udGVudCBpZiBjbGlja2luZyBvdXRzaWRlIG9mIHRoZSBjb250ZW50XG5cdFx0XHRcdFx0XHQvLyAkKCcjbWFwJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcblx0XHRcdFx0XHRcdC8vIFx0aWYgKCEkKGUudGFyZ2V0KS5pcygnLmhvbGtoYW0tbWFwX19jb250ZW50IGRpdiAqJykpIHtcblx0XHRcdFx0XHRcdC8vIFx0XHQkKCcuZXhwbG9yZS1ob2xraGFtX19jb250ZW50IHVsIGxpIGEnKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG5cdFx0XHRcdFx0XHQvLyBcdFx0JCgnLm1hcC1pbmZvJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuXHRcdFx0XHRcdFx0Ly8gXHRcdCQoJy5ob2xraGFtLW1hcF9fY29udGVudCBkaXYnKS5mYWRlT3V0KCk7XG5cdFx0XHRcdFx0XHQvLyBcdH1cblx0XHRcdFx0XHRcdC8vIH0pO1xuXG5cdFx0XHRcdFx0XHQvLyBjbG9zZSB0aGUgY29udGVudCB3aGVuIC5wb3B1cC1jbG9zZSBpcyBjbGlja2VkXG5cdFx0XHRcdFx0XHQkKCcucG9wdXAtY2xvc2UnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xuXHRcdFx0XHRcdFx0XHQkKCcuZXhwbG9yZS1ob2xraGFtX19jb250ZW50IHVsIGxpIGEnKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG5cdFx0XHRcdFx0XHRcdCQoJy5tYXAtaW5mbycpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcblx0XHRcdFx0XHRcdFx0JCgnLmhvbGtoYW0tbWFwX19jb250ZW50IGRpdicpLmZhZGVPdXQoKTtcblx0XHRcdFx0XHRcdFx0cGFuWm9vbU1hcC56b29tKDIpXG5cdFx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRcdFx0Ly8gc3RvcmUgdGhlIGV4cGxvcmUtaG9sa2hhbV9fcGFuZWxfX2xvY2F0aW9ucyBpZCBvbiBjbGlja1xuXHRcdFx0XHRcdFx0JCgnLmV4cGxvcmUtaG9sa2hhbV9fY29udGVudCB1bCBsaSBhLCAubWFwLWluZm8nKS5vbignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHtcblx0XHRcdFx0XHRcdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cblx0XHRcdFx0XHRcdFx0dmFyIGF0dHJhY3Rpb24gPSAkKHRoaXMpLmF0dHIoJ2lkJyk7XG5cdFx0XHRcdFx0XHRcdHZhciBsb2NhdGlvbiA9ICQodGhpcykuZGF0YSgnc3JjJyk7XG5cdFx0XHRcdFx0XHRcdHZhciB3aW5kb3dXaWR0aCA9ICQod2luZG93KS53aWR0aCgpO1xuXG5cdFx0XHRcdFx0XHRcdGlmICh3aW5kb3dXaWR0aCA8IDc2OCkge1xuXHRcdFx0XHRcdFx0XHRcdCQoJy5leHBsb3JlLWhvbGtoYW0sIC5leHBsb3JlLWhvbGtoYW1fX3RvZ2dsZScpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcblx0XHRcdFx0XHRcdFx0fTtcblxuXHRcdFx0XHRcdFx0XHRpZiAoJCh0aGlzKS5oYXNDbGFzcygnYWN0aXZlJykpIHtcblx0XHRcdFx0XHRcdFx0XHQkKCcuZXhwbG9yZS1ob2xraGFtX19jb250ZW50IHVsIGxpIGEnKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG5cdFx0XHRcdFx0XHRcdFx0JCgnLm1hcC1pbmZvJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuXHRcdFx0XHRcdFx0XHRcdCQoJy5ob2xraGFtLW1hcF9fY29udGVudCBkaXYnKS5mYWRlT3V0KCk7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0JCgnLmV4cGxvcmUtaG9sa2hhbV9fY29udGVudCB1bCBsaSBhJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuXHRcdFx0XHRcdFx0XHRcdCQoJy5tYXAtaW5mbycpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcblx0XHRcdFx0XHRcdFx0XHQkKCcuaG9sa2hhbS1tYXBfX2NvbnRlbnQgZGl2JykuZmFkZU91dCgpO1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gYWRkIGFjdGl2ZSBjbGFzc1xuXHRcdFx0XHRcdFx0XHRcdCQoJy5leHBsb3JlLWhvbGtoYW1fX2NvbnRlbnQgdWwgbGkgYSMnICsgYXR0cmFjdGlvbikuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuXHRcdFx0XHRcdFx0XHRcdCQoJy5tYXAtaW5mb1tkYXRhLXNyYz1cIicgKyBsb2NhdGlvbiArICdcIl0nKS5hZGRDbGFzcygnYWN0aXZlJyk7XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBsb29wIHRocm91Z2ggaG9sa21hcC1tYXBfX2NvbnRlbnQgYW5kIGZpbmQgbWF0Y2hpbmcgZGF0YS1yZWwgYXR0cmlidXRlXG5cdFx0XHRcdFx0XHRcdFx0JCgnLmhvbGtoYW0tbWFwX19jb250ZW50IGRpdicpLmVhY2goZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKCQodGhpcykuYXR0cignZGF0YS1yZWwnKSA9PSBhdHRyYWN0aW9uKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIHNob3cgdGhlIG1hdGNoaW5nIGNvbnRlbn
3674Rcblx0XHRcdFx0XHRcdFx0XHRcdFx0JCh0aGlzKS5mYWRlSW4oKTtcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0JCgnc3ZnIGcjYnVpbGRpbmdzIGltYWdlJykuZWFjaChmdW5jdGlvbiAoKSB7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gZmluZCB0aGUgaW1hZ2UgaWQgdGhhdCBtYXRjaGVzIHRoZSBsb2NhdGlvbiBhbmQgc3RvcmUgdGhlIHggYW5kIHkgY29vcmRpbmF0ZXNcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKCQodGhpcykuYXR0cignaWQnKSA9PT0gbG9jYXRpb24pIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyB2YXIgeyBsZWZ0LCB3aWR0aCwgdG9wLCBoZWlnaHQgfSA9ICQodGhpcykuZ2V0KDApLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGxlZnQsIHdpZHRoLCB0b3AsIGhlaWdodCk7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyAvLyBwYW4gdG8gdGhlIGxvY2F0aW9uIGFuZCBjZW50ZXIgb24gdGhlIGltYWdlXG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBwYW5ab29tTWFwLnBhbkJ5KHt4OiAtbGVmdCwgeTogMH0pO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIHBhblpvb21NYXAucGFuQnkoe3g6IDAsIHk6IC10b3B9KTtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBpbml0aWFsU2l6ZXMgPSBwYW5ab29tTWFwLmdldFNpemVzKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGluaXRpYWxCb3VuZHMgPSAkKHRoaXMpLmdldCgwKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgaW5pdGlhbENYID0gaW5pdGlhbEJvdW5kcy54ICsgaW5pdGlhbEJvdW5kcy53aWR0aCAvIDI7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGluaXRpYWxDWSA9IGluaXRpYWxCb3VuZHMueSArIGluaXRpYWxCb3VuZHMuaGVpZ2h0IC8gMiAtIDEyMDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgZFggPSBpbml0aWFsU2l6ZXMud2lkdGggLyAyIC0gaW5pdGlhbENYO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBkWSA9IGluaXRpYWxTaXplcy5oZWlnaHQgLyAyIC0gaW5pdGlhbENZO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0cGFuWm9vbU1hcC5wYW5CeSh7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR4OiBkWCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHk6IGRZXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0cGFuWm9vbU1hcC56b29tKDQpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0XHRcdH0sIDI1MCk7XG5cdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRcdFx0Ly8gc3RvcmUgdGhlIGV4cGxvcmUtaG9sa2hhbV9fcGFuZWxfX2xvY2F0aW9ucyBpZCBvbiBjbGlja1xuXHRcdFx0XHRcdFx0JCgnLmV4cGxvcmUtaG9sa2hhbV9fY29udGVudCB1bCBsaSBhLCAubWFwLWluZm8sIC5idWlsZGluZy1pbWFnZScpLmhvdmVyKFxuXHRcdFx0XHRcdFx0XHRmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRcdFx0dmFyIGxvY2F0aW9uID0gJCh0aGlzKS5kYXRhKCdzcmMnKTtcblx0XHRcdFx0XHRcdFx0XHQkKCcuYnVpbGRpbmctaW1hZ2VbZGF0YS1zcmM9XCInICsgbG9jYXRpb24gKyAnXCJdJykuYWRkQ2xhc3MoJ2hvdmVyLXN0YXRlJyk7XG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0XHQkKCcuYnVpbGRpbmctaW1hZ2UnKS5yZW1vdmVDbGFzcygnaG92ZXItc3RhdGUnKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0KTtcblxuXHRcdFx0XHRcdFx0JCgnLmF0dHJhY3Rpb24tY29udGVudF9fcHJldicpLmNsaWNrKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coXCJQcmV2aW91c1wiKTtcblx0XHRcdFx0XHRcdFx0dmFyIGNsb3Nlc3RNb2RhbCA9ICQodGhpcykuY2xvc2VzdCgnLmhvbGtoYW0tbWFwX19jb250ZW50LW1vZGFsJyk7XG5cdFx0XHRcdFx0XHRcdCQoY2xvc2VzdE1vZGFsKS5mYWRlT3V0KCk7XG5cblx0XHRcdFx0XHRcdFx0aWYgKCQoY2xvc2VzdE1vZGFsKS5wcmV2KCkubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRcdFx0JChjbG9zZXN0TW9kYWwpLnByZXYoKS5mYWRlSW4oKTtcblxuXHRcdFx0XHRcdFx0XHRcdHZhciBhdHRyYWN0aW9uID0gJChjbG9zZXN0TW9kYWwpLnByZXYoKS5kYXRhKCdyZWwnKTtcblx0XHRcdFx0XHRcdFx0XHQkKCcuZXhwbG9yZS1ob2xraGFtX19jb250ZW50IHVsIGxpIGEnKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG5cdFx0XHRcdFx0XHRcdFx0JCgnLm1hcC1pbmZvJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuXHRcdFx0XHRcdFx0XHRcdCQoJy5leHBsb3JlLWhvbGtoYW1fX2NvbnRlbnQgdWwgbGkgYSMnICsgYXR0cmFjdGlvbikuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuXHRcdFx0XHRcdFx0XHRcdCQoJy5tYXAtaW5mby4nICsgYXR0cmFjdGlvbikuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuXG5cdFx0XHRcdFx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHQkKCdzdmcgZyNidWlsZGluZ3MgaW1hZ2UnKS5lYWNoKGZ1bmN0aW9uICgpIHtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBmaW5kIHRoZSBpbWFnZSBpZCB0aGF0IG1hdGNoZXMgdGhlIGxvY2F0aW9uIGFuZCBzdG9yZSB0aGUgeCBhbmQgeSBjb29yZGluYXRlc1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoJCh0aGlzKS5hdHRyKCdpZCcpID09PSBhdHRyYWN0aW9uKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gdmFyIHsgbGVmdCwgd2lkdGgsIHRvcCwgaGVpZ2h0IH0gPSAkKHRoaXMpLmdldCgwKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhsZWZ0LCB3aWR0aCwgdG9wLCBoZWlnaHQpO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gLy8gcGFuIHRvIH
3674RoZSBsb2NhdGlvbiBhbmQgY2VudGVyIG9uIHRoZSBpbWFnZVxuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gcGFuWm9vbU1hcC5wYW5CeSh7eDogLWxlZnQsIHk6IDB9KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBwYW5ab29tTWFwLnBhbkJ5KHt4OiAwLCB5OiAtdG9wfSk7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgaW5pdGlhbFNpemVzID0gcGFuWm9vbU1hcC5nZXRTaXplcygpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBpbml0aWFsQm91bmRzID0gJCh0aGlzKS5nZXQoMCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGluaXRpYWxDWCA9IGluaXRpYWxCb3VuZHMueCArIGluaXRpYWxCb3VuZHMud2lkdGggLyAyO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBpbml0aWFsQ1kgPSBpbml0aWFsQm91bmRzLnkgKyBpbml0aWFsQm91bmRzLmhlaWdodCAvIDIgLSAxMjA7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGRYID0gaW5pdGlhbFNpemVzLndpZHRoIC8gMiAtIGluaXRpYWxDWDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgZFkgPSBpbml0aWFsU2l6ZXMuaGVpZ2h0IC8gMiAtIGluaXRpYWxDWTtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHBhblpvb21NYXAucGFuQnkoe1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0eDogZFgsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR5OiBkWVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHBhblpvb21NYXAuem9vbSg0KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdFx0XHR9LCAyNTApO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdCQoJy5ob2xraGFtLW1hcF9fY29udGVudCAuaG9sa2hhbS1tYXBfX2NvbnRlbnQtbW9kYWwnKS5sYXN0KCkuZmFkZUluKCk7XG5cblx0XHRcdFx0XHRcdFx0XHR2YXIgYXR0cmFjdGlvbiA9ICQoJy5ob2xraGFtLW1hcF9fY29udGVudCAuaG9sa2hhbS1tYXBfX2NvbnRlbnQtbW9kYWwnKS5sYXN0KCkuZGF0YSgncmVsJyk7XG5cdFx0XHRcdFx0XHRcdFx0JCgnLmV4cGxvcmUtaG9sa2hhbV9fY29udGVudCB1bCBsaSBhJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuXHRcdFx0XHRcdFx0XHRcdCQoJy5tYXAtaW5mbycpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcblx0XHRcdFx0XHRcdFx0XHQkKCcuZXhwbG9yZS1ob2xraGFtX19jb250ZW50IHVsIGxpIGEjJyArIGF0dHJhY3Rpb24pLmFkZENsYXNzKCdhY3RpdmUnKTtcblx0XHRcdFx0XHRcdFx0XHQkKCcubWFwLWluZm8uJyArIGF0dHJhY3Rpb24pLmFkZENsYXNzKCdhY3RpdmUnKTtcblxuXHRcdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0JCgnc3ZnIGcjYnVpbGRpbmdzIGltYWdlJykuZWFjaChmdW5jdGlvbiAoKSB7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gZmluZCB0aGUgaW1hZ2UgaWQgdGhhdCBtYXRjaGVzIHRoZSBsb2NhdGlvbiBhbmQgc3RvcmUgdGhlIHggYW5kIHkgY29vcmRpbmF0ZXNcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKCQodGhpcykuYXR0cignaWQnKSA9PT0gYXR0cmFjdGlvbikge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIHZhciB7IGxlZnQsIHdpZHRoLCB0b3AsIGhlaWdodCB9ID0gJCh0aGlzKS5nZXQoMCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gY29uc29sZS5sb2cobGVmdCwgd2lkdGgsIHRvcCwgaGVpZ2h0KTtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIC8vIHBhbiB0byB0aGUgbG9jYXRpb24gYW5kIGNlbnRlciBvbiB0aGUgaW1hZ2VcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIHBhblpvb21NYXAucGFuQnkoe3g6IC1sZWZ0LCB5OiAwfSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gcGFuWm9vbU1hcC5wYW5CeSh7eDogMCwgeTogLXRvcH0pO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGluaXRpYWxTaXplcyA9IHBhblpvb21NYXAuZ2V0U2l6ZXMoKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgaW5pdGlhbEJvdW5kcyA9ICQodGhpcykuZ2V0KDApLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBpbml0aWFsQ1ggPSBpbml0aWFsQm91bmRzLnggKyBpbml0aWFsQm91bmRzLndpZHRoIC8gMjtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgaW5pdGlhbENZID0gaW5pdGlhbEJvdW5kcy55ICsgaW5pdGlhbEJvdW5kcy5oZWlnaHQgLyAyIC0gMTIwO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBkWCA9IGluaXRpYWxTaXplcy53aWR0aCAvIDIgLSBpbml0aWFsQ1g7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGRZID0gaW5pdGlhbFNpemVzLmhlaWdodCAvIDIgLSBpbml0aWFsQ1k7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRwYW5ab29tTWFwLnBhbkJ5KHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHg6IGRYLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0eTogZFlcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRwYW5ab29tTWFwLnpvb20oNCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdFx0fSwgMjUwKTtcblx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdH0pO1xuXG5cdFx0XHRcdFx0XHQkKCcuYXR0cmFjdGlvbi1jb250ZW50X19uZXh0JykuY2xpY2soZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHR2YXIgY2xvc2VzdE1vZGFsID0gJCh0aGlzKS5jbG9zZXN0KCcuaG9sa2hhbS1tYXBfX2NvbnRlbnQtbW9kYWwnKTtcblx0XHRcdFx0XHRcdFx0JChjbG9zZXN0TW9kYWwpLmZhZGVPdXQoKTtcblxuXHRcdFx0XHRcdFx0XHRpZiAoJChjbG9zZXN0TW9kYWwpLm5leHQoKS5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdFx0XHQkKGNsb3Nlc3RNb2RhbCkubmV4dCgpLmZhZGVJbigpO1xuXG5cdFx0XHRcdFx0XHRcdFx0dmFyIGF0dHJhY3Rpb24gPSAkKGNsb3Nlc3RNb2RhbCkubmV4dCgpLmRhdGEoJ3JlbCcpO1xuXHRcdFx0XHRcdFx0XHRcdCQoJy5leHBsb3JlLWhvbGtoYW1fX2NvbnRlbnQgdWwgbGkgYScpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcblx0XHRcdFx0XHRcdFx0XHQkKCcubWFwLWluZm8nKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG5cdFx0XHRcdFx0XHRcdFx0JCgnLmV4cGxvcmUtaG9sa2hhbV9fY29udGVudCB1bCBsaSBhIycgKyBhdHRyYWN0aW9uKS5hZGRDbGFzcygnYWN0aXZlJyk7XG5cdFx0XHRcdFx0XHRcdFx0JCgnLm1hcC1pbmZvLicgKyBhdHRyYWN0aW9uKS5hZGRDbGFzcygnYWN0aXZlJyk7XG5cblx0XHRcdFx0XHRcdFx0XHRzZXRUaW
36741lb3V0KGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0XHRcdCQoJ3N2ZyBnI2J1aWxkaW5ncyBpbWFnZScpLmVhY2goZnVuY3Rpb24gKCkge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGZpbmQgdGhlIGltYWdlIGlkIHRoYXQgbWF0Y2hlcyB0aGUgbG9jYXRpb24gYW5kIHN0b3JlIHRoZSB4IGFuZCB5IGNvb3JkaW5hdGVzXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmICgkKHRoaXMpLmF0dHIoJ2lkJykgPT09IGF0dHJhY3Rpb24pIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyB2YXIgeyBsZWZ0LCB3aWR0aCwgdG9wLCBoZWlnaHQgfSA9ICQodGhpcykuZ2V0KDApLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGxlZnQsIHdpZHRoLCB0b3AsIGhlaWdodCk7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyAvLyBwYW4gdG8gdGhlIGxvY2F0aW9uIGFuZCBjZW50ZXIgb24gdGhlIGltYWdlXG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBwYW5ab29tTWFwLnBhbkJ5KHt4OiAtbGVmdCwgeTogMH0pO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIHBhblpvb21NYXAucGFuQnkoe3g6IDAsIHk6IC10b3B9KTtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBpbml0aWFsU2l6ZXMgPSBwYW5ab29tTWFwLmdldFNpemVzKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGluaXRpYWxCb3VuZHMgPSAkKHRoaXMpLmdldCgwKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgaW5pdGlhbENYID0gaW5pdGlhbEJvdW5kcy54ICsgaW5pdGlhbEJvdW5kcy53aWR0aCAvIDI7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGluaXRpYWxDWSA9IGluaXRpYWxCb3VuZHMueSArIGluaXRpYWxCb3VuZHMuaGVpZ2h0IC8gMiAtIDEyMDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgZFggPSBpbml0aWFsU2l6ZXMud2lkdGggLyAyIC0gaW5pdGlhbENYO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBkWSA9IGluaXRpYWxTaXplcy5oZWlnaHQgLyAyIC0gaW5pdGlhbENZO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0cGFuWm9vbU1hcC5wYW5CeSh7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR4OiBkWCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHk6IGRZXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0cGFuWm9vbU1hcC56b29tKDQpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0XHRcdH0sIDI1MCk7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0JCgnLmhvbGtoYW0tbWFwX19jb250ZW50IC5ob2xraGFtLW1hcF9fY29udGVudC1tb2RhbCcpLmZpcnN0KCkuZmFkZUluKCk7XG5cblx0XHRcdFx0XHRcdFx0XHR2YXIgYXR0cmFjdGlvbiA9ICQoJy5ob2xraGFtLW1hcF9fY29udGVudCAuaG9sa2hhbS1tYXBfX2NvbnRlbnQtbW9kYWwnKS5maXJzdCgpLmRhdGEoJ3JlbCcpO1xuXHRcdFx0XHRcdFx0XHRcdCQoJy5leHBsb3JlLWhvbGtoYW1fX2NvbnRlbnQgdWwgbGkgYScpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcblx0XHRcdFx0XHRcdFx0XHQkKCcubWFwLWluZm8nKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG5cdFx0XHRcdFx0XHRcdFx0JCgnLmV4cGxvcmUtaG9sa2hhbV9fY29udGVudCB1bCBsaSBhIycgKyBhdHRyYWN0aW9uKS5hZGRDbGFzcygnYWN0aXZlJyk7XG5cdFx0XHRcdFx0XHRcdFx0JCgnLm1hcC1pbmZvLicgKyBhdHRyYWN0aW9uKS5hZGRDbGFzcygnYWN0aXZlJyk7XG5cblx0XHRcdFx0XHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0XHRcdCQoJ3N2ZyBnI2J1aWxkaW5ncyBpbWFnZScpLmVhY2goZnVuY3Rpb24gKCkge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGZpbmQgdGhlIGltYWdlIGlkIHRoYXQgbWF0Y2hlcyB0aGUgbG9jYXRpb24gYW5kIHN0b3JlIHRoZSB4IGFuZCB5IGNvb3JkaW5hdGVzXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmICgkKHRoaXMpLmF0dHIoJ2lkJykgPT09IGF0dHJhY3Rpb24pIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyB2YXIgeyBsZWZ0LCB3aWR0aCwgdG9wLCBoZWlnaHQgfSA9ICQodGhpcykuZ2V0KDApLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGxlZnQsIHdpZHRoLCB0b3AsIGhlaWdodCk7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyAvLyBwYW4gdG8gdGhlIGxvY2F0aW9uIGFuZCBjZW50ZXIgb24gdGhlIGltYWdlXG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBwYW5ab29tTWFwLnBhbkJ5KHt4OiAtbGVmdCwgeTogMH0pO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIHBhblpvb21NYXAucGFuQnkoe3g6IDAsIHk6IC10b3B9KTtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBpbml0aWFsU2l6ZXMgPSBwYW5ab29tTWFwLmdldFNpemVzKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGluaXRpYWxCb3VuZHMgPSAkKHRoaXMpLmdldCgwKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgaW5pdGlhbENYID0gaW5pdGlhbEJvdW5kcy54ICsgaW5pdGlhbEJvdW5kcy53aWR0aCAvIDI7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyIGluaXRpYWxDWSA9IGluaXRpYWxCb3VuZHMueSArIGluaXRpYWxCb3VuZHMuaGVpZ2h0IC8gMiAtIDEyMDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIgZFggPSBpbml0aWFsU2l6ZXMud2lkdGggLyAyIC0gaW5pdGlhbENYO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBkWSA9IGluaXRpYWxTaXplcy5oZWlnaHQgLyAyIC0gaW5pdGlhbENZO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0cGFuWm9vbU1hcC5wYW5CeSh7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR4OiBkWCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHk6IGRZXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0cGFuWm9vbU1hcC56b29tKDQpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0XHRcdH0sIDI1MCk7XG5cdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRcdFx0Ly8gQ3ljbGUgUm91dGVzXG5cdFx0XHRcdFx0XHQvLyB3aGVuIGNsaWNraW5nIG9uIGN5Y2xlIHJvdXRlIGEgXG5cdFx0XHRcdFx0XHQkKCcuaG9sa2hhbS1tYXBfX3JvdXRlcyB1bCBsaSBhJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHR2YXIgcm91dGUgPSAkKHRoaXMpLmF0dHIoJ2lkJyk7XG5cblx0XHRcdFx0XHRcdFx0cGFuWm9vbU1hcC56b29tKDIpXG5cdFx0XHRcdFx0XHRcdHBhblpvb21NYXAudXBkYXRlQkJveCgpOyAvLyBVcGRhdGUgdmlld3BvcnQgYm91bmRpbmcgYm94XG5cdFx0XHRcdFx0XHRcdHBhblpvb21NYXAuZml0KCk7IC8vIGZpdCB3b3JrcyBhcyBleHBlY3RlZFxuXG5cblx0XHRcdFx0XHRcdFx0Ly8gaGlkZSBhbGwgI2N5Y2xpbmcgcm91dGVzXG5cdFx0XHRcdFx0XHRcdCQoJyNjeWNsaW5nIHBhdGgnKS5yZW1vdmVDbGFzcygnYWN0aXZlJykuaGlkZSgpO1xuXG5cdFx0XHRcdFx0XHRcdC8vIGxvb3AgdGhyb3VnaCB0aGUgY3ljbGluZyByb3V0ZXMgYW5kIHNob3cgdGhlIG9uZSB0aGF0IG1hdGNoZXMgdGhlIGl
3674kXG5cdFx0XHRcdFx0XHRcdCQoJyNjeWNsaW5nIHBhdGgnKS5lYWNoKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0XHRpZiAoJCh0aGlzKS5hdHRyKCdpZCcpID09PSByb3V0ZSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0JCh0aGlzKS5zaG93KCk7XG5cblx0XHRcdFx0XHRcdFx0XHRcdC8vIHNldCB0aGUgcGF0aCB3aWR0aCB0byA0cHhcblx0XHRcdFx0XHRcdFx0XHRcdCQodGhpcykuY3NzKCdzdHJva2Utd2lkdGgnLCAnNHB4Jyk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRcdFx0XHQvLyBpZiBzaG93IGFsbCByb3V0ZXMgaXMgY2xpY2tlZFxuXHRcdFx0XHRcdFx0XHRpZiAocm91dGUgPT09ICdyb3V0ZS1hbGwnKSB7XG5cdFx0XHRcdFx0XHRcdFx0Ly8gc2hvdyBhbGwgY3ljbGluZyByb3V0ZXNcblx0XHRcdFx0XHRcdFx0XHQkKCcjY3ljbGluZyBwYXRoJykuc2hvdygpO1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gc2V0IHRoZSBwYXRoIHdpZHRoIHRvIDFweFxuXHRcdFx0XHRcdFx0XHRcdCQoJyNjeWNsaW5nIHBhdGgnKS5jc3MoJ3N0cm9rZS13aWR0aCcsICcxcHgnKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHRcdGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiem9vbS1pblwiKS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2KSB7XG5cdFx0XHRcdFx0XHRcdGV2LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdFx0XHRcdHBhblpvb21NYXAuem9vbUluKCk7XG5cdFx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRcdFx0ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJ6b29tLW91dFwiKS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2KSB7XG5cdFx0XHRcdFx0XHRcdGV2LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdFx0XHRcdHBhblpvb21NYXAuem9vbU91dCgpO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fSk7XG5cblxuXHRcdFx0XHQvLyBGdW5jdGlvbnMgdG8gcnVuIG9uIHdpbmRvdyByZXNpemVcblx0XHRcdFx0Ly8gTGVuZ3RoIGNoZWNrcyB0byBzZWUgaWYgcGFnZSBoYXMgdGhlc2UgZWxlbWVudHMgYmVmb3JlIHJ1bm5pbmcgY29zdGx5IEphdmFTY3JpcHQgcmVzb3VyY2VzXG5cdFx0XHRcdCQod2luZG93KS5yZXNpemUoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdGlmICgkKCcuY29udGFpbmVyLS1mbG9hdCcpLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0Ly9jb250YWluZXJGbG9hdCgpO1xuXHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHRpZiAoJCgnLmNvbnRhaW5lci1mbG9hdC1tYXJnaW4nKS5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdC8vY29udGFpbmVyRmxvYXRNYXJnaW4oKTtcblx0XHRcdFx0XHR9O1xuXG5cdFx0XHRcdFx0aWYgKCQoJy5ibG9ja19fbWVkaWEtdGV4dCcpLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0bWVkaWFUZXh0QWxpZ25tZW50KCk7XG5cdFx0XHRcdFx0fTtcblxuXHRcdFx0XHRcdGlmICgkKCcuYmxvY2tfX3NsaWRlci0tc2xpZGVyJykubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRzbGlkZXJBbGlnbm1lbnQoKTtcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHQvLyB3cmFwIGVtYmVkcyBpbiBkaXZcblx0XHRcdFx0JCgnaWZyYW1lW3NyY149XCJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC9cIl0nKS53cmFwKCc8ZGl2IGNsYXNzPVwiZW1iZWRcIj48L2Rpdj4nKTtcblx0XHRcdFx0JChcImlmcmFtZVtzcmNePSdodHRwczovL3BsYXllci52aW1lby5jb20vdmlkZW8nXTpub3QoJy5uby13cmFwJylcIikud3JhcCgnPGRpdiBjbGFzcz1cImVtYmVkXCI+PC9kaXY+Jyk7XG5cblx0XHRcdFx0Lypcblx0XHRcdFx0ICpcblx0XHRcdFx0ICogR2VuZXJhbCBGdW5jdGlvbmFsaXR5XG5cdFx0XHRcdCAqXG5cdFx0XHRcdCAqL1xuXG5cdFx0XHRcdCQoJy5qcy1vcGVuLW9wZW5pbmctdGltZXMnKS5jbGljayhmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0JCgnLm9wZW5pbmctdGltZXMnKS5hZGRDbGFzcygnb3BlbicpO1xuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHQkKCcub3BlbmluZy10aW1lc19fY2xvc2UnKS5jbGljayhmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0JCgnLm9wZW5pbmctdGltZXMnKS5yZW1vdmVDbGFzcygnb3BlbicpO1xuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHQkKCcuYnV0dG9uLS1iYWNrLXRvLXRvcCcpLmNsaWNrKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHQkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7XG5cdFx0XHRcdFx0XHRzY3JvbGxUb3A6IDAsXG5cdFx0XHRcdFx0fSwgMTAwMCk7XG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdCQoJy5idXR0b24tLXNjcm9sbC1kb3duJykuY2xpY2soZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdHZhciBzZWN0aW9uID0gJCh0aGlzKS5jbG9zZXN0KCcuYmxvY2snKTtcblx0XHRcdFx0XHR2YXIgc2VjdGlvbkJvdHRvbSA9IHNlY3Rpb24ucG9zaXRpb24oKS50b3AgKyBzZWN0aW9uLm91dGVySGVpZ2h0KHRydWUpO1xuXHRcdFx0XHRcdHZhciBzY3JvbGxEaXN0YW5jZSA9IHNlY3Rpb25Cb3R0b207XG5cblx0XHRcdFx0XHQkKCdodG1sLCBib2R5JykuYW5pbWF0ZSh7XG5cdFx0XHRcdFx0XHRzY3JvbGxUb3A6IHNjcm9sbERpc3RhbmNlLFxuXHRcdFx0XHRcdH0sIDEwMDApO1xuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHQvLyBIZWFkZXIgU2VhcmNoIEJhclxuXHRcdFx0XHQkKCcuc2VhcmNoX190b2dnbGUnKS5jbGljayhmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0dmFyIHBhcmVudCA9ICQodGhpcykuY2xvc2VzdCgnLnNlYXJjaCcpO1xuXG5cdFx0XHRcdFx0aWYgKCQocGFyZW50KS5oYXNDbGFzcygnY2xvc2VkJykpIHtcblx0XHRcdFx0XHRcdCQocGFyZW50KS5yZW1vdmVDbGFzcygnY2xvc2VkJyk7XG5cdFx0XHRcdFx0XHQkKHBhcmVudCkuYWRkQ2xhc3MoJ29wZW4nKTtcblx0XHRcdFx0XHRcdCQodGhpcykuY2xvc2VzdCgnaGVhZGVyJykuYWRkQ2xhc3MoJ3NlYXJjaC1vcGVuJyk7XG5cdFx0XHRcdFx0XHQkKHRoaXMpLmNsb3Nlc3QoJ2hlYWRlcicpLmZpbmQoJy5oZWFkZXJfX3NlYXJjaCcpLmFkZENsYXNzKCdvcGVuJyk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdCQocGFyZW50KS5yZW1vdmVDbGFzcygnb3BlbicpO1xuXHRcdFx0XHRcdFx0JChwYXJlbnQpLmFkZENsYXNzKCdjbG9zZWQnKTtcblx0XHRcdFx0XHRcdCQodGhpcykuY2xvc2VzdCgnaGVhZGVyJykucmVtb3ZlQ2xhc3MoJ3NlYXJjaC1vcGVuJyk7XG5cdFx0XHRcdFx0XHQkKHRoaXMpLmNsb3Nlc3QoJ2hlYWRlcicpLmZpbmQoJy5oZWFkZXJfX3NlYXJjaCcpLnJlbW92ZUNsYXNzKCdvcGVuJyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHQvLyBNZWRpYSAoVmlkZW8pXG5cdFx0XHRcdCQoJ3ZpZGVvJykub24oXCJwbGF5XCIsIGZ1bmN0aW9uIChlKSB7XG5cdFx0XHRcdFx0JCh0aGlzKS5jbG9zZXN0KCcudmlkZW8tY29udGFpbmVyJykuYWRkQ2xhc3MoJ3BsYXlpbmcnKTtcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0JCgndmlkZW8nKS5vbihcInBhdXNlXCIsIGZ1bmN0aW9uIChlKSB7XG5cdFx0XHRcdFx0JCh0aGlzKS5jbG9zZXN0KCcudmlkZW8tY29udGFpbmVyJykucmVtb3ZlQ2xhc3MoJ3BsYXlpbmcnKTtcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0JCgnLnZpZG
3674VvLXBsYXknKS5jbGljayhmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0dmFyIG1lZGlhID0gJCh0aGlzKS5jbG9zZXN0KCcudmlkZW8tY29udGFpbmVyJyk7XG5cblx0XHRcdFx0XHRpZiAoISQobWVkaWEpLmhhc0NsYXNzKCdwbGF5aW5nJykpIHtcblx0XHRcdFx0XHRcdCQobWVkaWEpLmFkZENsYXNzKCdwbGF5aW5nJyk7XG5cdFx0XHRcdFx0XHQkKG1lZGlhKS5maW5kKCd2aWRlbycpLnRyaWdnZXIoJ3BsYXknKTtcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHQvLyBBY2NvcmRpb25zXG5cdFx0XHRcdCQoJy5hY2NvcmRpb25fX3RvZ2dsZScpLmNsaWNrKGZ1bmN0aW9uIChlKSB7XG5cdFx0XHRcdFx0JCh0aGlzKS5jbG9zZXN0KCcuYWNjb3JkaW9uJykudG9nZ2xlQ2xhc3MoJ29wZW4nKTtcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0Ly8gQmxvY2sgQWNjb3JkaW9ucyBTdGFuZGFyZFxuXHRcdFx0XHQkKCcuYWNjb3JkaW9uc19fc3RhbmRhcmQgLmFjY29yZGlvbnNfX3N0YW5kYXJkLXNlbGVjdG9ycyAuYnV0dG9uJykuY2xpY2soZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdHZhciBpZCA9ICQodGhpcykuZGF0YSgnaWQnKTtcblx0XHRcdFx0XHR2YXIgY2xvc2VzdEJsb2NrID0gJCh0aGlzKS5jbG9zZXN0KCcuYmxvY2snKTtcblxuXHRcdFx0XHRcdCQoY2xvc2VzdEJsb2NrKS5maW5kKCcuYWNjb3JkaW9uc19fc3RhbmRhcmQtc2VsZWN0b3JzIC5idXR0b24nKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG5cdFx0XHRcdFx0JCh0aGlzKS5hZGRDbGFzcygnYWN0aXZlJyk7XG5cblx0XHRcdFx0XHQkKGNsb3Nlc3RCbG9jaykuZmluZCgnLmFjY29yZGlvbnNfX3N0YW5kYXJkLWFjY29yZGlvbicpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcblx0XHRcdFx0XHQkKGNsb3Nlc3RCbG9jaykuZmluZCgnLmFjY29yZGlvbnNfX3N0YW5kYXJkLWFjY29yZGlvbi0tJyArIGlkKS5hZGRDbGFzcygnYWN0aXZlJyk7XG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdC8vIEFjY29yZGlvbnMgLSBUaW1lZFxuXHRcdFx0XHQkKFwiLmFjY29yZGlvbnNfX3RpbWVkLXNlbGVjdG9yc1wiKS5zbGljayh7XG5cdFx0XHRcdFx0aW5maW5pdGU6IHRydWUsXG5cdFx0XHRcdFx0ZmFkZTogdHJ1ZSxcblx0XHRcdFx0XHRzbGlkZXNUb1Nob3c6IDEsXG5cdFx0XHRcdFx0c2xpZGVzVG9TY3JvbGw6IDEsXG5cdFx0XHRcdFx0YXJyb3dzOiBmYWxzZSxcblx0XHRcdFx0XHRkb3RzOiBmYWxzZSxcblx0XHRcdFx0XHRhdXRvcGxheTogdHJ1ZSxcblx0XHRcdFx0XHRhdXRvcGxheVNwZWVkOiA3NTAwLFxuXHRcdFx0XHRcdHBhdXNlT25Ib3ZlcjogdHJ1ZSxcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0JChcIi5hY2NvcmRpb25zX190aW1lZC1zZWxlY3RvcnNcIikub24oXCJiZWZvcmVDaGFuZ2VcIiwgZnVuY3Rpb24gKGUsIHQsIG4sIGkpIHtcblx0XHRcdFx0XHR2YXIgbyA9ICQodGhpcykuY2xvc2VzdChcInNlY3Rpb25cIik7XG5cdFx0XHRcdFx0ciA9IGkgKyAxO1xuXHRcdFx0XHRcdG8uZmluZChcIi5hY2NvcmRpb25zX190aW1lZC1hY2NvcmRpb24uYWN0aXZlXCIpLnJlbW92ZUNsYXNzKFwiYWN0aXZlXCIpO1xuXHRcdFx0XHRcdG8uZmluZCgnLmFjY29yZGlvbnNfX3RpbWVkLWFjY29yZGlvbltkYXRhLXNsaWRlPVwiJyArIHIgKyAnXCJdJykuYWRkQ2xhc3MoXCJhY3RpdmVcIik7XG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdCQoXCIuYWNjb3JkaW9uc19fdGltZWQtc2VsZWN0b3IgYnV0dG9uXCIpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdCQodGhpcykuY2xvc2VzdChcInNlY3Rpb25cIikuZmluZChcIi5zbGljay1zbGlkZXJcIikuc2xpY2soXCJzbGlja0dvVG9cIiwgJCh0aGlzKS5hdHRyKFwiZGF0YS1zbGlkZVwiKSAtIDEpXG5cdFx0XHRcdFx0JCh0aGlzKS5jbG9zZXN0KFwic2VjdGlvblwiKS5maW5kKCcuc2xpY2stc2xpZGVyJykuc2xpY2soJ3NsaWNrUGxheScpO1xuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHQkKCcuYWNjb3JkaW9uc19fdGltZWQtc2VsZWN0b3JzJykuaG92ZXIoXG5cdFx0XHRcdFx0ZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0JCh0aGlzKS5zbGljaygnc2xpY2tQYXVzZScpO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0ZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0JCh0aGlzKS5zbGljaygnc2xpY2tQbGF5Jyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHQpO1xuXG5cblx0XHRcdFx0Ly8gVGFic1xuXHRcdFx0XHQkKCcudGFic19fc2VsZWN0b3InKS5jbGljayhmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0dmFyIGlkID0gJCh0aGlzKS5kYXRhKCdpZCcpO1xuXHRcdFx0XHRcdHZhciBjbG9zZXN0QmxvY2sgPSAkKHRoaXMpLmNsb3Nlc3QoJy5ibG9jaycpO1xuXG5cdFx0XHRcdFx0JChjbG9zZXN0QmxvY2spLmZpbmQoJy50YWJzX19zZWxlY3RvcicpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcblx0XHRcdFx0XHQkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcblxuXHRcdFx0XHRcdCQoY2xvc2VzdEJsb2NrKS5maW5kKCcudGFic19fdGFiJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuXHRcdFx0XHRcdCQoY2xvc2VzdEJsb2NrKS5maW5kKCcudGFic19fdGFiLS0nICsgaWQpLmFkZENsYXNzKCdhY3RpdmUnKTtcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0Ly8gQm9va2luZ1xuXHRcdFx0XHQkKCcuYm9va2luZ19fc2VsZWN0b3ItYnV0dG9uJykuY2xpY2soZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdHZhciBpZCA9ICQodGhpcykuZGF0YSgnaWQnKTtcblx0XHRcdFx0XHR2YXIgY2xvc2VzdEJsb2NrID0gJCh0aGlzKS5jbG9zZXN0KCcuYmxvY2snKTtcblxuXHRcdFx0XHRcdCQoY2xvc2VzdEJsb2NrKS5maW5kKCcuYm9va2luZ19fc2VsZWN0b3ItYnV0dG9uJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuXHRcdFx0XHRcdCQodGhpcykuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuXG5cdFx0XHRcdFx0JChjbG9zZXN0QmxvY2spLmZpbmQoJy5ib29raW5nX190YWInKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG5cdFx0XHRcdFx0JChjbG9zZXN0QmxvY2spLmZpbmQoJy5ib29raW5nX190YWItLScgKyBpZCkuYWRk
3674Q2xhc3MoJ2FjdGl2ZScpO1xuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHQvLyBUaW1lbGluZVxuXHRcdFx0XHQkKCcudGltZWxpbmVfX3BlcmlvZHMtc2VsZWN0b3InKS5jbGljayhmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0dmFyIGlkID0gJCh0aGlzKS5kYXRhKCdpZCcpO1xuXHRcdFx0XHRcdHZhciBjbG9zZXN0QmxvY2sgPSAkKHRoaXMpLmNsb3Nlc3QoJy5ibG9jaycpO1xuXG5cdFx0XHRcdFx0JChjbG9zZXN0QmxvY2spLmZpbmQoJy50aW1lbGluZV9fcGVyaW9kcy1zZWxlY3RvcicpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcblx0XHRcdFx0XHQkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcblxuXHRcdFx0XHRcdCQoY2xvc2VzdEJsb2NrKS5maW5kKCcudGltZWxpbmVfX3NsaWRlcicpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcblx0XHRcdFx0XHQkKGNsb3Nlc3RCbG9jaykuZmluZCgnLnRpbWVsaW5lX19zbGlkZXItLScgKyBpZCkuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuXG5cdFx0XHRcdFx0JChjbG9zZXN0QmxvY2spLmZpbmQoJy5zbW9vdGgtc2xpZGVyX19jb250cm9scycpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcblx0XHRcdFx0XHQkKGNsb3Nlc3RCbG9jaykuZmluZCgnLnNtb290aC1zbGlkZXJfX2NvbnRyb2xzLS0nICsgaWQpLmFkZENsYXNzKCdhY3RpdmUnKTtcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0Ly8gTWVldCB0aGUgdGVhbVxuXHRcdFx0XHQkKCcubWVldC10aGUtdGVhbV9fcHJvZmlsZXMtc2VsZWN0b3IgYnV0dG9uJykuY2xpY2soZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdHZhciBpZCA9ICQodGhpcykuZGF0YSgnaWQnKTtcblx0XHRcdFx0XHR2YXIgY2xvc2VzdEJsb2NrID0gJCh0aGlzKS5jbG9zZXN0KCcuYmxvY2snKTtcblxuXHRcdFx0XHRcdCQoY2xvc2VzdEJsb2NrKS5maW5kKCcubWVldC10aGUtdGVhbV9fcHJvZmlsZXMtc2VsZWN0b3IgYnV0dG9uJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuXHRcdFx0XHRcdCQodGhpcykuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuXG5cdFx0XHRcdFx0JChjbG9zZXN0QmxvY2spLmZpbmQoJy5tZWV0LXRoZS10ZWFtX19wcm9maWxlJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuXHRcdFx0XHRcdCQoY2xvc2VzdEJsb2NrKS5maW5kKCcubWVldC10aGUtdGVhbV9fcHJvZmlsZS0tJyArIGlkKS5hZGRDbGFzcygnYWN0aXZlJyk7XG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdC8vIFRpbWVsaW5lIFNob3cgTW9yZVxuXHRcdFx0XHQkKCcuZXhwYW5kYWJsZS1jb250ZW50LXRvZ2dsZScpLmNsaWNrKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHQkKHRoaXMpLnRvZ2dsZUNsYXNzKCdvcGVuJyk7XG5cdFx0XHRcdFx0JCh0aGlzKS5jbG9zZXN0KCcudGltZWxpbmVfX2V2ZW50JykuZmluZCgnLmV4cGFuZGFibGUtY29udGVudCcpLnRvZ2dsZUNsYXNzKCdvcGVuJyk7XG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdC8vIE9wZW5pbmcgVGltZXMgJiBQcmljZXNcblx0XHRcdFx0JCgnLm9wZW5pbmctdGltZXMtYW5kLXByaWNlc19fc2Vhc29uLXBpY2tlci0tZGVza3RvcCBidXR0b24sIC5vcGVuaW5nLXRpbWVzLWFuZC1wcmljZXNfX3NlYXNvbi1waWNrZXItLW1vYmlsZSAuZHJvcGRvd25fX29wdGlvbnMgLmRyb3Bkb3duX19vcHRpb25zLWlubmVyIGJ1dHRvbicpLmNsaWNrKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRpZiAoISQodGhpcykuaGFzQ2xhc3MoJ2FjdGl2ZScpKSB7XG5cdFx0XHRcdFx0XHR2YXIgc2Vhc29uID0gJCh0aGlzKS5kYXRhKCdzZWFzb24nKTtcblxuXHRcdFx0XHRcdFx0JCgnLm9wZW5pbmctdGltZXMtYW5kLXByaWNlc19fc2Vhc29uLXBpY2tlciBidXR0b24nKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG5cdFx0XHRcdFx0XHQkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcblxuXHRcdFx0XHRcdFx0JCgnLm9wZW5pbmctdGltZXMtYW5kLXByaWNlc19fc2Vhc29uJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuXHRcdFx0XHRcdFx0JCgnLm9wZW5pbmctdGltZXMtYW5kLXByaWNlc19fc2Vhc29uLS0nICsgc2Vhc29uKS5hZGRDbGFzcygnYWN0aXZlJyk7XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0Ly8gRmFtaWxpYWwgTmF2IERyb3Bkb3duIChNb2JpbGUpXG5cdFx0XHRcdCQoJy5mYW1pbGlhbC1uYXZfX2Ryb3Bkb3duLXVwcGVyJykuY2xpY2soZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdHZhciBwYXJlbnQgPSAkKHRoaXMpLmNsb3Nlc3QoJy5mYW1pbGlhbC1uYXZfX2Ryb3Bkb3duJyk7XG5cblx0XHRcdFx0XHQkKHBhcmVudCkudG9nZ2xlQ2xhc3MoJ29wZW4nKTtcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0Ly8gRHJvcGRvd25cblx0XHRcdFx0JCgnLmRyb3Bkb3duX190b2dnbGUnKS5jbGljayhmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0XHRcdFx0JCh0aGlzKS5jbG9zZXN0KCcuZHJvcGRvd24nKS50b2dnbGVDbGFzcygnb3BlbicpO1xuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHQkKCcuZHJvcGRvd25fX29wdGlvbnMgYScpLmNsaWNrKGZ1bmN0aW9uIChlKSB7XG5cdFx0XHRcdFx0JCh0aGlzKS5jbG9zZXN0KCcuZHJvcGRvd24nKS5yZW1vdmVDbGFzcygnb3BlbicpO1xuXHRcdFx0XHR9KTtcblxuXG5cdFx0XHRcdC8qXG5cdFx0XHRcdCAqXG5cdFx0XHRcdCAqIFNsaWRlcnNcblx0XHRcdFx0ICpcblx0XHRcdFx0ICovXG5cblx0XHRcdFx0Ly8gTWVkaWEgU2xpZGVyXG5cdFx0XHRcdCQoJy5tZWRpYV9fc2xpZGVyJykuc2xpY2soe1xuXHRcdFx0XHRcdGFycm93czogdHJ1ZSxcblx0XHRcdFx0XHRkb3RzOiB0cnVlLFxuXHRcdFx0XHRcdHNsaWRlc1RvU2hvdzogMSxcblx0XHRcdFx0XHRzbGlkZXNUb1Njcm9sbDogMSxcblx0XHRcdFx0XHRmYWRlOiB0cnVlLFxuXHRcdFx0XHRcdGFkYXB0aXZlSGVpZ2h0OiB0cnVlLFxuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHQvLyBDYXJkcyBTbGlkZXJcblx0XHRcdFx0JCgnLmNhcmRzX19ncmlkLS1zbGlkZXItMycpLnNsaWNrKHtcblx0XHRcdFx0XHRhcnJvd3M6IHRydWUsXG5cdFx0XHRcdFx0ZG90czogdHJ1ZSxcblx0XHRcdFx0XHRzbGlkZXNUb1Nob3c6IDMsXG5cdFx0XHRcdFx0c2xpZGVzVG9TY3JvbGw6IDEsXG5cdFx0XHRcdFx0cmVzcG9uc2l2ZTogW3tcblx0XHRcdFx0XHRcdFx0YnJlYWtwb2ludDogMTE5OSxcblx0XHRcdFx0XHRcdFx0c2V0dGluZ3M6IHtcblx0XHRcdFx0XHRcdFx0XHRzbGlkZXNUb1Nob3c6IDIsXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0sIHtcblx0XHRcdFx0XHRcdFx0YnJlYWtwb2ludDogNzY3LFxuXHRcdFx0XHRcdFx0XHRzZXR0aW5nczoge1xuXHRcdFx0XHRcdFx0XHRcdHNsaWRlc1RvU2hvdzogMSxcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0Ly8gWW91IGNhbiB1bnNsaWNrIGF0IGEgZ2l2ZW4gYnJlYWtwb2ludCBub3cgYnkgYWRkaW5nOlxuXHRcdFx0XHRcdFx0Ly8gc2V0dGluZ3M6IFwidW5zbGlja1wiXG5cdFx0XHRcdFx0XHQvLyBpbnN0ZWFkIG9mIGEgc2V0dGluZ3Mgb2JqZWN0XG5cdFx0XHRcdFx0XSxcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0Ly8gQ2FyZHMgU2xpZGVyXG5cdFx0XHRcdCQoJy5jYXJkc19fZ3JpZC0tc2xpZGVyLTQnKS5zbGljayh7XG5cdFx0XHRcdFx0YXJyb3dzOiB0cnVlLFxuXHRcdFx0XHRcdGRvdHM6IHRydWUsXG5cdFx0XHRcdFx0c2xpZGVzVG9TaG93OiA0LFxuXHRcdFx0XHRcdHNsaWRlc1RvU2Nyb2xsOiAxLFxuXHRcdFx0XHRcdHJlc3BvbnNpdmU6IFt7XG5cdFx0XHRcdFx0XHRcdGJyZWFrcG9pbnQ6IDExOTksXG5cdFx0XHRcdFx0XHRcdHNldHRpbmdzOiB7XG5cdFx0XHRcdFx0XHRcdFx0c2xpZGVzVG9TaG93OiAyLFxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0XHRcdGJyZWFrcG9pbnQ6IDc2Nyxcblx0XHRcdFx0XHRcdFx0c2V0dGluZ3M6IHtcblx0XHRcdFx0XHRcdFx0XHRzbGlkZXNUb1Nob3c6IDEsXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdC8vIFlvdSBjYW4gdW5zbGljayBhdCBhIGdpdmVuIGJyZWFrcG9pbnQgbm93IGJ5IGFkZGluZzpcblx0XHRcdFx0XHRcdC8vIHNldHRpbmdzOiBcInVuc2xpY2tcIlxuXHRcdFx0XHRcdFx0Ly8gaW5zdGVhZCBvZiBhIHNldHRpbmdzIG9iamVjdFxuXHRcdFx0XHRcdF0sXG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdC8vIENhcmQgSW1hZ2UgR2FsbGVyeVxuXHRcdFx0XHQkKCcuY2FyZHNfX2NhcmQtZ2FsbGVyeS0tc2xpZGVyJykuc2xpY2soe1xuXHRcdFx0XHRcdGFycm93czogdHJ1ZSxcblx0XHRcdFx0XHRkb3RzOiBmYWxzZSxcblx0XHRcdFx0XHRhZGFwdGl2ZUhlaWdodDogdHJ1ZSxcblx0XHRcdFx0XHRzbGlkZXNUb1Nob3c6IDEsXG5cdFx0XHRcdFx0c2xpZGVzVG9TY3JvbGw6IDEsXG5cdFx0XHRcdFx0ZmFkZTogdHJ1ZSxcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0Ly8gQ29udGVudCBHcmlkIFNsaWRlclxuXHRcdFx0XHQvLyBvbmx5IHNob3cgb24gZGVza3RvcFxuXHRcdFx0XHRpZiAoJCh3aW5kb3cpLndpZHRoKCkgPiAxMTk5KSB7XG5cdFx0XHRcdFx0JCgnLnN1cGVyLWNhcmRzX19ncmlkLS1zbGlkZXInKS5zbGljayh7XG5cdFx0XHRcdFx0XHRhcnJvd3M6IGZhbHNlLFxuXHRcdFx0XHRcdFx0ZG9
36740czogZmFsc2UsXG5cdFx0XHRcdFx0XHRzbGlkZXNUb1Nob3c6IDUsXG5cdFx0XHRcdFx0XHRzbGlkZXNUb1Njcm9sbDogMSxcblx0XHRcdFx0XHRcdGF1dG9wbGF5OiB0cnVlLFxuXHRcdFx0XHRcdFx0YXV0b3BsYXlTcGVlZDogMCxcblx0XHRcdFx0XHRcdHNwZWVkOiA4MDAwLFxuXHRcdFx0XHRcdFx0ZHJhZ2dhYmxlOiB0cnVlLFxuXHRcdFx0XHRcdFx0cGF1c2VPbkhvdmVyOiB0cnVlLFxuXHRcdFx0XHRcdFx0cGF1c2VPbkZvY3VzOiB0cnVlLFxuXHRcdFx0XHRcdFx0Y3NzRWFzZTogJ2xpbmVhcicsXG5cdFx0XHRcdFx0XHRyZXNwb25zaXZlOiBbe1xuXHRcdFx0XHRcdFx0XHRcdGJyZWFrcG9pbnQ6IDExOTksXG5cdFx0XHRcdFx0XHRcdFx0c2V0dGluZ3M6IHtcblx0XHRcdFx0XHRcdFx0XHRcdHNsaWRlc1RvU2hvdzogMi41LFxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSwge1xuXHRcdFx0XHRcdFx0XHRcdGJyZWFrcG9pbnQ6IDc2Nyxcblx0XHRcdFx0XHRcdFx0XHRzZXR0aW5nczoge1xuXHRcdFx0XHRcdFx0XHRcdFx0c2xpZGVzVG9TaG93OiAxLjUsXG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdC8vIFlvdSBjYW4gdW5zbGljayBhdCBhIGdpdmVuIGJyZWFrcG9pbnQgbm93IGJ5IGFkZGluZzpcblx0XHRcdFx0XHRcdFx0Ly8gc2V0dGluZ3M6IFwidW5zbGlja1wiXG5cdFx0XHRcdFx0XHRcdC8vIGluc3RlYWQgb2YgYSBzZXR0aW5ncyBvYmplY3Rcblx0XHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBQb3N0cyBTbGlkZXJcblx0XHRcdFx0JCgnLnBvc3RzX19zbGlkZXInKS5zbGljayh7XG5cdFx0XHRcdFx0YXJyb3dzOiB0cnVlLFxuXHRcdFx0XHRcdGRvdHM6IGZhbHNlLFxuXHRcdFx0XHRcdHNsaWRlc1RvU2hvdzogMyxcblx0XHRcdFx0XHRzbGlkZXNUb1Njcm9sbDogMSxcblx0XHRcdFx0XHRhZGFwdGl2ZUhlaWdodDogZmFsc2UsXG5cdFx0XHRcdFx0cmVzcG9uc2l2ZTogW3tcblx0XHRcdFx0XHRcdFx0YnJlYWtwb2ludDogMTE5OSxcblx0XHRcdFx0XHRcdFx0c2V0dGluZ3M6IHtcblx0XHRcdFx0XHRcdFx0XHRzbGlkZXNUb1Nob3c6IDIsXG5cdFx0XHRcdFx0XHRcdFx0YWRhcHRpdmVIZWlnaHQ6IGZhbHNlLFxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9LCB7XG5cdFx0XHRcdFx0XHRcdGJyZWFrcG9pbnQ6IDc2Nyxcblx0XHRcdFx0XHRcdFx0c2V0dGluZ3M6IHtcblx0XHRcdFx0XHRcdFx0XHRzbGlkZXNUb1Nob3c6IDEsXG5cdFx0XHRcdFx0XHRcdFx0YWRhcHRpdmVIZWlnaHQ6IHRydWUsXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdC8vIFlvdSBjYW4gdW5zbGljayBhdCBhIGdpdmVuIGJyZWFrcG9pbnQgbm93IGJ5IGFkZGluZzpcblx0XHRcdFx0XHRcdC8vIHNldHRpbmdzOiBcInVuc2xpY2tcIlxuXHRcdFx0XHRcdFx0Ly8gaW5zdGVhZCBvZiBhIHNldHRpbmdzIG9iamVjdFxuXHRcdFx0XHRcdF0sXG5cdFx0XHRcdH0pXG5cblx0XHRcdFx0Ly8gU2xpZGVyXG5cdFx0XHRcdCQoJy5ibG9ja19fc2xpZGVyLS1hbHRlcm5hdGUgLnNsaWRlcl9fc2xpZGVyJykuc2xpY2soe1xuXHRcdFx0XHRcdGFycm93czogdHJ1ZSxcblx0XHRcdFx0XHRkb3RzOiB0cnVlLFxuXHRcdFx0XHRcdHNsaWRlc1RvU2hvdzogMSxcblx0XHRcdFx0XHRzbGlkZXNUb1Njcm9sbDogMSxcblx0XHRcdFx0XHRmYWRlOiB0cnVlLFxuXHRcdFx0XHRcdGFkYXB0aXZlSGVpZ2h0OiBmYWxzZSxcblx0XHRcdFx0XHRyZXNwb25zaXZlOiBbe1xuXHRcdFx0XHRcdFx0XHRicmVha3BvaW50OiAxMTk5LFxuXHRcdFx0XHRcdFx0XHRzZXR0aW5nczoge1xuXHRcdFx0XHRcdFx0XHRcdGFkYXB0aXZlSGVpZ2h0OiB0cnVlLFxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQvLyBZb3UgY2FuIHVuc2xpY2sgYXQgYSBnaXZlbiBicmVha3BvaW50IG5vdyBieSBhZGRpbmc6XG5cdFx0XHRcdFx0XHQvLyBzZXR0aW5nczogXCJ1bnNsaWNrXCJcblx0XHRcdFx0XHRcdC8vIGluc3RlYWQgb2YgYSBzZXR0aW5ncyBvYmplY3Rcblx0XHRcdFx0XHRdLFxuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHQvLyBUZXN0aW1vbmlhbHNcblx0XHRcdFx0JCgnLmJsb2NrX190ZXN0aW1vbmlhbHMtLXNsaWRlciAuY29udGFpbmVyJykuc2xpY2soe1xuXHRcdFx0XHRcdGFycm93czogdHJ1ZSxcblx0XHRcdFx0XHRkb3RzOiB0cnVlLFxuXHRcdFx0XHRcdHNsaWRlc1RvU2hvdzogMSxcblx0XHRcdFx0XHRzbGlkZXNUb1Njcm9sbDogMSxcblx0XHRcdFx0XHRmYWRlOiB0cnVlLFxuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHQvLyBTbGlkZXJzIHdpdGggY3VzdG9tIGNvbnRyb2xzIHJlcXVpcmUgbG9vcGluZyB0aHJvdWdoXG5cdFx0XHRcdCQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHtcblxuXHRcdFx0XHRcdC8vIFNtb290aGVyIFNsaWRlciAtIFNsaWRlclxuXHRcdFx0XHRcdCQoJy5zbW9vdGgtc2xpZGVyLS1zbGlkZXInKS5lYWNoKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdHZhciBzbGlkZXIgPSAkKHRoaXMpO1xuXG5cdFx0XHRcdFx0XHRzbGlkZXIub24oJ2JlZm9yZUNoYW5nZScsIGZ1bmN0aW9uIChldmVudCwgc2xpY2ssIGN1cnJlbnRTbGlkZSwgbmV4dFNsaWRlKSB7XG5cdFx0XHRcdFx0XHRcdHZhciBjYWxjID0gKChuZXh0U2xpZGUpIC8gKHNsaWNrLnNsaWRlQ291bnQgLSAyKSkgKiAxMDA7XG5cblx0XHRcdFx0XHRcdFx0aWYgKCQod2luZG93KS53aWR0aCgpIDwgNzY4KSB7XG5cdFx0XHRcdFx0XHRcdFx0Y2FsYyA9ICgobmV4dFNsaWRlKSAvIChzbGljay
36745zbGlkZUNvdW50IC0gMSkpICogMTAwO1xuXHRcdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0XHR2YXIgcHJvZ3Jlc3NCYXIgPSAkKHRoaXMpLmNsb3Nlc3QoJy5ibG9jaycpLmZpbmQoJy5wcm9ncmVzcycpO1xuXHRcdFx0XHRcdFx0XHR2YXIgcHJvZ3Jlc3NCYXJMYWJlbCA9ICQodGhpcykuY2xvc2VzdCgnLmJsb2NrJykuZmluZCgnLnNsaWRlcl9fbGFiZWwnKTtcblxuXHRcdFx0XHRcdFx0XHRwcm9ncmVzc0Jhci5jc3MoJ2JhY2tncm91bmQtc2l6ZScsIGNhbGMgKyAnJSAxMDAlJykuYXR0cignYXJpYS12YWx1ZW5vdycsIGNhbGMpO1xuXHRcdFx0XHRcdFx0XHRwcm9ncmVzc0JhckxhYmVsLnRleHQoY2FsYyArICclIGNvbXBsZXRlZCcpO1xuXHRcdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHRcdHNsaWRlci5zbGljayh7XG5cdFx0XHRcdFx0XHRcdGFycm93czogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0ZG90czogZmFsc2UsXG5cdFx0XHRcdFx0XHRcdHNsaWRlc1RvU2hvdzogMi41LFxuXHRcdFx0XHRcdFx0XHRzbGlkZXNUb1Njcm9sbDogMSxcblx0XHRcdFx0XHRcdFx0c3BlZWQ6IDQwMCxcblx0XHRcdFx0XHRcdFx0aW5maW5pdGU6IGZhbHNlLFxuXHRcdFx0XHRcdFx0XHRwcmV2QXJyb3c6ICQodGhpcykuY2xvc2VzdCgnLmJsb2NrJykuZmluZCgnLnNsaWNrLWN1c3RvbS1hcnJvd3NfX2Fycm93LS1wcmV2JyksXG5cdFx0XHRcdFx0XHRcdG5leHRBcnJvdzogJCh0aGlzKS5jbG9zZXN0KCcuYmxvY2snKS5maW5kKCcuc2xpY2stY3VzdG9tLWFycm93c19fYXJyb3ctLW5leHQnKSxcblx0XHRcdFx0XHRcdFx0cmVzcG9uc2l2ZTogW3tcblx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrcG9pbnQ6IDc2Nyxcblx0XHRcdFx0XHRcdFx0XHRcdHNldHRpbmdzOiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHNsaWRlc1RvU2hvdzogMSxcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0Ly8gWW91IGNhbiB1bnNsaWNrIGF0IGEgZ2l2ZW4gYnJlYWtwb2ludCBub3cgYnkgYWRkaW5nOlxuXHRcdFx0XHRcdFx0XHRcdC8vIHNldHRpbmdzOiBcInVuc2xpY2tcIlxuXHRcdFx0XHRcdFx0XHRcdC8vIGluc3RlYWQgb2YgYSBzZXR0aW5ncyBvYmplY3Rcblx0XHRcdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0pO1xuXG5cdFx0XHRcdFx0Ly8gU21vb3RoZXIgU2xpZGVyIC0gU2xpZGVyXG5cdFx0XHRcdFx0dmFyIHNtb290aFNsaWRlckNvdW50ZXIgPSAxO1xuXHRcdFx0XHRcdCQoJy5zbW9vdGgtc2xpZGVyLS10aW1lbGluZScpLmVhY2goZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0dmFyIHNsaWRlciA9ICQodGhpcyk7XG5cdFx0XHRcdFx0XHR2YXIgY2xvc2VzdENvbnRyb2xzID0gJCh0aGlzKS5jbG9zZXN0KCcuYmxvY2snKS5maW5kKCcuc21vb3RoLXNsaWRlcl9fY29udHJvbHMtLScgKyBzbW9vdGhTbGlkZXJDb3VudGVyKTtcblxuXHRcdFx0XHRcdFx0c2xpZGVyLm9uKCdiZWZvcmVDaGFuZ2UnLCBmdW5jdGlvbiAoZXZlbnQsIHNsaWNrLCBjdXJyZW50U2xpZGUsIG5leHRTbGlkZSkge1xuXHRcdFx0XHRcdFx0XHR2YXIgY2FsYyA9ICgobmV4dFNsaWRlKSAvIChzbGljay
36745zbGlkZUNvdW50IC0gMikpICogMTAwO1xuXG5cdFx0XHRcdFx0XHRcdHZhciBwcm9ncmVzc0JhciA9ICQoY2xvc2VzdENvbnRyb2xzKS5maW5kKCcucHJvZ3Jlc3MnKTtcblx0XHRcdFx0XHRcdFx0dmFyIHByb2dyZXNzQmFyTGFiZWwgPSAkKGNsb3Nlc3RDb250cm9scykuZmluZCgnLnNsaWRlcl9fbGFiZWwnKTtcblxuXHRcdFx0XHRcdFx0XHRwcm9ncmVzc0Jhci5jc3MoJ2JhY2tncm91bmQtc2l6ZScsIGNhbGMgKyAnJSAxMDAlJykuYXR0cignYXJpYS12YWx1ZW5vdycsIGNhbGMpO1xuXHRcdFx0XHRcdFx0XHRwcm9ncmVzc0JhckxhYmVsLnRleHQoY2FsYyArICclIGNvbXBsZXRlZCcpO1xuXHRcdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHRcdHNsaWRlci5zbGljayh7XG5cdFx0XHRcdFx0XHRcdGFycm93czogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0ZG90czogZmFsc2UsXG5cdFx0XHRcdFx0XHRcdHNsaWRlc1RvU2hvdzogMixcblx0XHRcdFx0XHRcdFx0c2xpZGVzVG9TY3JvbGw6IDEsXG5cdFx0XHRcdFx0XHRcdHNwZWVkOiA0MDAsXG5cdFx0XHRcdFx0XHRcdGluZmluaXRlOiBmYWxzZSxcblx0XHRcdFx0XHRcdFx0dmFyaWFibGVXaWR0aDogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0cHJldkFycm93OiAkKGNsb3Nlc3RDb250cm9scykuZmluZCgnLnNsaWNrLWN1c3RvbS1hcnJvd3NfX2Fycm93LS1wcmV2JyksXG5cdFx0XHRcdFx0XHRcdG5leHRBcnJvdzogJChjbG9zZXN0Q29udHJvbHMpLmZpbmQoJy5zbGljay1jdXN0b20tYXJyb3dzX19hcnJvdy0tbmV4dCcpLFxuXHRcdFx0XHRcdFx0XHRyZXNwb25zaXZlOiBbe1xuXHRcdFx0XHRcdFx0XHRcdFx0YnJlYWtwb2ludDogMTE5OSxcblx0XHRcdFx0XHRcdFx0XHRcdHNldHRpbmdzOiBcInVuc2xpY2tcIixcblx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdC8vIFlvdSBjYW4gdW5zbGljayBhdCBhIGdpdmVuIGJyZWFrcG9pbnQgbm93IGJ5IGFkZGluZzpcblx0XHRcdFx0XHRcdFx0XHQvLyBzZXR0aW5nczogXCJ1bnNsaWNrXCJcblx0XHRcdFx0XHRcdFx0XHQvLyBpbnN0ZWFkIG9mIGEgc2V0dGluZ3Mgb2JqZWN0XG5cdFx0XHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRcdFx0c21vb3RoU2xpZGVyQ291bnRlcisrO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblxuXG5cdFx0XHRcdC8qXG5cdFx0XHRcdCAqXG5cdFx0XHRcdCAqIEludGVyc2VjdGlvbiBPYnNlcnZlclxuXHRcdFx0XHQgKlxuXHRcdFx0XHQgKi9cblxuXHRcdFx0XHRpZiAoJ0ludGVyc2VjdGlvbk9ic2VydmVyJyBpbiB3aW5kb3cpIHtcblx0XHRcdFx0XHQvLyBJbnRlcnNlY3Rpb24gT2JzZXJ2ZXIgQ2FsbGJhY2sgRnVuY3Rpb25cblx0XHRcdFx0XHRibG9ja09ic2VydmVyQ2FsbGJhY2sgPSBmdW5jdGlvbiAoZW50cmllcywgb2JzZXJ2ZXIpIHtcblx0XHRcdFx0XHRcdGVudHJpZXMuZm9yRWFjaChmdW5jdGlvbiAoZW50cnkpIHtcblx0XHRcdFx0XHRcdFx0aWYgKGVudHJ5LmlzSW50ZXJzZWN0aW5nKSB7XG5cdFx0XHRcdFx0XHRcdFx0ZW50cnkudGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ2luLXZpZXcnKTtcblx0XHRcdFx0XHRcdFx0XHRpZiAoZW50cnkudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnYmxvY2tfX2FjY29yZGlvbnMtLXRpbWVkJykpIHtcblx0XHRcdFx0XHRcdFx0XHRcdGVudHJ5LnRhcmdldC5jbGFzc0xpc3QucmVtb3ZlKCdwYXVzZWQnKTtcblx0XHRcdFx0XHRcdFx0XHRcdGVudHJ5LnRhcmdldC5jbGFzc0xpc3QuYWRkKCdwbGF5aW5nJyk7XG5cblx0XHRcdFx0XHRcdFx0XHRcdCQoZW50cnkudGFyZ2V0KS5maW5kKCcuc2xpY2stc2xpZGVyJykuc2xpY2soJ3NsaWNrUGxheScpO1xuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRvYnNlcnZlci51bm9ic2VydmUoZW50cnkudGFyZ2V0KTtcblx0XHRcdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdGlmIChlbnRyeS50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCdibG9ja19fYWNjb3JkaW9ucy0tdGltZWQnKSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0ZW50cnkudGFyZ2V0LmNsYXNzTGlzdC5yZW1vdmUoJ3BsYXlpbmcnKTtcblx0XHRcdFx0XHRcdFx0XHRcdGVudHJ5LnRhcmdldC5jbGFzc0xpc3QuYWRkKCdwYXVzZWQnKTtcblxuXHRcdFx0XHRcdFx0XHRcdFx0JChlbnRyeS50YXJnZXQpLmZpbmQoJy5zbGljay1zbGlkZXInKS5zbGljaygnc2xpY2tQYXVzZScpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHQvLyBJbnRlcnNlY3Rpb24gT2JzZXJ2ZXIgT3B0aW9uc1xuXHRcdFx0XHRcdHZhciBibG9ja09ic2VydmVyT3B0aW9ucyA9IHtcblx0XHRcdFx0XHRcdHJvb3Q6IG51bGwsXG5cdFx0XHRcdFx0XHRyb290TWFyZ2luOiAnMCUgMCUgLTI1JSAwJScsXG5cdFx0XHRcdFx0XHR0aHJlc2hvbGQ6IDAsXG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gQ3JlYXRpb24gb2YgSW50ZXJzZWN0aW9uIE9ic2VydmVyXG5cdFx0XHRcdFx0dmFyIGJsb2NrT2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoYmxvY2tPYnNlcnZlckNhbGxiYWNrLCBibG9ja09ic2VydmVyT3B0aW9ucyk7XG5cdFx0XHRcdFx0Ly8gSW50ZXJzZWN0aW9uIE9ic2VydmVyIEVsZW1lbnRzIHRvIG9ic2VydmVcblx0XHRcdFx0XHRibG9ja09ic2VydmVyRWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuYmxvY2snKTtcblx0XHRcdFx0XHQvLyBQYXNzIEVsZW1lbnRzIHRvIE9ic2VydmVyXG5cdFx0XHRcdFx0YmxvY2tPYnNlcnZlckVsZW1lbnRzLmZvckVhY2goZnVuY3Rpb24gKGJsb2NrT2JzZXJ2ZXJFbGVtZW50KSB7XG5cdFx0XHRcdFx0XHRibG9ja09ic2VydmVyLm9ic2VydmUoYmxvY2tPYnNlcnZlckVsZW1lbnQpO1xuXHRcdFx0XHRcdH0pO1xuXG5cblx0XHRcdFx0XHQvLyBJbnRlcnNlY3Rpb24gT2JzZXJ2ZXIgQ2FsbGJhY2sgRnVuY3Rpb25cblx0XHRcdFx0XHRpbWdPYnNlcnZlckNhbGxiYWNrID0gZnVuY3Rpb24gKGVudHJpZXMsIG9ic2VydmVyKSB7XG5cdFx0XHRcdFx0XHRlbnRyaWVzLmZvckVhY2goZnVuY3Rpb24gKGVudHJ5KSB7XG5cdFx0XHRcdFx0XHRcdGlmIChlbnRyeS5pc0ludGVyc2VjdGluZykge1xuXHRcdFx0XHRcdFx0XHRcdGVudHJ5LnRhcmdldC5jbGFzc0xpc3QuYWRkKCdpbi12aWV3Jyk7XG5cdFx0XHRcdFx0XHRcdFx0b2JzZXJ2ZXIudW5vYnNlcnZlKGVudHJ5LnRhcmdldCk7XG5cdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9O1xuXG5cdFx0XHRcdFx0Ly8gSW50ZXJzZWN0aW9uIE9ic2VydmVyIE9wdGlvbnNcblx0XHRcdFx0XHR2YXIgaW1nT2JzZXJ2ZXJPcHRpb25zID0ge1xuXHRcdFx0XHRcdFx0cm9vdDogbnVsbCxcblx0XHRcdFx0XHRcdHJvb3RNYXJnaW46ICcwJSAwJSAwJSAwJScsXG5cdFx0XHRcdFx0XHR0aHJlc2hvbGQ6IDAsXG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gQ3JlYXRpb24gb2YgSW50ZXJzZWN0aW9uIE9ic2VydmVyXG5cdFx0XHRcdFx0dmFyIGltZ09ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGltZ09ic2VydmVyQ2FsbGJhY2ssIGltZ09ic2VydmVyT3B0aW9ucyk7XG5cdFx0XHRcdFx0Ly8gSW50ZXJzZWN0aW9uIE9ic2VydmVyIEVsZW1lbnRzIHRvIG9ic2VydmVcblx0XHRcdFx0XHRpbWdPYnNlcnZlckVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW1nOm5vdCgubmF2LW1vYmlsZSBpbWcsIC5ib29rIC5ibG9ja19fYm9va2luZyBpbWcpJyk7XG5cdFx0XHRcdFx0Ly8gUGFzcyBFbGVtZW50cyB0byBPYnNlcnZlclxuXHRcdFx0XHRcdGltZ09ic2VydmVyRWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbiAoaW1nT2JzZXJ2ZXJFbGVtZW50KSB7XG5cdFx0XHRcdFx0XHRpbWdPYnNlcnZlci5vYnNlcnZlKGltZ09ic2VydmVyRWxlbWVudCk7XG5cdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRhbGxPYnNlcnZlckVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmJsb2NrLCBpbWc6bm90KC5uYXYtbW9iaWxlIGltZywgLmJvb2sgLmJsb2NrX19ib29raW5nIGltZyknKTtcblx0XHRcdFx0XHRhbGxPYnNlcnZlckVsZW1lbnRzLmZvckVhY2goZnVuY3Rpb24gKGFsbE9ic2VydmVyRWxlbWVudCkge1xuXHRcdFx0XHRcdFx0YWxsT2JzZXJ2ZXJFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2luLXZpZXcnKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fTtcblxuXHRcdFx0XHQvKlxuXHRcdFx0XHQgKlxuXHRcdFx0XHQgKiBHb29nbGUgTWFwXG5cdFx0XHRcdCAqXG5cdFx0XHRcdCAqL1xuXG5cdFx0XHRcdGZ1bmN0aW9uIG5ld19tYXAoJGVsKSB7XG5cdFx0XHRcdFx0Ly8gdmFyXG5cdFx0XHRcdFx0dmFyICRtYXJrZXJzID0gJGVsLmZpbmQoJy5tYXJrZXInKTtcblxuXHRcdFx0XHRcdC8vIHZhcnNcblx0XHRcdFx0XHR2YXIgYXJncyA9IHtcblx0XHRcdFx0XHRcdHpvb206IDE2LFxuXHRcdFx0XHRcdFx0Y2VudGVyOiBuZXcgZ29vZ2xlLm1hcHMuTGF0TG5nKDAsIDApLFxuXHRcdFx0XHRcdFx0bWFwVHlwZUlkOiBnb29nbGUubWFwcy5NYXBUeXBlSWQuUk9BRE1BUCxcblx0XHRcdFx0XHRcdHNjcm9sbHdoZWVsOiBmYWxzZSxcblx0XHRcdFx0XHRcdG5hdmlnYXRpb25Db250cm9sOiBmYWxzZSxcblx0XHRcdFx0XHRcdG1hcFR5cGVDb250cm9sOiBmYWxzZSxcblx0XHRcdFx0XHRcdHNjYWxlQ29udHJvbDogZmFsc2UsXG5cdFx0XHRcdFx0XHRkcmFnZ2FibGU6IGZhbHNlLFxuXHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHQvLyBjcmVhdGUgbWFwXG5cdFx0XHRcdFx0dmFyIG1hcCA9IG5ldyBnb29nbGUubWFwcy5NYXAoJGVsWzBdLCBhcmdzKTtcblxuXHRcdFx0XHRcdC8vIGFkZCBhIG
36741hcmtlcnMgcmVmZXJlbmNlXG5cdFx0XHRcdFx0bWFwLm1hcmtlcnMgPSBbXTtcblxuXHRcdFx0XHRcdC8vIGFkZCBtYXJrZXJzXG5cdFx0XHRcdFx0JG1hcmtlcnMuZWFjaChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRhZGRfbWFya2VyKCQodGhpcyksIG1hcCk7XG5cdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHQvLyBjZW50ZXIgbWFwXG5cdFx0XHRcdFx0Y2VudGVyX21hcChtYXApO1xuXG5cdFx0XHRcdFx0Ly8gcmV0dXJuXG5cdFx0XHRcdFx0cmV0dXJuIG1hcDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGZ1bmN0aW9uIGFkZF9tYXJrZXIoJG1hcmtlciwgbWFwKSB7XG5cdFx0XHRcdFx0Ly8gdmFyXG5cdFx0XHRcdFx0dmFyIGxhdGxuZyA9IG5ldyBnb29nbGUubWFwcy5MYXRMbmcoJG1hcmtlci5hdHRyKCdkYXRhLWxhdCcpLCAkbWFya2VyLmF0dHIoJ2RhdGEtbG5nJykpO1xuXG5cdFx0XHRcdFx0dmFyIGljb24gPSAkbWFya2VyLmF0dHIoJ2RhdGEtaWNvbicpO1xuXG5cdFx0XHRcdFx0Ly8gY3JlYXRlIG1hcmtlclxuXHRcdFx0XHRcdHZhciBtYXJrZXIgPSBuZXcgZ29vZ2xlLm1hcHMuTWFya2VyKHtcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiBsYXRsbmcsXG5cdFx0XHRcdFx0XHRtYXA6IG1hcCxcblx0XHRcdFx0XHRcdGljb246IGljb24sXG5cdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHQvLyBhZGQgdG8gYXJyYXlcblx0XHRcdFx0XHRtYXAubWFya2Vycy5wdXNoKG1hcmtlcik7XG5cblx0XHRcdFx0XHQvLyBpZiBtYXJrZXIgY29udGFpbnMgSFRNTCwgYWRkIGl0IHRvIGFuIGluZm9XaW5kb3dcblx0XHRcdFx0XHRpZiAoJG1hcmtlci5odG1sKCkpIHtcblx0XHRcdFx0XHRcdC8vIGNyZWF0ZSBpbmZvIHdpbmRvd1xuXHRcdFx0XHRcdFx0dmFyIGluZm93aW5kb3cgPSBuZXcgZ29vZ2xlLm1hcHMuSW5mb1dpbmRvdyh7XG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQ6ICRtYXJrZXIuaHRtbCgpLFxuXHRcdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHRcdC8vIHNob3cgaW5mbyB3aW5kb3cgd2hlbiBtYXJrZXIgaXMgY2xpY2tlZFxuXHRcdFx0XHRcdFx0Z29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXIobWFya2VyLCAnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRcdGluZm93aW5kb3cub3BlbihtYXAsIG1hcmtlcik7XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRmdW5jdGlvbiBjZW50ZXJfbWFwKG1hcCkge1xuXHRcdFx0XHRcdC8vIHZhcnNcblx0XHRcdFx0XHR2YXIgYm91bmRzID0gbmV3IGdvb2dsZS5tYXBzLkxhdExuZ0JvdW5kcygpO1xuXG5cdFx0XHRcdFx0Ly8gbG9vcCB0aHJvdWdoIGFsbCBtYXJrZXJzIGFuZCBjcmVhdGUgYm91bmRzXG5cdFx0XHRcdFx0JC5lYWNoKG1hcC5tYXJrZXJzLCBmdW5jdGlvbiAoaSwgbWFya2VyKSB7XG5cdFx0XHRcdFx0XHR2YXIgbGF0bG5nID0gbmV3IGdvb2dsZS5tYXBzLkxhdExuZyhtYXJrZXIucG9zaXRpb24ubGF0KCksIG1hcmtlci5wb3NpdGlvbi5sbmcoKSk7XG5cblx0XHRcdFx0XHRcdGJvdW5kcy5leHRlbmQobGF0bG5nKTtcblx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHRcdC8vIG9ubHkgMSBtYXJrZXI/XG5cdFx0XHRcdFx0aWYgKG1hcC5tYXJrZXJzLmxlbmd0aCA9PSAxKSB7XG5cdFx0XHRcdFx0XHQvLyBzZXQgY2VudGVyIG9mIG1hcFxuXHRcdFx0XHRcdFx0bWFwLnNldENlbnRlcihib3VuZHMuZ2V0Q2VudGVyKCkpO1xuXHRcdFx0XHRcdFx0bWFwLnNldFpvb20oMTYpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHQvLyBmaXQgdG8gYm91bmRzXG5cdFx0XHRcdFx0XHRtYXAuZml0Qm91bmRzKGJvdW5kcyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gZ2xvYmFsIHZhclxuXHRcdFx0XHR2YXIgbWFwID0gbnVsbDtcblxuXHRcdFx0XHQkKCcuYWNmLW1hcCcpLmVhY2goZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdC8vIGNyZWF0ZSBtYXBcblx0XHRcdFx0XHRtYXAgPSBuZXdfbWFwKCQodGhpcykpO1xuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHQvLyAkKCdoMTpub3QoLmJyYW5kLXNwbGl0KSwgaDI6bm90KC5icmFuZC1zcGxpdCwgLnRleHRfX2NvbnRlbnQtZGV0YWlscyksIGgzOm5vdCguYnJhbmQtc3BsaXQsIC5zbGlkZXJfX2l0ZW0tbGluayksIGg0Om5vdCguYnJhbmQtc3BsaXQsIC50ZXh0X19hdXRob3ItY2F0KSwgaDU6bm90KC5icmFuZC1zcGxpdCksIGg2Om5vdCguYnJhbmQtc3BsaXQpJykuZWFjaChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdCQoJ2gxOm5vdCguYnJhbmQtc3BsaXQpLCBoMjpub3QoLmJyYW5kLXNwbGl0JykuZWFjaChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0JCh0aGlzKS5odG1sKCQodGhpcykudGV4dCgpLnJlcGxhY2UoL1xccyg/PVteXFxzXSokKS9nLCBcIiZuYnNwO1wiKSlcblx0XHRcdFx0fSk7XG5cdFx0XHR9LFxuXHRcdFx0ZmluYWxpemU6IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0Ly8gSmF2YVNjcmlwdCB0byBiZSBmaXJlZCBvbiBhbGwgcGFnZXMsIGFmdGVyIHBhZ2Ugc3BlY2lmaWMgSlMgaXMgZmlyZWRcblx0XHRcdH0sXG5cdFx0fSxcblx0XHQvLyBIb21lIHBhZ2Vcblx0XHRob21lOiB7XG5cdFx0XHRpbml0OiBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdC8vIEphdmFTY3JpcHQgdG8gYmUgZmlyZWQgb24gdGhlIGhvbWUgcGFnZVxuXHRcdFx0fSxcblx0XHRcdGZpbmFsaXplOiBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdC8vIEphdmFTY3JpcHQgdG8gYmUgZmlyZWQgb24gdGhlIGhvbWUgcGFnZSwgYWZ0ZXIgdGhlIGluaXQgSlNcblx0XHRcdH0sXG5cdFx0fSxcblx0XHQvLyBBYm91dCB1cyBwYWdlLCBub3RlIHRoZSBjaGFuZ2UgZnJvbSBhYm91dC11cyB0byBhYm91dF91cy5cblx0XHRhYm91dF91czoge1xuXHRcdFx0aW5pdDogZnVuY3Rpb24gKCkge1xuXHRcdFx0XHQvLyBKYXZhU2NyaXB0IHRvIGJlIGZpcmVkIG9uIHRoZSBhYm91dCB1cyBwYWdlXG5cdFx0XHR9LFxuXHRcdH0sXG5cdFx0Y29udGFjdDoge1xuXHRcdFx0aW5pdDogZnVuY3Rpb24gKCkge30sXG5cdFx0fSxcblx0fTtcblxuXHQvLyBUaGUgcm91dGluZyBmaXJlcyBhbGwgY29tbW9uIHNjcmlwdHMsIGZvbGxvd2VkIGJ5IHRoZSBwYWdlIHNwZWNpZmljIHNjcmlwdHMuXG5cdC8vIEFkZCBhZGRpdGlvbmFsIGV2ZW50cyBmb3IgbW9yZSBjb250cm9sIG92ZXIgdGltaW5nIGUuZy4gYSBmaW5hbGl6ZSBldmVudFxuXHR2YXIgVVRJTCA9IHtcblx0XHRmaXJlOiBmdW5jdGlvbiAoZnVuYywgZnVuY25hbWUsIGFyZ3MpIHtcblx0XHRcdHZhciBmaXJlO1xuXHRcdFx0dmFyIG5hbWVzcGFjZSA9IG1pcmFpO1xuXHRcdFx0ZnVuY25hbWUgPSBmdW5jbmFtZSA9PT0gdW5kZWZpbmVkID8gJ2luaXQnIDogZnVuY25hbWU7XG5cdFx0XHRmaXJlID0gZnVuYyAhPT0gJyc7XG5cdFx0XHRmaXJlID0gZmlyZSAmJiBuYW1lc3BhY2VbZnVuY107XG5cdFx0XHRmaXJlID0gZmlyZSAmJiB0eXBlb2YgbmFtZXNwYWNlW2Z1bmNdW2Z1bmNuYW1lXSA9PT0gJ2Z1bmN0aW9uJztcblxuXHRcdFx0aWYgKGZpcmUpIHtcblx0XHRcdFx0bmFtZXNwYWNlW2Z1bmNdW2Z1bmNuYW1lXShhcmdzKTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdGxvYWRFdmVudHM6IGZ1bmN0aW9uICgpIHtcblx0XHRcdC8vIEZpcmUgY29tbW9uIGluaXQgSlNcblx0XHRcdFVUSUwuZmlyZSgnY29tbW9uJyk7XG5cblx0XHRcdC8vIEZpcmUgcGFn
3674ZS1zcGVjaWZpYyBpbml0IEpTLCBhbmQgdGhlbiBmaW5hbGl6ZSBKU1xuXHRcdFx0JC5lYWNoKGRvY3VtZW50LmJvZHkuY2xhc3NOYW1lLnJlcGxhY2UoLy0vZywgJ18nKS5zcGxpdCgvXFxzKy8pLCBmdW5jdGlvbiAoaSwgY2xhc3NubSkge1xuXHRcdFx0XHRVVElMLmZpcmUoY2xhc3NubSk7XG5cdFx0XHRcdFVUSUwuZmlyZShjbGFzc25tLCAnZmluYWxpemUnKTtcblx0XHRcdH0pO1xuXG5cdFx0XHQvLyBGaXJlIGNvbW1vbiBmaW5hbGl6ZSBKU1xuXHRcdFx0VVRJTC5maXJlKCdjb21tb24nLCAnZmluYWxpemUnKTtcblx0XHR9LFxuXHR9O1xuXG5cdC8vIExvYWQgRXZlbnRzXG5cdCQoZG9jdW1lbnQpLnJlYWR5KFVUSUwubG9hZEV2ZW50cyk7XG5cblx0Ly8gU3RhcnQgUk9PTSByZXNlcnZhdGlvbiBmb3JtIGRhdGUgcGlja2Vyc1xuXHQgICQoXCJmb3JtI29ubGluZS1ib29raW5nLWZvcm0tcm9vbSAjcGljay11cC1kYXRlLWlucHV0LXJvb20sIGZvcm0jb25saW5lLWJvb2tpbmctZm9ybS1yb29tICNyZXR1cm4tZGF0ZS1pbnB1dC1yb29tXCIpLmRhdGVwaWNrZXIoe1xuXHRcdHJhbmdlU2VsZWN0OiB0cnVlLFxuXHRcdC8vYmVmb3JlU2hvdzogY3VzdG9tUmFuZ2UsXG5cdFx0b25TZWxlY3Q6IGN1c3RvbVJhbmdlUm9vbSxcblx0XHRtaW5EYXRlOiAnKzFkJyxcblx0XHRkYXRlRm9ybWF0OiAneXktbW0tZGQnLFxuXHRcdG51bWJlck9mTW9udGhzOiAyLFxuXHQgIH0pO1xuXG5cdCAgZnVuY3Rpb24gY3VzdG9tUmFuZ2VSb29tKGlucHV0LCBpbnN0KSB7XG5cdFx0aWYgKCQodGhpcykuaXMoXCJmb3JtI29ubGluZS1ib29raW5nLWZvcm0tcm9vbSAjcGljay11cC1kYXRlLWlucHV0LXJvb21cIikpIHtcblx0XHQgIHZhciBzZWxlY3RlZCA9ICQodGhpcykuZGF0ZXBpY2tlcihcImdldERhdGVcIik7XG5cdFx0ICBpZiAoc2VsZWN0ZWQgIT0gbnVsbCkge1xuXHRcdFx0c2VsZWN0ZWQuc2V0RGF0ZShzZWxlY3RlZC5nZXREYXRlKCkpO1xuXHRcdFx0JChcImZvcm0jb25saW5lLWJvb2tpbmctZm9ybS1yb29tICNyZXR1cm4tZGF0ZS1pbnB1dC1yb29tXCIpLnByb3AoXCJkaXNhYmxlZFwiLCBmYWxzZSkuZGF0ZXBpY2tlcihcIm9wdGlvblwiLCBcIm1pbkRhdGVcIiwgc2VsZWN0ZWQpO1xuXHRcdCAgfVxuXHRcdH1cblx0XHRpZiAoJCh0aGlzKS5pcyhcImZvcm0jb25saW5lLWJvb2tpbmctZm9ybS1yb29tICNyZXR1cm4tZGF0ZS1pbnB1dC1yb29tXCIpKSB7XG5cdFx0ICB2YXIgc2VsZWN0ZWQgPSAkKHRoaXMpLmRhdGVwaWNrZXIoXCJnZXREYXRlXCIpO1xuXHRcdCAgaWYgKHNlbGVjdGVkICE9IG51bGwpIHtcblx0XHRcdHNlbGVjdGVkLnNldERhdGUoc2VsZWN0ZWQuZ2V0RGF0ZSgpKTtcblx0XHRcdCQoXCJmb3JtI29ubGluZS1ib29raW5nLWZvcm0tcm9vbSAuc3VibWl0LWJ1dHRvbiAjcXVpY2stYm9va2luZy1yb29tXCIpLnByb3AoXCJkaXNhYmxlZFwiLCBmYWxzZSk7XG5cdFx0ICB9XG5cdFx0fVxuXHQgIH0gXG5cdCAgXG5cdCAgJChcImZvcm0jb25saW5lLWJvb2tpbmctZm9ybS1yb29tICN0eXBlLWZpbHRlci1yb29tXCIpLm9uKCdjaGFuZ2UnLCBmdW5jdGlvbigpIHtcblx0XHRcdCQoJ2Zvcm0jb25saW5lLWJvb2tpbmctZm9ybS1yb29tIGlucHV0I3dlYlByb2R1Y3RJZC1yb29tJykudmFsKCdbJyArICQoXCJmb3JtI29ubGluZS1ib29raW5nLWZvcm0tcm9vbSAjdHlwZS1maWx0ZXItcm9vbVwiKS5zZWxlY3QyKFwidmFsXCIpLmpvaW4oJywnKSArJ10nKTtcblx0XHR9KTtcblx0ICBcblx0ICAkKFwiZm9ybSNvbmxpbmUtYm9va2luZy1mb3JtLXJvb20gI3R5cGUtZmlsdGVyLXJvb21cIikuc2VsZWN0Mih7XG5cdFx0XHRwbGFjZWhvbGRlcjogXCJBbGxcIixcblx0XHRcdGFsbG93Q2xlYXI6IHRydWUsXG5cdFx0XHRtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDogLTFcblx0XHR9KTtcblxuXHRcdCQoXCJmb3JtI29ubGluZS1ib29raW5nLWZvcm0tcm9vbSAuc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItc2VhcmNoLS1pbmxpbmUgLnNlbGVjdDItc2VhcmNoX19maWVsZFwiKS5jc3MoJ29wYWNpdHknLCAnMScpO1xuXHRcdCQoXCJmb3JtI29ubGluZS1ib29raW5nLWZvcm0tcm9vbSAuc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItc2VhcmNoLS1pbmxpbmUgLnNlbGVjdDItc2VhcmNoX19maWVsZFwiKS5wcm9wKFwiZGlzYWJsZWRcIiwgZmFsc2UpO1xuXHQvLyBFbmQgUk9PTSByZXNlcnZhdGlvbiBmb3JtIGRhdGUgcGlja2Vyc1xuXHRcblx0Ly8gU3RhcnQgTHVuY2ggLyBEaW5uZXIgcmVzZXJ2YXRpb24gZm9ybSBkYXRlIHBpY2tlcnNcblx0ICAkKFwiZm9ybSNvbmxpbmUtYm9va2luZy1mb3JtLXRhYmxlICNwaWNrLXVwLWRhdGUtaW5wdXQtdGFibGUsIGZvcm0jb25saW5lLWJvb2tpbmctZm9ybS10YWJsZSAjcmV0dXJuLWRhdGUtaW5wdXQtdGFibGVcIikuZGF0ZXBpY2tlcih7XG5cdFx0cmFuZ2VTZWxlY3Q6IHRydWUsXG5cdFx0Ly9iZWZvcmVTaG93OiBjdXN0b21SYW5nZSxcblx0XHRvblNlbGVjdDogY3VzdG9tUmFuZ2VUYWJsZSxcblx0XHRtaW5EYXRlOiAnKzBkJyxcblx0XHRkYXRlRm9ybWF0OiAneXktbW0tZGQnLFxuXHRcdG51bWJlck9mTW9udGhzOiAyLFxuXHQgIH0pO1xuXG5cdCAgJChcImZvcm0jb25saW5lLWJvb2tpbmctZm9ybS1kaW5uZXIgI3BpY2stdXAtZGF0ZS1pbnB1dC1kaW5uZXIsIGZvcm0jb25saW5lLWJvb2tpbmctZm9ybS1kaW5uZXIgI3JldHVybi1kYXRlLWlucHV0LWRpbm5lclwiKS5kYXRlcGlja2VyKHtcblx0XHRyYW5nZVNlbGVjdDogdHJ1ZSxcblx0XHQvL2JlZm9yZVNob3c6IGN1c3RvbVJhbmdlLFxuXHRcdG9uU2VsZWN0OiBjdXN0b21SYW5nZURpbm5lcixcblx0XHRtaW5EYXRlOiAnKzBkJyxcblx0XHRkYXRlRm9ybWF0OiAneXktbW0tZGQnLFxuXHRcdG51bWJlck9mTW9udGhzOiAyLFxuXHQgIH0pO1xuXG5cdCAgZnVuY3Rpb24gY3VzdG9tUmFuZ2VUYWJsZShpbnB1dCwgaW5zdCkge1xuXHRcdGlmICgkKHRoaXMpLmlzKFwiZm9ybSNvbmxpbmUtYm9va2luZy1mb3JtLXRhYmxlICNwaWNrLXVwLWRhdGUtaW5wdXQtdGFibGVcIikpIHtcblx0XHQgIHZhciBzZWxlY3RlZCA9ICQodGhpcykuZGF0ZXBpY2tlcihcImdldERhdGVcIik7XG5cdFx0ICBpZiAoc2VsZWN0ZWQgIT0gbnVsbCkge1xuXHRcdFx0c2VsZWN0ZWQuc2V0RGF0ZShzZWxlY3RlZC5nZXREYXRlKCkpO1xuXHRcdFx0JChcImZvcm0jb25saW5lLWJvb2tpbmctZm9ybS10YWJsZSAjcmV0dXJuLWRhdGUtaW5wdXQtdGFibGVcIikucHJvcChcImRpc2FibGVkXCIsIGZhbHNlKS5kYXRlcGlja2VyKFwib3B0aW9uXCIsIFwibWluRGF0ZVwiLCBzZWxlY3RlZCk7XG5cdFx0XHR2YXIgdGFibGVjaGVja291dCA9IHNlbGVjdGVkLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTtcblx0XHRcdCQoXCJmb3JtI29ubGluZS1ib29raW5nLWZvcm0tdGFibGUgI3JldHVybi1kYXRlLWlucHV0LXRhYmxlXCIpLnZhbCh0YWJsZWNoZWNrb3V0KTtcblx0XHQgIH1cblx0XHR9XG5cdCAgfSBcblxuXHQgIGZ1bmN0aW9uIGN1c3RvbVJhbmdlRGlubmVyKGlucHV0LCBpbnN0KSB7XG5cdFx0aWYgKCQodGhpcykuaXMoXCJmb3JtI29ubGluZS1ib29raW5nLWZvcm0tZGlubmVyICNwaWNrLXVwLWRhdGUtaW5wdXQtZGlubmVyXCIpKSB7XG5cdFx0ICB2YXIgc2VsZWN0ZWREaW5uZXIgPSAkKHRoaXMpLmRhdGVwaWNrZXIoXCJnZXREYXRlXCIpO1xuXHRcdCAgaWYgKHNlbGVjdGVkRGlubmVyICE9IG51bGwpIHtcblx0XHRcdHNlbGVjdGVkRGlubmVyLnNldERhdGUoc2VsZWN0ZWREaW5uZXIuZ2V0RGF0ZSgpKTtcblx0XHRcdCQoXCJmb3JtI29ubGluZS1ib29raW5nLWZvcm0tZGlubmVyICNyZXR1cm4tZGF0ZS1pbnB1dC1kaW5uZXJcIikucHJvcChcImRpc2FibGVkXCIsIGZhbHNlKS5kYXRlcGlja2VyKFwib3B0aW9uXCIsIFwibWluRGF0ZVwiLCBzZWxlY3RlZERpbm5lcik7XG5cdFx0XHR2YXIgdGFibGVjaGVja291dERpbm5lciA9IHNlbGVjdGVkRGlubmVyLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTtcblx0XHRcdCQoXCJmb3JtI29ubGluZS1ib29raW5nLWZvcm0tZGlubmVyICNyZXR1cm4tZGF0ZS1pbnB1dC1kaW5uZXJcIikudmFsKHRhYmxlY2hlY2tvdXREaW5uZXIpO1xuXHRcdCAgfVxuXHRcdH1cblx0ICB9IFxuXHQgIFxuXHQgICQoXCJmb3JtI29ubGluZS1ib29raW5nLWZvcm0tdGFibGUgI3R5cGUtZmlsdGVyLXRhYmxlXCIpLm9uKCdjaGFuZ2UnLCBmdW5jdGlvbigpIHtcblx0XHRcdCQoJ2Zvcm0jb25saW5lLWJvb2tpbmctZm9ybS10YWJsZScpLmF0dHIoJ2FjdGlvbicsICdodHRwczovL3Jlc2VydmF0aW9ucy52aXNib29rLmNvbS8nKyAkKFwiZm9ybSNvbmxpbmUtYm9va2luZy1mb3JtLXRhYmxlICN0eXBlLWZpbHRlci10YWJsZVwiKS5zZWxlY3QyKFwidmFsXCIpICsnL3NlYXJjaCcpO1xuXHRcdFx0JChcImZvcm0jb25saW5lLWJvb2tpbmctZm9ybS10YWJsZSAuc3VibWl0LWJ1dHRvbiAjcXVpY2stYm9va2luZy10YWJsZVwiKS5wcm9wKFwiZGlzYWJsZWRcIiwgZmFsc2UpO1xuXHRcdH0pO1xuXHQgIFxuXHRcdCQoXCJmb3JtI29ubGluZS1ib29raW5nLWZvcm0tZGlubmVyICN0eXBlLWZpbHRlci1kaW5uZXJcIikub24oJ2NoYW5nZScsIGZ1bmN0aW9uKCkge1xuXHRcdFx0JCgnZm9ybSNvbmxpbmUtYm9va2luZy1mb3JtLWRpbm5lcicpLmF0dHIoJ2FjdGlvbicsICdodHRwczovL3Jlc2VydmF0aW9ucy52aXNib29rLmNvbS8nKyAkKFwiZm9ybSNvbmxpbmUtYm9va2luZy1mb3JtLWRpbm5lciAjdHlwZS1maWx0ZXItZGlubmVyXCIpLnNlbGVjdDIoXCJ2YWxcIikgKycvc2VhcmNoJyk7XG5cdFx0XHQkKFwiZm9ybSNvbmxpbmUtYm9va2luZy1mb3JtLWRpbm5lciAuc3VibWl0LWJ1dHRvbiAjcXVpY2stYm9va2luZy1kaW5uZXJcIikucHJvcChcImRpc2FibGVkXCIsIGZhbHNlKTtcblx0XHR9KTtcblx0ICBcblxuXHQgICQoXCJmb3JtI29ubGluZS1ib29raW5nLWZvcm0tdGFibGUgc2VsZWN0I3R5cGUtZmlsdGVyLXRhYmxlXCIpLnNlbGVjdDIoe1xuXHRcdFx0cGxhY2Vob2xkZXI6IFwiU2VsZWN0XCIsXG5cdFx0XHRtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDogLTFcblx0XHR9KTtcblxuXHRcdFxuXHRcdCQoXCJmb3JtI29ubGluZS1ib29raW5nLWZvcm0tZGlubmVyIHNlbGVjdCN0eXBlLWZpbHRlci1kaW5uZXJcIikuc2VsZWN0Mih7XG5cdFx0XHRwbGFjZWhvbGRlcjogXCJTZWxlY3RcIixcblx0XHRcdG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOiAtMVxuXHRcdH0pO1xuXHQvLyBFbmQgVEFCTEUgcmVzZXJ2YXRpb24gZm9ybSBkYXRlIHBpY2tlcnNcblxuXHQkKHdpbmRvdykub24oJ29yaWVudGF0aW9uY2hhbmdlIHJlc2l6ZScsIGZ1bmN0aW9uICgpIHtcblx0XHQkKFwiZm9ybSNvbmxpbmUtYm9va2luZy1mb3JtLXJvb20gI3R5cGUtZmlsdGVyLXJvb21cIikuc2VsZWN0MihcImRlc3Ryb3lcIik7XG5cdFx0JChcImZvcm0jb25saW5lLWJvb2tpbmctZm9ybS1yb29tICN0eXBlLWZpbHRlci1yb29tXCIpLnNlbGVjdDIoe1xuXHRcdFx0cGxhY2Vob2xkZXI6IFwiQWxsXCIsXG5cdFx0XHRhbGxvd0NsZWFyOiB0cnVlLFxuXHRcdFx0bWluaW11bVJlc3VsdHNGb3JTZWFyY2g6IC0xXG5cdFx0fSk7XG5cblx0XHQkKFwiZm9ybSNvbmxpbmUtYm9va2luZy1mb3JtLWRpbm5lciBzZWxlY3QjdHlwZS1maWx0ZXItZGlubmVyXCIpLnNlbGVjdDIoXCJkZXN0cm95XCIpO1xuXHRcdCQoXCJmb3JtI29ubGluZS1ib29raW5nLWZvcm0tZGlubmVyIHNlbGVjdCN0eXBlLWZpbHRlci1kaW5uZXJcIikuc2VsZWN0Mih7XG5cdFx0XHRwbGFjZWhvbGRlcjogXCJTZWxlY3RcIixcblx0XHRcdG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOiAtMVxuXHRcdH0pO1xuXHRcdFxuXHRcdCQoXCJmb3JtI29ubGluZS1ib29raW5nLWZvcm0tdGFibGUgc2VsZWN0I3R5cGUtZmlsdGVyLXRhYmxlXCIpLnNlbGVjdDIoXCJkZXN0cm95XCIpO1xuXHRcdCQoXCJmb3JtI29ubGluZS1ib29raW5nLWZvcm0tdGFibGUgc2VsZWN0I3R5cGUtZmlsdGVyLXRhYmxlXCIpLnNlbGVjdDIoe1xuXHRcdFx0cGxhY2Vob2xkZXI6IFwiU2VsZWN0XCIsXG5cdFx0XHRtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDogLTFcblx0XHR9KTtcblx0ICB9KTtcblx0XG5cdCQoJy5jYXJkc19fY29sbGFwc2FibGUtY29udGVudC1idXR0b24gYnV0dG9uJykuY2xpY2soZnVuY3Rpb24gKGUpIHtcblx0XHRlLnByZXZlbn
3674REZWZhdWx0KCk7XG5cblx0XHQkKHRoaXMpLnBhcmVudHMoJy5jYXJkc19fY29sbGFwc2FibGUtY29udGVudCcpLmZpbmQoJy5jYXJkc19fY29sbGFwc2FibGUtY29udGVudC10ZXh0JykucmVtb3ZlQ2xhc3MoJ2NhcmRzX19jb2xsYXBzYWJsZS1jb250ZW50LXRleHQtLWNvbGxhcHNlZCcpO1xuXHRcdCQodGhpcykuaGlkZSgpO1xuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9KVxufSkoalF1ZXJ5KTsgLy8gRnVsbHkgcmVmZXJlbmNlIGpRdWVyeSBhZnRlciB0aGlzIHBvaW50LlxuXG4vL0BwcmVwcm9zLXByZXBlbmQgLi92ZW5kb3IvKi5qcyIsIi8qIVxyXG4gKiBzaW1wbGVQYXJhbGxheC5taW4gLSBzaW1wbGVQYXJhbGxheCBpcyBhIHNpbXBsZSBKYXZhU2NyaXB0IGxpYnJhcnkgdGhhdCBnaXZlcyB5b3VyIHdlYnNpdGUgcGFyYWxsYXggYW5pbWF0aW9ucyBvbiBhbnkgaW1hZ2VzIG9yIHZpZGVvcywgXHJcbiAqIEBkYXRlOiAyMC0wOC0yMDIwIDE0OjA6MTQsIFxyXG4gKiBAdmVyc2lvbjogNS42LjIsXHJcbiAqIEBsaW5rOiBodHRwczovL3NpbXBsZXBhcmFsbGF4LmNvbS9cclxuICovXHJcbiFmdW5jdGlvbih0LGUpe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcIm9iamVjdFwiPT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPWUoKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFwic2ltcGxlUGFyYWxsYXhcIixbXSxlKTpcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cz9leHBvcnRzLnNpbXBsZVBhcmFsbGF4PWUoKTp0LnNpbXBsZVBhcmFsbGF4PWUoKX0od2luZG93LChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT17fTtmdW5jdGlvbiBuKGkpe2lmKGVbaV0pcmV0dXJuIGVbaV0uZXhwb3J0czt2YXIgcj1lW2ldPXtpOmksbDohMSxleHBvcnRzOnt9fTtyZXR1cm4gdFtpXS5jYWxsKHIuZXhwb3J0cyxyLHIuZXhwb3J0cyxuKSxyLmw9ITAsci5leHBvcnRzfXJldHVybiBuLm09dCxuLmM9ZSxuLmQ9ZnVuY3Rpb24odCxlLGkpe24ubyh0LGUpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHtlbnVtZXJhYmxlOiEwLGdldDppfSl9LG4ucj1mdW5jdGlvbih0KXtcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6XCJNb2R1bGVcIn0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pfSxuLnQ9ZnVuY3Rpb24odCxlKXtpZigxJmUmJih0PW4odCkpLDgmZSlyZXR1cm4gdDtpZig0JmUmJlwib2JqZWN0XCI9PXR5cGVvZiB0JiZ0JiZ0Ll9fZXNNb2R1bGUpcmV0dXJuIHQ7dmFyIGk9T2JqZWN0LmNyZWF0ZShudWxsKTtpZihuLnIoaSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGksXCJkZWZhdWx0XCIse2VudW1lcmFibGU6ITAsdmFsdWU6dH0pLDImZSYmXCJzdHJpbmdcIiE9dHlwZW9mIHQpZm9yKHZhciByIGluIHQpbi5kKGkscixmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0uYmluZChudWxsLHIpKTtyZXR1cm4gaX0sbi5uPWZ1bmN0aW9uKHQpe3ZhciBlPXQmJnQuX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiB0LmRlZmF1bHR9OmZ1bmN0aW9uKCl7cmV0dXJuIHR9O3JldHVybiBuLmQoZSxcImFcIixlKSxlfSxuLm89ZnVuY3Rpb24odCxlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSl9LG4ucD1cIlwiLG4obi5zPTApfShbZnVuY3Rpb24odCxlLG4pe1widXNlIHN0cmljdFwiO24ucihlKSxuLmQoZSxcImRlZmF1bHRcIiwoZnVuY3Rpb24oKXtyZXR1cm4geH0pKTt2YXIgaT1mdW5jdGlvbigpe3JldHVybiBFbGVtZW50LnByb3RvdHlwZS5jbG9zZXN0JiZcIkludGVyc2VjdGlvbk9ic2VydmVyXCJpbiB3aW5kb3d9O2Z1bmN0aW9uIHIodCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9ZVtuXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaS5rZXksaSl9fXZhciBzPW5ldyhmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXshZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfSh0aGlzLHQpLHRoaXMucG9zaXRpb25zPXt0b3A6MCxib3R0b206MCxoZWlnaHQ6MH19dmFyIGUsbixpO3JldHVybiBlPXQsKG49W3trZXk6XCJzZXRWaWV3cG9ydFRvcFwiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnBvc2l0aW9ucy50b3A9dD90LnNjcm9sbFRvcDp3aW5kb3cucGFnZVlPZmZzZXQsdGhpcy5wb3NpdGlvbnN9fSx7a2V5Olwic2V0Vmlld3BvcnRCb3R0b21cIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBvc2l0aW9ucy5ib3R0b209dGhpcy5wb3NpdGlvbnMudG9wK3RoaXMucG9zaXRpb25zLmhlaWdodCx0aGlzLnBvc2l0aW9uc319LHtrZXk6XCJzZXRWaWV3cG9ydEFsbFwiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnBvc2l0aW9ucy50b3A9dD90LnNjcm9sbFRvcDp3aW5kb3cucGFnZVlPZmZzZXQsdGhpcy5wb3NpdGlvbnMuaGVpZ2h0PXQ/dC5jbGllbnRIZWlnaHQ6ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCx0aGlzLnBvc2l0aW9ucy5ib3R0b209dGhpcy5wb3NpdGlvbnMudG9wK3RoaXMucG9zaXRpb25zLmhlaWdodCx0aGlzLnBvc2l0aW9uc319XSkmJnIoZS5wcm90b3R5cGUsbiksaSYmcihlLGkpLHR9KCkpLG89ZnVuY3Rpb24odCl7cmV0dXJuIE5vZGVMaXN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKHQpfHxIVE1MQ29sbGVjdGlvbi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZih0KT9BcnJheS5mcm9tKHQpOlwic3RyaW5nXCI9PXR5cGVvZiB0fHx0IGluc3RhbmNlb2YgU3RyaW5nP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwodCk6W3RdfSxhPWZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9XCJ0cmFuc2Zvcm0gd2Via2l0VHJhbnNmb3JtIG1velRyYW5zZm9ybSBvVHJhbnNmb3JtIG1zVHJhbnNmb3JtXCIuc3BsaXQoXCIgXCIpLG49MDt2b2lkIDA9PT10Oyl0PXZvaWQgMCE9PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIikuc3R5bGVbZVtuXV0/ZVtuXTp2b2lkIDAsbis9MTtyZXR1cm4gdH0oKSxsPWZ1bmN0aW9uKHQpe3JldHVyblwiaW1nXCIhPT10LnRhZ05hbWUudG9Mb3dlckNhc2UoKSYmXCJwaWN0dXJlXCIhPT10LnRhZ05hbWUudG9Mb3dlckNhc2UoKXx8ISF0JiYoISF0LmNvbXBsZXRlJiYodm9pZCAwPT09dC5uYXR1cmFsV2lkdGh8fDAhPT10Lm5hdHVyYWxXaWR0aCkpfTtmdW5jdGlvbiB1KHQpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF
36745KHQpKXJldHVybiBjKHQpfSh0KXx8ZnVuY3Rpb24odCl7aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdCh0KSlyZXR1cm4gQXJyYXkuZnJvbSh0KX0odCl8fGZ1bmN0aW9uKHQsZSl7aWYoIXQpcmV0dXJuO2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXJldHVybiBjKHQsZSk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO1wiT2JqZWN0XCI9PT1uJiZ0LmNvbnN0cnVjdG9yJiYobj10LmNvbnN0cnVjdG9yLm5hbWUpO2lmKFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bilyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpcmV0dXJuIGModCxlKX0odCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gYyh0LGUpeyhudWxsPT1lfHxlPnQubGVuZ3RoKSYmKGU9dC5sZW5ndGgpO2Zvcih2YXIgbj0wLGk9bmV3IEFycmF5KGUpO248ZTtuKyspaVtuXT10W25dO3JldHVybiBpfWZ1bmN0aW9uIGgodCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9ZVtuXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaS5rZXksaSl9fXZhciBmPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4pe3ZhciBpPXRoaXM7IWZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKX0odGhpcyx0KSx0aGlzLmVsZW1lbnQ9ZSx0aGlzLmVsZW1lbnRDb250YWluZXI9ZSx0aGlzLnNldHRpbmdzPW4sdGhpcy5pc1Zpc2libGU9ITAsdGhpcy5pc0luaXQ9ITEsdGhpcy5vbGRUcmFuc2xhdGVWYWx1ZT0tMSx0aGlzLmluaXQ9dGhpcy5pbml0LmJpbmQodGhpcyksdGhpcy5jdXN0b21XcmFwcGVyPXRoaXMuc2V0dGluZ3MuY3VzdG9tV3JhcHBlciYmdGhpcy5lbGVtZW50LmNsb3Nlc3QodGhpcy5zZXR0aW5ncy5jdXN0b21XcmFwcGVyKT90aGlzLmVsZW1lbnQuY2xvc2VzdCh0aGlzLnNldHRpbmdzLmN1c3RvbVdyYXBwZXIpOm51bGwsbChlKT90aGlzLmluaXQoKTp0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwoZnVuY3Rpb24oKXtzZXRUaW1lb3V0KChmdW5jdGlvbigpe2kuaW5pdCghMCl9KSw1MCl9KSl9dmFyIGUsbixpO3JldHVybiBlPXQsKG49W3trZXk6XCJpbml0XCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLmlzSW5pdHx8KHQmJih0aGlzLnJhbmdlTWF4PW51bGwpLHRoaXMuZWxlbWVudC5jbG9zZXN0KFwiLnNpbXBsZVBhcmFsbGF4XCIpfHwoITE9PT10aGlzLnNldHRpbmdzLm92ZXJmbG93JiZ0aGlzLndyYXBFbGVtZW50KHRoaXMuZWxlbWVudCksdGhpcy5zZXRUcmFuc2Zvcm1DU1MoKSx0aGlzLmdldEVsZW1lbnRPZmZzZXQoKSx0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyKCksdGhpcy5nZXRUcmFuc2xhdGVWYWx1ZSgpLHRoaXMuYW5pbWF0ZSgpLHRoaXMuc2V0dGluZ3MuZGVsYXk+MD9zZXRUaW1lb3V0KChmdW5jdGlvbigpe2Uuc2V0VHJhbnNpdGlvbkNTUygpLGUuZWxlbWVudENvbnRhaW5lci5jbGFzc0xpc3QuYWRkKFwic2ltcGxlLXBhcmFsbGF4LWluaXRpYWxpemVkXCIpfSksMTApOnRoaXMuZWxlbWVudENvbnRhaW5lci5jbGFzc0xpc3QuYWRkKFwic2ltcGxlLXBhcmFsbGF4LWluaXRpYWxpemVkXCIpLHRoaXMuaXNJbml0PSEwKSl9fSx7a2V5Olwid3JhcEVsZW1lbnRcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZWxlbWVudC5jbG9zZXN0KFwicGljdHVyZVwiKXx8dGhpcy5lbGVtZW50LGU9dGhpcy5jdXN0b21XcmFwcGVyfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO2UuY2xhc3NMaXN0LmFkZChcInNpbXBsZVBhcmFsbGF4XCIpLGUuc3R5bGUub3ZlcmZsb3c9XCJoaWRkZW5cIix0aGlzLmN1c3RvbVdyYXBwZXJ8fCh0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGUsdCksZS5hcHBlbmRDaGlsZCh0KSksdGhpcy5lbGVtZW50Q29udGFpbmVyPWV9fSx7a2V5OlwidW5XcmFwRWxlbWVudFwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50Q29udGFpbmVyO3RoaXMuY3VzdG9tV3JhcHBlcj8odC5jbGFzc0xpc3QucmVtb3ZlKFwic2ltcGxlUGFyYWxsYXhcIiksdC5zdHlsZS5vdmVyZmxvdz1cIlwiKTp0LnJlcGxhY2VXaXRoLmFwcGx5KHQsdSh0LmNoaWxkTm9kZXMpKX19LHtrZXk6XCJzZXRUcmFuc2Zvcm1DU1NcIix2YWx1ZTpmdW5jdGlvbigpeyExPT09dGhpcy5zZXR0aW5ncy5vdmVyZmxvdyYmKHRoaXMuZWxlbWVudC5zdHlsZVthXT1cInNjYWxlKFwiLmNvbmNhdCh0aGlzLnNldHRpbmdzLnNjYWxlLFwiKVwiKSksdGhpcy5lbGVtZW50LnN0eWxlLndpbGxDaGFuZ2U9XCJ0cmFuc2Zvcm1cIn19LHtrZXk6XCJzZXRUcmFuc2l0aW9uQ1NTXCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQuc3R5bGUudHJhbnNpdGlvbj1cInRyYW5zZm9ybSBcIi5jb25jYXQodGhpcy5zZXR0aW5ncy5kZWxheSxcInMgXCIpLmNvbmNhdCh0aGlzLnNldHRpbmdzLnRyYW5zaXRpb24pfX0se2tleTpcInVuU2V0U3R5bGVcIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5zdHlsZS53aWxsQ2hhbmdlPVwiXCIsdGhpcy5lbGVtZW50LnN0eWxlW2FdPVwiXCIsdGhpcy5lbGVtZW50LnN0eWxlLnRyYW5zaXRpb249XCJcIn19LHtrZXk6XCJnZXRFbGVtZW50T2Zmc2V0XCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVsZW1lbnRDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYodGhpcy5lbGVtZW50SGVpZ2h0PXQuaGVpZ2h0LHRoaXMuZWxlbWVudFRvcD10LnRvcCtzLnBvc2l0aW9ucy50b3AsdGhpcy5zZXR0aW5ncy5jdXN0b21Db250YWluZXIpe3ZhciBlPXR
3674oaXMuc2V0dGluZ3MuY3VzdG9tQ29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuZWxlbWVudFRvcD10LnRvcC1lLnRvcCtzLnBvc2l0aW9ucy50b3B9dGhpcy5lbGVtZW50Qm90dG9tPXRoaXMuZWxlbWVudEhlaWdodCt0aGlzLmVsZW1lbnRUb3B9fSx7a2V5OlwiYnVpbGRUaHJlc2hvbGRMaXN0XCIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0xO2U8PXRoaXMuZWxlbWVudEhlaWdodDtlKyspe3ZhciBuPWUvdGhpcy5lbGVtZW50SGVpZ2h0O3QucHVzaChuKX1yZXR1cm4gdH19LHtrZXk6XCJpbnRlcnNlY3Rpb25PYnNlcnZlclwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9e3Jvb3Q6bnVsbCx0aHJlc2hvbGQ6dGhpcy5idWlsZFRocmVzaG9sZExpc3QoKX07dGhpcy5vYnNlcnZlcj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIodGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrLmJpbmQodGhpcyksdCksdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbWVudCl9fSx7a2V5OlwiaW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFja1wiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dC5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmlzSW50ZXJzZWN0aW5nP2UuaXNWaXNpYmxlPSEwOmUuaXNWaXNpYmxlPSExfSkpfX0se2tleTpcImNoZWNrSWZWaXNpYmxlXCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50Qm90dG9tPnMucG9zaXRpb25zLnRvcCYmdGhpcy5lbGVtZW50VG9wPHMucG9zaXRpb25zLmJvdHRvbX19LHtrZXk6XCJnZXRSYW5nZU1heFwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50LmNsaWVudEhlaWdodDt0aGlzLnJhbmdlTWF4PXQqdGhpcy5zZXR0aW5ncy5zY2FsZS10fX0se2tleTpcImdldFRyYW5zbGF0ZVZhbHVlXCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD0oKHMucG9zaXRpb25zLmJvdHRvbS10aGlzLmVsZW1lbnRUb3ApLygocy5wb3NpdGlvbnMuaGVpZ2h0K3RoaXMuZWxlbWVudEhlaWdodCkvMTAwKSkudG9GaXhlZCgxKTtyZXR1cm4gdD1NYXRoLm1pbigxMDAsTWF0aC5tYXgoMCx0KSksMCE9PXRoaXMuc2V0dGluZ3MubWF4VHJhbnNpdGlvbiYmdD50aGlzLnNldHRpbmdzLm1heFRyYW5zaXRpb24mJih0PXRoaXMuc2V0dGluZ3MubWF4VHJhbnNpdGlvbiksdGhpcy5vbGRQZXJjZW50YWdlIT09dCYmKHRoaXMucmFuZ2VNYXh8fHRoaXMuZ2V0UmFuZ2VNYXgoKSx0aGlzLnRyYW5zbGF0ZVZhbHVlPSh0LzEwMCp0aGlzLnJhbmdlTWF4LXRoaXMucmFuZ2VNYXgvMikudG9GaXhlZCgwKSx0aGlzLm9sZFRyYW5zbGF0ZVZhbHVlIT09dGhpcy50cmFuc2xhdGVWYWx1ZSYmKHRoaXMub2xkUGVyY2VudGFnZT10LHRoaXMub2xkVHJhbnNsYXRlVmFsdWU9dGhpcy50cmFuc2xhdGVWYWx1ZSwhMCkpfX0se2tleTpcImFuaW1hdGVcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0LGU9MCxuPTA7KHRoaXMuc2V0dGluZ3Mub3JpZW50YXRpb24uaW5jbHVkZXMoXCJsZWZ0XCIpfHx0aGlzLnNldHRpbmdzLm9yaWVudGF0aW9uLmluY2x1ZGVzKFwicmlnaHRcIikpJiYobj1cIlwiLmNvbmNhdCh0aGlzLnNldHRpbmdzLm9yaWVudGF0aW9uLmluY2x1ZGVzKFwibGVmdFwiKT8tMSp0aGlzLnRyYW5zbGF0ZVZhbHVlOnRoaXMudHJhbnNsYXRlVmFsdWUsXCJweFwiKSksKHRoaXMuc2V0dGluZ3Mub3JpZW50YXRpb24uaW5jbHVkZXMoXCJ1cFwiKXx8dGhpcy5zZXR0aW5ncy5vcmllbnRhdGlvbi5pbmNsdWRlcyhcImRvd25cIikpJiYoZT1cIlwiLmNvbmNhdCh0aGlzLnNldHRpbmdzLm9yaWVudGF0aW9uLmluY2x1ZGVzKFwidXBcIik/LTEqdGhpcy50cmFuc2xhdGVWYWx1ZTp0aGlzLnRyYW5zbGF0ZVZhbHVlLFwicHhcIikpLHQ9ITE9PT10aGlzLnNldHRpbmdzLm92ZXJmbG93P1widHJhbnNsYXRlM2QoXCIuY29uY2F0KG4sXCIsIFwiKS5jb25jYXQoZSxcIiwgMCkgc2NhbGUoXCIpLmNvbmNhdCh0aGlzLnNldHRpbmdzLnNjYWxlLFwiKVwiKTpcInRyYW5zbGF0ZTNkKFwiLmNvbmNhdChuLFwiLCBcIikuY29uY2F0KGUsXCIsIDApXCIpLHRoaXMuZWxlbWVudC5zdHlsZVthXT10fX1dKSYmaChlLnByb3RvdHlwZSxuKSxpJiZoKGUsaSksdH0oKTtmdW5jdGlvbiBtKHQpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB5KHQpfSh0KXx8ZnVuY3Rpb24odCl7aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdCh0KSlyZXR1cm4gQXJyYXkuZnJvbSh0KX0odCl8fGQodCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gcCh0LGUpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0fSh0KXx8ZnVuY3Rpb24odCxlKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgU3ltYm9sfHwhKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QodCkpKXJldHVybjt2YXIgbj1bXSxpPSEwLHI9ITEscz12b2lkIDA7dHJ5e2Zvcih2YXIgbyxhPXRbU3ltYm9sLml0ZXJhdG9yXSgpOyEoaT0obz1hLm5leHQoKSkuZG9uZSkmJihuLnB1c2goby52YWx1ZSksIWV8fG4ubGVuZ3RoIT09ZSk7aT0hMCk7fWNhdGNoKHQpe3I9ITAscz10fWZpbmFsbHl7dHJ5e2l8fG51bGw9PWEucmV0dXJufHxhLnJldHVybigpfWZpbmFsbHl7aWYocil0aHJvdyBzfX1yZXR1cm4gbn0odCxlKXx8ZCh0LGUpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gZCh0LGUpe2lmKHQpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiB0KXJldHVybi
3674B5KHQsZSk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO3JldHVyblwiT2JqZWN0XCI9PT1uJiZ0LmNvbnN0cnVjdG9yJiYobj10LmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT1ufHxcIlNldFwiPT09bj9BcnJheS5mcm9tKHQpOlwiQXJndW1lbnRzXCI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT95KHQsZSk6dm9pZCAwfX1mdW5jdGlvbiB5KHQsZSl7KG51bGw9PWV8fGU+dC5sZW5ndGgpJiYoZT10Lmxlbmd0aCk7Zm9yKHZhciBuPTAsaT1uZXcgQXJyYXkoZSk7bjxlO24rKylpW25dPXRbbl07cmV0dXJuIGl9ZnVuY3Rpb24gdih0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxpLmtleSxpKX19dmFyIGcsYix3PSExLFQ9W10seD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuKXtpZihmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIil9KHRoaXMsdCksZSYmaSgpKXtpZih0aGlzLmVsZW1lbnRzPW8oZSksdGhpcy5kZWZhdWx0cz17ZGVsYXk6MCxvcmllbnRhdGlvbjpcInVwXCIsc2NhbGU6MS4zLG92ZXJmbG93OiExLHRyYW5zaXRpb246XCJjdWJpYy1iZXppZXIoMCwwLDAsMSlcIixjdXN0b21Db250YWluZXI6XCJcIixjdXN0b21XcmFwcGVyOlwiXCIsbWF4VHJhbnNpdGlvbjowfSx0aGlzLnNldHRpbmdzPU9iamVjdC5hc3NpZ24odGhpcy5kZWZhdWx0cyxuKSx0aGlzLnNldHRpbmdzLmN1c3RvbUNvbnRhaW5lcil7dmFyIHI9cChvKHRoaXMuc2V0dGluZ3MuY3VzdG9tQ29udGFpbmVyKSwxKTt0aGlzLmN1c3RvbUNvbnRhaW5lcj1yWzBdfXRoaXMubGFzdFBvc2l0aW9uPS0xLHRoaXMucmVzaXplSXNEb25lPXRoaXMucmVzaXplSXNEb25lLmJpbmQodGhpcyksdGhpcy5yZWZyZXNoPXRoaXMucmVmcmVzaC5iaW5kKHRoaXMpLHRoaXMucHJvY2VlZFJlcXVlc3RBbmltYXRpb25GcmFtZT10aGlzLnByb2NlZWRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh0aGlzKSx0aGlzLmluaXQoKX19dmFyIGUsbixyO3JldHVybiBlPXQsKG49W3trZXk6XCJpbml0XCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3Muc2V0Vmlld3BvcnRBbGwodGhpcy5jdXN0b21Db250YWluZXIpLFQ9W10uY29uY2F0KG0odGhpcy5lbGVtZW50cy5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgZihlLHQuc2V0dGluZ3MpfSkpKSxtKFQpKSx3fHwodGhpcy5wcm9jZWVkUmVxdWVzdEFuaW1hdGlvbkZyYW1lKCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix0aGlzLnJlc2l6ZUlzRG9uZSksdz0hMCl9fSx7a2V5OlwicmVzaXplSXNEb25lXCIsdmFsdWU6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoYiksYj1zZXRUaW1lb3V0KHRoaXMucmVmcmVzaCwyMDApfX0se2tleTpcInByb2NlZWRSZXF1ZXN0QW5pbWF0aW9uRnJhbWVcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cy5zZXRWaWV3cG9ydFRvcCh0aGlzLmN1c3RvbUNvbnRhaW5lciksdGhpcy5sYXN0UG9zaXRpb24hPT1zLnBvc2l0aW9ucy50b3A/KHMuc2V0Vmlld3BvcnRCb3R0b20oKSxULmZvckVhY2goKGZ1bmN0aW9uKGUpe3QucHJvY2VlZEVsZW1lbnQoZSl9KSksZz13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucHJvY2VlZFJlcXVlc3RBbmltYXRpb25GcmFtZSksdGhpcy5sYXN0UG9zaXRpb249cy5wb3NpdGlvbnMudG9wKTpnPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5wcm9jZWVkUmVxdWVzdEFuaW1hdGlvbkZyYW1lKX19LHtrZXk6XCJwcm9jZWVkRWxlbWVudFwiLHZhbHVlOmZ1bmN0aW9uKHQpeyh0aGlzLmN1c3RvbUNvbnRhaW5lcj90LmNoZWNrSWZWaXNpYmxlKCk6dC5pc1Zpc2libGUpJiZ0LmdldFRyYW5zbGF0ZVZhbHVlKCkmJnQuYW5pbWF0ZSgpfX0se2tleTpcInJlZnJlc2hcIix2YWx1ZTpmdW5jdGlvbigpe3Muc2V0Vmlld3BvcnRBbGwodGhpcy5jdXN0b21Db250YWluZXIpLFQuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5nZXRFbGVtZW50T2Zmc2V0KCksdC5nZXRSYW5nZU1heCgpfSkpLHRoaXMubGFzdFBvc2l0aW9uPS0xfX0se2tleTpcImRlc3Ryb3lcIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1bXTtUPVQuZmlsdGVyKChmdW5jdGlvbihuKXtyZXR1cm4gdC5lbGVtZW50cy5pbmNsdWRlcyhuLmVsZW1lbnQpPyhlLnB1c2gobiksITEpOm59KSksZS5mb3JFYWNoKChmdW5jdGlvbihlKXtlLnVuU2V0U3R5bGUoKSwhMT09PXQuc2V0dGluZ3Mub3ZlcmZsb3cmJmUudW5XcmFwRWxlbWVudCgpfSkpLFQubGVuZ3RofHwod2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGcpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsdGhpcy5yZWZyZXNoKSx3PSExKX19XSkmJnYoZS5wcm90b3R5cGUsbiksciYmdihlLHIpLHR9KCl9XSkuZGVmYXVsdH0pKTsiLCIhZnVuY3Rpb24oaSl7XCJ1c2Ugc3RyaWN0XCI7XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbXCJqcXVlcnlcIl0saSk6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9aShyZXF1aXJlKFwianF1ZXJ5XCIpKTppKGpRdWVyeSl9KGZ1bmN0aW9uKGQpe1widXNlIHN0cmljdFwiO3ZhciBzLGw9d2luZG93LlNsaWNrfHx7fTtzPTAsKGw9ZnVuY3Rpb24oaSxlKXt2YXIgdCxvPXRoaXM7by5kZWZhdWx0cz17YWRhcHRpdmVIZWlnaHQ6ITEsYXBwZW5kQXJyb3dzOmQoaSksYXBwZW5kRG90czpkKGkpLGFycm93czohMCxhcnJvd3NQbGFjZW1lbnQ6bnVsbCxhc05hdkZvcjpudWxsLHByZXZBcnJvdzonPGJ1dHRvbiBjbGFzcz1cInNsaWNrLXByZXZcIiB0eXBlPVwiYnV0dG9uXCI+PHNwYW4gY2xhc3M9XCJzbGljay1wcmV2LWljb25cIiBhcmlhLWh
3674pZGRlbj1cInRydWVcIj48L3NwYW4+PHNwYW4gY2xhc3M9XCJzbGljay1zci1vbmx5XCI+UHJldmlvdXM8L3NwYW4+PC9idXR0b24+JyxuZXh0QXJyb3c6JzxidXR0b24gY2xhc3M9XCJzbGljay1uZXh0XCIgdHlwZT1cImJ1dHRvblwiPjxzcGFuIGNsYXNzPVwic2xpY2stbmV4dC1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPjxzcGFuIGNsYXNzPVwic2xpY2stc3Itb25seVwiPk5leHQ8L3NwYW4+PC9idXR0b24+JyxhdXRvcGxheTohMSxhdXRvcGxheVNwZWVkOjNlMyxjZW50ZXJNb2RlOiExLGNlbnRlclBhZGRpbmc6XCI1MHB4XCIsY3NzRWFzZTpcImVhc2VcIixjdXN0b21QYWdpbmc6ZnVuY3Rpb24oaSxlKXtyZXR1cm4gZCgnPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCI+PHNwYW4gY2xhc3M9XCJzbGljay1kb3QtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj48c3BhbiBjbGFzcz1cInNsaWNrLXNyLW9ubHlcIj5HbyB0byBzbGlkZSAnKyhlKzEpK1wiPC9zcGFuPjwvYnV0dG9uPlwiKX0sZG90czohMSxkb3RzQ2xhc3M6XCJzbGljay1kb3RzXCIsZHJhZ2dhYmxlOiEwLGVhc2luZzpcImxpbmVhclwiLGVkZ2VGcmljdGlvbjouMzUsZmFkZTohMSxpbmZpbml0ZTohMCxpbml0aWFsU2xpZGU6MCxpbnN0cnVjdGlvbnNUZXh0Om51bGwsbGF6eUxvYWQ6XCJvbmRlbWFuZFwiLG1vYmlsZUZpcnN0OiExLHBsYXlJY29uOic8c3BhbiBjbGFzcz1cInNsaWNrLXBsYXktaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj4nLHBhdXNlSWNvbjonPHNwYW4gY2xhc3M9XCJzbGljay1wYXVzZS1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPicscGF1c2VPbkhvdmVyOiEwLHBhdXNlT25Gb2N1czohMCxwYXVzZU9uRG90c0hvdmVyOiExLHJlZ2lvbkxhYmVsOlwiY2Fyb3VzZWxcIixyZXNwb25kVG86XCJ3aW5kb3dcIixyZXNwb25zaXZlOm51bGwscm93czoxLHJ0bDohMSxzbGlkZTpcIlwiLHNsaWRlc1BlclJvdzoxLHNsaWRlc1RvU2hvdzoxLHNsaWRlc1RvU2Nyb2xsOjEsc3BlZWQ6NTAwLHN3aXBlOiEwLHN3aXBlVG9TbGlkZTohMSx0b3VjaE1vdmU6ITAsdG91Y2hUaHJlc2hvbGQ6NSx1c2VBdXRvcGxheVRvZ2dsZUJ1dHRvbjohMCx1c2VDU1M6ITAsdXNlR3JvdXBSb2xlOiEwLHVzZVRyYW5zZm9ybTohMCx2YXJpYWJsZVdpZHRoOiExLHZlcnRpY2FsOiExLHZlcnRpY2FsU3dpcGluZzohMSx3YWl0Rm9yQW5pbWF0ZTohMCx6SW5kZXg6MWUzfSxvLmluaXRpYWxzPXthbmltYXRpbmc6ITEsZHJhZ2dpbmc6ITEsYXV0b1BsYXlUaW1lcjpudWxsLGN1cnJlbnREaXJlY3Rpb246MCxjdXJyZW50TGVmdDpudWxsLGN1cnJlbnRTbGlkZTowLGRpcmVjdGlvbjoxLCRkb3RzOm51bGwsJGluc3RydWN0aW9uc1RleHQ6bnVsbCxsaXN0V2lkdGg6bnVsbCxsaXN0SGVpZ2h0Om51bGwsbG9hZEluZGV4OjAsJG5leHRBcnJvdzpudWxsLCRwYXVzZUJ1dHRvbjpudWxsLCRwYXVzZUljb246bnVsbCwkcGxheUljb246bnVsbCwkcHJldkFycm93Om51bGwsc2Nyb2xsaW5nOiExLHNsaWRlQ291bnQ6bnVsbCxzbGlkZVdpZHRoOm51bGwsJHNsaWRlVHJhY2s6bnVsbCwkc2xpZGVzOm51bGwsc2xpZGluZzohMSxzbGlkZU9mZnNldDowLHN3aXBlTGVmdDpudWxsLHN3aXBpbmc6ITEsJGxpc3Q6bnVsbCx0b3VjaE9iamVjdDp7fSx0cmFuc2Zvcm1zRW5hYmxlZDohMSx1bnNsaWNrZWQ6ITF9LGQuZXh0ZW5kKG8sby5pbml0aWFscyksby5hY3RpdmVCcmVha3BvaW50PW51bGwsby5hbmltVHlwZT1udWxsLG8uYW5pbVByb3A9bnVsbCxvLmJyZWFrcG9pbnRzPVtdLG8uYnJlYWtwb2ludFNldHRpbmdzPVtdLG8uY3NzVHJhbnNpdGlvbnM9ITEsby5mb2N1c3NlZD0hMSxvLmludGVycnVwdGVkPSExLG8uaGlkZGVuPVwiaGlkZGVuXCIsby5wYXVzZWQ9ITAsby5wb3NpdGlvblByb3A9bnVsbCxvLnJlc3BvbmRUbz1udWxsLG8ucm93Q291bnQ9MSxvLnNob3VsZENsaWNrPSEwLG8uJHNsaWRlcj1kKGkpLG8uJHNsaWRlc0NhY2hlPW51bGwsby50cmFuc2Zvcm1UeXBlPW51bGwsby50cmFuc2l0aW9uVHlwZT1udWxsLG8udmlzaWJpbGl0eUNoYW5nZT1cInZpc2liaWxpdHljaGFuZ2VcIixvLndpbmRvd1dpZHRoPTAsby53aW5kb3dUaW1lcj1udWxsLHQ9ZChpKS5kYXRhKFwic2xpY2tcIil8fHt9LG8ub3B0aW9ucz1kLmV4dGVuZCh7fSxvLmRlZmF1bHRzLGUsdCksby5jdXJyZW50U2xpZGU9by5vcHRpb25zLmluaXRpYWxTbGlkZSxvLm9yaWdpbmFsU2V0dGluZ3M9by5vcHRpb25zLHZvaWQgMCE9PWRvY3VtZW50Lm1vekhpZGRlbj8oby5oaWRkZW49XCJtb3pIaWRkZW5cIixvLnZpc2liaWxpdHlDaGFuZ2U9XCJtb3p2aXNpYmlsaXR5Y2hhbmdlXCIpOnZvaWQgMCE9PWRvY3VtZW50LndlYmtpdEhpZGRlbiYmKG8uaGlkZGVuPVwid2Via2l0SGlkZGVuXCIsby52aXNpYmlsaXR5Q2hhbmdlPVwid2Via2l0dmlzaWJpbGl0eWNoYW5nZVwiKSxvLmF1dG9QbGF5PWQucHJveHkoby5hdXRvUGxheSxvKSxvLmF1dG9QbGF5Q2xlYXI9ZC5wcm94eShvLmF1dG9QbGF5Q2xlYXIsbyksby5hdXRvUGxheUl0ZXJhdG9yPWQucHJveHkoby5hdXRvUGxheUl0ZXJhdG9yLG8pLG8uYXV0b1BsYXlUb2dnbGVIYW5kbGVyPWQucHJveHkoby5hdXRvUGxheVRvZ2dsZUhhbmRsZXIsbyksby5jaGFuZ2VTbGlkZT1kLnByb3h5KG8uY2hhbmdlU2xpZGUsbyksby5jbGlja0hhbmRsZXI9ZC5wcm94eShvLmNsaWNrSGFuZGxlcixvKSxvLnNlbGVjdEhhbmRsZXI9ZC5wcm94eShvLnNlbGVjdEhhbmRsZXIsbyksby5zZXRQb3NpdGlvbj1kLnByb3h5KG8uc2V0UG9zaXRpb24sbyksby5zd2lwZUhhbmRsZXI9ZC5wcm94eShvLnN3aXBlSGFuZGxlcixvKSxvLmRyYWdIYW5kbGVyPWQucHJveHkoby5kcmFnSGFuZGxlcixvKSxvLmluc3RhbmNlVWlkPXMrKyxvLmh0bWxFeHByPS9eKD86XFxzKig8W1xcd1xcV10rPilbXj5dKikkLyxvLnJlZ2lzdGVyQnJlYWtwb2ludHMoKSxvLmluaXQoITApfSkucHJvdG90eXBlLmFkZFNsaWRlPWwucHJvdG90eXBlLnNsaWNrQWRkPWZ1bmN0aW9uKGksZSx0KXt2YXIgbz10aGlzO2lmKFwiYm9vbGVhblwiPT10eXBlb2YgZSl0PWUsZT1udWxsO2Vsc2UgaWYoZTwwfHxlPj1vLnNsaWRlQ291bnQpcmV0dXJuITE7by51bmxvYWQoKSxcIm51bWJlclwiPT10eXBlb2YgZT8wPT09ZSYmMD09PW8uJHNsaWRlcy5sZW5ndGg/ZChpKS5hcHBlbmRUbyhvLiRzbGlkZVRyYWNrKTp0P2QoaSkuaW5zZXJ0QmVmb3JlKG8uJHNsaWRlcy5lcShlKSk6ZChpKS5pbnNlcnRBZnRlcihvLiRzbGlkZXMuZXEoZSkpOiEwPT09dD9kKGkpLnByZXBlbmRUbyhvLiRzbGlkZVRyYWNrKTpkKGkpLmFwcGVuZFRvKG8uJHNsaWRlVHJhY2spLG8uJHNsaWRlcz1vLiRzbGlkZVRyYWNrLmNoaWxkcmVuKHRoaXMub3B0aW9ucy5zbGlkZSksby4kc2xpZGVUcmFjay5jaGlsZHJlbih0aGlzLm9wdGlvbnMuc2xpZGUpLmRldGFjaCgpLG8uJHNsaWRlVHJhY2suYXBwZW5kKG8uJHNsaWRlcyksby4kc2xpZGVzLmVhY2goZnVuY3Rpb24oaSxlKXtkKGUpLmF0dHIoXCJkYXRhLXNsaWNrLWluZGV4XCIsaSksZChlKS5hdHRyKFwicm9sZVwiLFwiZ3JvdXBcIiksZChlKS5hdHRyKFwiYXJpYS1sYWJlbFwiLFwic2xpZGUgXCIraSl9KSxvLiRzbGlkZXNDYWNoZT1vLiRzbGlkZXMsby5yZWluaXQoKX0sbC5wcm90b3R5cGUuYW5pbWF0ZUhlaWdodD1mdW5jdGlvbigpe3ZhciBpLGU9dGhpczsxPT09ZS5vcHRpb25zLnNsaWRlc1RvU2hvdyYmITA9PT1lLm9wdGlvbnMuYWRhcHRpdmVIZWlnaHQmJiExPT09ZS5vcHRpb25zLnZlcnRpY2FsJiYoaT1lLiRzbGlkZXMuZXEoZS5jdXJyZW50U2xpZGUpLm91dGVySGVpZ2h0KCEwKSxlLiRsaXN0LmFuaW1hdGUoe2hlaWdodDppfSxlLm9wdGlvbnMuc3BlZWQpKX0sbC5wcm90b3R5cGUuYW5pbWF0ZVNsaWRlPWZ1bmN0aW9uKGksZSl7dmFyIHQ9e30sbz10aGlzO28uYW5pbWF0ZUhlaWdodCgpLCEwPT09by5vcHRpb25zLnJ0bCYmITE9PT1vLm9wdGlvbnMudmVydGljYWwmJihpPS1pKSwhMT09PW8udHJhbnNmb3Jtc0VuYWJsZWQ/ITE9PT1vLm9wdGlvbnMudmVydGljYWw/by4kc2xpZGVUcmFjay5hbmltYXRlKHtsZWZ0Oml9LG8ub3B0aW9ucy5zcGVlZCxvLm9wdGlvbnMuZWFzaW5nLGUpOm8uJHNsaWRlVHJhY2suYW5pbWF0ZSh7dG9wOml9LG8ub3B0aW9ucy5zcGVlZCxvLm9wdGlvbnMuZWFzaW5nLGUpOiExPT09by5jc3NUcmFuc2l0aW9ucz8oITA9PT1vLm9wdGlvbnMucnRsJiYoby5jdXJyZW50TGVmdD0tby5jdXJyZW50TGVmdCksZCh7YW5pbVN0YXJ0Om8uY3VycmVudExlZnR9KS
36745hbmltYXRlKHthbmltU3RhcnQ6aX0se2R1cmF0aW9uOm8ub3B0aW9ucy5zcGVlZCxlYXNpbmc6by5vcHRpb25zLmVhc2luZyxzdGVwOmZ1bmN0aW9uKGkpe2k9TWF0aC5jZWlsKGkpLCExPT09by5vcHRpb25zLnZlcnRpY2FsP3Rbby5hbmltVHlwZV09XCJ0cmFuc2xhdGUoXCIraStcInB4LCAwcHgpXCI6dFtvLmFuaW1UeXBlXT1cInRyYW5zbGF0ZSgwcHgsXCIraStcInB4KVwiLG8uJHNsaWRlVHJhY2suY3NzKHQpfSxjb21wbGV0ZTpmdW5jdGlvbigpe2UmJmUuY2FsbCgpfX0pKTooby5hcHBseVRyYW5zaXRpb24oKSxpPU1hdGguY2VpbChpKSwhMT09PW8ub3B0aW9ucy52ZXJ0aWNhbD90W28uYW5pbVR5cGVdPVwidHJhbnNsYXRlM2QoXCIraStcInB4LCAwcHgsIDBweClcIjp0W28uYW5pbVR5cGVdPVwidHJhbnNsYXRlM2QoMHB4LFwiK2krXCJweCwgMHB4KVwiLG8uJHNsaWRlVHJhY2suY3NzKHQpLGUmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtvLmRpc2FibGVUcmFuc2l0aW9uKCksZS5jYWxsKCl9LG8ub3B0aW9ucy5zcGVlZCkpfSxsLnByb3RvdHlwZS5nZXROYXZUYXJnZXQ9ZnVuY3Rpb24oKXt2YXIgaT10aGlzLm9wdGlvbnMuYXNOYXZGb3I7cmV0dXJuIGkmJm51bGwhPT1pJiYoaT1kKGkpLm5vdCh0aGlzLiRzbGlkZXIpKSxpfSxsLnByb3RvdHlwZS5hc05hdkZvcj1mdW5jdGlvbihlKXt2YXIgaT10aGlzLmdldE5hdlRhcmdldCgpO251bGwhPT1pJiZcIm9iamVjdFwiPT10eXBlb2YgaSYmaS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGk9ZCh0aGlzKS5zbGljayhcImdldFNsaWNrXCIpO2kudW5zbGlja2VkfHxpLnNsaWRlSGFuZGxlcihlLCEwKX0pfSxsLnByb3RvdHlwZS5hcHBseVRyYW5zaXRpb249ZnVuY3Rpb24oaSl7dmFyIGU9dGhpcyx0PXt9OyExPT09ZS5vcHRpb25zLmZhZGU/dFtlLnRyYW5zaXRpb25UeXBlXT1lLnRyYW5zZm9ybVR5cGUrXCIgXCIrZS5vcHRpb25zLnNwZWVkK1wibXMgXCIrZS5vcHRpb25zLmNzc0Vhc2U6dFtlLnRyYW5zaXRpb25UeXBlXT1cIm9wYWNpdHkgXCIrZS5vcHRpb25zLnNwZWVkK1wibXMgXCIrZS5vcHRpb25zLmNzc0Vhc2UsITE9PT1lLm9wdGlvbnMuZmFkZT9lLiRzbGlkZVRyYWNrLmNzcyh0KTplLiRzbGlkZXMuZXEoaSkuY3NzKHQpfSxsLnByb3RvdHlwZS5hdXRvUGxheT1mdW5jdGlvbigpe3ZhciBpPXRoaXM7aS5hdXRvUGxheUNsZWFyKCksaS5zbGlkZUNvdW50Pmkub3B0aW9ucy5zbGlkZXNUb1Nob3cmJihpLmF1dG9QbGF5VGltZXI9c2V0SW50ZXJ2YWwoaS5hdXRvUGxheUl0ZXJhdG9yLGkub3B0aW9ucy5hdXRvcGxheVNwZWVkKSl9LGwucHJvdG90eXBlLmF1dG9QbGF5Q2xlYXI9ZnVuY3Rpb24oKXt0aGlzLmF1dG9QbGF5VGltZXImJmNsZWFySW50ZXJ2YWwodGhpcy5hdXRvUGxheVRpbWVyKX0sbC5wcm90b3R5cGUuYXV0b1BsYXlJdGVyYXRvcj1mdW5jdGlvbigpe3ZhciBpPXRoaXMsZT1pLmN1cnJlbnRTbGlkZStpLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGw7aS5wYXVzZWR8fGkuaW50ZXJydXB0ZWR8fGkuZm9jdXNzZWR8fCghMT09PWkub3B0aW9ucy5pbmZpbml0ZSYmKDE9PT1pLmRpcmVjdGlvbiYmaS5jdXJyZW50U2xpZGUrMT09PWkuc2xpZGVDb3VudC0xP2kuZGlyZWN0aW9uPTA6MD09PWkuZGlyZWN0aW9uJiYoZT1pLmN1cnJlbnRTbGlkZS1pLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGwsaS5jdXJyZW50U2xpZGUtMT09MCYmKGkuZGlyZWN0aW9uPTEpKSksaS5zbGlkZUhhbmRsZXIoZSkpfSxsLnByb3RvdHlwZS5hdXRvUGxheVRvZ2dsZUhhbmRsZXI9ZnVuY3Rpb24oKXt2YXIgaT10aGlzO2kucGF1c2VkPyhpLiRwbGF5SWNvbi5jc3MoXCJkaXNwbGF5XCIsXCJub25lXCIpLGkuJHBhdXNlSWNvbi5jc3MoXCJkaXNwbGF5XCIsXCJpbmxpbmVcIiksaS4kcGF1c2VCdXR0b24uZmluZChcIi5zbGljay1wbGF5LXRleHRcIikuYXR0cihcInN0eWxlXCIsXCJkaXNwbGF5OiBub25lXCIpLGkuJHBhdXNlQnV0dG9uLmZpbmQoXCIuc2xpY2stcGF1c2UtdGV4dFwiKS5yZW1vdmVBdHRyKFwic3R5bGVcIiksaS5zbGlja1BsYXkoKSk6KGkuJHBsYXlJY29uLmNzcyhcImRpc3BsYXlcIixcImlubGluZVwiKSxpLiRwYXVzZUljb24uY3NzKFwiZGlzcGxheVwiLFwibm9uZVwiKSxpLiRwYXVzZUJ1dHRvbi5maW5kKFwiLnNsaWNrLXBsYXktdGV4dFwiKS5yZW1vdmVBdHRyKFwic3R5bGVcIiksaS4kcGF1c2VCdXR0b24uZmluZChcIi5zbGljay1wYXVzZS10ZXh0XCIpLmF0dHIoXCJzdHlsZVwiLFwiZGlzcGxheTogbm9uZVwiKSxpLnNsaWNrUGF1c2UoKSl9LGwucHJvdG90eXBlLmJ1aWxkQXJyb3dzPWZ1bmN0aW9uKCl7dmFyIGk9dGhpcztpZighMD09PWkub3B0aW9ucy5hcnJvd3MpaWYoaS4kcHJldkFycm93PWQoaS5vcHRpb25zLnByZXZBcnJvdykuYWRkQ2xhc3MoXCJzbGljay1hcnJvd1wiKSxpLiRuZXh0QXJyb3c9ZChpLm9wdGlvbnMubmV4dEFycm93KS5hZGRDbGFzcyhcInNsaWNrLWFycm93XCIpLGkuc2xpZGVDb3VudD5pLm9wdGlvbnMuc2xpZGVzVG9TaG93KXtpZihpLmh0bWxFeHByLnRlc3QoaS5vcHRpb25zLnByZXZBcnJvdykpaWYobnVsbCE9aS5vcHRpb25zLmFycm93c1BsYWNlbWVudClzd2l0Y2goaS5vcHRpb25zLmFycm93c1BsYWNlbWVudCl7Y2FzZVwiYmVmb3JlU2xpZGVzXCI6Y2FzZVwic3BsaXRcIjpjb25zb2xlLmxvZyhcInRlc3RcIiksaS4kcHJldkFycm93LnByZXBlbmRUbyhpLm9wdGlvbnMuYXBwZW5kQXJyb3dzKTticmVhaztjYXNlXCJhZnRlclNsaWRlc1wiOmkuJHByZXZBcnJvdy5hcHBlbmRUbyhpLm9wdGlvbnMuYXBwZW5kQXJyb3dzKX1lbHNlIGkuJHByZXZBcnJvdy5wcmVwZW5kVG8oaS5vcHRpb25zLmFwcGVuZEFycm93cyk7aWYoaS5odG1sRXhwci50ZXN0KGkub3B0aW9ucy5uZXh0QXJyb3cpKWlmKG51bGwhPWkub3B0aW9ucy5hcnJvd3NQbGFjZW1lbnQpc3dpdGNoKGkub3B0aW9ucy5hcnJvd3NQbGFjZW1lbnQpe2Nhc2VcImJlZm9yZVNsaWRlc1wiOmNvbnNvbGUubG9nKFwidGVzdDJcIiksaS4kcHJldkFycm93LmFmdGVyKGkuJG5leHRBcnJvdyk7YnJlYWs7Y2FzZVwiYWZ0ZXJTbGlkZXNcIjpjYXNlXCJzcGxpdFwiOmkuJG5leHRBcnJvdy5hcHBlbmRUbyhpLm9wdGlvbnMuYXBwZW5kQXJyb3dzKX1lbHNlIGkuJG5leHRBcnJvdy5hcHBlbmRUbyhpLm9wdGlvbnMuYXBwZW5kQXJyb3dzKTshMCE9PWkub3B0aW9ucy5pbmZpbml0ZSYmaS4kcHJldkFycm93LmFkZENsYXNzKFwic2xpY2stZGlzYWJsZWRcIikucHJvcChcImRpc2FibGVkXCIsITApfWVsc2UgaS4kcHJldkFycm93LmFkZChpLiRuZXh0QXJyb3cpLmFkZENsYXNzKFwic2xpY2staGlkZGVuXCIpLnByb3AoXCJkaXNhYmxlZFwiLCEwKX0sbC5wcm90b3R5cGUuYnVpbGREb3RzPWZ1bmN0aW9uKCl7dmFyIGksZSx0PXRoaXM7aWYoITA9PT10Lm9wdGlvbnMuZG90cyYmdC5zbGlkZUNvdW50PnQub3B0aW9ucy5zbGlkZXNUb1Nob3cpe2Zvcih0LiRzbGlkZXIuYWRkQ2xhc3MoXCJzbGljay1kb3R0ZWRcIiksZT1kKFwiPHVsIC8+XCIpLmFkZENsYXNzKHQub3B0aW9ucy5kb3RzQ2xhc3MpLGk9MDtpPD10LmdldERvdENvdW50KCk7aSs9MSllLmFwcGVuZChkKFwiPGxpIC8+XCIpLmFwcGVuZCh0Lm9wdGlvbnMuY3VzdG9tUGFnaW5nLmNhbGwodGhpcyx0LGkpKSk7dC4kZG90cz1lLmFwcGVuZFRvKHQub3B0aW9ucy5hcHBlbmREb3RzKSx0LiRkb3RzLmZpbmQoXCJsaVwiKS5maXJzdCgpLmFkZENsYXNzKFwic2xpY2stYWN0aXZlXCIpfX0sbC5wcm90b3R5cGUuYnVpbGRPdXQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3QuJHNsaWRlcz10LiRzbGlkZXIuY2hpbGRyZW4odC5vcHRpb25zLnNsaWRlK1wiOm5vdCguc2xpY2stY2xvbmVkKVwiKS5hZGRDbGFzcyhcInNsaWNrLXNsaWRlXCIpLHQuc2xpZGVDb3VudD10LiRzbGlkZXMubGVuZ3RoLHQuJHNsaWRlcy5lYWNoKGZ1bmN0aW9uKGksZSl7ZChlKS5hdHRyKFwiZGF0YS1zbGljay1pbmRleFwiLGkpLmRhdGEoXCJvcmlnaW5hbFN0eWxpbmdcIixkKGUpLmF0dHIoXCJzdHlsZVwiKXx8XCJcIiksdC5vcHRpb25zLnVzZUdyb3VwUm9sZSYmZChlKS5hdHRyKFwicm9sZVwiLFwiZ3JvdXBcIikuYXR0cihcImFyaWEtbGFiZWxcIixcInNsaWRlIFwiKyhpKzEpKX0pLHQuJHNsaWRlci5hZGRDbGFzcyhcInNsaWNrLXNsaWRlclwiKSx0LiRzbGlkZXIuYXR0cihcInJvbGVcIixcInJlZ2lvblwiKSx0LiRzbGlkZXIuYXR0cihcImFyaWEtbGFiZWxcIix0Lm9wdGlvbnMucmVnaW9uTGFiZWwpLHQuJHNsaWRlVHJhY2s9MD09PXQuc2xpZGVDb3VudD9kKCc8ZGl2IGNsYXNzPVwic2xpY2stdHJhY2tcIi8+JykuYXBwZW5kVG8odC4kc2xpZGVyKTp0LiRzbGlkZXMud3JhcEFsbCgnPGRpdiBjbGFzcz1cInNsaWNrLXRyYWNrXCIvPicpLnBhcmVudCgpLHQuJGxpc3Q9dC4kc2xpZGVUcmFjay53cmFwKCc8ZGl2IGNsYXNzPVwic2xpY2stbGlzdFwiLz4nKS5wYXJlbnQoKSx0LiRzbGlkZVRyYWNrLmNzcyhcIm9wYWNpdHlcIiwwKSwhMCE9PXQub3B0aW9ucy5jZW50ZXJNb2RlJiYhMCE9PXQub3B0aW9ucy5zd2lwZVRvU2xpZGV8fCh0Lm9wdGlvbnMuc2xpZGVzVG9TY3JvbGw9MSksZChcImltZ1tkYXRhLWxhenldXCIsdC4kc2xpZGVyKS5ub3QoXCJbc3JjXVwiKS5hZGRDbGFzcyhcInNsaWNrLWxvYWRpbmdcIiksdC5zZXR1cEluZmluaXRlKCksdC5idWlsZEFycm93cygpLHQuYnVpbGREb3RzKCksdC51cGRhdGVEb3RzKCksdC5zZXRTbGlkZUNsYXNzZXMoXCJudW1iZXJcIj09dHlwZW9mIHQuY3VycmVudFNsaWRlP3QuY3VycmVudFNsaWRlOjApLCEwPT09dC5vcHRpb25zLmRyYWdnYWJsZSYmdC4kbGlzdC5hZGRDbGFzcyhcImRyYWdnYWJsZVwiKSx0Lm9wdGlvbnMuYXV0b3BsYXkmJnQub3B0aW9ucy51c2VBdXRvcGxheVRvZ2dsZUJ1dHRvbiYmKHQuJHBhdXNlSWNvbj1kKHQub3B0aW9ucy5wYXVzZUljb24pLmF0dHIoXCJhcmlhLWhpZGRlblwiLCEwKSx0LiRwbGF5SWNvbj1kKHQub3B0aW9ucy5wbGF5SWNvbikuYXR0cihcImFyaWEtaGlkZGVuXCIsITApLHQuJHBhdXNlQnV0dG9uPWQoJzxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwic2xpY2stYXV0b3BsYXktdG9nZ2xlLWJ1dHRvblwiPicpLHQuJHBhdXNlQnV0dG9uLmFwcGVuZCh0LiRwYXVzZUljb24pLHQuJHBhdXNlQnV0dG9uLmFwcGVuZCh0LiRwbGF5SWNvbi5jc3MoXCJkaXNwbGF5XCIsXCJub25lXCIpKSx0LiRwYXVzZUJ1dHRvbi5hcHBlbmQoZCgnPHNwYW4gY2xhc3M9XCJzbGljay1wYXVzZS10ZXh0IHNsaWNrLXNyLW9ubHlcIj5QYXVzZTwvc3Bhbj4nKSksdC4kcGF1c2VCdXR0b24uYXBwZW5kKGQoJzxzcGFuIGNsYXNzPVwic2xpY2stcGxheS10ZXh0IHNsaWNrLXNyLW9ubHlcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj5QbGF5PC9zcGFuPicpKSx0LiRwYXVzZUJ1dHRvbi5wcmVwZW5kVG8odC4kc2xpZGVyKSksbnVsbCE9dC5vcHRpb25zLmluc3RydWN0aW9uc1RleHQmJlwiXCIhPXQub3B0aW9ucy5pbnN0cnVjdGlvbnNUZXh0JiYodC4kaW5zdHJ1Y3Rpb25zVGV4dD1kKCc8cCBjbGFzcz1cInNsaWNrLWluc3RydWN0aW9ucyBzbGljay1zci1vbmx5XCI+Jyt0Lm9wdGlvbnMuaW5zdHJ1Y3Rpb25zVGV4dCtcIjwvcD5cIiksdC4kaW5zdHJ1Y3Rpb25zVGV4dC5wcmVwZW5kVG8odC4kc2xpZGVyKSl9LGwucHJvdG90eXBlLmJ1aWxkUm93cz1mdW5jdGlvbigpe3ZhciBpLGUsdCxvPXR
3674oaXMscz1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksbj1vLiRzbGlkZXIuY2hpbGRyZW4oKTtpZigwPG8ub3B0aW9ucy5yb3dzKXtmb3IodD1vLm9wdGlvbnMuc2xpZGVzUGVyUm93Km8ub3B0aW9ucy5yb3dzLGU9TWF0aC5jZWlsKG4ubGVuZ3RoL3QpLGk9MDtpPGU7aSsrKXtmb3IodmFyIGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSxyPTA7cjxvLm9wdGlvbnMucm93cztyKyspe2Zvcih2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLGQ9MDtkPG8ub3B0aW9ucy5zbGlkZXNQZXJSb3c7ZCsrKXt2YXIgcD1pKnQrKHIqby5vcHRpb25zLnNsaWRlc1BlclJvdytkKTtuLmdldChwKSYmYS5hcHBlbmRDaGlsZChuLmdldChwKSl9bC5hcHBlbmRDaGlsZChhKX1zLmFwcGVuZENoaWxkKGwpfW8uJHNsaWRlci5lbXB0eSgpLmFwcGVuZChzKSxvLiRzbGlkZXIuY2hpbGRyZW4oKS5jaGlsZHJlbigpLmNoaWxkcmVuKCkuY3NzKHt3aWR0aDoxMDAvby5vcHRpb25zLnNsaWRlc1BlclJvdytcIiVcIixkaXNwbGF5OlwiaW5saW5lLWJsb2NrXCJ9KX19LGwucHJvdG90eXBlLmNoZWNrUmVzcG9uc2l2ZT1mdW5jdGlvbihpLGUpe3ZhciB0LG8scyxuPXRoaXMsbD0hMSxyPW4uJHNsaWRlci53aWR0aCgpLGE9d2luZG93LmlubmVyV2lkdGh8fGQod2luZG93KS53aWR0aCgpO2lmKFwid2luZG93XCI9PT1uLnJlc3BvbmRUbz9zPWE6XCJzbGlkZXJcIj09PW4ucmVzcG9uZFRvP3M9cjpcIm1pblwiPT09bi5yZXNwb25kVG8mJihzPU1hdGgubWluKGEscikpLG4ub3B0aW9ucy5yZXNwb25zaXZlJiZuLm9wdGlvbnMucmVzcG9uc2l2ZS5sZW5ndGgmJm51bGwhPT1uLm9wdGlvbnMucmVzcG9uc2l2ZSl7Zm9yKHQgaW4gbz1udWxsLG4uYnJlYWtwb2ludHMpbi5icmVha3BvaW50cy5oYXNPd25Qcm9wZXJ0eSh0KSYmKCExPT09bi5vcmlnaW5hbFNldHRpbmdzLm1vYmlsZUZpcnN0P3M8bi5icmVha3BvaW50c1t0XSYmKG89bi5icmVha3BvaW50c1t0XSk6cz5uLmJyZWFrcG9pbnRzW3RdJiYobz1uLmJyZWFrcG9pbnRzW3RdKSk7bnVsbCE9PW8/bnVsbCE9PW4uYWN0aXZlQnJlYWtwb2ludCYmbz09PW4uYWN0aXZlQnJlYWtwb2ludCYmIWV8fChuLmFjdGl2ZUJyZWFrcG9pbnQ9byxcInVuc2xpY2tcIj09PW4uYnJlYWtwb2ludFNldHRpbmdzW29dP24udW5zbGljayhvKToobi5vcHRpb25zPWQuZXh0ZW5kKHt9LG4ub3JpZ2luYWxTZXR0aW5ncyxuLmJyZWFrcG9pbnRTZXR0aW5nc1tvXSksITA9PT1pJiYobi5jdXJyZW50U2xpZGU9bi5vcHRpb25zLmluaXRpYWxTbGlkZSksbi5yZWZyZXNoKGkpKSxsPW8pOm51bGwhPT1uLmFjdGl2ZUJyZWFrcG9pbnQmJihuLmFjdGl2ZUJyZWFrcG9pbnQ9bnVsbCxuLm9wdGlvbnM9bi5vcmlnaW5hbFNldHRpbmdzLCEwPT09aSYmKG4uY3VycmVudFNsaWRlPW4ub3B0aW9ucy5pbml0aWFsU2xpZGUpLG4ucmVmcmVzaChpKSxsPW8pLGl8fCExPT09bHx8bi4kc2xpZGVyLnRyaWdnZXIoXCJicmVha3BvaW50XCIsW24sbF0pfX0sbC5wcm90b3R5cGUuY2hhbmdlU2xpZGU9ZnVuY3Rpb24oaSxlKXt2YXIgdCxvLHM9dGhpcyxuPWQoaS5jdXJyZW50VGFyZ2V0KTtzd2l0Y2gobi5pcyhcImFcIikmJmkucHJldmVudERlZmF1bHQoKSxuLmlzKFwibGlcIil8fChuPW4uY2xvc2VzdChcImxpXCIpKSx0PXMuc2xpZGVDb3VudCVzLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGwhPTA/MDoocy5zbGlkZUNvdW50LXMuY3VycmVudFNsaWRlKSVzLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGwsaS5kYXRhLm1lc3NhZ2Upe2Nhc2VcInByZXZpb3VzXCI6bz0wPT10P3Mub3B0aW9ucy5zbGlkZXNUb1Njcm9sbDpzLm9wdGlvbnMuc2xpZGVzVG9TaG93LXQscy5zbGlkZUNvdW50PnMub3B0aW9ucy5zbGlkZXNUb1Nob3cmJnMuc2xpZGVIYW5kbGVyKHMuY3VycmVudFNsaWRlLW8sITEsZSk7YnJlYWs7Y2FzZVwibmV4dFwiOm89MD09dD9zLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGw6dCxzLnNsaWRlQ291bnQ+cy5vcHRpb25zLnNsaWRlc1RvU2hvdyYmcy5zbGlkZUhhbmRsZXIocy5jdXJyZW50U2xpZGUrbywhMSxlKTticmVhaztjYXNlXCJpbmRleFwiOnZhciBsPTA9PT1pLmRhdGEuaW5kZXg/MDppLmRhdGEuaW5kZXh8fG4uaW5kZXgoKSpzLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGw7cy5zbGlkZUhhbmRsZXIocy5jaGVja05hdmlnYWJsZShsKSwhMSxlKSxuLmNoaWxkcmVuKCkudHJpZ2dlcihcImZvY3VzXCIpO2JyZWFrO2RlZmF1bHQ6cmV0dXJufX0sbC5wcm90b3R5cGUuY2hlY2tOYXZpZ2FibGU9ZnVuY3Rpb24oaSl7dmFyIGU9dGhpcy5nZXROYXZpZ2FibGVJbmRleGVzKCksdD0wO2lmKGk+ZVtlLmxlbmd0aC0xXSlpPWVbZS5sZW5ndGgtMV07ZWxzZSBmb3IodmFyIG8gaW4gZSl7aWYoaTxlW29dKXtpPXQ7YnJlYWt9dD1lW29dfXJldHVybiBpfSxsLnByb3RvdHlwZS5jbGVhblVwRXZlbnRzPWZ1bmN0aW9uKCl7dmFyIGk9dGhpcztpLm9wdGlvbnMuYXV0b3BsYXkmJmkub3B0aW9ucy51c2VBdXRvcGxheVRvZ2dsZUJ1dHRvbiYmaS4kcGF1c2VCdXR0b24ub2ZmKFwiY2xpY2suc2xpY2tcIixpLmF1dG9QbGF5VG9nZ2xlSGFuZGxlciksaS5vcHRpb25zLmRvdHMmJm51bGwhPT1pLiRkb3RzJiZkKFwibGlcIixpLiRkb3RzKS5vZmYoXCJjbGljay5zbGlja1wiLGkuY2hhbmdlU2xpZGUpLm9mZihcIm1vdXNlZW50ZXIuc2xpY2tcIixkLnByb3h5KGkuaW50ZXJydXB0LGksITApKS5vZmYoXCJtb3VzZWxlYXZlLnNsaWNrXCIsZC5wcm94eShpLmludGVycnVwdCxpLCExKSksaS4kc2xpZGVyLm9mZihcImZvY3VzLnNsaWNrIGJsdXIuc2xpY2tcIiksITA9PT1pLm9wdGlvbnMuYXJyb3dzJiZpLnNsaWRlQ291bnQ+aS5vcHRpb25zLnNsaWRlc1RvU2hvdyYmKGkuJHByZXZBcnJvdyYmaS4kcHJldkFycm93Lm9mZihcImNsaWNrLnNsaWNrXCIsaS5jaGFuZ2VTbGlkZSksaS4kbmV4dEFycm93JiZpLiRuZXh0QXJyb3cub2ZmKFwiY2xpY2suc2xpY2tcIixpLmNoYW5nZVNsaWRlKSksaS4kbGlzdC5vZmYoXCJ0b3VjaHN0YXJ0LnNsaWNrIG1vdXNlZG93bi5zbGlja1wiLGkuc3dpcGVIYW5kbGVyKSxpLiRsaXN0Lm9mZihcInRvdWNobW92ZS5zbGljayBtb3VzZW1vdmUuc2xpY2tcIixpLnN3aXBlSGFuZGxlciksaS4kbGlzdC5vZmYoXCJ0b3VjaGVuZC5zbGljayBtb3VzZXVwLnNsaWNrXCIsaS5zd2lwZUhhbmRsZXIpLGkuJGxpc3Qub2ZmKFwidG91Y2hjYW5jZWwuc2xpY2sgbW91c2VsZWF2ZS5zbGlja1wiLGkuc3dpcGVIYW5kbGVyKSxpLiRsaXN0Lm9mZihcImNsaWNrLnNsaWNrXCIsaS5jbGlja0hhbmRsZXIpLGQoZG9jdW1lbnQpLm9mZihpLnZpc2liaWxpdHlDaGFuZ2UsaS52aXNpYmlsaXR5KSxpLmNsZWFuVXBTbGlkZUV2ZW50cygpLGQod2luZG93KS5vZmYoXCJvcmllbnRhdGlvbmNoYW5nZS5zbGljay
36745zbGljay1cIitpLmluc3RhbmNlVWlkLGkub3JpZW50YXRpb25DaGFuZ2UpLGQod2luZG93KS5vZmYoXCJyZXNpemUuc2xpY2suc2xpY2stXCIraS5pbnN0YW5jZVVpZCxpLnJlc2l6ZSksZChcIltkcmFnZ2FibGUhPXRydWVdXCIsaS4kc2xpZGVUcmFjaykub2ZmKFwiZHJhZ3N0YXJ0XCIsaS5wcmV2ZW50RGVmYXVsdCksZCh3aW5kb3cpLm9mZihcImxvYWQuc2xpY2suc2xpY2stXCIraS5pbnN0YW5jZVVpZCxpLnNldFBvc2l0aW9uKX0sbC5wcm90b3R5cGUuY2xlYW5VcFNsaWRlRXZlbnRzPWZ1bmN0aW9uKCl7dmFyIGk9dGhpcztpLiRsaXN0Lm9mZihcIm1vdXNlZW50ZXIuc2xpY2tcIixkLnByb3h5KGkuaW50ZXJydXB0LGksITApKSxpLiRsaXN0Lm9mZihcIm1vdXNlbGVhdmUuc2xpY2tcIixkLnByb3h5KGkuaW50ZXJydXB0LGksITEpKX0sbC5wcm90b3R5cGUuY2xlYW5VcFJvd3M9ZnVuY3Rpb24oKXt2YXIgaTswPHRoaXMub3B0aW9ucy5yb3dzJiYoKGk9dGhpcy4kc2xpZGVzLmNoaWxkcmVuKCkuY2hpbGRyZW4oKSkucmVtb3ZlQXR0cihcInN0eWxlXCIpLHRoaXMuJHNsaWRlci5lbXB0eSgpLmFwcGVuZChpKSl9LGwucHJvdG90eXBlLmNsaWNrSGFuZGxlcj1mdW5jdGlvbihpKXshMT09PXRoaXMuc2hvdWxkQ2xpY2smJihpLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLGkuc3RvcFByb3BhZ2F0aW9uKCksaS5wcmV2ZW50RGVmYXVsdCgpKX0sbC5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbihpKXt2YXIgZT10aGlzO2UuYXV0b1BsYXlDbGVhcigpLGUudG91Y2hPYmplY3Q9e30sZS5jbGVhblVwRXZlbnRzKCksZChcIi5zbGljay1jbG9uZWRcIixlLiRzbGlkZXIpLmRldGFjaCgpLGUub3B0aW9ucy5hdXRvcGxheSYmZS5vcHRpb25zLnVzZUF1dG9wbGF5VG9nZ2xlQnV0dG9uJiZlLiRwYXVzZUJ1dHRvbi5yZW1vdmUoKSxlLiRkb3RzJiZlLiRkb3RzLnJlbW92ZSgpLGUuJHByZXZBcnJvdyYmZS4kcHJldkFycm93Lmxlbmd0aCYmKGUuJHByZXZBcnJvdy5yZW1vdmVDbGFzcyhcInNsaWNrLWRpc2FibGVkIHNsaWNrLWFycm93IHNsaWNrLWhpZGRlblwiKS5wcm9wKFwiZGlzYWJsZWRcIiwhMSkuY3NzKFwiZGlzcGxheVwiLFwiXCIpLGUuaHRtbEV4cHIudGVzdChlLm9wdGlvbnMucHJldkFycm93KSYmZS4kcHJldkFycm93LnJlbW92ZSgpKSxlLiRuZXh0QXJyb3cmJmUuJG5leHRBcnJvdy5sZW5ndGgmJihlLiRuZXh0QXJyb3cucmVtb3ZlQ2xhc3MoXCJzbGljay1kaXNhYmxlZCBzbGljay1hcnJvdyBzbGljay1oaWRkZW5cIikucHJvcChcImRpc2FibGVkXCIsITEpLmNzcyhcImRpc3BsYXlcIixcIlwiKSxlLmh0bWxFeHByLnRlc3QoZS5vcHRpb25zLm5leHRBcnJvdykmJmUuJG5leHRBcnJvdy5yZW1vdmUoKSksZS4kc2xpZGVzJiYoZS4kc2xpZGVzLnJlbW92ZUNsYXNzKFwic2xpY2stc2xpZGUgc2xpY2stYWN0aXZlIHNsaWNrLWNlbnRlciBzbGljay12aXNpYmxlIHNsaWNrLWN1cnJlbnRcIikucmVtb3ZlQXR0cihcImFyaWEtaGlkZGVuXCIpLnJlbW92ZUF0dHIoXCJkYXRhLXNsaWNrLWluZGV4XCIpLmVhY2goZnVuY3Rpb24oKXtkKHRoaXMpLmF0dHIoXCJzdHlsZVwiLGQodGhpcykuZGF0YShcIm9yaWdpbmFsU3R5bGluZ1wiKSl9KSxlLiRzbGlkZVRyYWNrLmNoaWxkcmVuKHRoaXMub3B0aW9ucy5zbGlkZSkuZGV0YWNoKCksZS4kc2xpZGVUcmFjay5kZXRhY2goKSxlLiRsaXN0LmRldGFjaCgpLGUuJHNsaWRlci5hcHBlbmQoZS4kc2xpZGVzKSksZS5jbGVhblVwUm93cygpLGUuJHNsaWRlci5yZW1vdmVDbGFzcyhcInNsaWNrLXNsaWRlclwiKSxlLiRzbGlkZXIucmVtb3ZlQ2xhc3MoXCJzbGljay1pbml0aWFsaXplZFwiKSxlLiRzbGlkZXIucmVtb3ZlQ2xhc3MoXCJzbGljay1kb3R0ZWRcIiksZS51bnNsaWNrZWQ9ITAsaXx8ZS4kc2xpZGVyLnRyaWdnZXIoXCJkZXN0cm95XCIsW2VdKX0sbC5wcm90b3R5cGUuZGlzYWJsZVRyYW5zaXRpb249ZnVuY3Rpb24oaSl7dmFyIGU9e307ZVt0aGlzLnRyYW5zaXRpb25UeXBlXT1cIlwiLCExPT09dGhpcy5vcHRpb25zLmZhZGU/dGhpcy4kc2xpZGVUcmFjay5jc3MoZSk6dGhpcy4kc2xpZGVzLmVxKGkpLmNzcyhlKX0sbC5wcm90b3R5cGUuZmFkZVNsaWRlPWZ1bmN0aW9uKGksZSl7dmFyIHQ9dGhpczshMT09PXQuY3NzVHJhbnNpdGlvbnM/KHQuJHNsaWRlcy5lcShpKS5jc3Moe3pJbmRleDp0Lm9wdGlvbnMuekluZGV4fSksdC4kc2xpZGVzLmVxKGkpLmFuaW1hdGUoe29wYWNpdHk6MX0sdC5vcHRpb25zLnNwZWVkLHQub3B0aW9ucy5lYXNpbmcsZSkpOih0LmFwcGx5VHJhbnNpdGlvbihpKSx0LiRzbGlkZXMuZXEoaSkuY3NzKHtvcGFjaXR5OjEsekluZGV4OnQub3B0aW9ucy56SW5kZXh9KSxlJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5kaXNhYmxlVHJhbnNpdGlvbihpKSxlLmNhbGwoKX0sdC5vcHRpb25zLnNwZWVkKSl9LGwucHJvdG90eXBlLmZhZGVTbGlkZU91dD1mdW5jdGlvbihpKXt2YXIgZT10aGlzOyExPT09ZS5jc3NUcmFuc2l0aW9ucz9lLiRzbGlkZXMuZXEoaSkuYW5pbWF0ZSh7b3BhY2l0eTowLHpJbmRleDplLm9wdGlvbnMuekluZGV4LTJ9LGUub3B0aW9ucy5zcGVlZCxlLm9wdGlvbnMuZWFzaW5nKTooZS5hcHBseVRyYW5zaXRpb24oaSksZS4kc2xpZGVzLmVxKGkpLmNzcyh7b3BhY2l0eTowLHpJbmRleDplLm9wdGlvbnMuekluZGV4LTJ9KSl9LGwucHJvdG90eXBlLmZpbHRlclNsaWRlcz1sLnByb3RvdHlwZS5zbGlja0ZpbHRlcj1mdW5jdGlvbihpKXt2YXIgZT10aGlzO251bGwhPT1pJiYoZS4kc2xpZGVzQ2FjaGU9ZS4kc2xpZGVzLGUudW5sb2FkKCksZS4kc2xpZGVUcmFjay5jaGlsZHJlbih0aGlzLm9wdGlvbnMuc2xpZGUpLmRldGFjaCgpLGUuJHNsaWRlc0NhY2hlLmZpbHRlcihpKS5hcHBlbmRUbyhlLiRzbGlkZVRyYWNrKSxlLnJlaW5pdCgpKX0sbC5wcm90b3R5cGUuZm9jdXNIYW5kbGVyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0LiRzbGlkZXIub2ZmKFwiZm9jdXMuc2xpY2sgYmx1ci5zbGlja1wiKS5vbihcImZvY3VzLnNsaWNrXCIsXCIqXCIsZnVuY3Rpb24oaSl7dmFyIGU9ZCh0aGlzKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5vcHRpb25zLnBhdXNlT25Gb2N1cyYmZS5pcyhcIjpmb2N1c1wiKSYmKHQuZm9jdXNzZWQ9ITAsdC5hdXRvUGxheSgpKX0sMCl9KS5vbihcImJsdXIuc2xpY2tcIixcIipcIixmdW5jdGlvbihpKXtkKHRoaXMpO3Qub3B0aW9ucy5wYXVzZU9uRm9jdXMmJih0LmZvY3Vzc2VkPSExLHQuYXV0b1BsYXkoKSl9KX0sbC5wcm90b3R5cGUuZ2V0Q3VycmVudD1sLnByb3RvdHlwZS5zbGlja0N1cnJlbnRTbGlkZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRTbGlkZX0sbC5wcm90b3R5cGUuZ2V0RG90Q291bnQ9ZnVuY3Rpb24oKXt2YXIgaT10aGlzLGU9MCx0PTAsbz0wO2lmKCEwPT09aS5vcHRpb25zLmluZmluaXRlKWlmKGkuc2xpZGVDb3VudDw9aS5vcHRpb25zLnNsaWRlc1RvU2hvdykrK287ZWxzZSBmb3IoO2U8aS5zbGlkZUNvdW50OykrK28sZT10K2kub3B0aW9ucy5zbGlkZXNUb1Njcm9sbCx0Kz1pLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGw8PWkub3B0aW9ucy5zbGlkZXNUb1Nob3c/aS5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsOmkub3B0aW9ucy5zbGlkZXNUb1Nob3c7ZWxzZSBpZighMD09PWkub3B0aW9ucy5jZW50ZXJNb2RlKW89aS5zbGlkZUNvdW50O2Vsc2UgaWYoaS5vcHRpb25zLmFzTmF2Rm9yKWZvcig7ZTxpLnNsaWRlQ291bnQ7KSsrbyxlPXQraS5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsLHQrPWkub3B0aW9ucy5zbGlkZXNUb1Njcm9sbDw9aS5vcHRpb25zLnNsaWRlc1RvU2hvdz9pLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGw6aS5vcHRpb25zLnNsaWRlc1RvU2hvdztlbHNlIG89MStNYXRoLmNlaWwoKGkuc2xpZGVDb3VudC1pLm9wdGlvbnMuc2xpZGVzVG9TaG93KS9pLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGwpO3JldHVybiBvLTF9LGwucHJvdG90eXBlLmdldExlZnQ9ZnVuY3Rpb24oaSl7dmFyIGUsdCxvLHMsbj10aGlzLGw9MDtyZXR1cm4gbi5zbGlkZU9mZnNldD0wLHQ9bi4kc2xpZGVzLmZpcnN0KCkub3V0ZXJIZWlnaHQoITApLCEwPT09bi5vcHRpb25zLmluZmluaXRlPyhuLnNsaWRlQ291bnQ+bi5vcHRpb25zLnNsaWRlc1RvU2hvdyYmKG4uc2xpZGVPZmZzZXQ9bi5zbGlkZVdpZHRoKm4ub3B0aW9ucy5zbGlkZXNUb1Nob3cqLTEscz0tMSwhMD09PW4ub3B0aW9ucy52ZXJ0aWNhbCYmITA9PT1uLm9wdGlvbnMuY2VudGVyTW9kZSYmKDI9PT1uLm9wdGlvbnMuc2xpZGVzVG9TaG93P3M9LTEuNToxPT09bi5vcHRpb25zLnNsaWRlc1RvU2hvdyYmKHM9LTIpKSxsPXQqbi5vcHRpb25zLnNsaWRlc1RvU2hvdypzKSxuLnNsaWRlQ291bnQlbi5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsIT0wJiZpK24ub3B0aW9ucy5zbGlkZXNUb1Njcm9sbD5uLnNsaWRlQ291bnQmJm4uc2xpZGVDb3VudD5uLm9wdGlvbnMuc2xpZGVzVG9TaG93JiYobD1pPm4uc2xpZGVDb3VudD8obi5zbGlkZU9mZnNldD0obi5vcHRpb25zLnNsaWRlc1RvU2hvdy0oaS1uLnNsaWRlQ291bnQpKSpuLnNsaWRlV2lkdGgqLTEsKG4ub3B0aW9ucy5zbGlkZXNUb1Nob3ctKGktbi5zbGlkZUNvdW50KSkqdCotMSk6KG4uc2xpZGVPZmZzZXQ9bi5zbGlkZUNvdW50JW4ub3B0aW9ucy5zbGlkZXNUb1Njcm9sbCpuLnNsaWRlV2lkdGgqLTEsbi5zbGlkZUNvdW50JW4ub3B0aW9ucy5zbGlkZXNUb1Njcm9sbCp0Ki0xKSkpOmkrbi5vcHRpb25zLnNsaWRlc1RvU2hvdz5uLnNsaWRlQ291bnQmJihuLnNsaWRlT2Zmc2V0PShpK24ub3B0aW9ucy5zbGlkZXNUb1Nob3ctbi5zbGlkZUNvdW50KSpuLnNsaWRlV2lkdGgsbD0oaStuLm9wdGlvbnMuc2xpZGVzVG9TaG93LW4uc2xpZGVDb3VudCkqdCksbi5zbGlkZUNvdW50PD1uLm9wdGlvbnMuc2xpZGVzVG9TaG93JiYobD1uLnNsaWRlT2Zmc2V0PTApLCEwPT09bi5vcHRpb25zLmNlbn
3674Rlck1vZGUmJm4uc2xpZGVDb3VudDw9bi5vcHRpb25zLnNsaWRlc1RvU2hvdz9uLnNsaWRlT2Zmc2V0PW4uc2xpZGVXaWR0aCpNYXRoLmZsb29yKG4ub3B0aW9ucy5zbGlkZXNUb1Nob3cpLzItbi5zbGlkZVdpZHRoKm4uc2xpZGVDb3VudC8yOiEwPT09bi5vcHRpb25zLmNlbnRlck1vZGUmJiEwPT09bi5vcHRpb25zLmluZmluaXRlP24uc2xpZGVPZmZzZXQrPW4uc2xpZGVXaWR0aCpNYXRoLmZsb29yKG4ub3B0aW9ucy5zbGlkZXNUb1Nob3cvMiktbi5zbGlkZVdpZHRoOiEwPT09bi5vcHRpb25zLmNlbnRlck1vZGUmJihuLnNsaWRlT2Zmc2V0PTAsbi5zbGlkZU9mZnNldCs9bi5zbGlkZVdpZHRoKk1hdGguZmxvb3Iobi5vcHRpb25zLnNsaWRlc1RvU2hvdy8yKSksZT0hMT09PW4ub3B0aW9ucy52ZXJ0aWNhbD9pKm4uc2xpZGVXaWR0aCotMStuLnNsaWRlT2Zmc2V0OmkqdCotMStsLCEwPT09bi5vcHRpb25zLnZhcmlhYmxlV2lkdGgmJihvPW4uc2xpZGVDb3VudDw9bi5vcHRpb25zLnNsaWRlc1RvU2hvd3x8ITE9PT1uLm9wdGlvbnMuaW5maW5pdGU/bi4kc2xpZGVUcmFjay5jaGlsZHJlbihcIi5zbGljay1zbGlkZVwiKS5lcShpKTpuLiRzbGlkZVRyYWNrLmNoaWxkcmVuKFwiLnNsaWNrLXNsaWRlXCIpLmVxKGkrbi5vcHRpb25zLnNsaWRlc1RvU2hvdyksZT0hMD09PW4ub3B0aW9ucy5ydGw/b1swXT8tMSoobi4kc2xpZGVUcmFjay53aWR0aCgpLW9bMF0ub2Zmc2V0TGVmdC1vLndpZHRoKCkpOjA6b1swXT8tMSpvWzBdLm9mZnNldExlZnQ6MCwhMD09PW4ub3B0aW9ucy5jZW50ZXJNb2RlJiYobz1uLnNsaWRlQ291bnQ8PW4ub3B0aW9ucy5zbGlkZXNUb1Nob3d8fCExPT09bi5vcHRpb25zLmluZmluaXRlP24uJHNsaWRlVHJhY2suY2hpbGRyZW4oXCIuc2xpY2stc2xpZGVcIikuZXEoaSk6bi4kc2xpZGVUcmFjay5jaGlsZHJlbihcIi5zbGljay1zbGlkZVwiKS5lcShpK24ub3B0aW9ucy5zbGlkZXNUb1Nob3crMSksZT0hMD09PW4ub3B0aW9ucy5ydGw/b1swXT8tMSoobi4kc2xpZGVUcmFjay53aWR0aCgpLW9bMF0ub2Zmc2V0TGVmdC1vLndpZHRoKCkpOjA6b1swXT8tMSpvWzBdLm9mZnNldExlZnQ6MCxlKz0obi4kbGlzdC53aWR0aCgpLW8ub3V0ZXJXaWR0aCgpKS8yKSksZX0sbC5wcm90b3R5cGUuZ2V0T3B0aW9uPWwucHJvdG90eXBlLnNsaWNrR2V0T3B0aW9uPWZ1bmN0aW9uKGkpe3JldHVybiB0aGlzLm9wdGlvbnNbaV19LGwucHJvdG90eXBlLmdldE5hdmlnYWJsZUluZGV4ZXM9ZnVuY3Rpb24oKXtmb3IodmFyIGk9dGhpcyxlPTAsdD0wLG89W10scz0hMT09PWkub3B0aW9ucy5pbmZpbml0ZT9pLnNsaWRlQ291bnQ6KGU9LTEqaS5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsLHQ9LTEqaS5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsLDIqaS5zbGlkZUNvdW50KTtlPHM7KW8ucHVzaChlKSxlPXQraS5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsLHQrPWkub3B0aW9ucy5zbGlkZXNUb1Njcm9sbDw9aS5vcHRpb25zLnNsaWRlc1RvU2hvdz9pLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGw6aS5vcHRpb25zLnNsaWRlc1RvU2hvdztyZXR1cm4gb30sbC5wcm90b3R5cGUuZ2V0U2xpY2s9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sbC5wcm90b3R5cGUuZ2V0U2xpZGVDb3VudD1mdW5jdGlvbigpe3ZhciBzLG49dGhpcyxpPSEwPT09bi5vcHRpb25zLmNlbnRlck1vZGU/TWF0aC5mbG9vcihuLiRsaXN0LndpZHRoKCkvMik6MCxsPS0xKm4uc3dpcGVMZWZ0K2k7cmV0dXJuITA9PT1uLm9wdGlvbnMuc3dpcGVUb1NsaWRlPyhuLiRzbGlkZVRyYWNrLmZpbmQoXCIuc2xpY2stc2xpZGVcIikuZWFjaChmdW5jdGlvbihpLGUpe3ZhciB0PWQoZSkub3V0ZXJXaWR0aCgpLG89ZS5vZmZzZXRMZWZ0O2lmKCEwIT09bi5vcHRpb25zLmNlbnRlck1vZGUmJihvKz10LzIpLGw8byt0KXJldHVybiBzPWUsITF9KSxNYXRoLmFicyhkKHMpLmF0dHIoXCJkYXRhLXNsaWNrLWluZGV4XCIpLW4uY3VycmVudFNsaWRlKXx8MSk6bi5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsfSxsLnByb3RvdHlwZS5nb1RvPWwucHJvdG90eXBlLnNsaWNrR29Ubz1mdW5jdGlvbihpLGUpe3RoaXMuY2hhbmdlU2xpZGUoe2R
3674hdGE6e21lc3NhZ2U6XCJpbmRleFwiLGluZGV4OnBhcnNlSW50KGkpfX0sZSl9LGwucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oaSl7dmFyIGU9dGhpcztkKGUuJHNsaWRlcikuaGFzQ2xhc3MoXCJzbGljay1pbml0aWFsaXplZFwiKXx8KGQoZS4kc2xpZGVyKS5hZGRDbGFzcyhcInNsaWNrLWluaXRpYWxpemVkXCIpLGUuYnVpbGRSb3dzKCksZS5idWlsZE91dCgpLGUuc2V0UHJvcHMoKSxlLnN0YXJ0TG9hZCgpLGUubG9hZFNsaWRlcigpLGUuaW5pdGlhbGl6ZUV2ZW50cygpLGUudXBkYXRlQXJyb3dzKCksZS51cGRhdGVEb3RzKCksZS5jaGVja1Jlc3BvbnNpdmUoITApLGUuZm9jdXNIYW5kbGVyKCkpLGkmJmUuJHNsaWRlci50cmlnZ2VyKFwiaW5pdFwiLFtlXSksZS5vcHRpb25zLmF1dG9wbGF5JiYoZS5wYXVzZWQ9ITEsZS5hdXRvUGxheSgpKSxlLnVwZGF0ZVNsaWRlVmlzaWJpbGl0eSgpLG51bGwhPWUub3B0aW9ucy5hY2Nlc3NpYmlsaXR5JiZjb25zb2xlLndhcm4oXCJhY2Nlc3NpYmlsaXR5IHNldHRpbmcgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC5cIiksbnVsbCE9ZS5vcHRpb25zLmZvY3VzT25DaGFuZ2UmJmNvbnNvbGUud2FybihcImZvY3VzT25DaGFuZ2UgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC5cIiksbnVsbCE9ZS5vcHRpb25zLmZvY3VzT25TZWxlY3QmJmNvbnNvbGUud2FybihcImZvY3VzT25TZWxlY3QgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC5cIil9LGwucHJvdG90eXBlLmluaXRBcnJvd0V2ZW50cz1mdW5jdGlvbigpe3ZhciBpPXRoaXM7ITA9PT1pLm9wdGlvbnMuYXJyb3dzJiZpLnNsaWRlQ291bnQ+aS5vcHRpb25zLnNsaWRlc1RvU2hvdyYmKGkuJHByZXZBcnJvdy5vZmYoXCJjbGljay5zbGlja1wiKS5vbihcImNsaWNrLnNsaWNrXCIse21lc3NhZ2U6XCJwcmV2aW91c1wifSxpLmNoYW5nZVNsaWRlKSxpLiRuZXh0QXJyb3cub2ZmKFwiY2xpY2suc2xpY2tcIikub24oXCJjbGljay5zbGlja1wiLHttZXNzYWdlOlwibmV4dFwifSxpLmNoYW5nZVNsaWRlKSl9LGwucHJvdG90eXBlLmluaXREb3RFdmVudHM9ZnVuY3Rpb24oKXt2YXIgaT10aGlzOyEwPT09aS5vcHRpb25zLmRvdHMmJmkuc2xpZGVDb3VudD5pLm9wdGlvbnMuc2xpZGVzVG9TaG93JiZkKFwibGlcIixpLiRkb3RzKS5vbihcImNsaWNrLnNsaWNrXCIse21lc3NhZ2U6XCJpbmRleFwifSxpLmNoYW5nZVNsaWRlKSwhMD09PWkub3B0aW9ucy5kb3RzJiYhMD09PWkub3B0aW9ucy5wYXVzZU9uRG90c0hvdmVyJiZpLnNsaWRlQ291bnQ+aS5vcHRpb25zLnNsaWRlc1RvU2hvdyYmZChcImxpXCIsaS4kZG90cykub24oXCJtb3VzZWVudGVyLnNsaWNrXCIsZC5wcm94eShpLmludGVycnVwdCxpLCEwKSkub24oXCJtb3VzZWxlYXZlLnNsaWNrXCIsZC5wcm94eShpLmludGVycnVwdCxpLCExKSl9LGwucHJvdG90eXBlLmluaXRTbGlkZUV2ZW50cz1mdW5jdGlvbigpe3ZhciBpPXRoaXM7aS5vcHRpb25zLnBhdXNlT25Ib3ZlciYmKGkuJGxpc3Qub24oXCJtb3VzZWVudGVyLnNsaWNrXCIsZC5wcm94eShpLmludGVycnVwdCxpLCEwKSksaS4kbGlzdC5vbihcIm1vdXNlbGVhdmUuc2xpY2tcIixkLnByb3h5KGkuaW50ZXJydXB0LGksITEpKSl9LGwucHJvdG90eXBlLmluaXRpYWxpemVFdmVudHM9ZnVuY3Rpb24oKXt2YXIgaT10aGlzO2kuaW5pdEFycm93RXZlbnRzKCksaS5pbml0RG90RXZlbnRzKCksaS5pbml0U2xpZGVFdmVudHMoKSxpLm9wdGlvbnMuYXV0b3BsYXkmJmkub3B0aW9ucy51c2VBdXRvcGxheVRvZ2dsZUJ1dHRvbiYmaS4kcGF1c2VCdXR0b24ub24oXCJjbGljay5zbGlja1wiLGkuYXV0b1BsYXlUb2dnbGVIYW5kbGVyKSxpLiRsaXN0Lm9uKFwidG91Y2hzdGFydC5zbGljayBtb3VzZWRvd24uc2xpY2tcIix7YWN0aW9uOlwic3RhcnRcIn0saS5zd2lwZUhhbmRsZXIpLGkuJGxpc3Qub24oXCJ0b3VjaG1vdmUuc2xpY2sgbW91c2Vtb3ZlLnNsaWNrXCIse2FjdGlvbjpcIm1vdmVcIn0saS5zd2lwZUhhbmRsZXIpLGkuJGxpc3Qub24oXCJ0b3VjaGVuZC5zbGljayBtb3VzZXVwLnNsaWNrXCIse2FjdGlvbjpcImVuZFwifSxpLnN3aXBlSGFuZGxlciksaS4kbGlzdC5vbihcInRvdWNoY2FuY2VsLnNsaWNrIG1vdXNlbGVhdmUuc2xpY2tcIix7YWN0aW9uOlwiZW5kXCJ9LGkuc3dpcGVIYW5kbGVyKSxpLiRsaXN0Lm9uKFwiY2xpY2suc2xpY2tcIixpLmNsaWNrSGFuZGxlciksZChkb2N1bWVudCkub24oaS52aXNpYmlsaXR5Q2hhbmdlLGQucHJveHkoaS52aXNpYmlsaXR5LGkpKSxkKHdpbmRvdykub24oXCJvcmllbnRhdGlvbmNoYW5nZS5zbGljay5zbGljay1cIitpLmluc3RhbmNlVWlkLGQucHJveHkoaS5vcmllbnRhdGlvbkNoYW5nZSxpKSksZCh3aW5kb3cpLm9uKFwicmVzaXplLnNsaWNrLnNsaWNrLVwiK2kuaW5zdGFuY2VVaWQsZC5wcm94eShpLnJlc2l6ZSxpKSksZChcIltkcmFnZ2FibGUhPXRydWVdXCIsaS4kc2xpZGVUcmFjaykub24oXCJkcmFnc3RhcnRcIixpLnByZXZlbnREZWZhdWx0KSxkKHdpbmRvdykub24oXCJsb2FkLnNsaWNrLnNsaWNrLVwiK2kuaW5zdGFuY2VVaWQsaS5zZXRQb3NpdGlvbiksZChpLnNldFBvc2l0aW9uKX0sbC5wcm90b3R5cGUuaW5pdFVJPWZ1bmN0aW9uKCl7dmFyIGk9dGhpczshMD09PWkub3B0aW9ucy5hcnJvd3MmJmkuc2xpZGVDb3VudD5pLm9wdGlvbnMuc2xpZGVzVG9TaG93JiYoaS4kcHJldkFycm93LnNob3coKSxpLiRuZXh0QXJyb3cuc2hvdygpKSwhMD09PWkub3B0aW9ucy5kb3RzJiZpLnNsaWRlQ291bnQ+aS5vcHRpb25zLnNsaWRlc1RvU2hvdyYmaS4kZG90cy5zaG93KCl9LGwucHJvdG90eXBlLmxhenlMb2FkPWZ1bmN0aW9uKCl7dmFyIGksZSx0LG49dGhpcztmdW5jdGlvbiBvKGkpe2QoXCJpbWdbZGF0YS1sYXp5XVwiLGkpLmVhY2goZnVuY3Rpb24oKXt2YXIgaT1kKHRoaXMpLGU9ZCh0aGlzKS5hdHRyKFwiZGF0YS1sYXp5XCIpLHQ9ZCh0aGlzKS5hdHRyKFwiZGF0YS1zcmNzZXRcIiksbz1kKHRoaXMpLmF0dHIoXCJkYXRhLXNpemVzXCIpfHxuLiRzbGlkZXIuYXR0cihcImRhdGEtc2l6ZXNcIikscz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaW1nXCIpO3Mub25sb2FkPWZ1bmN0aW9uKCl7aS5hbmltYXRlKHtvcGFjaXR5OjB9LDEwMCxmdW5jdGlvbigpe3QmJihpLmF0dHIoXCJzcmNzZXRcIix0KSxvJiZpLmF0dHIoXCJzaXplc1wiLG8pKSxpLmF0dHIoXCJzcmNcIixlKS5hbmltYXRlKHtvcGFjaXR5OjF9LDIwMCxmdW5jdGlvbigpe2kucmVtb3ZlQXR0cihcImRhdGEtbGF6eSBkYXRhLXNyY3NldCBkYXRhLXNpemVzXCIpLnJlbW92ZUNsYXNzKFwic2xpY2stbG9hZGluZ1wiKX0pLG4uJHNsaWRlci50cmlnZ2VyKFwibGF6eUxvYWRlZFwiLFtuLGksZV0pfSl9LHMub25lcnJvcj1mdW5jdGlvbigpe2kucmVtb3ZlQXR0cihcImRhdGEtbGF6eVwiKS5yZW1vdmVDbGFzcyhcInNsaWNrLWxvYWRpbmdcIikuYWRkQ2xhc3MoXCJzbGljay1sYXp5bG9hZC1lcnJvclwiKSxuLiRzbGlkZXIudHJpZ2dlcihcImxhenlMb2FkRXJyb3JcIixbbixpLGVdKX0scy5zcmM9ZX0pfWlmKCEwPT09bi5vcHRpb25zLmNlbn
3674Rlck1vZGU/dD0hMD09PW4ub3B0aW9ucy5pbmZpbml0ZT8oZT1uLmN1cnJlbnRTbGlkZSsobi5vcHRpb25zLnNsaWRlc1RvU2hvdy8yKzEpKStuLm9wdGlvbnMuc2xpZGVzVG9TaG93KzI6KGU9TWF0aC5tYXgoMCxuLmN1cnJlbnRTbGlkZS0obi5vcHRpb25zLnNsaWRlc1RvU2hvdy8yKzEpKSxuLm9wdGlvbnMuc2xpZGVzVG9TaG93LzIrMSsyK24uY3VycmVudFNsaWRlKTooZT1uLm9wdGlvbnMuaW5maW5pdGU/bi5vcHRpb25zLnNsaWRlc1RvU2hvdytuLmN1cnJlbnRTbGlkZTpuLmN1cnJlbnRTbGlkZSx0PU1hdGguY2VpbChlK24ub3B0aW9ucy5zbGlkZXNUb1Nob3cpLCEwPT09bi5vcHRpb25zLmZhZGUmJigwPGUmJmUtLSx0PD1uLnNsaWRlQ291bnQmJnQrKykpLGk9bi4kc2xpZGVyLmZpbmQoXCIuc2xpY2stc2xpZGVcIikuc2xpY2UoZSx0KSxcImFudGljaXBhdGVkXCI9PT1uLm9wdGlvbnMubGF6eUxvYWQpZm9yKHZhciBzPWUtMSxsPXQscj1uLiRzbGlkZXIuZmluZChcIi5zbGljay1zbGlkZVwiKSxhPTA7YTxuLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGw7YSsrKXM8MCYmKHM9bi5zbGlkZUNvdW50LTEpLGk9KGk9aS5hZGQoci5lcShzKSkpLmFkZChyLmVxKGwpKSxzLS0sbCsrO28oaSksbi5zbGlkZUNvdW50PD1uLm9wdGlvbnMuc2xpZGVzVG9TaG93P28obi4kc2xpZGVyLmZpbmQoXCIuc2xpY2stc2xpZGVcIikpOm4uY3VycmVudFNsaWRlPj1uLnNsaWRlQ291bnQtbi5vcHRpb25zLnNsaWRlc1RvU2hvdz9vKG4uJHNsaWRlci5maW5kKFwiLnNsaWNrLWNsb25lZFwiKS5zbGljZSgwLG4ub3B0aW9ucy5zbGlkZXNUb1Nob3cpKTowPT09bi5jdXJyZW50U2xpZGUmJm8obi4kc2xpZGVyLmZpbmQoXCIuc2xpY2stY2xvbmVkXCIpLnNsaWNlKC0xKm4ub3B0aW9ucy5zbGlkZXNUb1Nob3cpKX0sbC5wcm90b3R5cGUubG9hZFNsaWRlcj1mdW5jdGlvbigpe3ZhciBpPXRoaXM7aS5zZXRQb3NpdGlvbigpLGkuJHNsaWRlVHJhY2suY3NzKHtvcGFjaXR5OjF9KSxpLiRzbGlkZXIucmVtb3ZlQ2xhc3MoXCJzbGljay1sb2FkaW5nXCIpLGkuaW5pdFVJKCksXCJwcm9ncmVzc2l2ZVwiPT09aS5vcHRpb25zLmxhenlMb2FkJiZpLnByb2dyZXNzaXZlTGF6eUxvYWQoKX0sbC5wcm90b3R5cGUubmV4dD1sLnByb3RvdHlwZS5zbGlja05leHQ9ZnVuY3Rpb24oKXt0aGlzLmNoYW5nZVNsaWRlKHtkYXRhOnttZXNzYWdlOlwibmV4dFwifX0pfSxsLnByb3RvdHlwZS5vcmllbnRhdGlvbkNoYW5nZT1mdW5jdGlvbigpe3RoaXMuY2hlY2tSZXNwb25zaXZlKCksdGhpcy5zZXRQb3NpdGlvbigpfSxsLnByb3RvdHlwZS5wYXVzZT1sLnByb3RvdHlwZS5zbGlja1BhdXNlPWZ1bmN0aW9uKCl7dGhpcy5hdXRvUGxheUNsZWFyKCksdGhpcy5wYXVzZWQ9ITB9LGwucHJvdG90eXBlLnBsYXk9bC5wcm90b3R5cGUuc2xpY2tQbGF5PWZ1bmN0aW9uKCl7dmFyIGk9dGhpcztpLmF1dG9QbGF5KCksaS5vcHRpb25zLmF1dG9wbGF5PSEwLGkucGF1c2VkPSExLGkuZm9jdXNzZWQ9ITEsaS5pbnRlcnJ1cHRlZD0hMX0sbC5wcm90b3R5cGUucG9zdFNsaWRlPWZ1bmN0aW9uKGkpe3ZhciBlPXRoaXM7ZS51bnNsaWNrZWR8fChlLiRzbGlkZXIudHJpZ2dlcihcImFmdGVyQ2hhbmdlXCIsW2UsaV0pLGUuYW5pbWF0aW5nPSExLGUuc2xpZGVDb3VudD5lLm9wdGlvbnMuc2xpZGVzVG9TaG93JiZlLnNldFBvc2l0aW9uKCksZS5zd2lwZUxlZnQ9bnVsbCxlLm9wdGlvbnMuYXV0b3BsYXkmJmUuYXV0b1BsYXkoKSxlLnVwZGF0ZVNsaWRlVmlzaWJpbGl0eSgpKX0sbC5wcm90b3R5cGUucHJldj1sLnByb3RvdHlwZS5zbGlja1ByZXY9ZnVuY3Rpb24oKXt0aGlzLmNoYW5nZVNsaWRlKHtkYXRhOnttZXNzYWdlOlwicHJldmlvdXNcIn19KX0sbC5wcm90b3R5cGUucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oaSl7aS5wcmV2ZW50RGVmYXVsdCgpfSxsLnByb3RvdHlwZS5wcm9ncmVzc2l2ZUxhenlMb2FkPWZ1bmN0aW9uKGkpe2k9aXx8MTt2YXIgZSx0LG8scyxuLGw9dGhpcyxyPWQoXCJpbWdbZGF0YS1sYXp5XVwiLGwuJHNsaWRlcik7ci5sZW5ndGg/KGU9ci5maXJzdCgpLHQ9ZS5hdHRyKFwiZGF0YS1sYXp5XCIpLG89ZS5hdHRyKFwiZGF0YS1zcmNzZXRcIikscz1lLmF0dHIoXCJkYXRhLXNpemVzXCIpfHxsLiRzbGlkZXIuYXR0cihcImRhdGEtc2l6ZXNcIiksKG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImltZ1wiKSkub25sb2FkPWZ1bmN0aW9uKCl7byYmKGUuYXR0cihcInNyY3NldFwiLG8pLHMmJmUuYXR0cihcInNpemVzXCIscykpLGUuYXR0cihcInNyY1wiLHQpLnJlbW92ZUF0dHIoXCJkYXRhLWxhenkgZGF0YS1zcmNzZXQgZGF0YS1zaXplc1wiKS5yZW1vdmVDbGFzcyhcInNsaWNrLWxvYWRpbmdcIiksITA9PT1sLm9wdGlvbnMuYWRhcHRpdmVIZWlnaHQmJmwuc2V0UG9zaXRpb24oKSxsLiRzbGlkZXIudHJpZ2dlcihcImxhenlMb2FkZWRcIixbbCxlLHRdKSxsLnByb2dyZXNzaXZlTGF6eUxvYWQoKX0sbi5vbmVycm9yPWZ1bmN0aW9uKCl7aTwzP3NldFRpbWVvdXQoZnVuY3Rpb24oKXtsLnByb2dyZXNzaXZlTGF6eUxvYWQoaSsxKX0sNTAwKTooZS5yZW1vdmVBdHRyKFwiZGF0YS1sYXp5XCIpLnJlbW92ZUNsYXNzKFwic2xpY2stbG9hZGluZ1wiKS5hZGRDbGFzcyhcInNsaWNrLWxhenlsb2FkLWVycm9yXCIpLGwuJHNsaWRlci50cmlnZ2VyKFwibGF6eUxvYWRFcnJvclwiLFtsLGUsdF0pLGwucHJvZ3Jlc3NpdmVMYXp5TG9hZCgpKX0sbi5zcmM9dCk6bC4kc2xpZGVyLnRyaWdnZXIoXCJhbGxJbWFnZXNMb2FkZWRcIixbbF0pfSxsLnByb3RvdHlwZS5yZWZyZXNoPWZ1bmN0aW9uKGkpe3ZhciBlLHQ9dGhpcyxvPXQuc2xpZGVDb3VudC10Lm9wdGlvbnMuc2xpZGVzVG9TaG93OyF0Lm9wdGlvbnMuaW5maW5pdGUmJnQuY3VycmVudFNsaWRlPm8mJih0LmN1cnJlbnRTbGlkZT1vKSx0LnNsaWRlQ291bnQ8PXQub3B0aW9ucy5zbGlkZXNUb1Nob3cmJih0LmN1cnJlbnRTbGlkZT0wKSxlPXQuY3VycmVudFNsaWRlLHQuZGVzdHJveSghMCksZC5leHRlbmQodCx0LmluaXRpYWxzLHtjdXJyZW50U2xpZGU6ZX0pLHQuaW5pdCgpLGl8fHQuY2hhbmdlU2xpZGUoe2R
3674hdGE6e21lc3NhZ2U6XCJpbmRleFwiLGluZGV4OmV9fSwhMSl9LGwucHJvdG90eXBlLnJlZ2lzdGVyQnJlYWtwb2ludHM9ZnVuY3Rpb24oKXt2YXIgaSxlLHQsbz10aGlzLHM9by5vcHRpb25zLnJlc3BvbnNpdmV8fG51bGw7aWYoXCJhcnJheVwiPT09ZC50eXBlKHMpJiZzLmxlbmd0aCl7Zm9yKGkgaW4gby5yZXNwb25kVG89by5vcHRpb25zLnJlc3BvbmRUb3x8XCJ3aW5kb3dcIixzKWlmKHQ9by5icmVha3BvaW50cy5sZW5ndGgtMSxzLmhhc093blByb3BlcnR5KGkpKXtmb3IoZT1zW2ldLmJyZWFrcG9pbnQ7MDw9dDspby5icmVha3BvaW50c1t0XSYmby5icmVha3BvaW50c1t0XT09PWUmJm8uYnJlYWtwb2ludHMuc3BsaWNlKHQsMSksdC0tO28uYnJlYWtwb2ludHMucHVzaChlKSxvLmJyZWFrcG9pbnRTZXR0aW5nc1tlXT1zW2ldLnNldHRpbmdzfW8uYnJlYWtwb2ludHMuc29ydChmdW5jdGlvbihpLGUpe3JldHVybiBvLm9wdGlvbnMubW9iaWxlRmlyc3Q/aS1lOmUtaX0pfX0sbC5wcm90b3R5cGUucmVpbml0PWZ1bmN0aW9uKCl7dmFyIGk9dGhpcztpLiRzbGlkZXM9aS4kc2xpZGVUcmFjay5jaGlsZHJlbihpLm9wdGlvbnMuc2xpZGUpLmFkZENsYXNzKFwic2xpY2stc2xpZGVcIiksaS5zbGlkZUNvdW50PWkuJHNsaWRlcy5sZW5ndGgsaS5jdXJyZW50U2xpZGU+PWkuc2xpZGVDb3VudCYmMCE9PWkuY3VycmVudFNsaWRlJiYoaS5jdXJyZW50U2xpZGU9aS5jdXJyZW50U2xpZGUtaS5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsKSxpLnNsaWRlQ291bnQ8PWkub3B0aW9ucy5zbGlkZXNUb1Nob3cmJihpLmN1cnJlbnRTbGlkZT0wKSxpLnJlZ2lzdGVyQnJlYWtwb2ludHMoKSxpLnNldFByb3BzKCksaS5zZXR1cEluZmluaXRlKCksaS5idWlsZEFycm93cygpLGkudXBkYXRlQXJyb3dzKCksaS5pbml0QXJyb3dFdmVudHMoKSxpLmJ1aWxkRG90cygpLGkudXBkYXRlRG90cygpLGkuaW5pdERvdEV2ZW50cygpLGkuY2xlYW5VcFNsaWRlRXZlbnRzKCksaS5pbml0U2xpZGVFdmVudHMoKSxpLmNoZWNrUmVzcG9uc2l2ZSghMSwhMCksaS5zZXRTbGlkZUNsYXNzZXMoXCJudW1iZXJcIj09dHlwZW9mIGkuY3VycmVudFNsaWRlP2kuY3VycmVudFNsaWRlOjApLGkuc2V0UG9zaXRpb24oKSxpLmZvY3VzSGFuZGxlcigpLGkucGF1c2VkPSFpLm9wdGlvbnMuYXV0b3BsYXksaS5hdXRvUGxheSgpLGkuJHNsaWRlci50cmlnZ2VyKFwicmVJbml0XCIsW2ldKX0sbC5wcm90b3R5cGUucmVzaXplPWZ1bmN0aW9uKCl7dmFyIGk9dGhpcztkKHdpbmRvdykud2lkdGgoKSE9PWkud2luZG93V2lkdGgmJihjbGVhclRpbWVvdXQoaS53aW5kb3dEZWxheSksaS53aW5kb3dEZWxheT13aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe2kud2luZG93V2lkdGg9ZCh3aW5kb3cpLndpZHRoKCksaS5jaGVja1Jlc3BvbnNpdmUoKSxpLnVuc2xpY2tlZHx8aS5zZXRQb3NpdGlvbigpfSw1MCkpfSxsLnByb3RvdHlwZS5yZW1vdmVTbGlkZT1sLnByb3RvdHlwZS5zbGlja1JlbW92ZT1mdW5jdGlvbihpLGUsdCl7dmFyIG89dGhpcztpZihpPVwiYm9vbGVhblwiPT10eXBlb2YgaT8hMD09PShlPWkpPzA6by5zbGlkZUNvdW50LTE6ITA9PT1lPy0taTppLG8uc2xpZGVDb3VudDwxfHxpPDB8fGk+by5zbGlkZUNvdW50LTEpcmV0dXJuITE7by51bmxvYWQoKSwhMD09PXQ/by4kc2xpZGVUcmFjay5jaGlsZHJlbigpLnJlbW92ZSgpOm8uJHNsaWRlVHJhY2suY2hpbGRyZW4odGhpcy5vcHRpb25zLnNsaWRlKS5lcShpKS5yZW1vdmUoKSxvLiRzbGlkZXM9by4kc2xpZGVUcmFjay5jaGlsZHJlbih0aGlzLm9wdGlvbnMuc2xpZGUpLG8uJHNsaWRlVHJhY2suY2hpbGRyZW4odGhpcy5vcHRpb25zLnNsaWRlKS5kZXRhY2goKSxvLiRzbGlkZVRyYWNrLmFwcGVuZChvLiRzbGlkZXMpLG8uJHNsaWRlc0NhY2hlPW8uJHNsaWRlcyxvLnJlaW5pdCgpfSxsLnByb3RvdHlwZS5zZXRDU1M9ZnVuY3Rpb24oaSl7dmFyIGUsdCxvPXRoaXMscz17fTshMD09PW8ub3B0aW9ucy5ydGwmJihpPS1pKSxlPVwibGVmdFwiPT1vLnBvc2l0aW9uUHJvcD9NYXRoLmNlaWwoaSkrXCJweFwiOlwiMHB4XCIsdD1cInRvcFwiPT1vLnBvc2l0aW9uUHJvcD9NYXRoLmNlaWwoaSkrXCJweFwiOlwiMHB4XCIsc1tvLnBvc2l0aW9uUHJvcF09aSwhMT09PW8udHJhbnNmb3Jtc0VuYWJsZWR8fCghKHM9e30pPT09by5jc3NUcmFuc2l0aW9ucz9zW28uYW5pbVR5cGVdPVwidHJhbnNsYXRlKFwiK2UrXCIsIFwiK3QrXCIpXCI6c1tvLmFuaW1UeXBlXT1cInRyYW5zbGF0ZTNkKFwiK2UrXCIsIFwiK3QrXCIsIDBweClcIiksby4kc2xpZGVUcmFjay5jc3Mocyl9LGwucHJvdG90eXBlLnNldERpbWVuc2lvbnM9ZnVuY3Rpb24oKXt2YXIgaT10aGlzOyExPT09aS5vcHRpb25zLnZlcnRpY2FsPyEwPT09aS5vcHRpb25zLmNlbnRlck1vZGUmJmkuJGxpc3QuY3NzKHtwYWRkaW5nOlwiMHB4IFwiK2kub3B0aW9ucy5jZW50ZXJQYWRkaW5nfSk6KGkuJGxpc3QuaGVpZ2h0KGkuJHNsaWRlcy5maXJzdCgpLm91dGVySGVpZ2h0KCEwKSppLm9wdGlvbnMuc2xpZGVzVG9TaG93KSwhMD09PWkub3B0aW9ucy5jZW50ZXJNb2RlJiZpLiRsaXN0LmNzcyh7cGFkZGluZzppLm9wdGlvbnMuY2VudGVyUGFkZGluZytcIiAwcHhcIn0pKSxpLmxpc3RXaWR0aD1pLiRsaXN0LndpZHRoKCksaS5saXN0SGVpZ2h0PWkuJGxpc3QuaGVpZ2h0KCksITE9PT1pLm9wdGlvbnMudmVydGljYWwmJiExPT09aS5vcHRpb25zLnZhcmlhYmxlV2lkdGg/KGkuc2xpZGVXaWR0aD1NYXRoLmNlaWwoaS5saXN0V2lkdGgvaS5vcHRpb25zLnNsaWRlc1RvU2hvdyksaS4kc2xpZGVUcmFjay53aWR0aChNYXRoLmNlaWwoaS5zbGlkZVdpZHRoKmkuJHNsaWRlVHJhY2suY2hpbGRyZW4oXCIuc2xpY2stc2xpZGVcIikubGVuZ3RoKSkpOiEwPT09aS5vcHRpb25zLnZhcmlhYmxlV2lkdGg/aS4kc2xpZGVUcmFjay53aWR0aCg1ZTMqaS5zbGlkZUNvdW50KTooaS5zbGlkZVdpZHRoPU1hdGguY2VpbChpLmxpc3RXaWR0aCksaS4kc2xpZGVUcmFjay5oZWlnaHQoTWF0aC5jZWlsKGkuJHNsaWRlcy5maXJzdCgpLm91dGVySGVpZ2h0KCEwKSppLiRzbGlkZVRyYWNrLmNoaWxkcmVuKFwiLnNsaWNrLXNsaWRlXCIpLmxlbmd0aCkpKTt2YXIgZT1pLiRzbGlkZXMuZmlyc3QoKS5vdXRlcldpZHRoKCEwKS1pLiRzbGlkZXMuZmlyc3QoKS53aWR0aCgpOyExPT09aS5vcHRpb25zLnZhcmlhYmxlV2lkdGgmJmkuJHNsaWRlVHJhY2suY2hpbGRyZW4oXCIuc2xpY2st
3674c2xpZGVcIikud2lkdGgoaS5zbGlkZVdpZHRoLWUpfSxsLnByb3RvdHlwZS5zZXRGYWRlPWZ1bmN0aW9uKCl7dmFyIHQsbz10aGlzO28uJHNsaWRlcy5lYWNoKGZ1bmN0aW9uKGksZSl7dD1vLnNsaWRlV2lkdGgqaSotMSwhMD09PW8ub3B0aW9ucy5ydGw/ZChlKS5jc3Moe3Bvc2l0aW9uOlwicmVsYXRpdmVcIixyaWdodDp0LHRvcDowLHpJbmRleDpvLm9wdGlvbnMuekluZGV4LTIsb3BhY2l0eTowfSk6ZChlKS5jc3Moe3Bvc2l0aW9uOlwicmVsYXRpdmVcIixsZWZ0OnQsdG9wOjAsekluZGV4Om8ub3B0aW9ucy56SW5kZXgtMixvcGFjaXR5OjB9KX0pLG8uJHNsaWRlcy5lcShvLmN1cnJlbnRTbGlkZSkuY3NzKHt6SW5kZXg6by5vcHRpb25zLnpJbmRleC0xLG9wYWNpdHk6MX0pfSxsLnByb3RvdHlwZS5zZXRIZWlnaHQ9ZnVuY3Rpb24oKXt2YXIgaSxlPXRoaXM7MT09PWUub3B0aW9ucy5zbGlkZXNUb1Nob3cmJiEwPT09ZS5vcHRpb25zLmFkYXB0aXZlSGVpZ2h0JiYhMT09PWUub3B0aW9ucy52ZXJ0aWNhbCYmKGk9ZS4kc2xpZGVzLmVxKGUuY3VycmVudFNsaWRlKS5vdXRlckhlaWdodCghMCksZS4kbGlzdC5jc3MoXCJoZWlnaHRcIixpKSl9LGwucHJvdG90eXBlLnNldE9wdGlvbj1sLnByb3RvdHlwZS5zbGlja1NldE9wdGlvbj1mdW5jdGlvbigpe3ZhciBpLGUsdCxvLHMsbj10aGlzLGw9ITE7aWYoXCJvYmplY3RcIj09PWQudHlwZShhcmd1bWVudHNbMF0pPyh0PWFyZ3VtZW50c1swXSxsPWFyZ3VtZW50c1sxXSxzPVwibXVsdGlwbGVcIik6XCJzdHJpbmdcIj09PWQudHlwZShhcmd1bWVudHNbMF0pJiYobz1hcmd1bWVudHNbMV0sbD1hcmd1bWVudHNbMl0sXCJyZXNwb25zaXZlXCI9PT0odD1hcmd1bWVudHNbMF0pJiZcImFycmF5XCI9PT1kLnR5cGUoYXJndW1lbnRzWzFdKT9zPVwicmVzcG9uc2l2ZVwiOnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmKHM9XCJzaW5nbGVcIikpLFwic2luZ2xlXCI9PT1zKW4ub3B0aW9uc1t0XT1vO2Vsc2UgaWYoXCJtdWx0aXBsZVwiPT09cylkLmVhY2godCxmdW5jdGlvbihpLGUpe24ub3B0aW9uc1tpXT1lfSk7ZWxzZSBpZihcInJlc3BvbnNpdmVcIj09PXMpZm9yKGUgaW4gbylpZihcImFycmF5XCIhPT1kLnR5cGUobi5vcHRpb25zLnJlc3BvbnNpdmUpKW4ub3B0aW9ucy5yZXNwb25zaXZlPVtvW2VdXTtlbHNle2ZvcihpPW4ub3B0aW9ucy5yZXNwb25zaXZlLmxlbmd0aC0xOzA8PWk7KW4ub3B0aW9ucy5yZXNwb25zaXZlW2ldLmJyZWFrcG9pbnQ9PT1vW2VdLmJyZWFrcG9pbnQmJm4ub3B0aW9ucy5yZXNwb25zaXZlLnNwbGljZShpLDEpLGktLTtuLm9wdGlvbnMucmVzcG9uc2l2ZS5wdXNoKG9bZV0pfWwmJihuLnVubG9hZCgpLG4ucmVpbml0KCkpfSxsLnByb3RvdHlwZS5zZXRQb3NpdGlvbj1mdW5jdGlvbigpe3ZhciBpPXRoaXM7aS5zZXREaW1lbnNpb25zKCksaS5zZXRIZWlnaHQoKSwhMT09PWkub3B0aW9ucy5mYWRlP2kuc2V0Q1NTKGkuZ2V0TGVmdChpLmN1cnJlbnRTbGlkZSkpOmkuc2V0RmFkZSgpLGkuJHNsaWRlci50cmlnZ2VyKFwic2V0UG9zaXRpb25cIixbaV0pfSxsLnByb3RvdHlwZS5zZXRQcm9wcz1mdW5jdGlvbigpe3ZhciBpPXRoaXMsZT1kb2N1bWVudC5ib2R5LnN0eWxlO2kucG9zaXRpb25Qcm9wPSEwPT09aS5vcHRpb25zLnZlcnRpY2FsP1widG9wXCI6XCJsZWZ0XCIsXCJ0b3BcIj09PWkucG9zaXRpb25Qcm9wP2kuJHNsaWRlci5hZGRDbGFzcyhcInNsaWNrLXZlcnRpY2FsXCIpOmkuJHNsaWRlci5yZW1vdmVDbGFzcyhcInNsaWNrLXZlcnRpY2FsXCIpLHZvaWQgMD09PWUuV2Via2l0VHJhbnNpdGlvbiYmdm9pZCAwPT09ZS5Nb3pUcmFuc2l0aW9uJiZ2b2lkIDA9PT1lLm1zVHJhbnNpdGlvbnx8ITA9PT1pLm9wdGlvbnMudXNlQ1NTJiYoaS5jc3NUcmFuc2l0aW9ucz0hMCksaS5vcHRpb25zLmZhZGUmJihcIm51bWJlclwiPT10eXBlb2YgaS5vcHRpb25zLnpJbmRleD9pLm9wdGlvbnMuekluZGV4PDMmJihpLm9wdGlvbnMuekluZGV4PTMpOmkub3B0aW9ucy56SW5kZXg9aS5kZWZhdWx0cy56SW5kZXgpLHZvaWQgMCE9PWUuT1RyYW5zZm9ybSYmKGkuYW5pbVR5cGU9XCJPVHJhbnNmb3JtXCIsaS50cmFuc2Zvcm1UeXBlPVwiLW8tdHJhbnNmb3JtXCIsaS50cmFuc2l0aW9uVHlwZT1cIk9UcmFuc2l0aW9uXCIsdm9pZCAwPT09ZS5wZXJzcGVjdGl2ZVByb3BlcnR5JiZ2b2lkIDA9PT1lLndlYmtpdFBlcnNwZWN0aXZlJiYoaS5hbmltVHlwZT0hMSkpLHZvaWQgMCE9PWUuTW96VHJhbnNmb3JtJiYoaS5hbmltVHlwZT1cIk1velRyYW5zZm9ybVwiLGkudHJhbnNmb3JtVHlwZT1cIi1tb3otdHJhbnNmb3JtXCIsaS50cmFuc2l0aW9uVHlwZT1cIk1velRyYW5zaXRpb25cIix2b2lkIDA9PT1lLnBlcnNwZWN0aXZlUHJvcGVydHkmJnZvaWQgMD09PWUuTW96UGVyc3BlY3RpdmUmJihpLmFuaW1UeXBlPSExKSksdm9pZCAwIT09ZS53ZWJraXRUcmFuc2Zvcm0mJihpLmFuaW1UeXBlPVwid2Via2l0VHJhbnNmb3JtXCIsaS50cmFuc2Zvcm1UeXBlPVwiLXdlYmtpdC10cmFuc2Zvcm1cIixpLnRyYW5zaXRpb25UeXBlPVwid2Via2l0VHJhbnNpdGlvblwiLHZvaWQgMD09PWUucGVyc3BlY3RpdmVQcm9wZXJ0eSYmdm9pZCAwPT09ZS53ZWJraXRQZXJzcG
3674VjdGl2ZSYmKGkuYW5pbVR5cGU9ITEpKSx2b2lkIDAhPT1lLm1zVHJhbnNmb3JtJiYoaS5hbmltVHlwZT1cIm1zVHJhbnNmb3JtXCIsaS50cmFuc2Zvcm1UeXBlPVwiLW1zLXRyYW5zZm9ybVwiLGkudHJhbnNpdGlvblR5cGU9XCJtc1RyYW5zaXRpb25cIix2b2lkIDA9PT1lLm1zVHJhbnNmb3JtJiYoaS5hbmltVHlwZT0hMSkpLHZvaWQgMCE9PWUudHJhbnNmb3JtJiYhMSE9PWkuYW5pbVR5cGUmJihpLmFuaW1UeXBlPVwidHJhbnNmb3JtXCIsaS50cmFuc2Zvcm1UeXBlPVwidHJhbnNmb3JtXCIsaS50cmFuc2l0aW9uVHlwZT1cInRyYW5zaXRpb25cIiksaS50cmFuc2Zvcm1zRW5hYmxlZD1pLm9wdGlvbnMudXNlVHJhbnNmb3JtJiZudWxsIT09aS5hbmltVHlwZSYmITEhPT1pLmFuaW1UeXBlfSxsLnByb3RvdHlwZS5zZXRTbGlkZUNsYXNzZXM9ZnVuY3Rpb24oaSl7dmFyIGUsdCxvLHMsbj10aGlzLGw9bi4kc2xpZGVyLmZpbmQoXCIuc2xpY2stc2xpZGVcIikucmVtb3ZlQ2xhc3MoXCJzbGljay1hY3RpdmUgc2xpY2stY2VudGVyIHNsaWNrLWN1cnJlbnRcIikuYXR0cihcImFyaWEtaGlkZGVuXCIsXCJ0cnVlXCIpLmF0dHIoXCJhcmlhLWxhYmVsXCIsZnVuY3Rpb24oKXtyZXR1cm4gZCh0aGlzKS5hdHRyKFwiYXJpYS1sYWJlbFwiKS5yZXBsYWNlKFwiIChjZW50ZXJlZClcIixcIlwiKX0pO24uJHNsaWRlcy5lcShpKS5hZGRDbGFzcyhcInNsaWNrLWN1cnJlbnRcIiksITA9PT1uLm9wdGlvbnMuY2VudGVyTW9kZT8obz1uLm9wdGlvbnMuc2xpZGVzVG9TaG93JTI9PTA/MTowLHM9TWF0aC5mbG9vcihuLm9wdGlvbnMuc2xpZGVzVG9TaG93LzIpLCEwPT09bi5vcHRpb25zLmluZmluaXRlJiYoczw9aSYmaTw9bi5zbGlkZUNvdW50LTEtcz9uLiRzbGlkZXMuc2xpY2UoaS1zK28saStzKzEpLmFkZENsYXNzKFwic2xpY2stYWN0aXZlXCIpLnJlbW92ZUF0dHIoXCJhcmlhLWhpZGRlblwiKTooZT1uLm9wdGlvbnMuc2xpZGVzVG9TaG93K2ksbC5zbGljZShlLXMrMStvLGUrcysyKS5hZGRDbGFzcyhcInNsaWNrLWFjdGl2ZVwiKS5yZW1vdmVBdHRyKFwiYXJpYS1oaWRkZW5cIikpLDA9PT1pP2wuZXEobi5vcHRpb25zLnNsaWRlc1RvU2hvdytuLnNsaWRlQ291bnQrMSkuYWRkQ2xhc3MoXCJzbGljay1jZW50ZXJcIikuYXR0cihcImFyaWEtbGFiZWxcIixmdW5jdGlvbigpe3JldHVybiBkKHRoaXMpLmF0dHIoXCJhcmlhLWxhYmVsXCIpK1wiIChjZW50ZXJlZClcIn0pOmk9PT1uLnNsaWRlQ291bnQtMSYmbC5lcShuLm9wdGlvbnMuc2xpZGVzVG9TaG93KS5hZGRDbGFzcyhcInNsaWNrLWNlbnRlclwiKS5hdHRyKFwiYXJpYS1sYWJlbFwiLGZ1bmN0aW9uKCl7cmV0dXJuIGQodGhpcykuYXR0cihcImFyaWEtbGFiZWxcIikrXCIgKGNlbnRlcmVkKVwifSkpLG4uJHNsaWRlcy5lcShpKS5hZGRDbGFzcyhcInNsaWNrLWNlbnRlclwiKS5hdHRyKFwiYXJpYS1sYWJlbFwiLGZ1bmN0aW9uKCl7cmV0dXJuIGQodGhpcykuYXR0cihcImFyaWEtbGFiZWxcIikrXCIgKGNlbnRlcmVkKVwifSkpOjA8PWkmJmk8PW4uc2xpZGVDb3VudC1uLm9wdGlvbnMuc2xpZGVzVG9TaG93P24uJHNsaWRlcy5zbGljZShpLGkrbi5vcHRpb25zLnNsaWRlc1RvU2hvdykuYWRkQ2xhc3MoXCJzbGljay1hY3RpdmVcIikucmVtb3ZlQXR0cihcImFyaWEtaGlkZGVuXCIpOmwubGVuZ3RoPD1uLm9wdGlvbnMuc2xpZGVzVG9TaG93P2wuYWRkQ2xhc3MoXCJzbGljay1hY3RpdmVcIikucmVtb3ZlQXR0cihcImFyaWEtaGlkZGVuXCIpOih0PW4uc2xpZGVDb3VudCVuLm9wdGlvbnMuc2xpZGVzVG9TaG93LGU9ITA9PT1uLm9wdGlvbnMuaW5maW5pdGU/bi5vcHRpb25zLnNsaWRlc1RvU2hvdytpOmksbi5vcHRpb25zLnNsaWRlc1RvU2hvdz09bi5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsJiZuLnNsaWRlQ291bnQtaTxuLm9wdGlvbnMuc2xpZGVzVG9TaG93P2wuc2xpY2UoZS0obi5vcHRpb25zLnNsaWRlc1RvU2hvdy10KSxlK3QpLmFkZENsYXNzKFwic2xpY2stYWN0aXZlXCIpLnJlbW92ZUF0dHIoXCJhcmlhLWhpZGRlblwiKTpsLnNsaWNlKGUsZStuLm9wdGlvbnMuc2xpZGVzVG9TaG93KS5hZGRDbGFzcyhcInNsaWNrLWFjdGl2ZVwiKS5yZW1vdmVBdHRyKFwiYXJpYS1oaWRkZW5cIikpLFwib25kZW1hbmRcIiE9PW4ub3B0aW9ucy5sYXp5TG9hZCYmXCJhbnRpY2lwYXRlZFwiIT09bi5vcHRpb25zLmxhenlMb2FkfHxuLmxhenlMb2FkKCl9LGwucHJvdG90eXBlLnNldHVwSW5maW5pdGU9ZnVuY3Rpb24oKXt2YXIgaSxlLHQsbz10aGlzO2lmKCEwPT09by5vcHRpb25zLmZhZGUmJihvLm9wdGlvbnMuY2VudGVyTW9kZT0hMSksITA9PT1vLm9wdGlvbnMuaW5maW5pdGUmJiExPT09by5vcHRpb25zLmZhZGUmJihlPW51bGwsby5zbGlkZUNvdW50Pm8ub3B0aW9ucy5zbGlkZXNUb1Nob3cpKXtmb3IodD0hMD09PW8ub3B0aW9ucy5jZW50ZXJNb2RlP28ub3B0aW9ucy5zbGlkZXNUb1Nob3crMTpvLm9wdGlvbnMuc2xpZGVzVG9TaG93LGk9by5zbGlkZUNvdW50O2k+by5zbGlkZUNvdW50LXQ7LS1pKWU9aS0xLGQoby4kc2xpZGVzW2VdKS5jbG9uZSghMCkuYXR0cihcImlkXCIsXCJcIikuYXR0cihcImRhdGEtc2xpY2staW5kZXhcIixlLW8uc2xpZGVDb3VudCkucHJlcGVuZFRvKG8uJHNsaWRlVHJhY2spLmFkZENsYXNzKFwic2xpY2stY2xvbmVkXCIpO2ZvcihpPTA7aTx0K28uc2xpZGVDb3VudDtpKz0xKWU9aSxkKG8uJHNsaWRlc1tlXSkuY2xvbmUoITApLmF0dHIoXCJpZFwiLFwiXCIpLmF0dHIoXCJkYXRhLXNsaWNrLWluZGV4XCIsZStvLnNsaWRlQ291bnQpLmFwcGVuZFRvKG8uJHNsaWRlVHJhY2spLmFkZENsYXNzKFwic2xpY2stY2xvbmVkXCIpO28uJHNsaWRlVHJhY2suZmluZChcIi5zbGljay1jbG9uZWRcIikuZmluZChcIltpZF1cIikuZWFjaChmdW5jdGlvbigpe2QodGhpcykuYXR0cihcImlkXCIsXCJcIil9KX19LGwucHJvdG90eXBlLmludGVycnVwdD1mdW5jdGlvbihpKXtpfHx0aGlzLmF1dG9QbGF5KCksdGhpcy5pbnRlcnJ1cHRlZD1pfSxsLnByb3RvdHlwZS5zZWxlY3RIYW5kbGVyPWZ1bmN0aW9uKGkpe3ZhciBlPWQoaS50YXJnZXQpLmlzKFwiLnNsaWNrLXNsaWRlXCIpP2QoaS50YXJnZXQpOmQoaS50YXJnZXQpLnBhcmVudHMoXCIuc2xpY2st
3674c2xpZGVcIiksdD0odD1wYXJzZUludChlLmF0dHIoXCJkYXRhLXNsaWNrLWluZGV4XCIpKSl8fDA7dGhpcy5zbGlkZUNvdW50PD10aGlzLm9wdGlvbnMuc2xpZGVzVG9TaG93P3RoaXMuc2xpZGVIYW5kbGVyKHQsITEsITApOnRoaXMuc2xpZGVIYW5kbGVyKHQpfSxsLnByb3RvdHlwZS5zbGlkZUhhbmRsZXI9ZnVuY3Rpb24oaSxlLHQpe3ZhciBvLHMsbixsLHIsYSxkPXRoaXM7aWYoZT1lfHwhMSwhKCEwPT09ZC5hbmltYXRpbmcmJiEwPT09ZC5vcHRpb25zLndhaXRGb3JBbmltYXRlfHwhMD09PWQub3B0aW9ucy5mYWRlJiZkLmN1cnJlbnRTbGlkZT09PWkpKWlmKCExPT09ZSYmZC5hc05hdkZvcihpKSxvPWkscj1kLmdldExlZnQobyksbD1kLmdldExlZnQoZC5jdXJyZW50U2xpZGUpLGQuY3VycmVudExlZnQ9bnVsbD09PWQuc3dpcGVMZWZ0P2w6ZC5zd2lwZUxlZnQsITE9PT1kLm9wdGlvbnMuaW5maW5pdGUmJiExPT09ZC5vcHRpb25zLmNlbnRlck1vZGUmJihpPDB8fGk+ZC5nZXREb3RDb3VudCgpKmQub3B0aW9ucy5zbGlkZXNUb1Njcm9sbCkpITE9PT1kLm9wdGlvbnMuZmFkZSYmKG89ZC5jdXJyZW50U2xpZGUsITAhPT10JiZkLnNsaWRlQ291bnQ+ZC5vcHRpb25zLnNsaWRlc1RvU2hvdz9kLmFuaW1hdGVTbGlkZShsLGZ1bmN0aW9uKCl7ZC5wb3N0U2xpZGUobyl9KTpkLnBvc3RTbGlkZShvKSk7ZWxzZSBpZighMT09PWQub3B0aW9ucy5pbmZpbml0ZSYmITA9PT1kLm9wdGlvbnMuY2VudGVyTW9kZSYmKGk8MHx8aT5kLnNsaWRlQ291bnQtZC5vcHRpb25zLnNsaWRlc1RvU2Nyb2xsKSkhMT09PWQub3B0aW9ucy5mYWRlJiYobz1kLmN1cnJlbnRTbGlkZSwhMCE9PXQmJmQuc2xpZGVDb3VudD5kLm9wdGlvbnMuc2xpZGVzVG9TaG93P2QuYW5pbWF0ZVNsaWRlKGwsZnVuY3Rpb24oKXtkLnBvc3RTbGlkZShvKX0pOmQucG9zdFNsaWRlKG8pKTtlbHNle2lmKGQub3B0aW9ucy5hdXRvcGxheSYmY2xlYXJJbnRlcnZhbChkLmF1dG9QbGF5VGltZXIpLHM9bzwwP2Quc2xpZGVDb3VudCVkLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGwhPTA/ZC5zbGlkZUNvdW50LWQuc2xpZGVDb3VudCVkLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGw6ZC5zbGlkZUNvdW50K286bz49ZC5zbGlkZUNvdW50P2Quc2xpZGVDb3VudCVkLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGwhPTA/MDpvLWQuc2xpZGVDb3VudDpvLGQuYW5pbWF0aW5nPSEwLGQuJHNsaWRlci50cmlnZ2VyKFwiYmVmb3JlQ2hhbmdlXCIsW2QsZC5jdXJyZW50U2xpZGUsc10pLG49ZC5jdXJyZW50U2xpZGUsZC5jdXJyZW50U2xpZGU9cyxkLnNldFNsaWRlQ2xhc3NlcyhkLmN1cnJlbnRTbGlkZSksZC5vcHRpb25zLmFzTmF2Rm9yJiYoYT0oYT1kLmdldE5hdlRhcmdldCgpKS5zbGljayhcImdldFNsaWNrXCIpKS5zbGlkZUNvdW50PD1hLm9wdGlvbnMuc2xpZGVzVG9TaG93JiZhLnNldFNsaWRlQ2xhc3NlcyhkLmN1cnJlbnRTbGlkZSksZC51cGRhdGVEb3RzKCksZC51cGRhdGVBcnJvd3MoKSwhMD09PWQub3B0aW9ucy5mYWRlKXJldHVybiEwIT09dD8oZC5mYWRlU2xpZGVPdXQobiksZC5mYWRlU2xpZGUocyxmdW5jdGlvbigpe2QucG9zdFNsaWRlKHMpfSkpOmQucG9zdFNsaWRlKHMpLHZvaWQgZC5hbmltYXRlSGVpZ2h0KCk7ITAhPT10JiZkLnNsaWRlQ291bnQ+ZC5vcHRpb25zLnNsaWRlc1RvU2hvdz9kLmFuaW1hdGVTbGlkZShyLGZ1bmN0aW9uKCl7ZC5wb3N0U2xpZGUocyl9KTpkLnBvc3RTbGlkZShzKX19LGwucHJvdG90eXBlLnN0YXJ0TG9hZD1mdW5jdGlvbigpe3ZhciBpPXRoaXM7ITA9PT1pLm9wdGlvbnMuYXJyb3dzJiZpLnNsaWRlQ291bnQ+aS5vcHRpb25zLnNsaWRlc1RvU2hvdyYmKGkuJHByZXZBcnJvdy5oaWRlKCksaS4kbmV4dEFycm93LmhpZGUoKSksITA9PT1pLm9wdGlvbnMuZG90cyYmaS5zbGlkZUNvdW50Pmkub3B0aW9ucy5zbGlkZXNUb1Nob3cmJmkuJGRvdHMuaGlkZSgpLGkuJHNsaWRlci5hZGRDbGFzcyhcInNsaWNrLWxvYWRpbmdcIil9LGwucHJvdG90eXBlLnN3aXBlRGlyZWN0aW9uPWZ1bmN0aW9uKCl7dmFyIGk9dGhpcyxlPWkudG91Y2hPYmplY3Quc3RhcnRYLWkudG91Y2hPYmplY3QuY3VyWCx0PWkudG91Y2hPYmplY3Quc3RhcnRZLWkudG91Y2hPYmplY3QuY3VyWSxvPU1hdGguYXRhbjIodCxlKSxzPU1hdGgucm91bmQoMTgwKm8vTWF0aC5QSSk7cmV0dXJuIHM8MCYmKHM9MzYwLU1hdGguYWJzKHMpKSxzPD00NSYmMDw9c3x8czw9MzYwJiYzMTU8PXM/ITE9PT1pLm9wdGlvbnMucnRsP1wibGVmdFwiOlwicmlnaHRcIjoxMzU8PXMmJnM8PTIyNT8hMT09PWkub3B0aW9ucy5ydGw/XCJyaWdodFwiOlwibGVmdFwiOiEwPT09aS5vcHRpb25zLnZlcnRpY2FsU3dpcGluZz8zNTw9cyYmczw9MTM1P1wiZG93blwiOlwidXBcIjpcInZlcnRpY2FsXCJ9LGwucHJvdG90eXBlLnN3aXBlRW5kPWZ1bmN0aW9uKGkpe3ZhciBlLHQsbz10aGlzO2lmKG8uZHJhZ2dpbmc9ITEsby5zd2lwaW5nPSExLG8uc2Nyb2xsaW5nKXJldHVybiBvLnNjcm9sbGluZz0hMTtpZihvLmludGVycnVwdGVkPSExLG8uc2hvdWxkQ2xpY2s9ISgxMDxvLnRvdWNoT2JqZWN0LnN3aXBlTGVuZ3RoKSx2b2lkIDA9PT1vLnRvdWNoT2JqZWN0LmN1clgpcmV0dXJuITE7aWYoITA9PT1vLnRvdWNoT2JqZWN0LmVkZ2VIaXQmJm8uJHNsaWRlci50cmlnZ2VyKFwiZWRnZVwiLFtvLG8uc3dpcGVEaXJlY3Rpb24oKV0pLG8udG91Y2hPYmplY3Quc3dpcGVMZW5ndGg+PW8udG91Y2hPYmplY3QubWluU3dpcGUpe3N3aXRjaCh0PW8uc3dpcGVEaXJlY3Rpb24oKSl7Y2FzZVwibGVmdFwiOmNhc2VcImRvd25cIjplPW8ub3B0aW9ucy5zd2lwZVRvU2xpZGU/by5jaGVja05hdmlnYWJsZShvLmN1cnJlbnRTbGlkZStvLmdldFNsaWRlQ291bnQoKSk6by5jdXJyZW50U2xpZGUrby5nZXRTbGlkZUNvdW50KCksby5jdXJyZW50RGlyZWN0aW9uPTA7YnJlYWs7Y2FzZVwicmlnaHRcIjpjYXNlXCJ1cFwiOmU9by5vcHRpb25zLnN3aXBlVG9TbGlkZT9vLmNoZWNrTmF2aWdhYmxlKG8uY3VycmVudFNsaWRlLW8uZ2V0U2xpZGVDb3VudCgpKTpvLmN1cnJlbnRTbGlkZS1vLmdldFNsaWRlQ291bnQoKSxvLmN1cnJlbnREaXJlY3Rpb249MX1cInZlcnRpY2FsXCIhPXQmJihvLnNsaWRlSGFuZGxlcihlKSxvLnRvdWNoT2JqZWN0PXt9LG8uJHNsaWRlci50cmlnZ2VyKFwic3dpcGVcIixbbyx0XSkpfWVsc2Ugby50b3VjaE9iamVjdC5zdGFydFghPT1vLnRvdWNoT2JqZWN0LmN1clgmJihvLnNsaWRlSGFuZGxlcihvLmN1cnJlbnRTbGlkZSksby50b3VjaE9iamVjdD17fSl9LGwucHJvdG90eXBlLnN3aXBlSGFuZGxlcj1mdW5jdGlvbihpKXt2YXIgZT10aGlzO2lmKCEoITE9PT1lLm9wdGlvbnMuc3dpcGV8fFwib250b3VjaGVuZFwiaW4gZG9jdW1lbnQmJiExPT09ZS5vcHRpb25zLnN3aXBlfHwhMT09PWUub3B0aW9ucy5kcmFnZ2FibGUmJi0xIT09aS50eXBlLmluZGV4T2YoXCJtb3VzZVwiKSkpc3dpdGNoKGUudG91Y2hPYmplY3QuZmluZ2VyQ291bnQ9aS5vcmlnaW5hbEV2ZW50JiZ2b2lkIDAhPT1pLm9yaWdpbmFsRXZlbnQudG91Y2hlcz9pLm9yaWdpbmFsRXZlbnQudG91Y2hlcy5sZW5ndGg6MSxlLnRvdWNoT2JqZWN0Lm1pblN3aXBlPWUubGlzdFdpZHRoL2Uub3B0aW9ucy50b3VjaFRocmVzaG9sZCwhMD09PWUub3B0aW9ucy52ZXJ0aWNhbFN3aXBpbmcmJihlLnRvdWNoT2JqZWN0Lm1pblN3aXBlPWUubGlzdEhlaWdodC9lLm9wdGlvbnMudG91Y2hUaHJlc2hvbGQpLGkuZGF0YS5hY3Rpb24pe2Nhc2VcInN0YXJ0XCI6ZS5zd2lwZVN0YXJ0KGkpO2JyZWFrO2Nhc2VcIm1vdmVcIjplLnN3aXBlTW92ZShpKTticmVhaztjYXNlXCJlbmRcIjplLnN3aXBlRW5kKGkpfX0sbC5wcm90b3R5cGUuc3dpcGVNb3ZlPWZ1bmN0aW9uKGkpe3ZhciBlLHQsbyxzLG4sbD10aGlzLHI9dm9pZCAwIT09aS5vcmlnaW5hbEV2ZW50P2kub3JpZ2luYWxFdmVudC50b3VjaGVzOm51bGw7cmV0dXJuISghbC5kcmFnZ2luZ3x8bC5zY3JvbGxpbmd8fHImJjEhPT1yLmxlbmd0aCkmJihlPWwuZ2V0TGVmdChsLmN1cnJlbnRTbGlkZSksbC50b3VjaE9iamVjdC5jdXJYPXZvaWQgMCE9PXI
3674/clswXS5wYWdlWDppLmNsaWVudFgsbC50b3VjaE9iamVjdC5jdXJZPXZvaWQgMCE9PXI/clswXS5wYWdlWTppLmNsaWVudFksbC50b3VjaE9iamVjdC5zd2lwZUxlbmd0aD1NYXRoLnJvdW5kKE1hdGguc3FydChNYXRoLnBvdyhsLnRvdWNoT2JqZWN0LmN1clgtbC50b3VjaE9iamVjdC5zdGFydFgsMikpKSxuPU1hdGgucm91bmQoTWF0aC5zcXJ0KE1hdGgucG93KGwudG91Y2hPYmplY3QuY3VyWS1sLnRvdWNoT2JqZWN0LnN0YXJ0WSwyKSkpLCFsLm9wdGlvbnMudmVydGljYWxTd2lwaW5nJiYhbC5zd2lwaW5nJiY0PG4/IShsLnNjcm9sbGluZz0hMCk6KCEwPT09bC5vcHRpb25zLnZlcnRpY2FsU3dpcGluZyYmKGwudG91Y2hPYmplY3Quc3dpcGVMZW5ndGg9biksdD1sLnN3aXBlRGlyZWN0aW9uKCksdm9pZCAwIT09aS5vcmlnaW5hbEV2ZW50JiY0PGwudG91Y2hPYmplY3Quc3dpcGVMZW5ndGgmJihsLnN3aXBpbmc9ITAsaS5wcmV2ZW50RGVmYXVsdCgpKSxzPSghMT09PWwub3B0aW9ucy5ydGw/MTotMSkqKGwudG91Y2hPYmplY3QuY3VyWD5sLnRvdWNoT2JqZWN0LnN0YXJ0WD8xOi0xKSwhMD09PWwub3B0aW9ucy52ZXJ0aWNhbFN3aXBpbmcmJihzPWwudG91Y2hPYmplY3QuY3VyWT5sLnRvdWNoT2JqZWN0LnN0YXJ0WT8xOi0xKSxvPWwudG91Y2hPYmplY3Quc3dpcGVMZW5ndGgsKGwudG91Y2hPYmplY3QuZWRnZUhpdD0hMSk9PT1sLm9wdGlvbnMuaW5maW5pdGUmJigwPT09bC5jdXJyZW50U2xpZGUmJlwicmlnaHRcIj09PXR8fGwuY3VycmVudFNsaWRlPj1sLmdldERvdENvdW50KCkmJlwibGVmdFwiPT09dCkmJihvPWwudG91Y2hPYmplY3Quc3dpcGVMZW5ndGgqbC5vcHRpb25zLmVkZ2VGcmljdGlvbixsLnRvdWNoT2JqZWN0LmVkZ2VIaXQ9ITApLCExPT09bC5vcHRpb25zLnZlcnRpY2FsP2wuc3dpcGVMZWZ0PWUrbypzOmwuc3dpcGVMZWZ0PWUrbyoobC4kbGlzdC5oZWlnaHQoKS9sLmxpc3RXaWR0aCkqcywhMD09PWwub3B0aW9ucy52ZXJ0aWNhbFN3aXBpbmcmJihsLnN3aXBlTGVmdD1lK28qcyksITAhPT1sLm9wdGlvbnMuZmFkZSYmITEhPT1sLm9wdGlvbnMudG91Y2hNb3ZlJiYoITA9PT1sLmFuaW1hdGluZz8obC5zd2lwZUxlZnQ9bnVsbCwhMSk6dm9pZCBsLnNldENTUyhsLnN3aXBlTGVmdCkpKSl9LGwucHJvdG90eXBlLnN3aXBlU3RhcnQ9ZnVuY3Rpb24oaSl7dmFyIGUsdD10aGlzO2lmKHQuaW50ZXJydXB0ZWQ9ITAsMSE9PXQudG91Y2hPYmplY3QuZmluZ2VyQ291bnR8fHQuc2xpZGVDb3VudDw9dC5vcHRpb25zLnNsaWRlc1RvU2hvdylyZXR1cm4hKHQudG91Y2hPYmplY3Q9e30pO3ZvaWQgMCE9PWkub3JpZ2luYWxFdmVudCYmdm9pZCAwIT09aS5vcmlnaW5hbEV2ZW50LnRvdWNoZXMmJihlPWkub3JpZ2luYWxFdmVudC50b3VjaGVzWzBdKSx0LnRvdWNoT2JqZWN0LnN0YXJ0WD10LnRvdWNoT2JqZWN0LmN1clg9dm9pZCAwIT09ZT9lLnBhZ2VYOmkuY2xpZW50WCx0LnRvdWNoT2JqZWN0LnN0YXJ0WT10LnRvdWNoT2JqZWN0LmN1clk9dm9pZCAwIT09ZT9lLnBhZ2VZOmkuY2xpZW50WSx0LmRyYWdnaW5nPSEwfSxsLnByb3RvdHlwZS51bmZpbHRlclNsaWRlcz1sLnByb3RvdHlwZS5zbGlja1VuZmlsdGVyPWZ1bmN0aW9uKCl7dmFyIGk9dGhpcztudWxsIT09aS4kc2xpZGVzQ2FjaGUmJihpLnVubG9hZCgpLGkuJHNsaWRlVHJhY2suY2hpbGRyZW4odGhpcy5vcHRpb25zLnNsaWRlKS5kZXRhY2goKSxpLiRzbGlkZXNDYWNoZS5hcHBlbmRUbyhpLiRzbGlkZVRyYWNrKSxpLnJlaW5pdCgpKX0sbC5wcm90b3R5cGUudW5sb2FkPWZ1bmN0aW9uKCl7dmFyIGk9dGhpcztkKFwiLnNsaWNrLWNsb25lZFwiLGkuJHNsaWRlcikucmVtb3ZlKCksaS4kZG90cyYmaS4kZG90cy5yZW1vdmUoKSxpLiRwcmV2QXJyb3cmJmkuaHRtbEV4cHIudGVzdChpLm9wdGlvbnMucHJldkFycm93KSYmaS4kcHJldkFycm93LnJlbW92ZSgpLGkuJG5leHRBcnJvdyYmaS5odG1sRXhwci50ZXN0KGkub3B0aW9ucy5uZXh0QXJyb3cpJiZpLiRuZXh0QXJyb3cucmVtb3ZlKCksaS4kc2xpZGVzLnJlbW92ZUNsYXNzKFwic2xpY2stc2xpZGUgc2xpY2stYWN0aXZlIHNsaWNrLXZpc2libGUgc2xpY2stY3VycmVudFwiKS5hdHRyKFwiYXJpYS1oaWRkZW5cIixcInRydWVcIikuY3NzKFwid2lkdGhcIixcIlwiKX0sbC5wcm90b3R5cGUudW5zbGljaz1mdW5jdGlvbihpKXt0aGlzLiRzbGlkZXIudHJpZ2dlcihcInVuc2xpY2tcIixbdGhpcyxpXSksdGhpcy5kZXN0cm95KCl9LGwucHJvdG90eXBlLnVwZGF0ZUFycm93cz1mdW5jdGlvbigpe3ZhciBpPXRoaXM7TWF0aC5mbG9vcihpLm9wdGlvbnMuc2xpZGVzVG9TaG93LzIpOyEwPT09aS5vcHRpb25zLmFycm93cyYmaS5zbGlkZUNvdW50Pmkub3B0aW9ucy5zbGlkZXNUb1Nob3cmJiFpLm9wdGlvbnMuaW5maW5pdGUmJihpLiRwcmV2QXJyb3cucmVtb3ZlQ2xhc3MoXCJzbGljay1kaXNhYmxlZFwiKS5wcm9wKFwiZGlzYWJsZWRcIiwhMSksaS4kbmV4dEFycm93LnJlbW92ZUNsYXNzKFwic2xpY2stZGlzYWJsZWRcIikucHJvcChcImRpc2FibGVkXCIsITEpLDA9PT1pLmN1cnJlbnRTbGlkZT8oaS4kcHJldkFycm93LmFkZENsYXNzKFwic2xpY2stZGlzYWJsZWRcIikucHJvcChcImRpc2FibGVkXCIsITApLGkuJG5leHRBcnJvdy5yZW1vdmVDbGFzcyhcInNsaWNrLWRpc2FibGVkXCIpLnByb3AoXCJkaXNhYmxlZFwiLCExKSk6KGkuY3VycmVudFNsaWRlPj1pLnNsaWRlQ291bnQtaS5vcHRpb25zLnNsaWRlc1RvU2hvdyYmITE9PT1pLm9wdGlvbnMuY2VudGVyTW9kZXx8aS5jdXJyZW50U2xpZGU+PWkuc2xpZGVDb3VudC0xJiYhMD09PWkub3B0aW9ucy5jZW50ZXJNb2RlKSYmKGkuJG5leHRBcnJvdy5hZGRDbGFzcyhcInNsaWNrLWRpc2FibGVkXCIpLnByb3AoXCJkaXNhYmxlZFwiLCEwKSxpLiRwcmV2QXJyb3cucmVtb3ZlQ2xhc3MoXCJzbGljay1kaXNhYmxlZFwiKS5wcm9wKFwiZGlzYWJsZWRcIiwhMSkpKX0sbC5wcm90b3R5cGUudXBkYXRlRG90cz1mdW5jdGlvbigpe3ZhciBpPXRoaXM7bnVsbCE9PWkuJGRvdHMmJihpLiRkb3RzLmZpbmQoXCJsaVwiKS5yZW1vdmVDbGFzcyhcInNsaWNrLWFjdGl2ZVwiKS5maW5kKFwiYnV0dG9uXCIpLnJlbW92ZUF0dHIoXCJhcmlhLWN1cnJlbnRcIikuZW5kKCkuZW5kKCksaS4kZG90cy5maW5kKFwibGlcIikuZXEoTWF0aC5mbG9vcihpLmN1cnJlbnRTbGlkZS9pLm9wdGlvbnMuc2xpZGVzVG9TY3JvbGwpKS5hZGRDbGFzcyhcInNsaWNrLWFjdGl2ZVwiKS5maW5kKFwiYnV0dG9uXCIpLmF0dHIoXCJhcmlhLWN1cnJlbnRcIiwhMCkuZW5kKCkuZW5kKCkpfSxsLnByb3RvdHlwZS51cGRhdGVTbGlkZVZpc2liaWxpdHk9ZnVuY3Rpb24oKXt0aGlzLiRzbGlkZVRyYWNrLmZpbmQoXCIuc2xpY2st
3674c2xpZGVcIikuYXR0cihcImFyaWEtaGlkZGVuXCIsXCJ0cnVlXCIpLmZpbmQoXCJhLCBpbnB1dCwgYnV0dG9uLCBzZWxlY3RcIikuYXR0cihcInRhYmluZGV4XCIsXCItMVwiKSx0aGlzLiRzbGlkZVRyYWNrLmZpbmQoXCIuc2xpY2stYWN0aXZlXCIpLnJlbW92ZUF0dHIoXCJhcmlhLWhpZGRlblwiKS5maW5kKFwiYSwgaW5wdXQsIGJ1dHRvbiwgc2VsZWN0XCIpLnJlbW92ZUF0dHIoXCJ0YWJpbmRleFwiKX0sbC5wcm90b3R5cGUudmlzaWJpbGl0eT1mdW5jdGlvbigpe3RoaXMub3B0aW9ucy5hdXRvcGxheSYmKGRvY3VtZW50W3RoaXMuaGlkZGVuXT90aGlzLmludGVycnVwdGVkPSEwOnRoaXMuaW50ZXJydXB0ZWQ9ITEpfSxkLmZuLnNsaWNrPWZ1bmN0aW9uKCl7Zm9yKHZhciBpLGU9dGhpcyx0PWFyZ3VtZW50c1swXSxvPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSxzPWUubGVuZ3RoLG49MDtuPHM7bisrKWlmKFwib2JqZWN0XCI9PXR5cGVvZiB0fHx2b2lkIDA9PT10P2Vbbl0uc2xpY2s9bmV3IGwoZVtuXSx0KTppPWVbbl0uc2xpY2tbdF0uYXBwbHkoZVtuXS5zbGljayxvKSx2b2lkIDAhPT1pKXJldHVybiBpO3JldHVybiBlfX0pOyIsIi8vIHN2Zy1wYW4tem9vbSB2My42LjFcclxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FyaXV0dGEvc3ZnLXBhbi16b29tXHJcbiFmdW5jdGlvbiBzKHIsYSxsKXtmdW5jdGlvbiB1KGUsdCl7aWYoIWFbZV0pe2lmKCFyW2VdKXt2YXIgbz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCF0JiZvKXJldHVybi
3674BvKGUsITApO2lmKGgpcmV0dXJuIGgoZSwhMCk7dmFyIG49bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitlK1wiJ1wiKTt0aHJvdyBuLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsbn12YXIgaT1hW2VdPXtleHBvcnRzOnt9fTtyW2VdWzBdLmNhbGwoaS5leHBvcnRzLGZ1bmN0aW9uKHQpe3JldHVybiB1KHJbZV1bMV1bdF18fHQpfSxpLGkuZXhwb3J0cyxzLHIsYSxsKX1yZXR1cm4gYVtlXS5leHBvcnRzfWZvcih2YXIgaD1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLHQ9MDt0PGwubGVuZ3RoO3QrKyl1KGxbdF0pO3JldHVybiB1fSh7MTpbZnVuY3Rpb24odCxlLG8pe3ZhciBzPXQoXCIuL3N2Zy11dGlsaXRpZXNcIik7ZS5leHBvcnRzPXtlbmFibGU6ZnVuY3Rpb24odCl7dmFyIGU9dC5zdmcucXVlcnlTZWxlY3RvcihcImRlZnNcIik7aWYoZXx8KGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHMuc3ZnTlMsXCJkZWZzXCIpLHQuc3ZnLmFwcGVuZENoaWxkKGUpKSwhZS5xdWVyeVNlbGVjdG9yKFwic3R5bGUjc3ZnLXBhbi16b29tLWNvbnRyb2xzLXN0eWxlc1wiKSl7dmFyIG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHMuc3ZnTlMsXCJzdHlsZVwiKTtvLnNldEF0dHJpYnV0ZShcImlkXCIsXCJzdmctcGFuLXpvb20tY29udHJvbHMtc3R5bGVzXCIpLG8uc2V0QXR0cmlidXRlKFwidHlwZVwiLFwidGV4dC9jc3NcIiksby50ZXh0Q29udGVudD1cIi5zdmctcGFuLXpvb20tY29udHJvbCB7IGN1cnNvcjogcG9pbnRlcjsgZmlsbDogYmxhY2s7IGZpbGwtb3BhY2l0eTogMC4zMzM7IH0gLnN2Zy1wYW4tem9vbS1jb250cm9sOmhvdmVyIHsgZmlsbC1vcGFjaXR5OiAwLjg7IH0gLnN2Zy1wYW4tem9vbS1jb250cm9sLWJhY2tncm91bmQgeyBmaWxsOiB3aGl0ZTsgZmlsbC1vcGFjaXR5OiAwLjU7IH0gLnN2Zy1wYW4tem9vbS1jb250cm9sLWJhY2tncm91bmQgeyBmaWxsLW9wYWNpdHk6IDAuODsgfVwiLGUuYXBwZW5kQ2hpbGQobyl9dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHMuc3ZnTlMsXCJnXCIpO24uc2V0QXR0cmlidXRlKFwiaWRcIixcInN2Zy1wYW4tem9vbS1jb250cm9sc1wiKSxuLnNldEF0dHJpYnV0ZShcInRyYW5zZm9ybVwiLFwidHJhbnNsYXRlKFwiKyh0LndpZHRoLTcwKStcIiBcIisodC5oZWlnaHQtNzYpK1wiKSBzY2FsZSgwLjc1KVwiKSxuLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsXCJzdmctcGFuLXpvb20tY29udHJvbFwiKSxuLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZVpvb21Jbih0KSksbi5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVab29tUmVzZXQodCkpLG4uYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlWm9vbU91dCh0KSksdC5zdmcuYXBwZW5kQ2hpbGQobiksdC5jb250cm9sSWNvbnM9bn0sX2NyZWF0ZVpvb21JbjpmdW5jdGlvbih0KXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMocy5zdmdOUyxcImdcIik7ZS5zZXRBdHRyaWJ1dGUoXCJpZFwiLFwic3ZnLXBhbi16b29tLXpvb20taW5cIiksZS5zZXRBdHRyaWJ1dGUoXCJ0cmFuc2Zvcm1cIixcInRyYW5zbGF0ZSgzMC41IDUpIHNjYWxlKDAuMDE1KVwiKSxlLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsXCJzdmctcGFuLXpvb20tY29udHJvbFwiKSxlLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLGZ1bmN0aW9uKCl7dC5nZXRQdWJsaWNJbnN0YW5jZSgpLnpvb21JbigpfSwhMSksZS5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLGZ1bmN0aW9uKCl7dC5nZXRQdWJsaWNJbnN0YW5jZSgpLnpvb21JbigpfSwhMSk7dmFyIG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHMuc3ZnTlMsXCJyZWN0XCIpO28uc2V0QXR0cmlidXRlKFwieFwiLFwiMFwiKSxvLnNldEF0dHJpYnV0ZShcInlcIixcIjBcIiksby5zZXRBdHRyaWJ1dGUoXCJ3aWR0aFwiLFwiMTUwMFwiKSxvLnNldEF0dHJpYnV0ZShcImhlaWdodFwiLFwiMTQwMFwiKSxvLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsXCJzdmctcGFuLXpvb20tY29udHJvbC1iYWNrZ3JvdW5kXCIpLGUuYXBwZW5kQ2hpbGQobyk7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHMuc3ZnTlMsXCJwYXRoXCIpO3JldHVybiBuLnNldEF0dHJpYnV0ZShcImRcIixcIk0xMjgwIDU3NnYxMjhxMCAyNiAtMTkgNDV0LTQ1IDE5aC0zMjB2MzIwcTAgMjYgLTE5IDQ1dC00NSAxOWgtMTI4cS0yNiAwIC00NSAtMTl0LTE5IC00NXYtMzIwaC0zMjBxLTI2IDAgLTQ1IC0xOXQtMTkgLTQ1di0xMjhxMCAtMjYgMTkgLTQ1dDQ1IC0xOWgzMjB2LTMyMHEwIC0yNiAxOSAtNDV0NDUgLTE5aDEyOHEyNiAwIDQ1IDE5dDE5IDQ1djMyMGgzMjBxMjYgMCA0NSAxOXQxOSA0NXpNMTUzNiAxMTIwdi05NjAgcTAgLTExOSAtODQuNSAtMjAzLjV0LTIwMy41IC04NC41aC05NjBxLTExOSAwIC0yMDMuNSA4NC41dC04NC41IDIwMy41djk2MHEwIDExOSA4NC41IDIwMy41dDIwMy41IDg0LjVoOTYwcTExOSAwIDIwMy41IC04NC41dDg0LjUgLTIwMy41elwiKSxuLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsXCJzdmctcGFuLXpvb20tY29udHJvbC1lbGVtZW50XCIpLGUuYXBwZW5kQ2hpbGQobiksZX0sX2NyZWF0ZVpvb21SZXNldDpmdW5jdGlvbih0KXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMocy5zdmdOUyxcImdcIik7ZS5zZXRBdHRyaWJ1dGUoXCJpZFwiLFwic3ZnLXBhbi16b29tLXJlc2V0LXBhbi16b29tXCIpLGUuc2V0QXR0cmlidXRlKFwidHJhbnNmb3JtXCIsXCJ0cmFuc2xhdGUoNSAzNSkgc2NhbGUoMC40KVwiKSxlLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsXCJzdmctcGFuLXpvb20tY29udHJvbFwiKSxlLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLGZ1bmN0aW9uKCl7dC5nZXRQdWJsaWNJbnN0YW5jZSgpLnJlc2V0KCl9LCExKSxlLmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIsZnVuY3Rpb24oKXt0LmdldFB1YmxpY0luc3RhbmNlKCkucmVzZXQoKX0sITEpO3ZhciBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhzLnN2Z05TLFwicmVjdFwiKTtvLnNldEF0dHJpYnV0ZShcInhcIixcIjJcIiksby5zZXRBdHRyaWJ1dGUoXCJ5XCIsXCIyXCIpLG8uc2V0QXR0cmlidXRlKFwid2lkdGhcIixcIjE4MlwiKSxvLnNldEF0dHJpYnV0ZShcImhlaWdodFwiLFwiNThcIiksby5zZXRB
3674dHRyaWJ1dGUoXCJjbGFzc1wiLFwic3ZnLXBhbi16b29tLWNvbnRyb2wtYmFja2dyb3VuZFwiKSxlLmFwcGVuZENoaWxkKG8pO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhzLnN2Z05TLFwicGF0aFwiKTtuLnNldEF0dHJpYnV0ZShcImRcIixcIk0zMy4wNTEsMjAuNjMyYy0wLjc0Mi0wLjQwNi0xLjg1NC0wLjYwOS0zLjMzOC0wLjYwOWgtNy45Njl2OS4yODFoNy43NjljMS41NDMsMCwyLjcwMS0wLjE4OCwzLjQ3My0wLjU2MmMxLjM2NS0wLjY1NiwyLjA0OC0xLjk1MywyLjA0OC0zLjg5MUMzNS4wMzIsMjIuNzU3LDM0LjM3MiwyMS4zNTEsMzMuMDUxLDIwLjYzMnpcIiksbi5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLFwic3ZnLXBhbi16b29tLWNvbnRyb2wtZWxlbWVudFwiKSxlLmFwcGVuZENoaWxkKG4pO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhzLnN2Z05TLFwicGF0aFwiKTtyZXR1cm4gaS5zZXRBdHRyaWJ1dGUoXCJkXCIsXCJNMTcwLjIzMSwwLjVIMTUuODQ3QzcuMTAyLDAuNSwwLjUsNS43MDgsMC41LDExLjg0djM4Ljg2MUMwLjUsNTYuODMzLDcuMTAyLDYxLjUsMTUuODQ3LDYxLjVoMTU0LjM4NGM4Ljc0NSwwLDE1LjI2OS00LjY2NywxNS4yNjktMTAuNzk4VjExLjg0QzE4NS41LDUuNzA4LDE3OC45NzYsMC41LDE3MC4yMzEsMC41eiBNNDIuODM3LDQ4LjU2OWgtNy45NjljLTAuMjE5LTAuNzY2LTAuMzc1LTEuMzgzLTAuNDY5LTEuODUyYy0wLjE4OC0wLjk2OS0wLjI4OS0xLjk2MS0wLjMwNS0yLjk3N2wtMC4wNDctMy4yMTFjLTAuMDMtMi4yMDMtMC40MS0zLjY3Mi0xLjE0Mi00LjQwNmMtMC43MzItMC43MzQtMi4xMDMtMS4xMDItNC4xMTMtMS4xMDJoLTcuMDV2MTMuNTQ3aC03LjA1NVYxNC4wMjJoMTYuNTI0YzIuMzYxLDAuMDQ3LDQuMTc4LDAuMzQ0LDUuNDUsMC44OTFjMS4yNzIsMC41NDcsMi4zNTEsMS4zNTIsMy4yMzQsMi40MTRjMC43MzEsMC44NzUsMS4zMSwxLjg0NCwxLjczNywyLjkwNnMwLjY0LDIuMjczLDAuNjQsMy42MzNjMCwxLjY0MS0wLjQxNCwzLjI1NC0xLjI0Miw0Ljg0cy0yLjE5NSwyLjcwNy00LjEwMiwzLjM2M2MxLjU5NCwwLjY0MSwyLjcyMywxLjU1MSwzLjM4NywyLjczczAuOTk2LDIuOTgsMC45OTYsNS40MDJ2Mi4zMmMwLDEuNTc4LDAuMDYzLDIuNjQ4LDAuMTksMy4yMTFjMC4xOSwwLjg5MSwwLjYzNSwxLjU0NywxLjMzMywxLjk2OVY0OC41Njl6IE03NS41NzksNDguNTY5aC0yNi4xOFYxNC4wMjJoMjUuMzM2djYuMTE3SDU2LjQ1NHY3LjMzNmgxNi43ODF2Nkg1Ni40NTR2OC44ODNoMTkuMTI1VjQ4LjU2OXogTTEwNC40OTcsNDYuMzMxYy0yLjQ0LDIuMDg2LTUuODg3LDMuMTI5LTEwLjM0LDMuMTI5Yy00LjU0OCwwLTguMTI1LTEuMDI3LTEwLjczMS0zLjA4MnMtMy45MDktNC44NzktMy45MDktOC40NzNoNi44OTFjMC4yMjQsMS41NzgsMC42NjIsMi43NTgsMS4zMTYsMy41MzljMS4xOTYsMS40MjIsMy4yNDYsMi4xMzMsNi4xNSwyLjEzM2MxLjczOSwwLDMuMTUxLTAuMTg4LDQuMjM2LTAuNTYyYzIuMDU4LTAuNzE5LDMuMDg3LTIuMDU1LDMuMDg3LTQuMDA4YzAtMS4xNDEtMC41MDQtMi4wMjMtMS41MTItMi42NDhjLTEuMDA4LTAuNjA5LTIuNjA3LTEuMTQ4LTQuNzk2LTEuNjE3bC0zLjc0LTAuODJjLTMuNjc2LTAuODEyLTYuMjAxLTEuNjk1LTcuNTc2LTIuNjQ4Yy0yLjMyOC0xLjU5NC0zLjQ5Mi00LjA4Ni0zLjQ5Mi03LjQ3N2MwLTMuMDk0LDEuMTM5LTUuNjY0LDMuNDE3LTcuNzExczUuNjIzLTMuMDcsMTAuMDM2LTMuMDdjMy42ODUsMCw2LjgyOSwwLjk2NSw5LjQzMSwyLjg5NWMyLjYwMiwxLjkzLDMuOTY2LDQuNzMsNC4wOTMsOC40MDJoLTYuOTM4Yy0wLjEyOC0yLjA3OC0xLjA1Ny0zLjU1NS0yLjc4Ny00LjQzYy0xLjE1NC0wLjU3OC0yLjU4Ny0wLjg2Ny00LjMwMS0wLjg2N2MtMS45MDcsMC0zLjQyOCwwLjM3NS00LjU2NSwxLjEyNWMtMS4xMzgsMC43NS0xLjcwNiwxLjc5Ny0xLjcwNiwzLjE0MWMwLDEuMjM0LDAuNTYxLDIuMTU2LDEuNjgyLDIuNzY2YzAuNzIxLDAuNDA2LDIuMjUsMC44ODMsNC41ODksMS40M2w2LjA2MywxLjQzYzIuNjU3LDAuNjI1LDQuNjQ4LDEuNDYxLDUuOTc1LDIuNTA4YzIuMDU5LDEuNjI1LDMuMDg5LDMuOTc3LDMuMDg5LDcuMDU1QzEwOC4xNTcsNDEuNjI0LDEwNi45MzcsNDQuMjQ1LDEwNC40OTcsNDYuMzMxeiBNMTM5LjYxLDQ4LjU2OWgtMjYuMThWMTQuMDIyaDI1LjMzNnY2LjExN2gtMTguMjgxdjcuMzM2aDE2Ljc4MXY2aC0xNi43ODF2OC44ODNoMTkuMTI1VjQ4LjU2OXogTTE3MC4zMzcsMjAuMTRoLTEwLjMzNnYyOC40M2gtNy4yNjZWMjAuMTRoLTEwLjM4M3YtNi4xMTdoMjcuOTg0VjIwLjE0elwiKSxpLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsXCJzdmctcGFuLXpvb20tY29udHJvbC1lbGVtZW50XCIpLGUuYXBwZW5kQ2hpbGQoaSksZX0sX2NyZWF0ZVpvb21PdXQ6
3674ZnVuY3Rpb24odCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHMuc3ZnTlMsXCJnXCIpO2Uuc2V0QXR0cmlidXRlKFwiaWRcIixcInN2Zy1wYW4tem9vbS16b29tLW91dFwiKSxlLnNldEF0dHJpYnV0ZShcInRyYW5zZm9ybVwiLFwidHJhbnNsYXRlKDMwLjUgNzApIHNjYWxlKDAuMDE1KVwiKSxlLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsXCJzdmctcGFuLXpvb20tY29udHJvbFwiKSxlLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLGZ1bmN0aW9uKCl7dC5nZXRQdWJsaWNJbnN0YW5jZSgpLnpvb21PdXQoKX0sITEpLGUuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIixmdW5jdGlvbigpe3QuZ2V0UHVibGljSW5zdGFuY2UoKS56b29tT3V0KCl9LCExKTt2YXIgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMocy5zdmdOUyxcInJlY3RcIik7by5zZXRBdHRyaWJ1dGUoXCJ4XCIsXCIwXCIpLG8uc2V0QXR0cmlidXRlKFwieVwiLFwiMFwiKSxvLnNldEF0dHJpYnV0ZShcIndpZHRoXCIsXCIxNTAwXCIpLG8uc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsXCIxNDAwXCIpLG8uc2V0QXR0cmlidXRlKFwiY2xhc3NcIixcInN2Zy1wYW4tem9vbS1jb250cm9sLWJhY2tncm91bmRcIiksZS5hcHBlbmRDaGlsZChvKTt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMocy5zdmdOUyxcInBhdGhcIik7cmV0dXJuIG4uc2V0QXR0cmlidXRlKFwiZFwiLFwiTTEyODAgNTc2djEyOHEwIDI2IC0xOSA0NXQtNDUgMTloLTg5NnEtMjYgMCAtNDUgLTE5dC0xOSAtNDV2LTEyOHEwIC0yNiAxOSAtNDV0NDUgLTE5aDg5NnEyNiAwIDQ1IDE5dDE5IDQ1ek0xNTM2IDExMjB2LTk2MHEwIC0xMTkgLTg0LjUgLTIwMy41dC0yMDMuNSAtODQuNWgtOTYwcS0xMTkgMCAtMjAzLjUgODQuNXQtODQuNSAyMDMuNXY5NjBxMCAxMTkgODQuNSAyMDMuNXQyMDMuNSA4NC41aDk2MHExMTkgMCAyMDMuNSAtODQuNSB0ODQuNSAtMjAzLjV6XCIpLG4uc2V0QXR0cmlidXRlKFwiY2xhc3NcIixcInN2Zy1wYW4tem9vbS1jb250cm9sLWVsZW1lbnRcIiksZS5hcHBlbmRDaGlsZChuKSxlfSxkaXNhYmxlOmZ1bmN0aW9uKHQpe3QuY29udHJvbEljb25zJiYodC5jb250cm9sSWNvbnMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0LmNvbnRyb2xJY29ucyksdC5jb250cm9sSWNvbnM9bnVsbCl9fX0se1wiLi9zdmctdXRpbGl0aWVzXCI6NX1dLDI6W2Z1bmN0aW9uKHQsZSxvKXtmdW5jdGlvbiBuKHQsZSl7dGhpcy5pbml0KHQsZSl9dmFyIGk9dChcIi4vc3ZnLXV0aWxpdGllc1wiKSxyPXQoXCIuL3V0aWxpdGllc1wiKTtuLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKHQsZSl7dGhpcy52aWV3cG9ydD10LHRoaXMub3B0aW9ucz1lLHRoaXMub3JpZ2luYWxTdGF0ZT17em9vbToxLHg6MCx5OjB9LHRoaXMuYWN0aXZlU3RhdGU9e3pvb206MSx4OjAseTowfSx0aGlzLnVwZGF0ZUNUTUNhY2hlZD1yLnByb3h5KHRoaXMudXBkYXRlQ1RNLHRoaXMpLHRoaXMucmVxdWVzdEFuaW1hdGlvbkZyYW1lPXIuY3JlYXRlUmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMub3B0aW9ucy5yZWZyZXNoUmF0ZSksdGhpcy52aWV3Qm94PXt4OjAseTowLHdpZHRoOjAsaGVpZ2h0OjB9LHRoaXMuY2FjaGVWaWV3Qm94KCk7dmFyIG89dGhpcy5wcm9jZXNzQ1RNKCk7dGhpcy5zZXRDVE0obyksdGhpcy51cGRhdGVDVE0oKX0sbi5wcm90b3R5cGUuY2FjaGVWaWV3Qm94PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zLnN2Zy5nZXRBdHRyaWJ1dGUoXCJ2aWV3Qm94XCIpO2lmKHQpe3ZhciBlPXQuc3BsaXQoL1tcXHNcXCxdLykuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkubWFwKHBhcnNlRmxvYXQpO3RoaXMudmlld0JveC54PWVbMF0sdGhpcy52aWV3Qm94Lnk9ZVsxXSx0aGlzLnZpZXdCb3gud2lkdGg9ZVsyXSx0aGlzLnZpZXdCb3guaGVpZ2h0PWVbM107dmFyIG89TWF0aC5taW4odGhpcy5vcHRpb25zLndpZHRoL3RoaXMudmlld0JveC53aWR0aCx0aGlzLm9wdGlvbnMuaGVpZ2h0L3RoaXMudmlld0JveC5oZWlnaHQpO3RoaXMuYWN0aXZlU3RhdGUuem9vbT1vLHRoaXMuYWN0aXZlU3RhdGUueD0odGhpcy5vcHRpb25zLndpZHRoLXRoaXMudmlld0JveC53aWR0aCpvKS8yLHRoaXMuYWN0aXZlU3RhdGUueT0odGhpcy5vcHRpb25zLmhlaWdodC10aGlzLnZpZXdCb3guaGVpZ2h0Km8pLzIsdGhpcy51cGRhdGVDVE1Pbk5leHRGcmFtZSgpLHRoaXMub3B0aW9ucy5zdmcucmVtb3ZlQXR0cmlidXRlKFwidmlld0JveFwiKX1lbHNlIHRoaXMuc2ltcGxlVmlld0JveENhY2hlKCl9LG4ucHJvdG90eXBlLnNpbXBsZVZpZXdCb3hDYWNoZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMudmlld3BvcnQuZ2V0QkJveCgpO3RoaXMudmlld0JveC54PXQueCx0aGlzLnZpZXdCb3gueT10LnksdGhpcy52aWV3Qm94LndpZHRoPXQud2lkdGgsdGhpcy52aWV3Qm94LmhlaWdodD10LmhlaWdodH0sbi5wcm90b3R5cGUuZ2V0Vmlld0JveD1mdW5jdGlvbigpe3JldHVybiByLmV4dGVuZCh7fSx0aGlzLnZpZXdCb3gpfSxuLnByb3RvdHlwZS5wcm9jZXNzQ1RNPWZ1bmN0aW9uKCl7dmFyIHQsZT10aGlzLmdldENUTSgpOyh0aGlzLm9wdGlvbnMuZml0fHx0aGlzLm9wdGlvbnMuY29udGFpbikmJih0PXRoaXMub3B0aW9ucy5maXQ/TWF0aC5taW4odGhpcy5vcHRpb25zLndpZHRoL3RoaXMudmlld0JveC53aWR0aCx0aGlzLm9wdGlvbnMuaGVpZ2h0L3RoaXMudmlld0JveC5oZWlnaHQpOk1hdGgubWF4KHRoaXMub3B0aW9ucy53aWR0aC90aGlzLnZpZXdCb3gud2lkdGgsdGhpcy5vcHRpb25zLmhlaWdodC90aGlzLnZpZXdCb3guaGVpZ2h0KSxlLmE9dCxlLmQ9dCxlLmU9LXRoaXMudmlld0JveC54KnQsZS5mPS10aGlzLnZpZXdCb3gueSp0KTtpZih0aGlzLm9wdGlvbnMuY2VudGVyKXt2YXIgbz0uNSoodGhpcy5vcHRpb25zLndpZHRoLSh0aGlzLnZpZXdCb3gud2lkdGgrMip0aGlzLnZpZXdCb3gueCkqZS5hKSxuPS41Kih0aGlzLm9wdGlvbnMuaGVpZ2h0LSh0aGlzLnZpZXdCb3guaGVpZ2h0KzIqdGhpcy52aWV3Qm94LnkpKmUuYSk7ZS5lPW8sZS5mPW59cmV0dXJuIHRoaXMub3JpZ2luYWxTdGF0ZS56b29tPWUuYSx0aGlzLm9yaWdpbmFsU3RhdGUueD1lLmUsdGhpcy5vcmlnaW5hbFN0YXRlLnk9ZS5mLGV9LG4ucHJvdG90eXBlLmdldE9yaWdpbmFsU3RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gci5leHRlbmQoe30sdGhpcy5vcmlnaW5hbFN0YXRlKX0sbi5wcm90b3R5cGUuZ2V0U3RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gci5leHRlbmQoe30sdGhpcy5hY3RpdmVTdGF0ZSl9LG4ucHJvdG90eXBlLmdldFpvb209ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hY3RpdmVTdGF0ZS56b29tfSxuLnByb3RvdHlwZS5nZXRSZWxhdGl2ZVpvb209ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hY3RpdmVTdGF0ZS56b29tL3RoaXMub3JpZ2luYWxTdGF0ZS56b29tfSxuLnByb3RvdHlwZS5jb21wdXRlUmVsYXRpdmVab29tPWZ1bmN0aW9uKHQpe3JldHVybiB0L3RoaXMub3JpZ2luYWxTdGF0ZS56b29tfSxuLnByb3RvdHlwZS5nZXRQYW49ZnVuY3Rpb24oKXtyZXR1cm57eDp0aGlzLmFjdGl2ZVN0YXRlLngseTp0aGlzLmFjdGl2ZVN0YXRlLnl9fSxuLnByb3RvdHlwZS5nZXRDVE09ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMuc3ZnLmNyZWF0ZVNWR01hdHJpeCgpO3JldHVybiB0LmE9dGhpcy5hY3RpdmVTdGF0ZS56b29tLHQuYj0wLHQuYz0wLHQuZD10aGlzLmFjdGl2ZVN0YXRlLnpvb20sdC5lPXRoaXMuYWN0aXZlU3RhdGUueCx0LmY9dGhpcy5hY3RpdmVTdGF0ZS55LHR9LG4ucHJvdG90eXBlLnNldENUTT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmlzWm9vbURpZmZlcmVudCh0KSxvPXRoaXMuaXNQYW5EaWZmZXJlbnQodCk7
3674aWYoZXx8byl7aWYoZSYmKCExPT09dGhpcy5vcHRpb25zLmJlZm9yZVpvb20odGhpcy5nZXRSZWxhdGl2ZVpvb20oKSx0aGlzLmNvbXB1dGVSZWxhdGl2ZVpvb20odC5hKSk/KHQuYT10LmQ9dGhpcy5hY3RpdmVTdGF0ZS56b29tLGU9ITEpOih0aGlzLnVwZGF0ZUNhY2hlKHQpLHRoaXMub3B0aW9ucy5vblpvb20odGhpcy5nZXRSZWxhdGl2ZVpvb20oKSkpKSxvKXt2YXIgbj10aGlzLm9wdGlvbnMuYmVmb3JlUGFuKHRoaXMuZ2V0UGFuKCkse3g6dC5lLHk6dC5mfSksaT0hMSxzPSExOyExPT09bj8odC5lPXRoaXMuZ2V0UGFuKCkueCx0LmY9dGhpcy5nZXRQYW4oKS55LGk9cz0hMCk6ci5pc09iamVjdChuKSYmKCExPT09bi54Pyh0LmU9dGhpcy5nZXRQYW4oKS54LGk9ITApOnIuaXNOdW1iZXIobi54KSYmKHQuZT1uLngpLCExPT09bi55Pyh0LmY9dGhpcy5nZXRQYW4oKS55LHM9ITApOnIuaXNOdW1iZXIobi55KSYmKHQuZj1uLnkpKSxpJiZzfHwhdGhpcy5pc1BhbkRpZmZlcmVudCh0KT9vPSExOih0aGlzLnVwZGF0ZUNhY2hlKHQpLHRoaXMub3B0aW9ucy5vblBhbih0aGlzLmdldFBhbigpKSl9KGV8fG8pJiZ0aGlzLnVwZGF0ZUNUTU9uTmV4dEZyYW1lKCl9fSxuLnByb3RvdHlwZS5pc1pvb21EaWZmZXJlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuYWN0aXZlU3RhdGUuem9vbSE9PXQuYX0sbi5wcm90b3R5cGUuaXNQYW5EaWZmZXJlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuYWN0aXZlU3RhdGUueCE9PXQuZXx8dGhpcy5hY3RpdmVTdGF0ZS55IT09dC5mfSxuLnByb3RvdHlwZS51cGRhdGVDYWNoZT1mdW5jdGlvbih0KXt0aGlzLmFjdGl2ZVN0YXRlLnpvb209dC5hLHRoaXMuYWN0aXZlU3RhdGUueD10LmUsdGhpcy5hY3RpdmVTdGF0ZS55PXQuZn0sbi5wcm90b3R5cGUucGVuZGluZ1VwZGF0ZT0hMSxuLnByb3RvdHlwZS51cGRhdGVDVE1Pbk5leHRGcmFtZT1mdW5jdGlvbigpe3RoaXMucGVuZGluZ1VwZGF0ZXx8KHRoaXMucGVuZGluZ1VwZGF0ZT0hMCx0aGlzLnJlcXVlc3RBbmltYXRpb25GcmFtZS5jYWxsKHdpbmRvdyx0aGlzLnVwZGF0ZUNUTUNhY2hlZCkpfSxuLnByb3RvdHlwZS51cGRhdGVDVE09ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdldENUTSgpO2kuc2V0Q1RNKHRoaXMudmlld3BvcnQsdCx0aGlzLmRlZnMpLHRoaXMucGVuZGluZ1VwZGF0ZT0hMSx0aGlzLm9wdGlvbnMub25VcGRhdGVkQ1RNJiZ0aGlzLm9wdGlvbnMub25VcGRhdGVkQ1RNKHQpfSxlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IG4odCxlKX19LHtcIi4vc3ZnLXV0aWxpdGllc1wiOjUsXCIuL3V0aWxpdGllc1wiOjd9XSwzOltmdW5jdGlvbih0LGUsbyl7dmFyIG4saT10KFwiLi9zdmctcGFuLXpvb20uanNcIik7bj13aW5kb3csZG9jdW1lbnQsXCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShcInN2Zy1wYW4tem9vbVwiLGZ1bmN0aW9uKCl7cmV0dXJuIGl9KTp2b2lkIDAhPT1lJiZlLmV4cG9ydHMmJihlLmV4cG9ydHM9aSxuLnN2Z1Bhblpvb209aSl9LHtcIi4vc3ZnLXBhbi16b29tLmpzXCI6NH1dLDQ6W2Z1bmN0aW9uKHQsZSxvKXtmdW5jdGlvbiBpKHQsZSl7dGhpcy5pbml0KHQsZSl9dmFyIG49dChcIi4vdW5pd2hlZWxcIikscz10KFwiLi9jb250cm9sLWljb25zXCIpLHI9dChcIi4vdXRpbGl0aWVzXCIpLGE9dChcIi4vc3ZnLXV0aWxpdGllc1wiKSxsPXQoXCIuL3NoYWRvdy12aWV3cG9ydFwiKSx1PXt2aWV3cG9ydFNlbGVjdG9yOlwiLnN2Zy1wYW4tem9vbV92aWV3cG9ydFwiLHBhbkVuYWJsZWQ6ITAsY29udHJvbEljb25zRW5hYmxlZDohMSx6b29tRW5hYmxlZDohMCxkYmxDbGlja1pvb21FbmFibGVkOiEwLG1vdXNlV2hlZWxab29tRW5hYmxlZDohMCxwcmV2ZW50TW91c2VFdmVudHNEZWZhdWx0OiEwLHpvb21TY2FsZVNlbnNpdGl2aXR5Oi4xLG1pblpvb206LjUsbWF4Wm9vbToxMCxmaXQ6ITAsY29udGFpbjohMSxjZW50ZXI6ITAscmVmcmVzaFJhdGU6XCJhdXRvXCIsYmVmb3JlWm9vbTpudWxsLG9uWm9vbTpudWxsLGJlZm9yZVBhbjpudWxsLG9uUGFuOm51bGwsY3VzdG9tRXZlbnRzSGFuZGxlcjpudWxsLGV2ZW50c0xpc3RlbmVyRWxlbWVudDpudWxsLG9uVXBkYXRlZENUTTpudWxsfSxoPXtwYXNzaXZlOiEwfTtpLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKHQsZSl7dmFyIG89dGhpczt0aGlzLnN2Zz10LHRoaXMuZGVmcz10LnF1ZXJ5U2VsZWN0b3IoXCJkZWZzXCIpLGEuc2V0dXBTdmdBdHRyaWJ1dGVzKHRoaXMuc3ZnKSx0aGlzLm9wdGlvbnM9ci5leHRlbmQoci5leHRlbmQoe30sdSksZSksdGhpcy5zdGF0ZT1cIm5vbmVcIjt2YXIgbj1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdE5vcm1hbGl6ZWQodCk7dGhpcy53aWR0aD1uLndpZHRoLHRoaXMuaGVpZ2h0PW4uaGVpZ2h0LHRoaXMudmlld3BvcnQ9bChhLmdldE9yQ3JlYXRlVmlld3BvcnQodGhpcy5zdmcsdGhpcy5vcHRpb25zLnZpZXdwb3J0U2VsZWN0b3IpLHtzdmc6dGhpcy5zdmcsd2lkdGg6dGhpcy53aWR0aCxoZWlnaHQ6dGhpcy5oZWlnaHQsZml0OnRoaXMub3B0aW9ucy5maXQsY29udGFpbjp0aGlzLm9wdGlvbnMuY29udGFpbixjZW50ZXI6dGhpcy5vcHRpb25zLmNlbnRlcixyZWZyZXNoUmF0ZTp0aGlzLm9wdGlvbnMucmVmcmVzaFJhdGUsYmVmb3JlWm9vbTpmdW5jdGlvbih0LGUpe2lmKG8udmlld3BvcnQmJm8ub3B0aW9ucy5iZWZvcmVab29tKXJldHVybi
3674BvLm9wdGlvbnMuYmVmb3JlWm9vbSh0LGUpfSxvblpvb206ZnVuY3Rpb24odCl7aWYoby52aWV3cG9ydCYmby5vcHRpb25zLm9uWm9vbSlyZXR1cm4gby5vcHRpb25zLm9uWm9vbSh0KX0sYmVmb3JlUGFuOmZ1bmN0aW9uKHQsZSl7aWYoby52aWV3cG9ydCYmby5vcHRpb25zLmJlZm9yZVBhbilyZXR1cm4gby5vcHRpb25zLmJlZm9yZVBhbih0LGUpfSxvblBhbjpmdW5jdGlvbih0KXtpZihvLnZpZXdwb3J0JiZvLm9wdGlvbnMub25QYW4pcmV0dXJuIG8ub3B0aW9ucy5vblBhbih0KX0sb25VcGRhdGVkQ1RNOmZ1bmN0aW9uKHQpe2lmKG8udmlld3BvcnQmJm8ub3B0aW9ucy5vblVwZGF0ZWRDVE0pcmV0dXJuIG8ub3B0aW9ucy5vblVwZGF0ZWRDVE0odCl9fSk7dmFyIGk9dGhpcy5nZXRQdWJsaWNJbnN0YW5jZSgpO2kuc2V0QmVmb3JlWm9vbSh0aGlzLm9wdGlvbnMuYmVmb3JlWm9vbSksaS5zZXRPblpvb20odGhpcy5vcHRpb25zLm9uWm9vbSksaS5zZXRCZWZvcmVQYW4odGhpcy5vcHRpb25zLmJlZm9yZVBhbiksaS5zZXRPblBhbih0aGlzLm9wdGlvbnMub25QYW4pLGkuc2V0T25VcGRhdGVkQ1RNKHRoaXMub3B0aW9ucy5vblVwZGF0ZWRDVE0pLHRoaXMub3B0aW9ucy5jb250cm9sSWNvbnNFbmFibGVkJiZzLmVuYWJsZSh0aGlzKSx0aGlzLmxhc3RNb3VzZVdoZWVsRXZlbnRUaW1lPURhdGUubm93KCksdGhpcy5zZXR1cEhhbmRsZXJzKCl9LGkucHJvdG90eXBlLnNldHVwSGFuZGxlcnM9ZnVuY3Rpb24oKXt2YXIgbz10aGlzLG49bnVsbDtpZih0aGlzLmV2ZW50TGlzdGVuZXJzPXttb3VzZWRvd246ZnVuY3Rpb24odCl7dmFyIGU9by5oYW5kbGVNb3VzZURvd24odCxuKTtyZXR1cm4gbj10LGV9LHRvdWNoc3RhcnQ6ZnVuY3Rpb24odCl7dmFyIGU9by5oYW5kbGVNb3VzZURvd24odCxuKTtyZXR1cm4gbj10LGV9LG1vdXNldXA6ZnVuY3Rpb24odCl7cmV0dXJuIG8uaGFuZGxlTW91c2VVcCh0KX0sdG91Y2hlbmQ6ZnVuY3Rpb24odCl7cmV0dXJuIG8uaGFuZGxlTW91c2VVcCh0KX0sbW91c2Vtb3ZlOmZ1bmN0aW9uKHQpe3JldHVybiBvLmhhbmRsZU1vdXNlTW92ZSh0KX0sdG91Y2htb3ZlOmZ1bmN0aW9uKHQpe3JldHVybiBvLmhhbmRsZU1vdXNlTW92ZSh0KX0sbW91c2VsZWF2ZTpmdW5jdGlvbih0KXtyZXR1cm4gby5oYW5kbGVNb3VzZVVwKHQpfSx0b3VjaGxlYXZlOmZ1bmN0aW9uKHQpe3JldHVybiBvLmhhbmRsZU1vdXNlVXAodCl9LHRvdWNoY2FuY2VsOmZ1bmN0aW9uKHQpe3JldHVybiBvLmhhbmRsZU1vdXNlVXAodCl9fSxudWxsIT10aGlzLm9wdGlvbnMuY3VzdG9tRXZlbnRzSGFuZGxlcil7dGhpcy5vcHRpb25zLmN1c3RvbUV2ZW50c0hhbmRsZXIuaW5pdCh7c3ZnRWxlbWVudDp0aGlzLnN2ZyxldmVudHNMaXN0ZW5lckVsZW1lbnQ6dGhpcy5vcHRpb25zLmV2ZW50c0xpc3RlbmVyRWxlbWVudCxpbnN0YW5jZTp0aGlzLmdldFB1YmxpY0luc3RhbmNlKCl9KTt2YXIgdD10aGlzLm9wdGlvbnMuY3VzdG9tRXZlbnRzSGFuZGxlci5oYWx0RXZlbnRMaXN0ZW5lcnM7aWYodCYmdC5sZW5ndGgpZm9yKHZhciBlPXQubGVuZ3RoLTE7MDw9ZTtlLS0pdGhpcy5ldmVudExpc3RlbmVycy5oYXNPd25Qcm9wZXJ0eSh0W2VdKSYmZGVsZXRlIHRoaXMuZXZlbnRMaXN0ZW5lcnNbdFtlXV19Zm9yKHZhciBpIGluIHRoaXMuZXZlbnRMaXN0ZW5lcnMpKHRoaXMub3B0aW9ucy5ldmVudHNMaXN0ZW5lckVsZW1lbnR8fHRoaXMuc3ZnKS5hZGRFdmVudExpc3RlbmVyKGksdGhpcy5ldmVudExpc3RlbmVyc1tpXSwhdGhpcy5vcHRpb25zLnByZXZlbnRNb3VzZUV2ZW50c0RlZmF1bHQmJmgpO3RoaXMub3B0aW9ucy5tb3VzZVdoZWVsWm9vbUVuYWJsZWQmJih0aGlzLm9wdGlvbnMubW91c2VXaGVlbFpvb21FbmFibGVkPSExLHRoaXMuZW5hYmxlTW91c2VXaGVlbFpvb20oKSl9LGkucHJvdG90eXBlLmVuYWJsZU1vdXNlV2hlZWxab29tPWZ1bmN0aW9uKCl7aWYoIXRoaXMub3B0aW9ucy5tb3VzZVdoZWVsWm9vbUVuYWJsZWQpe3ZhciBlPXRoaXM7dGhpcy53aGVlbExpc3RlbmVyPWZ1bmN0aW9uKHQpe3JldHVybiBlLmhhbmRsZU1vdXNlV2hlZWwodCl9O3ZhciB0PSF0aGlzLm9wdGlvbnMucHJldmVudE1vdXNlRXZlbnRzRGVmYXVsdDtuLm9uKHRoaXMub3B0aW9ucy5ldmVudHNMaXN0ZW5lckVsZW1lbnR8fHRoaXMuc3ZnLHRoaXMud2hlZWxMaXN0ZW5lcix0KSx0aGlzLm9wdGlvbnMubW91c2VXaGVlbFpvb21FbmFibGVkPSEwfX0saS5wcm90b3R5cGUuZGlzYWJsZU1vdXNlV2hlZWxab29tPWZ1bmN0aW9uKCl7aWYodGhpcy5vcHRpb25zLm1vdXNlV2hlZWxab29tRW5hYmxlZCl7dmFyIHQ9IXRoaXMub3B0aW9ucy5wcmV2ZW50TW91c2VFdmVudHNEZWZhdWx0O24ub2ZmKHRoaXMub3B0aW9ucy5ldmVudHNMaXN0ZW5lckVsZW1lbnR8fHRoaXMuc3ZnLHRoaXMud2hlZWxMaXN0ZW5lcix0KSx0aGlzLm9wdGlvbnMubW91c2VXaGVlbFpvb21FbmFibGVkPSExfX0saS5wcm90b3R5cGUuaGFuZGxlTW91c2VXaGVlbD1mdW5jdGlvbih0KXtpZih0aGlzLm9wdGlvbnMuem9vbUVuYWJsZWQmJlwibm9uZVwiPT09dGhpcy5zdGF0ZSl7dGhpcy5vcHRpb25zLnByZXZlbnRNb3VzZUV2ZW50c0RlZmF1bHQmJih0LnByZXZlbn
3674REZWZhdWx0P3QucHJldmVudERlZmF1bHQoKTp0LnJldHVyblZhbHVlPSExKTt2YXIgZT10LmRlbHRhWXx8MSxvPURhdGUubm93KCktdGhpcy5sYXN0TW91c2VXaGVlbEV2ZW50VGltZSxuPTMrTWF0aC5tYXgoMCwzMC1vKTt0aGlzLmxhc3RNb3VzZVdoZWVsRXZlbnRUaW1lPURhdGUubm93KCksXCJkZWx0YU1vZGVcImluIHQmJjA9PT10LmRlbHRhTW9kZSYmdC53aGVlbERlbHRhJiYoZT0wPT09dC5kZWx0YVk/MDpNYXRoLmFicyh0LndoZWVsRGVsdGEpL3QuZGVsdGFZKSxlPS0uMzxlJiZlPC4zP2U6KDA8ZT8xOi0xKSpNYXRoLmxvZyhNYXRoLmFicyhlKSsxMCkvbjt2YXIgaT10aGlzLnN2Zy5nZXRTY3JlZW5DVE0oKS5pbnZlcnNlKCkscz1hLmdldEV2ZW50UG9pbnQodCx0aGlzLnN2ZykubWF0cml4VHJhbnNmb3JtKGkpLHI9TWF0aC5wb3coMSt0aGlzLm9wdGlvbnMuem9vbVNjYWxlU2Vuc2l0aXZpdHksLTEqZSk7dGhpcy56b29tQXRQb2ludChyLHMpfX0saS5wcm90b3R5cGUuem9vbUF0UG9pbnQ9ZnVuY3Rpb24odCxlLG8pe3ZhciBuPXRoaXMudmlld3BvcnQuZ2V0T3JpZ2luYWxTdGF0ZSgpO28/KHQ9TWF0aC5tYXgodGhpcy5vcHRpb25zLm1pblpvb20qbi56b29tLE1hdGgubWluKHRoaXMub3B0aW9ucy5tYXhab29tKm4uem9vbSx0KSksdC89dGhpcy5nZXRab29tKCkpOnRoaXMuZ2V0Wm9vbSgpKnQ8dGhpcy5vcHRpb25zLm1pblpvb20qbi56b29tP3Q9dGhpcy5vcHRpb25zLm1pblpvb20qbi56b29tL3RoaXMuZ2V0Wm9vbSgpOnRoaXMuZ2V0Wm9vbSgpKnQ+dGhpcy5vcHRpb25zLm1heFpvb20qbi56b29tJiYodD10aGlzLm9wdGlvbnMubWF4Wm9vbSpuLnpvb20vdGhpcy5nZXRab29tKCkpO3ZhciBpPXRoaXMudmlld3BvcnQuZ2V0Q1RNKCkscz1lLm1hdHJpeFRyYW5zZm9ybShpLmludmVyc2UoKSkscj10aGlzLnN2Zy5jcmVhdGVTVkdNYXRyaXgoKS50cmFuc2xhdGUocy54LHMueSkuc2NhbGUodCkudHJhbnNsYXRlKC1zLngsLXMueSksYT1pLm11bHRpcGx5KHIpO2EuYSE9PWkuYSYmdGhpcy52aWV3cG9ydC5zZXRDVE0oYSl9LGkucHJvdG90eXBlLnpvb209ZnVuY3Rpb24odCxlKXt0aGlzLnpvb21BdFBvaW50KHQsYS5nZXRTdmdDZW50ZXJQb2ludCh0aGlzLnN2Zyx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KSxlKX0saS5wcm90b3R5cGUucHVibGljWm9vbT1mdW5jdGlvbih0LGUpe2UmJih0PXRoaXMuY29tcHV0ZUZyb21SZWxhdGl2ZVpvb20odCkpLHRoaXMuem9vbSh0LGUpfSxpLnByb3RvdHlwZS5wdWJsaWNab29tQXRQb2ludD1mdW5jdGlvbih0LGUsbyl7aWYobyYmKHQ9dGhpcy5jb21wdXRlRnJvbVJlbGF0aXZlWm9vbSh0KSksXCJTVkdQb2ludFwiIT09ci5nZXRUeXBlKGUpKXtpZighKFwieFwiaW4gZSYmXCJ5XCJpbiBlKSl0aHJvdyBuZXcgRXJyb3IoXCJHaXZlbiBwb2ludCBpcyBpbnZhbGlkXCIpO2U9YS5jcmVhdGVTVkdQb2ludCh0aGlzLnN2ZyxlLngsZS55KX10aGlzLnpvb21BdFBvaW50KHQsZSxvKX0saS5wcm90b3R5cGUuZ2V0Wm9vbT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZpZXdwb3J0LmdldFpvb20oKX0saS5wcm90b3R5cGUuZ2V0UmVsYXRpdmVab29tPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmlld3BvcnQuZ2V0UmVsYXRpdmVab29tKCl9LGkucHJvdG90eXBlLmNvbXB1dGVGcm9tUmVsYXRpdmVab29tPWZ1bmN0aW9uKHQpe3JldHVybiB0KnRoaXMudmlld3BvcnQuZ2V0T3JpZ2luYWxTdGF0ZSgpLnpvb219LGkucHJvdG90eXBlLnJlc2V0Wm9vbT1mdW5jdGlvbigpe3ZhciB0PXRoaXMudmlld3BvcnQuZ2V0T3JpZ2luYWxTdGF0ZSgpO3RoaXMuem9vbSh0Lnpvb20sITApfSxpLnByb3RvdHlwZS5yZXNldFBhbj1mdW5jdGlvbigpe3RoaXMucGFuKHRoaXMudmlld3BvcnQuZ2V0T3JpZ2luYWxTdGF0ZSgpKX0saS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLnJlc2V0Wm9vbSgpLHRoaXMucmVzZXRQYW4oKX0saS5wcm90b3R5cGUuaGFuZGxlRGJsQ2xpY2s9ZnVuY3Rpb24odCl7dmFyIGU7aWYoKHRoaXMub3B0aW9ucy5wcmV2ZW50TW91c2VFdmVudHNEZWZhdWx0JiYodC5wcmV2ZW50RGVmYXVsdD90LnByZXZlbnREZWZhdWx0KCk6dC5yZXR1cm5WYWx1ZT0hMSksdGhpcy5vcHRpb25zLmNvbnRyb2xJY29uc0VuYWJsZWQpJiYtMTwodC50YXJnZXQuZ2V0QXR0cmlidXRlKFwiY2xhc3NcIil8fFwiXCIpLmluZGV4T2YoXCJzdmctcGFuLXpvb20tY29udHJvbFwiKSlyZXR1cm4hMTtlPXQuc2hpZnRLZXk/MS8oMiooMSt0aGlzLm9wdGlvbnMuem9vbVNjYWxlU2Vuc2l0aXZpdHkpKToyKigxK3RoaXMub3B0aW9ucy56b29tU2NhbGVTZW5zaXRpdml0eSk7dmFyIG89YS5nZXRFdmVudFBvaW50KHQsdGhpcy5zdmcpLm1hdHJpeFRyYW5zZm9ybSh0aGlzLnN2Zy5nZXRTY3JlZW5DVE0oKS5pbnZlcnNlKCkpO3RoaXMuem9vbUF0UG9pbnQoZSxvKX0saS5wcm90b3R5cGUuaGFuZGxlTW91c2VEb3duPWZ1bmN0aW9uKHQsZSl7dGhpcy5vcHRpb25zLnByZXZlbnRNb3VzZUV2ZW50c0RlZmF1bHQmJih0LnByZXZlbn
3674REZWZhdWx0P3QucHJldmVudERlZmF1bHQoKTp0LnJldHVyblZhbHVlPSExKSxyLm1vdXNlQW5kVG91Y2hOb3JtYWxpemUodCx0aGlzLnN2ZyksdGhpcy5vcHRpb25zLmRibENsaWNrWm9vbUVuYWJsZWQmJnIuaXNEYmxDbGljayh0LGUpP3RoaXMuaGFuZGxlRGJsQ2xpY2sodCk6KHRoaXMuc3RhdGU9XCJwYW5cIix0aGlzLmZpcnN0RXZlbnRDVE09dGhpcy52aWV3cG9ydC5nZXRDVE0oKSx0aGlzLnN0YXRlT3JpZ2luPWEuZ2V0RXZlbnRQb2ludCh0LHRoaXMuc3ZnKS5tYXRyaXhUcmFuc2Zvcm0odGhpcy5maXJzdEV2ZW50Q1RNLmludmVyc2UoKSkpfSxpLnByb3RvdHlwZS5oYW5kbGVNb3VzZU1vdmU9ZnVuY3Rpb24odCl7aWYodGhpcy5vcHRpb25zLnByZXZlbnRNb3VzZUV2ZW50c0RlZmF1bHQmJih0LnByZXZlbnREZWZhdWx0P3QucHJldmVudERlZmF1bHQoKTp0LnJldHVyblZhbHVlPSExKSxcInBhblwiPT09dGhpcy5zdGF0ZSYmdGhpcy5vcHRpb25zLnBhbkVuYWJsZWQpe3ZhciBlPWEuZ2V0RXZlbnRQb2ludCh0LHRoaXMuc3ZnKS5tYXRyaXhUcmFuc2Zvcm0odGhpcy5maXJzdEV2ZW50Q1RNLmludmVyc2UoKSksbz10aGlzLmZpcnN0RXZlbnRDVE0udHJhbnNsYXRlKGUueC10aGlzLnN0YXRlT3JpZ2luLngsZS55LXRoaXMuc3RhdGVPcmlnaW4ueSk7dGhpcy52aWV3cG9ydC5zZXRDVE0obyl9fSxpLnByb3RvdHlwZS5oYW5kbGVNb3VzZVVwPWZ1bmN0aW9uKHQpe3RoaXMub3B0aW9ucy5wcmV2ZW50TW91c2VFdmVudHNEZWZhdWx0JiYodC5wcmV2ZW50RGVmYXVsdD90LnByZXZlbnREZWZhdWx0KCk6dC5yZXR1cm5WYWx1ZT0hMSksXCJwYW5cIj09PXRoaXMuc3RhdGUmJih0aGlzLnN0YXRlPVwibm9uZVwiKX0saS5wcm90b3R5cGUuZml0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy52aWV3cG9ydC5nZXRWaWV3Qm94KCksZT1NYXRoLm1pbih0aGlzLndpZHRoL3Qud2lkdGgsdGhpcy5oZWlnaHQvdC5oZWlnaHQpO3RoaXMuem9vbShlLCEwKX0saS5wcm90b3R5cGUuY29udGFpbj1mdW5jdGlvbigpe3ZhciB0PXRoaXMudmlld3BvcnQuZ2V0Vmlld0JveCgpLGU9TWF0aC5tYXgodGhpcy53aWR0aC90LndpZHRoLHRoaXMuaGVpZ2h0L3QuaGVpZ2h0KTt0aGlzLnpvb20oZSwhMCl9LGkucHJvdG90eXBlLmNlbnRlcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMudmlld3BvcnQuZ2V0Vmlld0JveCgpLGU9LjUqKHRoaXMud2lkdGgtKHQud2lkdGgrMip0LngpKnRoaXMuZ2V0Wm9vbSgpKSxvPS41Kih0aGlzLmhlaWdodC0odC5oZWlnaHQrMip0LnkpKnRoaXMuZ2V0Wm9vbSgpKTt0aGlzLmdldFB1YmxpY0luc3RhbmNlKCkucGFuKHt4OmUseTpvfSl9LGkucHJvdG90eXBlLnVwZGF0ZUJCb3g9ZnVuY3Rpb24oKXt0aGlzLnZpZXdwb3J0LnNpbXBsZVZpZXdCb3hDYWNoZSgpfSxpLnByb3RvdHlwZS5wYW49ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy52aWV3cG9ydC5nZXRDVE0oKTtlLmU9dC54LGUuZj10LnksdGhpcy52aWV3cG9ydC5zZXRDVE0oZSl9LGkucHJvdG90eXBlLnBhbkJ5PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudmlld3BvcnQuZ2V0Q1RNKCk7ZS5lKz10LngsZS5mKz10LnksdGhpcy52aWV3cG9ydC5zZXRDVE0oZSl9LGkucHJvdG90eXBlLmdldFBhbj1mdW5jdGlvbigpe3ZhciB0PXRoaXMudmlld3BvcnQuZ2V0U3RhdGUoKTtyZXR1cm57eDp0LngseTp0Lnl9fSxpLnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24oKXt2YXIgdD1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdE5vcm1hbGl6ZWQodGhpcy5zdmcpO3RoaXMud2lkdGg9dC53aWR0aCx0aGlzLmhlaWdodD10LmhlaWdodDt2YXIgZT10aGlzLnZpZXdwb3J0O2Uub3B0aW9ucy53aWR0aD10aGlzLndpZHRoLGUub3B0aW9ucy5oZWlnaHQ9dGhpcy5oZWlnaHQsZS5wcm9jZXNzQ1RNKCksdGhpcy5vcHRpb25zLmNvbnRyb2xJY29uc0VuYWJsZWQmJih0aGlzLmdldFB1YmxpY0luc3RhbmNlKCkuZGlzYWJsZUNvbnRyb2xJY29ucygpLHRoaXMuZ2V0UHVibGljSW5zdGFuY2UoKS5lbmFibGVDb250cm9sSWNvbnMoKSl9LGkucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2Zvcih2YXIgdCBpbiB0aGlzLmJlZm9yZVpvb209bnVsbCx0aGlzLm9uWm9vbT1udWxsLHRoaXMuYmVmb3JlUGFuPW51bGwsdGhpcy5vblBhbj1udWxsLCh0aGlzLm9uVXBkYXRlZENUTT1udWxsKSE9dGhpcy5vcHRpb25zLmN1c3RvbUV2ZW50c0hhbmRsZXImJnRoaXMub3B0aW9ucy5jdXN0b21FdmVudHNIYW5kbGVyLmRlc3Ryb3koe3N2Z0VsZW1lbnQ6dGhpcy5zdmcsZXZlbnRzTGlzdGVuZXJFbGVtZW50OnRoaXMub3B0aW9ucy5ldmVudHNMaXN0ZW5lckVsZW1lbnQsaW5zdGFuY2U6dGhpcy5nZXRQdWJsaWNJbnN0YW5jZSgpfSksdGhpcy5ldmVudExpc3RlbmVycykodGhpcy5vcHRpb25zLmV2ZW50c0xpc3RlbmVyRWxlbWVudHx8dGhpcy5zdmcpLnJlbW92ZUV2ZW50TGlzdGVuZXIodCx0aGlzLmV2ZW50TGlzdGVuZXJzW3RdLCF0aGlzLm9wdGlvbnMucHJldmVudE1vdXNlRXZlbnRzRGVmYXVsdCYmaCk7dGhpcy5kaXNhYmxlTW91c2VXaGVlbFpvb20oKSx0aGlzLmdldFB1YmxpY0luc3RhbmNlKCkuZGlzYWJsZUNvbnRyb2xJY29ucygpLHRoaXMucmVzZXQoKSxjPWMuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0LnN2ZyE9PWUuc3ZnfSksZGVsZXRlIHRoaXMub3B0aW9ucyxkZWxldGUgdGhpcy52aWV3cG9ydCxkZWxldGUgdGhpcy5wdWJsaWNJbnN0YW5jZSxkZWxldGUgdGhpcy5waSx0aGlzLmdldFB1YmxpY0luc3RhbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9fSxpLnByb3RvdHlwZS5nZXRQdWJsaWNJbnN0YW5jZT1mdW5jdGlvbigpe3ZhciBvPXRoaXM7cmV0dXJuIHRoaXMucHVibGljSW5zdGFuY2V8fCh0aGlzLnB1YmxpY0luc3RhbmNlPXRoaXMucGk9e2VuYWJsZVBhbjpmdW5jdGlvbigpe3JldHVybiBvLm9wdGlvbnMucGFuRW5hYmxlZD0hMCxvLnBpfSxkaXNhYmxlUGFuOmZ1bmN0aW9uKCl7cmV0dXJuIG8ub3B0aW9ucy5wYW5FbmFibGVkPSExLG8ucGl9LGlzUGFuRW5hYmxlZDpmdW5jdGlvbigpe3JldHVybiEhby5vcHRpb25zLnBhbkVuYWJsZWR9LHBhbjpmdW5jdGlvbih0KXtyZXR1cm4gby5wYW4odCksby5waX0scGFuQnk6ZnVuY3Rpb24odCl7cmV0dXJuIG8ucGFuQnkodCksby5waX0sZ2V0UGFuOmZ1bmN0aW9uKCl7cmV0dXJuIG8uZ2V0UGFuKCl9LHNldEJlZm9yZVBhbjpmdW5jdGlvbih0KXtyZXR1cm4gby5vcHRpb25zLmJlZm9yZVBhbj1udWxsPT09dD9udWxsOnIucHJveHkodCxvLnB1YmxpY0luc3RhbmNlKSxvLnBpfS
3674xzZXRPblBhbjpmdW5jdGlvbih0KXtyZXR1cm4gby5vcHRpb25zLm9uUGFuPW51bGw9PT10P251bGw6ci5wcm94eSh0LG8ucHVibGljSW5zdGFuY2UpLG8ucGl9LGVuYWJsZVpvb206ZnVuY3Rpb24oKXtyZXR1cm4gby5vcHRpb25zLnpvb21FbmFibGVkPSEwLG8ucGl9LGRpc2FibGVab29tOmZ1bmN0aW9uKCl7cmV0dXJuIG8ub3B0aW9ucy56b29tRW5hYmxlZD0hMSxvLnBpfSxpc1pvb21FbmFibGVkOmZ1bmN0aW9uKCl7cmV0dXJuISFvLm9wdGlvbnMuem9vbUVuYWJsZWR9LGVuYWJsZUNvbnRyb2xJY29uczpmdW5jdGlvbigpe3JldHVybiBvLm9wdGlvbnMuY29udHJvbEljb25zRW5hYmxlZHx8KG8ub3B0aW9ucy5jb250cm9sSWNvbnNFbmFibGVkPSEwLHMuZW5hYmxlKG8pKSxvLnBpfSxkaXNhYmxlQ29udHJvbEljb25zOmZ1bmN0aW9uKCl7cmV0dXJuIG8ub3B0aW9ucy5jb250cm9sSWNvbnNFbmFibGVkJiYoby5vcHRpb25zLmNvbnRyb2xJY29uc0VuYWJsZWQ9ITEscy5kaXNhYmxlKG8pKSxvLnBpfSxpc0NvbnRyb2xJY29uc0VuYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIW8ub3B0aW9ucy5jb250cm9sSWNvbnNFbmFibGVkfSxlbmFibGVEYmxDbGlja1pvb206ZnVuY3Rpb24oKXtyZXR1cm4gby5vcHRpb25zLmRibENsaWNrWm9vbUVuYWJsZWQ9ITAsby5waX0sZGlzYWJsZURibENsaWNrWm9vbTpmdW5jdGlvbigpe3JldHVybiBvLm9wdGlvbnMuZGJsQ2xpY2tab29tRW5hYmxlZD0hMSxvLnBpfSxpc0RibENsaWNrWm9vbUVuYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIW8ub3B0aW9ucy5kYmxDbGlja1pvb21FbmFibGVkfSxlbmFibGVNb3VzZVdoZWVsWm9vbTpmdW5jdGlvbigpe3JldHVybiBvLmVuYWJsZU1vdXNlV2hlZWxab29tKCksby5waX0sZGlzYWJsZU1vdXNlV2hlZWxab29tOmZ1bmN0aW9uKCl7cmV0dXJuIG8uZGlzYWJsZU1vdXNlV2hlZWxab29tKCksby5waX0saXNNb3VzZVdoZWVsWm9vbUVuYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIW8ub3B0aW9ucy5tb3VzZVdoZWVsWm9vbUVuYWJsZWR9LHNldFpvb21TY2FsZVNlbnNpdGl2aXR5OmZ1bmN0aW9uKHQpe3JldHVybiBvLm9wdGlvbnMuem9vbVNjYWxlU2Vuc2l0aXZpdHk9dCxvLnBpfSxzZXRNaW5ab29tOmZ1bmN0aW9uKHQpe3JldHVybiBvLm9wdGlvbnMubWluWm9vbT10LG8ucGl9LHNldE1heFpvb206ZnVuY3Rpb24odCl7cmV0dXJuIG8ub3B0aW9ucy5tYXhab29tPXQsby5waX0sc2V0QmVmb3JlWm9vbTpmdW5jdGlvbih0KXtyZXR1cm4gby5vcHRpb25zLmJlZm9yZVpvb209bnVsbD09PXQ/bnVsbDpyLnByb3h5KHQsby5wdWJsaWNJbnN0YW5jZSksby5waX0sc2V0T25ab29tOmZ1bmN0aW9uKHQpe3JldHVybiBvLm9wdGlvbnMub25ab29tPW51bGw9PT10P251bGw6ci5wcm94eSh0LG8ucHVibGljSW5zdGFuY2UpLG8ucGl9LHpvb206ZnVuY3Rpb24odCl7cmV0dXJuIG8ucHVibGljWm9vbSh0LCEwKSxvLnBpfSx6b29tQnk6ZnVuY3Rpb24odCl7cmV0dXJuIG8ucHVibGljWm9vbSh0LCExKSxvLnBpfSx6b29tQXRQb2ludDpmdW5jdGlvbih0LGUpe3JldHVybiBvLnB1YmxpY1pvb21BdFBvaW50KHQsZSwhMCksby5waX0sem9vbUF0UG9pbnRCeTpmdW5jdGlvbih0LGUpe3JldHVybiBvLnB1YmxpY1pvb21BdFBvaW50KHQsZSwhMSksby5waX0sem9vbUluOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuem9vbUJ5KDErby5vcHRpb25zLnpvb21TY2FsZVNlbnNpdGl2aXR5KSxvLnBpfSx6b29tT3V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuem9vbUJ5KDEvKDErby5vcHRpb25zLnpvb21TY2FsZVNlbnNpdGl2aXR5KSksby5waX0sZ2V0Wm9vbTpmdW5jdGlvbigpe3JldHVybiBvLmdldFJlbGF0aXZlWm9vbSgpfSxzZXRPblVwZGF0ZWRDVE06ZnVuY3Rpb24odCl7cmV0dXJuIG8ub3B0aW9ucy5vblVwZGF0ZWRDVE09bnVsbD09PXQ/bnVsbDpyLnByb3h5KHQsby5wdWJsaWNJbnN0YW5jZSksby5waX0scmVzZXRab29tOmZ1bmN0aW9uKCl7cmV0dXJuIG8ucmVzZXRab29tKCksby5waX0scmVzZXRQYW46ZnVuY3Rpb24oKXtyZXR1cm4gby5yZXNldFBhbigpLG8ucGl9LHJlc2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8ucmVzZXQoKSxvLnBpfSxmaXQ6ZnVuY3Rpb24oKXtyZXR1cm4gby5maXQoKSxvLnBpfSxjb250YWluOmZ1bmN0aW9uKCl7cmV0dXJuIG8uY29udGFpbigpLG8ucGl9LGNlbnRlcjpmdW5jdGlvbigpe3JldHVybiBvLmNlbnRlcigpLG8ucGl9LHVwZGF0ZUJCb3g6ZnVuY3Rpb24oKXtyZXR1cm4gby51cGRhdGVCQm94KCksby5waX0scmVzaXplOmZ1bmN0aW9uKCl7cmV0dXJuIG8ucmVzaXplKCksby5waX0sZ2V0U2l6ZXM6ZnVuY3Rpb24oKXtyZXR1cm57d2lkdGg6by53aWR0aCxoZWlnaHQ6by5oZWlnaHQscmVhbFpvb206by5nZXRab29tKCksdmlld0JveDpvLnZpZXdwb3J0LmdldFZpZXdCb3goKX19LGRlc3Ryb3k6ZnVuY3Rpb24oKXtyZXR1cm4gby5kZXN0cm95KCksby5waX19KSx0aGlzLnB1YmxpY0luc3RhbmNlfTt2YXIgYz1bXTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgbz1yLmdldFN2Zyh0KTtpZihudWxsPT09bylyZXR1cm4gbnVsbDtmb3IodmFyIG49Yy5sZW5ndGgtMTswPD1uO24tLSlpZihjW25dLnN2Zz09PW8pcmV0dXJuIGNbbl0uaW5zdGFuY2UuZ2V0UHVibGljSW5zdGFuY2UoKTtyZXR1cm4gYy5wdXNoKHtzdmc6byxpbnN0YW5jZTpuZXcgaShvLGUpfSksY1tjLmxlbmd0aC0xXS5pbnN0YW5jZS5nZXRQdWJsaWNJbnN0YW5jZSgpfX0se1wiLi9jb250cm9sLWljb25zXCI6MSxcIi4vc2hhZG93LXZpZXdwb3J0XCI6MixcIi4vc3ZnLXV0aWxpdGllc1wiOjUsXCIuL3VuaXdoZWVsXCI6NixcIi4vdXRpbGl0aWVzXCI6N31dLDU6W2Z1bmN0aW9uKHQsZSxvKXt2YXIgbD10KFwiLi91dGlsaXRpZXNcIikscz1cInVua25vd25cIjtkb2N1bWVudC5kb2N1bWVudE1vZGUmJihzPVwiaWVcIiksZS5leHBvcnRzPXtzdmdOUzpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIseG1sTlM6XCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIix4bWxuc05TOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy9cIix4bGlua05TOlwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiLGV2TlM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAxL3htbC1ldmVudHNcIixnZXRCb3VuZGluZ0NsaWVudFJlY3ROb3JtYWxpem
3674VkOmZ1bmN0aW9uKHQpe2lmKHQuY2xpZW50V2lkdGgmJnQuY2xpZW50SGVpZ2h0KXJldHVybnt3aWR0aDp0LmNsaWVudFdpZHRoLGhlaWdodDp0LmNsaWVudEhlaWdodH07aWYodC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSlyZXR1cm4gdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgZ2V0IEJvdW5kaW5nQ2xpZW50UmVjdCBmb3IgU1ZHLlwiKX0sZ2V0T3JDcmVhdGVWaWV3cG9ydDpmdW5jdGlvbih0LGUpe3ZhciBvPW51bGw7aWYoIShvPWwuaXNFbGVtZW50KGUpP2U6dC5xdWVyeVNlbGVjdG9yKGUpKSl7dmFyIG49QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodC5jaGlsZE5vZGVzfHx0LmNoaWxkcmVuKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuXCJkZWZzXCIhPT10Lm5vZGVOYW1lJiZcIiN0ZXh0XCIhPT10Lm5vZGVOYW1lfSk7MT09PW4ubGVuZ3RoJiZcImdcIj09PW5bMF0ubm9kZU5hbWUmJm51bGw9PT1uWzBdLmdldEF0dHJpYnV0ZShcInRyYW5zZm9ybVwiKSYmKG89blswXSl9aWYoIW8pe3ZhciBpPVwidmlld3BvcnQtXCIrKG5ldyBEYXRlKS50b0lTT1N0cmluZygpLnJlcGxhY2UoL1xcRC9nLFwiXCIpOyhvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh0aGlzLnN2Z05TLFwiZ1wiKSkuc2V0QXR0cmlidXRlKFwiaWRcIixpKTt2YXIgcz10LmNoaWxkTm9kZXN8fHQuY2hpbGRyZW47aWYocyYmMDxzLmxlbmd0aClmb3IodmFyIHI9cy5sZW5ndGg7MDxyO3ItLSlcImRlZnNcIiE9PXNbcy5sZW5ndGgtcl0ubm9kZU5hbWUmJm8uYXBwZW5kQ2hpbGQoc1tzLmxlbmd0aC1yXSk7dC5hcHBlbmRDaGlsZChvKX12YXIgYT1bXTtyZXR1cm4gby5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKSYmKGE9by5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKS5zcGxpdChcIiBcIikpLH5hLmluZGV4T2YoXCJzdmctcGFuLXpvb21fdmlld3BvcnRcIil8fChhLnB1c2goXCJzdmctcGFuLXpvb21fdmlld3BvcnRcIiksby5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLGEuam9pbihcIiBcIikpKSxvfSxzZXR1cFN2Z0F0dHJpYnV0ZXM6ZnVuY3Rpb24odCl7aWYodC5zZXRBdHRyaWJ1dGUoXCJ4bWxuc1wiLHRoaXMuc3ZnTlMpLHQuc2V0QXR0cmlidXRlTlModGhpcy54bWxuc05TLFwieG1sbnM6eGxpbmtcIix0aGlzLnhsaW5rTlMpLHQuc2V0QXR0cmlidXRlTlModGhpcy54bWxuc05TLFwieG1sbnM6ZXZcIix0aGlzLmV2TlMpLG51bGwhPT10LnBhcmVudE5vZGUpe3ZhciBlPXQuZ2V0QXR0cmlidXRlKFwic3R5bGVcIil8fFwiXCI7LTE9PT1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihcIm92ZXJmbG93XCIpJiZ0LnNldEF0dHJpYnV0ZShcInN0eWxlXCIsXCJvdmVyZmxvdzogaGlkZGVuOyBcIitlKX19LGludGVybmV0RXhwbG9yZXJSZWRpc3BsYXlJbnRlcnZhbDozMDAscmVmcmVzaERlZnNHbG9iYWw6bC50aHJvdHRsZShmdW5jdGlvbigpe2Zvcih2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiZGVmc1wiKSxlPXQubGVuZ3RoLG89MDtvPGU7bysrKXt2YXIgbj10W29dO24ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobixuKX19LHRoaXM/dGhpcy5pbnRlcm5ldEV4cGxvcmVyUmVkaXNwbGF5SW50ZXJ2YWw6bnVsbCksc2V0Q1RNOmZ1bmN0aW9uKHQsZSxvKXt2YXIgbj10aGlzLGk9XCJtYXRyaXgoXCIrZS5hK1wiLFwiK2UuYitcIixcIitlLmMrXCIsXCIrZS5kK1wiLFwiK2UuZStcIixcIitlLmYrXCIpXCI7dC5zZXRBdHRyaWJ1dGVOUyhudWxsLFwidHJhbnNmb3JtXCIsaSksXCJ0cmFuc2Zvcm1cImluIHQuc3R5bGU/dC5zdHlsZS50cmFuc2Zvcm09aTpcIi1tcy10cmFuc2Zvcm1cImluIHQuc3R5bGU/dC5zdHlsZVtcIi1tcy10cmFuc2Zvcm1cIl09aTpcIi13ZWJraXQtdHJhbnNmb3JtXCJpbiB0LnN0eWxlJiYodC5zdHlsZVtcIi13ZWJraXQtdHJhbnNmb3JtXCJdPWkpLFwiaWVcIj09PXMmJm8mJihvLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG8sbyksd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtuLnJlZnJlc2hEZWZzR2xvYmFsKCl9LG4uaW50ZXJuZXRFeHBsb3JlclJlZGlzcGxheUludGVydmFsKSl9LGdldEV2ZW50UG9pbnQ6ZnVuY3Rpb24odCxlKXt2YXIgbz1lLmNyZWF0ZVNWR1BvaW50KCk7cmV0dXJuIGwubW91c2VBbmRUb3VjaE5vcm1hbGl6ZSh0LGUpLG8ueD10LmNsaWVudFgsby55PXQuY2xpZW50WSxvfSxnZXRTdmdDZW50ZXJQb2ludDpmdW5jdGlvbih0LGUsbyl7cmV0dXJuIHRoaXMuY3JlYXRlU1ZHUG9pbnQodCxlLzIsby8yKX0sY3JlYXRlU1ZHUG9pbnQ6ZnVuY3Rpb24odCxlLG8pe3ZhciBuPXQuY3JlYXRlU1ZHUG9pbnQoKTtyZXR1cm4gbi54PWUsbi55PW8sbn19fSx7XCIuL3V0aWxpdGllc1wiOjd9XSw2OltmdW5jdGlvbih0LGUsbyl7ZnVuY3Rpb24gbih0LGUsbyxuKXt2YXIgaTtpPVwid2hlZWxcIj09PWE/bzpmdW5jdGlvbih0LG8pe2Z1bmN0aW9uIGUodCl7dmFyIGU9e29yaWdpbmFsRXZlbnQ6dD10fHx3aW5kb3cuZXZlbnQsdGFyZ2V0OnQudGFyZ2V0fHx0LnNyY0VsZW1lbnQsdHlwZTpcIndoZWVsXCIsZGVsdGFNb2RlOlwiTW96TW91c2VQaXhlbFNjcm9sbFwiPT10LnR5cGU/MDoxLGRlbHRhWDowLGRlbGF0WjowLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dC5wcmV2ZW50RGVmYXVsdD90LnByZXZlbnREZWZhdWx0KCk6dC5yZXR1cm5WYWx1ZT0hMX19O3JldHVyblwibW91c2V3aGVlbFwiPT1hPyhlLmRlbHRhWT0tLjAyNSp0LndoZWVsRGVsdGEsdC53aGVlbERlbHRhWCYmKGUuZGVsdGFYPS0uMDI1KnQud2hlZWxEZWx0YVgpKTplLmRlbHRhWT10LmRldGFpbCxvKGUpfXJldHVybiB1LnB1c2goe2VsZW1lbnQ6dCxmbjplfSksZX0odCxvKSx0W3NdKGwrZSxpLCEhbiYmaCl9ZnVuY3Rpb24gaSh0LGUsbyxuKXt2YXIgaTtpPVwid2hlZWxcIj09PWE/bzpmdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHUubGVuZ3RoO2UrKylpZih1W2VdLmVsZW1lbnQ9PT10KXJldHVybiB1W2VdLmZuO3JldHVybiBmdW5jdGlvbigpe319KHQpLHRbcl0obCtlLGksISFuJiZoKSxmdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHUubGVuZ3RoO2UrKylpZih1W2VdLmVsZW1lbnQ9PT10KXJldHVybi
3674B1LnNwbGljZShlLDEpfSh0KX12YXIgcyxyLGEsbCx1LGg7ZS5leHBvcnRzPSh1PVtdLGg9e3Bhc3NpdmU6IShsPVwiXCIpfSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcj8ocz1cImFkZEV2ZW50TGlzdGVuZXJcIixyPVwicmVtb3ZlRXZlbnRMaXN0ZW5lclwiKToocz1cImF0dGFjaEV2ZW50XCIscj1cImRldGFjaEV2ZW50XCIsbD1cIm9uXCIpLGE9XCJvbndoZWVsXCJpbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpP1wid2hlZWxcIjp2b2lkIDAhPT1kb2N1bWVudC5vbm1vdXNld2hlZWw/XCJtb3VzZXdoZWVsXCI6XCJET01Nb3VzZVNjcm9sbFwiLHtvbjpmdW5jdGlvbih0LGUsbyl7bih0LGEsZSxvKSxcIkRPTU1vdXNlU2Nyb2xsXCI9PWEmJm4odCxcIk1vek1vdXNlUGl4ZWxTY3JvbGxcIixlLG8pfSxvZmY6ZnVuY3Rpb24odCxlLG8pe2kodCxhLGUsbyksXCJET01Nb3VzZVNjcm9sbFwiPT1hJiZpKHQsXCJNb3pNb3VzZVBpeGVsU2Nyb2xsXCIsZSxvKX19KX0se31dLDc6W2Z1bmN0aW9uKHQsZSxvKXtmdW5jdGlvbiBuKGUpe3JldHVybiBmdW5jdGlvbih0KXt3aW5kb3cuc2V0VGltZW91dCh0LGUpfX1lLmV4cG9ydHM9e2V4dGVuZDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgbyBpbiB0PXR8fHt9LGUpdGhpcy5pc09iamVjdChlW29dKT90W29dPXRoaXMuZXh0ZW5kKHRbb10sZVtvXSk6dFtvXT1lW29dO3JldHVybiB0fSxpc0VsZW1lbnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudHx8dCBpbnN0YW5jZW9mIFNWR0VsZW1lbnR8fHQgaW5zdGFuY2VvZiBTVkdTVkdFbGVtZW50fHx0JiZcIm9iamVjdFwiPT10eXBlb2YgdCYmbnVsbCE9PXQmJjE9PT10Lm5vZGVUeXBlJiZcInN0cmluZ1wiPT10eXBlb2YgdC5ub2RlTmFtZX0saXNPYmplY3Q6ZnVuY3Rpb24odCl7cmV0dXJuXCJbb2JqZWN0IE9iamVjdF1cIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0saXNOdW1iZXI6ZnVuY3Rpb24odCl7cmV0dXJuIWlzTmFOKHBhcnNlRmxvYXQodCkpJiZpc0Zpbml0ZSh0KX0sZ2V0U3ZnOmZ1bmN0aW9uKHQpe3ZhciBlLG87aWYodGhpcy5pc0VsZW1lbnQodCkpZT10O2Vsc2V7aWYoIShcInN0cmluZ1wiPT10eXBlb2YgdHx8dCBpbnN0YW5jZW9mIFN0cmluZykpdGhyb3cgbmV3IEVycm9yKFwiUHJvdmlkZWQgc2VsZWN0b3IgaXMgbm90IGFuIEhUTUwgb2JqZWN0IG5vciBTdHJpbmdcIik7aWYoIShlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodCkpKXRocm93IG5ldyBFcnJvcihcIlByb3ZpZGVkIHNlbGVjdG9yIGRpZCBub3QgZmluZCBhbnkgZWxlbWVudHMuIFNlbGVjdG9yOiBcIit0KX1pZihcInN2Z1wiPT09ZS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpbz1lO2Vsc2UgaWYoXCJvYmplY3RcIj09PWUudGFnTmFtZS50b0xvd2VyQ2FzZSgpKW89ZS5jb250ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2Vsc2V7aWYoXCJlbWJlZFwiIT09ZS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpdGhyb3dcImltZ1wiPT09ZS50YWdOYW1lLnRvTG93ZXJDYXNlKCk/bmV3IEVycm9yKCdDYW5ub3Qgc2NyaXB0IGFuIFNWRyBpbiBhbiBcImltZ1wiIGVsZW1lbnQuIFBsZWFzZSB1c2UgYW4gXCJvYmplY3RcIiBlbGVtZW50IG9yIGFuIGluLWxpbmUgU1ZHLicpOm5ldyBFcnJvcihcIkNhbm5vdCBnZXQgU1ZHLlwiKTtvPWUuZ2V0U1ZHRG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnR9cmV0dXJuIG99LHByb3h5OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQuYXBwbHkoZSxhcmd1bWVudHMpfX0sZ2V0VHlwZTpmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5hcHBseSh0KS5yZXBsYWNlKC9eXFxbb2JqZWN0XFxzLyxcIlwiKS5yZXBsYWNlKC9cXF0kLyxcIlwiKX0sbW91c2VBbmRUb3VjaE5vcm1hbGl6ZTpmdW5jdGlvbih0LGUpe2lmKHZvaWQgMD09PXQuY2xpZW50WHx8bnVsbD09PXQuY2xpZW50WClpZih0LmNsaWVudFg9MCx2b2lkKHQuY2xpZW50WT0wKSE9PXQudG91Y2hlcyYmdC50b3VjaGVzLmxlbmd0aCl7aWYodm9pZCAwIT09dC50b3VjaGVzWzBdLmNsaWVudFgpdC5jbGllbnRYPXQudG91Y2hlc1swXS5jbGllbnRYLHQuY2xpZW50WT10LnRvdWNoZXNbMF0uY2xpZW50WTtlbHNlIGlmKHZvaWQgMCE9PXQudG91Y2hlc1swXS5wYWdlWCl7dmFyIG89ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0LmNsaWVudFg9dC50b3VjaGVzWzBdLnBhZ2VYLW8ubGVmdCx0LmNsaWVudFk9dC50b3VjaGVzWzBdLnBhZ2VZLW8udG9wfX1lbHNlIHZvaWQgMCE9PXQub3JpZ2luYWxFdmVudCYmdm9pZCAwIT09dC5vcmlnaW5hbEV2ZW50LmNsaWVudFgmJih0LmNsaWVudFg9dC5vcmlnaW5hbEV2ZW50LmNsaWVudFgsdC5jbGllbnRZPXQub3JpZ2luYWxFdmVudC5jbGllbnRZKX0saXNEYmxDbGljazpmdW5jdGlvbih0LGUpe2lmKDI9PT10LmRldGFpbClyZXR1cm4hMDtpZihudWxsPT1lKXJldHVybiExO3ZhciBvPXQudGltZVN0YW1wLWUudGltZVN0YW1wLG49TWF0aC5zcXJ0KE1hdGgucG93KHQuY2xpZW50WC1lLmNsaWVudFgsMikrTWF0aC5wb3codC5jbGllbnRZLWUuY2xpZW50WSwyKSk7cmV0dXJuIG88MjUwJiZuPDEwfSxub3c6RGF0ZS5ub3d8fGZ1bmN0aW9uKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9LHRocm90dGxlOmZ1bmN0aW9uKG8sbixpKXt2YXIgcyxyLGEsbD10aGlzLHU9bnVsbCxoPTA7aT1pfHx7fTtmdW5jdGlvbiBjKCl7aD0hMT09PWkubGVhZGluZz8wOmwubm93KCksdT1udWxsLGE9by5hcHBseShzLHIpLHV8fChzPXI9bnVsbCl9cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9bC5ub3coKTtofHwhMSE9PWkubGVhZGluZ3x8KGg9dCk7dmFyIGU9bi0odC1oKTtyZXR1cm4gcz10aGlzLHI9YXJndW1lbnRzLGU8PTB8fG48ZT8oY2xlYXJUaW1lb3V0KHUpLHU9bnVsbCxoPXQsYT1vLmFwcGx5KHMsciksdXx8KHM9cj1udWxsKSk6dXx8ITE9PT1pLnRyYWlsaW5nfHwodT1zZXRUaW1lb3V0KGMsZSkpLGF9fSxjcmVhdGVSZXF1ZXN0QW5pbWF0aW9uRnJhbWU6ZnVuY3Rpb24odCl7dmFyIGU9bnVsbDtyZXR1cm5cImF1dG9cIiE9PXQmJnQ8NjAmJjE8dCYmKGU9TWF0aC5mbG9vcigxZTMvdCkpLG51bGw9PT1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fG4oMzMpOm4oZSl9fX0se31dfSx7fSxbM10pOyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IHt9OyIsIm1vZHVsZS5leHBvcnRzID0galF1ZXJ5OyIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0aWQ6IG1vZHVsZUlkLFxuXHRcdGxvYWRlZDogZmFsc2UsXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuXHRtb2R1bGUubG9hZGVkID0gdHJ1ZTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbi8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG5fX3dlYn
3674BhY2tfcmVxdWlyZV9fLm0gPSBfX3dlYnBhY2tfbW9kdWxlc19fO1xuXG4iLCJ2YXIgZGVmZXJyZWQgPSBbXTtcbl9fd2VicGFja19yZXF1aXJlX18uTyA9IChyZXN1bHQsIGNodW5rSWRzLCBmbiwgcHJpb3JpdHkpID0+IHtcblx0aWYoY2h1bmtJZHMpIHtcblx0XHRwcmlvcml0eSA9IHByaW9yaXR5IHx8IDA7XG5cdFx0Zm9yKHZhciBpID0gZGVmZXJyZWQubGVuZ3RoOyBpID4gMCAmJiBkZWZlcnJlZFtpIC0gMV1bMl0gPiBwcmlvcml0eTsgaS0tKSBkZWZlcnJlZFtpXSA9IGRlZmVycmVkW2kgLSAxXTtcblx0XHRkZWZlcnJlZFtpXSA9IFtjaHVua0lkcywgZm4sIHByaW9yaXR5XTtcblx0XHRyZXR1cm47XG5cdH1cblx0dmFyIG5vdEZ1bGZpbGxlZCA9IEluZmluaXR5O1xuXHRmb3IgKHZhciBpID0gMDsgaSA8IGRlZmVycmVkLmxlbmd0aDsgaSsrKSB7XG5cdFx0dmFyIFtjaHVua0lkcywgZm4sIHByaW9yaXR5XSA9IGRlZmVycmVkW2ldO1xuXHRcdHZhciBmdWxmaWxsZWQgPSB0cnVlO1xuXHRcdGZvciAodmFyIGogPSAwOyBqIDwgY2h1bmtJZHMubGVuZ3RoOyBqKyspIHtcblx0XHRcdGlmICgocHJpb3JpdHkgJiAxID09PSAwIHx8IG5vdEZ1bGZpbGxlZCA+PSBwcmlvcml0eSkgJiYgT2JqZWN0LmtleXMoX193ZWJwYWNrX3JlcXVpcmVfXy5PKS5ldmVyeSgoa2V5KSA9PiAoX193ZWJwYWNrX3JlcXVpcmVfXy5PW2tleV0oY2h1bmtJZHNbal0pKSkpIHtcblx0XHRcdFx0Y2h1bmtJZHMuc3BsaWNlKGotLSwgMSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRmdWxmaWxsZWQgPSBmYWxzZTtcblx0XHRcdFx0aWYocHJpb3JpdHkgPCBub3RGdWxmaWxsZWQpIG5vdEZ1bGZpbGxlZCA9IHByaW9yaXR5O1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZihmdWxmaWxsZWQpIHtcblx0XHRcdGRlZmVycmVkLnNwbGljZShpLS0sIDEpXG5cdFx0XHR2YXIgciA9IGZuKCk7XG5cdFx0XHRpZiAociAhPT0gdW5kZWZpbmVkKSByZXN1bHQgPSByO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gcmVzdWx0O1xufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5ubWQgPSAobW9kdWxlKSA9PiB7XG5cdG1vZHVsZS5wYXRocyA9IFtdO1xuXHRpZiAoIW1vZHVsZS5jaGlsZHJlbikgbW9kdWxlLmNoaWxkcmVuID0gW107XG5cdHJldHVybiBtb2R1bGU7XG59OyIsIi8vIG5vIGJhc2VVUklcblxuLy8gb2JqZWN0IHRvIHN0b3JlIGxvYWRlZCBhbmQgbG9hZGluZyBjaHVua3Ncbi8vIHVuZGVmaW5lZCA9IGNodW5rIG5vdCBsb2FkZWQsIG51bGwgPSBjaHVuayBwcmVsb2FkZWQvcHJlZmV0Y2hlZFxuLy8gW3Jlc29sdmUsIHJlamVjdCwgUHJvbWlzZV0gPSBjaHVuayBsb2FkaW5nLCAwID0gY2h1bmsgbG9hZGVkXG52YXIgaW5zdGFsbGVkQ2h1bmtzID0ge1xuXHRcIi9kaXN0L2pzL2FwcC5taW5cIjogMCxcblx0XCJkaXN0L2Nzcy9zdHlsZS5taW5cIjogMFxufTtcblxuLy8gbm8gY2h1bmsgb24gZGVtYW5kIGxvYWRpbmdcblxuLy8gbm8gcHJlZmV0Y2hpbmdcblxuLy8gbm8gcHJlbG9hZGVkXG5cbi8vIG5vIEhNUlxuXG4vLyBubyBITVIgbWFuaWZlc3RcblxuX193ZWJwYWNrX3JlcXVpcmVfXy5PLmogPSAoY2h1bmtJZCkgPT4gKGluc3RhbGxlZENodW5rc1tjaHVua0lkXSA9PT0gMCk7XG5cbi8vIGluc3RhbGwgYSBKU09OUCBjYWxsYmFjayBmb3IgY2h1bmsgbG9hZGluZ1xudmFyIHdlYnBhY2tKc29ucENhbGxiYWNrID0gKHBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uLCBkYXRhKSA9PiB7XG5cdHZhciBbY2h1bmtJZHMsIG1vcmVNb2R1bGVzLCBydW50aW1lXSA9IGRhdGE7XG5cdC8vIGFkZCBcIm1vcmVNb2R1bGVzXCIgdG8gdGhlIG1vZHVsZXMgb2JqZWN0LFxuXHQvLyB0aGVuIGZsYWcgYWxsIFwiY2h1bmtJZHNcIiBhcyBsb2FkZWQgYW5kIGZpcmUgY2FsbGJhY2tcblx0dmFyIG1vZHVsZUlkLCBjaHVua0lkLCBpID0gMDtcblx0aWYoY2h1bmtJZHMuc29tZSgoaWQpID0+IChpbnN0YWxsZWRDaHVua3NbaWRdICE9PSAwKSkpIHtcblx0XHRmb3IobW9kdWxlSWQgaW4gbW9yZU1vZHVsZXMpIHtcblx0XHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhtb3JlTW9kdWxlcywgbW9kdWxlSWQpKSB7XG5cdFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18ubVttb2R1bGVJZF0gPSBtb3JlTW9kdWxlc1ttb2R1bGVJZF07XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmKHJ1bnRpbWUpIHZhciByZXN1bHQgPSBydW50aW1lKF9fd2VicGFja19yZXF1aXJlX18pO1xuXHR9XG5cdGlmKHBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uKSBwYXJlbnRDaHVua0xvYWRpbmdGdW5jdGlvbihkYXRhKTtcblx0Zm9yKDtpIDwgY2h1bmtJZHMubGVuZ3RoOyBpKyspIHtcblx0XHRjaHVua0lkID0gY2h1bmtJZHNbaV07XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGluc3RhbGxlZENodW5rcywgY2h1bmtJZCkgJiYgaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdKSB7XG5cdFx0XHRpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF1bMF0oKTtcblx0XHR9XG5cdFx0aW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdID0gMDtcblx0fVxuXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXy5PKHJlc3VsdCk7XG59XG5cbnZhciBjaHVua0xvYWRpbmdHbG9iYWwgPSBzZWxmW1wid2VicGFja0NodW5raG9sa2hhbVwiXSA9IHNlbGZbXCJ3ZWJwYWNrQ2h1bmtob2xraGFtXCJdIHx8IFtdO1xuY2h1bmtMb2FkaW5nR2xvYmFsLmZvckVhY2god2VicGFja0pzb25wQ2FsbGJhY2suYmluZChudWxsLCAwKSk7XG5jaHVua0xvYWRpbmdHbG9iYWwucHVzaCA9IHdlYnBhY2tKc29ucENhbGxiYWNrLmJpbmQobnVsbCwgY2h1bmtMb2FkaW5nR2xvYmFsLnB1c2guYmluZChjaHVua0xvYWRpbmdHbG9iYWwpKTsiLCIiLCIvLyBzdGFydHVwXG4vLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbi8vIFRoaXMgZW50cnkgbW9k
3674dWxlIGRlcGVuZHMgb24gb3RoZXIgbG9hZGVkIGNodW5rcyBhbmQgZXhlY3V0aW9uIG5lZWQgdG8gYmUgZGVsYXllZFxuX193ZWJwYWNrX3JlcXVpcmVfXy5PKHVuZGVmaW5lZCwgW1wiZGlzdC9jc3Mvc3R5bGUubWluXCJdLCAoKSA9PiAoX193ZWJwYWNrX3JlcXVpcmVfXyhcIi4vYXNzZXRzL2pzL3ZlbmRvci9zaW1wbGVQYXJhbGxheC5taW4uanNcIikpKVxuX193ZWJwYWNrX3JlcXVpcmVfXy5PKHVuZGVmaW5lZCwgW1wiZGlzdC9jc3Mvc3R5bGUubWluXCJdLCAoKSA9PiAoX193ZWJwYWNrX3JlcXVpcmVfXyhcIi4vYXNzZXRzL2pzL3ZlbmRvci9zbGljay5taW4uanNcIikpKVxuX193ZWJwYWNrX3JlcXVpcmVfXy5PKHVuZGVmaW5lZCwgW1wiZGlzdC9jc3Mvc3R5bGUubWluXCJdLCAoKSA9PiAoX193ZWJwYWNrX3JlcXVpcmVfXyhcIi4vYXNzZXRzL2pzL3ZlbmRvci9zdmctcGFuLXpvb20ubWluLmpzXCIpKSlcbl9fd2VicGFja19yZXF1aXJlX18uTyh1bmRlZmluZWQsIFtcImRpc3QvY3NzL3N0eWxlLm1pblwiXSwgKCkgPT4gKF9fd2VicGFja19yZXF1aXJlX18oXCIuL2Fzc2V0cy9qcy9hcHAuanNcIikpKVxudmFyIF9fd2VicGFja19leHBvcnRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fLk8odW5kZWZpbmVkLCBbXCJkaXN0L2Nzcy9zdHlsZS5taW5cIl0sICgpID0+IChfX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi9hc3NldHMvc2Nzcy9zdHlsZS5zY3NzXCIpKSlcbl9fd2VicGFja19leHBvcnRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fLk8oX193ZWJwYWNrX2V4cG9ydHNfXyk7XG4iLCIiXSwibmFtZXMiOlsiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJzdHlsZSIsInNldFByb3BlcnR5Iiwid2luZG93IiwiaW5uZXJXaWR0aCIsImNsaWVudFdpZHRoIiwiJCIsIm1pcmFpIiwiY29tbW9uIiwiaW5pdCIsInNjcm9sbCIsImhlYWRlclVwcGVySGVpZ2h0Iiwib3V0ZXJIZWlnaHQiLCJzY3JvbGxUb3AiLCJhZGRDbGFzcyIsImNzcyIsInJlbW92ZUNsYXNzIiwiY2xpY2siLCJvZmZzZXQiLCJsb2NhdGlvbiIsInBhdGhuYW1lIiwicmVwbGFjZSIsImhvc3RuYW1lIiwidGFyZ2V0IiwiaGFzaCIsImxlbmd0aCIsInNsaWNlIiwiYW5pbWF0ZSIsInRvcCIsImZpbmQiLCJ0b2dnbGVDbGFzcyIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJjb250YWluZXIiLCJoYXMiLCJjbG9zZXN0TWVudVNlY3Rpb24iLCJjbG9zZXN0IiwiY2xvc2VzdE1lbnVTZWN0aW9uQnV0dG9ucyIsIm5leHRNZW51U2VjdGlvbiIsIm5leHQiLCJuZXh0TWVudVNlY3Rpb25CdXR0b25zIiwiY2xvc2VzdFVsIiwiY2xvc2VzdFVsQnV0dG9ucyIsImNsb3Nlc3RNZW51U2VjdGlvblR3byIsImNsb3Nlc3RNZW51U2VjdGlvblR3b0J1dHRvbnMiLCJzZXRUaW1lb3V0IiwicGFyZW50IiwiYXR0ciIsImkiLCJ2YWwiLCJob3ZlciIsImJsdXIiLCJjb250YWluZXJGbG9hdCIsImNvbnRhaW5lclNpemUiLCJ3aW5kb3dXaWR0aCIsIndpZHRoIiwic2Nyb2xsYmFyV2lkdGgiLCJlYWNoIiwiZml2ZVBlcmNlbnQiLCJyZW1haW5pbmdXaWR0aCIsImZsb2F0IiwiaGFzQ2xhc3MiLCJjb250YWluZXJGbG9hdE1hcmdpbiIsIndpbmRvd1dpdGg5MCIsIm1hcmdpblNpemUiLCJjeWNsaW5nSGVhZGluZyIsIm51bUl0ZW1zIiwiYWJvdmUiLCJjdXJyZW50IiwibWVkaWFUZXh0QWxpZ25tZW50IiwibWVkaWFUZXh0TWVkaWEiLCJzbGlkZXJBbGlnbm1lbnQiLCJzbGlkZXJNZWRpYSIsInNsaWRlclByZXYiLCJzbGlkZXJOZXh0Iiwic2xpZGVyX19zbGlkZXIiLCJsZWZ0IiwicmlnaHQiLCJyZWFkeSIsInNldEludGVydmFsIiwib24iLCJwcmV2ZW50RGVmYXVsdCIsIm1pblpvb21WYWwiLCJzdmdQYW5ab29tIiwidmlld3BvcnRTZWxlY3RvciIsInBhbkVuYWJsZWQiLCJjb250cm9sSWNvbnNFbmFibGVkIiwiem9vbUVuYWJsZWQiLCJkYmxDbGlja1pvb21FbmFibGVkIiwibW91c2VXaGVlbFpvb21FbmFibGVkIiwicHJldmVudE1vdXNlRXZlbnRzRGVmYXVsdCIsInpvb21TY2FsZVNlbnNpdGl2aXR5IiwibWluWm9vbSIsIm1heFpvb20iLCJmaXQiLCJjb250YWluIiwiY2VudGVyIiwicmVmcmVzaFJhdGUiLCJwYW5ab29tTWFwIiwiem9vbSIsInVwZGF0ZUJCb3giLCJmYWRlT3V0IiwiZXZlbnQiLCJhdHRyYWN0aW9uIiwiZGF0YSIsImZhZGVJbiIsImluaXRpYWxTaXplcyIsImdldFNpemVzIiwiaW5pdGlhbEJvdW5kcyIsImdldCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImluaXRpYWxDWCIsIngiLCJpbml0aWFsQ1kiLCJ5IiwiaGVpZ2h0IiwiZFgiLCJkWSIsInBhbkJ5IiwiY2xvc2VzdE1vZGFsIiwicHJldiIsImxhc3QiLCJmaXJzdCIsInJvdXRlIiwiaGlkZSIsInNob3ciLCJnZXRFbGVtZW50QnlJZCIsImFkZEV2ZW50TGlzdGVuZXIiLCJldiIsInpvb21JbiIsInpvb21PdXQiLCJyZXNpemUiLCJ3cmFwIiwic2VjdGlvbiIsInNlY3Rpb25Cb3R0b20iLCJwb3NpdGlvbiIsInNjcm9sbERpc3RhbmNlIiwibWVkaWEiLCJ0cmlnZ2VyIiwiaWQiLCJjbG9zZXN0QmxvY2siLCJzbGljayIsImluZmluaXRlIiwiZmFkZSIsInNsaWRlc1RvU2hvdyIsInNsaWRlc1RvU2Nyb2xsIiwiYXJyb3dzIiwiZG90cyIsImF1dG9wbGF5IiwiYXV0b3BsYXlTcGVlZCIsInBhdXNlT25Ib3ZlciIsInQiLCJuIiwibyIsInIiLCJzZWFzb24iLCJhZGFwdGl2ZUhlaWdodCIsInJlc3BvbnNpdmUiLCJicmVha3BvaW50Iiwic2V0dGluZ3MiLCJzcGVlZCIsImRyYWdnYWJsZSIsInBhdXNlT25Gb2N1cyIsImNzc0Vhc2UiLCJzbGlkZXIiLCJjdXJyZW50U2xpZGUiLCJuZXh0U2xpZGUiLCJjYWxjIiwic2xpZGVDb3VudCIsInByb2dyZXNzQmFyIiwicHJvZ3Jlc3NCYXJMYWJlbCIsInRleHQiLCJwcmV2QXJyb3ciLCJuZXh0QXJyb3ciLCJzbW9vdGhTbGlkZXJDb3VudGVyIiwiY2xvc2VzdENvbnRyb2xzIiwidmFyaWFibGVXaWR0aCIsImJsb2NrT2JzZXJ2ZXJDYWxsYmFjayIsImVudHJpZXMiLCJvYnNlcnZlciIsImZvckVhY2giLCJlbnRyeSIsImlzSW50ZXJzZWN0aW5nIiwiY2xhc3NMaXN0IiwiYWRkIiwiY29udGFpbnMiLCJyZW1vdmUiLCJ1bm9ic2VydmUiLCJibG9ja09ic2VydmVyT3B0aW9ucyIsInJvb3QiLCJyb290TWFyZ2luIiwidGhyZXNob2xkIiwiYmxvY2tPYnNlcnZlciIsIkludGVyc2VjdGlvbk9ic2VydmVyIiwiYmxvY2tPYnNlcnZlckVsZW1lbnRzIiwicXVlcnlTZWxlY3RvckFsbCIsImJsb2NrT2JzZXJ2ZXJFbGVtZW50Iiwib2JzZXJ2ZSIsImltZ09ic2VydmVyQ2FsbGJhY2siLCJpbWdPYnNlcnZlck9wdGlvbnMiLCJpbWdPYnNlcnZlciIsImltZ09ic2VydmVyRWxlbWVudHMiLCJpbWdPYnNlcnZlckVsZW1lbnQiLCJhbGxPYnNlcnZlckVsZW1lbnRzIiwiYWxsT2JzZXJ2ZXJFbGVtZW50IiwibmV3X21hcCIsIiRlbCIsIiRtYXJrZXJzIiwiYXJncyIsImdvb2dsZSIsIm1hcHMiLCJMYXRMbmciLCJtYXBUeXBlSWQiLCJNYXBUeXBlSWQiLCJST0FETUFQIiwic2Nyb2xsd2hlZWwiLCJuYXZpZ2F0aW9uQ29udHJvbCIsIm1hcFR5cGVDb250cm9sIiwic2NhbGVDb250cm9sIiwibWFwIiwiTWFwIiwibWFya2VycyIsImFkZF9tYXJrZXIiLCJjZW50ZXJfbWFwIiwiJG1hcmtlciIsImxhdGxuZyIsImljb24iLCJtYXJrZXIiLCJNYXJrZXIiLCJwdXNoIiwiaHRtbCIsImluZm93aW5kb3ciLCJJbmZvV2luZG93IiwiY29udGVudCIsImFkZExpc3RlbmVyIiwib3BlbiIsImJvdW5kcyIsIkxhdExuZ0JvdW5kcyIsImxhdCIsImxuZyIsImV4dGVuZCIsInNldENlbnRlciIsImdldENlbnRlciIsInNldFpvb20iLCJmaXRCb3VuZHMiLCJmaW5hbGl6ZSIsImhvbWUiLCJhYm91dF91cyIsImNvbn
3674RhY3QiLCJVVElMIiwiZmlyZSIsImZ1bmMiLCJmdW5jbmFtZSIsIm5hbWVzcGFjZSIsInVuZGVmaW5lZCIsImxvYWRFdmVudHMiLCJib2R5IiwiY2xhc3NOYW1lIiwic3BsaXQiLCJjbGFzc25tIiwiZGF0ZXBpY2tlciIsInJhbmdlU2VsZWN0Iiwib25TZWxlY3QiLCJjdXN0b21SYW5nZVJvb20iLCJtaW5EYXRlIiwiZGF0ZUZvcm1hdCIsIm51bWJlck9mTW9udGhzIiwiaW5wdXQiLCJpbnN0IiwiaXMiLCJzZWxlY3RlZCIsInNldERhdGUiLCJnZXREYXRlIiwicHJvcCIsInNlbGVjdDIiLCJqb2luIiwicGxhY2Vob2xkZXIiLCJhbGxvd0NsZWFyIiwibWluaW11bVJlc3VsdHNGb3JTZWFyY2giLCJjdXN0b21SYW5nZVRhYmxlIiwiY3VzdG9tUmFuZ2VEaW5uZXIiLCJ0YWJsZWNoZWNrb3V0IiwidG9JU09TdHJpbmciLCJzZWxlY3RlZERpbm5lciIsInRhYmxlY2hlY2tvdXREaW5uZXIiLCJwYXJlbnRzIiwialF1ZXJ5IiwiZXhwb3J0cyIsIm1vZHVsZSIsImRlZmluZSIsImFtZCIsInNpbXBsZVBhcmFsbGF4IiwibCIsImNhbGwiLCJtIiwiYyIsImQiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJTeW1ib2wiLCJ0b1N0cmluZ1RhZyIsInZhbHVlIiwiX19lc01vZHVsZSIsImNyZWF0ZSIsImJpbmQiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsInAiLCJzIiwiRWxlbWVudCIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwia2V5IiwiVHlwZUVycm9yIiwicG9zaXRpb25zIiwiYm90dG9tIiwicGFnZVlPZmZzZXQiLCJjbGllbnRIZWlnaHQiLCJOb2RlTGlzdCIsImlzUHJvdG90eXBlT2YiLCJIVE1MQ29sbGVjdGlvbiIsIkFycmF5IiwiZnJvbSIsIlN0cmluZyIsImEiLCJjcmVhdGVFbGVtZW50IiwidGFnTmFtZSIsInRvTG93ZXJDYXNlIiwiY29tcGxldGUiLCJuYXR1cmFsV2lkdGgiLCJ1IiwiaXNBcnJheSIsIml0ZXJhdG9yIiwidG9TdHJpbmciLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJ0ZXN0IiwiaCIsImYiLCJlbGVtZW50IiwiZWxlbWVudENvbnRhaW5lciIsImlzVmlzaWJsZSIsImlzSW5pdCIsIm9sZFRyYW5zbGF0ZVZhbHVlIiwiY3VzdG9tV3JhcHBlciIsInJhbmdlTWF4Iiwib3ZlcmZsb3ciLCJ3cmFwRWxlbWVudCIsInNldFRyYW5zZm9ybUNTUyIsImdldEVsZW1lbnRPZmZzZXQiLCJpbnRlcnNlY3Rpb25PYnNlcnZlciIsImdldFRyYW5zbGF0ZVZhbHVlIiwiZGVsYXkiLCJzZXRUcmFuc2l0aW9uQ1NTIiwicGFyZW50Tm9kZSIsImluc2VydEJlZm9yZSIsImFwcGVuZENoaWxkIiwicmVwbGFjZVdpdGgiLCJhcHBseSIsImNoaWxkTm9kZXMiLCJjb25jYXQiLCJzY2FsZSIsIndpbGxDaGFuZ2UiLCJ0cmFuc2l0aW9uIiwiZWxlbWVudEhlaWdodCIsImVsZW1lbnRUb3AiLCJjdXN0b21Db250YWluZXIiLCJlbGVtZW50Qm90dG9tIiwiYnVpbGRUaHJlc2hvbGRMaXN0IiwiaW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjayIsInRvRml4ZWQiLCJNYXRoIiwibWluIiwibWF4IiwibWF4VHJhbnNpdGlvbiIsIm9sZFBlcmNlbnRhZ2UiLCJnZXRSYW5nZU1heCIsInRyYW5zbGF0ZVZhbHVlIiwib3JpZW50YXRpb24iLCJpbmNsdWRlcyIsImRvbmUiLCJ2IiwiZyIsImIiLCJ3IiwiVCIsImVsZW1lbnRzIiwiZGVmYXVsdHMiLCJhc3NpZ24iLCJsYXN0UG9zaXRpb24iLCJyZXNpemVJc0RvbmUiLCJyZWZyZXNoIiwicHJvY2VlZFJlcXVlc3RBbmltYXRpb25GcmFtZSIsInNldFZpZXdwb3J0QWxsIiwiY2xlYXJUaW1lb3V0Iiwic2V0Vmlld3BvcnRUb3AiLCJzZXRWaWV3cG9ydEJvdHRvbSIsInByb2NlZWRFbGVtZW50IiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiY2hlY2tJZlZpc2libGUiLCJmaWx0ZXIiLCJ1blNldFN0eWxlIiwidW5XcmFwRWxlbWVudCIsImNhbmNlbEFuaW1hdGlvbkZyYW1lIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlcXVpcmUiLCJTbGljayIsImFwcGVuZEFycm93cyIsImFwcGVuZERvdHMiLCJhcnJvd3NQbGFjZW1lbnQiLCJhc05hdkZvciIsImNlbnRlck1vZGUiLCJjZW50ZXJQYWRkaW5nIiwiY3VzdG9tUGFnaW5nIiwiZG90c0NsYXNzIiwiZWFzaW5nIiwiZWRnZUZyaWN0aW9uIiwiaW5pdGlhbFNsaWRlIiwiaW5zdHJ1Y3Rpb25zVGV4dCIsImxhenlMb2FkIiwibW9iaWxlRmlyc3QiLCJwbGF5SWNvbiIsInBhdXNlSWNvbiIsInBhdXNlT25Eb3RzSG92ZXIiLCJyZWdpb25MYWJlbCIsInJlc3BvbmRUbyIsInJvd3MiLCJydGwiLCJzbGlkZSIsInNsaWRlc1BlclJvdyIsInN3aXBlIiwic3dpcGVUb1NsaWRlIiwidG91Y2hNb3ZlIiwidG91Y2hUaHJlc2hvbGQiLCJ1c2VBdXRvcGxheVRvZ2dsZUJ1dHRvbiIsInVzZUNTUyIsInVzZUdyb3VwUm9sZSIsInVzZVRyYW5zZm9ybSIsInZlcnRpY2FsIiwidmVydGljYWxTd2lwaW5nIiwid2FpdEZvckFuaW1hdGUiLCJ6SW5kZXgiLCJpbml0aWFscyIsImFuaW1hdGluZyIsImRyYWdnaW5nIiwiYXV0b1BsYXlUaW1lciIsImN1cnJlbnREaXJlY3Rpb24iLCJjdXJyZW50TGVmdCIsImRpcmVjdGlvbiIsIiRkb3RzIiwiJGluc3RydWN0aW9uc1RleHQiLCJsaXN0V2lkdGgiLCJsaXN0SGVpZ2h0IiwibG9hZEluZGV4IiwiJG5leHRBcnJvdyIsIiRwYXVzZUJ1dHRvbiIsIiRwYXVzZUljb24iLCIkcGxheUljb24iLCIkcHJldkFycm93Iiwic2Nyb2xsaW5nIiwic2xpZGVXaWR0aCIsIiRzbGlkZVRyYWNrIiwiJHNsaWRlcyIsInNsaWRpbmciLCJzbGlkZU9mZnNldCIsInN3aXBlTGVmdCIsInN3aXBpbmciLCIkbGlzdCIsInRvdWNoT2JqZWN0IiwidHJhbnNmb3Jtc0VuYWJsZWQiLCJ1bnNsaWNrZWQiLCJhY3RpdmVCcmVha3BvaW50IiwiYW5pbVR5cGUiLCJhbmltUHJvcCIsImJyZWFrcG9pbnRzIiwiYnJlYWtwb2ludFNldHRpbmdzIiwiY3NzVHJhbnNpdGlvbnMiLCJmb2N1c3NlZCIsImludGVycnVwdGVkIiwiaGlkZGVuIiwicGF1c2VkIiwicG9zaXRpb25Qcm9wIiwicm93Q291bnQiLCJzaG91bGRDbGljayIsIiRzbGlkZXIiLCIkc2xpZGVzQ2FjaGUiLCJ0cmFuc2Zvcm1UeXBlIiwidHJhbnNpdGlvblR5cGUiLCJ2aXNpYmlsaXR5Q2hhbmdlIiwid2luZG93VGltZXIiLCJvcHRpb25zIiwib3JpZ2luYWxTZXR0aW5ncyIsIm1vekhpZGRlbiIsIndlYmtpdEhpZGRlbiIsImF1dG9QbGF5IiwicHJveHkiLCJhdXRvUGxheUNsZWFyIiwiYXV0b1BsYXlJdGVyYXRvciIsImF1dG9QbGF5VG9nZ2xlSGFuZGxlciIsImNoYW5nZVNsaWRlIiwiY2xpY2tIYW5kbGVyIiwic2VsZWN0SGFuZGxlciIsInNldFBvc2l0aW9uIiwic3dpcGVIYW5kbGVyIiwiZHJhZ0hhbmRsZXIiLCJpbnN0YW5jZVVpZCIsImh0bWxFeHByIiwicmVnaXN0ZXJCcmVha3BvaW50cyIsImFkZFNsaWRlIiwic2xpY2tBZGQiLCJ1bmxvYWQiLCJhcHBlbmRUbyIsImVxIiwiaW5zZXJ0QWZ0ZXIiLCJwcmVwZW5kVG8iLCJjaGlsZHJlbiIsImRldGFjaCIsImFwcGVuZCIsInJlaW5pdCIsImFuaW1hdGVIZWlnaHQiLCJhbmltYXRlU2xpZGUiLCJhbmltU3RhcnQiLCJkdXJhdGlvbiIsInN0ZXAiLCJjZWls
3674IiwiYXBwbHlUcmFuc2l0aW9uIiwiZGlzYWJsZVRyYW5zaXRpb24iLCJnZXROYXZUYXJnZXQiLCJub3QiLCJzbGlkZUhhbmRsZXIiLCJjbGVhckludGVydmFsIiwicmVtb3ZlQXR0ciIsInNsaWNrUGxheSIsInNsaWNrUGF1c2UiLCJidWlsZEFycm93cyIsImNvbnNvbGUiLCJsb2ciLCJhZnRlciIsImJ1aWxkRG90cyIsImdldERvdENvdW50IiwiYnVpbGRPdXQiLCJ3cmFwQWxsIiwic2V0dXBJbmZpbml0ZSIsInVwZGF0ZURvdHMiLCJzZXRTbGlkZUNsYXNzZXMiLCJidWlsZFJvd3MiLCJjcmVhdGVEb2N1bWVudEZyYWdtZW50IiwiZW1wdHkiLCJkaXNwbGF5IiwiY2hlY2tSZXNwb25zaXZlIiwidW5zbGljayIsImN1cnJlbnRUYXJnZXQiLCJtZXNzYWdlIiwiaW5kZXgiLCJjaGVja05hdmlnYWJsZSIsImdldE5hdmlnYWJsZUluZGV4ZXMiLCJjbGVhblVwRXZlbnRzIiwib2ZmIiwiaW50ZXJydXB0IiwidmlzaWJpbGl0eSIsImNsZWFuVXBTbGlkZUV2ZW50cyIsIm9yaWVudGF0aW9uQ2hhbmdlIiwiY2xlYW5VcFJvd3MiLCJzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24iLCJkZXN0cm95IiwiZmFkZVNsaWRlIiwib3BhY2l0eSIsImZhZGVTbGlkZU91dCIsImZpbHRlclNsaWRlcyIsInNsaWNrRmlsdGVyIiwiZm9jdXNIYW5kbGVyIiwiZ2V0Q3VycmVudCIsInNsaWNrQ3VycmVudFNsaWRlIiwiZ2V0TGVmdCIsImZsb29yIiwib2Zmc2V0TGVmdCIsIm91dGVyV2lkdGgiLCJnZXRPcHRpb24iLCJzbGlja0dldE9wdGlvbiIsImdldFNsaWNrIiwiZ2V0U2xpZGVDb3VudCIsImFicyIsImdvVG8iLCJzbGlja0dvVG8iLCJwYXJzZUludCIsInNldFByb3BzIiwic3RhcnRMb2FkIiwibG9hZFNsaWRlciIsImluaXRpYWxpemVFdmVudHMiLCJ1cGRhdGVBcnJvd3MiLCJ1cGRhdGVTbGlkZVZpc2liaWxpdHkiLCJhY2Nlc3NpYmlsaXR5Iiwid2FybiIsImZvY3VzT25DaGFuZ2UiLCJmb2N1c09uU2VsZWN0IiwiaW5pdEFycm93RXZlbnRzIiwiaW5pdERvdEV2ZW50cyIsImluaXRTbGlkZUV2ZW50cyIsImFjdGlvbiIsImluaXRVSSIsIm9ubG9hZCIsIm9uZXJyb3IiLCJzcmMiLCJwcm9ncmVzc2l2ZUxhenlMb2FkIiwic2xpY2tOZXh0IiwicGF1c2UiLCJwbGF5IiwicG9zdFNsaWRlIiwic2xpY2tQcmV2IiwidHlwZSIsInNwbGljZSIsInNvcnQiLCJ3aW5kb3dEZWxheSIsInJlbW92ZVNsaWRlIiwic2xpY2tSZW1vdmUiLCJzZXRDU1MiLCJzZXREaW1lbnNpb25zIiwicGFkZGluZyIsInNldEZhZGUiLCJzZXRIZWlnaHQiLCJzZXRPcHRpb24iLCJzbGlja1NldE9wdGlvbiIsImFyZ3VtZW50cyIsIldlYmtpdFRyYW5zaXRpb24iLCJNb3pUcmFuc2l0aW9uIiwibXNUcmFuc2l0aW9uIiwiT1RyYW5zZm9ybSIsInBlcnNwZWN0aXZlUHJvcGVydHkiLCJ3ZWJraXRQZXJzcG
3674VjdGl2ZSIsIk1velRyYW5zZm9ybSIsIk1velBlcnNwZWN0aXZlIiwid2Via2l0VHJhbnNmb3JtIiwibXNUcmFuc2Zvcm0iLCJ0cmFuc2Zvcm0iLCJjbG9uZSIsInN3aXBlRGlyZWN0aW9uIiwic3RhcnRYIiwiY3VyWCIsInN0YXJ0WSIsImN1clkiLCJhdGFuMiIsInJvdW5kIiwiUEkiLCJzd2lwZUVuZCIsInN3aXBlTGVuZ3RoIiwiZWRnZUhpdCIsIm1pblN3aXBlIiwiaW5kZXhPZiIsImZpbmdlckNvdW50Iiwib3JpZ2luYWxFdmVudCIsInRvdWNoZXMiLCJzd2lwZVN0YXJ0Iiwic3dpcGVNb3ZlIiwicGFnZVgiLCJjbGllbnRYIiwicGFnZVkiLCJjbGllbnRZIiwic3FydCIsInBvdyIsInVuZmlsdGVyU2xpZGVzIiwic2xpY2tVbmZpbHRlciIsImVuZCIsImZuIiwiRXJyb3IiLCJjb2RlIiwiZW5hYmxlIiwic3ZnIiwicXVlcnlTZWxlY3RvciIsImNyZWF0ZUVsZW1lbnROUyIsInN2Z05TIiwic2V0QXR0cmlidXRlIiwidGV4dENvbnRlbnQiLCJfY3JlYXRlWm9vbUluIiwiX2NyZWF0ZVpvb21SZXNldCIsIl9jcmVhdGVab29tT3V0IiwiY29udHJvbEljb25zIiwiZ2V0UHVibGljSW5zdGFuY2UiLCJyZXNldCIsImRpc2FibGUiLCJyZW1vdmVDaGlsZCIsInZpZXdwb3J0Iiwib3JpZ2luYWxTdGF0ZSIsImFjdGl2ZVN0YXRlIiwidXBkYXRlQ1RNQ2FjaGVkIiwidXBkYXRlQ1RNIiwiY3JlYXRlUmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwidmlld0JveCIsImNhY2hlVmlld0JveCIsInByb2Nlc3NDVE0iLCJzZXRDVE0iLCJnZXRBdHRyaWJ1dGUiLCJwYXJzZUZsb2F0IiwidXBkYXRlQ1RNT25OZXh0RnJhbWUiLCJyZW1vdmVBdHRyaWJ1dGUiLCJzaW1wbGVWaWV3Qm94Q2FjaGUiLCJnZXRCQm94IiwiZ2V0Vmlld0JveCIsImdldENUTSIsImdldE9yaWdpbmFsU3RhdGUiLCJnZXRTdGF0ZSIsImdldFpvb20iLCJnZXRSZWxhdGl2ZVpvb20iLCJjb21wdXRlUmVsYXRpdmVab29tIiwiZ2V0UGFuIiwiY3JlYXRlU1ZHTWF0cml4IiwiaXNab29tRGlmZmVyZW50IiwiaXNQYW5EaWZmZXJlbnQiLCJiZWZvcmVab29tIiwidXBkYXRlQ2FjaGUiLCJvblpvb20iLCJiZWZvcmVQYW4iLCJpc09iamVjdCIsImlzTnVtYmVyIiwib25QYW4iLCJwZW5kaW5nVXBkYXRlIiwiZGVmcyIsIm9uVXBkYXRlZENUTSIsImN1c3RvbUV2ZW50c0hhbmRsZXIiLCJldmVudHNMaXN0ZW5lckVsZW1lbnQiLCJwYXNzaXZlIiwic2V0dXBTdmdBdHRyaWJ1dGVzIiwic3RhdGUiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3ROb3JtYWxpemVkIiwiZ2V0T3JDcmVhdGVWaWV3cG9ydCIsInNldEJlZm9yZVpvb20iLCJzZXRPblpvb20iLCJzZXRCZWZvcmVQYW4iLCJzZXRPblBhbiIsInNldE9uVXBkYXRlZENUTSIsImxhc3RNb3VzZVdoZWVsRXZlbnRUaW1lIiwiRGF0ZSIsIm5vdyIsInNldHVwSGFuZGxlcnMiLCJldmVudExpc3RlbmVycyIsIm1vdXNlZG93biIsImhhbmRsZU1vdXNlRG93biIsInRvdWNoc3RhcnQiLCJtb3VzZXVwIiwiaGFuZGxlTW91c2VVcCIsInRvdWNoZW5kIiwibW91c2Vtb3ZlIiwiaGFuZGxlTW91c2VNb3ZlIiwidG91Y2htb3ZlIiwibW91c2VsZWF2ZSIsInRvdWNobGVhdmUiLCJ0b3VjaGNhbmNlbCIsInN2Z0VsZW1lbnQiLCJpbnN0YW5jZSIsImhhbHRFdmVudExpc3RlbmVycyIsImVuYWJsZU1vdXNlV2hlZWxab29tIiwid2hlZWxMaXN0ZW5lciIsImhhbmRsZU1vdXNlV2hlZWwiLCJkaXNhYmxlTW91c2VXaGVlbFpvb20iLCJyZXR1cm5WYWx1ZSIsImRlbHRhWSIsImRlbHRhTW9kZSIsIndoZWVsRGVsdGEiLCJnZXRTY3JlZW5DVE0iLCJpbnZlcnNlIiwiZ2V0RXZlbnRQb2ludCIsIm1hdHJpeFRyYW5zZm9ybSIsInpvb21BdFBvaW50IiwidHJhbnNsYXRlIiwibXVsdGlwbHkiLCJnZXRTdmdDZW50ZXJQb2ludCIsInB1YmxpY1pvb20iLCJjb21wdXRlRnJvbVJlbGF0aXZlWm9vbSIsInB1YmxpY1pvb21BdFBvaW50IiwiZ2V0VHlwZSIsImNyZWF0ZVNWR1BvaW50IiwicmVzZXRab29tIiwicmVzZXRQYW4iLCJwYW4iLCJoYW5kbGVEYmxDbGljayIsInNoaWZ0S2V5IiwibW91c2VBbmRUb3VjaE5vcm1hbGl6ZSIsImlzRGJsQ2xpY2siLCJmaXJzdEV2ZW50Q1RNIiwic3RhdGVPcmlnaW4iLCJkaXNhYmxlQ29udHJvbEljb25zIiwiZW5hYmxlQ29udHJvbEljb25zIiwicHVibGljSW5zdGFuY2UiLCJwaSIsImVuYWJsZVBhbiIsImRpc2FibGVQYW4iLCJpc1BhbkVuYWJsZWQiLCJlbmFibGVab29tIiwiZGlzYWJsZVpvb20iLCJpc1pvb21FbmFibGVkIiwiaXNDb250cm9sSWNvbnNFbmFibGVkIiwiZW5hYmxlRGJsQ2xpY2tab29tIiwiZGlzYWJsZURibENsaWNrWm9vbSIsImlzRGJsQ2xpY2tab29tRW5hYmxlZCIsImlzTW91c2VXaGVlbFpvb21FbmFibGVkIiwic2V0Wm9vbVNjYWxlU2Vuc2l0aXZpdHkiLCJzZXRNaW5ab29tIiwic2V0TWF4Wm9vbSIsInpvb21CeSIsInpvb21BdFBvaW50QnkiLCJyZWFsWm9vbSIsImdldFN2ZyIsImRvY3VtZW50TW9kZSIsInhtbE5TIiwieG1sbnNOUyIsInhsaW5rTlMiLCJldk5TIiwiaXNFbGVtZW50Iiwibm9kZU5hbWUiLCJzZXRBdHRyaWJ1dGVOUyIsImludGVybmV0RXhwbG9yZXJSZWRpc3BsYXlJbnRlcnZhbCIsInJlZnJlc2hEZWZzR2xvYmFsIiwidGhyb3R0bGUiLCJzcmNFbGVtZW50IiwiZGVsdGFYIiwiZGVsYXRaIiwid2hlZWxEZWx0YVgiLCJkZXRhaWwiLCJvbm1vdXNld2hlZWwiLCJIVE1MRWxlbWVudCIsIlNWR0VsZW1lbnQiLCJTVkdTVkdFbGVtZW50Iiwibm9kZVR5cGUiLCJpc05hTiIsImlzRmluaXRlIiwiY29udGVudERvY3VtZW50IiwiZ2V0U1ZHRG9jdW1lbnQiLCJ0aW1lU3RhbXAiLCJnZXRUaW1lIiwibGVhZGluZyIsInRyYWlsaW5nIl0sInNvdXJjZVJvb3QiOiIifQ==
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.