(function() {
var c=1;
var x = document.getElementById("Sureview160");
var sureview_logo_container=document.createElement("div");
var vdo = document.createElement("div");
var vi_maindiv = document.createElement("div");
var teads = document.createElement("script");
teads.id="sureview_2";
var third_party = document.createElement("script");
var adipolo = document.createElement("div");
var teads_main_div = document.createElement("div");
var vdo_id="";
var is_active_adipolo=0;
var is_active_teads=0;
var is_active_aniview=0;
var is_active_vdo=0;
var is_active_valueImpression=0;
var ad_displaying=0;
var running_ads=0;
var by_tag_name="";
var placement_salector="";
var no_of_tag="";
var placed_by="";
var priority1="2";
var priority2="1";
var priority3="4";
var refreshIntervalId;
var iframe="iframe";
var is_added_smc_header=0;
var vdo_player;
var teads_player;
var teads_ads_duration=10000;
var vdo_ads_duration=10000;
var setlogo_intval;
var setlogoTeads_intval;
var dailyMotionStyle = document.createElement('style');
dailyMotionStyle.innerHTML="#dailymotion-pip-large-viewport{ --dm--pip-left: 0px;} #dailymotion-pip-large-viewport{ --dm--pip-left: 0; --dm--pip-right: auto; } #dailymotion-pip-small-viewport {--dm--pip-size-width: 200px !important; --dm--pip-size-height: 110px !important;} .dm-player.dm-player-close-show #dailymotion-pip-large-viewport .dm__close-button, .dm-player.dm-player-close-show #dailymotion-pip-small-viewport .dm__close-button { visibility: visible !important;} .dm-player.dm-player-close-show .dm__close-button { visibility: visible !important; } .dm__close-button { position: absolute !important; top: var(--dm-close-top, -28px) !important; right: unset !important; width: var(--dm-close-width, 25px) !important; height: var(--dm-close-height, 25px) !important; background: var(--dm-close-bg, #000) !important; opacity: var(--dm-close-opacity, 0.45) !important; border-radius: 50% !important; padding: var(--dm-close-padding, 7px) !important; border: var(--dm-close-border, 0) !important; cursor: pointer; visibility: hidden; } .dailymotion-player-wrapper#dailymotion-pip-small-viewport .dm__close-button { left: 0px !important; right: unset !important; }";
top.document.getElementsByTagName('head')[0].appendChild(dailyMotionStyle);
var dailyMotionStyle = document.createElement('style');
dailyMotionStyle.innerHTML="#dailymotion-pip-small-viewport, #dailymotion-pip-large-viewport { width: var(--dm--pip-size-width, 410px) !important; left: var(--dm--pip-left, 0) !important; height: var(--dm--pip-size-height, 231px) !important; transition: right .5s ease !important; right: var(--dm--pip-right, initial) !important;} .dailymotion-player-wrapper#dailymotion-pip-small-viewport .dm__close-button { left: 0px !important; right: unset !important; }";
var reduce_size_for_big_screen= document.createElement('style');
reduce_size_for_big_screen.innerHTML="@media screen and (min-width: 640px) {.dm-player { padding-left: 20% !important; padding-right: 20% !important; }} #dailymotion-pip-small-viewport .dailymotion-player, #dailymotion-pip-small-viewport .dm__pip-new-controls{ border-radius: 10px; }";
top.document.getElementsByTagName('head')[0].appendChild(reduce_size_for_big_screen);
placement_salector=0;
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('GET', "https://lb-app.sureview.tv/api/log-imp/160");
xmlhttp.send();
setTimeout(function(){
var widget_code="PGRpdiBpZD0ic3VyZXZpZXctdmlldy1hZHMtMDAxIj4NCiAgICAgICAgICAgIDxzdHlsZT4NCiAgICAgICAgICAgICAgICAuZGFpbHltb3Rpb24tcGxheWVyLXdyYXBwZXIgaWZyYW1lew0KICAgICAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OnVuc2V0ICFpbXBvcnRhbnQNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgI3N2LXBsYXllci10b3AtY29udHJvbHN7DQogICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsNCiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsNCiAgICAgICAgICAgICAgICAgICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAjc3YtcGxheWVyLXRvcC1jb250cm9scyBkaXYgew0KICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDIycHg7DQoNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgLmZpeGVkRWxlbWVudCB7DQogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOmZpeGVkOw0KICAgICAgICAgICAgICAgICAgICB0b3A6LTVweDsNCiAgICAgICAgICAgICAgICAgICAgLyp3aWR0aDoxMDAlOyovDQogICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDk5OTk5OTk5OTk5OTk5OTk5Ow0KICAgICAgICAgICAgICAgICAgICAvKndpZHRoOjEwMCUgIWltcG9ydGFudDsqLw0KICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTsNCiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzFmMWUxZTg3Ow0KICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAzcHg7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLmZpeGVkRWxlbWVudEZpcnN0Q2hpbGR7DQogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNzlweDsNCiAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAzMDBweDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZTogMC42OyovDQoNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAjc3YtcGxheWVyLW1haW4tY29udGFpbmVyew0KICAgICAgICAgICAgICAgICAgICB3aWR0aDoxMDAlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAuc3YtcGxheWVyLWxvZ297DQogICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOw0KICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwcHg7DQogICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweDsNCiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwcHggMHB4Ow0KICAgICAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiB1bnNldCAhaW1wb3J0YW50Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAuc3YtcGxheWVyLWNsb3Nlew0KICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwNGE7DQogICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjJweDsNCiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMnB4Ow0KICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiB1bnNldCAhaW1wb3J0YW50Ow0KICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDBweDsNCiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgICAgICAgICAgICAgICBib3R0b206IDA7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLypORVcgU1RZTEUqLw0KICAgICAgICAgICAgICAgIC5zdi1jb250ZW50LXBhcmVudHsNCiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2NDBweDsNCiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87DQogICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICAgICAgICAgICAgICAgIGhlaWdodDogMzYwcHg7DQogICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjRzIGxpbmVhcjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgLnN2LWNvbnRlbnQtcGFyZW50LmNvbGxhcHNlew0KICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDsNCiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTpub25lOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAuc3YtY29udGVudC1wYXJlbnQuY29sbGFwc2UgLnN2LWxvZ28sIC5zdi1jb250ZW50LXBhcmVudC5jb2xsYXBzZSAucGxheWVyLXRvZ2dsZS1jb250YWluZXIsIC5zdi1jb250ZW50LXBhcmVudC5jb2xsYXBzZSAuc291bmQtdG9nZ2xlLWNvbnRhaW5lcnsNCiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgLmNyZWRpdC1jb250YWluZXJ7DQogICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXB4Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAuY3JlZGl0LWNvbnRhaW5lciBzcGFuew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOw0KICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDlweDsNCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNiYmI7DQogICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsQXJpYWwsZmFsbGJhY2ssc2Fucy1zZXJpZjsNCiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEwcHg7DQogICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQogICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIC5zdi1pbWFmcmFtZS1jb250YWluZXJ7DQogICAgICAgICAgICAgICAgICAgIHdpZHRoOiA2NDBweDsNCiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OjM0MHB4Ow0KICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7DQogICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGluaXRpYWw7DQogICAgICAgICAgICAgICAgICAgIC8qdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyovDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIC5zdi1sb2dvew0KICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAxMHB4ICFpbXBvcnRhbnQ7DQogICAgICAgICAgICAgICAgICAgIHRvcDogMTBweDsNCiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAuc3YtbG9nbyBpbWd7DQogICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjJweCAhaW1wb3J0YW50Ow0KICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTlweCAhaW1wb3J0YW50Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAuYnRuLXBsYWNlbWVudC1mb290ZXJ7DQogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7DQogICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDsNCiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNSU7DQogICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHRyYW5zcGFyZW50IDAlLCByZ2JhKDAsIDAsIDAsIDAuNSkgMTAwJSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIC5wbGF5ZXItdG9nZ2xlLWNvbnRhaW5lcnsNCiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAxMHB4Ow0KICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICAgICAgICAgICAgICAgIGxlZnQ6IDEwcHg7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIC5zb3VuZC10b2dnbGUtY29udGFpbmVyew0KICAgICAgICAgICAgICAgICAgICByaWdodDogMTBweDsNCiAgICAgICAgICAgICAgICAgICAgLypsZWZ0OiAxMXB4OyovDQogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiA4cHg7DQogICAgICAgICAgICAgICAgICAgIC8qYm90dG9tOiAzNHB4OyovDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIC52aWRlby1idG4tcGF1c2UsIC52aWRlby1idG4tcGxheSwgLnNvdW5kLWJ0bi1wbGF5LCAuc291bmQtYnRuLXBhdXNlew0KICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lOw0KICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7DQogICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7DQogICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgLnZpZGVvLWJ0bi1wYXVzZSBpbWcsIC52aWRlby1idG4tcGxheSBpbWcsIC5zb3VuZC1idG4tcGxheSBpbWcsIC5zb3VuZC1idG4tcGF1c2UgaW1new0KICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDI0cHggIWltcG9ydGFudDsNCiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0cHggIWltcG9ydGFudDsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAucGxheWVyLXRvZ2dsZS1jb250YWluZXIgLnZpZGVvLWJ0bi1wbGF5IGltZ3sNCiAgICAgICAgICAgICAgICAgICAgY29udGVudDp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRm9BQUFCYUNBWUFBQUE0cUVFQ0FBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFDamtsRVFWUjRuTzJkUVdvVVFSU0dXeFNWZ0pCTndLMnVkUkVQb0tmSTFxVlhFRHlBMGFWTHI1QXJKQjVBRHpCcmhZeUtRNmozMS9RbUJPWkpTOE5vVUVGVFZhK3Ezdi9CMjFkOVBLcjduMzQ5UFF5RUVFSUlJWVFRMGlPcWVsTkVYb3ZJWnhINUN1QXd4cmhudmE3dUFQQUtnRjRxaU1pTDVYSzVZNzIrYnBnNitUZWlmNVNJbklySU0xVzlicjNPNXZtVDVFdkNGeUp5WUwzVzdrWC9WQ2NoaEgzck5Yc1FyU0t5QVhBVVFyaG52ZmF1UldNci9GeEUzb1FRZHEzMzBMVm9iT3RNUko2cjZpM3J2ZlF1V3VmNkJPQ3BxbDZ6M2xQdm9uV3VEekhHSjliNzhpQmE1enBlcjljUHJQZm5RYlNLeUFXQXQrTTQzaDI4azFNMHRqVk9VWCsxV3QwWnZGSkl0TTRkdm5RYjZVdUtodWRJYnlFYXYwYjZSNE1IakVXcm0waHZMUnBlSXIyMVlIaUo5QldJVlJlUnZnS2g2aUxTVnlCU1hVVDZDZ1NxaTBodkxROWVJbjBGMHRSRnBMZVdCUytSM2xvUzB0YTdhaU45QlhJMFI2UVhrZnREVFZpTGdaZElieTBFNVNMOWJZcUdnMGhmUWNlcGkwaGZ3Y2JWTU5JL3BHaVVpZlRURUw2cTNtQkhvMGgzSDFJMGluVDJpcUpSUlBRM2lrYVJvK01sUllNWFEyMjhlSHVIdklJWldKQlhNQ000UE15SlZIQldhbzdpejZSd09zdG4zWG53TXAzYVNSY3YrSEFXV1FWejNBQjV1NWdETk1qYndSd0pRLzZ6bUVPT3lDdVlZN3ZJSzVpRDZQQVFtVk5UNEd6VkppZUxVbE9CNEUyVmtia3owU2ZWUnViVUdIWHhvdnJJbkpyQ2drK2JtZEJQVFNISlkzUHZuS1FtY3dkZk5Qc1dWVU9pajV0K0x6QTFHUVMvanpFK3R0NVhkU1FVL0xHcmQ3ZFRrMER3V1plUk9UVlh1TkNkZHgyWlUvTWZnamN1SW5OcS92Vk9JdkJ2amZPSmRobVpVek05U2Y2TFlMK1JPVFg4bUVMQno0Tk1zdWNaaVMvOFBBZ2hoQkJDQ0NHRURPM3hIWmExSHRuMHNxQ1dBQUFBQUVsRlRrU3VRbUNDIik7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLnBsYXllci10b2dnbGUtY29udGFpbmVyIC52aWRlby1idG4tcGF1c2UgaW1new0KICAgICAgICAgICAgICAgICAgICBjb250ZW50OnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFHUUFBQUJrQ0FZQUFBQnc0cFZVQUFBQUNYQklXWE1BQUFzVEFBQUxFd0VBbXB3WUFBQUJMa2xFUVZSNG5PM1J3UW1BUUJBRXdjcy8yNDVBZzFCd2hCclk5MExYT1dabVptWm1abVptWm1abVp2Wm8xZlhtblovOW45dlhRUUt5RlNRZ1cwRUNzaFVrSUZ0QkFySVZKQ0JiUVFLeUZTUWdXMEVDc2hVa0lGdEJBcklWSkNCYlFRS3lGU1FnVzBFQ3NoVWtJRnRCQXJJVkpDQmJRUUt5RlNRZ1cwRUNzaFVrSUZ0QkFySVZKQ0JiUVFLeUZTUWdXMEVDc2hVa0lGdEJBcklWSkNCYlFRS3lGU1FnVzBFQ3NoVWtJRnRCQXJJVkpDQmJRUUt5RlNRZ1cwRUNzaFVrSUZ0QkFySVZKQ0JiUVFLeUZTUWdXMEVDc2hVa0lGdEJBcklWSkNCYlFRS3lGU1FnVzBFQ3NoVWtJRnRCQXJJVkpDQmJRUUt5RlNRZ1cwRUNzaFVrSUZ0QkFySVZKQ0JiUVFLeUZTUWdXMEVDc2hVa0lGdEJBcklWSkNCYlFRSmlabVptWm1abVptWm1abVoybG5ZREFUU1ptWUlMNDhrQUFBQUFTVVZPUks1Q1lJST0iKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAuc291bmQtdG9nZ2xlLWNvbnRhaW5lciAuc291bmQtYnRuLXBsYXkgaW1new0KICAgICAgICAgICAgICAgICAgICBjb250ZW50OnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFHQUFBQUJnQ0FZQUFBRGltSGM0QUFBQUNYQklXWE1BQUFzVEFBQUxFd0VBbXB3WUFBQUVvMGxFUVZSNG5PMmRUNmhWUlJ6SHAyeFJrSkc3VWtqVS9pektUWnZTaFpGQ0xRcHFtMEdRcmZwREZpVlJLT2hDTjZHZ0lKanBvaFpCQlM0TnNvaUNFbDVCejR5TU5vcTFlYnpYbmUvM25Ic293NXFZT0EvaU1iL3pQUGVlT2VlZXViOFB6RzVtN3R6ZjkvejV6Y3h2ZnNjWVJWRVVSVkVVUlZFVVJWRVVSVkVVcFdmTXpjM2RET0JGQUtjQW5DWDVNY2xubkhNcnVoNWI4bVJaOWhESlN5UmRvSHhiRk1YcXJzZVlMQUMyQTdnaUdIK3huSFBPM2RUMVdKT0Q1RTRBZnk5ai9NWHljdGZqVFFibjNQVUFEbCtqNFJmTFROZmpUZ0xuM0kzbEM5YlZMRm5YWSs4OUFGWUIrSElFNC85WHVoNS9yeW1LWXJWL21ZNXFmQlZnRFBJOHY0L2s1WEdNcndLTWlMVjJLMG1NYS95bUJQQU9nSmtXY0cwK2Zpc0NXR3UzQWZqSjl3UGdSMnZ0d3labFNPNEM4RTlUeGg5SGdNRmdzSlprc2FTL29iVjJuVWtOTjVxUEgxVUFrcStHK2dOd3dxU0VHOTNIanlvQWdKY0VBZjd5ZDRkSnlNZi9LcGJ4eHhHZ0tJbzEzdGhDdjBkTTN5a2E4UEZqdjRRQnZDZjBteTBzTE54aXB0M0haMlFCL0RnbHA4QS9vc3kwKy9pTUxJQUh3R21oNzNPbWJid2ZUUEk0Z0F2ZUpXdkxpT3hRZ1BJL0IvdjJkNGhwQXdBYlNIN2V0VEhaZ1FBZWtyTkMvd2VhNkgrNUg5OE1ZS0ZyUTdKaEFjcFo3Zy9sckh1RzVBTVZObmd0MURlQW4wM3NLNy9QeHFjZ0FJRDFnVm11SFE2SHQ0WHFENGZEMndGY0ZVUllIMDJBdmo1MnVMd0Fid2oxOTBtMkFQQjFxOTVRNmEyNEZBVWcrYnBRLzFjcHBBWEFtMEtiajZJSTRMMmRoQVc0dTJMUjcvRlFHMnZ0L1pKb1VRVHdMNWhVQmZDUS9DSlVIOEJKRThEZkdYNEdIR3JqbHkxTTAwZy8xcmRpQkFBOEpRandtM1B1T3NFbW53bHRIbzBoZ0V0WmdQbjUrWlhTeGsrZTV4dERiUUFjRkg1bnB3ckFlZ0pVWGRFa2R3ajFkd2oxajZvQXJDOEFnTjNDSStWZ3FINldaVnVFK3FkVUFOWVhJTXV5SjRSMm53aUMzU2tJY0ZZRjRFaVBvTHZxckhUNmNIaEJnRjlVQU5ZWHdGcDdxOUR1WXNYZWRXaitjRmtGWUgwQlNvT0dJcTEvbDlvQStETndCOHlyQUJ4SmdCWENGVDFRQVJoM0hsQmV6YXYwRWNTSmZBblBodXJyUzVqTkNwQmwyWk9DVjNPNmptQUF2akZORS92S1pFdWw2ajhDMkNNWTlPMktnNEdoK2pvUlk3TkxFYzhLQWp3bjFOZWxDTllVd0FkV1ZTekdCYU1kQUJ4cWN6RXU5ZVhvN1hVM1dDcVdveDlwWElBcDNwQjVOMVRmT1hjRHliek5EWmwzVWhXQTVEMFZXNUtQMWR5U2JINFpZcm1Jc0FRRTJDVVpzMkpUL2kyaHpZZFJCQ2dIZW1iS3dsTDJTcmJ3dm42b2pVOFdFazBBZnh6SEx6UWxLTUFHQUg4c3FRc2ZnQ1dGMGt2cEVhSUdabmxJYnVxekNLWTZOUEY4K1M3NGp1U0RGVFlJeGhINUlPVm9obDh5MkhVa1AwMUpnRHBVSENUWmI5cWtuSW9mSzQ5dUJsMnlTU3NtWW9SZ251ZjNtcjVoMHptZzhiM3BLM2wvamlodHJEaWk5THhKNEpEZTdDUUxBT0Q5SkEvcDlmMllxajlVYmxMQjllK2c5cFhCWUhDSFNRazNtYWtLWHBtS1ZBWC9SNU4xVEFDWXZIUTFGOG9yLzN6eTZXb1cwWVJORTBDdUtjdlNtQ3NZWlR5Z2FTdTd4Mm5pMXU1eG1ycDRNcUFtNys3TlhHRlcwOWQzOXdHSEdmMkFRM3VmTUhuQkI4ZVdFUndmQUhoYVAyR2lLSXFpS0lxaUtJcWlLSXFpS0lwaU91WmY0UUQ4OGp3L0dCd0FBQUFBU1VWT1JLNUNZSUk9Iik7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLnNvdW5kLXRvZ2dsZS1jb250YWluZXIgLnNvdW5kLWJ0bi1wYXVzZSBpbWd7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUdBQUFBQmdDQVlBQUFEaW1IYzRBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBRExVbEVRVlI0bk8yY1MyN1RVQmhHZnlpQ01Wc0FVVUNBUUVEVnJvZ3RNR1VGQ0NRZUM0QUJESkFxS2dRVEhuc0ExZ0FUNHUrTGVaZnFvaXZkVEtva3RaMXIvN2J6SGNtakt0ZkpPWDRrOXEzTmhCQkNDQ0dFRUVJSUlZUVFRZ2d4anhEQzhibC9FTzBDNEJhQXJ3QitrM3dPNExTY2R3VEpPeVREb2VXcEF2akpEeVNoQUg3eVExd1V3RkUrRmNCWFBoWEFWejRWd0ZjK0ZjQlhQaFhBVno0VndGYytGY0JYUGhYQVZ6NFZ3RmMrRmNCWFBoWEFWejVyQmdnaEhHdndsbnN6ZnUva3MyS0FvaWl1a1h3RDRCZUFQd0QycHRQcGhWeWZhenFkWGdTd0c2L094blhFZFUwbWs2czJkdm1zRUNESkwrZTh0aUM1bmVGemJhZXhEbzlmOWlaQ1cvSlpJVURjR3BlOEhxdEVTUEt4WlB6WE5tYjVQQ0pBdkhlY0Rna2hkNFFLOGtOY2QvYnpRbG1XVndEY0IvQ0o1UGMyNVRMREhnRGdaNFZ4YWtXb0lqOHRQeXdYSVlSVEpCOEJPUENXem5vQmRpdU9WU2xDRGZseEQzaVJVLzQ3Yjlsc0Z1RHNncE5rN1FoMTVNZDFBamlUSlFESng5NmkyVEJBQTNGekkrUVlZNVZqL3NHUUE2d3EwRTErSko1d3ZTVXpRNEJJVVJUWFNYNnJJWElId0EyU0V4ZjVLY0Ruc1FSb3VEWDdiUGt6RnZ5SzdNMWlEYWk1Si9qSmozZ0xaZ3NCTWtkb1QzNWtyQUV5UldoWGZtVE1BVmFNMEw3OHlOZ0ROSXpRamZ6SU9nUkF2YSthc3dBNzFnVmpENEQ2OHJ1Tk1PWUFhQzYvdXdoakRZRFY1WGNUWVl3L3hKQlBmdnNSZENtQ3ZwY2lBTndieXg2QUJoZldtbHpBeXhxZ0xNdkxBUDROUFFDSGVqazZ2WUdIUXc3QUlkK1FpWVFRVHBKOE84UUFKTTk3M1pJa3Vaazd3b08rSFk3c0NBQzhjcndwdjJlNUtjdnlFb0M3QUQ3MjRTdXFMU0dFc0JHbkl1YVNYemRDbWhmaysxd0xBTGNkQTV3QXNKOVQvb3dxMzQ0QS9JMGJnYTN6MUVRQUgzTExyN0VudkxkMW41d0xZR3ZCOU1SV0orZW1tZGczclU5NFRVOEhzQlczeG5nNGlvKzZBZkNTNUxtTW4yc3pubkRUMlB0cFhmMlMzNU4vME5obzg2UVl4KzdGTWIvTEU3TUozd2dtZlBjRUU3NFJUUGhHTU9FYndZUnZCQk8rRVV6NFJqRGhHOEdFYndRVHZoRk10QS8xNk9KK1JnRHd4UHQ5cmVQajY3K2tHeXpQOVBoNko0TDNqVzRoaEJCQ0NDR0VFRUlJSVlRUXdnYkZmMGhGVDBMT0dNTGNBQUFBQUVsRlRrU3VRbUNDIik7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLnN2aWV3X2Zsb2F0X3BsYXllcl9vdXRzdHJlYW17DQogICAgICAgICAgICAgICAgICAgIGhlaWdodDogdW5zZXQgIWltcG9ydGFudDsNCiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogOTk5OTk5OTk5OTk5OTkgIWltcG9ydGFudDsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAvKmNvZGUgZm9yIG1vYmlsZSovDQogICAgICAgICAgICAgICAgLnN2LWltYWZyYW1lLWNvbnRhaW5lci1tb2JpbGV7DQogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNzlweCAhaW1wb3J0YW50Ow0KICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMXB4ICFpbXBvcnRhbnQ7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLm5vX2Fkc3sNCiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLmNsb3NlX2J0bl9zZWN7DQogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4Ow0KICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1bnNldCFpbXBvcnRhbnQ7DQogICAgICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IHVuc2V0IWltcG9ydGFudDsNCiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMjBweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNyk7DQogICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7DQogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgICAgICAgICAgICAgICAgdG9wOjA7DQogICAgICAgICAgICAgICAgICAgIHotaW5kZXg6MjE0NzQ4MzY0NjsNCiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTVweDsNCiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTpub25lOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAuY2xvc2VfYnRuX3NlY19hZnRlcl8xMHsNCiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7DQogICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVuc2V0IWltcG9ydGFudDsNCiAgICAgICAgICAgICAgICAgICAgYm94LXNpemluZzogdW5zZXQhaW1wb3J0YW50Ow0KICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMjBweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNyk7DQogICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7DQogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgICAgICAgICAgICAgICAgdG9wOjA7DQogICAgICAgICAgICAgICAgICAgIHotaW5kZXg6MjE0NzQ4MzY0NjsNCiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTVweDsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAuY2xvc2VfYnRuX3NlY3sNCiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLmNyZWRpdC1jb250YWluZXJ7DQogICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50Ow0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIC8qRW5kIENvZGUgZm9yIG1vYmlsZSovDQoNCiAgICAgICAgICAgICAgICAvKkVORCBORVcgU1RZTEUqLw0KICAgICAgICAgICAgPC9zdHlsZT4NCiAgICAgICAgICAgIDxkaXYgaWQ9J2R2LXBsYXllci1zaXplJyBzdHlsZT0nJz4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b3Atc3R5bGUiPg0KDQogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InN2LXBsYXllci1tYWluLWNvbnRhaW5lciIgY2xhc3M9ImZpeGVkRWxlbWVudCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJzdi1wbGF5ZXItY29udHJvbHMtY29udGFpbmVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJzdi1wbGF5ZXItdG9wLWNvbnRyb2xzIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ic3VyZXZpZXctbG9nbyIgc3R5bGU9J3RleHQtYWxpZ246IGxlZnQ7IGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50Oyc+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vc3VyZXZpZXcudHYvIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBjbGFzcz0ic3YtcGxheWVyLWxvZ28iIHNyYz0iaHR0cHM6Ly9hcHAuc3VyZXZpZXcudHYvbG9nby9zdXJldmlld19iYW5uZXJfbG9nby5zdmciIC8+PC9hPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImN1c3RvbS1kbS1wbGF5ZXIiIHN0eWxlPSJiYWNrZ3JvdW5kOnJlZDsiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJ0ZXN0LXN1cmV2aWV3Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzY3JpcHQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1haW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWFpbl9jb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWluX2NvbnRhaW5lci5pZCA9ICJzdi1naW1hLWNvbnN0LWNvbnRuciI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFpbl9jb250YWluZXIuY2xhc3NOYW1lID0gInN2LWNvbnRlbnQtcGFyZW50IHN2aWV3X2Zsb2F0X3BsYXllcl9vdXRzdHJlYW0gY29sbGFwc2UiOw0KDQoNCi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpOw0KLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluay50eXBlID0gInRleHQvY3NzIjsNCi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsucmVsID0gInN0eWxlc2hlZXQiOw0KLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluay5ocmVmID0gImh0dHBzOi8vYXBwLnN1cmV2aWV3LnR2L2Fzc2V0cy9vdXRzdHJlYW1fcGxheWVyL3N0eWxlLmNzcyI7DQovLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWluLmFwcGVuZENoaWxkKGxpbmspOw0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgY3JlZGl0X2NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWRpdF9jb250YWluZXIuY2xhc3NOYW1lID0gImNyZWRpdC1jb250YWluZXIiOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzcGFuX2FkdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFuX2Fkdi5pbm5lckhUTUwgPSAiLS0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWRpdF9jb250YWluZXIuYXBwZW5kQ2hpbGQoc3Bhbl9hZHYpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1haW5fY29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWRpdF9jb250YWluZXIpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNsb3NlX2NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlX2NvbnRhaW5lci5jbGFzc05hbWUgPSAiY2xvc2VfYnRuX3NlYyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VfY29udGFpbmVyLmlkID0gInN2aWV3LWNsb3NlLXNlY3Rpb24iOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNsb3NlX3N1Yl9jb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZV9zdWJfY29udGFpbmVyLnN0eWxlLmNzc1RleHQgPSAiYmFja2dyb3VuZDogdW5zZXQhaW1wb3J0YW50O2JveC1zaXppbmc6IHVuc2V0IWltcG9ydGFudDtwYWRkaW5nOiAycHg7cG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTogMDsgbGVmdDogMDsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjbG9zZV9zdWJfc3ViX2NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlX3N1Yl9zdWJfY29udGFpbmVyLmlkID0gImhpZGVTdmlld1NtYXJ0QmFubmVyIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZV9zdWJfc3ViX2NvbnRhaW5lci5zdHlsZS5jc3NUZXh0ID0gImJhY2tncm91bmQ6IHVuc2V0IWltcG9ydGFudDtib3gtc2l6aW5nOiB1bnNldCFpbXBvcnRhbnQ7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTogYmxvY2s7IGZsb2F0OiBsZWZ0OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxMHB4OyBtYXJnaW46IDNweDsgZm9udC1zaXplOiAxOHB4OyBib3gtc2l6aW5nOiB1bnNldCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDogMDsiOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNyb3NzX2ltYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jvc3NfaW1hZ2Uuc3JjID0gImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBREFBQUFBd0NBWUFBQUJYQXZtSEFBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFCSUVsRVFWUjRuTzJaM1E0Qk1SQkd5N3NMRjBLNDRBYnZLSDV1anpTN1Fsald0cDNwU09ZOHdQUTczZjVNc3lFNGp1TTRVZ0FUNEFTc2dMSGl1R05nRFp5QmFVNmhJdy8yR2hJMDRlTllkNDQ1eGVaUGhjUWxlQThmbWVjVUhBR2JsNElIQ1FtYXNiYkZKMHhEQXFud0doSkloNWVVUUN1OGhJUjYrSklTMWNLWGtLZ2VQa2ZDVFBnVUNYUGhoMGlZRGYrTGhQbndkOXF3dTQ2Z3I3M056bHo0bmk5aGUrWUhTTmdQSC9tdzV0ODI5citGdHk5QjkyT2theFBiVzBwOE9TbzFIMFZKL0hMT201Vmd3Q1ZsVG9LRUc5YU1CQm50UVhVSkN2UTIxU1FvMkppcFN5RFFWYUlsSWRrU0l5MmgwYzhqSmFINUdFRkNBbGhxaE8vcHB4WWhGZUNxRmY2THhDV2tBc3hpZ1RnTEZYNXdMTnF4MDM5d09JN2pPS0dIRy9Ia0NRb3kxaHJvQUFBQUFFbEZUa1N1UW1DQyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jvc3NfaW1hZ2Uuc3R5bGUuY3NzVGV4dCA9ICJoZWlnaHQ6IDE1cHg7IGN1cnNvcjogcG9pbnRlcjsgbWFyZ2luLWxlZnQ6IGF1dG87IG1hcmdpbjogdW5zZXQ7IHZlcnRpY2FsLWFsaWduOiB1bnNldDsgYm9yZGVyLXN0eWxlOiB1bnNldDsgbWFyZ2luLWxlZnQ6IC00cHg7IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZV9zdWJfc3ViX2NvbnRhaW5lci5hcHBlbmRDaGlsZChjcm9zc19pbWFnZSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2Vfc3ViX2NvbnRhaW5lci5hcHBlbmRDaGlsZChjbG9zZV9zdWJfc3ViX2NvbnRhaW5lcik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VfY29udGFpbmVyLmFwcGVuZENoaWxkKGNsb3NlX3N1Yl9jb250YWluZXIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1haW5fY29udGFpbmVyLmFwcGVuZENoaWxkKGNsb3NlX2NvbnRhaW5lcik7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaW1hZnJhbWVfY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZnJhbWVfY29udGFpbmVyLmNsYXNzTmFtZSA9ICJzdi1pbWFmcmFtZS1jb250YWluZXIgc3YtaW1hZnJhbWUtY29udGFpbmVyLW1vYmlsZSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBsYXllcl9jb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF5ZXJfY29udGFpbmVyLmlkID0gInZpZGVvLXBsYXllci1jb250YWluZXIiOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWZyYW1lX2NvbnRhaW5lci5hcHBlbmRDaGlsZChwbGF5ZXJfY29udGFpbmVyKTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzdl9sb2dvX2NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN2X2xvZ29fY29udGFpbmVyLmNsYXNzTmFtZSA9ICJzdi1sb2dvIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdl9sb2dvX2NvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Lm9wZW4oJ2h0dHBzOi8vc3VyZXZpZXcudHYnLCAnX2JsYW5rJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3ZfbG9nbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN2X2xvZ28uc3JjID0gImh0dHBzOi8vYXBwLnN1cmV2aWV3LnR2L2NvbnRyb2xzL3N1cmV2aWV3LWljb24uc3ZnIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdl9sb2dvX2NvbnRhaW5lci5hcHBlbmRDaGlsZChzdl9sb2dvKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFmcmFtZV9jb250YWluZXIuYXBwZW5kQ2hpbGQoc3ZfbG9nb19jb250YWluZXIpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGJybl9wbGFjZW1lbnRfZm9vdGVyX2NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJybl9wbGFjZW1lbnRfZm9vdGVyX2NvbnRhaW5lci5jbGFzc05hbWUgPSAiYnRuLXBsYWNlbWVudC1mb290ZXIiOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWZyYW1lX2NvbnRhaW5lci5hcHBlbmRDaGlsZChicm5fcGxhY2VtZW50X2Zvb3Rlcl9jb250YWluZXIpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBsYXllcl90b2dnZXJfY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxheWVyX3RvZ2dlcl9jb250YWluZXIuY2xhc3NOYW1lID0gInBsYXllci10b2dnbGUtY29udGFpbmVyIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGxheV9wYXVzZV9idG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF5X3BhdXNlX2J0bi5pZCA9ICJwbGF5ZXItdG9nZ2xlIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF5X3BhdXNlX2J0bi5jbGFzc05hbWUgPSAidmlkZW8tYnRuLXBhdXNlIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGxheXBhdXNlX2ljb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF5X3BhdXNlX2J0bi5hcHBlbmRDaGlsZChwbGF5cGF1c2VfaWNvbik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxheWVyX3RvZ2dlcl9jb250YWluZXIuYXBwZW5kQ2hpbGQocGxheV9wYXVzZV9idG4pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWZyYW1lX2NvbnRhaW5lci5hcHBlbmRDaGlsZChwbGF5ZXJfdG9nZ2VyX2NvbnRhaW5lcik7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc291bmRfdG9nZ2VyX2NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdW5kX3RvZ2dlcl9jb250YWluZXIuY2xhc3NOYW1lID0gInNvdW5kLXRvZ2dsZS1jb250YWluZXIiOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzb3VuZF9wYXVzZV9idG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VuZF9wYXVzZV9idG4uaWQgPSAic291bmQtdG9nZ2xlIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VuZF9wYXVzZV9idG4uY2xhc3NOYW1lID0gInNvdW5kLWJ0bi1wYXVzZSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNvdW5kX2ljb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VuZF9wYXVzZV9idG4uYXBwZW5kQ2hpbGQoc291bmRfaWNvbik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291bmRfdG9nZ2VyX2NvbnRhaW5lci5hcHBlbmRDaGlsZChzb3VuZF9wYXVzZV9idG4pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWZyYW1lX2NvbnRhaW5lci5hcHBlbmRDaGlsZChzb3VuZF90b2dnZXJfY29udGFpbmVyKTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1haW5fY29udGFpbmVyLmFwcGVuZENoaWxkKGltYWZyYW1lX2NvbnRhaW5lcik7DQoNCg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFpbi5hcHBlbmRDaGlsZChtYWluX2NvbnRhaW5lcik7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgeHl6ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3Qtc3VyZXZpZXciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4eXouYXBwZW5kQ2hpbGQobWFpbik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NjcmlwdD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzY3JpcHQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmN1cnJQbGF5ZXIgPSAiIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc3ZfcGdfcmVxID0gMDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgY29uc3RydWN0QWRDb250YWluZXIgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zdl9wZ19yZXEgPSB3aW5kb3cuc3ZfcGdfcmVxICsgMTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5zdl9wZ19yZXEgPD0gMTApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhdmFpbGFibGVBZENvbnRhaW5lcklkcyA9IFsic3YtZ2ltYS0xIiwgInN2LWdpbWEtMiIsICJzdi1naW1hLTMiLCAic3YtZ2ltYS00IiwgInN2LWdpbWEtNSIsICJzdi1naW1hLTYiLCAic3YtZ2ltYS03IiwgInN2LWdpbWEtOCIsICJzdi1naW1hLTkiLCAic3YtZ2ltYS0xMCJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHN2UGFyZW50U2xvdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidmlkZW8tcGxheWVyLWNvbnRhaW5lciIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGF2YWlsYWJsZVBsYXllcnMgPSBzdlBhcmVudFNsb3RzLmNoaWxkcmVuOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRpc3RhbnRQbGF5ZXJJRHMgPSBbXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdmFpbGFibGVQbGF5ZXJzLmxlbmd0aCA+IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF2YWlsYWJsZVBsYXllcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVhY2hQbGF5ZXJJZCA9IGF2YWlsYWJsZVBsYXllcnNbaV0uaWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gYXZhaWxhYmxlQWRDb250YWluZXJJZHMuaW5kZXhPZihlYWNoUGxheWVySWQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAtMSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlQWRDb250YWluZXJJZHMuc3BsaWNlKGluZGV4LCAxKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdmFpbGFibGVBZENvbnRhaW5lcklkcy5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFkQ29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFkQ29udGFpbmVySWQgPSBhdmFpbGFibGVBZENvbnRhaW5lcklkcy5wb3AoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZENvbnRhaW5lci5pZCA9IGFkQ29udGFpbmVySWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZpZGVvLXBsYXllci1jb250YWluZXIiKS5hcHBlbmRDaGlsZChhZENvbnRhaW5lcik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFkQ29udGFpbmVySWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGxvYWRHSU1BKHBsYXllckNvbnRhaW5lcklEKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0YXJnZXRQbGF5ZXJDb250YWluZXJJZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHBsYXllckNvbnRhaW5lcklEKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFkRGlzcGxheUNvbnRhaW5lciA9IG5ldyBnb29nbGUuaW1hLkFkRGlzcGxheUNvbnRhaW5lcih0YXJnZXRQbGF5ZXJDb250YWluZXJJZCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkRGlzcGxheUNvbnRhaW5lci5pbml0aWFsaXplKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFBsYXllckNvbnRhaW5lcklkLnNldEF0dHJpYnV0ZSgiZGF0YS1naW1hLXAtaWQiLCBhZERpc3BsYXlDb250YWluZXIuWik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBnSU1BTG9hZGVyID0gbmV3IGdvb2dsZS5pbWEuQWRzTG9hZGVyKGFkRGlzcGxheUNvbnRhaW5lcik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdJTUFMb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcihnb29nbGUuaW1hLkFkc01hbmFnZXJMb2FkZWRFdmVudC5UeXBlLkFEU19NQU5BR0VSX0xPQURFRCwgb25BZHNNYW5hZ2VyTG9hZGVkLCBmYWxzZSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdJTUFMb2FkZXIuZ2V0U2V0dGluZ3MoKS5zZXRGZWF0dXJlRmxhZ3MoeydkaXNhYmxlQ2xpY2tBZFBhdXNlJzogdHJ1ZX0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnSU1BTG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIoZ29vZ2xlLmltYS5BZEVycm9yRXZlbnQuVHlwZS5BRF9FUlJPUiwgb25BZHNFcnJvciwgZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ0lNQUxvYWRlcjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjb25maWd1cmVHSU1BKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZ0lNQUNvbmYgPSBuZXcgZ29vZ2xlLmltYS5BZHNSZXF1ZXN0KCk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0lNQUNvbmYuYWRUYWdVcmwgPSAnaHR0cHM6Ly9wdWJhZHMuZy5kb3VibGVjbGljay5uZXQvZ2FtcGFkL2Fkcz9pdT0vMjI3MjkzMTU1NzQvSnVibmEvSnVibmFfTXViYXNoZWVyX1Zhc3QmZGVzY3JpcHRpb25fdXJsPWh0dHBzJTNBJTJGJTJGd3d3Lm11YmFzaGVyLmluZm8lMkYmdGZjZD0wJm5wYT0wJnN6PTQwMHgzMDAlN0M2NDB4NDgwJmdkZnBfcmVxPTEmdW52aWV3ZWRfcG9zaXRpb25fc3RhcnQ9MSZvdXRwdXQ9dmFzdCZlbnY9dnAmaW1wbD1zJmNvcnJlbGF0b3I9JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KDQovLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdJTUFDb25mLmFkVGFnVXJsID0gImh0dHBzOi8vcHViYWRzLmcuZG91YmxlY2xpY2submV0L2dhbXBhZC9hZHM/aXU9LzIxNzc1NzQ0OTIzL2V4dGVybmFsL3NpbmdsZV9hZF9zYW1wbGVzJnN6PTY0MHg0ODAmY3VzdF9wYXJhbXM9c2FtcGxlX2N0JTNEbGluZWFyJmNpdV9zenM9MzAweDI1MCUyQzcyOHg5MCZnZGZwX3JlcT0xJm91dHB1dD12YXN0JnVudmlld2VkX3Bvc2l0aW9uX3N0YXJ0PTEmZW52PXZwJmltcGw9cyZ2cG11dGU9MCZjb3JyZWxhdG9yPSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnSU1BQ29uZi5saW5lYXJBZFNsb3RXaWR0aCA9IDQ0MDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0lNQUNvbmYubGluZWFyQWRTbG90SGVpZ2h0ID0gMjQwOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnSU1BQ29uZi5ub25MaW5lYXJBZFNsb3RXaWR0aCA9IDI0MDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0lNQUNvbmYubm9uTGluZWFyQWRTbG90SGVpZ2h0ID0gMTUwOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ0lNQUNvbmY7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG9uQWRzTWFuYWdlckxvYWRlZCA9IGZ1bmN0aW9uIChhZHNNYW5hZ2VyTG9hZGVkRXZlbnQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRzTWFuYWdlciA9IGFkc01hbmFnZXJMb2FkZWRFdmVudC5nZXRBZHNNYW5hZ2VyKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJykpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZHNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ29vZ2xlLmltYS5BZEV2ZW50LlR5cGUuU1RBUlRFRCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkFkU3RhcnRlZCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcigNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb29nbGUuaW1hLkFkRXZlbnQuVHlwZS5SRVNVTUVELA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkc1Jlc3VtZSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcigNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb29nbGUuaW1hLkFkRXZlbnQuVHlwZS5QQVVTRUQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRzUGF1c2UpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZHNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ29vZ2xlLmltYS5BZEV2ZW50LlR5cGUuVk9MVU1FX01VVEVELA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkc011dGUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZHNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ29vZ2xlLmltYS5BZEV2ZW50LlR5cGUuVk9MVU1FX0NIQU5HRUQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRzVW5NdXRlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvb2dsZS5pbWEuQWRFdmVudC5UeXBlLkNMSUNLLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQWRzQ2xpY2spOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZHNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ29vZ2xlLmltYS5BZEV2ZW50LlR5cGUuQ09NUExFVEUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25BZHNDb21wbGV0ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkc01hbmFnZXIuc2V0Vm9sdW1lKDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRzTWFuYWdlci5pbml0KDE3OSwgMTAxLCBnb29nbGUuaW1hLlZpZXdNb2RlLk5PUk1BTCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZHNNYW5hZ2VyLnN0YXJ0KCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGFkRXJyb3IpIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGlzX3BsYXlpbmcgPSAwOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpc19tdXRlZCA9IDE7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFkc01hbmFnZXI7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGVzdHJveVBsYXllciA9IGZ1bmN0aW9uIChwbGF5ZXJJZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2W2RhdGEtZ2ltYS1wLWlkPSInICsgcGxheWVySWQgKyAnIl0nKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5yZW1vdmUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBpbml0QWRzKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGxheWVyQ29udGFpbmVySUQgPSBjb25zdHJ1Y3RBZENvbnRhaW5lcigpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZ0lNQUxvYWRlciA9IGxvYWRHSU1BKHBsYXllckNvbnRhaW5lcklEKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGdJTUFDb25mID0gY29uZmlndXJlR0lNQSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnSU1BTG9hZGVyLnJlcXVlc3RBZHMoZ0lNQUNvbmYpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBvbkFkc0NvbXBsZXRlKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN2aWV3LWNsb3NlLXNlY3Rpb24iKS5jbGFzc0xpc3QucmVtb3ZlKCJjbG9zZV9idG5fc2VjX2FmdGVyXzEwIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkc01hbmFnZXIuc2V0Vm9sdW1lKDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19tdXRlZCA9IDE7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwbGF5ZXJJZCA9IGUudGFyZ2V0LmcuWjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3ZHaW1hQ29uc3RDb250bnIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3YtZ2ltYS1jb25zdC1jb250bnIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ZHaW1hQ29uc3RDb250bnIuY2xhc3NMaXN0LmFkZCgiY29sbGFwc2UiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0cm95UGxheWVyKHBsYXllcklkKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRBZHMoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgMjAwMCk7DQoNCi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3YtcGxheWVyLW1haW4tY29udGFpbmVyIikuc3R5bGUuY3NzVGV4dCA9ICJkaXNwbGF5Om5vbmUiOw0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gb25BZFN0YXJ0ZWQoZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdkdpbWFDb25zdENvbnRuciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdi1naW1hLWNvbnN0LWNvbnRuciIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdkdpbWFDb25zdENvbnRuci5jbGFzc0xpc3QucmVtb3ZlKCJjb2xsYXBzZSIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19wbGF5aW5nID0gMTsNCi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3YtcGxheWVyLW1haW4tY29udGFpbmVyIikuc3R5bGUuY3NzVGV4dCA9ICJkaXNwbGF5OnVuc2V0IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWZ0ZXJfMTBfc2VjKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGFkc1BhdXNlKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfcGxheWluZyA9IDA7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGFkc1Jlc3VtZShlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX3BsYXlpbmcgPSAxOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBhZHNNdXRlKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfbXV0ZWQgPSAxOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBhZHNVbk11dGUoZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19tdXRlZCA9IDA7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG9uQWRzQ2xpY2soZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBvbkFkc0Vycm9yKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdHJveVBsYXllcihlLmN1cnJlbnRUYXJnZXQuZy5aKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdEFkcygpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiB0b2dnbGVWaWRlb1BsYXllcigpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzX3BsYXlpbmcpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkc01hbmFnZXIucGF1c2UoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX3BsYXlpbmcgPSAwOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBsYXllci10b2dnbGUiKS5jbGFzc05hbWUgPSAidmlkZW8tYnRuLXBsYXkiOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRzTWFuYWdlci5yZXN1bWUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX3BsYXlpbmcgPSAxOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBsYXllci10b2dnbGUiKS5jbGFzc05hbWUgPSAidmlkZW8tYnRuLXBhdXNlIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiB0b2dnbGVTb3VuZEJ1dHRvbigpIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNfbXV0ZWQgPT09IDEpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX211dGVkID0gMDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkc01hbmFnZXIuc2V0Vm9sdW1lKDEpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNvdW5kLXRvZ2dsZSIpLmNsYXNzTmFtZSA9ICJzb3VuZC1idG4tcGxheSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19tdXRlZCA9IDE7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZHNNYW5hZ2VyLnNldFZvbHVtZSgwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzb3VuZC10b2dnbGUiKS5jbGFzc05hbWUgPSAic291bmQtYnRuLXBhdXNlIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGxheVBhdXNlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BsYXllci10b2dnbGUnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF5UGF1c2UuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0b2dnbGVWaWRlb1BsYXllcik7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc291bmRVbm11dGVidG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc291bmQtdG9nZ2xlJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291bmRVbm11dGVidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0b2dnbGVTb3VuZEJ1dHRvbik7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgR0lNQVNka1NjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdJTUFTZGtTY3JpcHQudHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdJTUFTZGtTY3JpcHQub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0QWRzKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHSU1BU2RrU2NyaXB0LnNyYyA9ICIvL2ltYXNkay5nb29nbGVhcGlzLmNvbS9qcy9zZGtsb2FkZXIvaW1hMy5qcyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChHSU1BU2RrU2NyaXB0KTsNCg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdoaWRlU3ZpZXdTbWFydEJhbm5lcicpLm9uY2xpY2sgPSBmdW5jdGlvbiAoZXZ0KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN2R2ltYUNvbnN0Q29udG5yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN2LWdpbWEtY29uc3QtY29udG5yIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkc01hbmFnZXIucGF1c2UoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ZHaW1hQ29uc3RDb250bnIuY2xhc3NMaXN0LmFkZCgiY29sbGFwc2UiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ow0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIiwgZnVuY3Rpb24gKGV2ZW50KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5oaWRkZW4pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZVZpZGVvUGxheWVyKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVWaWRlb1BsYXllcigpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7DQoNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGlzSW5WaWV3cG9ydChlbCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWN0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC50b3AgPj0gMCAmJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QubGVmdCA+PSAwICYmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC5ib3R0b20gPD0gKHdpbmRvdy5pbm5lckhlaWdodCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSAmJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QucmlnaHQgPD0gKHdpbmRvdy5pbm5lcldpZHRoIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCkNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYm94ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnN2LWNvbnRlbnQtcGFyZW50Jyk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VUZXh0ID0gaXNJblZpZXdwb3J0KGJveCk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2VUZXh0KSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2l2ZTogdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOw0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBhZnRlcl8xMF9zZWMoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN2aWV3LWNsb3NlLXNlY3Rpb24iKS5jbGFzc0xpc3QuYWRkKCJjbG9zZV9idG5fc2VjX2FmdGVyXzEwIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDUwMDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG9wZW5JTkhvdXNlKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cub3BlbignaHR0cHM6Ly9zdXJldmlldy50dicsICdfYmxhbmsnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2NyaXB0Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InN2LXBsYXllci1jbG9zZS1wbGF5ZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsgd2lkdGg6MTAwJTsgcG9zaXRpb246IHJlbGF0aXZlOyIgb25jbGljaz0iY2xvc2VQbGF5ZXIoKTsiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9InN2LXBsYXllci1jbG9zZSIgc3JjPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURBQUFBQXdDQVlBQUFCWEF2bUhBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQklFbEVRVlI0bk8yWjNRNEJNUkJHeTdzTEYwSzQ0QWJ2S0g1dWp6UzdRbGpXdHAzcFNPWTh3UFE3M2Y1TXN5RTRqdU00VWdBVDRBU3NnTEhpdUdOZ0RaeUJhVTZoSXcvMkdoSTA0ZU5ZZDQ0NXhlWlBoY1FsZUE4Zm1lY1VIQUdibDRJSENRbWFzYmJGSjB4REFxbndHaEpJaDVlVVFDdThoSVI2K0pJUzFjS1hrS2dlUGtmQ1RQZ1VDWFBoaDBpWURmK0xoUG53ZDlxd3U0NmdyNzNOemx6NG5pOWhlK1lIU05nUEgvbXc1dDgyOXIrRnR5OUI5Mk9rYXhQYlcwcDhPU28xSDBWSi9ITE9tNVZnd0NWbFRvS0VHOWFNQkJudFFYVUpDdlEyMVNRbzJKaXBTeURRVmFJbElka1NJeTJoMGM4akphSDVHRUZDQWxocWhPL3BweFloRmVDcUZmNkx4Q1drQXN4aWdUZ0xGWDV3TE5xeDAzOXdPSTdqT0tHSEcvSGtDUW95MWhyb0FBQUFBRWxGVGtTdVFtQ0MiIC8+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8c2NyaXB0Pg0KICAgICAgICAgICAgdmFyIGZpcnN0X3RpbWUgPSAxOw0KICAgICAgICAgICAgbGV0IGlzU1ZUYWJBY3RpdmUgPSB0cnVlOw0KICAgICAgICAgICAgZnVuY3Rpb24gZ2V0UGxheWVyVmlld2FiaWxpdHkocGxheWVyX29iaikgew0KICAgICAgICAgICAgICAgIHZhciBvZmZzZXRIZWlnaHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3VzdG9tLWRtLXBsYXllcicpLm9mZnNldEhlaWdodDsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3VyZXZpZXctdmlldy1hZHMtMDAxJykuc3R5bGUuaGVpZ2h0ID0gb2Zmc2V0SGVpZ2h0ICsgMzIgKyAncHgnOw0KICAgICAgICAgICAgICAgIHBsYXllcl9vYmouc2V0Vm9sdW1lKDApOw0KICAgICAgICAgICAgICAgIHBsYXllcl9vYmoub24oZGFpbHltb3Rpb24uZXZlbnRzLlBMQVlFUl9WSUVXQUJJTElUWUNIQU5HRSwgKHBsYXllcl9vYmopID0+IHsNCiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlJlY2VpdmVkIFBMQVlFUl9TVEFSVCBldmVudC4iLCBwbGF5ZXJfb2JqLnBsYXllcklzVmlld2FibGUpOw0KICAgICAgICAgICAgICAgICAgICBpZiAocGxheWVyX29iai5wbGF5ZXJJc1ZpZXdhYmxlKSB7DQoNCg0KICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgZnVuY3Rpb24gY2xvc2VQbGF5ZXIoKSB7DQogICAgICAgICAgICAgICAgY29uc3Qgc3ZHaW1hQ29uc3RDb250bnIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3YtZ2ltYS1jb25zdC1jb250bnIiKTsNCiAgICAgICAgICAgICAgICBhZHNNYW5hZ2VyLnBhdXNlKCk7DQogICAgICAgICAgICAgICAgaWYgKGFkc01hbmFnZXIpIHsNCiAgICAgICAgICAgICAgICAgICAgYWRzTWFuYWdlci5kZXN0cm95KCk7DQogICAgICAgICAgICAgICAgICAgIGFkc01hbmFnZXIgPSBudWxsOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBzdkdpbWFDb25zdENvbnRuci5jbGFzc0xpc3QuYWRkKCJjb2xsYXBzZSIpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdi1wbGF5ZXItY29udHJvbHMtY29udGFpbmVyIikuc3R5bGUuZGlzcGxheSA9ICdub25lJzsNCi8vICAgICAgICAgICAgICAgIGRhaWx5bW90aW9uLmdldFBsYXllcigpDQovLyAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKChwbGF5ZXIpID0+IHsNCi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXllci5kZXN0cm95KCk7DQovLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3YtcGxheWVyLWNvbnRyb2xzLWNvbnRhaW5lciIpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQovLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3YtcGxheWVyLWNsb3NlLXBsYXllciIpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQovLyAgICAgICAgICAgICAgICAgICAgICAgIH0pDQovLyAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZSkgPT4gY29uc29sZS5lcnJvcihlKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIA0KDQogICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5zY3JvbGxZIDw9IDQwMCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygidG9wIG9mIHBhZ2UiKTsNCg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3YtcGxheWVyLWNvbnRyb2xzLWNvbnRhaW5lciIpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdi1wbGF5ZXItY2xvc2UtcGxheWVyIikuc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCg0KICAgICAgICAgICAgICAgICAgICBpZiAoaXNfcGxheWluZyAmJiBhZHNNYW5hZ2VyKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBhZHNNYW5hZ2VyLnBhdXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBpc19wbGF5aW5nID0gMDsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwbGF5ZXItdG9nZ2xlIikuY2xhc3NOYW1lID0gInZpZGVvLWJ0bi1wbGF5IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgDQoNCg0KICAgICAgICAgICAgd2luZG93Lm9uc2Nyb2xsID0gZnVuY3Rpb24gKGV2KSB7DQovLyAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQiLGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0KTsNCi8vICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJ3aW5kb3cuc2Nyb2xsWSIsd2luZG93LnNjcm9sbFkpOw0KICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuc2Nyb2xsWSA8PSA0MDApIHsNCi8vICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygidG9wIG9mIHBhZ2UiKTsNCi8vICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3YtcGxheWVyLW1haW4tY29udGFpbmVyIikuY2xhc3NMaXN0LnJlbW92ZSgiZml4ZWRFbGVtZW50Iik7DQovLyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN2LXBsYXllci1jb250cm9scy1jb250YWluZXIiKS5jbGFzc0xpc3QucmVtb3ZlKCJmaXhlZEVsZW1lbnRGaXJzdENoaWxkIik7DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdi1wbGF5ZXItY29udHJvbHMtY29udGFpbmVyIikuc3R5bGUuZGlzcGxheSA9ICdub25lJzsNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN2LXBsYXllci1jbG9zZS1wbGF5ZXIiKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOw0KICAgICAgICAgICAgICAgICAgICBpZiAoaXNfcGxheWluZyAmJiBhZHNNYW5hZ2VyKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBhZHNNYW5hZ2VyLnBhdXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBpc19wbGF5aW5nID0gMDsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwbGF5ZXItdG9nZ2xlIikuY2xhc3NOYW1lID0gInZpZGVvLWJ0bi1wbGF5IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChpc19wbGF5aW5nID09IDAgJiYgYWRzTWFuYWdlcikgew0KICAgICAgICAgICAgICAgICAgICAgICAgYWRzTWFuYWdlci5yZXN1bWUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlzX3BsYXlpbmcgPSAxOw0KICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBsYXllci10b2dnbGUiKS5jbGFzc05hbWUgPSAidmlkZW8tYnRuLXBhdXNlIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3RfdGltZSA9PSAxKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3YtcGxheWVyLWNvbnRyb2xzLWNvbnRhaW5lciIpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOw0KICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN2LXBsYXllci1jbG9zZS1wbGF5ZXIiKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfTsNCg0KDQogICAgICAgIDwvc2NyaXB0Pg==";
var googleBs64Code=widget_code;
top.svJQInj_1 = {};
by_tag_name="body";
placed_by="1";
no_of_tag="0";
if (!top.window.jQuery) {
var dJqDynamic = document.createElement("script");
dJqDynamic.src = atob("aHR0cHM6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9qcXVlcnkvMy43LjAvanF1ZXJ5Lm1pbi5qcw==");
top.document.getElementsByTagName("head")[0].append(dJqDynamic);
dJqDynamic.onload = function(){
top.svJQInj_1 = jQuery.noConflict(true);
}
}else{
}
setTimeout(function(){
try{
var s3 = document.createElement("style");
s3.append("#dailymotion-pip-small-viewport, #dailymotion-pip-large-viewport { width: var(--dm--pip-size-width, 410px) !important; /* left: var(--dm--pip-left, 0) !important; */ height: var(--dm--pip-size-height, 231px) !important; transition: right .5s ease !important; right: var(--dm--pip-right, 10px) !important; display: block !important; --position-bottom: 0px !important; top: var(--dm--pip-top, initial) !important; }");
top.document.head.appendChild(s3);
}catch{
}
if(document.getElementsByClassName('teads-inread').length>0){
var teadsMarginStyle = document.createElement('style');
teadsMarginStyle.innerHTML=".teads-inread {padding-bottom:10px !important;}";
document.getElementsByClassName('teads-inread')[0].appendChild(teadsMarginStyle);
}
},8000);
},800);
function set_aniview_after15sec(){
setlogoTeads_intval=setInterval(function(){
try{
document.querySelector(".teads-inread").remove();
}catch{
}
},15000);
}
function new_logo(company_id){
var isLogoTriggered = false;
var isLogoTriggeredTeads = false;
if(company_id==2){
var test_id=160;
setlogoTeads_intval=setInterval(function(){
teads_primary_div=document.getElementById('teads0');
if(test_id==64 && !isLogoTriggeredTeads){
isLogoTriggeredTeads = true;
clearInterval(setlogoTeads_intval);
var bottom_div = document.createElement("div");
bottom_div.id="sureview_branding_2";
bottom_div.style.cssText="line-height:0px;";
bottom_div.className="sureviewBottomDiv sureviewtv";
var anchor1=document.createElement("a");
anchor1.href="http://sureview.tv/";
anchor1.target="_BLANK";
var bottom_logo_img = document.createElement("img");
bottom_logo_img.id="sureview_logo_bottom_2";
bottom_logo_img.src="https://b-cdn.sureview.tv/ads-images/logo/sureview_logo.svg";
bottom_logo_img.style.cssText="height: 18px !important; margin: 0 !important; margin-top: 2px !important; width: 70px !important;";
anchor1.appendChild(bottom_logo_img);
bottom_div.appendChild(anchor1);
teads_primary_div.appendChild(bottom_div);
}else{
}
},1000);
}else{
daily_motion_ads=document.getElementById('daily_motion_ads_div');
setlogo_intval=setInterval(function(){
if(document.getElementsByClassName('dm-player-wrapper').length > 0 && !isLogoTriggered){
isLogoTriggered = true;
clearInterval(setlogo_intval);
var bottom_div = document.createElement("div");
bottom_div.id="sureview_branding";
bottom_div.style.cssText="line-height:0px;";
bottom_div.className="sureviewBottomDiv sureviewtv";
var anchor1=document.createElement("a");
anchor1.href="http://sureview.tv/";
anchor1.target="_BLANK";
var bottom_logo_img = document.createElement("img");
bottom_logo_img.id="sureview_logo_bottom";
bottom_logo_img.src="https://b-cdn.sureview.tv/ads-images/logo/sureview_logo.svg";
bottom_logo_img.style.cssText="height: 18px !important; margin: 0 !important; margin-top: 2px !important; width: 70px !important;";
anchor1.appendChild(bottom_logo_img);
bottom_div.appendChild(anchor1);
daily_motion_ads.appendChild(bottom_div);
is_dm_ready();
}
},1000);
}
}
function is_dm_ready(){
var is_dm_sv_ready = setInterval(function(){
if(top.document.querySelectorAll(".dailymotion-player-wrapper .dm__close-button").length > 0){
clearInterval(is_dm_sv_ready);
document.querySelector(".dailymotion-player-wrapper .dm__close-button").innerHTML += '
';
}
},500);
}
function is_avail_selector(name, by){
if(by==1){
placement_salector=document.getElementsByTagName(name);
if(placement_salector.length>0){
return placement_salector;
}else{
return 0;
}
}else if(by==2){
placement_salector=document.getElementsByClassName(name);
if(placement_salector.length>0){
return placement_salector;
}else{
return 0;
}
}else if(by==3){
placement_salector=top.document.getElementById(name);
if(placement_salector===null){
return 0;
}else{
return placement_salector;
}
}else if(by==4){
placement_salector=document.querySelectorAll(name);
if(placement_salector===null){
return 0;
}else{
return placement_salector;
}
}else{
placement_salector=document.getElementById(name);
if(placement_salector===null){
return 0;
}else{
return placement_salector;
}
}
}
function set_bottom_logo(company){
var counter=1;
setlogo_intval=setInterval(function(){
counter++;
try{
document.getElementById("sureview_branding").remove();
}catch(error){
}
var sureview_div=document.getElementById('Sureview160').clientWidth;
try{
if(company==1){
var video_div=document.getElementsByClassName('ima-ad-container')[0].clientWidth;
}else if(company==2){
var video_div=document.getElementsByClassName('teads-player')[0].clientWidth;
}else if(company==4){
var video_div=document.getElementById('ifr_PGRpdiBpZD0ic3VyZXZpZXctdmlldy1hZHMtMDAxIj4NCiAgICAgICAgICAgIDxzdHlsZT4NCiAgICAgICAgICAgICAgICAuZGFpbHltb3Rpb24tcGxheWVyLXdyYXBwZXIgaWZyYW1lew0KICAgICAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OnVuc2V0ICFpbXBvcnRhbnQNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgI3N2LXBsYXllci10b3AtY29udHJvbHN7DQogICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsNCiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsNCiAgICAgICAgICAgICAgICAgICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAjc3YtcGxheWVyLXRvcC1jb250cm9scyBkaXYgew0KICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDIycHg7DQoNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgLmZpeGVkRWxlbWVudCB7DQogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOmZpeGVkOw0KICAgICAgICAgICAgICAgICAgICB0b3A6LTVweDsNCiAgICAgICAgICAgICAgICAgICAgLyp3aWR0aDoxMDAlOyovDQogICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDk5OTk5OTk5OTk5OTk5OTk5Ow0KICAgICAgICAgICAgICAgICAgICAvKndpZHRoOjEwMCUgIWltcG9ydGFudDsqLw0KICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTsNCiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzFmMWUxZTg3Ow0KICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAzcHg7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLmZpeGVkRWxlbWVudEZpcnN0Q2hpbGR7DQogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNzlweDsNCiAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAzMDBweDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZTogMC42OyovDQoNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAjc3YtcGxheWVyLW1haW4tY29udGFpbmVyew0KICAgICAgICAgICAgICAgICAgICB3aWR0aDoxMDAlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAuc3YtcGxheWVyLWxvZ297DQogICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOw0KICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwcHg7DQogICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweDsNCiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwcHggMHB4Ow0KICAgICAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiB1bnNldCAhaW1wb3J0YW50Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAuc3YtcGxheWVyLWNsb3Nlew0KICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwNGE7DQogICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjJweDsNCiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMnB4Ow0KICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiB1bnNldCAhaW1wb3J0YW50Ow0KICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDBweDsNCiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgICAgICAgICAgICAgICBib3R0b206IDA7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLypORVcgU1RZTEUqLw0KICAgICAgICAgICAgICAgIC5zdi1jb250ZW50LXBhcmVudHsNCiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2NDBweDsNCiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87DQogICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICAgICAgICAgICAgICAgIGhlaWdodDogMzYwcHg7DQogICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjRzIGxpbmVhcjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgLnN2LWNvbnRlbnQtcGFyZW50LmNvbGxhcHNlew0KICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDsNCiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTpub25lOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAuc3YtY29udGVudC1wYXJlbnQuY29sbGFwc2UgLnN2LWxvZ28sIC5zdi1jb250ZW50LXBhcmVudC5jb2xsYXBzZSAucGxheWVyLXRvZ2dsZS1jb250YWluZXIsIC5zdi1jb250ZW50LXBhcmVudC5jb2xsYXBzZSAuc291bmQtdG9nZ2xlLWNvbnRhaW5lcnsNCiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgLmNyZWRpdC1jb250YWluZXJ7DQogICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXB4Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAuY3JlZGl0LWNvbnRhaW5lciBzcGFuew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOw0KICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDlweDsNCiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNiYmI7DQogICAgICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsQXJpYWwsZmFsbGJhY2ssc2Fucy1zZXJpZjsNCiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEwcHg7DQogICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQogICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIC5zdi1pbWFmcmFtZS1jb250YWluZXJ7DQogICAgICAgICAgICAgICAgICAgIHdpZHRoOiA2NDBweDsNCiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OjM0MHB4Ow0KICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7DQogICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGluaXRpYWw7DQogICAgICAgICAgICAgICAgICAgIC8qdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyovDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIC5zdi1sb2dvew0KICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAxMHB4ICFpbXBvcnRhbnQ7DQogICAgICAgICAgICAgICAgICAgIHRvcDogMTBweDsNCiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAuc3YtbG9nbyBpbWd7DQogICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjJweCAhaW1wb3J0YW50Ow0KICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTlweCAhaW1wb3J0YW50Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAuYnRuLXBsYWNlbWVudC1mb290ZXJ7DQogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7DQogICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDsNCiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNSU7DQogICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHRyYW5zcGFyZW50IDAlLCByZ2JhKDAsIDAsIDAsIDAuNSkgMTAwJSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIC5wbGF5ZXItdG9nZ2xlLWNvbnRhaW5lcnsNCiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAxMHB4Ow0KICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgICAgICAgICAgICAgICAgIGxlZnQ6IDEwcHg7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIC5zb3VuZC10b2dnbGUtY29udGFpbmVyew0KICAgICAgICAgICAgICAgICAgICByaWdodDogMTBweDsNCiAgICAgICAgICAgICAgICAgICAgLypsZWZ0OiAxMXB4OyovDQogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiA4cHg7DQogICAgICAgICAgICAgICAgICAgIC8qYm90dG9tOiAzNHB4OyovDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIC52aWRlby1idG4tcGF1c2UsIC52aWRlby1idG4tcGxheSwgLnNvdW5kLWJ0bi1wbGF5LCAuc291bmQtYnRuLXBhdXNlew0KICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lOw0KICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7DQogICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7DQogICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgLnZpZGVvLWJ0bi1wYXVzZSBpbWcsIC52aWRlby1idG4tcGxheSBpbWcsIC5zb3VuZC1idG4tcGxheSBpbWcsIC5zb3VuZC1idG4tcGF1c2UgaW1new0KICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDI0cHggIWltcG9ydGFudDsNCiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0cHggIWltcG9ydGFudDsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAucGxheWVyLXRvZ2dsZS1jb250YWluZXIgLnZpZGVvLWJ0bi1wbGF5IGltZ3sNCiAgICAgICAgICAgICAgICAgICAgY29udGVudDp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRm9BQUFCYUNBWUFBQUE0cUVFQ0FBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFDamtsRVFWUjRuTzJkUVdvVVFSU0dXeFNWZ0pCTndLMnVkUkVQb0tmSTFxVlhFRHlBMGFWTHI1QXJKQjVBRHpCcmhZeUtRNmozMS9RbUJPWkpTOE5vVUVGVFZhK3Ezdi9CMjFkOVBLcjduMzQ5UFF5RUVFSUlJWVFRMGlPcWVsTkVYb3ZJWnhINUN1QXd4cmhudmE3dUFQQUtnRjRxaU1pTDVYSzVZNzIrYnBnNitUZWlmNVNJbklySU0xVzlicjNPNXZtVDVFdkNGeUp5WUwzVzdrWC9WQ2NoaEgzck5Yc1FyU0t5QVhBVVFyaG52ZmF1UldNci9GeEUzb1FRZHEzMzBMVm9iT3RNUko2cjZpM3J2ZlF1V3VmNkJPQ3BxbDZ6M2xQdm9uV3VEekhHSjliNzhpQmE1enBlcjljUHJQZm5RYlNLeUFXQXQrTTQzaDI4azFNMHRqVk9VWCsxV3QwWnZGSkl0TTRkdm5RYjZVdUtodWRJYnlFYXYwYjZSNE1IakVXcm0waHZMUnBlSXIyMVlIaUo5QldJVlJlUnZnS2g2aUxTVnlCU1hVVDZDZ1NxaTBodkxROWVJbjBGMHRSRnBMZVdCUytSM2xvUzB0YTdhaU45QlhJMFI2UVhrZnREVFZpTGdaZElieTBFNVNMOWJZcUdnMGhmUWNlcGkwaGZ3Y2JWTU5JL3BHaVVpZlRURUw2cTNtQkhvMGgzSDFJMGluVDJpcUpSUlBRM2lrYVJvK01sUllNWFEyMjhlSHVIdklJWldKQlhNQ000UE15SlZIQldhbzdpejZSd09zdG4zWG53TXAzYVNSY3YrSEFXV1FWejNBQjV1NWdETk1qYndSd0pRLzZ6bUVPT3lDdVlZN3ZJSzVpRDZQQVFtVk5UNEd6VkppZUxVbE9CNEUyVmtia3owU2ZWUnViVUdIWHhvdnJJbkpyQ2drK2JtZEJQVFNISlkzUHZuS1FtY3dkZk5Qc1dWVU9pajV0K0x6QTFHUVMvanpFK3R0NVhkU1FVL0xHcmQ3ZFRrMER3V1plUk9UVlh1TkNkZHgyWlUvTWZnamN1SW5OcS92Vk9JdkJ2amZPSmRobVpVek05U2Y2TFlMK1JPVFg4bUVMQno0Tk1zdWNaaVMvOFBBZ2hoQkJDQ0NHRURPM3hIWmExSHRuMHNxQ1dBQUFBQUVsRlRrU3VRbUNDIik7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLnBsYXllci10b2dnbGUtY29udGFpbmVyIC52aWRlby1idG4tcGF1c2UgaW1new0KICAgICAgICAgICAgICAgICAgICBjb250ZW50OnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFHUUFBQUJrQ0FZQUFBQnc0cFZVQUFBQUNYQklXWE1BQUFzVEFBQUxFd0VBbXB3WUFBQUJMa2xFUVZSNG5PM1J3UW1BUUJBRXdjcy8yNDVBZzFCd2hCclk5MExYT1dabVptWm1abVptWm1abVp2Wm8xZlhtblovOW45dlhRUUt5RlNRZ1cwRUNzaFVrSUZ0QkFySVZKQ0JiUVFLeUZTUWdXMEVDc2hVa0lGdEJBcklWSkNCYlFRS3lGU1FnVzBFQ3NoVWtJRnRCQXJJVkpDQmJRUUt5RlNRZ1cwRUNzaFVrSUZ0QkFySVZKQ0JiUVFLeUZTUWdXMEVDc2hVa0lGdEJBcklWSkNCYlFRS3lGU1FnVzBFQ3NoVWtJRnRCQXJJVkpDQmJRUUt5RlNRZ1cwRUNzaFVrSUZ0QkFySVZKQ0JiUVFLeUZTUWdXMEVDc2hVa0lGdEJBcklWSkNCYlFRS3lGU1FnVzBFQ3NoVWtJRnRCQXJJVkpDQmJRUUt5RlNRZ1cwRUNzaFVrSUZ0QkFySVZKQ0JiUVFLeUZTUWdXMEVDc2hVa0lGdEJBcklWSkNCYlFRSmlabVptWm1abVptWm1abVoybG5ZREFUU1ptWUlMNDhrQUFBQUFTVVZPUks1Q1lJST0iKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAuc291bmQtdG9nZ2xlLWNvbnRhaW5lciAuc291bmQtYnRuLXBsYXkgaW1new0KICAgICAgICAgICAgICAgICAgICBjb250ZW50OnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFHQUFBQUJnQ0FZQUFBRGltSGM0QUFBQUNYQklXWE1BQUFzVEFBQUxFd0VBbXB3WUFBQUVvMGxFUVZSNG5PMmRUNmhWUlJ6SHAyeFJrSkc3VWtqVS9pektUWnZTaFpGQ0xRcHFtMEdRcmZwREZpVlJLT2hDTjZHZ0lKanBvaFpCQlM0TnNvaUNFbDVCejR5TU5vcTFlYnpYbmUvM25Ic293NXFZT0EvaU1iL3pQUGVlT2VlZXViOFB6RzVtN3R6ZjkvejV6Y3h2ZnNjWVJWRVVSVkVVUlZFVVJWRVVSVkVVcFdmTXpjM2RET0JGQUtjQW5DWDVNY2xubkhNcnVoNWI4bVJaOWhESlN5UmRvSHhiRk1YcXJzZVlMQUMyQTdnaUdIK3huSFBPM2RUMVdKT0Q1RTRBZnk5ai9NWHljdGZqVFFibjNQVUFEbCtqNFJmTFROZmpUZ0xuM0kzbEM5YlZMRm5YWSs4OUFGWUIrSElFNC85WHVoNS9yeW1LWXJWL21ZNXFmQlZnRFBJOHY0L2s1WEdNcndLTWlMVjJLMG1NYS95bUJQQU9nSmtXY0cwK2Zpc0NXR3UzQWZqSjl3UGdSMnZ0d3labFNPNEM4RTlUeGg5SGdNRmdzSlprc2FTL29iVjJuVWtOTjVxUEgxVUFrcStHK2dOd3dxU0VHOTNIanlvQWdKY0VBZjd5ZDRkSnlNZi9LcGJ4eHhHZ0tJbzEzdGhDdjBkTTN5a2E4UEZqdjRRQnZDZjBteTBzTE54aXB0M0haMlFCL0RnbHA4QS9vc3kwKy9pTUxJQUh3R21oNzNPbWJid2ZUUEk0Z0F2ZUpXdkxpT3hRZ1BJL0IvdjJkNGhwQXdBYlNIN2V0VEhaZ1FBZWtyTkMvd2VhNkgrNUg5OE1ZS0ZyUTdKaEFjcFo3Zy9sckh1RzVBTVZObmd0MURlQW4wM3NLNy9QeHFjZ0FJRDFnVm11SFE2SHQ0WHFENGZEMndGY0ZVUllIMDJBdmo1MnVMd0Fid2oxOTBtMkFQQjFxOTVRNmEyNEZBVWcrYnBRLzFjcHBBWEFtMEtiajZJSTRMMmRoQVc0dTJMUjcvRlFHMnZ0L1pKb1VRVHdMNWhVQmZDUS9DSlVIOEJKRThEZkdYNEdIR3JqbHkxTTAwZy8xcmRpQkFBOEpRandtM1B1T3NFbW53bHRIbzBoZ0V0WmdQbjUrWlhTeGsrZTV4dERiUUFjRkg1bnB3ckFlZ0pVWGRFa2R3ajFkd2oxajZvQXJDOEFnTjNDSStWZ3FINldaVnVFK3FkVUFOWVhJTXV5SjRSMm53aUMzU2tJY0ZZRjRFaVBvTHZxckhUNmNIaEJnRjlVQU5ZWHdGcDdxOUR1WXNYZWRXaitjRmtGWUgwQlNvT0dJcTEvbDlvQStETndCOHlyQUJ4SmdCWENGVDFRQVJoM0hsQmV6YXYwRWNTSmZBblBodXJyUzVqTkNwQmwyWk9DVjNPNmptQUF2akZORS92S1pFdWw2ajhDMkNNWTlPMktnNEdoK2pvUlk3TkxFYzhLQWp3bjFOZWxDTllVd0FkV1ZTekdCYU1kQUJ4cWN6RXU5ZVhvN1hVM1dDcVdveDlwWElBcDNwQjVOMVRmT1hjRHliek5EWmwzVWhXQTVEMFZXNUtQMWR5U2JINFpZcm1Jc0FRRTJDVVpzMkpUL2kyaHpZZFJCQ2dIZW1iS3dsTDJTcmJ3dm42b2pVOFdFazBBZnh6SEx6UWxLTUFHQUg4c3FRc2ZnQ1dGMGt2cEVhSUdabmxJYnVxekNLWTZOUEY4K1M3NGp1U0RGVFlJeGhINUlPVm9obDh5MkhVa1AwMUpnRHBVSENUWmI5cWtuSW9mSzQ5dUJsMnlTU3NtWW9SZ251ZjNtcjVoMHptZzhiM3BLM2wvamlodHJEaWk5THhKNEpEZTdDUUxBT0Q5SkEvcDlmMllxajlVYmxMQjllK2c5cFhCWUhDSFNRazNtYWtLWHBtS1ZBWC9SNU4xVEFDWXZIUTFGOG9yLzN6eTZXb1cwWVJORTBDdUtjdlNtQ3NZWlR5Z2FTdTd4Mm5pMXU1eG1ycDRNcUFtNys3TlhHRlcwOWQzOXdHSEdmMkFRM3VmTUhuQkI4ZVdFUndmQUhoYVAyR2lLSXFpS0lxaUtJcWlLSXFpS0lwaU91WmY0UUQ4OGp3L0dCd0FBQUFBU1VWT1JLNUNZSUk9Iik7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLnNvdW5kLXRvZ2dsZS1jb250YWluZXIgLnNvdW5kLWJ0bi1wYXVzZSBpbWd7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUdBQUFBQmdDQVlBQUFEaW1IYzRBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBRExVbEVRVlI0bk8yY1MyN1RVQmhHZnlpQ01Wc0FVVUNBUUVEVnJvZ3RNR1VGQ0NRZUM0QUJESkFxS2dRVEhuc0ExZ0FUNHUrTGVaZnFvaXZkVEtva3RaMXIvN2J6SGNtakt0ZkpPWDRrOXEzTmhCQkNDQ0dFRUVJSUlZUVFRZ2d4anhEQzhibC9FTzBDNEJhQXJ3QitrM3dPNExTY2R3VEpPeVREb2VXcEF2akpEeVNoQUg3eVExd1V3RkUrRmNCWFBoWEFWejRWd0ZjK0ZjQlhQaFhBVno0VndGYytGY0JYUGhYQVZ6NFZ3RmMrRmNCWFBoWEFWejVyQmdnaEhHdndsbnN6ZnUva3MyS0FvaWl1a1h3RDRCZUFQd0QycHRQcGhWeWZhenFkWGdTd0c2L094blhFZFUwbWs2czJkdm1zRUNESkwrZTh0aUM1bmVGemJhZXhEbzlmOWlaQ1cvSlpJVURjR3BlOEhxdEVTUEt4WlB6WE5tYjVQQ0pBdkhlY0Rna2hkNFFLOGtOY2QvYnpRbG1XVndEY0IvQ0o1UGMyNVRMREhnRGdaNFZ4YWtXb0lqOHRQeXdYSVlSVEpCOEJPUENXem5vQmRpdU9WU2xDRGZseEQzaVJVLzQ3Yjlsc0Z1RHNncE5rN1FoMTVNZDFBamlUSlFESng5NmkyVEJBQTNGekkrUVlZNVZqL3NHUUE2d3EwRTErSko1d3ZTVXpRNEJJVVJUWFNYNnJJWElId0EyU0V4ZjVLY0Ruc1FSb3VEWDdiUGt6RnZ5SzdNMWlEYWk1Si9qSmozZ0xaZ3NCTWtkb1QzNWtyQUV5UldoWGZtVE1BVmFNMEw3OHlOZ0ROSXpRamZ6SU9nUkF2YSthc3dBNzFnVmpENEQ2OHJ1Tk1PWUFhQzYvdXdoakRZRFY1WGNUWVl3L3hKQlBmdnNSZENtQ3ZwY2lBTndieXg2QUJoZldtbHpBeXhxZ0xNdkxBUDROUFFDSGVqazZ2WUdIUXc3QUlkK1FpWVFRVHBKOE84UUFKTTk3M1pJa3Vaazd3b08rSFk3c0NBQzhjcndwdjJlNUtjdnlFb0M3QUQ3MjRTdXFMU0dFc0JHbkl1YVNYemRDbWhmaysxd0xBTGNkQTV3QXNKOVQvb3dxMzQ0QS9JMGJnYTN6MUVRQUgzTExyN0VudkxkMW41d0xZR3ZCOU1SV0orZW1tZGczclU5NFRVOEhzQlczeG5nNGlvKzZBZkNTNUxtTW4yc3pubkRUMlB0cFhmMlMzNU4vME5obzg2UVl4KzdGTWIvTEU3TUozd2dtZlBjRUU3NFJUUGhHTU9FYndZUnZCQk8rRVV6NFJqRGhHOEdFYndRVHZoRk10QS8xNk9KK1JnRHd4UHQ5cmVQajY3K2tHeXpQOVBoNko0TDNqVzRoaEJCQ0NDR0VFRUlJSVlRUXdnYkZmMGhGVDBMT0dNTGNBQUFBQUVsRlRrU3VRbUNDIik7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLnN2aWV3X2Zsb2F0X3BsYXllcl9vdXRzdHJlYW17DQogICAgICAgICAgICAgICAgICAgIGhlaWdodDogdW5zZXQgIWltcG9ydGFudDsNCiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogOTk5OTk5OTk5OTk5OTkgIWltcG9ydGFudDsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAvKmNvZGUgZm9yIG1vYmlsZSovDQogICAgICAgICAgICAgICAgLnN2LWltYWZyYW1lLWNvbnRhaW5lci1tb2JpbGV7DQogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNzlweCAhaW1wb3J0YW50Ow0KICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMXB4ICFpbXBvcnRhbnQ7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLm5vX2Fkc3sNCiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLmNsb3NlX2J0bl9zZWN7DQogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4Ow0KICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1bnNldCFpbXBvcnRhbnQ7DQogICAgICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IHVuc2V0IWltcG9ydGFudDsNCiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMjBweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNyk7DQogICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7DQogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgICAgICAgICAgICAgICAgdG9wOjA7DQogICAgICAgICAgICAgICAgICAgIHotaW5kZXg6MjE0NzQ4MzY0NjsNCiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTVweDsNCiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTpub25lOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAuY2xvc2VfYnRuX3NlY19hZnRlcl8xMHsNCiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7DQogICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVuc2V0IWltcG9ydGFudDsNCiAgICAgICAgICAgICAgICAgICAgYm94LXNpemluZzogdW5zZXQhaW1wb3J0YW50Ow0KICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsNCiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMjBweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuNyk7DQogICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7DQogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICAgICAgICAgICAgICAgICAgdG9wOjA7DQogICAgICAgICAgICAgICAgICAgIHotaW5kZXg6MjE0NzQ4MzY0NjsNCiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTVweDsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAuY2xvc2VfYnRuX3NlY3sNCiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLmNyZWRpdC1jb250YWluZXJ7DQogICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50Ow0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIC8qRW5kIENvZGUgZm9yIG1vYmlsZSovDQoNCiAgICAgICAgICAgICAgICAvKkVORCBORVcgU1RZTEUqLw0KICAgICAgICAgICAgPC9zdHlsZT4NCiAgICAgICAgICAgIDxkaXYgaWQ9J2R2LXBsYXllci1zaXplJyBzdHlsZT0nJz4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0b3Atc3R5bGUiPg0KDQogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InN2LXBsYXllci1tYWluLWNvbnRhaW5lciIgY2xhc3M9ImZpeGVkRWxlbWVudCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJzdi1wbGF5ZXItY29udHJvbHMtY29udGFpbmVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJzdi1wbGF5ZXItdG9wLWNvbnRyb2xzIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ic3VyZXZpZXctbG9nbyIgc3R5bGU9J3RleHQtYWxpZ246IGxlZnQ7IGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50Oyc+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vc3VyZXZpZXcudHYvIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBjbGFzcz0ic3YtcGxheWVyLWxvZ28iIHNyYz0iaHR0cHM6Ly9hcHAuc3VyZXZpZXcudHYvbG9nby9zdXJldmlld19iYW5uZXJfbG9nby5zdmciIC8+PC9hPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImN1c3RvbS1kbS1wbGF5ZXIiIHN0eWxlPSJiYWNrZ3JvdW5kOnJlZDsiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJ0ZXN0LXN1cmV2aWV3Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzY3JpcHQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1haW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWFpbl9jb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWluX2NvbnRhaW5lci5pZCA9ICJzdi1naW1hLWNvbnN0LWNvbnRuciI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFpbl9jb250YWluZXIuY2xhc3NOYW1lID0gInN2LWNvbnRlbnQtcGFyZW50IHN2aWV3X2Zsb2F0X3BsYXllcl9vdXRzdHJlYW0gY29sbGFwc2UiOw0KDQoNCi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpOw0KLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluay50eXBlID0gInRleHQvY3NzIjsNCi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsucmVsID0gInN0eWxlc2hlZXQiOw0KLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluay5ocmVmID0gImh0dHBzOi8vYXBwLnN1cmV2aWV3LnR2L2Fzc2V0cy9vdXRzdHJlYW1fcGxheWVyL3N0eWxlLmNzcyI7DQovLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWluLmFwcGVuZENoaWxkKGxpbmspOw0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgY3JlZGl0X2NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWRpdF9jb250YWluZXIuY2xhc3NOYW1lID0gImNyZWRpdC1jb250YWluZXIiOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzcGFuX2FkdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFuX2Fkdi5pbm5lckhUTUwgPSAiLS0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWRpdF9jb250YWluZXIuYXBwZW5kQ2hpbGQoc3Bhbl9hZHYpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1haW5fY29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWRpdF9jb250YWluZXIpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNsb3NlX2NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlX2NvbnRhaW5lci5jbGFzc05hbWUgPSAiY2xvc2VfYnRuX3NlYyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VfY29udGFpbmVyLmlkID0gInN2aWV3LWNsb3NlLXNlY3Rpb24iOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNsb3NlX3N1Yl9jb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZV9zdWJfY29udGFpbmVyLnN0eWxlLmNzc1RleHQgPSAiYmFja2dyb3VuZDogdW5zZXQhaW1wb3J0YW50O2JveC1zaXppbmc6IHVuc2V0IWltcG9ydGFudDtwYWRkaW5nOiAycHg7cG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTogMDsgbGVmdDogMDsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjbG9zZV9zdWJfc3ViX2NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlX3N1Yl9zdWJfY29udGFpbmVyLmlkID0gImhpZGVTdmlld1NtYXJ0QmFubmVyIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZV9zdWJfc3ViX2NvbnRhaW5lci5zdHlsZS5jc3NUZXh0ID0gImJhY2tncm91bmQ6IHVuc2V0IWltcG9ydGFudDtib3gtc2l6aW5nOiB1bnNldCFpbXBvcnRhbnQ7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTogYmxvY2s7IGZsb2F0OiBsZWZ0OyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxMHB4OyBtYXJnaW46IDNweDsgZm9udC1zaXplOiAxOHB4OyBib3gtc2l6aW5nOiB1bnNldCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDogMDsiOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNyb3NzX2ltYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jvc3NfaW1hZ2Uuc3JjID0gImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBREFBQUFBd0NBWUFBQUJYQXZtSEFBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFCSUVsRVFWUjRuTzJaM1E0Qk1SQkd5N3NMRjBLNDRBYnZLSDV1anpTN1Fsald0cDNwU09ZOHdQUTczZjVNc3lFNGp1TTRVZ0FUNEFTc2dMSGl1R05nRFp5QmFVNmhJdy8yR2hJMDRlTllkNDQ1eGVaUGhjUWxlQThmbWVjVUhBR2JsNElIQ1FtYXNiYkZKMHhEQXFud0doSkloNWVVUUN1OGhJUjYrSklTMWNLWGtLZ2VQa2ZDVFBnVUNYUGhoMGlZRGYrTGhQbndkOXF3dTQ2Z3I3M056bHo0bmk5aGUrWUhTTmdQSC9tdzV0ODI5citGdHk5QjkyT2theFBiVzBwOE9TbzFIMFZKL0hMT201Vmd3Q1ZsVG9LRUc5YU1CQm50UVhVSkN2UTIxU1FvMkppcFN5RFFWYUlsSWRrU0l5MmgwYzhqSmFINUdFRkNBbGhxaE8vcHB4WWhGZUNxRmY2THhDV2tBc3hpZ1RnTEZYNXdMTnF4MDM5d09JN2pPS0dIRy9Ia0NRb3kxaHJvQUFBQUFFbEZUa1N1UW1DQyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jvc3NfaW1hZ2Uuc3R5bGUuY3NzVGV4dCA9ICJoZWlnaHQ6IDE1cHg7IGN1cnNvcjogcG9pbnRlcjsgbWFyZ2luLWxlZnQ6IGF1dG87IG1hcmdpbjogdW5zZXQ7IHZlcnRpY2FsLWFsaWduOiB1bnNldDsgYm9yZGVyLXN0eWxlOiB1bnNldDsgbWFyZ2luLWxlZnQ6IC00cHg7IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZV9zdWJfc3ViX2NvbnRhaW5lci5hcHBlbmRDaGlsZChjcm9zc19pbWFnZSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2Vfc3ViX2NvbnRhaW5lci5hcHBlbmRDaGlsZChjbG9zZV9zdWJfc3ViX2NvbnRhaW5lcik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VfY29udGFpbmVyLmFwcGVuZENoaWxkKGNsb3NlX3N1Yl9jb250YWluZXIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1haW5fY29udGFpbmVyLmFwcGVuZENoaWxkKGNsb3NlX2NvbnRhaW5lcik7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaW1hZnJhbWVfY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZnJhbWVfY29udGFpbmVyLmNsYXNzTmFtZSA9ICJzdi1pbWFmcmFtZS1jb250YWluZXIgc3YtaW1hZnJhbWUtY29udGFpbmVyLW1vYmlsZSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBsYXllcl9jb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF5ZXJfY29udGFpbmVyLmlkID0gInZpZGVvLXBsYXllci1jb250YWluZXIiOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWZyYW1lX2NvbnRhaW5lci5hcHBlbmRDaGlsZChwbGF5ZXJfY29udGFpbmVyKTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzdl9sb2dvX2NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN2X2xvZ29fY29udGFpbmVyLmNsYXNzTmFtZSA9ICJzdi1sb2dvIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdl9sb2dvX2NvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93Lm9wZW4oJ2h0dHBzOi8vc3VyZXZpZXcudHYnLCAnX2JsYW5rJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3ZfbG9nbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN2X2xvZ28uc3JjID0gImh0dHBzOi8vYXBwLnN1cmV2aWV3LnR2L2NvbnRyb2xzL3N1cmV2aWV3LWljb24uc3ZnIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdl9sb2dvX2NvbnRhaW5lci5hcHBlbmRDaGlsZChzdl9sb2dvKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFmcmFtZV9jb250YWluZXIuYXBwZW5kQ2hpbGQoc3ZfbG9nb19jb250YWluZXIpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGJybl9wbGFjZW1lbnRfZm9vdGVyX2NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJybl9wbGFjZW1lbnRfZm9vdGVyX2NvbnRhaW5lci5jbGFzc05hbWUgPSAiYnRuLXBsYWNlbWVudC1mb290ZXIiOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWZyYW1lX2NvbnRhaW5lci5hcHBlbmRDaGlsZChicm5fcGxhY2VtZW50X2Zvb3Rlcl9jb250YWluZXIpOw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBsYXllcl90b2dnZXJfY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxheWVyX3RvZ2dlcl9jb250YWluZXIuY2xhc3NOYW1lID0gInBsYXllci10b2dnbGUtY29udGFpbmVyIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGxheV9wYXVzZV9idG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF5X3BhdXNlX2J0bi5pZCA9ICJwbGF5ZXItdG9nZ2xlIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF5X3BhdXNlX2J0bi5jbGFzc05hbWUgPSAidmlkZW8tYnRuLXBhdXNlIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGxheXBhdXNlX2ljb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF5X3BhdXNlX2J0bi5hcHBlbmRDaGlsZChwbGF5cGF1c2VfaWNvbik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxheWVyX3RvZ2dlcl9jb250YWluZXIuYXBwZW5kQ2hpbGQocGxheV9wYXVzZV9idG4pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWZyYW1lX2NvbnRhaW5lci5hcHBlbmRDaGlsZChwbGF5ZXJfdG9nZ2VyX2NvbnRhaW5lcik7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc291bmRfdG9nZ2VyX2NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdW5kX3RvZ2dlcl9jb250YWluZXIuY2xhc3NOYW1lID0gInNvdW5kLXRvZ2dsZS1jb250YWluZXIiOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzb3VuZF9wYXVzZV9idG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VuZF9wYXVzZV9idG4uaWQgPSAic291bmQtdG9nZ2xlIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VuZF9wYXVzZV9idG4uY2xhc3NOYW1lID0gInNvdW5kLWJ0bi1wYXVzZSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNvdW5kX2ljb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VuZF9wYXVzZV9idG4uYXBwZW5kQ2hpbGQoc291bmRfaWNvbik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291bmRfdG9nZ2VyX2NvbnRhaW5lci5hcHBlbmRDaGlsZChzb3VuZF9wYXVzZV9idG4pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWZyYW1lX2NvbnRhaW5lci5hcHBlbmRDaGlsZChzb3VuZF90b2dnZXJfY29udGFpbmVyKTsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1haW5fY29udGFpbmVyLmFwcGVuZENoaWxkKGltYWZyYW1lX2NvbnRhaW5lcik7DQoNCg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFpbi5hcHBlbmRDaGlsZChtYWluX2NvbnRhaW5lcik7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgeHl6ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3Qtc3VyZXZpZXciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4eXouYXBwZW5kQ2hpbGQobWFpbik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NjcmlwdD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzY3JpcHQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmN1cnJQbGF5ZXIgPSAiIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc3ZfcGdfcmVxID0gMDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgY29uc3RydWN0QWRDb250YWluZXIgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zdl9wZ19yZXEgPSB3aW5kb3cuc3ZfcGdfcmVxICsgMTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5zdl9wZ19yZXEgPD0gMTApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhdmFpbGFibGVBZENvbnRhaW5lcklkcyA9IFsic3YtZ2ltYS0xIiwgInN2LWdpbWEtMiIsICJzdi1naW1hLTMiLCAic3YtZ2ltYS00IiwgInN2LWdpbWEtNSIsICJzdi1naW1hLTYiLCAic3YtZ2ltYS03IiwgInN2LWdpbWEtOCIsICJzdi1naW1hLTkiLCAic3YtZ2ltYS0xMCJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHN2UGFyZW50U2xvdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidmlkZW8tcGxheWVyLWNvbnRhaW5lciIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGF2YWlsYWJsZVBsYXllcnMgPSBzdlBhcmVudFNsb3RzLmNoaWxkcmVuOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRpc3RhbnRQbGF5ZXJJRHMgPSBbXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdmFpbGFibGVQbGF5ZXJzLmxlbmd0aCA+IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF2YWlsYWJsZVBsYXllcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVhY2hQbGF5ZXJJZCA9IGF2YWlsYWJsZVBsYXllcnNbaV0uaWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gYXZhaWxhYmxlQWRDb250YWluZXJJZHMuaW5kZXhPZihlYWNoUGxheWVySWQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAtMSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlQWRDb250YWluZXJJZHMuc3BsaWNlKGluZGV4LCAxKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdmFpbGFibGVBZENvbnRhaW5lcklkcy5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFkQ29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFkQ29udGFpbmVySWQgPSBhdmFpbGFibGVBZENvbnRhaW5lcklkcy5wb3AoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZENvbnRhaW5lci5pZCA9IGFkQ29udGFpbmVySWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZpZGVvLXBsYXllci1jb250YWluZXIiKS5hcHBlbmRDaGlsZChhZENvbnRhaW5lcik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFkQ29udGFpbmVySWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGxvYWRHSU1BKHBsYXllckNvbnRhaW5lcklEKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0YXJnZXRQbGF5ZXJDb250YWluZXJJZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHBsYXllckNvbnRhaW5lcklEKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFkRGlzcGxheUNvbnRhaW5lciA9IG5ldyBnb29nbGUuaW1hLkFkRGlzcGxheUNvbnRhaW5lcih0YXJnZXRQbGF5ZXJDb250YWluZXJJZCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkRGlzcGxheUNvbnRhaW5lci5pbml0aWFsaXplKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFBsYXllckNvbnRhaW5lcklkLnNldEF0dHJpYnV0ZSgiZGF0YS1naW1hLXAtaWQiLCBhZERpc3BsYXlDb250YWluZXIuWik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBnSU1BTG9hZGVyID0gbmV3IGdvb2dsZS5pbWEuQWRzTG9hZGVyKGFkRGlzcGxheUNvbnRhaW5lcik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdJTUFMb2FkZXIuYWRkRXZlbnRMaXN0ZW5lcihnb29nbGUuaW1hLkFkc01hbmFnZXJMb2FkZWRFdmVudC5UeXBlLkFEU19NQU5BR0VSX0xPQURFRCwgb25BZHNNYW5hZ2VyTG9hZGVkLCBmYWxzZSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdJTUFMb2FkZXIuZ2V0U2V0dGluZ3MoKS5zZXRGZWF0dXJlRmxhZ3MoeydkaXNhYmxlQ2xpY2tBZFBhdXNlJzogdHJ1ZX0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnSU1BTG9hZGVyLmFkZEV2ZW50TGlzdGVuZXIoZ29vZ2xlLmltYS5BZEVycm9yRXZlbnQuVHlwZS5BRF9FUlJPUiwgb25BZHNFcnJvciwgZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ0lNQUxvYWRlcjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjb25maWd1cmVHSU1BKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZ0lNQUNvbmYgPSBuZXcgZ29vZ2xlLmltYS5BZHNSZXF1ZXN0KCk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0lNQUNvbmYuYWRUYWdVcmwgPSAnaHR0cHM6Ly9wdWJhZHMuZy5kb3VibGVjbGljay5uZXQvZ2FtcGFkL2Fkcz9pdT0vMjI3MjkzMTU1NzQvSnVibmEvSnVibmFfTXViYXNoZWVyX1Zhc3QmZGVzY3JpcHRpb25fdXJsPWh0dHBzJTNBJTJGJTJGd3d3Lm11YmFzaGVyLmluZm8lMkYmdGZjZD0wJm5wYT0wJnN6PTQwMHgzMDAlN0M2NDB4NDgwJmdkZnBfcmVxPTEmdW52aWV3ZWRfcG9zaXRpb25fc3RhcnQ9MSZvdXRwdXQ9dmFzdCZlbnY9dnAmaW1wbD1zJmNvcnJlbGF0b3I9JzsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KDQovLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdJTUFDb25mLmFkVGFnVXJsID0gImh0dHBzOi8vcHViYWRzLmcuZG91YmxlY2xpY2submV0L2dhbXBhZC9hZHM/aXU9LzIxNzc1NzQ0OTIzL2V4dGVybmFsL3NpbmdsZV9hZF9zYW1wbGVzJnN6PTY0MHg0ODAmY3VzdF9wYXJhbXM9c2FtcGxlX2N0JTNEbGluZWFyJmNpdV9zenM9MzAweDI1MCUyQzcyOHg5MCZnZGZwX3JlcT0xJm91dHB1dD12YXN0JnVudmlld2VkX3Bvc2l0aW9uX3N0YXJ0PTEmZW52PXZwJmltcGw9cyZ2cG11dGU9MCZjb3JyZWxhdG9yPSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnSU1BQ29uZi5saW5lYXJBZFNsb3RXaWR0aCA9IDQ0MDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0lNQUNvbmYubGluZWFyQWRTbG90SGVpZ2h0ID0gMjQwOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnSU1BQ29uZi5ub25MaW5lYXJBZFNsb3RXaWR0aCA9IDI0MDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0lNQUNvbmYubm9uTGluZWFyQWRTbG90SGVpZ2h0ID0gMTUwOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ0lNQUNvbmY7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG9uQWRzTWFuYWdlckxvYWRlZCA9IGZ1bmN0aW9uIChhZHNNYW5hZ2VyTG9hZGVkRXZlbnQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRzTWFuYWdlciA9IGFkc01hbmFnZXJMb2FkZWRFdmVudC5nZXRBZHNNYW5hZ2VyKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJykpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZHNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ29vZ2xlLmltYS5BZEV2ZW50LlR5cGUuU1RBUlRFRCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkFkU3RhcnRlZCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcigNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb29nbGUuaW1hLkFkRXZlbnQuVHlwZS5SRVNVTUVELA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkc1Jlc3VtZSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkc01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcigNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb29nbGUuaW1hLkFkRXZlbnQuVHlwZS5QQVVTRUQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRzUGF1c2UpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZHNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ29vZ2xlLmltYS5BZEV2ZW50LlR5cGUuVk9MVU1FX01VVEVELA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkc011dGUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZHNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ29vZ2xlLmltYS5BZEV2ZW50LlR5cGUuVk9MVU1FX0NIQU5HRUQsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRzVW5NdXRlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRzTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvb2dsZS5pbWEuQWRFdmVudC5UeXBlLkNMSUNLLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQWRzQ2xpY2spOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZHNNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ29vZ2xlLmltYS5BZEV2ZW50LlR5cGUuQ09NUExFVEUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25BZHNDb21wbGV0ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkc01hbmFnZXIuc2V0Vm9sdW1lKDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRzTWFuYWdlci5pbml0KDE3OSwgMTAxLCBnb29nbGUuaW1hLlZpZXdNb2RlLk5PUk1BTCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZHNNYW5hZ2VyLnN0YXJ0KCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGFkRXJyb3IpIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGlzX3BsYXlpbmcgPSAwOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpc19tdXRlZCA9IDE7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFkc01hbmFnZXI7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGVzdHJveVBsYXllciA9IGZ1bmN0aW9uIChwbGF5ZXJJZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2W2RhdGEtZ2ltYS1wLWlkPSInICsgcGxheWVySWQgKyAnIl0nKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5yZW1vdmUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBpbml0QWRzKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGxheWVyQ29udGFpbmVySUQgPSBjb25zdHJ1Y3RBZENvbnRhaW5lcigpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZ0lNQUxvYWRlciA9IGxvYWRHSU1BKHBsYXllckNvbnRhaW5lcklEKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGdJTUFDb25mID0gY29uZmlndXJlR0lNQSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnSU1BTG9hZGVyLnJlcXVlc3RBZHMoZ0lNQUNvbmYpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBvbkFkc0NvbXBsZXRlKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN2aWV3LWNsb3NlLXNlY3Rpb24iKS5jbGFzc0xpc3QucmVtb3ZlKCJjbG9zZV9idG5fc2VjX2FmdGVyXzEwIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkc01hbmFnZXIuc2V0Vm9sdW1lKDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19tdXRlZCA9IDE7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwbGF5ZXJJZCA9IGUudGFyZ2V0LmcuWjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3ZHaW1hQ29uc3RDb250bnIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3YtZ2ltYS1jb25zdC1jb250bnIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ZHaW1hQ29uc3RDb250bnIuY2xhc3NMaXN0LmFkZCgiY29sbGFwc2UiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0cm95UGxheWVyKHBsYXllcklkKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRBZHMoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgMjAwMCk7DQoNCi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3YtcGxheWVyLW1haW4tY29udGFpbmVyIikuc3R5bGUuY3NzVGV4dCA9ICJkaXNwbGF5Om5vbmUiOw0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gb25BZFN0YXJ0ZWQoZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdkdpbWFDb25zdENvbnRuciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdi1naW1hLWNvbnN0LWNvbnRuciIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdkdpbWFDb25zdENvbnRuci5jbGFzc0xpc3QucmVtb3ZlKCJjb2xsYXBzZSIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19wbGF5aW5nID0gMTsNCi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3YtcGxheWVyLW1haW4tY29udGFpbmVyIikuc3R5bGUuY3NzVGV4dCA9ICJkaXNwbGF5OnVuc2V0IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWZ0ZXJfMTBfc2VjKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGFkc1BhdXNlKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfcGxheWluZyA9IDA7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGFkc1Jlc3VtZShlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX3BsYXlpbmcgPSAxOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBhZHNNdXRlKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfbXV0ZWQgPSAxOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBhZHNVbk11dGUoZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19tdXRlZCA9IDA7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG9uQWRzQ2xpY2soZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBvbkFkc0Vycm9yKGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdHJveVBsYXllcihlLmN1cnJlbnRUYXJnZXQuZy5aKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdEFkcygpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiB0b2dnbGVWaWRlb1BsYXllcigpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzX3BsYXlpbmcpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkc01hbmFnZXIucGF1c2UoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX3BsYXlpbmcgPSAwOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBsYXllci10b2dnbGUiKS5jbGFzc05hbWUgPSAidmlkZW8tYnRuLXBsYXkiOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRzTWFuYWdlci5yZXN1bWUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX3BsYXlpbmcgPSAxOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBsYXllci10b2dnbGUiKS5jbGFzc05hbWUgPSAidmlkZW8tYnRuLXBhdXNlIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiB0b2dnbGVTb3VuZEJ1dHRvbigpIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNfbXV0ZWQgPT09IDEpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX211dGVkID0gMDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkc01hbmFnZXIuc2V0Vm9sdW1lKDEpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNvdW5kLXRvZ2dsZSIpLmNsYXNzTmFtZSA9ICJzb3VuZC1idG4tcGxheSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19tdXRlZCA9IDE7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZHNNYW5hZ2VyLnNldFZvbHVtZSgwKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzb3VuZC10b2dnbGUiKS5jbGFzc05hbWUgPSAic291bmQtYnRuLXBhdXNlIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGxheVBhdXNlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BsYXllci10b2dnbGUnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF5UGF1c2UuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0b2dnbGVWaWRlb1BsYXllcik7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc291bmRVbm11dGVidG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc291bmQtdG9nZ2xlJyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291bmRVbm11dGVidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0b2dnbGVTb3VuZEJ1dHRvbik7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgR0lNQVNka1NjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdJTUFTZGtTY3JpcHQudHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdJTUFTZGtTY3JpcHQub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0QWRzKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHSU1BU2RrU2NyaXB0LnNyYyA9ICIvL2ltYXNkay5nb29nbGVhcGlzLmNvbS9qcy9zZGtsb2FkZXIvaW1hMy5qcyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChHSU1BU2RrU2NyaXB0KTsNCg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdoaWRlU3ZpZXdTbWFydEJhbm5lcicpLm9uY2xpY2sgPSBmdW5jdGlvbiAoZXZ0KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN2R2ltYUNvbnN0Q29udG5yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN2LWdpbWEtY29uc3QtY29udG5yIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkc01hbmFnZXIucGF1c2UoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ZHaW1hQ29uc3RDb250bnIuY2xhc3NMaXN0LmFkZCgiY29sbGFwc2UiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ow0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIiwgZnVuY3Rpb24gKGV2ZW50KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5oaWRkZW4pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZVZpZGVvUGxheWVyKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVWaWRlb1BsYXllcigpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7DQoNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGlzSW5WaWV3cG9ydChlbCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWN0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC50b3AgPj0gMCAmJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QubGVmdCA+PSAwICYmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC5ib3R0b20gPD0gKHdpbmRvdy5pbm5lckhlaWdodCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSAmJg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3QucmlnaHQgPD0gKHdpbmRvdy5pbm5lcldpZHRoIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCkNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYm94ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnN2LWNvbnRlbnQtcGFyZW50Jyk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VUZXh0ID0gaXNJblZpZXdwb3J0KGJveCk7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2VUZXh0KSB7DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2l2ZTogdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOw0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBhZnRlcl8xMF9zZWMoKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN2aWV3LWNsb3NlLXNlY3Rpb24iKS5jbGFzc0xpc3QuYWRkKCJjbG9zZV9idG5fc2VjX2FmdGVyXzEwIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDUwMDApOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG9wZW5JTkhvdXNlKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cub3BlbignaHR0cHM6Ly9zdXJldmlldy50dicsICdfYmxhbmsnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2NyaXB0Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InN2LXBsYXllci1jbG9zZS1wbGF5ZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsgd2lkdGg6MTAwJTsgcG9zaXRpb246IHJlbGF0aXZlOyIgb25jbGljaz0iY2xvc2VQbGF5ZXIoKTsiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9InN2LXBsYXllci1jbG9zZSIgc3JjPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURBQUFBQXdDQVlBQUFCWEF2bUhBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQklFbEVRVlI0bk8yWjNRNEJNUkJHeTdzTEYwSzQ0QWJ2S0g1dWp6UzdRbGpXdHAzcFNPWTh3UFE3M2Y1TXN5RTRqdU00VWdBVDRBU3NnTEhpdUdOZ0RaeUJhVTZoSXcvMkdoSTA0ZU5ZZDQ0NXhlWlBoY1FsZUE4Zm1lY1VIQUdibDRJSENRbWFzYmJGSjB4REFxbndHaEpJaDVlVVFDdThoSVI2K0pJUzFjS1hrS2dlUGtmQ1RQZ1VDWFBoaDBpWURmK0xoUG53ZDlxd3U0NmdyNzNOemx6NG5pOWhlK1lIU05nUEgvbXc1dDgyOXIrRnR5OUI5Mk9rYXhQYlcwcDhPU28xSDBWSi9ITE9tNVZnd0NWbFRvS0VHOWFNQkJudFFYVUpDdlEyMVNRbzJKaXBTeURRVmFJbElka1NJeTJoMGM4akphSDVHRUZDQWxocWhPL3BweFloRmVDcUZmNkx4Q1drQXN4aWdUZ0xGWDV3TE5xeDAzOXdPSTdqT0tHSEcvSGtDUW95MWhyb0FBQUFBRWxGVGtTdVFtQ0MiIC8+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8c2NyaXB0Pg0KICAgICAgICAgICAgdmFyIGZpcnN0X3RpbWUgPSAxOw0KICAgICAgICAgICAgbGV0IGlzU1ZUYWJBY3RpdmUgPSB0cnVlOw0KICAgICAgICAgICAgZnVuY3Rpb24gZ2V0UGxheWVyVmlld2FiaWxpdHkocGxheWVyX29iaikgew0KICAgICAgICAgICAgICAgIHZhciBvZmZzZXRIZWlnaHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3VzdG9tLWRtLXBsYXllcicpLm9mZnNldEhlaWdodDsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3VyZXZpZXctdmlldy1hZHMtMDAxJykuc3R5bGUuaGVpZ2h0ID0gb2Zmc2V0SGVpZ2h0ICsgMzIgKyAncHgnOw0KICAgICAgICAgICAgICAgIHBsYXllcl9vYmouc2V0Vm9sdW1lKDApOw0KICAgICAgICAgICAgICAgIHBsYXllcl9vYmoub24oZGFpbHltb3Rpb24uZXZlbnRzLlBMQVlFUl9WSUVXQUJJTElUWUNIQU5HRSwgKHBsYXllcl9vYmopID0+IHsNCiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlJlY2VpdmVkIFBMQVlFUl9TVEFSVCBldmVudC4iLCBwbGF5ZXJfb2JqLnBsYXllcklzVmlld2FibGUpOw0KICAgICAgICAgICAgICAgICAgICBpZiAocGxheWVyX29iai5wbGF5ZXJJc1ZpZXdhYmxlKSB7DQoNCg0KICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgZnVuY3Rpb24gY2xvc2VQbGF5ZXIoKSB7DQogICAgICAgICAgICAgICAgY29uc3Qgc3ZHaW1hQ29uc3RDb250bnIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3YtZ2ltYS1jb25zdC1jb250bnIiKTsNCiAgICAgICAgICAgICAgICBhZHNNYW5hZ2VyLnBhdXNlKCk7DQogICAgICAgICAgICAgICAgaWYgKGFkc01hbmFnZXIpIHsNCiAgICAgICAgICAgICAgICAgICAgYWRzTWFuYWdlci5kZXN0cm95KCk7DQogICAgICAgICAgICAgICAgICAgIGFkc01hbmFnZXIgPSBudWxsOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBzdkdpbWFDb25zdENvbnRuci5jbGFzc0xpc3QuYWRkKCJjb2xsYXBzZSIpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdi1wbGF5ZXItY29udHJvbHMtY29udGFpbmVyIikuc3R5bGUuZGlzcGxheSA9ICdub25lJzsNCi8vICAgICAgICAgICAgICAgIGRhaWx5bW90aW9uLmdldFBsYXllcigpDQovLyAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKChwbGF5ZXIpID0+IHsNCi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXllci5kZXN0cm95KCk7DQovLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3YtcGxheWVyLWNvbnRyb2xzLWNvbnRhaW5lciIpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQovLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3YtcGxheWVyLWNsb3NlLXBsYXllciIpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQovLyAgICAgICAgICAgICAgICAgICAgICAgIH0pDQovLyAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZSkgPT4gY29uc29sZS5lcnJvcihlKSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIA0KDQogICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5zY3JvbGxZIDw9IDQwMCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygidG9wIG9mIHBhZ2UiKTsNCg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3YtcGxheWVyLWNvbnRyb2xzLWNvbnRhaW5lciIpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdi1wbGF5ZXItY2xvc2UtcGxheWVyIikuc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCg0KICAgICAgICAgICAgICAgICAgICBpZiAoaXNfcGxheWluZyAmJiBhZHNNYW5hZ2VyKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBhZHNNYW5hZ2VyLnBhdXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBpc19wbGF5aW5nID0gMDsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwbGF5ZXItdG9nZ2xlIikuY2xhc3NOYW1lID0gInZpZGVvLWJ0bi1wbGF5IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgDQoNCg0KICAgICAgICAgICAgd2luZG93Lm9uc2Nyb2xsID0gZnVuY3Rpb24gKGV2KSB7DQovLyAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQiLGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0KTsNCi8vICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJ3aW5kb3cuc2Nyb2xsWSIsd2luZG93LnNjcm9sbFkpOw0KICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuc2Nyb2xsWSA8PSA0MDApIHsNCi8vICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygidG9wIG9mIHBhZ2UiKTsNCi8vICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3YtcGxheWVyLW1haW4tY29udGFpbmVyIikuY2xhc3NMaXN0LnJlbW92ZSgiZml4ZWRFbGVtZW50Iik7DQovLyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN2LXBsYXllci1jb250cm9scy1jb250YWluZXIiKS5jbGFzc0xpc3QucmVtb3ZlKCJmaXhlZEVsZW1lbnRGaXJzdENoaWxkIik7DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdi1wbGF5ZXItY29udHJvbHMtY29udGFpbmVyIikuc3R5bGUuZGlzcGxheSA9ICdub25lJzsNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN2LXBsYXllci1jbG9zZS1wbGF5ZXIiKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOw0KICAgICAgICAgICAgICAgICAgICBpZiAoaXNfcGxheWluZyAmJiBhZHNNYW5hZ2VyKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBhZHNNYW5hZ2VyLnBhdXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBpc19wbGF5aW5nID0gMDsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwbGF5ZXItdG9nZ2xlIikuY2xhc3NOYW1lID0gInZpZGVvLWJ0bi1wbGF5IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChpc19wbGF5aW5nID09IDAgJiYgYWRzTWFuYWdlcikgew0KICAgICAgICAgICAgICAgICAgICAgICAgYWRzTWFuYWdlci5yZXN1bWUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlzX3BsYXlpbmcgPSAxOw0KICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBsYXllci10b2dnbGUiKS5jbGFzc05hbWUgPSAidmlkZW8tYnRuLXBhdXNlIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3RfdGltZSA9PSAxKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3YtcGxheWVyLWNvbnRyb2xzLWNvbnRhaW5lciIpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOw0KICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN2LXBsYXllci1jbG9zZS1wbGF5ZXIiKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfTsNCg0KDQogICAgICAgIDwvc2NyaXB0Pg==').clientWidth;
}else if(company==9){
var video_div=document.getElementsByClassName("dm-player")[0].clientWidth;
}else{
video_div=sureview_div;
}
var diff=(sureview_div)-(video_div);
var padd='0px';
if(diff>10){
padd=diff/2+"px";
}
var bottom_div = document.createElement("div");
bottom_div.id="sureview_branding";
bottom_div.className="sureviewBottomDiv sureviewtv";
var anchor1=document.createElement("a");
anchor1.href="http://sureview.tv/";
anchor1.target="_BLANK";
var bottom_logo_img = document.createElement("img");
bottom_logo_img.id="sureview_logo_bottom";
bottom_logo_img.src="https://b-cdn.sureview.tv/ads-images/logo/sureview_logo.svg";
anchor1.appendChild(bottom_logo_img);
bottom_div.appendChild(anchor1);
if(company==1){
try{
vdo_player= document.getElementsByClassName("vdo_content")[0].getElementsByTagName("video-js")[0].getElementsByClassName('ima-ad-container')[0].getElementsByTagName('div')[1].getElementsByTagName('video')[0];
if(vdo_player.duration>5){
x.appendChild(bottom_div);
document.getElementById("sureview_logo_bottom").style.padding = "0px "+padd+" 0px 0px";
if(video_div>0){
clearInterval(setlogo_intval);
}
}else{
if(counter==2){
clearInterval(setlogo_intval);
}
}
}catch(error){
if(counter==2){
clearInterval(setlogo_intval);
}
}
}else if(company==2){
try{
teads_player=document.getElementsByClassName("teads-inread")[0].getElementsByTagName("iframe")[0].contentDocument.getElementsByTagName("iframe")[0].contentDocument.getElementsByTagName('video')[0];
if(teads_player.duration>5){
x.appendChild(bottom_div);
document.getElementById("sureview_logo_bottom").style.padding = "0px "+padd+" 0px 0px";
if(video_div>0){
clearInterval(setlogo_intval);
}
}else{
}
}catch(error){
}
}else if(company==9){
}
}catch(Error){
if(counter==10){
clearInterval(setlogo_intval);
}
}
},1000);
}
function get_video_duration(){
refreshIntervalId=setInterval(function(){
try{
vdo_player= document.getElementsByClassName("vdo_content")[0].getElementsByTagName("video-js")[0].getElementsByClassName('ima-ad-container')[0].getElementsByTagName('div')[1].getElementsByTagName('video')[0];
if(isNaN(vdo_player.duration) || vdo_player.duration==0){
setTimeout(function(){
clearInterval(refreshIntervalId);
change_ads(2);
},1000);
}else{
}
}catch(error){
try{
teads_player=document.getElementsByClassName("teads-inread")[0].getElementsByTagName("iframe")[0].contentDocument.getElementsByTagName("iframe")[0].contentDocument.getElementsByTagName('video')[0];
setTimeout(function(){
if(teads_player.currentTime===0){
change_ads(1);
clearInterval(refreshIntervalId);
}else{
}
},10000);
if(isNaN(teads_player.duration)){
setTimeout(function(){
change_ads(1);
},10000);
}else{
if(teads_player.duration==teads_player.currentTime){
setTimeout(function(){
change_ads(1);
},10000);
}
}
}catch(error){
clearInterval(refreshIntervalId);
try{
teads_player=document.getElementsByClassName("teads-inread")[0].getElementsByTagName("iframe")[0].children;
}catch(error){
change_ads(1);
}
}
}
}, 10000);
}
function change_ads(ads_id){
clearInterval(refreshIntervalId);
if(ads_id==1){
add_vdo();
}else if(ads_id==2){
add_teads();
}
}
function add_vdo(){
if(is_active_vdo==1){
set_bottom_logo(1);
try{
document.querySelector('script[src*="vdo.ai"]').remove();
}catch(error){
console.log("VDO ERROR",error);
}
document.getElementsByClassName("sureview-content")[0].innerHTML = "";
running_ads=1;
if(placement_salector!=0){
try {
placement_salector[no_of_tag].appendChild(x);
}
catch (exception_var) {
}
ad_displaying=1;
x.appendChild(vdo);
(function(v,d,o,ai)
{ai=d.createElement('script');ai.defer=true;ai.async=true;ai.src=v.location.protocol+o;d.head.appendChild(ai);})(window, document, '//a.vdo.ai/core/'+vdo_id+'/vdo.ai.js');
}else{
x.appendChild(vdo);
(function(v,d,o,ai)
{ai=d.createElement('script');ai.defer=true;ai.async=true;ai.src=v.location.protocol+o;d.head.appendChild(ai);})(window, document, '//a.vdo.ai/core/'+vdo_id+'/vdo.ai.js');
}
}
}
function add_teads(){
if(is_active_teads==1){
set_bottom_logo(2);
clearInterval(setlogo_intval);
document.getElementsByClassName("sureview-content")[0].innerHTML = "";
running_ads=2;
if(placement_salector!=0){
ad_displaying=1;
x.appendChild(teads_main_div);
try {
placement_salector[no_of_tag].appendChild(x);
}catch (exception_var) {
}
}else{
x.appendChild(teads_main_div);
}
}
}
function remove_logo_2(){
try{
document.getElementById("sureview_branding").remove();
}catch(error){
}
}
const box = document.getElementById('Sureview160');
document.addEventListener('scroll', function () {
var inVpPartial = isElementPartiallyInViewport(box);
if(inVpPartial==true){
}else{
}
}, {
passive: true
});
function isElementPartiallyInViewport(el)
{
if (typeof jQuery !== 'undefined' && el instanceof jQuery)
el = el[0];
var rect = el.getBoundingClientRect();
var windowHeight = (window.innerHeight || document.documentElement.clientHeight);
var windowWidth = (window.innerWidth || document.documentElement.clientWidth);
var vertInView = (rect.top <= windowHeight) && ((rect.top + rect.height) >= 0);
var horInView = (rect.left <= windowWidth) && ((rect.left + rect.width) >= 0);
return (vertInView && horInView);
}
})();