ezlibrary_v2 0.0.35 → 0.0.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -375,10 +375,10 @@ export class EzHeaderComponent {
375
375
  }
376
376
  }
377
377
  /** @nocollapse */ EzHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EzHeaderComponent, deps: [{ token: i1.Router }, { token: i2.ToastrService }, { token: i3.CommanServiceService }, { token: i4.GlobleEnvService }, { token: i5.NgxSpinnerService }], target: i0.ɵɵFactoryTarget.Component });
378
- /** @nocollapse */ EzHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: EzHeaderComponent, selector: "app-ezheader", viewQueries: [{ propertyName: "closebtn", first: true, predicate: ["closebtn"], descendants: true }], ngImport: i0, template: "<ul class=\"x-navigation x-navigation-horizontal x-navigation-panel\" style=\"padding-right: 0px;z-index: 1000\">\r\n <li style=\"background: #3b5998;\">\r\n <a (click)=\"routehome()\" *ngIf=\"cUrl != '/home'\" class=\"profile-mini\">\r\n <span class=\"head\">EZ</span>\r\n </a>\r\n </li>\r\n <li *ngIf=\"cUrl != '/home' \">\r\n <nav class=\"navbar navbar-expand-md navbar-light bg-light\">\r\n <div class=\"navbar-collapse justify-content-between mtop\" id=\"navbarCollapse\">\r\n <div class=\"navbar-nav\">\r\n <div class=\"nav-item dropdown\" style=\"z-index:10\">\r\n <a (click)=\"ShowMenu('bar','')\" class=\"nav-link dropdown-toggle\"\r\n style=\"color: #fff; font-size: 20px;padding:0px ;margin-top: 5px\" data-toggle=\"dropdown\"> <i\r\n class=\"fa fa-bars\" aria-hidden=\"true\"></i></a>\r\n <div id=\"menuDiv\" class=\"dropdown-menu\" style=\"display: none;background-color: #1d2127\">\r\n <div class=\"row\">\r\n <div class=\"menu-history-column col-md-2\">\r\n <h2>History</h2>\r\n <ul id=\"nav-history\" style=\"display:inline\">\r\n <li class=\"service-item\" *ngFor=\"let menu_idn of historyLink\">\r\n <a href=\"#/{{historyLinkMap[menu_idn]['lnk']}}\" class=\"headerlink\"\r\n (click)=\"ShowMenu('bar','')\"><span\r\n class=\"service-label\">{{historyLinkMap[menu_idn]['hdr']}}</span></a>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"col-md-10\">\r\n <div class=\"row col-md-12 awsc-services-search\">\r\n <div id=\"awsc-input-wrapper\">\r\n <input id=\"awsc-services-search-autocomplete\" type=\"text\" placeholder=\"Find a Menu by name\"\r\n class=\"ui-autocomplete-input\" name=\"searchF\" [(ngModel)]=\"searchF\">\r\n </div>\r\n </div>\r\n <div id=\"awsc-services-container\" class=\"row\">\r\n <ng-container *ngFor=\"let key of keyList\">\r\n <div class=\"col-md-3\">\r\n <ul>\r\n <ng-container *ngFor=\"let accmenu of accMenuList[key] | tableSearch:searchF;\">\r\n <li *ngIf=\"accmenu.ishdr=='Y'\" class=\"awsc-header ico-compute\">\r\n <ng-container *ngIf=\"accmenu.lnk !='#' && accmenu.lnk !=''\">\r\n <i class=\"fa fa-angle-double-right\" style=\"font-size:20px;color:white;\"></i>\r\n <a href=\"#/{{accmenu.lnk}}\" (click)=\"ShowMenu('lnk',accmenu)\" class=\"headerlink\"> <span\r\n class=\"service-label\"> {{accmenu.hdr}}</span> </a>\r\n </ng-container>\r\n <ng-container *ngIf=\"accmenu.lnk =='#' || accmenu.lnk ==''\">\r\n <i class=\"fa fa-angle-double-down\" style=\"font-size:20px;color:white;\"></i>\r\n {{accmenu.hdr}}\r\n </ng-container>\r\n </li>\r\n <li *ngIf=\"accmenu.ishdr=='N'\" class=\"service-item\">\r\n <a href=\"#/{{accmenu.lnk}}\" (click)=\"ShowMenu('lnk',accmenu)\"><span\r\n class=\"service-label\">{{accmenu.hdr}}</span></a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </nav>\r\n </li>\r\n <li class=\"rs-none\" [ngStyle]=\"{'width' : cUrl == '/home' ? '250px' : '0px'}\">\r\n &nbsp;\r\n </li>\r\n <li class=\"rs-none\" style=\"margin: 10px;\">\r\n <form class=\"form-inline my-2\">\r\n <textarea style=\"white-space: pre;\" class=\"form-control\" placeholder=\"STONE ID/ RF ID search\" [(ngModel)]=\"qkSch\"\r\n id=\"foggle\" name=\"foogle\" cols=\"45\" rows=\"1\"></textarea>\r\n <span style=\"position: absolute; \r\n top: -2px;\r\n right: 28px;\r\n color: rgb(150, 144, 144);\r\n cursor: pointer !important;\r\n z-index: 6;\r\n width: 35px;\r\n height: 36px;\r\n line-height: 34px;\r\n text-align: center;\r\n /* pointer-events: none; */\r\n font-size: 17px;\">\r\n <i class=\"fa fa-search\" (click)=\"packetLookupSrcCount(qkSch);\"></i>\r\n </span>\r\n <span class=\"helpc mr-sm-2\" data-toggle=\"tooltip\" data-placement=\"bottom\"\r\n title=\"STONE / CERT NO / GIA RD 1.20-1.30 F VS1 3EX N\"><i class=\"fa fa-info\"></i></span>\r\n </form>\r\n </li>\r\n <li class=\"pull-right\" data-toggle=\"tooltip\" data-placement=\"left\" title=\"Change password\">\r\n <a (click)=\"ChangePassword()\" style=\"padding:15px 5px\" class=\"mb-control\">\r\n <span style=\"font-size: 18px\" class=\"fa fa-key\"></span>\r\n </a>\r\n </li>\r\n <li class=\"pull-right\" data-toggle=\"tooltip\" data-placement=\"left\" title=\"Log Out\">\r\n <a (click)=\"logOutBox()\" class=\"mb-control\" style=\"padding:15px 5px\" data-box=\"#mb-signout\">\r\n <span style=\"font-size: 18px\" class=\"fa fa-sign-out\"></span>\r\n </a>\r\n </li>\r\n <li class=\"pull-right\">\r\n <label class=\"ud\"> <span class=\"text-capitalize\">{{uUsr +' |'}}</span> {{ds}} </label>\r\n </li>\r\n</ul>\r\n<ul class=\"x-navigation x-navigation-horizontal x-navigation-panel sr-none\" style=\"background-color: #bfbfbf\">\r\n <li style=\"margin: 10px;\">\r\n <form class=\"form-inline my-2\">\r\n <textarea style=\"white-space: pre;\" class=\"form-control\" placeholder=\"STONE ID/ RF ID search\" [(ngModel)]=\"qkSch\"\r\n id=\"foggle\" name=\"foogle\" cols=\"45\" rows=\"1\"></textarea>\r\n <span style=\"position: absolute; \r\n top: -2px;\r\n right: 28px;\r\n color: rgb(150, 144, 144);\r\n cursor: pointer !important;\r\n z-index: 6;\r\n width: 30px;\r\n height: 36px;\r\n line-height: 34px;\r\n text-align: center;\r\n /* pointer-events: none; */\r\n font-size: 17px;\">\r\n <i class=\"fa fa-search\" (click)=\"packetLookupSrcCount(qkSch);\"></i>\r\n </span>\r\n </form>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"modal\" id=\"changePwdPop\" role=\"dialog\" aria-labelledby=\"smallModalHead\" aria-hidden=\"true\"\r\n data-backdrop=\"static\" data-keyboard=\"false\">\r\n <div class=\"modal-dialog\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" #closebtn>\r\n <span aria-hidden=\"true\">&times;</span>\r\n <span class=\"sr-only\">Close</span>\r\n </button>\r\n <h4 class=\"modal-title\" id=\"smallModalHead\">Change Password</h4>\r\n </div>\r\n <div class=\"modal-body\">\r\n <ng-container *ngFor=\"let user of userDetails; let i=index;\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <div class=\"form-group\">\r\n <label class=\"control-label\" class=\"col-md-2\" style=\"text-align: left\">Username : </label>\r\n <label class=\"col-md-2\" style=\"text-align: left\">{{user?.username}}</label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12\" style=\"margin-top: 5px\">\r\n <div class=\"form-group\">\r\n <label class=\"control-label\" class=\"col-md-2\" style=\"text-align: left\">Password:</label>\r\n\r\n <input type=\"text\" class=\"form-control\" class=\"col-md-10\" style=\"text-align: left\"\r\n (change)=\"passwordChange()\" [(ngModel)]=\"user.password\" name=\"password\" />\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-danger\" #closebtn data-dismiss=\"modal\">Close</button>\r\n <button type=\"button\" (click)=\"SavePassword()\" class=\"btn btn-success\" appAppNoDblClick>Confirm</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<button id=\"changePwdBtn\" [hidden]=\"true\" data-toggle=\"modal\" data-target=\"#changePwdPop\"></button>", styles: [".x-navigation li>a .fa,.x-navigation li>a .glyphicon{color:#ccc;text-align:center;font-size:14px;margin-right:10px;vertical-align:baseline;transition:color .2s ease}.x-navigation.x-navigation-horizontal>li>a{border-bottom:0px;line-height:20px;color:#fff;text-shadow:none}.ud{color:#fff;margin-top:13px;margin-right:5px;font-size:14px}.checked{color:orange}.req{color:red;padding-left:5px}::placeholder{color:#ddd!important;opacity:1}:-ms-input-placeholder{color:#ddd!important}::-ms-input-placeholder{color:#ddd!important}.helpc{background:#f8f9fa;color:#7c7c7d;padding:5px;font-size:10px;width:18px;text-align:center;border:1px solid #7c7c7c;border-radius:2px;cursor:pointer;margin:5px}.schdrp{border-radius:3px 0 0 3px}.schinput{border-radius:0 3px 3px 0;border-left:none;box-shadow:none}.profile-mini:hover{background:#3b5998}.head{font-size:18px;color:#fff;text-align:center;display:inline-block}.dropdown-menu{width:100vw;padding:20px;margin-left:-60px}.dropdown-menu:after{left:70px}.dropdown-menu:before{left:70px}#menu-history-column{box-sizing:border-box;padding-right:0;padding-bottom:35px;position:relative;height:100%}.awsc-services-search{overflow:hidden;border-left:1px solid #ddd}.awsc-services-search #awsc-services-search-filter-group{display:table;float:right;width:120px;padding:10px}.awsc-services-search .awsc-services-search-filter{display:table-cell;width:60px;height:31px;font-size:14px;border:1px solid #ccc;text-align:center;vertical-align:middle;transition:background-color .25s ease}.awsc-services-search .awsc-services-search-filter:nth-of-type(1){border-radius:5px 0 0 5px;border-right:0}.awsc-services-search .awsc-services-search-filter:nth-of-type(2){border-radius:0 5px 5px 0}.awsc-services-search .awsc-services-search-filter.active{background-color:#a0cec782}.awsc-services-search .awsc-services-search-filter:not(.active){cursor:pointer}.awsc-services-search .awsc-services-search-filter a{color:#444!important;transition:background-color .25s ease}.awsc-services-search .awsc-services-search-filter.active a{font-weight:500}.awsc-services-search #awsc-input-wrapper{float:left;width:80%;padding:10px}.awsc-services-search #awsc-input-wrapper input{width:100%;border-radius:5px;font-size:14px;padding:7px 10px;transition:all .25s ease;outline:0;border:1px solid #ccc;height:17px;box-sizing:content-box}.awsc-services-search #awsc-input-wrapper input::-webkit-input-placeholder{color:#ccc}.awsc-services-search #awsc-input-wrapper input:-ms-input-placeholder{color:#ccc}.awsc-services-search #awsc-input-wrapper input::-moz-placeholder{color:#ccc;opacity:1}.awsc-services-search #awsc-input-wrapper input:-moz-placeholder{color:#ccc;opacity:1}.awsc-services-search #awsc-input-wrapper input:focus{border:1px solid #38d;box-shadow:0 0 8px #3388dd80}.menu-services-container{width:100%;overflow:auto;padding:25px 30px 30px;border-left:1px solid #ddd}#nav-history{list-style-type:none;margin:0;padding:0}#awsc-services-container{overflow:scroll;padding:10px 10px 5px 5px;border-left:1px solid #ddd;height:calc(100vh - 150px)}#awsc-services-container.awsc-clone{opacity:0!important;display:block!important;height:auto!important}.menu-history-column ul{width:auto;float:left;display:block;position:relative;border-radius:0;box-shadow:0 0 #0000}.menu-history-column ul li{display:block!important}.menu-history-column ul li{margin-bottom:4px;border:0;color:#3b5998;font-size:16px;font-weight:600;line-height:21px;text-transform:capitalize;white-space:normal;background-repeat:no-repeat;background-size:24px 24px}.headerlink{border:none;padding:0;font-size:16px;color:#fff;font-weight:600;float:none;display:inline}.arrowcss{font-size:20px;color:#fff}#awsc-services-container ul{float:left;display:block;position:relative;border-radius:0;box-shadow:0 0 #0000}ul,li{display:block}#awsc-services-container ul li{display:block!important}#awsc-services-container ul li.awsc-header{margin-bottom:4px;padding-left:38px;padding-bottom:7px;border:0;color:#fff;font-size:16px;font-weight:600;line-height:21px;text-transform:capitalize;white-space:normal;background-repeat:no-repeat;background-size:24px 24px}#awsc-services-container ul li.awsc-header .word{display:inline-block;white-space:nowrap}#awsc-services-container li.service-item{line-height:1.2;padding-left:60px;padding-bottom:8px}#awsc-services-container li.service-item a{color:#aab7b8!important;margin:0;padding:0;border-bottom:0px;font-weight:700;font-size:15px}.menu-history-column h2{color:#fff}.badge-primary{color:#fff;background-color:#3b5998;margin-top:13px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge{display:inline-block;padding:.25em .4em;font-size:15px;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline}@media (max-width:380px){.com-none{display:none}}@media (min-width:380px){.com-none{display:block}}@media (max-width:1000px){.rs-none{display:none}.sr-none{display:block}}@media (min-width:1000px){.rs-none{display:block}.sr-none{display:none}}.moreul{background-color:#3b5998;color:#fff;font-size:15px;white-space:nowrap;border:none;margin-top:15px;width:auto}.moreul li{padding:10px 15px}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.AppNoDblClickDirective, selector: "[appAppNoDblClick]" }, { kind: "pipe", type: i9.TableSearchPipe, name: "tableSearch" }] });
378
+ /** @nocollapse */ EzHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: EzHeaderComponent, selector: "app-ezheader", viewQueries: [{ propertyName: "closebtn", first: true, predicate: ["closebtn"], descendants: true }], ngImport: i0, template: "<ul class=\"x-navigation x-navigation-horizontal x-navigation-panel\" style=\"padding-right: 0px;z-index: 1000\">\r\n <li style=\"background: #3b5998;\">\r\n <a (click)=\"routehome()\" *ngIf=\"cUrl != '/home'\" class=\"profile-mini\">\r\n <span class=\"head\">EZ</span>\r\n </a>\r\n </li>\r\n <li *ngIf=\"cUrl != '/home' \">\r\n <nav class=\"navbar navbar-expand-md navbar-light bg-light\">\r\n <div class=\"navbar-collapse justify-content-between mtop\" id=\"navbarCollapse\">\r\n <div class=\"navbar-nav\">\r\n <div class=\"nav-item dropdown\" style=\"z-index:10\">\r\n <a (click)=\"ShowMenu('bar','')\" class=\"nav-link dropdown-toggle\"\r\n style=\"color: #fff; font-size: 20px;padding:0px ;margin-top: 5px\" data-toggle=\"dropdown\"> <i\r\n class=\"fa fa-bars\" aria-hidden=\"true\"></i></a>\r\n <div id=\"menuDiv\" class=\"dropdown-menu\" style=\"display: none;background-color: #1d2127\">\r\n <div class=\"row\">\r\n <div class=\"menu-history-column col-md-2\">\r\n <h2>History</h2>\r\n <ul id=\"nav-history\" style=\"display:inline\">\r\n <li class=\"service-item\" *ngFor=\"let menu_idn of historyLink\">\r\n <a href=\"#/{{historyLinkMap[menu_idn]['lnk']}}\" class=\"headerlink\"\r\n (click)=\"ShowMenu('bar','')\"><span\r\n class=\"service-label\">{{historyLinkMap[menu_idn]['hdr']}}</span></a>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"col-md-10\">\r\n <div class=\"row col-md-12 awsc-services-search\">\r\n <div id=\"awsc-input-wrapper\">\r\n <input id=\"awsc-services-search-autocomplete\" type=\"text\" placeholder=\"Find a Menu by name\"\r\n class=\"ui-autocomplete-input\" name=\"searchF\" [(ngModel)]=\"searchF\">\r\n </div>\r\n </div>\r\n <div id=\"awsc-services-container\" class=\"row\">\r\n <ng-container *ngFor=\"let key of keyList\">\r\n <div class=\"col-md-3\">\r\n <ul>\r\n <ng-container *ngFor=\"let accmenu of accMenuList[key] | tableSearch:searchF;\">\r\n <li *ngIf=\"accmenu.ishdr=='Y'\" class=\"awsc-header ico-compute\">\r\n <ng-container *ngIf=\"accmenu.lnk !='#' && accmenu.lnk !=''\">\r\n <i class=\"fa fa-angle-double-right\" style=\"font-size:20px;color:white;\"></i>\r\n <a href=\"#/{{accmenu.lnk}}\" (click)=\"ShowMenu('lnk',accmenu)\" class=\"headerlink\"> <span\r\n class=\"service-label\"> {{accmenu.hdr}}</span> </a>\r\n </ng-container>\r\n <ng-container *ngIf=\"accmenu.lnk =='#' || accmenu.lnk ==''\">\r\n <i class=\"fa fa-angle-double-down\" style=\"font-size:20px;color:white;\"></i>\r\n {{accmenu.hdr}}\r\n </ng-container>\r\n </li>\r\n <li *ngIf=\"accmenu.ishdr=='N'\" class=\"service-item\">\r\n <a href=\"#/{{accmenu.lnk}}\" (click)=\"ShowMenu('lnk',accmenu)\"><span\r\n class=\"service-label\">{{accmenu.hdr}}</span></a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </nav>\r\n </li>\r\n <li class=\"rs-none\" [ngStyle]=\"{'width' : cUrl == '/home' ? '250px' : '0px'}\">\r\n &nbsp;\r\n </li>\r\n <li class=\"rs-none\" style=\"margin: 10px;\">\r\n <form class=\"form-inline my-2\">\r\n <textarea style=\"white-space: pre;\" class=\"form-control\" placeholder=\"STONE ID/ RF ID search\" [(ngModel)]=\"qkSch\"\r\n id=\"foggle\" name=\"foogle\" cols=\"45\" rows=\"1\"></textarea>\r\n <span style=\"position: absolute; \r\n top: -2px;\r\n right: 28px;\r\n color: rgb(150, 144, 144);\r\n cursor: pointer !important;\r\n z-index: 6;\r\n width: 35px;\r\n height: 36px;\r\n line-height: 34px;\r\n text-align: center;\r\n /* pointer-events: none; */\r\n font-size: 17px;\">\r\n <i class=\"fa fa-search\" (click)=\"packetLookupSrcCount(qkSch);\"></i>\r\n </span>\r\n <span class=\"helpc mr-sm-2\" data-toggle=\"tooltip\" data-placement=\"bottom\"\r\n title=\"STONE / CERT NO / GIA RD 1.20-1.30 F VS1 3EX N\"><i class=\"fa fa-info\"></i></span>\r\n </form>\r\n </li>\r\n <li class=\"pull-right\" data-toggle=\"tooltip\" data-placement=\"left\" title=\"Change password\">\r\n <a (click)=\"ChangePassword()\" style=\"padding:15px 5px\" class=\"mb-control\">\r\n <span style=\"font-size: 18px\" class=\"fa fa-key\"></span>\r\n </a>\r\n </li>\r\n <li class=\"pull-right\" data-toggle=\"tooltip\" data-placement=\"left\" title=\"Log Out\">\r\n <a (click)=\"logOutBox()\" class=\"mb-control\" style=\"padding:15px 5px\" data-box=\"#mb-signout\">\r\n <span style=\"font-size: 18px\" class=\"fa fa-sign-out\"></span>\r\n </a>\r\n </li>\r\n <li class=\"pull-right\">\r\n <label class=\"ud\"> <span class=\"text-capitalize\">{{uUsr +' |'}}</span> {{ds}} </label>\r\n </li>\r\n</ul>\r\n<ul class=\"x-navigation x-navigation-horizontal x-navigation-panel sr-none\" style=\"background-color: #bfbfbf\">\r\n <li style=\"margin: 10px;\">\r\n <form class=\"form-inline my-2\">\r\n <textarea style=\"white-space: pre;\" class=\"form-control\" placeholder=\"STONE ID/ RF ID search\" [(ngModel)]=\"qkSch\"\r\n id=\"foggle\" name=\"foogle\" cols=\"45\" rows=\"1\"></textarea>\r\n <span style=\"position: absolute; \r\n top: -2px;\r\n right: 28px;\r\n color: rgb(150, 144, 144);\r\n cursor: pointer !important;\r\n z-index: 6;\r\n width: 30px;\r\n height: 36px;\r\n line-height: 34px;\r\n text-align: center;\r\n /* pointer-events: none; */\r\n font-size: 17px;\">\r\n <i class=\"fa fa-search\" (click)=\"packetLookupSrcCount(qkSch);\"></i>\r\n </span>\r\n </form>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"modal\" id=\"changePwdPop\" role=\"dialog\" aria-labelledby=\"smallModalHead\" aria-hidden=\"true\"\r\n data-backdrop=\"static\" data-keyboard=\"false\">\r\n <div class=\"modal-dialog\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" #closebtn>\r\n <span aria-hidden=\"true\">&times;</span>\r\n <span class=\"sr-only\">Close</span>\r\n </button>\r\n <h4 class=\"modal-title\" id=\"smallModalHead\">Change Password</h4>\r\n </div>\r\n <div class=\"modal-body\">\r\n <ng-container *ngFor=\"let user of userDetails; let i=index;\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <div class=\"form-group\">\r\n <label class=\"control-label\" class=\"col-md-2\" style=\"text-align: left\">Username : </label>\r\n <label class=\"col-md-2\" style=\"text-align: left\">{{user?.username}}</label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12\" style=\"margin-top: 5px\">\r\n <div class=\"form-group\">\r\n <label class=\"control-label\" class=\"col-md-2\" style=\"text-align: left\">Password:</label>\r\n\r\n <input type=\"text\" class=\"form-control\" class=\"col-md-10\" style=\"text-align: left\"\r\n (change)=\"passwordChange()\" [(ngModel)]=\"user.password\" name=\"password\" />\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-danger\" #closebtn data-dismiss=\"modal\">Close</button>\r\n <button type=\"button\" (click)=\"SavePassword()\" class=\"btn btn-success\" appAppNoDblClick>Confirm</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<button id=\"changePwdBtn\" [hidden]=\"true\" data-toggle=\"modal\" data-target=\"#changePwdPop\"></button>", styles: [".x-navigation li>a .fa,.x-navigation li>a .glyphicon{color:#ccc;text-align:center;font-size:14px;margin-right:10px;vertical-align:baseline;transition:color .2s ease}.x-navigation.x-navigation-horizontal>li>a{border-bottom:0px;line-height:20px;color:#fff;text-shadow:none}.ud{color:#fff;margin-top:13px;margin-right:5px;font-size:14px}.checked{color:orange}.req{color:red;padding-left:5px}::placeholder{color:#ddd!important;opacity:1}:-ms-input-placeholder{color:#ddd!important}::-ms-input-placeholder{color:#ddd!important}.helpc{background:#f8f9fa;color:#7c7c7d;padding:5px;font-size:10px;width:18px;text-align:center;border:1px solid #7c7c7c;border-radius:2px;cursor:pointer;margin:5px}.schdrp{border-radius:3px 0 0 3px}.schinput{border-radius:0 3px 3px 0;border-left:none;box-shadow:none}.profile-mini:hover{background:#3b5998}.head{font-size:18px;color:#fff;text-align:center;display:inline-block}.dropdown-menu{width:100vw;padding:20px;margin-left:-60px}.dropdown-menu:after{left:70px}.dropdown-menu:before{left:70px}#menu-history-column{box-sizing:border-box;padding-right:0;padding-bottom:35px;position:relative;height:100%}ul,li{display:block}.awsc-services-search{overflow:hidden;border-left:1px solid #ddd}.awsc-services-search #awsc-services-search-filter-group{display:table;float:right;width:120px;padding:10px}.awsc-services-search .awsc-services-search-filter{display:table-cell;width:60px;height:31px;font-size:14px;border:1px solid #ccc;text-align:center;vertical-align:middle;transition:background-color .25s ease}.awsc-services-search .awsc-services-search-filter:nth-of-type(1){border-radius:5px 0 0 5px;border-right:0}.awsc-services-search .awsc-services-search-filter:nth-of-type(2){border-radius:0 5px 5px 0}.awsc-services-search .awsc-services-search-filter.active{background-color:#a0cec782}.awsc-services-search .awsc-services-search-filter:not(.active){cursor:pointer}.awsc-services-search .awsc-services-search-filter a{color:#444!important;transition:background-color .25s ease}.awsc-services-search .awsc-services-search-filter.active a{font-weight:500}.awsc-services-search #awsc-input-wrapper{float:left;width:80%;padding:10px}.awsc-services-search #awsc-input-wrapper input{width:100%;border-radius:5px;font-size:14px;padding:7px 10px;transition:all .25s ease;outline:0;border:1px solid #ccc;height:17px;box-sizing:content-box}.awsc-services-search #awsc-input-wrapper input::-webkit-input-placeholder{color:#ccc}.awsc-services-search #awsc-input-wrapper input:-ms-input-placeholder{color:#ccc}.awsc-services-search #awsc-input-wrapper input::-moz-placeholder{color:#ccc;opacity:1}.awsc-services-search #awsc-input-wrapper input:-moz-placeholder{color:#ccc;opacity:1}.awsc-services-search #awsc-input-wrapper input:focus{border:1px solid #38d;box-shadow:0 0 8px #3388dd80}.menu-services-container{width:100%;overflow:auto;padding:25px 30px 30px;border-left:1px solid #ddd}#nav-history{list-style-type:none;margin:0;padding:0}#awsc-services-container{overflow:scroll;padding:10px 10px 5px 5px;border-left:1px solid #ddd;height:calc(100vh - 150px)}#awsc-services-container.awsc-clone{opacity:0!important;display:block!important;height:auto!important}.menu-history-column ul{width:auto;float:left;display:block;position:relative;border-radius:0;box-shadow:0 0 #0000}.menu-history-column ul li{display:block!important}.menu-history-column ul li{margin-bottom:4px;border:0;color:#3b5998;font-size:16px;font-weight:600;line-height:21px;text-transform:capitalize;white-space:normal;background-repeat:no-repeat;background-size:24px 24px}.headerlink{border:none;padding:0;font-size:16px;color:#fff;font-weight:600;float:none;display:inline}.arrowcss{font-size:20px;color:#fff}#awsc-services-container ul{float:left;display:block;position:relative;border-radius:0;box-shadow:0 0 #0000}ul,li{display:block}#awsc-services-container ul li{display:block!important}#awsc-services-container ul li.awsc-header{margin-bottom:4px;padding-left:38px;padding-bottom:7px;border:0;color:#fff;font-size:16px;font-weight:600;line-height:21px;text-transform:capitalize;white-space:normal;background-repeat:no-repeat;background-size:24px 24px}#awsc-services-container ul li.awsc-header .word{display:inline-block;white-space:nowrap}#awsc-services-container li.service-item{line-height:1.2;padding-left:60px;padding-bottom:8px}#awsc-services-container li.service-item a{color:#aab7b8!important;margin:0;padding:0;border-bottom:0px;font-weight:700;font-size:15px}.menu-history-column h2{color:#fff}.badge-primary{color:#fff;background-color:#3b5998;margin-top:13px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge{display:inline-block;padding:.25em .4em;font-size:15px;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline}@media (max-width:380px){.com-none{display:none}}@media (min-width:380px){.com-none{display:block}}@media (max-width:1000px){.rs-none{display:none}.sr-none{display:block}}@media (min-width:1000px){.rs-none{display:block}.sr-none{display:none}}.moreul{background-color:#3b5998;color:#fff;font-size:15px;white-space:nowrap;border:none;margin-top:15px;width:auto}.moreul li{padding:10px 15px}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.AppNoDblClickDirective, selector: "[appAppNoDblClick]" }, { kind: "pipe", type: i9.TableSearchPipe, name: "tableSearch" }] });
379
379
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EzHeaderComponent, decorators: [{
380
380
  type: Component,
381
- args: [{ selector: 'app-ezheader', template: "<ul class=\"x-navigation x-navigation-horizontal x-navigation-panel\" style=\"padding-right: 0px;z-index: 1000\">\r\n <li style=\"background: #3b5998;\">\r\n <a (click)=\"routehome()\" *ngIf=\"cUrl != '/home'\" class=\"profile-mini\">\r\n <span class=\"head\">EZ</span>\r\n </a>\r\n </li>\r\n <li *ngIf=\"cUrl != '/home' \">\r\n <nav class=\"navbar navbar-expand-md navbar-light bg-light\">\r\n <div class=\"navbar-collapse justify-content-between mtop\" id=\"navbarCollapse\">\r\n <div class=\"navbar-nav\">\r\n <div class=\"nav-item dropdown\" style=\"z-index:10\">\r\n <a (click)=\"ShowMenu('bar','')\" class=\"nav-link dropdown-toggle\"\r\n style=\"color: #fff; font-size: 20px;padding:0px ;margin-top: 5px\" data-toggle=\"dropdown\"> <i\r\n class=\"fa fa-bars\" aria-hidden=\"true\"></i></a>\r\n <div id=\"menuDiv\" class=\"dropdown-menu\" style=\"display: none;background-color: #1d2127\">\r\n <div class=\"row\">\r\n <div class=\"menu-history-column col-md-2\">\r\n <h2>History</h2>\r\n <ul id=\"nav-history\" style=\"display:inline\">\r\n <li class=\"service-item\" *ngFor=\"let menu_idn of historyLink\">\r\n <a href=\"#/{{historyLinkMap[menu_idn]['lnk']}}\" class=\"headerlink\"\r\n (click)=\"ShowMenu('bar','')\"><span\r\n class=\"service-label\">{{historyLinkMap[menu_idn]['hdr']}}</span></a>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"col-md-10\">\r\n <div class=\"row col-md-12 awsc-services-search\">\r\n <div id=\"awsc-input-wrapper\">\r\n <input id=\"awsc-services-search-autocomplete\" type=\"text\" placeholder=\"Find a Menu by name\"\r\n class=\"ui-autocomplete-input\" name=\"searchF\" [(ngModel)]=\"searchF\">\r\n </div>\r\n </div>\r\n <div id=\"awsc-services-container\" class=\"row\">\r\n <ng-container *ngFor=\"let key of keyList\">\r\n <div class=\"col-md-3\">\r\n <ul>\r\n <ng-container *ngFor=\"let accmenu of accMenuList[key] | tableSearch:searchF;\">\r\n <li *ngIf=\"accmenu.ishdr=='Y'\" class=\"awsc-header ico-compute\">\r\n <ng-container *ngIf=\"accmenu.lnk !='#' && accmenu.lnk !=''\">\r\n <i class=\"fa fa-angle-double-right\" style=\"font-size:20px;color:white;\"></i>\r\n <a href=\"#/{{accmenu.lnk}}\" (click)=\"ShowMenu('lnk',accmenu)\" class=\"headerlink\"> <span\r\n class=\"service-label\"> {{accmenu.hdr}}</span> </a>\r\n </ng-container>\r\n <ng-container *ngIf=\"accmenu.lnk =='#' || accmenu.lnk ==''\">\r\n <i class=\"fa fa-angle-double-down\" style=\"font-size:20px;color:white;\"></i>\r\n {{accmenu.hdr}}\r\n </ng-container>\r\n </li>\r\n <li *ngIf=\"accmenu.ishdr=='N'\" class=\"service-item\">\r\n <a href=\"#/{{accmenu.lnk}}\" (click)=\"ShowMenu('lnk',accmenu)\"><span\r\n class=\"service-label\">{{accmenu.hdr}}</span></a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </nav>\r\n </li>\r\n <li class=\"rs-none\" [ngStyle]=\"{'width' : cUrl == '/home' ? '250px' : '0px'}\">\r\n &nbsp;\r\n </li>\r\n <li class=\"rs-none\" style=\"margin: 10px;\">\r\n <form class=\"form-inline my-2\">\r\n <textarea style=\"white-space: pre;\" class=\"form-control\" placeholder=\"STONE ID/ RF ID search\" [(ngModel)]=\"qkSch\"\r\n id=\"foggle\" name=\"foogle\" cols=\"45\" rows=\"1\"></textarea>\r\n <span style=\"position: absolute; \r\n top: -2px;\r\n right: 28px;\r\n color: rgb(150, 144, 144);\r\n cursor: pointer !important;\r\n z-index: 6;\r\n width: 35px;\r\n height: 36px;\r\n line-height: 34px;\r\n text-align: center;\r\n /* pointer-events: none; */\r\n font-size: 17px;\">\r\n <i class=\"fa fa-search\" (click)=\"packetLookupSrcCount(qkSch);\"></i>\r\n </span>\r\n <span class=\"helpc mr-sm-2\" data-toggle=\"tooltip\" data-placement=\"bottom\"\r\n title=\"STONE / CERT NO / GIA RD 1.20-1.30 F VS1 3EX N\"><i class=\"fa fa-info\"></i></span>\r\n </form>\r\n </li>\r\n <li class=\"pull-right\" data-toggle=\"tooltip\" data-placement=\"left\" title=\"Change password\">\r\n <a (click)=\"ChangePassword()\" style=\"padding:15px 5px\" class=\"mb-control\">\r\n <span style=\"font-size: 18px\" class=\"fa fa-key\"></span>\r\n </a>\r\n </li>\r\n <li class=\"pull-right\" data-toggle=\"tooltip\" data-placement=\"left\" title=\"Log Out\">\r\n <a (click)=\"logOutBox()\" class=\"mb-control\" style=\"padding:15px 5px\" data-box=\"#mb-signout\">\r\n <span style=\"font-size: 18px\" class=\"fa fa-sign-out\"></span>\r\n </a>\r\n </li>\r\n <li class=\"pull-right\">\r\n <label class=\"ud\"> <span class=\"text-capitalize\">{{uUsr +' |'}}</span> {{ds}} </label>\r\n </li>\r\n</ul>\r\n<ul class=\"x-navigation x-navigation-horizontal x-navigation-panel sr-none\" style=\"background-color: #bfbfbf\">\r\n <li style=\"margin: 10px;\">\r\n <form class=\"form-inline my-2\">\r\n <textarea style=\"white-space: pre;\" class=\"form-control\" placeholder=\"STONE ID/ RF ID search\" [(ngModel)]=\"qkSch\"\r\n id=\"foggle\" name=\"foogle\" cols=\"45\" rows=\"1\"></textarea>\r\n <span style=\"position: absolute; \r\n top: -2px;\r\n right: 28px;\r\n color: rgb(150, 144, 144);\r\n cursor: pointer !important;\r\n z-index: 6;\r\n width: 30px;\r\n height: 36px;\r\n line-height: 34px;\r\n text-align: center;\r\n /* pointer-events: none; */\r\n font-size: 17px;\">\r\n <i class=\"fa fa-search\" (click)=\"packetLookupSrcCount(qkSch);\"></i>\r\n </span>\r\n </form>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"modal\" id=\"changePwdPop\" role=\"dialog\" aria-labelledby=\"smallModalHead\" aria-hidden=\"true\"\r\n data-backdrop=\"static\" data-keyboard=\"false\">\r\n <div class=\"modal-dialog\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" #closebtn>\r\n <span aria-hidden=\"true\">&times;</span>\r\n <span class=\"sr-only\">Close</span>\r\n </button>\r\n <h4 class=\"modal-title\" id=\"smallModalHead\">Change Password</h4>\r\n </div>\r\n <div class=\"modal-body\">\r\n <ng-container *ngFor=\"let user of userDetails; let i=index;\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <div class=\"form-group\">\r\n <label class=\"control-label\" class=\"col-md-2\" style=\"text-align: left\">Username : </label>\r\n <label class=\"col-md-2\" style=\"text-align: left\">{{user?.username}}</label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12\" style=\"margin-top: 5px\">\r\n <div class=\"form-group\">\r\n <label class=\"control-label\" class=\"col-md-2\" style=\"text-align: left\">Password:</label>\r\n\r\n <input type=\"text\" class=\"form-control\" class=\"col-md-10\" style=\"text-align: left\"\r\n (change)=\"passwordChange()\" [(ngModel)]=\"user.password\" name=\"password\" />\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-danger\" #closebtn data-dismiss=\"modal\">Close</button>\r\n <button type=\"button\" (click)=\"SavePassword()\" class=\"btn btn-success\" appAppNoDblClick>Confirm</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<button id=\"changePwdBtn\" [hidden]=\"true\" data-toggle=\"modal\" data-target=\"#changePwdPop\"></button>", styles: [".x-navigation li>a .fa,.x-navigation li>a .glyphicon{color:#ccc;text-align:center;font-size:14px;margin-right:10px;vertical-align:baseline;transition:color .2s ease}.x-navigation.x-navigation-horizontal>li>a{border-bottom:0px;line-height:20px;color:#fff;text-shadow:none}.ud{color:#fff;margin-top:13px;margin-right:5px;font-size:14px}.checked{color:orange}.req{color:red;padding-left:5px}::placeholder{color:#ddd!important;opacity:1}:-ms-input-placeholder{color:#ddd!important}::-ms-input-placeholder{color:#ddd!important}.helpc{background:#f8f9fa;color:#7c7c7d;padding:5px;font-size:10px;width:18px;text-align:center;border:1px solid #7c7c7c;border-radius:2px;cursor:pointer;margin:5px}.schdrp{border-radius:3px 0 0 3px}.schinput{border-radius:0 3px 3px 0;border-left:none;box-shadow:none}.profile-mini:hover{background:#3b5998}.head{font-size:18px;color:#fff;text-align:center;display:inline-block}.dropdown-menu{width:100vw;padding:20px;margin-left:-60px}.dropdown-menu:after{left:70px}.dropdown-menu:before{left:70px}#menu-history-column{box-sizing:border-box;padding-right:0;padding-bottom:35px;position:relative;height:100%}.awsc-services-search{overflow:hidden;border-left:1px solid #ddd}.awsc-services-search #awsc-services-search-filter-group{display:table;float:right;width:120px;padding:10px}.awsc-services-search .awsc-services-search-filter{display:table-cell;width:60px;height:31px;font-size:14px;border:1px solid #ccc;text-align:center;vertical-align:middle;transition:background-color .25s ease}.awsc-services-search .awsc-services-search-filter:nth-of-type(1){border-radius:5px 0 0 5px;border-right:0}.awsc-services-search .awsc-services-search-filter:nth-of-type(2){border-radius:0 5px 5px 0}.awsc-services-search .awsc-services-search-filter.active{background-color:#a0cec782}.awsc-services-search .awsc-services-search-filter:not(.active){cursor:pointer}.awsc-services-search .awsc-services-search-filter a{color:#444!important;transition:background-color .25s ease}.awsc-services-search .awsc-services-search-filter.active a{font-weight:500}.awsc-services-search #awsc-input-wrapper{float:left;width:80%;padding:10px}.awsc-services-search #awsc-input-wrapper input{width:100%;border-radius:5px;font-size:14px;padding:7px 10px;transition:all .25s ease;outline:0;border:1px solid #ccc;height:17px;box-sizing:content-box}.awsc-services-search #awsc-input-wrapper input::-webkit-input-placeholder{color:#ccc}.awsc-services-search #awsc-input-wrapper input:-ms-input-placeholder{color:#ccc}.awsc-services-search #awsc-input-wrapper input::-moz-placeholder{color:#ccc;opacity:1}.awsc-services-search #awsc-input-wrapper input:-moz-placeholder{color:#ccc;opacity:1}.awsc-services-search #awsc-input-wrapper input:focus{border:1px solid #38d;box-shadow:0 0 8px #3388dd80}.menu-services-container{width:100%;overflow:auto;padding:25px 30px 30px;border-left:1px solid #ddd}#nav-history{list-style-type:none;margin:0;padding:0}#awsc-services-container{overflow:scroll;padding:10px 10px 5px 5px;border-left:1px solid #ddd;height:calc(100vh - 150px)}#awsc-services-container.awsc-clone{opacity:0!important;display:block!important;height:auto!important}.menu-history-column ul{width:auto;float:left;display:block;position:relative;border-radius:0;box-shadow:0 0 #0000}.menu-history-column ul li{display:block!important}.menu-history-column ul li{margin-bottom:4px;border:0;color:#3b5998;font-size:16px;font-weight:600;line-height:21px;text-transform:capitalize;white-space:normal;background-repeat:no-repeat;background-size:24px 24px}.headerlink{border:none;padding:0;font-size:16px;color:#fff;font-weight:600;float:none;display:inline}.arrowcss{font-size:20px;color:#fff}#awsc-services-container ul{float:left;display:block;position:relative;border-radius:0;box-shadow:0 0 #0000}ul,li{display:block}#awsc-services-container ul li{display:block!important}#awsc-services-container ul li.awsc-header{margin-bottom:4px;padding-left:38px;padding-bottom:7px;border:0;color:#fff;font-size:16px;font-weight:600;line-height:21px;text-transform:capitalize;white-space:normal;background-repeat:no-repeat;background-size:24px 24px}#awsc-services-container ul li.awsc-header .word{display:inline-block;white-space:nowrap}#awsc-services-container li.service-item{line-height:1.2;padding-left:60px;padding-bottom:8px}#awsc-services-container li.service-item a{color:#aab7b8!important;margin:0;padding:0;border-bottom:0px;font-weight:700;font-size:15px}.menu-history-column h2{color:#fff}.badge-primary{color:#fff;background-color:#3b5998;margin-top:13px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge{display:inline-block;padding:.25em .4em;font-size:15px;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline}@media (max-width:380px){.com-none{display:none}}@media (min-width:380px){.com-none{display:block}}@media (max-width:1000px){.rs-none{display:none}.sr-none{display:block}}@media (min-width:1000px){.rs-none{display:block}.sr-none{display:none}}.moreul{background-color:#3b5998;color:#fff;font-size:15px;white-space:nowrap;border:none;margin-top:15px;width:auto}.moreul li{padding:10px 15px}\n"] }]
381
+ args: [{ selector: 'app-ezheader', template: "<ul class=\"x-navigation x-navigation-horizontal x-navigation-panel\" style=\"padding-right: 0px;z-index: 1000\">\r\n <li style=\"background: #3b5998;\">\r\n <a (click)=\"routehome()\" *ngIf=\"cUrl != '/home'\" class=\"profile-mini\">\r\n <span class=\"head\">EZ</span>\r\n </a>\r\n </li>\r\n <li *ngIf=\"cUrl != '/home' \">\r\n <nav class=\"navbar navbar-expand-md navbar-light bg-light\">\r\n <div class=\"navbar-collapse justify-content-between mtop\" id=\"navbarCollapse\">\r\n <div class=\"navbar-nav\">\r\n <div class=\"nav-item dropdown\" style=\"z-index:10\">\r\n <a (click)=\"ShowMenu('bar','')\" class=\"nav-link dropdown-toggle\"\r\n style=\"color: #fff; font-size: 20px;padding:0px ;margin-top: 5px\" data-toggle=\"dropdown\"> <i\r\n class=\"fa fa-bars\" aria-hidden=\"true\"></i></a>\r\n <div id=\"menuDiv\" class=\"dropdown-menu\" style=\"display: none;background-color: #1d2127\">\r\n <div class=\"row\">\r\n <div class=\"menu-history-column col-md-2\">\r\n <h2>History</h2>\r\n <ul id=\"nav-history\" style=\"display:inline\">\r\n <li class=\"service-item\" *ngFor=\"let menu_idn of historyLink\">\r\n <a href=\"#/{{historyLinkMap[menu_idn]['lnk']}}\" class=\"headerlink\"\r\n (click)=\"ShowMenu('bar','')\"><span\r\n class=\"service-label\">{{historyLinkMap[menu_idn]['hdr']}}</span></a>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"col-md-10\">\r\n <div class=\"row col-md-12 awsc-services-search\">\r\n <div id=\"awsc-input-wrapper\">\r\n <input id=\"awsc-services-search-autocomplete\" type=\"text\" placeholder=\"Find a Menu by name\"\r\n class=\"ui-autocomplete-input\" name=\"searchF\" [(ngModel)]=\"searchF\">\r\n </div>\r\n </div>\r\n <div id=\"awsc-services-container\" class=\"row\">\r\n <ng-container *ngFor=\"let key of keyList\">\r\n <div class=\"col-md-3\">\r\n <ul>\r\n <ng-container *ngFor=\"let accmenu of accMenuList[key] | tableSearch:searchF;\">\r\n <li *ngIf=\"accmenu.ishdr=='Y'\" class=\"awsc-header ico-compute\">\r\n <ng-container *ngIf=\"accmenu.lnk !='#' && accmenu.lnk !=''\">\r\n <i class=\"fa fa-angle-double-right\" style=\"font-size:20px;color:white;\"></i>\r\n <a href=\"#/{{accmenu.lnk}}\" (click)=\"ShowMenu('lnk',accmenu)\" class=\"headerlink\"> <span\r\n class=\"service-label\"> {{accmenu.hdr}}</span> </a>\r\n </ng-container>\r\n <ng-container *ngIf=\"accmenu.lnk =='#' || accmenu.lnk ==''\">\r\n <i class=\"fa fa-angle-double-down\" style=\"font-size:20px;color:white;\"></i>\r\n {{accmenu.hdr}}\r\n </ng-container>\r\n </li>\r\n <li *ngIf=\"accmenu.ishdr=='N'\" class=\"service-item\">\r\n <a href=\"#/{{accmenu.lnk}}\" (click)=\"ShowMenu('lnk',accmenu)\"><span\r\n class=\"service-label\">{{accmenu.hdr}}</span></a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </nav>\r\n </li>\r\n <li class=\"rs-none\" [ngStyle]=\"{'width' : cUrl == '/home' ? '250px' : '0px'}\">\r\n &nbsp;\r\n </li>\r\n <li class=\"rs-none\" style=\"margin: 10px;\">\r\n <form class=\"form-inline my-2\">\r\n <textarea style=\"white-space: pre;\" class=\"form-control\" placeholder=\"STONE ID/ RF ID search\" [(ngModel)]=\"qkSch\"\r\n id=\"foggle\" name=\"foogle\" cols=\"45\" rows=\"1\"></textarea>\r\n <span style=\"position: absolute; \r\n top: -2px;\r\n right: 28px;\r\n color: rgb(150, 144, 144);\r\n cursor: pointer !important;\r\n z-index: 6;\r\n width: 35px;\r\n height: 36px;\r\n line-height: 34px;\r\n text-align: center;\r\n /* pointer-events: none; */\r\n font-size: 17px;\">\r\n <i class=\"fa fa-search\" (click)=\"packetLookupSrcCount(qkSch);\"></i>\r\n </span>\r\n <span class=\"helpc mr-sm-2\" data-toggle=\"tooltip\" data-placement=\"bottom\"\r\n title=\"STONE / CERT NO / GIA RD 1.20-1.30 F VS1 3EX N\"><i class=\"fa fa-info\"></i></span>\r\n </form>\r\n </li>\r\n <li class=\"pull-right\" data-toggle=\"tooltip\" data-placement=\"left\" title=\"Change password\">\r\n <a (click)=\"ChangePassword()\" style=\"padding:15px 5px\" class=\"mb-control\">\r\n <span style=\"font-size: 18px\" class=\"fa fa-key\"></span>\r\n </a>\r\n </li>\r\n <li class=\"pull-right\" data-toggle=\"tooltip\" data-placement=\"left\" title=\"Log Out\">\r\n <a (click)=\"logOutBox()\" class=\"mb-control\" style=\"padding:15px 5px\" data-box=\"#mb-signout\">\r\n <span style=\"font-size: 18px\" class=\"fa fa-sign-out\"></span>\r\n </a>\r\n </li>\r\n <li class=\"pull-right\">\r\n <label class=\"ud\"> <span class=\"text-capitalize\">{{uUsr +' |'}}</span> {{ds}} </label>\r\n </li>\r\n</ul>\r\n<ul class=\"x-navigation x-navigation-horizontal x-navigation-panel sr-none\" style=\"background-color: #bfbfbf\">\r\n <li style=\"margin: 10px;\">\r\n <form class=\"form-inline my-2\">\r\n <textarea style=\"white-space: pre;\" class=\"form-control\" placeholder=\"STONE ID/ RF ID search\" [(ngModel)]=\"qkSch\"\r\n id=\"foggle\" name=\"foogle\" cols=\"45\" rows=\"1\"></textarea>\r\n <span style=\"position: absolute; \r\n top: -2px;\r\n right: 28px;\r\n color: rgb(150, 144, 144);\r\n cursor: pointer !important;\r\n z-index: 6;\r\n width: 30px;\r\n height: 36px;\r\n line-height: 34px;\r\n text-align: center;\r\n /* pointer-events: none; */\r\n font-size: 17px;\">\r\n <i class=\"fa fa-search\" (click)=\"packetLookupSrcCount(qkSch);\"></i>\r\n </span>\r\n </form>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"modal\" id=\"changePwdPop\" role=\"dialog\" aria-labelledby=\"smallModalHead\" aria-hidden=\"true\"\r\n data-backdrop=\"static\" data-keyboard=\"false\">\r\n <div class=\"modal-dialog\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" #closebtn>\r\n <span aria-hidden=\"true\">&times;</span>\r\n <span class=\"sr-only\">Close</span>\r\n </button>\r\n <h4 class=\"modal-title\" id=\"smallModalHead\">Change Password</h4>\r\n </div>\r\n <div class=\"modal-body\">\r\n <ng-container *ngFor=\"let user of userDetails; let i=index;\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <div class=\"form-group\">\r\n <label class=\"control-label\" class=\"col-md-2\" style=\"text-align: left\">Username : </label>\r\n <label class=\"col-md-2\" style=\"text-align: left\">{{user?.username}}</label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12\" style=\"margin-top: 5px\">\r\n <div class=\"form-group\">\r\n <label class=\"control-label\" class=\"col-md-2\" style=\"text-align: left\">Password:</label>\r\n\r\n <input type=\"text\" class=\"form-control\" class=\"col-md-10\" style=\"text-align: left\"\r\n (change)=\"passwordChange()\" [(ngModel)]=\"user.password\" name=\"password\" />\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-danger\" #closebtn data-dismiss=\"modal\">Close</button>\r\n <button type=\"button\" (click)=\"SavePassword()\" class=\"btn btn-success\" appAppNoDblClick>Confirm</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<button id=\"changePwdBtn\" [hidden]=\"true\" data-toggle=\"modal\" data-target=\"#changePwdPop\"></button>", styles: [".x-navigation li>a .fa,.x-navigation li>a .glyphicon{color:#ccc;text-align:center;font-size:14px;margin-right:10px;vertical-align:baseline;transition:color .2s ease}.x-navigation.x-navigation-horizontal>li>a{border-bottom:0px;line-height:20px;color:#fff;text-shadow:none}.ud{color:#fff;margin-top:13px;margin-right:5px;font-size:14px}.checked{color:orange}.req{color:red;padding-left:5px}::placeholder{color:#ddd!important;opacity:1}:-ms-input-placeholder{color:#ddd!important}::-ms-input-placeholder{color:#ddd!important}.helpc{background:#f8f9fa;color:#7c7c7d;padding:5px;font-size:10px;width:18px;text-align:center;border:1px solid #7c7c7c;border-radius:2px;cursor:pointer;margin:5px}.schdrp{border-radius:3px 0 0 3px}.schinput{border-radius:0 3px 3px 0;border-left:none;box-shadow:none}.profile-mini:hover{background:#3b5998}.head{font-size:18px;color:#fff;text-align:center;display:inline-block}.dropdown-menu{width:100vw;padding:20px;margin-left:-60px}.dropdown-menu:after{left:70px}.dropdown-menu:before{left:70px}#menu-history-column{box-sizing:border-box;padding-right:0;padding-bottom:35px;position:relative;height:100%}ul,li{display:block}.awsc-services-search{overflow:hidden;border-left:1px solid #ddd}.awsc-services-search #awsc-services-search-filter-group{display:table;float:right;width:120px;padding:10px}.awsc-services-search .awsc-services-search-filter{display:table-cell;width:60px;height:31px;font-size:14px;border:1px solid #ccc;text-align:center;vertical-align:middle;transition:background-color .25s ease}.awsc-services-search .awsc-services-search-filter:nth-of-type(1){border-radius:5px 0 0 5px;border-right:0}.awsc-services-search .awsc-services-search-filter:nth-of-type(2){border-radius:0 5px 5px 0}.awsc-services-search .awsc-services-search-filter.active{background-color:#a0cec782}.awsc-services-search .awsc-services-search-filter:not(.active){cursor:pointer}.awsc-services-search .awsc-services-search-filter a{color:#444!important;transition:background-color .25s ease}.awsc-services-search .awsc-services-search-filter.active a{font-weight:500}.awsc-services-search #awsc-input-wrapper{float:left;width:80%;padding:10px}.awsc-services-search #awsc-input-wrapper input{width:100%;border-radius:5px;font-size:14px;padding:7px 10px;transition:all .25s ease;outline:0;border:1px solid #ccc;height:17px;box-sizing:content-box}.awsc-services-search #awsc-input-wrapper input::-webkit-input-placeholder{color:#ccc}.awsc-services-search #awsc-input-wrapper input:-ms-input-placeholder{color:#ccc}.awsc-services-search #awsc-input-wrapper input::-moz-placeholder{color:#ccc;opacity:1}.awsc-services-search #awsc-input-wrapper input:-moz-placeholder{color:#ccc;opacity:1}.awsc-services-search #awsc-input-wrapper input:focus{border:1px solid #38d;box-shadow:0 0 8px #3388dd80}.menu-services-container{width:100%;overflow:auto;padding:25px 30px 30px;border-left:1px solid #ddd}#nav-history{list-style-type:none;margin:0;padding:0}#awsc-services-container{overflow:scroll;padding:10px 10px 5px 5px;border-left:1px solid #ddd;height:calc(100vh - 150px)}#awsc-services-container.awsc-clone{opacity:0!important;display:block!important;height:auto!important}.menu-history-column ul{width:auto;float:left;display:block;position:relative;border-radius:0;box-shadow:0 0 #0000}.menu-history-column ul li{display:block!important}.menu-history-column ul li{margin-bottom:4px;border:0;color:#3b5998;font-size:16px;font-weight:600;line-height:21px;text-transform:capitalize;white-space:normal;background-repeat:no-repeat;background-size:24px 24px}.headerlink{border:none;padding:0;font-size:16px;color:#fff;font-weight:600;float:none;display:inline}.arrowcss{font-size:20px;color:#fff}#awsc-services-container ul{float:left;display:block;position:relative;border-radius:0;box-shadow:0 0 #0000}ul,li{display:block}#awsc-services-container ul li{display:block!important}#awsc-services-container ul li.awsc-header{margin-bottom:4px;padding-left:38px;padding-bottom:7px;border:0;color:#fff;font-size:16px;font-weight:600;line-height:21px;text-transform:capitalize;white-space:normal;background-repeat:no-repeat;background-size:24px 24px}#awsc-services-container ul li.awsc-header .word{display:inline-block;white-space:nowrap}#awsc-services-container li.service-item{line-height:1.2;padding-left:60px;padding-bottom:8px}#awsc-services-container li.service-item a{color:#aab7b8!important;margin:0;padding:0;border-bottom:0px;font-weight:700;font-size:15px}.menu-history-column h2{color:#fff}.badge-primary{color:#fff;background-color:#3b5998;margin-top:13px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge{display:inline-block;padding:.25em .4em;font-size:15px;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline}@media (max-width:380px){.com-none{display:none}}@media (min-width:380px){.com-none{display:block}}@media (max-width:1000px){.rs-none{display:none}.sr-none{display:block}}@media (min-width:1000px){.rs-none{display:block}.sr-none{display:none}}.moreul{background-color:#3b5998;color:#fff;font-size:15px;white-space:nowrap;border:none;margin-top:15px;width:auto}.moreul li{padding:10px 15px}\n"] }]
382
382
  }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.ToastrService }, { type: i3.CommanServiceService }, { type: i4.GlobleEnvService }, { type: i5.NgxSpinnerService }]; }, propDecorators: { closebtn: [{
383
383
  type: ViewChild,
384
384
  args: ['closebtn']
@@ -49,6 +49,7 @@ export class MenuRightComponent {
49
49
  console.log(response);
50
50
  if (response.status == 'SUCCESS') {
51
51
  this.applicationList = response.applicationList;
52
+ this.pageinfo = response.pageInfo;
52
53
  this.btn = response.buttons[0];
53
54
  this.spinnerService.hide();
54
55
  }
@@ -284,4 +285,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
284
285
  type: Component,
285
286
  args: [{ selector: 'app-menu-right', template: "<div class=\"mt\">\r\n <div class=\"panel panel-default\">\r\n <div class=\"panel-heading\">\r\n <h3 class=\"panel-title\">{{pageinfo?.title}}</h3>\r\n </div>\r\n </div>\r\n <div class=\"content-frame\" style=\"background: #fff;height:100vh;\">\r\n <!-- START CONTENT FRAME LEFT -->\r\n <div class=\"content-frame-left\" *ngIf=\"false\">\r\n <div class=\"panel panel-default\">\r\n <div class=\"panel-body\">\r\n <div class=\"list-group border-bottom\">\r\n <a href=\"javascript:void(0)\" class=\"list-group-item\" [ngClass]=\"{'active' :i == 'cLink'}\" *ngFor=\"let nav of navigation;let i=index\"\r\n (click)=\"navigationFun(nav,i);\">{{nav?.form_field_title}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- END CONTENT FRAME LEFT -->\r\n <!-- START CONTENT FRAME BODY -->\r\n <div class=\"content-frame-body\" [ngStyle]=\"{'margin-left': false ? '0' : '250px'}\">\r\n <div class=\"panel panel-default\">\r\n <div class=\"panel-body\">\r\n <div class=\"row\">\r\n\r\n <div class=\"col-md-2\">\r\n <div class=\"form-group\">\r\n <label class=\"control-label\" style=\"padding-left: 2px;\">Application</label>\r\n <select class=\"form-control\" [(ngModel)]=\"app\" name=\"app\" (change)=\"fillModule(app)\">\r\n <option *ngFor=\"let lov of applicationList\" value=\"{{lov.k}}\">{{lov.v}}</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-md-2\" *ngIf=\"mdllist?.length > 1 \">\r\n <div class=\"form-group\">\r\n <label class=\"control-label\" style=\"padding-left: 2px;\">Module</label>\r\n <select class=\"form-control\" [(ngModel)]=\"v\" name=\"v\" (change)=\"fillLevel1(v)\">\r\n <option *ngFor=\"let lov of mdllist\" value=\"{{lov.k}}\">{{lov.v}}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-md-2\" *ngIf=\"menulvl1List?.length > 1 \">\r\n <div class=\"form-group\">\r\n <label class=\"control-label\" style=\"padding-left: 2px;\">Main Menu</label>\r\n <select class=\"form-control\" [(ngModel)]=\"v1\" name=\"v1\" (change)=\"fillLevel2(v,v1)\">\r\n <option *ngFor=\"let lov of menulvl1List\" value=\"{{lov.k}}\">{{lov.v}}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-md-2\" *ngIf=\"menulvl2List?.length > 1 \">\r\n <div class=\"form-group\">\r\n <label class=\"control-label\" style=\"padding-left: 2px;\">Sub Menu</label>\r\n <select class=\"form-control\" [(ngModel)]=\"v2\" name=\"v2\" (change)=\"submenuChange(v, v2)\">\r\n <option *ngFor=\"let lov of menulvl2List\" value=\"{{lov.k}}\">{{lov.v}}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-md-2\" *ngIf=\"menulvl3List?.length > 1 \">\r\n <div class=\"form-group\">\r\n <label class=\"control-label\" style=\"padding-left: 2px;\">Page</label>\r\n <select class=\"form-control\" [(ngModel)]=\"v3\" name=\"v3\" (change)=\"fillLevel3Change()\">\r\n <option *ngFor=\"let lov of menulvl3List\" value=\"{{lov.k}}\">{{lov.v}}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-md-2\">\r\n <button type=\"button\" id=\"addBtn\" class=\"btn btn-info \" style=\"margin-top: 23px;\" (click)=\"getUserRight(v,v1,v2,v3,app)\">{{btn?.form_field_title}}</button>\r\n </div>\r\n </div>\r\n <div style=\"padding: 0 10px;\">\r\n <div style=\"border:1px solid #e5e5e5;margin-top: 30px\" *ngIf=\"usrLst.length > 0\">\r\n <div class=\"row\" *ngIf=\"usrLst.length > 0\">\r\n <div class=\"panel panel-default\" style=\"margin-bottom: 25px;\">\r\n <div class=\"panel-heading\" style=\"padding: 0px;\">\r\n <h3 class=\"panel-title\" style=\"padding: 8px; font-size: 14px;\">Users</h3>\r\n <div class=\"col-md-2 chkAll\" style=\"margin: 0px;\">\r\n <div class=\"form-group\" style=\"padding: 10px;\">\r\n <div class=\"col-md-3\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" class=\"switch\" (change)=\"onChangeAll($event,v,v1,v2,v3,app)\" name=\"chkAll\" id=\"chkAll\" [checked]=\"(usrLst.length == usrRightLst.length ? 'checked' : '')\">\r\n <span></span>\r\n </label>\r\n </div>\r\n <label class=\"col-md-4 control-label text-left\" style=\"padding-top: 3px;\r\n padding-left: 40px;\">All </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <form class=\"form-horizontal\">\r\n <div class=\"col-md-2\" *ngFor=\"let user of usrLst ;let i=index\">\r\n <div class=\"form-group\">\r\n <div class=\"col-md-3\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" class=\"switch\" (change)=\"onChange($event,v,v1,user.user_idn,v2,v3,app)\" [checked]=\"(false !== usrRightLst.includes(user?.user_idn) ? 'checked' : '')\"\r\n name=\"chk\" id=\"chk{{user.user_idn}}\">\r\n <span></span>\r\n </label>\r\n </div>\r\n <label class=\"col-md-4 control-label text-left\" style=\"padding-top: 3px;padding-left: 40px;text-transform: capitalize;\">{{user?.username}}</label>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- END CONTENT FRAME BODY -->\r\n </div>\r\n</div>", styles: [".btn-default.btn-on-1.active,.btn-default.btn-off-1.active{background-color:#3b5998;color:#fff}.btn.btn-xs,.btn-group-xs>.btn{font-size:12px;padding:5px 15px}.tbactive{background:#3B5998;color:#fff}input[type=radio]{display:none}.content-frame-body{padding:10px!important;margin-left:0!important}.content-frame-left{background:transparent!important;width:250px!important}.headingc{padding:5px;background:whitesmoke;font-size:14px;font-weight:500}.chkAll{padding:0;margin-bottom:15px}\n"] }]
286
287
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.Router }, { type: i3.AdminServiceService }, { type: i4.ToastrService }, { type: i5.NgxSpinnerService }]; } });
287
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1yaWdodC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lemxpYi9zcmMvbGliL21lbnUtcmlnaHQvbWVudS1yaWdodC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lemxpYi9zcmMvbGliL21lbnUtcmlnaHQvbWVudS1yaWdodC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFHLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7O0FBTzdFLE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsWUFBb0IsSUFBZ0IsRUFDMUIsTUFBYyxFQUNkLEVBQXVCLEVBQ3ZCLE1BQXFCLEVBQ3JCLGNBQWlDO1FBSnZCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXFCO1FBQ3ZCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBSTNDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLFFBQUcsR0FBUSxFQUFFLENBQUM7UUFFZCxp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RSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDOztrSUF2UmQsa0JBQWtCO3NIQUFsQixrQkFBa0Isc0RDZC9CLHV2TUFrSE07MkZEcEdPLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBIdHRwSGVhZGVycyAgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE5neFNwaW5uZXJTZXJ2aWNlIH0gZnJvbSBcIm5neC1zcGlubmVyXCI7XHJcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuaW1wb3J0IHsgQ29va2llIH0gZnJvbSAnbmcyLWNvb2tpZXMvbmcyLWNvb2tpZXMnO1xyXG5pbXBvcnQgeyBBZG1pblNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vYWRtaW4tc2VydmljZS9hZG1pbi1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbWVudS1yaWdodCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUtcmlnaHQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL21lbnUtcmlnaHQuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNZW51UmlnaHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBhczogQWRtaW5TZXJ2aWNlU2VydmljZSxcclxuICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzcGlubmVyU2VydmljZTogTmd4U3Bpbm5lclNlcnZpY2UgXHJcbiAgKSB7IH1cclxuXHJcblxyXG4gIG5hdmlnYXRpb24gPSBbXTtcclxuICBtZGxsaXN0ID0gW107XHJcbiAgYnRuOiBhbnkgPSBbXTtcclxuICBwYWdlaW5mbztcclxuICBtZW51bHZsMUxpc3QgPSBbXTtcclxuICBtZW51bHZsMkxpc3QgPSBbXTtcclxuICBtZW51bHZsM0xpc3QgPSBbXTtcclxuICB1c3JMc3QgPSBbXTtcclxuICB1c2VySWRucyA9IFtdO1xyXG4gIHVzclJpZ2h0THN0XHJcbiAgaGVhZGVyO1xyXG4gIHNlbGVjdGVkU2xhdmVzOiB7IFtrZXk6IG51bWJlcl06IGJvb2xlYW47IH0gPSB7fTtcclxuICBjYmxlbiA9IDA7XHJcbiAgdiA9IFwiXCI7XHJcbiAgdjEgPSBcIlwiO1xyXG4gIHYyID0gXCJcIjtcclxuICB2MyA9IFwiXCJcclxuICBhcHAgPSBcIlwiO1xyXG4gIGFwcGxpY2F0aW9uTGlzdCA9IFtdO1xyXG5cclxuICBmaWxsQXBwKCkge1xyXG4gICAgdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCk7XHJcbiAgICBjb25zdCByZXFPYmogPSB7fTtcclxuICAgIHJlcU9ialtcImZvcm1ObWVcIl0gPSBcIm1lbnVSaWdodHNNYXN0ZXJcIjtcclxuICAgIHRoaXMuaGVhZGVyWydtZXRob2QnXSA9ICdsb2FkJztcclxuICAgY29uc3Qgb3B0aW9ucyA9ICh7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcikgfSk7XHJcbiAgICBjb25zb2xlLmxvZyhcInRoaXMuaGVhZGVyXCIsIHRoaXMuaGVhZGVyKTtcclxuICAgIHRoaXMuYXMuZ2V0TWVudVJpZ2h0cyhyZXFPYmosIG9wdGlvbnMpLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xyXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09ICdTVUNDRVNTJykge1xyXG4gICAgICAgIHRoaXMuYXBwbGljYXRpb25MaXN0ID0gcmVzcG9uc2UuYXBwbGljYXRpb25MaXN0O1xyXG4gICAgICAgIHRoaXMuYnRuID0gcmVzcG9uc2UuYnV0dG9uc1swXTtcclxuXHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IocmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH0pLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgdGhpcy50b2FzdHIuZXJyb3IoZXJyLm1lc3NhZ2UpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmaWxsTW9kdWxlKGFwcGxJZCkge1xyXG4gICAgdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCk7XHJcbiAgICBjb25zdCByZXFPYmogPSB7fTtcclxuICAgIHJlcU9ialtcImZvcm1ObWVcIl0gPSBcIm1lbnVSaWdodHNNYXN0ZXJcIjtcclxuICAgIHJlcU9ialtcImFwcGxjYXRpb25JZG5cIl0gPSBhcHBsSWQ7XHJcbiAgICB0aGlzLmhlYWRlclsnbWV0aG9kJ10gPSAnbG9hZE1vZHVsZSc7XHJcbiAgIGNvbnN0IG9wdGlvbnMgPSAoeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXIpIH0pO1xyXG4gICAgdGhpcy5hcy5nZXRNZW51UmlnaHRzKHJlcU9iaiwgb3B0aW9ucykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gJ1NVQ0NFU1MnKSB7XHJcbiAgICAgICAgdGhpcy51c3JMc3QgPSBbXTtcclxuICAgICAgICB0aGlzLm1kbGxpc3QgPSByZXNwb25zZS5tb2R1bGVMaXN0O1xyXG4gICAgICAgIHRoaXMucGFnZWluZm8gPSByZXNwb25zZS5wYWdlSW5mbztcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmJ0bik7XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5tZGxsaXN0KTtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IocmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH0pLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgdGhpcy50b2FzdHIuZXJyb3IoZXJyLm1lc3NhZ2UpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmaWxsTGV2ZWwxKG1vZHVsZV9pZG4pIHtcclxuICAgIHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdygpO1xyXG4gICAgY29uc29sZS5sb2cobW9kdWxlX2lkbilcclxuICAgIGNvbnN0IHJlcU9iaiA9IHt9O1xyXG4gICAgcmVxT2JqW1wiZm9ybU5tZVwiXSA9IFwibWVudVJpZ2h0c01hc3RlclwiO1xyXG4gICAgcmVxT2JqW1wibW9kdWxlSWRuXCJdID0gbW9kdWxlX2lkbjtcclxuICAgIHRoaXMuaGVhZGVyWydtZXRob2QnXSA9ICdsb2FkTWVudWxldmVsMSc7XHJcbiAgIGNvbnN0IG9wdGlvbnMgPSAoeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXIpIH0pO1xyXG4gICAgdGhpcy5hcy5nZXRNZW51UmlnaHRzKHJlcU9iaiwgb3B0aW9ucykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gJ1NVQ0NFU1MnKSB7XHJcbiAgICAgICAgdGhpcy51c3JMc3QgPSBbXTtcclxuICAgICAgICB0aGlzLm1lbnVsdmwyTGlzdCA9IFtdO1xyXG4gICAgICAgIHRoaXMubWVudWx2bDNMaXN0ID0gW107XHJcbiAgICAgICAgdGhpcy5tZW51bHZsMUxpc3QgPSByZXNwb25zZS5rdjtcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLm1lbnVsdmwxTGlzdCk7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcblxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIHRoaXMudG9hc3RyLmVycm9yKHJlc3BvbnNlLm1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9KS5jYXRjaCgoZXJyOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgIHRoaXMudG9hc3RyLmVycm9yKGVyci5tZXNzYWdlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZmlsbExldmVsMihtb2R1bGVfaWRuLCBtZW51SWRuKSB7XHJcbiAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLnNob3coKTtcclxuICAgIGNvbnNvbGUubG9nKG1vZHVsZV9pZG4pO1xyXG4gICAgY29uc29sZS5sb2cobWVudUlkbik7XHJcblxyXG4gICAgY29uc3QgcmVxT2JqID0ge307XHJcbiAgICByZXFPYmpbXCJmb3JtTm1lXCJdID0gXCJtZW51UmlnaHRzTWFzdGVyXCI7XHJcbiAgICByZXFPYmpbXCJtb2R1bGVJZG5cIl0gPSBtb2R1bGVfaWRuO1xyXG4gICAgcmVxT2JqW1wibWVudUlkblwiXSA9IG1lbnVJZG47XHJcbiAgICB0aGlzLmhlYWRlclsnbWV0aG9kJ10gPSAnbG9hZE1lbnVsZXZlbDInO1xyXG4gICBjb25zdCBvcHRpb25zID0gKHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVyKSB9KTtcclxuICAgIHRoaXMuYXMuZ2V0TWVudVJpZ2h0cyhyZXFPYmosIG9wdGlvbnMpLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xyXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09ICdTVUNDRVNTJykge1xyXG4gICAgICAgIHRoaXMubWVudWx2bDJMaXN0ID0gcmVzcG9uc2Uua3Y7XHJcbiAgICAgICAgdGhpcy51c3JMc3QgPSBbXTtcclxuICAgICAgICB0aGlzLm1lbnVsdmwzTGlzdCA9IFtdO1xyXG4gICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMubWVudWx2bDJMaXN0KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihyZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfSkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICB0aGlzLnRvYXN0ci5lcnJvcihlcnIubWVzc2FnZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG4gIHN1Ym1lbnVDaGFuZ2UobW9kdWxlX2lkbiwgc3VibWVudUlkbikge1xyXG4gICAgLy8gdGhpcy51c3JMc3QgPSBbXTtcclxuICAgIHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdygpO1xyXG4gICAgY29uc29sZS5sb2cobW9kdWxlX2lkbik7XHJcbiAgICBjb25zb2xlLmxvZyhzdWJtZW51SWRuKTtcclxuXHJcbiAgICBjb25zdCByZXFPYmogPSB7fTtcclxuICAgIHJlcU9ialtcImZvcm1ObWVcIl0gPSBcIm1lbnVSaWdodHNNYXN0ZXJcIjtcclxuICAgIHJlcU9ialtcIm1vZHVsZUlkblwiXSA9IG1vZHVsZV9pZG47XHJcbiAgICByZXFPYmpbXCJtZW51SWRuXCJdID0gc3VibWVudUlkbjtcclxuXHJcbiAgICB0aGlzLmhlYWRlclsnbWV0aG9kJ10gPSAnbG9hZE1lbnVsZXZlbDMnO1xyXG4gICBjb25zdCBvcHRpb25zID0gKHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVyKSB9KTtcclxuICAgIHRoaXMuYXMuZ2V0TWVudVJpZ2h0cyhyZXFPYmosIG9wdGlvbnMpLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xyXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09ICdTVUNDRVNTJykge1xyXG4gICAgICAgIHRoaXMubWVudWx2bDNMaXN0ID0gcmVzcG9uc2Uua3Y7XHJcbiAgICAgICAgdGhpcy51c3JMc3QgPSBbXTtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLm1lbnVsdmwzTGlzdCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IocmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH0pLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgdGhpcy50b2FzdHIuZXJyb3IoZXJyLm1lc3NhZ2UpO1xyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgZmlsbExldmVsM0NoYW5nZSgpIHtcclxuICAgIHRoaXMudXNyTHN0ID0gW107XHJcbiAgfVxyXG4gIGdldFVzZXJSaWdodChtb2R1bGVfaWRuLCBtZW51SWRuLCBzdWJtZW51LCBwYWdlSWQsIGFwcGxpZCkge1xyXG4gICAgdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCk7XHJcbiAgICBjb25zdCByZXFPYmogPSB7fTtcclxuICAgIGxldCBtZW51X2lkID0gKHN1Ym1lbnUgPT0gdW5kZWZpbmVkIHx8IHN1Ym1lbnUgPT0gXCJcIikgPyBtZW51SWRuIDogKHBhZ2VJZCA9PSB1bmRlZmluZWQgfHwgcGFnZUlkID09IFwiXCIpID8gc3VibWVudSA6IHBhZ2VJZDtcclxuICAgIHJlcU9ialtcImFwcGxjYXRpb25JZG5cIl0gPSBhcHBsaWQ7XHJcbiAgICByZXFPYmpbXCJtb2R1bGVJZG5cIl0gPSBtb2R1bGVfaWRuO1xyXG4gICAgcmVxT2JqW1wibWVudUlkblwiXSA9IG1lbnVfaWRcclxuICAgIHJlcU9ialtcImZvcm1ObWVcIl0gPSBcIm1lbnVSaWdodHNNYXN0ZXJcIjtcclxuICAgIHRoaXMuaGVhZGVyWydtZXRob2QnXSA9ICdsb2FkdXNlclJpZ2h0cyc7XHJcbiAgICBjb25zb2xlLmxvZyhyZXFPYmopO1xyXG4gICAgY29uc29sZS5sb2coXCJ0aGlzLmhlYWRlclwiLCB0aGlzLmhlYWRlcik7XHJcbiAgIGNvbnN0IG9wdGlvbnMgPSAoeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXIpIH0pO1xyXG4gICAgdGhpcy5hcy5nZXRNZW51UmlnaHRzKHJlcU9iaiwgb3B0aW9ucykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gJ1NVQ0NFU1MnKSB7XHJcbiAgICAgICAgdGhpcy51c3JMc3QgPSByZXNwb25zZS51c2VyTGlzdDtcclxuICAgICAgICB0aGlzLnVzclJpZ2h0THN0ID0gcmVzcG9uc2UudXNlclJpZ2h0TGlzdDtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnVzckxzdCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IocmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH0pLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgdGhpcy50b2FzdHIuZXJyb3IoZXJyLm1lc3NhZ2UpO1xyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuICAvL2Usdix2MSx1c2VyLnVzZXJfaWRuLHYyLGFwcCAgLy8gcGFyYW1ldGVyIHNlcXVlbmNlIGluIGh0bWxcclxuICBvbkNoYW5nZShlLCBtb2R1bGVpZG4sIG1lbnVJZG4sIHVzZXJfaWRuLCBzdWJtZW51aWQscGFnZUlkLCBhcHBsSWQpIHtcclxuICAgIHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdygpO1xyXG4gICAgY29uc3QgcmVxT2JqID0ge307XHJcbiAgICBsZXQgbWVudV9pZG4gPSAoc3VibWVudWlkID09IHVuZGVmaW5lZCB8fCBzdWJtZW51aWQgPT0gXCJcIikgPyBtZW51SWRuIDogKHBhZ2VJZCA9PSB1bmRlZmluZWQgfHwgcGFnZUlkID09IFwiXCIpID8gc3VibWVudWlkIDogcGFnZUlkO1xyXG4gICAgcmVxT2JqW1wibWVudUlkblwiXSA9IG1lbnVfaWRuXHJcbiAgICByZXFPYmpbXCJ1c2VySWRuXCJdID0gW3VzZXJfaWRuXTtcclxuICAgIHJlcU9ialtcImhkcklkblwiXSA9IG1lbnVJZG47Ly8gKHN1Ym1lbnVpZCA9PSB1bmRlZmluZWQgfHwgc3VibWVudWlkID09IFwiXCIpID8gbWVudUlkbiA6ICcnOy8vbWVudWlkbiBsdmwxXHJcbiAgICByZXFPYmpbXCJzdHRcIl0gPSBlLnRhcmdldC5jaGVja2VkID09IHRydWUgPyBcIjFcIiA6IFwiMFwiO1xyXG4gICAgcmVxT2JqW1wiZm9ybU5tZVwiXSA9IFwic2F2ZVVzZXJSaWdodE1hc3RlclwiO1xyXG4gICAgdGhpcy5oZWFkZXJbJ21ldGhvZCddID0gJ3NhdmVVc2VyUmlnaHRzJztcclxuICAgIGNvbnNvbGUubG9nKHJlcU9iaik7XHJcblxyXG4gICBjb25zdCBvcHRpb25zID0gKHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVyKSB9KTtcclxuICAgIHRoaXMuYXMuc2F2ZVVzZXJNZW51UmlnaHRzKHJlcU9iaiwgb3B0aW9ucykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gJ1NVQ0NFU1MnKSB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgdGhpcy5nZXRVc2VyUmlnaHQobW9kdWxlaWRuLCBtZW51SWRuLCBzdWJtZW51aWQscGFnZUlkLCBhcHBsSWQpO1xyXG4gICAgICAgIHRoaXMudG9hc3RyLnN1Y2Nlc3MocmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IocmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH0pLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgdGhpcy50b2FzdHIuZXJyb3IoZXJyLm1lc3NhZ2UpO1xyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2VBbGwoZSwgbW9kdWxlaWRuLCBtZW51SWRuLCBzdWJtZW51aWQscGFnZUlkLCBhcHBsSWQpIHtcclxuICAgIHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdygpO1xyXG4gICAgdGhpcy51c3JMc3QuZm9yRWFjaChlYWNoT2JqID0+IHtcclxuICAgICAgdGhpcy51c2VySWRucy5wdXNoKGVhY2hPYmoudXNlcl9pZG4pO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCByZXFPYmogPSB7fTtcclxuICAgIGxldCBtZW51X2lkID0gKHN1Ym1lbnVpZCA9PSB1bmRlZmluZWQgfHwgc3VibWVudWlkID09IFwiXCIpID8gbWVudUlkbiA6IChwYWdlSWQgID09IHVuZGVmaW5lZCB8fCBwYWdlSWQgPT0gXCJcIikgPyBzdWJtZW51aWQgOiBwYWdlSWQ7XHJcbiAgICByZXFPYmpbXCJtZW51SWRuXCJdID0gbWVudV9pZFxyXG4gICAgcmVxT2JqW1widXNlcklkblwiXSA9IHRoaXMudXNlcklkbnM7XHJcbiAgICByZXFPYmpbXCJoZHJJZG5cIl0gPSBtZW51SWRuOyAvLyhzdWJtZW51aWQgPT0gdW5kZWZpbmVkIHx8IHN1Ym1lbnVpZCA9PSBcIlwiKSA/IG1lbnVJZG4gOiAnJztcclxuICAgIHJlcU9ialtcInN0dFwiXSA9IGUudGFyZ2V0LmNoZWNrZWQgPT0gdHJ1ZSA/IFwiMVwiIDogXCIwXCI7XHJcbiAgICByZXFPYmpbXCJmb3JtTm1lXCJdID0gXCJzYXZlVXNlclJpZ2h0TWFzdGVyXCI7XHJcbiAgICB0aGlzLmhlYWRlclsnbWV0aG9kJ10gPSAnc2F2ZVVzZXJSaWdodHMnO1xyXG4gICBjb25zdCBvcHRpb25zID0gKHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVyKSB9KTtcclxuICAgIHRoaXMuYXMuc2F2ZVVzZXJNZW51UmlnaHRzKHJlcU9iaiwgb3B0aW9ucykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnVzZXJJZG5zID0gW107XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gJ1NVQ0NFU1MnKSB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgdGhpcy5nZXRVc2VyUmlnaHQobW9kdWxlaWRuLCBtZW51SWRuLCBzdWJtZW51aWQscGFnZUlkLCBhcHBsSWQpO1xyXG4gICAgICAgIHRoaXMudG9hc3RyLnN1Y2Nlc3MocmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IocmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH0pLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgdGhpcy50b2FzdHIuZXJyb3IoZXJyLm1lc3NhZ2UpO1xyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuICBjVXJsO1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgbGV0IG1kbGsgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtZGxLZXknKSk7XHJcbiAgICBkZWJ1Z2dlclxyXG4gICAgdGhpcy5jVXJsID0gdGhpcy5yb3V0ZXIudXJsO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5jVXJsLnNwbGl0KCcvJylbMV0pO1xyXG4gICAgdGhpcy5oZWFkZXIgPSB7XHJcbiAgICAgICdjbGllbnRrZXknOiBDb29raWUuZ2V0KCdfY2snKSxcclxuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgJ21vZHVsZWtleSc6IG1kbGtbdGhpcy5jVXJsLnNwbGl0KCcvJylbMV1dLFxyXG4gICAgICAnbG9naW5pZCc6IENvb2tpZS5nZXQoJ19sb2dpZCcpLFxyXG4gICAgICAnc291cmNlJzogJ3FzJ1xyXG4gICAgfTtcclxuICAgIC8vdGhpcy5maWxsTW9kdWxlKCk7XHJcbiAgICB0aGlzLmZpbGxBcHAoKTtcclxuICB9XHJcblxyXG4gIG5hdmlnYXRpb25GdW4obmF2LCBpKSB7IH1cclxuXHJcbn1cclxuXHJcbiIsIjxkaXYgY2xhc3M9XCJtdFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJwYW5lbCBwYW5lbC1kZWZhdWx0XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicGFuZWwtaGVhZGluZ1wiPlxyXG4gICAgICA8aDMgY2xhc3M9XCJwYW5lbC10aXRsZVwiPnt7cGFnZWluZm8/LnRpdGxlfX08L2gzPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImNvbnRlbnQtZnJhbWVcIiBzdHlsZT1cImJhY2tncm91bmQ6ICNmZmY7aGVpZ2h0OjEwMHZoO1wiPlxyXG4gICAgPCEtLSBTVEFSVCBDT05URU5UIEZSQU1FIExFRlQgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1mcmFtZS1sZWZ0XCIgKm5nSWY9XCJmYWxzZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGFuZWwgcGFuZWwtZGVmYXVsdFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbC1ib2R5XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1ncm91cCBib3JkZXItYm90dG9tXCI+XHJcbiAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbVwiIFtuZ0NsYXNzXT1cInsnYWN0aXZlJyA6aSA9PSAnY0xpbmsnfVwiICpuZ0Zvcj1cImxldCBuYXYgb2YgbmF2aWdhdGlvbjtsZXQgaT1pbmRleFwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRpb25GdW4obmF2LGkpO1wiPnt7bmF2Py5mb3JtX2ZpZWxkX3RpdGxlfX08L2E+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gRU5EIENPTlRFTlQgRlJBTUUgTEVGVCAtLT5cclxuICAgIDwhLS0gU1RBUlQgQ09OVEVOVCBGUkFNRSBCT0RZIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtZnJhbWUtYm9keVwiIFtuZ1N0eWxlXT1cInsnbWFyZ2luLWxlZnQnOiBmYWxzZSA/ICcwJyA6ICcyNTBweCd9XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbCBwYW5lbC1kZWZhdWx0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBhbmVsLWJvZHlcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMlwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb250cm9sLWxhYmVsXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDJweDtcIj5BcHBsaWNhdGlvbjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJhcHBcIiBuYW1lPVwiYXBwXCIgKGNoYW5nZSk9XCJmaWxsTW9kdWxlKGFwcClcIj5cclxuICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgbG92IG9mIGFwcGxpY2F0aW9uTGlzdFwiIHZhbHVlPVwie3tsb3Yua319XCI+e3tsb3Yudn19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTJcIiAqbmdJZj1cIm1kbGxpc3Q/Lmxlbmd0aCA+IDEgXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbnRyb2wtbGFiZWxcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogMnB4O1wiPk1vZHVsZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJ2XCIgbmFtZT1cInZcIiAoY2hhbmdlKT1cImZpbGxMZXZlbDEodilcIj5cclxuICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgbG92IG9mIG1kbGxpc3RcIiB2YWx1ZT1cInt7bG92Lmt9fVwiPnt7bG92LnZ9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTJcIiAqbmdJZj1cIm1lbnVsdmwxTGlzdD8ubGVuZ3RoID4gMSBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29udHJvbC1sYWJlbFwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAycHg7XCI+TWFpbiBNZW51PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cInYxXCIgbmFtZT1cInYxXCIgKGNoYW5nZSk9XCJmaWxsTGV2ZWwyKHYsdjEpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGxvdiBvZiBtZW51bHZsMUxpc3RcIiB2YWx1ZT1cInt7bG92Lmt9fVwiPnt7bG92LnZ9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTJcIiAqbmdJZj1cIm1lbnVsdmwyTGlzdD8ubGVuZ3RoID4gMSBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29udHJvbC1sYWJlbFwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAycHg7XCI+U3ViIE1lbnU8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwidjJcIiBuYW1lPVwidjJcIiAoY2hhbmdlKT1cInN1Ym1lbnVDaGFuZ2UodiwgdjIpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGxvdiBvZiBtZW51bHZsMkxpc3RcIiB2YWx1ZT1cInt7bG92Lmt9fVwiPnt7bG92LnZ9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTJcIiAqbmdJZj1cIm1lbnVsdmwzTGlzdD8ubGVuZ3RoID4gMSBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29udHJvbC1sYWJlbFwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAycHg7XCI+UGFnZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJ2M1wiIG5hbWU9XCJ2M1wiIChjaGFuZ2UpPVwiZmlsbExldmVsM0NoYW5nZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGxvdiBvZiBtZW51bHZsM0xpc3RcIiB2YWx1ZT1cInt7bG92Lmt9fVwiPnt7bG92LnZ9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTJcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBpZD1cImFkZEJ0blwiIGNsYXNzPVwiYnRuIGJ0bi1pbmZvIFwiIHN0eWxlPVwibWFyZ2luLXRvcDogMjNweDtcIiAoY2xpY2spPVwiZ2V0VXNlclJpZ2h0KHYsdjEsdjIsdjMsYXBwKVwiPnt7YnRuPy5mb3JtX2ZpZWxkX3RpdGxlfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgc3R5bGU9XCJwYWRkaW5nOiAwIDEwcHg7XCI+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJib3JkZXI6MXB4IHNvbGlkICNlNWU1ZTU7bWFyZ2luLXRvcDogMzBweFwiICpuZ0lmPVwidXNyTHN0Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJ1c3JMc3QubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhbmVsIHBhbmVsLWRlZmF1bHRcIiBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDI1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbC1oZWFkaW5nXCIgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwicGFuZWwtdGl0bGVcIiBzdHlsZT1cInBhZGRpbmc6IDhweDsgZm9udC1zaXplOiAxNHB4O1wiPlVzZXJzPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgY2hrQWxsXCIgc3R5bGU9XCJtYXJnaW46IDBweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgc3R5bGU9XCJwYWRkaW5nOiAxMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJzd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBjbGFzcz1cInN3aXRjaFwiIChjaGFuZ2UpPVwib25DaGFuZ2VBbGwoJGV2ZW50LHYsdjEsdjIsdjMsYXBwKVwiIG5hbWU9XCJjaGtBbGxcIiBpZD1cImNoa0FsbFwiIFtjaGVja2VkXT1cIih1c3JMc3QubGVuZ3RoID09IHVzclJpZ2h0THN0Lmxlbmd0aCA/ICdjaGVja2VkJyA6ICcnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtbWQtNCBjb250cm9sLWxhYmVsIHRleHQtbGVmdFwiIHN0eWxlPVwicGFkZGluZy10b3A6IDNweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNDBweDtcIj5BbGwgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwiZm9ybS1ob3Jpem9udGFsXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMlwiICpuZ0Zvcj1cImxldCB1c2VyIG9mIHVzckxzdCA7bGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBjbGFzcz1cInN3aXRjaFwiIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50LHYsdjEsdXNlci51c2VyX2lkbix2Mix2MyxhcHApXCIgW2NoZWNrZWRdPVwiKGZhbHNlICE9PSB1c3JSaWdodExzdC5pbmNsdWRlcyh1c2VyPy51c2VyX2lkbikgPyAnY2hlY2tlZCcgOiAnJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImNoa1wiIGlkPVwiY2hre3t1c2VyLnVzZXJfaWRufX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1tZC00IGNvbnRyb2wtbGFiZWwgdGV4dC1sZWZ0XCIgc3R5bGU9XCJwYWRkaW5nLXRvcDogM3B4O3BhZGRpbmctbGVmdDogNDBweDt0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcIj57e3VzZXI/LnVzZXJuYW1lfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gRU5EIENPTlRFTlQgRlJBTUUgQk9EWSAtLT5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
288
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1yaWdodC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lemxpYi9zcmMvbGliL21lbnUtcmlnaHQvbWVudS1yaWdodC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lemxpYi9zcmMvbGliL21lbnUtcmlnaHQvbWVudS1yaWdodC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFHLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7O0FBTzdFLE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsWUFBb0IsSUFBZ0IsRUFDMUIsTUFBYyxFQUNkLEVBQXVCLEVBQ3ZCLE1BQXFCLEVBQ3JCLGNBQWlDO1FBSnZCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXFCO1FBQ3ZCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBSTNDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLFFBQUcsR0FBUSxFQUFFLENBQUM7UUFFZCxpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUdkLG1CQUFjLEdBQWdDLEVBQUUsQ0FBQztRQUNqRCxVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsTUFBQyxHQUFHLEVBQUUsQ0FBQztRQUNQLE9BQUUsR0FBRyxFQUFFLENBQUM7UUFDUixPQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ1IsT0FBRSxHQUFHLEVBQUUsQ0FBQTtRQUNQLFFBQUcsR0FBRyxFQUFFLENBQUM7UUFDVCxvQkFBZSxHQUFHLEVBQUUsQ0FBQztJQXJCakIsQ0FBQztJQXVCTCxPQUFPO1FBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLGtCQUFrQixDQUFDO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ2hDLE1BQU0sT0FBTyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzRCxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQzVELE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdEIsSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLFNBQVMsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO2dCQUNoRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUM1QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDckM7UUFDSCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsTUFBTTtRQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxrQkFBa0IsQ0FBQztRQUN2QyxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsWUFBWSxDQUFDO1FBQ3RDLE1BQU0sT0FBTyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDNUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0QixJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUksU0FBUyxFQUFFO2dCQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7Z0JBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUU1QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDckM7UUFDSCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsVUFBVTtRQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDdkIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxrQkFBa0IsQ0FBQztRQUN2QyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsVUFBVSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsZ0JBQWdCLENBQUM7UUFDMUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUM1RCxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RCLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxTQUFTLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO2dCQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7YUFFNUI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3JDO1FBQ0gsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLFVBQVUsRUFBRSxPQUFPO1FBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXJCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNsQixNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsa0JBQWtCLENBQUM7UUFDdkMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLFVBQVUsQ0FBQztRQUNqQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsZ0JBQWdCLENBQUM7UUFDMUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUM1RCxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RCLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxTQUFTLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMzQixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNoQztpQkFBTTtnQkFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDckM7UUFDSCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7SUFDRCxhQUFhLENBQUMsVUFBVSxFQUFFLFVBQVU7UUFDbEMsb0JBQW9CO1FBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXhCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNsQixNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsa0JBQWtCLENBQUM7UUFDdkMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLFVBQVUsQ0FBQztRQUNqQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsVUFBVSxDQUFDO1FBRS9CLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsZ0JBQWdCLENBQUM7UUFDMUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUM1RCxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RCLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxTQUFTLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2hDO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNyQztRQUNILENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBRUwsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFDRCxZQUFZLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU07UUFDdkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxPQUFPLEdBQUcsQ0FBQyxPQUFPLElBQUksU0FBUyxJQUFJLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxTQUFTLElBQUksTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUMzSCxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ2pDLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxVQUFVLENBQUM7UUFDakMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLE9BQU8sQ0FBQTtRQUMzQixNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsa0JBQWtCLENBQUM7UUFDdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QyxNQUFNLE9BQU8sR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQzVELE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdEIsSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLFNBQVMsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzFCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNyQztRQUNILENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBRUwsQ0FBQztJQUNELDREQUE0RDtJQUM1RCxRQUFRLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBQyxNQUFNLEVBQUUsTUFBTTtRQUNoRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLFFBQVEsR0FBRyxDQUFDLFNBQVMsSUFBSSxTQUFTLElBQUksU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLFNBQVMsSUFBSSxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ2xJLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxRQUFRLENBQUE7UUFDNUIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0IsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFBLDRFQUE0RTtRQUN2RyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUNyRCxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcscUJBQXFCLENBQUM7UUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXJCLE1BQU0sT0FBTyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNqRSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RCLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxTQUFTLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUNoRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDdkM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3JDO1FBQ0gsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFFTCxDQUFDO0lBRUQsV0FBVyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBQyxNQUFNLEVBQUUsTUFBTTtRQUN6RCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLE9BQU8sR0FBRyxDQUFDLFNBQVMsSUFBSSxTQUFTLElBQUksU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFLLFNBQVMsSUFBSSxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ2xJLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxPQUFPLENBQUE7UUFDM0IsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDbEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLDZEQUE2RDtRQUN6RixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUNyRCxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcscUJBQXFCLENBQUM7UUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztRQUMxQyxNQUFNLE9BQU8sR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDakUsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDbkIsSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLFNBQVMsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ2hFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN2QztpQkFBTTtnQkFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDckM7UUFDSCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDdEQsUUFBUSxDQUFBO1FBQ1IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLFdBQVcsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUM5QixjQUFjLEVBQUUsa0JBQWtCO1lBQ2xDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1lBQy9CLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQztRQUNGLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7O2tJQXZSZCxrQkFBa0I7c0hBQWxCLGtCQUFrQixzRENkL0IsdXZNQWtITTsyRkRwR08sa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEh0dHBIZWFkZXJzICB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTmd4U3Bpbm5lclNlcnZpY2UgfSBmcm9tIFwibmd4LXNwaW5uZXJcIjtcclxuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5pbXBvcnQgeyBDb29raWUgfSBmcm9tICduZzItY29va2llcy9uZzItY29va2llcyc7XHJcbmltcG9ydCB7IEFkbWluU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi9hZG1pbi1zZXJ2aWNlL2FkbWluLXNlcnZpY2Uuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1tZW51LXJpZ2h0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbWVudS1yaWdodC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbWVudS1yaWdodC5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE1lbnVSaWdodENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGFzOiBBZG1pblNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b2FzdHI6IFRvYXN0clNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNwaW5uZXJTZXJ2aWNlOiBOZ3hTcGlubmVyU2VydmljZSBcclxuICApIHsgfVxyXG5cclxuXHJcbiAgbmF2aWdhdGlvbiA9IFtdO1xyXG4gIG1kbGxpc3QgPSBbXTtcclxuICBidG46IGFueSA9IFtdO1xyXG4gIHBhZ2VpbmZvO1xyXG4gIG1lbnVsdmwxTGlzdCA9IFtdO1xyXG4gIG1lbnVsdmwyTGlzdCA9IFtdO1xyXG4gIG1lbnVsdmwzTGlzdCA9IFtdO1xyXG4gIHVzckxzdCA9IFtdO1xyXG4gIHVzZXJJZG5zID0gW107XHJcbiAgdXNyUmlnaHRMc3RcclxuICBoZWFkZXI7XHJcbiAgc2VsZWN0ZWRTbGF2ZXM6IHsgW2tleTogbnVtYmVyXTogYm9vbGVhbjsgfSA9IHt9O1xyXG4gIGNibGVuID0gMDtcclxuICB2ID0gXCJcIjtcclxuICB2MSA9IFwiXCI7XHJcbiAgdjIgPSBcIlwiO1xyXG4gIHYzID0gXCJcIlxyXG4gIGFwcCA9IFwiXCI7XHJcbiAgYXBwbGljYXRpb25MaXN0ID0gW107XHJcblxyXG4gIGZpbGxBcHAoKSB7XHJcbiAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLnNob3coKTtcclxuICAgIGNvbnN0IHJlcU9iaiA9IHt9O1xyXG4gICAgcmVxT2JqW1wiZm9ybU5tZVwiXSA9IFwibWVudVJpZ2h0c01hc3RlclwiO1xyXG4gICAgdGhpcy5oZWFkZXJbJ21ldGhvZCddID0gJ2xvYWQnO1xyXG4gICBjb25zdCBvcHRpb25zID0gKHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVyKSB9KTtcclxuICAgIGNvbnNvbGUubG9nKFwidGhpcy5oZWFkZXJcIiwgdGhpcy5oZWFkZXIpO1xyXG4gICAgdGhpcy5hcy5nZXRNZW51UmlnaHRzKHJlcU9iaiwgb3B0aW9ucykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gJ1NVQ0NFU1MnKSB7XHJcbiAgICAgICAgdGhpcy5hcHBsaWNhdGlvbkxpc3QgPSByZXNwb25zZS5hcHBsaWNhdGlvbkxpc3Q7XHJcbiAgICAgICAgdGhpcy5wYWdlaW5mbyA9IHJlc3BvbnNlLnBhZ2VJbmZvO1xyXG4gICAgICAgIHRoaXMuYnRuID0gcmVzcG9uc2UuYnV0dG9uc1swXTtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihyZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfSkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICB0aGlzLnRvYXN0ci5lcnJvcihlcnIubWVzc2FnZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZpbGxNb2R1bGUoYXBwbElkKSB7XHJcbiAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLnNob3coKTtcclxuICAgIGNvbnN0IHJlcU9iaiA9IHt9O1xyXG4gICAgcmVxT2JqW1wiZm9ybU5tZVwiXSA9IFwibWVudVJpZ2h0c01hc3RlclwiO1xyXG4gICAgcmVxT2JqW1wiYXBwbGNhdGlvbklkblwiXSA9IGFwcGxJZDtcclxuICAgIHRoaXMuaGVhZGVyWydtZXRob2QnXSA9ICdsb2FkTW9kdWxlJztcclxuICAgY29uc3Qgb3B0aW9ucyA9ICh7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcikgfSk7XHJcbiAgICB0aGlzLmFzLmdldE1lbnVSaWdodHMocmVxT2JqLCBvcHRpb25zKS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICB0aGlzLnVzckxzdCA9IFtdO1xyXG4gICAgICAgIHRoaXMubWRsbGlzdCA9IHJlc3BvbnNlLm1vZHVsZUxpc3Q7XHJcbiAgICAgICAgdGhpcy5wYWdlaW5mbyA9IHJlc3BvbnNlLnBhZ2VJbmZvO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMuYnRuKTtcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLm1kbGxpc3QpO1xyXG4gICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG5cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihyZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfSkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICB0aGlzLnRvYXN0ci5lcnJvcihlcnIubWVzc2FnZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZpbGxMZXZlbDEobW9kdWxlX2lkbikge1xyXG4gICAgdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCk7XHJcbiAgICBjb25zb2xlLmxvZyhtb2R1bGVfaWRuKVxyXG4gICAgY29uc3QgcmVxT2JqID0ge307XHJcbiAgICByZXFPYmpbXCJmb3JtTm1lXCJdID0gXCJtZW51UmlnaHRzTWFzdGVyXCI7XHJcbiAgICByZXFPYmpbXCJtb2R1bGVJZG5cIl0gPSBtb2R1bGVfaWRuO1xyXG4gICAgdGhpcy5oZWFkZXJbJ21ldGhvZCddID0gJ2xvYWRNZW51bGV2ZWwxJztcclxuICAgY29uc3Qgb3B0aW9ucyA9ICh7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcikgfSk7XHJcbiAgICB0aGlzLmFzLmdldE1lbnVSaWdodHMocmVxT2JqLCBvcHRpb25zKS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICB0aGlzLnVzckxzdCA9IFtdO1xyXG4gICAgICAgIHRoaXMubWVudWx2bDJMaXN0ID0gW107XHJcbiAgICAgICAgdGhpcy5tZW51bHZsM0xpc3QgPSBbXTtcclxuICAgICAgICB0aGlzLm1lbnVsdmwxTGlzdCA9IHJlc3BvbnNlLmt2O1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMubWVudWx2bDFMaXN0KTtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IocmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH0pLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgdGhpcy50b2FzdHIuZXJyb3IoZXJyLm1lc3NhZ2UpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmaWxsTGV2ZWwyKG1vZHVsZV9pZG4sIG1lbnVJZG4pIHtcclxuICAgIHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdygpO1xyXG4gICAgY29uc29sZS5sb2cobW9kdWxlX2lkbik7XHJcbiAgICBjb25zb2xlLmxvZyhtZW51SWRuKTtcclxuXHJcbiAgICBjb25zdCByZXFPYmogPSB7fTtcclxuICAgIHJlcU9ialtcImZvcm1ObWVcIl0gPSBcIm1lbnVSaWdodHNNYXN0ZXJcIjtcclxuICAgIHJlcU9ialtcIm1vZHVsZUlkblwiXSA9IG1vZHVsZV9pZG47XHJcbiAgICByZXFPYmpbXCJtZW51SWRuXCJdID0gbWVudUlkbjtcclxuICAgIHRoaXMuaGVhZGVyWydtZXRob2QnXSA9ICdsb2FkTWVudWxldmVsMic7XHJcbiAgIGNvbnN0IG9wdGlvbnMgPSAoeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXIpIH0pO1xyXG4gICAgdGhpcy5hcy5nZXRNZW51UmlnaHRzKHJlcU9iaiwgb3B0aW9ucykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gJ1NVQ0NFU1MnKSB7XHJcbiAgICAgICAgdGhpcy5tZW51bHZsMkxpc3QgPSByZXNwb25zZS5rdjtcclxuICAgICAgICB0aGlzLnVzckxzdCA9IFtdO1xyXG4gICAgICAgIHRoaXMubWVudWx2bDNMaXN0ID0gW107XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5tZW51bHZsMkxpc3QpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIHRoaXMudG9hc3RyLmVycm9yKHJlc3BvbnNlLm1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9KS5jYXRjaCgoZXJyOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgIHRoaXMudG9hc3RyLmVycm9yKGVyci5tZXNzYWdlKTtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcbiAgc3VibWVudUNoYW5nZShtb2R1bGVfaWRuLCBzdWJtZW51SWRuKSB7XHJcbiAgICAvLyB0aGlzLnVzckxzdCA9IFtdO1xyXG4gICAgdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCk7XHJcbiAgICBjb25zb2xlLmxvZyhtb2R1bGVfaWRuKTtcclxuICAgIGNvbnNvbGUubG9nKHN1Ym1lbnVJZG4pO1xyXG5cclxuICAgIGNvbnN0IHJlcU9iaiA9IHt9O1xyXG4gICAgcmVxT2JqW1wiZm9ybU5tZVwiXSA9IFwibWVudVJpZ2h0c01hc3RlclwiO1xyXG4gICAgcmVxT2JqW1wibW9kdWxlSWRuXCJdID0gbW9kdWxlX2lkbjtcclxuICAgIHJlcU9ialtcIm1lbnVJZG5cIl0gPSBzdWJtZW51SWRuO1xyXG5cclxuICAgIHRoaXMuaGVhZGVyWydtZXRob2QnXSA9ICdsb2FkTWVudWxldmVsMyc7XHJcbiAgIGNvbnN0IG9wdGlvbnMgPSAoeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXIpIH0pO1xyXG4gICAgdGhpcy5hcy5nZXRNZW51UmlnaHRzKHJlcU9iaiwgb3B0aW9ucykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gJ1NVQ0NFU1MnKSB7XHJcbiAgICAgICAgdGhpcy5tZW51bHZsM0xpc3QgPSByZXNwb25zZS5rdjtcclxuICAgICAgICB0aGlzLnVzckxzdCA9IFtdO1xyXG4gICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMubWVudWx2bDNMaXN0KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihyZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfSkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICB0aGlzLnRvYXN0ci5lcnJvcihlcnIubWVzc2FnZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBmaWxsTGV2ZWwzQ2hhbmdlKCkge1xyXG4gICAgdGhpcy51c3JMc3QgPSBbXTtcclxuICB9XHJcbiAgZ2V0VXNlclJpZ2h0KG1vZHVsZV9pZG4sIG1lbnVJZG4sIHN1Ym1lbnUsIHBhZ2VJZCwgYXBwbGlkKSB7XHJcbiAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLnNob3coKTtcclxuICAgIGNvbnN0IHJlcU9iaiA9IHt9O1xyXG4gICAgbGV0IG1lbnVfaWQgPSAoc3VibWVudSA9PSB1bmRlZmluZWQgfHwgc3VibWVudSA9PSBcIlwiKSA/IG1lbnVJZG4gOiAocGFnZUlkID09IHVuZGVmaW5lZCB8fCBwYWdlSWQgPT0gXCJcIikgPyBzdWJtZW51IDogcGFnZUlkO1xyXG4gICAgcmVxT2JqW1wiYXBwbGNhdGlvbklkblwiXSA9IGFwcGxpZDtcclxuICAgIHJlcU9ialtcIm1vZHVsZUlkblwiXSA9IG1vZHVsZV9pZG47XHJcbiAgICByZXFPYmpbXCJtZW51SWRuXCJdID0gbWVudV9pZFxyXG4gICAgcmVxT2JqW1wiZm9ybU5tZVwiXSA9IFwibWVudVJpZ2h0c01hc3RlclwiO1xyXG4gICAgdGhpcy5oZWFkZXJbJ21ldGhvZCddID0gJ2xvYWR1c2VyUmlnaHRzJztcclxuICAgIGNvbnNvbGUubG9nKHJlcU9iaik7XHJcbiAgICBjb25zb2xlLmxvZyhcInRoaXMuaGVhZGVyXCIsIHRoaXMuaGVhZGVyKTtcclxuICAgY29uc3Qgb3B0aW9ucyA9ICh7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcikgfSk7XHJcbiAgICB0aGlzLmFzLmdldE1lbnVSaWdodHMocmVxT2JqLCBvcHRpb25zKS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICB0aGlzLnVzckxzdCA9IHJlc3BvbnNlLnVzZXJMaXN0O1xyXG4gICAgICAgIHRoaXMudXNyUmlnaHRMc3QgPSByZXNwb25zZS51c2VyUmlnaHRMaXN0O1xyXG4gICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMudXNyTHN0KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihyZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfSkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICB0aGlzLnRvYXN0ci5lcnJvcihlcnIubWVzc2FnZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG4gIC8vZSx2LHYxLHVzZXIudXNlcl9pZG4sdjIsYXBwICAvLyBwYXJhbWV0ZXIgc2VxdWVuY2UgaW4gaHRtbFxyXG4gIG9uQ2hhbmdlKGUsIG1vZHVsZWlkbiwgbWVudUlkbiwgdXNlcl9pZG4sIHN1Ym1lbnVpZCxwYWdlSWQsIGFwcGxJZCkge1xyXG4gICAgdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCk7XHJcbiAgICBjb25zdCByZXFPYmogPSB7fTtcclxuICAgIGxldCBtZW51X2lkbiA9IChzdWJtZW51aWQgPT0gdW5kZWZpbmVkIHx8IHN1Ym1lbnVpZCA9PSBcIlwiKSA/IG1lbnVJZG4gOiAocGFnZUlkID09IHVuZGVmaW5lZCB8fCBwYWdlSWQgPT0gXCJcIikgPyBzdWJtZW51aWQgOiBwYWdlSWQ7XHJcbiAgICByZXFPYmpbXCJtZW51SWRuXCJdID0gbWVudV9pZG5cclxuICAgIHJlcU9ialtcInVzZXJJZG5cIl0gPSBbdXNlcl9pZG5dO1xyXG4gICAgcmVxT2JqW1wiaGRySWRuXCJdID0gbWVudUlkbjsvLyAoc3VibWVudWlkID09IHVuZGVmaW5lZCB8fCBzdWJtZW51aWQgPT0gXCJcIikgPyBtZW51SWRuIDogJyc7Ly9tZW51aWRuIGx2bDFcclxuICAgIHJlcU9ialtcInN0dFwiXSA9IGUudGFyZ2V0LmNoZWNrZWQgPT0gdHJ1ZSA/IFwiMVwiIDogXCIwXCI7XHJcbiAgICByZXFPYmpbXCJmb3JtTm1lXCJdID0gXCJzYXZlVXNlclJpZ2h0TWFzdGVyXCI7XHJcbiAgICB0aGlzLmhlYWRlclsnbWV0aG9kJ10gPSAnc2F2ZVVzZXJSaWdodHMnO1xyXG4gICAgY29uc29sZS5sb2cocmVxT2JqKTtcclxuXHJcbiAgIGNvbnN0IG9wdGlvbnMgPSAoeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXIpIH0pO1xyXG4gICAgdGhpcy5hcy5zYXZlVXNlck1lbnVSaWdodHMocmVxT2JqLCBvcHRpb25zKS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICB0aGlzLmdldFVzZXJSaWdodChtb2R1bGVpZG4sIG1lbnVJZG4sIHN1Ym1lbnVpZCxwYWdlSWQsIGFwcGxJZCk7XHJcbiAgICAgICAgdGhpcy50b2FzdHIuc3VjY2VzcyhyZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihyZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfSkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICB0aGlzLnRvYXN0ci5lcnJvcihlcnIubWVzc2FnZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZUFsbChlLCBtb2R1bGVpZG4sIG1lbnVJZG4sIHN1Ym1lbnVpZCxwYWdlSWQsIGFwcGxJZCkge1xyXG4gICAgdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCk7XHJcbiAgICB0aGlzLnVzckxzdC5mb3JFYWNoKGVhY2hPYmogPT4ge1xyXG4gICAgICB0aGlzLnVzZXJJZG5zLnB1c2goZWFjaE9iai51c2VyX2lkbik7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHJlcU9iaiA9IHt9O1xyXG4gICAgbGV0IG1lbnVfaWQgPSAoc3VibWVudWlkID09IHVuZGVmaW5lZCB8fCBzdWJtZW51aWQgPT0gXCJcIikgPyBtZW51SWRuIDogKHBhZ2VJZCAgPT0gdW5kZWZpbmVkIHx8IHBhZ2VJZCA9PSBcIlwiKSA/IHN1Ym1lbnVpZCA6IHBhZ2VJZDtcclxuICAgIHJlcU9ialtcIm1lbnVJZG5cIl0gPSBtZW51X2lkXHJcbiAgICByZXFPYmpbXCJ1c2VySWRuXCJdID0gdGhpcy51c2VySWRucztcclxuICAgIHJlcU9ialtcImhkcklkblwiXSA9IG1lbnVJZG47IC8vKHN1Ym1lbnVpZCA9PSB1bmRlZmluZWQgfHwgc3VibWVudWlkID09IFwiXCIpID8gbWVudUlkbiA6ICcnO1xyXG4gICAgcmVxT2JqW1wic3R0XCJdID0gZS50YXJnZXQuY2hlY2tlZCA9PSB0cnVlID8gXCIxXCIgOiBcIjBcIjtcclxuICAgIHJlcU9ialtcImZvcm1ObWVcIl0gPSBcInNhdmVVc2VyUmlnaHRNYXN0ZXJcIjtcclxuICAgIHRoaXMuaGVhZGVyWydtZXRob2QnXSA9ICdzYXZlVXNlclJpZ2h0cyc7XHJcbiAgIGNvbnN0IG9wdGlvbnMgPSAoeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXIpIH0pO1xyXG4gICAgdGhpcy5hcy5zYXZlVXNlck1lbnVSaWdodHMocmVxT2JqLCBvcHRpb25zKS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMudXNlcklkbnMgPSBbXTtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICB0aGlzLmdldFVzZXJSaWdodChtb2R1bGVpZG4sIG1lbnVJZG4sIHN1Ym1lbnVpZCxwYWdlSWQsIGFwcGxJZCk7XHJcbiAgICAgICAgdGhpcy50b2FzdHIuc3VjY2VzcyhyZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihyZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfSkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICB0aGlzLnRvYXN0ci5lcnJvcihlcnIubWVzc2FnZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG4gIGNVcmw7XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBsZXQgbWRsayA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ21kbEtleScpKTtcclxuICAgIGRlYnVnZ2VyXHJcbiAgICB0aGlzLmNVcmwgPSB0aGlzLnJvdXRlci51cmw7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmNVcmwuc3BsaXQoJy8nKVsxXSk7XHJcbiAgICB0aGlzLmhlYWRlciA9IHtcclxuICAgICAgJ2NsaWVudGtleSc6IENvb2tpZS5nZXQoJ19jaycpLFxyXG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAnbW9kdWxla2V5JzogbWRsa1t0aGlzLmNVcmwuc3BsaXQoJy8nKVsxXV0sXHJcbiAgICAgICdsb2dpbmlkJzogQ29va2llLmdldCgnX2xvZ2lkJyksXHJcbiAgICAgICdzb3VyY2UnOiAncXMnXHJcbiAgICB9O1xyXG4gICAgLy90aGlzLmZpbGxNb2R1bGUoKTtcclxuICAgIHRoaXMuZmlsbEFwcCgpO1xyXG4gIH1cclxuXHJcbiAgbmF2aWdhdGlvbkZ1bihuYXYsIGkpIHsgfVxyXG5cclxufVxyXG5cclxuIiwiPGRpdiBjbGFzcz1cIm10XCI+XHJcbiAgPGRpdiBjbGFzcz1cInBhbmVsIHBhbmVsLWRlZmF1bHRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwYW5lbC1oZWFkaW5nXCI+XHJcbiAgICAgIDxoMyBjbGFzcz1cInBhbmVsLXRpdGxlXCI+e3twYWdlaW5mbz8udGl0bGV9fTwvaDM+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiY29udGVudC1mcmFtZVwiIHN0eWxlPVwiYmFja2dyb3VuZDogI2ZmZjtoZWlnaHQ6MTAwdmg7XCI+XHJcbiAgICA8IS0tIFNUQVJUIENPTlRFTlQgRlJBTUUgTEVGVCAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWZyYW1lLWxlZnRcIiAqbmdJZj1cImZhbHNlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwYW5lbCBwYW5lbC1kZWZhdWx0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBhbmVsLWJvZHlcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWdyb3VwIGJvcmRlci1ib3R0b21cIj5cclxuICAgICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCIgW25nQ2xhc3NdPVwieydhY3RpdmUnIDppID09ICdjTGluayd9XCIgKm5nRm9yPVwibGV0IG5hdiBvZiBuYXZpZ2F0aW9uO2xldCBpPWluZGV4XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGlvbkZ1bihuYXYsaSk7XCI+e3tuYXY/LmZvcm1fZmllbGRfdGl0bGV9fTwvYT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBFTkQgQ09OVEVOVCBGUkFNRSBMRUZUIC0tPlxyXG4gICAgPCEtLSBTVEFSVCBDT05URU5UIEZSQU1FIEJPRFkgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1mcmFtZS1ib2R5XCIgW25nU3R5bGVdPVwieydtYXJnaW4tbGVmdCc6IGZhbHNlID8gJzAnIDogJzI1MHB4J31cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBhbmVsIHBhbmVsLWRlZmF1bHRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicGFuZWwtYm9keVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbnRyb2wtbGFiZWxcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogMnB4O1wiPkFwcGxpY2F0aW9uPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImFwcFwiIG5hbWU9XCJhcHBcIiAoY2hhbmdlKT1cImZpbGxNb2R1bGUoYXBwKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBsb3Ygb2YgYXBwbGljYXRpb25MaXN0XCIgdmFsdWU9XCJ7e2xvdi5rfX1cIj57e2xvdi52fX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMlwiICpuZ0lmPVwibWRsbGlzdD8ubGVuZ3RoID4gMSBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29udHJvbC1sYWJlbFwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAycHg7XCI+TW9kdWxlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cInZcIiBuYW1lPVwidlwiIChjaGFuZ2UpPVwiZmlsbExldmVsMSh2KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBsb3Ygb2YgbWRsbGlzdFwiIHZhbHVlPVwie3tsb3Yua319XCI+e3tsb3Yudn19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMlwiICpuZ0lmPVwibWVudWx2bDFMaXN0Py5sZW5ndGggPiAxIFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb250cm9sLWxhYmVsXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDJweDtcIj5NYWluIE1lbnU8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwidjFcIiBuYW1lPVwidjFcIiAoY2hhbmdlKT1cImZpbGxMZXZlbDIodix2MSlcIj5cclxuICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgbG92IG9mIG1lbnVsdmwxTGlzdFwiIHZhbHVlPVwie3tsb3Yua319XCI+e3tsb3Yudn19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMlwiICpuZ0lmPVwibWVudWx2bDJMaXN0Py5sZW5ndGggPiAxIFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb250cm9sLWxhYmVsXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDJweDtcIj5TdWIgTWVudTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJ2MlwiIG5hbWU9XCJ2MlwiIChjaGFuZ2UpPVwic3VibWVudUNoYW5nZSh2LCB2MilcIj5cclxuICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgbG92IG9mIG1lbnVsdmwyTGlzdFwiIHZhbHVlPVwie3tsb3Yua319XCI+e3tsb3Yudn19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMlwiICpuZ0lmPVwibWVudWx2bDNMaXN0Py5sZW5ndGggPiAxIFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb250cm9sLWxhYmVsXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDJweDtcIj5QYWdlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cInYzXCIgbmFtZT1cInYzXCIgKGNoYW5nZSk9XCJmaWxsTGV2ZWwzQ2hhbmdlKClcIj5cclxuICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgbG92IG9mIG1lbnVsdmwzTGlzdFwiIHZhbHVlPVwie3tsb3Yua319XCI+e3tsb3Yudn19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMlwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGlkPVwiYWRkQnRuXCIgY2xhc3M9XCJidG4gYnRuLWluZm8gXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAyM3B4O1wiIChjbGljayk9XCJnZXRVc2VyUmlnaHQodix2MSx2Mix2MyxhcHApXCI+e3tidG4/LmZvcm1fZmllbGRfdGl0bGV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBzdHlsZT1cInBhZGRpbmc6IDAgMTBweDtcIj5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImJvcmRlcjoxcHggc29saWQgI2U1ZTVlNTttYXJnaW4tdG9wOiAzMHB4XCIgKm5nSWY9XCJ1c3JMc3QubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cInVzckxzdC5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFuZWwgcGFuZWwtZGVmYXVsdFwiIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMjVweDtcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhbmVsLWhlYWRpbmdcIiBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJwYW5lbC10aXRsZVwiIHN0eWxlPVwicGFkZGluZzogOHB4OyBmb250LXNpemU6IDE0cHg7XCI+VXNlcnM8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBjaGtBbGxcIiBzdHlsZT1cIm1hcmdpbjogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBzdHlsZT1cInBhZGRpbmc6IDEwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGNsYXNzPVwic3dpdGNoXCIgKGNoYW5nZSk9XCJvbkNoYW5nZUFsbCgkZXZlbnQsdix2MSx2Mix2MyxhcHApXCIgbmFtZT1cImNoa0FsbFwiIGlkPVwiY2hrQWxsXCIgW2NoZWNrZWRdPVwiKHVzckxzdC5sZW5ndGggPT0gdXNyUmlnaHRMc3QubGVuZ3RoID8gJ2NoZWNrZWQnIDogJycpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1tZC00IGNvbnRyb2wtbGFiZWwgdGV4dC1sZWZ0XCIgc3R5bGU9XCJwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4O1wiPkFsbCA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGZvcm0gY2xhc3M9XCJmb3JtLWhvcml6b250YWxcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yXCIgKm5nRm9yPVwibGV0IHVzZXIgb2YgdXNyTHN0IDtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwic3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGNsYXNzPVwic3dpdGNoXCIgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQsdix2MSx1c2VyLnVzZXJfaWRuLHYyLHYzLGFwcClcIiBbY2hlY2tlZF09XCIoZmFsc2UgIT09IHVzclJpZ2h0THN0LmluY2x1ZGVzKHVzZXI/LnVzZXJfaWRuKSA/ICdjaGVja2VkJyA6ICcnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY2hrXCIgaWQ9XCJjaGt7e3VzZXIudXNlcl9pZG59fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLW1kLTQgY29udHJvbC1sYWJlbCB0ZXh0LWxlZnRcIiBzdHlsZT1cInBhZGRpbmctdG9wOiAzcHg7cGFkZGluZy1sZWZ0OiA0MHB4O3RleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1wiPnt7dXNlcj8udXNlcm5hbWV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBFTkQgQ09OVEVOVCBGUkFNRSBCT0RZIC0tPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=