Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@farris/app-navigation-udt

Package Overview
Dependencies
Maintainers
26
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@farris/app-navigation-udt - npm Package Compare versions

Comparing version 0.0.6 to 0.0.7

2

bundles/farris-app-navigation-udt.umd.js

@@ -498,3 +498,3 @@ (function (global, factory) {

*/function (data) {
data['processMode'] === 'interpretation' ? 'interpretation' : 'general';
data['metadata']['processMode'] === 'interpretation' ? 'interpretation' : 'general';
_this.submitModal.emit(data);

@@ -501,0 +501,0 @@ }));

@@ -1,2 +0,2 @@

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("lodash-es"),require("@farris/designer-services"),require("@farris/ui-notify"),require("@angular/core"),require("@angular/common"),require("@farris/ui-input-group"),require("@angular/common/http"),require("@angular/forms"),require("@farris/ui-panel")):"function"==typeof define&&define.amd?define("@farris/app-navigation-udt",["exports","lodash-es","@farris/designer-services","@farris/ui-notify","@angular/core","@angular/common","@farris/ui-input-group","@angular/common/http","@angular/forms","@farris/ui-panel"],t):t((e.farris=e.farris||{},e.farris["app-navigation-udt"]={}),e.lodashEs,e.designerServices,e.uiNotify,e.ng.core,e.ng.common,e.uiInputGroup,e.ng.common.http,e.ng.forms,e.uiPanel)}(this,function(e,r,t,n,a,i,o,d,l,c){"use strict";var s=["State","SecurityLevel","Amount","IdentificationCard","Sequence","CreatedBy","ProcessInstance","Version","ParentHierarchyInfo","Image","TelephoneNumber","Email","UpdateInformation","CellphoneNumber","PhoneNumber","PathHierarchyInfo","PostalCode","IsEnabledInfo","Name","BillState","IsEnabled","BillCode","LastModifiedBy","CodeSet","GspUser"],p={Invoice:["State"],SecurityLevel:["a","SecurityLevel"],QDP:["QdpFloatUdt","QdpIntegerUdt","QdpDateUdt","QdpStringUdt"],Common:["Amount","IdentificationCard","Sequence","CreatedBy","ProcessInstance","Version","ParentHierarchyInfo","Image","TelephoneNumber","Email","UpdateInformation","CellphoneNumber","PhoneNumber","PathHierarchyInfo","PostalCode","IsEnabledInfo","Name","BillState","IsEnabled","BillCode","LastModifiedBy","CodeSet","AttachmentInfo"],User:["GspUser"]},f=[{label:"Invoice",name:"单据",fold:!1,data:[]},{label:"SecurityLevel",name:"密级",fold:!1,data:[]},{label:"QDP",name:"QDP",fold:!1,data:[]},{label:"Common",name:"常用",fold:!1,data:[]},{label:"User",name:"用户",fold:!1,data:[]}],h=(g.prototype.ngOnInit=function(){this.editorParams&&(this.modalConfig=this.editorParams.modalConfig||this.modalConfig,this.getRecentDataInfo(),this.getRecommandDataInfo()),this.chooseRecent=!0,this.chooseAll=!1},g.prototype.ngOnChanges=function(e){e.editorParams&&(this.modalConfig=this.editorParams.modalConfig||this.modalConfig,this.getRecentDataInfo(),this.getRecommandDataInfo())},g.prototype.getRecommandDataInfo=function(){var t=this,e=this.injector.get(d.HttpClient),n=this.editorParams.relativePath||"";return e.get("/api/dev/main/v1.0/mdservice/unionmdlist?path="+n+"&pageIndex=1&pageSize=1000&metadataTypeList=.udt",{headers:new d.HttpHeaders({"Content-Type":"application/json"}),responseType:"json"}).subscribe(function(e){t.reinvokeInterface(e),t.udtRecommandData=r.cloneDeep(t.getRecommandData(e)),t.udtData=0!=t.udtRecentData.length?t.udtRecentData:t.udtRecommandData,t.chooseRecent=0!=t.udtRecentData.length,t.chooseAll=!1})},g.prototype.getRecentDataInfo=function(){var t=this,e=this.injector.get(d.HttpClient),n=this.editorParams.relativePath||"",n="/"==n[0]?n.split("/")[1]:n.split("/")[0];return e.get("/api/dev/main/v1.0/mdservice/getmdrecentuse?appId="+n+"&metadataTypeList=.udt",{headers:new d.HttpHeaders({"Content-Type":"application/json"}),responseType:"json"}).subscribe(function(e){t.udtRecentData=r.cloneDeep(t.getRecentData(e))})},g.prototype.getRecommandData=function(e){var i,o=r.cloneDeep(f),e=e.metadataIndexItems||e;return e&&(i=[],e.forEach(function(e){for(var t={name:e.name,label:e.code,hide:!1,active:!1,svg:s.includes(e.code)?e.code:"General",data:e},n=Object.keys(p),a=0;a<n.length;a++)p[n[a]].includes(e.code)&&o[a].data.push(r.cloneDeep(t));i.push(r.cloneDeep(t))}),this.udtAllData=r.cloneDeep(i)),o},g.prototype.getRecentData=function(e){var t=[];return e&&r.cloneDeep(e).forEach(function(e){e={name:e.name,label:e.code,hide:!1,active:!1,svg:s.includes(e.code)?e.code:"General",data:e};t.push(r.cloneDeep(e))}),t},g.prototype.showRecentData=function(){this.udtData=r.cloneDeep(this.udtRecentData),this.chooseRecent=!0,this.chooseAll=!1,this.udtData=this.onSearchValueChanged(this.searchValue)},g.prototype.showRecommandData=function(){this.udtData=r.cloneDeep(this.udtRecommandData),this.chooseRecent=!1,this.chooseAll=!1,this.udtData=this.onSearchValueChanged(this.searchValue)},g.prototype.showAllData=function(){this.udtData=r.cloneDeep(this.udtAllData),this.chooseRecent=!1,this.chooseAll=!0,this.udtData=this.onSearchValueChanged(this.searchValue)},g.prototype.onSearchValueChanged=function(e){e=(e=e==undefined?"":e).originalEvent!=undefined?e.value||"":e;var n=(this.searchValue=e).replaceAll(" ","").replaceAll(">","");return n=(n=""==n?" ":n).toLowerCase(),this.chooseRecent||this.chooseAll?this.udtData.forEach(function(e){var t=(e.name+" "+e.label).toLowerCase();e.hide=0==t.includes(n)}):this.udtData.forEach(function(e){e.data.forEach(function(e){var t=(e.name+" "+e.label).toLowerCase();e.hide=0==t.includes(n)})}),this.udtData},g.prototype.getUdtDataItem=function(t){var n=this;this.chooseRecent||this.chooseAll?this.udtData.forEach(function(e){e.active=t.label==e.label&&!e.active,n.selectedCommand=t.label==e.label?r.cloneDeep(t):n.selectedCommand}):this.udtData.forEach(function(e){e.data.forEach(function(e){e.active=t.label==e.label&&!e.active,n.selectedCommand=t.label==e.label?r.cloneDeep(t):n.selectedCommand})})},g.prototype.onClear=function(){this.udtData=this.onSearchValueChanged("")},g.prototype.getUniqueData=function(e){for(var t=r.cloneDeep(e),n=0;n<t.length;n++)for(var a=n+1;a<t.length;a++)t[n].label==t[a].label&&(t.splice(a,1),a--);return t},g.prototype.foldIn=function(e){e.fold=!e.fold},g.prototype.clickConfirm=function(){var e,t,n,a,i=this;return this.selectedCommand&&this.selectedCommand.active?(e=this.injector.get(d.HttpClient),t="/api/dev/main/v1.0/mdservice/pickMetadata?currentPath="+(this.editorParams.relativePath||""),n=this.selectedCommand.data,a={headers:new d.HttpHeaders({"Content-Type":"application/json"})},e.post(t,n,a).subscribe(function(e){e.processMode,i.submitModal.emit(e)})):(this.notifyService.info("未选择业务字段"),null)},g.prototype.clickCancel=function(){this.closeModal.emit()},g.prototype.reinvokeInterface=function(e){var t=this;if(e.page){var n,a,e=e.page.total||0;if(1e3<e)return n=this.injector.get(d.HttpClient),a=this.editorParams.relativePath||"",n.get("/api/dev/main/v1.0/mdservice/unionmdlist?path="+a+"&pageIndex=1&pageSize="+e+"&metadataTypeList=.udt",{headers:new d.HttpHeaders({"Content-Type":"application/json"}),responseType:"json"}).subscribe(function(e){t.udtRecommandData=r.cloneDeep(t.getRecommandData(e)),t.udtData=0!=t.udtRecentData.length?t.udtRecentData:t.udtRecommandData,t.chooseRecent=0!=t.udtRecentData.length})}},g.decorators=[{type:a.Component,args:[{selector:"farris-appNavigationUdt",template:'<div class="f-navUdt">\n <div class="f-navUdt-header">\n <div class="f-navUdt-recent" (click)="showRecentData()">\n <div [ngClass]="{\'f-navUdt-recent-text-focus\':chooseRecent && !chooseAll,\'f-navUdt-recent-text\':!chooseRecent || chooseAll}">最近</div>\n </div>\n <div class="f-navUdt-recommand" (click)="showRecommandData()">\n <div [ngClass]="{\'f-navUdt-recommand-text-focus\':!chooseRecent && !chooseAll,\'f-navUdt-recommand-text\': chooseRecent || chooseAll}">推荐\n </div>\n </div>\n <div class="f-navUdt-all" (click)="showAllData()">\n <div [ngClass]="{\'f-navUdt-all-text-focus\': chooseAll,\'f-navUdt-all-text\':!chooseAll }">全部</div>\n </div>\n <div class="f-navUdt-remainder">\n <div class="f-navUdt-search">\n <input-group [groupText]="groupIcon" [(value)]="searchValue"\n (clickHandle)="onSearchValueChanged($event)" (valueChange)="onSearchValueChanged($event)"\n (clear)="onClear()" placeholder="请输入名称/编号搜索" style="font-size:2px;"></input-group>\n </div>\n </div>\n </div>\n \x3c!-- 最近 --\x3e\n <div class="f-navUdt-content-recent" *ngIf="chooseRecent && !chooseAll">\n <ng-container *ngFor="let udtDataItem of udtData">\n <ng-container *ngIf="!udtDataItem.hide">\n <div [ngClass]="{\'f-navUdt-item\':!udtDataItem.active,\'f-navUdt-item-active\':udtDataItem.active}"\n (click)="getUdtDataItem(udtDataItem)">\n <img src="assets/img/{{udtDataItem.svg}}.svg" style="padding:12px 41px 9px 42px;">\n <div class="f-navUdt-name">{{udtDataItem.name}}</div>\n <div class="f-navUdt-label">{{udtDataItem.label}}</div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n \x3c!-- 推荐 --\x3e\n <div class="f-navUdt-content-recommand" *ngIf="!chooseRecent && !chooseAll">\n <ng-container *ngFor="let category of udtData; let i = index">\n <div class="f-navUdt-udtCategory">\n <div class="f-navUdt-categoryHeader" (click)="foldIn(category)">\n <div *ngIf="category.fold" class="f-icon f-icon-arrow-60-right"\n style="color:#6E7088;font-size:12px;margin:3px 7px 0 0;"></div>\n <div *ngIf="!category.fold" class="f-icon f-icon-arrow-60-down"\n style="color:#6E7088;font-size:12px;margin:3px 7px 0 0;"></div>\n <div class="f-navUdt-categoryLabel">{{category.name}}</div>\n </div>\n <div class="f-navUdt-categoryContent" *ngIf="!category.fold">\n <ng-container *ngFor="let item of category.data">\n <ng-container *ngIf="!item.hide">\n <div [ngClass]="{\'f-navUdt-item\':!item.active,\'f-navUdt-item-active\':item.active}"\n (click)="getUdtDataItem(item)">\n <img src="assets/img/{{item.svg}}.svg" style="padding:12px 41px 9px 42px;">\n <div class="f-navUdt-name">{{item.name}}</div>\n <div class="f-navUdt-label">{{item.label}}</div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n \x3c!-- 全部 --\x3e\n <div class="f-navUdt-content-recent" *ngIf="chooseAll">\n <ng-container *ngFor="let udtDataItem of udtData">\n <ng-container *ngIf="!udtDataItem.hide">\n <div [ngClass]="{\'f-navUdt-item\':!udtDataItem.active,\'f-navUdt-item-active\':udtDataItem.active}"\n (click)="getUdtDataItem(udtDataItem)">\n <img src="assets/img/{{udtDataItem.svg}}.svg" style="padding:12px 41px 9px 42px;">\n <div class="f-navUdt-name">{{udtDataItem.name}}</div>\n <div class="f-navUdt-label">{{udtDataItem.label}}</div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\x3c!-- 底部区域 --\x3e\n<div class="f-page-bottom">\n <div class="f-page-button">\n <div class="f-page-cancel-btn" (click)="clickCancel()">\n <span class="textCancel">取消</span>\n </div>\n <div class="f-page-sure-btn" (click)="clickConfirm()">\n <span class="textSure">确认</span>\n </div>\n </div>\n</div>',styles:[":host{overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0}.f-page-bottom{margin-top:0;height:60px;width:100%;border:1px solid #dee1ea;background-color:#fff;z-index:2000;bottom:0;left:0;position:absolute;display:flex;justify-content:flex-end;align-items:center}.f-page-button{float:right;margin-right:30px;width:200px;display:flex}.f-page-cancel-btn{width:75px;height:32px;display:inline-block;background:#fff;border:1px solid #d8dce6;box-shadow:0 1px 0 0 rgb(0 0 0 / 4%);border-radius:3px;margin-right:8px;text-align:center;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.f-page-sure-btn{width:100px;height:32px;display:flex;background:#5989e7;border-radius:3px;text-align:center;cursor:pointer;align-items:center;justify-content:center;flex-wrap:wrap}.textCancel{font-family:PingFangSC-Regular;font-size:13px;color:#2d2f33}.textSure{font-family:PingFangSC-Regular;font-size:13px;color:#fff}.f-navUdt{background-color:#fff;height:100%}.f-navUdt-header{display:flex;min-width:400px;width:100%;height:44px;align-items:center;border:1px solid #e5e9ef;background:#f9f9fc;position:absolute;top:0;z-index:2}.f-navUdt-recent{flex:2;text-align:center;display:flex;justify-content:center;align-items:center}.f-navUdt-recent-text{width:32px;height:44px;font-family:PingFangSC-Medium;font-size:16px;color:#2d2f33;font-weight:500;padding-top:12px;cursor:pointer}.f-navUdt-recent-text-focus{width:32px;height:44px;color:#2a87ff;border-bottom:3px solid #00f;font-family:PingFangSC-Medium;font-size:16px;font-weight:500;padding-top:12px;cursor:pointer}.f-navUdt-recommand{flex:2;text-align:center;display:flex;justify-content:center;align-items:center}.f-navUdt-recommand-text{width:32px;height:44px;font-family:PingFangSC-Medium;font-size:16px;color:#2d2f33;font-weight:500;padding-top:12px;cursor:pointer}.f-navUdt-recommand-text-focus{width:32px;height:44px;color:#2a87ff;border-bottom:3px solid #00f;font-family:PingFangSC-Medium;font-size:16px;font-weight:500;padding-top:12px;cursor:pointer}.f-navUdt-all{flex:2;text-align:center;display:flex;justify-content:center;align-items:center}.f-navUdt-all-text{width:32px;height:44px;font-family:PingFangSC-Medium;font-size:16px;color:#2d2f33;font-weight:500;padding-top:12px;cursor:pointer}.f-navUdt-all-text-focus{width:32px;height:44px;color:#2a87ff;border-bottom:3px solid #00f;font-family:PingFangSC-Medium;font-size:16px;font-weight:500;padding-top:12px;cursor:pointer}.f-navUdt-remainder{flex:10}.f-navUdt-search{width:220px;height:26.6px;background:#fff;border-radius:6px;float:right;margin-right:40px}.f-navUdt-content-recommand{width:100%;min-width:400px;height:calc(100% - 110px);overflow:scroll;display:flex;flex-wrap:wrap;margin-top:44px;flex-direction:row;align-content:flex-start}.f-navUdt-content-recent{width:100%;min-width:400px;height:355px;overflow:scroll;display:flex;flex-wrap:wrap;margin-top:44px;margin-left:20px}.f-navUdt-udtCategory{width:100%;margin-left:10px}.f-navUdt-categoryHeader{width:70px;display:flex;margin-top:16px}.f-navUdt-categoryLabel{height:18px;font-family:PingFangSC-Regular;font-size:13px;color:#3d4c6b;font-weight:400;cursor:pointer}.f-navUdt-categoryContent{display:flex;flex-wrap:wrap;margin-left:15px}.f-navUdt-item{border:1px solid #e5e9ef;width:115px;height:100px;background:#fafbfc;border-radius:8px;margin-right:10px;position:relative;z-index:2000;margin-top:10px;cursor:pointer}.f-navUdt-item:hover{background-color:#edf5fc!important;cursor:pointer}.f-navUdt-item-active{border:1px solid #e5e9ef;background-color:#edf5fc!important;width:115px;height:100px;border-radius:8px;margin-right:10px;position:relative;z-index:2000;margin-top:10px;cursor:pointer}.f-navUdt-name{width:98%;height:18px;font-family:PingFangSC-Regular;font-size:13px;color:#2d2f33;font-weight:400;overflow:hidden;display:inline-block;vertical-align:top;text-align:center}.f-navUdt-label{width:98%;font-family:PingFangSC-Regular;font-weight:400;overflow:hidden;display:inline-block;vertical-align:top;height:17px;font-size:12px;color:#a6aebe;text-align:center}.f-navUdt-source{width:100%;height:17px;font-family:PingFangSC-Regular;font-size:12px;color:#949ba7;font-weight:400}"]}]}],g.ctorParameters=function(){return[{type:a.Injector},{type:t.FormBasicService},{type:n.NotifyService}]},g.propDecorators={initialState:[{type:a.Input}],editorParams:[{type:a.Input}],closeModal:[{type:a.Output}],submitModal:[{type:a.Output}],modalFooter:[{type:a.ViewChild,args:["footer"]}]},g);function g(e,t,n){this.injector=e,this.formBasicService=t,this.notifyService=n,this.closeModal=new a.EventEmitter,this.submitModal=new a.EventEmitter,this.groupIcon='<span class="k-icon k-i-search"></span>',this.chooseRecent=!0,this.chooseAll=!1,this.udtRecentData=[],this.udtAllData=[],this.modalConfig={title:"选择业务字段",width:920,height:500,resizable:!0,showButtons:!1,showMaxButton:!1,minWidth:650,minHeight:300}}u.decorators=[{type:a.NgModule,args:[{declarations:[h],imports:[i.CommonModule,o.InputGroupModule,d.HttpClientModule,i.CommonModule,l.FormsModule,c.FarrisPanelModule],exports:[h]}]}];o=u;function u(){}e.AppNavigationUdtComponent=h,e.AppNavigationUdtModule=o,Object.defineProperty(e,"__esModule",{value:!0})});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("lodash-es"),require("@farris/designer-services"),require("@farris/ui-notify"),require("@angular/core"),require("@angular/common"),require("@farris/ui-input-group"),require("@angular/common/http"),require("@angular/forms"),require("@farris/ui-panel")):"function"==typeof define&&define.amd?define("@farris/app-navigation-udt",["exports","lodash-es","@farris/designer-services","@farris/ui-notify","@angular/core","@angular/common","@farris/ui-input-group","@angular/common/http","@angular/forms","@farris/ui-panel"],t):t((e.farris=e.farris||{},e.farris["app-navigation-udt"]={}),e.lodashEs,e.designerServices,e.uiNotify,e.ng.core,e.ng.common,e.uiInputGroup,e.ng.common.http,e.ng.forms,e.uiPanel)}(this,function(e,r,t,n,a,i,o,d,l,c){"use strict";var s=["State","SecurityLevel","Amount","IdentificationCard","Sequence","CreatedBy","ProcessInstance","Version","ParentHierarchyInfo","Image","TelephoneNumber","Email","UpdateInformation","CellphoneNumber","PhoneNumber","PathHierarchyInfo","PostalCode","IsEnabledInfo","Name","BillState","IsEnabled","BillCode","LastModifiedBy","CodeSet","GspUser"],p={Invoice:["State"],SecurityLevel:["a","SecurityLevel"],QDP:["QdpFloatUdt","QdpIntegerUdt","QdpDateUdt","QdpStringUdt"],Common:["Amount","IdentificationCard","Sequence","CreatedBy","ProcessInstance","Version","ParentHierarchyInfo","Image","TelephoneNumber","Email","UpdateInformation","CellphoneNumber","PhoneNumber","PathHierarchyInfo","PostalCode","IsEnabledInfo","Name","BillState","IsEnabled","BillCode","LastModifiedBy","CodeSet","AttachmentInfo"],User:["GspUser"]},f=[{label:"Invoice",name:"单据",fold:!1,data:[]},{label:"SecurityLevel",name:"密级",fold:!1,data:[]},{label:"QDP",name:"QDP",fold:!1,data:[]},{label:"Common",name:"常用",fold:!1,data:[]},{label:"User",name:"用户",fold:!1,data:[]}],h=(g.prototype.ngOnInit=function(){this.editorParams&&(this.modalConfig=this.editorParams.modalConfig||this.modalConfig,this.getRecentDataInfo(),this.getRecommandDataInfo()),this.chooseRecent=!0,this.chooseAll=!1},g.prototype.ngOnChanges=function(e){e.editorParams&&(this.modalConfig=this.editorParams.modalConfig||this.modalConfig,this.getRecentDataInfo(),this.getRecommandDataInfo())},g.prototype.getRecommandDataInfo=function(){var t=this,e=this.injector.get(d.HttpClient),n=this.editorParams.relativePath||"";return e.get("/api/dev/main/v1.0/mdservice/unionmdlist?path="+n+"&pageIndex=1&pageSize=1000&metadataTypeList=.udt",{headers:new d.HttpHeaders({"Content-Type":"application/json"}),responseType:"json"}).subscribe(function(e){t.reinvokeInterface(e),t.udtRecommandData=r.cloneDeep(t.getRecommandData(e)),t.udtData=0!=t.udtRecentData.length?t.udtRecentData:t.udtRecommandData,t.chooseRecent=0!=t.udtRecentData.length,t.chooseAll=!1})},g.prototype.getRecentDataInfo=function(){var t=this,e=this.injector.get(d.HttpClient),n=this.editorParams.relativePath||"",n="/"==n[0]?n.split("/")[1]:n.split("/")[0];return e.get("/api/dev/main/v1.0/mdservice/getmdrecentuse?appId="+n+"&metadataTypeList=.udt",{headers:new d.HttpHeaders({"Content-Type":"application/json"}),responseType:"json"}).subscribe(function(e){t.udtRecentData=r.cloneDeep(t.getRecentData(e))})},g.prototype.getRecommandData=function(e){var i,o=r.cloneDeep(f),e=e.metadataIndexItems||e;return e&&(i=[],e.forEach(function(e){for(var t={name:e.name,label:e.code,hide:!1,active:!1,svg:s.includes(e.code)?e.code:"General",data:e},n=Object.keys(p),a=0;a<n.length;a++)p[n[a]].includes(e.code)&&o[a].data.push(r.cloneDeep(t));i.push(r.cloneDeep(t))}),this.udtAllData=r.cloneDeep(i)),o},g.prototype.getRecentData=function(e){var t=[];return e&&r.cloneDeep(e).forEach(function(e){e={name:e.name,label:e.code,hide:!1,active:!1,svg:s.includes(e.code)?e.code:"General",data:e};t.push(r.cloneDeep(e))}),t},g.prototype.showRecentData=function(){this.udtData=r.cloneDeep(this.udtRecentData),this.chooseRecent=!0,this.chooseAll=!1,this.udtData=this.onSearchValueChanged(this.searchValue)},g.prototype.showRecommandData=function(){this.udtData=r.cloneDeep(this.udtRecommandData),this.chooseRecent=!1,this.chooseAll=!1,this.udtData=this.onSearchValueChanged(this.searchValue)},g.prototype.showAllData=function(){this.udtData=r.cloneDeep(this.udtAllData),this.chooseRecent=!1,this.chooseAll=!0,this.udtData=this.onSearchValueChanged(this.searchValue)},g.prototype.onSearchValueChanged=function(e){e=(e=e==undefined?"":e).originalEvent!=undefined?e.value||"":e;var n=(this.searchValue=e).replaceAll(" ","").replaceAll(">","");return n=(n=""==n?" ":n).toLowerCase(),this.chooseRecent||this.chooseAll?this.udtData.forEach(function(e){var t=(e.name+" "+e.label).toLowerCase();e.hide=0==t.includes(n)}):this.udtData.forEach(function(e){e.data.forEach(function(e){var t=(e.name+" "+e.label).toLowerCase();e.hide=0==t.includes(n)})}),this.udtData},g.prototype.getUdtDataItem=function(t){var n=this;this.chooseRecent||this.chooseAll?this.udtData.forEach(function(e){e.active=t.label==e.label&&!e.active,n.selectedCommand=t.label==e.label?r.cloneDeep(t):n.selectedCommand}):this.udtData.forEach(function(e){e.data.forEach(function(e){e.active=t.label==e.label&&!e.active,n.selectedCommand=t.label==e.label?r.cloneDeep(t):n.selectedCommand})})},g.prototype.onClear=function(){this.udtData=this.onSearchValueChanged("")},g.prototype.getUniqueData=function(e){for(var t=r.cloneDeep(e),n=0;n<t.length;n++)for(var a=n+1;a<t.length;a++)t[n].label==t[a].label&&(t.splice(a,1),a--);return t},g.prototype.foldIn=function(e){e.fold=!e.fold},g.prototype.clickConfirm=function(){var e,t,n,a,i=this;return this.selectedCommand&&this.selectedCommand.active?(e=this.injector.get(d.HttpClient),t="/api/dev/main/v1.0/mdservice/pickMetadata?currentPath="+(this.editorParams.relativePath||""),n=this.selectedCommand.data,a={headers:new d.HttpHeaders({"Content-Type":"application/json"})},e.post(t,n,a).subscribe(function(e){e.metadata.processMode,i.submitModal.emit(e)})):(this.notifyService.info("未选择业务字段"),null)},g.prototype.clickCancel=function(){this.closeModal.emit()},g.prototype.reinvokeInterface=function(e){var t=this;if(e.page){var n,a,e=e.page.total||0;if(1e3<e)return n=this.injector.get(d.HttpClient),a=this.editorParams.relativePath||"",n.get("/api/dev/main/v1.0/mdservice/unionmdlist?path="+a+"&pageIndex=1&pageSize="+e+"&metadataTypeList=.udt",{headers:new d.HttpHeaders({"Content-Type":"application/json"}),responseType:"json"}).subscribe(function(e){t.udtRecommandData=r.cloneDeep(t.getRecommandData(e)),t.udtData=0!=t.udtRecentData.length?t.udtRecentData:t.udtRecommandData,t.chooseRecent=0!=t.udtRecentData.length})}},g.decorators=[{type:a.Component,args:[{selector:"farris-appNavigationUdt",template:'<div class="f-navUdt">\n <div class="f-navUdt-header">\n <div class="f-navUdt-recent" (click)="showRecentData()">\n <div [ngClass]="{\'f-navUdt-recent-text-focus\':chooseRecent && !chooseAll,\'f-navUdt-recent-text\':!chooseRecent || chooseAll}">最近</div>\n </div>\n <div class="f-navUdt-recommand" (click)="showRecommandData()">\n <div [ngClass]="{\'f-navUdt-recommand-text-focus\':!chooseRecent && !chooseAll,\'f-navUdt-recommand-text\': chooseRecent || chooseAll}">推荐\n </div>\n </div>\n <div class="f-navUdt-all" (click)="showAllData()">\n <div [ngClass]="{\'f-navUdt-all-text-focus\': chooseAll,\'f-navUdt-all-text\':!chooseAll }">全部</div>\n </div>\n <div class="f-navUdt-remainder">\n <div class="f-navUdt-search">\n <input-group [groupText]="groupIcon" [(value)]="searchValue"\n (clickHandle)="onSearchValueChanged($event)" (valueChange)="onSearchValueChanged($event)"\n (clear)="onClear()" placeholder="请输入名称/编号搜索" style="font-size:2px;"></input-group>\n </div>\n </div>\n </div>\n \x3c!-- 最近 --\x3e\n <div class="f-navUdt-content-recent" *ngIf="chooseRecent && !chooseAll">\n <ng-container *ngFor="let udtDataItem of udtData">\n <ng-container *ngIf="!udtDataItem.hide">\n <div [ngClass]="{\'f-navUdt-item\':!udtDataItem.active,\'f-navUdt-item-active\':udtDataItem.active}"\n (click)="getUdtDataItem(udtDataItem)">\n <img src="assets/img/{{udtDataItem.svg}}.svg" style="padding:12px 41px 9px 42px;">\n <div class="f-navUdt-name">{{udtDataItem.name}}</div>\n <div class="f-navUdt-label">{{udtDataItem.label}}</div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n \x3c!-- 推荐 --\x3e\n <div class="f-navUdt-content-recommand" *ngIf="!chooseRecent && !chooseAll">\n <ng-container *ngFor="let category of udtData; let i = index">\n <div class="f-navUdt-udtCategory">\n <div class="f-navUdt-categoryHeader" (click)="foldIn(category)">\n <div *ngIf="category.fold" class="f-icon f-icon-arrow-60-right"\n style="color:#6E7088;font-size:12px;margin:3px 7px 0 0;"></div>\n <div *ngIf="!category.fold" class="f-icon f-icon-arrow-60-down"\n style="color:#6E7088;font-size:12px;margin:3px 7px 0 0;"></div>\n <div class="f-navUdt-categoryLabel">{{category.name}}</div>\n </div>\n <div class="f-navUdt-categoryContent" *ngIf="!category.fold">\n <ng-container *ngFor="let item of category.data">\n <ng-container *ngIf="!item.hide">\n <div [ngClass]="{\'f-navUdt-item\':!item.active,\'f-navUdt-item-active\':item.active}"\n (click)="getUdtDataItem(item)">\n <img src="assets/img/{{item.svg}}.svg" style="padding:12px 41px 9px 42px;">\n <div class="f-navUdt-name">{{item.name}}</div>\n <div class="f-navUdt-label">{{item.label}}</div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n \x3c!-- 全部 --\x3e\n <div class="f-navUdt-content-recent" *ngIf="chooseAll">\n <ng-container *ngFor="let udtDataItem of udtData">\n <ng-container *ngIf="!udtDataItem.hide">\n <div [ngClass]="{\'f-navUdt-item\':!udtDataItem.active,\'f-navUdt-item-active\':udtDataItem.active}"\n (click)="getUdtDataItem(udtDataItem)">\n <img src="assets/img/{{udtDataItem.svg}}.svg" style="padding:12px 41px 9px 42px;">\n <div class="f-navUdt-name">{{udtDataItem.name}}</div>\n <div class="f-navUdt-label">{{udtDataItem.label}}</div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\x3c!-- 底部区域 --\x3e\n<div class="f-page-bottom">\n <div class="f-page-button">\n <div class="f-page-cancel-btn" (click)="clickCancel()">\n <span class="textCancel">取消</span>\n </div>\n <div class="f-page-sure-btn" (click)="clickConfirm()">\n <span class="textSure">确认</span>\n </div>\n </div>\n</div>',styles:[":host{overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0}.f-page-bottom{margin-top:0;height:60px;width:100%;border:1px solid #dee1ea;background-color:#fff;z-index:2000;bottom:0;left:0;position:absolute;display:flex;justify-content:flex-end;align-items:center}.f-page-button{float:right;margin-right:30px;width:200px;display:flex}.f-page-cancel-btn{width:75px;height:32px;display:inline-block;background:#fff;border:1px solid #d8dce6;box-shadow:0 1px 0 0 rgb(0 0 0 / 4%);border-radius:3px;margin-right:8px;text-align:center;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.f-page-sure-btn{width:100px;height:32px;display:flex;background:#5989e7;border-radius:3px;text-align:center;cursor:pointer;align-items:center;justify-content:center;flex-wrap:wrap}.textCancel{font-family:PingFangSC-Regular;font-size:13px;color:#2d2f33}.textSure{font-family:PingFangSC-Regular;font-size:13px;color:#fff}.f-navUdt{background-color:#fff;height:100%}.f-navUdt-header{display:flex;min-width:400px;width:100%;height:44px;align-items:center;border:1px solid #e5e9ef;background:#f9f9fc;position:absolute;top:0;z-index:2}.f-navUdt-recent{flex:2;text-align:center;display:flex;justify-content:center;align-items:center}.f-navUdt-recent-text{width:32px;height:44px;font-family:PingFangSC-Medium;font-size:16px;color:#2d2f33;font-weight:500;padding-top:12px;cursor:pointer}.f-navUdt-recent-text-focus{width:32px;height:44px;color:#2a87ff;border-bottom:3px solid #00f;font-family:PingFangSC-Medium;font-size:16px;font-weight:500;padding-top:12px;cursor:pointer}.f-navUdt-recommand{flex:2;text-align:center;display:flex;justify-content:center;align-items:center}.f-navUdt-recommand-text{width:32px;height:44px;font-family:PingFangSC-Medium;font-size:16px;color:#2d2f33;font-weight:500;padding-top:12px;cursor:pointer}.f-navUdt-recommand-text-focus{width:32px;height:44px;color:#2a87ff;border-bottom:3px solid #00f;font-family:PingFangSC-Medium;font-size:16px;font-weight:500;padding-top:12px;cursor:pointer}.f-navUdt-all{flex:2;text-align:center;display:flex;justify-content:center;align-items:center}.f-navUdt-all-text{width:32px;height:44px;font-family:PingFangSC-Medium;font-size:16px;color:#2d2f33;font-weight:500;padding-top:12px;cursor:pointer}.f-navUdt-all-text-focus{width:32px;height:44px;color:#2a87ff;border-bottom:3px solid #00f;font-family:PingFangSC-Medium;font-size:16px;font-weight:500;padding-top:12px;cursor:pointer}.f-navUdt-remainder{flex:10}.f-navUdt-search{width:220px;height:26.6px;background:#fff;border-radius:6px;float:right;margin-right:40px}.f-navUdt-content-recommand{width:100%;min-width:400px;height:calc(100% - 110px);overflow:scroll;display:flex;flex-wrap:wrap;margin-top:44px;flex-direction:row;align-content:flex-start}.f-navUdt-content-recent{width:100%;min-width:400px;height:355px;overflow:scroll;display:flex;flex-wrap:wrap;margin-top:44px;margin-left:20px}.f-navUdt-udtCategory{width:100%;margin-left:10px}.f-navUdt-categoryHeader{width:70px;display:flex;margin-top:16px}.f-navUdt-categoryLabel{height:18px;font-family:PingFangSC-Regular;font-size:13px;color:#3d4c6b;font-weight:400;cursor:pointer}.f-navUdt-categoryContent{display:flex;flex-wrap:wrap;margin-left:15px}.f-navUdt-item{border:1px solid #e5e9ef;width:115px;height:100px;background:#fafbfc;border-radius:8px;margin-right:10px;position:relative;z-index:2000;margin-top:10px;cursor:pointer}.f-navUdt-item:hover{background-color:#edf5fc!important;cursor:pointer}.f-navUdt-item-active{border:1px solid #e5e9ef;background-color:#edf5fc!important;width:115px;height:100px;border-radius:8px;margin-right:10px;position:relative;z-index:2000;margin-top:10px;cursor:pointer}.f-navUdt-name{width:98%;height:18px;font-family:PingFangSC-Regular;font-size:13px;color:#2d2f33;font-weight:400;overflow:hidden;display:inline-block;vertical-align:top;text-align:center}.f-navUdt-label{width:98%;font-family:PingFangSC-Regular;font-weight:400;overflow:hidden;display:inline-block;vertical-align:top;height:17px;font-size:12px;color:#a6aebe;text-align:center}.f-navUdt-source{width:100%;height:17px;font-family:PingFangSC-Regular;font-size:12px;color:#949ba7;font-weight:400}"]}]}],g.ctorParameters=function(){return[{type:a.Injector},{type:t.FormBasicService},{type:n.NotifyService}]},g.propDecorators={initialState:[{type:a.Input}],editorParams:[{type:a.Input}],closeModal:[{type:a.Output}],submitModal:[{type:a.Output}],modalFooter:[{type:a.ViewChild,args:["footer"]}]},g);function g(e,t,n){this.injector=e,this.formBasicService=t,this.notifyService=n,this.closeModal=new a.EventEmitter,this.submitModal=new a.EventEmitter,this.groupIcon='<span class="k-icon k-i-search"></span>',this.chooseRecent=!0,this.chooseAll=!1,this.udtRecentData=[],this.udtAllData=[],this.modalConfig={title:"选择业务字段",width:920,height:500,resizable:!0,showButtons:!1,showMaxButton:!1,minWidth:650,minHeight:300}}u.decorators=[{type:a.NgModule,args:[{declarations:[h],imports:[i.CommonModule,o.InputGroupModule,d.HttpClientModule,i.CommonModule,l.FormsModule,c.FarrisPanelModule],exports:[h]}]}];o=u;function u(){}e.AppNavigationUdtComponent=h,e.AppNavigationUdtModule=o,Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=farris-app-navigation-udt.umd.min.js.map

@@ -369,3 +369,3 @@ /**

data => {
data['processMode'] === 'interpretation' ? 'interpretation' : 'general';
data['metadata']['processMode'] === 'interpretation' ? 'interpretation' : 'general';
this.submitModal.emit(data);

@@ -518,2 +518,2 @@ }));

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLW5hdmlnYXRpb24tdWR0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmYXJyaXMvYXBwLW5hdmlnYXRpb24tdWR0LyIsInNvdXJjZXMiOlsibGliL2FwcC1uYXZpZ2F0aW9uLXVkdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVFsRCxNQUFNLE9BQU8seUJBQXlCOzs7Ozs7SUF3Q3BDLFlBQW1CLFFBQWtCLEVBQVUsZ0JBQWtDLEVBQVUsYUFBNEI7UUFBcEcsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTs7OztRQWxDN0csZUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7Ozs7UUFFckMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBT2hELGNBQVMsR0FBRyx5Q0FBeUMsQ0FBQzs7OztRQUV0RCxpQkFBWSxHQUFZLElBQUksQ0FBQzs7OztRQUU3QixjQUFTLEdBQVksS0FBSyxDQUFDOzs7O1FBSTNCLGtCQUFhLEdBQVEsRUFBRSxDQUFDOzs7O1FBSXhCLGVBQVUsR0FBUSxFQUFF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c0Q7Ozs7O0lBRXRELGlEQUE2Qjs7Ozs7SUFFN0IsOENBQTJCOzs7OztJQUUzQixvREFBcUI7Ozs7O0lBRXJCLGtEQUF3Qjs7Ozs7SUFFeEIscURBQWlCOzs7OztJQUVqQiwrQ0FBcUI7Ozs7O0lBRXJCLGdEQVNFOztJQUVVLDZDQUF5Qjs7Ozs7SUFBRSxxREFBMEM7Ozs7O0lBQUUsa0RBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdG9yLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IHN2Z0xpc3QsIHVkdFJlY29tbWFuZERhdGFMaXN0LCB1ZHRSZWNvbW1hbmREYXRhRnJhbWUgfSBmcm9tICcuL21vY2tEYXRhJztcbmltcG9ydCB7IEZvcm1CYXNpY1NlcnZpY2UgfSBmcm9tICdAZmFycmlzL2Rlc2lnbmVyLXNlcnZpY2VzJztcbmltcG9ydCB7IE5vdGlmeVNlcnZpY2UgfSBmcm9tICdAZmFycmlzL3VpLW5vdGlmeSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZhcnJpcy1hcHBOYXZpZ2F0aW9uVWR0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcC1uYXZpZ2F0aW9uLXVkdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FwcC1uYXZpZ2F0aW9uLXVkdC5jb21wb25lbnQuY3NzJ11cbn0pXG5cbmV4cG9ydCBjbGFzcyBBcHBOYXZpZ2F0aW9uVWR0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqIOWFpeWPgiAqL1xuICBASW5wdXQoKSBpbml0aWFsU3RhdGU6IGFueTtcbiAgLyoqIOWFpeWPgiAqL1xuICBASW5wdXQoKSBlZGl0b3JQYXJhbXM6IGFueTtcbiAgLyoqIOWFs+mXreW8ueeqlyAqL1xuICBAT3V0cHV0KCkgY2xvc2VNb2RhbCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAvKiog5Lyg6YCS5Y+C5pWwICovXG4gIEBPdXRwdXQoKSBzdWJtaXRNb2RhbCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAVmlld0NoaWxkKCdmb290ZXInKSBtb2RhbEZvb3RlcjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKiog5Y6f5aeL5pWw5o2uICovXG4gIHVkdERhdGE6IGFueTtcbiAgLyoqIOaQnOe0ouahhui+k+WFpeWAvCAqL1xuICBzZWFyY2hWYWx1ZTogc3RyaW5nO1xuICBncm91cEljb24gPSAnPHNwYW4gY2xhc3M9XCJrLWljb24gay1pLXNlYXJjaFwiPjwvc3Bhbj4nO1xuICAvKiog5b2T5YmN6YCJ5Lit55qE5bGV56S65pWw5o2u77ya5pyA6L+R5oiW5o6o6I2QICovXG4gIGNob29zZVJlY2VudDogYm9vbGVhbiA9IHRydWU7XG4gIC8qKiDlvZPliY3pgInkuK3nmoTlsZXnpLrmlbDmja7vvJrmnIDov5HmiJbmjqjojZAgKi9cbiAgY2hvb3NlQWxsOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiDnlKjmiLfpgInmi6nnmoTmlbDmja4gKi9cbiAgc2VsZWN0ZWRDb21tYW5kOiBhbnk7XG4gIC8qKiDmnIDov5HmlbDmja4gKi9cbiAgdWR0UmVjZW50RGF0YTogYW55ID0gW107XG4gIC8qKiDmjqjojZDmlbDmja4qL1xuICB1ZHRSZWNvbW1hbmREYXRhO1xuICAvKiog5YWo6YOo5pWw5o2uKi9cbiAgdWR0QWxsRGF0YTogYW55ID0gW107XG4gIC8qKiDlvLnnqpforr7lrprlgLwgKi9cbiAgbW9kYWxDb25maWcgPSB7XG4gICAgdGl0bGU6ICfpgInmi6nkuJrliqHlrZfmrrUnLFxuICAgIHdpZHRoOiA5MjAsXG4gICAgaGVpZ2h0OiA1MDAsXG4gICAgcmVzaXphYmxlOiB0cnVlLFxuICAgIHNob3dCdXR0b25zOiBmYWxzZSxcbiAgICBzaG93TWF4QnV0dG9uOiBmYWxzZSxcbiAgICBtaW5XaWR0aDogNjUwLFxuICAgIG1pbkhlaWdodDogMzAwLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IsIHByaXZhdGUgZm9ybUJhc2ljU2VydmljZTogRm9ybUJhc2ljU2VydmljZSwgcHJpdmF0ZSBub3RpZnlTZXJ2aWNlOiBOb3RpZnlTZXJ2aWNlKSB7IH1cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYodGhpcy5lZGl0b3JQYXJhbXMpe1xuICAgICAgdGhpcy5tb2RhbENvbmZpZyA9IHRoaXMuZWRpdG9yUGFyYW1zLm1vZGFsQ29uZmlnID8gdGhpcy5lZGl0b3JQYXJhbXMubW9kYWxDb25maWcgOiB0aGlzLm1vZGFsQ29uZmlnO1xuICAgICAgdGhpcy5nZXRSZWNlbnREYXRhSW5mbygpO1xuICAgICAgdGhpcy5nZXRSZWNvbW1hbmREYXRhSW5mbygpO1xuICAgIH1cbiAgICB0aGlzLmNob29zZVJlY2VudCA9IHRydWU7XG4gICAgdGhpcy5jaG9vc2VBbGwgPSBmYWxzZTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXMpe1xuICAgIGlmKGNoYW5nZXNbJ2VkaXRvclBhcmFtcyddKXtcbiAgICAgIHRoaXMubW9kYWxDb25maWcgPSB0aGlzLmVkaXRvclBhcmFtcy5tb2RhbENvbmZpZyA/IHRoaXMuZWRpdG9yUGFyYW1zLm1vZGFsQ29uZmlnIDogdGhpcy5tb2RhbENvbmZpZztcbiAgICAgIHRoaXMuZ2V0UmVjZW50RGF0YUluZm8oKTtcbiAgICAgIHRoaXMuZ2V0UmVjb21tYW5kRGF0YUluZm8oKTtcbiAgICB9XG4gIH1cblxuICAvKiog6I635Y+W5o6o6I2Q5pWw5o2uICovXG4gIGdldFJlY29tbWFuZERhdGFJbmZvKCkge1xuICAgIGNvbnN0IGh0dHAgPSB0aGlzLmluamVjdG9yLmdldChIdHRwQ2xpZW50KTtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLmVkaXRvclBhcmFtcy5yZWxhdGl2ZVBhdGggfHwgJyc7XG4gICAgLy8g5YWo6YOodWR0XG4gICAgY29uc3QgcGFnZVNpemUgPSAxMDAwO1xuICAgIHJldHVybiBodHRwLmdldCgnL2FwaS9kZXYvbWFpbi92MS4wL21kc2VydmljZS91bmlvbm1kbGlzdD9wYXRoPScgKyByZWxhdGl2ZVBhdGggKyAnJnBhZ2VJbmRleD0xJnBhZ2VTaXplPScgKyBwYWdlU2l6ZSArICcmbWV0YWRhdGFUeXBlTGlzdD0udWR0Jywge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KSxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nXG4gICAgfSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgdGhpcy5yZWludm9rZUludGVyZmFjZShkYXRhKTtcbiAgICAgIHRoaXMudWR0UmVjb21tYW5kRGF0YSA9IGNsb25lRGVlcCh0aGlzLmdldFJlY29tbWFuZERhdGEoZGF0YSkpO1xuICAgICAgdGhpcy51ZHREYXRhID0gdGhpcy51ZHRSZWNlbnREYXRhLmxlbmd0aCAhPSAwID8gdGhpcy51ZHRSZWNlbnREYXRhIDogdGhpcy51ZHRSZWNvbW1hbmREYXRhO1xuICAgICAgdGhpcy5jaG9vc2VSZWNlbnQgPSB0aGlzLnVkdFJlY2VudERhdGEubGVuZ3RoICE9IDAgPyB0cnVlIDogZmFsc2U7XG4gICAgICB0aGlzLmNob29zZUFsbCA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIOiOt+WPluacgOi/keaVsOaNriAqL1xuICBnZXRSZWNlbnREYXRhSW5mbygpIHtcbiAgICBjb25zdCBodHRwID0gdGhpcy5pbmplY3Rvci5nZXQoSHR0cENsaWVudCk7XG4gICAgY29uc3QgcmVsYXRpdmVQYXRoID0gdGhpcy5lZGl0b3JQYXJhbXMucmVsYXRpdmVQYXRoIHx8ICcnO1xuICAgIGNvbnN0IGFwcElkID0gcmVsYXRpdmVQYXRoWzBdID09ICcvJyA/IHJlbGF0aXZlUGF0aC5zcGxpdCgnLycpWzFdIDogcmVsYXRpdmVQYXRoLnNwbGl0KCcvJylbMF07XG4gICAgcmV0dXJuIGh0dHAuZ2V0KCcvYXBpL2Rldi9tYWluL3YxLjAvbWRzZXJ2aWNlL2dldG1kcmVjZW50dXNlP2FwcElkPScgKyBhcHBJZCArICcmbWV0YWRhdGFUeXBlTGlzdD0udWR0Jywge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KSxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nXG4gICAgfSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgdGhpcy51ZHRSZWNlbnREYXRhID0gY2xvbmVEZWVwKHRoaXMuZ2V0UmVjZW50RGF0YShkYXRhKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiog5aSE55CG5o6o6I2Q5pWw5o2uICovXG4gIGdldFJlY29tbWFuZERhdGEoZGF0YSkge1xuICAgIGNvbnN0IHVkdENhdGVnb3J5TGlzdCA9IGNsb25lRGVlcCh1ZHRSZWNvbW1hbmREYXRhRnJhbWUpO1xuICAgIGNvbnN0IHVkdE1ldGFkYXRhID0gZGF0YVsnbWV0YWRhdGFJbmRleEl0ZW1zJ10gPyBkYXRhWydtZXRhZGF0YUluZGV4SXRlbXMnXSA6IGRhdGE7XG4gICAgaWYgKHVkdE1ldGFkYXRhKSB7XG4gICAgICBjb25zdCB1ZHRBbGxEYXRhID0gW107XG4gICAgICB1ZHRNZXRhZGF0YS5mb3JFYWNoKGZ1bmN0aW9uICh1ZHRNZXRhZGF0YUl0ZW0pIHtcbiAgICAgICAgbGV0IHVkdE1ldGFkYXRhSXRlbVRlbXAgPSB7XG4gICAgICAgICAgbmFtZTogdWR0TWV0YWRhdGFJdGVtLm5hbWUsXG4gICAgICAgICAgbGFiZWw6IHVkdE1ldGFkYXRhSXRlbS5jb2RlLFxuICAgICAgICAgIGhpZGU6IGZhbHNlLFxuICAgICAgICAgIGFjdGl2ZTogZmFsc2UsXG4gICAgICAgICAgc3ZnOiBzdmdMaXN0LmluY2x1ZGVzKHVkdE1ldGFkYXRhSXRlbS5jb2RlKSA/IHVkdE1ldGFkYXRhSXRlbS5jb2RlIDogJ0dlbmVyYWwnLFxuICAgICAgICAgIGRhdGE6IHVkdE1ldGFkYXRhSXRlbVxuICAgICAgICB9XG4gICAgICAgIGxldCBrZXkgPSBPYmplY3Qua2V5cyh1ZHRSZWNvbW1hbmREYXRhTGlzdCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwga2V5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYgKHVkdFJlY29tbWFuZERhdGFMaXN0W2tleVtpXV0uaW5jbHVkZXModWR0TWV0YWRhdGFJdGVtLmNvZGUpKSB7XG4gICAgICAgICAgICB1ZHRDYXRlZ29yeUxpc3RbaV0uZGF0YS5wdXNoKGNsb25lRGVlcCh1ZHRNZXRhZGF0YUl0ZW1UZW1wKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHVkdEFsbERhdGEucHVzaChjbG9uZURlZXAodWR0TWV0YWRhdGFJdGVtVGVtcCkpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnVkdEFsbERhdGEgPSBjbG9uZURlZXAodWR0QWxsRGF0YSk7XG4gICAgfVxuICAgIHJldHVybiB1ZHRDYXRlZ29yeUxpc3Q7XG4gIH1cblxuICAvKiog5aSE55CG5pyA6L+R5pWw5o2uICovXG4gIGdldFJlY2VudERhdGEoZGF0YSkge1xuICAgIGxldCBtZXRhZGF0YSA9IFtdO1xuICAgIGlmIChkYXRhKSB7XG4gICAgICBjb25zdCB1ZHRNZXRhZGF0YSA9IGNsb25lRGVlcChkYXRhKTtcbiAgICAgIHVkdE1ldGFkYXRhLmZvckVhY2goZnVuY3Rpb24gKHVkdE1ldGFkYXRhSXRlbSkge1xuICAgICAgICBsZXQgdWR0TWV0YWRhdGFJdGVtVGVtcCA9IHtcbiAgICAgICAgICBuYW1lOiB1ZHRNZXRhZGF0YUl0ZW0ubmFtZSxcbiAgICAgICAgICBsYWJlbDogdWR0TWV0YWRhdGFJdGVtLmNvZGUsXG4gICAgICAgICAgaGlkZTogZmFsc2UsXG4gICAgICAgICAgYWN0aXZlOiBmYWxzZSxcbiAgICAgICAgICBzdmc6IHN2Z0xpc3QuaW5jbHVkZXModWR0TWV0YWRhdGFJdGVtLmNvZGUpID8gdWR0TWV0YWRhdGFJdGVtLmNvZGUgOiAnR2VuZXJhbCcsXG4gICAgICAgICAgZGF0YTogdWR0TWV0YWRhdGFJdGVtXG4gICAgICAgIH1cbiAgICAgICAgbWV0YWRhdGEucHVzaChjbG9uZURlZXAodWR0TWV0YWRhdGFJdGVtVGVtcCkpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBtZXRhZGF0YTtcbiAgfVxuXG4gIC8qKiDlsZXnpLrigJzmnIDov5HigJ3kuIDmoI8gKi9cbiAgc2hvd1JlY2VudERhdGEoKSB7XG4gICAgdGhpcy51ZHREYXRhID0gY2xvbmVEZWVwKHRoaXMudWR0UmVjZW50RGF0YSk7XG4gICAgdGhpcy5jaG9vc2VSZWNlbnQgPSB0cnVlO1xuICAgIHRoaXMuY2hvb3NlQWxsID0gZmFsc2U7XG4gICAgdGhpcy51ZHREYXRhID0gdGhpcy5vblNlYXJjaFZhbHVlQ2hhbmdlZCh0aGlzLnNlYXJjaFZhbHVlKTtcbiAgfVxuXG4gIC8qKiDlsZXnpLrigJzmjqjojZDigJ3kuIDmoI8gKi9cbiAgc2hvd1JlY29tbWFuZERhdGEoKSB7XG4gICAgdGhpcy51ZHREYXRhID0gY2xvbmVEZWVwKHRoaXMudWR0UmVjb21tYW5kRGF0YSk7XG4gICAgdGhpcy5jaG9vc2VSZWNlbnQgPSBmYWxzZTtcbiAgICB0aGlzLmNob29zZUFsbCA9IGZhbHNlO1xuICAgIHRoaXMudWR0RGF0YSA9IHRoaXMub25TZWFyY2hWYWx1ZUNoYW5nZWQodGhpcy5zZWFyY2hWYWx1ZSk7XG4gIH1cblxuICAvKiog5bGV56S64oCc5YWo6YOo4oCd5LiA5qCPICovXG4gIHNob3dBbGxEYXRhKCkge1xuICAgIHRoaXMudWR0RGF0YSA9IGNsb25lRGVlcCh0aGlzLnVkdEFsbERhdGEpO1xuICAgIHRoaXMuY2hvb3NlUmVjZW50ID0gZmFsc2U7XG4gICAgdGhpcy5jaG9vc2VBbGwgPSB0cnVlO1xuICAgIHRoaXMudWR0RGF0YSA9IHRoaXMub25TZWFyY2hWYWx1ZUNoYW5nZWQodGhpcy5zZWFyY2hWYWx1ZSk7XG4gIH1cblxuICAvKiog5pCc57Si6aG5ICovXG4gIG9uU2VhcmNoVmFsdWVDaGFuZ2VkKHNlYXJjaFZhbHVlKSB7XG4gICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSA9PSB1bmRlZmluZWQgPyAnJyA6IHNlYXJjaFZhbHVlO1xuICAgIHNlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWVbJ29yaWdpbmFsRXZlbnQnXSAhPSB1bmRlZmluZWQgPyBzZWFyY2hWYWx1ZS52YWx1ZSB8fCAnJyA6IHNlYXJjaFZhbHVlO1xuICAgIHRoaXMuc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZTtcbiAgICBsZXQgdmFsdWUgPSBzZWFyY2hWYWx1ZS5yZXBsYWNlQWxsKCcgJywgJycpLnJlcGxhY2VBbGwoJz4nLCAnJyk7XG4gICAgdmFsdWUgPSB2YWx1ZSA9PSAnJyA/ICcgJyA6IHZhbHVlO1xuICAgIHZhbHVlID0gdmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAoIXRoaXMuY2hvb3NlUmVjZW50ICYmICF0aGlzLmNob29zZUFsbCkge1xuICAgICAgdGhpcy51ZHREYXRhLmZvckVhY2godWR0RGF0YUl0ZW0gPT4ge1xuICAgICAgICB1ZHREYXRhSXRlbS5kYXRhLmZvckVhY2goZGF0YUl0ZW0gPT4ge1xuICAgICAgICAgIGxldCBjb21iaW5lZFN0cmluZyA9IGAke2RhdGFJdGVtLm5hbWV9ICR7ZGF0YUl0ZW0ubGFiZWx9YDtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBjb21iaW5lZFN0cmluZy50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgIGRhdGFJdGVtLmhpZGUgPSBzZWxlY3RlZEl0ZW0uaW5jbHVkZXModmFsdWUpID09IGZhbHNlID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICB9KVxuICAgICAgfSlcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnVkdERhdGEuZm9yRWFjaCh1ZHREYXRhSXRlbSA9PiB7XG4gICAgICAgIGxldCBjb21iaW5lZFN0cmluZyA9IGAke3VkdERhdGFJdGVtLm5hbWV9ICR7dWR0RGF0YUl0ZW0ubGFiZWx9YDtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gY29tYmluZWRTdHJpbmcudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgdWR0RGF0YUl0ZW0uaGlkZSA9IHNlbGVjdGVkSXRlbS5pbmNsdWRlcyh2YWx1ZSkgPT0gZmFsc2UgPyB0cnVlIDogZmFsc2U7XG4gICAgICB9KVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy51ZHREYXRhO1xuICB9XG5cbiAgLyoqIOeUqOaIt+mAieaLqeWAvCAqL1xuICBnZXRVZHREYXRhSXRlbShzZWxlY3RlZFVkdERhdGFJdGVtKSB7XG4gICAgaWYgKCF0aGlzLmNob29zZVJlY2VudCAmJiAhdGhpcy5jaG9vc2VBbGwpIHtcbiAgICAgIHRoaXMudWR0RGF0YS5mb3JFYWNoKHVkdERhdGFJdGVtID0+IHtcbiAgICAgICAgdWR0RGF0YUl0ZW0uZGF0YS5mb3JFYWNoKGRhdGFJdGVtID0+IHtcbiAgICAgICAgICBkYXRhSXRlbS5hY3RpdmUgPSBzZWxlY3RlZFVkdERhdGFJdGVtLmxhYmVsID09IGRhdGFJdGVtLmxhYmVsID8gIWRhdGFJdGVtLmFjdGl2ZSA6IGZhbHNlO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb21tYW5kID0gc2VsZWN0ZWRVZHREYXRhSXRlbS5sYWJlbCA9PSBkYXRhSXRlbS5sYWJlbCA/IGNsb25lRGVlcChzZWxlY3RlZFVkdERhdGFJdGVtKSA6IHRoaXMuc2VsZWN0ZWRDb21tYW5kO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMudWR0RGF0YS5mb3JFYWNoKHVkdERhdGFJdGVtID0+IHtcbiAgICAgICAgdWR0RGF0YUl0ZW0uYWN0aXZlID0gc2VsZWN0ZWRVZHREYXRhSXRlbS5sYWJlbCA9PSB1ZHREYXRhSXRlbS5sYWJlbCA/ICF1ZHREYXRhSXRlbS5hY3RpdmUgOiBmYWxzZTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENvbW1hbmQgPSBzZWxlY3RlZFVkdERhdGFJdGVtLmxhYmVsID09IHVkdERhdGFJdGVtLmxhYmVsID8gY2xvbmVEZWVwKHNlbGVjdGVkVWR0RGF0YUl0ZW0pIDogdGhpcy5zZWxlY3RlZENvbW1hbmQ7XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIC8qKiDmuIXnqbrmkJzntKLlhoXlrrkgKi9cbiAgb25DbGVhcigpIHtcbiAgICB0aGlzLnVkdERhdGEgPSB0aGlzLm9uU2VhcmNoVmFsdWVDaGFuZ2VkKCcnKTtcbiAgfVxuXG4gIC8qKiDljrvph40qL1xuICBnZXRVbmlxdWVEYXRhKHVkdFJlY2VudERhdGEpIHtcbiAgICBsZXQgdmFsdWUgPSBjbG9uZURlZXAodWR0UmVjZW50RGF0YSk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IGkgKyAxOyBqIDwgdmFsdWUubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgaWYgKHZhbHVlW2ldWydsYWJlbCddID09IHZhbHVlW2pdWydsYWJlbCddKSB7XG4gICAgICAgICAgdmFsdWUuc3BsaWNlKGosIDEpO1xuICAgICAgICAgIGotLTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICAvKiog5pS25oqY5b2T5YmN5YiG57G7ICovXG4gIGZvbGRJbihjYXRlZ29yeSkge1xuICAgIGNhdGVnb3J5LmZvbGQgPSAhY2F0ZWdvcnkuZm9sZDtcbiAgfVxuXG4gIC8qKiDnlKjmiLfngrnlh7vnoa7lrprml7bosIPnlKhwb3N0QXBp5Lyg5Ye65Y+C5pWwICovXG4gIGNsaWNrQ29uZmlybSgpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZENvbW1hbmQgJiYgdGhpcy5zZWxlY3RlZENvbW1hbmRbJ2FjdGl2ZSddKSB7XG4gICAgICBjb25zdCBodHRwID0gdGhpcy5pbmplY3Rvci5nZXQoSHR0cENsaWVudCk7XG4gICAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLmVkaXRvclBhcmFtcy5yZWxhdGl2ZVBhdGggfHwgJyc7XG4gICAgICBjb25zdCBwYXRoID0gJy9hcGkvZGV2L21haW4vdjEuMC9tZHNlcnZpY2UvcGlja01ldGFkYXRhP2N1cnJlbnRQYXRoPScgKyByZWxhdGl2ZVBhdGg7XG4gICAgICBjb25zdCBib2R5ID0gdGhpcy5zZWxlY3RlZENvbW1hbmQuZGF0YTtcbiAgICAgIGNvbnN0IGhlYWRlck9wdGlvbiA9IHtcbiAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KVxuICAgICAgfVxuICAgICAgcmV0dXJuIGh0dHAucG9zdChwYXRoLCBib2R5LCBoZWFkZXJPcHRpb24pLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgZGF0YVsncHJvY2Vzc01vZGUnXSA9PT0gJ2ludGVycHJldGF0aW9uJyA/ICdpbnRlcnByZXRhdGlvbicgOiAnZ2VuZXJhbCc7XG4gICAgICAgIHRoaXMuc3VibWl0TW9kYWwuZW1pdChkYXRhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMubm90aWZ5U2VydmljZVsnaW5mbyddKCfmnKrpgInmi6nkuJrliqHlrZfmrrUnKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGNsaWNrQ2FuY2VsKCkge1xuICAgIHRoaXMuY2xvc2VNb2RhbC5lbWl0KCk7XG4gIH1cbiAgLyoqIOaOpeWPo+aVsOaNrui2hei/hzEwMDDmnaHml7bvvIzph43mlrDosIPlj5bmiYDmnInmlbDmja4gKi9cbiAgcmVpbnZva2VJbnRlcmZhY2UoZGF0YSkge1xuICAgIGlmIChkYXRhWydwYWdlJ10pIHtcbiAgICAgIGNvbnN0IHRvdGFsTnVtID0gZGF0YVsncGFnZSddWyd0b3RhbCddIHx8IDA7XG4gICAgICBpZiAodG90YWxOdW0gPiAxMDAwKSB7XG4gICAgICAgIGNvbnN0IGh0dHAgPSB0aGlzLmluamVjdG9yLmdldChIdHRwQ2xpZW50KTtcbiAgICAgICAgY29uc3QgcmVsYXRpdmVQYXRoID0gdGhpcy5lZGl0b3JQYXJhbXMucmVsYXRpdmVQYXRoIHx8ICcnO1xuICAgICAgICByZXR1cm4gaHR0cC5nZXQoJy9hcGkvZGV2L21haW4vdjEuMC9tZHNlcnZpY2UvdW5pb25tZGxpc3Q/cGF0aD0nICsgcmVsYXRpdmVQYXRoICsgJyZwYWdlSW5kZXg9MSZwYWdlU2l6ZT0nICsgdG90YWxOdW0gKyAnJm1ldGFkYXRhVHlwZUxpc3Q9LnVkdCcsIHtcbiAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pLFxuICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nXG4gICAgICAgIH0pLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICB0aGlzLnVkdFJlY29tbWFuZERhdGEgPSBjbG9uZURlZXAodGhpcy5nZXRSZWNvbW1hbmREYXRhKGRhdGEpKTtcbiAgICAgICAgICB0aGlzLnVkdERhdGEgPSB0aGlzLnVkdFJlY2VudERhdGEubGVuZ3RoICE9IDAgPyB0aGlzLnVkdFJlY2VudERhdGEgOiB0aGlzLnVkdFJlY29tbWFuZERhdGE7XG4gICAgICAgICAgdGhpcy5jaG9vc2VSZWNlbnQgPSB0aGlzLnVkdFJlY2VudERhdGEubGVuZ3RoICE9IDAgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLW5hdmlnYXRpb24tdWR0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmYXJyaXMvYXBwLW5hdmlnYXRpb24tdWR0LyIsInNvdXJjZXMiOlsibGliL2FwcC1uYXZpZ2F0aW9uLXVkdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVFsRCxNQUFNLE9BQU8seUJBQXlCOzs7Ozs7SUF3Q3BDLFlBQW1CLFFBQWtCLEVBQVUsZ0JBQWtDLEVBQVUsYUFBNEI7UUFBcEcsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTs7OztRQWxDN0csZUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7Ozs7UUFFckMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBT2hELGNBQVMsR0FBRyx5Q0FBeUMsQ0FBQzs7OztRQUV0RCxpQkFBWSxHQUFZLElBQUksQ0FBQzs7OztRQUU3QixjQUFTLEdBQVksS0FBSyxDQUFDOzs7O1FBSTNCLGtCQUFhLEdBQVEsRUFBRSxDQUFDOzs7O1FBSXhCLGVBQVUsR0FBUSxFQUFF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QW9COztJQUNwQiw4Q0FBc0Q7Ozs7O0lBRXRELGlEQUE2Qjs7Ozs7SUFFN0IsOENBQTJCOzs7OztJQUUzQixvREFBcUI7Ozs7O0lBRXJCLGtEQUF3Qjs7Ozs7SUFFeEIscURBQWlCOzs7OztJQUVqQiwrQ0FBcUI7Ozs7O0lBRXJCLGdEQVNFOztJQUVVLDZDQUF5Qjs7Ozs7SUFBRSxxREFBMEM7Ozs7O0lBQUUsa0RBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdG9yLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IHN2Z0xpc3QsIHVkdFJlY29tbWFuZERhdGFMaXN0LCB1ZHRSZWNvbW1hbmREYXRhRnJhbWUgfSBmcm9tICcuL21vY2tEYXRhJztcbmltcG9ydCB7IEZvcm1CYXNpY1NlcnZpY2UgfSBmcm9tICdAZmFycmlzL2Rlc2lnbmVyLXNlcnZpY2VzJztcbmltcG9ydCB7IE5vdGlmeVNlcnZpY2UgfSBmcm9tICdAZmFycmlzL3VpLW5vdGlmeSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZhcnJpcy1hcHBOYXZpZ2F0aW9uVWR0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcC1uYXZpZ2F0aW9uLXVkdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FwcC1uYXZpZ2F0aW9uLXVkdC5jb21wb25lbnQuY3NzJ11cbn0pXG5cbmV4cG9ydCBjbGFzcyBBcHBOYXZpZ2F0aW9uVWR0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqIOWFpeWPgiAqL1xuICBASW5wdXQoKSBpbml0aWFsU3RhdGU6IGFueTtcbiAgLyoqIOWFpeWPgiAqL1xuICBASW5wdXQoKSBlZGl0b3JQYXJhbXM6IGFueTtcbiAgLyoqIOWFs+mXreW8ueeqlyAqL1xuICBAT3V0cHV0KCkgY2xvc2VNb2RhbCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAvKiog5Lyg6YCS5Y+C5pWwICovXG4gIEBPdXRwdXQoKSBzdWJtaXRNb2RhbCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAVmlld0NoaWxkKCdmb290ZXInKSBtb2RhbEZvb3RlcjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKiog5Y6f5aeL5pWw5o2uICovXG4gIHVkdERhdGE6IGFueTtcbiAgLyoqIOaQnOe0ouahhui+k+WFpeWAvCAqL1xuICBzZWFyY2hWYWx1ZTogc3RyaW5nO1xuICBncm91cEljb24gPSAnPHNwYW4gY2xhc3M9XCJrLWljb24gay1pLXNlYXJjaFwiPjwvc3Bhbj4nO1xuICAvKiog5b2T5YmN6YCJ5Lit55qE5bGV56S65pWw5o2u77ya5pyA6L+R5oiW5o6o6I2QICovXG4gIGNob29zZVJlY2VudDogYm9vbGVhbiA9IHRydWU7XG4gIC8qKiDlvZPliY3pgInkuK3nmoTlsZXnpLrmlbDmja7vvJrmnIDov5HmiJbmjqjojZAgKi9cbiAgY2hvb3NlQWxsOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiDnlKjmiLfpgInmi6nnmoTmlbDmja4gKi9cbiAgc2VsZWN0ZWRDb21tYW5kOiBhbnk7XG4gIC8qKiDmnIDov5HmlbDmja4gKi9cbiAgdWR0UmVjZW50RGF0YTogYW55ID0gW107XG4gIC8qKiDmjqjojZDmlbDmja4qL1xuICB1ZHRSZWNvbW1hbmREYXRhO1xuICAvKiog5YWo6YOo5pWw5o2uKi9cbiAgdWR0QWxsRGF0YTogYW55ID0gW107XG4gIC8qKiDlvLnnqpforr7lrprlgLwgKi9cbiAgbW9kYWxDb25maWcgPSB7XG4gICAgdGl0bGU6ICfpgInmi6nkuJrliqHlrZfmrrUnLFxuICAgIHdpZHRoOiA5MjAsXG4gICAgaGVpZ2h0OiA1MDAsXG4gICAgcmVzaXphYmxlOiB0cnVlLFxuICAgIHNob3dCdXR0b25zOiBmYWxzZSxcbiAgICBzaG93TWF4QnV0dG9uOiBmYWxzZSxcbiAgICBtaW5XaWR0aDogNjUwLFxuICAgIG1pbkhlaWdodDogMzAwLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IsIHByaXZhdGUgZm9ybUJhc2ljU2VydmljZTogRm9ybUJhc2ljU2VydmljZSwgcHJpdmF0ZSBub3RpZnlTZXJ2aWNlOiBOb3RpZnlTZXJ2aWNlKSB7IH1cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYodGhpcy5lZGl0b3JQYXJhbXMpe1xuICAgICAgdGhpcy5tb2RhbENvbmZpZyA9IHRoaXMuZWRpdG9yUGFyYW1zLm1vZGFsQ29uZmlnID8gdGhpcy5lZGl0b3JQYXJhbXMubW9kYWxDb25maWcgOiB0aGlzLm1vZGFsQ29uZmlnO1xuICAgICAgdGhpcy5nZXRSZWNlbnREYXRhSW5mbygpO1xuICAgICAgdGhpcy5nZXRSZWNvbW1hbmREYXRhSW5mbygpO1xuICAgIH1cbiAgICB0aGlzLmNob29zZVJlY2VudCA9IHRydWU7XG4gICAgdGhpcy5jaG9vc2VBbGwgPSBmYWxzZTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXMpe1xuICAgIGlmKGNoYW5nZXNbJ2VkaXRvclBhcmFtcyddKXtcbiAgICAgIHRoaXMubW9kYWxDb25maWcgPSB0aGlzLmVkaXRvclBhcmFtcy5tb2RhbENvbmZpZyA/IHRoaXMuZWRpdG9yUGFyYW1zLm1vZGFsQ29uZmlnIDogdGhpcy5tb2RhbENvbmZpZztcbiAgICAgIHRoaXMuZ2V0UmVjZW50RGF0YUluZm8oKTtcbiAgICAgIHRoaXMuZ2V0UmVjb21tYW5kRGF0YUluZm8oKTtcbiAgICB9XG4gIH1cblxuICAvKiog6I635Y+W5o6o6I2Q5pWw5o2uICovXG4gIGdldFJlY29tbWFuZERhdGFJbmZvKCkge1xuICAgIGNvbnN0IGh0dHAgPSB0aGlzLmluamVjdG9yLmdldChIdHRwQ2xpZW50KTtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLmVkaXRvclBhcmFtcy5yZWxhdGl2ZVBhdGggfHwgJyc7XG4gICAgLy8g5YWo6YOodWR0XG4gICAgY29uc3QgcGFnZVNpemUgPSAxMDAwO1xuICAgIHJldHVybiBodHRwLmdldCgnL2FwaS9kZXYvbWFpbi92MS4wL21kc2VydmljZS91bmlvbm1kbGlzdD9wYXRoPScgKyByZWxhdGl2ZVBhdGggKyAnJnBhZ2VJbmRleD0xJnBhZ2VTaXplPScgKyBwYWdlU2l6ZSArICcmbWV0YWRhdGFUeXBlTGlzdD0udWR0Jywge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KSxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nXG4gICAgfSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgdGhpcy5yZWludm9rZUludGVyZmFjZShkYXRhKTtcbiAgICAgIHRoaXMudWR0UmVjb21tYW5kRGF0YSA9IGNsb25lRGVlcCh0aGlzLmdldFJlY29tbWFuZERhdGEoZGF0YSkpO1xuICAgICAgdGhpcy51ZHREYXRhID0gdGhpcy51ZHRSZWNlbnREYXRhLmxlbmd0aCAhPSAwID8gdGhpcy51ZHRSZWNlbnREYXRhIDogdGhpcy51ZHRSZWNvbW1hbmREYXRhO1xuICAgICAgdGhpcy5jaG9vc2VSZWNlbnQgPSB0aGlzLnVkdFJlY2VudERhdGEubGVuZ3RoICE9IDAgPyB0cnVlIDogZmFsc2U7XG4gICAgICB0aGlzLmNob29zZUFsbCA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIOiOt+WPluacgOi/keaVsOaNriAqL1xuICBnZXRSZWNlbnREYXRhSW5mbygpIHtcbiAgICBjb25zdCBodHRwID0gdGhpcy5pbmplY3Rvci5nZXQoSHR0cENsaWVudCk7XG4gICAgY29uc3QgcmVsYXRpdmVQYXRoID0gdGhpcy5lZGl0b3JQYXJhbXMucmVsYXRpdmVQYXRoIHx8ICcnO1xuICAgIGNvbnN0IGFwcElkID0gcmVsYXRpdmVQYXRoWzBdID09ICcvJyA/IHJlbGF0aXZlUGF0aC5zcGxpdCgnLycpWzFdIDogcmVsYXRpdmVQYXRoLnNwbGl0KCcvJylbMF07XG4gICAgcmV0dXJuIGh0dHAuZ2V0KCcvYXBpL2Rldi9tYWluL3YxLjAvbWRzZXJ2aWNlL2dldG1kcmVjZW50dXNlP2FwcElkPScgKyBhcHBJZCArICcmbWV0YWRhdGFUeXBlTGlzdD0udWR0Jywge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KSxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nXG4gICAgfSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgdGhpcy51ZHRSZWNlbnREYXRhID0gY2xvbmVEZWVwKHRoaXMuZ2V0UmVjZW50RGF0YShkYXRhKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiog5aSE55CG5o6o6I2Q5pWw5o2uICovXG4gIGdldFJlY29tbWFuZERhdGEoZGF0YSkge1xuICAgIGNvbnN0IHVkdENhdGVnb3J5TGlzdCA9IGNsb25lRGVlcCh1ZHRSZWNvbW1hbmREYXRhRnJhbWUpO1xuICAgIGNvbnN0IHVkdE1ldGFkYXRhID0gZGF0YVsnbWV0YWRhdGFJbmRleEl0ZW1zJ10gPyBkYXRhWydtZXRhZGF0YUluZGV4SXRlbXMnXSA6IGRhdGE7XG4gICAgaWYgKHVkdE1ldGFkYXRhKSB7XG4gICAgICBjb25zdCB1ZHRBbGxEYXRhID0gW107XG4gICAgICB1ZHRNZXRhZGF0YS5mb3JFYWNoKGZ1bmN0aW9uICh1ZHRNZXRhZGF0YUl0ZW0pIHtcbiAgICAgICAgbGV0IHVkdE1ldGFkYXRhSXRlbVRlbXAgPSB7XG4gICAgICAgICAgbmFtZTogdWR0TWV0YWRhdGFJdGVtLm5hbWUsXG4gICAgICAgICAgbGFiZWw6IHVkdE1ldGFkYXRhSXRlbS5jb2RlLFxuICAgICAgICAgIGhpZGU6IGZhbHNlLFxuICAgICAgICAgIGFjdGl2ZTogZmFsc2UsXG4gICAgICAgICAgc3ZnOiBzdmdMaXN0LmluY2x1ZGVzKHVkdE1ldGFkYXRhSXRlbS5jb2RlKSA/IHVkdE1ldGFkYXRhSXRlbS5jb2RlIDogJ0dlbmVyYWwnLFxuICAgICAgICAgIGRhdGE6IHVkdE1ldGFkYXRhSXRlbVxuICAgICAgICB9XG4gICAgICAgIGxldCBrZXkgPSBPYmplY3Qua2V5cyh1ZHRSZWNvbW1hbmREYXRhTGlzdCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwga2V5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYgKHVkdFJlY29tbWFuZERhdGFMaXN0W2tleVtpXV0uaW5jbHVkZXModWR0TWV0YWRhdGFJdGVtLmNvZGUpKSB7XG4gICAgICAgICAgICB1ZHRDYXRlZ29yeUxpc3RbaV0uZGF0YS5wdXNoKGNsb25lRGVlcCh1ZHRNZXRhZGF0YUl0ZW1UZW1wKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHVkdEFsbERhdGEucHVzaChjbG9uZURlZXAodWR0TWV0YWRhdGFJdGVtVGVtcCkpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnVkdEFsbERhdGEgPSBjbG9uZURlZXAodWR0QWxsRGF0YSk7XG4gICAgfVxuICAgIHJldHVybiB1ZHRDYXRlZ29yeUxpc3Q7XG4gIH1cblxuICAvKiog5aSE55CG5pyA6L+R5pWw5o2uICovXG4gIGdldFJlY2VudERhdGEoZGF0YSkge1xuICAgIGxldCBtZXRhZGF0YSA9IFtdO1xuICAgIGlmIChkYXRhKSB7XG4gICAgICBjb25zdCB1ZHRNZXRhZGF0YSA9IGNsb25lRGVlcChkYXRhKTtcbiAgICAgIHVkdE1ldGFkYXRhLmZvckVhY2goZnVuY3Rpb24gKHVkdE1ldGFkYXRhSXRlbSkge1xuICAgICAgICBsZXQgdWR0TWV0YWRhdGFJdGVtVGVtcCA9IHtcbiAgICAgICAgICBuYW1lOiB1ZHRNZXRhZGF0YUl0ZW0ubmFtZSxcbiAgICAgICAgICBsYWJlbDogdWR0TWV0YWRhdGFJdGVtLmNvZGUsXG4gICAgICAgICAgaGlkZTogZmFsc2UsXG4gICAgICAgICAgYWN0aXZlOiBmYWxzZSxcbiAgICAgICAgICBzdmc6IHN2Z0xpc3QuaW5jbHVkZXModWR0TWV0YWRhdGFJdGVtLmNvZGUpID8gdWR0TWV0YWRhdGFJdGVtLmNvZGUgOiAnR2VuZXJhbCcsXG4gICAgICAgICAgZGF0YTogdWR0TWV0YWRhdGFJdGVtXG4gICAgICAgIH1cbiAgICAgICAgbWV0YWRhdGEucHVzaChjbG9uZURlZXAodWR0TWV0YWRhdGFJdGVtVGVtcCkpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBtZXRhZGF0YTtcbiAgfVxuXG4gIC8qKiDlsZXnpLrigJzmnIDov5HigJ3kuIDmoI8gKi9cbiAgc2hvd1JlY2VudERhdGEoKSB7XG4gICAgdGhpcy51ZHREYXRhID0gY2xvbmVEZWVwKHRoaXMudWR0UmVjZW50RGF0YSk7XG4gICAgdGhpcy5jaG9vc2VSZWNlbnQgPSB0cnVlO1xuICAgIHRoaXMuY2hvb3NlQWxsID0gZmFsc2U7XG4gICAgdGhpcy51ZHREYXRhID0gdGhpcy5vblNlYXJjaFZhbHVlQ2hhbmdlZCh0aGlzLnNlYXJjaFZhbHVlKTtcbiAgfVxuXG4gIC8qKiDlsZXnpLrigJzmjqjojZDigJ3kuIDmoI8gKi9cbiAgc2hvd1JlY29tbWFuZERhdGEoKSB7XG4gICAgdGhpcy51ZHREYXRhID0gY2xvbmVEZWVwKHRoaXMudWR0UmVjb21tYW5kRGF0YSk7XG4gICAgdGhpcy5jaG9vc2VSZWNlbnQgPSBmYWxzZTtcbiAgICB0aGlzLmNob29zZUFsbCA9IGZhbHNlO1xuICAgIHRoaXMudWR0RGF0YSA9IHRoaXMub25TZWFyY2hWYWx1ZUNoYW5nZWQodGhpcy5zZWFyY2hWYWx1ZSk7XG4gIH1cblxuICAvKiog5bGV56S64oCc5YWo6YOo4oCd5LiA5qCPICovXG4gIHNob3dBbGxEYXRhKCkge1xuICAgIHRoaXMudWR0RGF0YSA9IGNsb25lRGVlcCh0aGlzLnVkdEFsbERhdGEpO1xuICAgIHRoaXMuY2hvb3NlUmVjZW50ID0gZmFsc2U7XG4gICAgdGhpcy5jaG9vc2VBbGwgPSB0cnVlO1xuICAgIHRoaXMudWR0RGF0YSA9IHRoaXMub25TZWFyY2hWYWx1ZUNoYW5nZWQodGhpcy5zZWFyY2hWYWx1ZSk7XG4gIH1cblxuICAvKiog5pCc57Si6aG5ICovXG4gIG9uU2VhcmNoVmFsdWVDaGFuZ2VkKHNlYXJjaFZhbHVlKSB7XG4gICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSA9PSB1bmRlZmluZWQgPyAnJyA6IHNlYXJjaFZhbHVlO1xuICAgIHNlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWVbJ29yaWdpbmFsRXZlbnQnXSAhPSB1bmRlZmluZWQgPyBzZWFyY2hWYWx1ZS52YWx1ZSB8fCAnJyA6IHNlYXJjaFZhbHVlO1xuICAgIHRoaXMuc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZTtcbiAgICBsZXQgdmFsdWUgPSBzZWFyY2hWYWx1ZS5yZXBsYWNlQWxsKCcgJywgJycpLnJlcGxhY2VBbGwoJz4nLCAnJyk7XG4gICAgdmFsdWUgPSB2YWx1ZSA9PSAnJyA/ICcgJyA6IHZhbHVlO1xuICAgIHZhbHVlID0gdmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAoIXRoaXMuY2hvb3NlUmVjZW50ICYmICF0aGlzLmNob29zZUFsbCkge1xuICAgICAgdGhpcy51ZHREYXRhLmZvckVhY2godWR0RGF0YUl0ZW0gPT4ge1xuICAgICAgICB1ZHREYXRhSXRlbS5kYXRhLmZvckVhY2goZGF0YUl0ZW0gPT4ge1xuICAgICAgICAgIGxldCBjb21iaW5lZFN0cmluZyA9IGAke2RhdGFJdGVtLm5hbWV9ICR7ZGF0YUl0ZW0ubGFiZWx9YDtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBjb21iaW5lZFN0cmluZy50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgIGRhdGFJdGVtLmhpZGUgPSBzZWxlY3RlZEl0ZW0uaW5jbHVkZXModmFsdWUpID09IGZhbHNlID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICB9KVxuICAgICAgfSlcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnVkdERhdGEuZm9yRWFjaCh1ZHREYXRhSXRlbSA9PiB7XG4gICAgICAgIGxldCBjb21iaW5lZFN0cmluZyA9IGAke3VkdERhdGFJdGVtLm5hbWV9ICR7dWR0RGF0YUl0ZW0ubGFiZWx9YDtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gY29tYmluZWRTdHJpbmcudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgdWR0RGF0YUl0ZW0uaGlkZSA9IHNlbGVjdGVkSXRlbS5pbmNsdWRlcyh2YWx1ZSkgPT0gZmFsc2UgPyB0cnVlIDogZmFsc2U7XG4gICAgICB9KVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy51ZHREYXRhO1xuICB9XG5cbiAgLyoqIOeUqOaIt+mAieaLqeWAvCAqL1xuICBnZXRVZHREYXRhSXRlbShzZWxlY3RlZFVkdERhdGFJdGVtKSB7XG4gICAgaWYgKCF0aGlzLmNob29zZVJlY2VudCAmJiAhdGhpcy5jaG9vc2VBbGwpIHtcbiAgICAgIHRoaXMudWR0RGF0YS5mb3JFYWNoKHVkdERhdGFJdGVtID0+IHtcbiAgICAgICAgdWR0RGF0YUl0ZW0uZGF0YS5mb3JFYWNoKGRhdGFJdGVtID0+IHtcbiAgICAgICAgICBkYXRhSXRlbS5hY3RpdmUgPSBzZWxlY3RlZFVkdERhdGFJdGVtLmxhYmVsID09IGRhdGFJdGVtLmxhYmVsID8gIWRhdGFJdGVtLmFjdGl2ZSA6IGZhbHNlO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb21tYW5kID0gc2VsZWN0ZWRVZHREYXRhSXRlbS5sYWJlbCA9PSBkYXRhSXRlbS5sYWJlbCA/IGNsb25lRGVlcChzZWxlY3RlZFVkdERhdGFJdGVtKSA6IHRoaXMuc2VsZWN0ZWRDb21tYW5kO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMudWR0RGF0YS5mb3JFYWNoKHVkdERhdGFJdGVtID0+IHtcbiAgICAgICAgdWR0RGF0YUl0ZW0uYWN0aXZlID0gc2VsZWN0ZWRVZHREYXRhSXRlbS5sYWJlbCA9PSB1ZHREYXRhSXRlbS5sYWJlbCA/ICF1ZHREYXRhSXRlbS5hY3RpdmUgOiBmYWxzZTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENvbW1hbmQgPSBzZWxlY3RlZFVkdERhdGFJdGVtLmxhYmVsID09IHVkdERhdGFJdGVtLmxhYmVsID8gY2xvbmVEZWVwKHNlbGVjdGVkVWR0RGF0YUl0ZW0pIDogdGhpcy5zZWxlY3RlZENvbW1hbmQ7XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIC8qKiDmuIXnqbrmkJzntKLlhoXlrrkgKi9cbiAgb25DbGVhcigpIHtcbiAgICB0aGlzLnVkdERhdGEgPSB0aGlzLm9uU2VhcmNoVmFsdWVDaGFuZ2VkKCcnKTtcbiAgfVxuXG4gIC8qKiDljrvph40qL1xuICBnZXRVbmlxdWVEYXRhKHVkdFJlY2VudERhdGEpIHtcbiAgICBsZXQgdmFsdWUgPSBjbG9uZURlZXAodWR0UmVjZW50RGF0YSk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IGkgKyAxOyBqIDwgdmFsdWUubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgaWYgKHZhbHVlW2ldWydsYWJlbCddID09IHZhbHVlW2pdWydsYWJlbCddKSB7XG4gICAgICAgICAgdmFsdWUuc3BsaWNlKGosIDEpO1xuICAgICAgICAgIGotLTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICAvKiog5pS25oqY5b2T5YmN5YiG57G7ICovXG4gIGZvbGRJbihjYXRlZ29yeSkge1xuICAgIGNhdGVnb3J5LmZvbGQgPSAhY2F0ZWdvcnkuZm9sZDtcbiAgfVxuXG4gIC8qKiDnlKjmiLfngrnlh7vnoa7lrprml7bosIPnlKhwb3N0QXBp5Lyg5Ye65Y+C5pWwICovXG4gIGNsaWNrQ29uZmlybSgpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZENvbW1hbmQgJiYgdGhpcy5zZWxlY3RlZENvbW1hbmRbJ2FjdGl2ZSddKSB7XG4gICAgICBjb25zdCBodHRwID0gdGhpcy5pbmplY3Rvci5nZXQoSHR0cENsaWVudCk7XG4gICAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLmVkaXRvclBhcmFtcy5yZWxhdGl2ZVBhdGggfHwgJyc7XG4gICAgICBjb25zdCBwYXRoID0gJy9hcGkvZGV2L21haW4vdjEuMC9tZHNlcnZpY2UvcGlja01ldGFkYXRhP2N1cnJlbnRQYXRoPScgKyByZWxhdGl2ZVBhdGg7XG4gICAgICBjb25zdCBib2R5ID0gdGhpcy5zZWxlY3RlZENvbW1hbmQuZGF0YTtcbiAgICAgIGNvbnN0IGhlYWRlck9wdGlvbiA9IHtcbiAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KVxuICAgICAgfVxuICAgICAgcmV0dXJuIGh0dHAucG9zdChwYXRoLCBib2R5LCBoZWFkZXJPcHRpb24pLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgZGF0YVsnbWV0YWRhdGEnXVsncHJvY2Vzc01vZGUnXSA9PT0gJ2ludGVycHJldGF0aW9uJyA/ICdpbnRlcnByZXRhdGlvbicgOiAnZ2VuZXJhbCc7XG4gICAgICAgIHRoaXMuc3VibWl0TW9kYWwuZW1pdChkYXRhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMubm90aWZ5U2VydmljZVsnaW5mbyddKCfmnKrpgInmi6nkuJrliqHlrZfmrrUnKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGNsaWNrQ2FuY2VsKCkge1xuICAgIHRoaXMuY2xvc2VNb2RhbC5lbWl0KCk7XG4gIH1cbiAgLyoqIOaOpeWPo+aVsOaNrui2hei/hzEwMDDmnaHml7bvvIzph43mlrDosIPlj5bmiYDmnInmlbDmja4gKi9cbiAgcmVpbnZva2VJbnRlcmZhY2UoZGF0YSkge1xuICAgIGlmIChkYXRhWydwYWdlJ10pIHtcbiAgICAgIGNvbnN0IHRvdGFsTnVtID0gZGF0YVsncGFnZSddWyd0b3RhbCddIHx8IDA7XG4gICAgICBpZiAodG90YWxOdW0gPiAxMDAwKSB7XG4gICAgICAgIGNvbnN0IGh0dHAgPSB0aGlzLmluamVjdG9yLmdldChIdHRwQ2xpZW50KTtcbiAgICAgICAgY29uc3QgcmVsYXRpdmVQYXRoID0gdGhpcy5lZGl0b3JQYXJhbXMucmVsYXRpdmVQYXRoIHx8ICcnO1xuICAgICAgICByZXR1cm4gaHR0cC5nZXQoJy9hcGkvZGV2L21haW4vdjEuMC9tZHNlcnZpY2UvdW5pb25tZGxpc3Q/cGF0aD0nICsgcmVsYXRpdmVQYXRoICsgJyZwYWdlSW5kZXg9MSZwYWdlU2l6ZT0nICsgdG90YWxOdW0gKyAnJm1ldGFkYXRhVHlwZUxpc3Q9LnVkdCcsIHtcbiAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pLFxuICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nXG4gICAgICAgIH0pLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICB0aGlzLnVkdFJlY29tbWFuZERhdGEgPSBjbG9uZURlZXAodGhpcy5nZXRSZWNvbW1hbmREYXRhKGRhdGEpKTtcbiAgICAgICAgICB0aGlzLnVkdERhdGEgPSB0aGlzLnVkdFJlY2VudERhdGEubGVuZ3RoICE9IDAgPyB0aGlzLnVkdFJlY2VudERhdGEgOiB0aGlzLnVkdFJlY29tbWFuZERhdGE7XG4gICAgICAgICAgdGhpcy5jaG9vc2VSZWNlbnQgPSB0aGlzLnVkdFJlY2VudERhdGEubGVuZ3RoICE9IDAgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19

@@ -446,3 +446,3 @@ /**

function (data) {
data['processMode'] === 'interpretation' ? 'interpretation' : 'general';
data['metadata']['processMode'] === 'interpretation' ? 'interpretation' : 'general';
_this.submitModal.emit(data);

@@ -607,2 +607,2 @@ }));

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLW5hdmlnYXRpb24tdWR0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmYXJyaXMvYXBwLW5hdmlnYXRpb24tdWR0LyIsInNvdXJjZXMiOlsibGliL2FwcC1uYXZpZ2F0aW9uLXVkdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVsRDtJQThDRSxtQ0FBbUIsUUFBa0IsRUFBVSxnQkFBa0MsRUFBVSxhQUE0QjtRQUFwRyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFlOzs7O1FBbEM3RyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQzs7OztRQUVyQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFPaEQsY0FBUyxHQUFHLHlDQUF5QyxDQUFDOzs7O1FBRXRELGlCQUFZLEdBQVksSUFBSSxDQUFDOzs7O1FBRTdCLGNBQVMsR0FBWSxLQUFLLENBQUM7Ozs7UUFJM0Isa0JBQWEsR0FBUSxFQUFFLENBQUM7Ozs7UUFJeEIsZUFBVSxHQUFRLEVBQUUsQ0FBQzs7OztRQUVyQixnQkFBVyxH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QVEsRUFBRSx5QkFBeUI7b0JBQ25DLDR2SkFBa0Q7O2lCQUVuRDs7OztnQkFYMkIsUUFBUTtnQkFJM0IsZ0JBQWdCO2dCQUNoQixhQUFhOzs7K0JBVW5CLEtBQUs7K0JBRUwsS0FBSzs2QkFFTCxNQUFNOzhCQUVOLE1BQU07OEJBQ04sU0FBUyxTQUFDLFFBQVE7O0lBd1FyQixnQ0FBQztDQUFBLEFBdlJELElBdVJDO1NBalJZLHlCQUF5Qjs7Ozs7O0lBRXBDLGlEQUEyQjs7Ozs7SUFFM0IsaURBQTJCOzs7OztJQUUzQiwrQ0FBK0M7Ozs7O0lBRS9DLGdEQUFnRDs7SUFDaEQsZ0RBQW1EOzs7OztJQUduRCw0Q0FBYTs7Ozs7SUFFYixnREFBb0I7O0lBQ3BCLDhDQUFzRDs7Ozs7SUFFdEQsaURBQTZCOzs7OztJQUU3Qiw4Q0FBMkI7Ozs7O0lBRTNCLG9EQUFxQjs7Ozs7SUFFckIsa0RBQXdCOzs7OztJQUV4QixxREFBaUI7Ozs7O0lBRWpCLCtDQUFxQjs7Ozs7SUFFckIsZ0RBU0U7O0lBRVUsNkNBQXlCOzs7OztJQUFFLHFEQUEwQzs7Ozs7SUFBRSxrREFBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5qZWN0b3IsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgc3ZnTGlzdCwgdWR0UmVjb21tYW5kRGF0YUxpc3QsIHVkdFJlY29tbWFuZERhdGFGcmFtZSB9IGZyb20gJy4vbW9ja0RhdGEnO1xuaW1wb3J0IHsgRm9ybUJhc2ljU2VydmljZSB9IGZyb20gJ0BmYXJyaXMvZGVzaWduZXItc2VydmljZXMnO1xuaW1wb3J0IHsgTm90aWZ5U2VydmljZSB9IGZyb20gJ0BmYXJyaXMvdWktbm90aWZ5JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZmFycmlzLWFwcE5hdmlnYXRpb25VZHQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwLW5hdmlnYXRpb24tdWR0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXBwLW5hdmlnYXRpb24tdWR0LmNvbXBvbmVudC5jc3MnXVxufSlcblxuZXhwb3J0IGNsYXNzIEFwcE5hdmlnYXRpb25VZHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKiog5YWl5Y+CICovXG4gIEBJbnB1dCgpIGluaXRpYWxTdGF0ZTogYW55O1xuICAvKiog5YWl5Y+CICovXG4gIEBJbnB1dCgpIGVkaXRvclBhcmFtczogYW55O1xuICAvKiog5YWz6Zet5by556qXICovXG4gIEBPdXRwdXQoKSBjbG9zZU1vZGFsID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIC8qKiDkvKDpgJLlj4LmlbAgKi9cbiAgQE91dHB1dCgpIHN1Ym1pdE1vZGFsID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBWaWV3Q2hpbGQoJ2Zvb3RlcicpIG1vZGFsRm9vdGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKiDljp/lp4vmlbDmja4gKi9cbiAgdWR0RGF0YTogYW55O1xuICAvKiog5pCc57Si5qGG6L6T5YWl5YC8ICovXG4gIHNlYXJjaFZhbHVlOiBzdHJpbmc7XG4gIGdyb3VwSWNvbiA9ICc8c3BhbiBjbGFzcz1cImstaWNvbiBrLWktc2VhcmNoXCI+PC9zcGFuPic7XG4gIC8qKiDlvZPliY3pgInkuK3nmoTlsZXnpLrmlbDmja7vvJrmnIDov5HmiJbmjqjojZAgKi9cbiAgY2hvb3NlUmVjZW50OiBib29sZWFuID0gdHJ1ZTtcbiAgLyoqIOW9k+WJjemAieS4reeahOWxleekuuaVsOaNru+8muacgOi/keaIluaOqOiNkCAqL1xuICBjaG9vc2VBbGw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIOeUqOaIt+mAieaLqeeahOaVsOaNriAqL1xuICBzZWxlY3RlZENvbW1hbmQ6IGFueTtcbiAgLyoqIOacgOi/keaVsOaNriAqL1xuICB1ZHRSZWNlbnREYXRhOiBhbnkgPSBbXTtcbiAgLyoqIOaOqOiNkOaVsOaNriovXG4gIHVkdFJlY29tbWFuZERhdGE7XG4gIC8qKiDlhajpg6jmlbDmja4qL1xuICB1ZHRBbGxEYXRhOiBhbnkgPSBbXTtcbiAgLyoqIOW8ueeql+iuvuWumuWAvCAqL1xuICBtb2RhbENvbmZpZyA9IHtcbiAgICB0aXRsZTogJ+mAieaLqeS4muWKoeWtl+autScsXG4gICAgd2lkdGg6IDkyMCxcbiAgICBoZWlnaHQ6IDUwMCxcbiAgICByZXNpemFibGU6IHRydWUsXG4gICAgc2hvd0J1dHRvbnM6IGZhbHNlLFxuICAgIHNob3dNYXhCdXR0b246IGZhbHNlLFxuICAgIG1pbldpZHRoOiA2NTAsXG4gICAgbWluSGVpZ2h0OiAzMDAsXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHVibGljIGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSBmb3JtQmFzaWNTZXJ2aWNlOiBGb3JtQmFzaWNTZXJ2aWNlLCBwcml2YXRlIG5vdGlmeVNlcnZpY2U6IE5vdGlmeVNlcnZpY2UpIHsgfVxuICBuZ09uSW5pdCgpIHtcbiAgICBpZih0aGlzLmVkaXRvclBhcmFtcyl7XG4gICAgICB0aGlzLm1vZGFsQ29uZmlnID0gdGhpcy5lZGl0b3JQYXJhbXMubW9kYWxDb25maWcgPyB0aGlzLmVkaXRvclBhcmFtcy5tb2RhbENvbmZpZyA6IHRoaXMubW9kYWxDb25maWc7XG4gICAgICB0aGlzLmdldFJlY2VudERhdGFJbmZvKCk7XG4gICAgICB0aGlzLmdldFJlY29tbWFuZERhdGFJbmZvKCk7XG4gICAgfVxuICAgIHRoaXMuY2hvb3NlUmVjZW50ID0gdHJ1ZTtcbiAgICB0aGlzLmNob29zZUFsbCA9IGZhbHNlO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlcyl7XG4gICAgaWYoY2hhbmdlc1snZWRpdG9yUGFyYW1zJ10pe1xuICAgICAgdGhpcy5tb2RhbENvbmZpZyA9IHRoaXMuZWRpdG9yUGFyYW1zLm1vZGFsQ29uZmlnID8gdGhpcy5lZGl0b3JQYXJhbXMubW9kYWxDb25maWcgOiB0aGlzLm1vZGFsQ29uZmlnO1xuICAgICAgdGhpcy5nZXRSZWNlbnREYXRhSW5mbygpO1xuICAgICAgdGhpcy5nZXRSZWNvbW1hbmREYXRhSW5mbygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiDojrflj5bmjqjojZDmlbDmja4gKi9cbiAgZ2V0UmVjb21tYW5kRGF0YUluZm8oKSB7XG4gICAgY29uc3QgaHR0cCA9IHRoaXMuaW5qZWN0b3IuZ2V0KEh0dHBDbGllbnQpO1xuICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHRoaXMuZWRpdG9yUGFyYW1zLnJlbGF0aXZlUGF0aCB8fCAnJztcbiAgICAvLyDlhajpg6h1ZHRcbiAgICBjb25zdCBwYWdlU2l6ZSA9IDEwMDA7XG4gICAgcmV0dXJuIGh0dHAuZ2V0KCcvYXBpL2Rldi9tYWluL3YxLjAvbWRzZXJ2aWNlL3VuaW9ubWRsaXN0P3BhdGg9JyArIHJlbGF0aXZlUGF0aCArICcmcGFnZUluZGV4PTEmcGFnZVNpemU9JyArIHBhZ2VTaXplICsgJyZtZXRhZGF0YVR5cGVMaXN0PS51ZHQnLCB7XG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pLFxuICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbidcbiAgICB9KS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLnJlaW52b2tlSW50ZXJmYWNlKGRhdGEpO1xuICAgICAgdGhpcy51ZHRSZWNvbW1hbmREYXRhID0gY2xvbmVEZWVwKHRoaXMuZ2V0UmVjb21tYW5kRGF0YShkYXRhKSk7XG4gICAgICB0aGlzLnVkdERhdGEgPSB0aGlzLnVkdFJlY2VudERhdGEubGVuZ3RoICE9IDAgPyB0aGlzLnVkdFJlY2VudERhdGEgOiB0aGlzLnVkdFJlY29tbWFuZERhdGE7XG4gICAgICB0aGlzLmNob29zZVJlY2VudCA9IHRoaXMudWR0UmVjZW50RGF0YS5sZW5ndGggIT0gMCA/IHRydWUgOiBmYWxzZTtcbiAgICAgIHRoaXMuY2hvb3NlQWxsID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICAvKiog6I635Y+W5pyA6L+R5pWw5o2uICovXG4gIGdldFJlY2VudERhdGFJbmZvKCkge1xuICAgIGNvbnN0IGh0dHAgPSB0aGlzLmluamVjdG9yLmdldChIdHRwQ2xpZW50KTtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLmVkaXRvclBhcmFtcy5yZWxhdGl2ZVBhdGggfHwgJyc7XG4gICAgY29uc3QgYXBwSWQgPSByZWxhdGl2ZVBhdGhbMF0gPT0gJy8nID8gcmVsYXRpdmVQYXRoLnNwbGl0KCcvJylbMV0gOiByZWxhdGl2ZVBhdGguc3BsaXQoJy8nKVswXTtcbiAgICByZXR1cm4gaHR0cC5nZXQoJy9hcGkvZGV2L21haW4vdjEuMC9tZHNlcnZpY2UvZ2V0bWRyZWNlbnR1c2U/YXBwSWQ9JyArIGFwcElkICsgJyZtZXRhZGF0YVR5cGVMaXN0PS51ZHQnLCB7XG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pLFxuICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbidcbiAgICB9KS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLnVkdFJlY2VudERhdGEgPSBjbG9uZURlZXAodGhpcy5nZXRSZWNlbnREYXRhKGRhdGEpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiDlpITnkIbmjqjojZDmlbDmja4gKi9cbiAgZ2V0UmVjb21tYW5kRGF0YShkYXRhKSB7XG4gICAgY29uc3QgdWR0Q2F0ZWdvcnlMaXN0ID0gY2xvbmVEZWVwKHVkdFJlY29tbWFuZERhdGFGcmFtZSk7XG4gICAgY29uc3QgdWR0TWV0YWRhdGEgPSBkYXRhWydtZXRhZGF0YUluZGV4SXRlbXMnXSA/IGRhdGFbJ21ldGFkYXRhSW5kZXhJdGVtcyddIDogZGF0YTtcbiAgICBpZiAodWR0TWV0YWRhdGEpIHtcbiAgICAgIGNvbnN0IHVkdEFsbERhdGEgPSBbXTtcbiAgICAgIHVkdE1ldGFkYXRhLmZvckVhY2goZnVuY3Rpb24gKHVkdE1ldGFkYXRhSXRlbSkge1xuICAgICAgICBsZXQgdWR0TWV0YWRhdGFJdGVtVGVtcCA9IHtcbiAgICAgICAgICBuYW1lOiB1ZHRNZXRhZGF0YUl0ZW0ubmFtZSxcbiAgICAgICAgICBsYWJlbDogdWR0TWV0YWRhdGFJdGVtLmNvZGUsXG4gICAgICAgICAgaGlkZTogZmFsc2UsXG4gICAgICAgICAgYWN0aXZlOiBmYWxzZSxcbiAgICAgICAgICBzdmc6IHN2Z0xpc3QuaW5jbHVkZXModWR0TWV0YWRhdGFJdGVtLmNvZGUpID8gdWR0TWV0YWRhdGFJdGVtLmNvZGUgOiAnR2VuZXJhbCcsXG4gICAgICAgICAgZGF0YTogdWR0TWV0YWRhdGFJdGVtXG4gICAgICAgIH1cbiAgICAgICAgbGV0IGtleSA9IE9iamVjdC5rZXlzKHVkdFJlY29tbWFuZERhdGFMaXN0KTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBpZiAodWR0UmVjb21tYW5kRGF0YUxpc3Rba2V5W2ldXS5pbmNsdWRlcyh1ZHRNZXRhZGF0YUl0ZW0uY29kZSkpIHtcbiAgICAgICAgICAgIHVkdENhdGVnb3J5TGlzdFtpXS5kYXRhLnB1c2goY2xvbmVEZWVwKHVkdE1ldGFkYXRhSXRlbVRlbXApKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdWR0QWxsRGF0YS5wdXNoKGNsb25lRGVlcCh1ZHRNZXRhZGF0YUl0ZW1UZW1wKSk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMudWR0QWxsRGF0YSA9IGNsb25lRGVlcCh1ZHRBbGxEYXRhKTtcbiAgICB9XG4gICAgcmV0dXJuIHVkdENhdGVnb3J5TGlzdDtcbiAgfVxuXG4gIC8qKiDlpITnkIbmnIDov5HmlbDmja4gKi9cbiAgZ2V0UmVjZW50RGF0YShkYXRhKSB7XG4gICAgbGV0IG1ldGFkYXRhID0gW107XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGNvbnN0IHVkdE1ldGFkYXRhID0gY2xvbmVEZWVwKGRhdGEpO1xuICAgICAgdWR0TWV0YWRhdGEuZm9yRWFjaChmdW5jdGlvbiAodWR0TWV0YWRhdGFJdGVtKSB7XG4gICAgICAgIGxldCB1ZHRNZXRhZGF0YUl0ZW1UZW1wID0ge1xuICAgICAgICAgIG5hbWU6IHVkdE1ldGFkYXRhSXRlbS5uYW1lLFxuICAgICAgICAgIGxhYmVsOiB1ZHRNZXRhZGF0YUl0ZW0uY29kZSxcbiAgICAgICAgICBoaWRlOiBmYWxzZSxcbiAgICAgICAgICBhY3RpdmU6IGZhbHNlLFxuICAgICAgICAgIHN2Zzogc3ZnTGlzdC5pbmNsdWRlcyh1ZHRNZXRhZGF0YUl0ZW0uY29kZSkgPyB1ZHRNZXRhZGF0YUl0ZW0uY29kZSA6ICdHZW5lcmFsJyxcbiAgICAgICAgICBkYXRhOiB1ZHRNZXRhZGF0YUl0ZW1cbiAgICAgICAgfVxuICAgICAgICBtZXRhZGF0YS5wdXNoKGNsb25lRGVlcCh1ZHRNZXRhZGF0YUl0ZW1UZW1wKSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG1ldGFkYXRhO1xuICB9XG5cbiAgLyoqIOWxleekuuKAnOacgOi/keKAneS4gOagjyAqL1xuICBzaG93UmVjZW50RGF0YSgpIHtcbiAgICB0aGlzLnVkdERhdGEgPSBjbG9uZURlZXAodGhpcy51ZHRSZWNlbnREYXRhKTtcbiAgICB0aGlzLmNob29zZVJlY2VudCA9IHRydWU7XG4gICAgdGhpcy5jaG9vc2VBbGwgPSBmYWxzZTtcbiAgICB0aGlzLnVkdERhdGEgPSB0aGlzLm9uU2VhcmNoVmFsdWVDaGFuZ2VkKHRoaXMuc2VhcmNoVmFsdWUpO1xuICB9XG5cbiAgLyoqIOWxleekuuKAnOaOqOiNkOKAneS4gOagjyAqL1xuICBzaG93UmVjb21tYW5kRGF0YSgpIHtcbiAgICB0aGlzLnVkdERhdGEgPSBjbG9uZURlZXAodGhpcy51ZHRSZWNvbW1hbmREYXRhKTtcbiAgICB0aGlzLmNob29zZVJlY2VudCA9IGZhbHNlO1xuICAgIHRoaXMuY2hvb3NlQWxsID0gZmFsc2U7XG4gICAgdGhpcy51ZHREYXRhID0gdGhpcy5vblNlYXJjaFZhbHVlQ2hhbmdlZCh0aGlzLnNlYXJjaFZhbHVlKTtcbiAgfVxuXG4gIC8qKiDlsZXnpLrigJzlhajpg6jigJ3kuIDmoI8gKi9cbiAgc2hvd0FsbERhdGEoKSB7XG4gICAgdGhpcy51ZHREYXRhID0gY2xvbmVEZWVwKHRoaXMudWR0QWxsRGF0YSk7XG4gICAgdGhpcy5jaG9vc2VSZWNlbnQgPSBmYWxzZTtcbiAgICB0aGlzLmNob29zZUFsbCA9IHRydWU7XG4gICAgdGhpcy51ZHREYXRhID0gdGhpcy5vblNlYXJjaFZhbHVlQ2hhbmdlZCh0aGlzLnNlYXJjaFZhbHVlKTtcbiAgfVxuXG4gIC8qKiDmkJzntKLpobkgKi9cbiAgb25TZWFyY2hWYWx1ZUNoYW5nZWQoc2VhcmNoVmFsdWUpIHtcbiAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlID09IHVuZGVmaW5lZCA/ICcnIDogc2VhcmNoVmFsdWU7XG4gICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZVsnb3JpZ2luYWxFdmVudCddICE9IHVuZGVmaW5lZCA/IHNlYXJjaFZhbHVlLnZhbHVlIHx8ICcnIDogc2VhcmNoVmFsdWU7XG4gICAgdGhpcy5zZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlO1xuICAgIGxldCB2YWx1ZSA9IHNlYXJjaFZhbHVlLnJlcGxhY2VBbGwoJyAnLCAnJykucmVwbGFjZUFsbCgnPicsICcnKTtcbiAgICB2YWx1ZSA9IHZhbHVlID09ICcnID8gJyAnIDogdmFsdWU7XG4gICAgdmFsdWUgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmICghdGhpcy5jaG9vc2VSZWNlbnQgJiYgIXRoaXMuY2hvb3NlQWxsKSB7XG4gICAgICB0aGlzLnVkdERhdGEuZm9yRWFjaCh1ZHREYXRhSXRlbSA9PiB7XG4gICAgICAgIHVkdERhdGFJdGVtLmRhdGEuZm9yRWFjaChkYXRhSXRlbSA9PiB7XG4gICAgICAgICAgbGV0IGNvbWJpbmVkU3RyaW5nID0gYCR7ZGF0YUl0ZW0ubmFtZX0gJHtkYXRhSXRlbS5sYWJlbH1gO1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IGNvbWJpbmVkU3RyaW5nLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgZGF0YUl0ZW0uaGlkZSA9IHNlbGVjdGVkSXRlbS5pbmNsdWRlcyh2YWx1ZSkgPT0gZmFsc2UgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMudWR0RGF0YS5mb3JFYWNoKHVkdERhdGFJdGVtID0+IHtcbiAgICAgICAgbGV0IGNvbWJpbmVkU3RyaW5nID0gYCR7dWR0RGF0YUl0ZW0ubmFtZX0gJHt1ZHREYXRhSXRlbS5sYWJlbH1gO1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBjb21iaW5lZFN0cmluZy50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB1ZHREYXRhSXRlbS5oaWRlID0gc2VsZWN0ZWRJdGVtLmluY2x1ZGVzKHZhbHVlKSA9PSBmYWxzZSA/IHRydWUgOiBmYWxzZTtcbiAgICAgIH0pXG4gICAgfVxuICAgIHJldHVybiB0aGlzLnVkdERhdGE7XG4gIH1cblxuICAvKiog55So5oi36YCJ5oup5YC8ICovXG4gIGdldFVkdERhdGFJdGVtKHNlbGVjdGVkVWR0RGF0YUl0ZW0pIHtcbiAgICBpZiAoIXRoaXMuY2hvb3NlUmVjZW50ICYmICF0aGlzLmNob29zZUFsbCkge1xuICAgICAgdGhpcy51ZHREYXRhLmZvckVhY2godWR0RGF0YUl0ZW0gPT4ge1xuICAgICAgICB1ZHREYXRhSXRlbS5kYXRhLmZvckVhY2goZGF0YUl0ZW0gPT4ge1xuICAgICAgICAgIGRhdGFJdGVtLmFjdGl2ZSA9IHNlbGVjdGVkVWR0RGF0YUl0ZW0ubGFiZWwgPT0gZGF0YUl0ZW0ubGFiZWwgPyAhZGF0YUl0ZW0uYWN0aXZlIDogZmFsc2U7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENvbW1hbmQgPSBzZWxlY3RlZFVkdERhdGFJdGVtLmxhYmVsID09IGRhdGFJdGVtLmxhYmVsID8gY2xvbmVEZWVwKHNlbGVjdGVkVWR0RGF0YUl0ZW0pIDogdGhpcy5zZWxlY3RlZENvbW1hbmQ7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy51ZHREYXRhLmZvckVhY2godWR0RGF0YUl0ZW0gPT4ge1xuICAgICAgICB1ZHREYXRhSXRlbS5hY3RpdmUgPSBzZWxlY3RlZFVkdERhdGFJdGVtLmxhYmVsID09IHVkdERhdGFJdGVtLmxhYmVsID8gIXVkdERhdGFJdGVtLmFjdGl2ZSA6IGZhbHNlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ29tbWFuZCA9IHNlbGVjdGVkVWR0RGF0YUl0ZW0ubGFiZWwgPT0gdWR0RGF0YUl0ZW0ubGFiZWwgPyBjbG9uZURlZXAoc2VsZWN0ZWRVZHREYXRhSXRlbSkgOiB0aGlzLnNlbGVjdGVkQ29tbWFuZDtcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgLyoqIOa4heepuuaQnOe0ouWGheWuuSAqL1xuICBvbkNsZWFyKCkge1xuICAgIHRoaXMudWR0RGF0YSA9IHRoaXMub25TZWFyY2hWYWx1ZUNoYW5nZWQoJycpO1xuICB9XG5cbiAgLyoqIOWOu+mHjSovXG4gIGdldFVuaXF1ZURhdGEodWR0UmVjZW50RGF0YSkge1xuICAgIGxldCB2YWx1ZSA9IGNsb25lRGVlcCh1ZHRSZWNlbnREYXRhKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCB2YWx1ZS5sZW5ndGg7IGorKykge1xuICAgICAgICBpZiAodmFsdWVbaV1bJ2xhYmVsJ10gPT0gdmFsdWVbal1bJ2xhYmVsJ10pIHtcbiAgICAgICAgICB2YWx1ZS5zcGxpY2UoaiwgMSk7XG4gICAgICAgICAgai0tO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIC8qKiDmlLbmipjlvZPliY3liIbnsbsgKi9cbiAgZm9sZEluKGNhdGVnb3J5KSB7XG4gICAgY2F0ZWdvcnkuZm9sZCA9ICFjYXRlZ29yeS5mb2xkO1xuICB9XG5cbiAgLyoqIOeUqOaIt+eCueWHu+ehruWumuaXtuiwg+eUqHBvc3RBcGnkvKDlh7rlj4LmlbAgKi9cbiAgY2xpY2tDb25maXJtKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkQ29tbWFuZCAmJiB0aGlzLnNlbGVjdGVkQ29tbWFuZFsnYWN0aXZlJ10pIHtcbiAgICAgIGNvbnN0IGh0dHAgPSB0aGlzLmluamVjdG9yLmdldChIdHRwQ2xpZW50KTtcbiAgICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHRoaXMuZWRpdG9yUGFyYW1zLnJlbGF0aXZlUGF0aCB8fCAnJztcbiAgICAgIGNvbnN0IHBhdGggPSAnL2FwaS9kZXYvbWFpbi92MS4wL21kc2VydmljZS9waWNrTWV0YWRhdGE/Y3VycmVudFBhdGg9JyArIHJlbGF0aXZlUGF0aDtcbiAgICAgIGNvbnN0IGJvZHkgPSB0aGlzLnNlbGVjdGVkQ29tbWFuZC5kYXRhO1xuICAgICAgY29uc3QgaGVhZGVyT3B0aW9uID0ge1xuICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pXG4gICAgICB9XG4gICAgICByZXR1cm4gaHR0cC5wb3N0KHBhdGgsIGJvZHksIGhlYWRlck9wdGlvbikuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICBkYXRhWydwcm9jZXNzTW9kZSddID09PSAnaW50ZXJwcmV0YXRpb24nID8gJ2ludGVycHJldGF0aW9uJyA6ICdnZW5lcmFsJztcbiAgICAgICAgdGhpcy5zdWJtaXRNb2RhbC5lbWl0KGRhdGEpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5ub3RpZnlTZXJ2aWNlWydpbmZvJ10oJ+acqumAieaLqeS4muWKoeWtl+autScpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgY2xpY2tDYW5jZWwoKSB7XG4gICAgdGhpcy5jbG9zZU1vZGFsLmVtaXQoKTtcbiAgfVxuICAvKiog5o6l5Y+j5pWw5o2u6LaF6L+HMTAwMOadoeaXtu+8jOmHjeaWsOiwg+WPluaJgOacieaVsOaNriAqL1xuICByZWludm9rZUludGVyZmFjZShkYXRhKSB7XG4gICAgaWYgKGRhdGFbJ3BhZ2UnXSkge1xuICAgICAgY29uc3QgdG90YWxOdW0gPSBkYXRhWydwYWdlJ11bJ3RvdGFsJ10gfHwgMDtcbiAgICAgIGlmICh0b3RhbE51bSA+IDEwMDApIHtcbiAgICAgICAgY29uc3QgaHR0cCA9IHRoaXMuaW5qZWN0b3IuZ2V0KEh0dHBDbGllbnQpO1xuICAgICAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLmVkaXRvclBhcmFtcy5yZWxhdGl2ZVBhdGggfHwgJyc7XG4gICAgICAgIHJldHVybiBodHRwLmdldCgnL2FwaS9kZXYvbWFpbi92MS4wL21kc2VydmljZS91bmlvbm1kbGlzdD9wYXRoPScgKyByZWxhdGl2ZVBhdGggKyAnJnBhZ2VJbmRleD0xJnBhZ2VTaXplPScgKyB0b3RhbE51bSArICcmbWV0YWRhdGFUeXBlTGlzdD0udWR0Jywge1xuICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSksXG4gICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbidcbiAgICAgICAgfSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgIHRoaXMudWR0UmVjb21tYW5kRGF0YSA9IGNsb25lRGVlcCh0aGlzLmdldFJlY29tbWFuZERhdGEoZGF0YSkpO1xuICAgICAgICAgIHRoaXMudWR0RGF0YSA9IHRoaXMudWR0UmVjZW50RGF0YS5sZW5ndGggIT0gMCA/IHRoaXMudWR0UmVjZW50RGF0YSA6IHRoaXMudWR0UmVjb21tYW5kRGF0YTtcbiAgICAgICAgICB0aGlzLmNob29zZVJlY2VudCA9IHRoaXMudWR0UmVjZW50RGF0YS5sZW5ndGggIT0gMCA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLW5hdmlnYXRpb24tdWR0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmYXJyaXMvYXBwLW5hdmlnYXRpb24tdWR0LyIsInNvdXJjZXMiOlsibGliL2FwcC1uYXZpZ2F0aW9uLXVkdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVsRDtJQThDRSxtQ0FBbUIsUUFBa0IsRUFBVSxnQkFBa0MsRUFBVSxhQUE0QjtRQUFwRyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFlOzs7O1FBbEM3RyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQzs7OztRQUVyQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFPaEQsY0FBUyxHQUFHLHlDQUF5QyxDQUFDOzs7O1FBRXRELGlCQUFZLEdBQVksSUFBSSxDQUFDOzs7O1FBRTdCLGNBQVMsR0FBWSxLQUFLLENBQUM7Ozs7UUFJM0Isa0JBQWEsR0FBUSxFQUFFLENBQUM7Ozs7UUFJeEIsZUFBVSxHQUFRLEVBQUUsQ0FBQzs7OztRQUVyQixnQkFBVyxHQUFHO1lBQ1osS0FBSyxFQUFFLFFBQVE7WUFDZixLQUFLLEVBQUUsR0FBRztZQUNWLE1BQU0sRUFBRSxHQUFHO1lBQ1gsU0FBUyxFQUFFLElBQUk7WUFDZixXQUFXLEVBQUUsS0FBSztZQUNsQixhQUFhLEVBQUUsS0FBSztZQUNwQixRQUFRLEVBQUUsR0FBRztZQUNiLFNBQVMsRUFBRSxHQUFHO1NBQ2YsQ0FBQztJQUV5SCxDQUFDOzs7O0lBQzVILDRDQUFROzs7SUFBUjtRQUNFLElBQUcsSUFBSSxDQUFDLFlBQVksRUFBQztZQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUNwRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUM3QjtRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7Ozs7O0lBRUQsK0NBQVc7Ozs7SUFBWCxVQUFZLE9BQU87UUFDakIsSUFBRyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUM7WUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDcEcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBRUQsYUFBYTs7Ozs7SUFDYix3REFBb0I7Ozs7SUFBcEI7UUFBQSxpQkFlQzs7WUFkTyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDOztZQUNwQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLElBQUksRUFBRTs7O1lBRW5ELFFBQVEsR0FBRyxJQUFJO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxnREFBZ0QsR0FBRyxZQUFZLEdBQUcsd0JBQXdCLEdBQUcsUUFBUSxHQUFHLHdCQUF3QixFQUFFO1lBQ2hKLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDO1lBQ2hFLFlBQVksRUFBRSxNQUFNO1NBQ3JCLENBQUMsQ0FBQyxTQUFTOzs7O1FBQUMsVUFBQSxJQUFJO1lBQ2YsS0FBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLEtBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsS0FBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDL0QsS0FBSSxDQUFDLE9BQU8sR0FBRyxLQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQztZQUMzRixLQUFJLENBQUMsWUFBWSxHQUFHLEtBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDbEUsS0FBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYTs7Ozs7SUFDYixxREFBaUI7Ozs7SUFBakI7UUFBQSxpQkFVQzs7WUFUTyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDOztZQUNwQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLElBQUksRUFBRTs7WUFDbkQsS0FBSyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlGLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxvREFBb0QsR0FBRyxLQUFLLEdBQUcsd0JBQXdCLEVBQUU7WUFDdkcsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUM7WUFDaEUsWUFBWSxFQUFFLE1BQU07U0FDckIsQ0FBQyxDQUFDLFNBQVM7Ozs7UUFBQyxVQUFBLElBQUk7WUFDZixLQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQyxLQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDM0QsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYTs7Ozs7O0lBQ2Isb0RBQWdCOzs7OztJQUFoQixVQUFpQixJQUFJOztZQUNiLGVBQWUsR0FBRyxTQUFTLENBQUMscUJBQXFCLENBQUM7O1lBQ2xELFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7UUFDbEYsSUFBSSxXQUFXLEVBQUU7O2dCQUNULFlBQVUsR0FBRyxFQUFFO1lBQ3JCLFdBQVcsQ0FBQyxPQUFPOzs7O1lBQUMsVUFBVSxlQUFlOztvQkFDdkMsbUJBQW1CLEdBQUc7b0JBQ3hCLElBQUksRUFBRSxlQUFlLENBQUMsSUFBSTtvQkFDMUIsS0FBSyxFQUFFLGVBQWUsQ0FBQyxJQUFJO29CQUMzQixJQUFJLEVBQUUsS0FBSztvQkFDWCxNQUFNLEVBQUUsS0FBSztvQkFDYixHQUFHLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVM7b0JBQzlFLElBQUksRUFBRSxlQUFlO2lCQUN0Qjs7b0JBQ0csR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7Z0JBQzNDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUNuQyxJQUFJLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUU7d0JBQy9ELGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7cUJBQzlEO2lCQUNGO2dCQUNELFlBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztZQUNsRCxDQUFDLEVBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLFlBQVUsQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztJQUVELGFBQWE7Ozs7OztJQUNiLGlEQUFhOzs7OztJQUFiLFVBQWMsSUFBSTs7WUFDWixRQUFRLEdBQUcsRUFBRTtRQUNqQixJQUFJLElBQUksRUFBRTs7Z0JBQ0YsV0FBVyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDbkMsV0FBVyxDQUFDLE9BQU87Ozs7WUFBQyxVQUFVLGVBQWU7O29CQUN2QyxtQkFBbUIsR0FBRztvQkFDeEIsSUFBSSxFQUFFLGVBQWUsQ0FBQyxJQUFJO29CQUMxQixLQUFLLEVBQUUsZUFBZSxDQUFDLElBQUk7b0JBQzNCLElBQUksRUFBRSxLQUFLO29CQUNYLE1BQU0sRUFBRSxLQUFLO29CQUNiLEdBQUcsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUztvQkFDOUUsSUFBSSxFQUFFLGVBQWU7aUJBQ3RCO2dCQUNELFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztZQUNoRCxDQUFDLEVBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELGVBQWU7Ozs7O0lBQ2Ysa0RBQWM7Ozs7SUFBZDtRQUNFLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELGVBQWU7Ozs7O0lBQ2YscURBQWlCOzs7O0lBQWpCO1FBQ0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxlQUFlOzs7OztJQUNmLCtDQUFXOzs7O0lBQVg7UUFDRSxJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxVQUFVOzs7Ozs7SUFDVix3REFBb0I7Ozs7O0lBQXBCLFVBQXFCLFdBQVc7UUFDOUIsV0FBVyxHQUFHLFdBQVcsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO1FBQzFELFdBQVcsR0FBRyxXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO1FBQ2hHLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDOztZQUMzQixLQUFLLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7UUFDL0QsS0FBSyxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2xDLEtBQUssR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTzs7OztZQUFDLFVBQUEsV0FBVztnQkFDOUIsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPOzs7O2dCQUFDLFVBQUEsUUFBUTs7d0JBQzNCLGNBQWMsR0FBTSxRQUFRLENBQUMsSUFBSSxTQUFJLFFBQVEsQ0FBQyxLQUFPOzt3QkFDbkQsWUFBWSxHQUFHLGNBQWMsQ0FBQyxXQUFXLEVBQUU7b0JBQ2pELFFBQVEsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUN2RSxDQUFDLEVBQUMsQ0FBQTtZQUNKLENBQUMsRUFBQyxDQUFBO1NBQ0g7YUFDSTtZQUNILElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTzs7OztZQUFDLFVBQUEsV0FBVzs7b0JBQzFCLGNBQWMsR0FBTSxXQUFXLENBQUMsSUFBSSxTQUFJLFdBQVcsQ0FBQyxLQUFPOztvQkFDekQsWUFBWSxHQUFHLGNBQWMsQ0FBQyxXQUFXLEVBQUU7Z0JBQ2pELFdBQVcsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQzFFLENBQUMsRUFBQyxDQUFBO1NBQ0g7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVk7Ozs7OztJQUNaLGtEQUFjOzs7OztJQUFkLFVBQWUsbUJBQW1CO1FBQWxDLGlCQWVDO1FBZEMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTzs7OztZQUFDLFVBQUEsV0FBVztnQkFDOUIsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPOzs7O2dCQUFDLFVBQUEsUUFBUTtvQkFDL0IsUUFBUSxDQUFDLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7b0JBQ3pGLEtBQUksQ0FBQyxlQUFlLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsZUFBZSxDQUFDO2dCQUM3SCxDQUFDLEVBQUMsQ0FBQztZQUNMLENBQUMsRUFBQyxDQUFDO1NBQ0o7YUFDSTtZQUNILElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTzs7OztZQUFDLFVBQUEsV0FBVztnQkFDOUIsV0FBVyxDQUFDLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ2xHLEtBQUksQ0FBQyxlQUFlLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsZUFBZSxDQUFDO1lBQ2hJLENBQUMsRUFBQyxDQUFBO1NBQ0g7SUFDSCxDQUFDO0lBRUQsYUFBYTs7Ozs7SUFDYiwyQ0FBTzs7OztJQUFQO1FBQ0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFFBQVE7Ozs7OztJQUNSLGlEQUFhOzs7OztJQUFiLFVBQWMsYUFBYTs7WUFDckIsS0FBSyxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUM7UUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDckMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN6QyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQzFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNuQixDQUFDLEVBQUUsQ0FBQztpQkFDTDthQUNGO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxhQUFhOzs7Ozs7SUFDYiwwQ0FBTTs7Ozs7SUFBTixVQUFPLFFBQVE7UUFDYixRQUFRLENBQUMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUNqQyxDQUFDO0lBRUQsMkJBQTJCOzs7OztJQUMzQixnREFBWTs7OztJQUFaO1FBQUEsaUJBa0JDO1FBakJDLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxFQUFFOztnQkFDcEQsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQzs7Z0JBQ3BDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksSUFBSSxFQUFFOztnQkFDbkQsSUFBSSxHQUFHLHdEQUF3RCxHQUFHLFlBQVk7O2dCQUM5RSxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJOztnQkFDaEMsWUFBWSxHQUFHO2dCQUNuQixPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQzthQUNqRTtZQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDLFNBQVM7Ozs7WUFBQyxVQUFBLElBQUk7Z0JBQ3ZELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDcEYsS0FBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUIsQ0FBQyxFQUFDLENBQUM7U0FDSjthQUNJO1lBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN0QyxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQzs7OztJQUVELCtDQUFXOzs7SUFBWDtRQUNFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUNELDRCQUE0Qjs7Ozs7O0lBQzVCLHFEQUFpQjs7Ozs7SUFBakIsVUFBa0IsSUFBSTtRQUF0QixpQkFnQkM7UUFmQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTs7Z0JBQ1YsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQzNDLElBQUksUUFBUSxHQUFHLElBQUksRUFBRTs7b0JBQ2IsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQzs7b0JBQ3BDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksSUFBSSxFQUFFO2dCQUN6RCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsZ0RBQWdELEdBQUcsWUFBWSxHQUFHLHdCQUF3QixHQUFHLFFBQVEsR0FBRyx3QkFBd0IsRUFBRTtvQkFDaEosT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUM7b0JBQ2hFLFlBQVksRUFBRSxNQUFNO2lCQUNyQixDQUFDLENBQUMsU0FBUzs7OztnQkFBQyxVQUFBLElBQUk7b0JBQ2YsS0FBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxLQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDL0QsS0FBSSxDQUFDLE9BQU8sR0FBRyxLQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDM0YsS0FBSSxDQUFDLFlBQVksR0FBRyxLQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUNwRSxDQUFDLEVBQUMsQ0FBQzthQUNKO1NBQ0Y7SUFDSCxDQUFDOztnQkF0UkYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLDR2SkFBa0Q7O2lCQUVuRDs7OztnQkFYMkIsUUFBUTtnQkFJM0IsZ0JBQWdCO2dCQUNoQixhQUFhOzs7K0JBVW5CLEtBQUs7K0JBRUwsS0FBSzs2QkFFTCxNQUFNOzhCQUVOLE1BQU07OEJBQ04sU0FBUyxTQUFDLFFBQVE7O0lBd1FyQixnQ0FBQztDQUFBLEFBdlJELElBdVJDO1NBalJZLHlCQUF5Qjs7Ozs7O0lBRXBDLGlEQUEyQjs7Ozs7SUFFM0IsaURBQTJCOzs7OztJQUUzQiwrQ0FBK0M7Ozs7O0lBRS9DLGdEQUFnRDs7SUFDaEQsZ0RBQW1EOzs7OztJQUduRCw0Q0FBYTs7Ozs7SUFFYixnREFBb0I7O0lBQ3BCLDhDQUFzRDs7Ozs7SUFFdEQsaURBQTZCOzs7OztJQUU3Qiw4Q0FBMkI7Ozs7O0lBRTNCLG9EQUFxQjs7Ozs7SUFFckIsa0RBQXdCOzs7OztJQUV4QixxREFBaUI7Ozs7O0lBRWpCLCtDQUFxQjs7Ozs7SUFFckIsZ0RBU0U7O0lBRVUsNkNBQXlCOzs7OztJQUFFLHFEQUEwQzs7Ozs7SUFBRSxrREFBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5qZWN0b3IsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgc3ZnTGlzdCwgdWR0UmVjb21tYW5kRGF0YUxpc3QsIHVkdFJlY29tbWFuZERhdGFGcmFtZSB9IGZyb20gJy4vbW9ja0RhdGEnO1xuaW1wb3J0IHsgRm9ybUJhc2ljU2VydmljZSB9IGZyb20gJ0BmYXJyaXMvZGVzaWduZXItc2VydmljZXMnO1xuaW1wb3J0IHsgTm90aWZ5U2VydmljZSB9IGZyb20gJ0BmYXJyaXMvdWktbm90aWZ5JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZmFycmlzLWFwcE5hdmlnYXRpb25VZHQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwLW5hdmlnYXRpb24tdWR0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXBwLW5hdmlnYXRpb24tdWR0LmNvbXBvbmVudC5jc3MnXVxufSlcblxuZXhwb3J0IGNsYXNzIEFwcE5hdmlnYXRpb25VZHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKiog5YWl5Y+CICovXG4gIEBJbnB1dCgpIGluaXRpYWxTdGF0ZTogYW55O1xuICAvKiog5YWl5Y+CICovXG4gIEBJbnB1dCgpIGVkaXRvclBhcmFtczogYW55O1xuICAvKiog5YWz6Zet5by556qXICovXG4gIEBPdXRwdXQoKSBjbG9zZU1vZGFsID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIC8qKiDkvKDpgJLlj4LmlbAgKi9cbiAgQE91dHB1dCgpIHN1Ym1pdE1vZGFsID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBWaWV3Q2hpbGQoJ2Zvb3RlcicpIG1vZGFsRm9vdGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKiDljp/lp4vmlbDmja4gKi9cbiAgdWR0RGF0YTogYW55O1xuICAvKiog5pCc57Si5qGG6L6T5YWl5YC8ICovXG4gIHNlYXJjaFZhbHVlOiBzdHJpbmc7XG4gIGdyb3VwSWNvbiA9ICc8c3BhbiBjbGFzcz1cImstaWNvbiBrLWktc2VhcmNoXCI+PC9zcGFuPic7XG4gIC8qKiDlvZPliY3pgInkuK3nmoTlsZXnpLrmlbDmja7vvJrmnIDov5HmiJbmjqjojZAgKi9cbiAgY2hvb3NlUmVjZW50OiBib29sZWFuID0gdHJ1ZTtcbiAgLyoqIOW9k+WJjemAieS4reeahOWxleekuuaVsOaNru+8muacgOi/keaIluaOqOiNkCAqL1xuICBjaG9vc2VBbGw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIOeUqOaIt+mAieaLqeeahOaVsOaNriAqL1xuICBzZWxlY3RlZENvbW1hbmQ6IGFueTtcbiAgLyoqIOacgOi/keaVsOaNriAqL1xuICB1ZHRSZWNlbnREYXRhOiBhbnkgPSBbXTtcbiAgLyoqIOaOqOiNkOaVsOaNriovXG4gIHVkdFJlY29tbWFuZERhdGE7XG4gIC8qKiDlhajpg6jmlbDmja4qL1xuICB1ZHRBbGxEYXRhOiBhbnkgPSBbXTtcbiAgLyoqIOW8ueeql+iuvuWumuWAvCAqL1xuICBtb2RhbENvbmZpZyA9IHtcbiAgICB0aXRsZTogJ+mAieaLqeS4muWKoeWtl+autScsXG4gICAgd2lkdGg6IDkyMCxcbiAgICBoZWlnaHQ6IDUwMCxcbiAgICByZXNpemFibGU6IHRydWUsXG4gICAgc2hvd0J1dHRvbnM6IGZhbHNlLFxuICAgIHNob3dNYXhCdXR0b246IGZhbHNlLFxuICAgIG1pbldpZHRoOiA2NTAsXG4gICAgbWluSGVpZ2h0OiAzMDAsXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHVibGljIGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSBmb3JtQmFzaWNTZXJ2aWNlOiBGb3JtQmFzaWNTZXJ2aWNlLCBwcml2YXRlIG5vdGlmeVNlcnZpY2U6IE5vdGlmeVNlcnZpY2UpIHsgfVxuICBuZ09uSW5pdCgpIHtcbiAgICBpZih0aGlzLmVkaXRvclBhcmFtcyl7XG4gICAgICB0aGlzLm1vZGFsQ29uZmlnID0gdGhpcy5lZGl0b3JQYXJhbXMubW9kYWxDb25maWcgPyB0aGlzLmVkaXRvclBhcmFtcy5tb2RhbENvbmZpZyA6IHRoaXMubW9kYWxDb25maWc7XG4gICAgICB0aGlzLmdldFJlY2VudERhdGFJbmZvKCk7XG4gICAgICB0aGlzLmdldFJlY29tbWFuZERhdGFJbmZvKCk7XG4gICAgfVxuICAgIHRoaXMuY2hvb3NlUmVjZW50ID0gdHJ1ZTtcbiAgICB0aGlzLmNob29zZUFsbCA9IGZhbHNlO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlcyl7XG4gICAgaWYoY2hhbmdlc1snZWRpdG9yUGFyYW1zJ10pe1xuICAgICAgdGhpcy5tb2RhbENvbmZpZyA9IHRoaXMuZWRpdG9yUGFyYW1zLm1vZGFsQ29uZmlnID8gdGhpcy5lZGl0b3JQYXJhbXMubW9kYWxDb25maWcgOiB0aGlzLm1vZGFsQ29uZmlnO1xuICAgICAgdGhpcy5nZXRSZWNlbnREYXRhSW5mbygpO1xuICAgICAgdGhpcy5nZXRSZWNvbW1hbmREYXRhSW5mbygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiDojrflj5bmjqjojZDmlbDmja4gKi9cbiAgZ2V0UmVjb21tYW5kRGF0YUluZm8oKSB7XG4gICAgY29uc3QgaHR0cCA9IHRoaXMuaW5qZWN0b3IuZ2V0KEh0dHBDbGllbnQpO1xuICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHRoaXMuZWRpdG9yUGFyYW1zLnJlbGF0aXZlUGF0aCB8fCAnJztcbiAgICAvLyDlhajpg6h1ZHRcbiAgICBjb25zdCBwYWdlU2l6ZSA9IDEwMDA7XG4gICAgcmV0dXJuIGh0dHAuZ2V0KCcvYXBpL2Rldi9tYWluL3YxLjAvbWRzZXJ2aWNlL3VuaW9ubWRsaXN0P3BhdGg9JyArIHJlbGF0aXZlUGF0aCArICcmcGFnZUluZGV4PTEmcGFnZVNpemU9JyArIHBhZ2VTaXplICsgJyZtZXRhZGF0YVR5cGVMaXN0PS51ZHQnLCB7XG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pLFxuICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbidcbiAgICB9KS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLnJlaW52b2tlSW50ZXJmYWNlKGRhdGEpO1xuICAgICAgdGhpcy51ZHRSZWNvbW1hbmREYXRhID0gY2xvbmVEZWVwKHRoaXMuZ2V0UmVjb21tYW5kRGF0YShkYXRhKSk7XG4gICAgICB0aGlzLnVkdERhdGEgPSB0aGlzLnVkdFJlY2VudERhdGEubGVuZ3RoICE9IDAgPyB0aGlzLnVkdFJlY2VudERhdGEgOiB0aGlzLnVkdFJlY29tbWFuZERhdGE7XG4gICAgICB0aGlzLmNob29zZVJlY2VudCA9IHRoaXMudWR0UmVjZW50RGF0YS5sZW5ndGggIT0gMCA/IHRydWUgOiBmYWxzZTtcbiAgICAgIHRoaXMuY2hvb3NlQWxsID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICAvKiog6I635Y+W5pyA6L+R5pWw5o2uICovXG4gIGdldFJlY2VudERhdGFJbmZvKCkge1xuICAgIGNvbnN0IGh0dHAgPSB0aGlzLmluamVjdG9yLmdldChIdHRwQ2xpZW50KTtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLmVkaXRvclBhcmFtcy5yZWxhdGl2ZVBhdGggfHwgJyc7XG4gICAgY29uc3QgYXBwSWQgPSByZWxhdGl2ZVBhdGhbMF0gPT0gJy8nID8gcmVsYXRpdmVQYXRoLnNwbGl0KCcvJylbMV0gOiByZWxhdGl2ZVBhdGguc3BsaXQoJy8nKVswXTtcbiAgICByZXR1cm4gaHR0cC5nZXQoJy9hcGkvZGV2L21haW4vdjEuMC9tZHNlcnZpY2UvZ2V0bWRyZWNlbnR1c2U/YXBwSWQ9JyArIGFwcElkICsgJyZtZXRhZGF0YVR5cGVMaXN0PS51ZHQnLCB7XG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pLFxuICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbidcbiAgICB9KS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLnVkdFJlY2VudERhdGEgPSBjbG9uZURlZXAodGhpcy5nZXRSZWNlbnREYXRhKGRhdGEpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiDlpITnkIbmjqjojZDmlbDmja4gKi9cbiAgZ2V0UmVjb21tYW5kRGF0YShkYXRhKSB7XG4gICAgY29uc3QgdWR0Q2F0ZWdvcnlMaXN0ID0gY2xvbmVEZWVwKHVkdFJlY29tbWFuZERhdGFGcmFtZSk7XG4gICAgY29uc3QgdWR0TWV0YWRhdGEgPSBkYXRhWydtZXRhZGF0YUluZGV4SXRlbXMnXSA/IGRhdGFbJ21ldGFkYXRhSW5kZXhJdGVtcyddIDogZGF0YTtcbiAgICBpZiAodWR0TWV0YWRhdGEpIHtcbiAgICAgIGNvbnN0IHVkdEFsbERhdGEgPSBbXTtcbiAgICAgIHVkdE1ldGFkYXRhLmZvckVhY2goZnVuY3Rpb24gKHVkdE1ldGFkYXRhSXRlbSkge1xuICAgICAgICBsZXQgdWR0TWV0YWRhdGFJdGVtVGVtcCA9IHtcbiAgICAgICAgICBuYW1lOiB1ZHRNZXRhZGF0YUl0ZW0ubmFtZSxcbiAgICAgICAgICBsYWJlbDogdWR0TWV0YWRhdGFJdGVtLmNvZGUsXG4gICAgICAgICAgaGlkZTogZmFsc2UsXG4gICAgICAgICAgYWN0aXZlOiBmYWxzZSxcbiAgICAgICAgICBzdmc6IHN2Z0xpc3QuaW5jbHVkZXModWR0TWV0YWRhdGFJdGVtLmNvZGUpID8gdWR0TWV0YWRhdGFJdGVtLmNvZGUgOiAnR2VuZXJhbCcsXG4gICAgICAgICAgZGF0YTogdWR0TWV0YWRhdGFJdGVtXG4gICAgICAgIH1cbiAgICAgICAgbGV0IGtleSA9IE9iamVjdC5rZXlzKHVkdFJlY29tbWFuZERhdGFMaXN0KTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBpZiAodWR0UmVjb21tYW5kRGF0YUxpc3Rba2V5W2ldXS5pbmNsdWRlcyh1ZHRNZXRhZGF0YUl0ZW0uY29kZSkpIHtcbiAgICAgICAgICAgIHVkdENhdGVnb3J5TGlzdFtpXS5kYXRhLnB1c2goY2xvbmVEZWVwKHVkdE1ldGFkYXRhSXRlbVRlbXApKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdWR0QWxsRGF0YS5wdXNoKGNsb25lRGVlcCh1ZHRNZXRhZGF0YUl0ZW1UZW1wKSk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMudWR0QWxsRGF0YSA9IGNsb25lRGVlcCh1ZHRBbGxEYXRhKTtcbiAgICB9XG4gICAgcmV0dXJuIHVkdENhdGVnb3J5TGlzdDtcbiAgfVxuXG4gIC8qKiDlpITnkIbmnIDov5HmlbDmja4gKi9cbiAgZ2V0UmVjZW50RGF0YShkYXRhKSB7XG4gICAgbGV0IG1ldGFkYXRhID0gW107XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGNvbnN0IHVkdE1ldGFkYXRhID0gY2xvbmVEZWVwKGRhdGEpO1xuICAgICAgdWR0TWV0YWRhdGEuZm9yRWFjaChmdW5jdGlvbiAodWR0TWV0YWRhdGFJdGVtKSB7XG4gICAgICAgIGxldCB1ZHRNZXRhZGF0YUl0ZW1UZW1wID0ge1xuICAgICAgICAgIG5hbWU6IHVkdE1ldGFkYXRhSXRlbS5uYW1lLFxuICAgICAgICAgIGxhYmVsOiB1ZHRNZXRhZGF0YUl0ZW0uY29kZSxcbiAgICAgICAgICBoaWRlOiBmYWxzZSxcbiAgICAgICAgICBhY3RpdmU6IGZhbHNlLFxuICAgICAgICAgIHN2Zzogc3ZnTGlzdC5pbmNsdWRlcyh1ZHRNZXRhZGF0YUl0ZW0uY29kZSkgPyB1ZHRNZXRhZGF0YUl0ZW0uY29kZSA6ICdHZW5lcmFsJyxcbiAgICAgICAgICBkYXRhOiB1ZHRNZXRhZGF0YUl0ZW1cbiAgICAgICAgfVxuICAgICAgICBtZXRhZGF0YS5wdXNoKGNsb25lRGVlcCh1ZHRNZXRhZGF0YUl0ZW1UZW1wKSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG1ldGFkYXRhO1xuICB9XG5cbiAgLyoqIOWxleekuuKAnOacgOi/keKAneS4gOagjyAqL1xuICBzaG93UmVjZW50RGF0YSgpIHtcbiAgICB0aGlzLnVkdERhdGEgPSBjbG9uZURlZXAodGhpcy51ZHRSZWNlbnREYXRhKTtcbiAgICB0aGlzLmNob29zZVJlY2VudCA9IHRydWU7XG4gICAgdGhpcy5jaG9vc2VBbGwgPSBmYWxzZTtcbiAgICB0aGlzLnVkdERhdGEgPSB0aGlzLm9uU2VhcmNoVmFsdWVDaGFuZ2VkKHRoaXMuc2VhcmNoVmFsdWUpO1xuICB9XG5cbiAgLyoqIOWxleekuuKAnOaOqOiNkOKAneS4gOagjyAqL1xuICBzaG93UmVjb21tYW5kRGF0YSgpIHtcbiAgICB0aGlzLnVkdERhdGEgPSBjbG9uZURlZXAodGhpcy51ZHRSZWNvbW1hbmREYXRhKTtcbiAgICB0aGlzLmNob29zZVJlY2VudCA9IGZhbHNlO1xuICAgIHRoaXMuY2hvb3NlQWxsID0gZmFsc2U7XG4gICAgdGhpcy51ZHREYXRhID0gdGhpcy5vblNlYXJjaFZhbHVlQ2hhbmdlZCh0aGlzLnNlYXJjaFZhbHVlKTtcbiAgfVxuXG4gIC8qKiDlsZXnpLrigJzlhajpg6jigJ3kuIDmoI8gKi9cbiAgc2hvd0FsbERhdGEoKSB7XG4gICAgdGhpcy51ZHREYXRhID0gY2xvbmVEZWVwKHRoaXMudWR0QWxsRGF0YSk7XG4gICAgdGhpcy5jaG9vc2VSZWNlbnQgPSBmYWxzZTtcbiAgICB0aGlzLmNob29zZUFsbCA9IHRydWU7XG4gICAgdGhpcy51ZHREYXRhID0gdGhpcy5vblNlYXJjaFZhbHVlQ2hhbmdlZCh0aGlzLnNlYXJjaFZhbHVlKTtcbiAgfVxuXG4gIC8qKiDmkJzntKLpobkgKi9cbiAgb25TZWFyY2hWYWx1ZUNoYW5nZWQoc2VhcmNoVmFsdWUpIHtcbiAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlID09IHVuZGVmaW5lZCA/ICcnIDogc2VhcmNoVmFsdWU7XG4gICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZVsnb3JpZ2luYWxFdmVudCddICE9IHVuZGVmaW5lZCA/IHNlYXJjaFZhbHVlLnZhbHVlIHx8ICcnIDogc2VhcmNoVmFsdWU7XG4gICAgdGhpcy5zZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlO1xuICAgIGxldCB2YWx1ZSA9IHNlYXJjaFZhbHVlLnJlcGxhY2VBbGwoJyAnLCAnJykucmVwbGFjZUFsbCgnPicsICcnKTtcbiAgICB2YWx1ZSA9IHZhbHVlID09ICcnID8gJyAnIDogdmFsdWU7XG4gICAgdmFsdWUgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmICghdGhpcy5jaG9vc2VSZWNlbnQgJiYgIXRoaXMuY2hvb3NlQWxsKSB7XG4gICAgICB0aGlzLnVkdERhdGEuZm9yRWFjaCh1ZHREYXRhSXRlbSA9PiB7XG4gICAgICAgIHVkdERhdGFJdGVtLmRhdGEuZm9yRWFjaChkYXRhSXRlbSA9PiB7XG4gICAgICAgICAgbGV0IGNvbWJpbmVkU3RyaW5nID0gYCR7ZGF0YUl0ZW0ubmFtZX0gJHtkYXRhSXRlbS5sYWJlbH1gO1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IGNvbWJpbmVkU3RyaW5nLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgZGF0YUl0ZW0uaGlkZSA9IHNlbGVjdGVkSXRlbS5pbmNsdWRlcyh2YWx1ZSkgPT0gZmFsc2UgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMudWR0RGF0YS5mb3JFYWNoKHVkdERhdGFJdGVtID0+IHtcbiAgICAgICAgbGV0IGNvbWJpbmVkU3RyaW5nID0gYCR7dWR0RGF0YUl0ZW0ubmFtZX0gJHt1ZHREYXRhSXRlbS5sYWJlbH1gO1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBjb21iaW5lZFN0cmluZy50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB1ZHREYXRhSXRlbS5oaWRlID0gc2VsZWN0ZWRJdGVtLmluY2x1ZGVzKHZhbHVlKSA9PSBmYWxzZSA/IHRydWUgOiBmYWxzZTtcbiAgICAgIH0pXG4gICAgfVxuICAgIHJldHVybiB0aGlzLnVkdERhdGE7XG4gIH1cblxuICAvKiog55So5oi36YCJ5oup5YC8ICovXG4gIGdldFVkdERhdGFJdGVtKHNlbGVjdGVkVWR0RGF0YUl0ZW0pIHtcbiAgICBpZiAoIXRoaXMuY2hvb3NlUmVjZW50ICYmICF0aGlzLmNob29zZUFsbCkge1xuICAgICAgdGhpcy51ZHREYXRhLmZvckVhY2godWR0RGF0YUl0ZW0gPT4ge1xuICAgICAgICB1ZHREYXRhSXRlbS5kYXRhLmZvckVhY2goZGF0YUl0ZW0gPT4ge1xuICAgICAgICAgIGRhdGFJdGVtLmFjdGl2ZSA9IHNlbGVjdGVkVWR0RGF0YUl0ZW0ubGFiZWwgPT0gZGF0YUl0ZW0ubGFiZWwgPyAhZGF0YUl0ZW0uYWN0aXZlIDogZmFsc2U7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENvbW1hbmQgPSBzZWxlY3RlZFVkdERhdGFJdGVtLmxhYmVsID09IGRhdGFJdGVtLmxhYmVsID8gY2xvbmVEZWVwKHNlbGVjdGVkVWR0RGF0YUl0ZW0pIDogdGhpcy5zZWxlY3RlZENvbW1hbmQ7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy51ZHREYXRhLmZvckVhY2godWR0RGF0YUl0ZW0gPT4ge1xuICAgICAgICB1ZHREYXRhSXRlbS5hY3RpdmUgPSBzZWxlY3RlZFVkdERhdGFJdGVtLmxhYmVsID09IHVkdERhdGFJdGVtLmxhYmVsID8gIXVkdERhdGFJdGVtLmFjdGl2ZSA6IGZhbHNlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ29tbWFuZCA9IHNlbGVjdGVkVWR0RGF0YUl0ZW0ubGFiZWwgPT0gdWR0RGF0YUl0ZW0ubGFiZWwgPyBjbG9uZURlZXAoc2VsZWN0ZWRVZHREYXRhSXRlbSkgOiB0aGlzLnNlbGVjdGVkQ29tbWFuZDtcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgLyoqIOa4heepuuaQnOe0ouWGheWuuSAqL1xuICBvbkNsZWFyKCkge1xuICAgIHRoaXMudWR0RGF0YSA9IHRoaXMub25TZWFyY2hWYWx1ZUNoYW5nZWQoJycpO1xuICB9XG5cbiAgLyoqIOWOu+mHjSovXG4gIGdldFVuaXF1ZURhdGEodWR0UmVjZW50RGF0YSkge1xuICAgIGxldCB2YWx1ZSA9IGNsb25lRGVlcCh1ZHRSZWNlbnREYXRhKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCB2YWx1ZS5sZW5ndGg7IGorKykge1xuICAgICAgICBpZiAodmFsdWVbaV1bJ2xhYmVsJ10gPT0gdmFsdWVbal1bJ2xhYmVsJ10pIHtcbiAgICAgICAgICB2YWx1ZS5zcGxpY2UoaiwgMSk7XG4gICAgICAgICAgai0tO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIC8qKiDmlLbmipjlvZPliY3liIbnsbsgKi9cbiAgZm9sZEluKGNhdGVnb3J5KSB7XG4gICAgY2F0ZWdvcnkuZm9sZCA9ICFjYXRlZ29yeS5mb2xkO1xuICB9XG5cbiAgLyoqIOeUqOaIt+eCueWHu+ehruWumuaXtuiwg+eUqHBvc3RBcGnkvKDlh7rlj4LmlbAgKi9cbiAgY2xpY2tDb25maXJtKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkQ29tbWFuZCAmJiB0aGlzLnNlbGVjdGVkQ29tbWFuZFsnYWN0aXZlJ10pIHtcbiAgICAgIGNvbnN0IGh0dHAgPSB0aGlzLmluamVjdG9yLmdldChIdHRwQ2xpZW50KTtcbiAgICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHRoaXMuZWRpdG9yUGFyYW1zLnJlbGF0aXZlUGF0aCB8fCAnJztcbiAgICAgIGNvbnN0IHBhdGggPSAnL2FwaS9kZXYvbWFpbi92MS4wL21kc2VydmljZS9waWNrTWV0YWRhdGE/Y3VycmVudFBhdGg9JyArIHJlbGF0aXZlUGF0aDtcbiAgICAgIGNvbnN0IGJvZHkgPSB0aGlzLnNlbGVjdGVkQ29tbWFuZC5kYXRhO1xuICAgICAgY29uc3QgaGVhZGVyT3B0aW9uID0ge1xuICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pXG4gICAgICB9XG4gICAgICByZXR1cm4gaHR0cC5wb3N0KHBhdGgsIGJvZHksIGhlYWRlck9wdGlvbikuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICBkYXRhWydtZXRhZGF0YSddWydwcm9jZXNzTW9kZSddID09PSAnaW50ZXJwcmV0YXRpb24nID8gJ2ludGVycHJldGF0aW9uJyA6ICdnZW5lcmFsJztcbiAgICAgICAgdGhpcy5zdWJtaXRNb2RhbC5lbWl0KGRhdGEpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5ub3RpZnlTZXJ2aWNlWydpbmZvJ10oJ+acqumAieaLqeS4muWKoeWtl+autScpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgY2xpY2tDYW5jZWwoKSB7XG4gICAgdGhpcy5jbG9zZU1vZGFsLmVtaXQoKTtcbiAgfVxuICAvKiog5o6l5Y+j5pWw5o2u6LaF6L+HMTAwMOadoeaXtu+8jOmHjeaWsOiwg+WPluaJgOacieaVsOaNriAqL1xuICByZWludm9rZUludGVyZmFjZShkYXRhKSB7XG4gICAgaWYgKGRhdGFbJ3BhZ2UnXSkge1xuICAgICAgY29uc3QgdG90YWxOdW0gPSBkYXRhWydwYWdlJ11bJ3RvdGFsJ10gfHwgMDtcbiAgICAgIGlmICh0b3RhbE51bSA+IDEwMDApIHtcbiAgICAgICAgY29uc3QgaHR0cCA9IHRoaXMuaW5qZWN0b3IuZ2V0KEh0dHBDbGllbnQpO1xuICAgICAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLmVkaXRvclBhcmFtcy5yZWxhdGl2ZVBhdGggfHwgJyc7XG4gICAgICAgIHJldHVybiBodHRwLmdldCgnL2FwaS9kZXYvbWFpbi92MS4wL21kc2VydmljZS91bmlvbm1kbGlzdD9wYXRoPScgKyByZWxhdGl2ZVBhdGggKyAnJnBhZ2VJbmRleD0xJnBhZ2VTaXplPScgKyB0b3RhbE51bSArICcmbWV0YWRhdGFUeXBlTGlzdD0udWR0Jywge1xuICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSksXG4gICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbidcbiAgICAgICAgfSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgIHRoaXMudWR0UmVjb21tYW5kRGF0YSA9IGNsb25lRGVlcCh0aGlzLmdldFJlY29tbWFuZERhdGEoZGF0YSkpO1xuICAgICAgICAgIHRoaXMudWR0RGF0YSA9IHRoaXMudWR0UmVjZW50RGF0YS5sZW5ndGggIT0gMCA/IHRoaXMudWR0UmVjZW50RGF0YSA6IHRoaXMudWR0UmVjb21tYW5kRGF0YTtcbiAgICAgICAgICB0aGlzLmNob29zZVJlY2VudCA9IHRoaXMudWR0UmVjZW50RGF0YS5sZW5ndGggIT0gMCA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=

@@ -440,3 +440,3 @@ import { cloneDeep } from 'lodash-es';

data => {
data['processMode'] === 'interpretation' ? 'interpretation' : 'general';
data['metadata']['processMode'] === 'interpretation' ? 'interpretation' : 'general';
this.submitModal.emit(data);

@@ -443,0 +443,0 @@ }));

@@ -517,3 +517,3 @@ import { cloneDeep } from 'lodash-es';

function (data) {
data['processMode'] === 'interpretation' ? 'interpretation' : 'general';
data['metadata']['processMode'] === 'interpretation' ? 'interpretation' : 'general';
_this.submitModal.emit(data);

@@ -520,0 +520,0 @@ }));

{
"name": "@farris/app-navigation-udt",
"version": "0.0.6",
"version": "0.0.7",
"publishConfig": {

@@ -5,0 +5,0 @@ "access": "public",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc